Andreas Wacknitz
2023-09-22 95a17185fa4cbf564b8ee91cf2999891c8a6e477
jq: update to 1.7

3 files deleted
5 files modified
915 ■■■■ changed files
components/text/jq/Makefile 34 ●●●● patch | view | raw | blame | history
components/text/jq/jq.license 70 ●●●●● patch | view | raw | blame | history
components/text/jq/jq.p5m 6 ●●●●● patch | view | raw | blame | history
components/text/jq/manifests/sample-manifest.p5m 7 ●●●●● patch | view | raw | blame | history
components/text/jq/patches/01-spurious-macros.patch 15 ●●●●● patch | view | raw | blame | history
components/text/jq/patches/Makefile.in.patch 15 ●●●●● patch | view | raw | blame | history
components/text/jq/pkg5 2 ●●●●● patch | view | raw | blame | history
components/text/jq/test/results-all.master 766 ●●●●● patch | view | raw | blame | history
components/text/jq/Makefile
@@ -14,41 +14,44 @@
# Copyright 2021, Till Wegmueller.
#
BUILD_BITS=64
BUILD_BITS= 64
include ../../../make-rules/shared-macros.mk
COMPONENT_NAME=         jq
COMPONENT_VERSION=      1.6
COMPONENT_REVISION=     2
COMPONENT_VERSION=      1.7
COMPONENT_SUMMARY=      jq - lightweight and flexible command-line JSON processor
COMPONENT_PROJECT_URL=    https://stedolan.github.io/jq/
COMPONENT_FMRI=         text/jq
COMPONENT_CLASSIFICATION=Applications/System Utilities
COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH= \
  sha256:5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72
COMPONENT_ARCHIVE_URL=    \
  https://github.com/stedolan/jq/releases/download/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
COMPONENT_ARCHIVE_HASH= sha256:402a0d6975d946e6f4e484d1a84320414a0ff8eb6cf49d2c11d144d4d344db62
COMPONENT_ARCHIVE_URL=    https://github.com/stedolan/jq/releases/download/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
COMPONENT_FMRI=         text/jq
COMPONENT_CLASSIFICATION=Applications/System Utilities
COMPONENT_LICENSE=      MIT
COMPONENT_LICENSE_FILE=    COPYING
include $(WS_MAKE_RULES)/common.mk
ELFEDIT = /usr/bin/elfedit
COMPONENT_PREP_ACTION = ( cd $(@D) && autoreconf -fiv )
# Tests are broken out of source
COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D); cd $(@D))
#COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D); cd $(@D); autoreconf -fi)
CONFIGURE_ENV += CFLAGS="$(CFLAGS) $(CPP_XPG6MODE)"
COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS) $(CPP_XPG6MODE) -DNDEBUG=1"
# Remove the RUNPATH otherwise it will be set to somewhere inside PROTO_DIR
COMPONENT_POST_INSTALL_ACTION += $(ELFEDIT) -e "dyn:runpath ''" $(PROTOUSRBINDIR)/jq ;
CONFIGURE_ENV += CFLAGS="$(CFLAGS) $(XPG6MODE)"
COMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS) $(XPG6MODE) -DNDEBUG=1"
CONFIGURE_OPTIONS += --disable-dependency-tracking
CONFIGURE_OPTIONS += --disable-static
CONFIGURE_OPTIONS += --disable-valgrind
CONFIGURE_OPTIONS += --with-oniguruma=/usr
COMPONENT_TEST_CMD = ./tests/jqtest
COMPONENT_TEST_TARGETS = 
COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
COMPONENT_TEST_TRANSFORMS += \
        '-e "/^==/d" '
@@ -57,4 +60,3 @@
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/math
REQUIRED_PACKAGES += text/oniguruma
components/text/jq/jq.license
File was deleted
components/text/jq/jq.p5m
@@ -10,10 +10,11 @@
#
#
# Copyright 2013 Jon Tibble.  All rights reserved.
# Copyright 2023 Andreas Wacknitz
#
set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
set name=pkg.human-version value=$(HUMAN_VERSION)
set name=pkg.summary value="$(COMPONENT_SUMMARY)"
set name=info.classification value="$(COMPONENT_CLASSIFICATION)"
set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
@@ -28,8 +29,9 @@
link path=usr/lib/$(MACH64)/libjq.so target=libjq.so.1.0.4
link path=usr/lib/$(MACH64)/libjq.so.1 target=libjq.so.1.0.4
file path=usr/lib/$(MACH64)/libjq.so.1.0.4
file path=usr/lib/$(MACH64)/pkgconfig/libjq.pc
file path=usr/share/doc/jq/AUTHORS
file path=usr/share/doc/jq/COPYING
file path=usr/share/doc/jq/README
file path=usr/share/doc/jq/NEWS.md
file path=usr/share/doc/jq/README.md
file path=usr/share/man/man1/jq.1
components/text/jq/manifests/sample-manifest.p5m
@@ -10,10 +10,11 @@
#
#
# Copyright 2021 <contributor>
# Copyright 2023 <contributor>
#
set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
set name=pkg.human-version value=$(HUMAN_VERSION)
set name=pkg.summary value="$(COMPONENT_SUMMARY)"
set name=info.classification value="$(COMPONENT_CLASSIFICATION)"
set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
@@ -25,12 +26,12 @@
file path=usr/bin/jq
file path=usr/include/jq.h
file path=usr/include/jv.h
file path=usr/lib/$(MACH64)/libjq.a
link path=usr/lib/$(MACH64)/libjq.so target=libjq.so.1.0.4
link path=usr/lib/$(MACH64)/libjq.so.1 target=libjq.so.1.0.4
file path=usr/lib/$(MACH64)/libjq.so.1.0.4
file path=usr/lib/$(MACH64)/pkgconfig/libjq.pc
file path=usr/share/doc/jq/AUTHORS
file path=usr/share/doc/jq/COPYING
file path=usr/share/doc/jq/README
file path=usr/share/doc/jq/NEWS.md
file path=usr/share/doc/jq/README.md
file path=usr/share/man/man1/jq.1
components/text/jq/patches/01-spurious-macros.patch
File was deleted
components/text/jq/patches/Makefile.in.patch
File was deleted
components/text/jq/pkg5
@@ -1,7 +1,5 @@
{
    "dependencies": [
        "SUNWcs",
        "shell/ksh93",
        "system/library",
        "system/library/math",
        "text/oniguruma"
components/text/jq/test/results-all.master
@@ -1,322 +1,444 @@
Testing 'true' at line number 8
Testing 'false' at line number 12
Testing 'null' at line number 16
Testing '1' at line number 20
Testing '-1' at line number 25
Testing '{}' at line number 31
Testing '[]' at line number 35
Testing '{x: -1}' at line number 39
Testing '.' at line number 46
Testing '"Aa\r\n\t\b\f\u03bc"' at line number 52
Testing '.' at line number 56
Testing '"inter\("pol" + "ation")"' at line number 60
Testing '@text,@json,([1,.] | (@csv, @tsv)),@html,@uri,@sh,@base64,(@base64 | @base64d)' at line number 64
Testing '@base64' at line number 77
Testing '@base64d' at line number 81
Testing '@uri' at line number 85
Testing '@html "<b>\(.)</b>"' at line number 89
Testing '[.[]|tojson|fromjson]' at line number 93
Testing '{a: 1}' at line number 101
Testing '{a,b,(.d):.a,e:.b}' at line number 105
Testing '{"a",b,"a$\(1+1)"}' at line number 109
Testing '{(0):1}' at line number 114
Testing '{non_const:., (0):1}' at line number 118
Testing '.foo' at line number 125
Testing '.foo | .bar' at line number 129
Testing '.foo.bar' at line number 133
Testing '.foo_bar' at line number 137
Testing '.["foo"].bar' at line number 141
Testing '."foo"."bar"' at line number 145
Testing '[.[]|.foo?]' at line number 149
Testing '[.[]|.foo?.bar?]' at line number 153
Testing '[..]' at line number 157
Testing '[.[]|.[]?]' at line number 161
Testing '[.[]|.[1:3]?]' at line number 165
Testing 'try (.foo[-1] = 0) catch .' at line number 173
Testing 'try (.foo[-2] = 0) catch .' at line number 177
Testing '.[-1] = 5' at line number 181
Testing '.[-2] = 5' at line number 185
Testing '.[]' at line number 193
Testing '1,1' at line number 199
Testing '1,.' at line number 204
Testing '[.]' at line number 209
Testing '[[2]]' at line number 213
Testing '[{}]' at line number 217
Testing '[.[]]' at line number 221
Testing '[(.,1),((.,.[]),(2,3))]' at line number 225
Testing '[([5,5][]),.,.[]]' at line number 229
Testing '{x: (1,2)},{x:3} | .x' at line number 233
Testing '.[-2]' at line number 239
Testing '[range(0;10)]' at line number 243
Testing '[range(0,1;3,4)]' at line number 247
Testing '[range(0;10;3)]' at line number 251
Testing '[range(0;10;-1)]' at line number 255
Testing '[range(0;-5;-1)]' at line number 259
Testing '[range(0,1;4,5;1,2)]' at line number 263
Testing '[while(.<100; .*2)]' at line number 267
Testing '[(label $here | .[] | if .>1 then break $here else . end), "hi!"]' at line number 271
Testing '[(label $here | .[] | if .>1 then break $here else . end), "hi!"]' at line number 275
Testing '. as $foo | break $foo' at line number 280
Testing '[.[]|[.,1]|until(.[0] < 1; [.[0] - 1, .[1] * .[0]])|.[1]]' at line number 283
Testing '[label $out | foreach .[] as $item ([3, null]; if .[0] < 1 then break $out else [.[0] -1, $item] end; .[1])]' at line number 287
Testing '[foreach range(5) as $item (0; $item)]' at line number 291
Testing '[foreach .[] as [$i, $j] (0; . + $i - $j)]' at line number 295
Testing '[foreach .[] as {a:$a} (0; . + $a; -.)]' at line number 299
Testing '[limit(3; .[])]' at line number 303
Testing '[first(range(.)), last(range(.)), nth(0; range(.)), nth(5; range(.)), try nth(-1; range(.)) catch .]' at line number 307
Testing 'first(1,error("foo"))' at line number 312
Testing '[limit(5,7; range(9))]' at line number 322
Testing '[nth(5,7; range(9;0;-1))]' at line number 327
Testing '[range(0,1,2;4,3,2;2,3)]' at line number 332
Testing '[range(3,5)]' at line number 337
Testing '[(index(",","|"), rindex(",","|")), indices(",","|")]' at line number 342
Testing 'join(",","/")' at line number 347
Testing '[.[]|join("a")]' at line number 352
Testing 'flatten(3,2,1)' at line number 357
Testing '[.[3:2], .[-5:4], .[:-2], .[-2:], .[3:3][1:], .[10:]]' at line number 368
Testing '[.[3:2], .[-5:4], .[:-2], .[-2:], .[3:3][1:], .[10:]]' at line number 372
Testing 'del(.[2:4],.[0],.[-2:])' at line number 376
Testing '.[2:4] = ([], ["a","b"], ["a","b","c"])' at line number 380
Testing 'reduce range(65540;65536;-1) as $i ([]; .[$i] = $i)|.[65536:]' at line number 392
Testing '1 as $x | 2 as $y | [$x,$y,$x]' at line number 400
Testing '[1,2,3][] as $x | [[4,5,6,7][$x]]' at line number 404
Testing '42 as $x | . | . | . + 432 | $x + 1' at line number 410
Testing '1 as $x | [$x,$x,$x as $x | $x]' at line number 414
Testing '[1, {c:3, d:4}] as [$a, {c:$b, b:$c}] | $a, $b, $c' at line number 418
Testing '. as {as: $kw, "str": $str, ("e"+"x"+"p"): $exp} | [$kw, $str, $exp]' at line number 424
Testing '.[] as [$a, $b] | [$b, $a]' at line number 428
Testing '. as $i | . as [$i] | $i' at line number 433
Testing '. as [$i] | . as $i | $i' at line number 437
Testing '. as [] | null' at line number 442
Testing '. as {} | null' at line number 446
Testing '1+1' at line number 455
Testing '1+1' at line number 459
Testing '2-1' at line number 463
Testing '2-(-1)' at line number 467
Testing '1e+0+0.001e3' at line number 471
Testing '.+4' at line number 475
Testing '.+null' at line number 479
Testing 'null+.' at line number 483
Testing '.a+.b' at line number 487
Testing '[1,2,3] + [.]' at line number 491
Testing '{"a":1} + {"b":2} + {"c":3}' at line number 495
Testing '"asdf" + "jkl;" + . + . + .' at line number 499
Testing '"\u0000\u0020\u0000" + .' at line number 503
Testing '42 - .' at line number 507
Testing '[1,2,3,4,1] - [.,3]' at line number 511
Testing '[10 * 20, 20 / .]' at line number 515
Testing '1 + 2 * 2 + 10 / 2' at line number 519
Testing '[16 / 4 / 2, 16 / 4 * 2, 16 - 4 - 2, 16 - 4 + 2]' at line number 523
Testing '25 % 7' at line number 527
Testing '49732 % 472' at line number 531
Testing '1 + tonumber + ("10" | tonumber)' at line number 535
Testing '[{"a":42},.object,10,.num,false,true,null,"b",[1,4]] | .[] as $x | [$x == .[]]' at line number 539
Testing '[.[] | length]' at line number 551
Testing 'utf8bytelength' at line number 555
Testing '[.[] | try utf8bytelength catch .]' at line number 559
Testing 'map(keys)' at line number 564
Testing '[1,2,empty,3,empty,4]' at line number 568
Testing 'map(add)' at line number 572
Testing 'map_values(.+1)' at line number 576
Testing 'def f: . + 1; def g: def g: . + 100; f | g | f; (f | g), g' at line number 585
Testing 'def f: (1000,2000); f' at line number 590
Testing 'def f(a;b;c;d;e;f): [a+1,b,c,d,e,f]; f(.[0];.[1];.[0];.[0];.[0];.[0])' at line number 595
Testing 'def a: 0; . | a' at line number 600
Testing 'def f(a;b;c;d;e;f;g;h;i;j): [j,i,h,g,f,e,d,c,b,a]; f(.[0];.[1];.[2];.[3];.[4];.[5];.[6];.[7];.[8];.[9])' at line number 605
Testing '([1,2] + [4,5])' at line number 609
Testing 'true' at line number 613
Testing 'null,1,null' at line number 617
Testing '[1,2,3]' at line number 623
Testing '[.[]|floor]' at line number 627
Testing '[.[]|sqrt]' at line number 631
Testing '(add / length) as $m | map((. - $m) as $d | $d * $d) | add / length | sqrt' at line number 635
Testing 'atan * 4 * 1000000|floor / 1000000' at line number 644
Testing '[(3.141592 / 2) * (range(0;20) / 20)|cos * 1000000|floor / 1000000]' at line number 648
Testing '[(3.141592 / 2) * (range(0;20) / 20)|sin * 1000000|floor / 1000000]' at line number 652
Testing 'def f(x): x | x; f([.], . + [42])' at line number 657
Testing 'def f: .+1; def g: f; def f: .+100; def f(a):a+.+11; [(g|f(20)), f]' at line number 665
Testing 'def id(x):x; 2000 as $x | def f(x):1 as $x | id([$x, x, x]); def g(x): 100 as $x | f($x,$x+x); g($x)' at line number 670
Testing 'def x(a;b): a as $a | b as $b | $a + $b; def y($a;$b): $a + $b; def check(a;b): [x(a;b)] == [y(a;b)]; check(.[];.[]*2)' at line number 675
Testing '[[20,10][1,0] as $x | def f: (100,200) as $y | def g: [$x + $y, .]; . + $x | g; f[0] | [f][0][1] | f]' at line number 681
Testing 'def fac: if . == 1 then 1 else . * (. - 1 | fac) end; [.[] | fac]' at line number 686
Testing 'reduce .[] as $x (0; . + $x)' at line number 696
Testing 'reduce .[] as [$i, {j:$j}] (0; . + $i - $j)' at line number 700
Testing 'reduce [[1,2,10], [3,4,10]][] as [$i,$j] (0; . + $i * $j)' at line number 704
Testing 'reduce . as $n (.; .)' at line number 709
Testing '. as {$a, b: [$c, {$d}]} | [$a, $c, $d]' at line number 714
Testing '. as {$a, $b:[$c, $d]}| [$a, $b, $c, $d]' at line number 718
Testing '.[] | . as {$a, b: [$c, {$d}]} ?// [$a, {$b}, $e] ?// $f | [$a, $b, $c, $d, $e, $f]' at line number 723
Testing '.[] | . as {a:$a} ?// {a:$a} ?// {a:$a} | $a' at line number 730
Testing '.[] as {a:$a} ?// {a:$a} ?// {a:$a} | $a' at line number 734
Testing '[[3],[4],[5],6][] | . as {a:$a} ?// {a:$a} ?// {a:$a} | $a' at line number 738
Testing '[[3],[4],[5],6] | .[] as {a:$a} ?// {a:$a} ?// {a:$a} | $a' at line number 742
Testing '.[] | . as {a:$a} ?// {a:$a} ?// $a | $a' at line number 746
Testing '.[] as {a:$a} ?// {a:$a} ?// $a | $a' at line number 753
Testing '[[3],[4],[5],6][] | . as {a:$a} ?// {a:$a} ?// $a | $a' at line number 760
Testing '[[3],[4],[5],6] | .[] as {a:$a} ?// {a:$a} ?// $a | $a' at line number 767
Testing '.[] | . as {a:$a} ?// $a ?// {a:$a} | $a' at line number 774
Testing '.[] as {a:$a} ?// $a ?// {a:$a} | $a' at line number 781
Testing '[[3],[4],[5],6][] | . as {a:$a} ?// $a ?// {a:$a} | $a' at line number 788
Testing '[[3],[4],[5],6] | .[] as {a:$a} ?// $a ?// {a:$a} | $a' at line number 795
Testing '.[] | . as $a ?// {a:$a} ?// {a:$a} | $a' at line number 802
Testing '.[] as $a ?// {a:$a} ?// {a:$a} | $a' at line number 809
Testing '[[3],[4],[5],6][] | . as $a ?// {a:$a} ?// {a:$a} | $a' at line number 816
Testing '[[3],[4],[5],6] | .[] as $a ?// {a:$a} ?// {a:$a} | $a' at line number 823
Testing '. as $dot|any($dot[];not)' at line number 830
Testing '. as $dot|any($dot[];not)' at line number 834
Testing '. as $dot|all($dot[];.)' at line number 838
Testing '. as $dot|all($dot[];.)' at line number 842
Testing 'path(.foo[0,1])' at line number 850
Testing 'path(.[] | select(.>3))' at line number 855
Testing 'path(.)' at line number 859
Testing 'try path(.a | map(select(.b == 0))) catch .' at line number 863
Testing 'try path(.a | map(select(.b == 0)) | .[0]) catch .' at line number 867
Testing 'try path(.a | map(select(.b == 0)) | .c) catch .' at line number 871
Testing 'try path(.a | map(select(.b == 0)) | .[]) catch .' at line number 875
Testing 'path(.a[path(.b)[0]])' at line number 879
Testing '[paths]' at line number 883
Testing '[leaf_paths]' at line number 887
Testing '["foo",1] as $p | getpath($p), setpath($p; 20), delpaths([$p])' at line number 891
Testing 'map(getpath([2])), map(setpath([2]; 42)), map(delpaths([[2]]))' at line number 897
Testing 'map(delpaths([[0,"foo"]]))' at line number 903
Testing '["foo",1] as $p | getpath($p), setpath($p; 20), delpaths([$p])' at line number 907
Testing 'delpaths([[-200]])' at line number 913
Testing 'try delpaths(0) catch .' at line number 917
Testing 'del(.), del(empty), del((.foo,.bar,.baz) | .[2,3,0]), del(.foo[0], .bar[0], .foo, .baz.bar[0].x)' at line number 921
Testing 'del(.[1], .[-6], .[2], .[-3:9])' at line number 928
Testing '.message = "goodbye"' at line number 935
Testing '.foo = .bar' at line number 939
Testing '.foo |= .+1' at line number 943
Testing '.[] += 2, .[] *= 2, .[] -= 2, .[] /= 2, .[] %=2' at line number 947
Testing '[.[] % 7]' at line number 955
Testing '.foo += .foo' at line number 959
Testing '.[0].a |= {"old":., "new":(.+1)}' at line number 963
Testing 'def inc(x): x |= .+1; inc(.[].a)' at line number 967
Testing '.[] | try (getpath(["a",0,"b"]) |= 5) catch .' at line number 972
Testing '.[2][3] = 1' at line number 983
Testing '.foo[2].bar = 1' at line number 987
Testing 'try ((map(select(.a == 1))[].b) = 10) catch .' at line number 991
Testing 'try ((map(select(.a == 1))[].a) |= .+1) catch .' at line number 995
Testing 'def x: .[1,2]; x=10' at line number 999
Testing 'try (def x: reverse; x=10) catch .' at line number 1003
Testing '.[] = 1' at line number 1007
Testing '[.[] | if .foo then "yep" else "nope" end]' at line number 1015
Testing '[.[] | if .baz then "strange" elif .foo then "yep" else "nope" end]' at line number 1019
Testing '[if 1,null,2 then 3 else 4 end]' at line number 1023
Testing '[if empty then 3 else 4 end]' at line number 1027
Testing '[if 1 then 3,4 else 5 end]' at line number 1031
Testing '[if null then 3 else 5,6 end]' at line number 1035
Testing '[.[] | [.foo[] // .bar]]' at line number 1039
Testing '.[] //= .[0]' at line number 1043
Testing '.[] | [.[0] and .[1], .[0] or .[1]]' at line number 1047
Testing '[.[] | not]' at line number 1054
Testing '[10 > 0, 10 > 10, 10 > 20, 10 < 0, 10 < 10, 10 < 20]' at line number 1059
Testing '[10 >= 0, 10 >= 10, 10 >= 20, 10 <= 0, 10 <= 10, 10 <= 20]' at line number 1063
Testing '[ 10 == 10, 10 != 10, 10 != 11, 10 == 11]' at line number 1068
Testing '["hello" == "hello", "hello" != "hello", "hello" == "world", "hello" != "world" ]' at line number 1072
Testing '[[1,2,3] == [1,2,3], [1,2,3] != [1,2,3], [1,2,3] == [4,5,6], [1,2,3] != [4,5,6]]' at line number 1076
Testing '[{"foo":42} == {"foo":42},{"foo":42} != {"foo":42}, {"foo":42} != {"bar":42}, {"foo":42} == {"bar":42}]' at line number 1080
Testing '[{"foo":[1,2,{"bar":18},"world"]} == {"foo":[1,2,{"bar":18},"world"]},{"foo":[1,2,{"bar":18},"world"]} == {"foo":[1,2,{"bar":19},"world"]}]' at line number 1085
Testing '[("foo" | contains("foo")), ("foobar" | contains("foo")), ("foo" | contains("foobar"))]' at line number 1090
Testing '[.[]|try if . == 0 then error("foo") elif . == 1 then .a elif . == 2 then empty else . end catch .]' at line number 1095
Testing '[.[]|(.a, .a)?]' at line number 1099
Testing '[[.[]|[.a,.a]]?]' at line number 1103
Testing 'try error("\($__loc__)") catch .' at line number 1107
Testing '[.[]|startswith("foo")]' at line number 1112
Testing '[.[]|endswith("foo")]' at line number 1116
Testing '[.[] | split(", ")]' at line number 1120
Testing 'split("")' at line number 1124
Testing '[.[]|ltrimstr("foo")]' at line number 1128
Testing '[.[]|rtrimstr("foo")]' at line number 1132
Testing '[(index(","), rindex(",")), indices(",")]' at line number 1136
Testing 'indices(1)' at line number 1140
Testing 'indices([1,2])' at line number 1144
Testing 'indices([1,2])' at line number 1148
Testing 'indices(", ")' at line number 1152
Testing '[.[]|split(",")]' at line number 1156
Testing '[.[]|split(", ")]' at line number 1160
Testing '[.[] * 3]' at line number 1164
Testing '[.[] / ","]' at line number 1168
Testing '[.[] / ", "]' at line number 1172
Testing 'map(.[1] as $needle | .[0] | contains($needle))' at line number 1176
Testing 'map(.[1] as $needle | .[0] | contains($needle))' at line number 1180
Testing '[({foo: 12, bar:13} | contains({foo: 12})), ({foo: 12} | contains({})), ({foo: 12, bar:13} | contains({baz:14}))]' at line number 1184
Testing '{foo: {baz: 12, blap: {bar: 13}}, bar: 14} | contains({bar: 14, foo: {blap: {}}})' at line number 1188
Testing '{foo: {baz: 12, blap: {bar: 13}}, bar: 14} | contains({bar: 14, foo: {blap: {bar: 14}}})' at line number 1192
Testing 'sort' at line number 1196
Testing '(sort_by(.b) | sort_by(.a)), sort_by(.a, .b), sort_by(.b, .c), group_by(.b), group_by(.a + .b - .c == 2)' at line number 1200
Testing 'unique' at line number 1208
Testing 'unique' at line number 1212
Testing '[min, max, min_by(.[1]), max_by(.[1]), min_by(.[2]), max_by(.[2])]' at line number 1216
Testing '[min,max,min_by(.),max_by(.)]' at line number 1220
Testing '.foo[.baz]' at line number 1224
Testing '.[] | .error = "no, it's OK"' at line number 1228
Testing '[{a:1}] | .[] | .a=999' at line number 1232
Testing 'to_entries' at line number 1236
Testing 'from_entries' at line number 1240
Testing 'with_entries(.key |= "KEY_" + .)' at line number 1244
Testing 'map(has("foo"))' at line number 1248
Testing 'map(has(2))' at line number 1252
Testing 'keys' at line number 1256
Testing '[][.]' at line number 1260
Testing 'map([1,2][0:.])' at line number 1264
Testing '{"k": {"a": 1, "b": 2}} * .' at line number 1270
Testing '{"k": {"a": 1, "b": 2}, "hello": {"x": 1}} * .' at line number 1274
Testing '{"k": {"a": 1, "b": 2}, "hello": 1} * .' at line number 1278
Testing '{"a": {"b": 1}, "c": {"d": 2}, "e": 5} * .' at line number 1282
Testing '[.[]|arrays]' at line number 1286
Testing '[.[]|objects]' at line number 1290
Testing '[.[]|iterables]' at line number 1294
Testing '[.[]|scalars]' at line number 1298
Testing '[.[]|values]' at line number 1302
Testing '[.[]|booleans]' at line number 1306
Testing '[.[]|nulls]' at line number 1310
Testing 'flatten' at line number 1314
Testing 'flatten(0)' at line number 1318
Testing 'flatten(2)' at line number 1322
Testing 'flatten(2)' at line number 1326
Testing 'try flatten(-1) catch .' at line number 1330
Testing 'transpose' at line number 1334
Testing 'ascii_upcase' at line number 1338
Testing 'bsearch(4)' at line number 1342
Testing 'strftime("%Y-%m-%dT%H:%M:%SZ")' at line number 1348
Testing 'strftime("%A, %B %d, %Y")' at line number 1352
Testing 'gmtime' at line number 1356
Testing 'import "a" as foo; import "b" as bar; def fooa: foo::a; [fooa, bar::a, bar::b, foo::a]' at line number 1361
Testing 'import "c" as foo; [foo::a, foo::c]' at line number 1365
Testing 'include "c"; [a, c]' at line number 1369
Testing 'module (.+1); 0' at line number 1374
Testing 'include "a" (.+1); 0' at line number 1378
Testing 'include "a" []; 0' at line number 1382
Testing 'include "\ "; 0' at line number 1386
Testing 'include "\(a)"; 0' at line number 1390
Testing 'modulemeta' at line number 1393
Testing 'import "syntaxerror" as e; .' at line number 1398
Testing '%::wat' at line number 1402
Testing 'import "test_bind_order" as check; check::check' at line number 1405
Testing 'try -. catch .' at line number 1409
Testing 'join(",")' at line number 1413
Testing '.[] | join(",")' at line number 1417
Testing '.[] | join(",")' at line number 1424
Testing 'try join(",") catch .' at line number 1429
Testing 'try join(",") catch .' at line number 1433
Testing '{if:0,and:1,or:2,then:3,else:4,elif:5,end:6,as:7,def:8,reduce:9,foreach:10,try:11,catch:12,label:13,import:14,include:15,module:16}' at line number 1437
Testing 'try (1/.) catch .' at line number 1441
Testing 'try (1%.) catch .' at line number 1445
Testing '1/0' at line number 1450
Testing '[range(-52;52;1)] as $powers | [$powers[]|pow(2;.)|log2] == $powers' at line number 1454
Testing '[range(-99/2;99/2;1)] as $orig | [$orig[]|pow(2;.)|log2] as $back | ($orig|keys)[]|. as $k | (($orig|.[$k])-($back|.[$k]))|if . < 0 then . * -1 else . end|select(.>.00005)' at line number 1458
Testing '}' at line number 1462
Testing '(.[{}] = 0)?' at line number 1465
Testing 'INDEX(range(5)|[., "foo\(.)"]; .[0])' at line number 1468
Testing 'JOIN({"0":[0,"abc"],"1":[1,"bcd"],"2":[2,"def"],"3":[3,"efg"],"4":[4,"fgh"]}; .[0]|tostring)' at line number 1472
Testing 'range(5;10)|IN(range(10))' at line number 1476
Testing 'range(10;12)|IN(range(10))' at line number 1484
Testing 'IN(range(10;20); range(10))' at line number 1489
Testing 'IN(range(5;20); range(10))' at line number 1493
Testing '(.a as $x | .b) = "b"' at line number 1498
Testing '(.. | select(type == "object" and has("b") and (.b | type) == "array")|.b) |= .[0]' at line number 1503
Testing 'isempty(empty)' at line number 1507
Testing 'isempty(range(3))' at line number 1511
Testing 'isempty(1,error("foo"))' at line number 1515
321 of 321 tests passed (0 malformed)
Test #1: 'true' at line number 8
Test #2: 'false' at line number 12
Test #3: 'null' at line number 16
Test #4: '1' at line number 20
Test #5: '-1' at line number 25
Test #6: '{}' at line number 31
Test #7: '[]' at line number 35
Test #8: '{x: -1}' at line number 39
Test #9: '.' at line number 46
Test #10: '"Aa\r\n\t\b\f\u03bc"' at line number 52
Test #11: '.' at line number 56
Test #12: '"inter\("pol" + "ation")"' at line number 60
Test #13: '@text,@json,([1,.]|@csv,@tsv),@html,@uri,@sh,(@base64|.,@base64d)' at line number 64
Test #14: '@base64' at line number 77
Test #15: '@base64d' at line number 81
Test #16: '@uri' at line number 85
Test #17: '@html "<b>\(.)</b>"' at line number 89
Test #18: '[.[]|tojson|fromjson]' at line number 93
Test #19: '{a: 1}' at line number 101
Test #20: '{a,b,(.d):.a,e:.b}' at line number 105
Test #21: '{"a",b,"a$\(1+1)"}' at line number 109
Test #22: '{(0):1}' at line number 114
Test #23: '{non_const:., (0):1}' at line number 118
Test #24: '.foo' at line number 125
Test #25: '.foo | .bar' at line number 129
Test #26: '.foo.bar' at line number 133
Test #27: '.foo_bar' at line number 137
Test #28: '.["foo"].bar' at line number 141
Test #29: '."foo"."bar"' at line number 145
Test #30: '.e0, .E1, .E-1, .E+1' at line number 149
Test #31: '[.[]|.foo?]' at line number 156
Test #32: '[.[]|.foo?.bar?]' at line number 160
Test #33: '[..]' at line number 164
Test #34: '[.[]|.[]?]' at line number 168
Test #35: '[.[]|.[1:3]?]' at line number 172
Test #36: 'map(try .a[] catch ., try .a.[] catch ., .a[]?, .a.[]?)' at line number 177
Test #37: 'try (.foo[-1] = 0) catch .' at line number 185
Test #38: 'try (.foo[-2] = 0) catch .' at line number 189
Test #39: '.[-1] = 5' at line number 193
Test #40: '.[-2] = 5' at line number 197
Test #41: '.[]' at line number 205
Test #42: '1,1' at line number 211
Test #43: '1,.' at line number 216
Test #44: '[.]' at line number 221
Test #45: '[[2]]' at line number 225
Test #46: '[{}]' at line number 229
Test #47: '[.[]]' at line number 233
Test #48: '[(.,1),((.,.[]),(2,3))]' at line number 237
Test #49: '[([5,5][]),.,.[]]' at line number 241
Test #50: '{x: (1,2)},{x:3} | .x' at line number 245
Test #51: '[.[-4,-3,-2,-1,0,1,2,3]]' at line number 251
Test #52: '[range(0;10)]' at line number 255
Test #53: '[range(0,1;3,4)]' at line number 259
Test #54: '[range(0;10;3)]' at line number 263
Test #55: '[range(0;10;-1)]' at line number 267
Test #56: '[range(0;-5;-1)]' at line number 271
Test #57: '[range(0,1;4,5;1,2)]' at line number 275
Test #58: '[while(.<100; .*2)]' at line number 279
Test #59: '[(label $here | .[] | if .>1 then break $here else . end), "hi!"]' at line number 283
Test #60: '[(label $here | .[] | if .>1 then break $here else . end), "hi!"]' at line number 287
Test #61: '. as $foo | break $foo' at line number 292
Test #62: '[.[]|[.,1]|until(.[0] < 1; [.[0] - 1, .[1] * .[0]])|.[1]]' at line number 295
Test #63: '[label $out | foreach .[] as $item ([3, null]; if .[0] < 1 then break $out else [.[0] -1, $item] end; .[1])]' at line number 299
Test #64: '[foreach range(5) as $item (0; $item)]' at line number 303
Test #65: '[foreach .[] as [$i, $j] (0; . + $i - $j)]' at line number 307
Test #66: '[foreach .[] as {a:$a} (0; . + $a; -.)]' at line number 311
Test #67: '[limit(3; .[])]' at line number 315
Test #68: '[limit(0; error)]' at line number 319
Test #69: '[limit(1; 1, error)]' at line number 323
Test #70: '[first(range(.)), last(range(.))]' at line number 327
Test #71: '[nth(0,5,9,10,15; range(.)), try nth(-1; range(.)) catch .]' at line number 331
Test #72: 'first(1,error("foo"))' at line number 336
Test #73: '[limit(5,7; range(9))]' at line number 346
Test #74: '[nth(5,7; range(9;0;-1))]' at line number 351
Test #75: '[range(0,1,2;4,3,2;2,3)]' at line number 356
Test #76: '[range(3,5)]' at line number 361
Test #77: '[(index(",","|"), rindex(",","|")), indices(",","|")]' at line number 366
Test #78: 'join(",","/")' at line number 371
Test #79: '[.[]|join("a")]' at line number 376
Test #80: 'flatten(3,2,1)' at line number 381
Test #81: '[.[3:2], .[-5:4], .[:-2], .[-2:], .[3:3][1:], .[10:]]' at line number 392
Test #82: '[.[3:2], .[-5:4], .[:-2], .[-2:], .[3:3][1:], .[10:]]' at line number 396
Test #83: 'del(.[2:4],.[0],.[-2:])' at line number 400
Test #84: '.[2:4] = ([], ["a","b"], ["a","b","c"])' at line number 404
Test #85: 'reduce range(65540;65536;-1) as $i ([]; .[$i] = $i)|.[65536:]' at line number 416
Test #86: '1 as $x | 2 as $y | [$x,$y,$x]' at line number 424
Test #87: '[1,2,3][] as $x | [[4,5,6,7][$x]]' at line number 428
Test #88: '42 as $x | . | . | . + 432 | $x + 1' at line number 434
Test #89: '1 as $x | [$x,$x,$x as $x | $x]' at line number 438
Test #90: '[1, {c:3, d:4}] as [$a, {c:$b, b:$c}] | $a, $b, $c' at line number 442
Test #91: '. as {as: $kw, "str": $str, ("e"+"x"+"p"): $exp} | [$kw, $str, $exp]' at line number 448
Test #92: '.[] as [$a, $b] | [$b, $a]' at line number 452
Test #93: '. as $i | . as [$i] | $i' at line number 457
Test #94: '. as [$i] | . as $i | $i' at line number 461
Test #95: '. as [] | null' at line number 466
Test #96: '. as {} | null' at line number 470
Test #97: '1+1' at line number 479
Test #98: '1+1' at line number 483
Test #99: '2-1' at line number 487
Test #100: '2-(-1)' at line number 491
Test #101: '1e+0+0.001e3' at line number 495
Test #102: '.+4' at line number 499
Test #103: '.+null' at line number 503
Test #104: 'null+.' at line number 507
Test #105: '.a+.b' at line number 511
Test #106: '[1,2,3] + [.]' at line number 515
Test #107: '{"a":1} + {"b":2} + {"c":3}' at line number 519
Test #108: '"asdf" + "jkl;" + . + . + .' at line number 523
Test #109: '"\u0000\u0020\u0000" + .' at line number 527
Test #110: '42 - .' at line number 531
Test #111: '[1,2,3,4,1] - [.,3]' at line number 535
Test #112: '[10 * 20, 20 / .]' at line number 539
Test #113: '1 + 2 * 2 + 10 / 2' at line number 543
Test #114: '[16 / 4 / 2, 16 / 4 * 2, 16 - 4 - 2, 16 - 4 + 2]' at line number 547
Test #115: '1e-19 + 1e-20 - 5e-21' at line number 551
Test #116: '1 / 1e-17' at line number 555
Test #117: '9E999999999, 9999999999E999999990, 1E-999999999, 0.000000001E-999999990' at line number 559
Test #118: '5E500000000 > 5E-5000000000, 10000E500000000 > 10000E-5000000000' at line number 566
Test #119: '(1e999999999, 10e999999999) > (1e-1147483646, 0.1e-1147483646)' at line number 572
Test #120: '25 % 7' at line number 579
Test #121: '49732 % 472' at line number 583
Test #122: '[(infinite, -infinite) % (1, -1, infinite)]' at line number 587
Test #123: '[nan % 1, 1 % nan | isnan]' at line number 591
Test #124: '1 + tonumber + ("10" | tonumber)' at line number 595
Test #125: '[{"a":42},.object,10,.num,false,true,null,"b",[1,4]] | .[] as $x | [$x == .[]]' at line number 599
Test #126: '[.[] | length]' at line number 611
Test #127: 'utf8bytelength' at line number 615
Test #128: '[.[] | try utf8bytelength catch .]' at line number 619
Test #129: 'map(keys)' at line number 624
Test #130: '[1,2,empty,3,empty,4]' at line number 628
Test #131: 'map(add)' at line number 632
Test #132: 'map_values(.+1)' at line number 636
Test #133: 'def f: . + 1; def g: def g: . + 100; f | g | f; (f | g), g' at line number 645
Test #134: 'def f: (1000,2000); f' at line number 650
Test #135: 'def f(a;b;c;d;e;f): [a+1,b,c,d,e,f]; f(.[0];.[1];.[0];.[0];.[0];.[0])' at line number 655
Test #136: 'def f: 1; def g: f, def f: 2; def g: 3; f, def f: g; f, g; def f: 4; [f, def f: g; def g: 5; f, g]+[f,g]' at line number 659
Test #137: 'def a: 0; . | a' at line number 664
Test #138: 'def f(a;b;c;d;e;f;g;h;i;j): [j,i,h,g,f,e,d,c,b,a]; f(.[0];.[1];.[2];.[3];.[4];.[5];.[6];.[7];.[8];.[9])' at line number 669
Test #139: '([1,2] + [4,5])' at line number 673
Test #140: 'true' at line number 677
Test #141: 'null,1,null' at line number 681
Test #142: '[1,2,3]' at line number 687
Test #143: '[.[]|floor]' at line number 691
Test #144: '[.[]|sqrt]' at line number 695
Test #145: '(add / length) as $m | map((. - $m) as $d | $d * $d) | add / length | sqrt' at line number 699
Test #146: 'atan * 4 * 1000000|floor / 1000000' at line number 708
Test #147: '[(3.141592 / 2) * (range(0;20) / 20)|cos * 1000000|floor / 1000000]' at line number 712
Test #148: '[(3.141592 / 2) * (range(0;20) / 20)|sin * 1000000|floor / 1000000]' at line number 716
Test #149: 'def f(x): x | x; f([.], . + [42])' at line number 721
Test #150: 'def f: .+1; def g: f; def f: .+100; def f(a):a+.+11; [(g|f(20)), f]' at line number 729
Test #151: 'def id(x):x; 2000 as $x | def f(x):1 as $x | id([$x, x, x]); def g(x): 100 as $x | f($x,$x+x); g($x)' at line number 734
Test #152: 'def x(a;b): a as $a | b as $b | $a + $b; def y($a;$b): $a + $b; def check(a;b): [x(a;b)] == [y(a;b)]; check(.[];.[]*2)' at line number 739
Test #153: '[[20,10][1,0] as $x | def f: (100,200) as $y | def g: [$x + $y, .]; . + $x | g; f[0] | [f][0][1] | f]' at line number 745
Test #154: 'def fac: if . == 1 then 1 else . * (. - 1 | fac) end; [.[] | fac]' at line number 750
Test #155: 'reduce .[] as $x (0; . + $x)' at line number 760
Test #156: 'reduce .[] as [$i, {j:$j}] (0; . + $i - $j)' at line number 764
Test #157: 'reduce [[1,2,10], [3,4,10]][] as [$i,$j] (0; . + $i * $j)' at line number 768
Test #158: 'reduce . as $n (.; .)' at line number 773
Test #159: '. as {$a, b: [$c, {$d}]} | [$a, $c, $d]' at line number 778
Test #160: '. as {$a, $b:[$c, $d]}| [$a, $b, $c, $d]' at line number 782
Test #161: '.[] | . as {$a, b: [$c, {$d}]} ?// [$a, {$b}, $e] ?// $f | [$a, $b, $c, $d, $e, $f]' at line number 787
Test #162: '.[] | . as {a:$a} ?// {a:$a} ?// {a:$a} | $a' at line number 794
Test #163: '.[] as {a:$a} ?// {a:$a} ?// {a:$a} | $a' at line number 798
Test #164: '[[3],[4],[5],6][] | . as {a:$a} ?// {a:$a} ?// {a:$a} | $a' at line number 802
Test #165: '[[3],[4],[5],6] | .[] as {a:$a} ?// {a:$a} ?// {a:$a} | $a' at line number 806
Test #166: '.[] | . as {a:$a} ?// {a:$a} ?// $a | $a' at line number 810
Test #167: '.[] as {a:$a} ?// {a:$a} ?// $a | $a' at line number 817
Test #168: '[[3],[4],[5],6][] | . as {a:$a} ?// {a:$a} ?// $a | $a' at line number 824
Test #169: '[[3],[4],[5],6] | .[] as {a:$a} ?// {a:$a} ?// $a | $a' at line number 831
Test #170: '.[] | . as {a:$a} ?// $a ?// {a:$a} | $a' at line number 838
Test #171: '.[] as {a:$a} ?// $a ?// {a:$a} | $a' at line number 845
Test #172: '[[3],[4],[5],6][] | . as {a:$a} ?// $a ?// {a:$a} | $a' at line number 852
Test #173: '[[3],[4],[5],6] | .[] as {a:$a} ?// $a ?// {a:$a} | $a' at line number 859
Test #174: '.[] | . as $a ?// {a:$a} ?// {a:$a} | $a' at line number 866
Test #175: '.[] as $a ?// {a:$a} ?// {a:$a} | $a' at line number 873
Test #176: '[[3],[4],[5],6][] | . as $a ?// {a:$a} ?// {a:$a} | $a' at line number 880
Test #177: '[[3],[4],[5],6] | .[] as $a ?// {a:$a} ?// {a:$a} | $a' at line number 887
Test #178: '. as $dot|any($dot[];not)' at line number 894
Test #179: '. as $dot|any($dot[];not)' at line number 898
Test #180: '. as $dot|all($dot[];.)' at line number 902
Test #181: '. as $dot|all($dot[];.)' at line number 906
Test #182: 'any(true, error; .)' at line number 911
Test #183: 'all(false, error; .)' at line number 915
Test #184: 'any(not)' at line number 919
Test #185: 'all(not)' at line number 923
Test #186: 'any(not)' at line number 927
Test #187: 'all(not)' at line number 931
Test #188: '[any,all]' at line number 935
Test #189: '[any,all]' at line number 939
Test #190: '[any,all]' at line number 943
Test #191: '[any,all]' at line number 947
Test #192: '[any,all]' at line number 951
Test #193: 'path(.foo[0,1])' at line number 959
Test #194: 'path(.[] | select(.>3))' at line number 964
Test #195: 'path(.)' at line number 968
Test #196: 'try path(.a | map(select(.b == 0))) catch .' at line number 972
Test #197: 'try path(.a | map(select(.b == 0)) | .[0]) catch .' at line number 976
Test #198: 'try path(.a | map(select(.b == 0)) | .c) catch .' at line number 980
Test #199: 'try path(.a | map(select(.b == 0)) | .[]) catch .' at line number 984
Test #200: 'path(.a[path(.b)[0]])' at line number 988
Test #201: '[paths]' at line number 992
Test #202: '["foo",1] as $p | getpath($p), setpath($p; 20), delpaths([$p])' at line number 996
Test #203: 'map(getpath([2])), map(setpath([2]; 42)), map(delpaths([[2]]))' at line number 1002
Test #204: 'map(delpaths([[0,"foo"]]))' at line number 1008
Test #205: '["foo",1] as $p | getpath($p), setpath($p; 20), delpaths([$p])' at line number 1012
Test #206: 'delpaths([[-200]])' at line number 1018
Test #207: 'try delpaths(0) catch .' at line number 1022
Test #208: 'del(.), del(empty), del((.foo,.bar,.baz) | .[2,3,0]), del(.foo[0], .bar[0], .foo, .baz.bar[0].x)' at line number 1026
Test #209: 'del(.[1], .[-6], .[2], .[-3:9])' at line number 1033
Test #210: 'setpath([-1]; 1)' at line number 1038
Test #211: 'pick(.a.b.c)' at line number 1042
Test #212: 'pick(first)' at line number 1046
Test #213: 'pick(first|first)' at line number 1050
Test #214: 'try pick(last) catch .' at line number 1055
Test #215: '.message = "goodbye"' at line number 1062
Test #216: '.foo = .bar' at line number 1066
Test #217: '.foo |= .+1' at line number 1070
Test #218: '.[] += 2, .[] *= 2, .[] -= 2, .[] /= 2, .[] %=2' at line number 1074
Test #219: '[.[] % 7]' at line number 1082
Test #220: '.foo += .foo' at line number 1086
Test #221: '.[0].a |= {"old":., "new":(.+1)}' at line number 1090
Test #222: 'def inc(x): x |= .+1; inc(.[].a)' at line number 1094
Test #223: '.[] | try (getpath(["a",0,"b"]) |= 5) catch .' at line number 1099
Test #224: '(.[] | select(. >= 2)) |= empty' at line number 1111
Test #225: '.[] |= select(. % 2 == 0)' at line number 1115
Test #226: '.foo[1,4,2,3] |= empty' at line number 1119
Test #227: '.[2][3] = 1' at line number 1123
Test #228: '.foo[2].bar = 1' at line number 1127
Test #229: 'try ((map(select(.a == 1))[].b) = 10) catch .' at line number 1131
Test #230: 'try ((map(select(.a == 1))[].a) |= .+1) catch .' at line number 1135
Test #231: 'def x: .[1,2]; x=10' at line number 1139
Test #232: 'try (def x: reverse; x=10) catch .' at line number 1143
Test #233: '.[] = 1' at line number 1147
Test #234: '[.[] | if .foo then "yep" else "nope" end]' at line number 1155
Test #235: '[.[] | if .baz then "strange" elif .foo then "yep" else "nope" end]' at line number 1159
Test #236: '[if 1,null,2 then 3 else 4 end]' at line number 1163
Test #237: '[if empty then 3 else 4 end]' at line number 1167
Test #238: '[if 1 then 3,4 else 5 end]' at line number 1171
Test #239: '[if null then 3 else 5,6 end]' at line number 1175
Test #240: '[if true then 3 end]' at line number 1179
Test #241: '[if false then 3 end]' at line number 1183
Test #242: '[if false then 3 else . end]' at line number 1187
Test #243: '[if false then 3 elif false then 4 end]' at line number 1191
Test #244: '[if false then 3 elif false then 4 else . end]' at line number 1195
Test #245: '[.[] | [.foo[] // .bar]]' at line number 1199
Test #246: '.[] //= .[0]' at line number 1203
Test #247: '.[] | [.[0] and .[1], .[0] or .[1]]' at line number 1207
Test #248: '[.[] | not]' at line number 1214
Test #249: '[10 > 0, 10 > 10, 10 > 20, 10 < 0, 10 < 10, 10 < 20]' at line number 1219
Test #250: '[10 >= 0, 10 >= 10, 10 >= 20, 10 <= 0, 10 <= 10, 10 <= 20]' at line number 1223
Test #251: '[ 10 == 10, 10 != 10, 10 != 11, 10 == 11]' at line number 1228
Test #252: '["hello" == "hello", "hello" != "hello", "hello" == "world", "hello" != "world" ]' at line number 1232
Test #253: '[[1,2,3] == [1,2,3], [1,2,3] != [1,2,3], [1,2,3] == [4,5,6], [1,2,3] != [4,5,6]]' at line number 1236
Test #254: '[{"foo":42} == {"foo":42},{"foo":42} != {"foo":42}, {"foo":42} != {"bar":42}, {"foo":42} == {"bar":42}]' at line number 1240
Test #255: '[{"foo":[1,2,{"bar":18},"world"]} == {"foo":[1,2,{"bar":18},"world"]},{"foo":[1,2,{"bar":18},"world"]} == {"foo":[1,2,{"bar":19},"world"]}]' at line number 1245
Test #256: '[("foo" | contains("foo")), ("foobar" | contains("foo")), ("foo" | contains("foobar"))]' at line number 1250
Test #257: '[contains(""), contains("\u0000")]' at line number 1255
Test #258: '[contains(""), contains("a"), contains("ab"), contains("c"), contains("d")]' at line number 1259
Test #259: '[contains("cd"), contains("b\u0000"), contains("ab\u0000")]' at line number 1263
Test #260: '[contains("b\u0000c"), contains("b\u0000cd"), contains("b\u0000cd")]' at line number 1267
Test #261: '[contains("@"), contains("\u0000@"), contains("\u0000what")]' at line number 1271
Test #262: '[.[]|try if . == 0 then error("foo") elif . == 1 then .a elif . == 2 then empty else . end catch .]' at line number 1277
Test #263: '[.[]|(.a, .a)?]' at line number 1281
Test #264: '[[.[]|[.a,.a]]?]' at line number 1285
Test #265: '.[] | try error catch .' at line number 1289
Test #266: 'try error("\($__loc__)") catch .' at line number 1295
Test #267: '[.[]|startswith("foo")]' at line number 1300
Test #268: '[.[]|endswith("foo")]' at line number 1304
Test #269: '[.[] | split(", ")]' at line number 1308
Test #270: 'split("")' at line number 1312
Test #271: '[.[]|ltrimstr("foo")]' at line number 1316
Test #272: '[.[]|rtrimstr("foo")]' at line number 1320
Test #273: '[(index(","), rindex(",")), indices(",")]' at line number 1324
Test #274: '[ index("aba"), rindex("aba"), indices("aba") ]' at line number 1328
Test #275: 'indices(1)' at line number 1332
Test #276: 'indices([1,2])' at line number 1336
Test #277: 'indices([1,2])' at line number 1340
Test #278: 'indices(", ")' at line number 1344
Test #279: '[.[]|split(",")]' at line number 1348
Test #280: '[.[]|split(", ")]' at line number 1352
Test #281: '[.[] * 3]' at line number 1356
Test #282: '[.[] * "abc"]' at line number 1360
Test #283: '[. * (nan,-nan)]' at line number 1364
Test #284: '[.[] / ","]' at line number 1368
Test #285: '[.[] / ", "]' at line number 1372
Test #286: 'map(.[1] as $needle | .[0] | contains($needle))' at line number 1376
Test #287: 'map(.[1] as $needle | .[0] | contains($needle))' at line number 1380
Test #288: '[({foo: 12, bar:13} | contains({foo: 12})), ({foo: 12} | contains({})), ({foo: 12, bar:13} | contains({baz:14}))]' at line number 1384
Test #289: '{foo: {baz: 12, blap: {bar: 13}}, bar: 14} | contains({bar: 14, foo: {blap: {}}})' at line number 1388
Test #290: '{foo: {baz: 12, blap: {bar: 13}}, bar: 14} | contains({bar: 14, foo: {blap: {bar: 14}}})' at line number 1392
Test #291: 'sort' at line number 1396
Test #292: '(sort_by(.b) | sort_by(.a)), sort_by(.a, .b), sort_by(.b, .c), group_by(.b), group_by(.a + .b - .c == 2)' at line number 1400
Test #293: 'unique' at line number 1408
Test #294: 'unique' at line number 1412
Test #295: '[min, max, min_by(.[1]), max_by(.[1]), min_by(.[2]), max_by(.[2])]' at line number 1416
Test #296: '[min,max,min_by(.),max_by(.)]' at line number 1420
Test #297: '.foo[.baz]' at line number 1424
Test #298: '.[] | .error = "no, it's OK"' at line number 1428
Test #299: '[{a:1}] | .[] | .a=999' at line number 1432
Test #300: 'to_entries' at line number 1436
Test #301: 'from_entries' at line number 1440
Test #302: 'with_entries(.key |= "KEY_" + .)' at line number 1444
Test #303: 'map(has("foo"))' at line number 1448
Test #304: 'map(has(2))' at line number 1452
Test #305: 'has(nan)' at line number 1456
Test #306: 'keys' at line number 1460
Test #307: '[][.]' at line number 1464
Test #308: 'map([1,2][0:.])' at line number 1468
Test #309: '{"k": {"a": 1, "b": 2}} * .' at line number 1474
Test #310: '{"k": {"a": 1, "b": 2}, "hello": {"x": 1}} * .' at line number 1478
Test #311: '{"k": {"a": 1, "b": 2}, "hello": 1} * .' at line number 1482
Test #312: '{"a": {"b": 1}, "c": {"d": 2}, "e": 5} * .' at line number 1486
Test #313: '[.[]|arrays]' at line number 1490
Test #314: '[.[]|objects]' at line number 1494
Test #315: '[.[]|iterables]' at line number 1498
Test #316: '[.[]|scalars]' at line number 1502
Test #317: '[.[]|values]' at line number 1506
Test #318: '[.[]|booleans]' at line number 1510
Test #319: '[.[]|nulls]' at line number 1514
Test #320: 'flatten' at line number 1518
Test #321: 'flatten(0)' at line number 1522
Test #322: 'flatten(2)' at line number 1526
Test #323: 'flatten(2)' at line number 1530
Test #324: 'try flatten(-1) catch .' at line number 1534
Test #325: 'transpose' at line number 1538
Test #326: 'transpose' at line number 1542
Test #327: 'ascii_upcase' at line number 1546
Test #328: 'bsearch(0,2,4)' at line number 1550
Test #329: 'strftime("%Y-%m-%dT%H:%M:%SZ")' at line number 1558
Test #330: 'strftime("%A, %B %d, %Y")' at line number 1562
*** Expected "Tuesday, June 30, 2015", but got "Dienstag, Juni 30, 2015" for test at line number 1564: strftime("%A, %B %d, %Y")
Test #331: 'gmtime' at line number 1566
Test #332: 'try strftime("%Y-%m-%dT%H:%M:%SZ") catch .' at line number 1571
Test #333: 'try strflocaltime("%Y-%m-%dT%H:%M:%SZ") catch .' at line number 1575
Test #334: 'try mktime catch .' at line number 1579
Test #335: 'import "a" as foo; import "b" as bar; def fooa: foo::a; [fooa, bar::a, bar::b, foo::a]' at line number 1584
Test #336: 'import "c" as foo; [foo::a, foo::c]' at line number 1588
Test #337: 'include "c"; [a, c]' at line number 1592
Test #338: 'import "data" as $e; import "data" as $d; [$d[].this,$e[].that,$d::d[].this,$e::e[].that]|join(";")' at line number 1596
Test #339: 'import "data" as $a; import "data" as $b; def f: {$a, $b}; f' at line number 1601
Test #340: 'include "shadow1"; e' at line number 1605
Test #341: 'include "shadow1"; include "shadow2"; e' at line number 1609
Test #342: 'import "shadow1" as f; import "shadow2" as f; import "shadow1" as e; [e::e, f::e]' at line number 1613
Test #343: 'module (.+1); 0' at line number 1618
Test #344: 'module []; 0' at line number 1622
Test #345: 'include "a" (.+1); 0' at line number 1626
Test #346: 'include "a" []; 0' at line number 1630
Test #347: 'include "\ "; 0' at line number 1634
Test #348: 'include "\(a)"; 0' at line number 1638
Test #349: 'modulemeta' at line number 1641
Test #350: 'modulemeta | .deps | length' at line number 1645
Test #351: 'modulemeta | .defs | length' at line number 1649
Test #352: 'import "syntaxerror" as e; .' at line number 1654
Test #353: '%::wat' at line number 1658
Test #354: 'import "test_bind_order" as check; check::check' at line number 1661
Test #355: 'try -. catch .' at line number 1665
Test #356: 'join(",")' at line number 1669
Test #357: '.[] | join(",")' at line number 1673
Test #358: '.[] | join(",")' at line number 1680
Test #359: 'try join(",") catch .' at line number 1685
Test #360: 'try join(",") catch .' at line number 1689
Test #361: '{if:0,and:1,or:2,then:3,else:4,elif:5,end:6,as:7,def:8,reduce:9,foreach:10,try:11,catch:12,label:13,import:14,include:15,module:16}' at line number 1693
Test #362: 'try (1/.) catch .' at line number 1697
Test #363: 'try (1/0) catch .' at line number 1701
Test #364: 'try (0/0) catch .' at line number 1705
Test #365: 'try (1%.) catch .' at line number 1709
Test #366: 'try (1%0) catch .' at line number 1713
Test #367: '[range(-52;52;1)] as $powers | [$powers[]|pow(2;.)|log2|round] == $powers' at line number 1718
Test #368: '[range(-99/2;99/2;1)] as $orig | [$orig[]|pow(2;.)|log2] as $back | ($orig|keys)[]|. as $k | (($orig|.[$k])-($back|.[$k]))|if . < 0 then . * -1 else . end|select(.>.00005)' at line number 1722
Test #369: '}' at line number 1726
Test #370: '(.[{}] = 0)?' at line number 1729
Test #371: 'INDEX(range(5)|[., "foo\(.)"]; .[0])' at line number 1732
Test #372: 'JOIN({"0":[0,"abc"],"1":[1,"bcd"],"2":[2,"def"],"3":[3,"efg"],"4":[4,"fgh"]}; .[0]|tostring)' at line number 1736
Test #373: 'range(5;10)|IN(range(10))' at line number 1740
Test #374: 'range(5;13)|IN(range(0;10;3))' at line number 1748
Test #375: 'range(10;12)|IN(range(10))' at line number 1759
Test #376: 'IN(range(10;20); range(10))' at line number 1764
Test #377: 'IN(range(5;20); range(10))' at line number 1768
Test #378: '(.a as $x | .b) = "b"' at line number 1773
Test #379: '(.. | select(type == "object" and has("b") and (.b | type) == "array")|.b) |= .[0]' at line number 1778
Test #380: 'isempty(empty)' at line number 1782
Test #381: 'isempty(range(3))' at line number 1786
Test #382: 'isempty(1,error("foo"))' at line number 1790
Test #383: 'index("")' at line number 1795
Test #384: 'builtins|length > 10' at line number 1800
Test #385: '"-1"|IN(builtins[] / "/"|.[1])' at line number 1804
Test #386: 'all(builtins[] / "/"; .[1]|tonumber >= 0)' at line number 1808
Test #387: 'builtins|any(.[:1] == "_")' at line number 1812
Test #388: 'map(. == 1)' at line number 1833
Test #389: '.[0] | tostring' at line number 1839
Test #390: '.x | tojson' at line number 1843
Test #391: '13911860366432393 == 13911860366432392' at line number 1847
Test #392: '. - 10' at line number 1854
Test #393: '.[0] - 10' at line number 1858
Test #394: '.x - 10' at line number 1862
Test #395: '. |= try . catch .' at line number 1866
Test #396: 'abs' at line number 1871
Test #397: 'map(abs)' at line number 1875
Test #398: 'map(fabs == length) | unique' at line number 1879
Test #399: 'map(abs)' at line number 1884
Test #400: '123 as $label | $label' at line number 1890
Test #401: '[ label $if | range(10) | ., (select(. == 5) | break $if) ]' at line number 1894
Test #402: 'reduce .[] as $then (4 as $else | $else; . as $elif | . + $then * $elif)' at line number 1898
Test #403: '1 as $foreach | 2 as $and | 3 as $or | { $foreach, $and, $or, a }' at line number 1902
Test #404: '[ foreach .[] as $try (1 as $catch | $catch - 1; . + $try; .) ]' at line number 1906
Test #405: '{ a, $__loc__, c }' at line number 1913
Test #406: '1 as $x | "2" as $y | "3" as $z | { $x, as, $y: 4, ($z): 5, if: 6, foo: 7 }' at line number 1917
Test #407: 'fromjson | isnan' at line number 1924
Test #408: 'tojson | fromjson' at line number 1928
Test #409: 'try input catch .' at line number 1935
Test #410: 'debug' at line number 1939
Test #411: '"foo" | try ((try . catch "caught too much") | error) catch "caught just right"' at line number 1944
Test #412: '.[]|(try (if .=="hi" then . else error end) catch empty) | "\(.) there!"' at line number 1948
Test #413: 'try (["hi","ho"]|.[]|(try . catch (if .=="ho" then "BROKEN"|error else empty end)) | if .=="ho" then error else "\(.) there!" end) catch "caught outside \(.)"' at line number 1952
Test #414: '.[]|(try . catch (if .=="ho" then "BROKEN"|error else empty end)) | if .=="ho" then error else "\(.) there!" end' at line number 1957
Test #415: 'try (try error catch "inner catch \(.)") catch "outer catch \(.)"' at line number 1961
Test #416: 'try ((try error catch "inner catch \(.)")|error) catch "outer catch \(.)"' at line number 1965
Test #417: 'first(.?,.?)' at line number 1970
Test #418: '{foo: "bar"} | .foo |= .?' at line number 1975
Test #419: '. |= try 2' at line number 1980
Test #420: '. |= try 2 catch 3' at line number 1984
Test #421: '.[] |= try tonumber' at line number 1988
Test #422: 'any(keys[]|tostring?;true)' at line number 1993
Test #423: 'implode|explode' at line number 2001
Test #424: 'map(try implode catch .)' at line number 2005
Test #425: 'walk(.)' at line number 2010
Test #426: 'walk(1)' at line number 2014
Test #427: '[walk(.,1)]' at line number 2019
Test #428: 'walk(select(IN({}, []) | not))' at line number 2024
Test #429: '[range(10)] | .[1.2:3.5]' at line number 2029
Test #430: '[range(10)] | .[1.5:3.5]' at line number 2033
Test #431: '[range(10)] | .[1.7:3.5]' at line number 2037
Test #432: '[range(10)] | .[1.7:4294967295]' at line number 2041
Test #433: '[range(10)] | .[1.7:-4294967296]' at line number 2045
Test #434: '[[range(10)] | .[1.1,1.5,1.7]]' at line number 2049
Test #435: '[range(5)] | .[1.1] = 5' at line number 2053
Test #436: '[range(3)] | .[nan:1]' at line number 2057
Test #437: '[range(3)] | .[1:nan]' at line number 2061
Test #438: '[range(3)] | .[nan]' at line number 2065
Test #439: 'try ([range(3)] | .[nan] = 9) catch .' at line number 2069
Test #440: 'try ("foobar" | .[1.5:3.5] = "xyz") catch .' at line number 2073
Test #441: 'try ([range(10)] | .[1.5:3.5] = ["xyz"]) catch .' at line number 2077
Test #442: 'try ("foobar" | .[1.5]) catch .' at line number 2081
441 of 442 tests passed (0 malformed, 0 skipped)