From 66ec342f47652d2ff1271f38ca2cf73e6aed87e7 Mon Sep 17 00:00:00 2001 From: John Kerl Date: Thu, 3 Sep 2020 00:16:47 -0400 Subject: [PATCH] reg_test --- go/reg_test/dev | 123 + go/reg_test/expected/out | 58841 ++++++++++++++++ go/reg_test/expected/out-dev | 695 + go/reg_test/input/a.csv | 3 + go/reg_test/input/a.pprint | 3 + go/reg_test/input/abixy | 10 + go/reg_test/input/abixy-het | 10 + go/reg_test/input/abixy-wide | 2000 + go/reg_test/input/abixy-wide-short | 20 + go/reg_test/input/abixy.csv | 11 + go/reg_test/input/abixy.dkvp | 10 + go/reg_test/input/abixy.json | 10 + go/reg_test/input/abixy.md | 12 + go/reg_test/input/abixy.nidx | 10 + go/reg_test/input/abixy.pprint | 11 + go/reg_test/input/abixy.tsv | 11 + go/reg_test/input/abixy.xtab | 59 + go/reg_test/input/absent.dkvp | 4 + go/reg_test/input/arrays.json | 6 + go/reg_test/input/b.csv | 2 + go/reg_test/input/b.pprint | 2 + go/reg_test/input/bom-dquote-header.csv | 3 + go/reg_test/input/bom.csv | 3 + go/reg_test/input/braced.csv | 3 + go/reg_test/input/c.csv | 6 + go/reg_test/input/c.pprint | 6 + go/reg_test/input/capture-lengths.dkvp | 13 + go/reg_test/input/capture.dkvp | 4 + go/reg_test/input/clean-whitespace.csv | 17 + go/reg_test/input/comma-at-eof.csv | 3 + .../input/comments/comments1-atat.dkvp | 3 + go/reg_test/input/comments/comments1.csv | 4 + go/reg_test/input/comments/comments1.dkvp | 3 + go/reg_test/input/comments/comments1.json | 3 + go/reg_test/input/comments/comments1.nidx | 3 + go/reg_test/input/comments/comments1.xtab | 8 + .../input/comments/comments2-atat.dkvp | 3 + go/reg_test/input/comments/comments2.csv | 7 + go/reg_test/input/comments/comments2.dkvp | 3 + go/reg_test/input/comments/comments2.json | 3 + go/reg_test/input/comments/comments2.nidx | 3 + go/reg_test/input/comments/comments2.xtab | 13 + .../input/comments/comments3-atat.dkvp | 3 + go/reg_test/input/comments/comments3.dkvp | 3 + go/reg_test/input/comments/comments3.json | 3 + go/reg_test/input/comments/comments3.nidx | 3 + go/reg_test/input/d.csv | 5 + go/reg_test/input/d.pprint | 5 + go/reg_test/input/date1.csv | 5 + go/reg_test/input/date2.csv | 5 + go/reg_test/input/dot-match.csv | 4 + go/reg_test/input/dots.pprint-crlf | 11 + go/reg_test/input/dots.xtab | 6 + go/reg_test/input/double-ps.dkvp | 2 + go/reg_test/input/e.csv | 4 + go/reg_test/input/e.pprint | 4 + go/reg_test/input/embedded-ips.xtab | 3 + go/reg_test/input/env-assign.sh | 4 + go/reg_test/input/env-var.dkvp | 3 + go/reg_test/input/escapes.json | 2 + go/reg_test/input/example.usv | 1 + go/reg_test/input/f.csv | 0 go/reg_test/input/f.pprint | 0 go/reg_test/input/fill-down.csv | 4 + go/reg_test/input/filter-example.dsl | 1 + go/reg_test/input/filter-script-piece-1 | 1 + go/reg_test/input/filter-script-piece-2 | 1 + go/reg_test/input/freq.dkvp | 17 + go/reg_test/input/from-first.csv | 7 + go/reg_test/input/fsec2xhms | 28 + go/reg_test/input/g.csv | 5 + go/reg_test/input/g.pprint | 5 + go/reg_test/input/gmt2sec | 29 + go/reg_test/input/gsub.dat | 6 + go/reg_test/input/having-fields-regex.dkvp | 6 + go/reg_test/input/het-join-left | 10 + go/reg_test/input/het-join-right-r0 | 3 + go/reg_test/input/het-join-right-r1 | 3 + go/reg_test/input/het-join-right-r11 | 5 + go/reg_test/input/het-join-right-r12 | 5 + go/reg_test/input/het-join-right-r13 | 5 + go/reg_test/input/het-join-right-r14 | 5 + go/reg_test/input/het-join-right-r15 | 5 + go/reg_test/input/het-join-right-r16 | 5 + go/reg_test/input/het-join-right-r2 | 3 + go/reg_test/input/het-join-right-r22 | 5 + go/reg_test/input/het-join-right-r23 | 5 + go/reg_test/input/het-join-right-r24 | 5 + go/reg_test/input/het-join-right-r25 | 5 + go/reg_test/input/het-join-right-r26 | 5 + go/reg_test/input/het-join-right-r3 | 3 + go/reg_test/input/het-join-right-r33 | 5 + go/reg_test/input/het-join-right-r34 | 5 + go/reg_test/input/het-join-right-r35 | 5 + go/reg_test/input/het-join-right-r36 | 5 + go/reg_test/input/het-join-right-r4 | 3 + go/reg_test/input/het-join-right-r44 | 5 + go/reg_test/input/het-join-right-r45 | 5 + go/reg_test/input/het-join-right-r46 | 5 + go/reg_test/input/het-join-right-r5 | 3 + go/reg_test/input/het-join-right-r55 | 5 + go/reg_test/input/het-join-right-r56 | 5 + go/reg_test/input/het-join-right-r6 | 3 + go/reg_test/input/het-join-right-r66 | 5 + go/reg_test/input/het.csv | 14 + go/reg_test/input/het.dkvp | 12 + go/reg_test/input/int-float.dkvp | 3 + go/reg_test/input/int64arith.dkvp | 7 + go/reg_test/input/int64io.dkvp | 5 + go/reg_test/input/ints.dkvp | 30 + go/reg_test/input/join-het.dkvp | 5 + go/reg_test/input/joina.dkvp | 7 + go/reg_test/input/joinb.dkvp | 7 + go/reg_test/input/json-output-options.dkvp | 3 + go/reg_test/input/line-ending-cr.bin | 1 + go/reg_test/input/line-ending-crlf.bin | 5 + go/reg_test/input/line-ending-lf.bin | 5 + go/reg_test/input/line-term-crlf-wrap.json | 12 + go/reg_test/input/line-term-crlf.csv | 11 + go/reg_test/input/line-term-crlf.dkvp | 10 + go/reg_test/input/line-term-crlf.json | 10 + go/reg_test/input/line-term-crlf.pprint | 11 + go/reg_test/input/line-term-crlf.xtab | 59 + go/reg_test/input/line-term-lf-wrap.json | 12 + go/reg_test/input/line-term-lf.csv | 11 + go/reg_test/input/line-term-lf.dkvp | 10 + go/reg_test/input/line-term-lf.json | 10 + go/reg_test/input/line-term-lf.pprint | 11 + go/reg_test/input/line-term-lf.xtab | 59 + go/reg_test/input/logi.dkvp | 22 + go/reg_test/input/mand.mlr | 73 + go/reg_test/input/merge-fields-abxy.dkvp | 20 + .../input/merge-fields-in-out-mixed.csv | 5 + go/reg_test/input/merge-fields-in-out.csv | 4 + go/reg_test/input/minmax.dkvp | 8 + go/reg_test/input/missings.dkvp | 3 + go/reg_test/input/mixed-types.xtab | 10 + go/reg_test/input/modarith.dat | 111 + go/reg_test/input/multi-format-join-a.csv | 5 + go/reg_test/input/multi-format-join-a.dkvp | 4 + go/reg_test/input/multi-format-join-a.json | 4 + go/reg_test/input/multi-format-join-b.csv | 5 + go/reg_test/input/multi-format-join-b.dkvp | 4 + go/reg_test/input/multi-format-join-b.json | 4 + go/reg_test/input/multi-ips.dkvp | 2 + go/reg_test/input/multi-sep.csv-crlf | 6 + go/reg_test/input/multi-sep.dkvp-crlf | 5 + go/reg_test/input/near-ovf.dkvp | 7 + .../input/nest-explode-vary-fs-ps.dkvp | 4 + go/reg_test/input/nest-explode.dkvp | 4 + go/reg_test/input/null-fields.csv | 6 + go/reg_test/input/null-fields.nidx | 5 + go/reg_test/input/null-vs-empty.dkvp | 3 + go/reg_test/input/nullvals.dkvp | 5 + go/reg_test/input/ofmt.dat | 3 + go/reg_test/input/page-aligned-final-ifs.dkvp | 64 + go/reg_test/input/page-aligned-final-irs.dkvp | 64 + .../input/page-aligned-final-no-ifs.dkvp | 64 + .../input/page-aligned-no-final-eol.xtab | 255 + .../input/page-aligned-no-final-irs.csvl | 64 + .../input/page-aligned-no-final-irs.dkvp | 64 + .../input/page-aligned-no-final-irs.nidx | 64 + go/reg_test/input/put-example.dsl | 2 + go/reg_test/input/put-script-piece-1 | 4 + go/reg_test/input/put-script-piece-2 | 3 + go/reg_test/input/put-script-piece-3 | 2 + go/reg_test/input/quote-original.csv | 4 + go/reg_test/input/ragged.csv | 4 + go/reg_test/input/regex.dkvp | 7 + go/reg_test/input/regularize.dkvp | 3 + go/reg_test/input/remove-empty-columns.csv | 4 + go/reg_test/input/repeat-input.dat | 4 + go/reg_test/input/repeats.dkvp | 57 + go/reg_test/input/reshape-long-ragged.dkvp | 8 + go/reg_test/input/reshape-long.tbl | 16 + go/reg_test/input/reshape-wide-ragged.dkvp | 5 + go/reg_test/input/reshape-wide.tbl | 6 + go/reg_test/input/rfc-csv/modify-defaults.csv | 3 + .../input/rfc-csv/narrow-truncated.csv | 5 + go/reg_test/input/rfc-csv/narrow.csv | 5 + .../input/rfc-csv/quoted-comma-truncated.csv | 3 + go/reg_test/input/rfc-csv/quoted-comma.csv | 3 + .../input/rfc-csv/quoted-crlf-truncated.csv | 4 + go/reg_test/input/rfc-csv/quoted-crlf.csv | 4 + .../input/rfc-csv/simple-truncated.csv | 3 + go/reg_test/input/rfc-csv/simple.csv-crlf | 4 + go/reg_test/input/scinot.dkvp | 26 + go/reg_test/input/scinot1.dkvp | 1 + go/reg_test/input/sec2gmt | 26 + go/reg_test/input/sec2xhms | 27 + go/reg_test/input/short | 3 + go/reg_test/input/short-circuit.dkvp | 3 + go/reg_test/input/sieve.mlr | 21 + go/reg_test/input/simple.tsv | 6 + go/reg_test/input/small | 10 + go/reg_test/input/small-nested.json | 21 + .../input/small-non-nested-wrapped.json | 12 + go/reg_test/input/small-non-nested.json | 10 + go/reg_test/input/sort-het.dkvp | 4 + go/reg_test/input/space-pad.dkvp | 2 + go/reg_test/input/space-pad.nidx | 2 + go/reg_test/input/space-pad.pprint | 2 + .../input/string-numeric-ordering.dkvp | 6 + go/reg_test/input/sub.dat | 4 + go/reg_test/input/subtab.dkvp | 6 + go/reg_test/input/subtab1.mlr | 1 + go/reg_test/input/subtab2.mlr | 1 + go/reg_test/input/subtab3.mlr | 1 + go/reg_test/input/subtab4.mlr | 1 + .../input/test-dsl-stack-allocation.mlr | 164 + go/reg_test/input/trivial-records.csv | 5 + go/reg_test/input/truncated.csv | 4 + go/reg_test/input/truncated.dkvp | 2 + go/reg_test/input/truncated.nidx | 2 + go/reg_test/input/truncated.pprint | 4 + go/reg_test/input/truncated.xtab-crlf | 6 + go/reg_test/input/typeof.dkvp | 12 + go/reg_test/input/unset1.dkvp | 1 + go/reg_test/input/unset4.dkvp | 4 + go/reg_test/input/utf8-1.csv | 3 + go/reg_test/input/utf8-2.csv | 2 + go/reg_test/input/utf8-align.dkvp | 3 + go/reg_test/input/utf8-align.nidx | 4 + go/reg_test/input/valgrind.txt | 219 + go/reg_test/input/x0to10.dat | 11 + go/reg_test/input/xy40.dkvp | 40 + go/reg_test/input/xyz2 | 2 + go/reg_test/input/xyz345 | 1 + go/reg_test/run | 7302 ++ 229 files changed, 71740 insertions(+) create mode 100755 go/reg_test/dev create mode 100644 go/reg_test/expected/out create mode 100644 go/reg_test/expected/out-dev create mode 100644 go/reg_test/input/a.csv create mode 100644 go/reg_test/input/a.pprint create mode 100644 go/reg_test/input/abixy create mode 100644 go/reg_test/input/abixy-het create mode 100644 go/reg_test/input/abixy-wide create mode 100644 go/reg_test/input/abixy-wide-short create mode 100644 go/reg_test/input/abixy.csv create mode 100644 go/reg_test/input/abixy.dkvp create mode 100644 go/reg_test/input/abixy.json create mode 100644 go/reg_test/input/abixy.md create mode 100644 go/reg_test/input/abixy.nidx create mode 100644 go/reg_test/input/abixy.pprint create mode 100644 go/reg_test/input/abixy.tsv create mode 100644 go/reg_test/input/abixy.xtab create mode 100644 go/reg_test/input/absent.dkvp create mode 100644 go/reg_test/input/arrays.json create mode 100644 go/reg_test/input/b.csv create mode 100644 go/reg_test/input/b.pprint create mode 100644 go/reg_test/input/bom-dquote-header.csv create mode 100644 go/reg_test/input/bom.csv create mode 100644 go/reg_test/input/braced.csv create mode 100644 go/reg_test/input/c.csv create mode 100644 go/reg_test/input/c.pprint create mode 100644 go/reg_test/input/capture-lengths.dkvp create mode 100644 go/reg_test/input/capture.dkvp create mode 100644 go/reg_test/input/clean-whitespace.csv create mode 100644 go/reg_test/input/comma-at-eof.csv create mode 100644 go/reg_test/input/comments/comments1-atat.dkvp create mode 100644 go/reg_test/input/comments/comments1.csv create mode 100644 go/reg_test/input/comments/comments1.dkvp create mode 100644 go/reg_test/input/comments/comments1.json create mode 100644 go/reg_test/input/comments/comments1.nidx create mode 100644 go/reg_test/input/comments/comments1.xtab create mode 100644 go/reg_test/input/comments/comments2-atat.dkvp create mode 100644 go/reg_test/input/comments/comments2.csv create mode 100644 go/reg_test/input/comments/comments2.dkvp create mode 100644 go/reg_test/input/comments/comments2.json create mode 100644 go/reg_test/input/comments/comments2.nidx create mode 100644 go/reg_test/input/comments/comments2.xtab create mode 100644 go/reg_test/input/comments/comments3-atat.dkvp create mode 100644 go/reg_test/input/comments/comments3.dkvp create mode 100644 go/reg_test/input/comments/comments3.json create mode 100644 go/reg_test/input/comments/comments3.nidx create mode 100644 go/reg_test/input/d.csv create mode 100644 go/reg_test/input/d.pprint create mode 100644 go/reg_test/input/date1.csv create mode 100644 go/reg_test/input/date2.csv create mode 100644 go/reg_test/input/dot-match.csv create mode 100644 go/reg_test/input/dots.pprint-crlf create mode 100644 go/reg_test/input/dots.xtab create mode 100644 go/reg_test/input/double-ps.dkvp create mode 100644 go/reg_test/input/e.csv create mode 100644 go/reg_test/input/e.pprint create mode 100644 go/reg_test/input/embedded-ips.xtab create mode 100755 go/reg_test/input/env-assign.sh create mode 100644 go/reg_test/input/env-var.dkvp create mode 100644 go/reg_test/input/escapes.json create mode 100644 go/reg_test/input/example.usv create mode 100644 go/reg_test/input/f.csv create mode 100644 go/reg_test/input/f.pprint create mode 100644 go/reg_test/input/fill-down.csv create mode 100644 go/reg_test/input/filter-example.dsl create mode 100644 go/reg_test/input/filter-script-piece-1 create mode 100644 go/reg_test/input/filter-script-piece-2 create mode 100644 go/reg_test/input/freq.dkvp create mode 100644 go/reg_test/input/from-first.csv create mode 100644 go/reg_test/input/fsec2xhms create mode 100644 go/reg_test/input/g.csv create mode 100644 go/reg_test/input/g.pprint create mode 100644 go/reg_test/input/gmt2sec create mode 100644 go/reg_test/input/gsub.dat create mode 100644 go/reg_test/input/having-fields-regex.dkvp create mode 100644 go/reg_test/input/het-join-left create mode 100644 go/reg_test/input/het-join-right-r0 create mode 100644 go/reg_test/input/het-join-right-r1 create mode 100644 go/reg_test/input/het-join-right-r11 create mode 100644 go/reg_test/input/het-join-right-r12 create mode 100644 go/reg_test/input/het-join-right-r13 create mode 100644 go/reg_test/input/het-join-right-r14 create mode 100644 go/reg_test/input/het-join-right-r15 create mode 100644 go/reg_test/input/het-join-right-r16 create mode 100644 go/reg_test/input/het-join-right-r2 create mode 100644 go/reg_test/input/het-join-right-r22 create mode 100644 go/reg_test/input/het-join-right-r23 create mode 100644 go/reg_test/input/het-join-right-r24 create mode 100644 go/reg_test/input/het-join-right-r25 create mode 100644 go/reg_test/input/het-join-right-r26 create mode 100644 go/reg_test/input/het-join-right-r3 create mode 100644 go/reg_test/input/het-join-right-r33 create mode 100644 go/reg_test/input/het-join-right-r34 create mode 100644 go/reg_test/input/het-join-right-r35 create mode 100644 go/reg_test/input/het-join-right-r36 create mode 100644 go/reg_test/input/het-join-right-r4 create mode 100644 go/reg_test/input/het-join-right-r44 create mode 100644 go/reg_test/input/het-join-right-r45 create mode 100644 go/reg_test/input/het-join-right-r46 create mode 100644 go/reg_test/input/het-join-right-r5 create mode 100644 go/reg_test/input/het-join-right-r55 create mode 100644 go/reg_test/input/het-join-right-r56 create mode 100644 go/reg_test/input/het-join-right-r6 create mode 100644 go/reg_test/input/het-join-right-r66 create mode 100644 go/reg_test/input/het.csv create mode 100644 go/reg_test/input/het.dkvp create mode 100644 go/reg_test/input/int-float.dkvp create mode 100644 go/reg_test/input/int64arith.dkvp create mode 100644 go/reg_test/input/int64io.dkvp create mode 100644 go/reg_test/input/ints.dkvp create mode 100644 go/reg_test/input/join-het.dkvp create mode 100644 go/reg_test/input/joina.dkvp create mode 100644 go/reg_test/input/joinb.dkvp create mode 100644 go/reg_test/input/json-output-options.dkvp create mode 100644 go/reg_test/input/line-ending-cr.bin create mode 100644 go/reg_test/input/line-ending-crlf.bin create mode 100644 go/reg_test/input/line-ending-lf.bin create mode 100644 go/reg_test/input/line-term-crlf-wrap.json create mode 100644 go/reg_test/input/line-term-crlf.csv create mode 100644 go/reg_test/input/line-term-crlf.dkvp create mode 100644 go/reg_test/input/line-term-crlf.json create mode 100644 go/reg_test/input/line-term-crlf.pprint create mode 100644 go/reg_test/input/line-term-crlf.xtab create mode 100644 go/reg_test/input/line-term-lf-wrap.json create mode 100644 go/reg_test/input/line-term-lf.csv create mode 100644 go/reg_test/input/line-term-lf.dkvp create mode 100644 go/reg_test/input/line-term-lf.json create mode 100644 go/reg_test/input/line-term-lf.pprint create mode 100644 go/reg_test/input/line-term-lf.xtab create mode 100644 go/reg_test/input/logi.dkvp create mode 100644 go/reg_test/input/mand.mlr create mode 100644 go/reg_test/input/merge-fields-abxy.dkvp create mode 100644 go/reg_test/input/merge-fields-in-out-mixed.csv create mode 100644 go/reg_test/input/merge-fields-in-out.csv create mode 100644 go/reg_test/input/minmax.dkvp create mode 100644 go/reg_test/input/missings.dkvp create mode 100644 go/reg_test/input/mixed-types.xtab create mode 100644 go/reg_test/input/modarith.dat create mode 100644 go/reg_test/input/multi-format-join-a.csv create mode 100644 go/reg_test/input/multi-format-join-a.dkvp create mode 100644 go/reg_test/input/multi-format-join-a.json create mode 100644 go/reg_test/input/multi-format-join-b.csv create mode 100644 go/reg_test/input/multi-format-join-b.dkvp create mode 100644 go/reg_test/input/multi-format-join-b.json create mode 100644 go/reg_test/input/multi-ips.dkvp create mode 100644 go/reg_test/input/multi-sep.csv-crlf create mode 100644 go/reg_test/input/multi-sep.dkvp-crlf create mode 100644 go/reg_test/input/near-ovf.dkvp create mode 100644 go/reg_test/input/nest-explode-vary-fs-ps.dkvp create mode 100644 go/reg_test/input/nest-explode.dkvp create mode 100644 go/reg_test/input/null-fields.csv create mode 100644 go/reg_test/input/null-fields.nidx create mode 100644 go/reg_test/input/null-vs-empty.dkvp create mode 100644 go/reg_test/input/nullvals.dkvp create mode 100644 go/reg_test/input/ofmt.dat create mode 100644 go/reg_test/input/page-aligned-final-ifs.dkvp create mode 100644 go/reg_test/input/page-aligned-final-irs.dkvp create mode 100644 go/reg_test/input/page-aligned-final-no-ifs.dkvp create mode 100644 go/reg_test/input/page-aligned-no-final-eol.xtab create mode 100644 go/reg_test/input/page-aligned-no-final-irs.csvl create mode 100644 go/reg_test/input/page-aligned-no-final-irs.dkvp create mode 100644 go/reg_test/input/page-aligned-no-final-irs.nidx create mode 100644 go/reg_test/input/put-example.dsl create mode 100644 go/reg_test/input/put-script-piece-1 create mode 100644 go/reg_test/input/put-script-piece-2 create mode 100644 go/reg_test/input/put-script-piece-3 create mode 100644 go/reg_test/input/quote-original.csv create mode 100644 go/reg_test/input/ragged.csv create mode 100644 go/reg_test/input/regex.dkvp create mode 100644 go/reg_test/input/regularize.dkvp create mode 100644 go/reg_test/input/remove-empty-columns.csv create mode 100644 go/reg_test/input/repeat-input.dat create mode 100644 go/reg_test/input/repeats.dkvp create mode 100644 go/reg_test/input/reshape-long-ragged.dkvp create mode 100644 go/reg_test/input/reshape-long.tbl create mode 100644 go/reg_test/input/reshape-wide-ragged.dkvp create mode 100644 go/reg_test/input/reshape-wide.tbl create mode 100644 go/reg_test/input/rfc-csv/modify-defaults.csv create mode 100644 go/reg_test/input/rfc-csv/narrow-truncated.csv create mode 100644 go/reg_test/input/rfc-csv/narrow.csv create mode 100644 go/reg_test/input/rfc-csv/quoted-comma-truncated.csv create mode 100644 go/reg_test/input/rfc-csv/quoted-comma.csv create mode 100644 go/reg_test/input/rfc-csv/quoted-crlf-truncated.csv create mode 100644 go/reg_test/input/rfc-csv/quoted-crlf.csv create mode 100644 go/reg_test/input/rfc-csv/simple-truncated.csv create mode 100644 go/reg_test/input/rfc-csv/simple.csv-crlf create mode 100644 go/reg_test/input/scinot.dkvp create mode 100644 go/reg_test/input/scinot1.dkvp create mode 100644 go/reg_test/input/sec2gmt create mode 100644 go/reg_test/input/sec2xhms create mode 100644 go/reg_test/input/short create mode 100644 go/reg_test/input/short-circuit.dkvp create mode 100644 go/reg_test/input/sieve.mlr create mode 100644 go/reg_test/input/simple.tsv create mode 100644 go/reg_test/input/small create mode 100644 go/reg_test/input/small-nested.json create mode 100644 go/reg_test/input/small-non-nested-wrapped.json create mode 100644 go/reg_test/input/small-non-nested.json create mode 100644 go/reg_test/input/sort-het.dkvp create mode 100644 go/reg_test/input/space-pad.dkvp create mode 100644 go/reg_test/input/space-pad.nidx create mode 100644 go/reg_test/input/space-pad.pprint create mode 100644 go/reg_test/input/string-numeric-ordering.dkvp create mode 100644 go/reg_test/input/sub.dat create mode 100644 go/reg_test/input/subtab.dkvp create mode 100644 go/reg_test/input/subtab1.mlr create mode 100644 go/reg_test/input/subtab2.mlr create mode 100644 go/reg_test/input/subtab3.mlr create mode 100644 go/reg_test/input/subtab4.mlr create mode 100644 go/reg_test/input/test-dsl-stack-allocation.mlr create mode 100644 go/reg_test/input/trivial-records.csv create mode 100644 go/reg_test/input/truncated.csv create mode 100644 go/reg_test/input/truncated.dkvp create mode 100644 go/reg_test/input/truncated.nidx create mode 100644 go/reg_test/input/truncated.pprint create mode 100644 go/reg_test/input/truncated.xtab-crlf create mode 100644 go/reg_test/input/typeof.dkvp create mode 100644 go/reg_test/input/unset1.dkvp create mode 100644 go/reg_test/input/unset4.dkvp create mode 100644 go/reg_test/input/utf8-1.csv create mode 100644 go/reg_test/input/utf8-2.csv create mode 100644 go/reg_test/input/utf8-align.dkvp create mode 100644 go/reg_test/input/utf8-align.nidx create mode 100644 go/reg_test/input/valgrind.txt create mode 100644 go/reg_test/input/x0to10.dat create mode 100644 go/reg_test/input/xy40.dkvp create mode 100644 go/reg_test/input/xyz2 create mode 100644 go/reg_test/input/xyz345 create mode 100755 go/reg_test/run diff --git a/go/reg_test/dev b/go/reg_test/dev new file mode 100755 index 000000000..279b0083b --- /dev/null +++ b/go/reg_test/dev @@ -0,0 +1,123 @@ +#!/bin/sh + +# ================================================================ +# This is similar to reg_test/run except that this one is only ever run +# manually, not automatically as part of the build. It can be used to iterate on +# as-yet-unreleased features (in particular, features whose definition isn't +# finalized) without breaking the build. +# ================================================================ +set -e + +ourdir=`dirname $0` +srcdir=$ourdir/../.. +pwd=`pwd` + +try1=$pwd/../mlr # For autoconf builds, in-tree or out-of-tree +try2=$srcdir/c/mlr # For non-autoconf builds +if [ -x "$try1" ]; then + path_to_mlr=$try1 +elif [ -x "$try2" ]; then + path_to_mlr=$try2 +else + echo "$0: Could not find path to mlr executable." 1>&2 + echo "Try 1: $try1" 1>&2 + echo "Try 2: $try2" 1>&2 + exit 1 +fi +do_diff="true" + +for arg; do + if [ "$1" = "--valgrind" ]; then + # Leak-check the test suite. Needs 'make mlrg' first. + # ../tools/clean-valg can be used to filter the output. + path_to_mlr="valgrind --leak-check=full ${path_to_mlr}g" + elif [ "$1" = "--nodiff" ]; then + do_diff="false" + fi +done +echo Using mlr executable $path_to_mlr + +indir=$ourdir/input +expdir=$ourdir/expected +outdir=$pwd/output-regtest +reloutdir=./output-regtest +outfile=$outdir/out +expfile=$expdir/out +mkdir -p $outdir + +rm -rvf $outdir +mkdir -p $outdir +touch $outfile +echo + +num_passed=0 + +announce() { + echo >> $outfile + echo "================================================================" >> $outfile + echo "$@" >> $outfile + echo >> $outfile +} + +mention() { + echo >> $outfile + echo ---------------------------------------------------------------- "$@" >> $outfile +} + +run_mlr() { + # Use just "mlr" for info messages + echo mlr "$@" + echo mlr "$@" >> $outfile + # Use path to mlr for invoking the command + $path_to_mlr "$@" >> $outfile + echo >> $outfile + # since set -e + num_passed=`expr $num_passed + 1` +} + +mlr_expect_fail() { + # Use just "mlr" for info messages + echo mlr "$@" + echo mlr "$@" >> $outfile + # Use path to mlr for invoking the command + set +e + $path_to_mlr "$@" >> $outfile 2>&1 + status=$? + if [ $status -ne 1 ]; then + echo "Exit status was $status; expected 1." + echo "Exit status was $status; expected 1." >> $outfile + fi + set -e + echo >> $outfile + test $status -eq 1 + # since set -e + num_passed=`expr $num_passed + 1` +} + +# ================================================================ +announce FUNC PROHIBITS + +mlr_expect_fail --from $indir/abixy put ' + func f(x,y,z) { + return $a # cannot reference srecs from functions + } +' + +mlr_expect_fail --from $indir/abixy put ' + func f(x,y,z) { + return $[x] # cannot reference srecs from functions + } +' + +run_mlr -n put '' + +# ================================================================ +cat $outfile + +if [ "$do_diff" = "true" ]; then + echo + diff -I '^mlr ' -C5 $expfile $outfile + echo diff OK # since set -e + echo ALL REGRESSION TESTS PASSED + echo Tests completed: $num_passed +fi diff --git a/go/reg_test/expected/out b/go/reg_test/expected/out new file mode 100644 index 000000000..3551d8918 --- /dev/null +++ b/go/reg_test/expected/out @@ -0,0 +1,58841 @@ + +================================================================ +STATELESS MAPPERS + +mlr cat ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cat /dev/null + +mlr cat -n ./reg_test/input/abixy-het +n=1,a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +n=2,a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +n=3,aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +n=4,a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +n=5,a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +n=6,a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +n=7,a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +n=8,a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +n=9,aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +n=10,a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cat -N counter ./reg_test/input/abixy-het +counter=1,a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +counter=2,a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +counter=3,aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +counter=4,a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +counter=5,a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +counter=6,a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +counter=7,a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +counter=8,a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +counter=9,aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +counter=10,a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cat -g a,b ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cat -g a,b ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cat -g a,b -n ./reg_test/input/abixy-het +n=1,a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +n=1,a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +n=1,aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +n=2,a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +n=1,a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +n=1,a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +n=1,a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +n=1,a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +n=3,aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +n=1,a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cat -g a,b -N counter ./reg_test/input/abixy-het +counter=1,a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +counter=1,a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +counter=1,aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +counter=2,a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +counter=1,a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +counter=1,a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +counter=1,a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +counter=1,a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +counter=3,aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +counter=1,a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cut -f a,x ./reg_test/input/abixy +a=pan,x=0.3467901443380824 +a=eks,x=0.7586799647899636 +a=wye,x=0.20460330576630303 +a=eks,x=0.38139939387114097 +a=wye,x=0.5732889198020006 +a=zee,x=0.5271261600918548 +a=eks,x=0.6117840605678454 +a=zee,x=0.5985540091064224 +a=hat,x=0.03144187646093577 +a=pan,x=0.5026260055412137 + +mlr cut --complement -f a,x ./reg_test/input/abixy +b=pan,i=1,y=0.7268028627434533 +b=pan,i=2,y=0.5221511083334797 +b=wye,i=3,y=0.33831852551664776 +b=wye,i=4,y=0.13418874328430463 +b=pan,i=5,y=0.8636244699032729 +b=pan,i=6,y=0.49322128674835697 +b=zee,i=7,y=0.1878849191181694 +b=wye,i=8,y=0.976181385699006 +b=wye,i=9,y=0.7495507603507059 +b=wye,i=10,y=0.9526183602969864 + +mlr cut -r -f c,e ./reg_test/input/having-fields-regex.dkvp +abc=1,def=11 + +abcd=3 + +abcde=5 + + +mlr cut -r -f "C","E" ./reg_test/input/having-fields-regex.dkvp + +ABC=2,DEF=12 + +ABCD=4 + +ABCDE=6 + +mlr cut -r -f "c"i,"e" ./reg_test/input/having-fields-regex.dkvp +abc=1,def=11 +ABC=2 +abcd=3 +ABCD=4 +abcde=5 +ABCDE=6 + +mlr cut -r -f "C"i,"E" ./reg_test/input/having-fields-regex.dkvp +abc=1 +ABC=2,DEF=12 +abcd=3 +ABCD=4 +abcde=5 +ABCDE=6 + +mlr cut -r -x -f c,e ./reg_test/input/having-fields-regex.dkvp + +ABC=2,DEF=12 +ghi=13 +ABCD=4,GHI=14 +ghi=15 +ABCDE=6,GHI=16 + +mlr cut -r -x -f "C","E" ./reg_test/input/having-fields-regex.dkvp +abc=1,def=11 + +abcd=3,ghi=13 +GHI=14 +abcde=5,ghi=15 +GHI=16 + +mlr cut -r -x -f "C","E"i ./reg_test/input/having-fields-regex.dkvp +abc=1 + +abcd=3,ghi=13 +GHI=14 +ghi=15 +GHI=16 + +mlr cut -r -x -f "c","e"i ./reg_test/input/having-fields-regex.dkvp + +ABC=2 +ghi=13 +ABCD=4,GHI=14 +ghi=15 +GHI=16 + +mlr --csvlite cut -r -f ^Name$,^Date_[0-9].*$ ./reg_test/input/date1.csv ./reg_test/input/date2.csv +Name,Date_201505 +Alice,2015-05-14 +Bob,2015-05-11 +Chuck,2015-05-28 +Denise,2015-05-02 + +Name,Date_201506 +Alice,2015-06-23 +Denise,2015-06-17 +Chuck,2015-06-19 +Bob,2015-06-19 + +mlr having-fields --at-least a,b ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr having-fields --at-least a,c ./reg_test/input/abixy + +mlr having-fields --at-least a,b,i,x,y ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr having-fields --which-are a,b,i,x ./reg_test/input/abixy + +mlr having-fields --which-are a,b,i,x,y ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr having-fields --which-are a,b,i,y,x ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr having-fields --which-are a,b,i,x,w ./reg_test/input/abixy + +mlr having-fields --which-are a,b,i,x,y,z ./reg_test/input/abixy + +mlr having-fields --at-most a,c ./reg_test/input/abixy + +mlr having-fields --at-most a,b,i,x,y ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr having-fields --at-most a,b,i,x,y,z ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr having-fields --all-matching "^[a-z][a-z][a-z]$" ./reg_test/input/having-fields-regex.dkvp +abc=1,def=11 + +mlr having-fields --any-matching "^[a-z][a-z][a-z]$" ./reg_test/input/having-fields-regex.dkvp +abc=1,def=11 +abcd=3,ghi=13 +abcde=5,ghi=15 + +mlr having-fields --none-matching "^[a-z][a-z][a-z]$" ./reg_test/input/having-fields-regex.dkvp +ABC=2,DEF=12 +ABCD=4,GHI=14 +ABCDE=6,GHI=16 + +mlr having-fields --all-matching "^[a-z][a-z][a-z]$"i ./reg_test/input/having-fields-regex.dkvp +abc=1,def=11 +ABC=2,DEF=12 + +mlr having-fields --any-matching "^[a-z][a-z][a-z]$"i ./reg_test/input/having-fields-regex.dkvp +abc=1,def=11 +ABC=2,DEF=12 +abcd=3,ghi=13 +ABCD=4,GHI=14 +abcde=5,ghi=15 +ABCDE=6,GHI=16 + +mlr having-fields --none-matching "^[a-z][a-z][a-z]$"i ./reg_test/input/having-fields-regex.dkvp + +mlr rename b,BEE,x,EKS ./reg_test/input/abixy +a=pan,BEE=pan,i=1,EKS=0.3467901443380824,y=0.7268028627434533 +a=eks,BEE=pan,i=2,EKS=0.7586799647899636,y=0.5221511083334797 +a=wye,BEE=wye,i=3,EKS=0.20460330576630303,y=0.33831852551664776 +a=eks,BEE=wye,i=4,EKS=0.38139939387114097,y=0.13418874328430463 +a=wye,BEE=pan,i=5,EKS=0.5732889198020006,y=0.8636244699032729 +a=zee,BEE=pan,i=6,EKS=0.5271261600918548,y=0.49322128674835697 +a=eks,BEE=zee,i=7,EKS=0.6117840605678454,y=0.1878849191181694 +a=zee,BEE=wye,i=8,EKS=0.5985540091064224,y=0.976181385699006 +a=hat,BEE=wye,i=9,EKS=0.03144187646093577,y=0.7495507603507059 +a=pan,BEE=wye,i=10,EKS=0.5026260055412137,y=0.9526183602969864 + +mlr rename nonesuch,nonesuch,x,EKS ./reg_test/input/abixy +a=pan,b=pan,i=1,EKS=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,EKS=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,EKS=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,EKS=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,EKS=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,EKS=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,EKS=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,EKS=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,EKS=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,EKS=0.5026260055412137,y=0.9526183602969864 + +mlr label NEW ./reg_test/input/abixy +NEW=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +NEW=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +NEW=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +NEW=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +NEW=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +NEW=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +NEW=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +NEW=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +NEW=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +NEW=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr label a,NEW,c ./reg_test/input/abixy +a=pan,NEW=pan,c=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,NEW=pan,c=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,NEW=wye,c=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,NEW=wye,c=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,NEW=pan,c=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,NEW=pan,c=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,NEW=zee,c=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,NEW=wye,c=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,NEW=wye,c=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,NEW=wye,c=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr label 1,2,3,4,5,6,7,8 ./reg_test/input/abixy +1=pan,2=pan,3=1,4=0.3467901443380824,5=0.7268028627434533 +1=eks,2=pan,3=2,4=0.7586799647899636,5=0.5221511083334797 +1=wye,2=wye,3=3,4=0.20460330576630303,5=0.33831852551664776 +1=eks,2=wye,3=4,4=0.38139939387114097,5=0.13418874328430463 +1=wye,2=pan,3=5,4=0.5732889198020006,5=0.8636244699032729 +1=zee,2=pan,3=6,4=0.5271261600918548,5=0.49322128674835697 +1=eks,2=zee,3=7,4=0.6117840605678454,5=0.1878849191181694 +1=zee,2=wye,3=8,4=0.5985540091064224,5=0.976181385699006 +1=hat,2=wye,3=9,4=0.03144187646093577,5=0.7495507603507059 +1=pan,2=wye,3=10,4=0.5026260055412137,5=0.9526183602969864 + +mlr label d,x,f ./reg_test/input/abixy +d=pan,x=pan,f=1,y=0.7268028627434533 +d=eks,x=pan,f=2,y=0.5221511083334797 +d=wye,x=wye,f=3,y=0.33831852551664776 +d=eks,x=wye,f=4,y=0.13418874328430463 +d=wye,x=pan,f=5,y=0.8636244699032729 +d=zee,x=pan,f=6,y=0.49322128674835697 +d=eks,x=zee,f=7,y=0.1878849191181694 +d=zee,x=wye,f=8,y=0.976181385699006 +d=hat,x=wye,f=9,y=0.7495507603507059 +d=pan,x=wye,f=10,y=0.9526183602969864 + +mlr label d,x,d ./reg_test/input/abixy +mlr label: labels must be unique; got "d" + +mlr --csvlite rename -r ^Date_[0-9].*$,Date ./reg_test/input/date1.csv ./reg_test/input/date2.csv +Name,Date,Extraneous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d + +mlr --csvlite rename -r (.*)e(.*),\1EEE\2 ./reg_test/input/date1.csv ./reg_test/input/date2.csv +NamEEE,DatEEE_201505,ExtranEEEous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep + +NamEEE,DatEEE_201506,ExtranEEEous +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d + +mlr --csvlite rename -r "(.*)e(.*)"i,\1EEE\2 ./reg_test/input/date1.csv ./reg_test/input/date2.csv +NamEEE,DatEEE_201505,ExtranEEEous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep + +NamEEE,DatEEE_201506,ExtranEEEous +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d + +mlr --csvlite rename -r -g "(.*)e(.*)"i,\1EEE\2 ./reg_test/input/date1.csv ./reg_test/input/date2.csv +NamEEE,DatEEE_201505,ExtranEEEous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep + +NamEEE,DatEEE_201506,ExtranEEEous +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d + +mlr --csvlite rename -r ^(.a.e)(_.*)?,AA\1BB\2CC ./reg_test/input/date1.csv +AANameBBCC,AADateBB_201505CC,Extraneous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep + +mlr --csvlite rename -r "e",EEE ./reg_test/input/date1.csv ./reg_test/input/date2.csv +NamEEE,DatEEE_201505,ExtranEEEous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep + +NamEEE,DatEEE_201506,ExtranEEEous +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d + +mlr --csvlite rename -r -g "e",EEE ./reg_test/input/date1.csv ./reg_test/input/date2.csv +NamEEE,DatEEE_201505,ExtranEEEous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep + +NamEEE,DatEEE_201506,ExtranEEEous +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d + +mlr --csvlite rename -r "e"i,EEE ./reg_test/input/date1.csv ./reg_test/input/date2.csv +NamEEE,DatEEE_201505,EEExtraneous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep + +NamEEE,DatEEE_201506,EEExtraneous +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d + +mlr --csvlite rename -r -g "e"i,EEE ./reg_test/input/date1.csv ./reg_test/input/date2.csv +NamEEE,DatEEE_201505,EEExtranEEEous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep + +NamEEE,DatEEE_201506,EEExtranEEEous +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d + +mlr regularize ./reg_test/input/regularize.dkvp +a=1,c=2,b=3 +e=4,d=5 +a=6,c=7,b=8 + +mlr --opprint bar -f x,y --lo 0 --hi 1 ./reg_test/input/abixy +a b i x y +pan pan 1 *************........................... *****************************........... +eks pan 2 ******************************.......... ********************.................... +wye wye 3 ********................................ *************........................... +eks wye 4 ***************......................... *****................................... +wye pan 5 **********************.................. **********************************...... +zee pan 6 *********************................... *******************..................... +eks zee 7 ************************................ *******................................. +zee wye 8 ***********************................. ***************************************. +hat wye 9 *....................................... *****************************........... +pan wye 10 ********************.................... **************************************.. + +mlr --opprint bar -f x,y -c c -x x -b b --lo 0.1 --hi 0.9 -w 20 ./reg_test/input/abixy +a b i x y +pan pan 1 ccccccbbbbbbbbbbbbbb cccccccccccccccbbbbb +eks pan 2 ccccccccccccccccbbbb ccccccccccbbbbbbbbbb +wye wye 3 ccbbbbbbbbbbbbbbbbbb cccccbbbbbbbbbbbbbbb +eks wye 4 cccccccbbbbbbbbbbbbb xbbbbbbbbbbbbbbbbbbb +wye pan 5 cccccccccccbbbbbbbbb cccccccccccccccccccb +zee pan 6 ccccccccccbbbbbbbbbb cccccccccbbbbbbbbbbb +eks zee 7 ccccccccccccbbbbbbbb ccbbbbbbbbbbbbbbbbbb +zee wye 8 ccccccccccccbbbbbbbb cccccccccccccccccccx +hat wye 9 xbbbbbbbbbbbbbbbbbbb ccccccccccccccccbbbb +pan wye 10 ccccccccccbbbbbbbbbb cccccccccccccccccccx + +mlr --opprint bar --auto -f x,y -w 10 ./reg_test/input/abixy +a b i x y +pan pan 1 [0.0314419]****......[0.75868] [0.134189]*******...[0.976181] +eks pan 2 [0.0314419]*********#[0.75868] [0.134189]****......[0.976181] +wye wye 3 [0.0314419]**........[0.75868] [0.134189]**........[0.976181] +eks wye 4 [0.0314419]****......[0.75868] [0.134189]#.........[0.976181] +wye pan 5 [0.0314419]*******...[0.75868] [0.134189]********..[0.976181] +zee pan 6 [0.0314419]******....[0.75868] [0.134189]****......[0.976181] +eks zee 7 [0.0314419]*******...[0.75868] [0.134189]#.........[0.976181] +zee wye 8 [0.0314419]*******...[0.75868] [0.134189]*********#[0.976181] +hat wye 9 [0.0314419]#.........[0.75868] [0.134189]*******...[0.976181] +pan wye 10 [0.0314419]******....[0.75868] [0.134189]*********.[0.976181] + +mlr altkv +a=b,c=d,e=f + +mlr altkv +a=b,c=d,e=f,4=g + + +================================================================ +TRIVIAL RETAINERS + +mlr group-by a ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr group-by a,b ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr group-like ./reg_test/input/het.dkvp +host=jupiter +host=saturn +host=mars +host=jupiter +host=mars +host=saturn +df/tmp=2.43MB,uptime=32345sec +df/tmp=1.34MB,uptime=234214132sec +df/tmp=4.97MB,uptime=345089805sec +df/tmp=0.04MB,uptime=890sec +df/tmp=8.55MB,uptime=787897777sec +df/tmp=9.47MB,uptime=234289080sec + +mlr tac ./reg_test/input/abixy +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 + +mlr tac /dev/null + +mlr --opprint unsparsify ./reg_test/input/abixy +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint unsparsify ./reg_test/input/abixy-het +a b i x y aaa bbb xxx iii yyy +pan pan 1 0.3467901443380824 0.7268028627434533 - - - - - +eks pan 2 0.7586799647899636 0.5221511083334797 - - - - - +- wye 3 0.20460330576630303 0.33831852551664776 wye - - - - +eks - 4 0.38139939387114097 0.13418874328430463 - wye - - - +wye pan 5 - 0.8636244699032729 - - 0.5732889198020006 - - +zee pan 6 0.5271261600918548 0.49322128674835697 - - - - - +eks zee - 0.6117840605678454 0.1878849191181694 - - - 7 - +zee wye 8 0.5985540091064224 - - - - - 0.976181385699006 +- - 9 0.03144187646093577 0.7495507603507059 hat wye - - - +pan wye 10 0.5026260055412137 0.9526183602969864 - - - - - + +mlr --csv skip-trivial-records ./reg_test/input/trivial-records.csv +a,b,c +1,2,3 +4,,6 +,8,9 + +mlr --csv remove-empty-columns ./reg_test/input/remove-empty-columns.csv +a,c,e +1,3,5 +2,4,5 +3,5,7 + +mlr format-values ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.346790,y=0.726803 +a=eks,b=pan,i=2,x=0.758680,y=0.522151 +a=wye,b=wye,i=3,x=0.204603,y=0.338319 +a=eks,b=wye,i=4,x=0.381399,y=0.134189 +a=wye,b=pan,i=5,x=0.573289,y=0.863624 +a=zee,b=pan,i=6,x=0.527126,y=0.493221 +a=eks,b=zee,i=7,x=0.611784,y=0.187885 +a=zee,b=wye,i=8,x=0.598554,y=0.976181 +a=hat,b=wye,i=9,x=0.031442,y=0.749551 +a=pan,b=wye,i=10,x=0.502626,y=0.952618 + +mlr format-values -n ./reg_test/input/abixy +a=pan,b=pan,i=1.000000,x=0.346790,y=0.726803 +a=eks,b=pan,i=2.000000,x=0.758680,y=0.522151 +a=wye,b=wye,i=3.000000,x=0.204603,y=0.338319 +a=eks,b=wye,i=4.000000,x=0.381399,y=0.134189 +a=wye,b=pan,i=5.000000,x=0.573289,y=0.863624 +a=zee,b=pan,i=6.000000,x=0.527126,y=0.493221 +a=eks,b=zee,i=7.000000,x=0.611784,y=0.187885 +a=zee,b=wye,i=8.000000,x=0.598554,y=0.976181 +a=hat,b=wye,i=9.000000,x=0.031442,y=0.749551 +a=pan,b=wye,i=10.000000,x=0.502626,y=0.952618 + +mlr format-values -i %08llx -f %.6le -s X%sX ./reg_test/input/abixy +a=XpanX,b=XpanX,i=00000001,x=3.467901e-01,y=7.268029e-01 +a=XeksX,b=XpanX,i=00000002,x=7.586800e-01,y=5.221511e-01 +a=XwyeX,b=XwyeX,i=00000003,x=2.046033e-01,y=3.383185e-01 +a=XeksX,b=XwyeX,i=00000004,x=3.813994e-01,y=1.341887e-01 +a=XwyeX,b=XpanX,i=00000005,x=5.732889e-01,y=8.636245e-01 +a=XzeeX,b=XpanX,i=00000006,x=5.271262e-01,y=4.932213e-01 +a=XeksX,b=XzeeX,i=00000007,x=6.117841e-01,y=1.878849e-01 +a=XzeeX,b=XwyeX,i=00000008,x=5.985540e-01,y=9.761814e-01 +a=XhatX,b=XwyeX,i=00000009,x=3.144188e-02,y=7.495508e-01 +a=XpanX,b=XwyeX,i=0000000a,x=5.026260e-01,y=9.526184e-01 + +mlr format-values -i %08llx -f %.6le -s X%sX -n ./reg_test/input/abixy +a=XpanX,b=XpanX,i=1.000000e+00,x=3.467901e-01,y=7.268029e-01 +a=XeksX,b=XpanX,i=2.000000e+00,x=7.586800e-01,y=5.221511e-01 +a=XwyeX,b=XwyeX,i=3.000000e+00,x=2.046033e-01,y=3.383185e-01 +a=XeksX,b=XwyeX,i=4.000000e+00,x=3.813994e-01,y=1.341887e-01 +a=XwyeX,b=XpanX,i=5.000000e+00,x=5.732889e-01,y=8.636245e-01 +a=XzeeX,b=XpanX,i=6.000000e+00,x=5.271262e-01,y=4.932213e-01 +a=XeksX,b=XzeeX,i=7.000000e+00,x=6.117841e-01,y=1.878849e-01 +a=XzeeX,b=XwyeX,i=8.000000e+00,x=5.985540e-01,y=9.761814e-01 +a=XhatX,b=XwyeX,i=9.000000e+00,x=3.144188e-02,y=7.495508e-01 +a=XpanX,b=XwyeX,i=1.000000e+01,x=5.026260e-01,y=9.526184e-01 + + +================================================================ +HEAD/TAIL/ETC. + +mlr head -n 2 ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr head -n 2 -g a ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr head -n 2 -g a,b ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr then cat then head -n 2 -g a,b then tac ./reg_test/input/abixy-het +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 + +mlr head -n 2 then put end{ print "Final NR is ".NR} ./reg_test/input/abixy-wide +a=cat,b=pan,i=1,x=0.5117389009583777,y=0.08295224980036853,x2=0.2618767027540883,xy=0.0424498931448654,y2=0.006881075746942741 +a=pan,b=wye,i=2,x=0.5225940442098578,y=0.511678736087022,x2=0.27310453504361476,xy=0.2674002600279053,y2=0.26181512896361225 +Final NR is 3 + +mlr head -n 2 -g a then put end{ print "Final NR is ".NR} ./reg_test/input/abixy-wide +a=cat,b=pan,i=1,x=0.5117389009583777,y=0.08295224980036853,x2=0.2618767027540883,xy=0.0424498931448654,y2=0.006881075746942741 +a=pan,b=wye,i=2,x=0.5225940442098578,y=0.511678736087022,x2=0.27310453504361476,xy=0.2674002600279053,y2=0.26181512896361225 +a=wye,b=cat,i=3,x=0.8150401717873625,y=0.07989551500795256,x2=0.6642904816271734,xy=0.06511805427712146,y2=0.006383293318385972 +a=dog,b=hat,i=4,x=0.4488733555675044,y=0.5730530513123552,x2=0.20148728933843124,xy=0.25722824606077416,y2=0.32838979961840076 +a=dog,b=pan,i=5,x=0.2946557960430134,y=0.6850437256584863,x2=0.08682203814174191,xy=0.20185210430817294,y2=0.46928490606405937 +a=wye,b=cat,i=6,x=0.048709182664292916,y=0.5851879044762575,x2=0.0023725844758234536,xy=0.02850402453206882,y2=0.34244488354531344 +a=pan,b=pan,i=8,x=0.616507208914765,y=0.25924335982487057,x2=0.38008113864387366,xy=0.15982540019531707,y2=0.06720711961328732 +a=hat,b=hat,i=9,x=0.33786884067769307,y=0.6036735617015514,x2=0.11415535350088835,xy=0.203962486439877,y2=0.3644217690974368 +a=cat,b=hat,i=12,x=0.6335445699880142,y=0.15467178563525052,x2=0.4013787221612979,xy=0.0979914699195631,y2=0.02392336127159689 +a=hat,b=wye,i=13,x=0.35922068401384877,y=0.8502678133887914,x2=0.1290394998233774,xy=0.30543378552048117,y2=0.7229553544849566 +Final NR is 2000 + +mlr cat then head -n 2 then put end{ print "Final NR is ".NR} ./reg_test/input/abixy-wide +a=cat,b=pan,i=1,x=0.5117389009583777,y=0.08295224980036853,x2=0.2618767027540883,xy=0.0424498931448654,y2=0.006881075746942741 +a=pan,b=wye,i=2,x=0.5225940442098578,y=0.511678736087022,x2=0.27310453504361476,xy=0.2674002600279053,y2=0.26181512896361225 +Final NR is 3 + +mlr tac then head -n 2 then put end{ print "Final NR is ".NR} ./reg_test/input/abixy-wide +Final NR is 2000 +a=wye,b=cat,i=2000,x=0.10887569736363611,y=0.3480524315645718,x2=0.01185391747641808,xy=0.037894451205701986,y2=0.12114049511801092 +a=hat,b=dog,i=1999,x=0.010819574860139292,y=0.8983779455002124,x2=0.00011706320015415817,xy=0.009720067434037685,y2=0.8070829329611827 + +mlr head -n 2 then put end{ print "Final NR is ".NR} ./reg_test/input/abixy-wide ./reg_test/input/abixy-wide ./reg_test/input/abixy-wide +a=cat,b=pan,i=1,x=0.5117389009583777,y=0.08295224980036853,x2=0.2618767027540883,xy=0.0424498931448654,y2=0.006881075746942741 +a=pan,b=wye,i=2,x=0.5225940442098578,y=0.511678736087022,x2=0.27310453504361476,xy=0.2674002600279053,y2=0.26181512896361225 +Final NR is 3 + +mlr tail -n 2 ./reg_test/input/abixy-het +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr tail -n 2 -g a ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 + +mlr tail -n 2 -g a,b ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr top -f x,y -n 2 ./reg_test/input/abixy-het +top_idx=1,x_top=0.758680,y_top=0.952618 +top_idx=2,x_top=0.611784,y_top=0.749551 + +mlr top -f x,y -n 2 -g a ./reg_test/input/abixy-het +a=pan,top_idx=1,x_top=0.502626,y_top=0.952618 +a=pan,top_idx=2,x_top=0.346790,y_top=0.726803 +a=eks,top_idx=1,x_top=0.758680,y_top=0.522151 +a=eks,top_idx=2,x_top=0.611784,y_top=0.187885 +a=zee,top_idx=1,x_top=0.527126,y_top=0.493221 +a=zee,top_idx=2,x_top=,y_top= + +mlr top -f x,y -n 2 -g a,b ./reg_test/input/abixy-het +a=pan,b=pan,top_idx=1,x_top=0.346790,y_top=0.726803 +a=pan,b=pan,top_idx=2,x_top=,y_top= +a=eks,b=pan,top_idx=1,x_top=0.758680,y_top=0.522151 +a=eks,b=pan,top_idx=2,x_top=,y_top= +a=zee,b=pan,top_idx=1,x_top=0.527126,y_top=0.493221 +a=zee,b=pan,top_idx=2,x_top=,y_top= +a=eks,b=zee,top_idx=1,x_top=0.611784,y_top=0.187885 +a=eks,b=zee,top_idx=2,x_top=,y_top= +a=pan,b=wye,top_idx=1,x_top=0.502626,y_top=0.952618 +a=pan,b=wye,top_idx=2,x_top=,y_top= + +mlr top -f x,y -n 2 ./reg_test/input/ints.dkvp +top_idx=1,x_top=9,y_top=9 +top_idx=2,x_top=8,y_top=9 + +mlr top -f x,y -n 2 -F ./reg_test/input/ints.dkvp +top_idx=1,x_top=9.000000,y_top=9.000000 +top_idx=2,x_top=8.000000,y_top=9.000000 + +mlr top -n 4 -f x ./reg_test/input/abixy-wide +top_idx=1,x_top=0.999730 +top_idx=2,x_top=0.999308 +top_idx=3,x_top=0.997339 +top_idx=4,x_top=0.997245 + +mlr top -n 1 -f x,y ./reg_test/input/abixy-wide +top_idx=1,x_top=0.999730,y_top=0.999522 + +mlr top -n 4 -f x -g a ./reg_test/input/abixy-wide +a=cat,top_idx=1,x_top=0.996359 +a=cat,top_idx=2,x_top=0.990588 +a=cat,top_idx=3,x_top=0.990160 +a=cat,top_idx=4,x_top=0.986548 +a=pan,top_idx=1,x_top=0.999730 +a=pan,top_idx=2,x_top=0.999308 +a=pan,top_idx=3,x_top=0.996583 +a=pan,top_idx=4,x_top=0.990853 +a=wye,top_idx=1,x_top=0.997339 +a=wye,top_idx=2,x_top=0.996525 +a=wye,top_idx=3,x_top=0.995414 +a=wye,top_idx=4,x_top=0.994219 +a=dog,top_idx=1,x_top=0.997245 +a=dog,top_idx=2,x_top=0.988581 +a=dog,top_idx=3,x_top=0.980266 +a=dog,top_idx=4,x_top=0.977280 +a=hat,top_idx=1,x_top=0.997014 +a=hat,top_idx=2,x_top=0.995705 +a=hat,top_idx=3,x_top=0.992879 +a=hat,top_idx=4,x_top=0.989639 + +mlr top -n 1 -f x,y -g a ./reg_test/input/abixy-wide +a=cat,top_idx=1,x_top=0.996359,y_top=0.997929 +a=pan,top_idx=1,x_top=0.999730,y_top=0.999319 +a=wye,top_idx=1,x_top=0.997339,y_top=0.999450 +a=dog,top_idx=1,x_top=0.997245,y_top=0.999522 +a=hat,top_idx=1,x_top=0.997014,y_top=0.991400 + +mlr top -a -n 4 -f x ./reg_test/input/abixy-wide +a=pan,b=cat,i=1943,x=0.9997301774748071,y=0.8408385083267972,x2=0.9994604277538093,xy=0.8406116311572011,y2=0.7070093970852334 +a=pan,b=dog,i=552,x=0.9993077485337599,y=0.10019859749555626,x2=0.9986159762796124,xy=0.10012923486952477,y2=0.010039758940076493 +a=wye,b=pan,i=568,x=0.9973387930844961,y=0.5711453274816489,x2=0.9946846681912394,xy=0.569625391586397,y2=0.32620698510412 +a=dog,b=pan,i=1613,x=0.997245171384539,y=0.8188847898688517,x2=0.9944979318497786,xy=0.8166289026169553,y2=0.6705722990785534 + +mlr top -a -n 4 -f x -g a ./reg_test/input/abixy-wide +a=cat,b=dog,i=901,x=0.9963591865818606,y=0.9423606044154952,x2=0.9927316286860669,xy=0.9389296452822133,y2=0.8880435087543374 +a=cat,b=wye,i=135,x=0.9905881531288986,y=0.7789092765450115,x2=0.9812648891193222,xy=0.7715783017076895,y2=0.6066996610878732 +a=cat,b=hat,i=975,x=0.9901595235021967,y=0.8592860989306361,x2=0.9804158819820973,xy=0.8508303142692202,y2=0.738372599815431 +a=cat,b=dog,i=748,x=0.986548192318023,y=0.22327955924073406,x2=0.973277335765959,xy=0.2202760455505111,y2=0.04985376157473647 +a=pan,b=cat,i=1943,x=0.9997301774748071,y=0.8408385083267972,x2=0.9994604277538093,xy=0.8406116311572011,y2=0.7070093970852334 +a=pan,b=dog,i=552,x=0.9993077485337599,y=0.10019859749555626,x2=0.9986159762796124,xy=0.10012923486952477,y2=0.010039758940076493 +a=pan,b=pan,i=756,x=0.9965826588776338,y=0.8864833103309704,x2=0.9931769959756142,xy=0.883453894460285,y2=0.7858526594953555 +a=pan,b=wye,i=1876,x=0.9908531016291003,y=0.318873165751998,x2=0.9817898690080082,xy=0.3159564653116574,y2=0.10168009583670118 +a=wye,b=pan,i=568,x=0.9973387930844961,y=0.5711453274816489,x2=0.9946846681912394,xy=0.569625391586397,y2=0.32620698510412 +a=wye,b=dog,i=1772,x=0.9965249307670624,y=0.8078766237661098,x2=0.9930619376402985,xy=0.8050691965668507,y2=0.6526646392277285 +a=wye,b=pan,i=450,x=0.9954136776717515,y=0.8564839236024028,x2=0.9908483896960015,xy=0.8525558122597992,y2=0.7335647113893665 +a=wye,b=dog,i=882,x=0.9942189496990836,y=0.3298671968153588,x2=0.988471319940749,xy=0.32796021795794694,y2=0.10881236753482267 +a=dog,b=pan,i=1613,x=0.997245171384539,y=0.8188847898688517,x2=0.9944979318497786,xy=0.8166289026169553,y2=0.6705722990785534 +a=dog,b=hat,i=1680,x=0.9885812365291148,y=0.048768165346359305,x2=0.9772928612174336,xy=0.04821129320136021,y2=0.0023783339512498405 +a=dog,b=wye,i=1331,x=0.9802656048578349,y=0.9431768957041479,x2=0.9609206560672968,xy=0.9245638701553616,y2=0.889582656590113 +a=dog,b=pan,i=978,x=0.9772797759762182,y=0.5328687567382687,x2=0.9550757605321272,xy=0.5207618592099011,y2=0.2839491119077882 +a=hat,b=dog,i=1894,x=0.9970136511026203,y=0.2054109087831395,x2=0.9940362204849775,xy=0.2047974801421852,y2=0.04219364144711526 +a=hat,b=hat,i=818,x=0.9957052214494239,y=0.026702922142899044,x2=0.9914288880216462,xy=0.026588239005642018,y2=0.0007130460509697281 +a=hat,b=hat,i=1513,x=0.9928788688650781,y=0.1805357299725343,x2=0.9858084482387971,xy=0.17925011136486105,y2=0.03259314979671582 +a=hat,b=dog,i=1768,x=0.9896393441122658,y=0.5323182982465756,x2=0.9793860314149557,xy=0.5268031315356986,y2=0.2833627706481302 + +mlr top -n 3 -f x,y ./reg_test/input/near-ovf.dkvp +top_idx=1,x_top=9223372036854775807,y_top=-9223372036854775801 +top_idx=2,x_top=9223372036854775806,y_top=-9223372036854775802 +top_idx=3,x_top=9223372036854775805,y_top=-9223372036854775803 + +mlr top -n 3 -f x,y --min ./reg_test/input/near-ovf.dkvp +top_idx=1,x_top=9223372036854775801,y_top=-9223372036854775807 +top_idx=2,x_top=9223372036854775802,y_top=-9223372036854775806 +top_idx=3,x_top=9223372036854775803,y_top=-9223372036854775805 + +mlr top -F -n 3 -f x,y ./reg_test/input/near-ovf.dkvp +top_idx=1,x_top=9223372036854775808.000000,y_top=-9223372036854775808.000000 +top_idx=2,x_top=9223372036854775808.000000,y_top=-9223372036854775808.000000 +top_idx=3,x_top=9223372036854775808.000000,y_top=-9223372036854775808.000000 + +mlr top -F -n 3 -f x,y --min ./reg_test/input/near-ovf.dkvp +top_idx=1,x_top=9223372036854775808.000000,y_top=-9223372036854775808.000000 +top_idx=2,x_top=9223372036854775808.000000,y_top=-9223372036854775808.000000 +top_idx=3,x_top=9223372036854775808.000000,y_top=-9223372036854775808.000000 + +mlr --seed 12345 bootstrap ./reg_test/input/abixy-het +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 + +mlr --seed 12345 bootstrap -n 2 ./reg_test/input/abixy-het +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 + +mlr --seed 12345 bootstrap -n 20 ./reg_test/input/abixy-het +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 + +mlr --seed 12345 sample -k 2 ./reg_test/input/abixy-het +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr --seed 12345 sample -k 2 -g a ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 + +mlr --seed 12345 sample -k 2 -g a,b ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --seed 12345 shuffle ./reg_test/input/abixy-het +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 + +mlr --seed 23456 shuffle ./reg_test/input/abixy-het +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr --seed 34567 shuffle ./reg_test/input/abixy-het +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr uniq -g a ./reg_test/input/abixy-het +a=pan +a=eks +a=wye +a=zee + +mlr uniq -g a,b ./reg_test/input/abixy-het +a=pan,b=pan +a=eks,b=pan +a=wye,b=pan +a=zee,b=pan +a=eks,b=zee +a=zee,b=wye +a=pan,b=wye + +mlr uniq -f a ./reg_test/input/abixy-het +a=pan +a=eks +a=wye +a=zee + +mlr uniq -f a,b ./reg_test/input/abixy-het +a=pan,b=pan +a=eks,b=pan +a=wye,b=pan +a=zee,b=pan +a=eks,b=zee +a=zee,b=wye +a=pan,b=wye + +mlr uniq -c -g a ./reg_test/input/abixy-het +a=pan,count=2 +a=eks,count=3 +a=wye,count=1 +a=zee,count=2 + +mlr uniq -c -g a,b ./reg_test/input/abixy-het +a=pan,b=pan,count=1 +a=eks,b=pan,count=1 +a=wye,b=pan,count=1 +a=zee,b=pan,count=1 +a=eks,b=zee,count=1 +a=zee,b=wye,count=1 +a=pan,b=wye,count=1 + +mlr count-distinct -f a ./reg_test/input/small ./reg_test/input/abixy +a=pan,count=4 +a=eks,count=6 +a=wye,count=4 +a=zee,count=4 +a=hat,count=2 + +mlr count-distinct -f a,b ./reg_test/input/small ./reg_test/input/abixy +a=pan,b=pan,count=2 +a=eks,b=pan,count=2 +a=wye,b=wye,count=2 +a=eks,b=wye,count=2 +a=wye,b=pan,count=2 +a=zee,b=pan,count=2 +a=eks,b=zee,count=2 +a=zee,b=wye,count=2 +a=hat,b=wye,count=2 +a=pan,b=wye,count=2 + +mlr count-distinct -f a,b -u ./reg_test/input/small ./reg_test/input/abixy +field=a,value=pan,count=4 +field=a,value=eks,count=6 +field=a,value=wye,count=4 +field=a,value=zee,count=4 +field=a,value=hat,count=2 +field=b,value=pan,count=8 +field=b,value=wye,count=10 +field=b,value=zee,count=2 + +mlr count-distinct -f a -n ./reg_test/input/small ./reg_test/input/abixy +count=5 + +mlr count-distinct -f a,b -n ./reg_test/input/small ./reg_test/input/abixy +count=10 + +mlr uniq -g a -o foo ./reg_test/input/abixy-het +a=pan +a=eks +a=wye +a=zee + +mlr uniq -g a,b -o foo ./reg_test/input/abixy-het +a=pan,b=pan +a=eks,b=pan +a=wye,b=pan +a=zee,b=pan +a=eks,b=zee +a=zee,b=wye +a=pan,b=wye + +mlr uniq -f a -o foo ./reg_test/input/abixy-het +a=pan +a=eks +a=wye +a=zee + +mlr uniq -f a,b -o foo ./reg_test/input/abixy-het +a=pan,b=pan +a=eks,b=pan +a=wye,b=pan +a=zee,b=pan +a=eks,b=zee +a=zee,b=wye +a=pan,b=wye + +mlr uniq -c -g a -o foo ./reg_test/input/abixy-het +a=pan,foo=2 +a=eks,foo=3 +a=wye,foo=1 +a=zee,foo=2 + +mlr uniq -c -g a,b -o foo ./reg_test/input/abixy-het +a=pan,b=pan,foo=1 +a=eks,b=pan,foo=1 +a=wye,b=pan,foo=1 +a=zee,b=pan,foo=1 +a=eks,b=zee,foo=1 +a=zee,b=wye,foo=1 +a=pan,b=wye,foo=1 + +mlr uniq -a ./reg_test/input/repeats.dkvp +color=red,shape=square,flag=0 +color=purple,shape=triangle,flag=0 +color=yellow,shape=circle,flag=1 +color=red,shape=circle,flag=1 +color=purple,shape=square,flag=0 +color=red,shape=square,flag=1 +color=yellow,shape=triangle,flag=1 + +mlr uniq -a -c ./reg_test/input/repeats.dkvp +count=17,color=red,shape=square,flag=0 +count=11,color=purple,shape=triangle,flag=0 +count=11,color=yellow,shape=circle,flag=1 +count=6,color=red,shape=circle,flag=1 +count=7,color=purple,shape=square,flag=0 +count=3,color=red,shape=square,flag=1 +count=2,color=yellow,shape=triangle,flag=1 + +mlr uniq -a -c -o foo ./reg_test/input/repeats.dkvp +foo=17,color=red,shape=square,flag=0 +foo=11,color=purple,shape=triangle,flag=0 +foo=11,color=yellow,shape=circle,flag=1 +foo=6,color=red,shape=circle,flag=1 +foo=7,color=purple,shape=square,flag=0 +foo=3,color=red,shape=square,flag=1 +foo=2,color=yellow,shape=triangle,flag=1 + +mlr uniq -a -n ./reg_test/input/repeats.dkvp +count=7 + +mlr uniq -a -n -o bar ./reg_test/input/repeats.dkvp +bar=7 + +mlr count-distinct -f a -o foo ./reg_test/input/small ./reg_test/input/abixy +a=pan,foo=4 +a=eks,foo=6 +a=wye,foo=4 +a=zee,foo=4 +a=hat,foo=2 + +mlr count-distinct -f a,b -o foo ./reg_test/input/small ./reg_test/input/abixy +a=pan,b=pan,foo=2 +a=eks,b=pan,foo=2 +a=wye,b=wye,foo=2 +a=eks,b=wye,foo=2 +a=wye,b=pan,foo=2 +a=zee,b=pan,foo=2 +a=eks,b=zee,foo=2 +a=zee,b=wye,foo=2 +a=hat,b=wye,foo=2 +a=pan,b=wye,foo=2 + +mlr count-distinct -f a -n -o foo ./reg_test/input/small ./reg_test/input/abixy +count=5 + +mlr count-distinct -f a,b -n -o foo ./reg_test/input/small ./reg_test/input/abixy +count=10 + +mlr grep pan ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr grep -v pan ./reg_test/input/abixy-het +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr decimate -n 4 ./reg_test/input/abixy +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 + +mlr decimate -b -n 4 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr decimate -e -n 4 ./reg_test/input/abixy +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 + +mlr decimate -g a -n 2 ./reg_test/input/abixy +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr decimate -g a -b -n 2 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr decimate -g a -e -n 2 ./reg_test/input/abixy +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +WHITESPACE-REDUCTION + +mlr --icsv --ojson cat ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b ": 2, " c": 3 } +{ "n": 2, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 3, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 4, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 5, "a": "xy", "b ": 2, " c": 3 } +{ "n": 6, "a": " xy", "b ": 2, " c": 3 } +{ "n": 7, "a": " xy", "b ": 2, " c": 3 } +{ "n": 8, "a": " xy", "b ": 2, " c": 3 } +{ "n": 9, "a": "xy", "b ": 2, " c": 3 } +{ "n": 10, "a": " xy ", "b ": 2, " c": 3 } +{ "n": 11, "a": " xy ", "b ": 2, " c": 3 } +{ "n": 12, "a": " xy ", "b ": 2, " c": 3 } +{ "n": 13, "a": "", "b ": 2, " c": 3 } +{ "n": 14, "a": " ", "b ": 2, " c": 3 } +{ "n": 15, "a": " ", "b ": 2, " c": 3 } +{ "n": 16, "a": " ", "b ": 2, " c": 3 } + +mlr --icsv --ojson put $a = lstrip($a) ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b ": 2, " c": 3 } +{ "n": 2, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 3, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 4, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 5, "a": "xy", "b ": 2, " c": 3 } +{ "n": 6, "a": "xy", "b ": 2, " c": 3 } +{ "n": 7, "a": "xy", "b ": 2, " c": 3 } +{ "n": 8, "a": "xy", "b ": 2, " c": 3 } +{ "n": 9, "a": "xy", "b ": 2, " c": 3 } +{ "n": 10, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 11, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 12, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 13, "a": "", "b ": 2, " c": 3 } +{ "n": 14, "a": "", "b ": 2, " c": 3 } +{ "n": 15, "a": "", "b ": 2, " c": 3 } +{ "n": 16, "a": "", "b ": 2, " c": 3 } + +mlr --icsv --ojson put $a = rstrip($a) ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b ": 2, " c": 3 } +{ "n": 2, "a": "xy", "b ": 2, " c": 3 } +{ "n": 3, "a": "xy", "b ": 2, " c": 3 } +{ "n": 4, "a": "xy", "b ": 2, " c": 3 } +{ "n": 5, "a": "xy", "b ": 2, " c": 3 } +{ "n": 6, "a": " xy", "b ": 2, " c": 3 } +{ "n": 7, "a": " xy", "b ": 2, " c": 3 } +{ "n": 8, "a": " xy", "b ": 2, " c": 3 } +{ "n": 9, "a": "xy", "b ": 2, " c": 3 } +{ "n": 10, "a": " xy", "b ": 2, " c": 3 } +{ "n": 11, "a": " xy", "b ": 2, " c": 3 } +{ "n": 12, "a": " xy", "b ": 2, " c": 3 } +{ "n": 13, "a": "", "b ": 2, " c": 3 } +{ "n": 14, "a": "", "b ": 2, " c": 3 } +{ "n": 15, "a": "", "b ": 2, " c": 3 } +{ "n": 16, "a": "", "b ": 2, " c": 3 } + +mlr --icsv --ojson put $a = strip($a) ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b ": 2, " c": 3 } +{ "n": 2, "a": "xy", "b ": 2, " c": 3 } +{ "n": 3, "a": "xy", "b ": 2, " c": 3 } +{ "n": 4, "a": "xy", "b ": 2, " c": 3 } +{ "n": 5, "a": "xy", "b ": 2, " c": 3 } +{ "n": 6, "a": "xy", "b ": 2, " c": 3 } +{ "n": 7, "a": "xy", "b ": 2, " c": 3 } +{ "n": 8, "a": "xy", "b ": 2, " c": 3 } +{ "n": 9, "a": "xy", "b ": 2, " c": 3 } +{ "n": 10, "a": "xy", "b ": 2, " c": 3 } +{ "n": 11, "a": "xy", "b ": 2, " c": 3 } +{ "n": 12, "a": "xy", "b ": 2, " c": 3 } +{ "n": 13, "a": "", "b ": 2, " c": 3 } +{ "n": 14, "a": "", "b ": 2, " c": 3 } +{ "n": 15, "a": "", "b ": 2, " c": 3 } +{ "n": 16, "a": "", "b ": 2, " c": 3 } + +mlr --icsv --ojson put $a = collapse_whitespace($a) ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b ": 2, " c": 3 } +{ "n": 2, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 3, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 4, "a": "xy ", "b ": 2, " c": 3 } +{ "n": 5, "a": "xy", "b ": 2, " c": 3 } +{ "n": 6, "a": " xy", "b ": 2, " c": 3 } +{ "n": 7, "a": " xy", "b ": 2, " c": 3 } +{ "n": 8, "a": " xy", "b ": 2, " c": 3 } +{ "n": 9, "a": "xy", "b ": 2, " c": 3 } +{ "n": 10, "a": " xy ", "b ": 2, " c": 3 } +{ "n": 11, "a": " xy ", "b ": 2, " c": 3 } +{ "n": 12, "a": " xy ", "b ": 2, " c": 3 } +{ "n": 13, "a": "", "b ": 2, " c": 3 } +{ "n": 14, "a": " ", "b ": 2, " c": 3 } +{ "n": 15, "a": " ", "b ": 2, " c": 3 } +{ "n": 16, "a": " ", "b ": 2, " c": 3 } + +mlr --icsv --ojson put $a = clean_whitespace($a) ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b ": 2, " c": 3 } +{ "n": 2, "a": "xy", "b ": 2, " c": 3 } +{ "n": 3, "a": "xy", "b ": 2, " c": 3 } +{ "n": 4, "a": "xy", "b ": 2, " c": 3 } +{ "n": 5, "a": "xy", "b ": 2, " c": 3 } +{ "n": 6, "a": "xy", "b ": 2, " c": 3 } +{ "n": 7, "a": "xy", "b ": 2, " c": 3 } +{ "n": 8, "a": "xy", "b ": 2, " c": 3 } +{ "n": 9, "a": "xy", "b ": 2, " c": 3 } +{ "n": 10, "a": "xy", "b ": 2, " c": 3 } +{ "n": 11, "a": "xy", "b ": 2, " c": 3 } +{ "n": 12, "a": "xy", "b ": 2, " c": 3 } +{ "n": 13, "a": "", "b ": 2, " c": 3 } +{ "n": 14, "a": "", "b ": 2, " c": 3 } +{ "n": 15, "a": "", "b ": 2, " c": 3 } +{ "n": 16, "a": "", "b ": 2, " c": 3 } + +mlr --icsv --ojson clean-whitespace -k ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b": 2, "c": 3 } +{ "n": 2, "a": "xy ", "b": 2, "c": 3 } +{ "n": 3, "a": "xy ", "b": 2, "c": 3 } +{ "n": 4, "a": "xy ", "b": 2, "c": 3 } +{ "n": 5, "a": "xy", "b": 2, "c": 3 } +{ "n": 6, "a": " xy", "b": 2, "c": 3 } +{ "n": 7, "a": " xy", "b": 2, "c": 3 } +{ "n": 8, "a": " xy", "b": 2, "c": 3 } +{ "n": 9, "a": "xy", "b": 2, "c": 3 } +{ "n": 10, "a": " xy ", "b": 2, "c": 3 } +{ "n": 11, "a": " xy ", "b": 2, "c": 3 } +{ "n": 12, "a": " xy ", "b": 2, "c": 3 } +{ "n": 13, "a": "", "b": 2, "c": 3 } +{ "n": 14, "a": " ", "b": 2, "c": 3 } +{ "n": 15, "a": " ", "b": 2, "c": 3 } +{ "n": 16, "a": " ", "b": 2, "c": 3 } + +mlr --icsv --ojson clean-whitespace -v ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b ": 2, " c": 3 } +{ "n": 2, "a": "xy", "b ": 2, " c": 3 } +{ "n": 3, "a": "xy", "b ": 2, " c": 3 } +{ "n": 4, "a": "xy", "b ": 2, " c": 3 } +{ "n": 5, "a": "xy", "b ": 2, " c": 3 } +{ "n": 6, "a": "xy", "b ": 2, " c": 3 } +{ "n": 7, "a": "xy", "b ": 2, " c": 3 } +{ "n": 8, "a": "xy", "b ": 2, " c": 3 } +{ "n": 9, "a": "xy", "b ": 2, " c": 3 } +{ "n": 10, "a": "xy", "b ": 2, " c": 3 } +{ "n": 11, "a": "xy", "b ": 2, " c": 3 } +{ "n": 12, "a": "xy", "b ": 2, " c": 3 } +{ "n": 13, "a": "", "b ": 2, " c": 3 } +{ "n": 14, "a": "", "b ": 2, " c": 3 } +{ "n": 15, "a": "", "b ": 2, " c": 3 } +{ "n": 16, "a": "", "b ": 2, " c": 3 } + +mlr --icsv --ojson clean-whitespace ./reg_test/input/clean-whitespace.csv +{ "n": 1, "a": "xy", "b": 2, "c": 3 } +{ "n": 2, "a": "xy", "b": 2, "c": 3 } +{ "n": 3, "a": "xy", "b": 2, "c": 3 } +{ "n": 4, "a": "xy", "b": 2, "c": 3 } +{ "n": 5, "a": "xy", "b": 2, "c": 3 } +{ "n": 6, "a": "xy", "b": 2, "c": 3 } +{ "n": 7, "a": "xy", "b": 2, "c": 3 } +{ "n": 8, "a": "xy", "b": 2, "c": 3 } +{ "n": 9, "a": "xy", "b": 2, "c": 3 } +{ "n": 10, "a": "xy", "b": 2, "c": 3 } +{ "n": 11, "a": "xy", "b": 2, "c": 3 } +{ "n": 12, "a": "xy", "b": 2, "c": 3 } +{ "n": 13, "a": "", "b": 2, "c": 3 } +{ "n": 14, "a": "", "b": 2, "c": 3 } +{ "n": 15, "a": "", "b": 2, "c": 3 } +{ "n": 16, "a": "", "b": 2, "c": 3 } + + +================================================================ +SORT + +mlr sort -f a ./reg_test/input/abixy +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 + +mlr sort -r a ./reg_test/input/abixy +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 + +mlr sort -f x ./reg_test/input/abixy +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr sort -r x ./reg_test/input/abixy +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr sort -nf x ./reg_test/input/abixy +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr sort -nr x ./reg_test/input/abixy +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr sort -f a,b ./reg_test/input/abixy +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 + +mlr sort -r a,b ./reg_test/input/abixy +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr sort -f x,y ./reg_test/input/abixy +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr sort -r x,y ./reg_test/input/abixy +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr sort -nf x,y ./reg_test/input/abixy +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +mlr sort -nr x,y ./reg_test/input/abixy +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr sort -f a -nr x ./reg_test/input/abixy +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 + +mlr sort -nr y -f a ./reg_test/input/abixy +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 + +mlr sort -f a -r b -nf x -nr y ./reg_test/input/abixy +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 + +mlr sort -f x ./reg_test/input/sort-het.dkvp +x=1 +x=2 +x=4 +a=3 + +mlr sort -r x ./reg_test/input/sort-het.dkvp +x=4 +x=2 +x=1 +a=3 + + +================================================================ +JOIN + +mlr --opprint join -s -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +o x y +1 a s +2 b t +2 c t +2 d t +2 b v +2 c v +2 d v +3 e w +3 f w +3 e x +3 f x +3 e y +3 f y + +mlr --opprint join -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +o x y +1 a s +2 b t +2 c t +2 d t +2 b v +2 c v +2 d v +3 e w +3 f w +3 e x +3 f x +3 e y +3 f y + +mlr --opprint join -s --ul -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +o x y +1 a s +2 b t +2 c t +2 d t +2 b v +2 c v +2 d v +3 e w +3 f w +3 e x +3 f x +3 e y +3 f y + +l x +4 g + +mlr --opprint join --ul -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +o x y +1 a s +2 b t +2 c t +2 d t +2 b v +2 c v +2 d v +3 e w +3 f w +3 e x +3 f x +3 e y +3 f y + +l x +4 g + +mlr --opprint join -s --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +o x y +1 a s +2 b t +2 c t +2 d t +2 b v +2 c v +2 d v +3 e w +3 f w +3 e x +3 f x +3 e y +3 f y + +r y +5 z + +mlr --opprint join --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +o x y +1 a s +2 b t +2 c t +2 d t +2 b v +2 c v +2 d v +3 e w +3 f w +3 e x +3 f x +3 e y +3 f y + +r y +5 z + +mlr --opprint join -s --ul --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +o x y +1 a s +2 b t +2 c t +2 d t +2 b v +2 c v +2 d v +3 e w +3 f w +3 e x +3 f x +3 e y +3 f y + +l x +4 g + +r y +5 z + +mlr --opprint join --ul --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +o x y +1 a s +2 b t +2 c t +2 d t +2 b v +2 c v +2 d v +3 e w +3 f w +3 e x +3 f x +3 e y +3 f y + +r y +5 z + +l x +4 g + +mlr --opprint join -s --np --ul -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +l x +4 g + +mlr --opprint join --np --ul -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +l x +4 g + +mlr --opprint join -s --np --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +5 z + +mlr --opprint join --np --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +5 z + +mlr --opprint join -s --np --ul --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +l x +4 g + +r y +5 z + +mlr --opprint join --np --ul --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +5 z + +l x +4 g + +mlr join -l l -r r -j j -f ./reg_test/input/joina.dkvp ./reg_test/input/joinb.dkvp +j=1,x=a,y=s +j=2,x=b,y=t +j=2,x=c,y=t +j=2,x=d,y=t +j=2,x=b,y=v +j=2,x=c,y=v +j=2,x=d,y=v +j=3,x=e,y=w +j=3,x=f,y=w +j=3,x=e,y=x +j=3,x=f,y=x +j=3,x=e,y=y +j=3,x=f,y=y + +mlr join -l l -j r -f ./reg_test/input/joina.dkvp ./reg_test/input/joinb.dkvp +r=1,x=a,y=s +r=2,x=b,y=t +r=2,x=c,y=t +r=2,x=d,y=t +r=2,x=b,y=v +r=2,x=c,y=v +r=2,x=d,y=v +r=3,x=e,y=w +r=3,x=f,y=w +r=3,x=e,y=x +r=3,x=f,y=x +r=3,x=e,y=y +r=3,x=f,y=y + +mlr join -r r -j l -f ./reg_test/input/joina.dkvp ./reg_test/input/joinb.dkvp +l=1,x=a,y=s +l=2,x=b,y=t +l=2,x=c,y=t +l=2,x=d,y=t +l=2,x=b,y=v +l=2,x=c,y=v +l=2,x=d,y=v +l=3,x=e,y=w +l=3,x=f,y=w +l=3,x=e,y=x +l=3,x=f,y=x +l=3,x=e,y=y +l=3,x=f,y=y + +mlr --opprint join -s -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp + +mlr --opprint join -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp + +mlr --opprint join -s --ul -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp + +mlr --opprint join --ul -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp + +mlr --opprint join -s --ur -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +1 s +2 t +2 v +3 w +3 x +3 y +5 z + +mlr --opprint join --ur -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +1 s +2 t +2 v +3 w +3 x +3 y +5 z + +mlr --opprint join -s --ul --ur -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +1 s +2 t +2 v +3 w +3 x +3 y +5 z + +mlr --opprint join --ul --ur -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +1 s +2 t +2 v +3 w +3 x +3 y +5 z + +mlr --opprint join -s --np --ul -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp + +mlr --opprint join --np --ul -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp + +mlr --opprint join -s --np --ur -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +1 s +2 t +2 v +3 w +3 x +3 y +5 z + +mlr --opprint join --np --ur -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +1 s +2 t +2 v +3 w +3 x +3 y +5 z + +mlr --opprint join -s --np --ul --ur -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +1 s +2 t +2 v +3 w +3 x +3 y +5 z + +mlr --opprint join --np --ul --ur -f /dev/null -l l -r r -j o ./reg_test/input/joinb.dkvp +r y +1 s +2 t +2 v +3 w +3 x +3 y +5 z + +mlr --opprint join -s -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null + +mlr --opprint join -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null + +mlr --opprint join -s --ul -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null +l x +1 a +2 b +2 c +2 d +3 e +3 f +4 g + +mlr --opprint join --ul -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null +l x +1 a +2 b +2 c +2 d +3 e +3 f +4 g + +mlr --opprint join -s --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null + +mlr --opprint join --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null + +mlr --opprint join -s --ul --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null +l x +1 a +2 b +2 c +2 d +3 e +3 f +4 g + +mlr --opprint join --ul --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null +l x +1 a +2 b +2 c +2 d +3 e +3 f +4 g + +mlr --opprint join -s --np --ul -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null +l x +1 a +2 b +2 c +2 d +3 e +3 f +4 g + +mlr --opprint join --np --ul -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null +l x +1 a +2 b +2 c +2 d +3 e +3 f +4 g + +mlr --opprint join -s --np --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null + +mlr --opprint join --np --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null + +mlr --opprint join -s --np --ul --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null +l x +1 a +2 b +2 c +2 d +3 e +3 f +4 g + +mlr --opprint join --np --ul --ur -f ./reg_test/input/joina.dkvp -l l -r r -j o /dev/null +l x +1 a +2 b +2 c +2 d +3 e +3 f +4 g + +mlr --odkvp join -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het +a=pan,n=234,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,n=123,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,n=123,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,n=345,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,n=456,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,n=123,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,n=456,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,n=234,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --odkvp join -j a -f ./reg_test/input/abixy-het ./reg_test/input/join-het.dkvp +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,n=123 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,n=123 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,n=123 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,n=234 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,n=234 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,n=345 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,n=456 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,n=456 + +mlr --odkvp join --np --ul --ur -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +aye=bee,enn=emm + +mlr --odkvp join --np --ul --ur -j a -f ./reg_test/input/abixy-het ./reg_test/input/join-het.dkvp +aye=bee,enn=emm +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr --idkvp --oxtab join --lp left_ --rp right_ -j i -f ./reg_test/input/abixy-het ./reg_test/input/abixy-het +i 1 +left_a pan +left_b pan +left_x 0.3467901443380824 +left_y 0.7268028627434533 +right_a pan +right_b pan +right_x 0.3467901443380824 +right_y 0.7268028627434533 + +i 2 +left_a eks +left_b pan +left_x 0.7586799647899636 +left_y 0.5221511083334797 +right_a eks +right_b pan +right_x 0.7586799647899636 +right_y 0.5221511083334797 + +i 3 +left_aaa wye +left_b wye +left_x 0.20460330576630303 +left_y 0.33831852551664776 +right_aaa wye +right_b wye +right_x 0.20460330576630303 +right_y 0.33831852551664776 + +i 4 +left_a eks +left_bbb wye +left_x 0.38139939387114097 +left_y 0.13418874328430463 +right_a eks +right_bbb wye +right_x 0.38139939387114097 +right_y 0.13418874328430463 + +i 5 +left_a wye +left_b pan +left_xxx 0.5732889198020006 +left_y 0.8636244699032729 +right_a wye +right_b pan +right_xxx 0.5732889198020006 +right_y 0.8636244699032729 + +i 6 +left_a zee +left_b pan +left_x 0.5271261600918548 +left_y 0.49322128674835697 +right_a zee +right_b pan +right_x 0.5271261600918548 +right_y 0.49322128674835697 + +i 8 +left_a zee +left_b wye +left_x 0.5985540091064224 +left_yyy 0.976181385699006 +right_a zee +right_b wye +right_x 0.5985540091064224 +right_yyy 0.976181385699006 + +i 9 +left_aaa hat +left_bbb wye +left_x 0.03144187646093577 +left_y 0.7495507603507059 +right_aaa hat +right_bbb wye +right_x 0.03144187646093577 +right_y 0.7495507603507059 + +i 10 +left_a pan +left_b wye +left_x 0.5026260055412137 +left_y 0.9526183602969864 +right_a pan +right_b wye +right_x 0.5026260055412137 +right_y 0.9526183602969864 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r1 +j=1,b=11 +j=1,b=12 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r11 +j=1,b=11 +j=1,b=12 +j=1,b=11 +j=1,b=12 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r12 +j=1,b=11 +j=1,b=12 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r13 +j=1,b=11 +j=1,b=12 +j=3,b=14 +j=3,b=15 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r14 +j=1,b=11 +j=1,b=12 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r15 +j=1,b=11 +j=1,b=12 +j=5,b=17 +j=5,b=18 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r16 +j=1,b=11 +j=1,b=12 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r2 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r22 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r23 +j=3,b=14 +j=3,b=15 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r24 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r25 +j=5,b=17 +j=5,b=18 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r26 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r3 +j=3,b=14 +j=3,b=15 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r33 +j=3,b=14 +j=3,b=15 +j=3,b=14 +j=3,b=15 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r34 +j=3,b=14 +j=3,b=15 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r35 +j=3,b=14 +j=3,b=15 +j=5,b=17 +j=5,b=18 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r36 +j=3,b=14 +j=3,b=15 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r4 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r44 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r45 +j=5,b=17 +j=5,b=18 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r46 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r5 +j=5,b=17 +j=5,b=18 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r55 +j=5,b=17 +j=5,b=18 +j=5,b=17 +j=5,b=18 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r56 +j=5,b=17 +j=5,b=18 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r6 + +mlr join -s -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r66 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r1 +x=100,b=10 +x=200,b=13 +l=3,b=14 +l=3,b=15 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r11 +x=100,b=10 +x=200,b=13 +l=3,b=14 +l=3,b=15 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r12 +x=100,b=10 +x=200,b=13 +x=300,b=16 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r13 +x=100,b=10 +x=200,b=13 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r14 +x=100,b=10 +x=200,b=13 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 +l=5,b=17 +l=5,b=18 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r15 +x=100,b=10 +x=200,b=13 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r16 +x=100,b=10 +x=200,b=13 +l=3,b=14 +l=3,b=15 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r2 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r22 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r23 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r24 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=3,b=14 +l=3,b=15 +x=400,b=19 +l=5,b=17 +l=5,b=18 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r25 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=3,b=14 +l=3,b=15 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r26 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r3 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r33 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r34 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +x=400,b=19 +l=5,b=17 +l=5,b=18 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r35 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r36 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r4 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 +l=5,b=17 +l=5,b=18 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r44 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 +l=5,b=17 +l=5,b=18 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r45 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r46 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 +l=5,b=17 +l=5,b=18 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r5 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r55 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r56 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r6 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r66 +x=100,b=10 +x=200,b=13 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r1 +y=111 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r11 +y=111 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r12 +y=111 +y=222 +r=2 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r13 +y=111 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r14 +y=111 +y=222 +r=4 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r15 +y=111 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r16 +y=111 +y=222 +r=6 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r2 +y=111 +r=2 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r22 +y=111 +r=2 +y=222 +r=2 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r23 +y=111 +r=2 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r24 +y=111 +r=2 +y=222 +r=4 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r25 +y=111 +r=2 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r26 +y=111 +r=2 +y=222 +r=6 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r3 +y=111 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r33 +y=111 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r34 +y=111 +y=222 +r=4 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r35 +y=111 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r36 +y=111 +y=222 +r=6 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r4 +y=111 +r=4 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r44 +y=111 +r=4 +y=222 +r=4 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r45 +y=111 +r=4 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r46 +y=111 +r=4 +y=222 +r=6 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r5 +y=111 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r55 +y=111 +y=222 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r56 +y=111 +y=222 +r=6 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r6 +y=111 +r=6 +y=333 + +mlr join -s --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r66 +y=111 +r=6 +y=222 +r=6 +y=333 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r1 +j=1,b=11 +j=1,b=12 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r11 +j=1,b=11 +j=1,b=12 +j=1,b=11 +j=1,b=12 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r12 +j=1,b=11 +j=1,b=12 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r13 +j=1,b=11 +j=1,b=12 +j=3,b=14 +j=3,b=15 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r14 +j=1,b=11 +j=1,b=12 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r15 +j=1,b=11 +j=1,b=12 +j=5,b=17 +j=5,b=18 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r16 +j=1,b=11 +j=1,b=12 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r2 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r22 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r23 +j=3,b=14 +j=3,b=15 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r24 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r25 +j=5,b=17 +j=5,b=18 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r26 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r3 +j=3,b=14 +j=3,b=15 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r33 +j=3,b=14 +j=3,b=15 +j=3,b=14 +j=3,b=15 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r34 +j=3,b=14 +j=3,b=15 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r35 +j=3,b=14 +j=3,b=15 +j=5,b=17 +j=5,b=18 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r36 +j=3,b=14 +j=3,b=15 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r4 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r44 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r45 +j=5,b=17 +j=5,b=18 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r46 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r5 +j=5,b=17 +j=5,b=18 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r55 +j=5,b=17 +j=5,b=18 +j=5,b=17 +j=5,b=18 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r56 +j=5,b=17 +j=5,b=18 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r6 + +mlr join -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r66 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r1 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r11 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r13 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r14 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r15 +l=3,b=14 +l=3,b=15 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r16 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r2 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r22 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r23 +l=1,b=11 +l=1,b=12 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r24 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r25 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r26 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r3 +l=1,b=11 +l=1,b=12 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r33 +l=1,b=11 +l=1,b=12 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r34 +l=1,b=11 +l=1,b=12 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r35 +l=1,b=11 +l=1,b=12 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r36 +l=1,b=11 +l=1,b=12 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r4 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r44 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r45 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r46 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r5 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r55 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r56 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r6 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ul -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r66 +l=1,b=11 +l=1,b=12 +l=3,b=14 +l=3,b=15 +l=5,b=17 +l=5,b=18 +x=100,b=10 +x=200,b=13 +x=300,b=16 +x=400,b=19 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r1 +y=111 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r11 +y=111 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r12 +y=111 +y=222 +r=2 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r13 +y=111 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r14 +y=111 +y=222 +r=4 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r15 +y=111 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r16 +y=111 +y=222 +r=6 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r2 +y=111 +r=2 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r22 +y=111 +r=2 +y=222 +r=2 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r23 +y=111 +r=2 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r24 +y=111 +r=2 +y=222 +r=4 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r25 +y=111 +r=2 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r26 +y=111 +r=2 +y=222 +r=6 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r3 +y=111 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r33 +y=111 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r34 +y=111 +y=222 +r=4 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r35 +y=111 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r36 +y=111 +y=222 +r=6 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r4 +y=111 +r=4 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r44 +y=111 +r=4 +y=222 +r=4 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r45 +y=111 +r=4 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r46 +y=111 +r=4 +y=222 +r=6 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r5 +y=111 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r55 +y=111 +y=222 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r56 +y=111 +y=222 +r=6 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r6 +y=111 +r=6 +y=333 + +mlr join --np --ur -l l -r r -j j -f ./reg_test/input/het-join-left ./reg_test/input/het-join-right-r66 +y=111 +r=6 +y=222 +r=6 +y=333 + + +================================================================ +JOIN PREPIPE + +mlr --prepipe cat --odkvp join -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het +a=pan,n=234,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,n=123,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,n=123,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,n=345,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,n=456,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,n=123,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,n=456,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,n=234,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --odkvp join --prepipe cat -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het +a=pan,n=234,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,n=123,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,n=123,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,n=345,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,n=456,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,n=123,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,n=456,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,n=234,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --prepipe cat --odkvp join --prepipe cat -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het +a=pan,n=234,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,n=123,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,n=123,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,n=345,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,n=456,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,n=123,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,n=456,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +a=pan,n=234,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +JOIN MIXED-FORMAT + +mlr --json join -s -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --dkvp join -s -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --csvlite join -s -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --json join -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --dkvp join -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --csvlite join -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --json join -s -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --dkvp join -s -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --csvlite join -s -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --json join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --dkvp join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --csvlite join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --json join -s -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --dkvp join -s -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --csvlite join -s -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --json join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --dkvp join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --csvlite join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --json join -s -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --dkvp join -s -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --csvlite join -s -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --json join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --dkvp join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --csvlite join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --ijson --ojson join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --idkvp --ojson join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.dkvp +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --icsvlite --ojson join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --ijson --ojson join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --idkvp --ojson join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --icsvlite --ojson join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.csv +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --ijson --ojson join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --idkvp --ojson join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.dkvp +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --icsvlite --ojson join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.csv +{ "x": 1, "a": 2, "b": 20 } +{ "x": 2, "a": 3, "b": 30 } +{ "x": 3, "a": 4, "b": 40 } +{ "x": 4, "a": 5, "b": 50 } + +mlr --ijson --odkvp join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.json +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --idkvp --odkvp join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --icsvlite --odkvp join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --ijson --odkvp join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.json +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --idkvp --odkvp join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --icsvlite --odkvp join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.csv +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --ijson --odkvp join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --idkvp --odkvp join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.dkvp +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --icsvlite --odkvp join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.csv +x=1,a=2,b=20 +x=2,a=3,b=30 +x=3,a=4,b=40 +x=4,a=5,b=50 + +mlr --ijson --ocsvlite join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.json +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --idkvp --ocsvlite join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.dkvp +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --icsvlite --ocsvlite join -i csvlite -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --ijson --ocsvlite join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.json +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --idkvp --ocsvlite join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --icsvlite --ocsvlite join -i dkvp -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --ijson --ocsvlite join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --idkvp --ocsvlite join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.dkvp +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + +mlr --icsvlite --ocsvlite join -i json -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.csv +x,a,b +1,2,20 +2,3,30 +3,4,40 +4,5,50 + + +================================================================ +REPEAT + +mlr repeat -n 5 ./reg_test/input/repeat-input.dat +a=1,b=2,c=3 +a=1,b=2,c=3 +a=1,b=2,c=3 +a=1,b=2,c=3 +a=1,b=2,c=3 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 + +mlr repeat -f a ./reg_test/input/repeat-input.dat +a=1,b=2,c=3 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 + +mlr repeat -f b ./reg_test/input/repeat-input.dat +a=1,b=2,c=3 +a=1,b=2,c=3 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 + +mlr repeat -f c ./reg_test/input/repeat-input.dat +a=1,b=2,c=3 +a=1,b=2,c=3 +a=1,b=2,c=3 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=3,b=4,c=5 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=6,b=,c=7 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 +a=8,x=,c=9 + + +================================================================ +RESHAPE + +mlr --pprint reshape -i X,Y,Z -o item,price ./reg_test/input/reshape-wide.tbl +time item price +2009-01-01 X 0.65473572 +2009-01-01 Y 2.4520609 +2009-01-01 Z -1.46570942 +2009-01-02 X -0.89248112 +2009-01-02 Y 0.2154713 +2009-01-02 Z -2.05357735 +2009-01-03 X 0.98012375 +2009-01-03 Y 1.3179287 +2009-01-03 Z 4.64248357 +2009-01-04 X 0.35397376 +2009-01-04 Y 3.3765645 +2009-01-04 Z -0.25237774 +2009-01-05 X 2.19357813 +2009-01-05 Y 1.3477511 +2009-01-05 Z 0.09719105 + +mlr --pprint reshape -i X,Z -o item,price ./reg_test/input/reshape-wide.tbl +time Y item price +2009-01-01 2.4520609 X 0.65473572 +2009-01-01 2.4520609 Z -1.46570942 +2009-01-02 0.2154713 X -0.89248112 +2009-01-02 0.2154713 Z -2.05357735 +2009-01-03 1.3179287 X 0.98012375 +2009-01-03 1.3179287 Z 4.64248357 +2009-01-04 3.3765645 X 0.35397376 +2009-01-04 3.3765645 Z -0.25237774 +2009-01-05 1.3477511 X 2.19357813 +2009-01-05 1.3477511 Z 0.09719105 + +mlr --pprint reshape -r [X-Z] -o item,price ./reg_test/input/reshape-wide.tbl +time item price +2009-01-01 X 0.65473572 +2009-01-01 Y 2.4520609 +2009-01-01 Z -1.46570942 +2009-01-02 X -0.89248112 +2009-01-02 Y 0.2154713 +2009-01-02 Z -2.05357735 +2009-01-03 X 0.98012375 +2009-01-03 Y 1.3179287 +2009-01-03 Z 4.64248357 +2009-01-04 X 0.35397376 +2009-01-04 Y 3.3765645 +2009-01-04 Z -0.25237774 +2009-01-05 X 2.19357813 +2009-01-05 Y 1.3477511 +2009-01-05 Z 0.09719105 + +mlr --pprint reshape -r [XZ] -o item,price ./reg_test/input/reshape-wide.tbl +time Y item price +2009-01-01 2.4520609 X 0.65473572 +2009-01-01 2.4520609 Z -1.46570942 +2009-01-02 0.2154713 X -0.89248112 +2009-01-02 0.2154713 Z -2.05357735 +2009-01-03 1.3179287 X 0.98012375 +2009-01-03 1.3179287 Z 4.64248357 +2009-01-04 3.3765645 X 0.35397376 +2009-01-04 3.3765645 Z -0.25237774 +2009-01-05 1.3477511 X 2.19357813 +2009-01-05 1.3477511 Z 0.09719105 + +mlr --pprint reshape -s item,price ./reg_test/input/reshape-long.tbl +time X Y Z +2009-01-01 0.65473572 2.4520609 -1.46570942 +2009-01-02 -0.89248112 0.2154713 -2.05357735 +2009-01-03 0.98012375 1.3179287 4.64248357 +2009-01-04 0.35397376 3.3765645 -0.25237774 +2009-01-05 2.19357813 1.3477511 0.09719105 + +mlr --pprint reshape -i X,Y,Z -o item,price then reshape -s item,price ./reg_test/input/reshape-wide.tbl +time X Y Z +2009-01-01 0.65473572 2.4520609 -1.46570942 +2009-01-02 -0.89248112 0.2154713 -2.05357735 +2009-01-03 0.98012375 1.3179287 4.64248357 +2009-01-04 0.35397376 3.3765645 -0.25237774 +2009-01-05 2.19357813 1.3477511 0.09719105 + +mlr --pprint reshape -s item,price then reshape -i X,Y,Z -o item,price ./reg_test/input/reshape-long.tbl +time item price +2009-01-01 X 0.65473572 +2009-01-01 Y 2.4520609 +2009-01-01 Z -1.46570942 +2009-01-02 X -0.89248112 +2009-01-02 Y 0.2154713 +2009-01-02 Z -2.05357735 +2009-01-03 X 0.98012375 +2009-01-03 Y 1.3179287 +2009-01-03 Z 4.64248357 +2009-01-04 X 0.35397376 +2009-01-04 Y 3.3765645 +2009-01-04 Z -0.25237774 +2009-01-05 X 2.19357813 +2009-01-05 Y 1.3477511 +2009-01-05 Z 0.09719105 + +mlr reshape -i X,Y,Z -o item,price ./reg_test/input/reshape-wide-ragged.dkvp +time=2009-01-01,item=X,price=0.65473572 +time=2009-01-01,item=Y,price=2.4520609 +time=2009-01-01,item=Z,price=-1.46570942 +time=2009-01-02,item=X,price=-0.89248112 +time=2009-01-02,item=Y,price=0.2154713 +time=2009-01-03,item=X,price=0.98012375 +time=2009-01-04 +time=2009-01-05,U=1.3477511,V=0.09719105,item=X,price=2.19357813 + +mlr reshape -i X,Z -o item,price ./reg_test/input/reshape-wide-ragged.dkvp +time=2009-01-01,Y=2.4520609,item=X,price=0.65473572 +time=2009-01-01,Y=2.4520609,item=Z,price=-1.46570942 +time=2009-01-02,Y=0.2154713,item=X,price=-0.89248112 +time=2009-01-03,item=X,price=0.98012375 +time=2009-01-04 +time=2009-01-05,U=1.3477511,V=0.09719105,item=X,price=2.19357813 + +mlr reshape -r [X-Z] -o item,price ./reg_test/input/reshape-wide-ragged.dkvp +time=2009-01-01,item=X,price=0.65473572 +time=2009-01-01,item=Y,price=2.4520609 +time=2009-01-01,item=Z,price=-1.46570942 +time=2009-01-02,item=X,price=-0.89248112 +time=2009-01-02,item=Y,price=0.2154713 +time=2009-01-03,item=X,price=0.98012375 +time=2009-01-04 +time=2009-01-05,U=1.3477511,V=0.09719105,item=X,price=2.19357813 + +mlr reshape -r [XZ] -o item,price ./reg_test/input/reshape-wide-ragged.dkvp +time=2009-01-01,Y=2.4520609,item=X,price=0.65473572 +time=2009-01-01,Y=2.4520609,item=Z,price=-1.46570942 +time=2009-01-02,Y=0.2154713,item=X,price=-0.89248112 +time=2009-01-03,item=X,price=0.98012375 +time=2009-01-04 +time=2009-01-05,U=1.3477511,V=0.09719105,item=X,price=2.19357813 + +mlr reshape -s item,price ./reg_test/input/reshape-long-ragged.dkvp +time=2009-01-01,item=X,value=0.65473572 +time=2009-01-01,item=Y,value=2.4520609 +time=2009-01-01,item=Z,value=-1.46570942 +time=2009-01-02,item=X,value=-0.89248112 +time=2009-01-02,item=Y,value=0.2154713 +time=2009-01-03,item=X,value=0.98012375 +time=2009-01-04 +time=2009-01-05,U=1.3477511,V=0.09719105,item=X,value=2.19357813 + +mlr --json reshape -i x,y -o item,value ./reg_test/input/small-non-nested.json +{ "a": "pan", "b": "pan", "i": 1, "item": "x", "value": 0.3467901443380824 } +{ "a": "pan", "b": "pan", "i": 1, "item": "y", "value": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "item": "x", "value": 0.7586799647899636 } +{ "a": "eks", "b": "pan", "i": 2, "item": "y", "value": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "item": "x", "value": 0.20460330576630303 } +{ "a": "wye", "b": "wye", "i": 3, "item": "y", "value": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "item": "x", "value": 0.38139939387114097 } +{ "a": "eks", "b": "wye", "i": 4, "item": "y", "value": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "item": "x", "value": 0.5732889198020006 } +{ "a": "wye", "b": "pan", "i": 5, "item": "y", "value": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "item": "x", "value": 0.5271261600918548 } +{ "a": "zee", "b": "pan", "i": 6, "item": "y", "value": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "item": "x", "value": 0.6117840605678454 } +{ "a": "eks", "b": "zee", "i": 7, "item": "y", "value": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "item": "x", "value": 0.5985540091064224 } +{ "a": "zee", "b": "wye", "i": 8, "item": "y", "value": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "item": "x", "value": 0.03144187646093577 } +{ "a": "hat", "b": "wye", "i": 9, "item": "y", "value": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "item": "x", "value": 0.5026260055412137 } +{ "a": "pan", "b": "wye", "i": 10, "item": "y", "value": 0.9526183602969864 } + + +================================================================ +NEST + +mlr cat ./reg_test/input/nest-explode.dkvp +x=a:1;b:2;c:3,y=d:40 +x=,y=d:50 +u=100,y=d:60 +x=a:4;b:5,y=d:70 + +mlr cat ./reg_test/input/nest-explode-vary-fs-ps.dkvp +x=a=1|b=2|c=3,y=d=40 +x=,y=d=50 +u=100,y=d=60 +x=a=4|b=5,y=d=70 + +mlr nest --explode --values --across-fields -f x ./reg_test/input/nest-explode.dkvp +x_1=a:1,x_2=b:2,x_3=c:3,y=d:40 +x_1=,y=d:50 +u=100,y=d:60 +x_1=a:4,x_2=b:5,y=d:70 + +mlr nest --explode --values --across-fields -f x --nested-fs pipe --nested-ps = ./reg_test/input/nest-explode-vary-fs-ps.dkvp +x_1=a=1,x_2=b=2,x_3=c=3,y=d=40 +x_1=,y=d=50 +u=100,y=d=60 +x_1=a=4,x_2=b=5,y=d=70 + +mlr nest --explode --values --across-fields -f x then nest --implode --values --across-fields -f x ./reg_test/input/nest-explode.dkvp +x=a:1;b:2;c:3,y=d:40 +x=,y=d:50 +u=100,y=d:60 +x=a:4;b:5,y=d:70 + +mlr nest --explode --values --across-fields -f x --nested-fs pipe --nested-ps = then nest --implode --values --across-fields -f x --nested-fs pipe --nested-ps = ./reg_test/input/nest-explode-vary-fs-ps.dkvp +x=a=1|b=2|c=3,y=d=40 +x=,y=d=50 +u=100,y=d=60 +x=a=4|b=5,y=d=70 + +mlr nest --explode --values --across-records -f x ./reg_test/input/nest-explode.dkvp +x=a:1,y=d:40 +x=b:2,y=d:40 +x=c:3,y=d:40 +x=,y=d:50 +u=100,y=d:60 +x=a:4,y=d:70 +x=b:5,y=d:70 + +mlr nest --explode --values --across-records -f x --nested-fs pipe --nested-ps = ./reg_test/input/nest-explode-vary-fs-ps.dkvp +x=a=1,y=d=40 +x=b=2,y=d=40 +x=c=3,y=d=40 +x=,y=d=50 +u=100,y=d=60 +x=a=4,y=d=70 +x=b=5,y=d=70 + +mlr nest --explode --values --across-records -f x then nest --implode --values --across-records -f x ./reg_test/input/nest-explode.dkvp +u=100,y=d:60 +x=a:1;b:2;c:3,y=d:40 +x=,y=d:50 +x=a:4;b:5,y=d:70 + +mlr nest --explode --values --across-records -f x --nested-fs pipe --nested-ps = then nest --implode --values --across-records -f x --nested-fs pipe --nested-ps = ./reg_test/input/nest-explode-vary-fs-ps.dkvp +u=100,y=d=60 +x=a=1|b=2|c=3,y=d=40 +x=,y=d=50 +x=a=4|b=5,y=d=70 + +mlr nest --explode --pairs --across-fields -f x ./reg_test/input/nest-explode.dkvp +a=1,b=2,c=3,y=d:40 +y=d:50 +u=100,y=d:60 +a=4,b=5,y=d:70 + +mlr nest --explode --pairs --across-fields -f x --nested-fs pipe --nested-ps = ./reg_test/input/nest-explode-vary-fs-ps.dkvp +a=1,b=2,c=3,y=d=40 +y=d=50 +u=100,y=d=60 +a=4,b=5,y=d=70 + +mlr nest --explode --pairs --across-records -f x ./reg_test/input/nest-explode.dkvp +a=1,y=d:40 +b=2,y=d:40 +c=3,y=d:40 +y=d:50 +u=100,y=d:60 +a=4,y=d:70 +b=5,y=d:70 + +mlr nest --explode --pairs --across-records -f x --nested-fs pipe --nested-ps = ./reg_test/input/nest-explode-vary-fs-ps.dkvp +a=1,y=d=40 +b=2,y=d=40 +c=3,y=d=40 +y=d=50 +u=100,y=d=60 +a=4,y=d=70 +b=5,y=d=70 + + +================================================================ +FILL-DOWN + +mlr --csv fill-down -f a,b,c ./reg_test/input/fill-down.csv +a,b,c +1,,3 +4,5,6 +7,5,9 + +mlr --csv fill-down -f a,b,c -a ./reg_test/input/fill-down.csv +a,b,c +1,,3 +4,5,6 +7,,9 + + +================================================================ +SEQGEN + +mlr seqgen --start 1 --stop 5 --step 1 +i=1 +i=2 +i=3 +i=4 +i=5 + +mlr seqgen --start 1 --stop 5 --step 2 +i=1 +i=3 +i=5 + +mlr seqgen --start 1 --stop 1 --step 1 -f a +a=1 + +mlr seqgen --start 5 --stop 1 --step 1 -f b + +mlr seqgen --start 5 --stop 1 --step -1 -f c +c=5 +c=4 +c=3 +c=2 +c=1 + +mlr seqgen --start 5 --stop 5 --step -1 -f d +d=5 + +mlr --from ./reg_test/input/abixy cat then seqgen --start 1 --stop 5 +i=1 +i=2 +i=3 +i=4 +i=5 + +mlr --from ./reg_test/input/abixy cat then seqgen --start 1 --stop 100 then stats1 -a count,sum,min,p50,max -f i +i_count=100,i_sum=5050,i_min=1,i_p50=51,i_max=100 + + +================================================================ +FRACTION + +mlr fraction -f x,y ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_fraction=0.087507,y_fraction=0.146286 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_fraction=0.191441,y_fraction=0.105095 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,x_fraction=0.051628,y_fraction=0.068095 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_fraction=0.096240,y_fraction=0.027009 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_fraction=0.173825 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_fraction=0.133012,y_fraction=0.099272 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_fraction=0.154374,y_fraction=0.037816 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_fraction=0.151035 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,x_fraction=0.007934,y_fraction=0.150865 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_fraction=0.126830,y_fraction=0.191737 + +mlr fraction -f x,y -g a ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_fraction=0.408269,y_fraction=0.432770 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_fraction=0.433070,y_fraction=0.618498 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_fraction=0.217711,y_fraction=0.158949 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_fraction=1.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_fraction=0.468273,y_fraction=1.000000 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_fraction=0.349219,y_fraction=0.222553 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_fraction=0.531727 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_fraction=0.591731,y_fraction=0.567230 + +mlr fraction -f x,y -g a,b ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_fraction=1.000000,y_fraction=1.000000 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_fraction=1.000000,y_fraction=1.000000 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_fraction=1.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_fraction=1.000000,y_fraction=1.000000 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_fraction=1.000000,y_fraction=1.000000 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_fraction=1.000000 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_fraction=1.000000,y_fraction=1.000000 + +mlr fraction -f x,y -p ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_percent=8.750687,y_percent=14.628624 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_percent=19.144058,y_percent=10.509524 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,x_percent=5.162832,y_percent=6.809459 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_percent=9.623995,y_percent=2.700865 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_percent=17.382482 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_percent=13.301173,y_percent=9.927243 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_percent=15.437378,y_percent=3.781628 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_percent=15.103539 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,x_percent=0.793385,y_percent=15.086479 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_percent=12.682952,y_percent=19.173694 + +mlr fraction -f x,y -g a -p ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_percent=40.826884,y_percent=43.276985 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_percent=43.307027,y_percent=61.849773 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_percent=21.771069,y_percent=15.894907 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_percent=100.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_percent=46.827347,y_percent=100.000000 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_percent=34.921904,y_percent=22.255319 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_percent=53.172653 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_percent=59.173116,y_percent=56.723015 + +mlr fraction -f x,y -g a,b -p ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_percent=100.000000,y_percent=100.000000 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_percent=100.000000,y_percent=100.000000 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_percent=100.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_percent=100.000000,y_percent=100.000000 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_percent=100.000000,y_percent=100.000000 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_percent=100.000000 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_percent=100.000000,y_percent=100.000000 + +mlr fraction -f x,y -c ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_cumulative_fraction=0.087507,y_cumulative_fraction=0.146286 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_cumulative_fraction=0.278947,y_cumulative_fraction=0.251381 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,x_cumulative_fraction=0.330576,y_cumulative_fraction=0.319476 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_cumulative_fraction=0.426816,y_cumulative_fraction=0.346485 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_cumulative_fraction=0.520310 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_cumulative_fraction=0.559827,y_cumulative_fraction=0.619582 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_cumulative_fraction=0.714201,y_cumulative_fraction=0.657398 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_cumulative_fraction=0.865237 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,x_cumulative_fraction=0.873170,y_cumulative_fraction=0.808263 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_cumulative_fraction=1.000000,y_cumulative_fraction=1.000000 + +mlr fraction -f x,y -g a -c ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_cumulative_fraction=0.408269,y_cumulative_fraction=0.432770 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_cumulative_fraction=0.433070,y_cumulative_fraction=0.618498 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_cumulative_fraction=0.650781,y_cumulative_fraction=0.777447 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_cumulative_fraction=1.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_cumulative_fraction=0.468273,y_cumulative_fraction=1.000000 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_cumulative_fraction=1.000000,y_cumulative_fraction=1.000000 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_cumulative_fraction=1.000000 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_cumulative_fraction=1.000000,y_cumulative_fraction=1.000000 + +mlr fraction -f x,y -g a,b -c ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_cumulative_fraction=1.000000,y_cumulative_fraction=1.000000 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_cumulative_fraction=1.000000,y_cumulative_fraction=1.000000 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_cumulative_fraction=1.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_cumulative_fraction=1.000000,y_cumulative_fraction=1.000000 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_cumulative_fraction=1.000000,y_cumulative_fraction=1.000000 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_cumulative_fraction=1.000000 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_cumulative_fraction=1.000000,y_cumulative_fraction=1.000000 + +mlr fraction -f x,y -p -c ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_cumulative_percent=8.750687,y_cumulative_percent=14.628624 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_cumulative_percent=27.894745,y_cumulative_percent=25.138148 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,x_cumulative_percent=33.057577,y_cumulative_percent=31.947608 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_cumulative_percent=42.681572,y_cumulative_percent=34.648473 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_cumulative_percent=52.030955 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_cumulative_percent=55.982746,y_cumulative_percent=61.958199 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_cumulative_percent=71.420124,y_cumulative_percent=65.739826 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_cumulative_percent=86.523663 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,x_cumulative_percent=87.317048,y_cumulative_percent=80.826306 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_cumulative_percent=100.000000,y_cumulative_percent=100.000000 + +mlr fraction -f x,y -g a -p -c ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_cumulative_percent=40.826884,y_cumulative_percent=43.276985 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_cumulative_percent=43.307027,y_cumulative_percent=61.849773 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_cumulative_percent=65.078096,y_cumulative_percent=77.744681 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_cumulative_percent=100.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_cumulative_percent=46.827347,y_cumulative_percent=100.000000 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_cumulative_percent=100.000000,y_cumulative_percent=100.000000 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_cumulative_percent=100.000000 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_cumulative_percent=100.000000,y_cumulative_percent=100.000000 + +mlr fraction -f x,y -g a,b -p -c ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_cumulative_percent=100.000000,y_cumulative_percent=100.000000 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_cumulative_percent=100.000000,y_cumulative_percent=100.000000 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_cumulative_percent=100.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_cumulative_percent=100.000000,y_cumulative_percent=100.000000 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_cumulative_percent=100.000000,y_cumulative_percent=100.000000 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_cumulative_percent=100.000000 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_cumulative_percent=100.000000,y_cumulative_percent=100.000000 + + +================================================================ +STATS + +mlr --opprint stats1 -a mean,sum,count,min,max,antimode,mode -f i,x,y ./reg_test/input/abixy +i_mean i_sum i_count i_min i_max i_antimode i_mode x_mean x_sum x_count x_min x_max x_antimode x_mode y_mean y_sum y_count y_min y_max y_antimode y_mode +5.500000 55 10 1 10 1 1 0.453629 4.536294 10 0.031442 0.758680 0.3467901443380824 0.3467901443380824 0.594454 5.944542 10 0.134189 0.976181 0.7268028627434533 0.7268028627434533 + +mlr --opprint stats1 -a min,p10,p50,median,antimode,mode,p90,max -f i,x,y ./reg_test/input/abixy +i_min i_p10 i_p50 i_median i_antimode i_mode i_p90 i_max x_min x_p10 x_p50 x_median x_antimode x_mode x_p90 x_max y_min y_p10 y_p50 y_median y_antimode y_mode y_p90 y_max +1 2 6 6 1 1 10 10 0.031442 0.204603 0.527126 0.527126 0.3467901443380824 0.3467901443380824 0.758680 0.758680 0.134189 0.187885 0.726803 0.726803 0.7268028627434533 0.7268028627434533 0.976181 0.976181 + +mlr --opprint stats1 -a mean,meaneb,stddev -f i,x,y ./reg_test/input/abixy +i_mean i_meaneb i_stddev x_mean x_meaneb x_stddev y_mean y_meaneb y_stddev +5.500000 0.957427 3.027650 0.453629 0.068157 0.215531 0.594454 0.096968 0.306639 + +mlr --oxtab stats1 -s -a mean,sum,count,min,max,antimode,mode -f i,x,y ./reg_test/input/abixy +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 +i_mean 1.000000 +i_sum 1 +i_count 1 +i_min 1 +i_max 1 +i_antimode 1 +i_mode 1 +x_mean 0.346790 +x_sum 0.346790 +x_count 1 +x_min 0.346790 +x_max 0.346790 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.726803 +y_sum 0.726803 +y_count 1 +y_min 0.726803 +y_max 0.726803 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 +i_mean 1.500000 +i_sum 3 +i_count 2 +i_min 1 +i_max 2 +i_antimode 1 +i_mode 1 +x_mean 0.552735 +x_sum 1.105470 +x_count 2 +x_min 0.346790 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.624477 +y_sum 1.248954 +y_count 2 +y_min 0.522151 +y_max 0.726803 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 +i_mean 2.000000 +i_sum 6 +i_count 3 +i_min 1 +i_max 3 +i_antimode 1 +i_mode 1 +x_mean 0.436691 +x_sum 1.310073 +x_count 3 +x_min 0.204603 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.529091 +y_sum 1.587272 +y_count 3 +y_min 0.338319 +y_max 0.726803 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 +i_mean 2.500000 +i_sum 10 +i_count 4 +i_min 1 +i_max 4 +i_antimode 1 +i_mode 1 +x_mean 0.422868 +x_sum 1.691473 +x_count 4 +x_min 0.204603 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.430365 +y_sum 1.721461 +y_count 4 +y_min 0.134189 +y_max 0.726803 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 +i_mean 3.000000 +i_sum 15 +i_count 5 +i_min 1 +i_max 5 +i_antimode 1 +i_mode 1 +x_mean 0.452952 +x_sum 2.264762 +x_count 5 +x_min 0.204603 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.517017 +y_sum 2.585086 +y_count 5 +y_min 0.134189 +y_max 0.863624 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 +i_mean 3.500000 +i_sum 21 +i_count 6 +i_min 1 +i_max 6 +i_antimode 1 +i_mode 1 +x_mean 0.465315 +x_sum 2.791888 +x_count 6 +x_min 0.204603 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.513051 +y_sum 3.078307 +y_count 6 +y_min 0.134189 +y_max 0.863624 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 +i_mean 4.000000 +i_sum 28 +i_count 7 +i_min 1 +i_max 7 +i_antimode 1 +i_mode 1 +x_mean 0.486239 +x_sum 3.403672 +x_count 7 +x_min 0.204603 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.466599 +y_sum 3.266192 +y_count 7 +y_min 0.134189 +y_max 0.863624 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 +i_mean 4.500000 +i_sum 36 +i_count 8 +i_min 1 +i_max 8 +i_antimode 1 +i_mode 1 +x_mean 0.500278 +x_sum 4.002226 +x_count 8 +x_min 0.204603 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.530297 +y_sum 4.242373 +y_count 8 +y_min 0.134189 +y_max 0.976181 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 +i_mean 5.000000 +i_sum 45 +i_count 9 +i_min 1 +i_max 9 +i_antimode 1 +i_mode 1 +x_mean 0.448185 +x_sum 4.033668 +x_count 9 +x_min 0.031442 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.554658 +y_sum 4.991924 +y_count 9 +y_min 0.134189 +y_max 0.976181 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 +i_mean 5.500000 +i_sum 55 +i_count 10 +i_min 1 +i_max 10 +i_antimode 1 +i_mode 1 +x_mean 0.453629 +x_sum 4.536294 +x_count 10 +x_min 0.031442 +x_max 0.758680 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.594454 +y_sum 5.944542 +y_count 10 +y_min 0.134189 +y_max 0.976181 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +mlr --opprint stats1 -a mean,sum,count,min,max,antimode,mode -f i,x,y -g a ./reg_test/input/abixy +a i_mean i_sum i_count i_min i_max i_antimode i_mode x_mean x_sum x_count x_min x_max x_antimode x_mode y_mean y_sum y_count y_min y_max y_antimode y_mode +pan 5.500000 11 2 1 10 1 1 0.424708 0.849416 2 0.346790 0.502626 0.3467901443380824 0.3467901443380824 0.839711 1.679421 2 0.726803 0.952618 0.7268028627434533 0.7268028627434533 +eks 4.333333 13 3 2 7 2 2 0.583954 1.751863 3 0.381399 0.758680 0.7586799647899636 0.7586799647899636 0.281408 0.844225 3 0.134189 0.522151 0.5221511083334797 0.5221511083334797 +wye 4.000000 8 2 3 5 3 3 0.388946 0.777892 2 0.204603 0.573289 0.20460330576630303 0.20460330576630303 0.600971 1.201943 2 0.338319 0.863624 0.33831852551664776 0.33831852551664776 +zee 7.000000 14 2 6 8 6 6 0.562840 1.125680 2 0.527126 0.598554 0.5271261600918548 0.5271261600918548 0.734701 1.469403 2 0.493221 0.976181 0.49322128674835697 0.49322128674835697 +hat 9.000000 9 1 9 9 9 9 0.031442 0.031442 1 0.031442 0.031442 0.03144187646093577 0.03144187646093577 0.749551 0.749551 1 0.749551 0.749551 0.7495507603507059 0.7495507603507059 + +mlr --opprint stats1 -a min,p10,p50,median,antimode,mode,p90,max -f i,x,y -g a ./reg_test/input/abixy +a i_min i_p10 i_p50 i_median i_antimode i_mode i_p90 i_max x_min x_p10 x_p50 x_median x_antimode x_mode x_p90 x_max y_min y_p10 y_p50 y_median y_antimode y_mode y_p90 y_max +pan 1 1 10 10 1 1 10 10 0.346790 0.346790 0.502626 0.502626 0.3467901443380824 0.3467901443380824 0.502626 0.502626 0.726803 0.726803 0.952618 0.952618 0.7268028627434533 0.7268028627434533 0.952618 0.952618 +eks 2 2 4 4 2 2 7 7 0.381399 0.381399 0.611784 0.611784 0.7586799647899636 0.7586799647899636 0.758680 0.758680 0.134189 0.134189 0.187885 0.187885 0.5221511083334797 0.5221511083334797 0.522151 0.522151 +wye 3 3 5 5 3 3 5 5 0.204603 0.204603 0.573289 0.573289 0.20460330576630303 0.20460330576630303 0.573289 0.573289 0.338319 0.338319 0.863624 0.863624 0.33831852551664776 0.33831852551664776 0.863624 0.863624 +zee 6 6 8 8 6 6 8 8 0.527126 0.527126 0.598554 0.598554 0.5271261600918548 0.5271261600918548 0.598554 0.598554 0.493221 0.493221 0.976181 0.976181 0.49322128674835697 0.49322128674835697 0.976181 0.976181 +hat 9 9 9 9 9 9 9 9 0.031442 0.031442 0.031442 0.031442 0.03144187646093577 0.03144187646093577 0.031442 0.031442 0.749551 0.749551 0.749551 0.749551 0.7495507603507059 0.7495507603507059 0.749551 0.749551 + +mlr --opprint stats1 -a mean,meaneb,stddev -f i,x,y -g a ./reg_test/input/abixy +a i_mean i_meaneb i_stddev x_mean x_meaneb x_stddev y_mean y_meaneb y_stddev +pan 5.500000 4.500000 6.363961 0.424708 0.077918 0.110193 0.839711 0.112908 0.159676 +eks 4.333333 1.452966 2.516611 0.583954 0.109797 0.190174 0.281408 0.121365 0.210211 +wye 4.000000 1.000000 1.414214 0.388946 0.184343 0.260700 0.600971 0.262653 0.371447 +zee 7.000000 1.000000 1.414214 0.562840 0.035714 0.050507 0.734701 0.241480 0.341504 +hat 9.000000 - - 0.031442 - - 0.749551 - - + +mlr --oxtab stats1 -s -a mean,sum,count,min,max,antimode,mode -f i,x,y -g a ./reg_test/input/abixy +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 +i_mean 1.000000 +i_sum 1 +i_count 1 +i_min 1 +i_max 1 +i_antimode 1 +i_mode 1 +x_mean 0.346790 +x_sum 0.346790 +x_count 1 +x_min 0.346790 +x_max 0.346790 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.726803 +y_sum 0.726803 +y_count 1 +y_min 0.726803 +y_max 0.726803 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 +i_mean 2.000000 +i_sum 2 +i_count 1 +i_min 2 +i_max 2 +i_antimode 2 +i_mode 2 +x_mean 0.758680 +x_sum 0.758680 +x_count 1 +x_min 0.758680 +x_max 0.758680 +x_antimode 0.7586799647899636 +x_mode 0.7586799647899636 +y_mean 0.522151 +y_sum 0.522151 +y_count 1 +y_min 0.522151 +y_max 0.522151 +y_antimode 0.5221511083334797 +y_mode 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 +i_mean 3.000000 +i_sum 3 +i_count 1 +i_min 3 +i_max 3 +i_antimode 3 +i_mode 3 +x_mean 0.204603 +x_sum 0.204603 +x_count 1 +x_min 0.204603 +x_max 0.204603 +x_antimode 0.20460330576630303 +x_mode 0.20460330576630303 +y_mean 0.338319 +y_sum 0.338319 +y_count 1 +y_min 0.338319 +y_max 0.338319 +y_antimode 0.33831852551664776 +y_mode 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 +i_mean 3.000000 +i_sum 6 +i_count 2 +i_min 2 +i_max 4 +i_antimode 2 +i_mode 2 +x_mean 0.570040 +x_sum 1.140079 +x_count 2 +x_min 0.381399 +x_max 0.758680 +x_antimode 0.7586799647899636 +x_mode 0.7586799647899636 +y_mean 0.328170 +y_sum 0.656340 +y_count 2 +y_min 0.134189 +y_max 0.522151 +y_antimode 0.5221511083334797 +y_mode 0.5221511083334797 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 +i_mean 4.000000 +i_sum 8 +i_count 2 +i_min 3 +i_max 5 +i_antimode 3 +i_mode 3 +x_mean 0.388946 +x_sum 0.777892 +x_count 2 +x_min 0.204603 +x_max 0.573289 +x_antimode 0.20460330576630303 +x_mode 0.20460330576630303 +y_mean 0.600971 +y_sum 1.201943 +y_count 2 +y_min 0.338319 +y_max 0.863624 +y_antimode 0.33831852551664776 +y_mode 0.33831852551664776 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 +i_mean 6.000000 +i_sum 6 +i_count 1 +i_min 6 +i_max 6 +i_antimode 6 +i_mode 6 +x_mean 0.527126 +x_sum 0.527126 +x_count 1 +x_min 0.527126 +x_max 0.527126 +x_antimode 0.5271261600918548 +x_mode 0.5271261600918548 +y_mean 0.493221 +y_sum 0.493221 +y_count 1 +y_min 0.493221 +y_max 0.493221 +y_antimode 0.49322128674835697 +y_mode 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 +i_mean 4.333333 +i_sum 13 +i_count 3 +i_min 2 +i_max 7 +i_antimode 2 +i_mode 2 +x_mean 0.583954 +x_sum 1.751863 +x_count 3 +x_min 0.381399 +x_max 0.758680 +x_antimode 0.7586799647899636 +x_mode 0.7586799647899636 +y_mean 0.281408 +y_sum 0.844225 +y_count 3 +y_min 0.134189 +y_max 0.522151 +y_antimode 0.5221511083334797 +y_mode 0.5221511083334797 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 +i_mean 7.000000 +i_sum 14 +i_count 2 +i_min 6 +i_max 8 +i_antimode 6 +i_mode 6 +x_mean 0.562840 +x_sum 1.125680 +x_count 2 +x_min 0.527126 +x_max 0.598554 +x_antimode 0.5271261600918548 +x_mode 0.5271261600918548 +y_mean 0.734701 +y_sum 1.469403 +y_count 2 +y_min 0.493221 +y_max 0.976181 +y_antimode 0.49322128674835697 +y_mode 0.49322128674835697 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 +i_mean 9.000000 +i_sum 9 +i_count 1 +i_min 9 +i_max 9 +i_antimode 9 +i_mode 9 +x_mean 0.031442 +x_sum 0.031442 +x_count 1 +x_min 0.031442 +x_max 0.031442 +x_antimode 0.03144187646093577 +x_mode 0.03144187646093577 +y_mean 0.749551 +y_sum 0.749551 +y_count 1 +y_min 0.749551 +y_max 0.749551 +y_antimode 0.7495507603507059 +y_mode 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 +i_mean 5.500000 +i_sum 11 +i_count 2 +i_min 1 +i_max 10 +i_antimode 1 +i_mode 1 +x_mean 0.424708 +x_sum 0.849416 +x_count 2 +x_min 0.346790 +x_max 0.502626 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.839711 +y_sum 1.679421 +y_count 2 +y_min 0.726803 +y_max 0.952618 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +mlr --opprint stats1 -a mean,sum,count,min,max,antimode,mode -f i,x,y -g a,b ./reg_test/input/abixy +a b i_mean i_sum i_count i_min i_max i_antimode i_mode x_mean x_sum x_count x_min x_max x_antimode x_mode y_mean y_sum y_count y_min y_max y_antimode y_mode +pan pan 1.000000 1 1 1 1 1 1 0.346790 0.346790 1 0.346790 0.346790 0.3467901443380824 0.3467901443380824 0.726803 0.726803 1 0.726803 0.726803 0.7268028627434533 0.7268028627434533 +eks pan 2.000000 2 1 2 2 2 2 0.758680 0.758680 1 0.758680 0.758680 0.7586799647899636 0.7586799647899636 0.522151 0.522151 1 0.522151 0.522151 0.5221511083334797 0.5221511083334797 +wye wye 3.000000 3 1 3 3 3 3 0.204603 0.204603 1 0.204603 0.204603 0.20460330576630303 0.20460330576630303 0.338319 0.338319 1 0.338319 0.338319 0.33831852551664776 0.33831852551664776 +eks wye 4.000000 4 1 4 4 4 4 0.381399 0.381399 1 0.381399 0.381399 0.38139939387114097 0.38139939387114097 0.134189 0.134189 1 0.134189 0.134189 0.13418874328430463 0.13418874328430463 +wye pan 5.000000 5 1 5 5 5 5 0.573289 0.573289 1 0.573289 0.573289 0.5732889198020006 0.5732889198020006 0.863624 0.863624 1 0.863624 0.863624 0.8636244699032729 0.8636244699032729 +zee pan 6.000000 6 1 6 6 6 6 0.527126 0.527126 1 0.527126 0.527126 0.5271261600918548 0.5271261600918548 0.493221 0.493221 1 0.493221 0.493221 0.49322128674835697 0.49322128674835697 +eks zee 7.000000 7 1 7 7 7 7 0.611784 0.611784 1 0.611784 0.611784 0.6117840605678454 0.6117840605678454 0.187885 0.187885 1 0.187885 0.187885 0.1878849191181694 0.1878849191181694 +zee wye 8.000000 8 1 8 8 8 8 0.598554 0.598554 1 0.598554 0.598554 0.5985540091064224 0.5985540091064224 0.976181 0.976181 1 0.976181 0.976181 0.976181385699006 0.976181385699006 +hat wye 9.000000 9 1 9 9 9 9 0.031442 0.031442 1 0.031442 0.031442 0.03144187646093577 0.03144187646093577 0.749551 0.749551 1 0.749551 0.749551 0.7495507603507059 0.7495507603507059 +pan wye 10.000000 10 1 10 10 10 10 0.502626 0.502626 1 0.502626 0.502626 0.5026260055412137 0.5026260055412137 0.952618 0.952618 1 0.952618 0.952618 0.9526183602969864 0.9526183602969864 + +mlr --opprint stats1 -a min,p10,p50,median,antimode,mode,p90,max -f i,x,y -g a,b ./reg_test/input/abixy +a b i_min i_p10 i_p50 i_median i_antimode i_mode i_p90 i_max x_min x_p10 x_p50 x_median x_antimode x_mode x_p90 x_max y_min y_p10 y_p50 y_median y_antimode y_mode y_p90 y_max +pan pan 1 1 1 1 1 1 1 1 0.346790 0.346790 0.346790 0.346790 0.3467901443380824 0.3467901443380824 0.346790 0.346790 0.726803 0.726803 0.726803 0.726803 0.7268028627434533 0.7268028627434533 0.726803 0.726803 +eks pan 2 2 2 2 2 2 2 2 0.758680 0.758680 0.758680 0.758680 0.7586799647899636 0.7586799647899636 0.758680 0.758680 0.522151 0.522151 0.522151 0.522151 0.5221511083334797 0.5221511083334797 0.522151 0.522151 +wye wye 3 3 3 3 3 3 3 3 0.204603 0.204603 0.204603 0.204603 0.20460330576630303 0.20460330576630303 0.204603 0.204603 0.338319 0.338319 0.338319 0.338319 0.33831852551664776 0.33831852551664776 0.338319 0.338319 +eks wye 4 4 4 4 4 4 4 4 0.381399 0.381399 0.381399 0.381399 0.38139939387114097 0.38139939387114097 0.381399 0.381399 0.134189 0.134189 0.134189 0.134189 0.13418874328430463 0.13418874328430463 0.134189 0.134189 +wye pan 5 5 5 5 5 5 5 5 0.573289 0.573289 0.573289 0.573289 0.5732889198020006 0.5732889198020006 0.573289 0.573289 0.863624 0.863624 0.863624 0.863624 0.8636244699032729 0.8636244699032729 0.863624 0.863624 +zee pan 6 6 6 6 6 6 6 6 0.527126 0.527126 0.527126 0.527126 0.5271261600918548 0.5271261600918548 0.527126 0.527126 0.493221 0.493221 0.493221 0.493221 0.49322128674835697 0.49322128674835697 0.493221 0.493221 +eks zee 7 7 7 7 7 7 7 7 0.611784 0.611784 0.611784 0.611784 0.6117840605678454 0.6117840605678454 0.611784 0.611784 0.187885 0.187885 0.187885 0.187885 0.1878849191181694 0.1878849191181694 0.187885 0.187885 +zee wye 8 8 8 8 8 8 8 8 0.598554 0.598554 0.598554 0.598554 0.5985540091064224 0.5985540091064224 0.598554 0.598554 0.976181 0.976181 0.976181 0.976181 0.976181385699006 0.976181385699006 0.976181 0.976181 +hat wye 9 9 9 9 9 9 9 9 0.031442 0.031442 0.031442 0.031442 0.03144187646093577 0.03144187646093577 0.031442 0.031442 0.749551 0.749551 0.749551 0.749551 0.7495507603507059 0.7495507603507059 0.749551 0.749551 +pan wye 10 10 10 10 10 10 10 10 0.502626 0.502626 0.502626 0.502626 0.5026260055412137 0.5026260055412137 0.502626 0.502626 0.952618 0.952618 0.952618 0.952618 0.9526183602969864 0.9526183602969864 0.952618 0.952618 + +mlr --opprint stats1 -a mean,meaneb,stddev -f i,x,y -g a,b ./reg_test/input/abixy +a b i_mean i_meaneb i_stddev x_mean x_meaneb x_stddev y_mean y_meaneb y_stddev +pan pan 1.000000 - - 0.346790 - - 0.726803 - - +eks pan 2.000000 - - 0.758680 - - 0.522151 - - +wye wye 3.000000 - - 0.204603 - - 0.338319 - - +eks wye 4.000000 - - 0.381399 - - 0.134189 - - +wye pan 5.000000 - - 0.573289 - - 0.863624 - - +zee pan 6.000000 - - 0.527126 - - 0.493221 - - +eks zee 7.000000 - - 0.611784 - - 0.187885 - - +zee wye 8.000000 - - 0.598554 - - 0.976181 - - +hat wye 9.000000 - - 0.031442 - - 0.749551 - - +pan wye 10.000000 - - 0.502626 - - 0.952618 - - + +mlr --oxtab stats1 -s -a mean,sum,count,min,max,antimode,mode -f i,x,y -g a,b ./reg_test/input/abixy +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 +i_mean 1.000000 +i_sum 1 +i_count 1 +i_min 1 +i_max 1 +i_antimode 1 +i_mode 1 +x_mean 0.346790 +x_sum 0.346790 +x_count 1 +x_min 0.346790 +x_max 0.346790 +x_antimode 0.3467901443380824 +x_mode 0.3467901443380824 +y_mean 0.726803 +y_sum 0.726803 +y_count 1 +y_min 0.726803 +y_max 0.726803 +y_antimode 0.7268028627434533 +y_mode 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 +i_mean 2.000000 +i_sum 2 +i_count 1 +i_min 2 +i_max 2 +i_antimode 2 +i_mode 2 +x_mean 0.758680 +x_sum 0.758680 +x_count 1 +x_min 0.758680 +x_max 0.758680 +x_antimode 0.7586799647899636 +x_mode 0.7586799647899636 +y_mean 0.522151 +y_sum 0.522151 +y_count 1 +y_min 0.522151 +y_max 0.522151 +y_antimode 0.5221511083334797 +y_mode 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 +i_mean 3.000000 +i_sum 3 +i_count 1 +i_min 3 +i_max 3 +i_antimode 3 +i_mode 3 +x_mean 0.204603 +x_sum 0.204603 +x_count 1 +x_min 0.204603 +x_max 0.204603 +x_antimode 0.20460330576630303 +x_mode 0.20460330576630303 +y_mean 0.338319 +y_sum 0.338319 +y_count 1 +y_min 0.338319 +y_max 0.338319 +y_antimode 0.33831852551664776 +y_mode 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 +i_mean 4.000000 +i_sum 4 +i_count 1 +i_min 4 +i_max 4 +i_antimode 4 +i_mode 4 +x_mean 0.381399 +x_sum 0.381399 +x_count 1 +x_min 0.381399 +x_max 0.381399 +x_antimode 0.38139939387114097 +x_mode 0.38139939387114097 +y_mean 0.134189 +y_sum 0.134189 +y_count 1 +y_min 0.134189 +y_max 0.134189 +y_antimode 0.13418874328430463 +y_mode 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 +i_mean 5.000000 +i_sum 5 +i_count 1 +i_min 5 +i_max 5 +i_antimode 5 +i_mode 5 +x_mean 0.573289 +x_sum 0.573289 +x_count 1 +x_min 0.573289 +x_max 0.573289 +x_antimode 0.5732889198020006 +x_mode 0.5732889198020006 +y_mean 0.863624 +y_sum 0.863624 +y_count 1 +y_min 0.863624 +y_max 0.863624 +y_antimode 0.8636244699032729 +y_mode 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 +i_mean 6.000000 +i_sum 6 +i_count 1 +i_min 6 +i_max 6 +i_antimode 6 +i_mode 6 +x_mean 0.527126 +x_sum 0.527126 +x_count 1 +x_min 0.527126 +x_max 0.527126 +x_antimode 0.5271261600918548 +x_mode 0.5271261600918548 +y_mean 0.493221 +y_sum 0.493221 +y_count 1 +y_min 0.493221 +y_max 0.493221 +y_antimode 0.49322128674835697 +y_mode 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 +i_mean 7.000000 +i_sum 7 +i_count 1 +i_min 7 +i_max 7 +i_antimode 7 +i_mode 7 +x_mean 0.611784 +x_sum 0.611784 +x_count 1 +x_min 0.611784 +x_max 0.611784 +x_antimode 0.6117840605678454 +x_mode 0.6117840605678454 +y_mean 0.187885 +y_sum 0.187885 +y_count 1 +y_min 0.187885 +y_max 0.187885 +y_antimode 0.1878849191181694 +y_mode 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 +i_mean 8.000000 +i_sum 8 +i_count 1 +i_min 8 +i_max 8 +i_antimode 8 +i_mode 8 +x_mean 0.598554 +x_sum 0.598554 +x_count 1 +x_min 0.598554 +x_max 0.598554 +x_antimode 0.5985540091064224 +x_mode 0.5985540091064224 +y_mean 0.976181 +y_sum 0.976181 +y_count 1 +y_min 0.976181 +y_max 0.976181 +y_antimode 0.976181385699006 +y_mode 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 +i_mean 9.000000 +i_sum 9 +i_count 1 +i_min 9 +i_max 9 +i_antimode 9 +i_mode 9 +x_mean 0.031442 +x_sum 0.031442 +x_count 1 +x_min 0.031442 +x_max 0.031442 +x_antimode 0.03144187646093577 +x_mode 0.03144187646093577 +y_mean 0.749551 +y_sum 0.749551 +y_count 1 +y_min 0.749551 +y_max 0.749551 +y_antimode 0.7495507603507059 +y_mode 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 +i_mean 10.000000 +i_sum 10 +i_count 1 +i_min 10 +i_max 10 +i_antimode 10 +i_mode 10 +x_mean 0.502626 +x_sum 0.502626 +x_count 1 +x_min 0.502626 +x_max 0.502626 +x_antimode 0.5026260055412137 +x_mode 0.5026260055412137 +y_mean 0.952618 +y_sum 0.952618 +y_count 1 +y_min 0.952618 +y_max 0.952618 +y_antimode 0.9526183602969864 +y_mode 0.9526183602969864 + +mlr --oxtab stats1 -a min,p0,p50,p100,max -f x,y,z ./reg_test/input/string-numeric-ordering.dkvp +x_min 1.000000 +x_p0 1 +x_p50 2.500000 +x_p100 b +x_max b +y_min 1.000000 +y_p0 1 +y_p50 3 +y_p100 4 +y_max 4.000000 +z_min a +z_p0 a +z_p50 d +z_p100 f +z_max f + +mlr --oxtab stats1 -a mean -f x ./reg_test/input/abixy-het +x_mean 0.440334 + +mlr --oxtab stats1 -a mean -f x -g a ./reg_test/input/abixy-het +a pan +x_mean 0.424708 + +a eks +x_mean 0.583954 + +a wye +x_mean + +a zee +x_mean 0.562840 + +mlr --oxtab stats1 -a p0,p50,p100 -f x,y ./reg_test/input/near-ovf.dkvp +x_p0 9223372036854775801 +x_p50 9223372036854775804 +x_p100 9223372036854775807 +y_p0 -9223372036854775807 +y_p50 -9223372036854775804 +y_p100 -9223372036854775801 + +mlr --oxtab stats1 -a p0,p50,p100 -f x,y -F ./reg_test/input/near-ovf.dkvp +x_p0 9223372036854775801 +x_p50 9223372036854775804 +x_p100 9223372036854775807 +y_p0 -9223372036854775807 +y_p50 -9223372036854775804 +y_p100 -9223372036854775801 + +mlr --opprint stats2 -a linreg-ols,linreg-pca,r2,corr,cov -f x,y,xy,y2 ./reg_test/input/abixy-wide +x_y_ols_m x_y_ols_b x_y_ols_n x_y_pca_m x_y_pca_b x_y_pca_n x_y_pca_quality x_y_r2 x_y_corr x_y_cov xy_y2_ols_m xy_y2_ols_b xy_y2_ols_n xy_y2_pca_m xy_y2_pca_b xy_y2_pca_n xy_y2_pca_quality xy_y2_r2 xy_y2_corr xy_y2_cov +0.028351 0.487644 2000 1.332924 -0.170590 2000 0.056909 0.000791 0.028120 0.002330 0.893610 0.107060 2000 1.529534 -0.055477 2000 0.824336 0.447971 0.669306 0.045036 + +mlr --opprint stats2 -a linreg-ols,linreg-pca,r2,corr,cov -f x,y,xy,y2 -g a,b ./reg_test/input/abixy-wide +a b x_y_ols_m x_y_ols_b x_y_ols_n x_y_pca_m x_y_pca_b x_y_pca_n x_y_pca_quality x_y_r2 x_y_corr x_y_cov xy_y2_ols_m xy_y2_ols_b xy_y2_ols_n xy_y2_pca_m xy_y2_pca_b xy_y2_pca_n xy_y2_pca_quality xy_y2_r2 xy_y2_corr xy_y2_cov +cat pan 0.054420 0.481777 89 3.636062 -1.221602 89 0.177683 0.002504 0.050036 0.003777 0.950908 0.105754 89 1.715574 -0.081719 89 0.830612 0.435336 0.659800 0.041616 +pan wye -0.145486 0.584799 78 -1.340927 1.199920 78 0.254025 0.019479 -0.139568 -0.012683 0.908151 0.126628 78 1.595150 -0.045034 78 0.824114 0.438850 0.662457 0.046203 +wye cat 0.185913 0.377639 74 1.135325 -0.145894 74 0.309499 0.033002 0.181665 0.014494 0.969266 0.040602 74 1.406365 -0.081379 74 0.868480 0.561236 0.749157 0.052090 +dog hat 0.100096 0.448757 88 0.810749 0.097346 88 0.189256 0.010462 0.102283 0.008036 0.919149 0.090504 88 1.425774 -0.038344 88 0.846209 0.507155 0.712148 0.045034 +dog pan -0.066834 0.590647 87 -0.254112 0.688837 87 0.275316 0.005924 -0.076969 -0.005709 0.726118 0.164937 87 1.566309 -0.075073 87 0.749025 0.315011 0.561259 0.034107 +pan pan 0.094932 0.461566 77 0.672369 0.189898 77 0.192719 0.009768 0.098832 0.007175 0.822261 0.123441 77 1.312543 0.003200 77 0.820351 0.465390 0.682195 0.039784 +hat hat 0.043668 0.405219 88 10.170494 -5.125282 88 0.310513 0.001324 0.036392 0.003037 1.128896 0.015188 88 1.414166 -0.052514 88 0.922308 0.708725 0.841858 0.060975 +wye hat 0.043018 0.496029 87 0.254879 0.395780 87 0.177794 0.002197 0.046876 0.004023 0.720402 0.165623 87 1.376136 0.002792 87 0.760716 0.353558 0.594608 0.038763 +pan hat 0.120797 0.448197 67 1.597359 -0.325695 67 0.225137 0.013060 0.114278 0.008987 0.962678 0.076920 67 1.285796 -0.012566 67 0.887704 0.622353 0.788893 0.054965 +cat hat 0.172391 0.464384 90 0.959329 0.086790 90 0.296109 0.030150 0.173639 0.015030 0.904257 0.133482 90 1.415658 -0.008369 90 0.841567 0.498171 0.705812 0.055626 +hat wye -0.022975 0.496361 70 -1.765884 1.344268 70 0.051493 0.000514 -0.022665 -0.002000 0.971929 0.096088 70 1.989422 -0.142072 70 0.825656 0.386354 0.621574 0.040126 +dog dog 0.078397 0.489236 87 0.354494 0.351041 87 0.242210 0.007619 0.087288 0.008214 0.776967 0.150999 87 1.354405 -0.006432 87 0.792265 0.408257 0.638950 0.049648 +wye dog 0.116403 0.425576 76 2.367821 -0.777734 76 0.254607 0.011048 0.105109 0.007867 0.925781 0.071192 76 1.453590 -0.070509 76 0.845204 0.501559 0.708208 0.046440 +wye wye -0.188354 0.613934 67 -1.433772 1.217887 67 0.316070 0.031156 -0.176512 -0.015876 0.876717 0.159179 67 2.044493 -0.118503 67 0.795455 0.325193 0.570257 0.042026 +dog wye 0.029527 0.502643 79 0.496713 0.282511 79 0.073039 0.000913 0.030211 0.002391 0.904925 0.120816 79 1.609123 -0.052245 79 0.821822 0.432413 0.657581 0.042857 +cat dog 0.057573 0.408644 78 0.728479 0.071114 78 0.116103 0.003442 0.058671 0.005320 0.884325 0.079999 78 1.418207 -0.040344 78 0.832998 0.479596 0.692528 0.044762 +hat pan -0.154393 0.564981 85 -0.845852 0.911026 85 0.276955 0.025143 -0.158566 -0.012756 0.911165 0.104362 85 1.763740 -0.092987 85 0.814584 0.397150 0.630199 0.035622 +cat wye -0.014851 0.564875 77 -0.572708 0.892322 77 0.034146 0.000224 -0.014982 -0.000966 0.878820 0.086362 77 1.447244 -0.098657 77 0.827119 0.463961 0.681147 0.041096 +hat cat -0.022859 0.498539 88 -0.156242 0.565723 88 0.149344 0.000610 -0.024689 -0.002116 0.840965 0.111121 88 1.663518 -0.088942 88 0.793883 0.373515 0.611158 0.036575 +dog cat 0.104057 0.428559 83 2.712382 -1.005787 83 0.250036 0.008705 0.093300 0.007122 1.080443 0.023866 83 1.653922 -0.133367 83 0.875586 0.547103 0.739664 0.050357 +hat dog 0.041849 0.427228 78 0.403977 0.254919 78 0.118494 0.001918 0.043789 0.003856 0.776135 0.114930 78 1.475403 -0.036508 78 0.779056 0.372058 0.609966 0.040583 +pan dog 0.119510 0.467833 73 2.492496 -0.761490 73 0.266455 0.011427 0.106896 0.009302 0.948592 0.107556 73 1.408389 -0.022846 73 0.860243 0.541263 0.735706 0.056609 +cat cat 0.016257 0.425410 79 0.432946 0.225535 79 0.044275 0.000273 0.016510 0.001350 0.930954 0.072476 79 1.624993 -0.072669 79 0.830029 0.446764 0.668404 0.036267 +pan cat -0.188523 0.616919 89 -0.898665 0.953923 89 0.324264 0.037036 -0.192447 -0.016206 0.781770 0.176617 89 2.020454 -0.113587 89 0.762332 0.278739 0.527958 0.032984 +wye pan 0.229443 0.444446 66 1.313689 -0.098124 66 0.365811 0.046722 0.216152 0.020367 0.887659 0.145052 66 1.471906 -0.030176 66 0.827911 0.462545 0.680107 0.064496 + +mlr --oxtab stats2 -s -a linreg-ols,linreg-pca,r2,corr,cov -f x,y,xy,y2 ./reg_test/input/abixy-wide-short +a cat +b pan +i 1 +x 0.5117389009583777 +y 0.08295224980036853 +x2 0.2618767027540883 +xy 0.0424498931448654 +y2 0.006881075746942741 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a pan +b wye +i 2 +x 0.5225940442098578 +y 0.511678736087022 +x2 0.27310453504361476 +xy 0.2674002600279053 +y2 0.26181512896361225 +x_y_ols_m 39.495240 +x_y_ols_b -20.128298 +x_y_ols_n 2 +x_y_pca_m 39.495240 +x_y_pca_b -20.128298 +x_y_pca_n 2 +x_y_pca_quality 1.000000 +x_y_r2 1.000000 +x_y_corr 1.000000 +x_y_cov 0.002327 +xy_y2_ols_m 1.133290 +xy_y2_ols_b -0.041227 +xy_y2_ols_n 2 +xy_y2_pca_m 1.133290 +xy_y2_pca_b -0.041227 +xy_y2_pca_n 2 +xy_y2_pca_quality 1.000000 +xy_y2_r2 1.000000 +xy_y2_corr 1.000000 +xy_y2_cov 0.028674 + +a wye +b cat +i 3 +x 0.8150401717873625 +y 0.07989551500795256 +x2 0.6642904816271734 +xy 0.06511805427712146 +y2 0.006383293318385972 +x_y_ols_m -0.689881 +x_y_ols_b 0.650125 +x_y_ols_n 3 +x_y_pca_m -2.057762 +x_y_pca_b 1.493365 +x_y_pca_n 3 +x_y_pca_quality 0.725269 +x_y_r2 0.228338 +x_y_corr -0.477847 +x_y_cov -0.020424 +xy_y2_ols_m 1.184397 +xy_y2_ols_b -0.056344 +xy_y2_ols_n 3 +xy_y2_pca_m 1.190469 +xy_y2_pca_b -0.057103 +xy_y2_pca_n 3 +xy_y2_pca_quality 0.997884 +xy_y2_r2 0.991315 +xy_y2_corr 0.995648 +xy_y2_cov 0.018168 + +a dog +b hat +i 4 +x 0.4488733555675044 +y 0.5730530513123552 +x2 0.20148728933843124 +xy 0.25722824606077416 +y2 0.32838979961840076 +x_y_ols_m -1.054065 +x_y_ols_b 0.917520 +x_y_ols_n 4 +x_y_pca_m -2.068130 +x_y_pca_b 1.500163 +x_y_pca_n 4 +x_y_pca_quality 0.845806 +x_y_r2 0.416082 +x_y_corr -0.645044 +x_y_cov -0.028205 +xy_y2_ols_m 1.365739 +xy_y2_ols_b -0.064987 +xy_y2_ols_n 4 +xy_y2_pca_m 1.406929 +xy_y2_pca_b -0.071497 +xy_y2_pca_n 4 +xy_y2_pca_quality 0.989979 +xy_y2_r2 0.956155 +xy_y2_corr 0.977832 +xy_y2_cov 0.019937 + +a dog +b pan +i 5 +x 0.2946557960430134 +y 0.6850437256584863 +x2 0.08682203814174191 +xy 0.20185210430817294 +y2 0.46928490606405937 +x_y_ols_m -1.176419 +x_y_ols_b 0.996592 +x_y_ols_n 5 +x_y_pca_m -1.681618 +x_y_pca_b 1.258579 +x_y_pca_n 5 +x_y_pca_quality 0.899128 +x_y_r2 0.607344 +x_y_corr -0.779323 +x_y_cov -0.042043 +xy_y2_ols_m 1.565652 +xy_y2_ols_b -0.046615 +xy_y2_ols_n 5 +xy_y2_pca_m 2.169036 +xy_y2_pca_b -0.147265 +xy_y2_pca_n 5 +xy_y2_pca_quality 0.936719 +xy_y2_r2 0.667168 +xy_y2_corr 0.816804 +xy_y2_cov 0.017742 + +a wye +b cat +i 6 +x 0.048709182664292916 +y 0.5851879044762575 +x2 0.0023725844758234536 +xy 0.02850402453206882 +y2 0.34244488354531344 +x_y_ols_m -0.752322 +x_y_ols_b 0.750859 +x_y_ols_n 6 +x_y_pca_m -1.066519 +x_y_pca_b 0.889190 +x_y_pca_n 6 +x_y_pca_quality 0.836548 +x_y_r2 0.515958 +x_y_corr -0.718302 +x_y_cov -0.049192 +xy_y2_ols_m 0.917730 +xy_y2_ols_b 0.103935 +xy_y2_ols_n 6 +xy_y2_pca_m 2.512667 +xy_y2_pca_b -0.125351 +xy_y2_pca_n 6 +xy_y2_pca_quality 0.807995 +xy_y2_r2 0.286403 +xy_y2_corr 0.535166 +xy_y2_cov 0.011246 + +a dog +b hat +i 7 +x 0.8500003149528544 +y 0.2984098741712895 +x2 0.7225005354199517 +xy 0.25364848703063775 +y2 0.08904845300292483 +x_y_ols_m -0.612818 +x_y_ols_b 0.707992 +x_y_ols_n 7 +x_y_pca_m -0.842190 +x_y_pca_b 0.822403 +x_y_pca_n 7 +x_y_pca_quality 0.820362 +x_y_r2 0.476303 +x_y_corr -0.690147 +x_y_cov -0.048089 +xy_y2_ols_m 0.592008 +xy_y2_ols_b 0.120493 +xy_y2_ols_n 7 +xy_y2_pca_m 3.299160 +xy_y2_pca_b -0.311183 +xy_y2_pca_n 7 +xy_y2_pca_quality 0.722139 +xy_y2_r2 0.126356 +xy_y2_corr 0.355466 +xy_y2_cov 0.007067 + +a pan +b pan +i 8 +x 0.616507208914765 +y 0.25924335982487057 +x2 0.38008113864387366 +xy 0.15982540019531707 +y2 0.06720711961328732 +x_y_ols_m -0.627947 +x_y_ols_b 0.706893 +x_y_ols_n 8 +x_y_pca_m -0.857225 +x_y_pca_b 0.824631 +x_y_pca_n 8 +x_y_pca_quality 0.826128 +x_y_r2 0.489375 +x_y_corr -0.699554 +x_y_cov -0.043324 +xy_y2_ols_m 0.591342 +xy_y2_ols_b 0.102111 +xy_y2_ols_n 8 +xy_y2_pca_m 3.718931 +xy_y2_pca_b -0.396750 +xy_y2_pca_n 8 +xy_y2_pca_quality 0.737121 +xy_y2_r2 0.115022 +xy_y2_corr 0.339150 +xy_y2_cov 0.006050 + +a hat +b hat +i 9 +x 0.33786884067769307 +y 0.6036735617015514 +x2 0.11415535350088835 +xy 0.203962486439877 +y2 0.3644217690974368 +x_y_ols_m -0.661274 +x_y_ols_b 0.735462 +x_y_ols_n 9 +x_y_pca_m -0.890432 +x_y_pca_b 0.848665 +x_y_pca_n 9 +x_y_pca_quality 0.838021 +x_y_r2 0.516776 +x_y_corr -0.718871 +x_y_cov -0.042188 +xy_y2_ols_m 0.667659 +xy_y2_ols_b 0.105305 +xy_y2_ols_n 9 +xy_y2_pca_m 3.726998 +xy_y2_pca_b -0.397782 +xy_y2_pca_n 9 +xy_y2_pca_quality 0.764687 +xy_y2_r2 0.134705 +xy_y2_corr 0.367022 +xy_y2_cov 0.006124 + +a wye +b hat +i 10 +x 0.3834648944206174 +y 0.4999709279216641 +x2 0.14704532525301522 +xy 0.19172129908885902 +y2 0.24997092876684981 +x_y_ols_m -0.664725 +x_y_ols_b 0.738937 +x_y_ols_n 10 +x_y_pca_m -0.888643 +x_y_pca_b 0.847077 +x_y_pca_n 10 +x_y_pca_quality 0.841594 +x_y_r2 0.524349 +x_y_corr -0.724120 +x_y_cov -0.038508 +xy_y2_ols_m 0.673183 +xy_y2_ols_b 0.106048 +xy_y2_ols_n 10 +xy_y2_pca_m 3.679574 +xy_y2_pca_b -0.396534 +xy_y2_pca_n 10 +xy_y2_pca_quality 0.765015 +xy_y2_r2 0.137573 +xy_y2_corr 0.370908 +xy_y2_cov 0.005539 + +a pan +b hat +i 11 +x 0.025474999754416028 +y 0.7861954915044592 +x2 0.0006489756124874967 +xy 0.020028329952999087 +y2 0.6181033508619382 +x_y_ols_m -0.702240 +x_y_ols_b 0.761330 +x_y_ols_n 11 +x_y_pca_m -0.861995 +x_y_pca_b 0.831839 +x_y_pca_n 11 +x_y_pca_quality 0.884552 +x_y_r2 0.623708 +x_y_corr -0.789752 +x_y_cov -0.049973 +xy_y2_ols_m -0.038359 +xy_y2_ols_b 0.260804 +xy_y2_ols_n 11 +xy_y2_pca_m -82.143959 +xy_y2_pca_b 12.888187 +xy_y2_pca_n 11 +xy_y2_pca_quality 0.759203 +xy_y2_r2 0.000355 +xy_y2_corr -0.018828 +xy_y2_cov -0.000360 + +a cat +b hat +i 12 +x 0.6335445699880142 +y 0.15467178563525052 +x2 0.4013787221612979 +xy 0.0979914699195631 +y2 0.02392336127159689 +x_y_ols_m -0.740466 +x_y_ols_b 0.765334 +x_y_ols_n 12 +x_y_pca_m -0.911766 +x_y_pca_b 0.843681 +x_y_pca_n 12 +x_y_pca_quality 0.887843 +x_y_r2 0.635324 +x_y_corr -0.797072 +x_y_cov -0.050182 +xy_y2_ols_m 0.085108 +xy_y2_ols_b 0.222963 +xy_y2_ols_n 12 +xy_y2_pca_m 41.549828 +xy_y2_pca_b -5.961259 +xy_y2_pca_n 12 +xy_y2_pca_quality 0.780003 +xy_y2_r2 0.001597 +xy_y2_corr 0.039969 +xy_y2_cov 0.000747 + +a hat +b wye +i 13 +x 0.35922068401384877 +y 0.8502678133887914 +x2 0.1290394998233774 +xy 0.30543378552048117 +y2 0.7229553544849566 +x_y_ols_m -0.782612 +x_y_ols_b 0.811286 +x_y_ols_n 13 +x_y_pca_m -1.047326 +x_y_pca_b 0.930360 +x_y_pca_n 13 +x_y_pca_quality 0.861099 +x_y_r2 0.571131 +x_y_corr -0.755732 +x_y_cov -0.049199 +xy_y2_ols_m 0.659118 +xy_y2_ols_b 0.166913 +xy_y2_ols_n 13 +xy_y2_pca_m 6.994463 +xy_y2_pca_b -0.854132 +xy_y2_pca_n 13 +xy_y2_pca_quality 0.838549 +xy_y2_r2 0.078760 +xy_y2_corr 0.280642 +xy_y2_cov 0.006543 + +a dog +b dog +i 14 +x 0.5440047442770544 +y 0.933608851612059 +x2 0.2959411617959433 +xy 0.5078876445760125 +y2 0.8716254878083876 +x_y_ols_m -0.719761 +x_y_ols_b 0.821739 +x_y_ols_n 14 +x_y_pca_m -1.259269 +x_y_pca_b 1.068052 +x_y_pca_n 14 +x_y_pca_quality 0.775265 +x_y_r2 0.388115 +x_y_corr -0.622988 +x_y_cov -0.042223 +xy_y2_ols_m 1.175278 +xy_y2_ols_b 0.097368 +xy_y2_ols_n 14 +xy_y2_pca_m 3.119062 +xy_y2_pca_b -0.264044 +xy_y2_pca_n 14 +xy_y2_pca_quality 0.866432 +xy_y2_r2 0.322054 +xy_y2_corr 0.567498 +xy_y2_cov 0.020862 + +a wye +b dog +i 15 +x 0.4689175303764642 +y 0.09048353045392021 +x2 0.21988365029436224 +xy 0.04242931364019586 +y2 0.008187269283405506 +x_y_ols_m -0.725720 +x_y_ols_b 0.798215 +x_y_ols_n 15 +x_y_pca_m -1.432456 +x_y_pca_b 1.121457 +x_y_pca_n 15 +x_y_pca_quality 0.758098 +x_y_r2 0.343569 +x_y_corr -0.586148 +x_y_cov -0.039539 +xy_y2_ols_m 1.249777 +xy_y2_ols_b 0.074959 +xy_y2_ols_n 15 +xy_y2_pca_m 2.985574 +xy_y2_pca_b -0.231176 +xy_y2_pca_n 15 +xy_y2_pca_quality 0.877117 +xy_y2_r2 0.362173 +xy_y2_corr 0.601808 +xy_y2_cov 0.022316 + +a pan +b pan +i 16 +x 0.3959177828066379 +y 0.6339858483805666 +x2 0.15675089074252413 +xy 0.25100627142161924 +y2 0.4019380559468268 +x_y_ols_m -0.734975 +x_y_ols_b 0.810106 +x_y_ols_n 16 +x_y_pca_m -1.451312 +x_y_pca_b 1.134988 +x_y_pca_n 16 +x_y_pca_quality 0.761173 +x_y_r2 0.346218 +x_y_corr -0.588403 +x_y_cov -0.037547 +xy_y2_ols_m 1.253418 +xy_y2_ols_b 0.075130 +xy_y2_ols_n 16 +xy_y2_pca_m 2.945315 +xy_y2_pca_b -0.231155 +xy_y2_pca_n 16 +xy_y2_pca_quality 0.877563 +xy_y2_r2 0.368261 +xy_y2_corr 0.606845 +xy_y2_cov 0.021325 + +a dog +b hat +i 17 +x 0.34033844788864975 +y 0.8845934733681523 +x2 0.11583025911125516 +xy 0.3010611697385466 +y2 0.782505613125532 +x_y_ols_m -0.779408 +x_y_ols_b 0.849058 +x_y_ols_n 17 +x_y_pca_m -1.579107 +x_y_pca_b 1.206423 +x_y_pca_n 17 +x_y_pca_quality 0.772982 +x_y_r2 0.349689 +x_y_corr -0.591345 +x_y_cov -0.037916 +xy_y2_ols_m 1.392136 +xy_y2_ols_b 0.068451 +xy_y2_ols_n 17 +xy_y2_pca_m 3.095298 +xy_y2_pca_b -0.251899 +xy_y2_pca_n 17 +xy_y2_pca_quality 0.896358 +xy_y2_r2 0.398830 +xy_y2_corr 0.631530 +xy_y2_cov 0.023385 + +a wye +b wye +i 18 +x 0.6770613653962891 +y 0.896307226056897 +x2 0.4584120925122874 +xy 0.6068549942886431 +y2 0.8033666434818095 +x_y_ols_m -0.628521 +x_y_ols_b 0.811643 +x_y_ols_n 18 +x_y_pca_m -1.834767 +x_y_pca_b 1.366109 +x_y_pca_n 18 +x_y_pca_quality 0.694668 +x_y_r2 0.218178 +x_y_corr -0.467095 +x_y_cov -0.030628 +xy_y2_ols_m 1.292066 +xy_y2_ols_b 0.083495 +xy_y2_ols_n 18 +xy_y2_pca_m 2.354328 +xy_y2_pca_b -0.141020 +xy_y2_pca_n 18 +xy_y2_pca_quality 0.888372 +xy_y2_r2 0.477918 +xy_y2_corr 0.691316 +xy_y2_cov 0.033015 + +a dog +b wye +i 19 +x 0.4865373244199632 +y 0.44117766146315884 +x2 0.23671856805373653 +xy 0.2146493990021416 +y2 0.1946377289741016 +x_y_ols_m -0.630507 +x_y_ols_b 0.809155 +x_y_ols_n 19 +x_y_pca_m -1.839104 +x_y_pca_b 1.366411 +x_y_pca_n 19 +x_y_pca_quality 0.695696 +x_y_r2 0.218821 +x_y_corr -0.467783 +x_y_cov -0.029041 +xy_y2_ols_m 1.290872 +xy_y2_ols_b 0.075000 +xy_y2_ols_n 19 +xy_y2_pca_m 2.393419 +xy_y2_pca_b -0.158220 +xy_y2_pca_n 19 +xy_y2_pca_quality 0.887359 +xy_y2_r2 0.469361 +xy_y2_corr 0.685099 +xy_y2_cov 0.031153 + +a dog +b dog +i 20 +x 0.3223311725542929 +y 0.08115611029827985 +x2 0.10389738480022534 +xy 0.026159144192390068 +y2 0.006586314238746564 +x_y_ols_m -0.548880 +x_y_ols_b 0.745846 +x_y_ols_n 20 +x_y_pca_m -2.251324 +x_y_pca_b 1.518994 +x_y_pca_n 20 +x_y_pca_quality 0.661764 +x_y_r2 0.151247 +x_y_corr -0.388905 +x_y_cov -0.024479 +xy_y2_ols_m 1.329401 +xy_y2_ols_b 0.062098 +xy_y2_ols_n 20 +xy_y2_pca_m 2.337844 +xy_y2_pca_b -0.141870 +xy_y2_pca_n 20 +xy_y2_pca_quality 0.894994 +xy_y2_r2 0.499340 +xy_y2_corr 0.706640 +xy_y2_cov 0.032678 + +mlr --oxtab stats2 -s -a linreg-ols,linreg-pca,r2,corr,cov -f x,y,xy,y2 -g a,b ./reg_test/input/abixy-wide-short +a cat +b pan +i 1 +x 0.5117389009583777 +y 0.08295224980036853 +x2 0.2618767027540883 +xy 0.0424498931448654 +y2 0.006881075746942741 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a pan +b wye +i 2 +x 0.5225940442098578 +y 0.511678736087022 +x2 0.27310453504361476 +xy 0.2674002600279053 +y2 0.26181512896361225 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a wye +b cat +i 3 +x 0.8150401717873625 +y 0.07989551500795256 +x2 0.6642904816271734 +xy 0.06511805427712146 +y2 0.006383293318385972 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a dog +b hat +i 4 +x 0.4488733555675044 +y 0.5730530513123552 +x2 0.20148728933843124 +xy 0.25722824606077416 +y2 0.32838979961840076 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a dog +b pan +i 5 +x 0.2946557960430134 +y 0.6850437256584863 +x2 0.08682203814174191 +xy 0.20185210430817294 +y2 0.46928490606405937 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a wye +b cat +i 6 +x 0.048709182664292916 +y 0.5851879044762575 +x2 0.0023725844758234536 +xy 0.02850402453206882 +y2 0.34244488354531344 +x_y_ols_m -0.659366 +x_y_ols_b 0.617305 +x_y_ols_n 2 +x_y_pca_m -0.659366 +x_y_pca_b 0.617305 +x_y_pca_n 2 +x_y_pca_quality 1.000000 +x_y_r2 1.000000 +x_y_corr -1.000000 +x_y_cov -0.193611 +xy_y2_ols_m -9.178492 +xy_y2_ols_b 0.604069 +xy_y2_ols_n 2 +xy_y2_pca_m -9.178492 +xy_y2_pca_b 0.604069 +xy_y2_pca_n 2 +xy_y2_pca_quality 1.000000 +xy_y2_r2 1.000000 +xy_y2_corr -1.000000 +xy_y2_cov -0.006152 + +a dog +b hat +i 7 +x 0.8500003149528544 +y 0.2984098741712895 +x2 0.7225005354199517 +xy 0.25364848703063775 +y2 0.08904845300292483 +x_y_ols_m -0.684679 +x_y_ols_b 0.880387 +x_y_ols_n 2 +x_y_pca_m -0.684679 +x_y_pca_b 0.880387 +x_y_pca_n 2 +x_y_pca_quality 1.000000 +x_y_r2 1.000000 +x_y_corr -1.000000 +x_y_cov -0.055083 +xy_y2_ols_m 66.859625 +xy_y2_ols_b -16.869794 +xy_y2_ols_n 2 +xy_y2_pca_m 66.859625 +xy_y2_pca_b -16.869794 +xy_y2_pca_n 2 +xy_y2_pca_quality 1.000000 +xy_y2_r2 1.000000 +xy_y2_corr 1.000000 +xy_y2_cov 0.000428 + +a pan +b pan +i 8 +x 0.616507208914765 +y 0.25924335982487057 +x2 0.38008113864387366 +xy 0.15982540019531707 +y2 0.06720711961328732 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a hat +b hat +i 9 +x 0.33786884067769307 +y 0.6036735617015514 +x2 0.11415535350088835 +xy 0.203962486439877 +y2 0.3644217690974368 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a wye +b hat +i 10 +x 0.3834648944206174 +y 0.4999709279216641 +x2 0.14704532525301522 +xy 0.19172129908885902 +y2 0.24997092876684981 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a pan +b hat +i 11 +x 0.025474999754416028 +y 0.7861954915044592 +x2 0.0006489756124874967 +xy 0.020028329952999087 +y2 0.6181033508619382 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a cat +b hat +i 12 +x 0.6335445699880142 +y 0.15467178563525052 +x2 0.4013787221612979 +xy 0.0979914699195631 +y2 0.02392336127159689 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a hat +b wye +i 13 +x 0.35922068401384877 +y 0.8502678133887914 +x2 0.1290394998233774 +xy 0.30543378552048117 +y2 0.7229553544849566 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a dog +b dog +i 14 +x 0.5440047442770544 +y 0.933608851612059 +x2 0.2959411617959433 +xy 0.5078876445760125 +y2 0.8716254878083876 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a wye +b dog +i 15 +x 0.4689175303764642 +y 0.09048353045392021 +x2 0.21988365029436224 +xy 0.04242931364019586 +y2 0.008187269283405506 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a pan +b pan +i 16 +x 0.3959177828066379 +y 0.6339858483805666 +x2 0.15675089074252413 +xy 0.25100627142161924 +y2 0.4019380559468268 +x_y_ols_m -1.698823 +x_y_ols_b 1.306580 +x_y_ols_n 2 +x_y_pca_m -1.698823 +x_y_pca_b 1.306580 +x_y_pca_n 2 +x_y_pca_quality 1.000000 +x_y_r2 1.000000 +x_y_corr -1.000000 +x_y_cov -0.041332 +xy_y2_ols_m 3.671065 +xy_y2_ols_b -0.519522 +xy_y2_ols_n 2 +xy_y2_pca_m 3.671065 +xy_y2_pca_b -0.519522 +xy_y2_pca_n 2 +xy_y2_pca_quality 1.000000 +xy_y2_r2 1.000000 +xy_y2_corr 1.000000 +xy_y2_cov 0.015261 + +a dog +b hat +i 17 +x 0.34033844788864975 +y 0.8845934733681523 +x2 0.11583025911125516 +xy 0.3010611697385466 +y2 0.782505613125532 +x_y_ols_m -1.023812 +x_y_ols_b 1.144767 +x_y_ols_n 3 +x_y_pca_m -1.098934 +x_y_pca_b 1.185814 +x_y_pca_n 3 +x_y_pca_quality 0.967833 +x_y_r2 0.878279 +x_y_corr -0.937166 +x_y_cov -0.073789 +xy_y2_ols_m 12.826246 +xy_y2_ols_b -3.071390 +xy_y2_ols_n 3 +xy_y2_pca_m 13.871436 +xy_y2_pca_b -3.354267 +xy_y2_pca_n 3 +xy_y2_pca_quality 0.999579 +xy_y2_r2 0.924260 +xy_y2_corr 0.961385 +xy_y2_cov 0.008940 + +a wye +b wye +i 18 +x 0.6770613653962891 +y 0.896307226056897 +x2 0.4584120925122874 +xy 0.6068549942886431 +y2 0.8033666434818095 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a dog +b wye +i 19 +x 0.4865373244199632 +y 0.44117766146315884 +x2 0.23671856805373653 +xy 0.2146493990021416 +y2 0.1946377289741016 +x_y_ols_m +x_y_ols_b +x_y_ols_n 1 +x_y_pca_m +x_y_pca_b +x_y_pca_n +x_y_pca_quality +x_y_r2 +x_y_corr +x_y_cov +xy_y2_ols_m +xy_y2_ols_b +xy_y2_ols_n 1 +xy_y2_pca_m +xy_y2_pca_b +xy_y2_pca_n +xy_y2_pca_quality +xy_y2_r2 +xy_y2_corr +xy_y2_cov + +a dog +b dog +i 20 +x 0.3223311725542929 +y 0.08115611029827985 +x2 0.10389738480022534 +xy 0.026159144192390068 +y2 0.006586314238746564 +x_y_ols_m 3.845532 +x_y_ols_b -1.158379 +x_y_ols_n 2 +x_y_pca_m 3.845532 +x_y_pca_b -1.158379 +x_y_pca_n 2 +x_y_pca_quality 1.000000 +x_y_r2 1.000000 +x_y_corr 1.000000 +x_y_cov 0.094483 +xy_y2_ols_m 1.795699 +xy_y2_ols_b -0.040388 +xy_y2_ols_n 2 +xy_y2_pca_m 1.795699 +xy_y2_pca_b -0.040388 +xy_y2_pca_n 2 +xy_y2_pca_quality 1.000000 +xy_y2_r2 1.000000 +xy_y2_corr 1.000000 +xy_y2_cov 0.208357 + +mlr --opprint stats2 --fit -a linreg-ols,linreg-pca -f x,y,xy,y2 ./reg_test/input/abixy-wide-short +a b i x y x2 xy y2 x_y_ols_fit x_y_pca_fit xy_y2_ols_fit xy_y2_pca_fit +cat pan 1 0.5117389009583777 0.08295224980036853 0.2618767027540883 0.0424498931448654 0.006881075746942741 0.464963 0.366904 0.118531 -0.042629 +pan wye 2 0.5225940442098578 0.511678736087022 0.27310453504361476 0.2674002600279053 0.26181512896361225 0.459005 0.342466 0.417581 0.483270 +wye cat 3 0.8150401717873625 0.07989551500795256 0.6642904816271734 0.06511805427712146 0.006383293318385972 0.298487 -0.315925 0.148666 0.010366 +dog hat 4 0.4488733555675044 0.5730530513123552 0.20148728933843124 0.25722824606077416 0.32838979961840076 0.499469 0.508435 0.404058 0.459490 +dog pan 5 0.2946557960430134 0.6850437256584863 0.08682203814174191 0.20185210430817294 0.46928490606405937 0.584116 0.855629 0.330441 0.330029 +wye cat 6 0.048709182664292916 0.5851879044762575 0.0023725844758234536 0.02850402453206882 0.34244488354531344 0.719111 1.409334 0.099992 -0.075232 +dog hat 7 0.8500003149528544 0.2984098741712895 0.7225005354199517 0.25364848703063775 0.08904845300292483 0.279298 -0.394632 0.399299 0.451121 +pan pan 8 0.616507208914765 0.25924335982487057 0.38008113864387366 0.15982540019531707 0.06720711961328732 0.407458 0.131037 0.274570 0.231777 +hat hat 9 0.33786884067769307 0.6036735617015514 0.11415535350088835 0.203962486439877 0.3644217690974368 0.560397 0.758342 0.333246 0.334963 +wye hat 10 0.3834648944206174 0.4999709279216641 0.14704532525301522 0.19172129908885902 0.24997092876684981 0.535370 0.655691 0.316973 0.306345 +pan hat 11 0.025474999754416028 0.7861954915044592 0.0006489756124874967 0.020028329952999087 0.6181033508619382 0.731863 1.461642 0.088724 -0.095047 +cat hat 12 0.6335445699880142 0.15467178563525052 0.4013787221612979 0.0979914699195631 0.02392336127159689 0.398106 0.092680 0.192368 0.087219 +hat wye 13 0.35922068401384877 0.8502678133887914 0.1290394998233774 0.30543378552048117 0.7229553544849566 0.548677 0.710272 0.468142 0.572187 +dog dog 14 0.5440047442770544 0.933608851612059 0.2959411617959433 0.5078876445760125 0.8716254878083876 0.447253 0.294263 0.737285 1.045492 +wye dog 15 0.4689175303764642 0.09048353045392021 0.21988365029436224 0.04242931364019586 0.008187269283405506 0.488467 0.463309 0.118504 -0.042677 +pan pan 16 0.3959177828066379 0.6339858483805666 0.15675089074252413 0.25100627142161924 0.4019380559468268 0.528535 0.627655 0.395786 0.444944 +dog hat 17 0.34033844788864975 0.8845934733681523 0.11583025911125516 0.3010611697385466 0.782505613125532 0.559041 0.752782 0.462329 0.561964 +wye wye 18 0.6770613653962891 0.896307226056897 0.4584120925122874 0.6068549942886431 0.8033666434818095 0.374221 -0.005290 0.868852 1.276863 +dog wye 19 0.4865373244199632 0.44117766146315884 0.23671856805373653 0.2146493990021416 0.1946377289741016 0.478796 0.423641 0.347454 0.359947 +dog dog 20 0.3223311725542929 0.08115611029827985 0.10389738480022534 0.026159144192390068 0.006586314238746564 0.568925 0.793322 0.096874 -0.080714 + +mlr --opprint stats2 --fit -a linreg-ols,linreg-pca -f x,y,xy,y2 -g a ./reg_test/input/abixy-wide-short +a b i x y x2 xy y2 x_y_ols_fit x_y_pca_fit xy_y2_ols_fit xy_y2_pca_fit +cat pan 1 0.5117389009583777 0.08295224980036853 0.2618767027540883 0.0424498931448654 0.006881075746942741 0.082952 0.082952 0.006881 0.006881 +cat hat 12 0.6335445699880142 0.15467178563525052 0.4013787221612979 0.0979914699195631 0.02392336127159689 0.154672 0.154672 0.023923 0.023923 +pan wye 2 0.5225940442098578 0.511678736087022 0.27310453504361476 0.2674002600279053 0.26181512896361225 0.445016 0.435835 0.237402 0.033364 +pan pan 8 0.616507208914765 0.25924335982487057 0.38008113864387366 0.15982540019531707 0.06720711961328732 0.372165 0.356477 0.353122 0.385517 +pan hat 11 0.025474999754416028 0.7861954915044592 0.0006489756124874967 0.020028329952999087 0.6181033508619382 0.830642 0.855912 0.503503 0.843152 +pan pan 16 0.3959177828066379 0.6339858483805666 0.15675089074252413 0.25100627142161924 0.4019380559468268 0.543281 0.542880 0.255037 0.087031 +wye cat 3 0.8150401717873625 0.07989551500795256 0.6642904816271734 0.06511805427712146 0.006383293318385972 0.337827 -0.227660 0.137066 0.112494 +wye cat 6 0.048709182664292916 0.5851879044762575 0.0023725844758234536 0.02850402453206882 0.34244488354531344 0.548640 1.271347 0.093480 0.061521 +wye hat 10 0.3834648944206174 0.4999709279216641 0.14704532525301522 0.19172129908885902 0.24997092876684981 0.456551 0.616537 0.287780 0.288747 +wye dog 15 0.4689175303764642 0.09048353045392021 0.21988365029436224 0.04242931364019586 0.008187269283405506 0.433043 0.449384 0.110057 0.080907 +wye wye 18 0.6770613653962891 0.896307226056897 0.4584120925122874 0.6068549942886431 0.8033666434818095 0.375784 0.042238 0.781971 0.866684 +dog hat 4 0.4488733555675044 0.5730530513123552 0.20148728933843124 0.25722824606077416 0.32838979961840076 0.563043 0.668750 0.401991 0.406622 +dog pan 5 0.2946557960430134 0.6850437256584863 0.08682203814174191 0.20185210430817294 0.46928490606405937 0.610235 1.504956 0.297579 0.255112 +dog hat 7 0.8500003149528544 0.2984098741712895 0.7225005354199517 0.25364848703063775 0.08904845300292483 0.440294 -1.506261 0.395241 0.396827 +dog dog 14 0.5440047442770544 0.933608851612059 0.2959411617959433 0.5078876445760125 0.8716254878083876 0.533932 0.152924 0.874610 1.092430 +dog hat 17 0.34033844788864975 0.8845934733681523 0.11583025911125516 0.3010611697385466 0.782505613125532 0.596256 1.257254 0.484638 0.526549 +dog wye 19 0.4865373244199632 0.44117766146315884 0.23671856805373653 0.2146493990021416 0.1946377289741016 0.551517 0.464527 0.321709 0.290125 +dog dog 20 0.3223311725542929 0.08115611029827985 0.10389738480022534 0.026159144192390068 0.006586314238746564 0.601766 1.354893 -0.033690 -0.225587 +hat hat 9 0.33786884067769307 0.6036735617015514 0.11415535350088835 0.203962486439877 0.3644217690974368 0.603674 0.603674 0.364422 0.364422 +hat wye 13 0.35922068401384877 0.8502678133887914 0.1290394998233774 0.30543378552048117 0.7229553544849566 0.850268 0.850268 0.722955 0.722955 + +mlr --opprint stats2 -a logireg -f x,y ./reg_test/input/logi.dkvp +x_y_logistic_m x_y_logistic_b x_y_logistic_n +0.145457 0.145449 22 + +mlr --opprint stats2 -a logireg -f x,y -g g ./reg_test/input/logi.dkvp +g x_y_logistic_m x_y_logistic_b x_y_logistic_n +red 0.145458 -0.036371 11 +blue 0.145457 0.327269 11 + +mlr --oxtab stats2 -a cov -f x,y ./reg_test/input/abixy-het +x_y_cov -0.011481 + +mlr --oxtab stats2 -a cov -f x,y -g a ./reg_test/input/abixy-het +a pan +x_y_cov 0.017595 + +a eks +x_y_cov 0.034641 + +a wye + +a zee +x_y_cov + +mlr --opprint step -a rsum,shift,delta,counter -f x,y ./reg_test/input/abixy +a b i x y x_rsum x_shift x_delta x_counter y_rsum y_shift y_delta y_counter +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 - 0 1 0.726803 - 0 1 +eks pan 2 0.7586799647899636 0.5221511083334797 1.105470 0.3467901443380824 0.411890 2 1.248954 0.7268028627434533 -0.204652 2 +wye wye 3 0.20460330576630303 0.33831852551664776 1.310073 0.7586799647899636 -0.554077 3 1.587272 0.5221511083334797 -0.183833 3 +eks wye 4 0.38139939387114097 0.13418874328430463 1.691473 0.20460330576630303 0.176796 4 1.721461 0.33831852551664776 -0.204130 4 +wye pan 5 0.5732889198020006 0.8636244699032729 2.264762 0.38139939387114097 0.191890 5 2.585086 0.13418874328430463 0.729436 5 +zee pan 6 0.5271261600918548 0.49322128674835697 2.791888 0.5732889198020006 -0.046163 6 3.078307 0.8636244699032729 -0.370403 6 +eks zee 7 0.6117840605678454 0.1878849191181694 3.403672 0.5271261600918548 0.084658 7 3.266192 0.49322128674835697 -0.305336 7 +zee wye 8 0.5985540091064224 0.976181385699006 4.002226 0.6117840605678454 -0.013230 8 4.242373 0.1878849191181694 0.788296 8 +hat wye 9 0.03144187646093577 0.7495507603507059 4.033668 0.5985540091064224 -0.567112 9 4.991924 0.976181385699006 -0.226631 9 +pan wye 10 0.5026260055412137 0.9526183602969864 4.536294 0.03144187646093577 0.471184 10 5.944542 0.7495507603507059 0.203068 10 + +mlr --opprint step -a rsum,shift,delta,counter -f x,y -g a ./reg_test/input/abixy +a b i x y x_rsum x_shift x_delta x_counter y_rsum y_shift y_delta y_counter +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 - 0 1 0.726803 - 0 1 +eks pan 2 0.7586799647899636 0.5221511083334797 0.758680 - 0 1 0.522151 - 0 1 +wye wye 3 0.20460330576630303 0.33831852551664776 0.204603 - 0 1 0.338319 - 0 1 +eks wye 4 0.38139939387114097 0.13418874328430463 1.140079 0.7586799647899636 -0.377281 2 0.656340 0.5221511083334797 -0.387962 2 +wye pan 5 0.5732889198020006 0.8636244699032729 0.777892 0.20460330576630303 0.368686 2 1.201943 0.33831852551664776 0.525306 2 +zee pan 6 0.5271261600918548 0.49322128674835697 0.527126 - 0 1 0.493221 - 0 1 +eks zee 7 0.6117840605678454 0.1878849191181694 1.751863 0.38139939387114097 0.230385 3 0.844225 0.13418874328430463 0.053696 3 +zee wye 8 0.5985540091064224 0.976181385699006 1.125680 0.5271261600918548 0.071428 2 1.469403 0.49322128674835697 0.482960 2 +hat wye 9 0.03144187646093577 0.7495507603507059 0.031442 - 0 1 0.749551 - 0 1 +pan wye 10 0.5026260055412137 0.9526183602969864 0.849416 0.3467901443380824 0.155836 2 1.679421 0.7268028627434533 0.225815 2 + +mlr --opprint step -a ewma -d 0.1,0.9 -f x,y -g a ./reg_test/input/abixy +a b i x y x_ewma_0.1 x_ewma_0.9 y_ewma_0.1 y_ewma_0.9 +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 0.346790 0.726803 0.726803 +eks pan 2 0.7586799647899636 0.5221511083334797 0.758680 0.758680 0.522151 0.522151 +wye wye 3 0.20460330576630303 0.33831852551664776 0.204603 0.204603 0.338319 0.338319 +eks wye 4 0.38139939387114097 0.13418874328430463 0.720952 0.419127 0.483355 0.172985 +wye pan 5 0.5732889198020006 0.8636244699032729 0.241472 0.536420 0.390849 0.811094 +zee pan 6 0.5271261600918548 0.49322128674835697 0.527126 0.527126 0.493221 0.493221 +eks zee 7 0.6117840605678454 0.1878849191181694 0.710035 0.592518 0.453808 0.186395 +zee wye 8 0.5985540091064224 0.976181385699006 0.534269 0.591411 0.541517 0.927885 +hat wye 9 0.03144187646093577 0.7495507603507059 0.031442 0.031442 0.749551 0.749551 +pan wye 10 0.5026260055412137 0.9526183602969864 0.362374 0.487042 0.749384 0.930037 + +mlr --opprint step -a ewma -d 0.1,0.9 -o smooth,rough -f x,y -g a ./reg_test/input/abixy +a b i x y x_ewma_smooth x_ewma_rough y_ewma_smooth y_ewma_rough +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 0.346790 0.726803 0.726803 +eks pan 2 0.7586799647899636 0.5221511083334797 0.758680 0.758680 0.522151 0.522151 +wye wye 3 0.20460330576630303 0.33831852551664776 0.204603 0.204603 0.338319 0.338319 +eks wye 4 0.38139939387114097 0.13418874328430463 0.720952 0.419127 0.483355 0.172985 +wye pan 5 0.5732889198020006 0.8636244699032729 0.241472 0.536420 0.390849 0.811094 +zee pan 6 0.5271261600918548 0.49322128674835697 0.527126 0.527126 0.493221 0.493221 +eks zee 7 0.6117840605678454 0.1878849191181694 0.710035 0.592518 0.453808 0.186395 +zee wye 8 0.5985540091064224 0.976181385699006 0.534269 0.591411 0.541517 0.927885 +hat wye 9 0.03144187646093577 0.7495507603507059 0.031442 0.031442 0.749551 0.749551 +pan wye 10 0.5026260055412137 0.9526183602969864 0.362374 0.487042 0.749384 0.930037 + +mlr --odkvp step -a rsum,shift,delta,counter -f x,y ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_rsum=0.346790,x_shift=,x_delta=0,x_counter=1,y_rsum=0.726803,y_shift=,y_delta=0,y_counter=1 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_rsum=1.105470,x_shift=0.3467901443380824,x_delta=0.411890,x_counter=2,y_rsum=1.248954,y_shift=0.7268028627434533,y_delta=-0.204652,y_counter=2 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,x_rsum=1.310073,x_shift=0.7586799647899636,x_delta=-0.554077,x_counter=3,y_rsum=1.587272,y_shift=0.5221511083334797,y_delta=-0.183833,y_counter=3 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_rsum=1.691473,x_shift=0.20460330576630303,x_delta=0.176796,x_counter=4,y_rsum=1.721461,y_shift=0.33831852551664776,y_delta=-0.204130,y_counter=4 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_rsum=2.585086,y_shift=0.13418874328430463,y_delta=0.729436,y_counter=5 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_rsum=2.218599,x_shift=0.38139939387114097,x_delta=0.145727,x_counter=5,y_rsum=3.078307,y_shift=0.8636244699032729,y_delta=-0.370403,y_counter=6 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_rsum=2.830383,x_shift=0.5271261600918548,x_delta=0.084658,x_counter=6,y_rsum=3.266192,y_shift=0.49322128674835697,y_delta=-0.305336,y_counter=7 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_rsum=3.428937,x_shift=0.6117840605678454,x_delta=-0.013230,x_counter=7 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,x_rsum=3.460379,x_shift=0.5985540091064224,x_delta=-0.567112,x_counter=8,y_rsum=4.015743,y_shift=0.1878849191181694,y_delta=0.561666,y_counter=8 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_rsum=3.963005,x_shift=0.03144187646093577,x_delta=0.471184,x_counter=9,y_rsum=4.968361,y_shift=0.7495507603507059,y_delta=0.203068,y_counter=9 + +mlr --odkvp step -a rsum,shift,delta,counter -f x,y -g a ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x_rsum=0.346790,x_shift=,x_delta=0,x_counter=1,y_rsum=0.726803,y_shift=,y_delta=0,y_counter=1 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x_rsum=0.758680,x_shift=,x_delta=0,x_counter=1,y_rsum=0.522151,y_shift=,y_delta=0,y_counter=1 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x_rsum=1.140079,x_shift=0.7586799647899636,x_delta=-0.377281,x_counter=2,y_rsum=0.656340,y_shift=0.5221511083334797,y_delta=-0.387962,y_counter=2 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,y_rsum=0.863624,y_shift=,y_delta=0,y_counter=1 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x_rsum=0.527126,x_shift=,x_delta=0,x_counter=1,y_rsum=0.493221,y_shift=,y_delta=0,y_counter=1 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,x_rsum=1.751863,x_shift=0.38139939387114097,x_delta=0.230385,x_counter=3,y_rsum=0.844225,y_shift=0.13418874328430463,y_delta=0.053696,y_counter=3 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,x_rsum=1.125680,x_shift=0.5271261600918548,x_delta=0.071428,x_counter=2 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x_rsum=0.849416,x_shift=0.3467901443380824,x_delta=0.155836,x_counter=2,y_rsum=1.679421,y_shift=0.7268028627434533,y_delta=0.225815,y_counter=2 + +mlr --opprint step -a ewma -d 0.1,0.9 -f x,y -g a ./reg_test/input/abixy-het +a b i x y x_ewma_0.1 x_ewma_0.9 y_ewma_0.1 y_ewma_0.9 +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 0.346790 0.726803 0.726803 +eks pan 2 0.7586799647899636 0.5221511083334797 0.758680 0.758680 0.522151 0.522151 + +aaa b i x y +wye wye 3 0.20460330576630303 0.33831852551664776 + +a bbb i x y x_ewma_0.1 x_ewma_0.9 y_ewma_0.1 y_ewma_0.9 +eks wye 4 0.38139939387114097 0.13418874328430463 0.720952 0.419127 0.483355 0.172985 + +a b i xxx y y_ewma_0.1 y_ewma_0.9 +wye pan 5 0.5732889198020006 0.8636244699032729 0.863624 0.863624 + +a b i x y x_ewma_0.1 x_ewma_0.9 y_ewma_0.1 y_ewma_0.9 +zee pan 6 0.5271261600918548 0.49322128674835697 0.527126 0.527126 0.493221 0.493221 + +a b iii x y x_ewma_0.1 x_ewma_0.9 y_ewma_0.1 y_ewma_0.9 +eks zee 7 0.6117840605678454 0.1878849191181694 0.710035 0.592518 0.453808 0.186395 + +a b i x yyy x_ewma_0.1 x_ewma_0.9 +zee wye 8 0.5985540091064224 0.976181385699006 0.534269 0.591411 + +aaa bbb i x y +hat wye 9 0.03144187646093577 0.7495507603507059 + +a b i x y x_ewma_0.1 x_ewma_0.9 y_ewma_0.1 y_ewma_0.9 +pan wye 10 0.5026260055412137 0.9526183602969864 0.362374 0.487042 0.749384 0.930037 + +mlr --opprint step -a ewma -d 0.1,0.9 -o smooth,rough -f x,y -g a ./reg_test/input/abixy-het +a b i x y x_ewma_smooth x_ewma_rough y_ewma_smooth y_ewma_rough +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 0.346790 0.726803 0.726803 +eks pan 2 0.7586799647899636 0.5221511083334797 0.758680 0.758680 0.522151 0.522151 + +aaa b i x y +wye wye 3 0.20460330576630303 0.33831852551664776 + +a bbb i x y x_ewma_smooth x_ewma_rough y_ewma_smooth y_ewma_rough +eks wye 4 0.38139939387114097 0.13418874328430463 0.720952 0.419127 0.483355 0.172985 + +a b i xxx y y_ewma_smooth y_ewma_rough +wye pan 5 0.5732889198020006 0.8636244699032729 0.863624 0.863624 + +a b i x y x_ewma_smooth x_ewma_rough y_ewma_smooth y_ewma_rough +zee pan 6 0.5271261600918548 0.49322128674835697 0.527126 0.527126 0.493221 0.493221 + +a b iii x y x_ewma_smooth x_ewma_rough y_ewma_smooth y_ewma_rough +eks zee 7 0.6117840605678454 0.1878849191181694 0.710035 0.592518 0.453808 0.186395 + +a b i x yyy x_ewma_smooth x_ewma_rough +zee wye 8 0.5985540091064224 0.976181385699006 0.534269 0.591411 + +aaa bbb i x y +hat wye 9 0.03144187646093577 0.7495507603507059 + +a b i x y x_ewma_smooth x_ewma_rough y_ewma_smooth y_ewma_rough +pan wye 10 0.5026260055412137 0.9526183602969864 0.362374 0.487042 0.749384 0.930037 + +mlr --icsvlite --opprint step -a from-first -f x ./reg_test/input/from-first.csv +x g x_from_first +100 red 0 +203 red 103 +101 green 1 +307 red 207 +209 green 109 +314 green 214 + +mlr --icsvlite --opprint step -a from-first -f x -g g ./reg_test/input/from-first.csv +x g x_from_first +100 red 0 +203 red 103 +101 green 0 +307 red 207 +209 green 108 +314 green 213 + +mlr --opprint histogram -f x,y --lo 0 --hi 1 --nbins 20 ./reg_test/input/small +bin_lo bin_hi x_count y_count +0.000000 0.050000 1 0 +0.050000 0.100000 0 0 +0.100000 0.150000 0 1 +0.150000 0.200000 0 1 +0.200000 0.250000 1 0 +0.250000 0.300000 0 0 +0.300000 0.350000 1 1 +0.350000 0.400000 1 0 +0.400000 0.450000 0 0 +0.450000 0.500000 0 1 +0.500000 0.550000 2 1 +0.550000 0.600000 2 0 +0.600000 0.650000 1 0 +0.650000 0.700000 0 0 +0.700000 0.750000 0 2 +0.750000 0.800000 1 0 +0.800000 0.850000 0 0 +0.850000 0.900000 0 1 +0.900000 0.950000 0 0 +0.950000 1.000000 0 2 + +mlr --opprint histogram -f x,y --lo 0 --hi 1 --nbins 20 -o foo_ ./reg_test/input/small +foo_bin_lo foo_bin_hi foo_x_count foo_y_count +0.000000 0.050000 1 0 +0.050000 0.100000 0 0 +0.100000 0.150000 0 1 +0.150000 0.200000 0 1 +0.200000 0.250000 1 0 +0.250000 0.300000 0 0 +0.300000 0.350000 1 1 +0.350000 0.400000 1 0 +0.400000 0.450000 0 0 +0.450000 0.500000 0 1 +0.500000 0.550000 2 1 +0.550000 0.600000 2 0 +0.600000 0.650000 1 0 +0.650000 0.700000 0 0 +0.700000 0.750000 0 2 +0.750000 0.800000 1 0 +0.800000 0.850000 0 0 +0.850000 0.900000 0 1 +0.900000 0.950000 0 0 +0.950000 1.000000 0 2 + +mlr --opprint histogram --nbins 9 --auto -f x,y ./reg_test/input/ints.dkvp +bin_lo bin_hi x_count y_count +0.000000 1.000000 8 1 +1.000000 2.000000 2 2 +2.000000 3.000000 5 5 +3.000000 4.000000 4 1 +4.000000 5.000000 3 2 +5.000000 6.000000 1 4 +6.000000 7.000000 3 4 +7.000000 8.000000 2 4 +8.000000 9.000000 2 7 + +mlr --opprint histogram --nbins 9 --auto -f x,y -o foo_ ./reg_test/input/ints.dkvp +foo_bin_lo bin_hi foo_x_count foo_y_count +0.000000 1.000000 8 1 +1.000000 2.000000 2 2 +2.000000 3.000000 5 5 +3.000000 4.000000 4 1 +4.000000 5.000000 3 2 +5.000000 6.000000 1 4 +6.000000 7.000000 3 4 +7.000000 8.000000 2 4 +8.000000 9.000000 2 7 + +mlr --csvlite --opprint merge-fields -a p0,min,p29,max,p100,sum -c _in,_out ./reg_test/input/merge-fields-in-out.csv +a_p0 a_min a_p29 a_max a_p100 a_sum b_p0 b_min b_p29 b_max b_p100 b_sum +436 436 436 490 490 926 195 195 195 446 446 641 +320 320 320 526 526 846 780 780 780 963 963 1743 +220 220 220 888 888 1108 705 705 705 831 831 1536 + +mlr --csvlite --opprint merge-fields -k -a p0,min,p29,max,p100,sum -c _in,_out ./reg_test/input/merge-fields-in-out.csv +a_in a_out b_in b_out a_p0 a_min a_p29 a_max a_p100 a_sum b_p0 b_min b_p29 b_max b_p100 b_sum +436 490 446 195 436 436 436 490 490 926 195 195 195 446 446 641 +526 320 963 780 320 320 320 526 526 846 780 780 780 963 963 1743 +220 888 705 831 220 220 220 888 888 1108 705 705 705 831 831 1536 + +mlr --csvlite --opprint merge-fields -i -a p0,min,p29,max,p100,sum -c _in,_out ./reg_test/input/merge-fields-in-out.csv +a_p0 a_min a_p29 a_max a_p100 a_sum b_p0 b_min b_p29 b_max b_p100 b_sum +436.000000 436 451.660000 490 490 926 195.000000 195 267.790000 446 446 641 +320.000000 320 379.740000 526 526 846 780.000000 780 833.070000 963 963 1743 +220.000000 220 413.720000 888 888 1108 705.000000 705 741.540000 831 831 1536 + +mlr --csvlite --opprint merge-fields -i -k -a p0,min,p29,max,p100,sum -c _in,_out ./reg_test/input/merge-fields-in-out.csv +a_in a_out b_in b_out a_p0 a_min a_p29 a_max a_p100 a_sum b_p0 b_min b_p29 b_max b_p100 b_sum +436 490 446 195 436.000000 436 451.660000 490 490 926 195.000000 195 267.790000 446 446 641 +526 320 963 780 320.000000 320 379.740000 526 526 846 780.000000 780 833.070000 963 963 1743 +220 888 705 831 220.000000 220 413.720000 888 888 1108 705.000000 705 741.540000 831 831 1536 + +mlr --csvlite --opprint merge-fields -a p0,min,p29,max,p100 -c _in,_out ./reg_test/input/merge-fields-in-out-mixed.csv +a_p0 a_min a_p29 a_max a_p100 b_p0 b_min b_p29 b_max b_p100 +436 436 436 abc abc 195 195 195 446 446 +320 320 320 526 526 780 780 780 def def +220 220 220 888 888 705 705 705 ghi ghi +jkl jkl jkl mno mno pqr pqr pqr stu stu + +mlr --csvlite --opprint merge-fields -k -a p0,min,p29,max,p100 -c _in,_out ./reg_test/input/merge-fields-in-out-mixed.csv +a_in a_out b_in b_out a_p0 a_min a_p29 a_max a_p100 b_p0 b_min b_p29 b_max b_p100 +436 abc 446 195 436 436 436 abc abc 195 195 195 446 446 +526 320 def 780 320 320 320 526 526 780 780 780 def def +220 888 705 ghi 220 220 220 888 888 705 705 705 ghi ghi +jkl mno pqr stu jkl jkl jkl mno mno pqr pqr pqr stu stu + +mlr --oxtab merge-fields -k -a p0,min,p29,max,p100,sum,count -f a_in_x,a_out_x -o foo ./reg_test/input/merge-fields-abxy.dkvp +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 2 +foo_p100 2 +foo_sum 3 +foo_count 2 + +z 1 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +foo_p0 2 +foo_min 2 +foo_p29 2 +foo_max 2 +foo_p100 2 +foo_sum 2 +foo_count 1 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 1 +foo_p100 1 +foo_sum 1 +foo_count 1 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 2 +foo_p100 2 +foo_sum 3 +foo_count 2 + +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 2 +foo_p100 2 +foo_sum 3 +foo_count 2 + +z 2 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +foo_p0 2 +foo_min 2 +foo_p29 2 +foo_max 2 +foo_p100 2 +foo_sum 2 +foo_count 1 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +foo_p0 2 +foo_min 2 +foo_p29 2 +foo_max 2 +foo_p100 2 +foo_sum 2 +foo_count 1 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 1 +foo_p100 1 +foo_sum 1 +foo_count 1 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 1 +foo_p100 1 +foo_sum 1 +foo_count 1 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 2 +foo_p100 2 +foo_sum 3 +foo_count 2 + +z 3 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 1 +foo_p100 1 +foo_sum 1 +foo_count 1 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +foo_p0 2 +foo_min 2 +foo_p29 2 +foo_max 2 +foo_p100 2 +foo_sum 2 +foo_count 1 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +z 4 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +mlr --oxtab merge-fields -k -a p0,min,p29,max,p100,sum,count -r in_,out_ -o bar ./reg_test/input/merge-fields-abxy.dkvp +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +bar_p0 1 +bar_min 1 +bar_p29 2 +bar_max 8 +bar_p100 8 +bar_sum 15 +bar_count 4 + +z 1 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +bar_p0 2 +bar_min 2 +bar_p29 2 +bar_max 8 +bar_p100 8 +bar_sum 14 +bar_count 3 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +bar_p0 1 +bar_min 1 +bar_p29 1 +bar_max 8 +bar_p100 8 +bar_sum 13 +bar_count 3 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +bar_p0 1 +bar_min 1 +bar_p29 1 +bar_max 8 +bar_p100 8 +bar_sum 11 +bar_count 3 + +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +bar_p0 1 +bar_min 1 +bar_p29 1 +bar_max 4 +bar_p100 4 +bar_sum 7 +bar_count 3 + +z 2 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +bar_p0 4 +bar_min 4 +bar_p29 4 +bar_max 8 +bar_p100 8 +bar_sum 12 +bar_count 2 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +bar_p0 2 +bar_min 2 +bar_p29 2 +bar_max 8 +bar_p100 8 +bar_sum 10 +bar_count 2 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +bar_p0 2 +bar_min 2 +bar_p29 2 +bar_max 4 +bar_p100 4 +bar_sum 6 +bar_count 2 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +bar_p0 1 +bar_min 1 +bar_p29 1 +bar_max 8 +bar_p100 8 +bar_sum 9 +bar_count 2 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +bar_p0 1 +bar_min 1 +bar_p29 1 +bar_max 4 +bar_p100 4 +bar_sum 5 +bar_count 2 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +bar_p0 1 +bar_min 1 +bar_p29 1 +bar_max 2 +bar_p100 2 +bar_sum 3 +bar_count 2 + +z 3 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +bar_p0 1 +bar_min 1 +bar_p29 1 +bar_max 1 +bar_p100 1 +bar_sum 1 +bar_count 1 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +bar_p0 2 +bar_min 2 +bar_p29 2 +bar_max 2 +bar_p100 2 +bar_sum 2 +bar_count 1 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +bar_p0 4 +bar_min 4 +bar_p29 4 +bar_max 4 +bar_p100 4 +bar_sum 4 +bar_count 1 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +bar_p0 8 +bar_min 8 +bar_p29 8 +bar_max 8 +bar_p100 8 +bar_sum 8 +bar_count 1 + +z 4 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +mlr --oxtab merge-fields -k -a p0,min,p29,max,p100,sum,count -c in_,out_ ./reg_test/input/merge-fields-abxy.dkvp +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 2 +a_x_p100 2 +a_x_sum 3 +a_x_count 2 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +z 1 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +a_x_p0 2 +a_x_min 2 +a_x_p29 2 +a_x_max 2 +a_x_p100 2 +a_x_sum 2 +a_x_count 1 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 1 +a_x_p100 1 +a_x_sum 1 +a_x_count 1 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 2 +a_x_p100 2 +a_x_sum 3 +a_x_count 2 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 2 +a_x_p100 2 +a_x_sum 3 +a_x_count 2 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 + +z 2 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +a_x_p0 2 +a_x_min 2 +a_x_p29 2 +a_x_max 2 +a_x_p100 2 +a_x_sum 2 +a_x_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +a_x_p0 2 +a_x_min 2 +a_x_p29 2 +a_x_max 2 +a_x_p100 2 +a_x_sum 2 +a_x_count 1 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 1 +a_x_p100 1 +a_x_sum 1 +a_x_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 1 +a_x_p100 1 +a_x_sum 1 +a_x_count 1 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 2 +a_x_p100 2 +a_x_sum 3 +a_x_count 2 + +z 3 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 1 +a_x_p100 1 +a_x_sum 1 +a_x_count 1 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +a_x_p0 2 +a_x_min 2 +a_x_p29 2 +a_x_max 2 +a_x_p100 2 +a_x_sum 2 +a_x_count 1 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +z 4 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 + +mlr --oxtab merge-fields -i -k -a p0,min,p29,max,p100,sum,count -f a_in_x,a_out_x -o foo ./reg_test/input/merge-fields-abxy.dkvp +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +foo_p0 1.000000 +foo_min 1 +foo_p29 1.290000 +foo_max 2 +foo_p100 2 +foo_sum 3 +foo_count 2 + +z 1 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +foo_p0 2 +foo_min 2 +foo_p29 2 +foo_max 2 +foo_p100 2 +foo_sum 2 +foo_count 1 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 1 +foo_p100 1 +foo_sum 1 +foo_count 1 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +foo_p0 1.000000 +foo_min 1 +foo_p29 1.290000 +foo_max 2 +foo_p100 2 +foo_sum 3 +foo_count 2 + +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +foo_p0 1.000000 +foo_min 1 +foo_p29 1.290000 +foo_max 2 +foo_p100 2 +foo_sum 3 +foo_count 2 + +z 2 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +foo_p0 2 +foo_min 2 +foo_p29 2 +foo_max 2 +foo_p100 2 +foo_sum 2 +foo_count 1 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +foo_p0 2 +foo_min 2 +foo_p29 2 +foo_max 2 +foo_p100 2 +foo_sum 2 +foo_count 1 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 1 +foo_p100 1 +foo_sum 1 +foo_count 1 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 1 +foo_p100 1 +foo_sum 1 +foo_count 1 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +foo_p0 1.000000 +foo_min 1 +foo_p29 1.290000 +foo_max 2 +foo_p100 2 +foo_sum 3 +foo_count 2 + +z 3 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +foo_p0 1 +foo_min 1 +foo_p29 1 +foo_max 1 +foo_p100 1 +foo_sum 1 +foo_count 1 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +foo_p0 2 +foo_min 2 +foo_p29 2 +foo_max 2 +foo_p100 2 +foo_sum 2 +foo_count 1 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +z 4 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +foo_p0 +foo_min +foo_p29 +foo_max +foo_p100 +foo_sum 0 +foo_count 0 + +mlr --oxtab merge-fields -i -k -a p0,min,p29,max,p100,sum,count -r in_,out_ -o bar ./reg_test/input/merge-fields-abxy.dkvp +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +bar_p0 1.000000 +bar_min 1 +bar_p29 1.870000 +bar_max 8 +bar_p100 8 +bar_sum 15 +bar_count 4 + +z 1 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +bar_p0 2.000000 +bar_min 2 +bar_p29 3.160000 +bar_max 8 +bar_p100 8 +bar_sum 14 +bar_count 3 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +bar_p0 1.000000 +bar_min 1 +bar_p29 2.740000 +bar_max 8 +bar_p100 8 +bar_sum 13 +bar_count 3 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +bar_p0 1.000000 +bar_min 1 +bar_p29 1.580000 +bar_max 8 +bar_p100 8 +bar_sum 11 +bar_count 3 + +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +bar_p0 1.000000 +bar_min 1 +bar_p29 1.580000 +bar_max 4 +bar_p100 4 +bar_sum 7 +bar_count 3 + +z 2 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +bar_p0 4.000000 +bar_min 4 +bar_p29 5.160000 +bar_max 8 +bar_p100 8 +bar_sum 12 +bar_count 2 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +bar_p0 2.000000 +bar_min 2 +bar_p29 3.740000 +bar_max 8 +bar_p100 8 +bar_sum 10 +bar_count 2 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +bar_p0 2.000000 +bar_min 2 +bar_p29 2.580000 +bar_max 4 +bar_p100 4 +bar_sum 6 +bar_count 2 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +bar_p0 1.000000 +bar_min 1 +bar_p29 3.030000 +bar_max 8 +bar_p100 8 +bar_sum 9 +bar_count 2 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +bar_p0 1.000000 +bar_min 1 +bar_p29 1.870000 +bar_max 4 +bar_p100 4 +bar_sum 5 +bar_count 2 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +bar_p0 1.000000 +bar_min 1 +bar_p29 1.290000 +bar_max 2 +bar_p100 2 +bar_sum 3 +bar_count 2 + +z 3 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +bar_p0 1 +bar_min 1 +bar_p29 1 +bar_max 1 +bar_p100 1 +bar_sum 1 +bar_count 1 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +bar_p0 2 +bar_min 2 +bar_p29 2 +bar_max 2 +bar_p100 2 +bar_sum 2 +bar_count 1 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +bar_p0 4 +bar_min 4 +bar_p29 4 +bar_max 4 +bar_p100 4 +bar_sum 4 +bar_count 1 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +bar_p0 8 +bar_min 8 +bar_p29 8 +bar_max 8 +bar_p100 8 +bar_sum 8 +bar_count 1 + +z 4 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +bar_p0 +bar_min +bar_p29 +bar_max +bar_p100 +bar_sum 0 +bar_count 0 + +mlr --oxtab merge-fields -i -k -a p0,min,p29,max,p100,sum,count -c in_,out_ ./reg_test/input/merge-fields-abxy.dkvp +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +a_x_p0 1.000000 +a_x_min 1 +a_x_p29 1.290000 +a_x_max 2 +a_x_p100 2 +a_x_sum 3 +a_x_count 2 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +z 1 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_out_x 8 +a_x_p0 2 +a_x_min 2 +a_x_p29 2 +a_x_max 2 +a_x_p100 2 +a_x_sum 2 +a_x_count 1 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 1 +a_x_p100 1 +a_x_sum 1 +a_x_count 1 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +a_x_p0 1.000000 +a_x_min 1 +a_x_p29 1.290000 +a_x_max 2 +a_x_p100 2 +a_x_sum 3 +a_x_count 2 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_in_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +a_x_p0 1.000000 +a_x_min 1 +a_x_p29 1.290000 +a_x_max 2 +a_x_p100 2 +a_x_sum 3 +a_x_count 2 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 + +z 2 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_out_x 8 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_out_x 8 +a_x_p0 2 +a_x_min 2 +a_x_p29 2 +a_x_max 2 +a_x_p100 2 +a_x_sum 2 +a_x_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_on_x 1 +a_out_x 2 +b_in_y 4 +b_oot_x 8 +a_x_p0 2 +a_x_min 2 +a_x_p29 2 +a_x_max 2 +a_x_p100 2 +a_x_sum 2 +a_x_count 1 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 1 +a_x_p100 1 +a_x_sum 1 +a_x_count 1 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +a_in_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 1 +a_x_p100 1 +a_x_sum 1 +a_x_count 1 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 + +a_in_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +a_x_p0 1.000000 +a_x_min 1 +a_x_p29 1.290000 +a_x_max 2 +a_x_p100 2 +a_x_sum 3 +a_x_count 2 + +z 3 + +a_in_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 +a_x_p0 1 +a_x_min 1 +a_x_p29 1 +a_x_max 1 +a_x_p100 1 +a_x_sum 1 +a_x_count 1 + +a_on_x 1 +a_out_x 2 +b_on_y 4 +b_oot_x 8 +a_x_p0 2 +a_x_min 2 +a_x_p29 2 +a_x_max 2 +a_x_p100 2 +a_x_sum 2 +a_x_count 1 + +a_on_x 1 +a_oot_x 2 +b_in_y 4 +b_oot_x 8 +b_y_p0 4 +b_y_min 4 +b_y_p29 4 +b_y_max 4 +b_y_p100 4 +b_y_sum 4 +b_y_count 1 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_out_x 8 +b_x_p0 8 +b_x_min 8 +b_x_p29 8 +b_x_max 8 +b_x_p100 8 +b_x_sum 8 +b_x_count 1 + +z 4 + +a_on_x 1 +a_oot_x 2 +b_on_y 4 +b_oot_x 8 + + +================================================================ +STATS1 WITH REGEXED FIELD NAMES + +mlr --from ./reg_test/input/abixy --opprint stats1 -a sum -g a,b -f i,x,y +a b i_sum x_sum y_sum +pan pan 1 0.346790 0.726803 +eks pan 2 0.758680 0.522151 +wye wye 3 0.204603 0.338319 +eks wye 4 0.381399 0.134189 +wye pan 5 0.573289 0.863624 +zee pan 6 0.527126 0.493221 +eks zee 7 0.611784 0.187885 +zee wye 8 0.598554 0.976181 +hat wye 9 0.031442 0.749551 +pan wye 10 0.502626 0.952618 + +mlr --from ./reg_test/input/abixy --opprint stats1 -a sum --gr ^[a-h]$ --fr ^[i-z]$ +a b i_sum x_sum y_sum +pan pan 1 0.346790 0.726803 +eks pan 2 0.758680 0.522151 +wye wye 3 0.204603 0.338319 +eks wye 4 0.381399 0.134189 +wye pan 5 0.573289 0.863624 +zee pan 6 0.527126 0.493221 +eks zee 7 0.611784 0.187885 +zee wye 8 0.598554 0.976181 +hat wye 9 0.031442 0.749551 +pan wye 10 0.502626 0.952618 + +mlr --from ./reg_test/input/abixy --opprint stats1 -a sum -g a,b --fr ^[i-z]$ +a b i_sum x_sum y_sum +pan pan 1 0.346790 0.726803 +eks pan 2 0.758680 0.522151 +wye wye 3 0.204603 0.338319 +eks wye 4 0.381399 0.134189 +wye pan 5 0.573289 0.863624 +zee pan 6 0.527126 0.493221 +eks zee 7 0.611784 0.187885 +zee wye 8 0.598554 0.976181 +hat wye 9 0.031442 0.749551 +pan wye 10 0.502626 0.952618 + +mlr --from ./reg_test/input/abixy --opprint stats1 -a sum --gr ^[a-h]$ -f i,x,y +a b i_sum x_sum y_sum +pan pan 1 0.346790 0.726803 +eks pan 2 0.758680 0.522151 +wye wye 3 0.204603 0.338319 +eks wye 4 0.381399 0.134189 +wye pan 5 0.573289 0.863624 +zee pan 6 0.527126 0.493221 +eks zee 7 0.611784 0.187885 +zee wye 8 0.598554 0.976181 +hat wye 9 0.031442 0.749551 +pan wye 10 0.502626 0.952618 + +mlr --from ./reg_test/input/abixy --opprint stats1 -a sum --gx ^[i-z]$ --fx ^[a-h]$ +a b i_sum x_sum y_sum +pan pan 1 0.346790 0.726803 +eks pan 2 0.758680 0.522151 +wye wye 3 0.204603 0.338319 +eks wye 4 0.381399 0.134189 +wye pan 5 0.573289 0.863624 +zee pan 6 0.527126 0.493221 +eks zee 7 0.611784 0.187885 +zee wye 8 0.598554 0.976181 +hat wye 9 0.031442 0.749551 +pan wye 10 0.502626 0.952618 + +mlr --from ./reg_test/input/abixy --opprint stats1 -a sum -g a,b --fx ^[a-h]$ +a b i_sum x_sum y_sum +pan pan 1 0.346790 0.726803 +eks pan 2 0.758680 0.522151 +wye wye 3 0.204603 0.338319 +eks wye 4 0.381399 0.134189 +wye pan 5 0.573289 0.863624 +zee pan 6 0.527126 0.493221 +eks zee 7 0.611784 0.187885 +zee wye 8 0.598554 0.976181 +hat wye 9 0.031442 0.749551 +pan wye 10 0.502626 0.952618 + +mlr --from ./reg_test/input/abixy --opprint stats1 -a sum --gx ^[i-z]$ -f i,x,y +a b i_sum x_sum y_sum +pan pan 1 0.346790 0.726803 +eks pan 2 0.758680 0.522151 +wye wye 3 0.204603 0.338319 +eks wye 4 0.381399 0.134189 +wye pan 5 0.573289 0.863624 +zee pan 6 0.527126 0.493221 +eks zee 7 0.611784 0.187885 +zee wye 8 0.598554 0.976181 +hat wye 9 0.031442 0.749551 +pan wye 10 0.502626 0.952618 + + +================================================================ +MOST/LEAST FREQUENT + +mlr --opprint --from ./reg_test/input/freq.dkvp most-frequent -f a -n 3 +a count +apple 6 +bat 5 +cat 4 + +mlr --opprint --from ./reg_test/input/freq.dkvp most-frequent -f a,b -n 3 +a b count +apple apple 6 +bat cat 5 +cat bat 3 + +mlr --opprint --from ./reg_test/input/freq.dkvp most-frequent -f a,b -n 3 -b +a b +apple apple +bat cat +cat bat + +mlr --opprint --from ./reg_test/input/freq.dkvp most-frequent -f nonesuch -n 3 + +mlr --opprint --from ./reg_test/input/freq.dkvp least-frequent -f a -n 3 +a count +dog 2 +cat 4 +bat 5 + +mlr --opprint --from ./reg_test/input/freq.dkvp least-frequent -f a,b -n 3 +a b count +cat cat 1 +dog dog 2 +cat bat 3 + +mlr --opprint --from ./reg_test/input/freq.dkvp least-frequent -f a,b -n 3 -b +a b +cat cat +dog dog +cat bat + +mlr --opprint --from ./reg_test/input/freq.dkvp least-frequent -f nonesuch -n 3 + +mlr --opprint --from ./reg_test/input/freq.dkvp most-frequent -f a -n 3 -o foo +a foo +apple 6 +bat 5 +cat 4 + +mlr --opprint --from ./reg_test/input/freq.dkvp most-frequent -f a,b -n 3 -o foo +a b foo +apple apple 6 +bat cat 5 +cat bat 3 + +mlr --opprint --from ./reg_test/input/freq.dkvp most-frequent -f a,b -n 3 -b -o foo +a b +apple apple +bat cat +cat bat + +mlr --opprint --from ./reg_test/input/freq.dkvp most-frequent -f nonesuch -n 3 -o foo + +mlr --opprint --from ./reg_test/input/freq.dkvp least-frequent -f a -n 3 -o foo +a foo +dog 2 +cat 4 +bat 5 + +mlr --opprint --from ./reg_test/input/freq.dkvp least-frequent -f a,b -n 3 -o foo +a b foo +cat cat 1 +dog dog 2 +cat bat 3 + +mlr --opprint --from ./reg_test/input/freq.dkvp least-frequent -f a,b -n 3 -b -o foo +a b +cat cat +dog dog +cat bat + +mlr --opprint --from ./reg_test/input/freq.dkvp least-frequent -f nonesuch -n 3 -o foo + + +================================================================ +COUNT-SIMILAR + +mlr --opprint --from ./reg_test/input/abixy count-similar -g a +a b i x y count +pan pan 1 0.3467901443380824 0.7268028627434533 2 +pan wye 10 0.5026260055412137 0.9526183602969864 2 +eks pan 2 0.7586799647899636 0.5221511083334797 3 +eks wye 4 0.38139939387114097 0.13418874328430463 3 +eks zee 7 0.6117840605678454 0.1878849191181694 3 +wye wye 3 0.20460330576630303 0.33831852551664776 2 +wye pan 5 0.5732889198020006 0.8636244699032729 2 +zee pan 6 0.5271261600918548 0.49322128674835697 2 +zee wye 8 0.5985540091064224 0.976181385699006 2 +hat wye 9 0.03144187646093577 0.7495507603507059 1 + +mlr --opprint --from ./reg_test/input/abixy count-similar -g b,i +a b i x y count +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 1 +wye wye 3 0.20460330576630303 0.33831852551664776 1 +eks wye 4 0.38139939387114097 0.13418874328430463 1 +wye pan 5 0.5732889198020006 0.8636244699032729 1 +zee pan 6 0.5271261600918548 0.49322128674835697 1 +eks zee 7 0.6117840605678454 0.1878849191181694 1 +zee wye 8 0.5985540091064224 0.976181385699006 1 +hat wye 9 0.03144187646093577 0.7495507603507059 1 +pan wye 10 0.5026260055412137 0.9526183602969864 1 + +mlr --opprint --from ./reg_test/input/abixy count-similar -g a,b,i -o other_name_for_counter +a b i x y other_name_for_counter +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 1 +wye wye 3 0.20460330576630303 0.33831852551664776 1 +eks wye 4 0.38139939387114097 0.13418874328430463 1 +wye pan 5 0.5732889198020006 0.8636244699032729 1 +zee pan 6 0.5271261600918548 0.49322128674835697 1 +eks zee 7 0.6117840605678454 0.1878849191181694 1 +zee wye 8 0.5985540091064224 0.976181385699006 1 +hat wye 9 0.03144187646093577 0.7495507603507059 1 +pan wye 10 0.5026260055412137 0.9526183602969864 1 + + +================================================================ +NON-INTERPOLATED AND INTERPOLATED PERCENTILES + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 1 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 0 +x_p14 0 +x_p15 0 +x_p16 0 +x_p17 0 +x_p18 0 +x_p19 0 +x_p20 0 +x_p21 0 +x_p22 0 +x_p23 0 +x_p24 0 +x_p25 0 +x_p26 0 +x_p27 0 +x_p28 0 +x_p29 0 +x_p30 0 +x_p31 0 +x_p32 0 +x_p33 0 +x_p34 0 +x_p35 0 +x_p36 0 +x_p37 0 +x_p38 0 +x_p39 0 +x_p40 0 +x_p41 0 +x_p42 0 +x_p43 0 +x_p44 0 +x_p45 0 +x_p46 0 +x_p47 0 +x_p48 0 +x_p49 0 +x_p50 0 +x_p51 0 +x_p52 0 +x_p53 0 +x_p54 0 +x_p55 0 +x_p56 0 +x_p57 0 +x_p58 0 +x_p59 0 +x_p60 0 +x_p61 0 +x_p62 0 +x_p63 0 +x_p64 0 +x_p65 0 +x_p66 0 +x_p67 0 +x_p68 0 +x_p69 0 +x_p70 0 +x_p71 0 +x_p72 0 +x_p73 0 +x_p74 0 +x_p75 0 +x_p76 0 +x_p77 0 +x_p78 0 +x_p79 0 +x_p80 0 +x_p81 0 +x_p82 0 +x_p83 0 +x_p84 0 +x_p85 0 +x_p86 0 +x_p87 0 +x_p88 0 +x_p89 0 +x_p90 0 +x_p91 0 +x_p92 0 +x_p93 0 +x_p94 0 +x_p95 0 +x_p96 0 +x_p97 0 +x_p98 0 +x_p99 0 +x_p100 0 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 2 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 0 +x_p14 0 +x_p15 0 +x_p16 0 +x_p17 0 +x_p18 0 +x_p19 0 +x_p20 0 +x_p21 0 +x_p22 0 +x_p23 0 +x_p24 0 +x_p25 0 +x_p26 0 +x_p27 0 +x_p28 0 +x_p29 0 +x_p30 0 +x_p31 0 +x_p32 0 +x_p33 0 +x_p34 0 +x_p35 0 +x_p36 0 +x_p37 0 +x_p38 0 +x_p39 0 +x_p40 0 +x_p41 0 +x_p42 0 +x_p43 0 +x_p44 0 +x_p45 0 +x_p46 0 +x_p47 0 +x_p48 0 +x_p49 0 +x_p50 1 +x_p51 1 +x_p52 1 +x_p53 1 +x_p54 1 +x_p55 1 +x_p56 1 +x_p57 1 +x_p58 1 +x_p59 1 +x_p60 1 +x_p61 1 +x_p62 1 +x_p63 1 +x_p64 1 +x_p65 1 +x_p66 1 +x_p67 1 +x_p68 1 +x_p69 1 +x_p70 1 +x_p71 1 +x_p72 1 +x_p73 1 +x_p74 1 +x_p75 1 +x_p76 1 +x_p77 1 +x_p78 1 +x_p79 1 +x_p80 1 +x_p81 1 +x_p82 1 +x_p83 1 +x_p84 1 +x_p85 1 +x_p86 1 +x_p87 1 +x_p88 1 +x_p89 1 +x_p90 1 +x_p91 1 +x_p92 1 +x_p93 1 +x_p94 1 +x_p95 1 +x_p96 1 +x_p97 1 +x_p98 1 +x_p99 1 +x_p100 1 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 3 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 0 +x_p14 0 +x_p15 0 +x_p16 0 +x_p17 0 +x_p18 0 +x_p19 0 +x_p20 0 +x_p21 0 +x_p22 0 +x_p23 0 +x_p24 0 +x_p25 0 +x_p26 0 +x_p27 0 +x_p28 0 +x_p29 0 +x_p30 0 +x_p31 0 +x_p32 0 +x_p33 0 +x_p34 1 +x_p35 1 +x_p36 1 +x_p37 1 +x_p38 1 +x_p39 1 +x_p40 1 +x_p41 1 +x_p42 1 +x_p43 1 +x_p44 1 +x_p45 1 +x_p46 1 +x_p47 1 +x_p48 1 +x_p49 1 +x_p50 1 +x_p51 1 +x_p52 1 +x_p53 1 +x_p54 1 +x_p55 1 +x_p56 1 +x_p57 1 +x_p58 1 +x_p59 1 +x_p60 1 +x_p61 1 +x_p62 1 +x_p63 1 +x_p64 1 +x_p65 1 +x_p66 1 +x_p67 2 +x_p68 2 +x_p69 2 +x_p70 2 +x_p71 2 +x_p72 2 +x_p73 2 +x_p74 2 +x_p75 2 +x_p76 2 +x_p77 2 +x_p78 2 +x_p79 2 +x_p80 2 +x_p81 2 +x_p82 2 +x_p83 2 +x_p84 2 +x_p85 2 +x_p86 2 +x_p87 2 +x_p88 2 +x_p89 2 +x_p90 2 +x_p91 2 +x_p92 2 +x_p93 2 +x_p94 2 +x_p95 2 +x_p96 2 +x_p97 2 +x_p98 2 +x_p99 2 +x_p100 2 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 4 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 0 +x_p14 0 +x_p15 0 +x_p16 0 +x_p17 0 +x_p18 0 +x_p19 0 +x_p20 0 +x_p21 0 +x_p22 0 +x_p23 0 +x_p24 0 +x_p25 1 +x_p26 1 +x_p27 1 +x_p28 1 +x_p29 1 +x_p30 1 +x_p31 1 +x_p32 1 +x_p33 1 +x_p34 1 +x_p35 1 +x_p36 1 +x_p37 1 +x_p38 1 +x_p39 1 +x_p40 1 +x_p41 1 +x_p42 1 +x_p43 1 +x_p44 1 +x_p45 1 +x_p46 1 +x_p47 1 +x_p48 1 +x_p49 1 +x_p50 2 +x_p51 2 +x_p52 2 +x_p53 2 +x_p54 2 +x_p55 2 +x_p56 2 +x_p57 2 +x_p58 2 +x_p59 2 +x_p60 2 +x_p61 2 +x_p62 2 +x_p63 2 +x_p64 2 +x_p65 2 +x_p66 2 +x_p67 2 +x_p68 2 +x_p69 2 +x_p70 2 +x_p71 2 +x_p72 2 +x_p73 2 +x_p74 2 +x_p75 3 +x_p76 3 +x_p77 3 +x_p78 3 +x_p79 3 +x_p80 3 +x_p81 3 +x_p82 3 +x_p83 3 +x_p84 3 +x_p85 3 +x_p86 3 +x_p87 3 +x_p88 3 +x_p89 3 +x_p90 3 +x_p91 3 +x_p92 3 +x_p93 3 +x_p94 3 +x_p95 3 +x_p96 3 +x_p97 3 +x_p98 3 +x_p99 3 +x_p100 3 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 5 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 0 +x_p14 0 +x_p15 0 +x_p16 0 +x_p17 0 +x_p18 0 +x_p19 0 +x_p20 1 +x_p21 1 +x_p22 1 +x_p23 1 +x_p24 1 +x_p25 1 +x_p26 1 +x_p27 1 +x_p28 1 +x_p29 1 +x_p30 1 +x_p31 1 +x_p32 1 +x_p33 1 +x_p34 1 +x_p35 1 +x_p36 1 +x_p37 1 +x_p38 1 +x_p39 1 +x_p40 2 +x_p41 2 +x_p42 2 +x_p43 2 +x_p44 2 +x_p45 2 +x_p46 2 +x_p47 2 +x_p48 2 +x_p49 2 +x_p50 2 +x_p51 2 +x_p52 2 +x_p53 2 +x_p54 2 +x_p55 2 +x_p56 2 +x_p57 2 +x_p58 2 +x_p59 2 +x_p60 3 +x_p61 3 +x_p62 3 +x_p63 3 +x_p64 3 +x_p65 3 +x_p66 3 +x_p67 3 +x_p68 3 +x_p69 3 +x_p70 3 +x_p71 3 +x_p72 3 +x_p73 3 +x_p74 3 +x_p75 3 +x_p76 3 +x_p77 3 +x_p78 3 +x_p79 3 +x_p80 4 +x_p81 4 +x_p82 4 +x_p83 4 +x_p84 4 +x_p85 4 +x_p86 4 +x_p87 4 +x_p88 4 +x_p89 4 +x_p90 4 +x_p91 4 +x_p92 4 +x_p93 4 +x_p94 4 +x_p95 4 +x_p96 4 +x_p97 4 +x_p98 4 +x_p99 4 +x_p100 4 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 6 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 0 +x_p14 0 +x_p15 0 +x_p16 0 +x_p17 1 +x_p18 1 +x_p19 1 +x_p20 1 +x_p21 1 +x_p22 1 +x_p23 1 +x_p24 1 +x_p25 1 +x_p26 1 +x_p27 1 +x_p28 1 +x_p29 1 +x_p30 1 +x_p31 1 +x_p32 1 +x_p33 1 +x_p34 2 +x_p35 2 +x_p36 2 +x_p37 2 +x_p38 2 +x_p39 2 +x_p40 2 +x_p41 2 +x_p42 2 +x_p43 2 +x_p44 2 +x_p45 2 +x_p46 2 +x_p47 2 +x_p48 2 +x_p49 2 +x_p50 3 +x_p51 3 +x_p52 3 +x_p53 3 +x_p54 3 +x_p55 3 +x_p56 3 +x_p57 3 +x_p58 3 +x_p59 3 +x_p60 3 +x_p61 3 +x_p62 3 +x_p63 3 +x_p64 3 +x_p65 3 +x_p66 3 +x_p67 4 +x_p68 4 +x_p69 4 +x_p70 4 +x_p71 4 +x_p72 4 +x_p73 4 +x_p74 4 +x_p75 4 +x_p76 4 +x_p77 4 +x_p78 4 +x_p79 4 +x_p80 4 +x_p81 4 +x_p82 4 +x_p83 4 +x_p84 5 +x_p85 5 +x_p86 5 +x_p87 5 +x_p88 5 +x_p89 5 +x_p90 5 +x_p91 5 +x_p92 5 +x_p93 5 +x_p94 5 +x_p95 5 +x_p96 5 +x_p97 5 +x_p98 5 +x_p99 5 +x_p100 5 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 7 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 0 +x_p14 0 +x_p15 1 +x_p16 1 +x_p17 1 +x_p18 1 +x_p19 1 +x_p20 1 +x_p21 1 +x_p22 1 +x_p23 1 +x_p24 1 +x_p25 1 +x_p26 1 +x_p27 1 +x_p28 1 +x_p29 2 +x_p30 2 +x_p31 2 +x_p32 2 +x_p33 2 +x_p34 2 +x_p35 2 +x_p36 2 +x_p37 2 +x_p38 2 +x_p39 2 +x_p40 2 +x_p41 2 +x_p42 2 +x_p43 3 +x_p44 3 +x_p45 3 +x_p46 3 +x_p47 3 +x_p48 3 +x_p49 3 +x_p50 3 +x_p51 3 +x_p52 3 +x_p53 3 +x_p54 3 +x_p55 3 +x_p56 3 +x_p57 3 +x_p58 4 +x_p59 4 +x_p60 4 +x_p61 4 +x_p62 4 +x_p63 4 +x_p64 4 +x_p65 4 +x_p66 4 +x_p67 4 +x_p68 4 +x_p69 4 +x_p70 4 +x_p71 4 +x_p72 5 +x_p73 5 +x_p74 5 +x_p75 5 +x_p76 5 +x_p77 5 +x_p78 5 +x_p79 5 +x_p80 5 +x_p81 5 +x_p82 5 +x_p83 5 +x_p84 5 +x_p85 5 +x_p86 6 +x_p87 6 +x_p88 6 +x_p89 6 +x_p90 6 +x_p91 6 +x_p92 6 +x_p93 6 +x_p94 6 +x_p95 6 +x_p96 6 +x_p97 6 +x_p98 6 +x_p99 6 +x_p100 6 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 8 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 1 +x_p14 1 +x_p15 1 +x_p16 1 +x_p17 1 +x_p18 1 +x_p19 1 +x_p20 1 +x_p21 1 +x_p22 1 +x_p23 1 +x_p24 1 +x_p25 2 +x_p26 2 +x_p27 2 +x_p28 2 +x_p29 2 +x_p30 2 +x_p31 2 +x_p32 2 +x_p33 2 +x_p34 2 +x_p35 2 +x_p36 2 +x_p37 2 +x_p38 3 +x_p39 3 +x_p40 3 +x_p41 3 +x_p42 3 +x_p43 3 +x_p44 3 +x_p45 3 +x_p46 3 +x_p47 3 +x_p48 3 +x_p49 3 +x_p50 4 +x_p51 4 +x_p52 4 +x_p53 4 +x_p54 4 +x_p55 4 +x_p56 4 +x_p57 4 +x_p58 4 +x_p59 4 +x_p60 4 +x_p61 4 +x_p62 4 +x_p63 5 +x_p64 5 +x_p65 5 +x_p66 5 +x_p67 5 +x_p68 5 +x_p69 5 +x_p70 5 +x_p71 5 +x_p72 5 +x_p73 5 +x_p74 5 +x_p75 6 +x_p76 6 +x_p77 6 +x_p78 6 +x_p79 6 +x_p80 6 +x_p81 6 +x_p82 6 +x_p83 6 +x_p84 6 +x_p85 6 +x_p86 6 +x_p87 6 +x_p88 7 +x_p89 7 +x_p90 7 +x_p91 7 +x_p92 7 +x_p93 7 +x_p94 7 +x_p95 7 +x_p96 7 +x_p97 7 +x_p98 7 +x_p99 7 +x_p100 7 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 9 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 1 +x_p13 1 +x_p14 1 +x_p15 1 +x_p16 1 +x_p17 1 +x_p18 1 +x_p19 1 +x_p20 1 +x_p21 1 +x_p22 1 +x_p23 2 +x_p24 2 +x_p25 2 +x_p26 2 +x_p27 2 +x_p28 2 +x_p29 2 +x_p30 2 +x_p31 2 +x_p32 2 +x_p33 2 +x_p34 3 +x_p35 3 +x_p36 3 +x_p37 3 +x_p38 3 +x_p39 3 +x_p40 3 +x_p41 3 +x_p42 3 +x_p43 3 +x_p44 3 +x_p45 4 +x_p46 4 +x_p47 4 +x_p48 4 +x_p49 4 +x_p50 4 +x_p51 4 +x_p52 4 +x_p53 4 +x_p54 4 +x_p55 4 +x_p56 5 +x_p57 5 +x_p58 5 +x_p59 5 +x_p60 5 +x_p61 5 +x_p62 5 +x_p63 5 +x_p64 5 +x_p65 5 +x_p66 5 +x_p67 6 +x_p68 6 +x_p69 6 +x_p70 6 +x_p71 6 +x_p72 6 +x_p73 6 +x_p74 6 +x_p75 6 +x_p76 6 +x_p77 6 +x_p78 7 +x_p79 7 +x_p80 7 +x_p81 7 +x_p82 7 +x_p83 7 +x_p84 7 +x_p85 7 +x_p86 7 +x_p87 7 +x_p88 7 +x_p89 8 +x_p90 8 +x_p91 8 +x_p92 8 +x_p93 8 +x_p94 8 +x_p95 8 +x_p96 8 +x_p97 8 +x_p98 8 +x_p99 8 +x_p100 8 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 10 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 1 +x_p11 1 +x_p12 1 +x_p13 1 +x_p14 1 +x_p15 1 +x_p16 1 +x_p17 1 +x_p18 1 +x_p19 1 +x_p20 2 +x_p21 2 +x_p22 2 +x_p23 2 +x_p24 2 +x_p25 2 +x_p26 2 +x_p27 2 +x_p28 2 +x_p29 2 +x_p30 3 +x_p31 3 +x_p32 3 +x_p33 3 +x_p34 3 +x_p35 3 +x_p36 3 +x_p37 3 +x_p38 3 +x_p39 3 +x_p40 4 +x_p41 4 +x_p42 4 +x_p43 4 +x_p44 4 +x_p45 4 +x_p46 4 +x_p47 4 +x_p48 4 +x_p49 4 +x_p50 5 +x_p51 5 +x_p52 5 +x_p53 5 +x_p54 5 +x_p55 5 +x_p56 5 +x_p57 5 +x_p58 5 +x_p59 5 +x_p60 6 +x_p61 6 +x_p62 6 +x_p63 6 +x_p64 6 +x_p65 6 +x_p66 6 +x_p67 6 +x_p68 6 +x_p69 6 +x_p70 7 +x_p71 7 +x_p72 7 +x_p73 7 +x_p74 7 +x_p75 7 +x_p76 7 +x_p77 7 +x_p78 7 +x_p79 7 +x_p80 8 +x_p81 8 +x_p82 8 +x_p83 8 +x_p84 8 +x_p85 8 +x_p86 8 +x_p87 8 +x_p88 8 +x_p89 8 +x_p90 9 +x_p91 9 +x_p92 9 +x_p93 9 +x_p94 9 +x_p95 9 +x_p96 9 +x_p97 9 +x_p98 9 +x_p99 9 +x_p100 9 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 11 then stats1 -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 1 +x_p11 1 +x_p12 1 +x_p13 1 +x_p14 1 +x_p15 1 +x_p16 1 +x_p17 1 +x_p18 1 +x_p19 2 +x_p20 2 +x_p21 2 +x_p22 2 +x_p23 2 +x_p24 2 +x_p25 2 +x_p26 2 +x_p27 2 +x_p28 3 +x_p29 3 +x_p30 3 +x_p31 3 +x_p32 3 +x_p33 3 +x_p34 3 +x_p35 3 +x_p36 3 +x_p37 4 +x_p38 4 +x_p39 4 +x_p40 4 +x_p41 4 +x_p42 4 +x_p43 4 +x_p44 4 +x_p45 4 +x_p46 5 +x_p47 5 +x_p48 5 +x_p49 5 +x_p50 5 +x_p51 5 +x_p52 5 +x_p53 5 +x_p54 5 +x_p55 6 +x_p56 6 +x_p57 6 +x_p58 6 +x_p59 6 +x_p60 6 +x_p61 6 +x_p62 6 +x_p63 6 +x_p64 7 +x_p65 7 +x_p66 7 +x_p67 7 +x_p68 7 +x_p69 7 +x_p70 7 +x_p71 7 +x_p72 7 +x_p73 8 +x_p74 8 +x_p75 8 +x_p76 8 +x_p77 8 +x_p78 8 +x_p79 8 +x_p80 8 +x_p81 8 +x_p82 9 +x_p83 9 +x_p84 9 +x_p85 9 +x_p86 9 +x_p87 9 +x_p88 9 +x_p89 9 +x_p90 9 +x_p91 10 +x_p92 10 +x_p93 10 +x_p94 10 +x_p95 10 +x_p96 10 +x_p97 10 +x_p98 10 +x_p99 10 +x_p100 10 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 1 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0 +x_p01 0 +x_p02 0 +x_p03 0 +x_p04 0 +x_p05 0 +x_p06 0 +x_p07 0 +x_p08 0 +x_p09 0 +x_p10 0 +x_p11 0 +x_p12 0 +x_p13 0 +x_p14 0 +x_p15 0 +x_p16 0 +x_p17 0 +x_p18 0 +x_p19 0 +x_p20 0 +x_p21 0 +x_p22 0 +x_p23 0 +x_p24 0 +x_p25 0 +x_p26 0 +x_p27 0 +x_p28 0 +x_p29 0 +x_p30 0 +x_p31 0 +x_p32 0 +x_p33 0 +x_p34 0 +x_p35 0 +x_p36 0 +x_p37 0 +x_p38 0 +x_p39 0 +x_p40 0 +x_p41 0 +x_p42 0 +x_p43 0 +x_p44 0 +x_p45 0 +x_p46 0 +x_p47 0 +x_p48 0 +x_p49 0 +x_p50 0 +x_p51 0 +x_p52 0 +x_p53 0 +x_p54 0 +x_p55 0 +x_p56 0 +x_p57 0 +x_p58 0 +x_p59 0 +x_p60 0 +x_p61 0 +x_p62 0 +x_p63 0 +x_p64 0 +x_p65 0 +x_p66 0 +x_p67 0 +x_p68 0 +x_p69 0 +x_p70 0 +x_p71 0 +x_p72 0 +x_p73 0 +x_p74 0 +x_p75 0 +x_p76 0 +x_p77 0 +x_p78 0 +x_p79 0 +x_p80 0 +x_p81 0 +x_p82 0 +x_p83 0 +x_p84 0 +x_p85 0 +x_p86 0 +x_p87 0 +x_p88 0 +x_p89 0 +x_p90 0 +x_p91 0 +x_p92 0 +x_p93 0 +x_p94 0 +x_p95 0 +x_p96 0 +x_p97 0 +x_p98 0 +x_p99 0 +x_p100 0 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 2 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.010000 +x_p02 0.020000 +x_p03 0.030000 +x_p04 0.040000 +x_p05 0.050000 +x_p06 0.060000 +x_p07 0.070000 +x_p08 0.080000 +x_p09 0.090000 +x_p10 0.100000 +x_p11 0.110000 +x_p12 0.120000 +x_p13 0.130000 +x_p14 0.140000 +x_p15 0.150000 +x_p16 0.160000 +x_p17 0.170000 +x_p18 0.180000 +x_p19 0.190000 +x_p20 0.200000 +x_p21 0.210000 +x_p22 0.220000 +x_p23 0.230000 +x_p24 0.240000 +x_p25 0.250000 +x_p26 0.260000 +x_p27 0.270000 +x_p28 0.280000 +x_p29 0.290000 +x_p30 0.300000 +x_p31 0.310000 +x_p32 0.320000 +x_p33 0.330000 +x_p34 0.340000 +x_p35 0.350000 +x_p36 0.360000 +x_p37 0.370000 +x_p38 0.380000 +x_p39 0.390000 +x_p40 0.400000 +x_p41 0.410000 +x_p42 0.420000 +x_p43 0.430000 +x_p44 0.440000 +x_p45 0.450000 +x_p46 0.460000 +x_p47 0.470000 +x_p48 0.480000 +x_p49 0.490000 +x_p50 0.500000 +x_p51 0.510000 +x_p52 0.520000 +x_p53 0.530000 +x_p54 0.540000 +x_p55 0.550000 +x_p56 0.560000 +x_p57 0.570000 +x_p58 0.580000 +x_p59 0.590000 +x_p60 0.600000 +x_p61 0.610000 +x_p62 0.620000 +x_p63 0.630000 +x_p64 0.640000 +x_p65 0.650000 +x_p66 0.660000 +x_p67 0.670000 +x_p68 0.680000 +x_p69 0.690000 +x_p70 0.700000 +x_p71 0.710000 +x_p72 0.720000 +x_p73 0.730000 +x_p74 0.740000 +x_p75 0.750000 +x_p76 0.760000 +x_p77 0.770000 +x_p78 0.780000 +x_p79 0.790000 +x_p80 0.800000 +x_p81 0.810000 +x_p82 0.820000 +x_p83 0.830000 +x_p84 0.840000 +x_p85 0.850000 +x_p86 0.860000 +x_p87 0.870000 +x_p88 0.880000 +x_p89 0.890000 +x_p90 0.900000 +x_p91 0.910000 +x_p92 0.920000 +x_p93 0.930000 +x_p94 0.940000 +x_p95 0.950000 +x_p96 0.960000 +x_p97 0.970000 +x_p98 0.980000 +x_p99 0.990000 +x_p100 1 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 3 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.020000 +x_p02 0.040000 +x_p03 0.060000 +x_p04 0.080000 +x_p05 0.100000 +x_p06 0.120000 +x_p07 0.140000 +x_p08 0.160000 +x_p09 0.180000 +x_p10 0.200000 +x_p11 0.220000 +x_p12 0.240000 +x_p13 0.260000 +x_p14 0.280000 +x_p15 0.300000 +x_p16 0.320000 +x_p17 0.340000 +x_p18 0.360000 +x_p19 0.380000 +x_p20 0.400000 +x_p21 0.420000 +x_p22 0.440000 +x_p23 0.460000 +x_p24 0.480000 +x_p25 0.500000 +x_p26 0.520000 +x_p27 0.540000 +x_p28 0.560000 +x_p29 0.580000 +x_p30 0.600000 +x_p31 0.620000 +x_p32 0.640000 +x_p33 0.660000 +x_p34 0.680000 +x_p35 0.700000 +x_p36 0.720000 +x_p37 0.740000 +x_p38 0.760000 +x_p39 0.780000 +x_p40 0.800000 +x_p41 0.820000 +x_p42 0.840000 +x_p43 0.860000 +x_p44 0.880000 +x_p45 0.900000 +x_p46 0.920000 +x_p47 0.940000 +x_p48 0.960000 +x_p49 0.980000 +x_p50 1.000000 +x_p51 1.020000 +x_p52 1.040000 +x_p53 1.060000 +x_p54 1.080000 +x_p55 1.100000 +x_p56 1.120000 +x_p57 1.140000 +x_p58 1.160000 +x_p59 1.180000 +x_p60 1.200000 +x_p61 1.220000 +x_p62 1.240000 +x_p63 1.260000 +x_p64 1.280000 +x_p65 1.300000 +x_p66 1.320000 +x_p67 1.340000 +x_p68 1.360000 +x_p69 1.380000 +x_p70 1.400000 +x_p71 1.420000 +x_p72 1.440000 +x_p73 1.460000 +x_p74 1.480000 +x_p75 1.500000 +x_p76 1.520000 +x_p77 1.540000 +x_p78 1.560000 +x_p79 1.580000 +x_p80 1.600000 +x_p81 1.620000 +x_p82 1.640000 +x_p83 1.660000 +x_p84 1.680000 +x_p85 1.700000 +x_p86 1.720000 +x_p87 1.740000 +x_p88 1.760000 +x_p89 1.780000 +x_p90 1.800000 +x_p91 1.820000 +x_p92 1.840000 +x_p93 1.860000 +x_p94 1.880000 +x_p95 1.900000 +x_p96 1.920000 +x_p97 1.940000 +x_p98 1.960000 +x_p99 1.980000 +x_p100 2 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 4 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.030000 +x_p02 0.060000 +x_p03 0.090000 +x_p04 0.120000 +x_p05 0.150000 +x_p06 0.180000 +x_p07 0.210000 +x_p08 0.240000 +x_p09 0.270000 +x_p10 0.300000 +x_p11 0.330000 +x_p12 0.360000 +x_p13 0.390000 +x_p14 0.420000 +x_p15 0.450000 +x_p16 0.480000 +x_p17 0.510000 +x_p18 0.540000 +x_p19 0.570000 +x_p20 0.600000 +x_p21 0.630000 +x_p22 0.660000 +x_p23 0.690000 +x_p24 0.720000 +x_p25 0.750000 +x_p26 0.780000 +x_p27 0.810000 +x_p28 0.840000 +x_p29 0.870000 +x_p30 0.900000 +x_p31 0.930000 +x_p32 0.960000 +x_p33 0.990000 +x_p34 1.020000 +x_p35 1.050000 +x_p36 1.080000 +x_p37 1.110000 +x_p38 1.140000 +x_p39 1.170000 +x_p40 1.200000 +x_p41 1.230000 +x_p42 1.260000 +x_p43 1.290000 +x_p44 1.320000 +x_p45 1.350000 +x_p46 1.380000 +x_p47 1.410000 +x_p48 1.440000 +x_p49 1.470000 +x_p50 1.500000 +x_p51 1.530000 +x_p52 1.560000 +x_p53 1.590000 +x_p54 1.620000 +x_p55 1.650000 +x_p56 1.680000 +x_p57 1.710000 +x_p58 1.740000 +x_p59 1.770000 +x_p60 1.800000 +x_p61 1.830000 +x_p62 1.860000 +x_p63 1.890000 +x_p64 1.920000 +x_p65 1.950000 +x_p66 1.980000 +x_p67 2.010000 +x_p68 2.040000 +x_p69 2.070000 +x_p70 2.100000 +x_p71 2.130000 +x_p72 2.160000 +x_p73 2.190000 +x_p74 2.220000 +x_p75 2.250000 +x_p76 2.280000 +x_p77 2.310000 +x_p78 2.340000 +x_p79 2.370000 +x_p80 2.400000 +x_p81 2.430000 +x_p82 2.460000 +x_p83 2.490000 +x_p84 2.520000 +x_p85 2.550000 +x_p86 2.580000 +x_p87 2.610000 +x_p88 2.640000 +x_p89 2.670000 +x_p90 2.700000 +x_p91 2.730000 +x_p92 2.760000 +x_p93 2.790000 +x_p94 2.820000 +x_p95 2.850000 +x_p96 2.880000 +x_p97 2.910000 +x_p98 2.940000 +x_p99 2.970000 +x_p100 3 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 5 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.040000 +x_p02 0.080000 +x_p03 0.120000 +x_p04 0.160000 +x_p05 0.200000 +x_p06 0.240000 +x_p07 0.280000 +x_p08 0.320000 +x_p09 0.360000 +x_p10 0.400000 +x_p11 0.440000 +x_p12 0.480000 +x_p13 0.520000 +x_p14 0.560000 +x_p15 0.600000 +x_p16 0.640000 +x_p17 0.680000 +x_p18 0.720000 +x_p19 0.760000 +x_p20 0.800000 +x_p21 0.840000 +x_p22 0.880000 +x_p23 0.920000 +x_p24 0.960000 +x_p25 1.000000 +x_p26 1.040000 +x_p27 1.080000 +x_p28 1.120000 +x_p29 1.160000 +x_p30 1.200000 +x_p31 1.240000 +x_p32 1.280000 +x_p33 1.320000 +x_p34 1.360000 +x_p35 1.400000 +x_p36 1.440000 +x_p37 1.480000 +x_p38 1.520000 +x_p39 1.560000 +x_p40 1.600000 +x_p41 1.640000 +x_p42 1.680000 +x_p43 1.720000 +x_p44 1.760000 +x_p45 1.800000 +x_p46 1.840000 +x_p47 1.880000 +x_p48 1.920000 +x_p49 1.960000 +x_p50 2.000000 +x_p51 2.040000 +x_p52 2.080000 +x_p53 2.120000 +x_p54 2.160000 +x_p55 2.200000 +x_p56 2.240000 +x_p57 2.280000 +x_p58 2.320000 +x_p59 2.360000 +x_p60 2.400000 +x_p61 2.440000 +x_p62 2.480000 +x_p63 2.520000 +x_p64 2.560000 +x_p65 2.600000 +x_p66 2.640000 +x_p67 2.680000 +x_p68 2.720000 +x_p69 2.760000 +x_p70 2.800000 +x_p71 2.840000 +x_p72 2.880000 +x_p73 2.920000 +x_p74 2.960000 +x_p75 3.000000 +x_p76 3.040000 +x_p77 3.080000 +x_p78 3.120000 +x_p79 3.160000 +x_p80 3.200000 +x_p81 3.240000 +x_p82 3.280000 +x_p83 3.320000 +x_p84 3.360000 +x_p85 3.400000 +x_p86 3.440000 +x_p87 3.480000 +x_p88 3.520000 +x_p89 3.560000 +x_p90 3.600000 +x_p91 3.640000 +x_p92 3.680000 +x_p93 3.720000 +x_p94 3.760000 +x_p95 3.800000 +x_p96 3.840000 +x_p97 3.880000 +x_p98 3.920000 +x_p99 3.960000 +x_p100 4 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 6 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.050000 +x_p02 0.100000 +x_p03 0.150000 +x_p04 0.200000 +x_p05 0.250000 +x_p06 0.300000 +x_p07 0.350000 +x_p08 0.400000 +x_p09 0.450000 +x_p10 0.500000 +x_p11 0.550000 +x_p12 0.600000 +x_p13 0.650000 +x_p14 0.700000 +x_p15 0.750000 +x_p16 0.800000 +x_p17 0.850000 +x_p18 0.900000 +x_p19 0.950000 +x_p20 1.000000 +x_p21 1.050000 +x_p22 1.100000 +x_p23 1.150000 +x_p24 1.200000 +x_p25 1.250000 +x_p26 1.300000 +x_p27 1.350000 +x_p28 1.400000 +x_p29 1.450000 +x_p30 1.500000 +x_p31 1.550000 +x_p32 1.600000 +x_p33 1.650000 +x_p34 1.700000 +x_p35 1.750000 +x_p36 1.800000 +x_p37 1.850000 +x_p38 1.900000 +x_p39 1.950000 +x_p40 2.000000 +x_p41 2.050000 +x_p42 2.100000 +x_p43 2.150000 +x_p44 2.200000 +x_p45 2.250000 +x_p46 2.300000 +x_p47 2.350000 +x_p48 2.400000 +x_p49 2.450000 +x_p50 2.500000 +x_p51 2.550000 +x_p52 2.600000 +x_p53 2.650000 +x_p54 2.700000 +x_p55 2.750000 +x_p56 2.800000 +x_p57 2.850000 +x_p58 2.900000 +x_p59 2.950000 +x_p60 3.000000 +x_p61 3.050000 +x_p62 3.100000 +x_p63 3.150000 +x_p64 3.200000 +x_p65 3.250000 +x_p66 3.300000 +x_p67 3.350000 +x_p68 3.400000 +x_p69 3.450000 +x_p70 3.500000 +x_p71 3.550000 +x_p72 3.600000 +x_p73 3.650000 +x_p74 3.700000 +x_p75 3.750000 +x_p76 3.800000 +x_p77 3.850000 +x_p78 3.900000 +x_p79 3.950000 +x_p80 4.000000 +x_p81 4.050000 +x_p82 4.100000 +x_p83 4.150000 +x_p84 4.200000 +x_p85 4.250000 +x_p86 4.300000 +x_p87 4.350000 +x_p88 4.400000 +x_p89 4.450000 +x_p90 4.500000 +x_p91 4.550000 +x_p92 4.600000 +x_p93 4.650000 +x_p94 4.700000 +x_p95 4.750000 +x_p96 4.800000 +x_p97 4.850000 +x_p98 4.900000 +x_p99 4.950000 +x_p100 5 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 7 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.060000 +x_p02 0.120000 +x_p03 0.180000 +x_p04 0.240000 +x_p05 0.300000 +x_p06 0.360000 +x_p07 0.420000 +x_p08 0.480000 +x_p09 0.540000 +x_p10 0.600000 +x_p11 0.660000 +x_p12 0.720000 +x_p13 0.780000 +x_p14 0.840000 +x_p15 0.900000 +x_p16 0.960000 +x_p17 1.020000 +x_p18 1.080000 +x_p19 1.140000 +x_p20 1.200000 +x_p21 1.260000 +x_p22 1.320000 +x_p23 1.380000 +x_p24 1.440000 +x_p25 1.500000 +x_p26 1.560000 +x_p27 1.620000 +x_p28 1.680000 +x_p29 1.740000 +x_p30 1.800000 +x_p31 1.860000 +x_p32 1.920000 +x_p33 1.980000 +x_p34 2.040000 +x_p35 2.100000 +x_p36 2.160000 +x_p37 2.220000 +x_p38 2.280000 +x_p39 2.340000 +x_p40 2.400000 +x_p41 2.460000 +x_p42 2.520000 +x_p43 2.580000 +x_p44 2.640000 +x_p45 2.700000 +x_p46 2.760000 +x_p47 2.820000 +x_p48 2.880000 +x_p49 2.940000 +x_p50 3.000000 +x_p51 3.060000 +x_p52 3.120000 +x_p53 3.180000 +x_p54 3.240000 +x_p55 3.300000 +x_p56 3.360000 +x_p57 3.420000 +x_p58 3.480000 +x_p59 3.540000 +x_p60 3.600000 +x_p61 3.660000 +x_p62 3.720000 +x_p63 3.780000 +x_p64 3.840000 +x_p65 3.900000 +x_p66 3.960000 +x_p67 4.020000 +x_p68 4.080000 +x_p69 4.140000 +x_p70 4.200000 +x_p71 4.260000 +x_p72 4.320000 +x_p73 4.380000 +x_p74 4.440000 +x_p75 4.500000 +x_p76 4.560000 +x_p77 4.620000 +x_p78 4.680000 +x_p79 4.740000 +x_p80 4.800000 +x_p81 4.860000 +x_p82 4.920000 +x_p83 4.980000 +x_p84 5.040000 +x_p85 5.100000 +x_p86 5.160000 +x_p87 5.220000 +x_p88 5.280000 +x_p89 5.340000 +x_p90 5.400000 +x_p91 5.460000 +x_p92 5.520000 +x_p93 5.580000 +x_p94 5.640000 +x_p95 5.700000 +x_p96 5.760000 +x_p97 5.820000 +x_p98 5.880000 +x_p99 5.940000 +x_p100 6 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 8 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.070000 +x_p02 0.140000 +x_p03 0.210000 +x_p04 0.280000 +x_p05 0.350000 +x_p06 0.420000 +x_p07 0.490000 +x_p08 0.560000 +x_p09 0.630000 +x_p10 0.700000 +x_p11 0.770000 +x_p12 0.840000 +x_p13 0.910000 +x_p14 0.980000 +x_p15 1.050000 +x_p16 1.120000 +x_p17 1.190000 +x_p18 1.260000 +x_p19 1.330000 +x_p20 1.400000 +x_p21 1.470000 +x_p22 1.540000 +x_p23 1.610000 +x_p24 1.680000 +x_p25 1.750000 +x_p26 1.820000 +x_p27 1.890000 +x_p28 1.960000 +x_p29 2.030000 +x_p30 2.100000 +x_p31 2.170000 +x_p32 2.240000 +x_p33 2.310000 +x_p34 2.380000 +x_p35 2.450000 +x_p36 2.520000 +x_p37 2.590000 +x_p38 2.660000 +x_p39 2.730000 +x_p40 2.800000 +x_p41 2.870000 +x_p42 2.940000 +x_p43 3.010000 +x_p44 3.080000 +x_p45 3.150000 +x_p46 3.220000 +x_p47 3.290000 +x_p48 3.360000 +x_p49 3.430000 +x_p50 3.500000 +x_p51 3.570000 +x_p52 3.640000 +x_p53 3.710000 +x_p54 3.780000 +x_p55 3.850000 +x_p56 3.920000 +x_p57 3.990000 +x_p58 4.060000 +x_p59 4.130000 +x_p60 4.200000 +x_p61 4.270000 +x_p62 4.340000 +x_p63 4.410000 +x_p64 4.480000 +x_p65 4.550000 +x_p66 4.620000 +x_p67 4.690000 +x_p68 4.760000 +x_p69 4.830000 +x_p70 4.900000 +x_p71 4.970000 +x_p72 5.040000 +x_p73 5.110000 +x_p74 5.180000 +x_p75 5.250000 +x_p76 5.320000 +x_p77 5.390000 +x_p78 5.460000 +x_p79 5.530000 +x_p80 5.600000 +x_p81 5.670000 +x_p82 5.740000 +x_p83 5.810000 +x_p84 5.880000 +x_p85 5.950000 +x_p86 6.020000 +x_p87 6.090000 +x_p88 6.160000 +x_p89 6.230000 +x_p90 6.300000 +x_p91 6.370000 +x_p92 6.440000 +x_p93 6.510000 +x_p94 6.580000 +x_p95 6.650000 +x_p96 6.720000 +x_p97 6.790000 +x_p98 6.860000 +x_p99 6.930000 +x_p100 7 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 9 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.080000 +x_p02 0.160000 +x_p03 0.240000 +x_p04 0.320000 +x_p05 0.400000 +x_p06 0.480000 +x_p07 0.560000 +x_p08 0.640000 +x_p09 0.720000 +x_p10 0.800000 +x_p11 0.880000 +x_p12 0.960000 +x_p13 1.040000 +x_p14 1.120000 +x_p15 1.200000 +x_p16 1.280000 +x_p17 1.360000 +x_p18 1.440000 +x_p19 1.520000 +x_p20 1.600000 +x_p21 1.680000 +x_p22 1.760000 +x_p23 1.840000 +x_p24 1.920000 +x_p25 2.000000 +x_p26 2.080000 +x_p27 2.160000 +x_p28 2.240000 +x_p29 2.320000 +x_p30 2.400000 +x_p31 2.480000 +x_p32 2.560000 +x_p33 2.640000 +x_p34 2.720000 +x_p35 2.800000 +x_p36 2.880000 +x_p37 2.960000 +x_p38 3.040000 +x_p39 3.120000 +x_p40 3.200000 +x_p41 3.280000 +x_p42 3.360000 +x_p43 3.440000 +x_p44 3.520000 +x_p45 3.600000 +x_p46 3.680000 +x_p47 3.760000 +x_p48 3.840000 +x_p49 3.920000 +x_p50 4.000000 +x_p51 4.080000 +x_p52 4.160000 +x_p53 4.240000 +x_p54 4.320000 +x_p55 4.400000 +x_p56 4.480000 +x_p57 4.560000 +x_p58 4.640000 +x_p59 4.720000 +x_p60 4.800000 +x_p61 4.880000 +x_p62 4.960000 +x_p63 5.040000 +x_p64 5.120000 +x_p65 5.200000 +x_p66 5.280000 +x_p67 5.360000 +x_p68 5.440000 +x_p69 5.520000 +x_p70 5.600000 +x_p71 5.680000 +x_p72 5.760000 +x_p73 5.840000 +x_p74 5.920000 +x_p75 6.000000 +x_p76 6.080000 +x_p77 6.160000 +x_p78 6.240000 +x_p79 6.320000 +x_p80 6.400000 +x_p81 6.480000 +x_p82 6.560000 +x_p83 6.640000 +x_p84 6.720000 +x_p85 6.800000 +x_p86 6.880000 +x_p87 6.960000 +x_p88 7.040000 +x_p89 7.120000 +x_p90 7.200000 +x_p91 7.280000 +x_p92 7.360000 +x_p93 7.440000 +x_p94 7.520000 +x_p95 7.600000 +x_p96 7.680000 +x_p97 7.760000 +x_p98 7.840000 +x_p99 7.920000 +x_p100 8 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 10 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.090000 +x_p02 0.180000 +x_p03 0.270000 +x_p04 0.360000 +x_p05 0.450000 +x_p06 0.540000 +x_p07 0.630000 +x_p08 0.720000 +x_p09 0.810000 +x_p10 0.900000 +x_p11 0.990000 +x_p12 1.080000 +x_p13 1.170000 +x_p14 1.260000 +x_p15 1.350000 +x_p16 1.440000 +x_p17 1.530000 +x_p18 1.620000 +x_p19 1.710000 +x_p20 1.800000 +x_p21 1.890000 +x_p22 1.980000 +x_p23 2.070000 +x_p24 2.160000 +x_p25 2.250000 +x_p26 2.340000 +x_p27 2.430000 +x_p28 2.520000 +x_p29 2.610000 +x_p30 2.700000 +x_p31 2.790000 +x_p32 2.880000 +x_p33 2.970000 +x_p34 3.060000 +x_p35 3.150000 +x_p36 3.240000 +x_p37 3.330000 +x_p38 3.420000 +x_p39 3.510000 +x_p40 3.600000 +x_p41 3.690000 +x_p42 3.780000 +x_p43 3.870000 +x_p44 3.960000 +x_p45 4.050000 +x_p46 4.140000 +x_p47 4.230000 +x_p48 4.320000 +x_p49 4.410000 +x_p50 4.500000 +x_p51 4.590000 +x_p52 4.680000 +x_p53 4.770000 +x_p54 4.860000 +x_p55 4.950000 +x_p56 5.040000 +x_p57 5.130000 +x_p58 5.220000 +x_p59 5.310000 +x_p60 5.400000 +x_p61 5.490000 +x_p62 5.580000 +x_p63 5.670000 +x_p64 5.760000 +x_p65 5.850000 +x_p66 5.940000 +x_p67 6.030000 +x_p68 6.120000 +x_p69 6.210000 +x_p70 6.300000 +x_p71 6.390000 +x_p72 6.480000 +x_p73 6.570000 +x_p74 6.660000 +x_p75 6.750000 +x_p76 6.840000 +x_p77 6.930000 +x_p78 7.020000 +x_p79 7.110000 +x_p80 7.200000 +x_p81 7.290000 +x_p82 7.380000 +x_p83 7.470000 +x_p84 7.560000 +x_p85 7.650000 +x_p86 7.740000 +x_p87 7.830000 +x_p88 7.920000 +x_p89 8.010000 +x_p90 8.100000 +x_p91 8.190000 +x_p92 8.280000 +x_p93 8.370000 +x_p94 8.460000 +x_p95 8.550000 +x_p96 8.640000 +x_p97 8.730000 +x_p98 8.820000 +x_p99 8.910000 +x_p100 9 + +mlr --from ./reg_test/input/x0to10.dat --oxtab head -n 11 then stats1 -i -f x -a p00,p01,p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90,p91,p92,p93,p94,p95,p96,p97,p98,p99,p100 +x_p00 0.000000 +x_p01 0.100000 +x_p02 0.200000 +x_p03 0.300000 +x_p04 0.400000 +x_p05 0.500000 +x_p06 0.600000 +x_p07 0.700000 +x_p08 0.800000 +x_p09 0.900000 +x_p10 1.000000 +x_p11 1.100000 +x_p12 1.200000 +x_p13 1.300000 +x_p14 1.400000 +x_p15 1.500000 +x_p16 1.600000 +x_p17 1.700000 +x_p18 1.800000 +x_p19 1.900000 +x_p20 2.000000 +x_p21 2.100000 +x_p22 2.200000 +x_p23 2.300000 +x_p24 2.400000 +x_p25 2.500000 +x_p26 2.600000 +x_p27 2.700000 +x_p28 2.800000 +x_p29 2.900000 +x_p30 3.000000 +x_p31 3.100000 +x_p32 3.200000 +x_p33 3.300000 +x_p34 3.400000 +x_p35 3.500000 +x_p36 3.600000 +x_p37 3.700000 +x_p38 3.800000 +x_p39 3.900000 +x_p40 4.000000 +x_p41 4.100000 +x_p42 4.200000 +x_p43 4.300000 +x_p44 4.400000 +x_p45 4.500000 +x_p46 4.600000 +x_p47 4.700000 +x_p48 4.800000 +x_p49 4.900000 +x_p50 5.000000 +x_p51 5.100000 +x_p52 5.200000 +x_p53 5.300000 +x_p54 5.400000 +x_p55 5.500000 +x_p56 5.600000 +x_p57 5.700000 +x_p58 5.800000 +x_p59 5.900000 +x_p60 6.000000 +x_p61 6.100000 +x_p62 6.200000 +x_p63 6.300000 +x_p64 6.400000 +x_p65 6.500000 +x_p66 6.600000 +x_p67 6.700000 +x_p68 6.800000 +x_p69 6.900000 +x_p70 7.000000 +x_p71 7.100000 +x_p72 7.200000 +x_p73 7.300000 +x_p74 7.400000 +x_p75 7.500000 +x_p76 7.600000 +x_p77 7.700000 +x_p78 7.800000 +x_p79 7.900000 +x_p80 8.000000 +x_p81 8.100000 +x_p82 8.200000 +x_p83 8.300000 +x_p84 8.400000 +x_p85 8.500000 +x_p86 8.600000 +x_p87 8.700000 +x_p88 8.800000 +x_p89 8.900000 +x_p90 9.000000 +x_p91 9.100000 +x_p92 9.200000 +x_p93 9.300000 +x_p94 9.400000 +x_p95 9.500000 +x_p96 9.600000 +x_p97 9.700000 +x_p98 9.800000 +x_p99 9.900000 +x_p100 10 + + +================================================================ +DSL OPERATOR ASSOCIATIVITY + +mlr put -v $x = 1 || 2 || 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 || 2 || 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ^^ 2 ^^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^^", type=OPERATOR: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^^", type=OPERATOR: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ^^ 2 ^^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="^^", type=OPERATOR: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="^^", type=OPERATOR: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 && 2 && 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 && 2 && 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 == 2 == 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="==", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="==", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 == 2 == 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="==", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="==", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 != 2 != 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="!=", type=OPERATOR: + text="!=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="!=", type=OPERATOR: + text="!=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 != 2 != 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="!=", type=OPERATOR: + text="!=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="!=", type=OPERATOR: + text="!=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 =~ 2 =~ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="=~", type=OPERATOR: + text="=~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="=~", type=OPERATOR: + text="=~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 =~ 2 =~ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="=~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="=~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 !=~ 2 !=~ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="!=~", type=OPERATOR: + text="!=~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="!=~", type=OPERATOR: + text="!=~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 !=~ 2 !=~ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="!=~", type=OPERATOR: + text="!=~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="!=~", type=OPERATOR: + text="!=~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 == 2 != 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="!=", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="!=", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 == 2 != 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="!=", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="!=", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 != 2 == 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="==", type=OPERATOR: + text="!=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="==", type=OPERATOR: + text="!=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 != 2 == 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="==", type=OPERATOR: + text="!=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="==", type=OPERATOR: + text="!=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 < 2 < 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<", type=OPERATOR: + text="<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<", type=OPERATOR: + text="<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 < 2 < 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="<", type=OPERATOR: + text="<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="<", type=OPERATOR: + text="<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 <= 2 <= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<=", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<=", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 <= 2 <= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="<=", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="<=", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 > 2 > 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=">", type=OPERATOR: + text=">", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=">", type=OPERATOR: + text=">", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 > 2 > 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text=">", type=OPERATOR: + text=">", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text=">", type=OPERATOR: + text=">", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 >= 2 >= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=">=", type=OPERATOR: + text=">=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=">=", type=OPERATOR: + text=">=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 >= 2 >= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text=">=", type=OPERATOR: + text=">=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text=">=", type=OPERATOR: + text=">=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 < 2 <= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<=", type=OPERATOR: + text="<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<=", type=OPERATOR: + text="<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 < 2 <= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="<=", type=OPERATOR: + text="<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="<=", type=OPERATOR: + text="<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 <= 2 < 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 <= 2 < 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="<", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="<", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 | 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 | 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ^ 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ^ 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="^", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="^", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 & 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 & 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 | 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 | 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 | 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 | 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ^ 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ^ 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ^ 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ^ 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 & 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 & 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 & 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 & 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="^", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="^", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 << 2 << 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<<", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<<", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 << 2 << 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="<<", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="<<", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 >> 2 >> 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=">>", type=OPERATOR: + text=">>", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=">>", type=OPERATOR: + text=">>", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 >> 2 >> 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text=">>", type=OPERATOR: + text=">>", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text=">>", type=OPERATOR: + text=">>", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 << 2 >> 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=">>", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=">>", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 << 2 >> 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text=">>", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text=">>", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 >> 2 << 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<<", type=OPERATOR: + text=">>", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<<", type=OPERATOR: + text=">>", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 >> 2 << 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="<<", type=OPERATOR: + text=">>", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="<<", type=OPERATOR: + text=">>", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 + 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 + 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 - 2 - 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="-", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="-", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 - 2 - 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="-", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="-", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 + 2 - 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="-", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="-", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 + 2 - 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="-", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="-", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 - 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 - 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 . 2 . 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 . 2 . 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 / 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 / 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="/", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="/", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 // 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 // 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="//", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="//", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 % 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 % 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="%", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="%", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="/", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="/", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="//", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="//", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="%", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="%", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 / 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 / 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 / 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 / 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="//", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="//", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 / 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 / 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="%", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="%", type=OPERATOR: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 / 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 / 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="/", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 // 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 // 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 // 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 // 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="/", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="/", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 // 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 // 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="%", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="%", type=OPERATOR: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 // 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 // 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="//", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 % 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 % 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 % 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 % 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="/", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="/", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 % 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 % 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="//", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="//", type=OPERATOR: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 % 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 % 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="%", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="/", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** 2 / 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="/", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="/", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="//", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** 2 // 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="//", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="//", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="%", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** 2 % 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="%", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="%", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = ++1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + + +mlr filter -v ++1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $x = --1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="-", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="-", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + + +mlr filter -v --1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="-", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="-", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $x = !!1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="!", type=OPERATOR: + text="!", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="!", type=OPERATOR: + text="!", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + + +mlr filter -v !!1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="!", type=OPERATOR: + text="!", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="!", type=OPERATOR: + text="!", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $x = ~~1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="~", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="~", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + + +mlr filter -v ~~1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="~", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="~", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ? 2 : 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ? 2 : 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ? 2 ? 3 : 4 : 5 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="? :", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="5", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="? :", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="5", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ? 2 ? 3 : 4 : 5 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="? :", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="5", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="? :", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="5", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ? 2 : 3 ? 4 : 5 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="? :", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="5", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="? :", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="5", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ? 2 : 3 ? 4 : 5 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="? :", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="5", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="? :", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="? :", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="5", type=NUMERIC_LITERAL. + + + +================================================================ +DSL OPERATOR PRECEDENCE + +mlr put -v $x = 1 || 2 ^^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 || 2 ^^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 || 2 && 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 || 2 && 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ^^ 2 || 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ^^ 2 || 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ^^ 2 && 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ^^ 2 && 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="^^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 && 2 || 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 && 2 || 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 && 2 ^^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^^", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^^", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 && 2 ^^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="^^", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="^^", type=OPERATOR: + text="&&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 == 2 <= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="<=", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="<=", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 == 2 <= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="<=", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="<=", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 <= 2 == 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="==", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="==", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 <= 2 == 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="==", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="==", type=OPERATOR: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 <= 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="|", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="|", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 <= 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="|", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="<=", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="|", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 | 2 <= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<=", type=OPERATOR: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="<=", type=OPERATOR: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 | 2 <= 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="<=", type=OPERATOR: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="<=", type=OPERATOR: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 | 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 | 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="^", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ^ 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ^ 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ^ 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ^ 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="^", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 & 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="^", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 & 2 ^ 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="^", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="^", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 & 2 << 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="<<", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="<<", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 & 2 << 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="<<", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="<<", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 << 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 << 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&", type=OPERATOR: + text="<<", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 + 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 + 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 + (2 * 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 + (2 * 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * (2 + 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * (2 + 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = (1 + 2) * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v (1 + 2) * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = (1 * 2) + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v (1 * 2) + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 + 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 + 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 + (2 ** 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 + (2 ** 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** (2 + 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** (2 + 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = (1 + 2) ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v (1 + 2) ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="**", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="**", type=OPERATOR: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = (1 ** 2) + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v (1 ** 2) + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * 2 ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * (2 ** 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * (2 ** 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="**", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 ** (2 * 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 ** (2 * 3) /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = (1 * 2) ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="**", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v (1 * 2) ** 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="**", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="**", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = (1 ** 2) * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v (1 ** 2) * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="*", type=OPERATOR: + text="**", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = -1 + 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v -1 + 2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = -1 * 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v -1 * 2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="-", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 + -2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="-", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="-", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 + -2 * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="-", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="-", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * -2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * -2 + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 + 2 * -3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 + 2 * -3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="*", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 * 2 + -3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 * 2 + -3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="+", type=OPERATOR: + text="*", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="-", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = ~1 | 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v ~1 | 2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = ~1 & 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v ~1 & 2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="~", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 | ~2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="~", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="~", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 | ~2 & 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="~", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="~", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 & ~2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 & ~2 | 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 | 2 & ~3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 | 2 & ~3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="&", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = 1 & 2 | ~3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1 & 2 | ~3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="|", type=OPERATOR: + text="&", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="~", type=OPERATOR: + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = $a==1 && $b == 1 && $c == 1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + + +mlr filter -v $a==1 && $b == 1 && $c == 1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $x = $a==1 || $b == 1 && $c == 1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + + +mlr filter -v $a==1 || $b == 1 && $c == 1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $x = $a==1 || $b == 1 || $c == 1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + + +mlr filter -v $a==1 || $b == 1 || $c == 1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $x = $a==1 && $b == 1 || $c == 1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="||", type=OPERATOR: + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + + +mlr filter -v $a==1 && $b == 1 || $c == 1 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="&&", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $x = $a==1 ? $b == 2 : $c == 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v $a==1 ? $b == 2 : $c == 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="? :", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="? :", type=OPERATOR: + text="==", type=OPERATOR: + text="a", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="b", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="==", type=OPERATOR: + text="c", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $x = true /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="true", type=BOOLEAN_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="true", type=BOOLEAN_LITERAL. + + +mlr filter -v true /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="true", type=BOOLEAN_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="true", type=BOOLEAN_LITERAL. + + +mlr put -v true || 1==0; $x = 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v true || 1==0 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="0", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="0", type=NUMERIC_LITERAL. + + +mlr put -v 1==0 || false; $x = 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="false", type=BOOLEAN_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="false", type=BOOLEAN_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v 1==0 || false /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="false", type=BOOLEAN_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="false", type=BOOLEAN_LITERAL. + + +mlr put -v true && false; $x = 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&&", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="false", type=BOOLEAN_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&&", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="false", type=BOOLEAN_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v true && false /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&&", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="false", type=BOOLEAN_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&&", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="false", type=BOOLEAN_LITERAL. + + +mlr put -v true && false && true; $x = 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="false", type=BOOLEAN_LITERAL. + text="true", type=BOOLEAN_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="false", type=BOOLEAN_LITERAL. + text="true", type=BOOLEAN_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + + +mlr filter -v true && false && true /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="false", type=BOOLEAN_LITERAL. + text="true", type=BOOLEAN_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="&&", type=OPERATOR: + text="&&", type=OPERATOR: + text="true", type=BOOLEAN_LITERAL. + text="false", type=BOOLEAN_LITERAL. + text="true", type=BOOLEAN_LITERAL. + + +mlr put -v $y += $x + 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="+", type=OPERATOR: + text="y", type=FIELD_NAME. + text="+", type=OPERATOR: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="+", type=OPERATOR: + text="y", type=FIELD_NAME. + text="+", type=OPERATOR: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $y += $x * 3 /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="+", type=OPERATOR: + text="y", type=FIELD_NAME. + text="*", type=OPERATOR: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="+", type=OPERATOR: + text="y", type=FIELD_NAME. + text="*", type=OPERATOR: + text="x", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + + +mlr put -v $y ||= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="||", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="||", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y ^^= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="^^", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="^^", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y &&= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="&&", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="&&", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y |= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="|", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="|", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y ^= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="^", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="^", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y &= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="&", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="&", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y <<= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="<<", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="<<", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y >>= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text=">>", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text=">>", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y += $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="+", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="+", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y -= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="-", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="-", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y .= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text=".", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text=".", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y *= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="*", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="*", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y /= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="/", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="/", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y //= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="//", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="//", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y %= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="%", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="%", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + +mlr put -v $y **= $x /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="**", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="**", type=OPERATOR: + text="y", type=FIELD_NAME. + text="x", type=FIELD_NAME. + + + +================================================================ +DSL COMMENTS + +mlr --from ./reg_test/input/abixy put + $s = 1; + #$t = 2; + $u = 3; + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,s=1,u=3 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,s=1,u=3 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,s=1,u=3 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,s=1,u=3 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,s=1,u=3 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,s=1,u=3 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,s=1,u=3 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,s=1,u=3 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,s=1,u=3 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,s=1,u=3 + +mlr --from ./reg_test/input/abixy filter + NR == 1 || + #NR == 2 || + NR == 3 + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 + +mlr --from ./reg_test/input/abixy put + $s = "here is a pound#sign"; # but this is a comment + #$t = 2; + $u = 3; + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,s=here is a pound#sign,u=3 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,s=here is a pound#sign,u=3 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,s=here is a pound#sign,u=3 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,s=here is a pound#sign,u=3 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,s=here is a pound#sign,u=3 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,s=here is a pound#sign,u=3 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,s=here is a pound#sign,u=3 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,s=here is a pound#sign,u=3 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,s=here is a pound#sign,u=3 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,s=here is a pound#sign,u=3 + + +================================================================ +DSL EMPTY STATEMENTS + +mlr -n put -v +RAW AST: + +AST ROOT: +(null) + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n filter -v +mlr: filter statement must not be empty. +RAW AST: + +AST ROOT: +(null) + +mlr -n put -v begin {} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v begin {;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v begin {;;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v begin {;;;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v begin {@x=1} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v begin {@x=1;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v begin {;@x=1} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v begin {@x=1;@y=2} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v begin {@x=1;;@y=2} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v true {} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + + +mlr -n put -v true {;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + + +mlr -n put -v true {;;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + + +mlr -n put -v true {;;;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + + +mlr -n put -v true {@x=1} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr -n put -v true {@x=1;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr -n put -v true {;@x=1} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr -n put -v true {@x=1;@y=2} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + + +mlr -n put -v true {@x=1;;@y=2} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + + +mlr -n put -v end {} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v end {;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v end {;;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v end {;;;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v end {@x=1} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v end {@x=1;} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v end {;@x=1} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v end {@x=1;@y=2} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr -n put -v end {@x=1;;@y=2} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="y", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + + +================================================================ +DSL CONTEXT-SPECIFIC VALIDATION + + +---------------------------------------------------------------- non-top-level begin/end +mlr put -v begin{begin{@x=1}} +mlr: begin statements are only valid at top level. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +mlr put -v true{begin{@x=1}} +mlr: begin statements are only valid at top level. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=3 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +mlr put -v end{end{@x=1}} +mlr: end statements are only valid at top level. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +mlr put -v true{end{@x=1}} +mlr: end statements are only valid at top level. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=3 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +---------------------------------------------------------------- srecs in begin/end +mlr put -v begin{$x=1} +mlr: assignments to $-variables are not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +mlr put -v begin{@x=$y} +mlr: statements involving $-variables are not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="y", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="y", type=FIELD_NAME. + +mlr put -v end{$x=1} +mlr: assignments to $-variables are not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +mlr put -v end{@x=$y} +mlr: statements involving $-variables are not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="y", type=FIELD_NAME. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="y", type=FIELD_NAME. + +mlr put -v begin{@v=$*} +mlr: assignments from $-variables are not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="$*", type=FULL_SREC. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="$*", type=FULL_SREC. + +mlr put -v end{$*=@v} +mlr: assignments to $-variables are not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +mlr put -v begin{unset $x} +mlr: unset of $-variables is not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="x", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="x", type=FIELD_NAME. + +mlr put -v end{unset $x} +mlr: unset of $-variables is not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="x", type=FIELD_NAME. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="x", type=FIELD_NAME. + +mlr put -v begin{unset $*} +mlr: unset of $-variables is not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="$*", type=FULL_SREC. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="$*", type=FULL_SREC. + +mlr put -v end{unset $*} +mlr: unset of $-variables is not valid within begin or end blocks. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="$*", type=FULL_SREC. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="$*", type=FULL_SREC. + + +---------------------------------------------------------------- break/continue outside loop +mlr put -v break +mlr: break statements are only valid within for, while, or do-while. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="break", type=BREAK. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="break", type=BREAK. + +mlr put -v continue +mlr: break statements are only valid within for, while, or do-while. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="continue", type=CONTINUE. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="continue", type=CONTINUE. + + +---------------------------------------------------------------- oosvars etc. in mlr filter +mlr filter -v break +mlr: filter expressions must end in a final boolean statement. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="break", type=BREAK. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="break", type=BREAK. + +mlr filter -v continue +mlr: filter expressions must end in a final boolean statement. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="continue", type=CONTINUE. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="continue", type=CONTINUE. + + +---------------------------------------------------------------- expanded filter +mlr --from ./reg_test/input/abixy filter + begin { + @avoid = 3 + } + NR != @avoid + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy filter -x + begin { + @avoid = 3 + } + NR != @avoid + +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 + +mlr --from ./reg_test/input/abixy filter + func f(n) { + return n - 1 + } + f(NR) == 5 + +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 + +mlr --from ./reg_test/input/abixy filter + subr s(n) { + print "NR is ".n + } + call s(NR); + false + +NR is 1 +NR is 2 +NR is 3 +NR is 4 +NR is 5 +NR is 6 +NR is 7 +NR is 8 +NR is 9 +NR is 10 + +mlr --from ./reg_test/input/abixy filter + int a = 5; + int b = 7; + a <= NR && NR <= b + +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 + +mlr --from ./reg_test/input/abixy filter filter false +mlr filter: expressions must not also contain the "filter" keyword. + +mlr --from ./reg_test/input/abixy filter filter false; true +mlr filter: expressions must not also contain the "filter" keyword. + + +================================================================ +DSL FUNCTIONAL TESTS + +mlr filter $x>.3 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr filter $x>.3; ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr filter $x>0.3 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr filter $x>0.3 && $y>0.3 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr filter $x>0.3 || $y>0.3 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr filter NR>=4 && NR <= 7 ./reg_test/input/abixy +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 + +mlr filter -x $x>.3 ./reg_test/input/abixy +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr filter -x $x>0.3 ./reg_test/input/abixy +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr filter -x $x>0.3 && $y>0.3 ./reg_test/input/abixy +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +mlr filter -x $x>0.3 || $y>0.3 ./reg_test/input/abixy + +mlr filter -x NR>=4 && NR <= 7 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr filter $nosuchfield>.3 ./reg_test/input/abixy + +mlr put $x2 = $x**2 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x2=0.120263 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x2=0.575595 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,x2=0.041863 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x2=0.145465 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,x2=0.328660 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x2=0.277862 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,x2=0.374280 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,x2=0.358267 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,x2=0.000989 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x2=0.252633 + +mlr put $x2 = $x**2; ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,x2=0.120263 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,x2=0.575595 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,x2=0.041863 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,x2=0.145465 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,x2=0.328660 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,x2=0.277862 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,x2=0.374280 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,x2=0.358267 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,x2=0.000989 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,x2=0.252633 + +mlr put $z = -0.024*$x+0.13 ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,z=0.121677 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,z=0.111792 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,z=0.125090 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,z=0.120846 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,z=0.116241 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,z=0.117349 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,z=0.115317 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,z=0.115635 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,z=0.129245 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,z=0.117937 + +mlr put $c = $a . $b ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,c=panpan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,c=ekspan +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,c=wyewye +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,c=ekswye +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,c=wyepan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,c=zeepan +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,c=ekszee +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,c=zeewye +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,c=hatwye +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,c=panwye + +mlr put $ii = $i + $i ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,ii=2 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,ii=4 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,ii=6 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,ii=8 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,ii=10 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,ii=12 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,ii=14 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,ii=16 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,ii=18 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,ii=20 + +mlr put $emptytest = $i + $nosuch ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,emptytest=1 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,emptytest=2 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,emptytest=3 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,emptytest=4 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,emptytest=5 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,emptytest=6 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,emptytest=7 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,emptytest=8 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,emptytest=9 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,emptytest=10 + +mlr --opprint put $nr=NR;$fnr=FNR;$nf=NF;$filenum=FILENUM ./reg_test/input/abixy ./reg_test/input/abixy +a b i x y nr fnr nf filenum +pan pan 1 0.3467901443380824 0.7268028627434533 1 1 7 1 +eks pan 2 0.7586799647899636 0.5221511083334797 2 2 7 1 +wye wye 3 0.20460330576630303 0.33831852551664776 3 3 7 1 +eks wye 4 0.38139939387114097 0.13418874328430463 4 4 7 1 +wye pan 5 0.5732889198020006 0.8636244699032729 5 5 7 1 +zee pan 6 0.5271261600918548 0.49322128674835697 6 6 7 1 +eks zee 7 0.6117840605678454 0.1878849191181694 7 7 7 1 +zee wye 8 0.5985540091064224 0.976181385699006 8 8 7 1 +hat wye 9 0.03144187646093577 0.7495507603507059 9 9 7 1 +pan wye 10 0.5026260055412137 0.9526183602969864 10 10 7 1 +pan pan 1 0.3467901443380824 0.7268028627434533 11 1 7 2 +eks pan 2 0.7586799647899636 0.5221511083334797 12 2 7 2 +wye wye 3 0.20460330576630303 0.33831852551664776 13 3 7 2 +eks wye 4 0.38139939387114097 0.13418874328430463 14 4 7 2 +wye pan 5 0.5732889198020006 0.8636244699032729 15 5 7 2 +zee pan 6 0.5271261600918548 0.49322128674835697 16 6 7 2 +eks zee 7 0.6117840605678454 0.1878849191181694 17 7 7 2 +zee wye 8 0.5985540091064224 0.976181385699006 18 8 7 2 +hat wye 9 0.03144187646093577 0.7495507603507059 19 9 7 2 +pan wye 10 0.5026260055412137 0.9526183602969864 20 10 7 2 + +mlr --opprint put $y=madd($x,10,37) then put $z=msub($x,10,37) ./reg_test/input/modarith.dat +x y z +-37 10 27 +-36 11 28 +-35 12 29 +-34 13 30 +-33 14 31 +-32 15 32 +-31 16 33 +-30 17 34 +-29 18 35 +-28 19 36 +-27 20 0 +-26 21 1 +-25 22 2 +-24 23 3 +-23 24 4 +-22 25 5 +-21 26 6 +-20 27 7 +-19 28 8 +-18 29 9 +-17 30 10 +-16 31 11 +-15 32 12 +-14 33 13 +-13 34 14 +-12 35 15 +-11 36 16 +-10 0 17 +-9 1 18 +-8 2 19 +-7 3 20 +-6 4 21 +-5 5 22 +-4 6 23 +-3 7 24 +-2 8 25 +-1 9 26 +0 10 27 +1 11 28 +2 12 29 +3 13 30 +4 14 31 +5 15 32 +6 16 33 +7 17 34 +8 18 35 +9 19 36 +10 20 0 +11 21 1 +12 22 2 +13 23 3 +14 24 4 +15 25 5 +16 26 6 +17 27 7 +18 28 8 +19 29 9 +20 30 10 +21 31 11 +22 32 12 +23 33 13 +24 34 14 +25 35 15 +26 36 16 +27 0 17 +28 1 18 +29 2 19 +30 3 20 +31 4 21 +32 5 22 +33 6 23 +34 7 24 +35 8 25 +36 9 26 +37 10 27 +38 11 28 +39 12 29 +40 13 30 +41 14 31 +42 15 32 +43 16 33 +44 17 34 +45 18 35 +46 19 36 +47 20 0 +48 21 1 +49 22 2 +50 23 3 +51 24 4 +52 25 5 +53 26 6 +54 27 7 +55 28 8 +56 29 9 +57 30 10 +58 31 11 +59 32 12 +60 33 13 +61 34 14 +62 35 15 +63 36 16 +64 0 17 +65 1 18 +66 2 19 +67 3 20 +68 4 21 +69 5 22 +70 6 23 +71 7 24 +72 8 25 +73 9 26 + +mlr --opprint put $y=mexp($x,35,37) then put $z=mmul($x,$y,37) ./reg_test/input/modarith.dat +x y z +-37 0 0 +-36 1 1 +-35 19 1 +-34 25 1 +-33 28 1 +-32 15 1 +-31 31 1 +-30 16 1 +-29 14 1 +-28 33 1 +-27 26 1 +-26 27 1 +-25 34 1 +-24 20 1 +-23 8 1 +-22 5 1 +-21 7 1 +-20 24 1 +-19 35 1 +-18 2 1 +-17 13 1 +-16 30 1 +-15 32 1 +-14 29 1 +-13 17 1 +-12 3 1 +-11 10 1 +-10 11 1 +-9 4 1 +-8 23 1 +-7 21 1 +-6 6 1 +-5 22 1 +-4 9 1 +-3 12 1 +-2 18 1 +-1 36 1 +0 0 0 +1 1 1 +2 19 1 +3 25 1 +4 28 1 +5 15 1 +6 31 1 +7 16 1 +8 14 1 +9 33 1 +10 26 1 +11 27 1 +12 34 1 +13 20 1 +14 8 1 +15 5 1 +16 7 1 +17 24 1 +18 35 1 +19 2 1 +20 13 1 +21 30 1 +22 32 1 +23 29 1 +24 17 1 +25 3 1 +26 10 1 +27 11 1 +28 4 1 +29 23 1 +30 21 1 +31 6 1 +32 22 1 +33 9 1 +34 12 1 +35 18 1 +36 36 1 +37 0 0 +38 1 1 +39 19 1 +40 25 1 +41 28 1 +42 15 1 +43 31 1 +44 16 1 +45 14 1 +46 33 1 +47 26 1 +48 27 1 +49 34 1 +50 20 1 +51 8 1 +52 5 1 +53 7 1 +54 24 1 +55 35 1 +56 2 1 +57 13 1 +58 30 1 +59 32 1 +60 29 1 +61 17 1 +62 3 1 +63 10 1 +64 11 1 +65 4 1 +66 23 1 +67 21 1 +68 6 1 +69 22 1 +70 9 1 +71 12 1 +72 18 1 +73 36 1 + +mlr put $z=min($x, $y) ./reg_test/input/minmax.dkvp +x=1,y=2,z=1 +x=1,y=,z=1 +x=,y=,z= +x=,y=2,z=2 +x=3,y=2,z=2 +x=3,y=,z=3 +x=,y=,z= +x=,y=2,z=2 + +mlr put $z=max($x, $y) ./reg_test/input/minmax.dkvp +x=1,y=2,z=2 +x=1,y=,z=1 +x=,y=,z= +x=,y=2,z=2 +x=3,y=2,z=3 +x=3,y=,z=3 +x=,y=,z= +x=,y=2,z=2 + +mlr put $o=min() +x=1,y=2,z=3,o= + +mlr put $o=max() +x=1,y=2,z=3,o= + +mlr put $o=min($x) +x=1,y=2,z=3,o=1 + +mlr put $o=max($x) +x=1,y=2,z=3,o=1 + +mlr put $o=min($x,$y) +x=1,y=2,z=3,o=1 + +mlr put $o=max($x,$y) +x=1,y=2,z=3,o=2 + +mlr put $o=min($x,$y,$z) +x=1,y=2,z=3,o=1 + +mlr put $o=max($x,$y,$z) +x=1,y=2,z=3,o=3 + +mlr put $u=min($x,$y);$v=max($x,$y) +x=1,y=b,u=1,v=b + +mlr put $u=min($x,$y);$v=max($x,$y) +x=a,y=2,u=2,v=a + +mlr put $u=min($x,$y);$v=max($x,$y) +x=a,y=b,u=a,v=b + +mlr --icsvlite --oxtab put ${x+y} = ${name.x} + ${name.y}; ${x*y} = ${name.x} * ${name.y} ./reg_test/input/braced.csv +name.x 1 +name.y 2 +z 3 +x+y 3 +x*y 2 + +name.x 4 +name.y 6 +z 5 +x+y 10 +x*y 24 + +mlr --icsvlite --oxtab filter ${name.y} < ${z} ./reg_test/input/braced.csv +name.x 1 +name.y 2 +z 3 + +mlr --opprint put $z = $x < 0.5 ? 0 : 1 ./reg_test/input/abixy +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 0 +eks pan 2 0.7586799647899636 0.5221511083334797 1 +wye wye 3 0.20460330576630303 0.33831852551664776 0 +eks wye 4 0.38139939387114097 0.13418874328430463 0 +wye pan 5 0.5732889198020006 0.8636244699032729 1 +zee pan 6 0.5271261600918548 0.49322128674835697 1 +eks zee 7 0.6117840605678454 0.1878849191181694 1 +zee wye 8 0.5985540091064224 0.976181385699006 1 +hat wye 9 0.03144187646093577 0.7495507603507059 0 +pan wye 10 0.5026260055412137 0.9526183602969864 1 + +mlr --csvlite filter true && true ./reg_test/input/b.csv +d,e,f +5,6,7 + +mlr --csvlite filter true && false ./reg_test/input/b.csv + +mlr --csvlite filter false && true ./reg_test/input/b.csv + +mlr --csvlite filter false && false ./reg_test/input/b.csv + +mlr --csvlite filter true || true ./reg_test/input/b.csv +d,e,f +5,6,7 + +mlr --csvlite filter true || false ./reg_test/input/b.csv +d,e,f +5,6,7 + +mlr --csvlite filter false || true ./reg_test/input/b.csv +d,e,f +5,6,7 + +mlr --csvlite filter false || false ./reg_test/input/b.csv + +mlr --csvlite filter true ^^ true ./reg_test/input/b.csv + +mlr --csvlite filter true ^^ false ./reg_test/input/b.csv +d,e,f +5,6,7 + +mlr --csvlite filter false ^^ true ./reg_test/input/b.csv +d,e,f +5,6,7 + +mlr --csvlite filter false ^^ false ./reg_test/input/b.csv + +mlr put $x==2 && $a =~ "....." { $y=4 } ./reg_test/input/short-circuit.dkvp +x=1,a="hello" +x=2,a="there",y=4 +x=3,a="world" + +mlr put $x = ENV["X"]; $y = ENV[$name] ./reg_test/input/env-var.dkvp +name=X,x=97,y=97 +name=Y,x=97,y=98 +x=97,y=6 + +mlr put $x = ENV["X"]; $y = ENV[$name] ./reg_test/input/env-var.dkvp +name=X,x=,y= +name=Y,x=,y= +x=,y=6 + +mlr -n put begin{ENV["HOME"]="foobar"} end{print ENV["HOME"]} +foobar + +mlr put $y = toupper($x) +x=hello,y=HELLO + +mlr put $y = toupper($x) +x=HELLO,y=HELLO + +mlr put $y = toupper($x) +x=,y= + +mlr put $y = toupper($z) +x=hello + +mlr put $y = tolower($x) +x=hello,y=hello + +mlr put $y = tolower($x) +x=HELLO,y=hello + +mlr put $y = tolower($x) +x=,y= + +mlr put $y = tolower($z) +x=hello + +mlr put $y = capitalize($x) +x=hello,y=Hello + +mlr put $y = capitalize($x) +x=HELLO,y=HELLO + +mlr put $y = capitalize($x) +x=,y= + +mlr put $y = capitalize($z) +x=hello + + +---------------------------------------------------------------- LHS value on first record should result in ZYX for process creation +mlr --from ./reg_test/input/abixy put ENV["ZYX"]="CBA".NR; print | ENV["indir"]."/env-assign.sh" , "a is " . $a +[ZYX]=[CBA1] a is pan +[ZYX]=[CBA1] a is eks +[ZYX]=[CBA1] a is wye +[ZYX]=[CBA1] a is eks +[ZYX]=[CBA1] a is wye +[ZYX]=[CBA1] a is zee +[ZYX]=[CBA1] a is eks +[ZYX]=[CBA1] a is zee +[ZYX]=[CBA1] a is hat +[ZYX]=[CBA1] a is pan + + +================================================================ +POSITIONAL INDEXING + +mlr --opprint put $NEW = $[[3]] ./reg_test/input/abixy +a b i x y NEW +pan pan 1 0.3467901443380824 0.7268028627434533 i +eks pan 2 0.7586799647899636 0.5221511083334797 i +wye wye 3 0.20460330576630303 0.33831852551664776 i +eks wye 4 0.38139939387114097 0.13418874328430463 i +wye pan 5 0.5732889198020006 0.8636244699032729 i +zee pan 6 0.5271261600918548 0.49322128674835697 i +eks zee 7 0.6117840605678454 0.1878849191181694 i +zee wye 8 0.5985540091064224 0.976181385699006 i +hat wye 9 0.03144187646093577 0.7495507603507059 i +pan wye 10 0.5026260055412137 0.9526183602969864 i + +mlr --opprint put $NEW = $[[[3]]] ./reg_test/input/abixy +a b i x y NEW +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 2 +wye wye 3 0.20460330576630303 0.33831852551664776 3 +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint put $NEW = $[[11]] ./reg_test/input/abixy +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put $NEW = $[[[11]]] ./reg_test/input/abixy +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put $[[3]] = "NEW" ./reg_test/input/abixy +a b NEW x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put $[[[3]]] = "NEW" ./reg_test/input/abixy +a b i x y +pan pan NEW 0.3467901443380824 0.7268028627434533 +eks pan NEW 0.7586799647899636 0.5221511083334797 +wye wye NEW 0.20460330576630303 0.33831852551664776 +eks wye NEW 0.38139939387114097 0.13418874328430463 +wye pan NEW 0.5732889198020006 0.8636244699032729 +zee pan NEW 0.5271261600918548 0.49322128674835697 +eks zee NEW 0.6117840605678454 0.1878849191181694 +zee wye NEW 0.5985540091064224 0.976181385699006 +hat wye NEW 0.03144187646093577 0.7495507603507059 +pan wye NEW 0.5026260055412137 0.9526183602969864 + +mlr --opprint put $[[11]] = "NEW" ./reg_test/input/abixy +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put $[[[11]]] = "NEW" ./reg_test/input/abixy +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put $[[1]] = $[[2]] ./reg_test/input/abixy +b i x y +pan 1 0.3467901443380824 0.7268028627434533 +eks 2 0.7586799647899636 0.5221511083334797 +wye 3 0.20460330576630303 0.33831852551664776 +eks 4 0.38139939387114097 0.13418874328430463 +wye 5 0.5732889198020006 0.8636244699032729 +zee 6 0.5271261600918548 0.49322128674835697 +eks 7 0.6117840605678454 0.1878849191181694 +zee 8 0.5985540091064224 0.976181385699006 +hat 9 0.03144187646093577 0.7495507603507059 +pan 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put $a = $[[2]]; unset $["a"] ./reg_test/input/abixy +b i x y a +pan 1 0.3467901443380824 0.7268028627434533 b +pan 2 0.7586799647899636 0.5221511083334797 b +wye 3 0.20460330576630303 0.33831852551664776 b +wye 4 0.38139939387114097 0.13418874328430463 b +pan 5 0.5732889198020006 0.8636244699032729 b +pan 6 0.5271261600918548 0.49322128674835697 b +zee 7 0.6117840605678454 0.1878849191181694 b +wye 8 0.5985540091064224 0.976181385699006 b +wye 9 0.03144187646093577 0.7495507603507059 b +wye 10 0.5026260055412137 0.9526183602969864 b + +mlr --opprint put $[[1]] = $b; unset $[[1]] ./reg_test/input/abixy +b i x y +pan 1 0.3467901443380824 0.7268028627434533 +pan 2 0.7586799647899636 0.5221511083334797 +wye 3 0.20460330576630303 0.33831852551664776 +wye 4 0.38139939387114097 0.13418874328430463 +pan 5 0.5732889198020006 0.8636244699032729 +pan 6 0.5271261600918548 0.49322128674835697 +zee 7 0.6117840605678454 0.1878849191181694 +wye 8 0.5985540091064224 0.976181385699006 +wye 9 0.03144187646093577 0.7495507603507059 +wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put $[[1]] = $[[2]]; unset $["a"] ./reg_test/input/abixy +b i x y +pan 1 0.3467901443380824 0.7268028627434533 +eks 2 0.7586799647899636 0.5221511083334797 +wye 3 0.20460330576630303 0.33831852551664776 +eks 4 0.38139939387114097 0.13418874328430463 +wye 5 0.5732889198020006 0.8636244699032729 +zee 6 0.5271261600918548 0.49322128674835697 +eks 7 0.6117840605678454 0.1878849191181694 +zee 8 0.5985540091064224 0.976181385699006 +hat 9 0.03144187646093577 0.7495507603507059 +pan 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put unset $c ./reg_test/input/abixy +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put unset $c; $c="new" ./reg_test/input/abixy +a b i x y c +pan pan 1 0.3467901443380824 0.7268028627434533 new +eks pan 2 0.7586799647899636 0.5221511083334797 new +wye wye 3 0.20460330576630303 0.33831852551664776 new +eks wye 4 0.38139939387114097 0.13418874328430463 new +wye pan 5 0.5732889198020006 0.8636244699032729 new +zee pan 6 0.5271261600918548 0.49322128674835697 new +eks zee 7 0.6117840605678454 0.1878849191181694 new +zee wye 8 0.5985540091064224 0.976181385699006 new +hat wye 9 0.03144187646093577 0.7495507603507059 new +pan wye 10 0.5026260055412137 0.9526183602969864 new + +mlr --opprint put $c=$a.$b; unset $c; $c="new" ./reg_test/input/abixy +a b i x y c +pan pan 1 0.3467901443380824 0.7268028627434533 new +eks pan 2 0.7586799647899636 0.5221511083334797 new +wye wye 3 0.20460330576630303 0.33831852551664776 new +eks wye 4 0.38139939387114097 0.13418874328430463 new +wye pan 5 0.5732889198020006 0.8636244699032729 new +zee pan 6 0.5271261600918548 0.49322128674835697 new +eks zee 7 0.6117840605678454 0.1878849191181694 new +zee wye 8 0.5985540091064224 0.976181385699006 new +hat wye 9 0.03144187646093577 0.7495507603507059 new +pan wye 10 0.5026260055412137 0.9526183602969864 new + +mlr --opprint put $c=$a.$b; unset $c ./reg_test/input/abixy +a b i x y c +pan pan 1 0.3467901443380824 0.7268028627434533 panpan +eks pan 2 0.7586799647899636 0.5221511083334797 ekspan +wye wye 3 0.20460330576630303 0.33831852551664776 wyewye +eks wye 4 0.38139939387114097 0.13418874328430463 ekswye +wye pan 5 0.5732889198020006 0.8636244699032729 wyepan +zee pan 6 0.5271261600918548 0.49322128674835697 zeepan +eks zee 7 0.6117840605678454 0.1878849191181694 ekszee +zee wye 8 0.5985540091064224 0.976181385699006 zeewye +hat wye 9 0.03144187646093577 0.7495507603507059 hatwye +pan wye 10 0.5026260055412137 0.9526183602969864 panwye + + +================================================================ +IS-PREDICATES + +mlr --opprint put $f=is_absent($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_absent($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_absent($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_absent($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_absent(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put @somesuch=1;$f=is_absent(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_bool($x>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_bool($y>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_bool($z>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_bool($nosuch>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_bool(@nosuch>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_bool(@somesuch>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_boolean($x>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_boolean($y>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_boolean($z>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_boolean($nosuch>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_boolean(@nosuch>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_boolean(@somesuch>1) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_empty($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - true +b - - - true + +mlr --opprint put $f=is_empty($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - true +b - 6 - false +b - - - true + +mlr --opprint put $f=is_empty($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_empty($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_empty(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty_map($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty_map($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty_map($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty_map($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty_map(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty_map($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty_map({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_empty_map({}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put @somesuch=1;$f=is_empty_map(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_float($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_float($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_float($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_float($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_float(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_float($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_float({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_float(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_int($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - false +b - - - false + +mlr --opprint put $f=is_int($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - false +b - 6 - true +b - - - false + +mlr --opprint put $f=is_int($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_int($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_int(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_int($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_int({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_int(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_map($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_map($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_map($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_map($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_map(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_map($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_map({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_map({}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put @somesuch=1;$f=is_map(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_nonempty_map($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_nonempty_map($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_nonempty_map($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_nonempty_map($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_nonempty_map(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_nonempty_map($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_nonempty_map({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_nonempty_map({}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_nonempty_map(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_not_empty($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - false +b - - - false + +mlr --opprint put $f=is_not_empty($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - false +b - 6 - true +b - - - false + +mlr --opprint put $f=is_not_empty($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_not_empty($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_empty(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_empty($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_empty({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put @somesuch=1;$f=is_not_empty(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_map($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_map($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_map($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_map($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_map(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_map($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_not_map({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_not_map({}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_not_map(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_not_null($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - false +b - - - false + +mlr --opprint put $f=is_not_null($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - false +b - 6 - true +b - - - false + +mlr --opprint put $f=is_not_null($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_not_null($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_not_null(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_not_null(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_null($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - true +b - - - true + +mlr --opprint put $f=is_null($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - true +b - 6 - false +b - - - true + +mlr --opprint put $f=is_null($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_null($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_null(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put @somesuch=1;$f=is_null(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_numeric($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - false +b - - - false + +mlr --opprint put $f=is_numeric($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - false +b - 6 - true +b - - - false + +mlr --opprint put $f=is_numeric($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_numeric($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_numeric(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_numeric(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_present($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_present($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_present($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_present($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_present(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_present(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_string($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - true +b - - - true + +mlr --opprint put $f=is_string($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - true +b - 6 - false +b - - - true + +mlr --opprint put $f=is_string($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=is_string($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=is_string(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put @somesuch=1;$f=is_string(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + + +================================================================ +ASSERTION PASS-THROUGHS + +mlr --opprint put $f=asserting_absent($nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $f=asserting_absent(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $f=asserting_absent($x) ./reg_test/input/nullvals.dkvp +mlr: absent type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_absent($y) ./reg_test/input/nullvals.dkvp +mlr: absent type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_absent($z) ./reg_test/input/nullvals.dkvp +mlr: absent type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put @somesuch=1;$f=asserting_absent(@somesuch) ./reg_test/input/nullvals.dkvp +mlr: absent type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put foo=asserting_absent($*) ./reg_test/input/nullvals.dkvp +mlr: absent type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put foo=asserting_absent({1:2}) ./reg_test/input/nullvals.dkvp +mlr: absent type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - - +b 3 4 - - +b 5 - - - +b - 6 - - +b - - - - + +mlr --opprint put $f=asserting_empty($x) ./reg_test/input/nullvals.dkvp +mlr: empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty($y) ./reg_test/input/nullvals.dkvp +mlr: empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty($nosuch) ./reg_test/input/nullvals.dkvp +mlr: empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty(@nosuch) ./reg_test/input/nullvals.dkvp +mlr: empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty({1:2}) ./reg_test/input/nullvals.dkvp +mlr: empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put @somesuch=1;$f=asserting_empty(@somesuch) ./reg_test/input/nullvals.dkvp +mlr: empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put foo=asserting_empty($*) ./reg_test/input/nullvals.dkvp +mlr: empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put foo=asserting_empty({1:2}) ./reg_test/input/nullvals.dkvp +mlr: empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty_map({}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - (error) +b 3 4 - (error) +b 5 - - (error) +b - 6 - (error) +b - - - (error) + +mlr --opprint put $f=asserting_empty_map($*) ./reg_test/input/nullvals.dkvp +mlr: empty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty_map($x) ./reg_test/input/nullvals.dkvp +mlr: empty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty_map($y) ./reg_test/input/nullvals.dkvp +mlr: empty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty_map($z) ./reg_test/input/nullvals.dkvp +mlr: empty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty_map($nosuch) ./reg_test/input/nullvals.dkvp +mlr: empty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty_map(@nosuch) ./reg_test/input/nullvals.dkvp +mlr: empty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_empty_map({1:2}) ./reg_test/input/nullvals.dkvp +mlr: empty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put @somesuch=1;$f=asserting_empty_map(@somesuch) ./reg_test/input/nullvals.dkvp +mlr: empty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_map($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - (error) +b 3 4 - (error) +b 5 - - (error) +b - 6 - (error) +b - - - (error) + +mlr --opprint put $f=asserting_map({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - (error) +b 3 4 - (error) +b 5 - - (error) +b - 6 - (error) +b - - - (error) + +mlr --opprint put $f=asserting_map({}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - (error) +b 3 4 - (error) +b 5 - - (error) +b - 6 - (error) +b - - - (error) + +mlr --opprint put $f=asserting_map($x) ./reg_test/input/nullvals.dkvp +mlr: map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_map($y) ./reg_test/input/nullvals.dkvp +mlr: map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_map($z) ./reg_test/input/nullvals.dkvp +mlr: map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_map($nosuch) ./reg_test/input/nullvals.dkvp +mlr: map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_map(@nosuch) ./reg_test/input/nullvals.dkvp +mlr: map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put @somesuch=1;$f=asserting_map(@somesuch) ./reg_test/input/nullvals.dkvp +mlr: map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_nonempty_map($*) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - (error) +b 3 4 - (error) +b 5 - - (error) +b - 6 - (error) +b - - - (error) + +mlr --opprint put $f=asserting_nonempty_map({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - (error) +b 3 4 - (error) +b 5 - - (error) +b - 6 - (error) +b - - - (error) + +mlr --opprint put $f=asserting_nonempty_map($x) ./reg_test/input/nullvals.dkvp +mlr: nonempty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_nonempty_map($y) ./reg_test/input/nullvals.dkvp +mlr: nonempty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_nonempty_map($z) ./reg_test/input/nullvals.dkvp +mlr: nonempty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_nonempty_map($nosuch) ./reg_test/input/nullvals.dkvp +mlr: nonempty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_nonempty_map(@nosuch) ./reg_test/input/nullvals.dkvp +mlr: nonempty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_nonempty_map({}) ./reg_test/input/nullvals.dkvp +mlr: nonempty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put @somesuch=1;$f=asserting_nonempty_map(@somesuch) ./reg_test/input/nullvals.dkvp +mlr: nonempty_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $*=asserting_not_empty($*) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $f=asserting_not_empty($nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $f=asserting_not_empty(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $f=asserting_not_empty({1:2}) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - (error) +b 3 4 - (error) +b 5 - - (error) +b - 6 - (error) +b - - - (error) + +mlr --opprint put $nosuch=asserting_not_empty($nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put @somesuch=1;$f=asserting_not_empty(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - 1 +b 3 4 - 1 +b 5 - - 1 +b - 6 - 1 +b - - - 1 + +mlr --opprint put $*=asserting_not_empty($*) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $*=asserting_not_empty({1:2}) ./reg_test/input/nullvals.dkvp +1 +2 +2 +2 +2 +2 + +mlr --opprint put $f=asserting_not_empty($x) ./reg_test/input/nullvals.dkvp +mlr: not_empty type-assertion failed at NR=4 FNR=4 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_empty($y) ./reg_test/input/nullvals.dkvp +mlr: not_empty type-assertion failed at NR=3 FNR=3 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_empty($z) ./reg_test/input/nullvals.dkvp +mlr: not_empty type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_map($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - 1 +b 3 4 - 3 +b 5 - - 5 +b - 6 - - +b - - - - + +mlr --opprint put $f=asserting_not_map($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - 2 +b 3 4 - 4 +b 5 - - - +b - 6 - 6 +b - - - - + +mlr --opprint put $f=asserting_not_map($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - - +b 3 4 - - +b 5 - - - +b - 6 - - +b - - - - + +mlr --opprint put $f=asserting_not_map($nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $f=asserting_not_map(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put @somesuch=1;$f=asserting_not_map(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - 1 +b 3 4 - 1 +b 5 - - 1 +b - 6 - 1 +b - - - 1 + +mlr --opprint put $f=asserting_not_map($*) ./reg_test/input/nullvals.dkvp +mlr: not_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_map({1:2}) ./reg_test/input/nullvals.dkvp +mlr: not_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_map({}) ./reg_test/input/nullvals.dkvp +mlr: not_map type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put @somesuch=1;$f=asserting_not_null(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - 1 +b 3 4 - 1 +b 5 - - 1 +b - 6 - 1 +b - - - 1 + +mlr --opprint put $*=asserting_not_null($*) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $*=asserting_not_null({1:2}) ./reg_test/input/nullvals.dkvp +1 +2 +2 +2 +2 +2 + +mlr --opprint put $f=asserting_not_null($x) ./reg_test/input/nullvals.dkvp +mlr: not_null type-assertion failed at NR=4 FNR=4 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_null($y) ./reg_test/input/nullvals.dkvp +mlr: not_null type-assertion failed at NR=3 FNR=3 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_null($z) ./reg_test/input/nullvals.dkvp +mlr: not_null type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_null($nosuch) ./reg_test/input/nullvals.dkvp +mlr: not_null type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_not_null(@nosuch) ./reg_test/input/nullvals.dkvp +mlr: not_null type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_null($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - - +b 3 4 - - +b 5 - - - +b - 6 - - +b - - - - + +mlr --opprint put $f=asserting_null($nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $f=asserting_null(@nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $f=asserting_null($x) ./reg_test/input/nullvals.dkvp +mlr: null type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_null($y) ./reg_test/input/nullvals.dkvp +mlr: null type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put @somesuch=1;$f=asserting_null(@somesuch) ./reg_test/input/nullvals.dkvp +mlr: null type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $*=asserting_null($*) ./reg_test/input/nullvals.dkvp +mlr: null type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $*=asserting_null({1:2}) ./reg_test/input/nullvals.dkvp +mlr: null type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_numeric($x) ./reg_test/input/nullvals.dkvp +mlr: numeric type-assertion failed at NR=4 FNR=4 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_numeric($y) ./reg_test/input/nullvals.dkvp +mlr: numeric type-assertion failed at NR=3 FNR=3 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_numeric($z) ./reg_test/input/nullvals.dkvp +mlr: numeric type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $*=asserting_numeric($*) ./reg_test/input/nullvals.dkvp +mlr: numeric type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $*=asserting_numeric({1:2}) ./reg_test/input/nullvals.dkvp +mlr: numeric type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_numeric($nosuch) ./reg_test/input/nullvals.dkvp +mlr: numeric type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_present($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - 1 +b 3 4 - 3 +b 5 - - 5 +b - 6 - - +b - - - - + +mlr --opprint put $f=asserting_present($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - 2 +b 3 4 - 4 +b 5 - - - +b - 6 - 6 +b - - - - + +mlr --opprint put $f=asserting_present($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - - +b 3 4 - - +b 5 - - - +b - 6 - - +b - - - - + +mlr --opprint put @somesuch=1;$f=asserting_present(@somesuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - 1 +b 3 4 - 1 +b 5 - - 1 +b - 6 - 1 +b - - - 1 + +mlr --opprint put $*=asserting_present($*) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint put $*=asserting_present({1:2}) ./reg_test/input/nullvals.dkvp +1 +2 +2 +2 +2 +2 + +mlr --opprint put $f=asserting_present($nosuch) ./reg_test/input/nullvals.dkvp +mlr: present type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_present(@nosuch) ./reg_test/input/nullvals.dkvp +mlr: present type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_string($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - - +b 3 4 - - +b 5 - - - +b - 6 - - +b - - - - + +mlr --opprint put $*=asserting_string($*) ./reg_test/input/nullvals.dkvp +mlr: string type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $*=asserting_string({1:2}) ./reg_test/input/nullvals.dkvp +mlr: string type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_string($x) ./reg_test/input/nullvals.dkvp +mlr: string type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_string($y) ./reg_test/input/nullvals.dkvp +mlr: string type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=asserting_string($nosuch) ./reg_test/input/nullvals.dkvp +mlr: string type-assertion failed at NR=1 FNR=1 FILENAME=./reg_test/input/nullvals.dkvp + + +================================================================ +DSL NULL/EMPTY HANDLING + +mlr put $z = $s . $s ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=hellohello +x=1,y=,s=,z= +x=,y=,s=hurrah,z=hurrahhurrah + +mlr put $z = $s == "" ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=false +x=1,y=,s=,z=true +x=,y=,s=hurrah,z=false + +mlr put $z = $s == $s ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=true +x=1,y=,s=,z=true +x=,y=,s=hurrah,z=true + +mlr put $z = is_empty($s) ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=false +x=1,y=,s=,z=true +x=,y=,s=hurrah,z=false + +mlr put $z = $x + $y ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=3 +x=1,y=,s=,z= +x=,y=,s=hurrah,z= + +mlr put $z = $y + $y ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=4 +x=1,y=,s=,z= +x=,y=,s=hurrah,z= + +mlr put $z = $x + $nosuch ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=1 +x=1,y=,s=,z=1 +x=,y=,s=hurrah + +mlr put $t = sub($s, "ell", "X") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t=hXo +x=1,y=,s=,t= +x=,y=,s=hurrah,t=hurrah + +mlr put $t = sub($s, "ell", "") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t=ho +x=1,y=,s=,t= +x=,y=,s=hurrah,t=hurrah + +mlr put $t = sub($nosuch, "ell", "X") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello +x=1,y=,s= +x=,y=,s=hurrah + +mlr put $t = gsub($s, "l", "X") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t=heXXo +x=1,y=,s=,t= +x=,y=,s=hurrah,t=hurrah + +mlr put $t = gsub($s, "l", "") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t=heo +x=1,y=,s=,t= +x=,y=,s=hurrah,t=hurrah + +mlr put $t = gsub($nosuch, "l", "X") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello +x=1,y=,s= +x=,y=,s=hurrah + + +---------------------------------------------------------------- EMIT +mlr put -q @v=1; @nonesuch {emit @v} ./reg_test/input/abixy + +mlr put -q @v=1; @nonesuch==true {emit @v} ./reg_test/input/abixy + +mlr put -q @v=1; $nonesuch {emit @v} ./reg_test/input/abixy + +mlr put -q @v=1; $nonesuch==true {emit @v} ./reg_test/input/abixy + + +---------------------------------------------------------------- PLUS +mlr --ofs tab put begin{}; $xy = $x + $y; $sy = @s + $y; $xt = $x + @t; $st = @s + @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=2 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=2 +x= y= xy= +a=1 y=2 xy=2 sy=2 +a=1 y= +a= y=2 xy=2 sy=2 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x + $y; $sy = @s + $y; $xt = $x + @t; $st = @s + @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=5 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=5 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=2 sy=5 st=3 +a=1 y= sy= st=3 +a= y=2 xy=2 sy=5 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x + $y; $sy = @s + $y; $xt = $x + @t; $st = @s + @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=2 xt=5 st=4 +x=1 y= xy= xt=5 st=4 +x= y=2 xy= sy=2 xt= st=4 +x= y= xy= xt= st=4 +a=1 y=2 xy=2 sy=2 xt=4 st=4 +a=1 y= xt=4 st=4 +a= y=2 xy=2 sy=2 xt=4 st=4 +a= y= xt=4 st=4 +x=1 b=2 xy=1 xt=5 st=4 +x=1 b= xy=1 xt=5 st=4 +x= b=2 xt= st=4 +x= b= xt= st=4 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x + $y; $sy = @s + $y; $xt = $x + @t; $st = @s + @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=5 xt=5 st=7 +x=1 y= xy= sy= xt=5 st=7 +x= y=2 xy= sy=5 xt= st=7 +x= y= xy= sy= xt= st=7 +a=1 y=2 xy=2 sy=5 xt=4 st=7 +a=1 y= sy= xt=4 st=7 +a= y=2 xy=2 sy=5 xt=4 st=7 +a= y= sy= xt=4 st=7 +x=1 b=2 xy=1 sy=3 xt=5 st=7 +x=1 b= xy=1 sy=3 xt=5 st=7 +x= b=2 sy=3 xt= st=7 +x= b= sy=3 xt= st=7 + + +---------------------------------------------------------------- MINUS +mlr --ofs tab put begin{}; $xy = $x - $y; $sy = @s - $y; $xt = $x - @t; $st = @s - @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=-1 sy=2 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=2 +x= y= xy= +a=1 y=2 xy=2 sy=2 +a=1 y= +a= y=2 xy=2 sy=2 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x - $y; $sy = @s - $y; $xt = $x - @t; $st = @s - @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=-1 sy=1 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=1 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=2 sy=1 st=3 +a=1 y= sy= st=3 +a= y=2 xy=2 sy=1 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x - $y; $sy = @s - $y; $xt = $x - @t; $st = @s - @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=-1 sy=2 xt=-3 st=4 +x=1 y= xy= xt=-3 st=4 +x= y=2 xy= sy=2 xt= st=4 +x= y= xy= xt= st=4 +a=1 y=2 xy=2 sy=2 xt=4 st=4 +a=1 y= xt=4 st=4 +a= y=2 xy=2 sy=2 xt=4 st=4 +a= y= xt=4 st=4 +x=1 b=2 xy=1 xt=-3 st=4 +x=1 b= xy=1 xt=-3 st=4 +x= b=2 xt= st=4 +x= b= xt= st=4 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x - $y; $sy = @s - $y; $xt = $x - @t; $st = @s - @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=-1 sy=1 xt=-3 st=-1 +x=1 y= xy= sy= xt=-3 st=-1 +x= y=2 xy= sy=1 xt= st=-1 +x= y= xy= sy= xt= st=-1 +a=1 y=2 xy=2 sy=1 xt=4 st=-1 +a=1 y= sy= xt=4 st=-1 +a= y=2 xy=2 sy=1 xt=4 st=-1 +a= y= sy= xt=4 st=-1 +x=1 b=2 xy=1 sy=3 xt=-3 st=-1 +x=1 b= xy=1 sy=3 xt=-3 st=-1 +x= b=2 sy=3 xt= st=-1 +x= b= sy=3 xt= st=-1 + + +---------------------------------------------------------------- TIMES +mlr --ofs tab put begin{}; $xy = $x * $y; $sy = @s * $y; $xt = $x * @t; $st = @s * @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=2 sy=2 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=2 +x= y= xy= +a=1 y=2 xy=2 sy=2 +a=1 y= +a= y=2 xy=2 sy=2 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x * $y; $sy = @s * $y; $xt = $x * @t; $st = @s * @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=2 sy=6 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=6 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=2 sy=6 st=3 +a=1 y= sy= st=3 +a= y=2 xy=2 sy=6 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x * $y; $sy = @s * $y; $xt = $x * @t; $st = @s * @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=2 sy=2 xt=4 st=4 +x=1 y= xy= xt=4 st=4 +x= y=2 xy= sy=2 xt= st=4 +x= y= xy= xt= st=4 +a=1 y=2 xy=2 sy=2 xt=4 st=4 +a=1 y= xt=4 st=4 +a= y=2 xy=2 sy=2 xt=4 st=4 +a= y= xt=4 st=4 +x=1 b=2 xy=1 xt=4 st=4 +x=1 b= xy=1 xt=4 st=4 +x= b=2 xt= st=4 +x= b= xt= st=4 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x * $y; $sy = @s * $y; $xt = $x * @t; $st = @s * @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=2 sy=6 xt=4 st=12 +x=1 y= xy= sy= xt=4 st=12 +x= y=2 xy= sy=6 xt= st=12 +x= y= xy= sy= xt= st=12 +a=1 y=2 xy=2 sy=6 xt=4 st=12 +a=1 y= sy= xt=4 st=12 +a= y=2 xy=2 sy=6 xt=4 st=12 +a= y= sy= xt=4 st=12 +x=1 b=2 xy=1 sy=3 xt=4 st=12 +x=1 b= xy=1 sy=3 xt=4 st=12 +x= b=2 sy=3 xt= st=12 +x= b= sy=3 xt= st=12 + + +---------------------------------------------------------------- DIVIDE +mlr --ofs tab put begin{}; $xy = $x / $y; $sy = @s / $y; $xt = $x / @t; $st = @s / @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0.500000 sy=0 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=0 +x= y= xy= +a=1 y=2 xy=0 sy=0 +a=1 y= +a= y=2 xy=0 sy=0 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x / $y; $sy = @s / $y; $xt = $x / @t; $st = @s / @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0.500000 sy=1.500000 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=1.500000 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=0 sy=1.500000 st=3 +a=1 y= sy= st=3 +a= y=2 xy=0 sy=1.500000 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x / $y; $sy = @s / $y; $xt = $x / @t; $st = @s / @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0.500000 sy=0 xt=0.250000 st=0 +x=1 y= xy= xt=0.250000 st=0 +x= y=2 xy= sy=0 xt= st=0 +x= y= xy= xt= st=0 +a=1 y=2 xy=0 sy=0 xt=0 st=0 +a=1 y= xt=0 st=0 +a= y=2 xy=0 sy=0 xt=0 st=0 +a= y= xt=0 st=0 +x=1 b=2 xy=1 xt=0.250000 st=0 +x=1 b= xy=1 xt=0.250000 st=0 +x= b=2 xt= st=0 +x= b= xt= st=0 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x / $y; $sy = @s / $y; $xt = $x / @t; $st = @s / @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0.500000 sy=1.500000 xt=0.250000 st=0.750000 +x=1 y= xy= sy= xt=0.250000 st=0.750000 +x= y=2 xy= sy=1.500000 xt= st=0.750000 +x= y= xy= sy= xt= st=0.750000 +a=1 y=2 xy=0 sy=1.500000 xt=0 st=0.750000 +a=1 y= sy= xt=0 st=0.750000 +a= y=2 xy=0 sy=1.500000 xt=0 st=0.750000 +a= y= sy= xt=0 st=0.750000 +x=1 b=2 xy=1 sy=3 xt=0.250000 st=0.750000 +x=1 b= xy=1 sy=3 xt=0.250000 st=0.750000 +x= b=2 sy=3 xt= st=0.750000 +x= b= sy=3 xt= st=0.750000 + + +---------------------------------------------------------------- INTEGER DIVIDE +mlr --ofs tab put begin{}; $xy = $x // $y; $sy = @s // $y; $xt = $x // @t; $st = @s // @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0 sy=0 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=0 +x= y= xy= +a=1 y=2 xy=0 sy=0 +a=1 y= +a= y=2 xy=0 sy=0 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x // $y; $sy = @s // $y; $xt = $x // @t; $st = @s // @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0 sy=1 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=1 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=0 sy=1 st=3 +a=1 y= sy= st=3 +a= y=2 xy=0 sy=1 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x // $y; $sy = @s // $y; $xt = $x // @t; $st = @s // @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0 sy=0 xt=0 st=0 +x=1 y= xy= xt=0 st=0 +x= y=2 xy= sy=0 xt= st=0 +x= y= xy= xt= st=0 +a=1 y=2 xy=0 sy=0 xt=0 st=0 +a=1 y= xt=0 st=0 +a= y=2 xy=0 sy=0 xt=0 st=0 +a= y= xt=0 st=0 +x=1 b=2 xy=1 xt=0 st=0 +x=1 b= xy=1 xt=0 st=0 +x= b=2 xt= st=0 +x= b= xt= st=0 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x // $y; $sy = @s // $y; $xt = $x // @t; $st = @s // @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0 sy=1 xt=0 st=0 +x=1 y= xy= sy= xt=0 st=0 +x= y=2 xy= sy=1 xt= st=0 +x= y= xy= sy= xt= st=0 +a=1 y=2 xy=0 sy=1 xt=0 st=0 +a=1 y= sy= xt=0 st=0 +a= y=2 xy=0 sy=1 xt=0 st=0 +a= y= sy= xt=0 st=0 +x=1 b=2 xy=1 sy=3 xt=0 st=0 +x=1 b= xy=1 sy=3 xt=0 st=0 +x= b=2 sy=3 xt= st=0 +x= b= sy=3 xt= st=0 + + +---------------------------------------------------------------- REMAINDER +mlr --ofs tab put begin{}; $xy = $x % $y; $sy = @s % $y; $xt = $x % @t; $st = @s % @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=1 sy=0 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=0 +x= y= xy= +a=1 y=2 xy=0 sy=0 +a=1 y= +a= y=2 xy=0 sy=0 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x % $y; $sy = @s % $y; $xt = $x % @t; $st = @s % @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=1 sy=1 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=1 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=0 sy=1 st=3 +a=1 y= sy= st=3 +a= y=2 xy=0 sy=1 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x % $y; $sy = @s % $y; $xt = $x % @t; $st = @s % @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=1 sy=0 xt=1 st=0 +x=1 y= xy= xt=1 st=0 +x= y=2 xy= sy=0 xt= st=0 +x= y= xy= xt= st=0 +a=1 y=2 xy=0 sy=0 xt=0 st=0 +a=1 y= xt=0 st=0 +a= y=2 xy=0 sy=0 xt=0 st=0 +a= y= xt=0 st=0 +x=1 b=2 xy=1 xt=1 st=0 +x=1 b= xy=1 xt=1 st=0 +x= b=2 xt= st=0 +x= b= xt= st=0 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x % $y; $sy = @s % $y; $xt = $x % @t; $st = @s % @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=1 sy=1 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=1 xt= st=3 +x= y= xy= sy= xt= st=3 +a=1 y=2 xy=0 sy=1 xt=0 st=3 +a=1 y= sy= xt=0 st=3 +a= y=2 xy=0 sy=1 xt=0 st=3 +a= y= sy= xt=0 st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 xt= st=3 +x= b= sy=3 xt= st=3 + + +---------------------------------------------------------------- BITWISE AND +mlr --ofs tab put begin{}; $xy = $x & $y; $sy = @s & $y; $xt = $x & @t; $st = @s & @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0 sy=2 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=2 +x= y= xy= +a=1 y=2 xy=2 sy=2 +a=1 y= +a= y=2 xy=2 sy=2 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x & $y; $sy = @s & $y; $xt = $x & @t; $st = @s & @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0 sy=2 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=2 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=2 sy=2 st=3 +a=1 y= sy= st=3 +a= y=2 xy=2 sy=2 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x & $y; $sy = @s & $y; $xt = $x & @t; $st = @s & @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0 sy=2 xt=0 st=4 +x=1 y= xy= xt=0 st=4 +x= y=2 xy= sy=2 xt= st=4 +x= y= xy= xt= st=4 +a=1 y=2 xy=2 sy=2 xt=4 st=4 +a=1 y= xt=4 st=4 +a= y=2 xy=2 sy=2 xt=4 st=4 +a= y= xt=4 st=4 +x=1 b=2 xy=1 xt=0 st=4 +x=1 b= xy=1 xt=0 st=4 +x= b=2 xt= st=4 +x= b= xt= st=4 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x & $y; $sy = @s & $y; $xt = $x & @t; $st = @s & @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=0 sy=2 xt=0 st=0 +x=1 y= xy= sy= xt=0 st=0 +x= y=2 xy= sy=2 xt= st=0 +x= y= xy= sy= xt= st=0 +a=1 y=2 xy=2 sy=2 xt=4 st=0 +a=1 y= sy= xt=4 st=0 +a= y=2 xy=2 sy=2 xt=4 st=0 +a= y= sy= xt=4 st=0 +x=1 b=2 xy=1 sy=3 xt=0 st=0 +x=1 b= xy=1 sy=3 xt=0 st=0 +x= b=2 sy=3 xt= st=0 +x= b= sy=3 xt= st=0 + + +---------------------------------------------------------------- BITWISE OR +mlr --ofs tab put begin{}; $xy = $x | $y; $sy = @s | $y; $xt = $x | @t; $st = @s | @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=2 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=2 +x= y= xy= +a=1 y=2 xy=2 sy=2 +a=1 y= +a= y=2 xy=2 sy=2 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x | $y; $sy = @s | $y; $xt = $x | @t; $st = @s | @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=3 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=3 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=2 sy=3 st=3 +a=1 y= sy= st=3 +a= y=2 xy=2 sy=3 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x | $y; $sy = @s | $y; $xt = $x | @t; $st = @s | @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=2 xt=5 st=4 +x=1 y= xy= xt=5 st=4 +x= y=2 xy= sy=2 xt= st=4 +x= y= xy= xt= st=4 +a=1 y=2 xy=2 sy=2 xt=4 st=4 +a=1 y= xt=4 st=4 +a= y=2 xy=2 sy=2 xt=4 st=4 +a= y= xt=4 st=4 +x=1 b=2 xy=1 xt=5 st=4 +x=1 b= xy=1 xt=5 st=4 +x= b=2 xt= st=4 +x= b= xt= st=4 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x | $y; $sy = @s | $y; $xt = $x | @t; $st = @s | @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=3 xt=5 st=7 +x=1 y= xy= sy= xt=5 st=7 +x= y=2 xy= sy=3 xt= st=7 +x= y= xy= sy= xt= st=7 +a=1 y=2 xy=2 sy=3 xt=4 st=7 +a=1 y= sy= xt=4 st=7 +a= y=2 xy=2 sy=3 xt=4 st=7 +a= y= sy= xt=4 st=7 +x=1 b=2 xy=1 sy=3 xt=5 st=7 +x=1 b= xy=1 sy=3 xt=5 st=7 +x= b=2 sy=3 xt= st=7 +x= b= sy=3 xt= st=7 + + +---------------------------------------------------------------- BITWISE XOR +mlr --ofs tab put begin{}; $xy = $x ^ $y; $sy = @s ^ $y; $xt = $x ^ @t; $st = @s ^ @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=2 xt=1 +x=1 y= xy= xt=1 +x= y=2 xy= sy=2 +x= y= xy= +a=1 y=2 xy=2 sy=2 +a=1 y= +a= y=2 xy=2 sy=2 +a= y= +x=1 b=2 xy=1 xt=1 +x=1 b= xy=1 xt=1 +x= b=2 +x= b= + +mlr --ofs tab put begin{@s=3}; $xy = $x ^ $y; $sy = @s ^ $y; $xt = $x ^ @t; $st = @s ^ @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=1 xt=1 st=3 +x=1 y= xy= sy= xt=1 st=3 +x= y=2 xy= sy=1 st=3 +x= y= xy= sy= st=3 +a=1 y=2 xy=2 sy=1 st=3 +a=1 y= sy= st=3 +a= y=2 xy=2 sy=1 st=3 +a= y= sy= st=3 +x=1 b=2 xy=1 sy=3 xt=1 st=3 +x=1 b= xy=1 sy=3 xt=1 st=3 +x= b=2 sy=3 st=3 +x= b= sy=3 st=3 + +mlr --ofs tab put begin{@t=4}; $xy = $x ^ $y; $sy = @s ^ $y; $xt = $x ^ @t; $st = @s ^ @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=2 xt=5 st=4 +x=1 y= xy= xt=5 st=4 +x= y=2 xy= sy=2 xt= st=4 +x= y= xy= xt= st=4 +a=1 y=2 xy=2 sy=2 xt=4 st=4 +a=1 y= xt=4 st=4 +a= y=2 xy=2 sy=2 xt=4 st=4 +a= y= xt=4 st=4 +x=1 b=2 xy=1 xt=5 st=4 +x=1 b= xy=1 xt=5 st=4 +x= b=2 xt= st=4 +x= b= xt= st=4 + +mlr --ofs tab put begin{@s=3;@t=4}; $xy = $x ^ $y; $sy = @s ^ $y; $xt = $x ^ @t; $st = @s ^ @t ./reg_test/input/typeof.dkvp +x=1 y=2 xy=3 sy=1 xt=5 st=7 +x=1 y= xy= sy= xt=5 st=7 +x= y=2 xy= sy=1 xt= st=7 +x= y= xy= sy= xt= st=7 +a=1 y=2 xy=2 sy=1 xt=4 st=7 +a=1 y= sy= xt=4 st=7 +a= y=2 xy=2 sy=1 xt=4 st=7 +a= y= sy= xt=4 st=7 +x=1 b=2 xy=1 sy=3 xt=5 st=7 +x=1 b= xy=1 sy=3 xt=5 st=7 +x= b=2 sy=3 xt= st=7 +x= b= sy=3 xt= st=7 + + +================================================================ +DSL TYPE PREDICATES + +mlr --from ./reg_test/input/abixy --opprint put for (k, v in $*) { $[k."_type"] = typeof(v) } +a b i x y a_type b_type i_type x_type y_type +pan pan 1 0.3467901443380824 0.7268028627434533 string string int float float +eks pan 2 0.7586799647899636 0.5221511083334797 string string int float float +wye wye 3 0.20460330576630303 0.33831852551664776 string string int float float +eks wye 4 0.38139939387114097 0.13418874328430463 string string int float float +wye pan 5 0.5732889198020006 0.8636244699032729 string string int float float +zee pan 6 0.5271261600918548 0.49322128674835697 string string int float float +eks zee 7 0.6117840605678454 0.1878849191181694 string string int float float +zee wye 8 0.5985540091064224 0.976181385699006 string string int float float +hat wye 9 0.03144187646093577 0.7495507603507059 string string int float float +pan wye 10 0.5026260055412137 0.9526183602969864 string string int float float + +mlr --from ./reg_test/input/abixy-het put -q for (k,v in $*) {if (is_float(v)) {@float[NR][k] = v}} end{ emit @float, "NR", "k" } +NR=1,k=x,float=0.346790 +NR=1,k=y,float=0.726803 +NR=2,k=x,float=0.758680 +NR=2,k=y,float=0.522151 +NR=3,k=x,float=0.204603 +NR=3,k=y,float=0.338319 +NR=4,k=x,float=0.381399 +NR=4,k=y,float=0.134189 +NR=5,k=xxx,float=0.573289 +NR=5,k=y,float=0.863624 +NR=6,k=x,float=0.527126 +NR=6,k=y,float=0.493221 +NR=7,k=x,float=0.611784 +NR=7,k=y,float=0.187885 +NR=8,k=x,float=0.598554 +NR=8,k=yyy,float=0.976181 +NR=9,k=x,float=0.031442 +NR=9,k=y,float=0.749551 +NR=10,k=x,float=0.502626 +NR=10,k=y,float=0.952618 + +mlr --from ./reg_test/input/abixy-het put -q for (k,v in $*) {if (is_int(v)) {@int[NR][k] = v}} end{ emit @int, "NR", "k" } +NR=1,k=i,int=1 +NR=2,k=i,int=2 +NR=3,k=i,int=3 +NR=4,k=i,int=4 +NR=5,k=i,int=5 +NR=6,k=i,int=6 +NR=7,k=iii,int=7 +NR=8,k=i,int=8 +NR=9,k=i,int=9 +NR=10,k=i,int=10 + +mlr --from ./reg_test/input/abixy-het put -q for (k,v in $*) {if (is_numeric(v)) {@numeric[NR][k] = v}} end{ emit @numeric, "NR", "k" } +NR=1,k=i,numeric=1 +NR=1,k=x,numeric=0.346790 +NR=1,k=y,numeric=0.726803 +NR=2,k=i,numeric=2 +NR=2,k=x,numeric=0.758680 +NR=2,k=y,numeric=0.522151 +NR=3,k=i,numeric=3 +NR=3,k=x,numeric=0.204603 +NR=3,k=y,numeric=0.338319 +NR=4,k=i,numeric=4 +NR=4,k=x,numeric=0.381399 +NR=4,k=y,numeric=0.134189 +NR=5,k=i,numeric=5 +NR=5,k=xxx,numeric=0.573289 +NR=5,k=y,numeric=0.863624 +NR=6,k=i,numeric=6 +NR=6,k=x,numeric=0.527126 +NR=6,k=y,numeric=0.493221 +NR=7,k=iii,numeric=7 +NR=7,k=x,numeric=0.611784 +NR=7,k=y,numeric=0.187885 +NR=8,k=i,numeric=8 +NR=8,k=x,numeric=0.598554 +NR=8,k=yyy,numeric=0.976181 +NR=9,k=i,numeric=9 +NR=9,k=x,numeric=0.031442 +NR=9,k=y,numeric=0.749551 +NR=10,k=i,numeric=10 +NR=10,k=x,numeric=0.502626 +NR=10,k=y,numeric=0.952618 + +mlr --from ./reg_test/input/abixy-het put -q for (k,v in $*) {if (is_string(v)) {@string[NR][k] = v}} end{ emit @string, "NR", "k" } +NR=1,k=a,string=pan +NR=1,k=b,string=pan +NR=2,k=a,string=eks +NR=2,k=b,string=pan +NR=3,k=aaa,string=wye +NR=3,k=b,string=wye +NR=4,k=a,string=eks +NR=4,k=bbb,string=wye +NR=5,k=a,string=wye +NR=5,k=b,string=pan +NR=6,k=a,string=zee +NR=6,k=b,string=pan +NR=7,k=a,string=eks +NR=7,k=b,string=zee +NR=8,k=a,string=zee +NR=8,k=b,string=wye +NR=9,k=aaa,string=hat +NR=9,k=bbb,string=wye +NR=10,k=a,string=pan +NR=10,k=b,string=wye + +mlr --from ./reg_test/input/abixy-het put -q for (k,v in $*) {if (is_bool(v)) {@bool[NR][k] = v}} end{ emit @bool, "NR", "k" } + +mlr --from ./reg_test/input/abixy-het put -q for (k,v in $*) {if (is_bool(NR==2)) {@bool[NR][k] = "NR==2"}} end{ emit @bool, "NR", "k" } +NR=1,k=a,bool=NR==2 +NR=1,k=b,bool=NR==2 +NR=1,k=i,bool=NR==2 +NR=1,k=x,bool=NR==2 +NR=1,k=y,bool=NR==2 +NR=2,k=a,bool=NR==2 +NR=2,k=b,bool=NR==2 +NR=2,k=i,bool=NR==2 +NR=2,k=x,bool=NR==2 +NR=2,k=y,bool=NR==2 +NR=3,k=aaa,bool=NR==2 +NR=3,k=b,bool=NR==2 +NR=3,k=i,bool=NR==2 +NR=3,k=x,bool=NR==2 +NR=3,k=y,bool=NR==2 +NR=4,k=a,bool=NR==2 +NR=4,k=bbb,bool=NR==2 +NR=4,k=i,bool=NR==2 +NR=4,k=x,bool=NR==2 +NR=4,k=y,bool=NR==2 +NR=5,k=a,bool=NR==2 +NR=5,k=b,bool=NR==2 +NR=5,k=i,bool=NR==2 +NR=5,k=xxx,bool=NR==2 +NR=5,k=y,bool=NR==2 +NR=6,k=a,bool=NR==2 +NR=6,k=b,bool=NR==2 +NR=6,k=i,bool=NR==2 +NR=6,k=x,bool=NR==2 +NR=6,k=y,bool=NR==2 +NR=7,k=a,bool=NR==2 +NR=7,k=b,bool=NR==2 +NR=7,k=iii,bool=NR==2 +NR=7,k=x,bool=NR==2 +NR=7,k=y,bool=NR==2 +NR=8,k=a,bool=NR==2 +NR=8,k=b,bool=NR==2 +NR=8,k=i,bool=NR==2 +NR=8,k=x,bool=NR==2 +NR=8,k=yyy,bool=NR==2 +NR=9,k=aaa,bool=NR==2 +NR=9,k=bbb,bool=NR==2 +NR=9,k=i,bool=NR==2 +NR=9,k=x,bool=NR==2 +NR=9,k=y,bool=NR==2 +NR=10,k=a,bool=NR==2 +NR=10,k=b,bool=NR==2 +NR=10,k=i,bool=NR==2 +NR=10,k=x,bool=NR==2 +NR=10,k=y,bool=NR==2 + + +================================================================ +DSL TYPE-INFERENCE + +mlr --xtab put $y = $pi1 + $pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 151 + +mlr --xtab put -F $y = $pi1 + $pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 151.000000 + +mlr --xtab put -S $y = $pi1 . $pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 7576 + +mlr --xtab filter 999 != $pi1 + $pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 + +mlr --xtab filter -F 999 != $pi1 + $pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 + +mlr --xtab filter -S "999" != $pi1 . $pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 + +mlr --oxtab put $s = $a; $t = $b; $u = 3; $v = 4.0; $ts=typeof($s); $tt=typeof($t); $tu=typeof($u); $tv=typeof($v); +a 1 +b 2.0 +s 1 +t 2.000000 +u 3 +v 4.000000 +ts int +tt float +tu int +tv float + +mlr --oxtab put -F $s = $a; $t = $b; $u = 3; $v = 4.0; $ts=typeof($s); $tt=typeof($t); $tu=typeof($u); $tv=typeof($v); +a 1 +b 2.0 +s 1.000000 +t 2.000000 +u 3 +v 4.000000 +ts float +tt float +tu int +tv float + +mlr --oxtab put -S $s = $a; $t = $b; $u = 3; $v = 4.0; $ts=typeof($s); $tt=typeof($t); $tu=typeof($u); $tv=typeof($v); +a 1 +b 2.0 +s 1 +t 2.0 +u 3 +v 4.000000 +ts string +tt string +tu int +tv float + +mlr --xtab put $y=abs($pf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 71.200000 + +mlr --xtab put $y=abs($nf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 71.200000 + +mlr --xtab put $y=abs($zf) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put $y=abs($pi1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 75 + +mlr --xtab put $y=abs($ni1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 75 + +mlr --xtab put $y=abs($zi) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0 + +mlr --xtab put -F $y=abs($pf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 71.200000 + +mlr --xtab put -F $y=abs($nf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 71.200000 + +mlr --xtab put -F $y=abs($zf) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put -F $y=abs($pi1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 75.000000 + +mlr --xtab put -F $y=abs($ni1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 75.000000 + +mlr --xtab put -F $y=abs($zi) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put $y=ceil($pf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 72.000000 + +mlr --xtab put $y=ceil($nf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -71.000000 + +mlr --xtab put $y=ceil($zf) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put $y=ceil($pi1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 75 + +mlr --xtab put $y=ceil($ni1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -75 + +mlr --xtab put $y=ceil($zi) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0 + +mlr --xtab put -F $y=floor($pf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 71.000000 + +mlr --xtab put -F $y=floor($nf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -72.000000 + +mlr --xtab put -F $y=floor($zf) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put -F $y=floor($pi1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 75.000000 + +mlr --xtab put -F $y=floor($ni1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -75.000000 + +mlr --xtab put -F $y=floor($zi) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put $y=round($pf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 71.000000 + +mlr --xtab put $y=round($nf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -71.000000 + +mlr --xtab put $y=round($zf) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put $y=round($pi1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 75 + +mlr --xtab put $y=round($ni1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -75 + +mlr --xtab put $y=round($zi) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0 + +mlr --xtab put -F $y=round($pf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 71.000000 + +mlr --xtab put -F $y=round($nf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -71.000000 + +mlr --xtab put -F $y=round($zf) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put -F $y=round($pi1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 75.000000 + +mlr --xtab put -F $y=round($ni1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -75.000000 + +mlr --xtab put -F $y=round($zi) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put $y=sgn($pf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 1.000000 + +mlr --xtab put $y=sgn($nf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -1.000000 + +mlr --xtab put $y=sgn($zf) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put $y=sgn($pi1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 1 + +mlr --xtab put $y=sgn($ni1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -1 + +mlr --xtab put $y=sgn($zi) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0 + +mlr --xtab put -F $y=sgn($pf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 1.000000 + +mlr --xtab put -F $y=sgn($nf1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -1.000000 + +mlr --xtab put -F $y=sgn($zf) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put -F $y=sgn($pi1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 1.000000 + +mlr --xtab put -F $y=sgn($ni1) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y -1.000000 + +mlr --xtab put -F $y=sgn($zi) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +y 0.000000 + +mlr --xtab put $min=min($pf1,$pf2);$max=max($pf1,$pf2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 71.200000 +max 73.400000 + +mlr --xtab put $min=min($pf1,$pi2);$max=max($pf1,$pi2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 71.200000 +max 76.000000 + +mlr --xtab put $min=min($pi1,$pf2);$max=max($pi1,$pf2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 73.400000 +max 75.000000 + +mlr --xtab put $min=min($pi1,$pi2);$max=max($pi1,$pi2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 75 +max 76 + +mlr --xtab put -F $min=min($pf1,$pf2);$max=max($pf1,$pf2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 71.200000 +max 73.400000 + +mlr --xtab put -F $min=min($pf1,$pi2);$max=max($pf1,$pi2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 71.200000 +max 76.000000 + +mlr --xtab put -F $min=min($pi1,$pf2);$max=max($pi1,$pf2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 73.400000 +max 75.000000 + +mlr --xtab put -F $min=min($pi1,$pi2);$max=max($pi1,$pi2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 75.000000 +max 76.000000 + +mlr --xtab put $min=min($pf1,$pf2);$max=max($pf1,$pf2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 71.200000 +max 73.400000 + +mlr --xtab put $min=min($pf1,$pi2);$max=max($pf1,$pi2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 71.200000 +max 76.000000 + +mlr --xtab put $min=min($pi1,$pf2);$max=max($pi1,$pf2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 73.400000 +max 75.000000 + +mlr --xtab put $min=min($pi1,$pi2);$max=max($pi1,$pi2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 75 +max 76 + +mlr --xtab put -F $min=min($pf1,$pf2);$max=max($pf1,$pf2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 71.200000 +max 73.400000 + +mlr --xtab put -F $min=min($pf1,$pi2);$max=max($pf1,$pi2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 71.200000 +max 76.000000 + +mlr --xtab put -F $min=min($pi1,$pf2);$max=max($pi1,$pf2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 73.400000 +max 75.000000 + +mlr --xtab put -F $min=min($pi1,$pi2);$max=max($pi1,$pi2) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +min 75.000000 +max 76.000000 + +mlr --xtab put $sum=$pf1+$pf2;$diff=$pf1-$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +sum 144.600000 +diff -2.200000 + +mlr --xtab put $sum=$pf1+$pi2;$diff=$pf1-$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +sum 147.200000 +diff -4.800000 + +mlr --xtab put $sum=$pi1+$pf2;$diff=$pi1-$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +sum 148.400000 +diff 1.600000 + +mlr --xtab put $sum=$pi1+$pi2;$diff=$pi1-$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +sum 151 +diff -1 + +mlr --xtab put -F $sum=$pf1+$pf2;$diff=$pf1-$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +sum 144.600000 +diff -2.200000 + +mlr --xtab put -F $sum=$pf1+$pi2;$diff=$pf1-$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +sum 147.200000 +diff -4.800000 + +mlr --xtab put -F $sum=$pi1+$pf2;$diff=$pi1-$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +sum 148.400000 +diff 1.600000 + +mlr --xtab put -F $sum=$pi1+$pi2;$diff=$pi1-$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +sum 151.000000 +diff -1.000000 + +mlr --xtab put $prod=$pf1*$pf2;$quot=$pf1/$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +prod 5226.080000 +quot 0.970027 + +mlr --xtab put $prod=$pf1*$pi2;$quot=$pf1/$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +prod 5411.200000 +quot 0.936842 + +mlr --xtab put $prod=$pi1*$pf2;$quot=$pi1/$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +prod 5505.000000 +quot 1.021798 + +mlr --xtab put $prod=$pi1*$pi2;$quot=$pi1/$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +prod 5700 +quot 0.986842 + +mlr --xtab put -F $prod=$pf1*$pf2;$quot=$pf1/$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +prod 5226.080000 +quot 0.970027 + +mlr --xtab put -F $prod=$pf1*$pi2;$quot=$pf1/$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +prod 5411.200000 +quot 0.936842 + +mlr --xtab put -F $prod=$pi1*$pf2;$quot=$pi1/$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +prod 5505.000000 +quot 1.021798 + +mlr --xtab put -F $prod=$pi1*$pi2;$quot=$pi1/$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +prod 5700.000000 +quot 0.986842 + +mlr --xtab put $iquot=$pf1//$pf2;$mod=$pf1%$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +iquot 0.000000 +mod 71.200000 + +mlr --xtab put $iquot=$pf1//$pi2;$mod=$pf1%$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +iquot 0.000000 +mod 71.200000 + +mlr --xtab put $iquot=$pi1//$pf2;$mod=$pi1%$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +iquot 1.000000 +mod 1.600000 + +mlr --xtab put $iquot=$pi1//$pi2;$mod=$pi1%$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +iquot 0 +mod 75 + +mlr --xtab put -F $iquot=$pf1//$pf2;$mod=$pf1%$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +iquot 0.000000 +mod 71.200000 + +mlr --xtab put -F $iquot=$pf1//$pi2;$mod=$pf1%$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +iquot 0.000000 +mod 71.200000 + +mlr --xtab put -F $iquot=$pi1//$pf2;$mod=$pi1%$pf2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +iquot 1.000000 +mod 1.600000 + +mlr --xtab put -F $iquot=$pi1//$pi2;$mod=$pi1%$pi2 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +iquot 0.000000 +mod 75.000000 + +mlr --xtab put $a=roundm($pf1,10.0);$b=roundm($pf1,-10.0) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +a 70.000000 +b 70.000000 + +mlr --xtab put $a=roundm($pf1,10) ;$b=roundm($pf1,-10) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +a 70.000000 +b 70.000000 + +mlr --xtab put $a=roundm($pi1,10.0);$b=roundm($pi1,-10.0) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +a 80.000000 +b 80.000000 + +mlr --xtab put $a=roundm($pi1,10) ;$b=roundm($pi1,-10) ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +a 70 +b 70 + +mlr --oxtab put $z=$x+$y; $a=3+4; $b="3"."4"; $c="3"+4 +x 3 +y 4 +z 7 +a 7 +b 34 +c (error) + + +================================================================ +DSL SCIENTIFIC NOTATION IN FIELD VALUES + +mlr --opprint put $y=$x+1 ./reg_test/input/scinot.dkvp +x y +123 124 +123. 124.000000 +123.4 124.400000 +.234 1.234000 +1e2 101.000000 +1e-2 1.010000 +1.2e3 1201.000000 +1.e3 1001.000000 +1.2e-3 1.001200 +1.e-3 1.001000 +.2e3 201.000000 +.2e-3 1.000200 +1.e-3 1.001000 +-123 -122 +-123. -122.000000 +-123.4 -122.400000 +-.234 0.766000 +-1e2 -99.000000 +-1e-2 0.990000 +-1.2e3 -1199.000000 +-1.e3 -999.000000 +-1.2e-3 0.998800 +-1.e-3 0.999000 +-.2e3 -199.000000 +-.2e-3 0.999800 +-1.e-3 0.999000 + + +================================================================ +DSL SCIENTIFIC NOTATION IN EXPRESSION LITERALS + +mlr --opprint put $y = 123 + $i ./reg_test/input/scinot1.dkvp +i y +1 124 + +mlr --opprint put $y = 123. + $i ./reg_test/input/scinot1.dkvp +i y +1 124.000000 + +mlr --opprint put $y = 123.4 + $i ./reg_test/input/scinot1.dkvp +i y +1 124.400000 + +mlr --opprint put $y = .234 + $i ./reg_test/input/scinot1.dkvp +i y +1 1.234000 + +mlr --opprint put $y = 1e2 + $i ./reg_test/input/scinot1.dkvp +i y +1 101.000000 + +mlr --opprint put $y = 1e-2 + $i ./reg_test/input/scinot1.dkvp +i y +1 1.010000 + +mlr --opprint put $y = 1.2e3 + $i ./reg_test/input/scinot1.dkvp +i y +1 1201.000000 + +mlr --opprint put $y = 1.e3 + $i ./reg_test/input/scinot1.dkvp +i y +1 1001.000000 + +mlr --opprint put $y = 1.2e-3 + $i ./reg_test/input/scinot1.dkvp +i y +1 1.001200 + +mlr --opprint put $y = 1.e-3 + $i ./reg_test/input/scinot1.dkvp +i y +1 1.001000 + +mlr --opprint put $y = .2e3 + $i ./reg_test/input/scinot1.dkvp +i y +1 201.000000 + +mlr --opprint put $y = .2e-3 + $i ./reg_test/input/scinot1.dkvp +i y +1 1.000200 + +mlr --opprint put $y = 1.e-3 + $i ./reg_test/input/scinot1.dkvp +i y +1 1.001000 + +mlr --opprint put $y = -123 + $i ./reg_test/input/scinot1.dkvp +i y +1 -122 + +mlr --opprint put $y = -123. + $i ./reg_test/input/scinot1.dkvp +i y +1 -122.000000 + +mlr --opprint put $y = -123.4 + $i ./reg_test/input/scinot1.dkvp +i y +1 -122.400000 + +mlr --opprint put $y = -.234 + $i ./reg_test/input/scinot1.dkvp +i y +1 0.766000 + +mlr --opprint put $y = -1e2 + $i ./reg_test/input/scinot1.dkvp +i y +1 -99.000000 + +mlr --opprint put $y = -1e-2 + $i ./reg_test/input/scinot1.dkvp +i y +1 0.990000 + +mlr --opprint put $y = -1.2e3 + $i ./reg_test/input/scinot1.dkvp +i y +1 -1199.000000 + +mlr --opprint put $y = -1.e3 + $i ./reg_test/input/scinot1.dkvp +i y +1 -999.000000 + +mlr --opprint put $y = -1.2e-3 + $i ./reg_test/input/scinot1.dkvp +i y +1 0.998800 + +mlr --opprint put $y = -1.e-3 + $i ./reg_test/input/scinot1.dkvp +i y +1 0.999000 + +mlr --opprint put $y = -.2e3 + $i ./reg_test/input/scinot1.dkvp +i y +1 -199.000000 + +mlr --opprint put $y = -.2e-3 + $i ./reg_test/input/scinot1.dkvp +i y +1 0.999800 + +mlr --opprint put $y = -1.e-3 + $i ./reg_test/input/scinot1.dkvp +i y +1 0.999000 + + +================================================================ +DSL FROM-FILE FEATURE + +mlr put -f ./reg_test/input/put-example.dsl ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,xy=0.252048,ab=panpan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,xy=0.396146,ab=ekspan +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,xy=0.069221,ab=wyewye +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,xy=0.051180,ab=ekswye +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,xy=0.495106,ab=wyepan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,xy=0.259990,ab=zeepan +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,xy=0.114945,ab=ekszee +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,xy=0.584297,ab=zeewye +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,xy=0.023567,ab=hatwye +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,xy=0.478811,ab=panwye + +mlr filter -f ./reg_test/input/filter-example.dsl ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put -f ./reg_test/input/put-example.dsl +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,xy=0.252048,ab=panpan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,xy=0.396146,ab=ekspan +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,xy=0.069221,ab=wyewye +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,xy=0.051180,ab=ekswye +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,xy=0.495106,ab=wyepan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,xy=0.259990,ab=zeepan +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,xy=0.114945,ab=ekszee +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,xy=0.584297,ab=zeewye +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,xy=0.023567,ab=hatwye +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,xy=0.478811,ab=panwye + +mlr --from ./reg_test/input/abixy filter -f ./reg_test/input/filter-example.dsl +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy --from ./reg_test/input/abixy-het put -f ./reg_test/input/put-example.dsl +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,xy=0.252048,ab=panpan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,xy=0.396146,ab=ekspan +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,xy=0.069221,ab=wyewye +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,xy=0.051180,ab=ekswye +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,xy=0.495106,ab=wyepan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,xy=0.259990,ab=zeepan +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,xy=0.114945,ab=ekszee +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,xy=0.584297,ab=zeewye +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,xy=0.023567,ab=hatwye +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,xy=0.478811,ab=panwye +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,xy=0.252048,ab=panpan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,xy=0.396146,ab=ekspan +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,xy=0.069221,ab=wye +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,xy=0.051180,ab=eks +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,xy=0.863624,ab=wyepan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,xy=0.259990,ab=zeepan +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,xy=0.114945,ab=ekszee +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,xy=0.598554,ab=zeewye +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,xy=0.023567 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,xy=0.478811,ab=panwye + +mlr --from ./reg_test/input/abixy --from ./reg_test/input/abixy-het filter -f ./reg_test/input/filter-example.dsl +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +DSL MULTI-PART SCRIPTS + +mlr --opprint --from ./reg_test/input/abixy put -f ./reg_test/input/put-script-piece-1 +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put -f ./reg_test/input/put-script-piece-1 -f ./reg_test/input/put-script-piece-2 +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put -f ./reg_test/input/put-script-piece-1 -f ./reg_test/input/put-script-piece-2 -f ./reg_test/input/put-script-piece-3 +a b i x y o W DID +pan pan 1 0.3467901443380824 0.7268028627434533 2.073593 1 YES +eks pan 2 0.7586799647899636 0.5221511083334797 3.280831 2 YES +wye wye 3 0.20460330576630303 0.33831852551664776 3.542922 3 YES +eks wye 4 0.38139939387114097 0.13418874328430463 4.515588 4 YES +wye pan 5 0.5732889198020006 0.8636244699032729 6.436913 5 YES +zee pan 6 0.5271261600918548 0.49322128674835697 7.020347 6 YES +eks zee 7 0.6117840605678454 0.1878849191181694 7.799669 7 YES +zee wye 8 0.5985540091064224 0.976181385699006 9.574735 8 YES +hat wye 9 0.03144187646093577 0.7495507603507059 9.780993 9 YES +pan wye 10 0.5026260055412137 0.9526183602969864 11.455244 10 YES + +mlr --opprint --from ./reg_test/input/abixy put -e $xy = $x**2 + $y**2 +a b i x y xy +pan pan 1 0.3467901443380824 0.7268028627434533 0.648506 +eks pan 2 0.7586799647899636 0.5221511083334797 0.848237 +wye wye 3 0.20460330576630303 0.33831852551664776 0.156322 +eks wye 4 0.38139939387114097 0.13418874328430463 0.163472 +wye pan 5 0.5732889198020006 0.8636244699032729 1.074507 +zee pan 6 0.5271261600918548 0.49322128674835697 0.521129 +eks zee 7 0.6117840605678454 0.1878849191181694 0.409580 +zee wye 8 0.5985540091064224 0.976181385699006 1.311197 +hat wye 9 0.03144187646093577 0.7495507603507059 0.562815 +pan wye 10 0.5026260055412137 0.9526183602969864 1.160115 + +mlr --opprint --from ./reg_test/input/abixy filter -e NR == 7 +a b i x y +eks zee 7 0.6117840605678454 0.1878849191181694 + +mlr --opprint --from ./reg_test/input/abixy put -e print "PRE"; -f ./reg_test/input/put-script-piece-1 -f ./reg_test/input/put-script-piece-2 -f ./reg_test/input/put-script-piece-3 -e print "POST" +PRE +POST +PRE +POST +PRE +POST +PRE +POST +PRE +POST +PRE +POST +PRE +POST +PRE +POST +PRE +POST +PRE +POST +a b i x y o W DID +pan pan 1 0.3467901443380824 0.7268028627434533 2.073593 1 YES +eks pan 2 0.7586799647899636 0.5221511083334797 3.280831 2 YES +wye wye 3 0.20460330576630303 0.33831852551664776 3.542922 3 YES +eks wye 4 0.38139939387114097 0.13418874328430463 4.515588 4 YES +wye pan 5 0.5732889198020006 0.8636244699032729 6.436913 5 YES +zee pan 6 0.5271261600918548 0.49322128674835697 7.020347 6 YES +eks zee 7 0.6117840605678454 0.1878849191181694 7.799669 7 YES +zee wye 8 0.5985540091064224 0.976181385699006 9.574735 8 YES +hat wye 9 0.03144187646093577 0.7495507603507059 9.780993 9 YES +pan wye 10 0.5026260055412137 0.9526183602969864 11.455244 10 YES + +mlr --opprint --from ./reg_test/input/abixy filter -f ./reg_test/input/filter-script-piece-1 +a b i x y +eks pan 2 0.7586799647899636 0.5221511083334797 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy filter -f ./reg_test/input/filter-script-piece-1 -f ./reg_test/input/filter-script-piece-2 +a b i x y +eks pan 2 0.7586799647899636 0.5221511083334797 + + +================================================================ +UTF-8 STRLEN + +mlr --inidx --ifs comma --oxtab put $s1=strlen($1);$s2=strlen($2);$s3=strlen($3);$s4=strlen($4) ./reg_test/input/utf8-align.dkvp +1 191º=test +2 1912=test2 +3 cois=çais +4 çois=cais +s1 9 +s2 10 +s3 9 +s4 9 + +1 191º=test +2 1912=test2 +3 ois=çais +4 çois=cais +s1 9 +s2 10 +s3 8 +s4 9 + +1 191º=test +2 1912=test2 +3 coise=çais +4 çois=cais +s1 9 +s2 10 +s3 10 +s4 9 + + +================================================================ +STATS1/STEP INT/FLOAT + +mlr --opprint step -a rsum,delta,counter -f x,y,z ./reg_test/input/int-float.dkvp +x y z x_rsum x_delta x_counter y_rsum y_delta y_counter z_rsum z_delta z_counter +1 10.1 20 1 0 1 10.100000 0 1 20 0 1 +2 10.2 30 3 1 2 20.300000 0.100000 2 50 10 2 +3 10.3 40.8 6 1 3 30.600000 0.100000 3 90.800000 10.800000 3 + +mlr --opprint step -F -a rsum,delta,counter -f x,y,z ./reg_test/input/int-float.dkvp +x y z x_rsum x_delta x_counter y_rsum y_delta y_counter z_rsum z_delta z_counter +1 10.1 20 1.000000 0.000000 1.000000 10.100000 0.000000 1.000000 20.000000 0.000000 1.000000 +2 10.2 30 3.000000 1.000000 2.000000 20.300000 0.100000 2.000000 50.000000 10.000000 2.000000 +3 10.3 40.8 6.000000 1.000000 3.000000 30.600000 0.100000 3.000000 90.800000 10.800000 3.000000 + +mlr --oxtab stats1 -a min,max,sum,count -f x,y,z ./reg_test/input/int-float.dkvp +x_min 1 +x_max 3 +x_sum 6 +x_count 3 +y_min 10.100000 +y_max 10.300000 +y_sum 30.600000 +y_count 3 +z_min 20.000000 +z_max 40.800000 +z_sum 90.800000 +z_count 3 + +mlr --oxtab stats1 -F -a min,max,sum,count -f x,y,z ./reg_test/input/int-float.dkvp +x_min 1 +x_max 3 +x_sum 6.000000 +x_count 3.000000 +y_min 10.100000 +y_max 10.300000 +y_sum 30.600000 +y_count 3.000000 +z_min 20.000000 +z_max 40.800000 +z_sum 90.800000 +z_count 3.000000 + + +================================================================ +DSL PYTHONIC DIVISION + +mlr --xtab put $quot=$pf1/10.0;$iquot=$pf1//10.0;$mod=$pf1%10.0 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot 7.120000 +iquot 7.000000 +mod 1.200000 + +mlr --xtab put $quot=$pi1/10 ;$iquot=$pi1//10 ;$mod=$pi1%10 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot 7.500000 +iquot 7 +mod 5 + +mlr --xtab put $quot=$nf1/10.0;$iquot=$nf1//10.0;$mod=$nf1%10.0 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot -7.120000 +iquot -8.000000 +mod 8.800000 + +mlr --xtab put $quot=$ni1/10 ;$iquot=$ni1//10 ;$mod=$ni1%10 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot -7.500000 +iquot -8 +mod 5 + +mlr --xtab put -F $quot=$pf1/10.0;$iquot=$pf1//10.0;$mod=$pf1%10.0 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot 7.120000 +iquot 7.000000 +mod 1.200000 + +mlr --xtab put -F $quot=$pi1/10 ;$iquot=$pi1//10 ;$mod=$pi1%10 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot 7.500000 +iquot 7.000000 +mod 5.000000 + +mlr --xtab put -F $quot=$nf1/10.0;$iquot=$nf1//10.0;$mod=$nf1%10.0 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot -7.120000 +iquot -8.000000 +mod 8.800000 + +mlr --xtab put -F $quot=$ni1/10 ;$iquot=$ni1//10 ;$mod=$ni1%10 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot -7.500000 +iquot -8.000000 +mod 5.000000 + +mlr --xtab put $quot=$pf1/-10.0;$iquot=$pf1//-10.0;$mod=$pf1%-10.0 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot -7.120000 +iquot -8.000000 +mod -8.800000 + +mlr --xtab put $quot=$pi1/-10 ;$iquot=$pi1//-10 ;$mod=$pi1%-10 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot -7.500000 +iquot -8 +mod -5 + +mlr --xtab put $quot=$nf1/-10.0;$iquot=$nf1//-10.0;$mod=$nf1%-10.0 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot 7.120000 +iquot 7.000000 +mod -1.200000 + +mlr --xtab put $quot=$ni1/-10 ;$iquot=$ni1//-10 ;$mod=$ni1%-10 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot 7.500000 +iquot 7 +mod -5 + +mlr --xtab put -F $quot=$pf1/-10.0;$iquot=$pf1//-10.0;$mod=$pf1%-10.0 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot -7.120000 +iquot -8.000000 +mod -8.800000 + +mlr --xtab put -F $quot=$pi1/-10 ;$iquot=$pi1//-10 ;$mod=$pi1%-10 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot -7.500000 +iquot -8.000000 +mod -5.000000 + +mlr --xtab put -F $quot=$nf1/-10.0;$iquot=$nf1//-10.0;$mod=$nf1%-10.0 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot 7.120000 +iquot 7.000000 +mod -1.200000 + +mlr --xtab put -F $quot=$ni1/-10 ;$iquot=$ni1//-10 ;$mod=$ni1%-10 ./reg_test/input/mixed-types.xtab +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 +quot 7.500000 +iquot 7.000000 +mod -5.000000 + + +================================================================ +DSL REGEX MATCHING + +mlr filter -v $x =~ "bcd" ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="bcd", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="bcd", type=STRING_LITERAL. + +x=abcd,y=ghi +x=abcde,y=ghi + +mlr filter -v $x =~ "^bcd" ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^bcd", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^bcd", type=STRING_LITERAL. + + +mlr filter -v $x =~ "^abc" ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^abc", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^abc", type=STRING_LITERAL. + +x=abc,y=def +x=abcd,y=ghi +x=abcde,y=ghi + +mlr filter -v $x =~ "^abc$" ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^abc$", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^abc$", type=STRING_LITERAL. + +x=abc,y=def + +mlr filter -v $x =~ "^a.*d$" ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^a.*d$", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^a.*d$", type=STRING_LITERAL. + +x=abcd,y=ghi + +mlr filter -v $x =~ "^a.*"."d$" ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text=".", type=OPERATOR: + text="^a.*", type=STRING_LITERAL. + text="d$", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text=".", type=OPERATOR: + text="^a.*", type=STRING_LITERAL. + text="d$", type=STRING_LITERAL. + +x=abcd,y=ghi + +mlr filter -v $y =~ "\".." ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="y", type=FIELD_NAME. + text=""..", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="y", type=FIELD_NAME. + text=""..", type=STRING_LITERAL. + +x=ABCDE,y="GHI" + +mlr filter -v $x =~ "bcd"i ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="bcd", type=REGEXI. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="bcd", type=REGEXI. + +x=abcd,y=ghi +x=ABCD,y=GHI +x=abcde,y=ghi +x=ABCDE,y=GHI +x=ABCDE,y="GHI" + +mlr filter -v $x =~ "^bcd"i ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^bcd", type=REGEXI. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^bcd", type=REGEXI. + + +mlr filter -v $x =~ "^abc"i ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^abc", type=REGEXI. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^abc", type=REGEXI. + +x=abc,y=def +x=ABC,y=DEF +x=abcd,y=ghi +x=ABCD,y=GHI +x=abcde,y=ghi +x=ABCDE,y=GHI +x=ABCDE,y="GHI" + +mlr filter -v $x =~ "^abc$"i ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^abc$", type=REGEXI. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^abc$", type=REGEXI. + +x=abc,y=def +x=ABC,y=DEF + +mlr filter -v $x =~ "^a.*d$"i ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^a.*d$", type=REGEXI. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text="^a.*d$", type=REGEXI. + +x=abcd,y=ghi +x=ABCD,y=GHI + +mlr filter -v $x =~ "^a.*"."d$"i ./reg_test/input/regex.dkvp +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text=".", type=OPERATOR: + text="^a.*", type=STRING_LITERAL. + text="d$", type=REGEXI. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=~", type=OPERATOR: + text="x", type=FIELD_NAME. + text=".", type=OPERATOR: + text="^a.*", type=STRING_LITERAL. + text="d$", type=REGEXI. + +x=abcd,y=ghi + +mlr --csv filter $text =~ "." ./reg_test/input/dot-match.csv +text +hi +a.b +bye + +mlr --csv filter $text =~ "\." ./reg_test/input/dot-match.csv +text +a.b + + +================================================================ +DSL TYPED OVERLAY + +mlr put $y = string($x); $z=$y.$y ./reg_test/input/int-float.dkvp +x=1,y=1,z=11 +x=2,y=2,z=22 +x=3,y=3,z=33 + +mlr put $z=string($x).string($x) ./reg_test/input/int-float.dkvp +x=1,y=10.1,z=11 +x=2,y=10.2,z=22 +x=3,y=10.3,z=33 + +mlr put $y = string($x) then put $z=$y.$y ./reg_test/input/int-float.dkvp +x=1,y=1,z=11 +x=2,y=2,z=22 +x=3,y=3,z=33 + +mlr put $a="hello" then put $b=$a." world";$z=$x+$y;$c=$b;$a=sub($b,"hello","farewell") ./reg_test/input/int-float.dkvp +x=1,y=10.1,z=11.100000,a=farewell world,b=hello world,c=hello world +x=2,y=10.2,z=12.200000,a=farewell world,b=hello world,c=hello world +x=3,y=10.3,z=13.300000,a=farewell world,b=hello world,c=hello world + + +================================================================ +DSL REGEX CAPTURES + +mlr --opprint put $FIELD =~ "([A-Z]+)([0-9]+)"; $F1="\1"; $F2="\2"; $F3="\3" ./reg_test/input/capture.dkvp +FIELD F1 F2 F3 +ABC123 ABC 123 - +ABC..123 - - - +..ABC..123.. - - - +none of the above - - - + +mlr --opprint put $FIELD =~ "([A-Z]+)[^0-9]*([0-9]+)"; $F1="\1"; $F2="\2"; $F3="\3" ./reg_test/input/capture.dkvp +FIELD F1 F2 F3 +ABC123 ABC 123 - +ABC..123 ABC 123 - +..ABC..123.. ABC 123 - +none of the above - - - + +mlr --opprint put $FIELD =~ "([A-Z]+)([0-9]+)" then put $F1="\1"; $F2="\2"; $F3="\3" ./reg_test/input/capture.dkvp +FIELD F1 F2 F3 +ABC123 \1 \2 \3 +ABC..123 \1 \2 \3 +..ABC..123.. \1 \2 \3 +none of the above \1 \2 \3 + +mlr --opprint put $FIELD =~ "([A-Z]+)[^0-9]*([0-9]+)" then put $F1="\1"; $F2="\2"; $F3="\3" ./reg_test/input/capture.dkvp +FIELD F1 F2 F3 +ABC123 \1 \2 \3 +ABC..123 \1 \2 \3 +..ABC..123.. \1 \2 \3 +none of the above \1 \2 \3 + +mlr --opprint put $FIELD =~ "....."; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc - - - - - - - - - - +abcd - - - - - - - - - - +abcde abcde - - - - - - - - - +abcdef abcde - - - - - - - - - +abcdefg abcde - - - - - - - - - +abcdefgh abcde - - - - - - - - - +abcdefghi abcde - - - - - - - - - +abcdefghij abcde - - - - - - - - - +abcdefghijk abcde - - - - - - - - - +abcdefghijkl abcde - - - - - - - - - + +mlr --opprint put $FIELD =~ "....." {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab +abc +abcd + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcde abcde - - - - - - - - - +abcdef abcde - - - - - - - - - +abcdefg abcde - - - - - - - - - +abcdefgh abcde - - - - - - - - - +abcdefghi abcde - - - - - - - - - +abcdefghij abcde - - - - - - - - - +abcdefghijk abcde - - - - - - - - - +abcdefghijkl abcde - - - - - - - - - + +mlr --opprint put filter $FIELD =~ "....."; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcde abcde - - - - - - - - - +abcdef abcde - - - - - - - - - +abcdefg abcde - - - - - - - - - +abcdefgh abcde - - - - - - - - - +abcdefghi abcde - - - - - - - - - +abcdefghij abcde - - - - - - - - - +abcdefghijk abcde - - - - - - - - - +abcdefghijkl abcde - - - - - - - - - + +mlr --opprint put $FIELD =~ "(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a a a - - - - - - - - +ab a a - - - - - - - - +abc a a - - - - - - - - +abcd a a - - - - - - - - +abcde a a - - - - - - - - +abcdef a a - - - - - - - - +abcdefg a a - - - - - - - - +abcdefgh a a - - - - - - - - +abcdefghi a a - - - - - - - - +abcdefghij a a - - - - - - - - +abcdefghijk a a - - - - - - - - +abcdefghijkl a a - - - - - - - - + +mlr --opprint put $FIELD =~ "(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab ab a b - - - - - - - +abc ab a b - - - - - - - +abcd ab a b - - - - - - - +abcde ab a b - - - - - - - +abcdef ab a b - - - - - - - +abcdefg ab a b - - - - - - - +abcdefgh ab a b - - - - - - - +abcdefghi ab a b - - - - - - - +abcdefghij ab a b - - - - - - - +abcdefghijk ab a b - - - - - - - +abcdefghijkl ab a b - - - - - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc abc a b c - - - - - - +abcd abc a b c - - - - - - +abcde abc a b c - - - - - - +abcdef abc a b c - - - - - - +abcdefg abc a b c - - - - - - +abcdefgh abc a b c - - - - - - +abcdefghi abc a b c - - - - - - +abcdefghij abc a b c - - - - - - +abcdefghijk abc a b c - - - - - - +abcdefghijkl abc a b c - - - - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc - - - - - - - - - - +abcd abcd a b c d - - - - - +abcde abcd a b c d - - - - - +abcdef abcd a b c d - - - - - +abcdefg abcd a b c d - - - - - +abcdefgh abcd a b c d - - - - - +abcdefghi abcd a b c d - - - - - +abcdefghij abcd a b c d - - - - - +abcdefghijk abcd a b c d - - - - - +abcdefghijkl abcd a b c d - - - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc - - - - - - - - - - +abcd - - - - - - - - - - +abcde abcde a b c d e - - - - +abcdef abcde a b c d e - - - - +abcdefg abcde a b c d e - - - - +abcdefgh abcde a b c d e - - - - +abcdefghi abcde a b c d e - - - - +abcdefghij abcde a b c d e - - - - +abcdefghijk abcde a b c d e - - - - +abcdefghijkl abcde a b c d e - - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc - - - - - - - - - - +abcd - - - - - - - - - - +abcde - - - - - - - - - - +abcdef abcdef a b c d e f - - - +abcdefg abcdef a b c d e f - - - +abcdefgh abcdef a b c d e f - - - +abcdefghi abcdef a b c d e f - - - +abcdefghij abcdef a b c d e f - - - +abcdefghijk abcdef a b c d e f - - - +abcdefghijkl abcdef a b c d e f - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc - - - - - - - - - - +abcd - - - - - - - - - - +abcde - - - - - - - - - - +abcdef - - - - - - - - - - +abcdefg abcdefg a b c d e f g - - +abcdefgh abcdefg a b c d e f g - - +abcdefghi abcdefg a b c d e f g - - +abcdefghij abcdefg a b c d e f g - - +abcdefghijk abcdefg a b c d e f g - - +abcdefghijkl abcdefg a b c d e f g - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc - - - - - - - - - - +abcd - - - - - - - - - - +abcde - - - - - - - - - - +abcdef - - - - - - - - - - +abcdefg - - - - - - - - - - +abcdefgh abcdefgh a b c d e f g h - +abcdefghi abcdefgh a b c d e f g h - +abcdefghij abcdefgh a b c d e f g h - +abcdefghijk abcdefgh a b c d e f g h - +abcdefghijkl abcdefgh a b c d e f g h - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc - - - - - - - - - - +abcd - - - - - - - - - - +abcde - - - - - - - - - - +abcdef - - - - - - - - - - +abcdefg - - - - - - - - - - +abcdefgh - - - - - - - - - - +abcdefghi abcdefghi a b c d e f g h i +abcdefghij abcdefghi a b c d e f g h i +abcdefghijk abcdefghi a b c d e f g h i +abcdefghijkl abcdefghi a b c d e f g h i + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +- - - - - - - - - - - +a - - - - - - - - - - +ab - - - - - - - - - - +abc - - - - - - - - - - +abcd - - - - - - - - - - +abcde - - - - - - - - - - +abcdef - - - - - - - - - - +abcdefg - - - - - - - - - - +abcdefgh - - - - - - - - - - +abcdefghi - - - - - - - - - - +abcdefghij abcdefghij a b c d e f g h i +abcdefghijk abcdefghij a b c d e f g h i +abcdefghijkl abcdefghij a b c d e f g h i + +mlr --opprint put $FIELD =~ "(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +a a a - - - - - - - - +ab a a - - - - - - - - +abc a a - - - - - - - - +abcd a a - - - - - - - - +abcde a a - - - - - - - - +abcdef a a - - - - - - - - +abcdefg a a - - - - - - - - +abcdefgh a a - - - - - - - - +abcdefghi a a - - - - - - - - +abcdefghij a a - - - - - - - - +abcdefghijk a a - - - - - - - - +abcdefghijkl a a - - - - - - - - + +mlr --opprint put $FIELD =~ "(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +ab ab a b - - - - - - - +abc ab a b - - - - - - - +abcd ab a b - - - - - - - +abcde ab a b - - - - - - - +abcdef ab a b - - - - - - - +abcdefg ab a b - - - - - - - +abcdefgh ab a b - - - - - - - +abcdefghi ab a b - - - - - - - +abcdefghij ab a b - - - - - - - +abcdefghijk ab a b - - - - - - - +abcdefghijkl ab a b - - - - - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abc abc a b c - - - - - - +abcd abc a b c - - - - - - +abcde abc a b c - - - - - - +abcdef abc a b c - - - - - - +abcdefg abc a b c - - - - - - +abcdefgh abc a b c - - - - - - +abcdefghi abc a b c - - - - - - +abcdefghij abc a b c - - - - - - +abcdefghijk abc a b c - - - - - - +abcdefghijkl abc a b c - - - - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab +abc + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcd abcd a b c d - - - - - +abcde abcd a b c d - - - - - +abcdef abcd a b c d - - - - - +abcdefg abcd a b c d - - - - - +abcdefgh abcd a b c d - - - - - +abcdefghi abcd a b c d - - - - - +abcdefghij abcd a b c d - - - - - +abcdefghijk abcd a b c d - - - - - +abcdefghijkl abcd a b c d - - - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab +abc +abcd + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcde abcde a b c d e - - - - +abcdef abcde a b c d e - - - - +abcdefg abcde a b c d e - - - - +abcdefgh abcde a b c d e - - - - +abcdefghi abcde a b c d e - - - - +abcdefghij abcde a b c d e - - - - +abcdefghijk abcde a b c d e - - - - +abcdefghijkl abcde a b c d e - - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab +abc +abcd +abcde + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdef abcdef a b c d e f - - - +abcdefg abcdef a b c d e f - - - +abcdefgh abcdef a b c d e f - - - +abcdefghi abcdef a b c d e f - - - +abcdefghij abcdef a b c d e f - - - +abcdefghijk abcdef a b c d e f - - - +abcdefghijkl abcdef a b c d e f - - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab +abc +abcd +abcde +abcdef + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdefg abcdefg a b c d e f g - - +abcdefgh abcdefg a b c d e f g - - +abcdefghi abcdefg a b c d e f g - - +abcdefghij abcdefg a b c d e f g - - +abcdefghijk abcdefg a b c d e f g - - +abcdefghijkl abcdefg a b c d e f g - - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab +abc +abcd +abcde +abcdef +abcdefg + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdefgh abcdefgh a b c d e f g h - +abcdefghi abcdefgh a b c d e f g h - +abcdefghij abcdefgh a b c d e f g h - +abcdefghijk abcdefgh a b c d e f g h - +abcdefghijkl abcdefgh a b c d e f g h - + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab +abc +abcd +abcde +abcdef +abcdefg +abcdefgh + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdefghi abcdefghi a b c d e f g h i +abcdefghij abcdefghi a b c d e f g h i +abcdefghijk abcdefghi a b c d e f g h i +abcdefghijkl abcdefghi a b c d e f g h i + +mlr --opprint put $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)" {$F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"} ./reg_test/input/capture-lengths.dkvp +FIELD +- +a +ab +abc +abcd +abcde +abcdef +abcdefg +abcdefgh +abcdefghi + +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdefghij abcdefghij a b c d e f g h i +abcdefghijk abcdefghij a b c d e f g h i +abcdefghijkl abcdefghij a b c d e f g h i + +mlr --opprint put filter $FIELD =~ "(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +a a a - - - - - - - - +ab a a - - - - - - - - +abc a a - - - - - - - - +abcd a a - - - - - - - - +abcde a a - - - - - - - - +abcdef a a - - - - - - - - +abcdefg a a - - - - - - - - +abcdefgh a a - - - - - - - - +abcdefghi a a - - - - - - - - +abcdefghij a a - - - - - - - - +abcdefghijk a a - - - - - - - - +abcdefghijkl a a - - - - - - - - + +mlr --opprint put filter $FIELD =~ "(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +ab ab a b - - - - - - - +abc ab a b - - - - - - - +abcd ab a b - - - - - - - +abcde ab a b - - - - - - - +abcdef ab a b - - - - - - - +abcdefg ab a b - - - - - - - +abcdefgh ab a b - - - - - - - +abcdefghi ab a b - - - - - - - +abcdefghij ab a b - - - - - - - +abcdefghijk ab a b - - - - - - - +abcdefghijkl ab a b - - - - - - - + +mlr --opprint put filter $FIELD =~ "(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abc abc a b c - - - - - - +abcd abc a b c - - - - - - +abcde abc a b c - - - - - - +abcdef abc a b c - - - - - - +abcdefg abc a b c - - - - - - +abcdefgh abc a b c - - - - - - +abcdefghi abc a b c - - - - - - +abcdefghij abc a b c - - - - - - +abcdefghijk abc a b c - - - - - - +abcdefghijkl abc a b c - - - - - - + +mlr --opprint put filter $FIELD =~ "(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcd abcd a b c d - - - - - +abcde abcd a b c d - - - - - +abcdef abcd a b c d - - - - - +abcdefg abcd a b c d - - - - - +abcdefgh abcd a b c d - - - - - +abcdefghi abcd a b c d - - - - - +abcdefghij abcd a b c d - - - - - +abcdefghijk abcd a b c d - - - - - +abcdefghijkl abcd a b c d - - - - - + +mlr --opprint put filter $FIELD =~ "(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcde abcde a b c d e - - - - +abcdef abcde a b c d e - - - - +abcdefg abcde a b c d e - - - - +abcdefgh abcde a b c d e - - - - +abcdefghi abcde a b c d e - - - - +abcdefghij abcde a b c d e - - - - +abcdefghijk abcde a b c d e - - - - +abcdefghijkl abcde a b c d e - - - - + +mlr --opprint put filter $FIELD =~ "(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdef abcdef a b c d e f - - - +abcdefg abcdef a b c d e f - - - +abcdefgh abcdef a b c d e f - - - +abcdefghi abcdef a b c d e f - - - +abcdefghij abcdef a b c d e f - - - +abcdefghijk abcdef a b c d e f - - - +abcdefghijkl abcdef a b c d e f - - - + +mlr --opprint put filter $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdefg abcdefg a b c d e f g - - +abcdefgh abcdefg a b c d e f g - - +abcdefghi abcdefg a b c d e f g - - +abcdefghij abcdefg a b c d e f g - - +abcdefghijk abcdefg a b c d e f g - - +abcdefghijkl abcdefg a b c d e f g - - + +mlr --opprint put filter $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdefgh abcdefgh a b c d e f g h - +abcdefghi abcdefgh a b c d e f g h - +abcdefghij abcdefgh a b c d e f g h - +abcdefghijk abcdefgh a b c d e f g h - +abcdefghijkl abcdefgh a b c d e f g h - + +mlr --opprint put filter $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdefghi abcdefghi a b c d e f g h i +abcdefghij abcdefghi a b c d e f g h i +abcdefghijk abcdefghi a b c d e f g h i +abcdefghijkl abcdefghi a b c d e f g h i + +mlr --opprint put filter $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9" ./reg_test/input/capture-lengths.dkvp +FIELD F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 +abcdefghij abcdefghij a b c d e f g h i +abcdefghijk abcdefghij a b c d e f g h i +abcdefghijkl abcdefghij a b c d e f g h i + +mlr --inidx --odkvp put $1 =~ "ab(.)d(..)g" { $c1 = "\1"; $c2 = "\2"} +1=abcdefg,c1=c,c2=ef + +mlr --inidx --odkvp put $1 =~ "ab(.)?d(..)g" { $c1 = "\1"; $c2 = "\2"} +1=abcdefg,c1=c,c2=ef + +mlr --inidx --odkvp put $1 =~ "ab(c)?d(..)g" { $c1 = "\1"; $c2 = "\2"} +1=abXdefg + +mlr --inidx --odkvp put $1 =~ "ab(c)?d(..)g" { $c1 = "\1"; $c2 = "\2"} +1=abdefg,c1=,c2=ef + + +================================================================ +DSL FILTER/PATTERN-ACTION + +mlr --opprint put $x > 0.5; $z = "flag" ./reg_test/input/abixy +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 flag +eks pan 2 0.7586799647899636 0.5221511083334797 flag +wye wye 3 0.20460330576630303 0.33831852551664776 flag +eks wye 4 0.38139939387114097 0.13418874328430463 flag +wye pan 5 0.5732889198020006 0.8636244699032729 flag +zee pan 6 0.5271261600918548 0.49322128674835697 flag +eks zee 7 0.6117840605678454 0.1878849191181694 flag +zee wye 8 0.5985540091064224 0.976181385699006 flag +hat wye 9 0.03144187646093577 0.7495507603507059 flag +pan wye 10 0.5026260055412137 0.9526183602969864 flag + +mlr --opprint put !($x > 0.5); $z = "flag" ./reg_test/input/abixy +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 flag +eks pan 2 0.7586799647899636 0.5221511083334797 flag +wye wye 3 0.20460330576630303 0.33831852551664776 flag +eks wye 4 0.38139939387114097 0.13418874328430463 flag +wye pan 5 0.5732889198020006 0.8636244699032729 flag +zee pan 6 0.5271261600918548 0.49322128674835697 flag +eks zee 7 0.6117840605678454 0.1878849191181694 flag +zee wye 8 0.5985540091064224 0.976181385699006 flag +hat wye 9 0.03144187646093577 0.7495507603507059 flag +pan wye 10 0.5026260055412137 0.9526183602969864 flag + +mlr --opprint put filter $x > 0.5; $z = "flag" ./reg_test/input/abixy +a b i x y z +eks pan 2 0.7586799647899636 0.5221511083334797 flag +wye pan 5 0.5732889198020006 0.8636244699032729 flag +zee pan 6 0.5271261600918548 0.49322128674835697 flag +eks zee 7 0.6117840605678454 0.1878849191181694 flag +zee wye 8 0.5985540091064224 0.976181385699006 flag +pan wye 10 0.5026260055412137 0.9526183602969864 flag + +mlr --opprint put $x > 0.5 {$z = "flag"} ./reg_test/input/abixy +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 + +a b i x y z +eks pan 2 0.7586799647899636 0.5221511083334797 flag + +a b i x y +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 + +a b i x y z +wye pan 5 0.5732889198020006 0.8636244699032729 flag +zee pan 6 0.5271261600918548 0.49322128674835697 flag +eks zee 7 0.6117840605678454 0.1878849191181694 flag +zee wye 8 0.5985540091064224 0.976181385699006 flag + +a b i x y +hat wye 9 0.03144187646093577 0.7495507603507059 + +a b i x y z +pan wye 10 0.5026260055412137 0.9526183602969864 flag + +mlr --opprint put filter !($x > 0.5); $z = "flag" ./reg_test/input/abixy +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 flag +wye wye 3 0.20460330576630303 0.33831852551664776 flag +eks wye 4 0.38139939387114097 0.13418874328430463 flag +hat wye 9 0.03144187646093577 0.7495507603507059 flag + +mlr --opprint put !($x > 0.5) {$z = "flag"} ./reg_test/input/abixy +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 flag + +a b i x y +eks pan 2 0.7586799647899636 0.5221511083334797 + +a b i x y z +wye wye 3 0.20460330576630303 0.33831852551664776 flag +eks wye 4 0.38139939387114097 0.13418874328430463 flag + +a b i x y +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 + +a b i x y z +hat wye 9 0.03144187646093577 0.7495507603507059 flag + +a b i x y +pan wye 10 0.5026260055412137 0.9526183602969864 + + +================================================================ +DSL GMT DATE/TIME FUNCTIONS + +mlr --csvlite put $gmt = sec2gmt($sec) ./reg_test/input/sec2gmt +n,sec,gmt +1,0,1970-01-01T00:00:00Z +2,1,1970-01-01T00:00:01Z +3,10,1970-01-01T00:00:10Z +4,100,1970-01-01T00:01:40Z +5,1000,1970-01-01T00:16:40Z +6,10000,1970-01-01T02:46:40Z +7,100000,1970-01-02T03:46:40Z +8,1000000,1970-01-12T13:46:40Z +9,10000000,1970-04-26T17:46:40Z +10,100000000,1973-03-03T09:46:40Z +11,1000000000,2001-09-09T01:46:40Z +12,1432036180,2015-05-19T11:49:40Z +13,1500000000,2017-07-14T02:40:00Z +14,2000000000,2033-05-18T03:33:20Z +15,2000000000.,2033-05-18T03:33:20Z +16,2000000000.0,2033-05-18T03:33:20Z +17,2000000000.00,2033-05-18T03:33:20Z +18,2000000000.123400,2033-05-18T03:33:20Z +19,2000000000.123456,2033-05-18T03:33:20Z +20,2000000000.999,2033-05-18T03:33:20Z +21,2000000000.999999,2033-05-18T03:33:20Z +22,2000000000.999999999,2033-05-18T03:33:21Z +23,, +24,x,x +25,123x,123x + +mlr --csvlite put $gmt = sec2gmt($sec,1) ./reg_test/input/sec2gmt +n,sec,gmt +1,0,1970-01-01T00:00:00.0Z +2,1,1970-01-01T00:00:01.0Z +3,10,1970-01-01T00:00:10.0Z +4,100,1970-01-01T00:01:40.0Z +5,1000,1970-01-01T00:16:40.0Z +6,10000,1970-01-01T02:46:40.0Z +7,100000,1970-01-02T03:46:40.0Z +8,1000000,1970-01-12T13:46:40.0Z +9,10000000,1970-04-26T17:46:40.0Z +10,100000000,1973-03-03T09:46:40.0Z +11,1000000000,2001-09-09T01:46:40.0Z +12,1432036180,2015-05-19T11:49:40.0Z +13,1500000000,2017-07-14T02:40:00.0Z +14,2000000000,2033-05-18T03:33:20.0Z +15,2000000000.,2033-05-18T03:33:20.0Z +16,2000000000.0,2033-05-18T03:33:20.0Z +17,2000000000.00,2033-05-18T03:33:20.0Z +18,2000000000.123400,2033-05-18T03:33:20.1Z +19,2000000000.123456,2033-05-18T03:33:20.1Z +20,2000000000.999,2033-05-18T03:33:20.9Z +21,2000000000.999999,2033-05-18T03:33:20.9Z +22,2000000000.999999999,2033-05-18T03:33:21.0Z +23,, +24,x,x +25,123x,123x + +mlr --csvlite put $gmt = sec2gmt($sec,3) ./reg_test/input/sec2gmt +n,sec,gmt +1,0,1970-01-01T00:00:00.000Z +2,1,1970-01-01T00:00:01.000Z +3,10,1970-01-01T00:00:10.000Z +4,100,1970-01-01T00:01:40.000Z +5,1000,1970-01-01T00:16:40.000Z +6,10000,1970-01-01T02:46:40.000Z +7,100000,1970-01-02T03:46:40.000Z +8,1000000,1970-01-12T13:46:40.000Z +9,10000000,1970-04-26T17:46:40.000Z +10,100000000,1973-03-03T09:46:40.000Z +11,1000000000,2001-09-09T01:46:40.000Z +12,1432036180,2015-05-19T11:49:40.000Z +13,1500000000,2017-07-14T02:40:00.000Z +14,2000000000,2033-05-18T03:33:20.000Z +15,2000000000.,2033-05-18T03:33:20.000Z +16,2000000000.0,2033-05-18T03:33:20.000Z +17,2000000000.00,2033-05-18T03:33:20.000Z +18,2000000000.123400,2033-05-18T03:33:20.123Z +19,2000000000.123456,2033-05-18T03:33:20.123Z +20,2000000000.999,2033-05-18T03:33:20.999Z +21,2000000000.999999,2033-05-18T03:33:20.999Z +22,2000000000.999999999,2033-05-18T03:33:21.000Z +23,, +24,x,x +25,123x,123x + +mlr --csvlite put $gmt = sec2gmt($sec,6) ./reg_test/input/sec2gmt +n,sec,gmt +1,0,1970-01-01T00:00:00.000000Z +2,1,1970-01-01T00:00:01.000000Z +3,10,1970-01-01T00:00:10.000000Z +4,100,1970-01-01T00:01:40.000000Z +5,1000,1970-01-01T00:16:40.000000Z +6,10000,1970-01-01T02:46:40.000000Z +7,100000,1970-01-02T03:46:40.000000Z +8,1000000,1970-01-12T13:46:40.000000Z +9,10000000,1970-04-26T17:46:40.000000Z +10,100000000,1973-03-03T09:46:40.000000Z +11,1000000000,2001-09-09T01:46:40.000000Z +12,1432036180,2015-05-19T11:49:40.000000Z +13,1500000000,2017-07-14T02:40:00.000000Z +14,2000000000,2033-05-18T03:33:20.000000Z +15,2000000000.,2033-05-18T03:33:20.000000Z +16,2000000000.0,2033-05-18T03:33:20.000000Z +17,2000000000.00,2033-05-18T03:33:20.000000Z +18,2000000000.123400,2033-05-18T03:33:20.123400Z +19,2000000000.123456,2033-05-18T03:33:20.123456Z +20,2000000000.999,2033-05-18T03:33:20.999000Z +21,2000000000.999999,2033-05-18T03:33:20.999999Z +22,2000000000.999999999,2033-05-18T03:33:21.000000Z +23,, +24,x,x +25,123x,123x + +mlr --csvlite put $sec = gmt2sec($gmt) ./reg_test/input/gmt2sec +gmt,sec +1970-01-01T00:00:00Z,0.000000 +1970-01-01T00:00:00.Z,0.000000 +1970-01-01T00:00:01Z,1.000000 +1970-01-01T00:00:01.0Z,1.000000 +1970-01-01T00:00:10Z,10.000000 +1970-01-01T00:00:10.00Z,10.000000 +1970-01-01T00:01:40Z,100.000000 +1970-01-01T00:01:40.1Z,100.100000 +1970-01-01T00:16:40Z,1000.000000 +1970-01-01T00:16:40.12Z,1000.120000 +1970-01-01T02:46:40Z,10000.000000 +1970-01-01T02:46:40.123Z,10000.123000 +1970-01-02T03:46:40Z,100000.000000 +1970-01-02T03:46:40.1234Z,100000.123400 +1970-01-12T13:46:40Z,1000000.000000 +1970-01-12T13:46:40.12345Z,1000000.123450 +1970-04-26T17:46:40Z,10000000.000000 +1970-04-26T17:46:40.123456Z,10000000.123456 +1973-03-03T09:46:40Z,100000000.000000 +1973-03-03T09:46:40.1234567Z,100000000.123457 +2001-09-09T01:46:40Z,1000000000.000000 +2001-09-09T01:46:40.12345678Z,1000000000.123457 +2015-05-19T11:49:40Z,1432036180.000000 +2015-05-19T11:49:40.123456789Z,1432036180.123457 +2017-07-14T02:40:00Z,1500000000.000000 +2017-07-14T02:40:00.999Z,1500000000.999000 +2033-05-18T03:33:20Z,2000000000.000000 +2033-05-18T03:33:20.999999Z,2000000000.999999 + +mlr --csvlite put $gmtdate = sec2gmtdate($sec) ./reg_test/input/sec2gmt +n,sec,gmtdate +1,0,1970-01-01 +2,1,1970-01-01 +3,10,1970-01-01 +4,100,1970-01-01 +5,1000,1970-01-01 +6,10000,1970-01-01 +7,100000,1970-01-02 +8,1000000,1970-01-12 +9,10000000,1970-04-26 +10,100000000,1973-03-03 +11,1000000000,2001-09-09 +12,1432036180,2015-05-19 +13,1500000000,2017-07-14 +14,2000000000,2033-05-18 +15,2000000000.,2033-05-18 +16,2000000000.0,2033-05-18 +17,2000000000.00,2033-05-18 +18,2000000000.123400,2033-05-18 +19,2000000000.123456,2033-05-18 +20,2000000000.999,2033-05-18 +21,2000000000.999999,2033-05-18 +22,2000000000.999999999,2033-05-18 +23,, +24,x,x +25,123x,123x + +mlr --icsv --opprint put $gmt = strftime($sec, "%Y-%m-%dT%H:%M:%SZ") ./reg_test/input/sec2gmt +n sec gmt +1 0 1970-01-01T00:00:00Z +2 1 1970-01-01T00:00:01Z +3 10 1970-01-01T00:00:10Z +4 100 1970-01-01T00:01:40Z +5 1000 1970-01-01T00:16:40Z +6 10000 1970-01-01T02:46:40Z +7 100000 1970-01-02T03:46:40Z +8 1000000 1970-01-12T13:46:40Z +9 10000000 1970-04-26T17:46:40Z +10 100000000 1973-03-03T09:46:40Z +11 1000000000 2001-09-09T01:46:40Z +12 1432036180 2015-05-19T11:49:40Z +13 1500000000 2017-07-14T02:40:00Z +14 2000000000 2033-05-18T03:33:20Z +15 2000000000. 2033-05-18T03:33:20Z +16 2000000000.0 2033-05-18T03:33:20Z +17 2000000000.00 2033-05-18T03:33:20Z +18 2000000000.123400 2033-05-18T03:33:20Z +19 2000000000.123456 2033-05-18T03:33:20Z +20 2000000000.999 2033-05-18T03:33:20Z +21 2000000000.999999 2033-05-18T03:33:20Z +22 2000000000.999999999 2033-05-18T03:33:21Z +23 - - +24 x (error) +25 123x (error) + +mlr --icsv --opprint put $gmt = strftime($sec, "%Y-%m-%dT%H:%M:%1SZ") ./reg_test/input/sec2gmt +n sec gmt +1 0 1970-01-01T00:00:00.0Z +2 1 1970-01-01T00:00:01.0Z +3 10 1970-01-01T00:00:10.0Z +4 100 1970-01-01T00:01:40.0Z +5 1000 1970-01-01T00:16:40.0Z +6 10000 1970-01-01T02:46:40.0Z +7 100000 1970-01-02T03:46:40.0Z +8 1000000 1970-01-12T13:46:40.0Z +9 10000000 1970-04-26T17:46:40.0Z +10 100000000 1973-03-03T09:46:40.0Z +11 1000000000 2001-09-09T01:46:40.0Z +12 1432036180 2015-05-19T11:49:40.0Z +13 1500000000 2017-07-14T02:40:00.0Z +14 2000000000 2033-05-18T03:33:20.0Z +15 2000000000. 2033-05-18T03:33:20.0Z +16 2000000000.0 2033-05-18T03:33:20.0Z +17 2000000000.00 2033-05-18T03:33:20.0Z +18 2000000000.123400 2033-05-18T03:33:20.1Z +19 2000000000.123456 2033-05-18T03:33:20.1Z +20 2000000000.999 2033-05-18T03:33:20.9Z +21 2000000000.999999 2033-05-18T03:33:20.9Z +22 2000000000.999999999 2033-05-18T03:33:21.0Z +23 - - +24 x (error) +25 123x (error) + +mlr --icsv --opprint put $gmt = strftime($sec, "%Y-%m-%dT%H:%M:%3SZ") ./reg_test/input/sec2gmt +n sec gmt +1 0 1970-01-01T00:00:00.000Z +2 1 1970-01-01T00:00:01.000Z +3 10 1970-01-01T00:00:10.000Z +4 100 1970-01-01T00:01:40.000Z +5 1000 1970-01-01T00:16:40.000Z +6 10000 1970-01-01T02:46:40.000Z +7 100000 1970-01-02T03:46:40.000Z +8 1000000 1970-01-12T13:46:40.000Z +9 10000000 1970-04-26T17:46:40.000Z +10 100000000 1973-03-03T09:46:40.000Z +11 1000000000 2001-09-09T01:46:40.000Z +12 1432036180 2015-05-19T11:49:40.000Z +13 1500000000 2017-07-14T02:40:00.000Z +14 2000000000 2033-05-18T03:33:20.000Z +15 2000000000. 2033-05-18T03:33:20.000Z +16 2000000000.0 2033-05-18T03:33:20.000Z +17 2000000000.00 2033-05-18T03:33:20.000Z +18 2000000000.123400 2033-05-18T03:33:20.123Z +19 2000000000.123456 2033-05-18T03:33:20.123Z +20 2000000000.999 2033-05-18T03:33:20.999Z +21 2000000000.999999 2033-05-18T03:33:20.999Z +22 2000000000.999999999 2033-05-18T03:33:21.000Z +23 - - +24 x (error) +25 123x (error) + +mlr --icsv --opprint put $gmt = strftime($sec, "%Y-%m-%dT%H:%M:%6SZ") ./reg_test/input/sec2gmt +n sec gmt +1 0 1970-01-01T00:00:00.000000Z +2 1 1970-01-01T00:00:01.000000Z +3 10 1970-01-01T00:00:10.000000Z +4 100 1970-01-01T00:01:40.000000Z +5 1000 1970-01-01T00:16:40.000000Z +6 10000 1970-01-01T02:46:40.000000Z +7 100000 1970-01-02T03:46:40.000000Z +8 1000000 1970-01-12T13:46:40.000000Z +9 10000000 1970-04-26T17:46:40.000000Z +10 100000000 1973-03-03T09:46:40.000000Z +11 1000000000 2001-09-09T01:46:40.000000Z +12 1432036180 2015-05-19T11:49:40.000000Z +13 1500000000 2017-07-14T02:40:00.000000Z +14 2000000000 2033-05-18T03:33:20.000000Z +15 2000000000. 2033-05-18T03:33:20.000000Z +16 2000000000.0 2033-05-18T03:33:20.000000Z +17 2000000000.00 2033-05-18T03:33:20.000000Z +18 2000000000.123400 2033-05-18T03:33:20.123400Z +19 2000000000.123456 2033-05-18T03:33:20.123456Z +20 2000000000.999 2033-05-18T03:33:20.999000Z +21 2000000000.999999 2033-05-18T03:33:20.999999Z +22 2000000000.999999999 2033-05-18T03:33:21.000000Z +23 - - +24 x (error) +25 123x (error) + +mlr --icsv --opprint put $sec = strptime($gmt, "%Y-%m-%dT%H:%M:%SZ") ./reg_test/input/gmt2sec +gmt sec +1970-01-01T00:00:00Z 0.000000 +1970-01-01T00:00:00.Z 0.000000 +1970-01-01T00:00:01Z 1.000000 +1970-01-01T00:00:01.0Z 1.000000 +1970-01-01T00:00:10Z 10.000000 +1970-01-01T00:00:10.00Z 10.000000 +1970-01-01T00:01:40Z 100.000000 +1970-01-01T00:01:40.1Z 100.100000 +1970-01-01T00:16:40Z 1000.000000 +1970-01-01T00:16:40.12Z 1000.120000 +1970-01-01T02:46:40Z 10000.000000 +1970-01-01T02:46:40.123Z 10000.123000 +1970-01-02T03:46:40Z 100000.000000 +1970-01-02T03:46:40.1234Z 100000.123400 +1970-01-12T13:46:40Z 1000000.000000 +1970-01-12T13:46:40.12345Z 1000000.123450 +1970-04-26T17:46:40Z 10000000.000000 +1970-04-26T17:46:40.123456Z 10000000.123456 +1973-03-03T09:46:40Z 100000000.000000 +1973-03-03T09:46:40.1234567Z 100000000.123457 +2001-09-09T01:46:40Z 1000000000.000000 +2001-09-09T01:46:40.12345678Z 1000000000.123457 +2015-05-19T11:49:40Z 1432036180.000000 +2015-05-19T11:49:40.123456789Z 1432036180.123457 +2017-07-14T02:40:00Z 1500000000.000000 +2017-07-14T02:40:00.999Z 1500000000.999000 +2033-05-18T03:33:20Z 2000000000.000000 +2033-05-18T03:33:20.999999Z 2000000000.999999 + +mlr --csvlite sec2gmt sec ./reg_test/input/sec2gmt +n,sec +1,1970-01-01T00:00:00Z +2,1970-01-01T00:00:01Z +3,1970-01-01T00:00:10Z +4,1970-01-01T00:01:40Z +5,1970-01-01T00:16:40Z +6,1970-01-01T02:46:40Z +7,1970-01-02T03:46:40Z +8,1970-01-12T13:46:40Z +9,1970-04-26T17:46:40Z +10,1973-03-03T09:46:40Z +11,2001-09-09T01:46:40Z +12,2015-05-19T11:49:40Z +13,2017-07-14T02:40:00Z +14,2033-05-18T03:33:20Z +15,2033-05-18T03:33:20Z +16,2033-05-18T03:33:20Z +17,2033-05-18T03:33:20Z +18,2033-05-18T03:33:20Z +19,2033-05-18T03:33:20Z +20,2033-05-18T03:33:20Z +21,2033-05-18T03:33:20Z +22,2033-05-18T03:33:21Z +23, +24,x +25,123x + +mlr --opprint put $hms=sec2hms($sec); $resec=hms2sec($hms); $diff=$resec-$sec ./reg_test/input/sec2xhms +sec hms resec diff +0 00:00:00 0 0 +1 00:00:01 1 0 +59 00:00:59 59 0 +60 00:01:00 60 0 +61 00:01:01 61 0 +3599 00:59:59 3599 0 +3600 01:00:00 3600 0 +3601 01:00:01 3601 0 +86399 23:59:59 86399 0 +86400 24:00:00 86400 0 +86401 24:00:01 86401 0 +863999 239:59:59 863999 0 +864000 240:00:00 864000 0 +864001 240:00:01 864001 0 +-1 -00:00:01 -1 0 +-59 -00:00:59 -59 0 +-60 -00:01:00 -60 0 +-61 -00:01:01 -61 0 +-3599 -00:59:59 -3599 0 +-3600 -01:00:00 -3600 0 +-3601 -01:00:01 -3601 0 +-86399 -23:59:59 -86399 0 +-86400 -24:00:00 -86400 0 +-86401 -24:00:01 -86401 0 +-863999 -239:59:59 -863999 0 +-864000 -240:00:00 -864000 0 +-864001 -240:00:01 -864001 0 + +mlr --opprint put $hms=fsec2hms($sec); $resec=hms2fsec($hms); $diff=$resec-$sec ./reg_test/input/fsec2xhms +sec hms resec diff +0.25 0:00:00.250000 0.250000 0.000000 +1.25 0:00:01.250000 1.250000 0.000000 +59.25 0:00:59.250000 59.250000 0.000000 +60.25 0:01:00.250000 60.250000 0.000000 +61.25 0:01:01.250000 61.250000 0.000000 +3599.25 0:59:59.250000 3599.250000 0.000000 +3600.25 1:00:00.250000 3600.250000 0.000000 +3601.25 1:00:01.250000 3601.250000 0.000000 +86399.25 23:59:59.250000 86399.250000 0.000000 +86400.25 24:00:00.250000 86400.250000 0.000000 +86401.25 24:00:01.250000 86401.250000 0.000000 +863999.25 239:59:59.250000 863999.250000 0.000000 +864000.25 240:00:00.250000 864000.250000 0.000000 +864001.25 240:00:01.250000 864001.250000 0.000000 +-0.25 -00:00:00.250000 -0.250000 0.000000 +-1.25 -00:00:01.250000 -1.250000 0.000000 +-59.25 -00:00:59.250000 -59.250000 0.000000 +-60.25 -00:01:00.250000 -60.250000 0.000000 +-61.25 -00:01:01.250000 -61.250000 0.000000 +-3599.25 -00:59:59.250000 -3599.250000 0.000000 +-3600.25 -01:00:00.250000 -3600.250000 0.000000 +-3601.25 -01:00:01.250000 -3601.250000 0.000000 +-86399.25 -23:59:59.250000 -86399.250000 0.000000 +-86400.25 -24:00:00.250000 -86400.250000 0.000000 +-86401.25 -24:00:01.250000 -86401.250000 0.000000 +-863999.25 -239:59:59.250000 -863999.250000 0.000000 +-864000.25 -240:00:00.250000 -864000.250000 0.000000 +-864001.25 -240:00:01.250000 -864001.250000 0.000000 + +mlr --opprint put $hms=sec2dhms($sec); $resec=dhms2sec($hms); $diff=$resec-$sec ./reg_test/input/sec2xhms +sec hms resec diff +0 0s 0 0 +1 1s 1 0 +59 59s 59 0 +60 1m00s 60 0 +61 1m01s 61 0 +3599 59m59s 3599 0 +3600 1h00m00s 3600 0 +3601 1h00m01s 3601 0 +86399 23h59m59s 86399 0 +86400 1d00h00m00s 86400 0 +86401 1d00h00m01s 86401 0 +863999 9d23h59m59s 863999 0 +864000 10d00h00m00s 864000 0 +864001 10d00h00m01s 864001 0 +-1 -1s -1 0 +-59 -59s -59 0 +-60 -1m00s -60 0 +-61 -1m01s -61 0 +-3599 -59m59s -3599 0 +-3600 -1h00m00s -3600 0 +-3601 -1h00m01s -3601 0 +-86399 -23h59m59s -86399 0 +-86400 -1d00h00m00s -86400 0 +-86401 -1d00h00m01s -86401 0 +-863999 -9d23h59m59s -863999 0 +-864000 -10d00h00m00s -864000 0 +-864001 -10d00h00m01s -864001 0 + +mlr --opprint put $hms=fsec2dhms($sec); $resec=dhms2fsec($hms); $diff=$resec-$sec ./reg_test/input/fsec2xhms +sec hms resec diff +0.25 0.250000s 0.250000 0.000000 +1.25 1.250000s 1.250000 0.000000 +59.25 59.250000s 59.250000 0.000000 +60.25 1m00.250000s 60.250000 0.000000 +61.25 1m01.250000s 61.250000 0.000000 +3599.25 59m59.250000s 3599.250000 0.000000 +3600.25 1h00m00.250000s 3600.250000 0.000000 +3601.25 1h00m01.250000s 3601.250000 0.000000 +86399.25 23h59m59.250000s 86399.250000 0.000000 +86400.25 1d00h00m00.250000s 86400.250000 0.000000 +86401.25 1d00h00m01.250000s 86401.250000 0.000000 +863999.25 9d23h59m59.250000s 863999.250000 0.000000 +864000.25 10d00h00m00.250000s 864000.250000 0.000000 +864001.25 10d00h00m01.250000s 864001.250000 0.000000 +-0.25 -0.250000s -0.250000 0.000000 +-1.25 -1.250000s -1.250000 0.000000 +-59.25 -59.250000s -59.250000 0.000000 +-60.25 -1m00.250000s -60.250000 0.000000 +-61.25 -1m01.250000s -61.250000 0.000000 +-3599.25 -59m59.250000s -3599.250000 0.000000 +-3600.25 -1h00m00.250000s -3600.250000 0.000000 +-3601.25 -1h00m01.250000s -3601.250000 0.000000 +-86399.25 -23h59m59.250000s -86399.250000 0.000000 +-86400.25 -1d00h00m00.250000s -86400.250000 0.000000 +-86401.25 -1d00h00m01.250000s -86401.250000 0.000000 +-863999.25 -9d23h59m59.250000s -863999.250000 0.000000 +-864000.25 -10d00h00m00.250000s -864000.250000 0.000000 +-864001.25 -10d00h00m01.250000s -864001.250000 0.000000 + +mlr --csvlite sec2gmt sec ./reg_test/input/sec2gmt +n,sec +1,1970-01-01T00:00:00Z +2,1970-01-01T00:00:01Z +3,1970-01-01T00:00:10Z +4,1970-01-01T00:01:40Z +5,1970-01-01T00:16:40Z +6,1970-01-01T02:46:40Z +7,1970-01-02T03:46:40Z +8,1970-01-12T13:46:40Z +9,1970-04-26T17:46:40Z +10,1973-03-03T09:46:40Z +11,2001-09-09T01:46:40Z +12,2015-05-19T11:49:40Z +13,2017-07-14T02:40:00Z +14,2033-05-18T03:33:20Z +15,2033-05-18T03:33:20Z +16,2033-05-18T03:33:20Z +17,2033-05-18T03:33:20Z +18,2033-05-18T03:33:20Z +19,2033-05-18T03:33:20Z +20,2033-05-18T03:33:20Z +21,2033-05-18T03:33:20Z +22,2033-05-18T03:33:21Z +23, +24,x +25,123x + +mlr --csvlite sec2gmtdate sec ./reg_test/input/sec2gmt +n,sec +1,1970-01-01 +2,1970-01-01 +3,1970-01-01 +4,1970-01-01 +5,1970-01-01 +6,1970-01-01 +7,1970-01-02 +8,1970-01-12 +9,1970-04-26 +10,1973-03-03 +11,2001-09-09 +12,2015-05-19 +13,2017-07-14 +14,2033-05-18 +15,2033-05-18 +16,2033-05-18 +17,2033-05-18 +18,2033-05-18 +19,2033-05-18 +20,2033-05-18 +21,2033-05-18 +22,2033-05-18 +23, +24,x +25,123x + + +================================================================ +DSL LOCAL DATE/TIME FUNCTIONS + +mlr --opprint put $b=localtime2sec($a); $c=sec2localtime($b); $d=sec2localdate($b) +a b c d +2017-02-18 23:00:00 1487469600.000000 2017-02-18 23:00:00 2017-02-18 +2017-02-18 23:59:59 1487473199.000000 2017-02-18 23:59:59 2017-02-18 +2017-02-19 00:00:00 1487473200.000000 2017-02-19 00:00:00 2017-02-19 +2017-02-19 00:30:00 1487475000.000000 2017-02-19 00:30:00 2017-02-19 +2017-02-19 01:00:00 1487476800.000000 2017-02-19 01:00:00 2017-02-19 +2017-10-14 23:00:00 1508032800.000000 2017-10-14 23:00:00 2017-10-14 +2017-10-14 23:59:59 1508036399.000000 2017-10-14 23:59:59 2017-10-14 +2017-10-15 00:00:00 1508036400.000000 2017-10-15 01:00:00 2017-10-15 +2017-10-15 00:30:00 1508038200.000000 2017-10-15 01:30:00 2017-10-15 +2017-10-15 01:00:00 1508040000.000000 2017-10-15 02:00:00 2017-10-15 + +mlr --opprint put $b=localtime2sec($a); $c=sec2localtime($b); $d=sec2localdate($b) +a b c d +2017-02-14 00:00:00 1487041200.000000 2017-02-14 01:00:00 2017-02-14 +2017-02-15 00:00:00 1487127600.000000 2017-02-15 01:00:00 2017-02-15 +2017-02-16 00:00:00 1487214000.000000 2017-02-16 01:00:00 2017-02-16 +2017-02-17 00:00:00 1487300400.000000 2017-02-17 01:00:00 2017-02-17 +2017-02-18 00:00:00 1487386800.000000 2017-02-18 01:00:00 2017-02-18 +2017-02-19 00:00:00 1487473200.000000 2017-02-19 00:00:00 2017-02-19 +2017-02-20 00:00:00 1487559600.000000 2017-02-20 00:00:00 2017-02-20 +2017-10-12 00:00:00 1507777200.000000 2017-10-12 00:00:00 2017-10-12 +2017-10-13 00:00:00 1507863600.000000 2017-10-13 00:00:00 2017-10-13 +2017-10-14 00:00:00 1507950000.000000 2017-10-14 00:00:00 2017-10-14 +2017-10-15 00:00:00 1508036400.000000 2017-10-15 01:00:00 2017-10-15 +2017-10-16 00:00:00 1508122800.000000 2017-10-16 01:00:00 2017-10-16 +2017-10-17 00:00:00 1508209200.000000 2017-10-17 01:00:00 2017-10-17 +2017-10-18 00:00:00 1508295600.000000 2017-10-18 01:00:00 2017-10-18 +2017-10-19 00:00:00 1508382000.000000 2017-10-19 01:00:00 2017-10-19 + +mlr --opprint put $b=strptime_local($a, "%Y-%m-%d %H:%M:%S"); $c=strftime_local($b, "%Y-%m-%d %H:%M:%S") +a b c +2017-02-18 23:00:00 1487469600.000000 2017-02-18 23:00:00 +2017-02-18 23:59:59 1487473199.000000 2017-02-18 23:59:59 +2017-02-19 00:00:00 1487473200.000000 2017-02-19 00:00:00 +2017-02-19 00:30:00 1487475000.000000 2017-02-19 00:30:00 +2017-02-19 01:00:00 1487476800.000000 2017-02-19 01:00:00 +2017-10-14 23:00:00 1508032800.000000 2017-10-14 23:00:00 +2017-10-14 23:59:59 1508036399.000000 2017-10-14 23:59:59 +2017-10-15 00:00:00 1508036400.000000 2017-10-15 01:00:00 +2017-10-15 00:30:00 1508038200.000000 2017-10-15 01:30:00 +2017-10-15 01:00:00 1508040000.000000 2017-10-15 02:00:00 + +mlr --opprint put $b=strptime_local($a, "%Y-%m-%d %H:%M:%S"); $c=strftime_local($b, "%Y-%m-%d %H:%M:%S") +a b c +2017-02-18 23:00:00 1487469600.000000 2017-02-18 23:00:00 +2017-02-18 23:59:59 1487473199.000000 2017-02-18 23:59:59 +2017-02-19 00:00:00 1487473200.000000 2017-02-19 00:00:00 +2017-02-19 00:30:00 1487475000.000000 2017-02-19 00:30:00 +2017-02-19 01:00:00 1487476800.000000 2017-02-19 01:00:00 +2017-10-14 23:00:00 1508032800.000000 2017-10-14 23:00:00 +2017-10-14 23:59:59 1508036399.000000 2017-10-14 23:59:59 +2017-10-15 00:00:00 1508036400.000000 2017-10-15 01:00:00 +2017-10-15 00:30:00 1508038200.000000 2017-10-15 01:30:00 +2017-10-15 01:00:00 1508040000.000000 2017-10-15 02:00:00 + + +================================================================ +DSL SUB/GSUB/REGEX_EXTRACT + +mlr --opprint put $y = sub($x, "e.*l", "") ./reg_test/input/sub.dat +x y +hello ho +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "e.*l"i, "") ./reg_test/input/sub.dat +x y +hello ho +HELLO HO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "e.*"."l", "") ./reg_test/input/sub.dat +x y +hello ho +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "e.*l", "y123y") ./reg_test/input/sub.dat +x y +hello hy123yo +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "e.*l"i, "y123y") ./reg_test/input/sub.dat +x y +hello hy123yo +HELLO Hy123yO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "e.*"."l", "y123y") ./reg_test/input/sub.dat +x y +hello hy123yo +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "([hg])e.*l(.)", "y\1y123\2y") ./reg_test/input/sub.dat +x y +hello yhy123oy +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "([hg])e.*l.", "y\1y123\2y") ./reg_test/input/sub.dat +x y +hello yhy123y +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "([hg])e.*l(.)", "y\1y123.y") ./reg_test/input/sub.dat +x y +hello yhy123.y +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = sub($x, "a", "aa") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg aabcdefg +ababbabbba aababbabbba +LMNOP LMNOP +ABCDEFG ABCDEFG +ABABBABBBA ABABBABBBA + +mlr --opprint put $y = gsub($x, "a", "aa") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg aabcdefg +ababbabbba aabaabbaabbbaa +LMNOP LMNOP +ABCDEFG ABCDEFG +ABABBABBBA ABABBABBBA + +mlr --opprint put $y = gsub($x, "A", "Aa") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg abcdefg +ababbabbba ababbabbba +LMNOP LMNOP +ABCDEFG AaBCDEFG +ABABBABBBA AaBAaBBAaBBBAa + +mlr --opprint put $y = gsub($x, "a"i, "Aa") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg Aabcdefg +ababbabbba AabAabbAabbbAa +LMNOP LMNOP +ABCDEFG AaBCDEFG +ABABBABBBA AaBAaBBAaBBBAa + +mlr --opprint put $y = gsub($x, "A"i, "Aa") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg Aabcdefg +ababbabbba AabAabbAabbbAa +LMNOP LMNOP +ABCDEFG AaBCDEFG +ABABBABBBA AaBAaBBAaBBBAa + +mlr --opprint put $y = gsub($x, "a(.)", "aa\1\1\1") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg aabbbcdefg +ababbabbba aabbbaabbbbaabbbbba +LMNOP LMNOP +ABCDEFG ABCDEFG +ABABBABBBA ABABBABBBA + +mlr --opprint put $y = sub($x, "a", "") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg bcdefg +ababbabbba babbabbba +LMNOP LMNOP +ABCDEFG ABCDEFG +ABABBABBBA ABABBABBBA + +mlr --opprint put $y = gsub($x, "a", "") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg bcdefg +ababbabbba bbbbbb +LMNOP LMNOP +ABCDEFG ABCDEFG +ABABBABBBA ABABBABBBA + +mlr --opprint put $y = gsub($x, "A", "") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg abcdefg +ababbabbba ababbabbba +LMNOP LMNOP +ABCDEFG BCDEFG +ABABBABBBA BBBBBB + +mlr --opprint put $y = gsub($x, "a"i, "") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg bcdefg +ababbabbba bbbbbb +LMNOP LMNOP +ABCDEFG BCDEFG +ABABBABBBA BBBBBB + +mlr --opprint put $y = gsub($x, "A"i, "") ./reg_test/input/gsub.dat +x y +lmnop lmnop +abcdefg bcdefg +ababbabbba bbbbbb +LMNOP LMNOP +ABCDEFG BCDEFG +ABABBABBBA BBBBBB + +mlr --oxtab cat ./reg_test/input/subtab.dkvp +x afoob + +x a\tb + +x a\\tb + +x a b + +z + +x + +mlr --oxtab put -f ./reg_test/input/subtab1.mlr ./reg_test/input/subtab.dkvp +x afoob +y afoob + +x a\tb +y a\tb + +x a\\tb +y a\\tb + +x a b +y aTABb + +z + +x +y + +mlr --oxtab put -f ./reg_test/input/subtab2.mlr ./reg_test/input/subtab.dkvp +x afoob +y afoob + +x a\tb +y aTABb + +x a\\tb +y a\TABb + +x a b +y a b + +z + +x +y + +mlr --oxtab put -f ./reg_test/input/subtab3.mlr ./reg_test/input/subtab.dkvp +x afoob +y afoob + +x a\tb +y a\tb + +x a\\tb +y a\\tb + +x a b +y a b + +z + +x +y + +mlr --oxtab put -f ./reg_test/input/subtab4.mlr ./reg_test/input/subtab.dkvp +x afoob +y afoob + +x a\tb +y a b + +x a\\tb +y a\ b + +x a b +y a b + +z + +x +y + +mlr --opprint put $y = ssub($x, "HE", "") ./reg_test/input/sub.dat +x y +hello hello +HELLO LLO +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "HE", "HE") ./reg_test/input/sub.dat +x y +hello hello +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "HE", "12345") ./reg_test/input/sub.dat +x y +hello hello +HELLO 12345LLO +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "LL", "1") ./reg_test/input/sub.dat +x y +hello hello +HELLO HE1O +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "LL", "12") ./reg_test/input/sub.dat +x y +hello hello +HELLO HE12O +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "LL", "12345") ./reg_test/input/sub.dat +x y +hello hello +HELLO HE12345O +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "LLO", "") ./reg_test/input/sub.dat +x y +hello hello +HELLO HE +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "LLO", "12") ./reg_test/input/sub.dat +x y +hello hello +HELLO HE12 +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "LLO", "123") ./reg_test/input/sub.dat +x y +hello hello +HELLO HE123 +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "LLO", "123456") ./reg_test/input/sub.dat +x y +hello hello +HELLO HE123456 +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "HELLO", "") ./reg_test/input/sub.dat +x y +hello hello +HELLO - +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "HELLO", "1234") ./reg_test/input/sub.dat +x y +hello hello +HELLO 1234 +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "HELLO", "12345") ./reg_test/input/sub.dat +x y +hello hello +HELLO 12345 +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "HELLO", "1234678") ./reg_test/input/sub.dat +x y +hello hello +HELLO 1234678 +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "nonesuch", "") ./reg_test/input/sub.dat +x y +hello hello +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "nonesuch", "1234") ./reg_test/input/sub.dat +x y +hello hello +HELLO HELLO +world world +WORLD WORLD + +mlr --opprint put $y = ssub($x, "nonesuch", "1234567890") ./reg_test/input/sub.dat +x y +hello hello +HELLO HELLO +world world +WORLD WORLD + +mlr --oxtab put $y = regextract($x, "[A-Z]+") ./reg_test/input/sub.dat +x hello + +x HELLO +y HELLO + +x world + +x WORLD +y WORLD + +mlr --oxtab put $y = regextract($x, "[A-Z]*") ./reg_test/input/sub.dat +x hello +y + +x HELLO +y HELLO + +x world +y + +x WORLD +y WORLD + +mlr --oxtab put $y = regextract($x, "[a-z]+") ./reg_test/input/sub.dat +x hello +y hello + +x HELLO + +x world +y world + +x WORLD + +mlr --oxtab put $y = regextract($x, "[a-z]*") ./reg_test/input/sub.dat +x hello +y hello + +x HELLO +y + +x world +y world + +x WORLD +y + +mlr --oxtab put $y = regextract($x, "[0-9]+") ./reg_test/input/sub.dat +x hello + +x HELLO + +x world + +x WORLD + +mlr --oxtab put $y = regextract($x, "[0-9]*") ./reg_test/input/sub.dat +x hello +y + +x HELLO +y + +x world +y + +x WORLD +y + +mlr --oxtab put $y = regextract($x, "[ef]+") ./reg_test/input/sub.dat +x hello +y e + +x HELLO + +x world + +x WORLD + +mlr --oxtab put $y = regextract($x, "[ef]*") ./reg_test/input/sub.dat +x hello +y + +x HELLO +y + +x world +y + +x WORLD +y + +mlr --oxtab put $y = regextract($x, "[hi]+") ./reg_test/input/sub.dat +x hello +y h + +x HELLO + +x world + +x WORLD + +mlr --oxtab put $y = regextract($x, "[hi]*") ./reg_test/input/sub.dat +x hello +y h + +x HELLO +y + +x world +y + +x WORLD +y + +mlr --oxtab put $y = regextract($x, "[op]+") ./reg_test/input/sub.dat +x hello +y o + +x HELLO + +x world +y o + +x WORLD + +mlr --oxtab put $y = regextract($x, "[op]*") ./reg_test/input/sub.dat +x hello +y + +x HELLO +y + +x world +y + +x WORLD +y + +mlr --oxtab put $y = regextract_or_else($x, "[A-Z]+", "DEFAULT") ./reg_test/input/sub.dat +x hello +y DEFAULT + +x HELLO +y HELLO + +x world +y DEFAULT + +x WORLD +y WORLD + +mlr --oxtab put $y = regextract_or_else($x, "[A-Z]*", "DEFAULT") ./reg_test/input/sub.dat +x hello +y + +x HELLO +y HELLO + +x world +y + +x WORLD +y WORLD + +mlr --oxtab put $y = regextract_or_else($x, "[a-z]+", "DEFAULT") ./reg_test/input/sub.dat +x hello +y hello + +x HELLO +y DEFAULT + +x world +y world + +x WORLD +y DEFAULT + +mlr --oxtab put $y = regextract_or_else($x, "[a-z]*", "DEFAULT") ./reg_test/input/sub.dat +x hello +y hello + +x HELLO +y + +x world +y world + +x WORLD +y + +mlr --oxtab put $y = regextract_or_else($x, "[0-9]+", "DEFAULT") ./reg_test/input/sub.dat +x hello +y DEFAULT + +x HELLO +y DEFAULT + +x world +y DEFAULT + +x WORLD +y DEFAULT + +mlr --oxtab put $y = regextract_or_else($x, "[0-9]*", "DEFAULT") ./reg_test/input/sub.dat +x hello +y + +x HELLO +y + +x world +y + +x WORLD +y + +mlr --oxtab put $y = regextract_or_else($x, "[ef]+", "DEFAULT") ./reg_test/input/sub.dat +x hello +y e + +x HELLO +y DEFAULT + +x world +y DEFAULT + +x WORLD +y DEFAULT + +mlr --oxtab put $y = regextract_or_else($x, "[ef]*", "DEFAULT") ./reg_test/input/sub.dat +x hello +y + +x HELLO +y + +x world +y + +x WORLD +y + +mlr --oxtab put $y = regextract_or_else($x, "[hi]+", "DEFAULT") ./reg_test/input/sub.dat +x hello +y h + +x HELLO +y DEFAULT + +x world +y DEFAULT + +x WORLD +y DEFAULT + +mlr --oxtab put $y = regextract_or_else($x, "[hi]*", "DEFAULT") ./reg_test/input/sub.dat +x hello +y h + +x HELLO +y + +x world +y + +x WORLD +y + +mlr --oxtab put $y = regextract_or_else($x, "[op]+", "DEFAULT") ./reg_test/input/sub.dat +x hello +y o + +x HELLO +y DEFAULT + +x world +y o + +x WORLD +y DEFAULT + +mlr --oxtab put $y = regextract_or_else($x, "[op]*", "DEFAULT") ./reg_test/input/sub.dat +x hello +y + +x HELLO +y + +x world +y + +x WORLD +y + +mlr --nidx put $1 = sub($1, "ab(.)d(..)g", "ab<<\1>>d<<\2>>g") +ab<>d<>g + +mlr --nidx put $1 = sub($1, "ab(c)?d(..)g", "ab<<\1>>d<<\2>>g") +ab<>d<>g + +mlr --nidx put $1 = sub($1, "ab(c)?d(..)g", "ab<<\1>>d<<\2>>g") +abXdefg + +mlr --nidx put $1 = sub($1, "ab(c)?d(..)g", "ab<<\1>>d<<\2>>g") +ab<<>>d<>g + + +================================================================ +DSL SUBSTR + +mlr put -q + int n = strlen($x); + print "input= <<".$x.">>"; + for (i = -n-2; i <= n+2; i += 1) { + for (j = -n-2; j <= n+2; j += 1) { + print "i: ".fmtnum(i,"%3lld") + ." j:".fmtnum(j,"%3lld") + ." substr(".$x.",".fmtnum(i,"%3lld").",".fmtnum(j,"%3lld")."): <<" + .substr($x, i, j) .">>"; + } + print; +} + +input= <<>> +i: -2 j: -2 substr(, -2, -2): <<>> +i: -2 j: -1 substr(, -2, -1): <<>> +i: -2 j: 0 substr(, -2, 0): <<>> +i: -2 j: 1 substr(, -2, 1): <<>> +i: -2 j: 2 substr(, -2, 2): <<>> + +i: -1 j: -2 substr(, -1, -2): <<>> +i: -1 j: -1 substr(, -1, -1): <<>> +i: -1 j: 0 substr(, -1, 0): <<>> +i: -1 j: 1 substr(, -1, 1): <<>> +i: -1 j: 2 substr(, -1, 2): <<>> + +i: 0 j: -2 substr(, 0, -2): <<>> +i: 0 j: -1 substr(, 0, -1): <<>> +i: 0 j: 0 substr(, 0, 0): <<>> +i: 0 j: 1 substr(, 0, 1): <<>> +i: 0 j: 2 substr(, 0, 2): <<>> + +i: 1 j: -2 substr(, 1, -2): <<>> +i: 1 j: -1 substr(, 1, -1): <<>> +i: 1 j: 0 substr(, 1, 0): <<>> +i: 1 j: 1 substr(, 1, 1): <<>> +i: 1 j: 2 substr(, 1, 2): <<>> + +i: 2 j: -2 substr(, 2, -2): <<>> +i: 2 j: -1 substr(, 2, -1): <<>> +i: 2 j: 0 substr(, 2, 0): <<>> +i: 2 j: 1 substr(, 2, 1): <<>> +i: 2 j: 2 substr(, 2, 2): <<>> + +input= <> +i: -3 j: -3 substr(o, -3, -3): <<>> +i: -3 j: -2 substr(o, -3, -2): <<>> +i: -3 j: -1 substr(o, -3, -1): <<>> +i: -3 j: 0 substr(o, -3, 0): <<>> +i: -3 j: 1 substr(o, -3, 1): <<>> +i: -3 j: 2 substr(o, -3, 2): <<>> +i: -3 j: 3 substr(o, -3, 3): <<>> + +i: -2 j: -3 substr(o, -2, -3): <<>> +i: -2 j: -2 substr(o, -2, -2): <<>> +i: -2 j: -1 substr(o, -2, -1): <<>> +i: -2 j: 0 substr(o, -2, 0): <<>> +i: -2 j: 1 substr(o, -2, 1): <<>> +i: -2 j: 2 substr(o, -2, 2): <<>> +i: -2 j: 3 substr(o, -2, 3): <<>> + +i: -1 j: -3 substr(o, -1, -3): <<>> +i: -1 j: -2 substr(o, -1, -2): <<>> +i: -1 j: -1 substr(o, -1, -1): <> +i: -1 j: 0 substr(o, -1, 0): <> +i: -1 j: 1 substr(o, -1, 1): <<>> +i: -1 j: 2 substr(o, -1, 2): <<>> +i: -1 j: 3 substr(o, -1, 3): <<>> + +i: 0 j: -3 substr(o, 0, -3): <<>> +i: 0 j: -2 substr(o, 0, -2): <<>> +i: 0 j: -1 substr(o, 0, -1): <> +i: 0 j: 0 substr(o, 0, 0): <> +i: 0 j: 1 substr(o, 0, 1): <<>> +i: 0 j: 2 substr(o, 0, 2): <<>> +i: 0 j: 3 substr(o, 0, 3): <<>> + +i: 1 j: -3 substr(o, 1, -3): <<>> +i: 1 j: -2 substr(o, 1, -2): <<>> +i: 1 j: -1 substr(o, 1, -1): <<>> +i: 1 j: 0 substr(o, 1, 0): <<>> +i: 1 j: 1 substr(o, 1, 1): <<>> +i: 1 j: 2 substr(o, 1, 2): <<>> +i: 1 j: 3 substr(o, 1, 3): <<>> + +i: 2 j: -3 substr(o, 2, -3): <<>> +i: 2 j: -2 substr(o, 2, -2): <<>> +i: 2 j: -1 substr(o, 2, -1): <<>> +i: 2 j: 0 substr(o, 2, 0): <<>> +i: 2 j: 1 substr(o, 2, 1): <<>> +i: 2 j: 2 substr(o, 2, 2): <<>> +i: 2 j: 3 substr(o, 2, 3): <<>> + +i: 3 j: -3 substr(o, 3, -3): <<>> +i: 3 j: -2 substr(o, 3, -2): <<>> +i: 3 j: -1 substr(o, 3, -1): <<>> +i: 3 j: 0 substr(o, 3, 0): <<>> +i: 3 j: 1 substr(o, 3, 1): <<>> +i: 3 j: 2 substr(o, 3, 2): <<>> +i: 3 j: 3 substr(o, 3, 3): <<>> + +input= <> +i: -4 j: -4 substr(o1, -4, -4): <<>> +i: -4 j: -3 substr(o1, -4, -3): <<>> +i: -4 j: -2 substr(o1, -4, -2): <<>> +i: -4 j: -1 substr(o1, -4, -1): <<>> +i: -4 j: 0 substr(o1, -4, 0): <<>> +i: -4 j: 1 substr(o1, -4, 1): <<>> +i: -4 j: 2 substr(o1, -4, 2): <<>> +i: -4 j: 3 substr(o1, -4, 3): <<>> +i: -4 j: 4 substr(o1, -4, 4): <<>> + +i: -3 j: -4 substr(o1, -3, -4): <<>> +i: -3 j: -3 substr(o1, -3, -3): <<>> +i: -3 j: -2 substr(o1, -3, -2): <<>> +i: -3 j: -1 substr(o1, -3, -1): <<>> +i: -3 j: 0 substr(o1, -3, 0): <<>> +i: -3 j: 1 substr(o1, -3, 1): <<>> +i: -3 j: 2 substr(o1, -3, 2): <<>> +i: -3 j: 3 substr(o1, -3, 3): <<>> +i: -3 j: 4 substr(o1, -3, 4): <<>> + +i: -2 j: -4 substr(o1, -2, -4): <<>> +i: -2 j: -3 substr(o1, -2, -3): <<>> +i: -2 j: -2 substr(o1, -2, -2): <> +i: -2 j: -1 substr(o1, -2, -1): <> +i: -2 j: 0 substr(o1, -2, 0): <> +i: -2 j: 1 substr(o1, -2, 1): <> +i: -2 j: 2 substr(o1, -2, 2): <<>> +i: -2 j: 3 substr(o1, -2, 3): <<>> +i: -2 j: 4 substr(o1, -2, 4): <<>> + +i: -1 j: -4 substr(o1, -1, -4): <<>> +i: -1 j: -3 substr(o1, -1, -3): <<>> +i: -1 j: -2 substr(o1, -1, -2): <<>> +i: -1 j: -1 substr(o1, -1, -1): <<1>> +i: -1 j: 0 substr(o1, -1, 0): <<>> +i: -1 j: 1 substr(o1, -1, 1): <<1>> +i: -1 j: 2 substr(o1, -1, 2): <<>> +i: -1 j: 3 substr(o1, -1, 3): <<>> +i: -1 j: 4 substr(o1, -1, 4): <<>> + +i: 0 j: -4 substr(o1, 0, -4): <<>> +i: 0 j: -3 substr(o1, 0, -3): <<>> +i: 0 j: -2 substr(o1, 0, -2): <> +i: 0 j: -1 substr(o1, 0, -1): <> +i: 0 j: 0 substr(o1, 0, 0): <> +i: 0 j: 1 substr(o1, 0, 1): <> +i: 0 j: 2 substr(o1, 0, 2): <<>> +i: 0 j: 3 substr(o1, 0, 3): <<>> +i: 0 j: 4 substr(o1, 0, 4): <<>> + +i: 1 j: -4 substr(o1, 1, -4): <<>> +i: 1 j: -3 substr(o1, 1, -3): <<>> +i: 1 j: -2 substr(o1, 1, -2): <<>> +i: 1 j: -1 substr(o1, 1, -1): <<1>> +i: 1 j: 0 substr(o1, 1, 0): <<>> +i: 1 j: 1 substr(o1, 1, 1): <<1>> +i: 1 j: 2 substr(o1, 1, 2): <<>> +i: 1 j: 3 substr(o1, 1, 3): <<>> +i: 1 j: 4 substr(o1, 1, 4): <<>> + +i: 2 j: -4 substr(o1, 2, -4): <<>> +i: 2 j: -3 substr(o1, 2, -3): <<>> +i: 2 j: -2 substr(o1, 2, -2): <<>> +i: 2 j: -1 substr(o1, 2, -1): <<>> +i: 2 j: 0 substr(o1, 2, 0): <<>> +i: 2 j: 1 substr(o1, 2, 1): <<>> +i: 2 j: 2 substr(o1, 2, 2): <<>> +i: 2 j: 3 substr(o1, 2, 3): <<>> +i: 2 j: 4 substr(o1, 2, 4): <<>> + +i: 3 j: -4 substr(o1, 3, -4): <<>> +i: 3 j: -3 substr(o1, 3, -3): <<>> +i: 3 j: -2 substr(o1, 3, -2): <<>> +i: 3 j: -1 substr(o1, 3, -1): <<>> +i: 3 j: 0 substr(o1, 3, 0): <<>> +i: 3 j: 1 substr(o1, 3, 1): <<>> +i: 3 j: 2 substr(o1, 3, 2): <<>> +i: 3 j: 3 substr(o1, 3, 3): <<>> +i: 3 j: 4 substr(o1, 3, 4): <<>> + +i: 4 j: -4 substr(o1, 4, -4): <<>> +i: 4 j: -3 substr(o1, 4, -3): <<>> +i: 4 j: -2 substr(o1, 4, -2): <<>> +i: 4 j: -1 substr(o1, 4, -1): <<>> +i: 4 j: 0 substr(o1, 4, 0): <<>> +i: 4 j: 1 substr(o1, 4, 1): <<>> +i: 4 j: 2 substr(o1, 4, 2): <<>> +i: 4 j: 3 substr(o1, 4, 3): <<>> +i: 4 j: 4 substr(o1, 4, 4): <<>> + +input= <> +i: -12 j:-12 substr(o123456789,-12,-12): <<>> +i: -12 j:-11 substr(o123456789,-12,-11): <<>> +i: -12 j:-10 substr(o123456789,-12,-10): <<>> +i: -12 j: -9 substr(o123456789,-12, -9): <<>> +i: -12 j: -8 substr(o123456789,-12, -8): <<>> +i: -12 j: -7 substr(o123456789,-12, -7): <<>> +i: -12 j: -6 substr(o123456789,-12, -6): <<>> +i: -12 j: -5 substr(o123456789,-12, -5): <<>> +i: -12 j: -4 substr(o123456789,-12, -4): <<>> +i: -12 j: -3 substr(o123456789,-12, -3): <<>> +i: -12 j: -2 substr(o123456789,-12, -2): <<>> +i: -12 j: -1 substr(o123456789,-12, -1): <<>> +i: -12 j: 0 substr(o123456789,-12, 0): <<>> +i: -12 j: 1 substr(o123456789,-12, 1): <<>> +i: -12 j: 2 substr(o123456789,-12, 2): <<>> +i: -12 j: 3 substr(o123456789,-12, 3): <<>> +i: -12 j: 4 substr(o123456789,-12, 4): <<>> +i: -12 j: 5 substr(o123456789,-12, 5): <<>> +i: -12 j: 6 substr(o123456789,-12, 6): <<>> +i: -12 j: 7 substr(o123456789,-12, 7): <<>> +i: -12 j: 8 substr(o123456789,-12, 8): <<>> +i: -12 j: 9 substr(o123456789,-12, 9): <<>> +i: -12 j: 10 substr(o123456789,-12, 10): <<>> +i: -12 j: 11 substr(o123456789,-12, 11): <<>> +i: -12 j: 12 substr(o123456789,-12, 12): <<>> + +i: -11 j:-12 substr(o123456789,-11,-12): <<>> +i: -11 j:-11 substr(o123456789,-11,-11): <<>> +i: -11 j:-10 substr(o123456789,-11,-10): <<>> +i: -11 j: -9 substr(o123456789,-11, -9): <<>> +i: -11 j: -8 substr(o123456789,-11, -8): <<>> +i: -11 j: -7 substr(o123456789,-11, -7): <<>> +i: -11 j: -6 substr(o123456789,-11, -6): <<>> +i: -11 j: -5 substr(o123456789,-11, -5): <<>> +i: -11 j: -4 substr(o123456789,-11, -4): <<>> +i: -11 j: -3 substr(o123456789,-11, -3): <<>> +i: -11 j: -2 substr(o123456789,-11, -2): <<>> +i: -11 j: -1 substr(o123456789,-11, -1): <<>> +i: -11 j: 0 substr(o123456789,-11, 0): <<>> +i: -11 j: 1 substr(o123456789,-11, 1): <<>> +i: -11 j: 2 substr(o123456789,-11, 2): <<>> +i: -11 j: 3 substr(o123456789,-11, 3): <<>> +i: -11 j: 4 substr(o123456789,-11, 4): <<>> +i: -11 j: 5 substr(o123456789,-11, 5): <<>> +i: -11 j: 6 substr(o123456789,-11, 6): <<>> +i: -11 j: 7 substr(o123456789,-11, 7): <<>> +i: -11 j: 8 substr(o123456789,-11, 8): <<>> +i: -11 j: 9 substr(o123456789,-11, 9): <<>> +i: -11 j: 10 substr(o123456789,-11, 10): <<>> +i: -11 j: 11 substr(o123456789,-11, 11): <<>> +i: -11 j: 12 substr(o123456789,-11, 12): <<>> + +i: -10 j:-12 substr(o123456789,-10,-12): <<>> +i: -10 j:-11 substr(o123456789,-10,-11): <<>> +i: -10 j:-10 substr(o123456789,-10,-10): <> +i: -10 j: -9 substr(o123456789,-10, -9): <> +i: -10 j: -8 substr(o123456789,-10, -8): <> +i: -10 j: -7 substr(o123456789,-10, -7): <> +i: -10 j: -6 substr(o123456789,-10, -6): <> +i: -10 j: -5 substr(o123456789,-10, -5): <> +i: -10 j: -4 substr(o123456789,-10, -4): <> +i: -10 j: -3 substr(o123456789,-10, -3): <> +i: -10 j: -2 substr(o123456789,-10, -2): <> +i: -10 j: -1 substr(o123456789,-10, -1): <> +i: -10 j: 0 substr(o123456789,-10, 0): <> +i: -10 j: 1 substr(o123456789,-10, 1): <> +i: -10 j: 2 substr(o123456789,-10, 2): <> +i: -10 j: 3 substr(o123456789,-10, 3): <> +i: -10 j: 4 substr(o123456789,-10, 4): <> +i: -10 j: 5 substr(o123456789,-10, 5): <> +i: -10 j: 6 substr(o123456789,-10, 6): <> +i: -10 j: 7 substr(o123456789,-10, 7): <> +i: -10 j: 8 substr(o123456789,-10, 8): <> +i: -10 j: 9 substr(o123456789,-10, 9): <> +i: -10 j: 10 substr(o123456789,-10, 10): <<>> +i: -10 j: 11 substr(o123456789,-10, 11): <<>> +i: -10 j: 12 substr(o123456789,-10, 12): <<>> + +i: -9 j:-12 substr(o123456789, -9,-12): <<>> +i: -9 j:-11 substr(o123456789, -9,-11): <<>> +i: -9 j:-10 substr(o123456789, -9,-10): <<>> +i: -9 j: -9 substr(o123456789, -9, -9): <<1>> +i: -9 j: -8 substr(o123456789, -9, -8): <<12>> +i: -9 j: -7 substr(o123456789, -9, -7): <<123>> +i: -9 j: -6 substr(o123456789, -9, -6): <<1234>> +i: -9 j: -5 substr(o123456789, -9, -5): <<12345>> +i: -9 j: -4 substr(o123456789, -9, -4): <<123456>> +i: -9 j: -3 substr(o123456789, -9, -3): <<1234567>> +i: -9 j: -2 substr(o123456789, -9, -2): <<12345678>> +i: -9 j: -1 substr(o123456789, -9, -1): <<123456789>> +i: -9 j: 0 substr(o123456789, -9, 0): <<>> +i: -9 j: 1 substr(o123456789, -9, 1): <<1>> +i: -9 j: 2 substr(o123456789, -9, 2): <<12>> +i: -9 j: 3 substr(o123456789, -9, 3): <<123>> +i: -9 j: 4 substr(o123456789, -9, 4): <<1234>> +i: -9 j: 5 substr(o123456789, -9, 5): <<12345>> +i: -9 j: 6 substr(o123456789, -9, 6): <<123456>> +i: -9 j: 7 substr(o123456789, -9, 7): <<1234567>> +i: -9 j: 8 substr(o123456789, -9, 8): <<12345678>> +i: -9 j: 9 substr(o123456789, -9, 9): <<123456789>> +i: -9 j: 10 substr(o123456789, -9, 10): <<>> +i: -9 j: 11 substr(o123456789, -9, 11): <<>> +i: -9 j: 12 substr(o123456789, -9, 12): <<>> + +i: -8 j:-12 substr(o123456789, -8,-12): <<>> +i: -8 j:-11 substr(o123456789, -8,-11): <<>> +i: -8 j:-10 substr(o123456789, -8,-10): <<>> +i: -8 j: -9 substr(o123456789, -8, -9): <<>> +i: -8 j: -8 substr(o123456789, -8, -8): <<2>> +i: -8 j: -7 substr(o123456789, -8, -7): <<23>> +i: -8 j: -6 substr(o123456789, -8, -6): <<234>> +i: -8 j: -5 substr(o123456789, -8, -5): <<2345>> +i: -8 j: -4 substr(o123456789, -8, -4): <<23456>> +i: -8 j: -3 substr(o123456789, -8, -3): <<234567>> +i: -8 j: -2 substr(o123456789, -8, -2): <<2345678>> +i: -8 j: -1 substr(o123456789, -8, -1): <<23456789>> +i: -8 j: 0 substr(o123456789, -8, 0): <<>> +i: -8 j: 1 substr(o123456789, -8, 1): <<>> +i: -8 j: 2 substr(o123456789, -8, 2): <<2>> +i: -8 j: 3 substr(o123456789, -8, 3): <<23>> +i: -8 j: 4 substr(o123456789, -8, 4): <<234>> +i: -8 j: 5 substr(o123456789, -8, 5): <<2345>> +i: -8 j: 6 substr(o123456789, -8, 6): <<23456>> +i: -8 j: 7 substr(o123456789, -8, 7): <<234567>> +i: -8 j: 8 substr(o123456789, -8, 8): <<2345678>> +i: -8 j: 9 substr(o123456789, -8, 9): <<23456789>> +i: -8 j: 10 substr(o123456789, -8, 10): <<>> +i: -8 j: 11 substr(o123456789, -8, 11): <<>> +i: -8 j: 12 substr(o123456789, -8, 12): <<>> + +i: -7 j:-12 substr(o123456789, -7,-12): <<>> +i: -7 j:-11 substr(o123456789, -7,-11): <<>> +i: -7 j:-10 substr(o123456789, -7,-10): <<>> +i: -7 j: -9 substr(o123456789, -7, -9): <<>> +i: -7 j: -8 substr(o123456789, -7, -8): <<>> +i: -7 j: -7 substr(o123456789, -7, -7): <<3>> +i: -7 j: -6 substr(o123456789, -7, -6): <<34>> +i: -7 j: -5 substr(o123456789, -7, -5): <<345>> +i: -7 j: -4 substr(o123456789, -7, -4): <<3456>> +i: -7 j: -3 substr(o123456789, -7, -3): <<34567>> +i: -7 j: -2 substr(o123456789, -7, -2): <<345678>> +i: -7 j: -1 substr(o123456789, -7, -1): <<3456789>> +i: -7 j: 0 substr(o123456789, -7, 0): <<>> +i: -7 j: 1 substr(o123456789, -7, 1): <<>> +i: -7 j: 2 substr(o123456789, -7, 2): <<>> +i: -7 j: 3 substr(o123456789, -7, 3): <<3>> +i: -7 j: 4 substr(o123456789, -7, 4): <<34>> +i: -7 j: 5 substr(o123456789, -7, 5): <<345>> +i: -7 j: 6 substr(o123456789, -7, 6): <<3456>> +i: -7 j: 7 substr(o123456789, -7, 7): <<34567>> +i: -7 j: 8 substr(o123456789, -7, 8): <<345678>> +i: -7 j: 9 substr(o123456789, -7, 9): <<3456789>> +i: -7 j: 10 substr(o123456789, -7, 10): <<>> +i: -7 j: 11 substr(o123456789, -7, 11): <<>> +i: -7 j: 12 substr(o123456789, -7, 12): <<>> + +i: -6 j:-12 substr(o123456789, -6,-12): <<>> +i: -6 j:-11 substr(o123456789, -6,-11): <<>> +i: -6 j:-10 substr(o123456789, -6,-10): <<>> +i: -6 j: -9 substr(o123456789, -6, -9): <<>> +i: -6 j: -8 substr(o123456789, -6, -8): <<>> +i: -6 j: -7 substr(o123456789, -6, -7): <<>> +i: -6 j: -6 substr(o123456789, -6, -6): <<4>> +i: -6 j: -5 substr(o123456789, -6, -5): <<45>> +i: -6 j: -4 substr(o123456789, -6, -4): <<456>> +i: -6 j: -3 substr(o123456789, -6, -3): <<4567>> +i: -6 j: -2 substr(o123456789, -6, -2): <<45678>> +i: -6 j: -1 substr(o123456789, -6, -1): <<456789>> +i: -6 j: 0 substr(o123456789, -6, 0): <<>> +i: -6 j: 1 substr(o123456789, -6, 1): <<>> +i: -6 j: 2 substr(o123456789, -6, 2): <<>> +i: -6 j: 3 substr(o123456789, -6, 3): <<>> +i: -6 j: 4 substr(o123456789, -6, 4): <<4>> +i: -6 j: 5 substr(o123456789, -6, 5): <<45>> +i: -6 j: 6 substr(o123456789, -6, 6): <<456>> +i: -6 j: 7 substr(o123456789, -6, 7): <<4567>> +i: -6 j: 8 substr(o123456789, -6, 8): <<45678>> +i: -6 j: 9 substr(o123456789, -6, 9): <<456789>> +i: -6 j: 10 substr(o123456789, -6, 10): <<>> +i: -6 j: 11 substr(o123456789, -6, 11): <<>> +i: -6 j: 12 substr(o123456789, -6, 12): <<>> + +i: -5 j:-12 substr(o123456789, -5,-12): <<>> +i: -5 j:-11 substr(o123456789, -5,-11): <<>> +i: -5 j:-10 substr(o123456789, -5,-10): <<>> +i: -5 j: -9 substr(o123456789, -5, -9): <<>> +i: -5 j: -8 substr(o123456789, -5, -8): <<>> +i: -5 j: -7 substr(o123456789, -5, -7): <<>> +i: -5 j: -6 substr(o123456789, -5, -6): <<>> +i: -5 j: -5 substr(o123456789, -5, -5): <<5>> +i: -5 j: -4 substr(o123456789, -5, -4): <<56>> +i: -5 j: -3 substr(o123456789, -5, -3): <<567>> +i: -5 j: -2 substr(o123456789, -5, -2): <<5678>> +i: -5 j: -1 substr(o123456789, -5, -1): <<56789>> +i: -5 j: 0 substr(o123456789, -5, 0): <<>> +i: -5 j: 1 substr(o123456789, -5, 1): <<>> +i: -5 j: 2 substr(o123456789, -5, 2): <<>> +i: -5 j: 3 substr(o123456789, -5, 3): <<>> +i: -5 j: 4 substr(o123456789, -5, 4): <<>> +i: -5 j: 5 substr(o123456789, -5, 5): <<5>> +i: -5 j: 6 substr(o123456789, -5, 6): <<56>> +i: -5 j: 7 substr(o123456789, -5, 7): <<567>> +i: -5 j: 8 substr(o123456789, -5, 8): <<5678>> +i: -5 j: 9 substr(o123456789, -5, 9): <<56789>> +i: -5 j: 10 substr(o123456789, -5, 10): <<>> +i: -5 j: 11 substr(o123456789, -5, 11): <<>> +i: -5 j: 12 substr(o123456789, -5, 12): <<>> + +i: -4 j:-12 substr(o123456789, -4,-12): <<>> +i: -4 j:-11 substr(o123456789, -4,-11): <<>> +i: -4 j:-10 substr(o123456789, -4,-10): <<>> +i: -4 j: -9 substr(o123456789, -4, -9): <<>> +i: -4 j: -8 substr(o123456789, -4, -8): <<>> +i: -4 j: -7 substr(o123456789, -4, -7): <<>> +i: -4 j: -6 substr(o123456789, -4, -6): <<>> +i: -4 j: -5 substr(o123456789, -4, -5): <<>> +i: -4 j: -4 substr(o123456789, -4, -4): <<6>> +i: -4 j: -3 substr(o123456789, -4, -3): <<67>> +i: -4 j: -2 substr(o123456789, -4, -2): <<678>> +i: -4 j: -1 substr(o123456789, -4, -1): <<6789>> +i: -4 j: 0 substr(o123456789, -4, 0): <<>> +i: -4 j: 1 substr(o123456789, -4, 1): <<>> +i: -4 j: 2 substr(o123456789, -4, 2): <<>> +i: -4 j: 3 substr(o123456789, -4, 3): <<>> +i: -4 j: 4 substr(o123456789, -4, 4): <<>> +i: -4 j: 5 substr(o123456789, -4, 5): <<>> +i: -4 j: 6 substr(o123456789, -4, 6): <<6>> +i: -4 j: 7 substr(o123456789, -4, 7): <<67>> +i: -4 j: 8 substr(o123456789, -4, 8): <<678>> +i: -4 j: 9 substr(o123456789, -4, 9): <<6789>> +i: -4 j: 10 substr(o123456789, -4, 10): <<>> +i: -4 j: 11 substr(o123456789, -4, 11): <<>> +i: -4 j: 12 substr(o123456789, -4, 12): <<>> + +i: -3 j:-12 substr(o123456789, -3,-12): <<>> +i: -3 j:-11 substr(o123456789, -3,-11): <<>> +i: -3 j:-10 substr(o123456789, -3,-10): <<>> +i: -3 j: -9 substr(o123456789, -3, -9): <<>> +i: -3 j: -8 substr(o123456789, -3, -8): <<>> +i: -3 j: -7 substr(o123456789, -3, -7): <<>> +i: -3 j: -6 substr(o123456789, -3, -6): <<>> +i: -3 j: -5 substr(o123456789, -3, -5): <<>> +i: -3 j: -4 substr(o123456789, -3, -4): <<>> +i: -3 j: -3 substr(o123456789, -3, -3): <<7>> +i: -3 j: -2 substr(o123456789, -3, -2): <<78>> +i: -3 j: -1 substr(o123456789, -3, -1): <<789>> +i: -3 j: 0 substr(o123456789, -3, 0): <<>> +i: -3 j: 1 substr(o123456789, -3, 1): <<>> +i: -3 j: 2 substr(o123456789, -3, 2): <<>> +i: -3 j: 3 substr(o123456789, -3, 3): <<>> +i: -3 j: 4 substr(o123456789, -3, 4): <<>> +i: -3 j: 5 substr(o123456789, -3, 5): <<>> +i: -3 j: 6 substr(o123456789, -3, 6): <<>> +i: -3 j: 7 substr(o123456789, -3, 7): <<7>> +i: -3 j: 8 substr(o123456789, -3, 8): <<78>> +i: -3 j: 9 substr(o123456789, -3, 9): <<789>> +i: -3 j: 10 substr(o123456789, -3, 10): <<>> +i: -3 j: 11 substr(o123456789, -3, 11): <<>> +i: -3 j: 12 substr(o123456789, -3, 12): <<>> + +i: -2 j:-12 substr(o123456789, -2,-12): <<>> +i: -2 j:-11 substr(o123456789, -2,-11): <<>> +i: -2 j:-10 substr(o123456789, -2,-10): <<>> +i: -2 j: -9 substr(o123456789, -2, -9): <<>> +i: -2 j: -8 substr(o123456789, -2, -8): <<>> +i: -2 j: -7 substr(o123456789, -2, -7): <<>> +i: -2 j: -6 substr(o123456789, -2, -6): <<>> +i: -2 j: -5 substr(o123456789, -2, -5): <<>> +i: -2 j: -4 substr(o123456789, -2, -4): <<>> +i: -2 j: -3 substr(o123456789, -2, -3): <<>> +i: -2 j: -2 substr(o123456789, -2, -2): <<8>> +i: -2 j: -1 substr(o123456789, -2, -1): <<89>> +i: -2 j: 0 substr(o123456789, -2, 0): <<>> +i: -2 j: 1 substr(o123456789, -2, 1): <<>> +i: -2 j: 2 substr(o123456789, -2, 2): <<>> +i: -2 j: 3 substr(o123456789, -2, 3): <<>> +i: -2 j: 4 substr(o123456789, -2, 4): <<>> +i: -2 j: 5 substr(o123456789, -2, 5): <<>> +i: -2 j: 6 substr(o123456789, -2, 6): <<>> +i: -2 j: 7 substr(o123456789, -2, 7): <<>> +i: -2 j: 8 substr(o123456789, -2, 8): <<8>> +i: -2 j: 9 substr(o123456789, -2, 9): <<89>> +i: -2 j: 10 substr(o123456789, -2, 10): <<>> +i: -2 j: 11 substr(o123456789, -2, 11): <<>> +i: -2 j: 12 substr(o123456789, -2, 12): <<>> + +i: -1 j:-12 substr(o123456789, -1,-12): <<>> +i: -1 j:-11 substr(o123456789, -1,-11): <<>> +i: -1 j:-10 substr(o123456789, -1,-10): <<>> +i: -1 j: -9 substr(o123456789, -1, -9): <<>> +i: -1 j: -8 substr(o123456789, -1, -8): <<>> +i: -1 j: -7 substr(o123456789, -1, -7): <<>> +i: -1 j: -6 substr(o123456789, -1, -6): <<>> +i: -1 j: -5 substr(o123456789, -1, -5): <<>> +i: -1 j: -4 substr(o123456789, -1, -4): <<>> +i: -1 j: -3 substr(o123456789, -1, -3): <<>> +i: -1 j: -2 substr(o123456789, -1, -2): <<>> +i: -1 j: -1 substr(o123456789, -1, -1): <<9>> +i: -1 j: 0 substr(o123456789, -1, 0): <<>> +i: -1 j: 1 substr(o123456789, -1, 1): <<>> +i: -1 j: 2 substr(o123456789, -1, 2): <<>> +i: -1 j: 3 substr(o123456789, -1, 3): <<>> +i: -1 j: 4 substr(o123456789, -1, 4): <<>> +i: -1 j: 5 substr(o123456789, -1, 5): <<>> +i: -1 j: 6 substr(o123456789, -1, 6): <<>> +i: -1 j: 7 substr(o123456789, -1, 7): <<>> +i: -1 j: 8 substr(o123456789, -1, 8): <<>> +i: -1 j: 9 substr(o123456789, -1, 9): <<9>> +i: -1 j: 10 substr(o123456789, -1, 10): <<>> +i: -1 j: 11 substr(o123456789, -1, 11): <<>> +i: -1 j: 12 substr(o123456789, -1, 12): <<>> + +i: 0 j:-12 substr(o123456789, 0,-12): <<>> +i: 0 j:-11 substr(o123456789, 0,-11): <<>> +i: 0 j:-10 substr(o123456789, 0,-10): <> +i: 0 j: -9 substr(o123456789, 0, -9): <> +i: 0 j: -8 substr(o123456789, 0, -8): <> +i: 0 j: -7 substr(o123456789, 0, -7): <> +i: 0 j: -6 substr(o123456789, 0, -6): <> +i: 0 j: -5 substr(o123456789, 0, -5): <> +i: 0 j: -4 substr(o123456789, 0, -4): <> +i: 0 j: -3 substr(o123456789, 0, -3): <> +i: 0 j: -2 substr(o123456789, 0, -2): <> +i: 0 j: -1 substr(o123456789, 0, -1): <> +i: 0 j: 0 substr(o123456789, 0, 0): <> +i: 0 j: 1 substr(o123456789, 0, 1): <> +i: 0 j: 2 substr(o123456789, 0, 2): <> +i: 0 j: 3 substr(o123456789, 0, 3): <> +i: 0 j: 4 substr(o123456789, 0, 4): <> +i: 0 j: 5 substr(o123456789, 0, 5): <> +i: 0 j: 6 substr(o123456789, 0, 6): <> +i: 0 j: 7 substr(o123456789, 0, 7): <> +i: 0 j: 8 substr(o123456789, 0, 8): <> +i: 0 j: 9 substr(o123456789, 0, 9): <> +i: 0 j: 10 substr(o123456789, 0, 10): <<>> +i: 0 j: 11 substr(o123456789, 0, 11): <<>> +i: 0 j: 12 substr(o123456789, 0, 12): <<>> + +i: 1 j:-12 substr(o123456789, 1,-12): <<>> +i: 1 j:-11 substr(o123456789, 1,-11): <<>> +i: 1 j:-10 substr(o123456789, 1,-10): <<>> +i: 1 j: -9 substr(o123456789, 1, -9): <<1>> +i: 1 j: -8 substr(o123456789, 1, -8): <<12>> +i: 1 j: -7 substr(o123456789, 1, -7): <<123>> +i: 1 j: -6 substr(o123456789, 1, -6): <<1234>> +i: 1 j: -5 substr(o123456789, 1, -5): <<12345>> +i: 1 j: -4 substr(o123456789, 1, -4): <<123456>> +i: 1 j: -3 substr(o123456789, 1, -3): <<1234567>> +i: 1 j: -2 substr(o123456789, 1, -2): <<12345678>> +i: 1 j: -1 substr(o123456789, 1, -1): <<123456789>> +i: 1 j: 0 substr(o123456789, 1, 0): <<>> +i: 1 j: 1 substr(o123456789, 1, 1): <<1>> +i: 1 j: 2 substr(o123456789, 1, 2): <<12>> +i: 1 j: 3 substr(o123456789, 1, 3): <<123>> +i: 1 j: 4 substr(o123456789, 1, 4): <<1234>> +i: 1 j: 5 substr(o123456789, 1, 5): <<12345>> +i: 1 j: 6 substr(o123456789, 1, 6): <<123456>> +i: 1 j: 7 substr(o123456789, 1, 7): <<1234567>> +i: 1 j: 8 substr(o123456789, 1, 8): <<12345678>> +i: 1 j: 9 substr(o123456789, 1, 9): <<123456789>> +i: 1 j: 10 substr(o123456789, 1, 10): <<>> +i: 1 j: 11 substr(o123456789, 1, 11): <<>> +i: 1 j: 12 substr(o123456789, 1, 12): <<>> + +i: 2 j:-12 substr(o123456789, 2,-12): <<>> +i: 2 j:-11 substr(o123456789, 2,-11): <<>> +i: 2 j:-10 substr(o123456789, 2,-10): <<>> +i: 2 j: -9 substr(o123456789, 2, -9): <<>> +i: 2 j: -8 substr(o123456789, 2, -8): <<2>> +i: 2 j: -7 substr(o123456789, 2, -7): <<23>> +i: 2 j: -6 substr(o123456789, 2, -6): <<234>> +i: 2 j: -5 substr(o123456789, 2, -5): <<2345>> +i: 2 j: -4 substr(o123456789, 2, -4): <<23456>> +i: 2 j: -3 substr(o123456789, 2, -3): <<234567>> +i: 2 j: -2 substr(o123456789, 2, -2): <<2345678>> +i: 2 j: -1 substr(o123456789, 2, -1): <<23456789>> +i: 2 j: 0 substr(o123456789, 2, 0): <<>> +i: 2 j: 1 substr(o123456789, 2, 1): <<>> +i: 2 j: 2 substr(o123456789, 2, 2): <<2>> +i: 2 j: 3 substr(o123456789, 2, 3): <<23>> +i: 2 j: 4 substr(o123456789, 2, 4): <<234>> +i: 2 j: 5 substr(o123456789, 2, 5): <<2345>> +i: 2 j: 6 substr(o123456789, 2, 6): <<23456>> +i: 2 j: 7 substr(o123456789, 2, 7): <<234567>> +i: 2 j: 8 substr(o123456789, 2, 8): <<2345678>> +i: 2 j: 9 substr(o123456789, 2, 9): <<23456789>> +i: 2 j: 10 substr(o123456789, 2, 10): <<>> +i: 2 j: 11 substr(o123456789, 2, 11): <<>> +i: 2 j: 12 substr(o123456789, 2, 12): <<>> + +i: 3 j:-12 substr(o123456789, 3,-12): <<>> +i: 3 j:-11 substr(o123456789, 3,-11): <<>> +i: 3 j:-10 substr(o123456789, 3,-10): <<>> +i: 3 j: -9 substr(o123456789, 3, -9): <<>> +i: 3 j: -8 substr(o123456789, 3, -8): <<>> +i: 3 j: -7 substr(o123456789, 3, -7): <<3>> +i: 3 j: -6 substr(o123456789, 3, -6): <<34>> +i: 3 j: -5 substr(o123456789, 3, -5): <<345>> +i: 3 j: -4 substr(o123456789, 3, -4): <<3456>> +i: 3 j: -3 substr(o123456789, 3, -3): <<34567>> +i: 3 j: -2 substr(o123456789, 3, -2): <<345678>> +i: 3 j: -1 substr(o123456789, 3, -1): <<3456789>> +i: 3 j: 0 substr(o123456789, 3, 0): <<>> +i: 3 j: 1 substr(o123456789, 3, 1): <<>> +i: 3 j: 2 substr(o123456789, 3, 2): <<>> +i: 3 j: 3 substr(o123456789, 3, 3): <<3>> +i: 3 j: 4 substr(o123456789, 3, 4): <<34>> +i: 3 j: 5 substr(o123456789, 3, 5): <<345>> +i: 3 j: 6 substr(o123456789, 3, 6): <<3456>> +i: 3 j: 7 substr(o123456789, 3, 7): <<34567>> +i: 3 j: 8 substr(o123456789, 3, 8): <<345678>> +i: 3 j: 9 substr(o123456789, 3, 9): <<3456789>> +i: 3 j: 10 substr(o123456789, 3, 10): <<>> +i: 3 j: 11 substr(o123456789, 3, 11): <<>> +i: 3 j: 12 substr(o123456789, 3, 12): <<>> + +i: 4 j:-12 substr(o123456789, 4,-12): <<>> +i: 4 j:-11 substr(o123456789, 4,-11): <<>> +i: 4 j:-10 substr(o123456789, 4,-10): <<>> +i: 4 j: -9 substr(o123456789, 4, -9): <<>> +i: 4 j: -8 substr(o123456789, 4, -8): <<>> +i: 4 j: -7 substr(o123456789, 4, -7): <<>> +i: 4 j: -6 substr(o123456789, 4, -6): <<4>> +i: 4 j: -5 substr(o123456789, 4, -5): <<45>> +i: 4 j: -4 substr(o123456789, 4, -4): <<456>> +i: 4 j: -3 substr(o123456789, 4, -3): <<4567>> +i: 4 j: -2 substr(o123456789, 4, -2): <<45678>> +i: 4 j: -1 substr(o123456789, 4, -1): <<456789>> +i: 4 j: 0 substr(o123456789, 4, 0): <<>> +i: 4 j: 1 substr(o123456789, 4, 1): <<>> +i: 4 j: 2 substr(o123456789, 4, 2): <<>> +i: 4 j: 3 substr(o123456789, 4, 3): <<>> +i: 4 j: 4 substr(o123456789, 4, 4): <<4>> +i: 4 j: 5 substr(o123456789, 4, 5): <<45>> +i: 4 j: 6 substr(o123456789, 4, 6): <<456>> +i: 4 j: 7 substr(o123456789, 4, 7): <<4567>> +i: 4 j: 8 substr(o123456789, 4, 8): <<45678>> +i: 4 j: 9 substr(o123456789, 4, 9): <<456789>> +i: 4 j: 10 substr(o123456789, 4, 10): <<>> +i: 4 j: 11 substr(o123456789, 4, 11): <<>> +i: 4 j: 12 substr(o123456789, 4, 12): <<>> + +i: 5 j:-12 substr(o123456789, 5,-12): <<>> +i: 5 j:-11 substr(o123456789, 5,-11): <<>> +i: 5 j:-10 substr(o123456789, 5,-10): <<>> +i: 5 j: -9 substr(o123456789, 5, -9): <<>> +i: 5 j: -8 substr(o123456789, 5, -8): <<>> +i: 5 j: -7 substr(o123456789, 5, -7): <<>> +i: 5 j: -6 substr(o123456789, 5, -6): <<>> +i: 5 j: -5 substr(o123456789, 5, -5): <<5>> +i: 5 j: -4 substr(o123456789, 5, -4): <<56>> +i: 5 j: -3 substr(o123456789, 5, -3): <<567>> +i: 5 j: -2 substr(o123456789, 5, -2): <<5678>> +i: 5 j: -1 substr(o123456789, 5, -1): <<56789>> +i: 5 j: 0 substr(o123456789, 5, 0): <<>> +i: 5 j: 1 substr(o123456789, 5, 1): <<>> +i: 5 j: 2 substr(o123456789, 5, 2): <<>> +i: 5 j: 3 substr(o123456789, 5, 3): <<>> +i: 5 j: 4 substr(o123456789, 5, 4): <<>> +i: 5 j: 5 substr(o123456789, 5, 5): <<5>> +i: 5 j: 6 substr(o123456789, 5, 6): <<56>> +i: 5 j: 7 substr(o123456789, 5, 7): <<567>> +i: 5 j: 8 substr(o123456789, 5, 8): <<5678>> +i: 5 j: 9 substr(o123456789, 5, 9): <<56789>> +i: 5 j: 10 substr(o123456789, 5, 10): <<>> +i: 5 j: 11 substr(o123456789, 5, 11): <<>> +i: 5 j: 12 substr(o123456789, 5, 12): <<>> + +i: 6 j:-12 substr(o123456789, 6,-12): <<>> +i: 6 j:-11 substr(o123456789, 6,-11): <<>> +i: 6 j:-10 substr(o123456789, 6,-10): <<>> +i: 6 j: -9 substr(o123456789, 6, -9): <<>> +i: 6 j: -8 substr(o123456789, 6, -8): <<>> +i: 6 j: -7 substr(o123456789, 6, -7): <<>> +i: 6 j: -6 substr(o123456789, 6, -6): <<>> +i: 6 j: -5 substr(o123456789, 6, -5): <<>> +i: 6 j: -4 substr(o123456789, 6, -4): <<6>> +i: 6 j: -3 substr(o123456789, 6, -3): <<67>> +i: 6 j: -2 substr(o123456789, 6, -2): <<678>> +i: 6 j: -1 substr(o123456789, 6, -1): <<6789>> +i: 6 j: 0 substr(o123456789, 6, 0): <<>> +i: 6 j: 1 substr(o123456789, 6, 1): <<>> +i: 6 j: 2 substr(o123456789, 6, 2): <<>> +i: 6 j: 3 substr(o123456789, 6, 3): <<>> +i: 6 j: 4 substr(o123456789, 6, 4): <<>> +i: 6 j: 5 substr(o123456789, 6, 5): <<>> +i: 6 j: 6 substr(o123456789, 6, 6): <<6>> +i: 6 j: 7 substr(o123456789, 6, 7): <<67>> +i: 6 j: 8 substr(o123456789, 6, 8): <<678>> +i: 6 j: 9 substr(o123456789, 6, 9): <<6789>> +i: 6 j: 10 substr(o123456789, 6, 10): <<>> +i: 6 j: 11 substr(o123456789, 6, 11): <<>> +i: 6 j: 12 substr(o123456789, 6, 12): <<>> + +i: 7 j:-12 substr(o123456789, 7,-12): <<>> +i: 7 j:-11 substr(o123456789, 7,-11): <<>> +i: 7 j:-10 substr(o123456789, 7,-10): <<>> +i: 7 j: -9 substr(o123456789, 7, -9): <<>> +i: 7 j: -8 substr(o123456789, 7, -8): <<>> +i: 7 j: -7 substr(o123456789, 7, -7): <<>> +i: 7 j: -6 substr(o123456789, 7, -6): <<>> +i: 7 j: -5 substr(o123456789, 7, -5): <<>> +i: 7 j: -4 substr(o123456789, 7, -4): <<>> +i: 7 j: -3 substr(o123456789, 7, -3): <<7>> +i: 7 j: -2 substr(o123456789, 7, -2): <<78>> +i: 7 j: -1 substr(o123456789, 7, -1): <<789>> +i: 7 j: 0 substr(o123456789, 7, 0): <<>> +i: 7 j: 1 substr(o123456789, 7, 1): <<>> +i: 7 j: 2 substr(o123456789, 7, 2): <<>> +i: 7 j: 3 substr(o123456789, 7, 3): <<>> +i: 7 j: 4 substr(o123456789, 7, 4): <<>> +i: 7 j: 5 substr(o123456789, 7, 5): <<>> +i: 7 j: 6 substr(o123456789, 7, 6): <<>> +i: 7 j: 7 substr(o123456789, 7, 7): <<7>> +i: 7 j: 8 substr(o123456789, 7, 8): <<78>> +i: 7 j: 9 substr(o123456789, 7, 9): <<789>> +i: 7 j: 10 substr(o123456789, 7, 10): <<>> +i: 7 j: 11 substr(o123456789, 7, 11): <<>> +i: 7 j: 12 substr(o123456789, 7, 12): <<>> + +i: 8 j:-12 substr(o123456789, 8,-12): <<>> +i: 8 j:-11 substr(o123456789, 8,-11): <<>> +i: 8 j:-10 substr(o123456789, 8,-10): <<>> +i: 8 j: -9 substr(o123456789, 8, -9): <<>> +i: 8 j: -8 substr(o123456789, 8, -8): <<>> +i: 8 j: -7 substr(o123456789, 8, -7): <<>> +i: 8 j: -6 substr(o123456789, 8, -6): <<>> +i: 8 j: -5 substr(o123456789, 8, -5): <<>> +i: 8 j: -4 substr(o123456789, 8, -4): <<>> +i: 8 j: -3 substr(o123456789, 8, -3): <<>> +i: 8 j: -2 substr(o123456789, 8, -2): <<8>> +i: 8 j: -1 substr(o123456789, 8, -1): <<89>> +i: 8 j: 0 substr(o123456789, 8, 0): <<>> +i: 8 j: 1 substr(o123456789, 8, 1): <<>> +i: 8 j: 2 substr(o123456789, 8, 2): <<>> +i: 8 j: 3 substr(o123456789, 8, 3): <<>> +i: 8 j: 4 substr(o123456789, 8, 4): <<>> +i: 8 j: 5 substr(o123456789, 8, 5): <<>> +i: 8 j: 6 substr(o123456789, 8, 6): <<>> +i: 8 j: 7 substr(o123456789, 8, 7): <<>> +i: 8 j: 8 substr(o123456789, 8, 8): <<8>> +i: 8 j: 9 substr(o123456789, 8, 9): <<89>> +i: 8 j: 10 substr(o123456789, 8, 10): <<>> +i: 8 j: 11 substr(o123456789, 8, 11): <<>> +i: 8 j: 12 substr(o123456789, 8, 12): <<>> + +i: 9 j:-12 substr(o123456789, 9,-12): <<>> +i: 9 j:-11 substr(o123456789, 9,-11): <<>> +i: 9 j:-10 substr(o123456789, 9,-10): <<>> +i: 9 j: -9 substr(o123456789, 9, -9): <<>> +i: 9 j: -8 substr(o123456789, 9, -8): <<>> +i: 9 j: -7 substr(o123456789, 9, -7): <<>> +i: 9 j: -6 substr(o123456789, 9, -6): <<>> +i: 9 j: -5 substr(o123456789, 9, -5): <<>> +i: 9 j: -4 substr(o123456789, 9, -4): <<>> +i: 9 j: -3 substr(o123456789, 9, -3): <<>> +i: 9 j: -2 substr(o123456789, 9, -2): <<>> +i: 9 j: -1 substr(o123456789, 9, -1): <<9>> +i: 9 j: 0 substr(o123456789, 9, 0): <<>> +i: 9 j: 1 substr(o123456789, 9, 1): <<>> +i: 9 j: 2 substr(o123456789, 9, 2): <<>> +i: 9 j: 3 substr(o123456789, 9, 3): <<>> +i: 9 j: 4 substr(o123456789, 9, 4): <<>> +i: 9 j: 5 substr(o123456789, 9, 5): <<>> +i: 9 j: 6 substr(o123456789, 9, 6): <<>> +i: 9 j: 7 substr(o123456789, 9, 7): <<>> +i: 9 j: 8 substr(o123456789, 9, 8): <<>> +i: 9 j: 9 substr(o123456789, 9, 9): <<9>> +i: 9 j: 10 substr(o123456789, 9, 10): <<>> +i: 9 j: 11 substr(o123456789, 9, 11): <<>> +i: 9 j: 12 substr(o123456789, 9, 12): <<>> + +i: 10 j:-12 substr(o123456789, 10,-12): <<>> +i: 10 j:-11 substr(o123456789, 10,-11): <<>> +i: 10 j:-10 substr(o123456789, 10,-10): <<>> +i: 10 j: -9 substr(o123456789, 10, -9): <<>> +i: 10 j: -8 substr(o123456789, 10, -8): <<>> +i: 10 j: -7 substr(o123456789, 10, -7): <<>> +i: 10 j: -6 substr(o123456789, 10, -6): <<>> +i: 10 j: -5 substr(o123456789, 10, -5): <<>> +i: 10 j: -4 substr(o123456789, 10, -4): <<>> +i: 10 j: -3 substr(o123456789, 10, -3): <<>> +i: 10 j: -2 substr(o123456789, 10, -2): <<>> +i: 10 j: -1 substr(o123456789, 10, -1): <<>> +i: 10 j: 0 substr(o123456789, 10, 0): <<>> +i: 10 j: 1 substr(o123456789, 10, 1): <<>> +i: 10 j: 2 substr(o123456789, 10, 2): <<>> +i: 10 j: 3 substr(o123456789, 10, 3): <<>> +i: 10 j: 4 substr(o123456789, 10, 4): <<>> +i: 10 j: 5 substr(o123456789, 10, 5): <<>> +i: 10 j: 6 substr(o123456789, 10, 6): <<>> +i: 10 j: 7 substr(o123456789, 10, 7): <<>> +i: 10 j: 8 substr(o123456789, 10, 8): <<>> +i: 10 j: 9 substr(o123456789, 10, 9): <<>> +i: 10 j: 10 substr(o123456789, 10, 10): <<>> +i: 10 j: 11 substr(o123456789, 10, 11): <<>> +i: 10 j: 12 substr(o123456789, 10, 12): <<>> + +i: 11 j:-12 substr(o123456789, 11,-12): <<>> +i: 11 j:-11 substr(o123456789, 11,-11): <<>> +i: 11 j:-10 substr(o123456789, 11,-10): <<>> +i: 11 j: -9 substr(o123456789, 11, -9): <<>> +i: 11 j: -8 substr(o123456789, 11, -8): <<>> +i: 11 j: -7 substr(o123456789, 11, -7): <<>> +i: 11 j: -6 substr(o123456789, 11, -6): <<>> +i: 11 j: -5 substr(o123456789, 11, -5): <<>> +i: 11 j: -4 substr(o123456789, 11, -4): <<>> +i: 11 j: -3 substr(o123456789, 11, -3): <<>> +i: 11 j: -2 substr(o123456789, 11, -2): <<>> +i: 11 j: -1 substr(o123456789, 11, -1): <<>> +i: 11 j: 0 substr(o123456789, 11, 0): <<>> +i: 11 j: 1 substr(o123456789, 11, 1): <<>> +i: 11 j: 2 substr(o123456789, 11, 2): <<>> +i: 11 j: 3 substr(o123456789, 11, 3): <<>> +i: 11 j: 4 substr(o123456789, 11, 4): <<>> +i: 11 j: 5 substr(o123456789, 11, 5): <<>> +i: 11 j: 6 substr(o123456789, 11, 6): <<>> +i: 11 j: 7 substr(o123456789, 11, 7): <<>> +i: 11 j: 8 substr(o123456789, 11, 8): <<>> +i: 11 j: 9 substr(o123456789, 11, 9): <<>> +i: 11 j: 10 substr(o123456789, 11, 10): <<>> +i: 11 j: 11 substr(o123456789, 11, 11): <<>> +i: 11 j: 12 substr(o123456789, 11, 12): <<>> + +i: 12 j:-12 substr(o123456789, 12,-12): <<>> +i: 12 j:-11 substr(o123456789, 12,-11): <<>> +i: 12 j:-10 substr(o123456789, 12,-10): <<>> +i: 12 j: -9 substr(o123456789, 12, -9): <<>> +i: 12 j: -8 substr(o123456789, 12, -8): <<>> +i: 12 j: -7 substr(o123456789, 12, -7): <<>> +i: 12 j: -6 substr(o123456789, 12, -6): <<>> +i: 12 j: -5 substr(o123456789, 12, -5): <<>> +i: 12 j: -4 substr(o123456789, 12, -4): <<>> +i: 12 j: -3 substr(o123456789, 12, -3): <<>> +i: 12 j: -2 substr(o123456789, 12, -2): <<>> +i: 12 j: -1 substr(o123456789, 12, -1): <<>> +i: 12 j: 0 substr(o123456789, 12, 0): <<>> +i: 12 j: 1 substr(o123456789, 12, 1): <<>> +i: 12 j: 2 substr(o123456789, 12, 2): <<>> +i: 12 j: 3 substr(o123456789, 12, 3): <<>> +i: 12 j: 4 substr(o123456789, 12, 4): <<>> +i: 12 j: 5 substr(o123456789, 12, 5): <<>> +i: 12 j: 6 substr(o123456789, 12, 6): <<>> +i: 12 j: 7 substr(o123456789, 12, 7): <<>> +i: 12 j: 8 substr(o123456789, 12, 8): <<>> +i: 12 j: 9 substr(o123456789, 12, 9): <<>> +i: 12 j: 10 substr(o123456789, 12, 10): <<>> +i: 12 j: 11 substr(o123456789, 12, 11): <<>> +i: 12 j: 12 substr(o123456789, 12, 12): <<>> + + + +================================================================ +DSL SYSTEM + +mlr put $counter = system("echo X".NR."Y") ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,counter=X1Y +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,counter=X2Y +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,counter=X3Y +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,counter=X4Y +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,counter=X5Y +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,counter=X6Y +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,counter=X7Y +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,counter=X8Y +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,counter=X9Y +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,counter=X10Y + + +================================================================ +DSL OOSVARS + +mlr --opprint put -v begin{@ox=0}; $d=$x-@ox; @ox=$x ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="-", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="-", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a b i x y d +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 +eks pan 2 0.7586799647899636 0.5221511083334797 0.411890 +wye wye 3 0.20460330576630303 0.33831852551664776 -0.554077 +eks wye 4 0.38139939387114097 0.13418874328430463 0.176796 +wye pan 5 0.5732889198020006 0.8636244699032729 0.191890 +zee pan 6 0.5271261600918548 0.49322128674835697 -0.046163 +eks zee 7 0.6117840605678454 0.1878849191181694 0.084658 +zee wye 8 0.5985540091064224 0.976181385699006 -0.013230 +hat wye 9 0.03144187646093577 0.7495507603507059 -0.567112 +pan wye 10 0.5026260055412137 0.9526183602969864 0.471184 + +mlr --opprint put -v begin{@ox="no"}; $d=@ox == "no" ? 1.0 : $x/@ox; @ox=$x then step -a ratio -f x ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="no", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="==", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="no", type=STRING_LITERAL. + text="1.0", type=NUMERIC_LITERAL. + text="/", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="no", type=STRING_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="==", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="no", type=STRING_LITERAL. + text="1.0", type=NUMERIC_LITERAL. + text="/", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a b i x y d x_ratio +pan pan 1 0.3467901443380824 0.7268028627434533 1.000000 1.000000 +eks pan 2 0.7586799647899636 0.5221511083334797 2.187721 2.187721 +wye wye 3 0.20460330576630303 0.33831852551664776 0.269683 0.269683 +eks wye 4 0.38139939387114097 0.13418874328430463 1.864092 1.864092 +wye pan 5 0.5732889198020006 0.8636244699032729 1.503120 1.503120 +zee pan 6 0.5271261600918548 0.49322128674835697 0.919477 0.919477 +eks zee 7 0.6117840605678454 0.1878849191181694 1.160603 1.160603 +zee wye 8 0.5985540091064224 0.976181385699006 0.978375 0.978375 +hat wye 9 0.03144187646093577 0.7495507603507059 0.052530 0.052530 +pan wye 10 0.5026260055412137 0.9526183602969864 15.985878 15.985878 + +mlr --opprint put -v $d=$x/@ox; @ox=$x then step -a ratio -f x ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="/", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="/", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a b i x y d x_ratio +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 1.000000 +eks pan 2 0.7586799647899636 0.5221511083334797 2.187721 2.187721 +wye wye 3 0.20460330576630303 0.33831852551664776 0.269683 0.269683 +eks wye 4 0.38139939387114097 0.13418874328430463 1.864092 1.864092 +wye pan 5 0.5732889198020006 0.8636244699032729 1.503120 1.503120 +zee pan 6 0.5271261600918548 0.49322128674835697 0.919477 0.919477 +eks zee 7 0.6117840605678454 0.1878849191181694 1.160603 1.160603 +zee wye 8 0.5985540091064224 0.976181385699006 0.978375 0.978375 +hat wye 9 0.03144187646093577 0.7495507603507059 0.052530 0.052530 +pan wye 10 0.5026260055412137 0.9526183602969864 15.985878 15.985878 + +mlr --opprint put -v begin{@ox="no"}; $d=@ox == "no" ? 1.0 : $x/@ox; @ox=$x then step -a ratio -f x ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="no", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="==", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="no", type=STRING_LITERAL. + text="1.0", type=NUMERIC_LITERAL. + text="/", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="no", type=STRING_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="? :", type=OPERATOR: + text="==", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="no", type=STRING_LITERAL. + text="1.0", type=NUMERIC_LITERAL. + text="/", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a b i x y d x_ratio +pan pan 1 0.3467901443380824 0.7268028627434533 1.000000 1.000000 +eks pan 2 0.7586799647899636 0.5221511083334797 2.187721 2.187721 +wye wye 3 0.20460330576630303 0.33831852551664776 0.269683 0.269683 +eks wye 4 0.38139939387114097 0.13418874328430463 1.864092 1.864092 +wye pan 5 0.5732889198020006 0.8636244699032729 1.503120 1.503120 +zee pan 6 0.5271261600918548 0.49322128674835697 0.919477 0.919477 +eks zee 7 0.6117840605678454 0.1878849191181694 1.160603 1.160603 +zee wye 8 0.5985540091064224 0.976181385699006 0.978375 0.978375 +hat wye 9 0.03144187646093577 0.7495507603507059 0.052530 0.052530 +pan wye 10 0.5026260055412137 0.9526183602969864 15.985878 15.985878 + +mlr --opprint put -v begin{@rsum = 0}; @rsum = @rsum + $x; $rsum = @rsum ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="rsum", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="rsum", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="rsum", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="rsum", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="rsum", type=STRING_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="rsum", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="rsum", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="rsum", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="rsum", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="rsum", type=STRING_LITERAL. + +a b i x y rsum +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 +eks pan 2 0.7586799647899636 0.5221511083334797 1.105470 +wye wye 3 0.20460330576630303 0.33831852551664776 1.310073 +eks wye 4 0.38139939387114097 0.13418874328430463 1.691473 +wye pan 5 0.5732889198020006 0.8636244699032729 2.264762 +zee pan 6 0.5271261600918548 0.49322128674835697 2.791888 +eks zee 7 0.6117840605678454 0.1878849191181694 3.403672 +zee wye 8 0.5985540091064224 0.976181385699006 4.002226 +hat wye 9 0.03144187646093577 0.7495507603507059 4.033668 +pan wye 10 0.5026260055412137 0.9526183602969864 4.536294 + +mlr --opprint put -v begin{@a=0; @b=0; @c=0}; $za=@a; $zb=@b; $zc=@c; $d=@a+@b+@c; @a=@b; @b=@c; @c=$i ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="za", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="zb", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="zc", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="i", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="za", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="zb", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="zc", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="i", type=FIELD_NAME. + +a b i x y za zb zc d +pan pan 1 0.3467901443380824 0.7268028627434533 0 0 0 0 +eks pan 2 0.7586799647899636 0.5221511083334797 0 0 1 1 +wye wye 3 0.20460330576630303 0.33831852551664776 0 1 2 3 +eks wye 4 0.38139939387114097 0.13418874328430463 1 2 3 6 +wye pan 5 0.5732889198020006 0.8636244699032729 2 3 4 9 +zee pan 6 0.5271261600918548 0.49322128674835697 3 4 5 12 +eks zee 7 0.6117840605678454 0.1878849191181694 4 5 6 15 +zee wye 8 0.5985540091064224 0.976181385699006 5 6 7 18 +hat wye 9 0.03144187646093577 0.7495507603507059 6 7 8 21 +pan wye 10 0.5026260055412137 0.9526183602969864 7 8 9 24 + +mlr --opprint put -v begin {@a=0; @b=0; @c=0}; $za=@a; $zb=@b; $zc=@c; $d=@a+@b+@c; @a=@b; @b=@c; @c=$i ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="za", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="zb", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="zc", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="i", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="za", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="zb", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="zc", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="+", type=OPERATOR: + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="i", type=FIELD_NAME. + +a b i x y za zb zc d +pan pan 1 0.3467901443380824 0.7268028627434533 0 0 0 0 +eks pan 2 0.7586799647899636 0.5221511083334797 0 0 1 1 +wye wye 3 0.20460330576630303 0.33831852551664776 0 1 2 3 +eks wye 4 0.38139939387114097 0.13418874328430463 1 2 3 6 +wye pan 5 0.5732889198020006 0.8636244699032729 2 3 4 9 +zee pan 6 0.5271261600918548 0.49322128674835697 3 4 5 12 +eks zee 7 0.6117840605678454 0.1878849191181694 4 5 6 15 +zee wye 8 0.5985540091064224 0.976181385699006 5 6 7 18 +hat wye 9 0.03144187646093577 0.7495507603507059 6 7 8 21 +pan wye 10 0.5026260055412137 0.9526183602969864 7 8 9 24 + +mlr --opprint put -v begin{@ox=0}; $d=$x-@ox; @ox=$x ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="-", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="-", type=OPERATOR: + text="x", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="ox", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a b i x y d +pan pan 1 0.3467901443380824 0.7268028627434533 0.346790 +eks pan 2 0.7586799647899636 0.5221511083334797 0.411890 +wye wye 3 0.20460330576630303 0.33831852551664776 -0.554077 +eks wye 4 0.38139939387114097 0.13418874328430463 0.176796 +wye pan 5 0.5732889198020006 0.8636244699032729 0.191890 +zee pan 6 0.5271261600918548 0.49322128674835697 -0.046163 +eks zee 7 0.6117840605678454 0.1878849191181694 0.084658 +zee wye 8 0.5985540091064224 0.976181385699006 -0.013230 +hat wye 9 0.03144187646093577 0.7495507603507059 -0.567112 +pan wye 10 0.5026260055412137 0.9526183602969864 0.471184 + +mlr put -v @a=$a; @b=$b; @c=$x; end {emitf @a; emitf @b; emitf @c} ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="a", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="b", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="stream", type=STREAM: + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="stream", type=STREAM: + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="stream", type=STREAM: + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="stream", type=STREAM: + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="stream", type=STREAM: + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="stream", type=STREAM: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="a", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="b", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan +b=wye +c=0.502626 + +mlr put -v @a=$a; @b=$b; @c=$x; end{emitf @a, @b, @c} ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="a", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="b", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="stream", type=STREAM: + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="stream", type=STREAM: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="a", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="b", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan,b=wye,c=0.502626 + +mlr --opprint put -v begin {@count=0; @sum=0.0}; @count=@count+1; @sum=@sum+$x; end{@mean=@sum/@count; emitf @mean} ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="0.0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="mean", type=STRING_LITERAL. + text="/", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="mean", type=STRING_LITERAL. + text="stream", type=STREAM: + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="0.0", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="mean", type=STRING_LITERAL. + text="/", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="mean", type=STRING_LITERAL. + text="stream", type=STREAM: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mean +0.453629 + +mlr --opprint put -v end{@mean=@sum/@count; emitf @mean}; begin {@count=0; @sum=0.0}; @count=@count+1; @sum=@sum+$x ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="mean", type=STRING_LITERAL. + text="/", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="mean", type=STRING_LITERAL. + text="stream", type=STREAM: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="0.0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="0.0", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="mean", type=STRING_LITERAL. + text="/", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="mean", type=STRING_LITERAL. + text="stream", type=STREAM: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="count", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="sum", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mean +0.453629 + +mlr put -v begin{ @a = @b[1] }; $c = @d; @e[$i][2+$j][3] = $4; end{@f[@g[5][@h]] = 6} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="c", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="d", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="e", type=STRING_LITERAL. + text="i", type=FIELD_NAME. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="j", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + text="4", type=FIELD_NAME. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="f", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="g", type=STRING_LITERAL. + text="5", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="h", type=STRING_LITERAL. + text="6", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="f", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="g", type=STRING_LITERAL. + text="5", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="h", type=STRING_LITERAL. + text="6", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="c", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="d", type=STRING_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="e", type=STRING_LITERAL. + text="i", type=FIELD_NAME. + text="+", type=OPERATOR: + text="2", type=NUMERIC_LITERAL. + text="j", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + text="4", type=FIELD_NAME. + + +mlr put @y[$a]=$y; end{dump} ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +{ + "y": { + "pan": 0.952618, + "eks": 0.187885, + "wye": 0.863624, + "zee": 0.976181, + "hat": 0.749551 + } +} + +mlr stats1 -a sum -f y -g a ./reg_test/input/abixy +a=pan,y_sum=1.679421 +a=eks,y_sum=0.844225 +a=wye,y_sum=1.201943 +a=zee,y_sum=1.469403 +a=hat,y_sum=0.749551 + +mlr put @y_sum[$a] = $y; end{dump} ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +{ + "y_sum": { + "pan": 0.952618, + "eks": 0.187885, + "wye": 0.863624, + "zee": 0.976181, + "hat": 0.749551 + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @s ; dump} ./reg_test/input/unset1.dkvp +{ + "s": 9, + "t": { + "1": 9 + }, + "u": { + "1": { + "2": 9 + } + } +} +{ + "t": { + "1": 9 + }, + "u": { + "1": { + "2": 9 + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @t ; dump} ./reg_test/input/unset1.dkvp +{ + "s": 9, + "t": { + "1": 9 + }, + "u": { + "1": { + "2": 9 + } + } +} +{ + "s": 9, + "u": { + "1": { + "2": 9 + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @t[1] ; dump} ./reg_test/input/unset1.dkvp +{ + "s": 9, + "t": { + "1": 9 + }, + "u": { + "1": { + "2": 9 + } + } +} +{ + "s": 9, + "t": { + }, + "u": { + "1": { + "2": 9 + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u ; dump} ./reg_test/input/unset1.dkvp +{ + "s": 9, + "t": { + "1": 9 + }, + "u": { + "1": { + "2": 9 + } + } +} +{ + "s": 9, + "t": { + "1": 9 + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u[1] ; dump} ./reg_test/input/unset1.dkvp +{ + "s": 9, + "t": { + "1": 9 + }, + "u": { + "1": { + "2": 9 + } + } +} +{ + "s": 9, + "t": { + "1": 9 + }, + "u": { + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u[1][2]; dump} ./reg_test/input/unset1.dkvp +{ + "s": 9, + "t": { + "1": 9 + }, + "u": { + "1": { + "2": 9 + } + } +} +{ + "s": 9, + "t": { + "1": 9 + }, + "u": { + "1": { + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @s ; dump} ./reg_test/input/unset4.dkvp +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} +{ + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @t ; dump} ./reg_test/input/unset4.dkvp +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} +{ + "s": 9, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @t[1] ; dump} ./reg_test/input/unset4.dkvp +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} +{ + "s": 9, + "t": { + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u ; dump} ./reg_test/input/unset4.dkvp +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u[1] ; dump} ./reg_test/input/unset4.dkvp +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "4": { + "5": 9, + "6": 9 + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u[1][2]; dump} ./reg_test/input/unset4.dkvp +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset all; dump} ./reg_test/input/unset4.dkvp +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} +{ +} + +mlr put -q @s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @*; dump} ./reg_test/input/unset4.dkvp +{ + "s": 9, + "t": { + "1": 9, + "4": 9 + }, + "u": { + "1": { + "2": 9, + "3": 9 + }, + "4": { + "5": 9, + "6": 9 + } + } +} +{ +} + +mlr put unset $x ./reg_test/input/unset4.dkvp +a=1,b=2 +a=1,b=3 +a=4,b=5 +a=4,b=6 + +mlr put unset $*; $aaa = 999 ./reg_test/input/unset4.dkvp +aaa=999 +aaa=999 +aaa=999 +aaa=999 + +mlr --from ./reg_test/input/abixy put x = 1; print "OX=".x; unset x; print "NX=".x +OX=1 +NX= +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +OX=1 +NX= +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +OX=1 +NX= +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +OX=1 +NX= +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +OX=1 +NX= +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +OX=1 +NX= +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +OX=1 +NX= +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +OX=1 +NX= +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +OX=1 +NX= +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +OX=1 +NX= +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr put -q @{variable.name} += $x; end{emit @{variable.name}} ./reg_test/input/abixy +variable.name=4.536294 + +mlr put -q @{variable.name}[$a] += $x; end{emit @{variable.name},"a"} ./reg_test/input/abixy +a=pan,variable.name=0.849416 +a=eks,variable.name=1.751863 +a=wye,variable.name=0.777892 +a=zee,variable.name=1.125680 +a=hat,variable.name=0.031442 + +mlr put for (k,v in $*) { if (k == "i") {unset $[k]}} ./reg_test/input/abixy +a=pan,b=pan,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,x=0.5026260055412137,y=0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put -q + @output[NR] = $*; + end { + for ((nr, k), v in @output) { + if (nr == 4 || k == "i") { + unset @output[nr][k] + } + } + emitp @output, "NR", "k" + } + +NR k output +1 a pan +1 b pan +1 x 0.3467901443380824 +1 y 0.7268028627434533 +2 a eks +2 b pan +2 x 0.7586799647899636 +2 y 0.5221511083334797 +3 a wye +3 b wye +3 x 0.20460330576630303 +3 y 0.33831852551664776 +5 a wye +5 b pan +5 x 0.5732889198020006 +5 y 0.8636244699032729 +6 a zee +6 b pan +6 x 0.5271261600918548 +6 y 0.49322128674835697 +7 a eks +7 b zee +7 x 0.6117840605678454 +7 y 0.1878849191181694 +8 a zee +8 b wye +8 x 0.5985540091064224 +8 y 0.976181385699006 +9 a hat +9 b wye +9 x 0.03144187646093577 +9 y 0.7495507603507059 +10 a pan +10 b wye +10 x 0.5026260055412137 +10 y 0.9526183602969864 + + +================================================================ +DSL PATTERN-ACTION BLOCKS + +mlr put -v begin{@a=1}; $e=2; $f==$g||$h==$i {}; $x=6; end{@z=9} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + + +mlr put -v begin{@a=1}; $e=2; $f==$g||$h==$i {$s=1}; $x=6; end{@z=9} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + + +mlr put -v begin{@a=1}; $e=2; $f==$g||$h==$i {$s=1;$t=2}; $x=6; end{@z=9} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="t", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="t", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + + +mlr put -v begin{@a=1}; $e=2; $f==$g||$h==$i {$s=1;$t=2;$u=3}; $x=6; end{@z=9} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="t", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="u", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="t", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="u", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + + +mlr put -v begin{@a=1}; $e=2; $f==$g||$h==$i {$s=1;@t["u".$5]=2;emitf @v,@w;dump}; $x=6; end{@z=9} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text=".", type=OPERATOR: + text="u", type=STRING_LITERAL. + text="5", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="w", type=STRING_LITERAL. + text="stream", type=STREAM: + text="dump", type=DUMP: + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="all", type=FULL_OOSVAR. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="z", type=STRING_LITERAL. + text="9", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="e", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="||", type=OPERATOR: + text="==", type=OPERATOR: + text="f", type=FIELD_NAME. + text="g", type=FIELD_NAME. + text="==", type=OPERATOR: + text="h", type=FIELD_NAME. + text="i", type=FIELD_NAME. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text=".", type=OPERATOR: + text="u", type=STRING_LITERAL. + text="5", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="emitf", type=EMITF: + text="emitf", type=EMITF: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="w", type=STRING_LITERAL. + text="stream", type=STREAM: + text="dump", type=DUMP: + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="all", type=FULL_OOSVAR. + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + + +mlr put -v begin{true{@x=1}}; true{@x=2}; end{true{@x=3}} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="3", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="x", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + + + +================================================================ +DSL STACK-ALLOCATION + +mlr --from ./reg_test/input/abixy put -v -a -f ./reg_test/input/test-dsl-stack-allocation.mlr +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="f", type=FUNC_DEF: + text="f", type=NON_SIGIL_NAME: + text="a", type=UNTYPED_PARAMETER_DEFINITION. + text="b", type=UNTYPED_PARAMETER_DEFINITION. + text="c", type=UNTYPED_PARAMETER_DEFINITION. + text="func_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="*", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1000", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. + text="while", type=WHILE: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="while_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text=":", type=STRING_LITERAL. + text="a", type=NONINDEXED_LOCAL_VARIABLE. + text=":", type=STRING_LITERAL. + text="b", type=NONINDEXED_LOCAL_VARIABLE. + text=":", type=STRING_LITERAL. + text="c", type=NONINDEXED_LOCAL_VARIABLE. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="f:1:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR_KEY_ONLY: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="f:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="f:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="f:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="break", type=BREAK. + text="s", type=SUBR_DEF: + text="s", type=NON_SIGIL_NAME: + text="a", type=UNTYPED_PARAMETER_DEFINITION. + text="b", type=UNTYPED_PARAMETER_DEFINITION. + text="c", type=UNTYPED_PARAMETER_DEFINITION. + text="subr_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="*", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="2000", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. + text="while", type=WHILE: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="while_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text=":", type=STRING_LITERAL. + text="a", type=NONINDEXED_LOCAL_VARIABLE. + text=":", type=STRING_LITERAL. + text="b", type=NONINDEXED_LOCAL_VARIABLE. + text=":", type=STRING_LITERAL. + text="c", type=NONINDEXED_LOCAL_VARIABLE. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="s:1:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR_KEY_ONLY: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="s:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="s:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="s:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="break", type=BREAK. + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text="BEGIN", type=STRING_LITERAL. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="456", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR_KEY_ONLY: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="b:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="b:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="b:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="print", type=PRINT: + text="MAIN", type=STRING_LITERAL. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="*", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4000", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. + text="while", type=WHILE: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="while_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="m:1:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR_KEY_ONLY: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="m:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="m:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="m:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="break", type=BREAK. + text="=", type=SREC_ASSIGNMENT: + text="o", type=FIELD_NAME. + text="f", type=FUNCTION_CALLSITE: + text="NR", type=CONTEXT_VARIABLE. + text="a", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="subr_call", type=SUBR_CALLSITE: + text="s", type=FUNCTION_CALLSITE: + text="b", type=FIELD_NAME. + text="NR", type=CONTEXT_VARIABLE. + text="**", type=OPERATOR: + text="i", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text="END", type=STRING_LITERAL. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="100", type=NUMERIC_LITERAL. + text="789", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR_KEY_ONLY: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="e:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="e:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. + text="j", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text="sum", type=NONINDEXED_LOCAL_VARIABLE. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="e:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR DEFINITION BLOCK [f] + ADD FOR ABSENT s @ 0u0 + ADD PARAMETER a @ 1s0 + ADD PARAMETER b @ 2s0 + ADD PARAMETER c @ 3s0 + PUSH SUBFRAME cond_block + READ nonesuch ABSENT @ 0s0 + ADD DEFINE val @ 0s1 + PUSH SUBFRAME while_block + PUSH SUBFRAME if_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + ADD FOR-BIND v @ 1s4 + READ v PRESENT @ 1s4 + READ a PRESENT @ 1s0 + READ b PRESENT @ 2s0 + READ c PRESENT @ 3s0 + REUSE WRITE val @ 0s1 + READ val PRESENT @ 0s1 + POP SUBFRAME for subframe_var_count=2 + POP SUBFRAME if subframe_var_count=0 + PUSH SUBFRAME elif_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + READ k PRESENT @ 0s4 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME elif subframe_var_count=0 + PUSH SUBFRAME elif_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + ADD FOR-BIND v @ 1s4 + READ k PRESENT @ 0s4 + READ v PRESENT @ 1s4 + POP SUBFRAME for subframe_var_count=2 + POP SUBFRAME elif subframe_var_count=0 + PUSH SUBFRAME elif_block + ADD DEFINE sum @ 0s3 + PUSH SUBFRAME for + ADD DEFINE i @ 0s4 + READ i PRESENT @ 0s4 + READ i PRESENT @ 0s4 + REUSE WRITE i @ 0s4 + PUSH SUBFRAME for + ADD DEFINE j @ 0s5 + READ j PRESENT @ 0s5 + READ j PRESENT @ 0s5 + REUSE WRITE j @ 0s5 + READ sum PRESENT @ 0s3 + READ i PRESENT @ 0s4 + READ j PRESENT @ 0s5 + REUSE WRITE sum @ 0s3 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME for subframe_var_count=1 + READ sum PRESENT @ 0s3 + REUSE WRITE val @ 0s1 + READ val PRESENT @ 0s1 + POP SUBFRAME elif subframe_var_count=1 + POP SUBFRAME while subframe_var_count=0 + POP SUBFRAME cond subframe_var_count=1 +BLOCK f subframe_var_count=4 max_subframe_depth=6 + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR DEFINITION BLOCK [s] + ADD FOR ABSENT s @ 0u0 + ADD PARAMETER a @ 1s0 + ADD PARAMETER b @ 2s0 + ADD PARAMETER c @ 3s0 + PUSH SUBFRAME cond_block + READ nonesuch ABSENT @ 0s0 + ADD DEFINE val @ 0s1 + PUSH SUBFRAME while_block + PUSH SUBFRAME if_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + ADD FOR-BIND v @ 1s4 + READ v PRESENT @ 1s4 + READ a PRESENT @ 1s0 + READ b PRESENT @ 2s0 + READ c PRESENT @ 3s0 + REUSE WRITE val @ 0s1 + READ val PRESENT @ 0s1 + POP SUBFRAME for subframe_var_count=2 + POP SUBFRAME if subframe_var_count=0 + PUSH SUBFRAME elif_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + READ k PRESENT @ 0s4 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME elif subframe_var_count=0 + PUSH SUBFRAME elif_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + ADD FOR-BIND v @ 1s4 + READ k PRESENT @ 0s4 + READ v PRESENT @ 1s4 + POP SUBFRAME for subframe_var_count=2 + POP SUBFRAME elif subframe_var_count=0 + PUSH SUBFRAME elif_block + ADD DEFINE sum @ 0s3 + PUSH SUBFRAME for + ADD DEFINE i @ 0s4 + READ i PRESENT @ 0s4 + READ i PRESENT @ 0s4 + REUSE WRITE i @ 0s4 + PUSH SUBFRAME for + ADD DEFINE j @ 0s5 + READ j PRESENT @ 0s5 + READ j PRESENT @ 0s5 + REUSE WRITE j @ 0s5 + READ sum PRESENT @ 0s3 + READ i PRESENT @ 0s4 + READ j PRESENT @ 0s5 + REUSE WRITE sum @ 0s3 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME for subframe_var_count=1 + READ sum PRESENT @ 0s3 + REUSE WRITE val @ 0s1 + READ val PRESENT @ 0s1 + POP SUBFRAME elif subframe_var_count=1 + POP SUBFRAME while subframe_var_count=0 + POP SUBFRAME cond subframe_var_count=1 +BLOCK s subframe_var_count=4 max_subframe_depth=6 + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR begin BLOCK + ADD FOR ABSENT s @ 0u0 + PUSH SUBFRAME cond_block + READ nonesuch ABSENT @ 0s0 + ADD DEFINE val @ 0s1 + PUSH SUBFRAME for + ADD DEFINE idx @ 0s2 + READ idx PRESENT @ 0s2 + READ idx PRESENT @ 0s2 + REUSE WRITE idx @ 0s2 + READ idx PRESENT @ 0s2 + PUSH SUBFRAME if_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + READ k PRESENT @ 0s4 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME if subframe_var_count=0 + READ idx PRESENT @ 0s2 + PUSH SUBFRAME elif_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + ADD FOR-BIND v @ 1s4 + READ k PRESENT @ 0s4 + READ v PRESENT @ 1s4 + POP SUBFRAME for subframe_var_count=2 + POP SUBFRAME elif subframe_var_count=0 + READ idx PRESENT @ 0s2 + PUSH SUBFRAME elif_block + ADD DEFINE sum @ 0s3 + PUSH SUBFRAME for + ADD DEFINE i @ 0s4 + READ i PRESENT @ 0s4 + READ i PRESENT @ 0s4 + REUSE WRITE i @ 0s4 + PUSH SUBFRAME for + ADD DEFINE j @ 0s5 + READ j PRESENT @ 0s5 + READ j PRESENT @ 0s5 + REUSE WRITE j @ 0s5 + READ sum PRESENT @ 0s3 + READ i PRESENT @ 0s4 + READ j PRESENT @ 0s5 + REUSE WRITE sum @ 0s3 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME for subframe_var_count=1 + READ sum PRESENT @ 0s3 + REUSE WRITE val @ 0s1 + READ val PRESENT @ 0s1 + POP SUBFRAME elif subframe_var_count=1 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME cond subframe_var_count=1 +BLOCK begin subframe_var_count=1 max_subframe_depth=6 + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR MAIN BLOCK + ADD FOR ABSENT s @ 0u0 + PUSH SUBFRAME cond_block + READ nonesuch ABSENT @ 0s0 + ADD DEFINE val @ 0s1 + PUSH SUBFRAME while_block + PUSH SUBFRAME if_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + ADD FOR-BIND v @ 1s4 + READ v PRESENT @ 1s4 + REUSE WRITE val @ 0s1 + READ val PRESENT @ 0s1 + POP SUBFRAME for subframe_var_count=2 + POP SUBFRAME if subframe_var_count=0 + PUSH SUBFRAME elif_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + READ k PRESENT @ 0s4 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME elif subframe_var_count=0 + PUSH SUBFRAME elif_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + ADD FOR-BIND v @ 1s4 + READ k PRESENT @ 0s4 + READ v PRESENT @ 1s4 + POP SUBFRAME for subframe_var_count=2 + POP SUBFRAME elif subframe_var_count=0 + PUSH SUBFRAME elif_block + ADD DEFINE sum @ 0s3 + PUSH SUBFRAME for + ADD DEFINE i @ 0s4 + READ i PRESENT @ 0s4 + READ i PRESENT @ 0s4 + REUSE WRITE i @ 0s4 + PUSH SUBFRAME for + ADD DEFINE j @ 0s5 + READ j PRESENT @ 0s5 + READ j PRESENT @ 0s5 + REUSE WRITE j @ 0s5 + READ sum PRESENT @ 0s3 + READ i PRESENT @ 0s4 + READ j PRESENT @ 0s5 + REUSE WRITE sum @ 0s3 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME for subframe_var_count=1 + READ sum PRESENT @ 0s3 + REUSE WRITE val @ 0s1 + READ val PRESENT @ 0s1 + POP SUBFRAME elif subframe_var_count=1 + POP SUBFRAME while subframe_var_count=0 + POP SUBFRAME cond subframe_var_count=1 +BLOCK main_block subframe_var_count=1 max_subframe_depth=6 + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR end BLOCK + ADD FOR ABSENT s @ 0u0 + PUSH SUBFRAME cond_block + READ nonesuch ABSENT @ 0s0 + ADD DEFINE val @ 0s1 + PUSH SUBFRAME for + ADD DEFINE idx @ 0s2 + READ idx PRESENT @ 0s2 + READ idx PRESENT @ 0s2 + REUSE WRITE idx @ 0s2 + READ idx PRESENT @ 0s2 + PUSH SUBFRAME if_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + READ k PRESENT @ 0s4 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME if subframe_var_count=0 + READ idx PRESENT @ 0s2 + PUSH SUBFRAME elif_block + PUSH SUBFRAME for + ADD FOR-BIND k @ 0s4 + ADD FOR-BIND v @ 1s4 + READ k PRESENT @ 0s4 + READ v PRESENT @ 1s4 + POP SUBFRAME for subframe_var_count=2 + POP SUBFRAME elif subframe_var_count=0 + READ idx PRESENT @ 0s2 + PUSH SUBFRAME elif_block + ADD DEFINE sum @ 0s3 + PUSH SUBFRAME for + ADD DEFINE i @ 0s4 + READ i PRESENT @ 0s4 + READ i PRESENT @ 0s4 + REUSE WRITE i @ 0s4 + PUSH SUBFRAME for + ADD DEFINE j @ 0s5 + READ j PRESENT @ 0s5 + READ j PRESENT @ 0s5 + REUSE WRITE j @ 0s5 + READ sum PRESENT @ 0s3 + READ i PRESENT @ 0s4 + READ j PRESENT @ 0s5 + REUSE WRITE sum @ 0s3 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME for subframe_var_count=1 + READ sum PRESENT @ 0s3 + REUSE WRITE val @ 0s1 + READ val PRESENT @ 0s1 + POP SUBFRAME elif subframe_var_count=1 + POP SUBFRAME for subframe_var_count=1 + POP SUBFRAME cond subframe_var_count=1 +BLOCK end subframe_var_count=1 max_subframe_depth=6 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [f] +SUBFRAME [f] var_count_below=0 var_count_at=4 max_var_depth_so_far=4 subframe_depth=0 + NODE a 1s0 (0:0) -> 1 + NODE b 2s0 (0:0) -> 2 + NODE c 3s0 (0:0) -> 3 + SUBFRAME [cond_block] var_count_below=4 var_count_at=1 max_var_depth_so_far=5 subframe_depth=1 + NODE val 0s1 (0:0,1:4) -> 4 + NODE nonesuch 0s0 (0:0,1:4) -> 0 + SUBFRAME [while_block] var_count_below=5 var_count_at=0 max_var_depth_so_far=5 subframe_depth=2 + SUBFRAME [if_block] var_count_below=5 var_count_at=0 max_var_depth_so_far=5 subframe_depth=3 + SUBFRAME [for] var_count_below=5 var_count_at=2 max_var_depth_so_far=7 subframe_depth=4 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + NODE v 1s4 (0:0,1:4,2:5,3:5,4:5) -> 6 + NODE val 0s1 (0:0,1:4,2:5,3:5,4:5) -> 4 + NODE v 1s4 (0:0,1:4,2:5,3:5,4:5) -> 6 + NODE a 1s0 (0:0,1:4,2:5,3:5,4:5) -> 1 + NODE b 2s0 (0:0,1:4,2:5,3:5,4:5) -> 2 + NODE c 3s0 (0:0,1:4,2:5,3:5,4:5) -> 3 + NODE val 0s1 (0:0,1:4,2:5,3:5,4:5) -> 4 + SUBFRAME [elif_block] var_count_below=5 var_count_at=0 max_var_depth_so_far=7 subframe_depth=3 + SUBFRAME [for] var_count_below=5 var_count_at=1 max_var_depth_so_far=7 subframe_depth=4 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + SUBFRAME [elif_block] var_count_below=5 var_count_at=0 max_var_depth_so_far=7 subframe_depth=3 + SUBFRAME [for] var_count_below=5 var_count_at=2 max_var_depth_so_far=7 subframe_depth=4 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + NODE v 1s4 (0:0,1:4,2:5,3:5,4:5) -> 6 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + NODE v 1s4 (0:0,1:4,2:5,3:5,4:5) -> 6 + SUBFRAME [elif_block] var_count_below=5 var_count_at=1 max_var_depth_so_far=7 subframe_depth=3 + NODE sum 0s3 (0:0,1:4,2:5,3:5) -> 5 + SUBFRAME [for] var_count_below=6 var_count_at=1 max_var_depth_so_far=7 subframe_depth=4 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6) -> 6 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6) -> 6 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6) -> 6 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6) -> 6 + SUBFRAME [for] var_count_below=7 var_count_at=1 max_var_depth_so_far=8 subframe_depth=5 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE sum 0s3 (0:0,1:4,2:5,3:5,4:6,5:7) -> 5 + NODE sum 0s3 (0:0,1:4,2:5,3:5,4:6,5:7) -> 5 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6,5:7) -> 6 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE val 0s1 (0:0,1:4,2:5,3:5) -> 4 + NODE sum 0s3 (0:0,1:4,2:5,3:5) -> 5 + NODE val 0s1 (0:0,1:4,2:5,3:5) -> 4 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [s] +SUBFRAME [s] var_count_below=0 var_count_at=4 max_var_depth_so_far=4 subframe_depth=0 + NODE a 1s0 (0:0) -> 1 + NODE b 2s0 (0:0) -> 2 + NODE c 3s0 (0:0) -> 3 + SUBFRAME [cond_block] var_count_below=4 var_count_at=1 max_var_depth_so_far=5 subframe_depth=1 + NODE val 0s1 (0:0,1:4) -> 4 + NODE nonesuch 0s0 (0:0,1:4) -> 0 + SUBFRAME [while_block] var_count_below=5 var_count_at=0 max_var_depth_so_far=5 subframe_depth=2 + SUBFRAME [if_block] var_count_below=5 var_count_at=0 max_var_depth_so_far=5 subframe_depth=3 + SUBFRAME [for] var_count_below=5 var_count_at=2 max_var_depth_so_far=7 subframe_depth=4 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + NODE v 1s4 (0:0,1:4,2:5,3:5,4:5) -> 6 + NODE val 0s1 (0:0,1:4,2:5,3:5,4:5) -> 4 + NODE v 1s4 (0:0,1:4,2:5,3:5,4:5) -> 6 + NODE a 1s0 (0:0,1:4,2:5,3:5,4:5) -> 1 + NODE b 2s0 (0:0,1:4,2:5,3:5,4:5) -> 2 + NODE c 3s0 (0:0,1:4,2:5,3:5,4:5) -> 3 + NODE val 0s1 (0:0,1:4,2:5,3:5,4:5) -> 4 + SUBFRAME [elif_block] var_count_below=5 var_count_at=0 max_var_depth_so_far=7 subframe_depth=3 + SUBFRAME [for] var_count_below=5 var_count_at=1 max_var_depth_so_far=7 subframe_depth=4 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + SUBFRAME [elif_block] var_count_below=5 var_count_at=0 max_var_depth_so_far=7 subframe_depth=3 + SUBFRAME [for] var_count_below=5 var_count_at=2 max_var_depth_so_far=7 subframe_depth=4 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + NODE v 1s4 (0:0,1:4,2:5,3:5,4:5) -> 6 + NODE k 0s4 (0:0,1:4,2:5,3:5,4:5) -> 5 + NODE v 1s4 (0:0,1:4,2:5,3:5,4:5) -> 6 + SUBFRAME [elif_block] var_count_below=5 var_count_at=1 max_var_depth_so_far=7 subframe_depth=3 + NODE sum 0s3 (0:0,1:4,2:5,3:5) -> 5 + SUBFRAME [for] var_count_below=6 var_count_at=1 max_var_depth_so_far=7 subframe_depth=4 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6) -> 6 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6) -> 6 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6) -> 6 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6) -> 6 + SUBFRAME [for] var_count_below=7 var_count_at=1 max_var_depth_so_far=8 subframe_depth=5 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE sum 0s3 (0:0,1:4,2:5,3:5,4:6,5:7) -> 5 + NODE sum 0s3 (0:0,1:4,2:5,3:5,4:6,5:7) -> 5 + NODE i 0s4 (0:0,1:4,2:5,3:5,4:6,5:7) -> 6 + NODE j 0s5 (0:0,1:4,2:5,3:5,4:6,5:7) -> 7 + NODE val 0s1 (0:0,1:4,2:5,3:5) -> 4 + NODE sum 0s3 (0:0,1:4,2:5,3:5) -> 5 + NODE val 0s1 (0:0,1:4,2:5,3:5) -> 4 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [begin] +SUBFRAME [begin] var_count_below=0 var_count_at=1 max_var_depth_so_far=1 subframe_depth=0 + SUBFRAME [cond_block] var_count_below=1 var_count_at=1 max_var_depth_so_far=2 subframe_depth=1 + NODE val 0s1 (0:0,1:1) -> 1 + NODE nonesuch 0s0 (0:0,1:1) -> 0 + SUBFRAME [for] var_count_below=2 var_count_at=1 max_var_depth_so_far=3 subframe_depth=2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + SUBFRAME [if_block] var_count_below=3 var_count_at=0 max_var_depth_so_far=3 subframe_depth=3 + SUBFRAME [for] var_count_below=3 var_count_at=1 max_var_depth_so_far=4 subframe_depth=4 + NODE k 0s4 (0:0,1:1,2:2,3:3,4:3) -> 3 + NODE k 0s4 (0:0,1:1,2:2,3:3,4:3) -> 3 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + SUBFRAME [elif_block] var_count_below=3 var_count_at=0 max_var_depth_so_far=4 subframe_depth=3 + SUBFRAME [for] var_count_below=3 var_count_at=2 max_var_depth_so_far=5 subframe_depth=4 + NODE k 0s4 (0:0,1:1,2:2,3:3,4:3) -> 3 + NODE v 1s4 (0:0,1:1,2:2,3:3,4:3) -> 4 + NODE k 0s4 (0:0,1:1,2:2,3:3,4:3) -> 3 + NODE v 1s4 (0:0,1:1,2:2,3:3,4:3) -> 4 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + SUBFRAME [elif_block] var_count_below=3 var_count_at=1 max_var_depth_so_far=5 subframe_depth=3 + NODE sum 0s3 (0:0,1:1,2:2,3:3) -> 3 + SUBFRAME [for] var_count_below=4 var_count_at=1 max_var_depth_so_far=5 subframe_depth=4 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4) -> 4 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4) -> 4 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4) -> 4 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4) -> 4 + SUBFRAME [for] var_count_below=5 var_count_at=1 max_var_depth_so_far=6 subframe_depth=5 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE sum 0s3 (0:0,1:1,2:2,3:3,4:4,5:5) -> 3 + NODE sum 0s3 (0:0,1:1,2:2,3:3,4:4,5:5) -> 3 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4,5:5) -> 4 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE val 0s1 (0:0,1:1,2:2,3:3) -> 1 + NODE sum 0s3 (0:0,1:1,2:2,3:3) -> 3 + NODE val 0s1 (0:0,1:1,2:2,3:3) -> 1 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [main_block] +SUBFRAME [main_block] var_count_below=0 var_count_at=1 max_var_depth_so_far=1 subframe_depth=0 + SUBFRAME [cond_block] var_count_below=1 var_count_at=1 max_var_depth_so_far=2 subframe_depth=1 + NODE val 0s1 (0:0,1:1) -> 1 + NODE nonesuch 0s0 (0:0,1:1) -> 0 + SUBFRAME [while_block] var_count_below=2 var_count_at=0 max_var_depth_so_far=2 subframe_depth=2 + SUBFRAME [if_block] var_count_below=2 var_count_at=0 max_var_depth_so_far=2 subframe_depth=3 + SUBFRAME [for] var_count_below=2 var_count_at=2 max_var_depth_so_far=4 subframe_depth=4 + NODE k 0s4 (0:0,1:1,2:2,3:2,4:2) -> 2 + NODE v 1s4 (0:0,1:1,2:2,3:2,4:2) -> 3 + NODE val 0s1 (0:0,1:1,2:2,3:2,4:2) -> 1 + NODE v 1s4 (0:0,1:1,2:2,3:2,4:2) -> 3 + NODE val 0s1 (0:0,1:1,2:2,3:2,4:2) -> 1 + SUBFRAME [elif_block] var_count_below=2 var_count_at=0 max_var_depth_so_far=4 subframe_depth=3 + SUBFRAME [for] var_count_below=2 var_count_at=1 max_var_depth_so_far=4 subframe_depth=4 + NODE k 0s4 (0:0,1:1,2:2,3:2,4:2) -> 2 + NODE k 0s4 (0:0,1:1,2:2,3:2,4:2) -> 2 + SUBFRAME [elif_block] var_count_below=2 var_count_at=0 max_var_depth_so_far=4 subframe_depth=3 + SUBFRAME [for] var_count_below=2 var_count_at=2 max_var_depth_so_far=4 subframe_depth=4 + NODE k 0s4 (0:0,1:1,2:2,3:2,4:2) -> 2 + NODE v 1s4 (0:0,1:1,2:2,3:2,4:2) -> 3 + NODE k 0s4 (0:0,1:1,2:2,3:2,4:2) -> 2 + NODE v 1s4 (0:0,1:1,2:2,3:2,4:2) -> 3 + SUBFRAME [elif_block] var_count_below=2 var_count_at=1 max_var_depth_so_far=4 subframe_depth=3 + NODE sum 0s3 (0:0,1:1,2:2,3:2) -> 2 + SUBFRAME [for] var_count_below=3 var_count_at=1 max_var_depth_so_far=4 subframe_depth=4 + NODE i 0s4 (0:0,1:1,2:2,3:2,4:3) -> 3 + NODE i 0s4 (0:0,1:1,2:2,3:2,4:3) -> 3 + NODE i 0s4 (0:0,1:1,2:2,3:2,4:3) -> 3 + NODE i 0s4 (0:0,1:1,2:2,3:2,4:3) -> 3 + SUBFRAME [for] var_count_below=4 var_count_at=1 max_var_depth_so_far=5 subframe_depth=5 + NODE j 0s5 (0:0,1:1,2:2,3:2,4:3,5:4) -> 4 + NODE j 0s5 (0:0,1:1,2:2,3:2,4:3,5:4) -> 4 + NODE j 0s5 (0:0,1:1,2:2,3:2,4:3,5:4) -> 4 + NODE j 0s5 (0:0,1:1,2:2,3:2,4:3,5:4) -> 4 + NODE sum 0s3 (0:0,1:1,2:2,3:2,4:3,5:4) -> 2 + NODE sum 0s3 (0:0,1:1,2:2,3:2,4:3,5:4) -> 2 + NODE i 0s4 (0:0,1:1,2:2,3:2,4:3,5:4) -> 3 + NODE j 0s5 (0:0,1:1,2:2,3:2,4:3,5:4) -> 4 + NODE val 0s1 (0:0,1:1,2:2,3:2) -> 1 + NODE sum 0s3 (0:0,1:1,2:2,3:2) -> 2 + NODE val 0s1 (0:0,1:1,2:2,3:2) -> 1 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [end] +SUBFRAME [end] var_count_below=0 var_count_at=1 max_var_depth_so_far=1 subframe_depth=0 + SUBFRAME [cond_block] var_count_below=1 var_count_at=1 max_var_depth_so_far=2 subframe_depth=1 + NODE val 0s1 (0:0,1:1) -> 1 + NODE nonesuch 0s0 (0:0,1:1) -> 0 + SUBFRAME [for] var_count_below=2 var_count_at=1 max_var_depth_so_far=3 subframe_depth=2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + SUBFRAME [if_block] var_count_below=3 var_count_at=0 max_var_depth_so_far=3 subframe_depth=3 + SUBFRAME [for] var_count_below=3 var_count_at=1 max_var_depth_so_far=4 subframe_depth=4 + NODE k 0s4 (0:0,1:1,2:2,3:3,4:3) -> 3 + NODE k 0s4 (0:0,1:1,2:2,3:3,4:3) -> 3 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + SUBFRAME [elif_block] var_count_below=3 var_count_at=0 max_var_depth_so_far=4 subframe_depth=3 + SUBFRAME [for] var_count_below=3 var_count_at=2 max_var_depth_so_far=5 subframe_depth=4 + NODE k 0s4 (0:0,1:1,2:2,3:3,4:3) -> 3 + NODE v 1s4 (0:0,1:1,2:2,3:3,4:3) -> 4 + NODE k 0s4 (0:0,1:1,2:2,3:3,4:3) -> 3 + NODE v 1s4 (0:0,1:1,2:2,3:3,4:3) -> 4 + NODE idx 0s2 (0:0,1:1,2:2) -> 2 + SUBFRAME [elif_block] var_count_below=3 var_count_at=1 max_var_depth_so_far=5 subframe_depth=3 + NODE sum 0s3 (0:0,1:1,2:2,3:3) -> 3 + SUBFRAME [for] var_count_below=4 var_count_at=1 max_var_depth_so_far=5 subframe_depth=4 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4) -> 4 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4) -> 4 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4) -> 4 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4) -> 4 + SUBFRAME [for] var_count_below=5 var_count_at=1 max_var_depth_so_far=6 subframe_depth=5 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE sum 0s3 (0:0,1:1,2:2,3:3,4:4,5:5) -> 3 + NODE sum 0s3 (0:0,1:1,2:2,3:3,4:4,5:5) -> 3 + NODE i 0s4 (0:0,1:1,2:2,3:3,4:4,5:5) -> 4 + NODE j 0s5 (0:0,1:1,2:2,3:3,4:4,5:5) -> 5 + NODE val 0s1 (0:0,1:1,2:2,3:3) -> 1 + NODE sum 0s3 (0:0,1:1,2:2,3:3) -> 3 + NODE val 0s1 (0:0,1:1,2:2,3:3) -> 1 + +BLOCKED AST: + +FUNCTION DEFINITION: +text="f", type=FUNC_DEF: subframe_var_count=4 max_subframe_depth=6 max_var_depth=8 + text="f", type=NON_SIGIL_NAME: + text="a", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="b", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="c", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="func_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="*", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1000", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="while", type=WHILE: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="while_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=6 + text=":", type=STRING_LITERAL. + text="a", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text=":", type=STRING_LITERAL. + text="b", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text=":", type=STRING_LITERAL. + text="c", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="print", type=PRINT: + text=".", type=OPERATOR: + text="f:1:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR_KEY_ONLY: subframe_var_count=1 + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="f:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR: subframe_var_count=2 + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="f:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=6 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=5 + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=5 + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=5 + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=5 + text="print", type=PRINT: + text=".", type=OPERATOR: + text="f:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="break", type=BREAK. + +SUBROUTINE DEFINITION: +text="s", type=SUBR_DEF: subframe_var_count=4 max_subframe_depth=6 max_var_depth=8 + text="s", type=NON_SIGIL_NAME: + text="a", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="b", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="c", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="subr_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="*", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="2000", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="while", type=WHILE: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="while_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=6 + text=":", type=STRING_LITERAL. + text="a", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text=":", type=STRING_LITERAL. + text="b", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text=":", type=STRING_LITERAL. + text="c", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="print", type=PRINT: + text=".", type=OPERATOR: + text="s:1:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR_KEY_ONLY: subframe_var_count=1 + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="s:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR: subframe_var_count=2 + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="s:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=5 + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=6 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=5 + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=5 + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=5 + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=6 + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=7 + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=5 + text="print", type=PRINT: + text=".", type=OPERATOR: + text="s:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=4 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="break", type=BREAK. + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=6 max_var_depth=6 + text="begin_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text="BEGIN", type=STRING_LITERAL. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="456", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="4", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="+", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="2", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR_KEY_ONLY: subframe_var_count=1 + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="b:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR: subframe_var_count=2 + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="b:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=4 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=3 + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=3 + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=3 + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=3 + text="print", type=PRINT: + text=".", type=OPERATOR: + text="b:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=6 max_var_depth=6 + text="end_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text="END", type=STRING_LITERAL. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="100", type=NUMERIC_LITERAL. + text="789", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="4", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="+", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="2", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR_KEY_ONLY: subframe_var_count=1 + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="e:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR: subframe_var_count=2 + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="e:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=4 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="idx", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=2 vardef_frame_relative_index=2 + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=3 + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=3 + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=3 + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=4 + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=5 + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=3 + text="print", type=PRINT: + text=".", type=OPERATOR: + text="e:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=6 max_var_depth=5 + text="print", type=PRINT: + text="MAIN", type=STRING_LITERAL. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="*", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4000", type=NUMERIC_LITERAL. + text="cond", type=CONDITIONAL_BLOCK: + text="true", type=BOOLEAN_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="nonesuch", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="while", type=WHILE: + text="==", type=OPERATOR: + text="1", type=NUMERIC_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="while_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=2 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="print", type=PRINT: + text=".", type=OPERATOR: + text="m:1:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR_KEY_ONLY: subframe_var_count=1 + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=2 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="m:2:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=2 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="for", type=FOR_OOSVAR: subframe_var_count=2 + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=2 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="m:3:k:", type=STRING_LITERAL. + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=2 + text="v:", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=4 vardef_frame_relative_index=3 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=1 + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=2 + text="0", type=NUMERIC_LITERAL. + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="+", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="for", type=TRIPLE_FOR: subframe_var_count=1 + text="triple_for_start_statements", type=STATEMENT_LIST: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=4 + text="1", type=NUMERIC_LITERAL. + text="triple_for_continuation_statements", type=STATEMENT_LIST: + text="<=", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=4 + text="10", type=NUMERIC_LITERAL. + text="triple_for_update_statements", type=STATEMENT_LIST: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=4 + text="+", type=OPERATOR: + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=4 + text="1", type=NUMERIC_LITERAL. + text="triple_for_block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=2 + text="+", type=OPERATOR: + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=2 + text="*", type=OPERATOR: + text="i", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=4 vardef_frame_relative_index=3 + text="j", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=5 vardef_frame_relative_index=4 + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="sum", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=3 vardef_frame_relative_index=2 + text="print", type=PRINT: + text=".", type=OPERATOR: + text="m:val:", type=STRING_LITERAL. + text="val", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="break", type=BREAK. + text="=", type=SREC_ASSIGNMENT: + text="o", type=FIELD_NAME. + text="f", type=FUNCTION_CALLSITE: + text="NR", type=CONTEXT_VARIABLE. + text="a", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="subr_call", type=SUBR_CALLSITE: + text="s", type=FUNCTION_CALLSITE: + text="b", type=FIELD_NAME. + text="NR", type=CONTEXT_VARIABLE. + text="**", type=OPERATOR: + text="i", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + +BEGIN +b:2:k:0 +b:3:k:0v:456 +b:val:3025 +MAIN +m:1:val:pan +m:1:val:pan +m:1:val:1 +m:1:val:0.346790 +m:1:val:0.726803 +f:1:val:pan:1:pan:0.726803 +f:1:val:pan:1:pan:0.726803 +f:1:val:1:1:pan:0.726803 +f:1:val:0.346790:1:pan:0.726803 +f:1:val:0.726803:1:pan:0.726803 +s:1:val:pan:pan:1:1.000000 +s:1:val:pan:pan:1:1.000000 +s:1:val:1:pan:1:1.000000 +s:1:val:0.346790:pan:1:1.000000 +s:1:val:0.726803:pan:1:1.000000 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +MAIN +m:2:k:0 +m:2:k:1 +m:2:k:2 +f:2:k:0 +f:2:k:1 +f:2:k:2 +s:2:k:0 +s:2:k:1 +s:2:k:2 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +MAIN +m:3:k:0v:456 +m:3:k:1v:2000 +m:3:k:2v:4000 +m:3:k:3v:12000 +f:3:k:0v:456 +f:3:k:1v:2000 +f:3:k:2v:4000 +f:3:k:3v:3000 +s:3:k:0v:456 +s:3:k:1v:2000 +s:3:k:2v:4000 +s:3:k:3v:6000 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +MAIN +m:val:3025 +f:val:3025 +s:val:3025 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +MAIN +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +MAIN +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +MAIN +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +MAIN +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +MAIN +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +MAIN +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +END +e:2:k:0 +e:2:k:1 +e:2:k:2 +e:2:k:3 +e:2:k:4 +e:2:k:5 +e:2:k:6 +e:2:k:7 +e:2:k:8 +e:2:k:9 +e:2:k:10 +e:2:k:100 +e:3:k:0v:456 +e:3:k:1v:2000 +e:3:k:2v:4000 +e:3:k:3v:6000 +e:3:k:4v:8000 +e:3:k:5v:10000 +e:3:k:6v:12000 +e:3:k:7v:14000 +e:3:k:8v:16000 +e:3:k:9v:18000 +e:3:k:10v:20000 +e:3:k:100v:789 +e:val:3025 + +mlr --from ./reg_test/input/abixy put a=a; $oa = a +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put a=a; $oa = a; a = a; $ob = a +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put a=a; $oa = a; a = a; $ob = a; a = b; $oc = a +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put a=a; $oa = a; a = a; $ob = a; a = b; $oc = a; b = 3; b = a; $od = a +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put a=a; $oa = a; a = a; $ob = a; a = b; $oc = a; b = 3; b = a; $od = a; b = 4;a = b; $oe= a +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,oe=4 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,oe=4 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,oe=4 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,oe=4 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,oe=4 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,oe=4 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,oe=4 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,oe=4 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,oe=4 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,oe=4 + + +================================================================ +DSL IF-CHAINING + + +---------------------------------------------------------------- IF/ELIF WITH ELSE +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR==1) { + $x = 2; + $y = 3 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +i=1,x=2,y=3 +i=2,x=102,y=202 +i=3,x=103,y=203 +i=4,x=104,y=204 +i=5,x=105,y=205 +i=6,x=106,y=206 +i=7,x=107,y=207 +i=8,x=108,y=208 +i=9,x=109,y=209 +i=10,x=110,y=210 +i=11,x=111,y=211 +i=12,x=112,y=212 +i=13,x=113,y=213 +i=14,x=114,y=214 +i=15,x=115,y=215 +i=16,x=116,y=216 +i=17,x=117,y=217 +i=18,x=118,y=218 +i=19,x=119,y=219 +i=20,x=120,y=220 +i=21,x=121,y=221 +i=22,x=122,y=222 +i=23,x=123,y=223 +i=24,x=124,y=224 +i=25,x=125,y=225 +i=26,x=126,y=226 +i=27,x=127,y=227 +i=28,x=128,y=228 +i=29,x=129,y=229 +i=30,x=130,y=230 +i=31,x=131,y=231 +i=32,x=132,y=232 +i=33,x=133,y=233 +i=34,x=134,y=234 +i=35,x=135,y=235 +i=36,x=136,y=236 +i=37,x=137,y=237 +i=38,x=138,y=238 +i=39,x=139,y=239 +i=40,x=140,y=240 + +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR == 4) { + $x = 5; + $y = 6 + } else { + $x = 1007; + $y = 1008 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="5", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="else", type=IF_ITEM: + text="else_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1007", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="1008", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="5", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="else", type=IF_ITEM: + text="else_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1007", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="1008", type=NUMERIC_LITERAL. + +i=1,x=1007,y=1008 +i=2,x=1007,y=1008 +i=3,x=1007,y=1008 +i=4,x=5,y=6 +i=5,x=1007,y=1008 +i=6,x=1007,y=1008 +i=7,x=1007,y=1008 +i=8,x=1007,y=1008 +i=9,x=1007,y=1008 +i=10,x=1007,y=1008 +i=11,x=1007,y=1008 +i=12,x=1007,y=1008 +i=13,x=1007,y=1008 +i=14,x=1007,y=1008 +i=15,x=1007,y=1008 +i=16,x=1007,y=1008 +i=17,x=1007,y=1008 +i=18,x=1007,y=1008 +i=19,x=1007,y=1008 +i=20,x=1007,y=1008 +i=21,x=1007,y=1008 +i=22,x=1007,y=1008 +i=23,x=1007,y=1008 +i=24,x=1007,y=1008 +i=25,x=1007,y=1008 +i=26,x=1007,y=1008 +i=27,x=1007,y=1008 +i=28,x=1007,y=1008 +i=29,x=1007,y=1008 +i=30,x=1007,y=1008 +i=31,x=1007,y=1008 +i=32,x=1007,y=1008 +i=33,x=1007,y=1008 +i=34,x=1007,y=1008 +i=35,x=1007,y=1008 +i=36,x=1007,y=1008 +i=37,x=1007,y=1008 +i=38,x=1007,y=1008 +i=39,x=1007,y=1008 +i=40,x=1007,y=1008 + +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR == 9) { + $x = 10; + $y = 11 + } elif (NR == 12) { + $x = 13; + $y = 14 + } else { + $x = 1015; + $y = 1016 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="9", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="10", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="11", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="12", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="13", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="14", type=NUMERIC_LITERAL. + text="else", type=IF_ITEM: + text="else_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1015", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="1016", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="9", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="10", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="11", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="12", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="13", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="14", type=NUMERIC_LITERAL. + text="else", type=IF_ITEM: + text="else_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1015", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="1016", type=NUMERIC_LITERAL. + +i=1,x=1015,y=1016 +i=2,x=1015,y=1016 +i=3,x=1015,y=1016 +i=4,x=1015,y=1016 +i=5,x=1015,y=1016 +i=6,x=1015,y=1016 +i=7,x=1015,y=1016 +i=8,x=1015,y=1016 +i=9,x=10,y=11 +i=10,x=1015,y=1016 +i=11,x=1015,y=1016 +i=12,x=13,y=14 +i=13,x=1015,y=1016 +i=14,x=1015,y=1016 +i=15,x=1015,y=1016 +i=16,x=1015,y=1016 +i=17,x=1015,y=1016 +i=18,x=1015,y=1016 +i=19,x=1015,y=1016 +i=20,x=1015,y=1016 +i=21,x=1015,y=1016 +i=22,x=1015,y=1016 +i=23,x=1015,y=1016 +i=24,x=1015,y=1016 +i=25,x=1015,y=1016 +i=26,x=1015,y=1016 +i=27,x=1015,y=1016 +i=28,x=1015,y=1016 +i=29,x=1015,y=1016 +i=30,x=1015,y=1016 +i=31,x=1015,y=1016 +i=32,x=1015,y=1016 +i=33,x=1015,y=1016 +i=34,x=1015,y=1016 +i=35,x=1015,y=1016 +i=36,x=1015,y=1016 +i=37,x=1015,y=1016 +i=38,x=1015,y=1016 +i=39,x=1015,y=1016 +i=40,x=1015,y=1016 + +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR == 17) { + $x = 18; + $y = 19 + } elif (NR == 20) { + $x = 21; + $y = 22 + } elif (NR == 23) { + $x = 24; + $y = 25 + } else { + $x = 1026; + $y = 1027 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="17", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="18", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="19", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="20", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="21", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="22", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="23", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="24", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="25", type=NUMERIC_LITERAL. + text="else", type=IF_ITEM: + text="else_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1026", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="1027", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="17", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="18", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="19", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="20", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="21", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="22", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="23", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="24", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="25", type=NUMERIC_LITERAL. + text="else", type=IF_ITEM: + text="else_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1026", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="1027", type=NUMERIC_LITERAL. + +i=1,x=1026,y=1027 +i=2,x=1026,y=1027 +i=3,x=1026,y=1027 +i=4,x=1026,y=1027 +i=5,x=1026,y=1027 +i=6,x=1026,y=1027 +i=7,x=1026,y=1027 +i=8,x=1026,y=1027 +i=9,x=1026,y=1027 +i=10,x=1026,y=1027 +i=11,x=1026,y=1027 +i=12,x=1026,y=1027 +i=13,x=1026,y=1027 +i=14,x=1026,y=1027 +i=15,x=1026,y=1027 +i=16,x=1026,y=1027 +i=17,x=18,y=19 +i=18,x=1026,y=1027 +i=19,x=1026,y=1027 +i=20,x=21,y=22 +i=21,x=1026,y=1027 +i=22,x=1026,y=1027 +i=23,x=24,y=25 +i=24,x=1026,y=1027 +i=25,x=1026,y=1027 +i=26,x=1026,y=1027 +i=27,x=1026,y=1027 +i=28,x=1026,y=1027 +i=29,x=1026,y=1027 +i=30,x=1026,y=1027 +i=31,x=1026,y=1027 +i=32,x=1026,y=1027 +i=33,x=1026,y=1027 +i=34,x=1026,y=1027 +i=35,x=1026,y=1027 +i=36,x=1026,y=1027 +i=37,x=1026,y=1027 +i=38,x=1026,y=1027 +i=39,x=1026,y=1027 +i=40,x=1026,y=1027 + +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR == 28) { + $x = 29; + $y = 30 + } elif (NR == 31) { + $x = 32; + $y = 33 + } elif (NR == 34) { + $x = 35; + $y = 36 + } elif (NR == 37) { + $x = 38; + $y = 39 + } else { + $x = 1040; + $y = 1041 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="28", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="29", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="30", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="31", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="32", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="33", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="34", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="35", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="36", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="37", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="38", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="39", type=NUMERIC_LITERAL. + text="else", type=IF_ITEM: + text="else_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1040", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="1041", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="28", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="29", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="30", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="31", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="32", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="33", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="34", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="35", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="36", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="37", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="38", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="39", type=NUMERIC_LITERAL. + text="else", type=IF_ITEM: + text="else_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="1040", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="1041", type=NUMERIC_LITERAL. + +i=1,x=1040,y=1041 +i=2,x=1040,y=1041 +i=3,x=1040,y=1041 +i=4,x=1040,y=1041 +i=5,x=1040,y=1041 +i=6,x=1040,y=1041 +i=7,x=1040,y=1041 +i=8,x=1040,y=1041 +i=9,x=1040,y=1041 +i=10,x=1040,y=1041 +i=11,x=1040,y=1041 +i=12,x=1040,y=1041 +i=13,x=1040,y=1041 +i=14,x=1040,y=1041 +i=15,x=1040,y=1041 +i=16,x=1040,y=1041 +i=17,x=1040,y=1041 +i=18,x=1040,y=1041 +i=19,x=1040,y=1041 +i=20,x=1040,y=1041 +i=21,x=1040,y=1041 +i=22,x=1040,y=1041 +i=23,x=1040,y=1041 +i=24,x=1040,y=1041 +i=25,x=1040,y=1041 +i=26,x=1040,y=1041 +i=27,x=1040,y=1041 +i=28,x=29,y=30 +i=29,x=1040,y=1041 +i=30,x=1040,y=1041 +i=31,x=32,y=33 +i=32,x=1040,y=1041 +i=33,x=1040,y=1041 +i=34,x=35,y=36 +i=35,x=1040,y=1041 +i=36,x=1040,y=1041 +i=37,x=38,y=39 +i=38,x=1040,y=1041 +i=39,x=1040,y=1041 +i=40,x=1040,y=1041 + + +---------------------------------------------------------------- IF/ELIF WITHOUT ELSE +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR == 1) { + $x = 2; + $y = 3 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="2", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="3", type=NUMERIC_LITERAL. + +i=1,x=2,y=3 +i=2,x=102,y=202 +i=3,x=103,y=203 +i=4,x=104,y=204 +i=5,x=105,y=205 +i=6,x=106,y=206 +i=7,x=107,y=207 +i=8,x=108,y=208 +i=9,x=109,y=209 +i=10,x=110,y=210 +i=11,x=111,y=211 +i=12,x=112,y=212 +i=13,x=113,y=213 +i=14,x=114,y=214 +i=15,x=115,y=215 +i=16,x=116,y=216 +i=17,x=117,y=217 +i=18,x=118,y=218 +i=19,x=119,y=219 +i=20,x=120,y=220 +i=21,x=121,y=221 +i=22,x=122,y=222 +i=23,x=123,y=223 +i=24,x=124,y=224 +i=25,x=125,y=225 +i=26,x=126,y=226 +i=27,x=127,y=227 +i=28,x=128,y=228 +i=29,x=129,y=229 +i=30,x=130,y=230 +i=31,x=131,y=231 +i=32,x=132,y=232 +i=33,x=133,y=233 +i=34,x=134,y=234 +i=35,x=135,y=235 +i=36,x=136,y=236 +i=37,x=137,y=237 +i=38,x=138,y=238 +i=39,x=139,y=239 +i=40,x=140,y=240 + +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR == 4) { + $x = 5; + $y = 6 + } elif (NR == 7) { + $x = 8; + $y = 9 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="5", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="7", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="8", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="9", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="4", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="5", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="6", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="7", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="8", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="9", type=NUMERIC_LITERAL. + +i=1,x=101,y=201 +i=2,x=102,y=202 +i=3,x=103,y=203 +i=4,x=5,y=6 +i=5,x=105,y=205 +i=6,x=106,y=206 +i=7,x=8,y=9 +i=8,x=108,y=208 +i=9,x=109,y=209 +i=10,x=110,y=210 +i=11,x=111,y=211 +i=12,x=112,y=212 +i=13,x=113,y=213 +i=14,x=114,y=214 +i=15,x=115,y=215 +i=16,x=116,y=216 +i=17,x=117,y=217 +i=18,x=118,y=218 +i=19,x=119,y=219 +i=20,x=120,y=220 +i=21,x=121,y=221 +i=22,x=122,y=222 +i=23,x=123,y=223 +i=24,x=124,y=224 +i=25,x=125,y=225 +i=26,x=126,y=226 +i=27,x=127,y=227 +i=28,x=128,y=228 +i=29,x=129,y=229 +i=30,x=130,y=230 +i=31,x=131,y=231 +i=32,x=132,y=232 +i=33,x=133,y=233 +i=34,x=134,y=234 +i=35,x=135,y=235 +i=36,x=136,y=236 +i=37,x=137,y=237 +i=38,x=138,y=238 +i=39,x=139,y=239 +i=40,x=140,y=240 + +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR == 10) { + $x = 11; + $y = 12 + } elif (NR == 13) { + $x = 14; + $y = 15 + } elif (NR == 16) { + $x = 17; + $y = 18 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="11", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="12", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="13", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="14", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="15", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="16", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="17", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="18", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="10", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="11", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="12", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="13", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="14", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="15", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="16", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="17", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="18", type=NUMERIC_LITERAL. + +i=1,x=101,y=201 +i=2,x=102,y=202 +i=3,x=103,y=203 +i=4,x=104,y=204 +i=5,x=105,y=205 +i=6,x=106,y=206 +i=7,x=107,y=207 +i=8,x=108,y=208 +i=9,x=109,y=209 +i=10,x=11,y=12 +i=11,x=111,y=211 +i=12,x=112,y=212 +i=13,x=14,y=15 +i=14,x=114,y=214 +i=15,x=115,y=215 +i=16,x=17,y=18 +i=17,x=117,y=217 +i=18,x=118,y=218 +i=19,x=119,y=219 +i=20,x=120,y=220 +i=21,x=121,y=221 +i=22,x=122,y=222 +i=23,x=123,y=223 +i=24,x=124,y=224 +i=25,x=125,y=225 +i=26,x=126,y=226 +i=27,x=127,y=227 +i=28,x=128,y=228 +i=29,x=129,y=229 +i=30,x=130,y=230 +i=31,x=131,y=231 +i=32,x=132,y=232 +i=33,x=133,y=233 +i=34,x=134,y=234 +i=35,x=135,y=235 +i=36,x=136,y=236 +i=37,x=137,y=237 +i=38,x=138,y=238 +i=39,x=139,y=239 +i=40,x=140,y=240 + +mlr --from ./reg_test/input/xy40.dkvp put -v + if (NR == 19) { + $x = 20; + $y = 21 + } elif (NR == 22) { + $x = 23; + $y = 24 + } elif (NR == 25) { + $x = 26; + $y = 37 + } elif (NR == 28) { + $x = 29; + $y = 30 + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="19", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="20", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="21", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="22", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="23", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="24", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="25", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="26", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="37", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="28", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="29", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="30", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="19", type=NUMERIC_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="20", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="21", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="22", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="23", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="24", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="25", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="26", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="37", type=NUMERIC_LITERAL. + text="elif", type=IF_ITEM: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="28", type=NUMERIC_LITERAL. + text="elif_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="x", type=FIELD_NAME. + text="29", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="y", type=FIELD_NAME. + text="30", type=NUMERIC_LITERAL. + +i=1,x=101,y=201 +i=2,x=102,y=202 +i=3,x=103,y=203 +i=4,x=104,y=204 +i=5,x=105,y=205 +i=6,x=106,y=206 +i=7,x=107,y=207 +i=8,x=108,y=208 +i=9,x=109,y=209 +i=10,x=110,y=210 +i=11,x=111,y=211 +i=12,x=112,y=212 +i=13,x=113,y=213 +i=14,x=114,y=214 +i=15,x=115,y=215 +i=16,x=116,y=216 +i=17,x=117,y=217 +i=18,x=118,y=218 +i=19,x=20,y=21 +i=20,x=120,y=220 +i=21,x=121,y=221 +i=22,x=23,y=24 +i=23,x=123,y=223 +i=24,x=124,y=224 +i=25,x=26,y=37 +i=26,x=126,y=226 +i=27,x=127,y=227 +i=28,x=29,y=30 +i=29,x=129,y=229 +i=30,x=130,y=230 +i=31,x=131,y=231 +i=32,x=132,y=232 +i=33,x=133,y=233 +i=34,x=134,y=234 +i=35,x=135,y=235 +i=36,x=136,y=236 +i=37,x=137,y=237 +i=38,x=138,y=238 +i=39,x=139,y=239 +i=40,x=140,y=240 + + +================================================================ +DSL INDIRECT SREC ASSIGNMENTS + +mlr put -v $["a"] = $["b"]; $["x"] = 10 * $["y"] ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text="a", type=STRING_LITERAL. + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="b", type=STRING_LITERAL. + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text="x", type=STRING_LITERAL. + text="*", type=OPERATOR: + text="10", type=NUMERIC_LITERAL. + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="y", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text="a", type=STRING_LITERAL. + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="b", type=STRING_LITERAL. + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text="x", type=STRING_LITERAL. + text="*", type=OPERATOR: + text="10", type=NUMERIC_LITERAL. + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="y", type=STRING_LITERAL. + +a=pan,b=pan,i=1,x=7.268029,y=0.7268028627434533 +a=pan,b=pan,i=2,x=5.221511,y=0.5221511083334797 +a=wye,b=wye,i=3,x=3.383185,y=0.33831852551664776 +a=wye,b=wye,i=4,x=1.341887,y=0.13418874328430463 +a=pan,b=pan,i=5,x=8.636245,y=0.8636244699032729 +a=pan,b=pan,i=6,x=4.932213,y=0.49322128674835697 +a=zee,b=zee,i=7,x=1.878849,y=0.1878849191181694 +a=wye,b=wye,i=8,x=9.761814,y=0.976181385699006 +a=wye,b=wye,i=9,x=7.495508,y=0.7495507603507059 +a=wye,b=wye,i=10,x=9.526184,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put while (NF < 256) { $["k".string(NF+1)] = "v".string(NF) } +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,k6=v5,k7=v6,k8=v7,k9=v8,k10=v9,k11=v10,k12=v11,k13=v12,k14=v13,k15=v14,k16=v15,k17=v16,k18=v17,k19=v18,k20=v19,k21=v20,k22=v21,k23=v22,k24=v23,k25=v24,k26=v25,k27=v26,k28=v27,k29=v28,k30=v29,k31=v30,k32=v31,k33=v32,k34=v33,k35=v34,k36=v35,k37=v36,k38=v37,k39=v38,k40=v39,k41=v40,k42=v41,k43=v42,k44=v43,k45=v44,k46=v45,k47=v46,k48=v47,k49=v48,k50=v49,k51=v50,k52=v51,k53=v52,k54=v53,k55=v54,k56=v55,k57=v56,k58=v57,k59=v58,k60=v59,k61=v60,k62=v61,k63=v62,k64=v63,k65=v64,k66=v65,k67=v66,k68=v67,k69=v68,k70=v69,k71=v70,k72=v71,k73=v72,k74=v73,k75=v74,k76=v75,k77=v76,k78=v77,k79=v78,k80=v79,k81=v80,k82=v81,k83=v82,k84=v83,k85=v84,k86=v85,k87=v86,k88=v87,k89=v88,k90=v89,k91=v90,k92=v91,k93=v92,k94=v93,k95=v94,k96=v95,k97=v96,k98=v97,k99=v98,k100=v99,k101=v100,k102=v101,k103=v102,k104=v103,k105=v104,k106=v105,k107=v106,k108=v107,k109=v108,k110=v109,k111=v110,k112=v111,k113=v112,k114=v113,k115=v114,k116=v115,k117=v116,k118=v117,k119=v118,k120=v119,k121=v120,k122=v121,k123=v122,k124=v123,k125=v124,k126=v125,k127=v126,k128=v127,k129=v128,k130=v129,k131=v130,k132=v131,k133=v132,k134=v133,k135=v134,k136=v135,k137=v136,k138=v137,k139=v138,k140=v139,k141=v140,k142=v141,k143=v142,k144=v143,k145=v144,k146=v145,k147=v146,k148=v147,k149=v148,k150=v149,k151=v150,k152=v151,k153=v152,k154=v153,k155=v154,k156=v155,k157=v156,k158=v157,k159=v158,k160=v159,k161=v160,k162=v161,k163=v162,k164=v163,k165=v164,k166=v165,k167=v166,k168=v167,k169=v168,k170=v169,k171=v170,k172=v171,k173=v172,k174=v173,k175=v174,k176=v175,k177=v176,k178=v177,k179=v178,k180=v179,k181=v180,k182=v181,k183=v182,k184=v183,k185=v184,k186=v185,k187=v186,k188=v187,k189=v188,k190=v189,k191=v190,k192=v191,k193=v192,k194=v193,k195=v194,k196=v195,k197=v196,k198=v197,k199=v198,k200=v199,k201=v200,k202=v201,k203=v202,k204=v203,k205=v204,k206=v205,k207=v206,k208=v207,k209=v208,k210=v209,k211=v210,k212=v211,k213=v212,k214=v213,k215=v214,k216=v215,k217=v216,k218=v217,k219=v218,k220=v219,k221=v220,k222=v221,k223=v222,k224=v223,k225=v224,k226=v225,k227=v226,k228=v227,k229=v228,k230=v229,k231=v230,k232=v231,k233=v232,k234=v233,k235=v234,k236=v235,k237=v236,k238=v237,k239=v238,k240=v239,k241=v240,k242=v241,k243=v242,k244=v243,k245=v244,k246=v245,k247=v246,k248=v247,k249=v248,k250=v249,k251=v250,k252=v251,k253=v252,k254=v253,k255=v254,k256=v255 + + +================================================================ +DSL INDIRECT OOSVAR ASSIGNMENTS + +mlr --opprint put -v @s = NR; $t = @s; $u=@["s"]; $v = $t - $u ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="s", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="t", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="s", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="u", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="s", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="v", type=FIELD_NAME. + text="-", type=OPERATOR: + text="t", type=FIELD_NAME. + text="u", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="s", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="t", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="s", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="u", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="s", type=STRING_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="v", type=FIELD_NAME. + text="-", type=OPERATOR: + text="t", type=FIELD_NAME. + text="u", type=FIELD_NAME. + +a b i x y t u v +pan pan 1 0.3467901443380824 0.7268028627434533 1 1 0 +eks pan 2 0.7586799647899636 0.5221511083334797 2 2 0 +wye wye 3 0.20460330576630303 0.33831852551664776 3 3 0 +eks wye 4 0.38139939387114097 0.13418874328430463 4 4 0 +wye pan 5 0.5732889198020006 0.8636244699032729 5 5 0 +zee pan 6 0.5271261600918548 0.49322128674835697 6 6 0 +eks zee 7 0.6117840605678454 0.1878849191181694 7 7 0 +zee wye 8 0.5985540091064224 0.976181385699006 8 8 0 +hat wye 9 0.03144187646093577 0.7495507603507059 9 9 0 +pan wye 10 0.5026260055412137 0.9526183602969864 10 10 0 + +mlr put -v @t["u"] = NR; $tu = @["t"]["u"]; emitp all ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="tu", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="emitp", type=EMITP: + text="emitp", type=EMITP: + text="all", type=ALL. + text="stream", type=STREAM: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="tu", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="emitp", type=EMITP: + text="emitp", type=EMITP: + text="all", type=ALL. + text="stream", type=STREAM: + +t:u=1 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,tu=1 +t:u=2 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,tu=2 +t:u=3 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,tu=3 +t:u=4 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,tu=4 +t:u=5 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,tu=5 +t:u=6 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,tu=6 +t:u=7 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,tu=7 +t:u=8 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,tu=8 +t:u=9 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,tu=9 +t:u=10 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,tu=10 + +mlr put -v @t["u"] = NR; $tu = @["t"]["u"]; emitp @* ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="tu", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="emitp", type=EMITP: + text="emitp", type=EMITP: + text="@*", type=FULL_OOSVAR. + text="stream", type=STREAM: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="tu", type=FIELD_NAME. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="emitp", type=EMITP: + text="emitp", type=EMITP: + text="@*", type=FULL_OOSVAR. + text="stream", type=STREAM: + +t:u=1 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,tu=1 +t:u=2 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,tu=2 +t:u=3 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,tu=3 +t:u=4 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,tu=4 +t:u=5 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,tu=5 +t:u=6 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,tu=6 +t:u=7 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,tu=7 +t:u=8 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,tu=8 +t:u=9 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,tu=9 +t:u=10 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,tu=10 + +mlr put -v @["s"] = $x; emitp all ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="s", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + text="emitp", type=EMITP: + text="emitp", type=EMITP: + text="all", type=ALL. + text="stream", type=STREAM: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="s", type=STRING_LITERAL. + text="x", type=FIELD_NAME. + text="emitp", type=EMITP: + text="emitp", type=EMITP: + text="all", type=ALL. + text="stream", type=STREAM: + +s=0.346790 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +s=0.758680 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +s=0.204603 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +s=0.381399 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +s=0.573289 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +s=0.527126 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +s=0.611784 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +s=0.598554 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +s=0.031442 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +s=0.502626 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr put -v @["t"]["u"] = $y; emitp all ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="y", type=FIELD_NAME. + text="emitp", type=EMITP: + text="emitp", type=EMITP: + text="all", type=ALL. + text="stream", type=STREAM: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="t", type=STRING_LITERAL. + text="u", type=STRING_LITERAL. + text="y", type=FIELD_NAME. + text="emitp", type=EMITP: + text="emitp", type=EMITP: + text="all", type=ALL. + text="stream", type=STREAM: + +t:u=0.726803 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +t:u=0.522151 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +t:u=0.338319 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +t:u=0.134189 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +t:u=0.863624 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +t:u=0.493221 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +t:u=0.187885 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +t:u=0.976181 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +t:u=0.749551 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +t:u=0.952618 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +DSL WHILE/DO-WHILE LOOPS + +mlr put -v while($i < 5) { $i += 1} ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="while", type=WHILE: + text="<", type=OPERATOR: + text="i", type=FIELD_NAME. + text="5", type=NUMERIC_LITERAL. + text="while_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="i", type=FIELD_NAME. + text="+", type=OPERATOR: + text="i", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="while", type=WHILE: + text="<", type=OPERATOR: + text="i", type=FIELD_NAME. + text="5", type=NUMERIC_LITERAL. + text="while_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="i", type=FIELD_NAME. + text="+", type=OPERATOR: + text="i", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + +a=pan,b=pan,i=5,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=5,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=5,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=5,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr put -v do {$i += 1} while($i < 5) ./reg_test/input/abixy +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="do", type=DO_WHILE: + text="do_while_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="i", type=FIELD_NAME. + text="+", type=OPERATOR: + text="i", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="<", type=OPERATOR: + text="i", type=FIELD_NAME. + text="5", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="do", type=DO_WHILE: + text="do_while_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="i", type=FIELD_NAME. + text="+", type=OPERATOR: + text="i", type=FIELD_NAME. + text="1", type=NUMERIC_LITERAL. + text="<", type=OPERATOR: + text="i", type=FIELD_NAME. + text="5", type=NUMERIC_LITERAL. + +a=pan,b=pan,i=5,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=5,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=5,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=5,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=6,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=7,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=8,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=9,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=10,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=11,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +DSL FOR-SREC LOOPS + + +---------------------------------------------------------------- empty for-srec +mlr --from ./reg_test/input/abixy put -v for(k,v in $*) { } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=3 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="for_full_srec_block", type=STATEMENT_BLOCK: + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +---------------------------------------------------------------- for-srec without boundvars +mlr --from ./reg_test/input/abixy put -v for(k,v in $*) {$nr= NR} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="nr", type=FIELD_NAME. + text="NR", type=CONTEXT_VARIABLE. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=3 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="nr", type=FIELD_NAME. + text="NR", type=CONTEXT_VARIABLE. + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,nr=1 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,nr=2 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,nr=3 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,nr=4 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,nr=5 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,nr=6 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,nr=7 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,nr=8 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,nr=9 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,nr=10 + + +---------------------------------------------------------------- for-srec modifying the srec +mlr --from ./reg_test/input/abixy put -v for(k,v in $*) {unset $[k]}; $j = NR +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="j", type=FIELD_NAME. + text="NR", type=CONTEXT_VARIABLE. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=3 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="=", type=SREC_ASSIGNMENT: + text="j", type=FIELD_NAME. + text="NR", type=CONTEXT_VARIABLE. + +j=1 +j=2 +j=3 +j=4 +j=5 +j=6 +j=7 +j=8 +j=9 +j=10 + +mlr --from ./reg_test/input/abixy put -v for(k,v in $*) {if (k != "x") {unset $[k]}}; $j = NR +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="!=", type=OPERATOR: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="x", type=STRING_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="unset", type=UNSET: + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="j", type=FIELD_NAME. + text="NR", type=CONTEXT_VARIABLE. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=3 max_var_depth=3 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="!=", type=OPERATOR: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="x", type=STRING_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="unset", type=UNSET: + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="=", type=SREC_ASSIGNMENT: + text="j", type=FIELD_NAME. + text="NR", type=CONTEXT_VARIABLE. + +x=0.3467901443380824,j=1 +x=0.7586799647899636,j=2 +x=0.20460330576630303,j=3 +x=0.38139939387114097,j=4 +x=0.5732889198020006,j=5 +x=0.5271261600918548,j=6 +x=0.6117840605678454,j=7 +x=0.5985540091064224,j=8 +x=0.03144187646093577,j=9 +x=0.5026260055412137,j=10 + +mlr --from ./reg_test/input/abixy --opprint put -S -v for(k,v in $*) {$[k."_orig"]=v; $[k] = "other"} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text=".", type=OPERATOR: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="_orig", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="other", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=3 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text=".", type=OPERATOR: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="_orig", type=STRING_LITERAL. + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="other", type=STRING_LITERAL. + +a b i x y a_orig b_orig i_orig x_orig y_orig +other other other other other pan pan 1 0.3467901443380824 0.7268028627434533 +other other other other other eks pan 2 0.7586799647899636 0.5221511083334797 +other other other other other wye wye 3 0.20460330576630303 0.33831852551664776 +other other other other other eks wye 4 0.38139939387114097 0.13418874328430463 +other other other other other wye pan 5 0.5732889198020006 0.8636244699032729 +other other other other other zee pan 6 0.5271261600918548 0.49322128674835697 +other other other other other eks zee 7 0.6117840605678454 0.1878849191181694 +other other other other other zee wye 8 0.5985540091064224 0.976181385699006 +other other other other other hat wye 9 0.03144187646093577 0.7495507603507059 +other other other other other pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --from ./reg_test/input/abixy put -S -v for(k,v in $*) {$[v]=k} +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text="k", type=NONINDEXED_LOCAL_VARIABLE. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=3 + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="=", type=INDIRECT_SREC_ASSIGNMENT: + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,pan=b,1=i,0.3467901443380824=x,0.7268028627434533=y +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,eks=a,pan=b,2=i,0.7586799647899636=x,0.5221511083334797=y +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,wye=b,3=i,0.20460330576630303=x,0.33831852551664776=y +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,eks=a,wye=b,4=i,0.38139939387114097=x,0.13418874328430463=y +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,wye=a,pan=b,5=i,0.5732889198020006=x,0.8636244699032729=y +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,zee=a,pan=b,6=i,0.5271261600918548=x,0.49322128674835697=y +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,eks=a,zee=b,7=i,0.6117840605678454=x,0.1878849191181694=y +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,zee=a,wye=b,8=i,0.5985540091064224=x,0.976181385699006=y +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,hat=a,wye=b,9=i,0.03144187646093577=x,0.7495507603507059=y +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,pan=a,wye=b,10=i,0.5026260055412137=x,0.9526183602969864=y + +mlr --from ./reg_test/input/abixy put -v + $sum = 0; + for(k,v in $*) { + if (k =~ "^[xy]$") { + $sum += $[k] + } + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="sum", type=FIELD_NAME. + text="0", type=NUMERIC_LITERAL. + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="=~", type=OPERATOR: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="^[xy]$", type=STRING_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="sum", type=FIELD_NAME. + text="+", type=OPERATOR: + text="sum", type=FIELD_NAME. + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=3 max_var_depth=3 + text="=", type=SREC_ASSIGNMENT: + text="sum", type=FIELD_NAME. + text="0", type=NUMERIC_LITERAL. + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="=~", type=OPERATOR: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="^[xy]$", type=STRING_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="sum", type=FIELD_NAME. + text="+", type=OPERATOR: + text="sum", type=FIELD_NAME. + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,sum=1.073593 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,sum=1.280831 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,sum=0.542922 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,sum=0.515588 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,sum=1.436913 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,sum=1.020347 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,sum=0.799669 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,sum=1.574735 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,sum=0.780993 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,sum=1.455244 + +mlr --from ./reg_test/input/abixy put -S -v + $sum = float(0); + for(k,v in $*) { + if (k =~ "^[xy]$") { + $sum += float($[k]) + } + } +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="sum", type=FIELD_NAME. + text="float", type=FUNCTION_CALLSITE: + text="0", type=NUMERIC_LITERAL. + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="=~", type=OPERATOR: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + text="^[xy]$", type=STRING_LITERAL. + text="if_block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="sum", type=FIELD_NAME. + text="+", type=OPERATOR: + text="sum", type=FIELD_NAME. + text="float", type=FUNCTION_CALLSITE: + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="k", type=NONINDEXED_LOCAL_VARIABLE. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=3 max_var_depth=3 + text="=", type=SREC_ASSIGNMENT: + text="sum", type=FIELD_NAME. + text="float", type=FUNCTION_CALLSITE: + text="0", type=NUMERIC_LITERAL. + text="for", type=FOR_SREC: subframe_var_count=2 + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="for_full_srec_block", type=STATEMENT_BLOCK: + text="if_head", type=IF_HEAD: + text="if", type=IF_ITEM: + text="=~", type=OPERATOR: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="^[xy]$", type=STRING_LITERAL. + text="if_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=SREC_ASSIGNMENT: + text="sum", type=FIELD_NAME. + text="+", type=OPERATOR: + text="sum", type=FIELD_NAME. + text="float", type=FUNCTION_CALLSITE: + text="indirect_field_name", type=INDIRECT_FIELD_NAME: + text="k", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,sum=1.073593 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,sum=1.280831 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,sum=0.542922 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,sum=0.515588 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,sum=1.436913 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,sum=1.020347 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,sum=0.799669 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,sum=1.574735 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,sum=0.780993 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,sum=1.455244 + + +================================================================ +DSL FOR-OOSVAR LOOPS + +mlr --opprint -n put -v + @o[1][1]["text1"][NR] = $a; + @o[1][2]["text2"][NR] = $b; + @o[1][2][$a][$i*100] = $x; + for((k1,k2),v in @o[1][2]) { + @n[3][4][k2][k1] = v; + } + end { + emit @n, "a", "b", "c", "d" + } + +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="o", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="text1", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="a", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="o", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="text2", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="b", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="o", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="a", type=FIELD_NAME. + text="*", type=OPERATOR: + text="i", type=FIELD_NAME. + text="100", type=NUMERIC_LITERAL. + text="x", type=FIELD_NAME. + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k1", type=UNTYPED_LOCAL_DEFINITION. + text="k2", type=UNTYPED_LOCAL_DEFINITION. + text="v", type=UNTYPED_LOCAL_DEFINITION. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="o", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="n", type=STRING_LITERAL. + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="k2", type=NONINDEXED_LOCAL_VARIABLE. + text="k1", type=NONINDEXED_LOCAL_VARIABLE. + text="v", type=NONINDEXED_LOCAL_VARIABLE. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="emit", type=EMIT: + text="emit", type=EMIT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="n", type=STRING_LITERAL. + text="emit_namelist", type=EMIT: + text="a", type=STRING_LITERAL. + text="b", type=STRING_LITERAL. + text="c", type=STRING_LITERAL. + text="d", type=STRING_LITERAL. + text="stream", type=STREAM: + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="emit", type=EMIT: + text="emit", type=EMIT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="n", type=STRING_LITERAL. + text="emit_namelist", type=EMIT: + text="a", type=STRING_LITERAL. + text="b", type=STRING_LITERAL. + text="c", type=STRING_LITERAL. + text="d", type=STRING_LITERAL. + text="stream", type=STREAM: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=4 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="o", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="text1", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="a", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="o", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="text2", type=STRING_LITERAL. + text="NR", type=CONTEXT_VARIABLE. + text="b", type=FIELD_NAME. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="o", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="a", type=FIELD_NAME. + text="*", type=OPERATOR: + text="i", type=FIELD_NAME. + text="100", type=NUMERIC_LITERAL. + text="x", type=FIELD_NAME. + text="for", type=FOR_OOSVAR: subframe_var_count=3 + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k1", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="k2", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="v", type=UNTYPED_LOCAL_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3 + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="o", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="for_loop_oosvar_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="n", type=STRING_LITERAL. + text="3", type=NUMERIC_LITERAL. + text="4", type=NUMERIC_LITERAL. + text="k2", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=1 vardef_frame_relative_index=2 + text="k1", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=1 vardef_frame_relative_index=1 + text="v", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=2 vardef_subframe_index=1 vardef_frame_relative_index=3 + + +mlr --opprint --from ./reg_test/input/abixy put -q + @o[1][1]["text1"][NR] = $a; + @o[1][2]["text2"][NR] = $b; + @o[1][2][$a][$i*100] = $x; + for((k1,k2),v in @o[1][2]) { + @n[3][4][k2][k1] = v; + } + end { + emit @n, "a", "b", "c", "d" + } + +a b c d n +3 4 1 text2 pan +3 4 100 pan 0.346790 +3 4 2 text2 pan +3 4 200 eks 0.758680 +3 4 3 text2 wye +3 4 300 wye 0.204603 +3 4 4 text2 wye +3 4 400 eks 0.381399 +3 4 5 text2 pan +3 4 500 wye 0.573289 +3 4 6 text2 pan +3 4 600 zee 0.527126 +3 4 7 text2 zee +3 4 700 eks 0.611784 +3 4 8 text2 wye +3 4 800 zee 0.598554 +3 4 9 text2 wye +3 4 900 hat 0.031442 +3 4 10 text2 wye +3 4 1000 pan 0.502626 + +mlr --opprint --from ./reg_test/input/abixy put -q + @sum[$a][$b] += $x; + @count[$a][$b] += 1; + end { + for ((k1, k2), v in @sum) { + @mean[k1][k2] = @sum[k1][k2] / @count[k1][k2] + } + emitp @sum, "a", "b"; + emitp @count, "a", "b"; + emitp @mean, "a", "b" + } + +a b sum +pan pan 0.346790 +pan wye 0.502626 +eks pan 0.758680 +eks wye 0.381399 +eks zee 0.611784 +wye wye 0.204603 +wye pan 0.573289 +zee pan 0.527126 +zee wye 0.598554 +hat wye 0.031442 + +a b count +pan pan 1 +pan wye 1 +eks pan 1 +eks wye 1 +eks zee 1 +wye wye 1 +wye pan 1 +zee pan 1 +zee wye 1 +hat wye 1 + +a b mean +pan pan 0.346790 +pan wye 0.502626 +eks pan 0.758680 +eks wye 0.381399 +eks zee 0.611784 +wye wye 0.204603 +wye pan 0.573289 +zee pan 0.527126 +zee wye 0.598554 +hat wye 0.031442 + +mlr --opprint --from ./reg_test/input/abixy-wide put -q + @value["sum"][$a][$b] += $x; + @value["count"][$a][$b] += 1; + end { + for ((k1, k2), v in @value["sum"]) { + @value["mean"][k1][k2] = @value["sum"][k1][k2] / @value["count"][k1][k2] + } + emitp @value, "stat", "a", "b"; + } + +stat a b value +sum cat pan 42.327158 +sum cat hat 43.184410 +sum cat dog 39.241473 +sum cat wye 45.196775 +sum cat cat 37.894148 +sum pan wye 40.135300 +sum pan pan 36.226334 +sum pan hat 35.115869 +sum pan dog 37.817560 +sum pan cat 42.235677 +sum wye cat 40.805723 +sum wye hat 41.166697 +sum wye dog 40.619547 +sum wye wye 32.490973 +sum wye pan 33.027196 +sum dog hat 43.515162 +sum dog pan 45.614011 +sum dog dog 43.545956 +sum dog wye 37.223795 +sum dog cat 45.642595 +sum hat hat 48.058897 +sum hat wye 34.054270 +sum hat pan 42.538758 +sum hat cat 44.325655 +sum hat dog 37.114244 +count cat pan 89 +count cat hat 90 +count cat dog 78 +count cat wye 77 +count cat cat 79 +count pan wye 78 +count pan pan 77 +count pan hat 67 +count pan dog 73 +count pan cat 89 +count wye cat 74 +count wye hat 87 +count wye dog 76 +count wye wye 67 +count wye pan 66 +count dog hat 88 +count dog pan 87 +count dog dog 87 +count dog wye 79 +count dog cat 83 +count hat hat 88 +count hat wye 70 +count hat pan 85 +count hat cat 88 +count hat dog 78 +mean cat pan 0.475586 +mean cat hat 0.479827 +mean cat dog 0.503096 +mean cat wye 0.586971 +mean cat cat 0.479673 +mean pan wye 0.514555 +mean pan pan 0.470472 +mean pan hat 0.524117 +mean pan dog 0.518049 +mean pan cat 0.474558 +mean wye cat 0.551429 +mean wye hat 0.473180 +mean wye dog 0.534468 +mean wye wye 0.484940 +mean wye pan 0.500412 +mean dog hat 0.494490 +mean dog pan 0.524299 +mean dog dog 0.500528 +mean dog wye 0.471187 +mean dog cat 0.549911 +mean hat hat 0.546124 +mean hat wye 0.486490 +mean hat pan 0.500456 +mean hat cat 0.503701 +mean hat dog 0.475824 + +mlr -n put -v for (k, k in $*) {} +mlr: redefinition of variable k in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_SREC: + text="variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="for_full_srec_block", type=STATEMENT_BLOCK: + +mlr -n put -v for (k, k in @*) {} +mlr: redefinition of variable k in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="k", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,a), c in @*) {} +mlr: redefinition of variable a in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="c", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,b), a in @*) {} +mlr: redefinition of variable a in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,b), b in @*) {} +mlr: redefinition of variable b in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,a,c), d in @*) {} +mlr: redefinition of variable a in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="c", type=UNTYPED_LOCAL_DEFINITION. + text="d", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,b,a), d in @*) {} +mlr: redefinition of variable a in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="d", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,b,c), a in @*) {} +mlr: redefinition of variable a in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="c", type=UNTYPED_LOCAL_DEFINITION. + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,b,b), d in @*) {} +mlr: redefinition of variable b in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="d", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,b,c), b in @*) {} +mlr: redefinition of variable b in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="c", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr -n put -v for ((a,b,c), c in @*) {} +mlr: redefinition of variable c in the same scope. +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="for", type=FOR_OOSVAR: + text="key_and_value_variables", type=FOR_VARIABLES: + text="key_variables", type=FOR_VARIABLES: + text="a", type=UNTYPED_LOCAL_DEFINITION. + text="b", type=UNTYPED_LOCAL_DEFINITION. + text="c", type=UNTYPED_LOCAL_DEFINITION. + text="c", type=UNTYPED_LOCAL_DEFINITION. + text="empty_keylist", type=OOSVAR_KEYLIST: + text="for_full_oosvar_block", type=STATEMENT_BLOCK: + +mlr --from ./reg_test/input/xyz2 put -q func f() { return {"a"."b":"c"."d",3:4}}; for (k,v in f()){print "k=".k.",v=".v} +k=ab,v=cd +k=3,v=4 +k=ab,v=cd +k=3,v=4 + +mlr --from ./reg_test/input/xyz2 put -q for (k,v in {"a"."b":"c"."d",3:"c"}) {print "k=".k.",v=".v} +k=ab,v=cd +k=3,v=c +k=ab,v=cd +k=3,v=c + +mlr --from ./reg_test/input/xyz2 put -q o["a"."b"]="c"."d"; for (k,v in o) {print "k=".k.",v=".v} +k=ab,v=cd +k=ab,v=cd + +mlr --from ./reg_test/input/xyz2 put -q @o["a"."b"]="c"."d"; for (k,v in @o) {print "k=".k.",v=".v} +k=ab,v=cd +k=ab,v=cd + +mlr --from ./reg_test/input/xyz2 put for (k in $*) { print k} +x +y +z +x=3,y=4,z=5 +x +y +u +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put m=$*; for (k in m) { print k} +x +y +z +x=3,y=4,z=5 +x +y +u +x=6,y=7,u=8 + + +================================================================ +DSL FOR-BIND LOOPS FOR VALGRIND + + +---------------------------------------------------------------- key-only fors +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + map o = {}; + o[ab] = xy; + for (k in o) { + print "k is " . k; + } + +k is pan_pan +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + unset @o; + @o[ab] = xy; + for (k in @o) { + print "k is " . k; + } + +k is pan_pan +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + for (k in {ab : xy}) { + print "k is " . k; + } + +k is pan_pan +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + func f(a, b, x, y): map { + ab = $a . "_" . $b; + xy = $x . "_" . $y; + return {ab : xy}; + } + for (k in f($a, $b, $x, $y)) { + print "k is " . k; + } + +k is pan_pan +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +---------------------------------------------------------------- key-value fors with scalar values +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + map o = {}; + o[ab] = xy; + for (k, v in o) { + print "k is " . k . " v is " . v; + } + +k is pan_pan v is 0.346790_0.726803 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan v is 0.758680_0.522151 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye v is 0.204603_0.338319 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ v is 0.381399_0.134189 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan v is _0.863624 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan v is 0.527126_0.493221 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee v is 0.611784_0.187885 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye v is 0.598554_ +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ v is 0.031442_0.749551 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye v is 0.502626_0.952618 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + unset @o; + @o[ab] = xy; + for (k, v in @o) { + print "k is " . k . " v is " . v; + } + +k is pan_pan v is 0.346790_0.726803 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan v is 0.758680_0.522151 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye v is 0.204603_0.338319 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ v is 0.381399_0.134189 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan v is _0.863624 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan v is 0.527126_0.493221 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee v is 0.611784_0.187885 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye v is 0.598554_ +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ v is 0.031442_0.749551 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye v is 0.502626_0.952618 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + for (k, v in {ab : xy}) { + print "k is " . k . " v is " . v; + } + +k is pan_pan v is 0.346790_0.726803 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan v is 0.758680_0.522151 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye v is 0.204603_0.338319 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ v is 0.381399_0.134189 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan v is _0.863624 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan v is 0.527126_0.493221 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee v is 0.611784_0.187885 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye v is 0.598554_ +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ v is 0.031442_0.749551 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye v is 0.502626_0.952618 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + func f(a, b, x, y): map { + ab = $a . "_" . $b; + xy = $x . "_" . $y; + return {ab : xy}; + } + for (k, v in f($a, $b, $x, $y)) { + print "k is " . k . " v is " . v; + } + +k is pan_pan v is 0.346790_0.726803 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan v is 0.758680_0.522151 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye v is 0.204603_0.338319 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ v is 0.381399_0.134189 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan v is _0.863624 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan v is 0.527126_0.493221 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee v is 0.611784_0.187885 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye v is 0.598554_ +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ v is 0.031442_0.749551 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye v is 0.502626_0.952618 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +---------------------------------------------------------------- key-value fors with map values +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + map o = {}; + o[ab] = {"foo": xy}; + for (k, v in o) { + print "k is " . k . " v is "; + dump v; + } + +k is pan_pan v is +{ + "foo": "0.346790_0.726803" +} +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan v is +{ + "foo": "0.758680_0.522151" +} +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye v is +{ + "foo": "0.204603_0.338319" +} +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ v is +{ + "foo": "0.381399_0.134189" +} +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan v is +{ + "foo": "_0.863624" +} +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan v is +{ + "foo": "0.527126_0.493221" +} +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee v is +{ + "foo": "0.611784_0.187885" +} +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye v is +{ + "foo": "0.598554_" +} +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ v is +{ + "foo": "0.031442_0.749551" +} +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye v is +{ + "foo": "0.502626_0.952618" +} +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + unset @o; + @o[ab]["foo"] = xy; + for (k, v in @o) { + print "k is " . k . " v is "; + dump v; + } + +k is pan_pan v is +{ + "foo": "0.346790_0.726803" +} +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan v is +{ + "foo": "0.758680_0.522151" +} +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye v is +{ + "foo": "0.204603_0.338319" +} +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ v is +{ + "foo": "0.381399_0.134189" +} +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan v is +{ + "foo": "_0.863624" +} +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan v is +{ + "foo": "0.527126_0.493221" +} +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee v is +{ + "foo": "0.611784_0.187885" +} +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye v is +{ + "foo": "0.598554_" +} +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ v is +{ + "foo": "0.031442_0.749551" +} +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye v is +{ + "foo": "0.502626_0.952618" +} +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + ab = $a . "_" . $b; + xy = $x . "_" . $y; + for (k, v in {ab : {"foo": xy}}) { + print "k is " . k . " v is "; + dump v; + } + +k is pan_pan v is +{ + "foo": "0.346790_0.726803" +} +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan v is +{ + "foo": "0.758680_0.522151" +} +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye v is +{ + "foo": "0.204603_0.338319" +} +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ v is +{ + "foo": "0.381399_0.134189" +} +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan v is +{ + "foo": "_0.863624" +} +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan v is +{ + "foo": "0.527126_0.493221" +} +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee v is +{ + "foo": "0.611784_0.187885" +} +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye v is +{ + "foo": "0.598554_" +} +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ v is +{ + "foo": "0.031442_0.749551" +} +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye v is +{ + "foo": "0.502626_0.952618" +} +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put + func f(a, b, x, y): map { + ab = $a . "_" . $b; + xy = $x . "_" . $y; + return {ab : {"foo" : xy}}; + } + for (k, v in f($a, $b, $x, $y)) { + print "k is " . k . " v is "; + dump v; + } + +k is pan_pan v is +{ + "foo": "0.346790_0.726803" +} +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +k is eks_pan v is +{ + "foo": "0.758680_0.522151" +} +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +k is _wye v is +{ + "foo": "0.204603_0.338319" +} +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +k is eks_ v is +{ + "foo": "0.381399_0.134189" +} +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +k is wye_pan v is +{ + "foo": "_0.863624" +} +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +k is zee_pan v is +{ + "foo": "0.527126_0.493221" +} +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +k is eks_zee v is +{ + "foo": "0.611784_0.187885" +} +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +k is zee_wye v is +{ + "foo": "0.598554_" +} +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +k is _ v is +{ + "foo": "0.031442_0.749551" +} +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +k is pan_wye v is +{ + "foo": "0.502626_0.952618" +} +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +DSL BREAK/CONTINUE IN SINGLE WHILE/DO-WHILE + +mlr --opprint --from ./reg_test/input/abixy put + while ($i < 5) { + $i += 1; + break; + $a = "ERROR"; + } + +a b i x y +pan pan 2 0.3467901443380824 0.7268028627434533 +eks pan 3 0.7586799647899636 0.5221511083334797 +wye wye 4 0.20460330576630303 0.33831852551664776 +eks wye 5 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put + while ($i < 5) { + $i += 1; + continue; + $a = "ERROR"; + } + +a b i x y +pan pan 5 0.3467901443380824 0.7268028627434533 +eks pan 5 0.7586799647899636 0.5221511083334797 +wye wye 5 0.20460330576630303 0.33831852551664776 +eks wye 5 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put + do { + $i += 1; + break; + $a = "ERROR"; + } while ($i < 5); + +a b i x y +pan pan 2 0.3467901443380824 0.7268028627434533 +eks pan 3 0.7586799647899636 0.5221511083334797 +wye wye 4 0.20460330576630303 0.33831852551664776 +eks wye 5 0.38139939387114097 0.13418874328430463 +wye pan 6 0.5732889198020006 0.8636244699032729 +zee pan 7 0.5271261600918548 0.49322128674835697 +eks zee 8 0.6117840605678454 0.1878849191181694 +zee wye 9 0.5985540091064224 0.976181385699006 +hat wye 10 0.03144187646093577 0.7495507603507059 +pan wye 11 0.5026260055412137 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put + do { + $i += 1; + continue; + $a = "ERROR"; + } while ($i < 5); + +a b i x y +pan pan 5 0.3467901443380824 0.7268028627434533 +eks pan 5 0.7586799647899636 0.5221511083334797 +wye wye 5 0.20460330576630303 0.33831852551664776 +eks wye 5 0.38139939387114097 0.13418874328430463 +wye pan 6 0.5732889198020006 0.8636244699032729 +zee pan 7 0.5271261600918548 0.49322128674835697 +eks zee 8 0.6117840605678454 0.1878849191181694 +zee wye 9 0.5985540091064224 0.976181385699006 +hat wye 10 0.03144187646093577 0.7495507603507059 +pan wye 11 0.5026260055412137 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put + $NR = NR; + while ($i < 5) { + $i += 1; + if (NR == 2) { + break; + } + $a = "reached"; + } + +a b i x y NR +reached pan 5 0.3467901443380824 0.7268028627434533 1 +eks pan 3 0.7586799647899636 0.5221511083334797 2 +reached wye 5 0.20460330576630303 0.33831852551664776 3 +reached wye 5 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $NR = NR; + while ($i < 5) { + $i += 1; + if (NR == 2) { + continue; + } + $a = "reached"; + } + +a b i x y NR +reached pan 5 0.3467901443380824 0.7268028627434533 1 +eks pan 5 0.7586799647899636 0.5221511083334797 2 +reached wye 5 0.20460330576630303 0.33831852551664776 3 +reached wye 5 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put +$NR = NR; + do { + $i += 1; + if (NR == 2) { + break; + } + $a = "reached"; + } while ($i < 5); + +a b i x y NR +reached pan 5 0.3467901443380824 0.7268028627434533 1 +eks pan 3 0.7586799647899636 0.5221511083334797 2 +reached wye 5 0.20460330576630303 0.33831852551664776 3 +reached wye 5 0.38139939387114097 0.13418874328430463 4 +reached pan 6 0.5732889198020006 0.8636244699032729 5 +reached pan 7 0.5271261600918548 0.49322128674835697 6 +reached zee 8 0.6117840605678454 0.1878849191181694 7 +reached wye 9 0.5985540091064224 0.976181385699006 8 +reached wye 10 0.03144187646093577 0.7495507603507059 9 +reached wye 11 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $NR = NR; + do { + $i += 1; + if (NR == 2) { + continue; + } + $a = "reached"; + } while ($i < 5); + +a b i x y NR +reached pan 5 0.3467901443380824 0.7268028627434533 1 +eks pan 5 0.7586799647899636 0.5221511083334797 2 +reached wye 5 0.20460330576630303 0.33831852551664776 3 +reached wye 5 0.38139939387114097 0.13418874328430463 4 +reached pan 6 0.5732889198020006 0.8636244699032729 5 +reached pan 7 0.5271261600918548 0.49322128674835697 6 +reached zee 8 0.6117840605678454 0.1878849191181694 7 +reached wye 9 0.5985540091064224 0.976181385699006 8 +reached wye 10 0.03144187646093577 0.7495507603507059 9 +reached wye 11 0.5026260055412137 0.9526183602969864 10 + + +================================================================ +DSL BREAK/CONTINUE IN NESTED WHILE/DO-WHILE + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + break; + while ($k < 7) { + $k += 1 + } + } + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 2 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 2 +wye wye 3 0.20460330576630303 0.33831852551664776 4 3 + +a b i x y j +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + continue; + while ($k < 7) { + $k += 1 + } + } + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 1 +eks pan 2 0.7586799647899636 0.5221511083334797 4 2 +wye wye 3 0.20460330576630303 0.33831852551664776 4 3 + +a b i x y j +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + while ($k < 7) { + $k += 1; + break; + $k += 10000; + } + } + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 2 +eks pan 2 0.7586799647899636 0.5221511083334797 4 3 +wye wye 3 0.20460330576630303 0.33831852551664776 4 4 + +a b i x y j +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + while ($k < 7) { + $k += 1; + continue; + $k += 10000; + } + } + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 7 +eks pan 2 0.7586799647899636 0.5221511083334797 4 7 +wye wye 3 0.20460330576630303 0.33831852551664776 4 7 + +a b i x y j +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + if (NR == 2 || NR == 8) { + break; + } + while ($k < 7) { + $k += 1 + } + } + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 7 +eks pan 2 0.7586799647899636 0.5221511083334797 3 2 +wye wye 3 0.20460330576630303 0.33831852551664776 4 7 + +a b i x y j +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + if (NR == 2 || NR == 8) { + continue; + } + while ($k < 7) { + $k += 1 + } + } + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 7 +eks pan 2 0.7586799647899636 0.5221511083334797 4 2 +wye wye 3 0.20460330576630303 0.33831852551664776 4 7 + +a b i x y j +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + while ($k < 7) { + $k += 1; + if (NR == 2 || NR == 8) { + break; + } + $k += 10000; + } + } + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 10002 +eks pan 2 0.7586799647899636 0.5221511083334797 4 3 +wye wye 3 0.20460330576630303 0.33831852551664776 4 10004 + +a b i x y j +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + while ($k < 7) { + $k += 1; + if (NR == 2 || NR == 8) { + continue; + } + $k += 10000; + } + } + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 10002 +eks pan 2 0.7586799647899636 0.5221511083334797 4 7 +wye wye 3 0.20460330576630303 0.33831852551664776 4 10004 + +a b i x y j +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + do { + $k = NR; + $j += 1; + break; + do { + $k += 1 + } while ($k < 7); + } while ($j < 4); + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 2 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 2 +wye wye 3 0.20460330576630303 0.33831852551664776 4 3 +eks wye 4 0.38139939387114097 0.13418874328430463 5 4 +wye pan 5 0.5732889198020006 0.8636244699032729 6 5 +zee pan 6 0.5271261600918548 0.49322128674835697 7 6 +eks zee 7 0.6117840605678454 0.1878849191181694 8 7 +zee wye 8 0.5985540091064224 0.976181385699006 9 8 +hat wye 9 0.03144187646093577 0.7495507603507059 10 9 +pan wye 10 0.5026260055412137 0.9526183602969864 11 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + do { + $k = NR; + $j += 1; + continue; + do { + $k += 1 + } while ($k < 7); + } while ($j < 4); + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 1 +eks pan 2 0.7586799647899636 0.5221511083334797 4 2 +wye wye 3 0.20460330576630303 0.33831852551664776 4 3 +eks wye 4 0.38139939387114097 0.13418874328430463 5 4 +wye pan 5 0.5732889198020006 0.8636244699032729 6 5 +zee pan 6 0.5271261600918548 0.49322128674835697 7 6 +eks zee 7 0.6117840605678454 0.1878849191181694 8 7 +zee wye 8 0.5985540091064224 0.976181385699006 9 8 +hat wye 9 0.03144187646093577 0.7495507603507059 10 9 +pan wye 10 0.5026260055412137 0.9526183602969864 11 10 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + do { + $k = NR; + $j += 1; + do { + $k += 1; + break; + $k += 10000; + } while ($k < 7); + } while ($j < 4); + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 2 +eks pan 2 0.7586799647899636 0.5221511083334797 4 3 +wye wye 3 0.20460330576630303 0.33831852551664776 4 4 +eks wye 4 0.38139939387114097 0.13418874328430463 5 5 +wye pan 5 0.5732889198020006 0.8636244699032729 6 6 +zee pan 6 0.5271261600918548 0.49322128674835697 7 7 +eks zee 7 0.6117840605678454 0.1878849191181694 8 8 +zee wye 8 0.5985540091064224 0.976181385699006 9 9 +hat wye 9 0.03144187646093577 0.7495507603507059 10 10 +pan wye 10 0.5026260055412137 0.9526183602969864 11 11 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + do { + $k = NR; + $j += 1; + do { + $k += 1; + continue; + $k += 10000; + } while ($k < 7); + } while ($j < 4); + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 7 +eks pan 2 0.7586799647899636 0.5221511083334797 4 7 +wye wye 3 0.20460330576630303 0.33831852551664776 4 7 +eks wye 4 0.38139939387114097 0.13418874328430463 5 7 +wye pan 5 0.5732889198020006 0.8636244699032729 6 7 +zee pan 6 0.5271261600918548 0.49322128674835697 7 7 +eks zee 7 0.6117840605678454 0.1878849191181694 8 8 +zee wye 8 0.5985540091064224 0.976181385699006 9 9 +hat wye 9 0.03144187646093577 0.7495507603507059 10 10 +pan wye 10 0.5026260055412137 0.9526183602969864 11 11 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + do { + $k = NR; + $j += 1; + if (NR == 2 || NR == 8) { + break; + } + do { + $k += 1 + } while ($k < 7); + } while ($j < 4); + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 7 +eks pan 2 0.7586799647899636 0.5221511083334797 3 2 +wye wye 3 0.20460330576630303 0.33831852551664776 4 7 +eks wye 4 0.38139939387114097 0.13418874328430463 5 7 +wye pan 5 0.5732889198020006 0.8636244699032729 6 7 +zee pan 6 0.5271261600918548 0.49322128674835697 7 7 +eks zee 7 0.6117840605678454 0.1878849191181694 8 8 +zee wye 8 0.5985540091064224 0.976181385699006 9 8 +hat wye 9 0.03144187646093577 0.7495507603507059 10 10 +pan wye 10 0.5026260055412137 0.9526183602969864 11 11 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + do { + $k = NR; + $j += 1; + if (NR == 2 || NR == 8) { + continue; + } + do { + $k += 1 + } while ($k < 7); + } while ($j < 4); + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 7 +eks pan 2 0.7586799647899636 0.5221511083334797 4 2 +wye wye 3 0.20460330576630303 0.33831852551664776 4 7 +eks wye 4 0.38139939387114097 0.13418874328430463 5 7 +wye pan 5 0.5732889198020006 0.8636244699032729 6 7 +zee pan 6 0.5271261600918548 0.49322128674835697 7 7 +eks zee 7 0.6117840605678454 0.1878849191181694 8 8 +zee wye 8 0.5985540091064224 0.976181385699006 9 8 +hat wye 9 0.03144187646093577 0.7495507603507059 10 10 +pan wye 10 0.5026260055412137 0.9526183602969864 11 11 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + do { + $k = NR; + $j += 1; + do { + $k += 1; + if (NR == 2 || NR == 8) { + break; + } + $k += 10000; + } while ($k < 7); + } while ($j < 4); + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 10002 +eks pan 2 0.7586799647899636 0.5221511083334797 4 3 +wye wye 3 0.20460330576630303 0.33831852551664776 4 10004 +eks wye 4 0.38139939387114097 0.13418874328430463 5 10005 +wye pan 5 0.5732889198020006 0.8636244699032729 6 10006 +zee pan 6 0.5271261600918548 0.49322128674835697 7 10007 +eks zee 7 0.6117840605678454 0.1878849191181694 8 10008 +zee wye 8 0.5985540091064224 0.976181385699006 9 9 +hat wye 9 0.03144187646093577 0.7495507603507059 10 10010 +pan wye 10 0.5026260055412137 0.9526183602969864 11 10011 + +mlr --opprint --from ./reg_test/input/abixy put + $j = NR; + do { + $k = NR; + $j += 1; + do { + $k += 1; + if (NR == 2 || NR == 8) { + continue; + } + $k += 10000; + } while ($k < 7); + } while ($j < 4); + +a b i x y j k +pan pan 1 0.3467901443380824 0.7268028627434533 4 10002 +eks pan 2 0.7586799647899636 0.5221511083334797 4 7 +wye wye 3 0.20460330576630303 0.33831852551664776 4 10004 +eks wye 4 0.38139939387114097 0.13418874328430463 5 10005 +wye pan 5 0.5732889198020006 0.8636244699032729 6 10006 +zee pan 6 0.5271261600918548 0.49322128674835697 7 10007 +eks zee 7 0.6117840605678454 0.1878849191181694 8 10008 +zee wye 8 0.5985540091064224 0.976181385699006 9 9 +hat wye 9 0.03144187646093577 0.7495507603507059 10 10010 +pan wye 10 0.5026260055412137 0.9526183602969864 11 10011 + + +================================================================ +DSL BREAK/CONTINUE IN SINGLE FOR-SREC + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k,v in $*) { + @logging1[NR][k] = v; + if (k == "x") { + break; + } + } + end { + emitp @logging1, "NR", "k"; + } + +NR k logging1 +1 a pan +1 b pan +1 i 1 +1 x 0.346790 +2 a eks +2 b pan +2 i 2 +2 x 0.758680 +3 a wye +3 b wye +3 i 3 +3 x 0.204603 +4 a eks +4 b wye +4 i 4 +4 x 0.381399 +5 a wye +5 b pan +5 i 5 +5 x 0.573289 +6 a zee +6 b pan +6 i 6 +6 x 0.527126 +7 a eks +7 b zee +7 i 7 +7 x 0.611784 +8 a zee +8 b wye +8 i 8 +8 x 0.598554 +9 a hat +9 b wye +9 i 9 +9 x 0.031442 +10 a pan +10 b wye +10 i 10 +10 x 0.502626 + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k,v in $*) { + if (k == "x") { + break; + } + @logging2[NR][k] = v; + } + end { + emitp @logging2, "NR", "k"; + } + +NR k logging2 +1 a pan +1 b pan +1 i 1 +2 a eks +2 b pan +2 i 2 +3 a wye +3 b wye +3 i 3 +4 a eks +4 b wye +4 i 4 +5 a wye +5 b pan +5 i 5 +6 a zee +6 b pan +6 i 6 +7 a eks +7 b zee +7 i 7 +8 a zee +8 b wye +8 i 8 +9 a hat +9 b wye +9 i 9 +10 a pan +10 b wye +10 i 10 + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k,v in $*) { + @logging3[NR][k] = v; + if (k == "x") { + continue; + } + } + end { + emitp @logging3, "NR", "k"; + } + +NR k logging3 +1 a pan +1 b pan +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b pan +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b wye +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b wye +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b pan +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b pan +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b zee +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b wye +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b wye +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b wye +10 i 10 +10 x 0.502626 +10 y 0.952618 + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k,v in $*) { + if (k == "x") { + continue; + } + @logging4[NR][k] = v; + } + end { + emitp @logging4, "NR", "k" + } + +NR k logging4 +1 a pan +1 b pan +1 i 1 +1 y 0.726803 +2 a eks +2 b pan +2 i 2 +2 y 0.522151 +3 a wye +3 b wye +3 i 3 +3 y 0.338319 +4 a eks +4 b wye +4 i 4 +4 y 0.134189 +5 a wye +5 b pan +5 i 5 +5 y 0.863624 +6 a zee +6 b pan +6 i 6 +6 y 0.493221 +7 a eks +7 b zee +7 i 7 +7 y 0.187885 +8 a zee +8 b wye +8 i 8 +8 y 0.976181 +9 a hat +9 b wye +9 i 9 +9 y 0.749551 +10 a pan +10 b wye +10 i 10 +10 y 0.952618 + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k,v in $*) { + @logging1[NR][k] = v; + if (k == "x") { + break; + } + } + + for (k,v in $*) { + if (k == "x") { + break; + } + @logging2[NR][k] = v; + } + + for (k,v in $*) { + @logging3[NR][k] = v; + if (k == "x") { + continue; + } + } + + for (k,v in $*) { + if (k == "x") { + continue; + } + @logging4[NR][k] = v; + } + + end { + emitp @logging1, "NR", "k"; + emitp @logging2, "NR", "k"; + emitp @logging3, "NR", "k"; + emitp @logging4, "NR", "k" + } + +NR k logging1 +1 a pan +1 b pan +1 i 1 +1 x 0.346790 +2 a eks +2 b pan +2 i 2 +2 x 0.758680 +3 a wye +3 b wye +3 i 3 +3 x 0.204603 +4 a eks +4 b wye +4 i 4 +4 x 0.381399 +5 a wye +5 b pan +5 i 5 +5 x 0.573289 +6 a zee +6 b pan +6 i 6 +6 x 0.527126 +7 a eks +7 b zee +7 i 7 +7 x 0.611784 +8 a zee +8 b wye +8 i 8 +8 x 0.598554 +9 a hat +9 b wye +9 i 9 +9 x 0.031442 +10 a pan +10 b wye +10 i 10 +10 x 0.502626 + +NR k logging2 +1 a pan +1 b pan +1 i 1 +2 a eks +2 b pan +2 i 2 +3 a wye +3 b wye +3 i 3 +4 a eks +4 b wye +4 i 4 +5 a wye +5 b pan +5 i 5 +6 a zee +6 b pan +6 i 6 +7 a eks +7 b zee +7 i 7 +8 a zee +8 b wye +8 i 8 +9 a hat +9 b wye +9 i 9 +10 a pan +10 b wye +10 i 10 + +NR k logging3 +1 a pan +1 b pan +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b pan +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b wye +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b wye +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b pan +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b pan +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b zee +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b wye +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b wye +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b wye +10 i 10 +10 x 0.502626 +10 y 0.952618 + +NR k logging4 +1 a pan +1 b pan +1 i 1 +1 y 0.726803 +2 a eks +2 b pan +2 i 2 +2 y 0.522151 +3 a wye +3 b wye +3 i 3 +3 y 0.338319 +4 a eks +4 b wye +4 i 4 +4 y 0.134189 +5 a wye +5 b pan +5 i 5 +5 y 0.863624 +6 a zee +6 b pan +6 i 6 +6 y 0.493221 +7 a eks +7 b zee +7 i 7 +7 y 0.187885 +8 a zee +8 b wye +8 i 8 +8 y 0.976181 +9 a hat +9 b wye +9 i 9 +9 y 0.749551 +10 a pan +10 b wye +10 i 10 +10 y 0.952618 + + +================================================================ +DSL BREAK/CONTINUE IN NESTED FOR-SREC + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + break; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a before +2 a before +3 a before +4 a before +5 a before +6 a before +7 a before +8 a before +9 a before +10 a before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + continue; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a before +1 b before +1 i before +1 x before +1 y before +2 a before +2 b before +2 i before +2 x before +2 y before +3 a before +3 b before +3 i before +3 x before +3 y before +4 a before +4 b before +4 i before +4 x before +4 y before +5 a before +5 b before +5 i before +5 x before +5 y before +6 a before +6 b before +6 i before +6 x before +6 y before +7 a before +7 b before +7 i before +7 x before +7 y before +8 a before +8 b before +8 i before +8 x before +8 y before +9 a before +9 b before +9 i before +9 x before +9 y before +10 a before +10 b before +10 i before +10 x before +10 y before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + break; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b pan +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b pan +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b wye +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b wye +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b pan +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b pan +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b zee +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b wye +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b wye +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b wye +10 i 10 +10 x 0.502626 +10 y 0.952618 + +NR names output2 +1 a_a before +1 b_a before +1 i_a before +1 x_a before +1 y_a before +2 a_a before +2 b_a before +2 i_a before +2 x_a before +2 y_a before +3 a_a before +3 b_a before +3 i_a before +3 x_a before +3 y_a before +4 a_a before +4 b_a before +4 i_a before +4 x_a before +4 y_a before +5 a_a before +5 b_a before +5 i_a before +5 x_a before +5 y_a before +6 a_a before +6 b_a before +6 i_a before +6 x_a before +6 y_a before +7 a_a before +7 b_a before +7 i_a before +7 x_a before +7 y_a before +8 a_a before +8 b_a before +8 i_a before +8 x_a before +8 y_a before +9 a_a before +9 b_a before +9 i_a before +9 x_a before +9 y_a before +10 a_a before +10 b_a before +10 i_a before +10 x_a before +10 y_a before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + continue; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b pan +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b pan +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b wye +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b wye +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b pan +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b pan +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b zee +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b wye +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b wye +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b wye +10 i 10 +10 x 0.502626 +10 y 0.952618 + +NR names output2 +1 a_a before +1 a_b before +1 a_i before +1 a_x before +1 a_y before +1 b_a before +1 b_b before +1 b_i before +1 b_x before +1 b_y before +1 i_a before +1 i_b before +1 i_i before +1 i_x before +1 i_y before +1 x_a before +1 x_b before +1 x_i before +1 x_x before +1 x_y before +1 y_a before +1 y_b before +1 y_i before +1 y_x before +1 y_y before +2 a_a before +2 a_b before +2 a_i before +2 a_x before +2 a_y before +2 b_a before +2 b_b before +2 b_i before +2 b_x before +2 b_y before +2 i_a before +2 i_b before +2 i_i before +2 i_x before +2 i_y before +2 x_a before +2 x_b before +2 x_i before +2 x_x before +2 x_y before +2 y_a before +2 y_b before +2 y_i before +2 y_x before +2 y_y before +3 a_a before +3 a_b before +3 a_i before +3 a_x before +3 a_y before +3 b_a before +3 b_b before +3 b_i before +3 b_x before +3 b_y before +3 i_a before +3 i_b before +3 i_i before +3 i_x before +3 i_y before +3 x_a before +3 x_b before +3 x_i before +3 x_x before +3 x_y before +3 y_a before +3 y_b before +3 y_i before +3 y_x before +3 y_y before +4 a_a before +4 a_b before +4 a_i before +4 a_x before +4 a_y before +4 b_a before +4 b_b before +4 b_i before +4 b_x before +4 b_y before +4 i_a before +4 i_b before +4 i_i before +4 i_x before +4 i_y before +4 x_a before +4 x_b before +4 x_i before +4 x_x before +4 x_y before +4 y_a before +4 y_b before +4 y_i before +4 y_x before +4 y_y before +5 a_a before +5 a_b before +5 a_i before +5 a_x before +5 a_y before +5 b_a before +5 b_b before +5 b_i before +5 b_x before +5 b_y before +5 i_a before +5 i_b before +5 i_i before +5 i_x before +5 i_y before +5 x_a before +5 x_b before +5 x_i before +5 x_x before +5 x_y before +5 y_a before +5 y_b before +5 y_i before +5 y_x before +5 y_y before +6 a_a before +6 a_b before +6 a_i before +6 a_x before +6 a_y before +6 b_a before +6 b_b before +6 b_i before +6 b_x before +6 b_y before +6 i_a before +6 i_b before +6 i_i before +6 i_x before +6 i_y before +6 x_a before +6 x_b before +6 x_i before +6 x_x before +6 x_y before +6 y_a before +6 y_b before +6 y_i before +6 y_x before +6 y_y before +7 a_a before +7 a_b before +7 a_i before +7 a_x before +7 a_y before +7 b_a before +7 b_b before +7 b_i before +7 b_x before +7 b_y before +7 i_a before +7 i_b before +7 i_i before +7 i_x before +7 i_y before +7 x_a before +7 x_b before +7 x_i before +7 x_x before +7 x_y before +7 y_a before +7 y_b before +7 y_i before +7 y_x before +7 y_y before +8 a_a before +8 a_b before +8 a_i before +8 a_x before +8 a_y before +8 b_a before +8 b_b before +8 b_i before +8 b_x before +8 b_y before +8 i_a before +8 i_b before +8 i_i before +8 i_x before +8 i_y before +8 x_a before +8 x_b before +8 x_i before +8 x_x before +8 x_y before +8 y_a before +8 y_b before +8 y_i before +8 y_x before +8 y_y before +9 a_a before +9 a_b before +9 a_i before +9 a_x before +9 a_y before +9 b_a before +9 b_b before +9 b_i before +9 b_x before +9 b_y before +9 i_a before +9 i_b before +9 i_i before +9 i_x before +9 i_y before +9 x_a before +9 x_b before +9 x_i before +9 x_x before +9 x_y before +9 y_a before +9 y_b before +9 y_i before +9 y_x before +9 y_y before +10 a_a before +10 a_b before +10 a_i before +10 a_x before +10 a_y before +10 b_a before +10 b_b before +10 b_i before +10 b_x before +10 b_y before +10 i_a before +10 i_b before +10 i_i before +10 i_x before +10 i_y before +10 x_a before +10 x_b before +10 x_i before +10 x_x before +10 x_y before +10 y_a before +10 y_b before +10 y_i before +10 y_x before +10 y_y before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + break; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + break; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a before +2 a before +3 a before +4 a before +5 a before +6 a before +7 a before +8 a before +9 a before +10 a before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + continue; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + break; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a before +1 b before +1 i before +1 x before +1 y before +2 a before +2 b before +2 i before +2 x before +2 y before +3 a before +3 b before +3 i before +3 x before +3 y before +4 a before +4 b before +4 i before +4 x before +4 y before +5 a before +5 b before +5 i before +5 x before +5 y before +6 a before +6 b before +6 i before +6 x before +6 y before +7 a before +7 b before +7 i before +7 x before +7 y before +8 a before +8 b before +8 i before +8 x before +8 y before +9 a before +9 b before +9 i before +9 x before +9 y before +10 a before +10 b before +10 i before +10 x before +10 y before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + break; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + continue; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a before +2 a before +3 a before +4 a before +5 a before +6 a before +7 a before +8 a before +9 a before +10 a before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + continue; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + continue; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a before +1 b before +1 i before +1 x before +1 y before +2 a before +2 b before +2 i before +2 x before +2 y before +3 a before +3 b before +3 i before +3 x before +3 y before +4 a before +4 b before +4 i before +4 x before +4 y before +5 a before +5 b before +5 i before +5 x before +5 y before +6 a before +6 b before +6 i before +6 x before +6 y before +7 a before +7 b before +7 i before +7 x before +7 y before +8 a before +8 b before +8 i before +8 x before +8 y before +9 a before +9 b before +9 i before +9 x before +9 y before +10 a before +10 b before +10 i before +10 x before +10 y before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + break + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b before +2 a eks +2 b before +3 a wye +3 b before +4 a eks +4 b before +5 a wye +5 b before +6 a zee +6 b before +7 a eks +7 b before +8 a zee +8 b before +9 a hat +9 b before +10 a pan +10 b before + +NR names output2 +1 a_a pan +1 a_b pan +1 a_i 1 +1 a_x 0.346790 +1 a_y 0.726803 +2 a_a eks +2 a_b pan +2 a_i 2 +2 a_x 0.758680 +2 a_y 0.522151 +3 a_a wye +3 a_b wye +3 a_i 3 +3 a_x 0.204603 +3 a_y 0.338319 +4 a_a eks +4 a_b wye +4 a_i 4 +4 a_x 0.381399 +4 a_y 0.134189 +5 a_a wye +5 a_b pan +5 a_i 5 +5 a_x 0.573289 +5 a_y 0.863624 +6 a_a zee +6 a_b pan +6 a_i 6 +6 a_x 0.527126 +6 a_y 0.493221 +7 a_a eks +7 a_b zee +7 a_i 7 +7 a_x 0.611784 +7 a_y 0.187885 +8 a_a zee +8 a_b wye +8 a_i 8 +8 a_x 0.598554 +8 a_y 0.976181 +9 a_a hat +9 a_b wye +9 a_i 9 +9 a_x 0.031442 +9 a_y 0.749551 +10 a_a pan +10 a_b wye +10 a_i 10 +10 a_x 0.502626 +10 a_y 0.952618 + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + continue + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b before +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b before +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b before +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b before +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b before +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b before +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b before +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b before +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b before +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b before +10 i 10 +10 x 0.502626 +10 y 0.952618 + +NR names output2 +1 a_a pan +1 a_b pan +1 a_i 1 +1 a_x 0.346790 +1 a_y 0.726803 +1 i_a pan +1 i_b pan +1 i_i 1 +1 i_x 0.346790 +1 i_y 0.726803 +1 x_a pan +1 x_b pan +1 x_i 1 +1 x_x 0.346790 +1 x_y 0.726803 +1 y_a pan +1 y_b pan +1 y_i 1 +1 y_x 0.346790 +1 y_y 0.726803 +2 a_a eks +2 a_b pan +2 a_i 2 +2 a_x 0.758680 +2 a_y 0.522151 +2 i_a eks +2 i_b pan +2 i_i 2 +2 i_x 0.758680 +2 i_y 0.522151 +2 x_a eks +2 x_b pan +2 x_i 2 +2 x_x 0.758680 +2 x_y 0.522151 +2 y_a eks +2 y_b pan +2 y_i 2 +2 y_x 0.758680 +2 y_y 0.522151 +3 a_a wye +3 a_b wye +3 a_i 3 +3 a_x 0.204603 +3 a_y 0.338319 +3 i_a wye +3 i_b wye +3 i_i 3 +3 i_x 0.204603 +3 i_y 0.338319 +3 x_a wye +3 x_b wye +3 x_i 3 +3 x_x 0.204603 +3 x_y 0.338319 +3 y_a wye +3 y_b wye +3 y_i 3 +3 y_x 0.204603 +3 y_y 0.338319 +4 a_a eks +4 a_b wye +4 a_i 4 +4 a_x 0.381399 +4 a_y 0.134189 +4 i_a eks +4 i_b wye +4 i_i 4 +4 i_x 0.381399 +4 i_y 0.134189 +4 x_a eks +4 x_b wye +4 x_i 4 +4 x_x 0.381399 +4 x_y 0.134189 +4 y_a eks +4 y_b wye +4 y_i 4 +4 y_x 0.381399 +4 y_y 0.134189 +5 a_a wye +5 a_b pan +5 a_i 5 +5 a_x 0.573289 +5 a_y 0.863624 +5 i_a wye +5 i_b pan +5 i_i 5 +5 i_x 0.573289 +5 i_y 0.863624 +5 x_a wye +5 x_b pan +5 x_i 5 +5 x_x 0.573289 +5 x_y 0.863624 +5 y_a wye +5 y_b pan +5 y_i 5 +5 y_x 0.573289 +5 y_y 0.863624 +6 a_a zee +6 a_b pan +6 a_i 6 +6 a_x 0.527126 +6 a_y 0.493221 +6 i_a zee +6 i_b pan +6 i_i 6 +6 i_x 0.527126 +6 i_y 0.493221 +6 x_a zee +6 x_b pan +6 x_i 6 +6 x_x 0.527126 +6 x_y 0.493221 +6 y_a zee +6 y_b pan +6 y_i 6 +6 y_x 0.527126 +6 y_y 0.493221 +7 a_a eks +7 a_b zee +7 a_i 7 +7 a_x 0.611784 +7 a_y 0.187885 +7 i_a eks +7 i_b zee +7 i_i 7 +7 i_x 0.611784 +7 i_y 0.187885 +7 x_a eks +7 x_b zee +7 x_i 7 +7 x_x 0.611784 +7 x_y 0.187885 +7 y_a eks +7 y_b zee +7 y_i 7 +7 y_x 0.611784 +7 y_y 0.187885 +8 a_a zee +8 a_b wye +8 a_i 8 +8 a_x 0.598554 +8 a_y 0.976181 +8 i_a zee +8 i_b wye +8 i_i 8 +8 i_x 0.598554 +8 i_y 0.976181 +8 x_a zee +8 x_b wye +8 x_i 8 +8 x_x 0.598554 +8 x_y 0.976181 +8 y_a zee +8 y_b wye +8 y_i 8 +8 y_x 0.598554 +8 y_y 0.976181 +9 a_a hat +9 a_b wye +9 a_i 9 +9 a_x 0.031442 +9 a_y 0.749551 +9 i_a hat +9 i_b wye +9 i_i 9 +9 i_x 0.031442 +9 i_y 0.749551 +9 x_a hat +9 x_b wye +9 x_i 9 +9 x_x 0.031442 +9 x_y 0.749551 +9 y_a hat +9 y_b wye +9 y_i 9 +9 y_x 0.031442 +9 y_y 0.749551 +10 a_a pan +10 a_b wye +10 a_i 10 +10 a_x 0.502626 +10 a_y 0.952618 +10 i_a pan +10 i_b wye +10 i_i 10 +10 i_x 0.502626 +10 i_y 0.952618 +10 x_a pan +10 x_b wye +10 x_i 10 +10 x_x 0.502626 +10 x_y 0.952618 +10 y_a pan +10 y_b wye +10 y_i 10 +10 y_x 0.502626 +10 y_y 0.952618 + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + break + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b pan +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b pan +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b wye +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b wye +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b pan +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b pan +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b zee +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b wye +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b wye +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b wye +10 i 10 +10 x 0.502626 +10 y 0.952618 + +NR names output2 +1 a_a before +1 b_a before +1 i_a before +1 x_a before +1 y_a before +2 a_a before +2 b_a before +2 i_a before +2 x_a before +2 y_a before +3 a_a before +3 b_a before +3 i_a before +3 x_a before +3 y_a before +4 a_a before +4 b_a before +4 i_a before +4 x_a before +4 y_a before +5 a_a before +5 b_a before +5 i_a before +5 x_a before +5 y_a before +6 a_a before +6 b_a before +6 i_a before +6 x_a before +6 y_a before +7 a_a before +7 b_a before +7 i_a before +7 x_a before +7 y_a before +8 a_a before +8 b_a before +8 i_a before +8 x_a before +8 y_a before +9 a_a before +9 b_a before +9 i_a before +9 x_a before +9 y_a before +10 a_a before +10 b_a before +10 i_a before +10 x_a before +10 y_a before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "b") { + continue + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b pan +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b pan +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b wye +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b wye +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b pan +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b pan +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b zee +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b wye +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b wye +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b wye +10 i 10 +10 x 0.502626 +10 y 0.952618 + +NR names output2 +1 a_a pan +1 a_b before +1 a_i 1 +1 a_x 0.346790 +1 a_y 0.726803 +1 b_a pan +1 b_b before +1 b_i 1 +1 b_x 0.346790 +1 b_y 0.726803 +1 i_a pan +1 i_b before +1 i_i 1 +1 i_x 0.346790 +1 i_y 0.726803 +1 x_a pan +1 x_b before +1 x_i 1 +1 x_x 0.346790 +1 x_y 0.726803 +1 y_a pan +1 y_b before +1 y_i 1 +1 y_x 0.346790 +1 y_y 0.726803 +2 a_a eks +2 a_b before +2 a_i 2 +2 a_x 0.758680 +2 a_y 0.522151 +2 b_a eks +2 b_b before +2 b_i 2 +2 b_x 0.758680 +2 b_y 0.522151 +2 i_a eks +2 i_b before +2 i_i 2 +2 i_x 0.758680 +2 i_y 0.522151 +2 x_a eks +2 x_b before +2 x_i 2 +2 x_x 0.758680 +2 x_y 0.522151 +2 y_a eks +2 y_b before +2 y_i 2 +2 y_x 0.758680 +2 y_y 0.522151 +3 a_a wye +3 a_b before +3 a_i 3 +3 a_x 0.204603 +3 a_y 0.338319 +3 b_a wye +3 b_b before +3 b_i 3 +3 b_x 0.204603 +3 b_y 0.338319 +3 i_a wye +3 i_b before +3 i_i 3 +3 i_x 0.204603 +3 i_y 0.338319 +3 x_a wye +3 x_b before +3 x_i 3 +3 x_x 0.204603 +3 x_y 0.338319 +3 y_a wye +3 y_b before +3 y_i 3 +3 y_x 0.204603 +3 y_y 0.338319 +4 a_a eks +4 a_b before +4 a_i 4 +4 a_x 0.381399 +4 a_y 0.134189 +4 b_a eks +4 b_b before +4 b_i 4 +4 b_x 0.381399 +4 b_y 0.134189 +4 i_a eks +4 i_b before +4 i_i 4 +4 i_x 0.381399 +4 i_y 0.134189 +4 x_a eks +4 x_b before +4 x_i 4 +4 x_x 0.381399 +4 x_y 0.134189 +4 y_a eks +4 y_b before +4 y_i 4 +4 y_x 0.381399 +4 y_y 0.134189 +5 a_a wye +5 a_b before +5 a_i 5 +5 a_x 0.573289 +5 a_y 0.863624 +5 b_a wye +5 b_b before +5 b_i 5 +5 b_x 0.573289 +5 b_y 0.863624 +5 i_a wye +5 i_b before +5 i_i 5 +5 i_x 0.573289 +5 i_y 0.863624 +5 x_a wye +5 x_b before +5 x_i 5 +5 x_x 0.573289 +5 x_y 0.863624 +5 y_a wye +5 y_b before +5 y_i 5 +5 y_x 0.573289 +5 y_y 0.863624 +6 a_a zee +6 a_b before +6 a_i 6 +6 a_x 0.527126 +6 a_y 0.493221 +6 b_a zee +6 b_b before +6 b_i 6 +6 b_x 0.527126 +6 b_y 0.493221 +6 i_a zee +6 i_b before +6 i_i 6 +6 i_x 0.527126 +6 i_y 0.493221 +6 x_a zee +6 x_b before +6 x_i 6 +6 x_x 0.527126 +6 x_y 0.493221 +6 y_a zee +6 y_b before +6 y_i 6 +6 y_x 0.527126 +6 y_y 0.493221 +7 a_a eks +7 a_b before +7 a_i 7 +7 a_x 0.611784 +7 a_y 0.187885 +7 b_a eks +7 b_b before +7 b_i 7 +7 b_x 0.611784 +7 b_y 0.187885 +7 i_a eks +7 i_b before +7 i_i 7 +7 i_x 0.611784 +7 i_y 0.187885 +7 x_a eks +7 x_b before +7 x_i 7 +7 x_x 0.611784 +7 x_y 0.187885 +7 y_a eks +7 y_b before +7 y_i 7 +7 y_x 0.611784 +7 y_y 0.187885 +8 a_a zee +8 a_b before +8 a_i 8 +8 a_x 0.598554 +8 a_y 0.976181 +8 b_a zee +8 b_b before +8 b_i 8 +8 b_x 0.598554 +8 b_y 0.976181 +8 i_a zee +8 i_b before +8 i_i 8 +8 i_x 0.598554 +8 i_y 0.976181 +8 x_a zee +8 x_b before +8 x_i 8 +8 x_x 0.598554 +8 x_y 0.976181 +8 y_a zee +8 y_b before +8 y_i 8 +8 y_x 0.598554 +8 y_y 0.976181 +9 a_a hat +9 a_b before +9 a_i 9 +9 a_x 0.031442 +9 a_y 0.749551 +9 b_a hat +9 b_b before +9 b_i 9 +9 b_x 0.031442 +9 b_y 0.749551 +9 i_a hat +9 i_b before +9 i_i 9 +9 i_x 0.031442 +9 i_y 0.749551 +9 x_a hat +9 x_b before +9 x_i 9 +9 x_x 0.031442 +9 x_y 0.749551 +9 y_a hat +9 y_b before +9 y_i 9 +9 y_x 0.031442 +9 y_y 0.749551 +10 a_a pan +10 a_b before +10 a_i 10 +10 a_x 0.502626 +10 a_y 0.952618 +10 b_a pan +10 b_b before +10 b_i 10 +10 b_x 0.502626 +10 b_y 0.952618 +10 i_a pan +10 i_b before +10 i_i 10 +10 i_x 0.502626 +10 i_y 0.952618 +10 x_a pan +10 x_b before +10 x_i 10 +10 x_x 0.502626 +10 x_y 0.952618 +10 y_a pan +10 y_b before +10 y_i 10 +10 y_x 0.502626 +10 y_y 0.952618 + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + break + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + break + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b before +2 a eks +2 b before +3 a wye +3 b before +4 a eks +4 b before +5 a wye +5 b before +6 a zee +6 b before +7 a eks +7 b before +8 a zee +8 b before +9 a hat +9 b before +10 a pan +10 b before + +NR names output2 +1 a_a before +2 a_a before +3 a_a before +4 a_a before +5 a_a before +6 a_a before +7 a_a before +8 a_a before +9 a_a before +10 a_a before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + continue + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + break + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b before +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b before +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b before +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b before +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b before +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b before +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b before +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b before +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b before +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b before +10 i 10 +10 x 0.502626 +10 y 0.952618 + +NR names output2 +1 a_a before +1 i_a before +1 x_a before +1 y_a before +2 a_a before +2 i_a before +2 x_a before +2 y_a before +3 a_a before +3 i_a before +3 x_a before +3 y_a before +4 a_a before +4 i_a before +4 x_a before +4 y_a before +5 a_a before +5 i_a before +5 x_a before +5 y_a before +6 a_a before +6 i_a before +6 x_a before +6 y_a before +7 a_a before +7 i_a before +7 x_a before +7 y_a before +8 a_a before +8 i_a before +8 x_a before +8 y_a before +9 a_a before +9 i_a before +9 x_a before +9 y_a before +10 a_a before +10 i_a before +10 x_a before +10 y_a before + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + break + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + continue + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b before +2 a eks +2 b before +3 a wye +3 b before +4 a eks +4 b before +5 a wye +5 b before +6 a zee +6 b before +7 a eks +7 b before +8 a zee +8 b before +9 a hat +9 b before +10 a pan +10 b before + +NR names output2 +1 a_a before +1 a_b pan +1 a_i 1 +1 a_x 0.346790 +1 a_y 0.726803 +2 a_a before +2 a_b pan +2 a_i 2 +2 a_x 0.758680 +2 a_y 0.522151 +3 a_a before +3 a_b wye +3 a_i 3 +3 a_x 0.204603 +3 a_y 0.338319 +4 a_a before +4 a_b wye +4 a_i 4 +4 a_x 0.381399 +4 a_y 0.134189 +5 a_a before +5 a_b pan +5 a_i 5 +5 a_x 0.573289 +5 a_y 0.863624 +6 a_a before +6 a_b pan +6 a_i 6 +6 a_x 0.527126 +6 a_y 0.493221 +7 a_a before +7 a_b zee +7 a_i 7 +7 a_x 0.611784 +7 a_y 0.187885 +8 a_a before +8 a_b wye +8 a_i 8 +8 a_x 0.598554 +8 a_y 0.976181 +9 a_a before +9 a_b wye +9 a_i 9 +9 a_x 0.031442 +9 a_y 0.749551 +10 a_a before +10 a_b wye +10 a_i 10 +10 a_x 0.502626 +10 a_y 0.952618 + +mlr --opprint --from ./reg_test/input/abixy put -q + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + continue + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + continue + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } + +NR name output1 +1 a pan +1 b before +1 i 1 +1 x 0.346790 +1 y 0.726803 +2 a eks +2 b before +2 i 2 +2 x 0.758680 +2 y 0.522151 +3 a wye +3 b before +3 i 3 +3 x 0.204603 +3 y 0.338319 +4 a eks +4 b before +4 i 4 +4 x 0.381399 +4 y 0.134189 +5 a wye +5 b before +5 i 5 +5 x 0.573289 +5 y 0.863624 +6 a zee +6 b before +6 i 6 +6 x 0.527126 +6 y 0.493221 +7 a eks +7 b before +7 i 7 +7 x 0.611784 +7 y 0.187885 +8 a zee +8 b before +8 i 8 +8 x 0.598554 +8 y 0.976181 +9 a hat +9 b before +9 i 9 +9 x 0.031442 +9 y 0.749551 +10 a pan +10 b before +10 i 10 +10 x 0.502626 +10 y 0.952618 + +NR names output2 +1 a_a before +1 a_b pan +1 a_i 1 +1 a_x 0.346790 +1 a_y 0.726803 +1 i_a before +1 i_b pan +1 i_i 1 +1 i_x 0.346790 +1 i_y 0.726803 +1 x_a before +1 x_b pan +1 x_i 1 +1 x_x 0.346790 +1 x_y 0.726803 +1 y_a before +1 y_b pan +1 y_i 1 +1 y_x 0.346790 +1 y_y 0.726803 +2 a_a before +2 a_b pan +2 a_i 2 +2 a_x 0.758680 +2 a_y 0.522151 +2 i_a before +2 i_b pan +2 i_i 2 +2 i_x 0.758680 +2 i_y 0.522151 +2 x_a before +2 x_b pan +2 x_i 2 +2 x_x 0.758680 +2 x_y 0.522151 +2 y_a before +2 y_b pan +2 y_i 2 +2 y_x 0.758680 +2 y_y 0.522151 +3 a_a before +3 a_b wye +3 a_i 3 +3 a_x 0.204603 +3 a_y 0.338319 +3 i_a before +3 i_b wye +3 i_i 3 +3 i_x 0.204603 +3 i_y 0.338319 +3 x_a before +3 x_b wye +3 x_i 3 +3 x_x 0.204603 +3 x_y 0.338319 +3 y_a before +3 y_b wye +3 y_i 3 +3 y_x 0.204603 +3 y_y 0.338319 +4 a_a before +4 a_b wye +4 a_i 4 +4 a_x 0.381399 +4 a_y 0.134189 +4 i_a before +4 i_b wye +4 i_i 4 +4 i_x 0.381399 +4 i_y 0.134189 +4 x_a before +4 x_b wye +4 x_i 4 +4 x_x 0.381399 +4 x_y 0.134189 +4 y_a before +4 y_b wye +4 y_i 4 +4 y_x 0.381399 +4 y_y 0.134189 +5 a_a before +5 a_b pan +5 a_i 5 +5 a_x 0.573289 +5 a_y 0.863624 +5 i_a before +5 i_b pan +5 i_i 5 +5 i_x 0.573289 +5 i_y 0.863624 +5 x_a before +5 x_b pan +5 x_i 5 +5 x_x 0.573289 +5 x_y 0.863624 +5 y_a before +5 y_b pan +5 y_i 5 +5 y_x 0.573289 +5 y_y 0.863624 +6 a_a before +6 a_b pan +6 a_i 6 +6 a_x 0.527126 +6 a_y 0.493221 +6 i_a before +6 i_b pan +6 i_i 6 +6 i_x 0.527126 +6 i_y 0.493221 +6 x_a before +6 x_b pan +6 x_i 6 +6 x_x 0.527126 +6 x_y 0.493221 +6 y_a before +6 y_b pan +6 y_i 6 +6 y_x 0.527126 +6 y_y 0.493221 +7 a_a before +7 a_b zee +7 a_i 7 +7 a_x 0.611784 +7 a_y 0.187885 +7 i_a before +7 i_b zee +7 i_i 7 +7 i_x 0.611784 +7 i_y 0.187885 +7 x_a before +7 x_b zee +7 x_i 7 +7 x_x 0.611784 +7 x_y 0.187885 +7 y_a before +7 y_b zee +7 y_i 7 +7 y_x 0.611784 +7 y_y 0.187885 +8 a_a before +8 a_b wye +8 a_i 8 +8 a_x 0.598554 +8 a_y 0.976181 +8 i_a before +8 i_b wye +8 i_i 8 +8 i_x 0.598554 +8 i_y 0.976181 +8 x_a before +8 x_b wye +8 x_i 8 +8 x_x 0.598554 +8 x_y 0.976181 +8 y_a before +8 y_b wye +8 y_i 8 +8 y_x 0.598554 +8 y_y 0.976181 +9 a_a before +9 a_b wye +9 a_i 9 +9 a_x 0.031442 +9 a_y 0.749551 +9 i_a before +9 i_b wye +9 i_i 9 +9 i_x 0.031442 +9 i_y 0.749551 +9 x_a before +9 x_b wye +9 x_i 9 +9 x_x 0.031442 +9 x_y 0.749551 +9 y_a before +9 y_b wye +9 y_i 9 +9 y_x 0.031442 +9 y_y 0.749551 +10 a_a before +10 a_b wye +10 a_i 10 +10 a_x 0.502626 +10 a_y 0.952618 +10 i_a before +10 i_b wye +10 i_i 10 +10 i_x 0.502626 +10 i_y 0.952618 +10 x_a before +10 x_b wye +10 x_i 10 +10 x_x 0.502626 +10 x_y 0.952618 +10 y_a before +10 y_b wye +10 y_i 10 +10 y_x 0.502626 +10 y_y 0.952618 + + +================================================================ +FOR-MAP DEPTH TESTS + + +---------------------------------------------------------------- for full oosvar +mlr --from ./reg_test/input/abixy put @o[1][2] = 7; for(k1,v in @*) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put @o[1][2] = 7; for((k1),v in @*) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put @o[1][2] = 7; for((k1,k2),v in @*) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put @o[1][2] = 7; for((k1,k2,k3),v in @*) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + + +---------------------------------------------------------------- for oosvar submap +mlr --from ./reg_test/input/abixy put @o[1][2][3] = 7; for(k1,v in @o[1][2]) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put @o[1][2][3] = 7; for((k1),v in @o[1][2]) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put @o[1][2][3] = 7; for((k1,k2),v in @o[1][2]) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put @o[1][2][3] = 7; for((k1,k2,k3),v in @o[1][2]) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +---------------------------------------------------------------- for local +mlr --from ./reg_test/input/abixy put o[1][2] = 7; for(k1,v in o) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put o[1][2] = 7; for((k1),v in o) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put o[1][2] = 7; for((k1,k2),v in o) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put o[1][2] = 7; for((k1,k2,k3),v in o) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +---------------------------------------------------------------- for map-literal +mlr --from ./reg_test/input/abixy put for(k1,v in {1:{2:7}}) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put for((k1),v in {1:{2:7}}) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put for((k1,k2),v in {1:{2:7}}) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=10.346790,y=100.726803 +a=eks,b=pan,i=2,x=10.758680,y=100.522151 +a=wye,b=wye,i=3,x=10.204603,y=100.338319 +a=eks,b=wye,i=4,x=10.381399,y=100.134189 +a=wye,b=pan,i=5,x=10.573289,y=100.863624 +a=zee,b=pan,i=6,x=10.527126,y=100.493221 +a=eks,b=zee,i=7,x=10.611784,y=100.187885 +a=zee,b=wye,i=8,x=10.598554,y=100.976181 +a=hat,b=wye,i=9,x=10.031442,y=100.749551 +a=pan,b=wye,i=10,x=10.502626,y=100.952618 + +mlr --from ./reg_test/input/abixy put for((k1,k2,k3),v in {1:{2:7}}) {$x+=10;$y+=100} +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +DSL BREAK/CONTINUE IN SINGLE FOR-OOSVAR + + +---------------------------------------------------------------- single-key tests, direct break/continue +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + break; + @output[k1] = v; + } + emit @output, "NR", "name" + } + + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + @output[k1] = v; + break; + @output[k1] = "ERROR"; + } + emit @output, "NR", "name" + } + +NR output +a eks + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + continue; + @output[k1] = v + } + emit @output, "NR", "name" + } + + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + @output[k1] = v; + continue; + @output[k1] = "ERROR"; + } + emit @output, "NR", "name" + } + +NR output +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + + +---------------------------------------------------------------- single-key tests, indirect break/continue +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + if (k1 == "i") { + break; + } + @output[k1] = v; + } + emit @output, "NR", "name" + } + +NR output +a eks +b pan + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + @output[k1] = v; + if (k1 == "i") { + break; + } + } + emit @output, "NR", "name" + } + +NR output +a eks +b pan +i 2 + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + if (k1 == "i") { + continue; + } + @output[k1] = v + } + emit @output, "NR", "name" + } + +NR output +a eks +b pan +x 0.7586799647899636 +y 0.5221511083334797 + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + @output[k1] = v; + if (k1 == "i") { + continue; + } + @output[k1] = "reached"; + } + emit @output, "NR", "name" + } + +NR output +a reached +b reached +i 2 +x reached +y reached + + +---------------------------------------------------------------- multiple-key tests, direct break/continue +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + break; + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } + + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = v; + break; + @output[k1][k2] = "ERROR" + } + emit @output, "NR", "name" + } + +NR name output +1 a pan + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + continue; + @output[k1][k2] = v + } + emit @output, "NR", "name" + } + + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = v; + continue; + @output[k1][k2] = "ERROR"; + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan +1 i 1 +1 x 0.3467901443380824 +1 y 0.7268028627434533 +2 a eks +2 b pan +2 i 2 +2 x 0.7586799647899636 +2 y 0.5221511083334797 +3 a wye +3 b wye +3 i 3 +3 x 0.20460330576630303 +3 y 0.33831852551664776 +4 a eks +4 b wye +4 i 4 +4 x 0.38139939387114097 +4 y 0.13418874328430463 +5 a wye +5 b pan +5 i 5 +5 x 0.5732889198020006 +5 y 0.8636244699032729 +6 a zee +6 b pan +6 i 6 +6 x 0.5271261600918548 +6 y 0.49322128674835697 +7 a eks +7 b zee +7 i 7 +7 x 0.6117840605678454 +7 y 0.1878849191181694 +8 a zee +8 b wye +8 i 8 +8 x 0.5985540091064224 +8 y 0.976181385699006 +9 a hat +9 b wye +9 i 9 +9 x 0.03144187646093577 +9 y 0.7495507603507059 +10 a pan +10 b wye +10 i 10 +10 x 0.5026260055412137 +10 y 0.9526183602969864 + + +---------------------------------------------------------------- multiple-key tests, indirect break/continue +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k1 == 5) { + break; + } + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan +1 i 1 +1 x 0.3467901443380824 +1 y 0.7268028627434533 +2 a eks +2 b pan +2 i 2 +2 x 0.7586799647899636 +2 y 0.5221511083334797 +3 a wye +3 b wye +3 i 3 +3 x 0.20460330576630303 +3 y 0.33831852551664776 +4 a eks +4 b wye +4 i 4 +4 x 0.38139939387114097 +4 y 0.13418874328430463 + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k2 == "i") { + break; + } + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = v; + if (k1 == 5) { + break; + } + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan +1 i 1 +1 x 0.3467901443380824 +1 y 0.7268028627434533 +2 a eks +2 b pan +2 i 2 +2 x 0.7586799647899636 +2 y 0.5221511083334797 +3 a wye +3 b wye +3 i 3 +3 x 0.20460330576630303 +3 y 0.33831852551664776 +4 a eks +4 b wye +4 i 4 +4 x 0.38139939387114097 +4 y 0.13418874328430463 +5 a wye + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = v; + if (k2 == "i") { + break; + } + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan +1 i 1 + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k1 == 5) { + continue; + } + @output[k1][k2] = v + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan +1 i 1 +1 x 0.3467901443380824 +1 y 0.7268028627434533 +2 a eks +2 b pan +2 i 2 +2 x 0.7586799647899636 +2 y 0.5221511083334797 +3 a wye +3 b wye +3 i 3 +3 x 0.20460330576630303 +3 y 0.33831852551664776 +4 a eks +4 b wye +4 i 4 +4 x 0.38139939387114097 +4 y 0.13418874328430463 +6 a zee +6 b pan +6 i 6 +6 x 0.5271261600918548 +6 y 0.49322128674835697 +7 a eks +7 b zee +7 i 7 +7 x 0.6117840605678454 +7 y 0.1878849191181694 +8 a zee +8 b wye +8 i 8 +8 x 0.5985540091064224 +8 y 0.976181385699006 +9 a hat +9 b wye +9 i 9 +9 x 0.03144187646093577 +9 y 0.7495507603507059 +10 a pan +10 b wye +10 i 10 +10 x 0.5026260055412137 +10 y 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k2 == "i") { + continue; + } + @output[k1][k2] = v + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan +1 x 0.3467901443380824 +1 y 0.7268028627434533 +2 a eks +2 b pan +2 x 0.7586799647899636 +2 y 0.5221511083334797 +3 a wye +3 b wye +3 x 0.20460330576630303 +3 y 0.33831852551664776 +4 a eks +4 b wye +4 x 0.38139939387114097 +4 y 0.13418874328430463 +5 a wye +5 b pan +5 x 0.5732889198020006 +5 y 0.8636244699032729 +6 a zee +6 b pan +6 x 0.5271261600918548 +6 y 0.49322128674835697 +7 a eks +7 b zee +7 x 0.6117840605678454 +7 y 0.1878849191181694 +8 a zee +8 b wye +8 x 0.5985540091064224 +8 y 0.976181385699006 +9 a hat +9 b wye +9 x 0.03144187646093577 +9 y 0.7495507603507059 +10 a pan +10 b wye +10 x 0.5026260055412137 +10 y 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = "before"; + if (k1 == 5) { + continue; + } + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan +1 i 1 +1 x 0.3467901443380824 +1 y 0.7268028627434533 +2 a eks +2 b pan +2 i 2 +2 x 0.7586799647899636 +2 y 0.5221511083334797 +3 a wye +3 b wye +3 i 3 +3 x 0.20460330576630303 +3 y 0.33831852551664776 +4 a eks +4 b wye +4 i 4 +4 x 0.38139939387114097 +4 y 0.13418874328430463 +5 a before +5 b before +5 i before +5 x before +5 y before +6 a zee +6 b pan +6 i 6 +6 x 0.5271261600918548 +6 y 0.49322128674835697 +7 a eks +7 b zee +7 i 7 +7 x 0.6117840605678454 +7 y 0.1878849191181694 +8 a zee +8 b wye +8 i 8 +8 x 0.5985540091064224 +8 y 0.976181385699006 +9 a hat +9 b wye +9 i 9 +9 x 0.03144187646093577 +9 y 0.7495507603507059 +10 a pan +10 b wye +10 i 10 +10 x 0.5026260055412137 +10 y 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = "before"; + if (k2 == "i") { + continue; + } + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } + +NR name output +1 a pan +1 b pan +1 i before +1 x 0.3467901443380824 +1 y 0.7268028627434533 +2 a eks +2 b pan +2 i before +2 x 0.7586799647899636 +2 y 0.5221511083334797 +3 a wye +3 b wye +3 i before +3 x 0.20460330576630303 +3 y 0.33831852551664776 +4 a eks +4 b wye +4 i before +4 x 0.38139939387114097 +4 y 0.13418874328430463 +5 a wye +5 b pan +5 i before +5 x 0.5732889198020006 +5 y 0.8636244699032729 +6 a zee +6 b pan +6 i before +6 x 0.5271261600918548 +6 y 0.49322128674835697 +7 a eks +7 b zee +7 i before +7 x 0.6117840605678454 +7 y 0.1878849191181694 +8 a zee +8 b wye +8 i before +8 x 0.5985540091064224 +8 y 0.976181385699006 +9 a hat +9 b wye +9 i before +9 x 0.03144187646093577 +9 y 0.7495507603507059 +10 a pan +10 b wye +10 i before +10 x 0.5026260055412137 +10 y 0.9526183602969864 + + +================================================================ +DSL BREAK/CONTINUE IN NESTED FOR-OOSVAR + +mlr --opprint --from ./reg_test/input/abixy put -q + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k1 != 2) { + continue + } + for ((k3, k4), v in @logging) { + if (k3 != 4) { + continue + } + @output[k1][k2][k3][k4] = v; + } + } + emit @output, "NR1", "name1", "NR2", "name2" + } + +NR1 name1 NR2 name2 output +2 a 4 a eks +2 a 4 b wye +2 a 4 i 4 +2 a 4 x 0.38139939387114097 +2 a 4 y 0.13418874328430463 +2 b 4 a eks +2 b 4 b wye +2 b 4 i 4 +2 b 4 x 0.38139939387114097 +2 b 4 y 0.13418874328430463 +2 i 4 a eks +2 i 4 b wye +2 i 4 i 4 +2 i 4 x 0.38139939387114097 +2 i 4 y 0.13418874328430463 +2 x 4 a eks +2 x 4 b wye +2 x 4 i 4 +2 x 4 x 0.38139939387114097 +2 x 4 y 0.13418874328430463 +2 y 4 a eks +2 y 4 b wye +2 y 4 i 4 +2 y 4 x 0.38139939387114097 +2 y 4 y 0.13418874328430463 + + +================================================================ +DSL PRINT + +mlr put -q print 1; print "two"; print $a; print; print $i < 4; print "y is ".string($y); print "" ./reg_test/input/abixy +1 +two +pan + +true +y is 0.726803 + +1 +two +eks + +true +y is 0.522151 + +1 +two +wye + +true +y is 0.338319 + +1 +two +eks + +false +y is 0.134189 + +1 +two +wye + +false +y is 0.863624 + +1 +two +zee + +false +y is 0.493221 + +1 +two +eks + +false +y is 0.187885 + +1 +two +zee + +false +y is 0.976181 + +1 +two +hat + +false +y is 0.749551 + +1 +two +pan + +false +y is 0.952618 + + +mlr put -q printn 1; printn "two"; printn $a; printn; printn $i < 4; printn "y is ".string($y); print "" ./reg_test/input/abixy +1twopantruey is 0.726803 +1twoekstruey is 0.522151 +1twowyetruey is 0.338319 +1twoeksfalsey is 0.134189 +1twowyefalsey is 0.863624 +1twozeefalsey is 0.493221 +1twoeksfalsey is 0.187885 +1twozeefalsey is 0.976181 +1twohatfalsey is 0.749551 +1twopanfalsey is 0.952618 + +mlr put -q print $*; print $*; print {}; print ./reg_test/input/abixy +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + +{is-a-map} +{is-a-map} +{is-a-map} + + +mlr put -q printn $*; printn $*; printn {}; print ./reg_test/input/abixy +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} +{is-a-map}{is-a-map}{is-a-map} + + +================================================================ +ABSENT/EMPTY + +mlr put -q @sum += $x; end{emitp @sum} ./reg_test/input/abixy +sum=4.536294 + +mlr put -q @sum[$a] += $x; end{emitp @sum, "a"} ./reg_test/input/abixy +a=pan,sum=0.849416 +a=eks,sum=1.751863 +a=wye,sum=0.777892 +a=zee,sum=1.125680 +a=hat,sum=0.031442 + +mlr put $nonesuch = @nonesuch ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr put -q @sum += $x; end{emitp @sum} ./reg_test/input/abixy-het +sum=3.963005 + +mlr put -q @sum[$a] += $x; end{emitp @sum, "a"} ./reg_test/input/abixy-het +a=pan,sum=0.849416 +a=eks,sum=1.751863 +a=zee,sum=1.125680 + +mlr put $nonesuch = @nonesuch ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr put -q @sum += $x; @sumtype = typeof(@sum); @xtype = typeof($x); emitf @sumtype, @xtype, @sum; end{emitp @sum} ./reg_test/input/abixy +sumtype=float,xtype=float,sum=0.346790 +sumtype=float,xtype=float,sum=1.105470 +sumtype=float,xtype=float,sum=1.310073 +sumtype=float,xtype=float,sum=1.691473 +sumtype=float,xtype=float,sum=2.264762 +sumtype=float,xtype=float,sum=2.791888 +sumtype=float,xtype=float,sum=3.403672 +sumtype=float,xtype=float,sum=4.002226 +sumtype=float,xtype=float,sum=4.033668 +sumtype=float,xtype=float,sum=4.536294 +sum=4.536294 + +mlr put -q @sum += $x; @sumtype = typeof(@sum); @xtype = typeof($x); emitf @sumtype, @xtype, @sum; end{emitp @sum} ./reg_test/input/abixy-het +sumtype=float,xtype=float,sum=0.346790 +sumtype=float,xtype=float,sum=1.105470 +sumtype=float,xtype=float,sum=1.310073 +sumtype=float,xtype=float,sum=1.691473 +sumtype=float,xtype=absent,sum=1.691473 +sumtype=float,xtype=float,sum=2.218599 +sumtype=float,xtype=float,sum=2.830383 +sumtype=float,xtype=float,sum=3.428937 +sumtype=float,xtype=float,sum=3.460379 +sumtype=float,xtype=float,sum=3.963005 +sum=3.963005 + +mlr put $z = $x + $y ./reg_test/input/typeof.dkvp +x=1,y=2,z=3 +x=1,y=,z= +x=,y=2,z= +x=,y=,z= +a=1,y=2,z=2 +a=1,y= +a=,y=2,z=2 +a=,y= +x=1,b=2,z=1 +x=1,b=,z=1 +x=,b=2 +x=,b= + +mlr put $z = $x + $u ./reg_test/input/typeof.dkvp +x=1,y=2,z=1 +x=1,y=,z=1 +x=,y=2 +x=,y= +a=1,y=2 +a=1,y= +a=,y=2 +a=,y= +x=1,b=2,z=1 +x=1,b=,z=1 +x=,b=2 +x=,b= + +mlr put @s = @s + $y; emitp @s ./reg_test/input/typeof.dkvp +s=2 +x=1,y=2 +s= +x=1,y= +s= +x=,y=2 +s= +x=,y= +s= +a=1,y=2 +s= +a=1,y= +s= +a=,y=2 +s= +a=,y= +s= +x=1,b=2 +s= +x=1,b= +s= +x=,b=2 +s= +x=,b= + +mlr put @s = @s + $u; emitp @s ./reg_test/input/typeof.dkvp +x=1,y=2 +x=1,y= +x=,y=2 +x=,y= +a=1,y=2 +a=1,y= +a=,y=2 +a=,y= +x=1,b=2 +x=1,b= +x=,b=2 +x=,b= + +mlr put $z = $x + $y; $x=typeof($x);$y=typeof($y);$z=typeof($z) ./reg_test/input/typeof.dkvp +x=int,y=int,z=int +x=int,y=empty,z=empty +x=empty,y=int,z=empty +x=empty,y=empty,z=empty +a=1,y=int,z=int,x=absent +a=1,y=empty,x=absent,z=absent +a=,y=int,z=int,x=absent +a=,y=empty,x=absent,z=absent +x=int,b=2,z=int,y=absent +x=int,b=,z=int,y=absent +x=empty,b=2,y=absent,z=absent +x=empty,b=,y=absent,z=absent + +mlr put $z = $x + $u; $x=typeof($x);$y=typeof($y);$z=typeof($z) ./reg_test/input/typeof.dkvp +x=int,y=int,z=int +x=int,y=empty,z=int +x=empty,y=int,z=absent +x=empty,y=empty,z=absent +a=1,y=int,x=absent,z=absent +a=1,y=empty,x=absent,z=absent +a=,y=int,x=absent,z=absent +a=,y=empty,x=absent,z=absent +x=int,b=2,z=int,y=absent +x=int,b=,z=int,y=absent +x=empty,b=2,y=absent,z=absent +x=empty,b=,y=absent,z=absent + +mlr put @s = @s + $y; $x=typeof($x);$y=typeof($y);$z=typeof($z);$s=typeof(@s) ./reg_test/input/typeof.dkvp +x=int,y=int,z=absent,s=int +x=int,y=empty,z=absent,s=empty +x=empty,y=int,z=absent,s=empty +x=empty,y=empty,z=absent,s=empty +a=1,y=int,x=absent,z=absent,s=empty +a=1,y=empty,x=absent,z=absent,s=empty +a=,y=int,x=absent,z=absent,s=empty +a=,y=empty,x=absent,z=absent,s=empty +x=int,b=2,y=absent,z=absent,s=empty +x=int,b=,y=absent,z=absent,s=empty +x=empty,b=2,y=absent,z=absent,s=empty +x=empty,b=,y=absent,z=absent,s=empty + +mlr put @s = @s + $u; $x=typeof($x);$y=typeof($y);$z=typeof($z);$s=typeof(@s) ./reg_test/input/typeof.dkvp +x=int,y=int,z=absent,s=absent +x=int,y=empty,z=absent,s=absent +x=empty,y=int,z=absent,s=absent +x=empty,y=empty,z=absent,s=absent +a=1,y=int,x=absent,z=absent,s=absent +a=1,y=empty,x=absent,z=absent,s=absent +a=,y=int,x=absent,z=absent,s=absent +a=,y=empty,x=absent,z=absent,s=absent +x=int,b=2,y=absent,z=absent,s=absent +x=int,b=,y=absent,z=absent,s=absent +x=empty,b=2,y=absent,z=absent,s=absent +x=empty,b=,y=absent,z=absent,s=absent + +mlr cat +x=1 +x= +x=7 + +mlr --ofs tab put $osum=@sum; $ostype=typeof(@sum);$xtype=typeof($x);@sum+=$x; $nstype=typeof(@sum);$nsum=@sum; end { emit @sum } +x=1 ostype=absent xtype=int nstype=int nsum=1 +x= osum=1 ostype=int xtype=empty nstype=empty nsum= +x=7 osum= ostype=empty xtype=int nstype=empty nsum= +sum= + +mlr --ofs tab put $osum=@sum; $ostype=typeof(@sum);$xtype=typeof($x);is_present($x){@sum+=$x}; $nstype=typeof(@sum);$nsum=@sum; end { emit @sum } +x=1 ostype=absent xtype=int nstype=int nsum=1 +x= osum=1 ostype=int xtype=empty nstype=empty nsum= +x=7 osum= ostype=empty xtype=int nstype=empty nsum= +sum= + +mlr cat +x=1 +xxx= +x=7 + +mlr --ofs tab put $osum=@sum; $ostype=typeof(@sum);$xtype=typeof($x);@sum+=$x; $nstype=typeof(@sum);$nsum=@sum; end { emit @sum } +x=1 ostype=absent xtype=int nstype=int nsum=1 +xxx= osum=1 ostype=int xtype=absent nstype=int nsum=1 +x=7 osum=1 ostype=int xtype=int nstype=int nsum=8 +sum=8 + +mlr --ofs tab put $osum=@sum; $ostype=typeof(@sum);$xtype=typeof($x);is_present($x){@sum+=$x}; $nstype=typeof(@sum);$nsum=@sum; end { emit @sum } +x=1 ostype=absent xtype=int nstype=int nsum=1 +xxx= osum=1 ostype=int xtype=absent nstype=int nsum=1 +x=7 osum=1 ostype=int xtype=int nstype=int nsum=8 +sum=8 + +mlr cat +x=1 +x= +y= +x=7 + +mlr --ofs tab put $xtype=typeof($x);$sum = $x + 10; $stype=typeof($sum) +x=1 xtype=int sum=11 stype=int +x= xtype=empty sum= stype=empty +y= xtype=absent sum=10 stype=int +x=7 xtype=int sum=17 stype=int + +mlr --ofs tab put $xtype=typeof($x);$sum = is_present($x) ? $x + 10 : 999; $stype=typeof($sum) +x=1 xtype=int sum=11 stype=int +x= xtype=empty sum= stype=empty +y= xtype=absent sum=999 stype=int +x=7 xtype=int sum=17 stype=int + + +================================================================ +MAP-VARIANT DUMPS + +mlr --from ./reg_test/input/abixy-het put -q dump {"a"."b":$a.$b} +{ + "ab": "panpan" +} +{ + "ab": "ekspan" +} +{ + "ab": "wye" +} +{ + "ab": "eks" +} +{ + "ab": "wyepan" +} +{ + "ab": "zeepan" +} +{ + "ab": "ekszee" +} +{ + "ab": "zeewye" +} +{ + "ab": +} +{ + "ab": "panwye" +} + +mlr --from ./reg_test/input/abixy-het put -q func f(a, b) { return {"a"."b":a.b} } dump f($a, $b) +{ + "ab": "panpan" +} +{ + "ab": "ekspan" +} +{ + "ab": "wye" +} +{ + "ab": "eks" +} +{ + "ab": "wyepan" +} +{ + "ab": "zeepan" +} +{ + "ab": "ekszee" +} +{ + "ab": "zeewye" +} +{ + "ab": +} +{ + "ab": "panwye" +} + + +================================================================ +PARAMETERIZED EMIT + +mlr put -q @sum[$a] = $x; end{ emitp @sum; } ./reg_test/input/abixy +sum:pan=0.502626,sum:eks=0.611784,sum:wye=0.573289,sum:zee=0.598554,sum:hat=0.031442 + +mlr put -q @sum[$a] = $x; end{ emitp @sum,"a"; } ./reg_test/input/abixy +a=pan,sum=0.502626 +a=eks,sum=0.611784 +a=wye,sum=0.573289 +a=zee,sum=0.598554 +a=hat,sum=0.031442 + +mlr put -q @sum[$a] = $x; end{ emitp @sum,"a","b"; } ./reg_test/input/abixy +a=pan,sum=0.502626 +a=eks,sum=0.611784 +a=wye,sum=0.573289 +a=zee,sum=0.598554 +a=hat,sum=0.031442 + +mlr put -q @sum[$a][$b] = $x; end{ emitp @sum; } ./reg_test/input/abixy +sum:pan:pan=0.346790,sum:pan:wye=0.502626,sum:eks:pan=0.758680,sum:eks:wye=0.381399,sum:eks:zee=0.611784,sum:wye:wye=0.204603,sum:wye:pan=0.573289,sum:zee:pan=0.527126,sum:zee:wye=0.598554,sum:hat:wye=0.031442 + +mlr put -q @sum[$a][$b] = $x; end{ emitp @sum,"a"; } ./reg_test/input/abixy +a=pan,sum:pan=0.346790,sum:wye=0.502626 +a=eks,sum:pan=0.758680,sum:wye=0.381399,sum:zee=0.611784 +a=wye,sum:wye=0.204603,sum:pan=0.573289 +a=zee,sum:pan=0.527126,sum:wye=0.598554 +a=hat,sum:wye=0.031442 + +mlr put -q @sum[$a][$b] = $x; end{ emitp @sum,"a","b"; } ./reg_test/input/abixy +a=pan,b=pan,sum=0.346790 +a=pan,b=wye,sum=0.502626 +a=eks,b=pan,sum=0.758680 +a=eks,b=wye,sum=0.381399 +a=eks,b=zee,sum=0.611784 +a=wye,b=wye,sum=0.204603 +a=wye,b=pan,sum=0.573289 +a=zee,b=pan,sum=0.527126 +a=zee,b=wye,sum=0.598554 +a=hat,b=wye,sum=0.031442 + +mlr put -q @v = $a; end {emitf @v } ./reg_test/input/abixy +v=pan + +mlr put -q @v = $i; end {emitf @v } ./reg_test/input/abixy +v=10 + +mlr put -q @v = $x; end {emitf @v } ./reg_test/input/abixy +v=0.502626 + +mlr put -q @v = $nonesuch; end {emitf @v } ./reg_test/input/abixy +v= + +mlr put -q @v = $a; end {emitp @v } ./reg_test/input/abixy +v=pan + +mlr put -q @v = $i; end {emitp @v } ./reg_test/input/abixy +v=10 + +mlr put -q @v = $x; end {emitp @v } ./reg_test/input/abixy +v=0.502626 + +mlr put -q @v = $nonesuch; end {emitp @v } ./reg_test/input/abixy + +mlr put -q @sum += $i; end {emitf @sum } ./reg_test/input/abixy +sum=55 + +mlr put -q @sum += $x; end {emitf @sum } ./reg_test/input/abixy +sum=4.536294 + +mlr put -q @sum += $nonesuch; end {emitf @sum } ./reg_test/input/abixy +sum= + +mlr put -q @sum += $i; end {emitp @sum } ./reg_test/input/abixy +sum=55 + +mlr put -q @sum += $x; end {emitp @sum } ./reg_test/input/abixy +sum=4.536294 + +mlr put -q @sum += $nonesuch; end {emitp @sum } ./reg_test/input/abixy + +mlr put -q @sum += $i; end {emitp @sum, "extra" } ./reg_test/input/abixy +sum=55 + +mlr put -q @sum += $x; end {emitp @sum, "extra" } ./reg_test/input/abixy +sum=4.536294 + +mlr put -q @sum += $nonesuch; end {emitp @sum, "extra" } ./reg_test/input/abixy + +mlr put -q @sum[$a] += $i; end {emitp @sum } ./reg_test/input/abixy +sum:pan=11,sum:eks=13,sum:wye=8,sum:zee=14,sum:hat=9 + +mlr put -q @sum[$a] += $x; end {emitp @sum } ./reg_test/input/abixy +sum:pan=0.849416,sum:eks=1.751863,sum:wye=0.777892,sum:zee=1.125680,sum:hat=0.031442 + +mlr put -q @sum[$a] += $nonesuch; end {emitp @sum } ./reg_test/input/abixy + +mlr put -q @sum[$a] += $i; end {emitp @sum, "a" } ./reg_test/input/abixy +a=pan,sum=11 +a=eks,sum=13 +a=wye,sum=8 +a=zee,sum=14 +a=hat,sum=9 + +mlr put -q @sum[$a] += $x; end {emitp @sum, "a" } ./reg_test/input/abixy +a=pan,sum=0.849416 +a=eks,sum=1.751863 +a=wye,sum=0.777892 +a=zee,sum=1.125680 +a=hat,sum=0.031442 + +mlr put -q @sum[$a] += $nonesuch; end {emitp @sum, "a" } ./reg_test/input/abixy + +mlr put -q @sum[$a] += $i; end {emitp @sum, "a", "extra" } ./reg_test/input/abixy +a=pan,sum=11 +a=eks,sum=13 +a=wye,sum=8 +a=zee,sum=14 +a=hat,sum=9 + +mlr put -q @sum[$a] += $x; end {emitp @sum, "a", "extra" } ./reg_test/input/abixy +a=pan,sum=0.849416 +a=eks,sum=1.751863 +a=wye,sum=0.777892 +a=zee,sum=1.125680 +a=hat,sum=0.031442 + +mlr put -q @sum[$a] += $nonesuch; end {emitp @sum, "a", "extra" } ./reg_test/input/abixy + +mlr put -q @sum[$a][$b] += $i; end {emitp @sum } ./reg_test/input/abixy +sum:pan:pan=1,sum:pan:wye=10,sum:eks:pan=2,sum:eks:wye=4,sum:eks:zee=7,sum:wye:wye=3,sum:wye:pan=5,sum:zee:pan=6,sum:zee:wye=8,sum:hat:wye=9 + +mlr put -q @sum[$a][$b] += $x; end {emitp @sum } ./reg_test/input/abixy +sum:pan:pan=0.346790,sum:pan:wye=0.502626,sum:eks:pan=0.758680,sum:eks:wye=0.381399,sum:eks:zee=0.611784,sum:wye:wye=0.204603,sum:wye:pan=0.573289,sum:zee:pan=0.527126,sum:zee:wye=0.598554,sum:hat:wye=0.031442 + +mlr put -q @sum[$a][$b] += $nonesuch; end {emitp @sum } ./reg_test/input/abixy + +mlr put -q @sum[$a][$b] += $i; end {emitp @sum, "a" } ./reg_test/input/abixy +a=pan,sum:pan=1,sum:wye=10 +a=eks,sum:pan=2,sum:wye=4,sum:zee=7 +a=wye,sum:wye=3,sum:pan=5 +a=zee,sum:pan=6,sum:wye=8 +a=hat,sum:wye=9 + +mlr put -q @sum[$a][$b] += $x; end {emitp @sum, "a" } ./reg_test/input/abixy +a=pan,sum:pan=0.346790,sum:wye=0.502626 +a=eks,sum:pan=0.758680,sum:wye=0.381399,sum:zee=0.611784 +a=wye,sum:wye=0.204603,sum:pan=0.573289 +a=zee,sum:pan=0.527126,sum:wye=0.598554 +a=hat,sum:wye=0.031442 + +mlr put -q @sum[$a][$b] += $nonesuch; end {emitp @sum, "a" } ./reg_test/input/abixy + +mlr put -q @sum[$a][$b] += $i; end {emitp @sum, "a", "b" } ./reg_test/input/abixy +a=pan,b=pan,sum=1 +a=pan,b=wye,sum=10 +a=eks,b=pan,sum=2 +a=eks,b=wye,sum=4 +a=eks,b=zee,sum=7 +a=wye,b=wye,sum=3 +a=wye,b=pan,sum=5 +a=zee,b=pan,sum=6 +a=zee,b=wye,sum=8 +a=hat,b=wye,sum=9 + +mlr put -q @sum[$a][$b] += $x; end {emitp @sum, "a", "b" } ./reg_test/input/abixy +a=pan,b=pan,sum=0.346790 +a=pan,b=wye,sum=0.502626 +a=eks,b=pan,sum=0.758680 +a=eks,b=wye,sum=0.381399 +a=eks,b=zee,sum=0.611784 +a=wye,b=wye,sum=0.204603 +a=wye,b=pan,sum=0.573289 +a=zee,b=pan,sum=0.527126 +a=zee,b=wye,sum=0.598554 +a=hat,b=wye,sum=0.031442 + +mlr put -q @sum[$a][$b] += $nonesuch; end {emitp @sum, "a", "b" } ./reg_test/input/abixy + +mlr put -q @sum[$a][$b] += $i; end {emitp @sum, "a", "b", "extra" } ./reg_test/input/abixy +a=pan,b=pan,sum=1 +a=pan,b=wye,sum=10 +a=eks,b=pan,sum=2 +a=eks,b=wye,sum=4 +a=eks,b=zee,sum=7 +a=wye,b=wye,sum=3 +a=wye,b=pan,sum=5 +a=zee,b=pan,sum=6 +a=zee,b=wye,sum=8 +a=hat,b=wye,sum=9 + +mlr put -q @sum[$a][$b] += $x; end {emitp @sum, "a", "b", "extra" } ./reg_test/input/abixy +a=pan,b=pan,sum=0.346790 +a=pan,b=wye,sum=0.502626 +a=eks,b=pan,sum=0.758680 +a=eks,b=wye,sum=0.381399 +a=eks,b=zee,sum=0.611784 +a=wye,b=wye,sum=0.204603 +a=wye,b=pan,sum=0.573289 +a=zee,b=pan,sum=0.527126 +a=zee,b=wye,sum=0.598554 +a=hat,b=wye,sum=0.031442 + +mlr put -q @sum[$a][$b] += $nonesuch; end {emitp @sum, "a", "b", "extra" } ./reg_test/input/abixy + +mlr --oxtab put -q @sum[$a][$b] += $i; NR == 3 { @x = $x }; NR == 7 { @v = $* }; end {emitp all} ./reg_test/input/abixy-het +sum:pan:pan 1 +sum:pan:wye 10 +sum:eks:pan 2 +sum:wye:pan 5 +sum:zee:pan 6 +sum:zee:wye 8 + +x 0.204603 + +v:a eks +v:b zee +v:iii 7 +v:x 0.6117840605678454 +v:y 0.1878849191181694 + +mlr --opprint put -q @v[NR]=$*; end{emitp @v} ./reg_test/input/abixy +v:1:a v:1:b v:1:i v:1:x v:1:y v:2:a v:2:b v:2:i v:2:x v:2:y v:3:a v:3:b v:3:i v:3:x v:3:y v:4:a v:4:b v:4:i v:4:x v:4:y v:5:a v:5:b v:5:i v:5:x v:5:y v:6:a v:6:b v:6:i v:6:x v:6:y v:7:a v:7:b v:7:i v:7:x v:7:y v:8:a v:8:b v:8:i v:8:x v:8:y v:9:a v:9:b v:9:i v:9:x v:9:y v:10:a v:10:b v:10:i v:10:x v:10:y +pan pan 1 0.3467901443380824 0.7268028627434533 eks pan 2 0.7586799647899636 0.5221511083334797 wye wye 3 0.20460330576630303 0.33831852551664776 eks wye 4 0.38139939387114097 0.13418874328430463 wye pan 5 0.5732889198020006 0.8636244699032729 zee pan 6 0.5271261600918548 0.49322128674835697 eks zee 7 0.6117840605678454 0.1878849191181694 zee wye 8 0.5985540091064224 0.976181385699006 hat wye 9 0.03144187646093577 0.7495507603507059 pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put -q @v[NR]=$*; end{emitp @v,"X"} ./reg_test/input/abixy +X v:a v:b v:i v:x v:y +1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 eks pan 2 0.7586799647899636 0.5221511083334797 +3 wye wye 3 0.20460330576630303 0.33831852551664776 +4 eks wye 4 0.38139939387114097 0.13418874328430463 +5 wye pan 5 0.5732889198020006 0.8636244699032729 +6 zee pan 6 0.5271261600918548 0.49322128674835697 +7 eks zee 7 0.6117840605678454 0.1878849191181694 +8 zee wye 8 0.5985540091064224 0.976181385699006 +9 hat wye 9 0.03144187646093577 0.7495507603507059 +10 pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint put -q @v[NR]=$*; end{emitp @v[1]} ./reg_test/input/abixy +v:a v:b v:i v:x v:y +pan pan 1 0.3467901443380824 0.7268028627434533 + +mlr --opprint put -q @v[NR]=$*; end{emitp @v[1],"X"} ./reg_test/input/abixy +X v +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +mlr --opprint put -q @v[NR]=$*; end{emitp @v[1],"X","Y"} ./reg_test/input/abixy +X v +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +mlr --opprint put -q @v[NR][NR]=$*; end{emitp @v[1]} ./reg_test/input/abixy +v:1:a v:1:b v:1:i v:1:x v:1:y +pan pan 1 0.3467901443380824 0.7268028627434533 + +mlr --opprint put -q @v[NR][NR]=$*; end{emitp @v[1],"X"} ./reg_test/input/abixy +X v:a v:b v:i v:x v:y +1 pan pan 1 0.3467901443380824 0.7268028627434533 + +mlr --opprint put -q @v[NR][NR]=$*; end{emitp @v[1],"X","Y"} ./reg_test/input/abixy +X Y v +1 a pan +1 b pan +1 i 1 +1 x 0.3467901443380824 +1 y 0.7268028627434533 + +mlr --opprint put -q @v[NR][NR]=$*; end{emitp @v[1][1]} ./reg_test/input/abixy +v:a v:b v:i v:x v:y +pan pan 1 0.3467901443380824 0.7268028627434533 + +mlr --opprint put -q @v[NR][NR]=$*; end{emitp @v[1][1],"X"} ./reg_test/input/abixy +X v +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +mlr --opprint put -q @v[NR][NR]=$*; end{emitp @v[1][1],"X","Y"} ./reg_test/input/abixy +X v +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +mlr put -q @a=$a; @b[1]=$b; @c[1][2]=$x; end{emitp all} ./reg_test/input/abixy-het +a=pan +b:1=wye +c:1:2=0.502626 + +mlr put -q @a=$a; @b[1]=$b; @c[1][2]=$x; end{emitp all,"one"} ./reg_test/input/abixy-het +a=pan +one=1,b=wye +one=1,c:2=0.502626 + +mlr put -q @a=$a; @b[1]=$b; @c[1][2]=$x; end{emitp all,"one","two"} ./reg_test/input/abixy-het +a=pan +one=1,b=wye +one=1,two=2,c=0.502626 + +mlr put -q @a=$a; @b[1]=$b; @c[1][2]=$x; end{emitp all,"one","two","three"} ./reg_test/input/abixy-het +a=pan +one=1,b=wye +one=1,two=2,c=0.502626 + +mlr --oxtab put --oflatsep @ -q @a=$a; @b[1]=$b; @c[1][2]=$x; end{emitp all} ./reg_test/input/abixy-het +a pan + +b@1 wye + +c@1@2 0.502626 + + +================================================================ +PREFIXED/UNPREFIXED EMIT + +mlr --oxtab put -q @sum += $x; end{dump;emitp @sum } ./reg_test/input/abixy-wide +{ + "sum": 1009.118181 +} +sum 1009.118181 + +mlr --oxtab put -q @sum += $x; end{dump;emit @sum } ./reg_test/input/abixy-wide +{ + "sum": 1009.118181 +} +sum 1009.118181 + +mlr --oxtab put -q @sum[$a] += $x; end{dump;emitp @sum } ./reg_test/input/abixy-wide +{ + "sum": { + "cat": 207.843964, + "pan": 191.530740, + "wye": 188.110135, + "dog": 215.541519, + "hat": 206.091824 + } +} +sum:cat 207.843964 +sum:pan 191.530740 +sum:wye 188.110135 +sum:dog 215.541519 +sum:hat 206.091824 + +mlr --oxtab put -q @sum[$a] += $x; end{dump;emit @sum } ./reg_test/input/abixy-wide +{ + "sum": { + "cat": 207.843964, + "pan": 191.530740, + "wye": 188.110135, + "dog": 215.541519, + "hat": 206.091824 + } +} +cat 207.843964 +pan 191.530740 +wye 188.110135 +dog 215.541519 +hat 206.091824 + +mlr --oxtab put -q @sum[$a] += $x; end{dump;emitp @sum, "a"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": 207.843964, + "pan": 191.530740, + "wye": 188.110135, + "dog": 215.541519, + "hat": 206.091824 + } +} +a cat +sum 207.843964 + +a pan +sum 191.530740 + +a wye +sum 188.110135 + +a dog +sum 215.541519 + +a hat +sum 206.091824 + +mlr --oxtab put -q @sum[$a] += $x; end{dump;emit @sum, "a"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": 207.843964, + "pan": 191.530740, + "wye": 188.110135, + "dog": 215.541519, + "hat": 206.091824 + } +} +a cat +sum 207.843964 + +a pan +sum 191.530740 + +a wye +sum 188.110135 + +a dog +sum 215.541519 + +a hat +sum 206.091824 + +mlr --oxtab put -q @sum[$a][$b] += $x; end{dump;emitp @sum } ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": 42.327158, + "hat": 43.184410, + "dog": 39.241473, + "wye": 45.196775, + "cat": 37.894148 + }, + "pan": { + "wye": 40.135300, + "pan": 36.226334, + "hat": 35.115869, + "dog": 37.817560, + "cat": 42.235677 + }, + "wye": { + "cat": 40.805723, + "hat": 41.166697, + "dog": 40.619547, + "wye": 32.490973, + "pan": 33.027196 + }, + "dog": { + "hat": 43.515162, + "pan": 45.614011, + "dog": 43.545956, + "wye": 37.223795, + "cat": 45.642595 + }, + "hat": { + "hat": 48.058897, + "wye": 34.054270, + "pan": 42.538758, + "cat": 44.325655, + "dog": 37.114244 + } + } +} +sum:cat:pan 42.327158 +sum:cat:hat 43.184410 +sum:cat:dog 39.241473 +sum:cat:wye 45.196775 +sum:cat:cat 37.894148 +sum:pan:wye 40.135300 +sum:pan:pan 36.226334 +sum:pan:hat 35.115869 +sum:pan:dog 37.817560 +sum:pan:cat 42.235677 +sum:wye:cat 40.805723 +sum:wye:hat 41.166697 +sum:wye:dog 40.619547 +sum:wye:wye 32.490973 +sum:wye:pan 33.027196 +sum:dog:hat 43.515162 +sum:dog:pan 45.614011 +sum:dog:dog 43.545956 +sum:dog:wye 37.223795 +sum:dog:cat 45.642595 +sum:hat:hat 48.058897 +sum:hat:wye 34.054270 +sum:hat:pan 42.538758 +sum:hat:cat 44.325655 +sum:hat:dog 37.114244 + +mlr --oxtab put -q @sum[$a][$b] += $x; end{dump;emit @sum } ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": 42.327158, + "hat": 43.184410, + "dog": 39.241473, + "wye": 45.196775, + "cat": 37.894148 + }, + "pan": { + "wye": 40.135300, + "pan": 36.226334, + "hat": 35.115869, + "dog": 37.817560, + "cat": 42.235677 + }, + "wye": { + "cat": 40.805723, + "hat": 41.166697, + "dog": 40.619547, + "wye": 32.490973, + "pan": 33.027196 + }, + "dog": { + "hat": 43.515162, + "pan": 45.614011, + "dog": 43.545956, + "wye": 37.223795, + "cat": 45.642595 + }, + "hat": { + "hat": 48.058897, + "wye": 34.054270, + "pan": 42.538758, + "cat": 44.325655, + "dog": 37.114244 + } + } +} +pan 42.327158 +hat 43.184410 +dog 39.241473 +wye 45.196775 +cat 37.894148 + +wye 40.135300 +pan 36.226334 +hat 35.115869 +dog 37.817560 +cat 42.235677 + +cat 40.805723 +hat 41.166697 +dog 40.619547 +wye 32.490973 +pan 33.027196 + +hat 43.515162 +pan 45.614011 +dog 43.545956 +wye 37.223795 +cat 45.642595 + +hat 48.058897 +wye 34.054270 +pan 42.538758 +cat 44.325655 +dog 37.114244 + +mlr --oxtab put -q @sum[$a][$b] += $x; end{dump;emitp @sum, "a"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": 42.327158, + "hat": 43.184410, + "dog": 39.241473, + "wye": 45.196775, + "cat": 37.894148 + }, + "pan": { + "wye": 40.135300, + "pan": 36.226334, + "hat": 35.115869, + "dog": 37.817560, + "cat": 42.235677 + }, + "wye": { + "cat": 40.805723, + "hat": 41.166697, + "dog": 40.619547, + "wye": 32.490973, + "pan": 33.027196 + }, + "dog": { + "hat": 43.515162, + "pan": 45.614011, + "dog": 43.545956, + "wye": 37.223795, + "cat": 45.642595 + }, + "hat": { + "hat": 48.058897, + "wye": 34.054270, + "pan": 42.538758, + "cat": 44.325655, + "dog": 37.114244 + } + } +} +a cat +sum:pan 42.327158 +sum:hat 43.184410 +sum:dog 39.241473 +sum:wye 45.196775 +sum:cat 37.894148 + +a pan +sum:wye 40.135300 +sum:pan 36.226334 +sum:hat 35.115869 +sum:dog 37.817560 +sum:cat 42.235677 + +a wye +sum:cat 40.805723 +sum:hat 41.166697 +sum:dog 40.619547 +sum:wye 32.490973 +sum:pan 33.027196 + +a dog +sum:hat 43.515162 +sum:pan 45.614011 +sum:dog 43.545956 +sum:wye 37.223795 +sum:cat 45.642595 + +a hat +sum:hat 48.058897 +sum:wye 34.054270 +sum:pan 42.538758 +sum:cat 44.325655 +sum:dog 37.114244 + +mlr --oxtab put -q @sum[$a][$b] += $x; end{dump;emit @sum, "a"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": 42.327158, + "hat": 43.184410, + "dog": 39.241473, + "wye": 45.196775, + "cat": 37.894148 + }, + "pan": { + "wye": 40.135300, + "pan": 36.226334, + "hat": 35.115869, + "dog": 37.817560, + "cat": 42.235677 + }, + "wye": { + "cat": 40.805723, + "hat": 41.166697, + "dog": 40.619547, + "wye": 32.490973, + "pan": 33.027196 + }, + "dog": { + "hat": 43.515162, + "pan": 45.614011, + "dog": 43.545956, + "wye": 37.223795, + "cat": 45.642595 + }, + "hat": { + "hat": 48.058897, + "wye": 34.054270, + "pan": 42.538758, + "cat": 44.325655, + "dog": 37.114244 + } + } +} +a cat +pan 42.327158 +hat 43.184410 +dog 39.241473 +wye 45.196775 +cat 37.894148 + +a pan +wye 40.135300 +pan 36.226334 +hat 35.115869 +dog 37.817560 +cat 42.235677 + +a wye +cat 40.805723 +hat 41.166697 +dog 40.619547 +wye 32.490973 +pan 33.027196 + +a dog +hat 43.515162 +pan 45.614011 +dog 43.545956 +wye 37.223795 +cat 45.642595 + +a hat +hat 48.058897 +wye 34.054270 +pan 42.538758 +cat 44.325655 +dog 37.114244 + +mlr --opprint put -q @sum[$a][$b] += $x; end{dump;emitp @sum, "a", "b"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": 42.327158, + "hat": 43.184410, + "dog": 39.241473, + "wye": 45.196775, + "cat": 37.894148 + }, + "pan": { + "wye": 40.135300, + "pan": 36.226334, + "hat": 35.115869, + "dog": 37.817560, + "cat": 42.235677 + }, + "wye": { + "cat": 40.805723, + "hat": 41.166697, + "dog": 40.619547, + "wye": 32.490973, + "pan": 33.027196 + }, + "dog": { + "hat": 43.515162, + "pan": 45.614011, + "dog": 43.545956, + "wye": 37.223795, + "cat": 45.642595 + }, + "hat": { + "hat": 48.058897, + "wye": 34.054270, + "pan": 42.538758, + "cat": 44.325655, + "dog": 37.114244 + } + } +} +a b sum +cat pan 42.327158 +cat hat 43.184410 +cat dog 39.241473 +cat wye 45.196775 +cat cat 37.894148 +pan wye 40.135300 +pan pan 36.226334 +pan hat 35.115869 +pan dog 37.817560 +pan cat 42.235677 +wye cat 40.805723 +wye hat 41.166697 +wye dog 40.619547 +wye wye 32.490973 +wye pan 33.027196 +dog hat 43.515162 +dog pan 45.614011 +dog dog 43.545956 +dog wye 37.223795 +dog cat 45.642595 +hat hat 48.058897 +hat wye 34.054270 +hat pan 42.538758 +hat cat 44.325655 +hat dog 37.114244 + +mlr --opprint put -q @sum[$a][$b] += $x; end{dump;emit @sum, "a", "b"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": 42.327158, + "hat": 43.184410, + "dog": 39.241473, + "wye": 45.196775, + "cat": 37.894148 + }, + "pan": { + "wye": 40.135300, + "pan": 36.226334, + "hat": 35.115869, + "dog": 37.817560, + "cat": 42.235677 + }, + "wye": { + "cat": 40.805723, + "hat": 41.166697, + "dog": 40.619547, + "wye": 32.490973, + "pan": 33.027196 + }, + "dog": { + "hat": 43.515162, + "pan": 45.614011, + "dog": 43.545956, + "wye": 37.223795, + "cat": 45.642595 + }, + "hat": { + "hat": 48.058897, + "wye": 34.054270, + "pan": 42.538758, + "cat": 44.325655, + "dog": 37.114244 + } + } +} +a b sum +cat pan 42.327158 +cat hat 43.184410 +cat dog 39.241473 +cat wye 45.196775 +cat cat 37.894148 +pan wye 40.135300 +pan pan 36.226334 +pan hat 35.115869 +pan dog 37.817560 +pan cat 42.235677 +wye cat 40.805723 +wye hat 41.166697 +wye dog 40.619547 +wye wye 32.490973 +wye pan 33.027196 +dog hat 43.515162 +dog pan 45.614011 +dog dog 43.545956 +dog wye 37.223795 +dog cat 45.642595 +hat hat 48.058897 +hat wye 34.054270 +hat pan 42.538758 +hat cat 44.325655 +hat dog 37.114244 + +mlr --oxtab put -q @sum[$a][$b][$a.$b] += $x; end{dump;emitp @sum } ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": { + "catpan": 42.327158 + }, + "hat": { + "cathat": 43.184410 + }, + "dog": { + "catdog": 39.241473 + }, + "wye": { + "catwye": 45.196775 + }, + "cat": { + "catcat": 37.894148 + } + }, + "pan": { + "wye": { + "panwye": 40.135300 + }, + "pan": { + "panpan": 36.226334 + }, + "hat": { + "panhat": 35.115869 + }, + "dog": { + "pandog": 37.817560 + }, + "cat": { + "pancat": 42.235677 + } + }, + "wye": { + "cat": { + "wyecat": 40.805723 + }, + "hat": { + "wyehat": 41.166697 + }, + "dog": { + "wyedog": 40.619547 + }, + "wye": { + "wyewye": 32.490973 + }, + "pan": { + "wyepan": 33.027196 + } + }, + "dog": { + "hat": { + "doghat": 43.515162 + }, + "pan": { + "dogpan": 45.614011 + }, + "dog": { + "dogdog": 43.545956 + }, + "wye": { + "dogwye": 37.223795 + }, + "cat": { + "dogcat": 45.642595 + } + }, + "hat": { + "hat": { + "hathat": 48.058897 + }, + "wye": { + "hatwye": 34.054270 + }, + "pan": { + "hatpan": 42.538758 + }, + "cat": { + "hatcat": 44.325655 + }, + "dog": { + "hatdog": 37.114244 + } + } + } +} +sum:cat:pan:catpan 42.327158 +sum:cat:hat:cathat 43.184410 +sum:cat:dog:catdog 39.241473 +sum:cat:wye:catwye 45.196775 +sum:cat:cat:catcat 37.894148 +sum:pan:wye:panwye 40.135300 +sum:pan:pan:panpan 36.226334 +sum:pan:hat:panhat 35.115869 +sum:pan:dog:pandog 37.817560 +sum:pan:cat:pancat 42.235677 +sum:wye:cat:wyecat 40.805723 +sum:wye:hat:wyehat 41.166697 +sum:wye:dog:wyedog 40.619547 +sum:wye:wye:wyewye 32.490973 +sum:wye:pan:wyepan 33.027196 +sum:dog:hat:doghat 43.515162 +sum:dog:pan:dogpan 45.614011 +sum:dog:dog:dogdog 43.545956 +sum:dog:wye:dogwye 37.223795 +sum:dog:cat:dogcat 45.642595 +sum:hat:hat:hathat 48.058897 +sum:hat:wye:hatwye 34.054270 +sum:hat:pan:hatpan 42.538758 +sum:hat:cat:hatcat 44.325655 +sum:hat:dog:hatdog 37.114244 + +mlr --oxtab put -q @sum[$a][$b][$a.$b] += $x; end{dump;emit @sum } ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": { + "catpan": 42.327158 + }, + "hat": { + "cathat": 43.184410 + }, + "dog": { + "catdog": 39.241473 + }, + "wye": { + "catwye": 45.196775 + }, + "cat": { + "catcat": 37.894148 + } + }, + "pan": { + "wye": { + "panwye": 40.135300 + }, + "pan": { + "panpan": 36.226334 + }, + "hat": { + "panhat": 35.115869 + }, + "dog": { + "pandog": 37.817560 + }, + "cat": { + "pancat": 42.235677 + } + }, + "wye": { + "cat": { + "wyecat": 40.805723 + }, + "hat": { + "wyehat": 41.166697 + }, + "dog": { + "wyedog": 40.619547 + }, + "wye": { + "wyewye": 32.490973 + }, + "pan": { + "wyepan": 33.027196 + } + }, + "dog": { + "hat": { + "doghat": 43.515162 + }, + "pan": { + "dogpan": 45.614011 + }, + "dog": { + "dogdog": 43.545956 + }, + "wye": { + "dogwye": 37.223795 + }, + "cat": { + "dogcat": 45.642595 + } + }, + "hat": { + "hat": { + "hathat": 48.058897 + }, + "wye": { + "hatwye": 34.054270 + }, + "pan": { + "hatpan": 42.538758 + }, + "cat": { + "hatcat": 44.325655 + }, + "dog": { + "hatdog": 37.114244 + } + } + } +} +catpan 42.327158 + +cathat 43.184410 + +catdog 39.241473 + +catwye 45.196775 + +catcat 37.894148 + +panwye 40.135300 + +panpan 36.226334 + +panhat 35.115869 + +pandog 37.817560 + +pancat 42.235677 + +wyecat 40.805723 + +wyehat 41.166697 + +wyedog 40.619547 + +wyewye 32.490973 + +wyepan 33.027196 + +doghat 43.515162 + +dogpan 45.614011 + +dogdog 43.545956 + +dogwye 37.223795 + +dogcat 45.642595 + +hathat 48.058897 + +hatwye 34.054270 + +hatpan 42.538758 + +hatcat 44.325655 + +hatdog 37.114244 + +mlr --oxtab put -q @sum[$a][$b][$a.$b] += $x; end{dump;emitp @sum, "a"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": { + "catpan": 42.327158 + }, + "hat": { + "cathat": 43.184410 + }, + "dog": { + "catdog": 39.241473 + }, + "wye": { + "catwye": 45.196775 + }, + "cat": { + "catcat": 37.894148 + } + }, + "pan": { + "wye": { + "panwye": 40.135300 + }, + "pan": { + "panpan": 36.226334 + }, + "hat": { + "panhat": 35.115869 + }, + "dog": { + "pandog": 37.817560 + }, + "cat": { + "pancat": 42.235677 + } + }, + "wye": { + "cat": { + "wyecat": 40.805723 + }, + "hat": { + "wyehat": 41.166697 + }, + "dog": { + "wyedog": 40.619547 + }, + "wye": { + "wyewye": 32.490973 + }, + "pan": { + "wyepan": 33.027196 + } + }, + "dog": { + "hat": { + "doghat": 43.515162 + }, + "pan": { + "dogpan": 45.614011 + }, + "dog": { + "dogdog": 43.545956 + }, + "wye": { + "dogwye": 37.223795 + }, + "cat": { + "dogcat": 45.642595 + } + }, + "hat": { + "hat": { + "hathat": 48.058897 + }, + "wye": { + "hatwye": 34.054270 + }, + "pan": { + "hatpan": 42.538758 + }, + "cat": { + "hatcat": 44.325655 + }, + "dog": { + "hatdog": 37.114244 + } + } + } +} +a cat +sum:pan:catpan 42.327158 +sum:hat:cathat 43.184410 +sum:dog:catdog 39.241473 +sum:wye:catwye 45.196775 +sum:cat:catcat 37.894148 + +a pan +sum:wye:panwye 40.135300 +sum:pan:panpan 36.226334 +sum:hat:panhat 35.115869 +sum:dog:pandog 37.817560 +sum:cat:pancat 42.235677 + +a wye +sum:cat:wyecat 40.805723 +sum:hat:wyehat 41.166697 +sum:dog:wyedog 40.619547 +sum:wye:wyewye 32.490973 +sum:pan:wyepan 33.027196 + +a dog +sum:hat:doghat 43.515162 +sum:pan:dogpan 45.614011 +sum:dog:dogdog 43.545956 +sum:wye:dogwye 37.223795 +sum:cat:dogcat 45.642595 + +a hat +sum:hat:hathat 48.058897 +sum:wye:hatwye 34.054270 +sum:pan:hatpan 42.538758 +sum:cat:hatcat 44.325655 +sum:dog:hatdog 37.114244 + +mlr --oxtab put -q @sum[$a][$b][$a.$b] += $x; end{dump;emit @sum, "a"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": { + "catpan": 42.327158 + }, + "hat": { + "cathat": 43.184410 + }, + "dog": { + "catdog": 39.241473 + }, + "wye": { + "catwye": 45.196775 + }, + "cat": { + "catcat": 37.894148 + } + }, + "pan": { + "wye": { + "panwye": 40.135300 + }, + "pan": { + "panpan": 36.226334 + }, + "hat": { + "panhat": 35.115869 + }, + "dog": { + "pandog": 37.817560 + }, + "cat": { + "pancat": 42.235677 + } + }, + "wye": { + "cat": { + "wyecat": 40.805723 + }, + "hat": { + "wyehat": 41.166697 + }, + "dog": { + "wyedog": 40.619547 + }, + "wye": { + "wyewye": 32.490973 + }, + "pan": { + "wyepan": 33.027196 + } + }, + "dog": { + "hat": { + "doghat": 43.515162 + }, + "pan": { + "dogpan": 45.614011 + }, + "dog": { + "dogdog": 43.545956 + }, + "wye": { + "dogwye": 37.223795 + }, + "cat": { + "dogcat": 45.642595 + } + }, + "hat": { + "hat": { + "hathat": 48.058897 + }, + "wye": { + "hatwye": 34.054270 + }, + "pan": { + "hatpan": 42.538758 + }, + "cat": { + "hatcat": 44.325655 + }, + "dog": { + "hatdog": 37.114244 + } + } + } +} +a cat +catpan 42.327158 + +a cat +cathat 43.184410 + +a cat +catdog 39.241473 + +a cat +catwye 45.196775 + +a cat +catcat 37.894148 + +a pan +panwye 40.135300 + +a pan +panpan 36.226334 + +a pan +panhat 35.115869 + +a pan +pandog 37.817560 + +a pan +pancat 42.235677 + +a wye +wyecat 40.805723 + +a wye +wyehat 41.166697 + +a wye +wyedog 40.619547 + +a wye +wyewye 32.490973 + +a wye +wyepan 33.027196 + +a dog +doghat 43.515162 + +a dog +dogpan 45.614011 + +a dog +dogdog 43.545956 + +a dog +dogwye 37.223795 + +a dog +dogcat 45.642595 + +a hat +hathat 48.058897 + +a hat +hatwye 34.054270 + +a hat +hatpan 42.538758 + +a hat +hatcat 44.325655 + +a hat +hatdog 37.114244 + +mlr --opprint put -q @sum[$a][$b][$a.$b] += $x; end{dump;emitp @sum, "a", "b"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": { + "catpan": 42.327158 + }, + "hat": { + "cathat": 43.184410 + }, + "dog": { + "catdog": 39.241473 + }, + "wye": { + "catwye": 45.196775 + }, + "cat": { + "catcat": 37.894148 + } + }, + "pan": { + "wye": { + "panwye": 40.135300 + }, + "pan": { + "panpan": 36.226334 + }, + "hat": { + "panhat": 35.115869 + }, + "dog": { + "pandog": 37.817560 + }, + "cat": { + "pancat": 42.235677 + } + }, + "wye": { + "cat": { + "wyecat": 40.805723 + }, + "hat": { + "wyehat": 41.166697 + }, + "dog": { + "wyedog": 40.619547 + }, + "wye": { + "wyewye": 32.490973 + }, + "pan": { + "wyepan": 33.027196 + } + }, + "dog": { + "hat": { + "doghat": 43.515162 + }, + "pan": { + "dogpan": 45.614011 + }, + "dog": { + "dogdog": 43.545956 + }, + "wye": { + "dogwye": 37.223795 + }, + "cat": { + "dogcat": 45.642595 + } + }, + "hat": { + "hat": { + "hathat": 48.058897 + }, + "wye": { + "hatwye": 34.054270 + }, + "pan": { + "hatpan": 42.538758 + }, + "cat": { + "hatcat": 44.325655 + }, + "dog": { + "hatdog": 37.114244 + } + } + } +} +a b sum:catpan +cat pan 42.327158 + +a b sum:cathat +cat hat 43.184410 + +a b sum:catdog +cat dog 39.241473 + +a b sum:catwye +cat wye 45.196775 + +a b sum:catcat +cat cat 37.894148 + +a b sum:panwye +pan wye 40.135300 + +a b sum:panpan +pan pan 36.226334 + +a b sum:panhat +pan hat 35.115869 + +a b sum:pandog +pan dog 37.817560 + +a b sum:pancat +pan cat 42.235677 + +a b sum:wyecat +wye cat 40.805723 + +a b sum:wyehat +wye hat 41.166697 + +a b sum:wyedog +wye dog 40.619547 + +a b sum:wyewye +wye wye 32.490973 + +a b sum:wyepan +wye pan 33.027196 + +a b sum:doghat +dog hat 43.515162 + +a b sum:dogpan +dog pan 45.614011 + +a b sum:dogdog +dog dog 43.545956 + +a b sum:dogwye +dog wye 37.223795 + +a b sum:dogcat +dog cat 45.642595 + +a b sum:hathat +hat hat 48.058897 + +a b sum:hatwye +hat wye 34.054270 + +a b sum:hatpan +hat pan 42.538758 + +a b sum:hatcat +hat cat 44.325655 + +a b sum:hatdog +hat dog 37.114244 + +mlr --opprint put -q @sum[$a][$b][$a.$b] += $x; end{dump;emit @sum, "a", "b"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": { + "catpan": 42.327158 + }, + "hat": { + "cathat": 43.184410 + }, + "dog": { + "catdog": 39.241473 + }, + "wye": { + "catwye": 45.196775 + }, + "cat": { + "catcat": 37.894148 + } + }, + "pan": { + "wye": { + "panwye": 40.135300 + }, + "pan": { + "panpan": 36.226334 + }, + "hat": { + "panhat": 35.115869 + }, + "dog": { + "pandog": 37.817560 + }, + "cat": { + "pancat": 42.235677 + } + }, + "wye": { + "cat": { + "wyecat": 40.805723 + }, + "hat": { + "wyehat": 41.166697 + }, + "dog": { + "wyedog": 40.619547 + }, + "wye": { + "wyewye": 32.490973 + }, + "pan": { + "wyepan": 33.027196 + } + }, + "dog": { + "hat": { + "doghat": 43.515162 + }, + "pan": { + "dogpan": 45.614011 + }, + "dog": { + "dogdog": 43.545956 + }, + "wye": { + "dogwye": 37.223795 + }, + "cat": { + "dogcat": 45.642595 + } + }, + "hat": { + "hat": { + "hathat": 48.058897 + }, + "wye": { + "hatwye": 34.054270 + }, + "pan": { + "hatpan": 42.538758 + }, + "cat": { + "hatcat": 44.325655 + }, + "dog": { + "hatdog": 37.114244 + } + } + } +} +a b catpan +cat pan 42.327158 + +a b cathat +cat hat 43.184410 + +a b catdog +cat dog 39.241473 + +a b catwye +cat wye 45.196775 + +a b catcat +cat cat 37.894148 + +a b panwye +pan wye 40.135300 + +a b panpan +pan pan 36.226334 + +a b panhat +pan hat 35.115869 + +a b pandog +pan dog 37.817560 + +a b pancat +pan cat 42.235677 + +a b wyecat +wye cat 40.805723 + +a b wyehat +wye hat 41.166697 + +a b wyedog +wye dog 40.619547 + +a b wyewye +wye wye 32.490973 + +a b wyepan +wye pan 33.027196 + +a b doghat +dog hat 43.515162 + +a b dogpan +dog pan 45.614011 + +a b dogdog +dog dog 43.545956 + +a b dogwye +dog wye 37.223795 + +a b dogcat +dog cat 45.642595 + +a b hathat +hat hat 48.058897 + +a b hatwye +hat wye 34.054270 + +a b hatpan +hat pan 42.538758 + +a b hatcat +hat cat 44.325655 + +a b hatdog +hat dog 37.114244 + +mlr --opprint put -q @sum[$a][$b][$a.$b] += $x; end{dump;emitp @sum, "a", "b", "ab"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": { + "catpan": 42.327158 + }, + "hat": { + "cathat": 43.184410 + }, + "dog": { + "catdog": 39.241473 + }, + "wye": { + "catwye": 45.196775 + }, + "cat": { + "catcat": 37.894148 + } + }, + "pan": { + "wye": { + "panwye": 40.135300 + }, + "pan": { + "panpan": 36.226334 + }, + "hat": { + "panhat": 35.115869 + }, + "dog": { + "pandog": 37.817560 + }, + "cat": { + "pancat": 42.235677 + } + }, + "wye": { + "cat": { + "wyecat": 40.805723 + }, + "hat": { + "wyehat": 41.166697 + }, + "dog": { + "wyedog": 40.619547 + }, + "wye": { + "wyewye": 32.490973 + }, + "pan": { + "wyepan": 33.027196 + } + }, + "dog": { + "hat": { + "doghat": 43.515162 + }, + "pan": { + "dogpan": 45.614011 + }, + "dog": { + "dogdog": 43.545956 + }, + "wye": { + "dogwye": 37.223795 + }, + "cat": { + "dogcat": 45.642595 + } + }, + "hat": { + "hat": { + "hathat": 48.058897 + }, + "wye": { + "hatwye": 34.054270 + }, + "pan": { + "hatpan": 42.538758 + }, + "cat": { + "hatcat": 44.325655 + }, + "dog": { + "hatdog": 37.114244 + } + } + } +} +a b ab sum +cat pan catpan 42.327158 +cat hat cathat 43.184410 +cat dog catdog 39.241473 +cat wye catwye 45.196775 +cat cat catcat 37.894148 +pan wye panwye 40.135300 +pan pan panpan 36.226334 +pan hat panhat 35.115869 +pan dog pandog 37.817560 +pan cat pancat 42.235677 +wye cat wyecat 40.805723 +wye hat wyehat 41.166697 +wye dog wyedog 40.619547 +wye wye wyewye 32.490973 +wye pan wyepan 33.027196 +dog hat doghat 43.515162 +dog pan dogpan 45.614011 +dog dog dogdog 43.545956 +dog wye dogwye 37.223795 +dog cat dogcat 45.642595 +hat hat hathat 48.058897 +hat wye hatwye 34.054270 +hat pan hatpan 42.538758 +hat cat hatcat 44.325655 +hat dog hatdog 37.114244 + +mlr --opprint put -q @sum[$a][$b][$a.$b] += $x; end{dump;emit @sum, "a", "b", "ab"} ./reg_test/input/abixy-wide +{ + "sum": { + "cat": { + "pan": { + "catpan": 42.327158 + }, + "hat": { + "cathat": 43.184410 + }, + "dog": { + "catdog": 39.241473 + }, + "wye": { + "catwye": 45.196775 + }, + "cat": { + "catcat": 37.894148 + } + }, + "pan": { + "wye": { + "panwye": 40.135300 + }, + "pan": { + "panpan": 36.226334 + }, + "hat": { + "panhat": 35.115869 + }, + "dog": { + "pandog": 37.817560 + }, + "cat": { + "pancat": 42.235677 + } + }, + "wye": { + "cat": { + "wyecat": 40.805723 + }, + "hat": { + "wyehat": 41.166697 + }, + "dog": { + "wyedog": 40.619547 + }, + "wye": { + "wyewye": 32.490973 + }, + "pan": { + "wyepan": 33.027196 + } + }, + "dog": { + "hat": { + "doghat": 43.515162 + }, + "pan": { + "dogpan": 45.614011 + }, + "dog": { + "dogdog": 43.545956 + }, + "wye": { + "dogwye": 37.223795 + }, + "cat": { + "dogcat": 45.642595 + } + }, + "hat": { + "hat": { + "hathat": 48.058897 + }, + "wye": { + "hatwye": 34.054270 + }, + "pan": { + "hatpan": 42.538758 + }, + "cat": { + "hatcat": 44.325655 + }, + "dog": { + "hatdog": 37.114244 + } + } + } +} +a b ab sum +cat pan catpan 42.327158 +cat hat cathat 43.184410 +cat dog catdog 39.241473 +cat wye catwye 45.196775 +cat cat catcat 37.894148 +pan wye panwye 40.135300 +pan pan panpan 36.226334 +pan hat panhat 35.115869 +pan dog pandog 37.817560 +pan cat pancat 42.235677 +wye cat wyecat 40.805723 +wye hat wyehat 41.166697 +wye dog wyedog 40.619547 +wye wye wyewye 32.490973 +wye pan wyepan 33.027196 +dog hat doghat 43.515162 +dog pan dogpan 45.614011 +dog dog dogdog 43.545956 +dog wye dogwye 37.223795 +dog cat dogcat 45.642595 +hat hat hathat 48.058897 +hat wye hatwye 34.054270 +hat pan hatpan 42.538758 +hat cat hatcat 44.325655 +hat dog hatdog 37.114244 + +mlr --oxtab head -n 2 then put -q @v = $*; end{dump;emitp @v} ./reg_test/input/abixy +{ + "v": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } +} +v:a eks +v:b pan +v:i 2 +v:x 0.7586799647899636 +v:y 0.5221511083334797 + +mlr --oxtab head -n 2 then put -q @v = $*; end{dump;emit @v} ./reg_test/input/abixy +{ + "v": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } +} +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +mlr --oxtab head -n 2 then put -q @v[NR] = $*; end{dump;emitp @v } ./reg_test/input/abixy +{ + "v": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + }, + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } +} +v:1:a pan +v:1:b pan +v:1:i 1 +v:1:x 0.3467901443380824 +v:1:y 0.7268028627434533 +v:2:a eks +v:2:b pan +v:2:i 2 +v:2:x 0.7586799647899636 +v:2:y 0.5221511083334797 + +mlr --oxtab head -n 2 then put -q @v[NR] = $*; end{dump;emit @v } ./reg_test/input/abixy +{ + "v": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + }, + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } +} +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR] = $*; end{dump;emitp @v, "I"} ./reg_test/input/abixy +{ + "v": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + }, + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } +} +I v:a v:b v:i v:x v:y +1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR] = $*; end{dump;emit @v, "I"} ./reg_test/input/abixy +{ + "v": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + }, + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } +} +I a b i x y +1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --oxtab head -n 2 then put -q @v[NR][NR] = $*; end{dump;emitp @v } ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + }, + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } +} +v:1:1:a pan +v:1:1:b pan +v:1:1:i 1 +v:1:1:x 0.3467901443380824 +v:1:1:y 0.7268028627434533 +v:2:2:a eks +v:2:2:b pan +v:2:2:i 2 +v:2:2:x 0.7586799647899636 +v:2:2:y 0.5221511083334797 + +mlr --oxtab head -n 2 then put -q @v[NR][NR] = $*; end{dump;emit @v } ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + }, + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } +} +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR] = $*; end{dump;emitp @v, "I"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + }, + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } +} +I v:1:a v:1:b v:1:i v:1:x v:1:y +1 pan pan 1 0.3467901443380824 0.7268028627434533 + +I v:2:a v:2:b v:2:i v:2:x v:2:y +2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR] = $*; end{dump;emit @v, "I"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + }, + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } +} +I a b i x y +1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR] = $*; end{dump;emitp @v, "I", "J"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + }, + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } +} +I J v:a v:b v:i v:x v:y +1 1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR] = $*; end{dump;emit @v, "I", "J"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + }, + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } +} +I J a b i x y +1 1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --oxtab head -n 2 then put -q @v[NR][NR][NR] = $*; end{dump;emitp @v } ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + } + }, + "2": { + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } + } +} +v:1:1:1:a pan +v:1:1:1:b pan +v:1:1:1:i 1 +v:1:1:1:x 0.3467901443380824 +v:1:1:1:y 0.7268028627434533 +v:2:2:2:a eks +v:2:2:2:b pan +v:2:2:2:i 2 +v:2:2:2:x 0.7586799647899636 +v:2:2:2:y 0.5221511083334797 + +mlr --oxtab head -n 2 then put -q @v[NR][NR][NR] = $*; end{dump;emit @v } ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + } + }, + "2": { + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } + } +} +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR][NR] = $*; end{dump;emitp @v, "I"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + } + }, + "2": { + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } + } +} +I v:1:1:a v:1:1:b v:1:1:i v:1:1:x v:1:1:y +1 pan pan 1 0.3467901443380824 0.7268028627434533 + +I v:2:2:a v:2:2:b v:2:2:i v:2:2:x v:2:2:y +2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR][NR] = $*; end{dump;emit @v, "I"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + } + }, + "2": { + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } + } +} +I a b i x y +1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR][NR] = $*; end{dump;emitp @v, "I", "J"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + } + }, + "2": { + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } + } +} +I J v:1:a v:1:b v:1:i v:1:x v:1:y +1 1 pan pan 1 0.3467901443380824 0.7268028627434533 + +I J v:2:a v:2:b v:2:i v:2:x v:2:y +2 2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR][NR] = $*; end{dump;emit @v, "I", "J"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + } + }, + "2": { + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } + } +} +I J a b i x y +1 1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR][NR] = $*; end{dump;emitp @v, "I", "J", "K"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + } + }, + "2": { + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } + } +} +I J K v:a v:b v:i v:x v:y +1 1 1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 2 2 eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr --opprint head -n 2 then put -q @v[NR][NR][NR] = $*; end{dump;emit @v, "I", "J", "K"} ./reg_test/input/abixy +{ + "v": { + "1": { + "1": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } + } + }, + "2": { + "2": { + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } + } + } +} +I J K a b i x y +1 1 1 pan pan 1 0.3467901443380824 0.7268028627434533 +2 2 2 eks pan 2 0.7586799647899636 0.5221511083334797 + + +================================================================ +LASHED EMITP SINGLES + +mlr -n put end { + @a = 111; + emitp @a +} +a=111 + +mlr -n put end { + @a = 111; + emitp (@a) +} +a=111 + +mlr -n put end { + @a[111] = 222; + emitp @a, "s" +} +s=111,a=222 + +mlr -n put end { + @a[111] = 222; + emitp (@a), "s" +} +s=111,a=222 + +mlr -n put end { + @a[111] = 222; + @a[333] = 444; + emitp @a, "s" +} +s=111,a=222 +s=333,a=444 + +mlr -n put end { + @a[111] = 222; + @a[333] = 444; + emitp (@a), "s" +} +s=111,a=222 +s=333,a=444 + +mlr -n put end { + @a[111][222] = 333; + emitp @a, "s" +} +s=111,a:222=333 + +mlr -n put end { + @a[111][222] = 333; + emitp (@a), "s" +} +s=111,a:222=333 + +mlr -n put end { + @a[111][222] = 333; + @a[444][555] = 666; + emitp @a, "s" +} +s=111,a:222=333 +s=444,a:555=666 + +mlr -n put end { + @a[111][222] = 333; + @a[444][555] = 666; + emitp (@a), "s" +} +s=111,a:222=333 +s=444,a:555=666 + +mlr -n put end { + @a[111][222] = 333; + emitp @a, "s", "t" +} +s=111,t=222,a=333 + +mlr -n put end { + @a[111][222] = 333; + emitp (@a), "s", "t" +} +s=111,t=222,a=333 + +mlr -n put end { + @a[111][222] = 333; + emitp @a[111], "t" +} +t=222,a=333 + +mlr -n put end { + @a[111][222] = 333; + emitp (@a[111]), "t" +} +t=222,a=333 + + +================================================================ +LASHED EMIT SINGLES + +mlr -n put end { + @a = 111; + emit @a +} +a=111 + +mlr -n put end { + @a = 111; + emit (@a) +} +a=111 + +mlr -n put end { + @a[111] = 222; + emit @a, "s" +} +s=111,a=222 + +mlr -n put end { + @a[111] = 222; + emit (@a), "s" +} +s=111,a=222 + +mlr -n put end { + @a[111] = 222; + @a[333] = 444; + emit @a, "s" +} +s=111,a=222 +s=333,a=444 + +mlr -n put end { + @a[111] = 222; + @a[333] = 444; + emit (@a), "s" +} +s=111,a=222 +s=333,a=444 + +mlr -n put end { + @a[111][222] = 333; + emit @a, "s" +} +s=111,222=333 + +mlr -n put end { + @a[111][222] = 333; + emit (@a), "s" +} +s=111,222=333 + + +================================================================ +LASHED EMITP PAIRS + +mlr -n put end { + @a = 111; + @b = 222; + emitp (@a, @b) +} +a=111,b=222 + +mlr -n put end { + @a[1] = 111; + @b[1] = 222; + emitp (@a[1], @b[1]) +} +a=111,b=222 + +mlr -n put end { + @a[1][2][3] = 4; + @b[1][2][3] = 8; + emitp (@a, @b), "s", "t", "u" +} +s=1,t=2,u=3,a=4,b=8 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emitp (@a[1], @b[5]), "t", "u" +} +t=2,u=3,a=4,b=8 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][6][3] = 8; + emitp (@a[1][2], @b[5][6]), "u" +} +u=3,a=4,b=8 + + +================================================================ +LASHED EMIT PAIRS + +mlr -n put end { + @a = 111; + @b = 222; + emit (@a, @b) +} +a=111,b=222 + +mlr -n put end { + @a[1] = 111; + @b[1] = 222; + emit (@a[1], @b[1]) +} +a=111,b=222 + +mlr -n put end { + @a[1][2][3] = 4; + @b[1][2][3] = 8; + emit (@a, @b), "s", "t", "u" +} +s=1,t=2,u=3,a=4,b=8 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emit (@a[1], @b[5]), "t", "u" +} +t=2,u=3,a=4,b=8 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][6][3] = 8; + emit (@a[1][2], @b[5][6]), "u" +} +u=3,a=4,b=8 + + +================================================================ +LASHED EMIT WITH VARYING DEPTH + +mlr -n put end { + @a[1][1] = 1; + @a[1][2] = 2; + @a[2][1] = 3; + @a[2][2] = 4; + @b[1][1] = 5; + @b[1][2] = 6; + @b[2][1] = 7; + @b[2][2] = 8; + emit (@a[1], @b[2]), "t" +} +t=1,a=1,b=7 +t=2,a=2,b=8 + +mlr -n put end { + @a[1][1] = 1; + @a[1][2] = 2; + @a[2][1] = 3; + @a[2][2] = 4; + @b[1][1] = 5; + @b[1][2] = 6; + @b[2][1] = 7; + @b[2][2] = 8; + emit (@a, @b), "s", "t" +} +s=1,t=1,a=1,b=5 +s=1,t=2,a=2,b=6 +s=2,t=1,a=3,b=7 +s=2,t=2,a=4,b=8 + +mlr -n put end { + @a[1][1] = 1; + @a[1][2] = 2; + @a[2][1] = 3; + @a[2][2] = 4; + @a[3] = 10; + @a[4] = 11; + @a[5][6][7] = 12; + @b[1][1] = 5; + @b[1][2] = 6; + @b[2][1] = 7; + @b[2][2] = 8; + emit (@a, @b), "s", "t" +} +s=1,t=1,a=1,b=5 +s=1,t=2,a=2,b=6 +s=2,t=1,a=3,b=7 +s=2,t=2,a=4,b=8 +s=3,a=10 +s=4,a=11 +s=5,t=6,7=12 + +mlr -n put end { + @a[1][1] = 1; + @a[1][2] = 2; + @a[2][1] = 3; + @a[2][2] = 4; + @a[3] = 10; + @a[4] = 11; + @a[5][6][7] = 12; + @b[1][1] = 5; + @b[1][2] = 6; + @b[2][1] = 7; + @b[2][2] = 8; + emit (@b, @a), "s", "t" +} +s=1,t=1,b=5,a=1 +s=1,t=2,b=6,a=2 +s=2,t=1,b=7,a=3 +s=2,t=2,b=8,a=4 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emit (@a[1], @b[3]), "t", "u" +} +t=2,u=3,a=4 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emit (@a[1][2], @b[5][9]), "t", "u" +} +t=3,a=4 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emit (@a[1][2], @b[9][2]), "t", "u" +} +t=3,a=4 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emit (@a[9], @b[5]), "t", "u" +} + + +================================================================ +LASHED EMITP WITH VARYING DEPTH + +mlr -n put end { + @a[1][1] = 1; + @a[1][2] = 2; + @a[2][1] = 3; + @a[2][2] = 4; + @b[1][1] = 5; + @b[1][2] = 6; + @b[2][1] = 7; + @b[2][2] = 8; + emitp (@a[1], @b[2]), "t" +} +t=1,a=1,b=7 +t=2,a=2,b=8 + +mlr -n put end { + @a[1][1] = 1; + @a[1][2] = 2; + @a[2][1] = 3; + @a[2][2] = 4; + @b[1][1] = 5; + @b[1][2] = 6; + @b[2][1] = 7; + @b[2][2] = 8; + emitp (@a, @b), "s", "t" +} +s=1,t=1,a=1,b=5 +s=1,t=2,a=2,b=6 +s=2,t=1,a=3,b=7 +s=2,t=2,a=4,b=8 + +mlr -n put end { + @a[1][1] = 1; + @a[1][2] = 2; + @a[2][1] = 3; + @a[2][2] = 4; + @a[3] = 10; + @a[4] = 11; + @a[5][6][7] = 12; + @b[1][1] = 5; + @b[1][2] = 6; + @b[2][1] = 7; + @b[2][2] = 8; + emitp (@a, @b), "s", "t" +} +s=1,t=1,a=1,b=5 +s=1,t=2,a=2,b=6 +s=2,t=1,a=3,b=7 +s=2,t=2,a=4,b=8 +s=3,a=10 +s=4,a=11 +s=5,t=6,a:7=12 + +mlr -n put end { + @a[1][1] = 1; + @a[1][2] = 2; + @a[2][1] = 3; + @a[2][2] = 4; + @a[3] = 10; + @a[4] = 11; + @a[5][6][7] = 12; + @b[1][1] = 5; + @b[1][2] = 6; + @b[2][1] = 7; + @b[2][2] = 8; + emitp (@b, @a), "s", "t" +} +s=1,t=1,b=5,a=1 +s=1,t=2,b=6,a=2 +s=2,t=1,b=7,a=3 +s=2,t=2,b=8,a=4 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emitp (@a[1], @b[3]), "t", "u" +} +t=2,u=3,a=4 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emitp (@a[1][2], @b[5][9]), "t", "u" +} +t=3,a=4 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emitp (@a[1][2], @b[9][2]), "t", "u" +} +t=3,a=4 + +mlr -n put end { + @a[1][2][3] = 4; + @b[5][2][3] = 8; + emitp (@a[9], @b[5]), "t", "u" +} + + +================================================================ +CANONICAL LASHED EMIT + +mlr --from ./reg_test/input/abixy-wide --opprint put -q + @count[$a] += 1; + @sum[$a] += $x; + end { + for (a, c in @count) { + @mean[a] = @sum[a] / @count[a] + } + emit (@sum, @count, @mean), "a" + } + +a sum count mean +cat 207.843964 413 0.503254 +pan 191.530740 384 0.498778 +wye 188.110135 370 0.508406 +dog 215.541519 424 0.508353 +hat 206.091824 409 0.503892 + +mlr --from ./reg_test/input/abixy-wide --opprint put -q + @count[$a][$b] += 1; + @sum[$a][$b] += $x; + end { + for ((a, b), c in @count) { + @mean[a][b] = @sum[a][b] / @count[a][b] + } + emit (@sum, @count, @mean), "a", "b" + } + +a b sum count mean +cat pan 42.327158 89 0.475586 +cat hat 43.184410 90 0.479827 +cat dog 39.241473 78 0.503096 +cat wye 45.196775 77 0.586971 +cat cat 37.894148 79 0.479673 +pan wye 40.135300 78 0.514555 +pan pan 36.226334 77 0.470472 +pan hat 35.115869 67 0.524117 +pan dog 37.817560 73 0.518049 +pan cat 42.235677 89 0.474558 +wye cat 40.805723 74 0.551429 +wye hat 41.166697 87 0.473180 +wye dog 40.619547 76 0.534468 +wye wye 32.490973 67 0.484940 +wye pan 33.027196 66 0.500412 +dog hat 43.515162 88 0.494490 +dog pan 45.614011 87 0.524299 +dog dog 43.545956 87 0.500528 +dog wye 37.223795 79 0.471187 +dog cat 45.642595 83 0.549911 +hat hat 48.058897 88 0.546124 +hat wye 34.054270 70 0.486490 +hat pan 42.538758 85 0.500456 +hat cat 44.325655 88 0.503701 +hat dog 37.114244 78 0.475824 + + +================================================================ +MAP-VARIANT EMITS + +mlr --from ./reg_test/input/abixy-het --opprint put -q o=$a.$b; emit o +o +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +- +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q o={"ab":$a.$b}; emit o +ab +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +- +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o=$a.$b; emit @o +o +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +zeewye +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o={"ab":$a.$b}; emit @o +ab +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +- +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o=$a.$b; emit @* +o +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +zeewye +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o={"ab":$a.$b}; emit @* +ab +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +- +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q emit $a.$b +mlr DSL: syntax error at "$a" +mlr put: syntax error on DSL parse of 'emit $a.$b' + +mlr --from ./reg_test/input/abixy-het --opprint put -q emit {"ab":$a.$b} +ab +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +- +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a,b) { return a.b } o = f($a, $b); emit o +o +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +- +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a,b) { return a.b } emit f($a, $b) + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a,b) { return {"ab": a.b} } o = f($a, $b); emit o +ab +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +- +panwye + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a,b) { return {"ab": a.b} } emit f($a, $b) +ab +panpan +ekspan +wye +eks +wyepan +zeepan +ekszee +zeewye +- +panwye + + +================================================================ +MAP-VARIANT LASHED EMITS + + +---------------------------------------------------------------- scalar lashed emits +mlr --from ./reg_test/input/abixy-het --opprint put -q emit ($a . "_" . $b, $x . "_" . $y) +mlr DSL: syntax error at "$a" +mlr put: syntax error on DSL parse of 'emit ($a . "_" . $b, $x . "_" . $y)' + +mlr --from ./reg_test/input/abixy-het --opprint put -q o = $a . "_" . $b; p = $x . "_" . $y; emit (o, p) +o p +pan_pan 0.346790_0.726803 +eks_pan 0.758680_0.522151 +_wye 0.204603_0.338319 +eks_ 0.381399_0.134189 +wye_pan _0.863624 +zee_pan 0.527126_0.493221 +eks_zee 0.611784_0.187885 +zee_wye 0.598554_ +_ 0.031442_0.749551 +pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o = $a . "_" . $b; @p = $x . "_" . $y; emit (@o, @p) +o p +pan_pan 0.346790_0.726803 +eks_pan 0.758680_0.522151 +_wye 0.204603_0.338319 +eks_ 0.381399_0.134189 +wye_pan _0.863624 +zee_pan 0.527126_0.493221 +eks_zee 0.611784_0.187885 +zee_wye 0.598554_ +_ 0.031442_0.749551 +pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return a . "_" . b } o = f($a, $b); p = f($x, $y); emit (o, p) +o p +pan_pan 0.346790_0.726803 +eks_pan 0.758680_0.522151 +_wye 0.204603_0.338319 +eks_ 0.381399_0.134189 +wye_pan _0.863624 +zee_pan 0.527126_0.493221 +eks_zee 0.611784_0.187885 +zee_wye 0.598554_ +_ 0.031442_0.749551 +pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return a . "_" . b } @o = f($a, $b); @p = f($x, $y); emit (@o, @p) +o p +pan_pan 0.346790_0.726803 +eks_pan 0.758680_0.522151 +_wye 0.204603_0.338319 +eks_ 0.381399_0.134189 +wye_pan _0.863624 +zee_pan 0.527126_0.493221 +eks_zee 0.611784_0.187885 +zee_wye 0.598554_ +_ 0.031442_0.749551 +pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return a . "_" . b } emit (f($a, $b), f($x, $y)) +_ +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + + +---------------------------------------------------------------- non-scalar non-keyed lashed emits +mlr --from ./reg_test/input/abixy-het --opprint put -q emit ({"ab": $a . "_" . $b}, {"ab": $x . "_" . $y}) +ab +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q o = {"ab": $a . "_" . $b}; p = {"ab": $x . "_" . $y}; emit (o, p) +ab +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o = {"ab": $a . "_" . $b}; @p = {"ab": $x . "_" . $y}; emit (@o, @p) +ab +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } o = f($a, $b); p = f($x, $y); emit (o, p) +ab +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } @o = f($a, $b); @p = f($x, $y); emit (@o, @p) +ab +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } emit (f($a, $b), f($x, $y)) +ab +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + + +---------------------------------------------------------------- non-scalar non-keyed lashed emits +mlr --from ./reg_test/input/abixy-het --opprint put -q emitp ({"ab": $a . "_" . $b}, {"ab": $x . "_" . $y}) +_:ab +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q o = {"ab": $a . "_" . $b}; p = {"ab": $x . "_" . $y}; emitp (o, p) +o:ab p:ab +pan_pan 0.346790_0.726803 +eks_pan 0.758680_0.522151 +_wye 0.204603_0.338319 +eks_ 0.381399_0.134189 +wye_pan _0.863624 +zee_pan 0.527126_0.493221 +eks_zee 0.611784_0.187885 +zee_wye 0.598554_ +_ 0.031442_0.749551 +pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o = {"ab": $a . "_" . $b}; @p = {"ab": $x . "_" . $y}; emitp (@o, @p) +o:ab p:ab +pan_pan 0.346790_0.726803 +eks_pan 0.758680_0.522151 +_wye 0.204603_0.338319 +eks_ 0.381399_0.134189 +wye_pan _0.863624 +zee_pan 0.527126_0.493221 +eks_zee 0.611784_0.187885 +zee_wye 0.598554_ +_ 0.031442_0.749551 +pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } o = f($a, $b); p = f($x, $y); emitp (o, p) +o:ab p:ab +pan_pan 0.346790_0.726803 +eks_pan 0.758680_0.522151 +_wye 0.204603_0.338319 +eks_ 0.381399_0.134189 +wye_pan _0.863624 +zee_pan 0.527126_0.493221 +eks_zee 0.611784_0.187885 +zee_wye 0.598554_ +_ 0.031442_0.749551 +pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } @o = f($a, $b); @p = f($x, $y); emitp (@o, @p) +o:ab p:ab +pan_pan 0.346790_0.726803 +eks_pan 0.758680_0.522151 +_wye 0.204603_0.338319 +eks_ 0.381399_0.134189 +wye_pan _0.863624 +zee_pan 0.527126_0.493221 +eks_zee 0.611784_0.187885 +zee_wye 0.598554_ +_ 0.031442_0.749551 +pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } emit (f($a, $b), f($x, $y)) +ab +0.346790_0.726803 +0.758680_0.522151 +0.204603_0.338319 +0.381399_0.134189 +_0.863624 +0.527126_0.493221 +0.611784_0.187885 +0.598554_ +0.031442_0.749551 +0.502626_0.952618 + + +---------------------------------------------------------------- non-scalar keyed lashed emits +mlr --from ./reg_test/input/abixy-het --opprint put -q emit ({"ab": $a . "_" . $b}, {"ab": $x . "_" . $y}), "ab" +ab _ +ab 0.346790_0.726803 +ab 0.758680_0.522151 +ab 0.204603_0.338319 +ab 0.381399_0.134189 +ab _0.863624 +ab 0.527126_0.493221 +ab 0.611784_0.187885 +ab 0.598554_ +ab 0.031442_0.749551 +ab 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q o = {"ab": $a . "_" . $b}; p = {"ab": $x . "_" . $y}; emit (o, p), "ab" +ab o p +ab pan_pan 0.346790_0.726803 +ab eks_pan 0.758680_0.522151 +ab _wye 0.204603_0.338319 +ab eks_ 0.381399_0.134189 +ab wye_pan _0.863624 +ab zee_pan 0.527126_0.493221 +ab eks_zee 0.611784_0.187885 +ab zee_wye 0.598554_ +ab _ 0.031442_0.749551 +ab pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o = {"ab": $a . "_" . $b}; @p = {"ab": $x . "_" . $y}; emit (@o, @p), "ab" +ab o p +ab pan_pan 0.346790_0.726803 +ab eks_pan 0.758680_0.522151 +ab _wye 0.204603_0.338319 +ab eks_ 0.381399_0.134189 +ab wye_pan _0.863624 +ab zee_pan 0.527126_0.493221 +ab eks_zee 0.611784_0.187885 +ab zee_wye 0.598554_ +ab _ 0.031442_0.749551 +ab pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } o = f($a, $b); p = f($x, $y); emit (o, p), "ab" +ab o p +ab pan_pan 0.346790_0.726803 +ab eks_pan 0.758680_0.522151 +ab _wye 0.204603_0.338319 +ab eks_ 0.381399_0.134189 +ab wye_pan _0.863624 +ab zee_pan 0.527126_0.493221 +ab eks_zee 0.611784_0.187885 +ab zee_wye 0.598554_ +ab _ 0.031442_0.749551 +ab pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } @o = f($a, $b); @p = f($x, $y); emit (@o, @p), "ab" +ab o p +ab pan_pan 0.346790_0.726803 +ab eks_pan 0.758680_0.522151 +ab _wye 0.204603_0.338319 +ab eks_ 0.381399_0.134189 +ab wye_pan _0.863624 +ab zee_pan 0.527126_0.493221 +ab eks_zee 0.611784_0.187885 +ab zee_wye 0.598554_ +ab _ 0.031442_0.749551 +ab pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } emit (f($a, $b), f($x, $y)), "ab" +ab _ +ab 0.346790_0.726803 +ab 0.758680_0.522151 +ab 0.204603_0.338319 +ab 0.381399_0.134189 +ab _0.863624 +ab 0.527126_0.493221 +ab 0.611784_0.187885 +ab 0.598554_ +ab 0.031442_0.749551 +ab 0.502626_0.952618 + + +---------------------------------------------------------------- non-scalar keyed lashed emits +mlr --from ./reg_test/input/abixy-het --opprint put -q emitp ({"ab": $a . "_" . $b}, {"ab": $x . "_" . $y}), "ab" +ab _ +ab 0.346790_0.726803 +ab 0.758680_0.522151 +ab 0.204603_0.338319 +ab 0.381399_0.134189 +ab _0.863624 +ab 0.527126_0.493221 +ab 0.611784_0.187885 +ab 0.598554_ +ab 0.031442_0.749551 +ab 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q o = {"ab": $a . "_" . $b}; p = {"ab": $x . "_" . $y}; emitp (o, p), "ab" +ab o p +ab pan_pan 0.346790_0.726803 +ab eks_pan 0.758680_0.522151 +ab _wye 0.204603_0.338319 +ab eks_ 0.381399_0.134189 +ab wye_pan _0.863624 +ab zee_pan 0.527126_0.493221 +ab eks_zee 0.611784_0.187885 +ab zee_wye 0.598554_ +ab _ 0.031442_0.749551 +ab pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q @o = {"ab": $a . "_" . $b}; @p = {"ab": $x . "_" . $y}; emitp (@o, @p), "ab" +ab o p +ab pan_pan 0.346790_0.726803 +ab eks_pan 0.758680_0.522151 +ab _wye 0.204603_0.338319 +ab eks_ 0.381399_0.134189 +ab wye_pan _0.863624 +ab zee_pan 0.527126_0.493221 +ab eks_zee 0.611784_0.187885 +ab zee_wye 0.598554_ +ab _ 0.031442_0.749551 +ab pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } o = f($a, $b); p = f($x, $y); emitp (o, p), "ab" +ab o p +ab pan_pan 0.346790_0.726803 +ab eks_pan 0.758680_0.522151 +ab _wye 0.204603_0.338319 +ab eks_ 0.381399_0.134189 +ab wye_pan _0.863624 +ab zee_pan 0.527126_0.493221 +ab eks_zee 0.611784_0.187885 +ab zee_wye 0.598554_ +ab _ 0.031442_0.749551 +ab pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } @o = f($a, $b); @p = f($x, $y); emitp (@o, @p), "ab" +ab o p +ab pan_pan 0.346790_0.726803 +ab eks_pan 0.758680_0.522151 +ab _wye 0.204603_0.338319 +ab eks_ 0.381399_0.134189 +ab wye_pan _0.863624 +ab zee_pan 0.527126_0.493221 +ab eks_zee 0.611784_0.187885 +ab zee_wye 0.598554_ +ab _ 0.031442_0.749551 +ab pan_wye 0.502626_0.952618 + +mlr --from ./reg_test/input/abixy-het --opprint put -q func f(a, b) { return {"ab": a . "_" . b} } emitp (f($a, $b), f($x, $y)), "ab" +ab _ +ab 0.346790_0.726803 +ab 0.758680_0.522151 +ab 0.204603_0.338319 +ab 0.381399_0.134189 +ab _0.863624 +ab 0.527126_0.493221 +ab 0.611784_0.187885 +ab 0.598554_ +ab 0.031442_0.749551 +ab 0.502626_0.952618 + + +================================================================ +MAPPER NOTHING + +mlr cat then nothing + +mlr cat then nothing ./reg_test/input/abixy + +mlr tac then nothing ./reg_test/input/abixy + +mlr cat then nothing ./reg_test/input/abixy ./reg_test/input/abixy + +mlr cat then nothing then cat ./reg_test/input/abixy + + +================================================================ +IN-PLACE PROCESSING + +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp1 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp2 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr -I --opprint head -n 2 /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp1 /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp2 + +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp1 +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 + +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp2 +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 + +mlr -I --opprint head -n 2 +mlr: -I option (in-place operation) requires input files. + +mlr -I --opprint -n head -n 2 /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp1 +mlr: -I option (in-place operation) requires input files. + +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp1 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp2 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr -I --opprint rename a,AYE,b,BEE /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp1 /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp2 + +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp1 +AYE BEE i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/abixy.temp2 +AYE BEE i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + + +================================================================ +MAPPER TEE REDIRECTS + +mlr --from ./reg_test/input/abixy tee ./output-regtest/tee1/out then nothing + +cat ./output-regtest/tee1/out +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy tee --no-fflush ./output-regtest/tee1/out then nothing + +cat ./output-regtest/tee1/out +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy tee -a ./output-regtest/tee1/out then nothing + +cat ./output-regtest/tee1/out +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy tee -o json ./output-regtest/tee1/out then nothing + +cat ./output-regtest/tee1/out +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + + +================================================================ +DSL TEE REDIRECTS + +mlr put -q tee > "./output-regtest/tee2/out.".$a, $* ./reg_test/input/abixy + +cat ./output-regtest/tee2/out.eks +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 + +cat ./output-regtest/tee2/out.hat +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +cat ./output-regtest/tee2/out.pan +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +cat ./output-regtest/tee2/out.wye +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 + +cat ./output-regtest/tee2/out.zee +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 + +mlr put -q --no-fflush tee > "./output-regtest/tee2/out.".$a, $* ./reg_test/input/abixy + +cat ./output-regtest/tee2/out.eks +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 + +cat ./output-regtest/tee2/out.hat +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +cat ./output-regtest/tee2/out.pan +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +cat ./output-regtest/tee2/out.wye +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 + +cat ./output-regtest/tee2/out.zee +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 + +mlr put -q tee >> "./output-regtest/tee2/out.".$a, $* ./reg_test/input/abixy + +cat ./output-regtest/tee2/out.eks +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 + +cat ./output-regtest/tee2/out.hat +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 + +cat ./output-regtest/tee2/out.pan +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +cat ./output-regtest/tee2/out.wye +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 + +cat ./output-regtest/tee2/out.zee +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 + +mlr put -q -o json tee > "./output-regtest/tee2/out.".$a, $* ./reg_test/input/abixy + +cat ./output-regtest/tee2/out.eks +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } + +cat ./output-regtest/tee2/out.hat +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } + +cat ./output-regtest/tee2/out.pan +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +cat ./output-regtest/tee2/out.wye +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } + +cat ./output-regtest/tee2/out.zee +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } + +mlr put -q tee | "tr \[a-z\] \[A-Z\]", $* ./reg_test/input/abixy +A=PAN,B=PAN,I=1,X=0.3467901443380824,Y=0.7268028627434533 +A=EKS,B=PAN,I=2,X=0.7586799647899636,Y=0.5221511083334797 +A=WYE,B=WYE,I=3,X=0.20460330576630303,Y=0.33831852551664776 +A=EKS,B=WYE,I=4,X=0.38139939387114097,Y=0.13418874328430463 +A=WYE,B=PAN,I=5,X=0.5732889198020006,Y=0.8636244699032729 +A=ZEE,B=PAN,I=6,X=0.5271261600918548,Y=0.49322128674835697 +A=EKS,B=ZEE,I=7,X=0.6117840605678454,Y=0.1878849191181694 +A=ZEE,B=WYE,I=8,X=0.5985540091064224,Y=0.976181385699006 +A=HAT,B=WYE,I=9,X=0.03144187646093577,Y=0.7495507603507059 +A=PAN,B=WYE,I=10,X=0.5026260055412137,Y=0.9526183602969864 + +mlr put -q -o json tee | "tr \[a-z\] \[A-Z\]", $* ./reg_test/input/abixy +{ "A": "PAN", "B": "PAN", "I": 1, "X": 0.3467901443380824, "Y": 0.7268028627434533 } +{ "A": "EKS", "B": "PAN", "I": 2, "X": 0.7586799647899636, "Y": 0.5221511083334797 } +{ "A": "WYE", "B": "WYE", "I": 3, "X": 0.20460330576630303, "Y": 0.33831852551664776 } +{ "A": "EKS", "B": "WYE", "I": 4, "X": 0.38139939387114097, "Y": 0.13418874328430463 } +{ "A": "WYE", "B": "PAN", "I": 5, "X": 0.5732889198020006, "Y": 0.8636244699032729 } +{ "A": "ZEE", "B": "PAN", "I": 6, "X": 0.5271261600918548, "Y": 0.49322128674835697 } +{ "A": "EKS", "B": "ZEE", "I": 7, "X": 0.6117840605678454, "Y": 0.1878849191181694 } +{ "A": "ZEE", "B": "WYE", "I": 8, "X": 0.5985540091064224, "Y": 0.976181385699006 } +{ "A": "HAT", "B": "WYE", "I": 9, "X": 0.03144187646093577, "Y": 0.7495507603507059 } +{ "A": "PAN", "B": "WYE", "I": 10, "X": 0.5026260055412137, "Y": 0.9526183602969864 } + +mlr put -q tee > stdout, $* ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +cat ./output-regtest/tee2/err1 + +mlr put -q tee > stderr, $* ./reg_test/input/abixy + +cat ./output-regtest/tee2/err2 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +DSL PRINT REDIRECTS + +mlr put -q print > "./output-regtest/print1/out.".$a, "abi:".$a.$b.$i ./reg_test/input/abixy + +cat ./output-regtest/print1/out.eks +abi:ekspan2 +abi:ekswye4 +abi:ekszee7 + +cat ./output-regtest/print1/out.hat +abi:hatwye9 + +cat ./output-regtest/print1/out.pan +abi:panpan1 +abi:panwye10 + +cat ./output-regtest/print1/out.wye +abi:wyewye3 +abi:wyepan5 + +cat ./output-regtest/print1/out.zee +abi:zeepan6 +abi:zeewye8 + +mlr put -q print > "./output-regtest/print1/out.".$a, "abi:".$a.$b.$i ./reg_test/input/abixy + +cat ./output-regtest/print1/out.eks +abi:ekspan2 +abi:ekswye4 +abi:ekszee7 + +cat ./output-regtest/print1/out.hat +abi:hatwye9 + +cat ./output-regtest/print1/out.pan +abi:panpan1 +abi:panwye10 + +cat ./output-regtest/print1/out.wye +abi:wyewye3 +abi:wyepan5 + +cat ./output-regtest/print1/out.zee +abi:zeepan6 +abi:zeewye8 + +mlr put -q print >> "./output-regtest/print1/out.".$a, "abi:".$a.$b.$i ./reg_test/input/abixy + +cat ./output-regtest/print1/out.eks +abi:ekspan2 +abi:ekswye4 +abi:ekszee7 +abi:ekspan2 +abi:ekswye4 +abi:ekszee7 + +cat ./output-regtest/print1/out.hat +abi:hatwye9 +abi:hatwye9 + +cat ./output-regtest/print1/out.pan +abi:panpan1 +abi:panwye10 +abi:panpan1 +abi:panwye10 + +cat ./output-regtest/print1/out.wye +abi:wyewye3 +abi:wyepan5 +abi:wyewye3 +abi:wyepan5 + +cat ./output-regtest/print1/out.zee +abi:zeepan6 +abi:zeewye8 +abi:zeepan6 +abi:zeewye8 + +mlr put -q print | "tr \[a-z\] \[A-Z\]", "abi:".$a.$b.$i ./reg_test/input/abixy +ABI:PANPAN1 +ABI:EKSPAN2 +ABI:WYEWYE3 +ABI:EKSWYE4 +ABI:WYEPAN5 +ABI:ZEEPAN6 +ABI:EKSZEE7 +ABI:ZEEWYE8 +ABI:HATWYE9 +ABI:PANWYE10 + +mlr put -q print > stdout, "abi:".$a.$b.$i ./reg_test/input/abixy +abi:panpan1 +abi:ekspan2 +abi:wyewye3 +abi:ekswye4 +abi:wyepan5 +abi:zeepan6 +abi:ekszee7 +abi:zeewye8 +abi:hatwye9 +abi:panwye10 + +cat ./output-regtest/print1/err1 + +mlr put -q print > stderr, "abi:".$a.$b.$i ./reg_test/input/abixy + +cat ./output-regtest/print1/err2 +abi:panpan1 +abi:ekspan2 +abi:wyewye3 +abi:ekswye4 +abi:wyepan5 +abi:zeepan6 +abi:ekszee7 +abi:zeewye8 +abi:hatwye9 +abi:panwye10 + + +================================================================ +DSL PRINTN REDIRECTS + +mlr put -q printn > "./output-regtest/printn1/out.".$a, "abi:".$a.$b.$i ./reg_test/input/abixy + +cat ./output-regtest/printn1/out.eks +abi:ekspan2abi:ekswye4abi:ekszee7 +cat ./output-regtest/printn1/out.hat +abi:hatwye9 +cat ./output-regtest/printn1/out.pan +abi:panpan1abi:panwye10 +cat ./output-regtest/printn1/out.wye +abi:wyewye3abi:wyepan5 +cat ./output-regtest/printn1/out.zee +abi:zeepan6abi:zeewye8 +mlr put -q printn > "./output-regtest/printn1/out.".$a, "abi:".$a.$b.$i ./reg_test/input/abixy + +cat ./output-regtest/printn1/out.eks +abi:ekspan2abi:ekswye4abi:ekszee7 +cat ./output-regtest/printn1/out.hat +abi:hatwye9 +cat ./output-regtest/printn1/out.pan +abi:panpan1abi:panwye10 +cat ./output-regtest/printn1/out.wye +abi:wyewye3abi:wyepan5 +cat ./output-regtest/printn1/out.zee +abi:zeepan6abi:zeewye8 +mlr put -q printn >> "./output-regtest/printn1/out.".$a, "abi:".$a.$b.$i ./reg_test/input/abixy + +cat ./output-regtest/printn1/out.eks +abi:ekspan2abi:ekswye4abi:ekszee7abi:ekspan2abi:ekswye4abi:ekszee7 +cat ./output-regtest/printn1/out.hat +abi:hatwye9abi:hatwye9 +cat ./output-regtest/printn1/out.pan +abi:panpan1abi:panwye10abi:panpan1abi:panwye10 +cat ./output-regtest/printn1/out.wye +abi:wyewye3abi:wyepan5abi:wyewye3abi:wyepan5 +cat ./output-regtest/printn1/out.zee +abi:zeepan6abi:zeewye8abi:zeepan6abi:zeewye8 +mlr put -q printn | "tr \[a-z\] \[A-Z\]", "abi:".$a.$b.$i ./reg_test/input/abixy +ABI:PANPAN1ABI:EKSPAN2ABI:WYEWYE3ABI:EKSWYE4ABI:WYEPAN5ABI:ZEEPAN6ABI:EKSZEE7ABI:ZEEWYE8ABI:HATWYE9ABI:PANWYE10 +mlr put -q printn > stdout, "abi:".$a.$b.$i ./reg_test/input/abixy +abi:panpan1abi:ekspan2abi:wyewye3abi:ekswye4abi:wyepan5abi:zeepan6abi:ekszee7abi:zeewye8abi:hatwye9abi:panwye10 +cat ./output-regtest/printn1/err1 + +mlr put -q printn > stderr, "abi:".$a.$b.$i ./reg_test/input/abixy + +cat ./output-regtest/printn1/err2 +abi:panpan1abi:ekspan2abi:wyewye3abi:ekswye4abi:wyepan5abi:zeepan6abi:ekszee7abi:zeewye8abi:hatwye9abi:panwye10 + +================================================================ +DSL DUMP REDIRECTS + +mlr put -q @v=$*; dump > "./output-regtest/dump1/out.".$a ./reg_test/input/abixy + +cat ./output-regtest/dump1/out.eks +{ + "v": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } +} +{ + "v": { + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 + } +} +{ + "v": { + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 + } +} + +cat ./output-regtest/dump1/out.hat +{ + "v": { + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 + } +} + +cat ./output-regtest/dump1/out.pan +{ + "v": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } +} +{ + "v": { + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 + } +} + +cat ./output-regtest/dump1/out.wye +{ + "v": { + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 + } +} +{ + "v": { + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 + } +} + +cat ./output-regtest/dump1/out.zee +{ + "v": { + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 + } +} +{ + "v": { + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 + } +} + +mlr put -q @v=$*; dump > "./output-regtest/dump1/out.".$a ./reg_test/input/abixy + +cat ./output-regtest/dump1/out.eks +{ + "v": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } +} +{ + "v": { + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 + } +} +{ + "v": { + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 + } +} + +cat ./output-regtest/dump1/out.hat +{ + "v": { + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 + } +} + +cat ./output-regtest/dump1/out.pan +{ + "v": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } +} +{ + "v": { + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 + } +} + +cat ./output-regtest/dump1/out.wye +{ + "v": { + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 + } +} +{ + "v": { + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 + } +} + +cat ./output-regtest/dump1/out.zee +{ + "v": { + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 + } +} +{ + "v": { + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 + } +} + +mlr put -q @v=$*; dump >> "./output-regtest/dump1/out.".$a ./reg_test/input/abixy + +cat ./output-regtest/dump1/out.eks +{ + "v": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } +} +{ + "v": { + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 + } +} +{ + "v": { + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 + } +} +{ + "v": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } +} +{ + "v": { + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 + } +} +{ + "v": { + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 + } +} + +cat ./output-regtest/dump1/out.hat +{ + "v": { + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 + } +} +{ + "v": { + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 + } +} + +cat ./output-regtest/dump1/out.pan +{ + "v": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } +} +{ + "v": { + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 + } +} +{ + "v": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + } +} +{ + "v": { + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 + } +} + +cat ./output-regtest/dump1/out.wye +{ + "v": { + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 + } +} +{ + "v": { + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 + } +} +{ + "v": { + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 + } +} +{ + "v": { + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 + } +} + +cat ./output-regtest/dump1/out.zee +{ + "v": { + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 + } +} +{ + "v": { + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 + } +} +{ + "v": { + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 + } +} +{ + "v": { + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 + } +} + +mlr put -q @v=$*; dump | "tr \[a-z\] \[A-Z\]" ./reg_test/input/abixy +{ + "V": { + "A": "PAN", + "B": "PAN", + "I": 1, + "X": 0.3467901443380824, + "Y": 0.7268028627434533 + } +} +{ + "V": { + "A": "EKS", + "B": "PAN", + "I": 2, + "X": 0.7586799647899636, + "Y": 0.5221511083334797 + } +} +{ + "V": { + "A": "WYE", + "B": "WYE", + "I": 3, + "X": 0.20460330576630303, + "Y": 0.33831852551664776 + } +} +{ + "V": { + "A": "EKS", + "B": "WYE", + "I": 4, + "X": 0.38139939387114097, + "Y": 0.13418874328430463 + } +} +{ + "V": { + "A": "WYE", + "B": "PAN", + "I": 5, + "X": 0.5732889198020006, + "Y": 0.8636244699032729 + } +} +{ + "V": { + "A": "ZEE", + "B": "PAN", + "I": 6, + "X": 0.5271261600918548, + "Y": 0.49322128674835697 + } +} +{ + "V": { + "A": "EKS", + "B": "ZEE", + "I": 7, + "X": 0.6117840605678454, + "Y": 0.1878849191181694 + } +} +{ + "V": { + "A": "ZEE", + "B": "WYE", + "I": 8, + "X": 0.5985540091064224, + "Y": 0.976181385699006 + } +} +{ + "V": { + "A": "HAT", + "B": "WYE", + "I": 9, + "X": 0.03144187646093577, + "Y": 0.7495507603507059 + } +} +{ + "V": { + "A": "PAN", + "B": "WYE", + "I": 10, + "X": 0.5026260055412137, + "Y": 0.9526183602969864 + } +} + +mlr put -q @v[NR] = $*; NR == 2 { dump > stdout } ./reg_test/input/abixy +{ + "v": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + }, + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } +} + +cat ./output-regtest/dump1/err1 + +mlr put -q @v[NR] = $*; NR == 2 { dump > stderr } ./reg_test/input/abixy + +cat ./output-regtest/dump1/err2 +{ + "v": { + "1": { + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 + }, + "2": { + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 + } + } +} + + +================================================================ +DSL EMITF REDIRECTS + +mlr put -q @a=$a; @b=$b; emitf > "./output-regtest/emitf1/out.".$a.$b, @a, @b ./reg_test/input/abixy + +cat ./output-regtest/emitf1/out.ekspan +a=eks,b=pan + +cat ./output-regtest/emitf1/out.ekswye +a=eks,b=wye + +cat ./output-regtest/emitf1/out.ekszee +a=eks,b=zee + +cat ./output-regtest/emitf1/out.hatwye +a=hat,b=wye + +cat ./output-regtest/emitf1/out.panpan +a=pan,b=pan + +cat ./output-regtest/emitf1/out.panwye +a=pan,b=wye + +cat ./output-regtest/emitf1/out.wyepan +a=wye,b=pan + +cat ./output-regtest/emitf1/out.wyewye +a=wye,b=wye + +cat ./output-regtest/emitf1/out.zeepan +a=zee,b=pan + +cat ./output-regtest/emitf1/out.zeewye +a=zee,b=wye + +mlr put -q @a=$a; @b=$b; emitf > "./output-regtest/emitf1/out.".$a.$b, @a, @b ./reg_test/input/abixy + +cat ./output-regtest/emitf1/out.ekspan +a=eks,b=pan + +cat ./output-regtest/emitf1/out.ekswye +a=eks,b=wye + +cat ./output-regtest/emitf1/out.ekszee +a=eks,b=zee + +cat ./output-regtest/emitf1/out.hatwye +a=hat,b=wye + +cat ./output-regtest/emitf1/out.panpan +a=pan,b=pan + +cat ./output-regtest/emitf1/out.panwye +a=pan,b=wye + +cat ./output-regtest/emitf1/out.wyepan +a=wye,b=pan + +cat ./output-regtest/emitf1/out.wyewye +a=wye,b=wye + +cat ./output-regtest/emitf1/out.zeepan +a=zee,b=pan + +cat ./output-regtest/emitf1/out.zeewye +a=zee,b=wye + +mlr put -q @a=$a; @b=$b; emitf >> "./output-regtest/emitf1/out.".$a.$b, @a, @b ./reg_test/input/abixy + +cat ./output-regtest/emitf1/out.ekspan +a=eks,b=pan +a=eks,b=pan + +cat ./output-regtest/emitf1/out.ekswye +a=eks,b=wye +a=eks,b=wye + +cat ./output-regtest/emitf1/out.ekszee +a=eks,b=zee +a=eks,b=zee + +cat ./output-regtest/emitf1/out.hatwye +a=hat,b=wye +a=hat,b=wye + +cat ./output-regtest/emitf1/out.panpan +a=pan,b=pan +a=pan,b=pan + +cat ./output-regtest/emitf1/out.panwye +a=pan,b=wye +a=pan,b=wye + +cat ./output-regtest/emitf1/out.wyepan +a=wye,b=pan +a=wye,b=pan + +cat ./output-regtest/emitf1/out.wyewye +a=wye,b=wye +a=wye,b=wye + +cat ./output-regtest/emitf1/out.zeepan +a=zee,b=pan +a=zee,b=pan + +cat ./output-regtest/emitf1/out.zeewye +a=zee,b=wye +a=zee,b=wye + +mlr put -q -o json @a=$a; @b=$b; emitf > "./output-regtest/emitf1/out.".$a.$b, @a, @b ./reg_test/input/abixy + +cat ./output-regtest/emitf1/out.ekspan +{ "a": "eks", "b": "pan" } + +cat ./output-regtest/emitf1/out.ekswye +{ "a": "eks", "b": "wye" } + +cat ./output-regtest/emitf1/out.ekszee +{ "a": "eks", "b": "zee" } + +cat ./output-regtest/emitf1/out.hatwye +{ "a": "hat", "b": "wye" } + +cat ./output-regtest/emitf1/out.panpan +{ "a": "pan", "b": "pan" } + +cat ./output-regtest/emitf1/out.panwye +{ "a": "pan", "b": "wye" } + +cat ./output-regtest/emitf1/out.wyepan +{ "a": "wye", "b": "pan" } + +cat ./output-regtest/emitf1/out.wyewye +{ "a": "wye", "b": "wye" } + +cat ./output-regtest/emitf1/out.zeepan +{ "a": "zee", "b": "pan" } + +cat ./output-regtest/emitf1/out.zeewye +{ "a": "zee", "b": "wye" } + +mlr put -q @a=$a; @b=$b; emitf | "tr \[a-z\] \[A-Z\]", @a, @b ./reg_test/input/abixy +A=PAN,B=PAN +A=EKS,B=PAN +A=WYE,B=WYE +A=EKS,B=WYE +A=WYE,B=PAN +A=ZEE,B=PAN +A=EKS,B=ZEE +A=ZEE,B=WYE +A=HAT,B=WYE +A=PAN,B=WYE + +mlr put -q @a=$a; @b=$b; emitf > stdout, @a, @b ./reg_test/input/abixy +a=pan,b=pan +a=eks,b=pan +a=wye,b=wye +a=eks,b=wye +a=wye,b=pan +a=zee,b=pan +a=eks,b=zee +a=zee,b=wye +a=hat,b=wye +a=pan,b=wye + +cat ./output-regtest/emitf1/err1 + +mlr put -q @a=$a; @b=$b; emitf > stderr, @a, @b ./reg_test/input/abixy + +cat ./output-regtest/emitf1/err2 +a=pan,b=pan +a=eks,b=pan +a=wye,b=wye +a=eks,b=wye +a=wye,b=pan +a=zee,b=pan +a=eks,b=zee +a=zee,b=wye +a=hat,b=wye +a=pan,b=wye + + +================================================================ +DSL EMITP REDIRECTS + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp1/out.".$a.$b, @a ./reg_test/input/abixy + +cat ./output-regtest/emitp1/out.ekspan +a:1=pan,a:2=eks + +cat ./output-regtest/emitp1/out.ekswye +a:1=pan,a:2=eks,a:3=wye,a:4=eks + +cat ./output-regtest/emitp1/out.panpan +a:1=pan + +cat ./output-regtest/emitp1/out.wyewye +a:1=pan,a:2=eks,a:3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp1/out.".$a.$b, @a ./reg_test/input/abixy + +cat ./output-regtest/emitp1/out.ekspan +a:1=pan,a:2=eks + +cat ./output-regtest/emitp1/out.ekswye +a:1=pan,a:2=eks,a:3=wye,a:4=eks + +cat ./output-regtest/emitp1/out.panpan +a:1=pan + +cat ./output-regtest/emitp1/out.wyewye +a:1=pan,a:2=eks,a:3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp >> "./output-regtest/emitp1/out.".$a.$b, @a ./reg_test/input/abixy + +cat ./output-regtest/emitp1/out.ekspan +a:1=pan,a:2=eks +a:1=pan,a:2=eks + +cat ./output-regtest/emitp1/out.ekswye +a:1=pan,a:2=eks,a:3=wye,a:4=eks +a:1=pan,a:2=eks,a:3=wye,a:4=eks + +cat ./output-regtest/emitp1/out.panpan +a:1=pan +a:1=pan + +cat ./output-regtest/emitp1/out.wyewye +a:1=pan,a:2=eks,a:3=wye +a:1=pan,a:2=eks,a:3=wye + +mlr head -n 4 then put -q -o json @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp1/out.".$a.$b, @a ./reg_test/input/abixy + +cat ./output-regtest/emitp1/out.ekspan +{ "a": {"1": "pan", "2": "eks" } } + +cat ./output-regtest/emitp1/out.ekswye +{ "a": {"1": "pan", "2": "eks", "3": "wye", "4": "eks" } } + +cat ./output-regtest/emitp1/out.panpan +{ "a": {"1": "pan" } } + +cat ./output-regtest/emitp1/out.wyewye +{ "a": {"1": "pan", "2": "eks", "3": "wye" } } + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", @a ./reg_test/input/abixy +A:1=PAN +A:1=PAN,A:2=EKS +A:1=PAN,A:2=EKS,A:3=WYE +A:1=PAN,A:2=EKS,A:3=WYE,A:4=EKS + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stdout, @a ./reg_test/input/abixy +a:1=pan +a:1=pan,a:2=eks +a:1=pan,a:2=eks,a:3=wye +a:1=pan,a:2=eks,a:3=wye,a:4=eks + +cat ./output-regtest/emitp1/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stderr, @a ./reg_test/input/abixy + +cat ./output-regtest/emitp1/err2 +a:1=pan +a:1=pan,a:2=eks +a:1=pan,a:2=eks,a:3=wye +a:1=pan,a:2=eks,a:3=wye,a:4=eks + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp2/out.".$a.$b, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp2/out.ekspan +NR=1,a=pan +NR=2,a=eks + +cat ./output-regtest/emitp2/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +cat ./output-regtest/emitp2/out.panpan +NR=1,a=pan + +cat ./output-regtest/emitp2/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp2/out.".$a.$b, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp2/out.ekspan +NR=1,a=pan +NR=2,a=eks + +cat ./output-regtest/emitp2/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +cat ./output-regtest/emitp2/out.panpan +NR=1,a=pan + +cat ./output-regtest/emitp2/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp >> "./output-regtest/emitp2/out.".$a.$b, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp2/out.ekspan +NR=1,a=pan +NR=2,a=eks +NR=1,a=pan +NR=2,a=eks + +cat ./output-regtest/emitp2/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +cat ./output-regtest/emitp2/out.panpan +NR=1,a=pan +NR=1,a=pan + +cat ./output-regtest/emitp2/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye + +mlr head -n 4 then put -q -o json @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp2/out.".$a.$b, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp2/out.ekspan +{ "NR": 1, "a": "pan" } +{ "NR": 2, "a": "eks" } + +cat ./output-regtest/emitp2/out.ekswye +{ "NR": 1, "a": "pan" } +{ "NR": 2, "a": "eks" } +{ "NR": 3, "a": "wye" } +{ "NR": 4, "a": "eks" } + +cat ./output-regtest/emitp2/out.panpan +{ "NR": 1, "a": "pan" } + +cat ./output-regtest/emitp2/out.wyewye +{ "NR": 1, "a": "pan" } +{ "NR": 2, "a": "eks" } +{ "NR": 3, "a": "wye" } + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", @a, "NR" ./reg_test/input/abixy +NR=1,A=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=4,A=EKS + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stdout, @a, "NR" ./reg_test/input/abixy +NR=1,a=pan +NR=1,a=pan +NR=2,a=eks +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +cat ./output-regtest/emitp2/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stderr, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp2/err2 +NR=1,a=pan +NR=1,a=pan +NR=2,a=eks +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp3/out.".$a.$b, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emitp3/out.ekspan +a:1=pan,b:1=pan,a:2=eks,b:2=pan + +cat ./output-regtest/emitp3/out.ekswye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye,a:4=eks,b:4=wye + +cat ./output-regtest/emitp3/out.panpan +a:1=pan,b:1=pan + +cat ./output-regtest/emitp3/out.wyewye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp3/out.".$a.$b, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emitp3/out.ekspan +a:1=pan,b:1=pan,a:2=eks,b:2=pan + +cat ./output-regtest/emitp3/out.ekswye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye,a:4=eks,b:4=wye + +cat ./output-regtest/emitp3/out.panpan +a:1=pan,b:1=pan + +cat ./output-regtest/emitp3/out.wyewye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp >> "./output-regtest/emitp3/out.".$a.$b, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emitp3/out.ekspan +a:1=pan,b:1=pan,a:2=eks,b:2=pan +a:1=pan,b:1=pan,a:2=eks,b:2=pan + +cat ./output-regtest/emitp3/out.ekswye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye,a:4=eks,b:4=wye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye,a:4=eks,b:4=wye + +cat ./output-regtest/emitp3/out.panpan +a:1=pan,b:1=pan +a:1=pan,b:1=pan + +cat ./output-regtest/emitp3/out.wyewye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye + +mlr head -n 4 then put -q -o json @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp3/out.".$a.$b, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emitp3/out.ekspan +{ "a": {"1": "pan", "2": "eks" },"b": {"1": "pan", "2": "pan" } } + +cat ./output-regtest/emitp3/out.ekswye +{ "a": {"1": "pan", "2": "eks", "3": "wye", "4": "eks" },"b": {"1": "pan", "2": "pan", "3": "wye", "4": "wye" } } + +cat ./output-regtest/emitp3/out.panpan +{ "a": {"1": "pan" },"b": {"1": "pan" } } + +cat ./output-regtest/emitp3/out.wyewye +{ "a": {"1": "pan", "2": "eks", "3": "wye" },"b": {"1": "pan", "2": "pan", "3": "wye" } } + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", (@a, @b) ./reg_test/input/abixy +A:1=PAN,B:1=PAN +A:1=PAN,B:1=PAN,A:2=EKS,B:2=PAN +A:1=PAN,B:1=PAN,A:2=EKS,B:2=PAN,A:3=WYE,B:3=WYE +A:1=PAN,B:1=PAN,A:2=EKS,B:2=PAN,A:3=WYE,B:3=WYE,A:4=EKS,B:4=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stdout, (@a, @b) ./reg_test/input/abixy +a:1=pan,b:1=pan +a:1=pan,b:1=pan,a:2=eks,b:2=pan +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye,a:4=eks,b:4=wye + +cat ./output-regtest/emitp3/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stderr, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emitp3/err2 +a:1=pan,b:1=pan +a:1=pan,b:1=pan,a:2=eks,b:2=pan +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye +a:1=pan,b:1=pan,a:2=eks,b:2=pan,a:3=wye,b:3=wye,a:4=eks,b:4=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp4/out.".$a.$b, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp4/out.ekspan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan + +cat ./output-regtest/emitp4/out.ekswye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +cat ./output-regtest/emitp4/out.panpan +NR=1,a=pan,b=pan + +cat ./output-regtest/emitp4/out.wyewye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp4/out.".$a.$b, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp4/out.ekspan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan + +cat ./output-regtest/emitp4/out.ekswye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +cat ./output-regtest/emitp4/out.panpan +NR=1,a=pan,b=pan + +cat ./output-regtest/emitp4/out.wyewye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp >> "./output-regtest/emitp4/out.".$a.$b, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp4/out.ekspan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan + +cat ./output-regtest/emitp4/out.ekswye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +cat ./output-regtest/emitp4/out.panpan +NR=1,a=pan,b=pan +NR=1,a=pan,b=pan + +cat ./output-regtest/emitp4/out.wyewye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye + +mlr head -n 4 then put -q -o json @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp4/out.".$a.$b, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp4/out.ekspan +{ "NR": 1, "a": "pan", "b": "pan" } +{ "NR": 2, "a": "eks", "b": "pan" } + +cat ./output-regtest/emitp4/out.ekswye +{ "NR": 1, "a": "pan", "b": "pan" } +{ "NR": 2, "a": "eks", "b": "pan" } +{ "NR": 3, "a": "wye", "b": "wye" } +{ "NR": 4, "a": "eks", "b": "wye" } + +cat ./output-regtest/emitp4/out.panpan +{ "NR": 1, "a": "pan", "b": "pan" } + +cat ./output-regtest/emitp4/out.wyewye +{ "NR": 1, "a": "pan", "b": "pan" } +{ "NR": 2, "a": "eks", "b": "pan" } +{ "NR": 3, "a": "wye", "b": "wye" } + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", (@a, @b), "NR" ./reg_test/input/abixy +NR=1,A=PAN,B=PAN +NR=1,A=PAN,B=PAN +NR=2,A=EKS,B=PAN +NR=1,A=PAN,B=PAN +NR=2,A=EKS,B=PAN +NR=3,A=WYE,B=WYE +NR=1,A=PAN,B=PAN +NR=2,A=EKS,B=PAN +NR=3,A=WYE,B=WYE +NR=4,A=EKS,B=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stdout, (@a, @b), "NR" ./reg_test/input/abixy +NR=1,a=pan,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +cat ./output-regtest/emitp4/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stderr, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp4/err2 +NR=1,a=pan,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp5/out.".$a.$b, @* ./reg_test/input/abixy + +cat ./output-regtest/emitp5/out.ekspan +a:1=pan,a:2=eks +b:1=pan,b:2=pan + +cat ./output-regtest/emitp5/out.ekswye +a:1=pan,a:2=eks,a:3=wye,a:4=eks +b:1=pan,b:2=pan,b:3=wye,b:4=wye + +cat ./output-regtest/emitp5/out.panpan +a:1=pan +b:1=pan + +cat ./output-regtest/emitp5/out.wyewye +a:1=pan,a:2=eks,a:3=wye +b:1=pan,b:2=pan,b:3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", @* ./reg_test/input/abixy +A:1=PAN +B:1=PAN +A:1=PAN,A:2=EKS +B:1=PAN,B:2=PAN +A:1=PAN,A:2=EKS,A:3=WYE +B:1=PAN,B:2=PAN,B:3=WYE +A:1=PAN,A:2=EKS,A:3=WYE,A:4=EKS +B:1=PAN,B:2=PAN,B:3=WYE,B:4=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stdout, @* ./reg_test/input/abixy +a:1=pan +b:1=pan +a:1=pan,a:2=eks +b:1=pan,b:2=pan +a:1=pan,a:2=eks,a:3=wye +b:1=pan,b:2=pan,b:3=wye +a:1=pan,a:2=eks,a:3=wye,a:4=eks +b:1=pan,b:2=pan,b:3=wye,b:4=wye + +cat ./output-regtest/emitp5/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stderr, @* ./reg_test/input/abixy + +cat ./output-regtest/emitp5/err2 +a:1=pan +b:1=pan +a:1=pan,a:2=eks +b:1=pan,b:2=pan +a:1=pan,a:2=eks,a:3=wye +b:1=pan,b:2=pan,b:3=wye +a:1=pan,a:2=eks,a:3=wye,a:4=eks +b:1=pan,b:2=pan,b:3=wye,b:4=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp6/out.".$a.$b, all ./reg_test/input/abixy + +cat ./output-regtest/emitp6/out.ekspan +a:1=pan,a:2=eks +b:1=pan,b:2=pan + +cat ./output-regtest/emitp6/out.ekswye +a:1=pan,a:2=eks,a:3=wye,a:4=eks +b:1=pan,b:2=pan,b:3=wye,b:4=wye + +cat ./output-regtest/emitp6/out.panpan +a:1=pan +b:1=pan + +cat ./output-regtest/emitp6/out.wyewye +a:1=pan,a:2=eks,a:3=wye +b:1=pan,b:2=pan,b:3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", all ./reg_test/input/abixy +A:1=PAN +B:1=PAN +A:1=PAN,A:2=EKS +B:1=PAN,B:2=PAN +A:1=PAN,A:2=EKS,A:3=WYE +B:1=PAN,B:2=PAN,B:3=WYE +A:1=PAN,A:2=EKS,A:3=WYE,A:4=EKS +B:1=PAN,B:2=PAN,B:3=WYE,B:4=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stdout, all ./reg_test/input/abixy +a:1=pan +b:1=pan +a:1=pan,a:2=eks +b:1=pan,b:2=pan +a:1=pan,a:2=eks,a:3=wye +b:1=pan,b:2=pan,b:3=wye +a:1=pan,a:2=eks,a:3=wye,a:4=eks +b:1=pan,b:2=pan,b:3=wye,b:4=wye + +cat ./output-regtest/emitp6/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stderr, all ./reg_test/input/abixy + +cat ./output-regtest/emitp6/err2 +a:1=pan +b:1=pan +a:1=pan,a:2=eks +b:1=pan,b:2=pan +a:1=pan,a:2=eks,a:3=wye +b:1=pan,b:2=pan,b:3=wye +a:1=pan,a:2=eks,a:3=wye,a:4=eks +b:1=pan,b:2=pan,b:3=wye,b:4=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp7/out.".$a.$b, @*, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp7/out.ekspan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan + +cat ./output-regtest/emitp7/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +cat ./output-regtest/emitp7/out.panpan +NR=1,a=pan +NR=1,b=pan + +cat ./output-regtest/emitp7/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", @*, "NR" ./reg_test/input/abixy +NR=1,A=PAN +NR=1,B=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=1,B=PAN +NR=2,B=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=1,B=PAN +NR=2,B=PAN +NR=3,B=WYE +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=4,A=EKS +NR=1,B=PAN +NR=2,B=PAN +NR=3,B=WYE +NR=4,B=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stdout, @*, "NR" ./reg_test/input/abixy +NR=1,a=pan +NR=1,b=pan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +cat ./output-regtest/emitp7/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stderr, @*, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp7/err2 +NR=1,a=pan +NR=1,b=pan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > "./output-regtest/emitp8/out.".$a.$b, all, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp8/out.ekspan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan + +cat ./output-regtest/emitp8/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +cat ./output-regtest/emitp8/out.panpan +NR=1,a=pan +NR=1,b=pan + +cat ./output-regtest/emitp8/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", all, "NR" ./reg_test/input/abixy +NR=1,A=PAN +NR=1,B=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=1,B=PAN +NR=2,B=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=1,B=PAN +NR=2,B=PAN +NR=3,B=WYE +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=4,A=EKS +NR=1,B=PAN +NR=2,B=PAN +NR=3,B=WYE +NR=4,B=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stdout, all, "NR" ./reg_test/input/abixy +NR=1,a=pan +NR=1,b=pan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +cat ./output-regtest/emitp8/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emitp > stderr, all, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emitp8/err2 +NR=1,a=pan +NR=1,b=pan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + + +================================================================ +DSL EMIT REDIRECTS + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit1/out.".$a.$b, @a ./reg_test/input/abixy + +cat ./output-regtest/emit1/out.ekspan +1=pan,2=eks + +cat ./output-regtest/emit1/out.ekswye +1=pan,2=eks,3=wye,4=eks + +cat ./output-regtest/emit1/out.panpan +1=pan + +cat ./output-regtest/emit1/out.wyewye +1=pan,2=eks,3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit1/out.".$a.$b, @a ./reg_test/input/abixy + +cat ./output-regtest/emit1/out.ekspan +1=pan,2=eks + +cat ./output-regtest/emit1/out.ekswye +1=pan,2=eks,3=wye,4=eks + +cat ./output-regtest/emit1/out.panpan +1=pan + +cat ./output-regtest/emit1/out.wyewye +1=pan,2=eks,3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit >> "./output-regtest/emit1/out.".$a.$b, @a ./reg_test/input/abixy + +cat ./output-regtest/emit1/out.ekspan +1=pan,2=eks +1=pan,2=eks + +cat ./output-regtest/emit1/out.ekswye +1=pan,2=eks,3=wye,4=eks +1=pan,2=eks,3=wye,4=eks + +cat ./output-regtest/emit1/out.panpan +1=pan +1=pan + +cat ./output-regtest/emit1/out.wyewye +1=pan,2=eks,3=wye +1=pan,2=eks,3=wye + +mlr head -n 4 then put -q -o json @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit1/out.".$a.$b, @a ./reg_test/input/abixy + +cat ./output-regtest/emit1/out.ekspan +{ "1": "pan", "2": "eks" } + +cat ./output-regtest/emit1/out.ekswye +{ "1": "pan", "2": "eks", "3": "wye", "4": "eks" } + +cat ./output-regtest/emit1/out.panpan +{ "1": "pan" } + +cat ./output-regtest/emit1/out.wyewye +{ "1": "pan", "2": "eks", "3": "wye" } + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", @a ./reg_test/input/abixy +1=PAN +1=PAN,2=EKS +1=PAN,2=EKS,3=WYE +1=PAN,2=EKS,3=WYE,4=EKS + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, @a ./reg_test/input/abixy +1=pan +1=pan,2=eks +1=pan,2=eks,3=wye +1=pan,2=eks,3=wye,4=eks + +cat ./output-regtest/emit1/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, @a ./reg_test/input/abixy + +cat ./output-regtest/emit1/err2 +1=pan +1=pan,2=eks +1=pan,2=eks,3=wye +1=pan,2=eks,3=wye,4=eks + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit2/out.".$a.$b, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit2/out.ekspan +NR=1,a=pan +NR=2,a=eks + +cat ./output-regtest/emit2/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +cat ./output-regtest/emit2/out.panpan +NR=1,a=pan + +cat ./output-regtest/emit2/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit2/out.".$a.$b, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit2/out.ekspan +NR=1,a=pan +NR=2,a=eks + +cat ./output-regtest/emit2/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +cat ./output-regtest/emit2/out.panpan +NR=1,a=pan + +cat ./output-regtest/emit2/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit >> "./output-regtest/emit2/out.".$a.$b, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit2/out.ekspan +NR=1,a=pan +NR=2,a=eks +NR=1,a=pan +NR=2,a=eks + +cat ./output-regtest/emit2/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +cat ./output-regtest/emit2/out.panpan +NR=1,a=pan +NR=1,a=pan + +cat ./output-regtest/emit2/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye + +mlr head -n 4 then put -q -o pprint @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit2/out.".$a.$b, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit2/out.ekspan +NR a +1 pan +2 eks + +cat ./output-regtest/emit2/out.ekswye +NR a +1 pan +2 eks +3 wye +4 eks + +cat ./output-regtest/emit2/out.panpan +NR a +1 pan + +cat ./output-regtest/emit2/out.wyewye +NR a +1 pan +2 eks +3 wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", @a, "NR" ./reg_test/input/abixy +NR=1,A=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=4,A=EKS + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, @a, "NR" ./reg_test/input/abixy +NR=1,a=pan +NR=1,a=pan +NR=2,a=eks +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +cat ./output-regtest/emit2/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, @a, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit2/err2 +NR=1,a=pan +NR=1,a=pan +NR=2,a=eks +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit3/out.".$a.$b, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emit3/out.ekspan +1=pan,2=pan + +cat ./output-regtest/emit3/out.ekswye +1=pan,2=pan,3=wye,4=wye + +cat ./output-regtest/emit3/out.panpan +1=pan + +cat ./output-regtest/emit3/out.wyewye +1=pan,2=pan,3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit3/out.".$a.$b, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emit3/out.ekspan +1=pan,2=pan + +cat ./output-regtest/emit3/out.ekswye +1=pan,2=pan,3=wye,4=wye + +cat ./output-regtest/emit3/out.panpan +1=pan + +cat ./output-regtest/emit3/out.wyewye +1=pan,2=pan,3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit >> "./output-regtest/emit3/out.".$a.$b, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emit3/out.ekspan +1=pan,2=pan +1=pan,2=pan + +cat ./output-regtest/emit3/out.ekswye +1=pan,2=pan,3=wye,4=wye +1=pan,2=pan,3=wye,4=wye + +cat ./output-regtest/emit3/out.panpan +1=pan +1=pan + +cat ./output-regtest/emit3/out.wyewye +1=pan,2=pan,3=wye +1=pan,2=pan,3=wye + +mlr head -n 4 then put -q --oxtab @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit3/out.".$a.$b, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emit3/out.ekspan +1 pan +2 pan + +cat ./output-regtest/emit3/out.ekswye +1 pan +2 pan +3 wye +4 wye + +cat ./output-regtest/emit3/out.panpan +1 pan + +cat ./output-regtest/emit3/out.wyewye +1 pan +2 pan +3 wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", (@a, @b) ./reg_test/input/abixy +1=PAN +1=PAN,2=PAN +1=PAN,2=PAN,3=WYE +1=PAN,2=PAN,3=WYE,4=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, (@a, @b) ./reg_test/input/abixy +1=pan +1=pan,2=pan +1=pan,2=pan,3=wye +1=pan,2=pan,3=wye,4=wye + +cat ./output-regtest/emit3/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, (@a, @b) ./reg_test/input/abixy + +cat ./output-regtest/emit3/err2 +1=pan +1=pan,2=pan +1=pan,2=pan,3=wye +1=pan,2=pan,3=wye,4=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit4/out.".$a.$b, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit4/out.ekspan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan + +cat ./output-regtest/emit4/out.ekswye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +cat ./output-regtest/emit4/out.panpan +NR=1,a=pan,b=pan + +cat ./output-regtest/emit4/out.wyewye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit4/out.".$a.$b, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit4/out.ekspan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan + +cat ./output-regtest/emit4/out.ekswye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +cat ./output-regtest/emit4/out.panpan +NR=1,a=pan,b=pan + +cat ./output-regtest/emit4/out.wyewye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit >> "./output-regtest/emit4/out.".$a.$b, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit4/out.ekspan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan + +cat ./output-regtest/emit4/out.ekswye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +cat ./output-regtest/emit4/out.panpan +NR=1,a=pan,b=pan +NR=1,a=pan,b=pan + +cat ./output-regtest/emit4/out.wyewye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye + +mlr head -n 4 then put -q --ojson @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit4/out.".$a.$b, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit4/out.ekspan +{ "NR": 1, "a": "pan", "b": "pan" } +{ "NR": 2, "a": "eks", "b": "pan" } + +cat ./output-regtest/emit4/out.ekswye +{ "NR": 1, "a": "pan", "b": "pan" } +{ "NR": 2, "a": "eks", "b": "pan" } +{ "NR": 3, "a": "wye", "b": "wye" } +{ "NR": 4, "a": "eks", "b": "wye" } + +cat ./output-regtest/emit4/out.panpan +{ "NR": 1, "a": "pan", "b": "pan" } + +cat ./output-regtest/emit4/out.wyewye +{ "NR": 1, "a": "pan", "b": "pan" } +{ "NR": 2, "a": "eks", "b": "pan" } +{ "NR": 3, "a": "wye", "b": "wye" } + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", (@a, @b), "NR" ./reg_test/input/abixy +NR=1,A=PAN,B=PAN +NR=1,A=PAN,B=PAN +NR=2,A=EKS,B=PAN +NR=1,A=PAN,B=PAN +NR=2,A=EKS,B=PAN +NR=3,A=WYE,B=WYE +NR=1,A=PAN,B=PAN +NR=2,A=EKS,B=PAN +NR=3,A=WYE,B=WYE +NR=4,A=EKS,B=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, (@a, @b), "NR" ./reg_test/input/abixy +NR=1,a=pan,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +cat ./output-regtest/emit4/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, (@a, @b), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit4/err2 +NR=1,a=pan,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=1,a=pan,b=pan +NR=2,a=eks,b=pan +NR=3,a=wye,b=wye +NR=4,a=eks,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit5/out.".$a.$b, @* ./reg_test/input/abixy + +cat ./output-regtest/emit5/out.ekspan +1=pan,2=eks +1=pan,2=pan + +cat ./output-regtest/emit5/out.ekswye +1=pan,2=eks,3=wye,4=eks +1=pan,2=pan,3=wye,4=wye + +cat ./output-regtest/emit5/out.panpan +1=pan +1=pan + +cat ./output-regtest/emit5/out.wyewye +1=pan,2=eks,3=wye +1=pan,2=pan,3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", @* ./reg_test/input/abixy +1=PAN +1=PAN +1=PAN,2=EKS +1=PAN,2=PAN +1=PAN,2=EKS,3=WYE +1=PAN,2=PAN,3=WYE +1=PAN,2=EKS,3=WYE,4=EKS +1=PAN,2=PAN,3=WYE,4=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, @* ./reg_test/input/abixy +1=pan +1=pan +1=pan,2=eks +1=pan,2=pan +1=pan,2=eks,3=wye +1=pan,2=pan,3=wye +1=pan,2=eks,3=wye,4=eks +1=pan,2=pan,3=wye,4=wye + +cat ./output-regtest/emit5/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, @* ./reg_test/input/abixy + +cat ./output-regtest/emit5/err2 +1=pan +1=pan +1=pan,2=eks +1=pan,2=pan +1=pan,2=eks,3=wye +1=pan,2=pan,3=wye +1=pan,2=eks,3=wye,4=eks +1=pan,2=pan,3=wye,4=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit6/out.".$a.$b, all ./reg_test/input/abixy + +cat ./output-regtest/emit6/out.ekspan +1=pan,2=eks +1=pan,2=pan + +cat ./output-regtest/emit6/out.ekswye +1=pan,2=eks,3=wye,4=eks +1=pan,2=pan,3=wye,4=wye + +cat ./output-regtest/emit6/out.panpan +1=pan +1=pan + +cat ./output-regtest/emit6/out.wyewye +1=pan,2=eks,3=wye +1=pan,2=pan,3=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", all ./reg_test/input/abixy +1=PAN +1=PAN +1=PAN,2=EKS +1=PAN,2=PAN +1=PAN,2=EKS,3=WYE +1=PAN,2=PAN,3=WYE +1=PAN,2=EKS,3=WYE,4=EKS +1=PAN,2=PAN,3=WYE,4=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, all ./reg_test/input/abixy +1=pan +1=pan +1=pan,2=eks +1=pan,2=pan +1=pan,2=eks,3=wye +1=pan,2=pan,3=wye +1=pan,2=eks,3=wye,4=eks +1=pan,2=pan,3=wye,4=wye + +cat ./output-regtest/emit6/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, all ./reg_test/input/abixy + +cat ./output-regtest/emit6/err2 +1=pan +1=pan +1=pan,2=eks +1=pan,2=pan +1=pan,2=eks,3=wye +1=pan,2=pan,3=wye +1=pan,2=eks,3=wye,4=eks +1=pan,2=pan,3=wye,4=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit7/out.".$a.$b, @*, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit7/out.ekspan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan + +cat ./output-regtest/emit7/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +cat ./output-regtest/emit7/out.panpan +NR=1,a=pan +NR=1,b=pan + +cat ./output-regtest/emit7/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", @*, "NR" ./reg_test/input/abixy +NR=1,A=PAN +NR=1,B=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=1,B=PAN +NR=2,B=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=1,B=PAN +NR=2,B=PAN +NR=3,B=WYE +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=4,A=EKS +NR=1,B=PAN +NR=2,B=PAN +NR=3,B=WYE +NR=4,B=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, @*, "NR" ./reg_test/input/abixy +NR=1,a=pan +NR=1,b=pan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +cat ./output-regtest/emit7/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, @*, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit7/err2 +NR=1,a=pan +NR=1,b=pan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > "./output-regtest/emit8/out.".$a.$b, all, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit8/out.ekspan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan + +cat ./output-regtest/emit8/out.ekswye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +cat ./output-regtest/emit8/out.panpan +NR=1,a=pan +NR=1,b=pan + +cat ./output-regtest/emit8/out.wyewye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", all, "NR" ./reg_test/input/abixy +NR=1,A=PAN +NR=1,B=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=1,B=PAN +NR=2,B=PAN +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=1,B=PAN +NR=2,B=PAN +NR=3,B=WYE +NR=1,A=PAN +NR=2,A=EKS +NR=3,A=WYE +NR=4,A=EKS +NR=1,B=PAN +NR=2,B=PAN +NR=3,B=WYE +NR=4,B=WYE + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, all, "NR" ./reg_test/input/abixy +NR=1,a=pan +NR=1,b=pan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +cat ./output-regtest/emit8/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, all, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit8/err2 +NR=1,a=pan +NR=1,b=pan +NR=1,a=pan +NR=2,a=eks +NR=1,b=pan +NR=2,b=pan +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=1,a=pan +NR=2,a=eks +NR=3,a=wye +NR=4,a=eks +NR=1,b=pan +NR=2,b=pan +NR=3,b=wye +NR=4,b=wye + +mlr head -n 4 then put -q emit > "./output-regtest/emit9/out.".$a.$b, $* ./reg_test/input/abixy + +cat ./output-regtest/emit9/out.ekspan +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 + +cat ./output-regtest/emit9/out.ekswye +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 + +cat ./output-regtest/emit9/out.panpan +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 + +cat ./output-regtest/emit9/out.wyewye +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", $*, "NR" ./reg_test/input/abixy +A=PAN,B=PAN,I=1,X=0.3467901443380824,Y=0.7268028627434533 +A=EKS,B=PAN,I=2,X=0.7586799647899636,Y=0.5221511083334797 +A=WYE,B=WYE,I=3,X=0.20460330576630303,Y=0.33831852551664776 +A=EKS,B=WYE,I=4,X=0.38139939387114097,Y=0.13418874328430463 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, $*, "NR" ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 + +cat ./output-regtest/emit9/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, $*, "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit9/err2 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 + +mlr head -n 4 then put -q emit > "./output-regtest/emit10/out.".$a.$b, mapexcept($*, "a", "b") ./reg_test/input/abixy + +cat ./output-regtest/emit10/out.ekspan +i=2,x=0.7586799647899636,y=0.5221511083334797 + +cat ./output-regtest/emit10/out.ekswye +i=4,x=0.38139939387114097,y=0.13418874328430463 + +cat ./output-regtest/emit10/out.panpan +i=1,x=0.3467901443380824,y=0.7268028627434533 + +cat ./output-regtest/emit10/out.wyewye +i=3,x=0.20460330576630303,y=0.33831852551664776 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", mapexcept($*, "a", "b"), "NR" ./reg_test/input/abixy +NR=I,_=1 +NR=X,_=0.3467901443380824 +NR=Y,_=0.7268028627434533 +NR=I,_=2 +NR=X,_=0.7586799647899636 +NR=Y,_=0.5221511083334797 +NR=I,_=3 +NR=X,_=0.20460330576630303 +NR=Y,_=0.33831852551664776 +NR=I,_=4 +NR=X,_=0.38139939387114097 +NR=Y,_=0.13418874328430463 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stdout, mapexcept($*, "a", "b"), "NR" ./reg_test/input/abixy +NR=i,_=1 +NR=x,_=0.3467901443380824 +NR=y,_=0.7268028627434533 +NR=i,_=2 +NR=x,_=0.7586799647899636 +NR=y,_=0.5221511083334797 +NR=i,_=3 +NR=x,_=0.20460330576630303 +NR=y,_=0.33831852551664776 +NR=i,_=4 +NR=x,_=0.38139939387114097 +NR=y,_=0.13418874328430463 + +cat ./output-regtest/emit10/err1 + +mlr head -n 4 then put -q @a[NR]=$a; @b[NR]=$b; emit > stderr, mapexcept($*, "a", "b"), "NR" ./reg_test/input/abixy + +cat ./output-regtest/emit10/err2 +NR=i,_=1 +NR=x,_=0.3467901443380824 +NR=y,_=0.7268028627434533 +NR=i,_=2 +NR=x,_=0.7586799647899636 +NR=y,_=0.5221511083334797 +NR=i,_=3 +NR=x,_=0.20460330576630303 +NR=y,_=0.33831852551664776 +NR=i,_=4 +NR=x,_=0.38139939387114097 +NR=y,_=0.13418874328430463 + + +================================================================ +OOSVAR-FROM-SREC ASSIGNMENT + +mlr put -v @v = $* /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="$*", type=FULL_SREC. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="$*", type=FULL_SREC. + + +mlr put -v @v[1] = $* /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="$*", type=FULL_SREC. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="$*", type=FULL_SREC. + + +mlr put -v @v[$2] = $* /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="2", type=FIELD_NAME. + text="$*", type=FULL_SREC. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="2", type=FIELD_NAME. + text="$*", type=FULL_SREC. + + +mlr put -v NR == 3 {@v = $*} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="$*", type=FULL_SREC. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="$*", type=FULL_SREC. + + +mlr put -v NR == 3 {@v[1] = $*} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="$*", type=FULL_SREC. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="$*", type=FULL_SREC. + + +mlr put -v NR == 3 {@v[$2] = $*} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="2", type=FIELD_NAME. + text="$*", type=FULL_SREC. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_FROM_FULL_SREC_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="2", type=FIELD_NAME. + text="$*", type=FULL_SREC. + + +mlr --oxtab put -q @v = $*; end {emitp @v } ./reg_test/input/abixy-het +v:a pan +v:b wye +v:i 10 +v:x 0.5026260055412137 +v:y 0.9526183602969864 + +mlr --oxtab put -q @v[$a] = $*; end {emitp @v } ./reg_test/input/abixy-het +v:pan:a pan +v:pan:b wye +v:pan:i 10 +v:pan:x 0.5026260055412137 +v:pan:y 0.9526183602969864 +v:eks:a eks +v:eks:b zee +v:eks:iii 7 +v:eks:x 0.6117840605678454 +v:eks:y 0.1878849191181694 +v:wye:a wye +v:wye:b pan +v:wye:i 5 +v:wye:xxx 0.5732889198020006 +v:wye:y 0.8636244699032729 +v:zee:a zee +v:zee:b wye +v:zee:i 8 +v:zee:x 0.5985540091064224 +v:zee:yyy 0.976181385699006 + +mlr --oxtab put -q @v[$a] = $*; end {emitp @v, "a" } ./reg_test/input/abixy-het +a pan +v:a pan +v:b wye +v:i 10 +v:x 0.5026260055412137 +v:y 0.9526183602969864 + +a eks +v:a eks +v:b zee +v:iii 7 +v:x 0.6117840605678454 +v:y 0.1878849191181694 + +a wye +v:a wye +v:b pan +v:i 5 +v:xxx 0.5732889198020006 +v:y 0.8636244699032729 + +a zee +v:a zee +v:b wye +v:i 8 +v:x 0.5985540091064224 +v:yyy 0.976181385699006 + +mlr --oxtab put -q @v[$a][$b] = $*; end {emitp @v } ./reg_test/input/abixy-het +v:pan:pan:a pan +v:pan:pan:b pan +v:pan:pan:i 1 +v:pan:pan:x 0.3467901443380824 +v:pan:pan:y 0.7268028627434533 +v:pan:wye:a pan +v:pan:wye:b wye +v:pan:wye:i 10 +v:pan:wye:x 0.5026260055412137 +v:pan:wye:y 0.9526183602969864 +v:eks:pan:a eks +v:eks:pan:b pan +v:eks:pan:i 2 +v:eks:pan:x 0.7586799647899636 +v:eks:pan:y 0.5221511083334797 +v:eks:zee:a eks +v:eks:zee:b zee +v:eks:zee:iii 7 +v:eks:zee:x 0.6117840605678454 +v:eks:zee:y 0.1878849191181694 +v:wye:pan:a wye +v:wye:pan:b pan +v:wye:pan:i 5 +v:wye:pan:xxx 0.5732889198020006 +v:wye:pan:y 0.8636244699032729 +v:zee:pan:a zee +v:zee:pan:b pan +v:zee:pan:i 6 +v:zee:pan:x 0.5271261600918548 +v:zee:pan:y 0.49322128674835697 +v:zee:wye:a zee +v:zee:wye:b wye +v:zee:wye:i 8 +v:zee:wye:x 0.5985540091064224 +v:zee:wye:yyy 0.976181385699006 + +mlr --oxtab put -q @v[$a][$b] = $*; end {emitp @v, "a" } ./reg_test/input/abixy-het +a pan +v:pan:a pan +v:pan:b pan +v:pan:i 1 +v:pan:x 0.3467901443380824 +v:pan:y 0.7268028627434533 +v:wye:a pan +v:wye:b wye +v:wye:i 10 +v:wye:x 0.5026260055412137 +v:wye:y 0.9526183602969864 + +a eks +v:pan:a eks +v:pan:b pan +v:pan:i 2 +v:pan:x 0.7586799647899636 +v:pan:y 0.5221511083334797 +v:zee:a eks +v:zee:b zee +v:zee:iii 7 +v:zee:x 0.6117840605678454 +v:zee:y 0.1878849191181694 + +a wye +v:pan:a wye +v:pan:b pan +v:pan:i 5 +v:pan:xxx 0.5732889198020006 +v:pan:y 0.8636244699032729 + +a zee +v:pan:a zee +v:pan:b pan +v:pan:i 6 +v:pan:x 0.5271261600918548 +v:pan:y 0.49322128674835697 +v:wye:a zee +v:wye:b wye +v:wye:i 8 +v:wye:x 0.5985540091064224 +v:wye:yyy 0.976181385699006 + +mlr --oxtab put -q @v[$a][$b] = $*; end {emitp @v, "a", "b"} ./reg_test/input/abixy-het +a pan +b pan +v:a pan +v:b pan +v:i 1 +v:x 0.3467901443380824 +v:y 0.7268028627434533 + +a pan +b wye +v:a pan +v:b wye +v:i 10 +v:x 0.5026260055412137 +v:y 0.9526183602969864 + +a eks +b pan +v:a eks +v:b pan +v:i 2 +v:x 0.7586799647899636 +v:y 0.5221511083334797 + +a eks +b zee +v:a eks +v:b zee +v:iii 7 +v:x 0.6117840605678454 +v:y 0.1878849191181694 + +a wye +b pan +v:a wye +v:b pan +v:i 5 +v:xxx 0.5732889198020006 +v:y 0.8636244699032729 + +a zee +b pan +v:a zee +v:b pan +v:i 6 +v:x 0.5271261600918548 +v:y 0.49322128674835697 + +a zee +b wye +v:a zee +v:b wye +v:i 8 +v:x 0.5985540091064224 +v:yyy 0.976181385699006 + + +================================================================ +SREC-FROM-OOSVAR ASSIGNMENT + +mlr put -v $* = @v /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + + +mlr put -v $* = @v[1] /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v $* = @v[$2] /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="2", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="2", type=FIELD_NAME. + + +mlr put -v NR == 3 {$* = @v } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + + +mlr put -v NR == 3 {$* = @v[1] } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v NR == 3 {$* = @v[$2]} /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="2", type=FIELD_NAME. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=FULL_SREC_ASSIGNMENT: + text="$*", type=FULL_SREC. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="2", type=FIELD_NAME. + + +mlr put @v[NR] = $a; NR == 7 { @v = $*} ; $* = @v ./reg_test/input/abixy-het +1=pan +1=pan,2=eks +1=pan,2=eks +1=pan,2=eks,4=eks +1=pan,2=eks,4=eks,5=wye +1=pan,2=eks,4=eks,5=wye,6=zee +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,8=zee +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,8=zee +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,8=zee,10=pan + + +================================================================ +OOSVAR-FROM-OOSVAR ASSIGNMENT + +mlr put -v @u = @v /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + + +mlr put -v @u = @v[1] /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v @u[2] = @v /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + + +mlr put -v @u[2] = @v[1] /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v begin { @u = @v } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr put -v begin { @u = @v[1] } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr put -v begin { @u[2] = @v } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr put -v begin { @u[2] = @v[1] } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr put -v NR == 3 { @u = @v } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + + +mlr put -v NR == 3 { @u = @v[1] } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v NR == 3 { @u[2] = @v } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + + +mlr put -v NR == 3 { @u[2] = @v[1] } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=2 max_var_depth=1 + text="cond", type=CONDITIONAL_BLOCK: + text="==", type=OPERATOR: + text="NR", type=CONTEXT_VARIABLE. + text="3", type=NUMERIC_LITERAL. + text="cond_block", type=STATEMENT_BLOCK: subframe_var_count=0 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + + +mlr put -v end { @u = @v } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr put -v end { @u = @v[1] } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr put -v end { @u[2] = @v } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr put -v end { @u[2] = @v[1] } /dev/null +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +BLOCKED AST: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="u", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="v", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + + +mlr put -q @s += $i; @t=@s; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": 55, + "t": 55 +} +s=55 +t=55 + +mlr put -q @s[1] += $i; @t=@s; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": 55 + }, + "t": { + "1": 55 + } +} +s:1=55 +t:1=55 + +mlr put -q @s[1] += $i; @t=@s[1]; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": 55 + }, + "t": 55 +} +s:1=55 +t=55 + +mlr put -q @s[1] += $i; @t[3]=@s; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": 55 + }, + "t": { + "3": { + "1": 55 + } + } +} +s:1=55 +t:3:1=55 + +mlr put -q @s[1] += $i; @t[3]=@s[1]; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": 55 + }, + "t": { + "3": 55 + } +} +s:1=55 +t:3=55 + +mlr put -q @s[1][2] += $i; @t=@s; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": { + "1": { + "2": 55 + } + } +} +s:1:2=55 +t:1:2=55 + +mlr put -q @s[1][2] += $i; @t=@s[1]; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": { + "2": 55 + } +} +s:1:2=55 +t:2=55 + +mlr put -q @s[1][2] += $i; @t=@s[1][2]; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": 55 +} +s:1:2=55 +t=55 + +mlr put -q @s[1][2] += $i; @t[3]=@s; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": { + "3": { + "1": { + "2": 55 + } + } + } +} +s:1:2=55 +t:3:1:2=55 + +mlr put -q @s[1][2] += $i; @t[3]=@s[1]; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": { + "3": { + "2": 55 + } + } +} +s:1:2=55 +t:3:2=55 + +mlr put -q @s[1][2] += $i; @t[3]=@s[1][2]; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": { + "3": 55 + } +} +s:1:2=55 +t:3=55 + +mlr put -q @s[1][2] += $i; @t[3][4]=@s; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": { + "3": { + "4": { + "1": { + "2": 55 + } + } + } + } +} +s:1:2=55 +t:3:4:1:2=55 + +mlr put -q @s[1][2] += $i; @t[3][4]=@s[1]; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": { + "3": { + "4": { + "2": 55 + } + } + } +} +s:1:2=55 +t:3:4:2=55 + +mlr put -q @s[1][2] += $i; @t[3][4]=@s[1][2]; end{dump; emitp@s; emitp @t} ./reg_test/input/abixy +{ + "s": { + "1": { + "2": 55 + } + }, + "t": { + "3": { + "4": 55 + } + } +} +s:1:2=55 +t:3:4=55 + +mlr --opprint put -q @s[NR][NR] = $i/100; @t[NR*10]=@s; end{emitp@s,"A","B"; emitp @t,"C","D","E"} ./reg_test/input/abixy +A B s +1 1 0.010000 +2 2 0.020000 +3 3 0.030000 +4 4 0.040000 +5 5 0.050000 +6 6 0.060000 +7 7 0.070000 +8 8 0.080000 +9 9 0.090000 +10 10 0.100000 + +C D E t +10 1 1 0.010000 +20 1 1 0.010000 +20 2 2 0.020000 +30 1 1 0.010000 +30 2 2 0.020000 +30 3 3 0.030000 +40 1 1 0.010000 +40 2 2 0.020000 +40 3 3 0.030000 +40 4 4 0.040000 +50 1 1 0.010000 +50 2 2 0.020000 +50 3 3 0.030000 +50 4 4 0.040000 +50 5 5 0.050000 +60 1 1 0.010000 +60 2 2 0.020000 +60 3 3 0.030000 +60 4 4 0.040000 +60 5 5 0.050000 +60 6 6 0.060000 +70 1 1 0.010000 +70 2 2 0.020000 +70 3 3 0.030000 +70 4 4 0.040000 +70 5 5 0.050000 +70 6 6 0.060000 +70 7 7 0.070000 +80 1 1 0.010000 +80 2 2 0.020000 +80 3 3 0.030000 +80 4 4 0.040000 +80 5 5 0.050000 +80 6 6 0.060000 +80 7 7 0.070000 +80 8 8 0.080000 +90 1 1 0.010000 +90 2 2 0.020000 +90 3 3 0.030000 +90 4 4 0.040000 +90 5 5 0.050000 +90 6 6 0.060000 +90 7 7 0.070000 +90 8 8 0.080000 +90 9 9 0.090000 +100 1 1 0.010000 +100 2 2 0.020000 +100 3 3 0.030000 +100 4 4 0.040000 +100 5 5 0.050000 +100 6 6 0.060000 +100 7 7 0.070000 +100 8 8 0.080000 +100 9 9 0.090000 +100 10 10 0.100000 + + +================================================================ +CHAINING + +mlr cat then cat ./reg_test/input/short +a=1 +b=2 +c=3 + +mlr cat then tac ./reg_test/input/short +c=3 +b=2 +a=1 + +mlr tac then cat ./reg_test/input/short +c=3 +b=2 +a=1 + +mlr tac then tac ./reg_test/input/short +a=1 +b=2 +c=3 + +mlr cat then cat then cat ./reg_test/input/short +a=1 +b=2 +c=3 + +mlr cat then cat then tac ./reg_test/input/short +c=3 +b=2 +a=1 + +mlr cat then tac then cat ./reg_test/input/short +c=3 +b=2 +a=1 + +mlr cat then tac then tac ./reg_test/input/short +a=1 +b=2 +c=3 + +mlr tac then cat then cat ./reg_test/input/short +c=3 +b=2 +a=1 + +mlr tac then cat then tac ./reg_test/input/short +a=1 +b=2 +c=3 + +mlr tac then tac then cat ./reg_test/input/short +a=1 +b=2 +c=3 + +mlr tac then tac then tac ./reg_test/input/short +c=3 +b=2 +a=1 + + +================================================================ +NUMBER FORMATTING + +mlr --opprint stats1 -a sum -f x ./reg_test/input/ofmt.dat +x_sum +6 + +mlr --ofmt %.3lf --opprint stats1 -a sum -f x ./reg_test/input/ofmt.dat +x_sum +6 + +mlr --opprint --ofmt %.3lf stats1 -a sum -f x ./reg_test/input/ofmt.dat +x_sum +6 + + +================================================================ +IMPLICIT-HEADER-CSV INPUT + +mlr --irs crlf --icsvlite --ifs , --opprint cut -x -f b/ ./reg_test/input/multi-sep.csv-crlf +a/ i/ x/ y/ +wye/ 0/ 0.641593543645736508/ 0.262688053894177098 +eks/ 1/ 0.827614412562742041/ 0.715431942006308552 +zee/ 2/ 0.923068348748175560/ 0.009737410587136359 +zee/ 3/ 0.000047786161325772/ 0.803142013402256216 +zee/ 4/ 0.676537984365847889/ 0.573903236805416328 + +mlr --irs crlf --implicit-csv-header --icsvlite --ifs , --opprint cut -x -f 2 ./reg_test/input/multi-sep.csv-crlf +1 3 4 5 +a/ i/ x/ y/ +wye/ 0/ 0.641593543645736508/ 0.262688053894177098 +eks/ 1/ 0.827614412562742041/ 0.715431942006308552 +zee/ 2/ 0.923068348748175560/ 0.009737410587136359 +zee/ 3/ 0.000047786161325772/ 0.803142013402256216 +zee/ 4/ 0.676537984365847889/ 0.573903236805416328 + +mlr --irs crlf --icsvlite --ifs /, --opprint cut -x -f b ./reg_test/input/multi-sep.csv-crlf +a i x y/ +wye 0 0.641593543645736508 0.262688053894177098 +eks 1 0.827614412562742041 0.715431942006308552 +zee 2 0.923068348748175560 0.009737410587136359 +zee 3 0.000047786161325772 0.803142013402256216 +zee 4 0.676537984365847889 0.573903236805416328 + +mlr --irs crlf --implicit-csv-header --icsvlite --ifs /, --opprint cut -x -f 2 ./reg_test/input/multi-sep.csv-crlf +1 3 4 5 +a i x y/ +wye 0 0.641593543645736508 0.262688053894177098 +eks 1 0.827614412562742041 0.715431942006308552 +zee 2 0.923068348748175560 0.009737410587136359 +zee 3 0.000047786161325772 0.803142013402256216 +zee 4 0.676537984365847889 0.573903236805416328 + +mlr --icsv --ifs , --opprint cut -x -f b/ ./reg_test/input/multi-sep.csv-crlf +a/ i/ x/ y/ +wye/ 0/ 0.641593543645736508/ 0.262688053894177098 +eks/ 1/ 0.827614412562742041/ 0.715431942006308552 +zee/ 2/ 0.923068348748175560/ 0.009737410587136359 +zee/ 3/ 0.000047786161325772/ 0.803142013402256216 +zee/ 4/ 0.676537984365847889/ 0.573903236805416328 + +mlr --implicit-csv-header --icsv --ifs , --opprint cut -x -f 2 ./reg_test/input/multi-sep.csv-crlf +1 3 4 5 +a/ i/ x/ y/ +wye/ 0/ 0.641593543645736508/ 0.262688053894177098 +eks/ 1/ 0.827614412562742041/ 0.715431942006308552 +zee/ 2/ 0.923068348748175560/ 0.009737410587136359 +zee/ 3/ 0.000047786161325772/ 0.803142013402256216 +zee/ 4/ 0.676537984365847889/ 0.573903236805416328 + +mlr --icsv --ifs /, --opprint cut -x -f b ./reg_test/input/multi-sep.csv-crlf +a i x y/ +wye 0 0.641593543645736508 0.262688053894177098 +eks 1 0.827614412562742041 0.715431942006308552 +zee 2 0.923068348748175560 0.009737410587136359 +zee 3 0.000047786161325772 0.803142013402256216 +zee 4 0.676537984365847889 0.573903236805416328 + +mlr --implicit-csv-header --icsv --ifs /, --opprint cut -x -f 2 ./reg_test/input/multi-sep.csv-crlf +1 3 4 5 +a i x y/ +wye 0 0.641593543645736508 0.262688053894177098 +eks 1 0.827614412562742041 0.715431942006308552 +zee 2 0.923068348748175560 0.009737410587136359 +zee 3 0.000047786161325772 0.803142013402256216 +zee 4 0.676537984365847889 0.573903236805416328 + +mlr --csv -N reorder -f 1,3,2,5,4 ./reg_test/input/multi-sep.csv-crlf +a/,i/,b/,y/,x/ +wye/,0/,eks/,0.262688053894177098,0.641593543645736508/ +eks/,1/,zee/,0.715431942006308552,0.827614412562742041/ +zee/,2/,zee/,0.009737410587136359,0.923068348748175560/ +zee/,3/,pan/,0.803142013402256216,0.000047786161325772/ +zee/,4/,hat/,0.573903236805416328,0.676537984365847889/ + +mlr --csv -N reorder -f 5,4,3,2,1 ./reg_test/input/multi-sep.csv-crlf +y/,x/,i/,b/,a/ +0.262688053894177098,0.641593543645736508/,0/,eks/,wye/ +0.715431942006308552,0.827614412562742041/,1/,zee/,eks/ +0.009737410587136359,0.923068348748175560/,2/,zee/,zee/ +0.803142013402256216,0.000047786161325772/,3/,pan/,zee/ +0.573903236805416328,0.676537984365847889/,4/,hat/,zee/ + + +================================================================ +HET-CSV INPUT + +mlr --icsvlite --odkvp cat ./reg_test/input/a.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --icsvlite --odkvp cat ./reg_test/input/b.csv +d=5,e=6,f=7 + +mlr --icsvlite --odkvp cat ./reg_test/input/c.csv +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 + +mlr --icsvlite --odkvp cat ./reg_test/input/d.csv +h=3,i=4,j=5 +m=8,n=9,o=10 + +mlr --icsvlite --odkvp cat ./reg_test/input/e.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --icsvlite --odkvp cat ./reg_test/input/f.csv + +mlr --icsvlite --odkvp cat ./reg_test/input/g.csv + +mlr --icsvlite --odkvp cat ./reg_test/input/a.csv ./reg_test/input/a.csv +a=1,b=2,c=3 +a=4,b=5,c=6 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --icsvlite --odkvp cat ./reg_test/input/b.csv ./reg_test/input/b.csv +d=5,e=6,f=7 +d=5,e=6,f=7 + +mlr --icsvlite --odkvp cat ./reg_test/input/c.csv ./reg_test/input/c.csv +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 + +mlr --icsvlite --odkvp cat ./reg_test/input/d.csv ./reg_test/input/d.csv +h=3,i=4,j=5 +m=8,n=9,o=10 +h=3,i=4,j=5 +m=8,n=9,o=10 + +mlr --icsvlite --odkvp cat ./reg_test/input/e.csv ./reg_test/input/e.csv +a=1,b=2,c=3 +a=4,b=5,c=6 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --icsvlite --odkvp cat ./reg_test/input/f.csv ./reg_test/input/f.csv + +mlr --icsvlite --odkvp cat ./reg_test/input/g.csv ./reg_test/input/g.csv + +mlr --icsvlite --odkvp cat ./reg_test/input/a.csv ./reg_test/input/b.csv +a=1,b=2,c=3 +a=4,b=5,c=6 +d=5,e=6,f=7 + +mlr --icsvlite --odkvp cat ./reg_test/input/b.csv ./reg_test/input/c.csv +d=5,e=6,f=7 +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 + +mlr --icsvlite --odkvp cat ./reg_test/input/c.csv ./reg_test/input/d.csv +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 +h=3,i=4,j=5 +m=8,n=9,o=10 + +mlr --icsvlite --odkvp cat ./reg_test/input/d.csv ./reg_test/input/e.csv +h=3,i=4,j=5 +m=8,n=9,o=10 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --icsvlite --odkvp cat ./reg_test/input/e.csv ./reg_test/input/f.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --icsvlite --odkvp cat ./reg_test/input/f.csv ./reg_test/input/g.csv + +mlr --icsvlite --odkvp cat ./reg_test/input/a.csv ./reg_test/input/b.csv ./reg_test/input/c.csv ./reg_test/input/d.csv ./reg_test/input/e.csv ./reg_test/input/f.csv ./reg_test/input/g.csv +a=1,b=2,c=3 +a=4,b=5,c=6 +d=5,e=6,f=7 +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 +h=3,i=4,j=5 +m=8,n=9,o=10 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --icsvlite --odkvp tac ./reg_test/input/het.csv +resource=/some/other/path,loadsec=0.97,ok=false +record_count=150,resource=/path/to/second/file +resource=/path/to/second/file,loadsec=0.32,ok=true +record_count=100,resource=/path/to/file +resource=/path/to/file,loadsec=0.45,ok=true + +mlr --headerless-csv-output --csvlite tac ./reg_test/input/a.csv +4,5,6 +1,2,3 + +mlr --headerless-csv-output --csvlite tac ./reg_test/input/c.csv +7,8,9 +4,5,6 +1,2,3 + +mlr --headerless-csv-output --csvlite tac ./reg_test/input/a.csv ./reg_test/input/c.csv +7,8,9 +4,5,6 +1,2,3 +4,5,6 +1,2,3 + +mlr --headerless-csv-output --csvlite tac ./reg_test/input/het.csv +/some/other/path,0.97,false + +150,/path/to/second/file + +/path/to/second/file,0.32,true + +100,/path/to/file + +/path/to/file,0.45,true + +mlr --headerless-csv-output --csvlite group-like ./reg_test/input/het.csv +/path/to/file,0.45,true +/path/to/second/file,0.32,true +/some/other/path,0.97,false + +100,/path/to/file +150,/path/to/second/file + + +================================================================ +HET-PPRINT INPUT + +mlr --ipprint --odkvp cat ./reg_test/input/a.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --ipprint --odkvp cat ./reg_test/input/b.pprint +d=5,e=6,f=7 + +mlr --ipprint --odkvp cat ./reg_test/input/c.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 + +mlr --ipprint --odkvp cat ./reg_test/input/d.pprint +h=3,i=4,j=5 +m=8,n=9,o=10 + +mlr --ipprint --odkvp cat ./reg_test/input/e.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --ipprint --odkvp cat ./reg_test/input/f.pprint + +mlr --ipprint --odkvp cat ./reg_test/input/g.pprint + +mlr --ipprint --odkvp cat ./reg_test/input/a.pprint ./reg_test/input/a.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --ipprint --odkvp cat ./reg_test/input/b.pprint ./reg_test/input/b.pprint +d=5,e=6,f=7 +d=5,e=6,f=7 + +mlr --ipprint --odkvp cat ./reg_test/input/c.pprint ./reg_test/input/c.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 + +mlr --ipprint --odkvp cat ./reg_test/input/d.pprint ./reg_test/input/d.pprint +h=3,i=4,j=5 +m=8,n=9,o=10 +h=3,i=4,j=5 +m=8,n=9,o=10 + +mlr --ipprint --odkvp cat ./reg_test/input/e.pprint ./reg_test/input/e.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --ipprint --odkvp cat ./reg_test/input/f.pprint ./reg_test/input/f.pprint + +mlr --ipprint --odkvp cat ./reg_test/input/g.pprint ./reg_test/input/g.pprint + +mlr --ipprint --odkvp cat ./reg_test/input/a.pprint ./reg_test/input/b.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 +d=5,e=6,f=7 + +mlr --ipprint --odkvp cat ./reg_test/input/b.pprint ./reg_test/input/c.pprint +d=5,e=6,f=7 +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 + +mlr --ipprint --odkvp cat ./reg_test/input/c.pprint ./reg_test/input/d.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 +h=3,i=4,j=5 +m=8,n=9,o=10 + +mlr --ipprint --odkvp cat ./reg_test/input/d.pprint ./reg_test/input/e.pprint +h=3,i=4,j=5 +m=8,n=9,o=10 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --ipprint --odkvp cat ./reg_test/input/e.pprint ./reg_test/input/f.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --ipprint --odkvp cat ./reg_test/input/f.pprint ./reg_test/input/g.pprint + +mlr --ipprint --odkvp cat ./reg_test/input/a.pprint ./reg_test/input/b.pprint ./reg_test/input/c.pprint ./reg_test/input/d.pprint ./reg_test/input/e.pprint ./reg_test/input/f.pprint ./reg_test/input/g.pprint +a=1,b=2,c=3 +a=4,b=5,c=6 +d=5,e=6,f=7 +a=1,b=2,c=3 +a=4,b=5,c=6 +a=7,b=8,c=9 +h=3,i=4,j=5 +m=8,n=9,o=10 +a=1,b=2,c=3 +a=4,b=5,c=6 + + +================================================================ +NULL-FIELD INPUT + +mlr --icsvlite --odkvp cat ./reg_test/input/null-fields.csv +a=1,b=2,c=3,d=4,e=5 +a=6,b=,c=,d=,e=10 +a=,b=,c=,d=11,e=12 +a=13,b=14,c=,d=,e= +a=,b=,c=,d=,e= + +mlr --inidx --ifs comma --odkvp cat ./reg_test/input/null-fields.nidx +1=a,2=b,3=c,4=d,5=e +1=f,2=,3=,4=,5=g +1=,2=,3=,4=h,5=i +1=j,2=k,3=,4=,5= +1=,2=,3=,4=,5= + +mlr --idkvp --oxtab cat ./reg_test/input/missings.dkvp +a 1 +b 2 +c 3 +d 4 +e 5 +f 6 + +1 a +b +x 4 +c 3 +5 d +6 e +7 f + +1 a +b +x 4 +c 3 +5 d +6 e +f 6 + +mlr --oxtab stats1 -a sum,min,max,antimode,mode -f x ./reg_test/input/nullvals.dkvp +x_sum 9 +x_min 1 +x_max 5 +x_antimode 1 +x_mode 1 + +mlr --oxtab stats1 -a sum,min,max,antimode,mode -f y ./reg_test/input/nullvals.dkvp +y_sum 12 +y_min 2 +y_max 6 +y_antimode 2 +y_mode 2 + +mlr --oxtab stats1 -a sum,min,max,antimode,mode -f z ./reg_test/input/nullvals.dkvp +z_sum 0 +z_min +z_max +z_antimode +z_mode + +mlr --oxtab stats1 -a sum,min,max,antimode,mode -f x,y,z ./reg_test/input/nullvals.dkvp +x_sum 9 +x_min 1 +x_max 5 +x_antimode 1 +x_mode 1 +y_sum 12 +y_min 2 +y_max 6 +y_antimode 2 +y_mode 2 +z_sum 0 +z_min +z_max +z_antimode +z_mode + +mlr --oxtab stats1 -a sum,min,max,antimode,mode -f x -g a ./reg_test/input/nullvals.dkvp +a b +x_sum 9 +x_min 1 +x_max 5 +x_antimode 1 +x_mode 1 + +mlr --oxtab stats1 -a sum,min,max,antimode,mode -f y -g a ./reg_test/input/nullvals.dkvp +a b +y_sum 12 +y_min 2 +y_max 6 +y_antimode 2 +y_mode 2 + +mlr --oxtab stats1 -a sum,min,max,antimode,mode -f z -g a ./reg_test/input/nullvals.dkvp +a b +z_sum 0 +z_min +z_max +z_antimode +z_mode + +mlr --oxtab stats1 -a sum,min,max,antimode,mode -f x,y,z -g a ./reg_test/input/nullvals.dkvp +a b +x_sum 9 +x_min 1 +x_max 5 +x_antimode 1 +x_mode 1 +y_sum 12 +y_min 2 +y_max 6 +y_antimode 2 +y_mode 2 +z_sum 0 +z_min +z_max +z_antimode +z_mode + +mlr --opprint merge-fields -a sum,min,max,antimode,mode -f x,y,z -o xyz ./reg_test/input/nullvals.dkvp +a xyz_sum xyz_min xyz_max xyz_antimode xyz_mode +b 3 1 2 1 1 +b 7 3 4 3 3 +b 5 5 5 5 5 +b 6 6 6 6 6 +b 0 - - - - + +mlr --opprint merge-fields -a sum,min,max,antimode,mode -r x,y,z -o xyz ./reg_test/input/nullvals.dkvp +a xyz_sum xyz_min xyz_max xyz_antimode xyz_mode +b 3 1 2 1 1 +b 7 3 4 3 3 +b 5 5 5 5 5 +b 6 6 6 6 6 +b 0 - - - - + +mlr --opprint merge-fields -a sum,min,max,antimode,mode -c x,y,z ./reg_test/input/nullvals.dkvp +a _sum _min _max _antimode _mode +b 3 1 2 1 1 +b 7 3 4 3 3 +b 5 5 5 5 5 +b 6 6 6 6 6 +b 0 - - - - + +mlr --oxtab stats2 -a cov -f x,y ./reg_test/input/nullvals.dkvp +x_y_cov 2.000000 + +mlr --oxtab stats2 -a cov -f x,z ./reg_test/input/nullvals.dkvp + +mlr --oxtab stats2 -a cov -f y,z ./reg_test/input/nullvals.dkvp + +mlr --oxtab stats2 -a cov -f x,y -g a ./reg_test/input/nullvals.dkvp +a b +x_y_cov 2.000000 + +mlr --oxtab stats2 -a cov -f x,z -g a ./reg_test/input/nullvals.dkvp +a b + +mlr --oxtab stats2 -a cov -f y,z -g a ./reg_test/input/nullvals.dkvp +a b + +mlr --opprint top -n 5 -f x ./reg_test/input/nullvals.dkvp +top_idx x_top +1 5 +2 3 +3 1 +4 - +5 - + +mlr --opprint top -n 5 -f y ./reg_test/input/nullvals.dkvp +top_idx y_top +1 6 +2 4 +3 2 +4 - +5 - + +mlr --opprint top -n 5 -f z ./reg_test/input/nullvals.dkvp +top_idx z_top +1 - +2 - +3 - +4 - +5 - + +mlr --opprint top -n 5 -f x,y,z ./reg_test/input/nullvals.dkvp +top_idx x_top y_top z_top +1 5 6 - +2 3 4 - +3 1 2 - +4 - - - +5 - - - + +mlr --opprint top -n 5 -f x -g a ./reg_test/input/nullvals.dkvp +a top_idx x_top +b 1 5 +b 2 3 +b 3 1 +b 4 - +b 5 - + +mlr --opprint top -n 5 -f y -g a ./reg_test/input/nullvals.dkvp +a top_idx y_top +b 1 6 +b 2 4 +b 3 2 +b 4 - +b 5 - + +mlr --opprint top -n 5 -f z -g a ./reg_test/input/nullvals.dkvp +a top_idx z_top +b 1 - +b 2 - +b 3 - +b 4 - +b 5 - + +mlr --opprint top -n 5 -f x,y,z -g a ./reg_test/input/nullvals.dkvp +a top_idx x_top y_top z_top +b 1 5 6 - +b 2 3 4 - +b 3 1 2 - +b 4 - - - +b 5 - - - + +mlr --opprint top -a -n 5 -f x ./reg_test/input/nullvals.dkvp +a x y z +b 5 - - +b 3 4 - +b 1 2 - + +mlr --opprint top -a -n 5 -f y ./reg_test/input/nullvals.dkvp +a x y z +b - 6 - +b 3 4 - +b 1 2 - + +mlr --opprint top -a -n 5 -f z ./reg_test/input/nullvals.dkvp + +mlr --opprint top -a -n 5 -f x -g a ./reg_test/input/nullvals.dkvp +a x y z +b 5 - - +b 3 4 - +b 1 2 - + +mlr --opprint top -a -n 5 -f y -g a ./reg_test/input/nullvals.dkvp +a x y z +b - 6 - +b 3 4 - +b 1 2 - + +mlr --opprint top -a -n 5 -f z -g a ./reg_test/input/nullvals.dkvp + +mlr --opprint top -n 5 -f x -o foo ./reg_test/input/nullvals.dkvp +foo x_top +1 5 +2 3 +3 1 +4 - +5 - + +mlr --opprint top -n 5 -f x -g a -o foo ./reg_test/input/nullvals.dkvp +a foo x_top +b 1 5 +b 2 3 +b 3 1 +b 4 - +b 5 - + +mlr --opprint top -a -n 5 -f x -o foo ./reg_test/input/nullvals.dkvp +a x y z +b 5 - - +b 3 4 - +b 1 2 - + +mlr --opprint top -a -n 5 -f z -o foo -g a ./reg_test/input/nullvals.dkvp + +mlr --opprint step -a counter,rsum -f x ./reg_test/input/nullvals.dkvp +a x y z x_counter x_rsum +b 1 2 - 1 1 +b 3 4 - 2 4 +b 5 - - 3 9 +b - 6 - - - +b - - - - - + +mlr --opprint step -a counter,rsum -f y ./reg_test/input/nullvals.dkvp +a x y z y_counter y_rsum +b 1 2 - 1 2 +b 3 4 - 2 6 +b 5 - - - - +b - 6 - 3 12 +b - - - - - + +mlr --opprint step -a counter,rsum -f z ./reg_test/input/nullvals.dkvp +a x y z z_counter z_rsum +b 1 2 - - - +b 3 4 - - - +b 5 - - - - +b - 6 - - - +b - - - - - + +mlr --opprint step -a counter,rsum -f x,y,z ./reg_test/input/nullvals.dkvp +a x y z x_counter x_rsum y_counter y_rsum z_counter z_rsum +b 1 2 - 1 1 1 2 - - +b 3 4 - 2 4 2 6 - - +b 5 - - 3 9 - - - - +b - 6 - - - 3 12 - - +b - - - - - - - - - + +mlr --opprint step -a counter,rsum -f x -g a ./reg_test/input/nullvals.dkvp +a x y z x_counter x_rsum +b 1 2 - 1 1 +b 3 4 - 2 4 +b 5 - - 3 9 +b - 6 - - - +b - - - - - + +mlr --opprint step -a counter,rsum -f y -g a ./reg_test/input/nullvals.dkvp +a x y z y_counter y_rsum +b 1 2 - 1 2 +b 3 4 - 2 6 +b 5 - - - - +b - 6 - 3 12 +b - - - - - + +mlr --opprint step -a counter,rsum -f z -g a ./reg_test/input/nullvals.dkvp +a x y z z_counter z_rsum +b 1 2 - - - +b 3 4 - - - +b 5 - - - - +b - 6 - - - +b - - - - - + +mlr --opprint step -a counter,rsum -f x,y,z -g a ./reg_test/input/nullvals.dkvp +a x y z x_counter x_rsum y_counter y_rsum z_counter z_rsum +b 1 2 - 1 1 1 2 - - +b 3 4 - 2 4 2 6 - - +b 5 - - 3 9 - - - - +b - 6 - - - 3 12 - - +b - - - - - - - - - + + +================================================================ +SPACE-PADDING + +mlr --idkvp --odkvp --ifs space --repifs cat ./reg_test/input/space-pad.dkvp +a=1,b=2 +c=3 + +mlr --inidx --odkvp --ifs space --repifs cat ./reg_test/input/space-pad.nidx +1=a,2=b,3=c +1=d,2=e,3=f + +mlr --icsvlite --odkvp --ifs space --repifs cat ./reg_test/input/space-pad.pprint +a=1,b=2,c=3 + + +================================================================ +DOUBLE PS + +mlr --opprint cat ./reg_test/input/double-ps.dkvp +a b c +pan wy.e 3 +pan wy=e 3 + + +================================================================ +MISSING FINAL LF + +mlr --csvlite cat ./reg_test/input/truncated.csv +a,b,c +1,2,3 +4,5,6 +7,8,9 + +mlr --dkvp cat ./reg_test/input/truncated.dkvp +a=1,b=2 +c=3 + +mlr --nidx cat ./reg_test/input/truncated.nidx +1 2 3 +4 5 + +mlr --pprint cat ./reg_test/input/truncated.pprint +a b c +1 2 3 +4 5 6 +7 8 9 + +mlr --xtab cat ./reg_test/input/truncated.xtab-crlf +a 1 +b 2 +c 3 + +d 4 +e 5 + + +================================================================ +UTF-8 alignment + +mlr --icsvlite --opprint cat ./reg_test/input/utf8-1.csv +langue nom jour +français françois vendredi +žusz éloignée - + +mlr --icsvlite --opprint cat ./reg_test/input/utf8-2.csv +français françois vendredi +langue nom jour + +mlr --icsvlite --oxtab cat ./reg_test/input/utf8-1.csv +langue français +nom françois +jour vendredi + +langue žusz +nom éloignée +jour + +mlr --icsvlite --oxtab cat ./reg_test/input/utf8-2.csv +français langue +françois nom +vendredi jour + +mlr --inidx --ifs space --opprint cat ./reg_test/input/utf8-align.nidx +1 2 +191º test +191 test2 +francois français +françois francais + +mlr --inidx --ifs space --opprint --right cat ./reg_test/input/utf8-align.nidx + 1 2 + 191º test + 191 test2 +francois français +françois francais + +mlr --oxtab cat ./reg_test/input/utf8-align.dkvp +191º test +1912 test2 +cois çais +çois cais + +191º test +1912 test2 +ois çais +çois cais + +191º test +1912 test2 +coise çais +çois cais + +mlr --inidx --ifs space --oxtab --xvright cat ./reg_test/input/utf8-align.nidx +1 191º +2 test + +1 191 +2 test2 + +1 francois +2 français + +1 françois +2 francais + + +================================================================ +UTF-8 BOM + +mlr --icsv --opprint cat ./reg_test/input/bom.csv +a b c +1 2 3 +4 5 6 + +mlr --icsv --opprint cat +a b c +1 2 3 +4 5 6 + +mlr --icsv --opprint cat ./reg_test/input/bom-dquote-header.csv +a b c +1 2 3 +4 5 6 + +mlr --icsv --opprint cat +a b c +1 2 3 +4 5 6 + + +================================================================ +UTF-8 UPPERCASE/LOWERCASE + +mlr --icsvlite --opprint put $langue = toupper($langue) ./reg_test/input/utf8-1.csv +langue nom jour +FRANÇAIS françois vendredi +ŽUSZ éloignée - + +mlr --icsvlite --opprint put $nom = toupper($nom) ./reg_test/input/utf8-1.csv +langue nom jour +français FRANÇOIS vendredi +žusz ÉLOIGNÉE - + +mlr --icsvlite --opprint put $jour = toupper($jour) ./reg_test/input/utf8-1.csv +langue nom jour +français françois VENDREDI +žusz éloignée - + +mlr --icsvlite --opprint put $langue = capitalize($langue) ./reg_test/input/utf8-1.csv +langue nom jour +Français françois vendredi +Žusz éloignée - + +mlr --icsvlite --opprint put $nom = capitalize($nom) ./reg_test/input/utf8-1.csv +langue nom jour +français François vendredi +žusz Éloignée - + +mlr --icsvlite --opprint put $jour = capitalize($jour) ./reg_test/input/utf8-1.csv +langue nom jour +français françois Vendredi +žusz éloignée - + + +================================================================ +SKIP/PASS COMMENTS DKVP + + +---------------------------------------------------------------- input comments1.dkvp +cat ./reg_test/input/comments/comments1.dkvp +# hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- skip comments1.dkvp +mlr --skip-comments --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --skip-comments --idkvp --oxtab cat ./reg_test/input/comments/comments1.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- pass comments1.dkvp +mlr --pass-comments --idkvp --oxtab cat +# hello world 1 +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --pass-comments --idkvp --oxtab cat ./reg_test/input/comments/comments1.dkvp +# hello world 1 +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- input comments2.dkvp +cat ./reg_test/input/comments/comments2.dkvp +a=1,b=2,c=3 +# hello world 2 +a=4,b=5,c=6 + + +---------------------------------------------------------------- skip comments2.dkvp +mlr --skip-comments --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --skip-comments --idkvp --oxtab cat ./reg_test/input/comments/comments2.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- pass comments2.dkvp +mlr --pass-comments --idkvp --oxtab cat +a 1 +b 2 +c 3 +# hello world 2 + +a 4 +b 5 +c 6 + +mlr --pass-comments --idkvp --oxtab cat ./reg_test/input/comments/comments2.dkvp +a 1 +b 2 +c 3 +# hello world 2 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- input comments3.dkvp +cat ./reg_test/input/comments/comments3.dkvp +a=1,b=2,c=3 +a=4,b=5,c=6 +# hello world 3 + + +---------------------------------------------------------------- skip comments3.dkvp +mlr --skip-comments --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --skip-comments --idkvp --oxtab cat ./reg_test/input/comments/comments3.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- pass comments3.dkvp +mlr --pass-comments --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 +# hello world 3 + +mlr --pass-comments --idkvp --oxtab cat ./reg_test/input/comments/comments3.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 +# hello world 3 + +mlr termcvt --lf2crlf + +---------------------------------------------------------------- input comments1-crlf.dkvp +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.dkvp +# hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- skip comments1-crlf.dkvp +mlr --skip-comments --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --skip-comments --idkvp --oxtab cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- pass comments1-crlf.dkvp +mlr --pass-comments --idkvp --oxtab cat +# hello world 1 +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --pass-comments --idkvp --oxtab cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.dkvp +# hello world 1 +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +================================================================ +SKIP/PASS COMMENTS DKVP WITH ALTERNATE PREFIX + + +---------------------------------------------------------------- input comments1-atat.dkvp +cat ./reg_test/input/comments/comments1-atat.dkvp +@@ hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- skip comments1-atat.dkvp +mlr --skip-comments-with @@ --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --skip-comments-with @@ --idkvp --oxtab cat ./reg_test/input/comments/comments1-atat.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- pass comments1-atat.dkvp +mlr --pass-comments-with @@ --idkvp --oxtab cat +@@ hello world 1 +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --pass-comments-with @@ --idkvp --oxtab cat ./reg_test/input/comments/comments1-atat.dkvp +@@ hello world 1 +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- input comments2-atat.dkvp +cat ./reg_test/input/comments/comments2-atat.dkvp +a=1,b=2,c=3 +@@ hello world 2 +a=4,b=5,c=6 + + +---------------------------------------------------------------- skip comments2-atat.dkvp +mlr --skip-comments-with @@ --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --skip-comments-with @@ --idkvp --oxtab cat ./reg_test/input/comments/comments2-atat.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- pass comments2-atat.dkvp +mlr --pass-comments-with @@ --idkvp --oxtab cat +a 1 +b 2 +c 3 +@@ hello world 2 + +a 4 +b 5 +c 6 + +mlr --pass-comments-with @@ --idkvp --oxtab cat ./reg_test/input/comments/comments2-atat.dkvp +a 1 +b 2 +c 3 +@@ hello world 2 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- input comments3-atat.dkvp +cat ./reg_test/input/comments/comments3-atat.dkvp +a=1,b=2,c=3 +a=4,b=5,c=6 +@@ hello world 3 + + +---------------------------------------------------------------- skip comments3-atat.dkvp +mlr --skip-comments-with @@ --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + +mlr --skip-comments-with @@ --idkvp --oxtab cat ./reg_test/input/comments/comments3-atat.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 + + +---------------------------------------------------------------- pass comments3-atat.dkvp +mlr --pass-comments-with @@ --idkvp --oxtab cat +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 +@@ hello world 3 + +mlr --pass-comments-with @@ --idkvp --oxtab cat ./reg_test/input/comments/comments3-atat.dkvp +a 1 +b 2 +c 3 + +a 4 +b 5 +c 6 +@@ hello world 3 + + +================================================================ +SKIP/PASS COMMENTS NIDX + + +---------------------------------------------------------------- input comments1.nidx +cat ./reg_test/input/comments/comments1.nidx +# hello world 1 +aX1 bX2 cX3 +aX4 bX5 cX6 + + +---------------------------------------------------------------- skip comments1.nidx +mlr --skip-comments --inidx --oxtab cat +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + +mlr --skip-comments --inidx --oxtab cat ./reg_test/input/comments/comments1.nidx +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + + +---------------------------------------------------------------- pass comments1.nidx +mlr --pass-comments --inidx --oxtab cat +# hello world 1 +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + +mlr --pass-comments --inidx --oxtab cat ./reg_test/input/comments/comments1.nidx +# hello world 1 +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + + +---------------------------------------------------------------- input comments2.nidx +cat ./reg_test/input/comments/comments2.nidx +aX1 bX2 cX3 +# hello world 2 +aX4 bX5 cX6 + + +---------------------------------------------------------------- skip comments2.nidx +mlr --skip-comments --inidx --oxtab cat +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + +mlr --skip-comments --inidx --oxtab cat ./reg_test/input/comments/comments2.nidx +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + + +---------------------------------------------------------------- pass comments2.nidx +mlr --pass-comments --inidx --oxtab cat +1 aX1 +2 bX2 +3 cX3 +# hello world 2 + +1 aX4 +2 bX5 +3 cX6 + +mlr --pass-comments --inidx --oxtab cat ./reg_test/input/comments/comments2.nidx +1 aX1 +2 bX2 +3 cX3 +# hello world 2 + +1 aX4 +2 bX5 +3 cX6 + + +---------------------------------------------------------------- input comments3.nidx +cat ./reg_test/input/comments/comments3.nidx +aX1 bX2 cX3 +aX4 bX5 cX6 +# hello world 3 + + +---------------------------------------------------------------- skip comments3.nidx +mlr --skip-comments --inidx --oxtab cat +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + +mlr --skip-comments --inidx --oxtab cat ./reg_test/input/comments/comments3.nidx +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + + +---------------------------------------------------------------- pass comments3.nidx +mlr --pass-comments --inidx --oxtab cat +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 +# hello world 3 + +mlr --pass-comments --inidx --oxtab cat ./reg_test/input/comments/comments3.nidx +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 +# hello world 3 + +mlr termcvt --lf2crlf + +---------------------------------------------------------------- input comments1-crlf.nidx +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.nidx +# hello world 1 +aX1 bX2 cX3 +aX4 bX5 cX6 + + +---------------------------------------------------------------- skip comments1-crlf.nidx +mlr --skip-comments --inidx --oxtab cat +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + +mlr --skip-comments --inidx --oxtab cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.nidx +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + + +---------------------------------------------------------------- pass comments1-crlf.nidx +mlr --pass-comments --inidx --oxtab cat +# hello world 1 +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + +mlr --pass-comments --inidx --oxtab cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.nidx +# hello world 1 +1 aX1 +2 bX2 +3 cX3 + +1 aX4 +2 bX5 +3 cX6 + + +================================================================ +SKIP/PASS COMMENTS JSON + + +---------------------------------------------------------------- input comments1.json +cat ./reg_test/input/comments/comments1.json +# hello world 1 +{ "a":1, "b":2, "c":3 } +{ "a":4, "b":5, "c":6 } + + +---------------------------------------------------------------- skip comments1.json +mlr --skip-comments --ijson --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --ijson --odkvp cat ./reg_test/input/comments/comments1.json +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments1.json +mlr --pass-comments --ijson --odkvp cat +# hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --pass-comments --ijson --odkvp cat ./reg_test/input/comments/comments1.json +# hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- input comments2.json +cat ./reg_test/input/comments/comments2.json +{ "a":1, "b":2, "c":3 } +# hello world 2 +{ "a":4, "b":5, "c":6 } + + +---------------------------------------------------------------- skip comments2.json +mlr --skip-comments --ijson --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --ijson --odkvp cat ./reg_test/input/comments/comments2.json +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments2.json +mlr --pass-comments --ijson --odkvp cat +# hello world 2 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --pass-comments --ijson --odkvp cat ./reg_test/input/comments/comments2.json +# hello world 2 +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- input comments3.json +cat ./reg_test/input/comments/comments3.json +{ "a":1, "b":2, "c":3 } +{ "a":4, "b":5, "c":6 } +# hello world 3 + + +---------------------------------------------------------------- skip comments3.json +mlr --skip-comments --ijson --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --ijson --odkvp cat ./reg_test/input/comments/comments3.json +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments3.json +mlr --pass-comments --ijson --odkvp cat +# hello world 3 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --pass-comments --ijson --odkvp cat ./reg_test/input/comments/comments3.json +# hello world 3 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr termcvt --lf2crlf + +---------------------------------------------------------------- input comments1-crlf.json +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.json +# hello world 1 +{ "a":1, "b":2, "c":3 } +{ "a":4, "b":5, "c":6 } + + +---------------------------------------------------------------- skip comments1-crlf.json +mlr --skip-comments --ijson --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --ijson --odkvp cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.json +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments1-crlf.json +mlr --pass-comments --ijson --odkvp cat +# hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --pass-comments --ijson --odkvp cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.json +# hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 + + +================================================================ +SKIP/PASS COMMENTS XTAB + + +---------------------------------------------------------------- input comments1.xtab +cat ./reg_test/input/comments/comments1.xtab +x 1 +#hello world3 +z 3 + +x 2 +#hello world4 +z 5 + + + +---------------------------------------------------------------- skip comments1.xtab +mlr --skip-comments --ixtab --odkvp cat +x=1,z=3 +x=2,z=5 + +mlr --skip-comments --ixtab --odkvp cat ./reg_test/input/comments/comments1.xtab +x=1,z=3 +x=2,z=5 + + +---------------------------------------------------------------- pass comments1.xtab +mlr --pass-comments --ixtab --odkvp cat +#hello world3 +x=1,z=3 +#hello world4 +x=2,z=5 + +mlr --pass-comments --ixtab --odkvp cat ./reg_test/input/comments/comments1.xtab +#hello world3 +x=1,z=3 +#hello world4 +x=2,z=5 + + +---------------------------------------------------------------- input comments2.xtab +cat ./reg_test/input/comments/comments2.xtab +#hello world1 + +#hello world2 +x 1 +#hello world3 +z 3 + +x 2 +#hello world4 +z 5 +#hello world5 + +#hello world6 + + +---------------------------------------------------------------- skip comments2.xtab +mlr --skip-comments --ixtab --odkvp cat +x=1,z=3 +x=2,z=5 + +mlr --skip-comments --ixtab --odkvp cat ./reg_test/input/comments/comments2.xtab +x=1,z=3 +x=2,z=5 + + +---------------------------------------------------------------- pass comments2.xtab +mlr --pass-comments --ixtab --odkvp cat +#hello world1 +#hello world2 +#hello world3 +x=1,z=3 +#hello world4 +#hello world5 +x=2,z=5 +#hello world6 + +mlr --pass-comments --ixtab --odkvp cat ./reg_test/input/comments/comments2.xtab +#hello world1 +#hello world2 +#hello world3 +x=1,z=3 +#hello world4 +#hello world5 +x=2,z=5 +#hello world6 + +mlr termcvt --lf2crlf + +---------------------------------------------------------------- input comments1-crlf.xtab +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.xtab +x 1 +#hello world3 +z 3 + +x 2 +#hello world4 +z 5 + + + +---------------------------------------------------------------- skip comments1-crlf.xtab +mlr --skip-comments --ixtab --odkvp cat +x=1,z=3 +x=2,z=5 + +mlr --skip-comments --ixtab --odkvp cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.xtab +x=1,z=3 +x=2,z=5 + + +---------------------------------------------------------------- pass comments1-crlf.xtab +mlr --pass-comments --ixtab --odkvp cat +#hello world3 +x=1,z=3 +#hello world4 +x=2,z=5 + +mlr --pass-comments --ixtab --odkvp cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.xtab +#hello world3 +x=1,z=3 +#hello world4 +x=2,z=5 + + +================================================================ +SKIP/PASS COMMENTS CSVLITE + + +---------------------------------------------------------------- input comments1.csv +cat ./reg_test/input/comments/comments1.csv +# hello +a,b,c +1,2,3 +4,5,6 + + +---------------------------------------------------------------- skip comments1.csv +mlr --skip-comments --icsvlite --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --icsvlite --odkvp cat ./reg_test/input/comments/comments1.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments1.csv +mlr --pass-comments --icsvlite --odkvp cat +# hello +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --pass-comments --icsvlite --odkvp cat ./reg_test/input/comments/comments1.csv +# hello +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- input comments2.csv +cat ./reg_test/input/comments/comments2.csv +# hello +a,b,c +# hi +1,2,3 +# there +4,5,6 +# haha + + +---------------------------------------------------------------- skip comments2.csv +mlr --skip-comments --icsvlite --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --icsvlite --odkvp cat ./reg_test/input/comments/comments2.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments2.csv +mlr --pass-comments --icsvlite --odkvp cat +# hello +# hi +a=1,b=2,c=3 +# there +a=4,b=5,c=6 +# haha + +mlr --pass-comments --icsvlite --odkvp cat ./reg_test/input/comments/comments2.csv +# hello +# hi +a=1,b=2,c=3 +# there +a=4,b=5,c=6 +# haha + +mlr termcvt --lf2crlf + +---------------------------------------------------------------- input comments1-crlf.csv +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.csv +# hello +a,b,c +1,2,3 +4,5,6 + + +---------------------------------------------------------------- skip comments1-crlf.csv +mlr --skip-comments --icsvlite --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --icsvlite --odkvp cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments1-crlf.csv +mlr --pass-comments --icsvlite --odkvp cat +# hello +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --pass-comments --icsvlite --odkvp cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.csv +# hello +a=1,b=2,c=3 +a=4,b=5,c=6 + + +================================================================ +SKIP/PASS COMMENTS CSV + + +---------------------------------------------------------------- input comments1.csv +cat ./reg_test/input/comments/comments1.csv +# hello +a,b,c +1,2,3 +4,5,6 + + +---------------------------------------------------------------- skip comments1.csv +mlr --skip-comments --icsv --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --icsv --odkvp cat ./reg_test/input/comments/comments1.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments1.csv +mlr --pass-comments --icsv --odkvp cat +# hello +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --pass-comments --icsv --odkvp cat ./reg_test/input/comments/comments1.csv +# hello +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- input comments2.csv +cat ./reg_test/input/comments/comments2.csv +# hello +a,b,c +# hi +1,2,3 +# there +4,5,6 +# haha + + +---------------------------------------------------------------- skip comments2.csv +mlr --skip-comments --icsv --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --icsv --odkvp cat ./reg_test/input/comments/comments2.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments2.csv +mlr --pass-comments --icsv --odkvp cat +# hello +# hi +a=1,b=2,c=3 +# there +a=4,b=5,c=6 +# haha + +mlr --pass-comments --icsv --odkvp cat ./reg_test/input/comments/comments2.csv +# hello +# hi +a=1,b=2,c=3 +# there +a=4,b=5,c=6 +# haha + +mlr termcvt --lf2crlf + +---------------------------------------------------------------- input comments1-crlf.csv +cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.csv +# hello +a,b,c +1,2,3 +4,5,6 + + +---------------------------------------------------------------- skip comments1-crlf.csv +mlr --skip-comments --icsv --odkvp cat +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --skip-comments --icsv --odkvp cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.csv +a=1,b=2,c=3 +a=4,b=5,c=6 + + +---------------------------------------------------------------- pass comments1-crlf.csv +mlr --pass-comments --icsv --odkvp cat +# hello +a=1,b=2,c=3 +a=4,b=5,c=6 + +mlr --pass-comments --icsv --odkvp cat /Users/kerl/pub_http_internet/miller-releases/miller-head/c/output-regtest/comments1-crlf.csv +# hello +a=1,b=2,c=3 +a=4,b=5,c=6 + + +================================================================ +INT64 I/O + +mlr --oxtab put $c=$a;$d=$b;$e=hexfmt($a);$f=hexfmt($b) ./reg_test/input/int64io.dkvp +a 0x1 +b 1 +c 1 +d 1 +e 0x1 +f 0x1 + +a 0x7ffffffffffffffe +b 9223372036854775806 +c 9223372036854775806 +d 9223372036854775806 +e 0x7ffffffffffffffe +f 0x7ffffffffffffffe + +a 0x7fffffffffffffff +b 9223372036854775807 +c 9223372036854775807 +d 9223372036854775807 +e 0x7fffffffffffffff +f 0x7fffffffffffffff + +a 0x8000000000000000 +b -9223372036854775808 +c -9223372036854775808 +d -9223372036854775808 +e 0x8000000000000000 +f 0x8000000000000000 + +a 0xffffffffffffffff +b -1 +c -1 +d -1 +e 0xffffffffffffffff +f 0xffffffffffffffff + +mlr --oxtab --ofmt %.8g put $p0=$p+0;$p1=$p+1;$p2=$p+2;$p3=$p+3 ./reg_test/input/int64arith.dkvp +p 0x7ffffffffffff9ff +n 0x8000000000000000 +p0 9223372036854774271 +p1 9223372036854774272 +p2 9223372036854774273 +p3 9223372036854774274 + +p 0x7ffffffffffffa00 +n 0x8000000000000001 +p0 9223372036854774272 +p1 9223372036854774273 +p2 9223372036854774274 +p3 9223372036854774275 + +p 0x7ffffffffffffbff +n 0x8000000000000200 +p0 9223372036854774783 +p1 9223372036854774784 +p2 9223372036854774785 +p3 9223372036854774786 + +p 0x7ffffffffffffc00 +n 0x8000000000000400 +p0 9223372036854774784 +p1 9223372036854774785 +p2 9223372036854774786 +p3 9223372036854774787 + +p 0x7ffffffffffffe00 +n 0x8000000000000401 +p0 9223372036854775296 +p1 9223372036854775297 +p2 9223372036854775298 +p3 9223372036854775299 + +p 0x7ffffffffffffffe +n 0x8000000000000600 +p0 9223372036854775806 +p1 9223372036854775807 +p2 9.223372e+18 +p3 9.223372e+18 + +p 0x7fffffffffffffff +n 0x8000000000000601 +p0 9223372036854775807 +p1 9.223372e+18 +p2 9.223372e+18 +p3 9.223372e+18 + +mlr --oxtab --ofmt %.8g put $p0=$p-0;$p1=$p-1;$p2=$p-2;$p3=$p-3 ./reg_test/input/int64arith.dkvp +p 0x7ffffffffffff9ff +n 0x8000000000000000 +p0 9223372036854774271 +p1 9223372036854774270 +p2 9223372036854774269 +p3 9223372036854774268 + +p 0x7ffffffffffffa00 +n 0x8000000000000001 +p0 9223372036854774272 +p1 9223372036854774271 +p2 9223372036854774270 +p3 9223372036854774269 + +p 0x7ffffffffffffbff +n 0x8000000000000200 +p0 9223372036854774783 +p1 9223372036854774782 +p2 9223372036854774781 +p3 9223372036854774780 + +p 0x7ffffffffffffc00 +n 0x8000000000000400 +p0 9223372036854774784 +p1 9223372036854774783 +p2 9223372036854774782 +p3 9223372036854774781 + +p 0x7ffffffffffffe00 +n 0x8000000000000401 +p0 9223372036854775296 +p1 9223372036854775295 +p2 9223372036854775294 +p3 9223372036854775293 + +p 0x7ffffffffffffffe +n 0x8000000000000600 +p0 9223372036854775806 +p1 9223372036854775805 +p2 9223372036854775804 +p3 9223372036854775803 + +p 0x7fffffffffffffff +n 0x8000000000000601 +p0 9223372036854775807 +p1 9223372036854775806 +p2 9223372036854775805 +p3 9223372036854775804 + +mlr --oxtab --ofmt %.8g put $p0=$p*0;$p1=$p*1;$p2=$p*2;$p3=$p*3 ./reg_test/input/int64arith.dkvp +p 0x7ffffffffffff9ff +n 0x8000000000000000 +p0 0 +p1 9223372036854774271 +p2 1.8446744e+19 +p3 2.7670116e+19 + +p 0x7ffffffffffffa00 +n 0x8000000000000001 +p0 0 +p1 9223372036854774272 +p2 1.8446744e+19 +p3 2.7670116e+19 + +p 0x7ffffffffffffbff +n 0x8000000000000200 +p0 0 +p1 9223372036854774783 +p2 1.8446744e+19 +p3 2.7670116e+19 + +p 0x7ffffffffffffc00 +n 0x8000000000000400 +p0 0 +p1 9223372036854774784 +p2 1.8446744e+19 +p3 2.7670116e+19 + +p 0x7ffffffffffffe00 +n 0x8000000000000401 +p0 0 +p1 9.223372e+18 +p2 1.8446744e+19 +p3 2.7670116e+19 + +p 0x7ffffffffffffffe +n 0x8000000000000600 +p0 0 +p1 9.223372e+18 +p2 1.8446744e+19 +p3 2.7670116e+19 + +p 0x7fffffffffffffff +n 0x8000000000000601 +p0 0 +p1 9.223372e+18 +p2 1.8446744e+19 +p3 2.7670116e+19 + +mlr --oxtab --ofmt %.8g put $n0=$n+0;$n1=$n+1;$n2=$n+2;$n3=$n+3 ./reg_test/input/int64arith.dkvp +p 0x7ffffffffffff9ff +n 0x8000000000000000 +n0 -9223372036854775808 +n1 -9223372036854775807 +n2 -9223372036854775806 +n3 -9223372036854775805 + +p 0x7ffffffffffffa00 +n 0x8000000000000001 +n0 -9223372036854775807 +n1 -9223372036854775806 +n2 -9223372036854775805 +n3 -9223372036854775804 + +p 0x7ffffffffffffbff +n 0x8000000000000200 +n0 -9223372036854775296 +n1 -9223372036854775295 +n2 -9223372036854775294 +n3 -9223372036854775293 + +p 0x7ffffffffffffc00 +n 0x8000000000000400 +n0 -9223372036854774784 +n1 -9223372036854774783 +n2 -9223372036854774782 +n3 -9223372036854774781 + +p 0x7ffffffffffffe00 +n 0x8000000000000401 +n0 -9223372036854774783 +n1 -9223372036854774782 +n2 -9223372036854774781 +n3 -9223372036854774780 + +p 0x7ffffffffffffffe +n 0x8000000000000600 +n0 -9223372036854774272 +n1 -9223372036854774271 +n2 -9223372036854774270 +n3 -9223372036854774269 + +p 0x7fffffffffffffff +n 0x8000000000000601 +n0 -9223372036854774271 +n1 -9223372036854774270 +n2 -9223372036854774269 +n3 -9223372036854774268 + +mlr --oxtab --ofmt %.8g put $n0=$n-0;$n1=$n-1;$n2=$n-2;$n3=$n-3 ./reg_test/input/int64arith.dkvp +p 0x7ffffffffffff9ff +n 0x8000000000000000 +n0 -9223372036854775808 +n1 -9.223372e+18 +n2 -9.223372e+18 +n3 -9.223372e+18 + +p 0x7ffffffffffffa00 +n 0x8000000000000001 +n0 -9223372036854775807 +n1 -9223372036854775808 +n2 -9.223372e+18 +n3 -9.223372e+18 + +p 0x7ffffffffffffbff +n 0x8000000000000200 +n0 -9223372036854775296 +n1 -9223372036854775297 +n2 -9223372036854775298 +n3 -9223372036854775299 + +p 0x7ffffffffffffc00 +n 0x8000000000000400 +n0 -9223372036854774784 +n1 -9223372036854774785 +n2 -9223372036854774786 +n3 -9223372036854774787 + +p 0x7ffffffffffffe00 +n 0x8000000000000401 +n0 -9223372036854774783 +n1 -9223372036854774784 +n2 -9223372036854774785 +n3 -9223372036854774786 + +p 0x7ffffffffffffffe +n 0x8000000000000600 +n0 -9223372036854774272 +n1 -9223372036854774273 +n2 -9223372036854774274 +n3 -9223372036854774275 + +p 0x7fffffffffffffff +n 0x8000000000000601 +n0 -9223372036854774271 +n1 -9223372036854774272 +n2 -9223372036854774273 +n3 -9223372036854774274 + +mlr --oxtab --ofmt %.8g put $n0=$n*0;$n1=$n*1;$n2=$n*2;$n3=$n*3 ./reg_test/input/int64arith.dkvp +p 0x7ffffffffffff9ff +n 0x8000000000000000 +n0 0 +n1 -9.223372e+18 +n2 -1.8446744e+19 +n3 -2.7670116e+19 + +p 0x7ffffffffffffa00 +n 0x8000000000000001 +n0 0 +n1 -9.223372e+18 +n2 -1.8446744e+19 +n3 -2.7670116e+19 + +p 0x7ffffffffffffbff +n 0x8000000000000200 +n0 0 +n1 -9.223372e+18 +n2 -1.8446744e+19 +n3 -2.7670116e+19 + +p 0x7ffffffffffffc00 +n 0x8000000000000400 +n0 0 +n1 -9223372036854774784 +n2 -1.8446744e+19 +n3 -2.7670116e+19 + +p 0x7ffffffffffffe00 +n 0x8000000000000401 +n0 0 +n1 -9223372036854774783 +n2 -1.8446744e+19 +n3 -2.7670116e+19 + +p 0x7ffffffffffffffe +n 0x8000000000000600 +n0 0 +n1 -9223372036854774272 +n2 -1.8446744e+19 +n3 -2.7670116e+19 + +p 0x7fffffffffffffff +n 0x8000000000000601 +n0 0 +n1 -9223372036854774271 +n2 -1.8446744e+19 +n3 -2.7670116e+19 + + +================================================================ +COMPRESSED INPUT + +mlr --csv --prepipe cat cat ./reg_test/input/rfc-csv/simple.csv-crlf +a,b,c +1,x,3 +4,5,6 +x,"y""yy",z + +mlr --dkvp --prepipe cat cat ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --csv --prepipe cat cat +a,b,c +1,x,3 +4,5,6 +x,"y""yy",z + +mlr --dkvp --prepipe cat cat +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +STDIN + +mlr --csv cat +a,b,c +1,x,3 +4,5,6 +x,"y""yy",z + + +================================================================ +RFC-CSV + +mlr --csv cat ./reg_test/input/rfc-csv/simple.csv-crlf +a,b,c +1,x,3 +4,5,6 +x,"y""yy",z + +mlr --csv cat ./reg_test/input/rfc-csv/simple-truncated.csv +a,b,c +1,x,3 +4,5,6 + +mlr --csv cat ./reg_test/input/rfc-csv/narrow.csv +a +1 +2 +3 +4 + +mlr --csv cat ./reg_test/input/rfc-csv/narrow-truncated.csv +a +1 +2 +3 +4 + +mlr --csv cat ./reg_test/input/rfc-csv/quoted-comma.csv +a,b,c +1,"x,3",y +4,5,6 + +mlr --csv cat ./reg_test/input/rfc-csv/quoted-comma-truncated.csv +a,b,c +1,"x,3",y +4,5,6 + +mlr --csv cat ./reg_test/input/rfc-csv/quoted-crlf.csv +a,b,c +1,"x +3",y +4,5,6 + +mlr --csv cat ./reg_test/input/rfc-csv/quoted-crlf-truncated.csv +a,b,c +1,"x +3",y +4,5,6 + +mlr --csv cat ./reg_test/input/rfc-csv/simple-truncated.csv ./reg_test/input/rfc-csv/simple.csv-crlf +a,b,c +1,x,3 +4,5,6 +1,x,3 +4,5,6 +x,"y""yy",z + +mlr --csv --ifs semicolon --ofs pipe --irs lf --ors lflf cut -x -f b ./reg_test/input/rfc-csv/modify-defaults.csv +a|c + +1|3 + +4|6 + + +mlr --csv --rs lf --quote-original cut -o -f c,b,a ./reg_test/input/quote-original.csv +c,b,a +3,2,1 +6,"5",4 +"9",8,"7" + +mlr --icsv --oxtab cat ./reg_test/input/comma-at-eof.csv +a 1 +b 2 +c 3 + +a 4 +b 5 +c + +mlr --csv --quote-all cat ./reg_test/input/rfc-csv/simple.csv-crlf +"a","b","c" +"1","x","3" +"4","5","6" +"x","y""yy","z" + +mlr --csv --quote-original cat ./reg_test/input/rfc-csv/simple.csv-crlf +a,b,c +1,x,3 +4,5,6 +"x","y""yy","z" + +mlr --itsv --rs lf --oxtab cat ./reg_test/input/simple.tsv +a pan +b pan +i 1 +x 2 +y 0.989945 + +a eks +b pan +i 2 +x 1 +y 0.775159 + +a wye +b wye +i 3 +x 1 +y 0.761642 + +a eks +b wye +i 4 +x 5 +y 0.322934 + +a wye +b pan +i 5 +x 5 +y 0.448283 + +mlr --iusv --oxtab cat ./reg_test/input/example.usv +a d +b e +c f + +a g +b h +c i + + +================================================================ +RAGGED NON-RFC CSV + +mlr --icsv --oxtab --ragged cat ./reg_test/input/ragged.csv +a 1 +b 2 +c 3 + +a 4 +b 5 +c + +a 6 +b 7 +c 8 +4 9 + +mlr --icsvlite --oxtab --ragged cat ./reg_test/input/ragged.csv +a 1 +b 2 +c 3 + +a 4 +b 5 +c + +a 6 +b 7 +c 8 +4 9 + + +================================================================ +MARKDOWN OUTPUT + +mlr --itsv --rs lf --omd cat ./reg_test/input/simple.tsv +| a | b | i | x | y | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 2 | 0.989945 | +| eks | pan | 2 | 1 | 0.775159 | +| wye | wye | 3 | 1 | 0.761642 | +| eks | wye | 4 | 5 | 0.322934 | +| wye | pan | 5 | 5 | 0.448283 | + + +================================================================ +CSV/RS ENVIRONMENT DEFAULTS + +mlr --csv cut -f a ./reg_test/input/rfc-csv/simple.csv-crlf +a +1 +4 +x + +mlr --csv --rs crlf cut -f a ./reg_test/input/rfc-csv/simple.csv-crlf +a +1 +4 +x + +mlr --csv --rs lf cut -f a ./reg_test/input/rfc-csv/simple.csv-crlf +mlr: unmatched double quote at line 3. +a +1 +4 + + +================================================================ +MULTI-CHARACTER IRS/IFS/IPS FOR DKVP + +mlr --oxtab --idkvp --irs lf --ifs , --ips = cut -o -f x,a,i ./reg_test/input/multi-sep.dkvp-crlf +x :0.641593543645736508/ +a :wye/ +i :0/ + +x :0.827614412562742041/ +a :eks/ +i :1/ + +x :0.923068348748175560/ +a :zee/ +i :2/ + +x :0.000047786161325772/ +a :zee/ +i :3/ + +x :0.676537984365847889/ +a :zee/ +i :4/ + +mlr --oxtab --idkvp --irs lf --ifs /, --ips =: cut -o -f x,a,i ./reg_test/input/multi-sep.dkvp-crlf +x 0.641593543645736508 +a wye +i 0 + +x 0.827614412562742041 +a eks +i 1 + +x 0.923068348748175560 +a zee +i 2 + +x 0.000047786161325772 +a zee +i 3 + +x 0.676537984365847889 +a zee +i 4 + +mlr --oxtab --idkvp --irs crlf --ifs , --ips = cut -o -f x,a,i ./reg_test/input/multi-sep.dkvp-crlf +x :0.641593543645736508/ +a :wye/ +i :0/ + +x :0.827614412562742041/ +a :eks/ +i :1/ + +x :0.923068348748175560/ +a :zee/ +i :2/ + +x :0.000047786161325772/ +a :zee/ +i :3/ + +x :0.676537984365847889/ +a :zee/ +i :4/ + +mlr --oxtab --idkvp --irs crlf --ifs /, --ips =: cut -o -f x,a,i ./reg_test/input/multi-sep.dkvp-crlf +x 0.641593543645736508 +a wye +i 0 + +x 0.827614412562742041 +a eks +i 1 + +x 0.923068348748175560 +a zee +i 2 + +x 0.000047786161325772 +a zee +i 3 + +x 0.676537984365847889 +a zee +i 4 + + +================================================================ +MULTI-CHARACTER IRS/IFS FOR NIDX + +mlr --oxtab --inidx --irs lf --ifs , cut -o -f 4,1,3 ./reg_test/input/multi-sep.dkvp-crlf +4 x=:0.641593543645736508/ +1 a=:wye/ +3 i=:0/ + +4 x=:0.827614412562742041/ +1 a=:eks/ +3 i=:1/ + +4 x=:0.923068348748175560/ +1 a=:zee/ +3 i=:2/ + +4 x=:0.000047786161325772/ +1 a=:zee/ +3 i=:3/ + +4 x=:0.676537984365847889/ +1 a=:zee/ +3 i=:4/ + +mlr --oxtab --inidx --irs lf --ifs /, cut -o -f 4,1,3 ./reg_test/input/multi-sep.dkvp-crlf +4 x=:0.641593543645736508 +1 a=:wye +3 i=:0 + +4 x=:0.827614412562742041 +1 a=:eks +3 i=:1 + +4 x=:0.923068348748175560 +1 a=:zee +3 i=:2 + +4 x=:0.000047786161325772 +1 a=:zee +3 i=:3 + +4 x=:0.676537984365847889 +1 a=:zee +3 i=:4 + +mlr --oxtab --inidx --irs crlf --ifs , cut -o -f 4,1,3 ./reg_test/input/multi-sep.dkvp-crlf +4 x=:0.641593543645736508/ +1 a=:wye/ +3 i=:0/ + +4 x=:0.827614412562742041/ +1 a=:eks/ +3 i=:1/ + +4 x=:0.923068348748175560/ +1 a=:zee/ +3 i=:2/ + +4 x=:0.000047786161325772/ +1 a=:zee/ +3 i=:3/ + +4 x=:0.676537984365847889/ +1 a=:zee/ +3 i=:4/ + +mlr --oxtab --inidx --irs crlf --ifs /, cut -o -f 4,1,3 ./reg_test/input/multi-sep.dkvp-crlf +4 x=:0.641593543645736508 +1 a=:wye +3 i=:0 + +4 x=:0.827614412562742041 +1 a=:eks +3 i=:1 + +4 x=:0.923068348748175560 +1 a=:zee +3 i=:2 + +4 x=:0.000047786161325772 +1 a=:zee +3 i=:3 + +4 x=:0.676537984365847889 +1 a=:zee +3 i=:4 + + +================================================================ +MULTI-CHARACTER IRS/IFS FOR CSVLITE + +mlr --oxtab --icsvlite --irs lf --ifs , cut -o -f x/,a/,i/ ./reg_test/input/multi-sep.csv-crlf +x/ 0.641593543645736508/ +a/ wye/ +i/ 0/ + +x/ 0.827614412562742041/ +a/ eks/ +i/ 1/ + +x/ 0.923068348748175560/ +a/ zee/ +i/ 2/ + +x/ 0.000047786161325772/ +a/ zee/ +i/ 3/ + +x/ 0.676537984365847889/ +a/ zee/ +i/ 4/ + +mlr --oxtab --icsvlite --irs lf --ifs /, cut -o -f x,a,i ./reg_test/input/multi-sep.csv-crlf +x 0.641593543645736508 +a wye +i 0 + +x 0.827614412562742041 +a eks +i 1 + +x 0.923068348748175560 +a zee +i 2 + +x 0.000047786161325772 +a zee +i 3 + +x 0.676537984365847889 +a zee +i 4 + +mlr --oxtab --icsvlite --irs crlf --ifs , cut -o -f x/,a/,i/ ./reg_test/input/multi-sep.csv-crlf +x/ 0.641593543645736508/ +a/ wye/ +i/ 0/ + +x/ 0.827614412562742041/ +a/ eks/ +i/ 1/ + +x/ 0.923068348748175560/ +a/ zee/ +i/ 2/ + +x/ 0.000047786161325772/ +a/ zee/ +i/ 3/ + +x/ 0.676537984365847889/ +a/ zee/ +i/ 4/ + +mlr --oxtab --icsvlite --irs crlf --ifs /, cut -o -f x,a,i ./reg_test/input/multi-sep.csv-crlf +x 0.641593543645736508 +a wye +i 0 + +x 0.827614412562742041 +a eks +i 1 + +x 0.923068348748175560 +a zee +i 2 + +x 0.000047786161325772 +a zee +i 3 + +x 0.676537984365847889 +a zee +i 4 + + +================================================================ +MULTI-CHARACTER SEPARATORS FOR XTAB + +mlr --xtab --ifs crlf --ofs Z cut -x -f b ./reg_test/input/truncated.xtab-crlf +a 1Zc 3ZZd 4Ze 5Z +mlr --xtab --ips . --ops @ cut -x -f b ./reg_test/input/dots.xtab +a@1 +c@345 + +defg@6 +hi@@@78 + +mlr --xtab --ips : --ops @@@@ put $sum=int($a+$b) ./reg_test/input/multi-ips.dkvp +a@@@@1 +b@@@@2 +sum@@@@3 + + +================================================================ +EMBEDDED IPS FOR XTAB + +mlr --xtab cat ./reg_test/input/embedded-ips.xtab +a 1 +b 2 +c 3 4 5 + + +================================================================ +MULTI-CHARACTER IRS FOR PPRINT + +mlr --pprint --irs crlf --ifs / --ofs @ cut -x -f b ./reg_test/input/dots.pprint-crlf +a@@@i@@x@@@@@@@@@@@@@@@@@@@y +pan@1@@0.3467901443380824@@0.7268028627434533 +eks@2@@0.7586799647899636@@0.5221511083334797 +wye@3@@0.20460330576630303@0.33831852551664776 +eks@4@@0.38139939387114097@0.13418874328430463 +wye@5@@0.5732889198020006@@0.8636244699032729 +zee@6@@0.5271261600918548@@0.49322128674835697 +eks@7@@0.6117840605678454@@0.1878849191181694 +zee@8@@0.5985540091064224@@0.976181385699006 +hat@9@@0.03144187646093577@0.7495507603507059 +pan@10@0.5026260055412137@@0.9526183602969864 + + +================================================================ +BARRED PPRINT + +mlr --opprint --barred cat ./reg_test/input/abixy ++-----+-----+----+---------------------+---------------------+ +| a | b | i | x | y | ++-----+-----+----+---------------------+---------------------+ +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | ++-----+-----+----+---------------------+---------------------+ + +mlr --opprint --barred --right cat ./reg_test/input/abixy ++-----+-----+----+---------------------+---------------------+ +| a | b | i | x | y | ++-----+-----+----+---------------------+---------------------+ +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | ++-----+-----+----+---------------------+---------------------+ + +mlr --opprint --barred cat ./reg_test/input/abixy-het ++-----+-----+---+--------------------+--------------------+ +| a | b | i | x | y | ++-----+-----+---+--------------------+--------------------+ +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | ++-----+-----+---+--------------------+--------------------+ + ++-----+-----+---+---------------------+---------------------+ +| aaa | b | i | x | y | ++-----+-----+---+---------------------+---------------------+ +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | ++-----+-----+---+---------------------+---------------------+ + ++-----+-----+---+---------------------+---------------------+ +| a | bbb | i | x | y | ++-----+-----+---+---------------------+---------------------+ +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | ++-----+-----+---+---------------------+---------------------+ + ++-----+-----+---+--------------------+--------------------+ +| a | b | i | xxx | y | ++-----+-----+---+--------------------+--------------------+ +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | ++-----+-----+---+--------------------+--------------------+ + ++-----+-----+---+--------------------+---------------------+ +| a | b | i | x | y | ++-----+-----+---+--------------------+---------------------+ +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | ++-----+-----+---+--------------------+---------------------+ + ++-----+-----+-----+--------------------+--------------------+ +| a | b | iii | x | y | ++-----+-----+-----+--------------------+--------------------+ +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | ++-----+-----+-----+--------------------+--------------------+ + ++-----+-----+---+--------------------+-------------------+ +| a | b | i | x | yyy | ++-----+-----+---+--------------------+-------------------+ +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | ++-----+-----+---+--------------------+-------------------+ + ++-----+-----+---+---------------------+--------------------+ +| aaa | bbb | i | x | y | ++-----+-----+---+---------------------+--------------------+ +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | ++-----+-----+---+---------------------+--------------------+ + ++-----+-----+----+--------------------+--------------------+ +| a | b | i | x | y | ++-----+-----+----+--------------------+--------------------+ +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | ++-----+-----+----+--------------------+--------------------+ + +mlr --opprint --barred --right cat ./reg_test/input/abixy-het ++-----+-----+---+--------------------+--------------------+ +| a | b | i | x | y | ++-----+-----+---+--------------------+--------------------+ +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | ++-----+-----+---+--------------------+--------------------+ + ++-----+-----+---+---------------------+---------------------+ +| aaa | b | i | x | y | ++-----+-----+---+---------------------+---------------------+ +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | ++-----+-----+---+---------------------+---------------------+ + ++-----+-----+---+---------------------+---------------------+ +| a | bbb | i | x | y | ++-----+-----+---+---------------------+---------------------+ +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | ++-----+-----+---+---------------------+---------------------+ + ++-----+-----+---+--------------------+--------------------+ +| a | b | i | xxx | y | ++-----+-----+---+--------------------+--------------------+ +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | ++-----+-----+---+--------------------+--------------------+ + ++-----+-----+---+--------------------+---------------------+ +| a | b | i | x | y | ++-----+-----+---+--------------------+---------------------+ +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | ++-----+-----+---+--------------------+---------------------+ + ++-----+-----+-----+--------------------+--------------------+ +| a | b | iii | x | y | ++-----+-----+-----+--------------------+--------------------+ +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | ++-----+-----+-----+--------------------+--------------------+ + ++-----+-----+---+--------------------+-------------------+ +| a | b | i | x | yyy | ++-----+-----+---+--------------------+-------------------+ +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | ++-----+-----+---+--------------------+-------------------+ + ++-----+-----+---+---------------------+--------------------+ +| aaa | bbb | i | x | y | ++-----+-----+---+---------------------+--------------------+ +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | ++-----+-----+---+---------------------+--------------------+ + ++-----+-----+----+--------------------+--------------------+ +| a | b | i | x | y | ++-----+-----+----+--------------------+--------------------+ +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | ++-----+-----+----+--------------------+--------------------+ + + +================================================================ +MULTI-CHARACTER IXS SPECIFIERS + +mlr --oxtab --idkvp --irs lf --ifs , --ips = cut -o -f x,a,i ./reg_test/input/multi-sep.dkvp-crlf +x :0.641593543645736508/ +a :wye/ +i :0/ + +x :0.827614412562742041/ +a :eks/ +i :1/ + +x :0.923068348748175560/ +a :zee/ +i :2/ + +x :0.000047786161325772/ +a :zee/ +i :3/ + +x :0.676537984365847889/ +a :zee/ +i :4/ + +mlr --oxtab --idkvp --irs lf --ifs /, --ips =: cut -o -f x,a,i ./reg_test/input/multi-sep.dkvp-crlf +x 0.641593543645736508 +a wye +i 0 + +x 0.827614412562742041 +a eks +i 1 + +x 0.923068348748175560 +a zee +i 2 + +x 0.000047786161325772 +a zee +i 3 + +x 0.676537984365847889 +a zee +i 4 + + +================================================================ +JSON I/O + +mlr --ijson --opprint cat ./reg_test/input/small-non-nested.json +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --ijson --opprint cat ./reg_test/input/small-non-nested-wrapped.json +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --ijson --oxtab cat ./reg_test/input/small-nested.json +z:pan:1 0.726803 +z:pan:0 0.952618 +z:eks:0 0.134189 +z:eks:1 0.187885 +z:wye:1 0.863624 +z:zee:0 0.976181 +z:hat:1 0.749551 + +mlr --ojson cat ./reg_test/input/json-output-options.dkvp +{ "a": 1, "b": "x", "c": 3 } +{ "d": 4 } +{ "1": 5, "f": 6 } + +mlr --ojson --jvstack cat ./reg_test/input/json-output-options.dkvp +{ + "a": 1, + "b": "x", + "c": 3 +} +{ + "d": 4 +} +{ + "1": 5, + "f": 6 +} + +mlr --ojson --jlistwrap cat ./reg_test/input/json-output-options.dkvp +[ +{ "a": 1, "b": "x", "c": 3 } +,{ "d": 4 } +,{ "1": 5, "f": 6 } +] + +mlr --ojson --jvstack --jlistwrap cat ./reg_test/input/json-output-options.dkvp +[ +{ + "a": 1, + "b": "x", + "c": 3 +} +,{ + "d": 4 +} +,{ + "1": 5, + "f": 6 +} +] + +mlr --ojson --jquoteall cat ./reg_test/input/json-output-options.dkvp +{ "a": "1", "b": "x", "c": "3" } +{ "d": "4" } +{ "1": "5", "f": "6" } + +mlr --ojson --jvstack --jquoteall cat ./reg_test/input/json-output-options.dkvp +{ + "a": "1", + "b": "x", + "c": "3" +} +{ + "d": "4" +} +{ + "1": "5", + "f": "6" +} + +mlr --ojson --jlistwrap --jquoteall cat ./reg_test/input/json-output-options.dkvp +[ +{ "a": "1", "b": "x", "c": "3" } +,{ "d": "4" } +,{ "1": "5", "f": "6" } +] + +mlr --ojson --jvstack --jlistwrap --jquoteall cat ./reg_test/input/json-output-options.dkvp +[ +{ + "a": "1", + "b": "x", + "c": "3" +} +,{ + "d": "4" +} +,{ + "1": "5", + "f": "6" +} +] + +mlr --ojson --jvquoteall cat ./reg_test/input/json-output-options.dkvp +{ "a": "1", "b": "x", "c": "3" } +{ "d": "4" } +{ "1": "5", "f": "6" } + +mlr --ojson --jvstack --jvquoteall cat ./reg_test/input/json-output-options.dkvp +{ + "a": "1", + "b": "x", + "c": "3" +} +{ + "d": "4" +} +{ + "1": "5", + "f": "6" +} + +mlr --ojson --jlistwrap --jvquoteall cat ./reg_test/input/json-output-options.dkvp +[ +{ "a": "1", "b": "x", "c": "3" } +,{ "d": "4" } +,{ "1": "5", "f": "6" } +] + +mlr --ojson --jvstack --jlistwrap --jvquoteall cat ./reg_test/input/json-output-options.dkvp +[ +{ + "a": "1", + "b": "x", + "c": "3" +} +,{ + "d": "4" +} +,{ + "1": "5", + "f": "6" +} +] + +mlr --ojson --jknquoteint cat ./reg_test/input/json-output-options.dkvp +{ "a": 1, "b": "x", "c": 3 } +{ "d": 4 } +{ "1": 5, "f": 6 } + +mlr --ojson --jvstack --jknquoteint cat ./reg_test/input/json-output-options.dkvp +{ + "a": 1, + "b": "x", + "c": 3 +} +{ + "d": 4 +} +{ + "1": 5, + "f": 6 +} + +mlr --ojson --jlistwrap --jknquoteint cat ./reg_test/input/json-output-options.dkvp +[ +{ "a": 1, "b": "x", "c": 3 } +,{ "d": 4 } +,{ "1": 5, "f": 6 } +] + +mlr --ojson --jvstack --jlistwrap --jknquoteint cat ./reg_test/input/json-output-options.dkvp +[ +{ + "a": 1, + "b": "x", + "c": 3 +} +,{ + "d": 4 +} +,{ + "1": 5, + "f": 6 +} +] + +mlr put -q --jvquoteall dump $* ./reg_test/input/json-output-options.dkvp +{ + "a": "1", + "b": "x", + "c": "3" +} +{ + "d": "4" +} +{ + "1": "5", + "f": "6" +} + +mlr put -q --jvquoteall o = $*; o[7] = 8; dump o ./reg_test/input/json-output-options.dkvp +{ + "a": "1", + "b": "x", + "c": "3", + "7": "8" +} +{ + "d": "4", + "7": "8" +} +{ + "1": "5", + "f": "6", + "7": "8" +} + +mlr put -q --jknquoteint dump $* ./reg_test/input/json-output-options.dkvp +{ + "a": 1, + "b": "x", + "c": 3 +} +{ + "d": 4 +} +{ + "1": 5, + "f": 6 +} + +mlr put -q --jknquoteint o = $*; o[7] = 8; dump o ./reg_test/input/json-output-options.dkvp +{ + "a": 1, + "b": "x", + "c": 3, + 7: 8 +} +{ + "d": 4, + 7: 8 +} +{ + "1": 5, + "f": 6, + 7: 8 +} + +mlr --ijson --opprint cat ./reg_test/input/small-non-nested-wrapped.json ./reg_test/input/small-non-nested-wrapped.json +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --icsv --ojson --rs lf cat +{ "col": "abc \"def\" \\ghi" } + +mlr --icsv --ojson --jvquoteall --rs lf cat +{ "col": "abc \"def\" \\ghi" } + +mlr --ijson --oxtab cat ./reg_test/input/arrays.json +a 1 +b 1 + +a 2 +b:0 2 +b:1 3 + +a 3 +b:c:0 4 +b:c:1 5 + +a 4 +b:c:d:0 4 +b:c:d:1 5 + +a 5 +b:0 6 +b:1 7 +b:2:0 8 +b:2:1 9 + +a 6 +b:0:0:0 11 + +mlr --ijson --oxtab --json-map-arrays-on-input cat ./reg_test/input/arrays.json +a 1 +b 1 + +a 2 +b:0 2 +b:1 3 + +a 3 +b:c:0 4 +b:c:1 5 + +a 4 +b:c:d:0 4 +b:c:d:1 5 + +a 5 +b:0 6 +b:1 7 +b:2:0 8 +b:2:1 9 + +a 6 +b:0:0:0 11 + +mlr --ijson --oxtab --json-skip-arrays-on-input cat ./reg_test/input/arrays.json +a 1 +b 1 + +a 2 + +a 3 + +a 4 + +a 5 + +a 6 + +mlr --ijson --oxtab --json-fatal-arrays-on-input cat ./reg_test/input/arrays.json +mlr: found array item within JSON object. This is valid but unmillerable JSON. +Use --json-skip-arrays-on-input to exclude these from input without fataling. +Or, --json-map-arrays-on-input to convert them to integer-indexed maps. +mlr: Unable to parse JSON data. + +mlr --json cat ./reg_test/input/escapes.json +{ "abc\bdef\fghi": "jkl\nmno\rpqr\tstu\"vw\\xyz" } +{ "abc\bdef\fghi": "jkl\nmno\rpqr\tstu\"vw\\\\xyz" } + + +================================================================ +FORMAT-CONVERSION KEYSTROKE-SAVERS + +mlr --d2t cat ./reg_test/input/abixy.dkvp +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --d2n cat ./reg_test/input/abixy.dkvp +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --d2j cat ./reg_test/input/abixy.dkvp +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --d2p cat ./reg_test/input/abixy.dkvp +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --d2x cat ./reg_test/input/abixy.dkvp +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --d2m cat ./reg_test/input/abixy.dkvp +| a | b | i | x | y | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | + +mlr --c2t cat ./reg_test/input/abixy.csv +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --c2d cat ./reg_test/input/abixy.csv +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --c2n cat ./reg_test/input/abixy.csv +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --c2j cat ./reg_test/input/abixy.csv +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --c2p cat ./reg_test/input/abixy.csv +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --c2x cat ./reg_test/input/abixy.csv +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --c2m cat ./reg_test/input/abixy.csv +| a | b | i | x | y | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | + +mlr --t2c cat ./reg_test/input/abixy.tsv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --t2d cat ./reg_test/input/abixy.tsv +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --t2n cat ./reg_test/input/abixy.tsv +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --t2j cat ./reg_test/input/abixy.tsv +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --t2p cat ./reg_test/input/abixy.tsv +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --t2x cat ./reg_test/input/abixy.tsv +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --t2m cat ./reg_test/input/abixy.tsv +| a | b | i | x | y | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | + +mlr --n2c cat ./reg_test/input/abixy.nidx +1,2,3,4,5 +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --n2t cat ./reg_test/input/abixy.nidx +1 2 3 4 5 +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --n2d cat ./reg_test/input/abixy.nidx +1=pan,2=pan,3=1,4=0.3467901443380824,5=0.7268028627434533 +1=eks,2=pan,3=2,4=0.7586799647899636,5=0.5221511083334797 +1=wye,2=wye,3=3,4=0.20460330576630303,5=0.33831852551664776 +1=eks,2=wye,3=4,4=0.38139939387114097,5=0.13418874328430463 +1=wye,2=pan,3=5,4=0.5732889198020006,5=0.8636244699032729 +1=zee,2=pan,3=6,4=0.5271261600918548,5=0.49322128674835697 +1=eks,2=zee,3=7,4=0.6117840605678454,5=0.1878849191181694 +1=zee,2=wye,3=8,4=0.5985540091064224,5=0.976181385699006 +1=hat,2=wye,3=9,4=0.03144187646093577,5=0.7495507603507059 +1=pan,2=wye,3=10,4=0.5026260055412137,5=0.9526183602969864 + +mlr --n2j cat ./reg_test/input/abixy.nidx +{ "1": "pan", "2": "pan", "3": 1, "4": 0.3467901443380824, "5": 0.7268028627434533 } +{ "1": "eks", "2": "pan", "3": 2, "4": 0.7586799647899636, "5": 0.5221511083334797 } +{ "1": "wye", "2": "wye", "3": 3, "4": 0.20460330576630303, "5": 0.33831852551664776 } +{ "1": "eks", "2": "wye", "3": 4, "4": 0.38139939387114097, "5": 0.13418874328430463 } +{ "1": "wye", "2": "pan", "3": 5, "4": 0.5732889198020006, "5": 0.8636244699032729 } +{ "1": "zee", "2": "pan", "3": 6, "4": 0.5271261600918548, "5": 0.49322128674835697 } +{ "1": "eks", "2": "zee", "3": 7, "4": 0.6117840605678454, "5": 0.1878849191181694 } +{ "1": "zee", "2": "wye", "3": 8, "4": 0.5985540091064224, "5": 0.976181385699006 } +{ "1": "hat", "2": "wye", "3": 9, "4": 0.03144187646093577, "5": 0.7495507603507059 } +{ "1": "pan", "2": "wye", "3": 10, "4": 0.5026260055412137, "5": 0.9526183602969864 } + +mlr --n2p cat ./reg_test/input/abixy.nidx +1 2 3 4 5 +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --n2x cat ./reg_test/input/abixy.nidx +1 pan +2 pan +3 1 +4 0.3467901443380824 +5 0.7268028627434533 + +1 eks +2 pan +3 2 +4 0.7586799647899636 +5 0.5221511083334797 + +1 wye +2 wye +3 3 +4 0.20460330576630303 +5 0.33831852551664776 + +1 eks +2 wye +3 4 +4 0.38139939387114097 +5 0.13418874328430463 + +1 wye +2 pan +3 5 +4 0.5732889198020006 +5 0.8636244699032729 + +1 zee +2 pan +3 6 +4 0.5271261600918548 +5 0.49322128674835697 + +1 eks +2 zee +3 7 +4 0.6117840605678454 +5 0.1878849191181694 + +1 zee +2 wye +3 8 +4 0.5985540091064224 +5 0.976181385699006 + +1 hat +2 wye +3 9 +4 0.03144187646093577 +5 0.7495507603507059 + +1 pan +2 wye +3 10 +4 0.5026260055412137 +5 0.9526183602969864 + +mlr --n2m cat ./reg_test/input/abixy.nidx +| 1 | 2 | 3 | 4 | 5 | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | + +mlr --j2c cat ./reg_test/input/abixy.json +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --j2t cat ./reg_test/input/abixy.json +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --j2d cat ./reg_test/input/abixy.json +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --j2n cat ./reg_test/input/abixy.json +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --j2p cat ./reg_test/input/abixy.json +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --j2x cat ./reg_test/input/abixy.json +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --j2m cat ./reg_test/input/abixy.json +| a | b | i | x | y | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | + +mlr --p2c cat ./reg_test/input/abixy.pprint +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --p2t cat ./reg_test/input/abixy.pprint +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --p2d cat ./reg_test/input/abixy.pprint +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --p2n cat ./reg_test/input/abixy.pprint +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --p2j cat ./reg_test/input/abixy.pprint +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --p2x cat ./reg_test/input/abixy.pprint +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --p2m cat ./reg_test/input/abixy.pprint +| a | b | i | x | y | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | + +mlr --x2c cat ./reg_test/input/abixy.xtab +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --x2t cat ./reg_test/input/abixy.xtab +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --x2d cat ./reg_test/input/abixy.xtab +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --x2n cat ./reg_test/input/abixy.xtab +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --x2j cat ./reg_test/input/abixy.xtab +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --x2p cat ./reg_test/input/abixy.xtab +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --x2m cat ./reg_test/input/abixy.xtab +| a | b | i | x | y | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | + + +================================================================ +LF/CRLF AND AUTODETECT + +mlr --irs auto --ors lf cat ./reg_test/input/line-term-lf.dkvp +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --irs auto --ors lf cat ./reg_test/input/line-term-crlf.dkvp +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cat ./reg_test/input/line-term-lf.dkvp +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr cat ./reg_test/input/line-term-crlf.dkvp +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +---------------------------------------------------------------- nidx +mlr --irs auto --ors lf --nidx --fs comma cat ./reg_test/input/line-term-lf.dkvp +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --irs auto --ors lf --nidx --fs comma cat ./reg_test/input/line-term-crlf.dkvp +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --nidx --fs comma cat ./reg_test/input/line-term-lf.dkvp +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --nidx --fs comma cat ./reg_test/input/line-term-crlf.dkvp +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +---------------------------------------------------------------- csvlite +mlr --irs auto --ors lf --csvlite cat ./reg_test/input/line-term-lf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --irs auto --ors lf --csvlite cat ./reg_test/input/line-term-crlf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --csvlite cat ./reg_test/input/line-term-lf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --csvlite cat ./reg_test/input/line-term-crlf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + + +---------------------------------------------------------------- pprint +mlr --irs auto --ors lf --pprint cat ./reg_test/input/line-term-lf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --irs auto --ors lf --pprint cat ./reg_test/input/line-term-crlf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --pprint cat ./reg_test/input/line-term-lf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --pprint cat ./reg_test/input/line-term-crlf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + + +---------------------------------------------------------------- xtab +mlr --ifs auto --xtab cat ./reg_test/input/line-term-lf.xtab +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --ifs auto --xtab cat ./reg_test/input/line-term-crlf.xtab +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --fs auto --xtab cat ./reg_test/input/line-term-lf.xtab +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --fs auto --xtab cat ./reg_test/input/line-term-crlf.xtab +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + + +---------------------------------------------------------------- xtab +mlr --ifs auto --xtab cat ./reg_test/input/line-term-lf.xtab +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --ifs auto --xtab cat ./reg_test/input/line-term-crlf.xtab +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --fs auto --xtab cat ./reg_test/input/line-term-lf.xtab +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --fs auto --xtab cat ./reg_test/input/line-term-crlf.xtab +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + + +---------------------------------------------------------------- csv +mlr --irs auto --ors lf --csv cat ./reg_test/input/line-term-lf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --irs auto --ors lf --csv cat ./reg_test/input/line-term-crlf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --csv cat ./reg_test/input/line-term-lf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + +mlr --csv cat ./reg_test/input/line-term-crlf.csv +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 + + +---------------------------------------------------------------- json nowrap nostack +mlr --irs auto --ors lf --json cat ./reg_test/input/line-term-lf.json +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --irs auto --ors lf --json cat ./reg_test/input/line-term-crlf.json +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --json cat ./reg_test/input/line-term-lf.json +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --json cat ./reg_test/input/line-term-crlf.json +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + + +---------------------------------------------------------------- json yeswrap nostack +mlr --irs auto --ors lf --jlistwrap --json cat ./reg_test/input/line-term-lf-wrap.json +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] + +mlr --irs auto --ors lf --jlistwrap --json cat ./reg_test/input/line-term-crlf-wrap.json +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] + +mlr --jlistwrap --json cat ./reg_test/input/line-term-lf-wrap.json +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] + +mlr --jlistwrap --json cat ./reg_test/input/line-term-crlf-wrap.json +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] + + +---------------------------------------------------------------- json nowrap yesstack +mlr --irs auto --json --jvstack cat ./reg_test/input/line-term-lf.json +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --irs auto --ors lf --json --jvstack cat ./reg_test/input/line-term-crlf.json +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --json --jvstack cat ./reg_test/input/line-term-lf.json +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --json --jvstack cat ./reg_test/input/line-term-crlf.json +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + + +---------------------------------------------------------------- json yeswrap yesstack +mlr --irs auto --ors lf --jlistwrap --json --jvstack cat ./reg_test/input/line-term-lf-wrap.json +[ +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +,{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +,{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +,{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +,{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +,{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +,{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +,{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +,{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +,{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} +] + +mlr --irs auto --ors lf --jlistwrap --json --jvstack cat ./reg_test/input/line-term-crlf-wrap.json +[ +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +,{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +,{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +,{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +,{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +,{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +,{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +,{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +,{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +,{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} +] + +mlr --jlistwrap --json --jvstack cat ./reg_test/input/line-term-lf-wrap.json +[ +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +,{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +,{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +,{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +,{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +,{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +,{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +,{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +,{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +,{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} +] + +mlr --jlistwrap --json --jvstack cat ./reg_test/input/line-term-crlf-wrap.json +[ +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +,{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +,{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +,{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +,{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +,{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +,{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +,{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +,{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +,{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} +] + + +---------------------------------------------------------------- json nowrap nostack +mlr --irs auto --ors lf --json cat ./reg_test/input/line-term-lf.json +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --irs auto --ors lf --json cat ./reg_test/input/line-term-crlf.json +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --json cat ./reg_test/input/line-term-lf.json +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + +mlr --json cat ./reg_test/input/line-term-crlf.json +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } + + +---------------------------------------------------------------- json yeswrap nostack +mlr --irs auto --ors lf --jlistwrap --json cat ./reg_test/input/line-term-lf-wrap.json +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] + +mlr --irs auto --ors lf --jlistwrap --json cat ./reg_test/input/line-term-crlf-wrap.json +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] + +mlr --jlistwrap --json cat ./reg_test/input/line-term-lf-wrap.json +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] + +mlr --jlistwrap --json cat ./reg_test/input/line-term-crlf-wrap.json +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] + + +---------------------------------------------------------------- json nowrap yesstack +mlr --irs auto --ors lf --json --jvstack cat ./reg_test/input/line-term-lf.json +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --irs auto --ors lf --json --jvstack cat ./reg_test/input/line-term-crlf.json +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --json --jvstack cat ./reg_test/input/line-term-lf.json +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --json --jvstack cat ./reg_test/input/line-term-crlf.json +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + + +---------------------------------------------------------------- json yeswrap yesstack +mlr --irs auto --ors lf --jlistwrap --json --jvstack cat ./reg_test/input/line-term-lf-wrap.json +[ +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +,{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +,{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +,{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +,{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +,{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +,{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +,{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +,{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +,{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} +] + +mlr --irs auto --ors lf --jlistwrap --json --jvstack cat ./reg_test/input/line-term-crlf-wrap.json +[ +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +,{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +,{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +,{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +,{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +,{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +,{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +,{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +,{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +,{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} +] + +mlr --jlistwrap --json --jvstack cat ./reg_test/input/line-term-lf-wrap.json +[ +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +,{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +,{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +,{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +,{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +,{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +,{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +,{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +,{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +,{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} +] + +mlr --jlistwrap --json --jvstack cat ./reg_test/input/line-term-crlf-wrap.json +[ +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +,{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +,{ + "a": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +,{ + "a": "eks", + "b": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +,{ + "a": "wye", + "b": "pan", + "i": 5, + "x": 0.5732889198020006, + "y": 0.8636244699032729 +} +,{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +,{ + "a": "eks", + "b": "zee", + "i": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +,{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "y": 0.976181385699006 +} +,{ + "a": "hat", + "b": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +,{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} +] + + +================================================================ +USER-DEFINED FUNCTIONS AND SUBROUTINES + +mlr --opprint --from ./reg_test/input/abixy put func f(u,v){return u+v} $o=f(NR*1000,$x) +a b i x y o +pan pan 1 0.3467901443380824 0.7268028627434533 1000.346790 +eks pan 2 0.7586799647899636 0.5221511083334797 2000.758680 +wye wye 3 0.20460330576630303 0.33831852551664776 3000.204603 +eks wye 4 0.38139939387114097 0.13418874328430463 4000.381399 +wye pan 5 0.5732889198020006 0.8636244699032729 5000.573289 +zee pan 6 0.5271261600918548 0.49322128674835697 6000.527126 +eks zee 7 0.6117840605678454 0.1878849191181694 7000.611784 +zee wye 8 0.5985540091064224 0.976181385699006 8000.598554 +hat wye 9 0.03144187646093577 0.7495507603507059 9000.031442 +pan wye 10 0.5026260055412137 0.9526183602969864 10000.502626 + +mlr --opprint --from ./reg_test/input/abixy put func f(x,y,z){$nnn=999; int n=10; return $y} $o=f($i,$x,$y) +mlr: assignments to $-variables are not valid within func blocks. + +mlr --opprint --from ./reg_test/input/abixy put subr s(a,b) { $[a] = b } call s("W", 999) +a b i x y W +pan pan 1 0.3467901443380824 0.7268028627434533 999 +eks pan 2 0.7586799647899636 0.5221511083334797 999 +wye wye 3 0.20460330576630303 0.33831852551664776 999 +eks wye 4 0.38139939387114097 0.13418874328430463 999 +wye pan 5 0.5732889198020006 0.8636244699032729 999 +zee pan 6 0.5271261600918548 0.49322128674835697 999 +eks zee 7 0.6117840605678454 0.1878849191181694 999 +zee wye 8 0.5985540091064224 0.976181385699006 999 +hat wye 9 0.03144187646093577 0.7495507603507059 999 +pan wye 10 0.5026260055412137 0.9526183602969864 999 + +mlr --opprint --from ./reg_test/input/abixy put + func f(x,y,z) { + return x + y + z + } + subr s(a,b) { + $[a] = b; + $DID = "YES"; + } + $o = f($x, $y, $i); + call s("W", NR); + +a b i x y o W DID +pan pan 1 0.3467901443380824 0.7268028627434533 2.073593 1 YES +eks pan 2 0.7586799647899636 0.5221511083334797 3.280831 2 YES +wye wye 3 0.20460330576630303 0.33831852551664776 3.542922 3 YES +eks wye 4 0.38139939387114097 0.13418874328430463 4.515588 4 YES +wye pan 5 0.5732889198020006 0.8636244699032729 6.436913 5 YES +zee pan 6 0.5271261600918548 0.49322128674835697 7.020347 6 YES +eks zee 7 0.6117840605678454 0.1878849191181694 7.799669 7 YES +zee wye 8 0.5985540091064224 0.976181385699006 9.574735 8 YES +hat wye 9 0.03144187646093577 0.7495507603507059 9.780993 9 YES +pan wye 10 0.5026260055412137 0.9526183602969864 11.455244 10 YES + +mlr --opprint --from ./reg_test/input/abixy put + func f(x,y,z) { + return x + y + z + } + subr s(a,b) { + $[a] = b; + return; + $DID = "YES"; + } + $o = f($x, $y, $i); + call s("W", NR); + +a b i x y o W +pan pan 1 0.3467901443380824 0.7268028627434533 2.073593 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3.280831 2 +wye wye 3 0.20460330576630303 0.33831852551664776 3.542922 3 +eks wye 4 0.38139939387114097 0.13418874328430463 4.515588 4 +wye pan 5 0.5732889198020006 0.8636244699032729 6.436913 5 +zee pan 6 0.5271261600918548 0.49322128674835697 7.020347 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7.799669 7 +zee wye 8 0.5985540091064224 0.976181385699006 9.574735 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9.780993 9 +pan wye 10 0.5026260055412137 0.9526183602969864 11.455244 10 + +mlr --from ./reg_test/input/abixy put + func f(x,y,z) { + return x + y + z + } + subr s(a,b) { + $[a] = b; + return 1 # subr must not return value + } + $o = f($x, $y, $i); + call s("W", NR); + +mlr: return statements within user-defined subroutines must not return a value. + +mlr --from ./reg_test/input/abixy put + func f(x,y,z) { + return # func must return value + } + subr s(a,b) { + $[a] = b; + } + $o = f($x, $y, $i); + call s("W", NR); + +mlr: return statements within user-defined functions must return a value. + +mlr --from ./reg_test/input/abixy --opprint put func f(x) {return k} for (k,v in $*) {$o=f($x)} +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --from ./reg_test/input/abixy --opprint put subr foo() {print "k is [".k."]"} for (k,v in $*) {call foo()} +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +k is [] +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put func log(x) { return 0 } $o = log($x) +mlr: function named "log" must not override a built-in function of the same name. + +mlr --from ./reg_test/input/abixy put subr log() { print "hello record ". NR } call log() +hello record 1 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +hello record 2 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +hello record 3 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +hello record 4 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +hello record 5 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +hello record 6 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +hello record 7 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +hello record 8 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +hello record 9 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +hello record 10 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put $o1 = a; int a=1000+NR; $o2 = a; a=2000+NR; $o3 = a +a b i x y o2 o3 +pan pan 1 0.3467901443380824 0.7268028627434533 1001 2001 +eks pan 2 0.7586799647899636 0.5221511083334797 1002 2002 +wye wye 3 0.20460330576630303 0.33831852551664776 1003 2003 +eks wye 4 0.38139939387114097 0.13418874328430463 1004 2004 +wye pan 5 0.5732889198020006 0.8636244699032729 1005 2005 +zee pan 6 0.5271261600918548 0.49322128674835697 1006 2006 +eks zee 7 0.6117840605678454 0.1878849191181694 1007 2007 +zee wye 8 0.5985540091064224 0.976181385699006 1008 2008 +hat wye 9 0.03144187646093577 0.7495507603507059 1009 2009 +pan wye 10 0.5026260055412137 0.9526183602969864 1010 2010 + +mlr --opprint --from ./reg_test/input/abixy put + func f(n) { + if (is_numeric(n)) { + if (n > 0) { + return n * f(n-1) + } else { + return 1 + } + } + # implicitly return absent + } + $o = f(NR) + +a b i x y o +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 2 +wye wye 3 0.20460330576630303 0.33831852551664776 6 +eks wye 4 0.38139939387114097 0.13418874328430463 24 +wye pan 5 0.5732889198020006 0.8636244699032729 120 +zee pan 6 0.5271261600918548 0.49322128674835697 720 +eks zee 7 0.6117840605678454 0.1878849191181694 5040 +zee wye 8 0.5985540091064224 0.976181385699006 40320 +hat wye 9 0.03144187646093577 0.7495507603507059 362880 +pan wye 10 0.5026260055412137 0.9526183602969864 3628800 + +mlr --opprint --from ./reg_test/input/abixy head -n 5 then put + subr s(n) { + print "n = " . n; + if (is_numeric(n)) { + if (n > 0) { + call s(n-1) + } + } + } + print ""; + call s(NR) + + +n = 1 +n = 0 + +n = 2 +n = 1 +n = 0 + +n = 3 +n = 2 +n = 1 +n = 0 + +n = 4 +n = 3 +n = 2 +n = 1 +n = 0 + +n = 5 +n = 4 +n = 3 +n = 2 +n = 1 +n = 0 +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 + +mlr --from ./reg_test/input/abixy --opprint put + func f(n) { + return n+1; + } + $o1 = f(NR); + $o2 = f(f(NR)); + $o3 = f(f(f(NR))); + $o4 = f(f(f(f(NR)))); + $o5 = f(f(f(f(f(NR))))); + $o6 = f(f(f(f(f(f(NR)))))); + +a b i x y o1 o2 o3 o4 o5 o6 +pan pan 1 0.3467901443380824 0.7268028627434533 2 3 4 5 6 7 +eks pan 2 0.7586799647899636 0.5221511083334797 3 4 5 6 7 8 +wye wye 3 0.20460330576630303 0.33831852551664776 4 5 6 7 8 9 +eks wye 4 0.38139939387114097 0.13418874328430463 5 6 7 8 9 10 +wye pan 5 0.5732889198020006 0.8636244699032729 6 7 8 9 10 11 +zee pan 6 0.5271261600918548 0.49322128674835697 7 8 9 10 11 12 +eks zee 7 0.6117840605678454 0.1878849191181694 8 9 10 11 12 13 +zee wye 8 0.5985540091064224 0.976181385699006 9 10 11 12 13 14 +hat wye 9 0.03144187646093577 0.7495507603507059 10 11 12 13 14 15 +pan wye 10 0.5026260055412137 0.9526183602969864 11 12 13 14 15 16 + +mlr --from ./reg_test/input/abixy --opprint put + func f(n) { + if (n < 2) { + return 1 + } else { + return f(n-1) + f(n-2) + } + } + $o = f(NR) + +a b i x y o +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 2 +wye wye 3 0.20460330576630303 0.33831852551664776 3 +eks wye 4 0.38139939387114097 0.13418874328430463 5 +wye pan 5 0.5732889198020006 0.8636244699032729 8 +zee pan 6 0.5271261600918548 0.49322128674835697 13 +eks zee 7 0.6117840605678454 0.1878849191181694 21 +zee wye 8 0.5985540091064224 0.976181385699006 34 +hat wye 9 0.03144187646093577 0.7495507603507059 55 +pan wye 10 0.5026260055412137 0.9526183602969864 89 + +mlr --from ./reg_test/input/abixy --opprint put + func f(n) { + if (is_present(@fcache[n])) { + return @fcache[n] + } else { + num rv = 1; + if (n >= 2) { + rv = f(n-1) + f(n-2) + } + @fcache[n] = rv; + return rv + } + } + $o = f(NR) + +a b i x y o +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 2 +wye wye 3 0.20460330576630303 0.33831852551664776 3 +eks wye 4 0.38139939387114097 0.13418874328430463 5 +wye pan 5 0.5732889198020006 0.8636244699032729 8 +zee pan 6 0.5271261600918548 0.49322128674835697 13 +eks zee 7 0.6117840605678454 0.1878849191181694 21 +zee wye 8 0.5985540091064224 0.976181385699006 34 +hat wye 9 0.03144187646093577 0.7495507603507059 55 +pan wye 10 0.5026260055412137 0.9526183602969864 89 + +mlr --from ./reg_test/input/abixy --opprint put func f(x) { begin {} } +mlr: begin statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint put func f(x) { end {} } +mlr: end statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint put subr s(x) { begin {} } +mlr: begin statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint put subr s(x) { end {} } +mlr: end statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint put func f(x) { func g(y) {} } +mlr: func statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint put func f(x) { subr t(y) {} } +mlr: subr statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint put subr s(x) { func g(y) {} } +mlr: func statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint put subr s(x) { subr t(y) {} } +mlr: subr statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint filter func f(x) { begin {} }; true +mlr: begin statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint filter func f(x) { end {} }; true +mlr: end statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint filter subr s(x) { begin {} }; true +mlr: begin statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint filter subr s(x) { end {} }; true +mlr: end statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint filter func f(x) { func g(y) {} }; true +mlr: func statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint filter func f(x) { subr t(y) {} }; true +mlr: subr statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint filter subr s(x) { func g(y) {} }; true +mlr: func statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint filter subr s(x) { subr t(y) {} }; true +mlr: subr statements are only valid at top level. + +mlr --from ./reg_test/input/abixy --opprint put func log(x) { return $x + 1 } +mlr: function named "log" must not override a built-in function of the same name. + +mlr --from ./reg_test/input/abixy --opprint put func f(x) { return $x + 1 } func f(x) { return $x + 1} +mlr: function named "f" has already been defined. + +mlr --from ./reg_test/input/abixy --opprint put subr s() { } subr s() { } +mlr: subroutine named "s" has already been defined. + +mlr --from ./reg_test/input/abixy --opprint put subr s() { } subr s(x) { } +mlr: subroutine named "s" has already been defined. + +mlr --from ./reg_test/input/abixy --opprint put subr log(text) { print "TEXT IS ".text } call log("NR is ".NR) +TEXT IS NR is 1 +TEXT IS NR is 2 +TEXT IS NR is 3 +TEXT IS NR is 4 +TEXT IS NR is 5 +TEXT IS NR is 6 +TEXT IS NR is 7 +TEXT IS NR is 8 +TEXT IS NR is 9 +TEXT IS NR is 10 +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --from ./reg_test/input/abixy --opprint put subr log(text) { print "TEXT IS ".text } call log("NR is ".NR) +TEXT IS NR is 1 +TEXT IS NR is 2 +TEXT IS NR is 3 +TEXT IS NR is 4 +TEXT IS NR is 5 +TEXT IS NR is 6 +TEXT IS NR is 7 +TEXT IS NR is 8 +TEXT IS NR is 9 +TEXT IS NR is 10 +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 + +mlr --from ./reg_test/input/abixy --opprint put func f(text) { print "TEXT IS ".text; return text.text } $o = f($a) +TEXT IS pan +TEXT IS eks +TEXT IS wye +TEXT IS eks +TEXT IS wye +TEXT IS zee +TEXT IS eks +TEXT IS zee +TEXT IS hat +TEXT IS pan +a b i x y o +pan pan 1 0.3467901443380824 0.7268028627434533 panpan +eks pan 2 0.7586799647899636 0.5221511083334797 ekseks +wye wye 3 0.20460330576630303 0.33831852551664776 wyewye +eks wye 4 0.38139939387114097 0.13418874328430463 ekseks +wye pan 5 0.5732889198020006 0.8636244699032729 wyewye +zee pan 6 0.5271261600918548 0.49322128674835697 zeezee +eks zee 7 0.6117840605678454 0.1878849191181694 ekseks +zee wye 8 0.5985540091064224 0.976181385699006 zeezee +hat wye 9 0.03144187646093577 0.7495507603507059 hathat +pan wye 10 0.5026260055412137 0.9526183602969864 panpan + +mlr --from ./reg_test/input/abixy put begin{@x=1} func f(x) { dump; print "hello" } $o=f($i) +{ + "x": 1 +} +hello +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +{ + "x": 1 +} +hello +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +{ + "x": 1 +} +hello +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +{ + "x": 1 +} +hello +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +{ + "x": 1 +} +hello +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +{ + "x": 1 +} +hello +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +{ + "x": 1 +} +hello +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +{ + "x": 1 +} +hello +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +{ + "x": 1 +} +hello +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +{ + "x": 1 +} +hello +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put begin{@x=1} func f(x) { dump; print "hello"; tee > "x", $* } $o=f($i) +mlr: tee statements are not valid within func blocks. + +mlr --from ./reg_test/input/abixy put begin{@x=1} func f(x) { dump; print "hello"; emit > "x", @* } $o=f($i) +mlr: emit statements are not valid within func blocks. + +mlr --from ./reg_test/input/abixy put func f(x,y) { return 2*y } $o = f($x,$y) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,o=1.453606 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,o=1.044302 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,o=0.676637 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,o=0.268377 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,o=1.727249 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,o=0.986443 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,o=0.375770 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,o=1.952363 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,o=1.499102 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,o=1.905237 + +mlr -n put -q -f ./reg_test/input/sieve.mlr +2 +3 +5 +7 +11 +13 +17 +19 +23 +29 +31 +37 +41 +43 +47 +53 +59 +61 +67 +71 +73 +79 +83 +89 +97 + +mlr -n put -q -f ./reg_test/input/mand.mlr -e begin {@verbose = true} +RCORN = -2.000000 +ICORN = -2.000000 +SIDE = 4.000000 +IHEIGHT = 50 +IWIDTH = 100 +MAXITS = 100 +LEVELSTEP = 5 +CHARS = @X*o-. +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXX.XXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXooXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXX**o..*XXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXX*-....-oXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXX@XXXXXXXXXX*......o*XXXXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXX**oo*-.-........oo.XXXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXX....................X..o-XXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXX*oo......................oXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@XXX*XXXXXXXXXXXX**o........................*X*X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@XXXXXXooo***o*.*XX**X..........................o-XX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@XXXXXXXX*-.......-***.............................oXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@XXXXXXXX*@..........Xo............................*XX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@XXXX@XXXXXXXX*o@oX...........@...........................oXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +.........................................................o*XXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@XXXXXXXXX*-.oX...........@...........................oXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@XXXXXXXXXX**@..........*o............................*XXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@XXXXXXXXXXXXX-........***.............................oXXXXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@XXXXXXXXXXXXoo****o*.XX***@..........................o-XXXXXXXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@XXXXX*XXXX*XXXXXXX**-........................***XXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXX*o*.....................@o*XXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXX*....................*..o-XX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXX*ooo*-.o........oo.X*XXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXX**@.....*XXXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXX*o....-o*XXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXo*o..*XXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXX*o*XXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXX@XXXXXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXX@@XXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +mlr --from ./reg_test/input/abixy put -v + func f(x) { + return x**2 + } + func g(y) { + return y+1 + } + subr s(a,b,c) { + print a.b.c + } + begin { + @a = 0; + var ell = 1; + print "local1 = ".ell; + } + end { + emit @a; + var emm = 2; + print "local2 = ".emm; + } + @a += 1; + begin { + @b = 0; + @c = 0; + print "local3 = ".ell; + } + @b += 2; + @c += 3; + end { + emit @b; + emit @c; + print "local4 = ".emm; + } + +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="f", type=FUNC_DEF: + text="f", type=NON_SIGIL_NAME: + text="x", type=UNTYPED_PARAMETER_DEFINITION. + text="func_block", type=STATEMENT_BLOCK: + text="return_value", type=RETURN_VALUE: + text="**", type=OPERATOR: + text="x", type=NONINDEXED_LOCAL_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="g", type=FUNC_DEF: + text="g", type=NON_SIGIL_NAME: + text="y", type=UNTYPED_PARAMETER_DEFINITION. + text="func_block", type=STATEMENT_BLOCK: + text="return_value", type=RETURN_VALUE: + text="+", type=OPERATOR: + text="y", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="s", type=SUBR_DEF: + text="s", type=NON_SIGIL_NAME: + text="a", type=UNTYPED_PARAMETER_DEFINITION. + text="b", type=UNTYPED_PARAMETER_DEFINITION. + text="c", type=UNTYPED_PARAMETER_DEFINITION. + text="subr_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="a", type=NONINDEXED_LOCAL_VARIABLE. + text="b", type=NONINDEXED_LOCAL_VARIABLE. + text="c", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="ell", type=NONINDEXED_LOCAL_VARIABLE. + text="1", type=NUMERIC_LITERAL. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="local1 = ", type=STRING_LITERAL. + text="ell", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="emit", type=EMIT: + text="emit", type=EMIT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="stream", type=STREAM: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="emm", type=NONINDEXED_LOCAL_VARIABLE. + text="2", type=NUMERIC_LITERAL. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="local2 = ", type=STRING_LITERAL. + text="emm", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="begin", type=BEGIN: + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="local3 = ", type=STRING_LITERAL. + text="ell", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="3", type=NUMERIC_LITERAL. + text="end", type=END: + text="end_block", type=STATEMENT_BLOCK: + text="emit", type=EMIT: + text="emit", type=EMIT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="stream", type=STREAM: + text="emit", type=EMIT: + text="emit", type=EMIT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="stream", type=STREAM: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="local4 = ", type=STRING_LITERAL. + text="emm", type=NONINDEXED_LOCAL_VARIABLE. + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +BLOCKED AST: + +FUNCTION DEFINITION: +text="f", type=FUNC_DEF: subframe_var_count=2 max_subframe_depth=1 max_var_depth=2 + text="f", type=NON_SIGIL_NAME: + text="x", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="func_block", type=STATEMENT_BLOCK: + text="return_value", type=RETURN_VALUE: + text="**", type=OPERATOR: + text="x", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="2", type=NUMERIC_LITERAL. + +FUNCTION DEFINITION: +text="g", type=FUNC_DEF: subframe_var_count=2 max_subframe_depth=1 max_var_depth=2 + text="g", type=NON_SIGIL_NAME: + text="y", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="func_block", type=STATEMENT_BLOCK: + text="return_value", type=RETURN_VALUE: + text="+", type=OPERATOR: + text="y", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="1", type=NUMERIC_LITERAL. + +SUBROUTINE DEFINITION: +text="s", type=SUBR_DEF: subframe_var_count=4 max_subframe_depth=1 max_var_depth=4 + text="s", type=NON_SIGIL_NAME: + text="a", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="b", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="c", type=UNTYPED_PARAMETER_DEFINITION. vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="subr_block", type=STATEMENT_BLOCK: + text="print", type=PRINT: + text=".", type=OPERATOR: + text=".", type=OPERATOR: + text="a", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="b", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="c", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=2 max_subframe_depth=1 max_var_depth=2 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="ell", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="1", type=NUMERIC_LITERAL. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="local1 = ", type=STRING_LITERAL. + text="ell", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +BEGIN-BLOCK: +text="begin", type=BEGIN: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="begin_block", type=STATEMENT_BLOCK: + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="0", type=NUMERIC_LITERAL. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="local3 = ", type=STRING_LITERAL. + text="ell", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +END-BLOCK: +text="end", type=END: subframe_var_count=2 max_subframe_depth=1 max_var_depth=2 + text="end_block", type=STATEMENT_BLOCK: + text="emit", type=EMIT: + text="emit", type=EMIT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="stream", type=STREAM: + text="var", type=UNTYPED_LOCAL_DEFINITION: + text="emm", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="2", type=NUMERIC_LITERAL. + text="print", type=PRINT: + text=".", type=OPERATOR: + text="local2 = ", type=STRING_LITERAL. + text="emm", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +END-BLOCK: +text="end", type=END: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="end_block", type=STATEMENT_BLOCK: + text="emit", type=EMIT: + text="emit", type=EMIT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="stream", type=STREAM: + text="emit", type=EMIT: + text="emit", type=EMIT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="stream", type=STREAM: + text="print", type=PRINT: + text=".", type=OPERATOR: + text="local4 = ", type=STRING_LITERAL. + text="emm", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text=">", type=FILE_WRITE: + text="stdout", type=STDOUT: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="a", type=STRING_LITERAL. + text="1", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="b", type=STRING_LITERAL. + text="2", type=NUMERIC_LITERAL. + text="=", type=OOSVAR_ASSIGNMENT: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="+", type=OPERATOR: + text="oosvar_keylist", type=OOSVAR_KEYLIST: + text="c", type=STRING_LITERAL. + text="3", type=NUMERIC_LITERAL. + +local1 = 1 +local3 = +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +local2 = 2 +local4 = +a=10 +b=20 +c=30 + + +================================================================ +LOCALVAR SCOPE AND EXTENT + +mlr --opprint --from ./reg_test/input/abixy put + func f() { + var a = 1; + if (NR > 5) { + a = 2; + } + return a; + } + func g() { + var b = 1; + if (NR > 5) { + var b = 2; + } + return b; + } + func h() { + var a = 1; + if (NR > 5) { + a = 2; + return a; + } + return a; + } + func i() { + var b = 1; + if (NR > 5) { + var b = 2; + return b; + } + return b; + } + $of = f(); + $og = g(); + $oh = h(); + $oi = i(); + +a b i x y of og oh oi +pan pan 1 0.3467901443380824 0.7268028627434533 1 1 1 1 +eks pan 2 0.7586799647899636 0.5221511083334797 1 1 1 1 +wye wye 3 0.20460330576630303 0.33831852551664776 1 1 1 1 +eks wye 4 0.38139939387114097 0.13418874328430463 1 1 1 1 +wye pan 5 0.5732889198020006 0.8636244699032729 1 1 1 1 +zee pan 6 0.5271261600918548 0.49322128674835697 2 1 2 2 +eks zee 7 0.6117840605678454 0.1878849191181694 2 1 2 2 +zee wye 8 0.5985540091064224 0.976181385699006 2 1 2 2 +hat wye 9 0.03144187646093577 0.7495507603507059 2 1 2 2 +pan wye 10 0.5026260055412137 0.9526183602969864 2 1 2 2 + +mlr --opprint --from ./reg_test/input/abixy put + func f() { + var a = 2; + var b = 2; + if (NR > 5) { + var a = 3; + b = 3; + } + return 1000 * a + b; + } + a = 1; + b = 1; + $ab = f(); + $oa = a; + $ob = b; + +a b i x y ab oa ob +pan pan 1 0.3467901443380824 0.7268028627434533 2002 1 1 +eks pan 2 0.7586799647899636 0.5221511083334797 2002 1 1 +wye wye 3 0.20460330576630303 0.33831852551664776 2002 1 1 +eks wye 4 0.38139939387114097 0.13418874328430463 2002 1 1 +wye pan 5 0.5732889198020006 0.8636244699032729 2002 1 1 +zee pan 6 0.5271261600918548 0.49322128674835697 2003 1 1 +eks zee 7 0.6117840605678454 0.1878849191181694 2003 1 1 +zee wye 8 0.5985540091064224 0.976181385699006 2003 1 1 +hat wye 9 0.03144187646093577 0.7495507603507059 2003 1 1 +pan wye 10 0.5026260055412137 0.9526183602969864 2003 1 1 + + +================================================================ +LOCALVAR UNSETS + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset s ; dump s; dump t; dump u ./reg_test/input/unset1.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} + +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset t ; dump s; dump t; dump u ./reg_test/input/unset1.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 + +{ + "1": { + "2": 9 + } +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset t[1] ; dump s; dump t; dump u ./reg_test/input/unset1.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ +} +{ + "1": { + "2": 9 + } +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u ; dump s; dump t; dump u ./reg_test/input/unset1.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} + + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u[1] ; dump s; dump t; dump u ./reg_test/input/unset1.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} +{ +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u[1][2]; dump s; dump t; dump u ./reg_test/input/unset1.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} +{ + "1": { + } +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset s ; dump s; dump t; dump u ./reg_test/input/unset4.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} + +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} +{ + "1": { + "3": 9 + } +} + +{ + "1": 9 +} +{ + "1": { + "3": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} + +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} + +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset t ; dump s; dump t; dump u ./reg_test/input/unset4.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 + +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} +{ + "1": { + "3": 9 + } +} +9 + +{ + "1": { + "3": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 + +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} +9 + +{ + "4": { + "6": 9 + } +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset t[1] ; dump s; dump t; dump u ./reg_test/input/unset4.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ +} +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} +{ + "1": { + "3": 9 + } +} +9 +{ +} +{ + "1": { + "3": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u ; dump s; dump t; dump u ./reg_test/input/unset4.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} + +9 +{ + "1": 9 +} +{ + "1": { + "3": 9 + } +} +9 +{ + "1": 9 +} + +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} + +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} +9 +{ + "4": 9 +} + + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u[1] ; dump s; dump t; dump u ./reg_test/input/unset4.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} +{ +} +9 +{ + "1": 9 +} +{ + "1": { + "3": 9 + } +} +9 +{ + "1": 9 +} +{ +} +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} + +mlr put -q s=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u[1][2]; dump s; dump t; dump u ./reg_test/input/unset4.dkvp +9 +{ + "1": 9 +} +{ + "1": { + "2": 9 + } +} +9 +{ + "1": 9 +} +{ + "1": { + } +} +9 +{ + "1": 9 +} +{ + "1": { + "3": 9 + } +} +9 +{ + "1": 9 +} +{ + "1": { + "3": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "5": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} +9 +{ + "4": 9 +} +{ + "4": { + "6": 9 + } +} + + +================================================================ +LOCALVAR TYPEDECLs + +mlr --from ./reg_test/input/abixy put + str a = $a; + a = "a:".NR; + $c = a; + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,c=a:1 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,c=a:2 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,c=a:3 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,c=a:4 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,c=a:5 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,c=a:6 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,c=a:7 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,c=a:8 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,c=a:9 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,c=a:10 + +mlr --from ./reg_test/input/abixy put + str a = $a; + a = NR; + $c = a; + +mlr: string type assertion for variable a unmet by value 1 with type int. + +mlr --from ./reg_test/input/abixy put + int a = $a; + a = NR; + $c = a; + +mlr: int type assertion for variable a unmet by value "pan" with type string. + +mlr --from ./reg_test/input/abixy put + int i = $i; + i = NR; + $c = a; + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +FORBIND TYPEDECLs + +mlr --from ./reg_test/input/abixy put + for (int i = 0; i < $i; i += 1) { + $c = i * 10; + } + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,c=0 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,c=10 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,c=20 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,c=30 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,c=40 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,c=50 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,c=60 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,c=70 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,c=80 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,c=90 + +mlr --from ./reg_test/input/abixy put + for (float i = 0; i < $i; i += 1) { + $c = i * 10; + } + +mlr: float type assertion for variable i unmet by value 0 with type int. + +mlr --from ./reg_test/input/abixy put + for (int i = 0; i < $i; i += 1) { + i += 2; + $c = i; + } + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,c=2 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,c=2 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,c=2 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,c=5 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,c=5 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,c=5 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,c=8 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,c=8 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,c=8 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,c=11 + +mlr --from ./reg_test/input/abixy put + for (int i = 0; i < $i; i += 1) { + i += 1.5; + $c = i; + } + +mlr: int type assertion for variable i unmet by value 1.500000 with type float. + +mlr --from ./reg_test/input/abixy put + for (int i = 0; i < $i; i += 1) { + i += 1.0; + $c = i; + } + +mlr: int type assertion for variable i unmet by value 1.000000 with type float. + +mlr --from ./reg_test/input/abixy put + for (num i = 0; i < $i; i += 1) { + i += 1.0; + $c = i; + } + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,c=1.000000 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,c=1.000000 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,c=3.000000 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,c=3.000000 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,c=5.000000 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,c=5.000000 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,c=7.000000 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,c=7.000000 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,c=9.000000 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,c=9.000000 + + +================================================================ +ARGPASS TYPEDECLs + +mlr --from ./reg_test/input/abixy put + func f(int i) { + return i+3; + } + $c = f($i); + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,c=4 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,c=5 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,c=6 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,c=7 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,c=8 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,c=9 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,c=10 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,c=11 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,c=12 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,c=13 + +mlr --from ./reg_test/input/abixy put + func f(int i) { + return i+3; + } + $c = f($x); + +mlr: int type assertion for variable i unmet by value 0.346790 with type float. + +mlr --from ./reg_test/input/abixy put + func f(num i): int { + return i+3.45; + } + $c = f($x); + +mlr: function f returned type float, not matching typedecl int. + +mlr --from ./reg_test/input/abixy put + func f(num i): int { + return i+3.45; + } + $c = f($i); + +mlr: function f returned type float, not matching typedecl int. + +mlr --from ./reg_test/input/abixy put + func f(num i): int { + i = "a"; + return 2; + } + $c = f($x); + +mlr: numeric type assertion for variable i unmet by value "a" with type string. + +mlr --from ./reg_test/input/abixy put + subr s(int i) { + print i+3; + } + call s($i); + +4 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +5 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +6 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +7 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +8 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +9 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +10 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +11 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +12 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +13 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put + subr s(int i) { + print i+3; + } + call s($x); + +mlr: int type assertion for variable i unmet by value 0.346790 with type float. + +mlr --from ./reg_test/input/abixy put + subr s(num i) { + i = "a"; + print 2; + } + call s($x); + +mlr: numeric type assertion for variable i unmet by value "a" with type string. + + +================================================================ +LOCAL MAP-VARIABLE WRITE/READ + +mlr --from ./reg_test/input/xyz345 put -v -a + $s = a; + $t = b[$x]; + $u = c[$x][$y]; + $v = d[$x][$y][$z]; + +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="a", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="t", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="u", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="v", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR MAIN BLOCK + ADD FOR ABSENT s @ 0u0 + READ a ABSENT @ 0s0 + READ b ABSENT @ 0s0 + READ c ABSENT @ 0s0 + READ d ABSENT @ 0s0 +BLOCK main_block subframe_var_count=1 max_subframe_depth=1 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [main_block] +SUBFRAME [main_block] var_count_below=0 var_count_at=1 max_var_depth_so_far=1 subframe_depth=0 + NODE a 0s0 (0:0) -> 0 + NODE b 0s0 (0:0) -> 0 + NODE c 0s0 (0:0) -> 0 + NODE d 0s0 (0:0) -> 0 + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=1 max_subframe_depth=1 max_var_depth=1 + text="=", type=SREC_ASSIGNMENT: + text="s", type=FIELD_NAME. + text="a", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="=", type=SREC_ASSIGNMENT: + text="t", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="u", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="v", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=0 vardef_subframe_index=0 vardef_frame_relative_index=0 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + +x=3,y=4,z=5 + +mlr --from ./reg_test/input/xyz345 put -v -a + d[$x][$y][$z] = 9; + $d = d[$x][$y][$z]; + +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="9", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR MAIN BLOCK + ADD FOR ABSENT s @ 0u0 + ADD WRITE d @ 1s0 + READ d PRESENT @ 1s0 +BLOCK main_block subframe_var_count=2 max_subframe_depth=1 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [main_block] +SUBFRAME [main_block] var_count_below=0 var_count_at=2 max_var_depth_so_far=2 subframe_depth=0 + NODE d 1s0 (0:0) -> 1 + NODE d 1s0 (0:0) -> 1 + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=2 max_subframe_depth=1 max_var_depth=2 + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="9", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + +x=3,y=4,z=5,d=9 + +mlr --from ./reg_test/input/xyz345 put -v -a + a = 6; + b[$x] = 7; + c[$x][$y] = 8; + d[$x][$y][$z] = 9; + + $a = a; + $b = b[$x]; + $c = c[$x][$y]; + $d = d[$x][$y][$z]; + +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="a", type=NONINDEXED_LOCAL_VARIABLE. + text="6", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="b", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="7", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="c", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="8", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="9", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="a", type=FIELD_NAME. + text="a", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="b", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="c", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR MAIN BLOCK + ADD FOR ABSENT s @ 0u0 + ADD WRITE a @ 1s0 + ADD WRITE b @ 2s0 + ADD WRITE c @ 3s0 + ADD WRITE d @ 4s0 + READ a PRESENT @ 1s0 + READ b PRESENT @ 2s0 + READ c PRESENT @ 3s0 + READ d PRESENT @ 4s0 +BLOCK main_block subframe_var_count=5 max_subframe_depth=1 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [main_block] +SUBFRAME [main_block] var_count_below=0 var_count_at=5 max_var_depth_so_far=5 subframe_depth=0 + NODE a 1s0 (0:0) -> 1 + NODE b 2s0 (0:0) -> 2 + NODE c 3s0 (0:0) -> 3 + NODE d 4s0 (0:0) -> 4 + NODE a 1s0 (0:0) -> 1 + NODE b 2s0 (0:0) -> 2 + NODE c 3s0 (0:0) -> 3 + NODE d 4s0 (0:0) -> 4 + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=5 max_subframe_depth=1 max_var_depth=5 + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="a", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="6", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="b", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="x", type=FIELD_NAME. + text="7", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="c", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="8", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=4 vardef_subframe_index=0 vardef_frame_relative_index=4 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="9", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="a", type=FIELD_NAME. + text="a", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="=", type=SREC_ASSIGNMENT: + text="b", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="c", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="d", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=4 vardef_subframe_index=0 vardef_frame_relative_index=4 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + +x=3,y=4,z=5,a=6,b=7,c=8,d=9 + +mlr --from ./reg_test/input/xyz345 put -v -a + a = 6; + b[$x] = 7; + c[$x][$y] = 8; + d[$x][$y][$z] = 9; + + $a0 = a; + $a1 = a[$x]; + $a2 = a[$x][$y]; + $a3 = a[$x][$y][$z]; + + $b0 = b; + $b1 = b[$x]; + $b2 = b[$x][$y]; + $b3 = b[$x][$y][$z]; + + $c0 = c; + $c1 = c[$x]; + $c2 = c[$x][$y]; + $c3 = c[$x][$y][$z]; + + $d0 = d; + $d1 = d[$x]; + $d2 = d[$x][$y]; + $d3 = d[$x][$y][$z]; + +RAW AST: + +AST ROOT: +text="block", type=STATEMENT_BLOCK: + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="a", type=NONINDEXED_LOCAL_VARIABLE. + text="6", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="b", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="7", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="c", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="8", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="9", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="a0", type=FIELD_NAME. + text="a", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="a1", type=FIELD_NAME. + text="a", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="a2", type=FIELD_NAME. + text="a", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="a3", type=FIELD_NAME. + text="a", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="b0", type=FIELD_NAME. + text="b", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="b1", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="b2", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="b3", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="c0", type=FIELD_NAME. + text="c", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="c1", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="c2", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="c3", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="d0", type=FIELD_NAME. + text="d", type=NONINDEXED_LOCAL_VARIABLE. + text="=", type=SREC_ASSIGNMENT: + text="d1", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="d2", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="d3", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + +ALLOCATING RELATIVE (PASS-1) LOCALS FOR MAIN BLOCK + ADD FOR ABSENT s @ 0u0 + ADD WRITE a @ 1s0 + ADD WRITE b @ 2s0 + ADD WRITE c @ 3s0 + ADD WRITE d @ 4s0 + READ a PRESENT @ 1s0 + READ a PRESENT @ 1s0 + READ a PRESENT @ 1s0 + READ a PRESENT @ 1s0 + READ b PRESENT @ 2s0 + READ b PRESENT @ 2s0 + READ b PRESENT @ 2s0 + READ b PRESENT @ 2s0 + READ c PRESENT @ 3s0 + READ c PRESENT @ 3s0 + READ c PRESENT @ 3s0 + READ c PRESENT @ 3s0 + READ d PRESENT @ 4s0 + READ d PRESENT @ 4s0 + READ d PRESENT @ 4s0 + READ d PRESENT @ 4s0 +BLOCK main_block subframe_var_count=5 max_subframe_depth=1 + +ALLOCATING ABSOLUTE (PASS-2) LOCALS FOR DEFINITION BLOCK [main_block] +SUBFRAME [main_block] var_count_below=0 var_count_at=5 max_var_depth_so_far=5 subframe_depth=0 + NODE a 1s0 (0:0) -> 1 + NODE b 2s0 (0:0) -> 2 + NODE c 3s0 (0:0) -> 3 + NODE d 4s0 (0:0) -> 4 + NODE a 1s0 (0:0) -> 1 + NODE a 1s0 (0:0) -> 1 + NODE a 1s0 (0:0) -> 1 + NODE a 1s0 (0:0) -> 1 + NODE b 2s0 (0:0) -> 2 + NODE b 2s0 (0:0) -> 2 + NODE b 2s0 (0:0) -> 2 + NODE b 2s0 (0:0) -> 2 + NODE c 3s0 (0:0) -> 3 + NODE c 3s0 (0:0) -> 3 + NODE c 3s0 (0:0) -> 3 + NODE c 3s0 (0:0) -> 3 + NODE d 4s0 (0:0) -> 4 + NODE d 4s0 (0:0) -> 4 + NODE d 4s0 (0:0) -> 4 + NODE d 4s0 (0:0) -> 4 + +BLOCKED AST: + +MAIN BLOCK: +text="main_block", type=STATEMENT_BLOCK: subframe_var_count=5 max_subframe_depth=1 max_var_depth=5 + text="=", type=NONINDEXED_LOCAL_ASSIGNMENT: + text="a", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="6", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="b", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="x", type=FIELD_NAME. + text="7", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="c", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="8", type=NUMERIC_LITERAL. + text="=", type=INDEXED_LOCAL_ASSIGNMENT: + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=4 vardef_subframe_index=0 vardef_frame_relative_index=4 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="9", type=NUMERIC_LITERAL. + text="=", type=SREC_ASSIGNMENT: + text="a0", type=FIELD_NAME. + text="a", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="=", type=SREC_ASSIGNMENT: + text="a1", type=FIELD_NAME. + text="a", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="a2", type=FIELD_NAME. + text="a", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="a3", type=FIELD_NAME. + text="a", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=1 vardef_subframe_index=0 vardef_frame_relative_index=1 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="b0", type=FIELD_NAME. + text="b", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="=", type=SREC_ASSIGNMENT: + text="b1", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="b2", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="b3", type=FIELD_NAME. + text="b", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=2 vardef_subframe_index=0 vardef_frame_relative_index=2 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="c0", type=FIELD_NAME. + text="c", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="=", type=SREC_ASSIGNMENT: + text="c1", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="c2", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="c3", type=FIELD_NAME. + text="c", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=3 vardef_subframe_index=0 vardef_frame_relative_index=3 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="d0", type=FIELD_NAME. + text="d", type=NONINDEXED_LOCAL_VARIABLE. vardef_subframe_relative_index=4 vardef_subframe_index=0 vardef_frame_relative_index=4 + text="=", type=SREC_ASSIGNMENT: + text="d1", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=4 vardef_subframe_index=0 vardef_frame_relative_index=4 + text="x", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="d2", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=4 vardef_subframe_index=0 vardef_frame_relative_index=4 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="=", type=SREC_ASSIGNMENT: + text="d3", type=FIELD_NAME. + text="d", type=INDEXED_LOCAL_VARIABLE: vardef_subframe_relative_index=4 vardef_subframe_index=0 vardef_frame_relative_index=4 + text="x", type=FIELD_NAME. + text="y", type=FIELD_NAME. + text="z", type=FIELD_NAME. + +x=3,y=4,z=5,a0=6,b1=7,c2=8,d3=9 + + +================================================================ +LOCAL MAP-VARIABLE TYPE-DECL + +mlr --from ./reg_test/input/xyz345 put + map a = {}; + +x=3,y=4,z=5 + +mlr --from ./reg_test/input/xyz345 put + map a = {}; + a[1]=2; + a[3][4]=5; + +x=3,y=4,z=5 + +mlr --from ./reg_test/input/xyz345 put + map a = {}; + a=2; + a[3][4]=5; + +mlr: map type assertion for variable a unmet by value 2 with type int. + +mlr --from ./reg_test/input/xyz345 put + map a = {}; + a[3][4]=5; + a=2; + +mlr: map type assertion for variable a unmet by value 2 with type int. + + +================================================================ +TRIPLE-FORs + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + num a = 1; + for (;;) { + if (a > NR) { + break; + } + sum += a; + a += 1 + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 +wye wye 3 0.20460330576630303 0.33831852551664776 6 +eks wye 4 0.38139939387114097 0.13418874328430463 10 +wye pan 5 0.5732889198020006 0.8636244699032729 15 +zee pan 6 0.5271261600918548 0.49322128674835697 21 +eks zee 7 0.6117840605678454 0.1878849191181694 28 +zee wye 8 0.5985540091064224 0.976181385699006 36 +hat wye 9 0.03144187646093577 0.7495507603507059 45 +pan wye 10 0.5026260055412137 0.9526183602969864 55 + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + num a = 1; + for (;;) { + if (a > NR) { + break; + } + sum += a; + a += 1 + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 +wye wye 3 0.20460330576630303 0.33831852551664776 6 +eks wye 4 0.38139939387114097 0.13418874328430463 10 +wye pan 5 0.5732889198020006 0.8636244699032729 15 +zee pan 6 0.5271261600918548 0.49322128674835697 21 +eks zee 7 0.6117840605678454 0.1878849191181694 28 +zee wye 8 0.5985540091064224 0.976181385699006 36 +hat wye 9 0.03144187646093577 0.7495507603507059 45 +pan wye 10 0.5026260055412137 0.9526183602969864 55 + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + for (num a = 1; ;) { + if (a > NR) { + break; + } + sum += a; + a += 1 + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 +wye wye 3 0.20460330576630303 0.33831852551664776 6 +eks wye 4 0.38139939387114097 0.13418874328430463 10 +wye pan 5 0.5732889198020006 0.8636244699032729 15 +zee pan 6 0.5271261600918548 0.49322128674835697 21 +eks zee 7 0.6117840605678454 0.1878849191181694 28 +zee wye 8 0.5985540091064224 0.976181385699006 36 +hat wye 9 0.03144187646093577 0.7495507603507059 45 +pan wye 10 0.5026260055412137 0.9526183602969864 55 + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + num a = 1; + for (; ; a += 1) { + if (a > NR) { + break; + } + sum += a; + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 +wye wye 3 0.20460330576630303 0.33831852551664776 6 +eks wye 4 0.38139939387114097 0.13418874328430463 10 +wye pan 5 0.5732889198020006 0.8636244699032729 15 +zee pan 6 0.5271261600918548 0.49322128674835697 21 +eks zee 7 0.6117840605678454 0.1878849191181694 28 +zee wye 8 0.5985540091064224 0.976181385699006 36 +hat wye 9 0.03144187646093577 0.7495507603507059 45 +pan wye 10 0.5026260055412137 0.9526183602969864 55 + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + for (num a=1; ; a += 1) { + if (a > NR) { + break; + } + sum += a; + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 +wye wye 3 0.20460330576630303 0.33831852551664776 6 +eks wye 4 0.38139939387114097 0.13418874328430463 10 +wye pan 5 0.5732889198020006 0.8636244699032729 15 +zee pan 6 0.5271261600918548 0.49322128674835697 21 +eks zee 7 0.6117840605678454 0.1878849191181694 28 +zee wye 8 0.5985540091064224 0.976181385699006 36 +hat wye 9 0.03144187646093577 0.7495507603507059 45 +pan wye 10 0.5026260055412137 0.9526183602969864 55 + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + for (num a=1; a <= NR; a += 1) { + sum += a; + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 +wye wye 3 0.20460330576630303 0.33831852551664776 6 +eks wye 4 0.38139939387114097 0.13418874328430463 10 +wye pan 5 0.5732889198020006 0.8636244699032729 15 +zee pan 6 0.5271261600918548 0.49322128674835697 21 +eks zee 7 0.6117840605678454 0.1878849191181694 28 +zee wye 8 0.5985540091064224 0.976181385699006 36 +hat wye 9 0.03144187646093577 0.7495507603507059 45 +pan wye 10 0.5026260055412137 0.9526183602969864 55 + +mlr put + num a = 100; + num b = 100; + for (num a = 200, b = 300; a <= 210; a += 1, b += 1) { + print "a:".a.",b:".b + } + $oa = a; + $ob = b; + +a:200,b:300 +a:201,b:301 +a:202,b:302 +a:203,b:303 +a:204,b:304 +a:205,b:305 +a:206,b:306 +a:207,b:307 +a:208,b:308 +a:209,b:309 +a:210,b:310 +x=1,oa=100,ob=311 + +mlr --from ./reg_test/input/abixy put + for ( ; $x <= 10; $x += 1) { + } + +a=pan,b=pan,i=1,x=10.346790,y=0.7268028627434533 +a=eks,b=pan,i=2,x=10.758680,y=0.5221511083334797 +a=wye,b=wye,i=3,x=10.204603,y=0.33831852551664776 +a=eks,b=wye,i=4,x=10.381399,y=0.13418874328430463 +a=wye,b=pan,i=5,x=10.573289,y=0.8636244699032729 +a=zee,b=pan,i=6,x=10.527126,y=0.49322128674835697 +a=eks,b=zee,i=7,x=10.611784,y=0.1878849191181694 +a=zee,b=wye,i=8,x=10.598554,y=0.976181385699006 +a=hat,b=wye,i=9,x=10.031442,y=0.7495507603507059 +a=pan,b=wye,i=10,x=10.502626,y=0.9526183602969864 + +mlr --opprint --from ./reg_test/input/abixy put + num a = 100; + b = 200; + @c = 300; + $d = 400; + for (num i = 1; i < 1024; i *= 2) { + a += 1; + b += 1; + @c += 1; + $d += 1; + $oa = a; + $ob = b; + $oc = @c; + $od = $d; + } + +a b i x y d oa ob oc od +pan pan 1 0.3467901443380824 0.7268028627434533 410 110 210 310 410 +eks pan 2 0.7586799647899636 0.5221511083334797 410 110 210 310 410 +wye wye 3 0.20460330576630303 0.33831852551664776 410 110 210 310 410 +eks wye 4 0.38139939387114097 0.13418874328430463 410 110 210 310 410 +wye pan 5 0.5732889198020006 0.8636244699032729 410 110 210 310 410 +zee pan 6 0.5271261600918548 0.49322128674835697 410 110 210 310 410 +eks zee 7 0.6117840605678454 0.1878849191181694 410 110 210 310 410 +zee wye 8 0.5985540091064224 0.976181385699006 410 110 210 310 410 +hat wye 9 0.03144187646093577 0.7495507603507059 410 110 210 310 410 +pan wye 10 0.5026260055412137 0.9526183602969864 410 110 210 310 410 + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + for (num a = 1; a <= 10; a += 1) { + continue; + sum += a; + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 0 +eks pan 2 0.7586799647899636 0.5221511083334797 0 +wye wye 3 0.20460330576630303 0.33831852551664776 0 +eks wye 4 0.38139939387114097 0.13418874328430463 0 +wye pan 5 0.5732889198020006 0.8636244699032729 0 +zee pan 6 0.5271261600918548 0.49322128674835697 0 +eks zee 7 0.6117840605678454 0.1878849191181694 0 +zee wye 8 0.5985540091064224 0.976181385699006 0 +hat wye 9 0.03144187646093577 0.7495507603507059 0 +pan wye 10 0.5026260055412137 0.9526183602969864 0 + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + for (num a = 1; a <= 10; a += 1) { + sum += a; + break; + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 1 +wye wye 3 0.20460330576630303 0.33831852551664776 1 +eks wye 4 0.38139939387114097 0.13418874328430463 1 +wye pan 5 0.5732889198020006 0.8636244699032729 1 +zee pan 6 0.5271261600918548 0.49322128674835697 1 +eks zee 7 0.6117840605678454 0.1878849191181694 1 +zee wye 8 0.5985540091064224 0.976181385699006 1 +hat wye 9 0.03144187646093577 0.7495507603507059 1 +pan wye 10 0.5026260055412137 0.9526183602969864 1 + +mlr --opprint --from ./reg_test/input/abixy put + num sum = 0; + for (num a = 1; a <= NR; a += 1) { + if (a == 4 || a == 5) { + continue; + } + if (a == 8) { + break; + } + sum += a; + } + $z = sum + +a b i x y z +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 3 +wye wye 3 0.20460330576630303 0.33831852551664776 6 +eks wye 4 0.38139939387114097 0.13418874328430463 6 +wye pan 5 0.5732889198020006 0.8636244699032729 6 +zee pan 6 0.5271261600918548 0.49322128674835697 12 +eks zee 7 0.6117840605678454 0.1878849191181694 19 +zee wye 8 0.5985540091064224 0.976181385699006 19 +hat wye 9 0.03144187646093577 0.7495507603507059 19 +pan wye 10 0.5026260055412137 0.9526183602969864 19 + +mlr --opprint --from ./reg_test/input/abixy put + for ($o1 = 1; ; $o3 = 3) { + break; + } + +a b i x y o1 +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 1 +wye wye 3 0.20460330576630303 0.33831852551664776 1 +eks wye 4 0.38139939387114097 0.13418874328430463 1 +wye pan 5 0.5732889198020006 0.8636244699032729 1 +zee pan 6 0.5271261600918548 0.49322128674835697 1 +eks zee 7 0.6117840605678454 0.1878849191181694 1 +zee wye 8 0.5985540091064224 0.976181385699006 1 +hat wye 9 0.03144187646093577 0.7495507603507059 1 +pan wye 10 0.5026260055412137 0.9526183602969864 1 + +mlr --opprint --from ./reg_test/input/abixy put + for ($o1 = 1; $o1 < NR; $o1 += 1) { + } + +a b i x y o1 +pan pan 1 0.3467901443380824 0.7268028627434533 1 +eks pan 2 0.7586799647899636 0.5221511083334797 2 +wye wye 3 0.20460330576630303 0.33831852551664776 3 +eks wye 4 0.38139939387114097 0.13418874328430463 4 +wye pan 5 0.5732889198020006 0.8636244699032729 5 +zee pan 6 0.5271261600918548 0.49322128674835697 6 +eks zee 7 0.6117840605678454 0.1878849191181694 7 +zee wye 8 0.5985540091064224 0.976181385699006 8 +hat wye 9 0.03144187646093577 0.7495507603507059 9 +pan wye 10 0.5026260055412137 0.9526183602969864 10 + +mlr --opprint --from ./reg_test/input/abixy put + for ($o1 = 1, $o2 = 2; $o3 = 3; $o4 = 4) { + } + +mlr: the final triple-for continutation statement must be a bare boolean. + +mlr --opprint --from ./reg_test/input/abixy put + for ($o1 = 1, $o2 = 2; $o3 < 3, $o4 = 4; $o5 = 5) { + break; + } + +mlr: the final triple-for continutation statement must be a bare boolean. + +mlr --opprint --from ./reg_test/input/abixy put + $o4 = 0; + for ($o1 = 1, $o2 = 2; $o3 = 3, $o4 < 4; $o5 = 5) { + break; + } + +a b i x y o4 o1 o2 o3 +pan pan 1 0.3467901443380824 0.7268028627434533 0 1 2 3 +eks pan 2 0.7586799647899636 0.5221511083334797 0 1 2 3 +wye wye 3 0.20460330576630303 0.33831852551664776 0 1 2 3 +eks wye 4 0.38139939387114097 0.13418874328430463 0 1 2 3 +wye pan 5 0.5732889198020006 0.8636244699032729 0 1 2 3 +zee pan 6 0.5271261600918548 0.49322128674835697 0 1 2 3 +eks zee 7 0.6117840605678454 0.1878849191181694 0 1 2 3 +zee wye 8 0.5985540091064224 0.976181385699006 0 1 2 3 +hat wye 9 0.03144187646093577 0.7495507603507059 0 1 2 3 +pan wye 10 0.5026260055412137 0.9526183602969864 0 1 2 3 + + +================================================================ +MAPVARS IN SCALAR FUNCTION-CALL CONTEXTS + +mlr --from ./reg_test/input/abixy put $z=strlen($*) +mlr: $* is not valid within scalar contexts. + +mlr --from ./reg_test/input/abixy put $z=strlen({}) +mlr: map-literals are not valid within scalar contexts. + +mlr --from ./reg_test/input/abixy put a={}; $z=strlen(a) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +================================================================ +MAPVAR ASSIGNMENTS TO FULL SREC + +mlr --from ./reg_test/input/xyz2 put $* = {"a":1, "b": {"x":8,"y":9}, "c":3} +a=1,c=3 +a=1,c=3 + +mlr --from ./reg_test/input/xyz2 put $* = $* +x=3,y=4,z=5 +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @a = 1; $* = @a + + + +mlr --from ./reg_test/input/xyz2 put @b[1] = 2; $* = @b +1=2 +1=2 + +mlr --from ./reg_test/input/xyz2 put @c[1][2] = 3; $* = @c + + + +mlr --from ./reg_test/input/xyz2 put @a = 1; $* = @* +a=1 +a=1 + +mlr --from ./reg_test/input/xyz2 put @b[1] = 2; $* = @* + + + +mlr --from ./reg_test/input/xyz2 put @c[1][2] = 3; $* = @* + + + +mlr --from ./reg_test/input/xyz2 put a = 1; $* = a + + + +mlr --from ./reg_test/input/xyz2 put b[1] = 2; $* = b +1=2 +1=2 + +mlr --from ./reg_test/input/xyz2 put c[1][2] = 3; $* = c + + + +mlr --from ./reg_test/input/xyz2 put $* = 3 + + + +mlr --from ./reg_test/input/xyz2 put + func map_valued_func() { + return {"a":1,"b":2} + } + map m = map_valued_func(); + $* = m; + +a=1,b=2 +a=1,b=2 + +mlr --from ./reg_test/input/xyz2 put + func map_valued_func() { + return {"a":1,"b":2} + } + $* = map_valued_func(); + +a=1,b=2 +a=1,b=2 + + +================================================================ +MAPVAR ASSIGNMENTS TO FULL OOSVAR + +mlr --from ./reg_test/input/xyz2 put @* = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +x=3,y=4,z=5 +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @* = $*; dump +{ + "x": 3, + "y": 4, + "z": 5 +} +x=3,y=4,z=5 +{ + "x": 6, + "y": 7, + "u": 8 +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @* = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump; @* = @*; dump +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +x=3,y=4,z=5 +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @a = 1; @* = @a; dump +{ +} +x=3,y=4,z=5 +{ +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @b[1] = 2; @* = @b; dump +{ + "1": 2 +} +x=3,y=4,z=5 +{ + "1": 2 +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @c[1][2] = 3; @* = @c; dump +{ + "1": { + "2": 3 + } +} +x=3,y=4,z=5 +{ + "1": { + "2": 3 + } +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @a = 1; @* = @*; dump +{ + "a": 1 +} +x=3,y=4,z=5 +{ + "a": 1 +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @b[1] = 2; @* = @*; dump +{ + "b": { + "1": 2 + } +} +x=3,y=4,z=5 +{ + "b": { + "1": 2 + } +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @c[1][2] = 3; @* = @*; dump +{ + "c": { + "1": { + "2": 3 + } + } +} +x=3,y=4,z=5 +{ + "c": { + "1": { + "2": 3 + } + } +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put a = 1; @* = a; dump +{ +} +x=3,y=4,z=5 +{ +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put b[1] = 2; @* = b; dump +{ + "1": 2 +} +x=3,y=4,z=5 +{ + "1": 2 +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put c[1][2] = 3; @* = c; dump +{ + "1": { + "2": 3 + } +} +x=3,y=4,z=5 +{ + "1": { + "2": 3 + } +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put @* = 3 +x=3,y=4,z=5 +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put + func map_valued_func() { + return {"a":1,"b":2} + } + map m = map_valued_func(); + @* = m; + dump + +{ + "a": 1, + "b": 2 +} +x=3,y=4,z=5 +{ + "a": 1, + "b": 2 +} +x=6,y=7,u=8 + +mlr --from ./reg_test/input/xyz2 put + func map_valued_func() { + return {"a":1,"b":2} + } + @* = map_valued_func(); + dump + +{ + "a": 1, + "b": 2 +} +x=3,y=4,z=5 +{ + "a": 1, + "b": 2 +} +x=6,y=7,u=8 + + +================================================================ +MAPVAR ASSIGNMENTS TO OOSVAR + +mlr --from ./reg_test/input/xyz2 put -q @o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump @o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q @o = @o; dump @o + + + +mlr --from ./reg_test/input/xyz2 put -q @o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump; @o = @*; dump +{ + "o": { + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 + } +} +{ + "o": { + "o": { + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 + } + } +} +{ + "o": { + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 + } +} +{ + "o": { + "o": { + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 + } + } +} + +mlr --from ./reg_test/input/xyz2 put -q @o = $*; dump @o +{ + "x": 3, + "y": 4, + "z": 5 +} +{ + "x": 6, + "y": 7, + "u": 8 +} + +mlr --from ./reg_test/input/xyz2 put -q @o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump @o; @o = @o; dump @o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q @o = {"a":1, "b": {"x":8,"y":9}, "c":3}; @o = @o; dump @o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q @a = 1; @o = @a; dump @o +1 +1 + +mlr --from ./reg_test/input/xyz2 put -q @b[1] = 2; @o = @b; dump @o +{ + "1": 2 +} +{ + "1": 2 +} + +mlr --from ./reg_test/input/xyz2 put -q @c[1][2] = 3; @o = @c; dump @o +{ + "1": { + "2": 3 + } +} +{ + "1": { + "2": 3 + } +} + +mlr --from ./reg_test/input/xyz2 put -q @a = 1; @o = @*; dump @o +{ + "a": 1 +} +{ + "a": 1, + "o": { + "a": 1 + } +} + +mlr --from ./reg_test/input/xyz2 put -q @b[1] = 2; @o = @*; dump @o +{ + "b": { + "1": 2 + } +} +{ + "b": { + "1": 2 + }, + "o": { + "b": { + "1": 2 + } + } +} + +mlr --from ./reg_test/input/xyz2 put -q @c[1][2] = 3; @o = @*; dump @o +{ + "c": { + "1": { + "2": 3 + } + } +} +{ + "c": { + "1": { + "2": 3 + } + }, + "o": { + "c": { + "1": { + "2": 3 + } + } + } +} + +mlr --from ./reg_test/input/xyz2 put -q a = 1; @o = a; dump @o +1 +1 + +mlr --from ./reg_test/input/xyz2 put -q b[1] = 2; @o = b; dump @o +{ + "1": 2 +} +{ + "1": 2 +} + +mlr --from ./reg_test/input/xyz2 put -q c[1][2] = 3; @o = c; dump @o +{ + "1": { + "2": 3 + } +} +{ + "1": { + "2": 3 + } +} + +mlr --from ./reg_test/input/xyz2 put -q func map_valued_func() { return {"a":1,"b":2}} @o = map_valued_func(); dump @o +{ + "a": 1, + "b": 2 +} +{ + "a": 1, + "b": 2 +} + + +================================================================ +MAPVAR ASSIGNMENTS TO MAP-TYPED LOCAL + +mlr --from ./reg_test/input/xyz2 put -q map o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q map o = @o; dump o +mlr: map type assertion for variable o unmet by value "" with type absent. + +mlr --from ./reg_test/input/xyz2 put -q map o = $*; dump o +{ + "x": 3, + "y": 4, + "z": 5 +} +{ + "x": 6, + "y": 7, + "u": 8 +} + +mlr --from ./reg_test/input/xyz2 put -q map o = {"a":1, "b": {"x":8,"y":9}, "c":3}; o = o; dump o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q @a = 1; map o = @a; dump o +mlr: map type assertion for variable o unmet by value 1 with type int. + +mlr --from ./reg_test/input/xyz2 put -q @b[1] = 2; map o = @b; dump o +{ + "1": 2 +} +{ + "1": 2 +} + +mlr --from ./reg_test/input/xyz2 put -q @c[1][2] = 3; map o = @c; dump o +{ + "1": { + "2": 3 + } +} +{ + "1": { + "2": 3 + } +} + +mlr --from ./reg_test/input/xyz2 put -q @a = 1; map o = @*; dump o +{ + "a": 1 +} +{ + "a": 1 +} + +mlr --from ./reg_test/input/xyz2 put -q @b[1] = 2; map o = @*; dump o +{ + "b": { + "1": 2 + } +} +{ + "b": { + "1": 2 + } +} + +mlr --from ./reg_test/input/xyz2 put -q @c[1][2] = 3; map o = @*; dump o +{ + "c": { + "1": { + "2": 3 + } + } +} +{ + "c": { + "1": { + "2": 3 + } + } +} + +mlr --from ./reg_test/input/xyz2 put -q a = 1; map o = a; dump o +mlr: map type assertion for variable o unmet by value 1 with type int. + +mlr --from ./reg_test/input/xyz2 put -q b[1] = 2; map o = b; dump o +{ + "1": 2 +} +{ + "1": 2 +} + +mlr --from ./reg_test/input/xyz2 put -q c[1][2] = 3; map o = c; dump o +{ + "1": { + "2": 3 + } +} +{ + "1": { + "2": 3 + } +} + +mlr --from ./reg_test/input/xyz2 put -q func map_valued_func() { return {"a":1,"b":2}} map o = map_valued_func(); dump o +{ + "a": 1, + "b": 2 +} +{ + "a": 1, + "b": 2 +} + + +================================================================ +MAPVAR ASSIGNMENTS TO VAR-TYPED LOCAL + +mlr --from ./reg_test/input/xyz2 put -q var o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q var o = @o; dump o + + + +mlr --from ./reg_test/input/xyz2 put -q var o = $*; dump o +{ + "x": 3, + "y": 4, + "z": 5 +} +{ + "x": 6, + "y": 7, + "u": 8 +} + +mlr --from ./reg_test/input/xyz2 put -q var o = {"a":1, "b": {"x":8,"y":9}, "c":3}; o = o; dump o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q @a = 1; var o = @a; dump o +1 +1 + +mlr --from ./reg_test/input/xyz2 put -q @b[1] = 2; var o = @b; dump o +{ + "1": 2 +} +{ + "1": 2 +} + +mlr --from ./reg_test/input/xyz2 put -q @c[1][2] = 3; var o = @c; dump o +{ + "1": { + "2": 3 + } +} +{ + "1": { + "2": 3 + } +} + +mlr --from ./reg_test/input/xyz2 put -q @a = 1; var o = @*; dump o +{ + "a": 1 +} +{ + "a": 1 +} + +mlr --from ./reg_test/input/xyz2 put -q @b[1] = 2; var o = @*; dump o +{ + "b": { + "1": 2 + } +} +{ + "b": { + "1": 2 + } +} + +mlr --from ./reg_test/input/xyz2 put -q @c[1][2] = 3; var o = @*; dump o +{ + "c": { + "1": { + "2": 3 + } + } +} +{ + "c": { + "1": { + "2": 3 + } + } +} + +mlr --from ./reg_test/input/xyz2 put -q a = 1; var o = a; dump o +1 +1 + +mlr --from ./reg_test/input/xyz2 put -q b[1] = 2; var o = b; dump o +{ + "1": 2 +} +{ + "1": 2 +} + +mlr --from ./reg_test/input/xyz2 put -q c[1][2] = 3; var o = c; dump o +{ + "1": { + "2": 3 + } +} +{ + "1": { + "2": 3 + } +} + +mlr --from ./reg_test/input/xyz2 put -q func map_valued_func() { return {"a":1,"b":2}} var o = map_valued_func(); dump o +{ + "a": 1, + "b": 2 +} +{ + "a": 1, + "b": 2 +} + + +================================================================ +MAPVAR ASSIGNMENTS TO UNTYPED LOCAL + +mlr --from ./reg_test/input/xyz2 put -q o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q o = @o; dump o + + + +mlr --from ./reg_test/input/xyz2 put -q o = $*; dump o +{ + "x": 3, + "y": 4, + "z": 5 +} +{ + "x": 6, + "y": 7, + "u": 8 +} + +mlr --from ./reg_test/input/xyz2 put -q o = {"a":1, "b": {"x":8,"y":9}, "c":3}; o = o; dump o +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} +{ + "a": 1, + "b": { + "x": 8, + "y": 9 + }, + "c": 3 +} + +mlr --from ./reg_test/input/xyz2 put -q @a = 1; o = @a; dump o +1 +1 + +mlr --from ./reg_test/input/xyz2 put -q @b[1] = 2; o = @b; dump o +{ + "1": 2 +} +{ + "1": 2 +} + +mlr --from ./reg_test/input/xyz2 put -q @c[1][2] = 3; o = @c; dump o +{ + "1": { + "2": 3 + } +} +{ + "1": { + "2": 3 + } +} + +mlr --from ./reg_test/input/xyz2 put -q @a = 1; o = @*; dump o +{ + "a": 1 +} +{ + "a": 1 +} + +mlr --from ./reg_test/input/xyz2 put -q @b[1] = 2; o = @*; dump o +{ + "b": { + "1": 2 + } +} +{ + "b": { + "1": 2 + } +} + +mlr --from ./reg_test/input/xyz2 put -q @c[1][2] = 3; o = @*; dump o +{ + "c": { + "1": { + "2": 3 + } + } +} +{ + "c": { + "1": { + "2": 3 + } + } +} + +mlr --from ./reg_test/input/xyz2 put -q a = 1; o = a; dump o +1 +1 + +mlr --from ./reg_test/input/xyz2 put -q b[1] = 2; o = b; dump o +{ + "1": 2 +} +{ + "1": 2 +} + +mlr --from ./reg_test/input/xyz2 put -q c[1][2] = 3; o = c; dump o +{ + "1": { + "2": 3 + } +} +{ + "1": { + "2": 3 + } +} + +mlr --from ./reg_test/input/xyz2 put -q func map_valued_func() { return {"a":1,"b":2}} o = map_valued_func(); dump o +{ + "a": 1, + "b": 2 +} +{ + "a": 1, + "b": 2 +} + + +================================================================ +SPLIT/JOIN + +mlr --from ./reg_test/input/abixy-het put -q o = joink($*, ":"); print o +a:b:i:x:y +a:b:i:x:y +aaa:b:i:x:y +a:bbb:i:x:y +a:b:i:xxx:y +a:b:i:x:y +a:b:iii:x:y +a:b:i:x:yyy +aaa:bbb:i:x:y +a:b:i:x:y + +mlr --from ./reg_test/input/abixy-het put -q o = joinv($*, ":"); print o +pan:pan:1:0.3467901443380824:0.7268028627434533 +eks:pan:2:0.7586799647899636:0.5221511083334797 +wye:wye:3:0.20460330576630303:0.33831852551664776 +eks:wye:4:0.38139939387114097:0.13418874328430463 +wye:pan:5:0.5732889198020006:0.8636244699032729 +zee:pan:6:0.5271261600918548:0.49322128674835697 +eks:zee:7:0.6117840605678454:0.1878849191181694 +zee:wye:8:0.5985540091064224:0.976181385699006 +hat:wye:9:0.03144187646093577:0.7495507603507059 +pan:wye:10:0.5026260055412137:0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put -q o = joinkv($*, ":", ";"); print o +a:pan;b:pan;i:1;x:0.3467901443380824;y:0.7268028627434533 +a:eks;b:pan;i:2;x:0.7586799647899636;y:0.5221511083334797 +aaa:wye;b:wye;i:3;x:0.20460330576630303;y:0.33831852551664776 +a:eks;bbb:wye;i:4;x:0.38139939387114097;y:0.13418874328430463 +a:wye;b:pan;i:5;xxx:0.5732889198020006;y:0.8636244699032729 +a:zee;b:pan;i:6;x:0.5271261600918548;y:0.49322128674835697 +a:eks;b:zee;iii:7;x:0.6117840605678454;y:0.1878849191181694 +a:zee;b:wye;i:8;x:0.5985540091064224;yyy:0.976181385699006 +aaa:hat;bbb:wye;i:9;x:0.03144187646093577;y:0.7495507603507059 +a:pan;b:wye;i:10;x:0.5026260055412137;y:0.9526183602969864 + +mlr --from ./reg_test/input/abixy-het put -q o = joink({1:2, "abc":4, 5:"xyz"}, ":"); print o +1:abc:5 +1:abc:5 +1:abc:5 +1:abc:5 +1:abc:5 +1:abc:5 +1:abc:5 +1:abc:5 +1:abc:5 +1:abc:5 + +mlr --from ./reg_test/input/abixy-het put -q o = joinv({1:2, "abc":4, 5:"xyz"}, ":"); print o +2:4:xyz +2:4:xyz +2:4:xyz +2:4:xyz +2:4:xyz +2:4:xyz +2:4:xyz +2:4:xyz +2:4:xyz +2:4:xyz + +mlr --from ./reg_test/input/abixy-het put -q o = joinkv({1:2, "abc":4, 5:"xyz"}, ":", ";"); print o +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz +1:2;abc:4;5:xyz + +mlr --from ./reg_test/input/abixy-het put $* = splitnv("a,b,c" , ","); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)} +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitkv("a=1,b=2,c", "=", ","); for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitnv("a,b,c", IFS); print ">>".IRS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitkv("a=1,b=2,c", IPS, IFS); print ">>".IRS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitnv("a,b,c", OFS); print ">>".ORS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitkv("a=1,b=2,c", OPS, OFS); print ">>".ORS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:int +b:string 2:int +3:string c:string +a=1,b=2,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitnvx("a,b,c" , ","); for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitkvx("a=1,b=2,c", "=", ","); for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitnvx("a,b,c", IFS); print ">>".IRS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitkvx("a=1,b=2,c", IPS, IFS); print ">>".IRS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitnvx("a,b,c", OFS); print ">>".ORS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c +>> +<< +1:string a:string +2:string b:string +3:string c:string +1=a,2=b,3=c + +mlr --from ./reg_test/input/abixy-het put $* = splitkvx("a=1,b=2,c", OPS, OFS); print ">>".ORS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)} +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c +>> +<< +a:string 1:string +b:string 2:string +3:string c:string +a=1,b=2,3=c + +mlr --oxtab --from ./reg_test/input/abixy-het put s = joink($*, ":"); $* = splitnv(s, ":") +1 a +2 b +3 i +4 x +5 y + +1 a +2 b +3 i +4 x +5 y + +1 aaa +2 b +3 i +4 x +5 y + +1 a +2 bbb +3 i +4 x +5 y + +1 a +2 b +3 i +4 xxx +5 y + +1 a +2 b +3 i +4 x +5 y + +1 a +2 b +3 iii +4 x +5 y + +1 a +2 b +3 i +4 x +5 yyy + +1 aaa +2 bbb +3 i +4 x +5 y + +1 a +2 b +3 i +4 x +5 y + +mlr --oxtab --from ./reg_test/input/abixy-het put s = joinv($*, ":"); $* = splitnv(s, ":") +1 pan +2 pan +3 1 +4 0.346790 +5 0.726803 + +1 eks +2 pan +3 2 +4 0.758680 +5 0.522151 + +1 wye +2 wye +3 3 +4 0.204603 +5 0.338319 + +1 eks +2 wye +3 4 +4 0.381399 +5 0.134189 + +1 wye +2 pan +3 5 +4 0.573289 +5 0.863624 + +1 zee +2 pan +3 6 +4 0.527126 +5 0.493221 + +1 eks +2 zee +3 7 +4 0.611784 +5 0.187885 + +1 zee +2 wye +3 8 +4 0.598554 +5 0.976181 + +1 hat +2 wye +3 9 +4 0.031442 +5 0.749551 + +1 pan +2 wye +3 10 +4 0.502626 +5 0.952618 + +mlr --oxtab --from ./reg_test/input/abixy-het put s = joinkv($*, ":", ";"); $* = splitkv(s, ":", ";"); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)} +a:string pan:string +b:string pan:string +i:string 1:int +x:string 0.346790:float +y:string 0.726803:float +a pan +b pan +i 1 +x 0.346790 +y 0.726803 +a:string eks:string +b:string pan:string +i:string 2:int +x:string 0.758680:float +y:string 0.522151:float + +a eks +b pan +i 2 +x 0.758680 +y 0.522151 +aaa:string wye:string +b:string wye:string +i:string 3:int +x:string 0.204603:float +y:string 0.338319:float + +aaa wye +b wye +i 3 +x 0.204603 +y 0.338319 +a:string eks:string +bbb:string wye:string +i:string 4:int +x:string 0.381399:float +y:string 0.134189:float + +a eks +bbb wye +i 4 +x 0.381399 +y 0.134189 +a:string wye:string +b:string pan:string +i:string 5:int +xxx:string 0.573289:float +y:string 0.863624:float + +a wye +b pan +i 5 +xxx 0.573289 +y 0.863624 +a:string zee:string +b:string pan:string +i:string 6:int +x:string 0.527126:float +y:string 0.493221:float + +a zee +b pan +i 6 +x 0.527126 +y 0.493221 +a:string eks:string +b:string zee:string +iii:string 7:int +x:string 0.611784:float +y:string 0.187885:float + +a eks +b zee +iii 7 +x 0.611784 +y 0.187885 +a:string zee:string +b:string wye:string +i:string 8:int +x:string 0.598554:float +yyy:string 0.976181:float + +a zee +b wye +i 8 +x 0.598554 +yyy 0.976181 +aaa:string hat:string +bbb:string wye:string +i:string 9:int +x:string 0.031442:float +y:string 0.749551:float + +aaa hat +bbb wye +i 9 +x 0.031442 +y 0.749551 +a:string pan:string +b:string wye:string +i:string 10:int +x:string 0.502626:float +y:string 0.952618:float + +a pan +b wye +i 10 +x 0.502626 +y 0.952618 + +mlr --oxtab --from ./reg_test/input/abixy-het put s = joinkv($*, ":", ";"); $* = splitkvx(s, ":", ";"); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)} +a:string pan:string +b:string pan:string +i:string 1:string +x:string 0.3467901443380824:string +y:string 0.7268028627434533:string +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 +a:string eks:string +b:string pan:string +i:string 2:string +x:string 0.7586799647899636:string +y:string 0.5221511083334797:string + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 +aaa:string wye:string +b:string wye:string +i:string 3:string +x:string 0.20460330576630303:string +y:string 0.33831852551664776:string + +aaa wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 +a:string eks:string +bbb:string wye:string +i:string 4:string +x:string 0.38139939387114097:string +y:string 0.13418874328430463:string + +a eks +bbb wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 +a:string wye:string +b:string pan:string +i:string 5:string +xxx:string 0.5732889198020006:string +y:string 0.8636244699032729:string + +a wye +b pan +i 5 +xxx 0.5732889198020006 +y 0.8636244699032729 +a:string zee:string +b:string pan:string +i:string 6:string +x:string 0.5271261600918548:string +y:string 0.49322128674835697:string + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 +a:string eks:string +b:string zee:string +iii:string 7:string +x:string 0.6117840605678454:string +y:string 0.1878849191181694:string + +a eks +b zee +iii 7 +x 0.6117840605678454 +y 0.1878849191181694 +a:string zee:string +b:string wye:string +i:string 8:string +x:string 0.5985540091064224:string +yyy:string 0.976181385699006:string + +a zee +b wye +i 8 +x 0.5985540091064224 +yyy 0.976181385699006 +aaa:string hat:string +bbb:string wye:string +i:string 9:string +x:string 0.03144187646093577:string +y:string 0.7495507603507059:string + +aaa hat +bbb wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 +a:string pan:string +b:string wye:string +i:string 10:string +x:string 0.5026260055412137:string +y:string 0.9526183602969864:string + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr --oxtab --from ./reg_test/input/abixy-het put s = joink({1:2, "abc":4, 5:"xyz"}, ":"); $* = splitnv(s, ":") +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +1 1 +2 abc +3 5 + +mlr --oxtab --from ./reg_test/input/abixy-het put s = joinv({1:2, "abc":4, 5:"xyz"}, ":"); $* = splitnv(s, ":") +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +1 2 +2 4 +3 xyz + +mlr --oxtab --from ./reg_test/input/abixy-het put s = joinkv({1:2, "abc":4, 5:"xyz"}, ":", ";"); $* = splitkv(s, ":", ";"); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)} +1:string 2:int +abc:string 4:int +5:string xyz:string +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:int +abc:string 4:int +5:string xyz:string + +1 2 +abc 4 +5 xyz + +mlr --oxtab --from ./reg_test/input/abixy-het put s = joinkv({1:2, "abc":4, 5:"xyz"}, ":", ";"); $* = splitkvx(s, ":", ";"); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)} +1:string 2:string +abc:string 4:string +5:string xyz:string +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz +1:string 2:string +abc:string 4:string +5:string xyz:string + +1 2 +abc 4 +5 xyz + + +================================================================ +MAPSUM/MAPDIFF/MAPEXCEPT + +mlr --from ./reg_test/input/abixy-het put -q o = mapsum(); dump o +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapdiff(); dump o +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapexcept(); dump o +mlr: Function named "mapexcept" takes at least 1 argument; got 0. + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect(); dump o +mlr: Function named "mapselect" takes at least 1 argument; got 0. + +mlr --from ./reg_test/input/abixy-het put -q o = mapsum($*); dump o +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapsum({"a":999}); dump o +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapdiff($*); dump o +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapdiff({"a":999}); dump o +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapexcept($*); dump o +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapexcept({"a":999}); dump o +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect($*); dump o +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect({"a":999}); dump o +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapsum($*, {"a":999}); dump o +{ + "a": 999, + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": 999, + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776, + "a": 999 +} +{ + "a": 999, + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": 999, + "b": "pan", + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": 999, + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": 999, + "b": "zee", + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": 999, + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059, + "a": 999 +} +{ + "a": 999, + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapsum({"a":999}, $*); dump o +{ + "a": "pan", + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": 999, + "aaa": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "a": "wye", + "b": "pan", + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": "zee", + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "a": 999, + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "a": "pan", + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapdiff($*, {"a":999}); dump o +{ + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "b": "pan", + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "b": "zee", + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapdiff({"a":999}, $*); dump o +{ +} +{ +} +{ + "a": 999 +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ + "a": 999 +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapexcept($*, "a"); dump o +{ + "b": "pan", + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "b": "pan", + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "b": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "b": "pan", + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "b": "pan", + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "b": "zee", + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "b": "wye", + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "b": "wye", + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapexcept({"a":999}, "a"); dump o +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapexcept({"a":999}, "nonesuch"); dump o +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect($*, "a"); dump o +{ + "a": "pan" +} +{ + "a": "eks" +} +{ +} +{ + "a": "eks" +} +{ + "a": "wye" +} +{ + "a": "zee" +} +{ + "a": "eks" +} +{ + "a": "zee" +} +{ +} +{ + "a": "pan" +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect({"a":999}, "a"); dump o +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} +{ + "a": 999 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect({"a":999}, "nonesuch"); dump o +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapsum($*, {"a":999}, {"b": 444}); dump o +{ + "a": 999, + "b": 444, + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": 999, + "b": 444, + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "b": 444, + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776, + "a": 999 +} +{ + "a": 999, + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463, + "b": 444 +} +{ + "a": 999, + "b": 444, + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": 999, + "b": 444, + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": 999, + "b": 444, + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": 999, + "b": 444, + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059, + "a": 999, + "b": 444 +} +{ + "a": 999, + "b": 444, + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapsum({"a":999}, $*, {"b": 444}); dump o +{ + "a": "pan", + "b": 444, + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "a": "eks", + "b": 444, + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "a": 999, + "aaa": "wye", + "b": 444, + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "a": "eks", + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463, + "b": 444 +} +{ + "a": "wye", + "b": 444, + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "a": "zee", + "b": 444, + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "a": "eks", + "b": 444, + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "a": "zee", + "b": 444, + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "a": 999, + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059, + "b": 444 +} +{ + "a": "pan", + "b": 444, + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapdiff($*, {"a":999}, {"b": 444}); dump o +{ + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapdiff({"a":999}, $*, {"b": 444}); dump o +{ +} +{ +} +{ + "a": 999 +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ + "a": 999 +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapexcept($*, "a", "b"); dump o +{ + "i": 1, + "x": 0.3467901443380824, + "y": 0.7268028627434533 +} +{ + "i": 2, + "x": 0.7586799647899636, + "y": 0.5221511083334797 +} +{ + "aaa": "wye", + "i": 3, + "x": 0.20460330576630303, + "y": 0.33831852551664776 +} +{ + "bbb": "wye", + "i": 4, + "x": 0.38139939387114097, + "y": 0.13418874328430463 +} +{ + "i": 5, + "xxx": 0.5732889198020006, + "y": 0.8636244699032729 +} +{ + "i": 6, + "x": 0.5271261600918548, + "y": 0.49322128674835697 +} +{ + "iii": 7, + "x": 0.6117840605678454, + "y": 0.1878849191181694 +} +{ + "i": 8, + "x": 0.5985540091064224, + "yyy": 0.976181385699006 +} +{ + "aaa": "hat", + "bbb": "wye", + "i": 9, + "x": 0.03144187646093577, + "y": 0.7495507603507059 +} +{ + "i": 10, + "x": 0.5026260055412137, + "y": 0.9526183602969864 +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect({"a":999}, "b", "nonesuch"); dump o +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect($*, "a", "b"); dump o +{ + "a": "pan", + "b": "pan" +} +{ + "a": "eks", + "b": "pan" +} +{ + "b": "wye" +} +{ + "a": "eks" +} +{ + "a": "wye", + "b": "pan" +} +{ + "a": "zee", + "b": "pan" +} +{ + "a": "eks", + "b": "zee" +} +{ + "a": "zee", + "b": "wye" +} +{ +} +{ + "a": "pan", + "b": "wye" +} + +mlr --from ./reg_test/input/abixy-het put -q o = mapselect({"a":999}, "b", "nonesuch"); dump o +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} +{ +} + + +================================================================ +EXTENDED TYPEOF + +mlr --from ./reg_test/input/xyz2 --oxtab put + a = {1:2, 3:4}; + b = {1: {2:3, 4:5}}; + @c = {1:2, 3:4}; + @d = {1: {2:3, 4:5}}; + + $ta = typeof(a); + $ta1 = typeof(a[1]); + $ta7 = typeof(a[7]); + + $tb = typeof(b); + $tb1 = typeof(b[1]); + $tb7 = typeof(b[7]); + + $tc = typeof(@c); + $tc1 = typeof(@c[1]); + $tc7 = typeof(@c[7]); + + $td = typeof(@d); + $td1 = typeof(@d[1]); + $td7 = typeof(@d[7]); + + $te1 = typeof(6); + $te2 = typeof({6:4}); + + $tsa = typeof($a); + $tsx = typeof($x); + $ts = typeof($*); + +x 3 +y 4 +z 5 +ta map +ta1 int +ta7 absent +tb map +tb1 map +tb7 absent +tc map +tc1 int +tc7 absent +td map +td1 map +td7 absent +te1 int +te2 map +tsa absent +tsx int +ts map + +x 6 +y 7 +u 8 +ta map +ta1 int +ta7 absent +tb map +tb1 map +tb7 absent +tc map +tc1 int +tc7 absent +td map +td1 map +td7 absent +te1 int +te2 map +tsa absent +tsx int +ts map + + +================================================================ +HASKEY + +mlr --from ./reg_test/input/abixy-het put $haskeya = haskey($*, "a") +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,haskeya=true +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,haskeya=true +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,haskeya=false +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,haskeya=true +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,haskeya=true +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,haskeya=true +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,haskeya=true +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,haskeya=true +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,haskeya=false +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,haskeya=true + +mlr --from ./reg_test/input/abixy-het put $haskey3 = haskey($*, 3) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,haskey3=false +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,haskey3=false +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,haskey3=false +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,haskey3=false +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,haskey3=false +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,haskey3=false +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,haskey3=false +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,haskey3=false +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,haskey3=false +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,haskey3=false + +mlr --from ./reg_test/input/xyz2 put $haskeya = haskey({3:4}, "a") +x=3,y=4,z=5,haskeya=false +x=6,y=7,u=8,haskeya=false + +mlr --from ./reg_test/input/xyz2 put $haskey3 = haskey({3:4}, 3) +x=3,y=4,z=5,haskey3=true +x=6,y=7,u=8,haskey3=true + +mlr --from ./reg_test/input/xyz2 put $haskey3 = haskey({3:4}, 4) +x=3,y=4,z=5,haskey3=false +x=6,y=7,u=8,haskey3=false + +mlr --from ./reg_test/input/xyz2 put o = {3:4}; $haskeya = haskey(o, "a") +x=3,y=4,z=5,haskeya=false +x=6,y=7,u=8,haskeya=false + +mlr --from ./reg_test/input/xyz2 put o = {3:4}; $haskey3 = haskey(o, 3) +x=3,y=4,z=5,haskey3=true +x=6,y=7,u=8,haskey3=true + +mlr --from ./reg_test/input/xyz2 put o = {3:4}; $haskey3 = haskey(o, 4) +x=3,y=4,z=5,haskey3=false +x=6,y=7,u=8,haskey3=false + +mlr --from ./reg_test/input/xyz2 put @o = {3:4}; $haskeya = haskey(@o, "a") +x=3,y=4,z=5,haskeya=false +x=6,y=7,u=8,haskeya=false + +mlr --from ./reg_test/input/xyz2 put @o = {3:4}; $haskey3 = haskey(@o, 3) +x=3,y=4,z=5,haskey3=true +x=6,y=7,u=8,haskey3=true + +mlr --from ./reg_test/input/xyz2 put @o = {3:4}; $haskey3 = haskey(@o, 4) +x=3,y=4,z=5,haskey3=false +x=6,y=7,u=8,haskey3=false + +mlr --from ./reg_test/input/xyz2 put o = "3:4"; $haskeya = haskey(@o, "a") +x=3,y=4,z=5,haskeya=(error) +x=6,y=7,u=8,haskeya=(error) + +mlr --from ./reg_test/input/xyz2 put o = "3:4"; $haskey3 = haskey(@o, 3) +x=3,y=4,z=5,haskey3=(error) +x=6,y=7,u=8,haskey3=(error) + +mlr --from ./reg_test/input/xyz2 put o = "3:4"; $haskey3 = haskey(@o, 4) +x=3,y=4,z=5,haskey3=(error) +x=6,y=7,u=8,haskey3=(error) + + +================================================================ +LENGTH/DEPTH/LEAFCOUNT + +mlr --from ./reg_test/input/abixy-het put $length = length($a) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,length=1 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,length=1 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,length=1 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,length=1 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,length=1 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,length=1 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,length=1 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,length=1 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,length=1 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,length=1 + +mlr --from ./reg_test/input/abixy-het put $length = length($*) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,length=5 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,length=5 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,length=5 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,length=5 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,length=5 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,length=5 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,length=5 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,length=5 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,length=5 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,length=5 + +mlr --from ./reg_test/input/xyz2 put $length= length({3:4, 5:{6:7}, 8:{9:{10:11}}}) +x=3,y=4,z=5,length=3 +x=6,y=7,u=8,length=3 + +mlr --from ./reg_test/input/xyz2 put o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $length = length(o) +x=3,y=4,z=5,length=3 +x=6,y=7,u=8,length=3 + +mlr --from ./reg_test/input/xyz2 put @o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $length = length(@o) +x=3,y=4,z=5,length=3 +x=6,y=7,u=8,length=3 + +mlr --from ./reg_test/input/abixy-het put $depth = depth($a) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,depth=0 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,depth=0 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,depth=0 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,depth=0 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,depth=0 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,depth=0 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,depth=0 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,depth=0 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,depth=0 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,depth=0 + +mlr --from ./reg_test/input/abixy-het put $depth = depth($*) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,depth=1 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,depth=1 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,depth=1 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,depth=1 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,depth=1 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,depth=1 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,depth=1 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,depth=1 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,depth=1 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,depth=1 + +mlr --from ./reg_test/input/xyz2 put $depth= depth({3:4, 5:{6:7}, 8:{9:{10:11}}}) +x=3,y=4,z=5,depth=3 +x=6,y=7,u=8,depth=3 + +mlr --from ./reg_test/input/xyz2 put o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $depth = depth(o) +x=3,y=4,z=5,depth=3 +x=6,y=7,u=8,depth=3 + +mlr --from ./reg_test/input/xyz2 put @o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $depth = depth(@o) +x=3,y=4,z=5,depth=3 +x=6,y=7,u=8,depth=3 + +mlr --from ./reg_test/input/abixy-het put $leafcount = leafcount($a) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,leafcount=1 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,leafcount=1 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,leafcount=1 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,leafcount=1 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,leafcount=1 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,leafcount=1 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,leafcount=1 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,leafcount=1 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,leafcount=1 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,leafcount=1 + +mlr --from ./reg_test/input/abixy-het put $leafcount = leafcount($*) +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,leafcount=5 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,leafcount=5 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,leafcount=5 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,leafcount=5 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,leafcount=5 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,leafcount=5 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,leafcount=5 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,leafcount=5 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,leafcount=5 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,leafcount=5 + +mlr --from ./reg_test/input/xyz2 put $leafcount= leafcount({3:4, 5:{6:7}, 8:{9:{10:11}}}) +x=3,y=4,z=5,leafcount=3 +x=6,y=7,u=8,leafcount=3 + +mlr --from ./reg_test/input/xyz2 put o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $leafcount = leafcount(o) +x=3,y=4,z=5,leafcount=3 +x=6,y=7,u=8,leafcount=3 + +mlr --from ./reg_test/input/xyz2 put @o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $leafcount = leafcount(@o) +x=3,y=4,z=5,leafcount=3 +x=6,y=7,u=8,leafcount=3 + + +================================================================ +MAPVAR EMIT + +mlr -n put end { + @a[2][3] = 4; + b[2][3] = 8; + emit (@a, b, {2:{3:12}}); + emitp (@a, b, {2:{3:12}}); + emit {}; + emit (@a, b, {2:{3:12}}), "t"; + emitp (@a, b, {2:{3:12}}), "t"; + emit {}; + emit (@a, b, {2:{3:12}}), "t", "u"; + emitp (@a, b, {2:{3:12}}), "t", "u"; +} +3=12 +a:2:3=4,b:2:3=8,_:2:3=12 + +t=2,3=12 +t=2,a:3=4,b:3=8,_:3=12 + +t=2,u=3,a=4,b=8,_=12 +t=2,u=3,a=4,b=8,_=12 + +mlr -n put end { + @a[2][3] = 4; + b[2][3] = 8; + emitp (@a, b, {2:{3:12}}); + emit (@a, b, {2:{3:12}}); + emit {}; + emitp (@a, b, {2:{3:12}}), "t"; + emit (@a, b, {2:{3:12}}), "t"; + emit {}; + emitp (@a, b, {2:{3:12}}), "t", "u"; + emit (@a, b, {2:{3:12}}), "t", "u"; +} +a:2:3=4,b:2:3=8,_:2:3=12 +3=12 + +t=2,a:3=4,b:3=8,_:3=12 +t=2,3=12 + +t=2,u=3,a=4,b=8,_=12 +t=2,u=3,a=4,b=8,_=12 + + +================================================================ +MAPVAR FOR-LOOPS + +mlr --from ./reg_test/input/abixy put -q + func f() { + return { + "a:".$a: $i, + "b:".$b: $y, + NR: NF, + } + } + for (k,v in f()) { + print "k=".k; + print "v=".v; + } + print + +k=a:pan +v=1 +k=b:pan +v=0.726803 +k=1 +v=5 + +k=a:eks +v=2 +k=b:pan +v=0.522151 +k=2 +v=5 + +k=a:wye +v=3 +k=b:wye +v=0.338319 +k=3 +v=5 + +k=a:eks +v=4 +k=b:wye +v=0.134189 +k=4 +v=5 + +k=a:wye +v=5 +k=b:pan +v=0.863624 +k=5 +v=5 + +k=a:zee +v=6 +k=b:pan +v=0.493221 +k=6 +v=5 + +k=a:eks +v=7 +k=b:zee +v=0.187885 +k=7 +v=5 + +k=a:zee +v=8 +k=b:wye +v=0.976181 +k=8 +v=5 + +k=a:hat +v=9 +k=b:wye +v=0.749551 +k=9 +v=5 + +k=a:pan +v=10 +k=b:wye +v=0.952618 +k=10 +v=5 + + + +================================================================ +TRAILING COMMAS + +mlr --from ./reg_test/input/abixy put + $* = { + "a": $a, + "x": $x, + } + +a=pan,x=0.346790 +a=eks,x=0.758680 +a=wye,x=0.204603 +a=eks,x=0.381399 +a=wye,x=0.573289 +a=zee,x=0.527126 +a=eks,x=0.611784 +a=zee,x=0.598554 +a=hat,x=0.031442 +a=pan,x=0.502626 + +mlr --from ./reg_test/input/xyz345 put func f(): int { return 999 } $y=f() +x=3,y=999,z=5 + +mlr --from ./reg_test/input/xyz345 put func f(): int { return 999 } $y=f(,) +mlr DSL: syntax error at "," +mlr put: syntax error on DSL parse of 'func f(): int { return 999 } $y=f(,)' + +mlr --from ./reg_test/input/xyz345 put func f(a,): int { return a*2 } $y=f(NR) +x=3,y=2,z=5 + +mlr --from ./reg_test/input/xyz345 put func f(a,,): int { return a*2 } $y=f(NR) +mlr DSL: syntax error at "," +mlr put: syntax error on DSL parse of 'func f(a,,): int { return a*2 } $y=f(NR)' + +mlr --from ./reg_test/input/xyz345 put func f(int a,): int { return a*2 } $y=f(NR) +x=3,y=2,z=5 + +mlr --from ./reg_test/input/xyz345 put func f(int a,,): int { return a*2 } $y=f(NR) +mlr DSL: syntax error at "," +mlr put: syntax error on DSL parse of 'func f(int a,,): int { return a*2 } $y=f(NR)' + +mlr --from ./reg_test/input/xyz345 put subr s() { print 999 } call s() +999 +x=3,y=4,z=5 + +mlr --from ./reg_test/input/xyz345 put subr s() { print 999 } call s(,) +mlr DSL: syntax error at "," +mlr put: syntax error on DSL parse of 'subr s() { print 999 } call s(,)' + +mlr --from ./reg_test/input/xyz345 put subr s(a,) { print a*2 } call s(NR) +2 +x=3,y=4,z=5 + +mlr --from ./reg_test/input/xyz345 put subr s(a,,) { print a*2 } call s(NR) +mlr DSL: syntax error at "," +mlr put: syntax error on DSL parse of 'subr s(a,,) { print a*2 } call s(NR)' + +mlr --from ./reg_test/input/xyz345 put subr s(int a,) { print a*2 } call s(NR) +2 +x=3,y=4,z=5 + +mlr --from ./reg_test/input/xyz345 put subr s(int a,,) { print a*2 } call s(NR) +mlr DSL: syntax error at "," +mlr put: syntax error on DSL parse of 'subr s(int a,,) { print a*2 } call s(NR)' + +mlr --from ./reg_test/input/xyz345 put $y=log10($x) +x=3,y=0.477121,z=5 + +mlr --from ./reg_test/input/xyz345 put $y=log10($x,) +x=3,y=0.477121,z=5 + +mlr --from ./reg_test/input/xyz345 put $y=log10($x,,) +mlr DSL: syntax error at "," +mlr put: syntax error on DSL parse of '$y=log10($x,,)' + +mlr --from ./reg_test/input/xyz345 put $y=log10(,$x) +mlr DSL: syntax error at "," +mlr put: syntax error on DSL parse of '$y=log10(,$x)' + +mlr --from ./reg_test/input/xyz345 put $y=pow($x,2) +x=3,y=9.000000,z=5 + +mlr --from ./reg_test/input/xyz345 put $y=pow($x,2,) +x=3,y=9.000000,z=5 + + +================================================================ +MAPVARS/UDFs/SUBROUTINES + +mlr --from ./reg_test/input/abixy put + func f(m) { + dump m; + sum = 0; + for (k, v in m) { + sum += k + } + return sum + } + @v[$i] = $a; + $y = f(@v) + +{ + "1": "pan" +} +a=pan,b=pan,i=1,x=0.3467901443380824,y=1 +{ + "1": "pan", + "2": "eks" +} +a=eks,b=pan,i=2,x=0.7586799647899636,y=3 +{ + "1": "pan", + "2": "eks", + "3": "wye" +} +a=wye,b=wye,i=3,x=0.20460330576630303,y=6 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks" +} +a=eks,b=wye,i=4,x=0.38139939387114097,y=10 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye" +} +a=wye,b=pan,i=5,x=0.5732889198020006,y=15 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee" +} +a=zee,b=pan,i=6,x=0.5271261600918548,y=21 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee", + "7": "eks" +} +a=eks,b=zee,i=7,x=0.6117840605678454,y=28 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee", + "7": "eks", + "8": "zee" +} +a=zee,b=wye,i=8,x=0.5985540091064224,y=36 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee", + "7": "eks", + "8": "zee", + "9": "hat" +} +a=hat,b=wye,i=9,x=0.03144187646093577,y=45 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee", + "7": "eks", + "8": "zee", + "9": "hat", + "10": "pan" +} +a=pan,b=wye,i=10,x=0.5026260055412137,y=55 + +mlr --from ./reg_test/input/abixy put + subr s(m) { + dump m; + sum = 0; + for (k, v in m) { + sum += k + } + @sum = sum; + } + @v[$i] = $a; + call s(@v); + $y = @sum; + +{ + "1": "pan" +} +a=pan,b=pan,i=1,x=0.3467901443380824,y=1 +{ + "1": "pan", + "2": "eks" +} +a=eks,b=pan,i=2,x=0.7586799647899636,y=3 +{ + "1": "pan", + "2": "eks", + "3": "wye" +} +a=wye,b=wye,i=3,x=0.20460330576630303,y=6 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks" +} +a=eks,b=wye,i=4,x=0.38139939387114097,y=10 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye" +} +a=wye,b=pan,i=5,x=0.5732889198020006,y=15 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee" +} +a=zee,b=pan,i=6,x=0.5271261600918548,y=21 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee", + "7": "eks" +} +a=eks,b=zee,i=7,x=0.6117840605678454,y=28 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee", + "7": "eks", + "8": "zee" +} +a=zee,b=wye,i=8,x=0.5985540091064224,y=36 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee", + "7": "eks", + "8": "zee", + "9": "hat" +} +a=hat,b=wye,i=9,x=0.03144187646093577,y=45 +{ + "1": "pan", + "2": "eks", + "3": "wye", + "4": "eks", + "5": "wye", + "6": "zee", + "7": "eks", + "8": "zee", + "9": "hat", + "10": "pan" +} +a=pan,b=wye,i=10,x=0.5026260055412137,y=55 + +mlr --from ./reg_test/input/abixy-het put func f(x) {return {"a":x,"b":x**2}}; map o = f($x); $* = o +a=0.346790,b=0.120263 +a=0.758680,b=0.575595 +a=0.204603,b=0.041863 +a=0.381399,b=0.145465 +a=,b= +a=0.527126,b=0.277862 +a=0.611784,b=0.374280 +a=0.598554,b=0.358267 +a=0.031442,b=0.000989 +a=0.502626,b=0.252633 + +mlr --from ./reg_test/input/abixy-het put -q func f(x) {return x**2}; var z = f($x); dump z +0.120263 +0.575595 +0.041863 +0.145465 + +0.277862 +0.374280 +0.358267 +0.000989 +0.252633 + +mlr --from ./reg_test/input/abixy-het put -q func f(x) {map m = {NR:x};return m}; z = f($y); dump z +{ + "1": 0.726803 +} +{ + "2": 0.522151 +} +{ + "3": 0.338319 +} +{ + "4": 0.134189 +} +{ + "5": 0.863624 +} +{ + "6": 0.493221 +} +{ + "7": 0.187885 +} +{ + "8": +} +{ + "9": 0.749551 +} +{ + "10": 0.952618 +} + +mlr --from ./reg_test/input/abixy put + func f(int x): map { + if (NR==2) { + return 2 + } else { + return {} + } + } + $y=f($x) + +mlr: int type assertion for variable x unmet by value 0.346790 with type float. + +mlr --from ./reg_test/input/abixy put + func f(int x): map { + if (NR==200) { + return 2 + } else { + return {} + } + } + $y=f($i) + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put + func f(int x): map { + if (NR==200) { + return 2 + } else { + return {} + } + } + $y=f($x) + +mlr: int type assertion for variable x unmet by value 0.346790 with type float. + +mlr --from ./reg_test/input/abixy put + func f(int x): var { + if (NR==2) { + return 2 + } else { + return {} + } + } + $y=f($i) + +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=2 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + +mlr --from ./reg_test/input/abixy put + func f(int x): var { + if (NR==2) { + return 2 + } else { + return {} + } + } + $y=f($x) + +mlr: int type assertion for variable x unmet by value 0.346790 with type float. + +mlr --from ./reg_test/input/abixy put + func f(x): int { + # fall-through return value is absent-null + } + $y=f($x) + +mlr: function f returned type absent, not matching typedecl int. + +mlr --from ./reg_test/input/abixy put + int a = 1; + var b = a[2]; # cannot index localvar declared non-map + +mlr: int type assertion for variable a unmet on read. + +mlr --oxtab --from ./reg_test/input/abixy-het put + $* = mapdiff( + mapsum($*, {"a": "newval"}), + {"b": "nonesuch"}, + ) + +a newval +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a newval +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +aaa wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 +a newval + +a newval +bbb wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a newval +i 5 +xxx 0.5732889198020006 +y 0.8636244699032729 + +a newval +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a newval +iii 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a newval +i 8 +x 0.5985540091064224 +yyy 0.976181385699006 + +aaa hat +bbb wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 +a newval + +a newval +i 10 +x 0.5026260055412137 +y 0.9526183602969864 + +mlr lecat --mono +hello[CR]there[CR]how[CR]are[CR]you[CR]mlr lecat --mono +hello[LF] +there[LF] +how[LF] +are[LF] +you[LF] +mlr lecat --mono +hello[CR][LF] +there[CR][LF] +how[CR][LF] +are[CR][LF] +you[CR][LF] +mlr termcvt --cr2lf +mlr termcvt --cr2crlf +mlr termcvt --lf2cr +mlr termcvt --lf2crlf +mlr termcvt --crlf2cr +mlr termcvt --crlf2lf +mlr hex +00000000: 68 65 6c 6c 6f 0a 74 68 65 72 65 0a 68 6f 77 0a |hello.there.how.| +00000010: 61 72 65 0a 79 6f 75 0a |are.you.| +mlr hex +00000000: 68 65 6c 6c 6f 0d 0a 74 68 65 72 65 0d 0a 68 6f |hello..there..ho| +00000010: 77 0d 0a 61 72 65 0d 0a 79 6f 75 0d 0a |w..are..you..| +mlr hex +00000000: 68 65 6c 6c 6f 0d 74 68 65 72 65 0d 68 6f 77 0d |hello.there.how.| +00000010: 61 72 65 0d 79 6f 75 0d |are.you.| +mlr hex +00000000: 68 65 6c 6c 6f 0d 0a 74 68 65 72 65 0d 0a 68 6f |hello..there..ho| +00000010: 77 0d 0a 61 72 65 0d 0a 79 6f 75 0d 0a |w..are..you..| +mlr hex +00000000: 68 65 6c 6c 6f 0d 74 68 65 72 65 0d 68 6f 77 0d |hello.there.how.| +00000010: 61 72 65 0d 79 6f 75 0d |are.you.| +mlr hex +00000000: 68 65 6c 6c 6f 0a 74 68 65 72 65 0a 68 6f 77 0a |hello.there.how.| +00000010: 61 72 65 0a 79 6f 75 0a |are.you.| diff --git a/go/reg_test/expected/out-dev b/go/reg_test/expected/out-dev new file mode 100644 index 000000000..e1b462325 --- /dev/null +++ b/go/reg_test/expected/out-dev @@ -0,0 +1,695 @@ + +================================================================ +OLD NULL-HANDLING + + +---------------------------------------------------------------- ok +mlr put $z = $x + $y ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=3 +x=1,y=,s=,z= +x=,y=,s=hurrah,z= + + +---------------------------------------------------------------- ok +mlr put $z = $y + $y ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=4 +x=1,y=,s=,z= +x=,y=,s=hurrah,z= + + +---------------------------------------------------------------- FIXME FOR SRECS +mlr put $z = $x + $nosuch ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,z=1 +x=1,y=,s=,z=1 +x=,y=,s=hurrah,z= + + +---------------------------------------------------------------- ok +mlr put $t = sub($s, "ell", "X") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t=hXo +x=1,y=,s=,t= +x=,y=,s=hurrah,t=hurrah + + +---------------------------------------------------------------- ok +mlr put $t = sub($s, "ell", "") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t=ho +x=1,y=,s=,t= +x=,y=,s=hurrah,t=hurrah + + +---------------------------------------------------------------- ok +mlr put $t = sub($nosuch, "ell", "X") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t= +x=1,y=,s=,t= +x=,y=,s=hurrah,t= + + +---------------------------------------------------------------- ok +mlr put $t = gsub($s, "l", "X") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t=heXXo +x=1,y=,s=,t= +x=,y=,s=hurrah,t=hurrah + + +---------------------------------------------------------------- ok +mlr put $t = gsub($s, "l", "") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t=heo +x=1,y=,s=,t= +x=,y=,s=hurrah,t=hurrah + + +---------------------------------------------------------------- ok +mlr put $t = gsub($nosuch, "l", "X") ./reg_test/input/null-vs-empty.dkvp +x=1,y=2,s=hello,t= +x=1,y=,s=,t= +x=,y=,s=hurrah,t= + + +================================================================ +NULLITY PREDICATES + +mlr --opprint filter isnull($x) ./reg_test/input/nullvals.dkvp +a x y z +b - 6 - +b - - - + +mlr --opprint filter isnull($y) ./reg_test/input/nullvals.dkvp +a x y z +b 5 - - +b - - - + +mlr --opprint filter isnull($z) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint filter isnull($nosuch) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - +b - 6 - +b - - - + +mlr --opprint filter isnotnull($x) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b 5 - - + +mlr --opprint filter isnotnull($y) ./reg_test/input/nullvals.dkvp +a x y z +b 1 2 - +b 3 4 - +b - 6 - + +mlr --opprint filter isnotnull($z) ./reg_test/input/nullvals.dkvp + +mlr --opprint filter isnotnull($nosuch) ./reg_test/input/nullvals.dkvp + +mlr --opprint put $f=isnull($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - true +b - - - true + +mlr --opprint put $f=isnull($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - true +b - 6 - false +b - - - true + +mlr --opprint put $f=isnull($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=isnull($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - true +b - - - true + +mlr --opprint put $f=isnotnull($x) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - true +b - 6 - false +b - - - false + +mlr --opprint put $f=isnotnull($y) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - true +b 3 4 - true +b 5 - - false +b - 6 - true +b - - - false + +mlr --opprint put $f=isnotnull($z) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + +mlr --opprint put $f=isnotnull($nosuch) ./reg_test/input/nullvals.dkvp +a x y z f +b 1 2 - false +b 3 4 - false +b 5 - - false +b - 6 - false +b - - - false + + +================================================================ +TRI-SPLIT-NULL HANDLING + + +---------------------------------------------------------------- ok +mlr put -q @sum += $x; end{emitp @sum} ./reg_test/input/abixy +sum=4.536294 + + +---------------------------------------------------------------- ok +mlr put -q @sum[$a] += $x; end{emitp @sum, "a"} ./reg_test/input/abixy +a=pan,sum=0.849416 +a=eks,sum=1.751863 +a=wye,sum=0.777892 +a=zee,sum=1.125680 +a=hat,sum=0.031442 + + +---------------------------------------------------------------- ok +mlr put $nonesuch = @nonesuch ./reg_test/input/abixy +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,nonesuch= +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,nonesuch= +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,nonesuch= +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,nonesuch= +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729,nonesuch= +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,nonesuch= +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694,nonesuch= +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006,nonesuch= +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,nonesuch= +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,nonesuch= + + +---------------------------------------------------------------- ok +mlr put -q @sum += $x; end{emitp @sum} ./reg_test/input/abixy-het +sum=3.963005 + + +---------------------------------------------------------------- ok +mlr put -q @sum[$a] += $x; end{emitp @sum, "a"} ./reg_test/input/abixy-het +a=pan,sum=0.849416 +a=eks,sum=1.751863 +a=wye,sum= +a=zee,sum=1.125680 + + +---------------------------------------------------------------- ok +mlr put $nonesuch = @nonesuch ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,nonesuch= +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,nonesuch= +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,nonesuch= +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,nonesuch= +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,nonesuch= +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,nonesuch= +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,nonesuch= +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,nonesuch= +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,nonesuch= +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,nonesuch= + +mlr put -q @sum += $x; @sumtype = typeof(@sum); @xtype = typeof($x); emitf @sumtype, @xtype, @sum; end{emitp @sum} ./reg_test/input/abixy +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=0.346790 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=1.105470 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=1.310073 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=1.691473 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=2.264762 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=2.791888 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=3.403672 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=4.002226 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=4.033668 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=4.536294 +sum=4.536294 + +mlr put -q @sum += $x; @sumtype = typeof(@sum); @xtype = typeof($x); emitf @sumtype, @xtype, @sum; end{emitp @sum} ./reg_test/input/abixy-het +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=0.346790 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=1.105470 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=1.310073 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=1.691473 +sumtype=MT_FLOAT,xtype=MT_ABSENT,sum=1.691473 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=2.218599 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=2.830383 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=3.428937 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=3.460379 +sumtype=MT_FLOAT,xtype=MT_FLOAT,sum=3.963005 +sum=3.963005 + +mlr put $z = $x + $y ./reg_test/input/typeof.dkvp +x=1,y=2,z=3 +x=1,y=,z= +x=,y=2,z= +x=,y=,z= + +mlr put $z = $x + $y ./reg_test/input/typeof.dkvp +x=1,y=2,z=3 +x=1,y=,z= +x=,y=2,z= +x=,y=,z= + +mlr put $z = $x + $u ./reg_test/input/typeof.dkvp +x=1,y=2,z=1 +x=1,y=,z=1 +x=,y=2,z= +x=,y=,z= + +mlr put @s = @s + $y; emitp @s ./reg_test/input/typeof.dkvp +s=2 +x=1,y=2 +s= +x=1,y= +s= +x=,y=2 +s= +x=,y= + +mlr put @s = @s + $y; emitp @s ./reg_test/input/typeof.dkvp +s=2 +x=1,y=2 +s= +x=1,y= +s= +x=,y=2 +s= +x=,y= + +mlr put @s = @s + $u; emitp @s ./reg_test/input/typeof.dkvp +s= +x=1,y=2 +s= +x=1,y= +s= +x=,y=2 +s= +x=,y= + +mlr put $z = $x + $y; $x=typeof($x);$y=typeof($y);$z=typeof($z) ./reg_test/input/typeof.dkvp +x=MT_INT,y=MT_INT,z=MT_INT +x=MT_INT,y=MT_VOID,z=MT_VOID +x=MT_VOID,y=MT_INT,z=MT_VOID +x=MT_VOID,y=MT_VOID,z=MT_VOID + +mlr put $z = $x + $y; $x=typeof($x);$y=typeof($y);$z=typeof($z) ./reg_test/input/typeof.dkvp +x=MT_INT,y=MT_INT,z=MT_INT +x=MT_INT,y=MT_VOID,z=MT_VOID +x=MT_VOID,y=MT_INT,z=MT_VOID +x=MT_VOID,y=MT_VOID,z=MT_VOID + +mlr put $z = $x + $u; $x=typeof($x);$y=typeof($y);$z=typeof($z) ./reg_test/input/typeof.dkvp +x=MT_INT,y=MT_INT,z=MT_INT +x=MT_INT,y=MT_VOID,z=MT_INT +x=MT_VOID,y=MT_INT,z=MT_VOID +x=MT_VOID,y=MT_VOID,z=MT_VOID + +mlr put @s = @s + $y; $x=typeof($x);$y=typeof($y);$z=typeof($z);$s=typeof(@s) ./reg_test/input/typeof.dkvp +x=MT_INT,y=MT_INT,z=MT_ABSENT,s=MT_INT +x=MT_INT,y=MT_VOID,z=MT_ABSENT,s=MT_VOID +x=MT_VOID,y=MT_INT,z=MT_ABSENT,s=MT_VOID +x=MT_VOID,y=MT_VOID,z=MT_ABSENT,s=MT_VOID + +mlr put @s = @s + $y; $x=typeof($x);$y=typeof($y);$z=typeof($z);$s=typeof(@s) ./reg_test/input/typeof.dkvp +x=MT_INT,y=MT_INT,z=MT_ABSENT,s=MT_INT +x=MT_INT,y=MT_VOID,z=MT_ABSENT,s=MT_VOID +x=MT_VOID,y=MT_INT,z=MT_ABSENT,s=MT_VOID +x=MT_VOID,y=MT_VOID,z=MT_ABSENT,s=MT_VOID + +mlr put @s = @s + $u; $x=typeof($x);$y=typeof($y);$z=typeof($z);$s=typeof(@s) ./reg_test/input/typeof.dkvp +x=MT_INT,y=MT_INT,z=MT_ABSENT,s=MT_VOID +x=MT_INT,y=MT_VOID,z=MT_ABSENT,s=MT_VOID +x=MT_VOID,y=MT_INT,z=MT_ABSENT,s=MT_VOID +x=MT_VOID,y=MT_VOID,z=MT_ABSENT,s=MT_VOID + + +================================================================ +ABSENT-HANDLING + + +---------------------------------------------------------------- FIXME FOR SRECS +mlr put $a = $a * 2 ./reg_test/input/absent.dkvp +a=2,b=2 +a=,b=4 +x=,b=6,a=2 +a=14,b=8 + + +---------------------------------------------------------------- FIXME FOR SRECS +mlr put $new = $a * 2 ./reg_test/input/absent.dkvp +a=1,b=2,new=2 +a=,b=4,new= +x=,b=6,new=2 +a=7,b=8,new=14 + + +---------------------------------------------------------------- ok for oosvars +mlr put $new = @nonesuch * 2 ./reg_test/input/absent.dkvp +a=1,b=2,new=2 +a=,b=4,new=2 +x=,b=6,new=2 +a=7,b=8,new=2 + + +---------------------------------------------------------------- ok +mlr put begin {@somesuch = 10 }; $new = @somesuch * 2 ./reg_test/input/absent.dkvp +a=1,b=2,new=20 +a=,b=4,new=20 +x=,b=6,new=20 +a=7,b=8,new=20 + + +---------------------------------------------------------------- FIXME FOR SRECS +mlr put $new = @nonesuch * $a ./reg_test/input/absent.dkvp +a=1,b=2,new=1 +a=,b=4,new= +x=,b=6,new= +a=7,b=8,new=7 + + +---------------------------------------------------------------- ok +mlr put begin {@somesuch = 10 }; $new = @somesuch * $a ./reg_test/input/absent.dkvp +a=1,b=2,new=10 +a=,b=4,new= +x=,b=6,new=10 +a=7,b=8,new=70 + + +---------------------------------------------------------------- FIXME AND COMPARE TO ABOVE +mlr put @sum = @sum + $a; emit @sum; end { emit @sum } ./reg_test/input/absent.dkvp +sum=1 +a=1,b=2 +sum= +a=,b=4 +sum= +x=,b=6 +sum= +a=7,b=8 +sum= + + +---------------------------------------------------------------- FIXME AND COMPARE TO ABOVE +mlr put @product = @product * $a; emit @product; end { emit @product } ./reg_test/input/absent.dkvp +product=1 +a=1,b=2 +product= +a=,b=4 +product= +x=,b=6 +product= +a=7,b=8 +product= + + +---------------------------------------------------------------- FIXME AND COMPARE TO ABOVE +mlr put begin { @sum = 10 }; @sum = @sum + $a; emit @sum; end { emit @sum } ./reg_test/input/absent.dkvp +sum=11 +a=1,b=2 +sum= +a=,b=4 +sum= +x=,b=6 +sum= +a=7,b=8 +sum= + + +---------------------------------------------------------------- FIXME AND COMPARE TO ABOVE +mlr put begin { @product = 10 }; @product = @product * $a; emit @product; end { emit @product } ./reg_test/input/absent.dkvp +product=10 +a=1,b=2 +product= +a=,b=4 +product= +x=,b=6 +product= +a=7,b=8 +product= + + +================================================================ +COMPARE OLD TESTS TO NEW + + +---------------------------------------------------------------- raw input +mlr cat ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 + + +---------------------------------------------------------------- ok +mlr put -q @sum += $x; end{emitp @sum} ./reg_test/input/abixy-het +sum=3.963005 + + +---------------------------------------------------------------- ok +mlr put -q @sum[$a] += $x; end{emitp @sum, "a"} ./reg_test/input/abixy-het +a=pan,sum=0.849416 +a=eks,sum=1.751863 +a=wye,sum= +a=zee,sum=1.125680 + + +---------------------------------------------------------------- ok +mlr put $nonesuch = @nonesuch ./reg_test/input/abixy-het +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,nonesuch= +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,nonesuch= +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,nonesuch= +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,nonesuch= +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,nonesuch= +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,nonesuch= +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,nonesuch= +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,nonesuch= +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,nonesuch= +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,nonesuch= + + +---------------------------------------------------------------- raw input +mlr cat ./reg_test/input/absent.dkvp +a=1,b=2 +a=,b=4 +x=,b=6 +a=7,b=8 + + +---------------------------------------------------------------- FIXME AND COMPARE TO ABOVE +mlr put @sum = @sum + $a; emit @sum; end { emit @sum } ./reg_test/input/absent.dkvp +sum=1 +a=1,b=2 +sum= +a=,b=4 +sum= +x=,b=6 +sum= +a=7,b=8 +sum= + + +---------------------------------------------------------------- FIXME AND COMPARE TO ABOVE +mlr put @product = @product * $a; emit @product; end { emit @product } ./reg_test/input/absent.dkvp +product=1 +a=1,b=2 +product= +a=,b=4 +product= +x=,b=6 +product= +a=7,b=8 +product= + + +---------------------------------------------------------------- FIXME AND COMPARE TO ABOVE +mlr put begin { @sum = 10 }; @sum = @sum + $a; emit @sum; end { emit @sum } ./reg_test/input/absent.dkvp +sum=11 +a=1,b=2 +sum= +a=,b=4 +sum= +x=,b=6 +sum= +a=7,b=8 +sum= + + +---------------------------------------------------------------- FIXME AND COMPARE TO ABOVE +mlr put begin { @product = 10 }; @product = @product * $a; emit @product; end { emit @product } ./reg_test/input/absent.dkvp +product=10 +a=1,b=2 +product= +a=,b=4 +product= +x=,b=6 +product= +a=7,b=8 +product= + + +---------------------------------------------------------------- COMPARE +mlr put emit @sum; @sum += $x; emit @sum; end { emit @sum } ./reg_test/input/abixy-het +sum=0.346790 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +sum=0.346790 +sum=1.105470 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +sum=1.105470 +sum=1.310073 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +sum=1.310073 +sum=1.691473 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +sum=1.691473 +sum=1.691473 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +sum=1.691473 +sum=2.218599 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +sum=2.218599 +sum=2.830383 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +sum=2.830383 +sum=3.428937 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +sum=3.428937 +sum=3.460379 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +sum=3.460379 +sum=3.963005 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 +sum=3.963005 + + +---------------------------------------------------------------- COMPARE +mlr put emit @sum; @sum += $a; emit @sum; end { emit @sum } ./reg_test/input/absent.dkvp +sum=1 +a=1,b=2 +sum=1 +sum= +a=,b=4 +sum= +sum= +x=,b=6 +sum= +sum= +a=7,b=8 +sum= + +mlr put emit @sum; $ostype=typeof(@sum);$xtype=typeof($x);@sum += $x; $nstype=typeof(@sum);emit @sum; end { emit @sum } ./reg_test/input/abixy-het +sum=0.346790 +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533,ostype=MT_UNINIT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=0.346790 +sum=1.105470 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797,ostype=MT_FLOAT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=1.105470 +sum=1.310073 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776,ostype=MT_FLOAT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=1.310073 +sum=1.691473 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463,ostype=MT_FLOAT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=1.691473 +sum=1.691473 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729,ostype=MT_FLOAT,xtype=MT_ABSENT,nstype=MT_FLOAT +sum=1.691473 +sum=2.218599 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697,ostype=MT_FLOAT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=2.218599 +sum=2.830383 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694,ostype=MT_FLOAT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=2.830383 +sum=3.428937 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006,ostype=MT_FLOAT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=3.428937 +sum=3.460379 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059,ostype=MT_FLOAT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=3.460379 +sum=3.963005 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864,ostype=MT_FLOAT,xtype=MT_FLOAT,nstype=MT_FLOAT +sum=3.963005 + +mlr put emit @sum; $ostype=typeof(@sum);$atype=typeof($a);@sum += $a; $nstype=typeof(@sum);emit @sum; end { emit @sum } ./reg_test/input/absent.dkvp +sum=1 +a=1,b=2,ostype=MT_UNINIT,atype=MT_INT,nstype=MT_INT +sum=1 +sum= +a=,b=4,ostype=MT_INT,atype=MT_VOID,nstype=MT_VOID +sum= +sum= +x=,b=6,ostype=MT_VOID,atype=MT_ABSENT,nstype=MT_VOID +sum= +sum= +a=7,b=8,ostype=MT_VOID,atype=MT_INT,nstype=MT_VOID +sum= + + +================================================================ +NARROW IN + + +---------------------------------------------------------------- +mlr cat +x=1 +x= +x=7 + +mlr put $osum=@sum; $ostype=typeof(@sum);$xtype=typeof($x);@sum += $x; $nstype=typeof(@sum);$nsum=@sum; end { emit @sum } +x=1,osum=,ostype=MT_UNINIT,xtype=MT_INT,nstype=MT_INT,nsum=1 +x=,osum=1,ostype=MT_INT,xtype=MT_VOID,nstype=MT_VOID,nsum= +x=7,osum=,ostype=MT_VOID,xtype=MT_INT,nstype=MT_VOID,nsum= +sum= + + +---------------------------------------------------------------- +mlr cat +x=1 +xxx= +x=7 + +mlr put $osum=@sum; $ostype=typeof(@sum);$xtype=typeof($x);@sum += $x; $nstype=typeof(@sum);$nsum=@sum; end { emit @sum } +x=1,osum=,ostype=MT_UNINIT,xtype=MT_INT,nstype=MT_INT,nsum=1 +xxx=,osum=1,ostype=MT_INT,xtype=MT_ABSENT,nstype=MT_INT,nsum=1 +x=7,osum=1,ostype=MT_INT,xtype=MT_INT,nstype=MT_INT,nsum=8 +sum=8 + + +---------------------------------------------------------------- +mlr cat +x=1 +x= +y= +x=7 + +mlr --ofs tab put $xtype=typeof($x);$sum = $x + 10; $stype=typeof($sum) +x=1 xtype=MT_INT sum=11 stype=MT_INT +x= xtype=MT_VOID sum= stype=MT_VOID +y= xtype=MT_ABSENT sum=10 stype=MT_INT +x=7 xtype=MT_INT sum=17 stype=MT_INT + diff --git a/go/reg_test/input/a.csv b/go/reg_test/input/a.csv new file mode 100644 index 000000000..88700c714 --- /dev/null +++ b/go/reg_test/input/a.csv @@ -0,0 +1,3 @@ +a,b,c +1,2,3 +4,5,6 diff --git a/go/reg_test/input/a.pprint b/go/reg_test/input/a.pprint new file mode 100644 index 000000000..d0c04ad13 --- /dev/null +++ b/go/reg_test/input/a.pprint @@ -0,0 +1,3 @@ +a b c +1 2 3 +4 5 6 diff --git a/go/reg_test/input/abixy b/go/reg_test/input/abixy new file mode 100644 index 000000000..547de9e99 --- /dev/null +++ b/go/reg_test/input/abixy @@ -0,0 +1,10 @@ +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 diff --git a/go/reg_test/input/abixy-het b/go/reg_test/input/abixy-het new file mode 100644 index 000000000..3923455f1 --- /dev/null +++ b/go/reg_test/input/abixy-het @@ -0,0 +1,10 @@ +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +aaa=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,bbb=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,xxx=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,iii=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,yyy=0.976181385699006 +aaa=hat,bbb=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 diff --git a/go/reg_test/input/abixy-wide b/go/reg_test/input/abixy-wide new file mode 100644 index 000000000..4cc0ef6bd --- /dev/null +++ b/go/reg_test/input/abixy-wide @@ -0,0 +1,2000 @@ +a=cat,b=pan,i=1,x=0.5117389009583777,y=0.08295224980036853,x2=0.2618767027540883,xy=0.0424498931448654,y2=0.006881075746942741 +a=pan,b=wye,i=2,x=0.5225940442098578,y=0.511678736087022,x2=0.27310453504361476,xy=0.2674002600279053,y2=0.26181512896361225 +a=wye,b=cat,i=3,x=0.8150401717873625,y=0.07989551500795256,x2=0.6642904816271734,xy=0.06511805427712146,y2=0.006383293318385972 +a=dog,b=hat,i=4,x=0.4488733555675044,y=0.5730530513123552,x2=0.20148728933843124,xy=0.25722824606077416,y2=0.32838979961840076 +a=dog,b=pan,i=5,x=0.2946557960430134,y=0.6850437256584863,x2=0.08682203814174191,xy=0.20185210430817294,y2=0.46928490606405937 +a=wye,b=cat,i=6,x=0.048709182664292916,y=0.5851879044762575,x2=0.0023725844758234536,xy=0.02850402453206882,y2=0.34244488354531344 +a=dog,b=hat,i=7,x=0.8500003149528544,y=0.2984098741712895,x2=0.7225005354199517,xy=0.25364848703063775,y2=0.08904845300292483 +a=pan,b=pan,i=8,x=0.616507208914765,y=0.25924335982487057,x2=0.38008113864387366,xy=0.15982540019531707,y2=0.06720711961328732 +a=hat,b=hat,i=9,x=0.33786884067769307,y=0.6036735617015514,x2=0.11415535350088835,xy=0.203962486439877,y2=0.3644217690974368 +a=wye,b=hat,i=10,x=0.3834648944206174,y=0.4999709279216641,x2=0.14704532525301522,xy=0.19172129908885902,y2=0.24997092876684981 +a=pan,b=hat,i=11,x=0.025474999754416028,y=0.7861954915044592,x2=0.0006489756124874967,xy=0.020028329952999087,y2=0.6181033508619382 +a=cat,b=hat,i=12,x=0.6335445699880142,y=0.15467178563525052,x2=0.4013787221612979,xy=0.0979914699195631,y2=0.02392336127159689 +a=hat,b=wye,i=13,x=0.35922068401384877,y=0.8502678133887914,x2=0.1290394998233774,xy=0.30543378552048117,y2=0.7229553544849566 +a=dog,b=dog,i=14,x=0.5440047442770544,y=0.933608851612059,x2=0.2959411617959433,xy=0.5078876445760125,y2=0.8716254878083876 +a=wye,b=dog,i=15,x=0.4689175303764642,y=0.09048353045392021,x2=0.21988365029436224,xy=0.04242931364019586,y2=0.008187269283405506 +a=pan,b=pan,i=16,x=0.3959177828066379,y=0.6339858483805666,x2=0.15675089074252413,xy=0.25100627142161924,y2=0.4019380559468268 +a=dog,b=hat,i=17,x=0.34033844788864975,y=0.8845934733681523,x2=0.11583025911125516,xy=0.3010611697385466,y2=0.782505613125532 +a=wye,b=wye,i=18,x=0.6770613653962891,y=0.896307226056897,x2=0.4584120925122874,xy=0.6068549942886431,y2=0.8033666434818095 +a=dog,b=wye,i=19,x=0.4865373244199632,y=0.44117766146315884,x2=0.23671856805373653,xy=0.2146493990021416,y2=0.1946377289741016 +a=dog,b=dog,i=20,x=0.3223311725542929,y=0.08115611029827985,x2=0.10389738480022534,xy=0.026159144192390068,y2=0.006586314238746564 +a=dog,b=dog,i=21,x=0.9699029150382065,y=0.9391556988975561,x2=0.9407116645996103,xy=0.9108898500354838,y2=0.8820134267717571 +a=pan,b=hat,i=22,x=0.26484467292256164,y=0.45079159705782246,x2=0.07014270077545866,xy=0.1193897530790182,y2=0.20321306397794217 +a=wye,b=hat,i=23,x=0.298540818680359,y=0.0037836288354773373,x2=0.08912662041833898,xy=0.0011295676501260176,y2=1.4315847164655591e-05 +a=cat,b=dog,i=24,x=0.03302652200852407,y=0.42137227890920304,x2=0.001090751155979525,xy=0.013916460843176739,y2=0.1775545974331352 +a=hat,b=hat,i=25,x=0.16707716998324063,y=0.4457018161567563,x2=0.027914780729608683,xy=0.07446659809986143,y2=0.198650108925431 +a=hat,b=pan,i=26,x=0.06110349364580614,y=0.25884152875789423,x2=0.0037336369357230713,xy=0.01581612170772874,y2=0.06699893700972379 +a=wye,b=hat,i=27,x=0.20149350928735854,y=0.679023911581996,x2=0.04059963428493484,xy=0.13681891083468545,y2=0.4610734725001144 +a=dog,b=hat,i=28,x=0.017464614203827944,y=0.4877770939619681,x2=0.00030501274928854875,xy=0.008518838763510107,y2=0.23792649339398267 +a=cat,b=pan,i=29,x=0.6919668720154277,y=0.26988079254367914,x2=0.4788181519668153,xy=0.18674856783349422,y2=0.07283564218400437 +a=cat,b=wye,i=30,x=0.7578438094718101,y=0.2777757581815844,x2=0.5743272395547452,xy=0.21051063875925224,y2=0.07715937183335406 +a=cat,b=wye,i=31,x=0.8651145139700118,y=0.7249926402997512,x2=0.7484231222815698,xy=0.6272016556447548,y2=0.5256143284888044 +a=pan,b=hat,i=32,x=0.447405904410204,y=0.21332839270281612,x2=0.2001720433011126,xy=0.09544438247357862,y2=0.04550900313316693 +a=pan,b=wye,i=33,x=0.5062113125043399,y=0.6524477940033689,x2=0.2562498929073665,xy=0.3302764541430066,y2=0.42568812389986255 +a=wye,b=dog,i=34,x=0.4894262274410983,y=0.3656319118417568,x2=0.23953803210722568,xy=0.17894984724478727,y2=0.13368669495705823 +a=hat,b=pan,i=35,x=0.9421777782395372,y=0.6146368699441981,x2=0.8876989658083905,xy=0.579097200548128,y2=0.37777848189480107 +a=wye,b=cat,i=36,x=0.6903385961939384,y=0.12453739987209256,x2=0.4765673773950176,xy=0.08597297380134354,y2=0.01550956396690148 +a=hat,b=cat,i=37,x=0.7984210083195517,y=0.6470047092959555,x2=0.6374761065260096,xy=0.5165821523835752,y2=0.4186150938511439 +a=dog,b=cat,i=38,x=0.7956841726564652,y=0.2999281899559054,x2=0.6331133026160035,xy=0.23864811368141572,y2=0.08995691913022569 +a=hat,b=dog,i=39,x=0.5434267154348226,y=0.3612723556363975,x2=0.2953125950482796,xy=0.1963250496008886,y2=0.13051771494707165 +a=pan,b=dog,i=40,x=0.2404413468975618,y=0.0765949802658491,x2=0.057812041297913654,xy=0.018416600220712925,y2=0.005866791001925813 +a=cat,b=dog,i=41,x=0.8872583855262857,y=0.7666563573215487,x2=0.787227442686711,xy=0.6802222818505804,y2=0.5877619702215462 +a=hat,b=dog,i=42,x=0.20947794695668354,y=0.799420366596795,x2=0.04388101026118712,xy=0.16746093715005594,y2=0.6390729225297542 +a=cat,b=cat,i=43,x=0.5807454568810496,y=0.0360767170935169,x2=0.33726528568797903,xy=0.020951389551242844,y2=0.0013015295162456544 +a=pan,b=wye,i=44,x=0.6714396627452867,y=0.8691227831036271,x2=0.4508312207075043,xy=0.5835635083713443,y2=0.7553744121097945 +a=dog,b=dog,i=45,x=0.6489232347198245,y=0.2874511000815766,x2=0.4211013645592404,xy=0.1865336976887087,y2=0.08262813493810857 +a=pan,b=pan,i=46,x=0.07003615899489535,y=0.645706837635313,x2=0.00490506356675826,xy=0.04522282674471786,y2=0.4169373201689965 +a=pan,b=hat,i=47,x=0.3233978593086597,y=0.644896974713749,x2=0.10458617540542367,xy=0.20855830109705728,y2=0.41589210799494575 +a=cat,b=cat,i=48,x=0.4850891731208423,y=0.6464096154902582,x2=0.23531150587906252,xy=0.31356630587553097,y2=0.41784539099826346 +a=wye,b=cat,i=49,x=0.19369511371092585,y=0.07897643847420421,x2=0.037517797075488496,xy=0.015297350230744924,y2=0.006237277834069763 +a=hat,b=hat,i=50,x=0.5979364499843741,y=0.01637946256325762,x2=0.35752799821991593,xy=0.009793877697726217,y2=0.0002682867938611578 +a=wye,b=dog,i=51,x=0.4964418953954285,y=0.4045337696709349,x2=0.24645455550380557,xy=0.20082751136689664,y2=0.16364757080417702 +a=dog,b=hat,i=52,x=0.4240421413278761,y=0.685508287221285,x2=0.17981173762193045,xy=0.2906844020113184,y2=0.46992161184905973 +a=pan,b=hat,i=53,x=0.8506849616367519,y=0.29553024216317647,x2=0.723664903954922,xy=0.25140313271708176,y2=0.08733812403302572 +a=cat,b=hat,i=54,x=0.5285609997486995,y=0.8641537366322317,x2=0.2793767304553447,xy=0.45675796297090676,y2=0.7467616805354484 +a=wye,b=hat,i=55,x=0.06564514633598773,y=0.5764673221543989,x2=0.004309285237473243,xy=0.037842281720740494,y2=0.3323145735118635 +a=hat,b=hat,i=56,x=0.6457343407175848,y=0.2098352953222723,x2=0.41697283878197394,xy=0.13549785608420722,y2=0.04403085116298523 +a=wye,b=wye,i=57,x=0.9589282669375345,y=0.1806724444876513,x2=0.9195434211318234,xy=0.17325191407591137,y2=0.03264253219714344 +a=hat,b=hat,i=58,x=0.2095505109133845,y=0.17354923704865088,x2=0.04391141662406048,xy=0.03636733129217287,y2=0.030119337680168817 +a=cat,b=pan,i=59,x=0.10509164053821951,y=0.49751015159809986,x2=0.011044252911014343,xy=0.05228415801586261,y2=0.2475163509431643 +a=hat,b=pan,i=60,x=0.9078087025266115,y=0.22758683685265058,x2=0.8241166403830498,xy=0.20660531107534033,y2=0.05179576830859499 +a=hat,b=hat,i=61,x=0.14600101883109162,y=0.016141081372988975,x2=0.02131629749971677,xy=0.0023566143254919454,y2=0.0002605345078894516 +a=cat,b=pan,i=62,x=0.5638136789154102,y=0.33173672628650086,x2=0.3178858645321293,xy=0.18703770407894652,y2=0.11004925556728479 +a=pan,b=cat,i=63,x=0.4703043612464288,y=0.7943843739826639,x2=0.22118619220741143,xy=0.373602435590061,y2=0.6310465336278289 +a=pan,b=cat,i=64,x=0.5660165862339231,y=0.5283906051426638,x2=0.32037477589190416,xy=0.2990778465209274,y2=0.27919663160303043 +a=hat,b=pan,i=65,x=0.9349300070803035,y=0.6887739895721908,x2=0.8740941181391764,xy=0.6439554709474572,y2=0.4744096087111924 +a=dog,b=pan,i=66,x=0.8907404476648366,y=0.5089531839168581,x2=0.7934185451061535,xy=0.4533451868825461,y2=0.25903334341910716 +a=wye,b=wye,i=67,x=0.990492139162684,y=0.9945620485002424,x2=0.9810746777430697,xy=0.9851058909490261,y2=0.9891536683169986 +a=cat,b=dog,i=68,x=0.1656761916562901,y=0.3999596321678488,x2=0.027448600481731773,xy=0.06626378867381981,y2=0.15996770736384092 +a=cat,b=wye,i=69,x=0.6008546501272044,y=0.879880439279109,x2=0.3610263105794852,xy=0.5286802534968199,y2=0.7741895874259977 +a=hat,b=cat,i=70,x=0.7958883526623057,y=0.45932818752107474,x2=0.6334382699035187,xy=0.36557395449751084,y2=0.2109823838513956 +a=wye,b=hat,i=71,x=0.017814788759946132,y=0.5195828497321303,x2=0.00031736669856150305,xy=0.009256258711268735,y2=0.2699663377357615 +a=wye,b=pan,i=72,x=0.5937409556269868,y=0.7099917576944956,x2=0.3525283223888475,xy=0.4215511847008139,y2=0.5040882959941194 +a=dog,b=wye,i=73,x=0.08067388329639391,y=0.3846702905768087,x2=0.006508275446120184,xy=0.0310328461295834,y2=0.14797123245244642 +a=pan,b=dog,i=74,x=0.2323374771961123,y=0.025425666031404726,x2=0.05398070330985401,xy=0.005907335101767463,y2=0.0006464644931405281 +a=dog,b=cat,i=75,x=0.11546004262581322,y=0.21181188154916497,x2=0.013331021443154605,xy=0.024455808872320288,y2=0.04486427316539749 +a=cat,b=cat,i=76,x=0.8050585149476237,y=0.5162954081076918,x2=0.6481192124896733,xy=0.4156480145254557,y2=0.26656094843308803 +a=dog,b=cat,i=77,x=0.8529816281035857,y=0.486089158207742,x2=0.7275776578822437,xy=0.41462512157154124,y2=0.23628266972711123 +a=dog,b=hat,i=78,x=0.6287883161763603,y=0.5001069007838987,x2=0.39537474655990246,xy=0.3144613760520858,y2=0.25010691221167636 +a=dog,b=hat,i=79,x=0.45765651274678665,y=0.37805167557845964,x2=0.20944948365954968,xy=0.17301781148331738,y2=0.1429230694076809 +a=wye,b=pan,i=80,x=0.9768690333313619,y=0.08934000010682541,x2=0.9542731082817494,xy=0.0872734795421783,y2=0.007981635619087565 +a=wye,b=pan,i=81,x=0.4249966140862822,y=0.9387797028554198,x2=0.1806221219848043,xy=0.3989781950864795,y2=0.8813073304933102 +a=hat,b=dog,i=82,x=0.6581016472840274,y=0.12685953318239107,x2=0.4330977781579504,xy=0.0834864677610143,y2=0.01609334115925418 +a=cat,b=pan,i=83,x=0.563231401107445,y=0.9376434508380005,x2=0.31722961119345555,xy=0.5281102345547067,y2=0.8791752408993938 +a=dog,b=pan,i=84,x=0.5288078629216791,y=0.9774983060162068,x2=0.2796377558877934,xy=0.5169087902139918,y2=0.9555029382645539 +a=hat,b=wye,i=85,x=0.4301872159773744,y=0.9715341379047415,x2=0.18506104079036417,xy=0.4179415660122193,y2=0.9438785811143093 +a=dog,b=cat,i=86,x=0.15046114299129065,y=0.47217970263414166,x2=0.02263855555024561,xy=0.0710446977556207,y2=0.22295367157966645 +a=pan,b=dog,i=87,x=0.690315349060835,y=0.9329493827118672,x2=0.4765352811489825,xy=0.6440292787828332,y2=0.8703945507024541 +a=hat,b=wye,i=88,x=0.844518095822385,y=0.5458380509826849,x2=0.713210814171467,xy=0.46097011144329897,y2=0.2979391779005761 +a=hat,b=pan,i=89,x=0.07332776066392399,y=0.7010649246914367,x2=0.005376960483985719,xy=0.05140752100764556,y2=0.49149202863260977 +a=hat,b=cat,i=90,x=0.6722332393534578,y=0.870469095664934,x2=0.4518975280916433,xy=0.5851582599359135,y2=0.7577164465077281 +a=dog,b=cat,i=91,x=0.7897989951157833,y=0.8936987604639762,x2=0.6237824526859012,xy=0.7058423829506696,y2=0.7986974744548475 +a=dog,b=wye,i=92,x=0.9603096176050011,y=0.9462873537666934,x2=0.9221945616646634,xy=0.9087288468401418,y2=0.8954597558987711 +a=cat,b=cat,i=93,x=0.051983319126123306,y=0.7379236193825374,x2=0.002702265467368377,xy=0.03835971899706639,y2=0.5445312680426239 +a=cat,b=cat,i=94,x=0.46303093657328553,y=0.050030061480300425,x2=0.21439764822393398,xy=0.02316546622404256,y2=0.0025030070517226403 +a=pan,b=hat,i=95,x=0.7547208898758858,y=0.07612227053712461,x2=0.569603621615049,xy=0.05745106775915161,y2=0.00579460007172719 +a=dog,b=wye,i=96,x=0.01733736709766953,y=0.7408141524929686,x2=0.00030058429787935406,xy=0.012843766912919533,y2=0.5488056085338753 +a=wye,b=dog,i=97,x=0.05692328077076536,y=0.7682235553036355,x2=0.0032402598937073855,xy=0.04372980513326444,y2=0.5901674309233579 +a=dog,b=cat,i=98,x=0.1138603279074798,y=0.08999053060825568,x2=0.012964174271198822,xy=0.010246351323624088,y2=0.008098295599155403 +a=cat,b=hat,i=99,x=0.30356000952142026,y=0.8246328358017656,x2=0.09214867938064476,xy=0.2503255514876598,y2=0.6800193138824617 +a=dog,b=hat,i=100,x=0.6096169376426714,y=0.9104030491019464,x2=0.37163281066082876,xy=0.5549971188140792,y2=0.8288337118141209 +a=cat,b=cat,i=101,x=0.8601431032845563,y=0.11237298572604193,x2=0.7398461581279869,xy=0.09665684866774886,y2=0.012627687920985222 +a=wye,b=cat,i=102,x=0.4819560971418857,y=0.32001749297885806,x2=0.23228167957223878,xy=0.15423438193322125,y2=0.10241119581247347 +a=hat,b=pan,i=103,x=0.6938564126848401,y=0.02765597421813426,x2=0.48143672142387517,xy=0.019189275060299063,y2=0.000764852909954107 +a=cat,b=pan,i=104,x=0.315975934495323,y=0.778992200602797,x2=0.09984079118019266,xy=0.2461427885500369,y2=0.6068288485999882 +a=wye,b=hat,i=105,x=0.5198900877033598,y=0.009164564556345067,x2=0.2702857032922071,xy=0.00476456627096134,y2=8.398924350741626e-05 +a=wye,b=dog,i=106,x=0.7179488758856343,y=0.06444079818478121,x2=0.5154505883854459,xy=0.046265198617936695,y2=0.004152616470691701 +a=pan,b=hat,i=107,x=0.6781474171226103,y=0.8224379844724085,x2=0.45988391935006756,xy=0.5577341949134893,y2=0.6764042383030375 +a=hat,b=hat,i=108,x=0.7310592435672268,y=0.7865030408830793,x2=0.5344476176050859,xy=0.5749803181313077,y2=0.6185870333183308 +a=hat,b=pan,i=109,x=0.7084818505505407,y=0.4807798730113917,x2=0.5019465325595187,xy=0.34062381413856474,y2=0.23114928629284992 +a=hat,b=cat,i=110,x=0.8826404450115393,y=0.4693490677671145,x2=0.7790541551701681,xy=0.41426647003971706,y2=0.22028854741385942 +a=wye,b=dog,i=111,x=0.16532203956598923,y=0.8201244515579681,x2=0.02733137676625851,xy=0.13558464702950163,y2=0.672604116043258 +a=hat,b=dog,i=112,x=0.21932074656397027,y=0.7287694430170744,x2=0.04810158987337728,xy=0.15983425831551354,y2=0.5311049010754167 +a=dog,b=wye,i=113,x=0.2115544521551379,y=0.7617111396233063,x2=0.044755286226660536,xy=0.16114338284347432,y2=0.5802038602262359 +a=wye,b=dog,i=114,x=0.09981034795046184,y=0.8513191274753099,x2=0.009962105557992262,xy=0.08497045833019426,y2=0.724744256805323 +a=dog,b=dog,i=115,x=0.8486258183007894,y=0.27714545391484613,x2=0.7201657794866845,xy=0.23519278761683002,y2=0.07680960262566609 +a=dog,b=hat,i=116,x=0.9581187355019588,y=0.929883007686579,x2=0.9179915113198724,xy=0.8909383314894234,y2=0.8646824079842385 +a=cat,b=hat,i=117,x=0.13641737796121878,y=0.742727066387978,x2=0.018609701009814017,xy=0.10132087893747603,y2=0.5516434951452919 +a=dog,b=pan,i=118,x=0.9081608785949646,y=0.353699840894134,x2=0.8247561814103781,xy=0.3212163582653159,y2=0.1251035774485357 +a=cat,b=hat,i=119,x=0.44250837621436523,y=0.7613578627611387,x2=0.19581366301987418,xy=0.336907231568471,y2=0.5796657951882089 +a=pan,b=pan,i=120,x=0.27250908954834085,y=0.7458231673885796,x2=0.07426120388646565,xy=0.20324359230912165,y2=0.5562521970135331 +a=dog,b=pan,i=121,x=0.737965443497151,y=0.21636403152403683,x2=0.5445929957959468,xy=0.15966917848046738,y2=0.0468133941373344 +a=pan,b=dog,i=122,x=0.7390528984439438,y=0.3684696519589872,x2=0.5461991866983944,xy=0.2723185642689207,y2=0.13576988441477714 +a=cat,b=dog,i=123,x=0.15678654142006032,y=0.03288680496526697,x2=0.02458201957046429,xy=0.005156208408860275,y2=0.0010815419408235082 +a=wye,b=dog,i=124,x=0.25449765035082783,y=0.41497175568786404,x2=0.06476905403409222,xy=0.10560933678451917,y2=0.17220155801866832 +a=hat,b=pan,i=125,x=0.8828478876916597,y=0.22292432647794536,x2=0.7794203928016253,xy=0.19680827074613996,y2=0.04969525533564557 +a=dog,b=pan,i=126,x=0.6262694822433262,y=0.4445756661164717,x2=0.3922134643893239,xy=0.2784241722367446,y2=0.19764752290290452 +a=hat,b=dog,i=127,x=0.14352357272424598,y=0.5813144374046438,x2=0.020599015927531925,xy=0.08343232493249954,y2=0.33792647513507756 +a=wye,b=pan,i=128,x=0.04883068934042978,y=0.1489684167994927,x2=0.0023844362214615624,xy=0.0072742304822716874,y2=0.022191589203747374 +a=dog,b=hat,i=129,x=0.06061789696216857,y=0.7233489718249176,x2=0.0036745294321160857,xy=0.043847893441773436,y2=0.5232337350401655 +a=hat,b=pan,i=130,x=0.19499005566725736,y=0.49210369398737897,x2=0.03802112180912012,xy=0.095955326684662,y2=0.24216604563602392 +a=wye,b=hat,i=131,x=0.17100268381292483,y=0.6889838638269865,x2=0.02924191787122314,xy=0.11781808981821343,y2=0.4746987646139635 +a=wye,b=hat,i=132,x=0.4530191728273819,y=0.40357018860333094,x2=0.20522637094920532,xy=0.18282503301887149,y2=0.16286889712932812 +a=cat,b=cat,i=133,x=0.1415361047978303,y=0.24880740801699253,x2=0.0200324689613424,xy=0.035215231375569575,y2=0.0619051262841342 +a=wye,b=pan,i=134,x=0.7011988379965257,y=0.9651856584321452,x2=0.49167981040767794,xy=0.6767870621435318,y2=0.9315833552430937 +a=cat,b=wye,i=135,x=0.9905881531288986,y=0.7789092765450115,x2=0.9812648891193222,xy=0.7715783017076895,y2=0.6066996610878732 +a=dog,b=pan,i=136,x=0.17871521618418273,y=0.48324493385810807,x2=0.03193912849575917,xy=0.08636322282436287,y2=0.23352566609952724 +a=cat,b=dog,i=137,x=0.11381591729240514,y=0.6098950123980131,x2=0.012954063029111609,xy=0.06941576028814267,y2=0.3719719261479726 +a=pan,b=hat,i=138,x=0.3707431233181129,y=0.4434239077163661,x2=0.13745046348766946,xy=0.1643963645006882,y2=0.19662476193445236 +a=hat,b=hat,i=139,x=0.8124229919653702,y=0.6498112783277437,x2=0.6600311178739638,xy=0.5279216229518674,y2=0.42225469744193633 +a=dog,b=wye,i=140,x=0.7589142664965747,y=0.1238824448462621,x2=0.575950863892034,xy=0.09401615476230336,y2=0.01534686014108717 +a=pan,b=dog,i=141,x=0.3925050233933668,y=0.2525418847325982,x2=0.1540601933890274,xy=0.09912395837477339,y2=0.06377740354429291 +a=wye,b=cat,i=142,x=0.24697144094906698,y=0.2893682360276446,x2=0.060994892644458475,xy=0.07146569021663711,y2=0.08373397602175064 +a=cat,b=hat,i=143,x=0.49400128820886957,y=0.5368768322085028,x2=0.2440372727520226,xy=0.2652178467204975,y2=0.28823673296223684 +a=hat,b=dog,i=144,x=0.5837149712277536,y=0.03669862718107353,x2=0.3407231676354172,xy=0.02142153810909839,y2=0.0013467892369754288 +a=hat,b=pan,i=145,x=0.17945263084751795,y=0.3085459122455083,x2=0.03220324671809555,xy=0.05536937568970387,y2=0.09520057996341291 +a=hat,b=pan,i=146,x=0.8842766950456613,y=0.07694621084098674,x2=0.7819452734008775,xy=0.06804174101875439,y2=0.005920719362785585 +a=pan,b=cat,i=147,x=0.3709303665708895,y=0.7846804091324313,x2=0.13758933684441446,xy=0.2910617918004883,y2=0.6157233444762398 +a=cat,b=hat,i=148,x=0.1464772298983058,y=0.06380198058698772,x2=0.02145557887868113,xy=0.009345537378407444,y2=0.004070692726822357 +a=hat,b=cat,i=149,x=0.04743299762903541,y=0.7805486995199068,x2=0.002249889264076079,xy=0.03702376461367441,y2=0.6092562723222178 +a=pan,b=wye,i=150,x=0.8517240305872459,y=0.08519694501745723,x2=0.7254338242797838,xy=0.07256428540398864,y2=0.0072585194403076295 +a=cat,b=pan,i=151,x=0.45041917119444896,y=0.3138635785836258,x2=0.20287742977949433,xy=0.14137017293376053,y2=0.09851034596131984 +a=hat,b=pan,i=152,x=0.6789876338039754,y=0.4049875753568014,x2=0.4610242068587214,xy=0.27498155551152376,y2=0.1640149361933809 +a=hat,b=dog,i=153,x=0.2976251388840214,y=0.007776000657727544,x2=0.08858072329573304,xy=0.002314333275718402,y2=6.04661862289792e-05 +a=dog,b=cat,i=154,x=0.6190546351013247,y=0.2963477425478711,x2=0.3832286412404343,xy=0.1834554436260737,y2=0.08782198451321929 +a=wye,b=dog,i=155,x=0.2489637938016529,y=0.10921759500477168,x2=0.06198297062411194,xy=0.027191226802280415,y2=0.011928483058626328 +a=hat,b=wye,i=156,x=0.5528475169700776,y=0.9833085796986953,x2=0.30564037701998026,xy=0.5436197067017974,y2=0.9668957629090655 +a=pan,b=dog,i=157,x=0.9427806478704022,y=0.9595549728824017,x2=0.8888353499989352,xy=0.9046498590013368,y2=0.9207457459833466 +a=hat,b=cat,i=158,x=0.5703122642035605,y=0.45464569171363867,x2=0.3252560787009918,xy=0.2592900138515992,y2=0.20670270499377297 +a=dog,b=dog,i=159,x=0.6180020247265648,y=0.9508349928541551,x2=0.38192650256613364,xy=0.5876179507647367,y2=0.9040871836359611 +a=wye,b=pan,i=160,x=0.14997774547353349,y=0.24991446798202221,x2=0.022493324137323994,xy=0.03748160846916126,y2=0.06245724130673721 +a=wye,b=dog,i=161,x=0.45699387909445444,y=0.45016785054053354,x2=0.20884340552979683,xy=0.20572395226213103,y2=0.20265109366028414 +a=wye,b=pan,i=162,x=0.8574555865158207,y=0.9533185047446349,x2=0.73523008284719,xy=0.817428277622196,y2=0.9088161714885464 +a=cat,b=dog,i=163,x=0.35085399550424223,y=0.1222329668937654,x2=0.12309852616129083,xy=0.04288592481701535,y2=0.014940898195652346 +a=hat,b=wye,i=164,x=0.9179146876349837,y=0.7115420763707129,x2=0.8425673737760297,xy=0.6531349227709706,y2=0.5062921264459453 +a=wye,b=dog,i=165,x=0.5353869664505179,y=0.5135025869076683,x2=0.28663920384508795,xy=0.2749225922689899,y2=0.26368490676086737 +a=dog,b=dog,i=166,x=0.058915443887073926,y=0.32188624236086805,x2=0.0034710295284109565,xy=0.0189640708498328,y2=0.10361075302119949 +a=dog,b=hat,i=167,x=0.9602603205217703,y=0.7091271395742602,x2=0.9220998831685732,xy=0.6809466543382653,y2=0.5028613000807723 +a=wye,b=pan,i=168,x=0.8631399650055263,y=0.06510849316319112,x2=0.7450105991897411,xy=0.056197742510439325,y2=0.004239115881981305 +a=cat,b=cat,i=169,x=0.38828432861132955,y=0.13394452837883797,x2=0.15076471984515097,xy=0.05200856127273828,y2=0.01794113668262933 +a=cat,b=pan,i=170,x=0.3479446854386803,y=0.41483989686840483,x2=0.12106550412502218,xy=0.1443413374232917,y2=0.17209214003378875 +a=hat,b=wye,i=171,x=0.5752905429710464,y=0.7789264481743366,x2=0.3309592088319214,xy=0.4481090193047228,y2=0.6067264116654876 +a=hat,b=cat,i=172,x=0.9643802230164986,y=0.4654908242727618,x2=0.9300292145453516,xy=0.44891014492429976,y2=0.2166817074821352 +a=dog,b=hat,i=173,x=0.5465586715669809,y=0.09025119265821935,x2=0.2987263814650629,xy=0.04932757196661203,y2=0.008145277776231027 +a=cat,b=cat,i=174,x=0.6751932842416101,y=0.6923429494765411,x2=0.45588597108497164,xy=0.46746530987858886,y2=0.4793387596898763 +a=cat,b=wye,i=175,x=0.6231661625380126,y=0.4202688106916195,x2=0.3883360661323527,xy=0.261897301993111,y2=0.17662587324014828 +a=dog,b=cat,i=176,x=0.588006969888869,y=0.933885675424745,x2=0.3457521966378893,xy=0.5491312862291241,y2=0.8721424547635321 +a=wye,b=dog,i=177,x=0.7515102778196476,y=0.30641964804276345,x2=0.5647676976685639,xy=0.2302775148300158,y2=0.09389300070665102 +a=cat,b=cat,i=178,x=0.7762409980355185,y=0.20325576000840828,x2=0.6025500870311779,xy=0.15777545400539467,y2=0.041312903976595663 +a=hat,b=dog,i=179,x=0.884577849985587,y=0.3025087879262265,x2=0.7824779726851236,xy=0.2675925732255273,y2=0.09151156677259467 +a=pan,b=wye,i=180,x=0.14529735183640635,y=0.6252090570486897,x2=0.021111320450672457,xy=0.09084122033331131,y2=0.3908863650157117 +a=hat,b=pan,i=181,x=0.28399983215192304,y=0.8429872541566109,x2=0.08065590466232046,xy=0.23940823868668798,y2=0.7106275106705026 +a=wye,b=wye,i=182,x=0.8353984331738984,y=0.7464675457858652,x2=0.6978905421494044,xy=0.623597818164677,y2=0.5572137969115727 +a=cat,b=hat,i=183,x=0.34914519697283475,y=0.9084716400172681,x2=0.12190236856919957,xy=0.3171885096980633,y2=0.8253207207156648 +a=hat,b=hat,i=184,x=0.3669411646566748,y=0.939863478805397,x2=0.13464581831959693,xy=0.34487459953112637,y2=0.883343358792183 +a=pan,b=pan,i=185,x=0.48276574111045845,y=0.23155090227726105,x2=0.23306276078993018,xy=0.11178484294267726,y2=0.0536158203454137 +a=wye,b=dog,i=186,x=0.2913083475738195,y=0.07374105365755401,x2=0.08486055336618924,xy=0.02148138448933442,y2=0.00543774299452626 +a=hat,b=dog,i=187,x=0.009029315708523944,y=0.30598072357423967,x2=8.152854216419725e-05,xy=0.0027627965538744048,y2=0.09362420319901527 +a=pan,b=wye,i=188,x=0.04421095887479698,y=0.36367411116842285,x2=0.00195460888462899,xy=0.01607838117269549,y2=0.13225885913414237 +a=cat,b=pan,i=189,x=0.8091137129636748,y=0.8876893624644986,x2=0.654665000505864,xy=0.7182416360220079,y2=0.787992404232628 +a=cat,b=hat,i=190,x=0.6926570752215496,y=0.7838783903250481,x2=0.4797738238544714,xy=0.5429589131719241,y2=0.6144653308185886 +a=dog,b=wye,i=191,x=0.3228779770933895,y=0.43740509607640576,x2=0.10425018809191935,xy=0.14122847259148957,y2=0.19132321807360975 +a=dog,b=cat,i=192,x=0.9293928938191809,y=0.057193449174089306,x2=0.8637711510815912,xy=0.053155185235407104,y2=0.003271090628429137 +a=hat,b=cat,i=193,x=0.06425009999547093,y=0.142317240191156,x2=0.004128075349428014,xy=0.009143896913361227,y2=0.020254196855627186 +a=dog,b=hat,i=194,x=0.4531287054737033,y=0.27676361789433723,x2=0.20532562372427418,xy=0.1254095398986797,y2=0.0765981001899627 +a=hat,b=cat,i=195,x=0.15002219488262636,y=0.9201689558482206,x2=0.022506658957400724,xy=0.13804576641920455,y2=0.8467109073068044 +a=wye,b=hat,i=196,x=0.6626130110009391,y=0.7700958506232554,x2=0.43905600234773057,xy=0.5102755303408046,y2=0.5930476191471552 +a=dog,b=wye,i=197,x=0.17818642335763146,y=0.42923785497720846,x2=0.03175040146898507,xy=0.07648435814809049,y2=0.18424513614543503 +a=dog,b=dog,i=198,x=0.5064089553205039,y=0.4484062855584241,x2=0.2564500300288041,xy=0.2270769586287891,y2=0.20106819692830297 +a=dog,b=wye,i=199,x=0.4712455283340482,y=0.4010465455813673,x2=0.22207234797483622,xy=0.18899139125903638,y2=0.16083833172274772 +a=wye,b=dog,i=200,x=0.9226606422613064,y=0.2627524940019982,x2=0.8513026607780464,xy=0.2424313848716437,y2=0.0690388731042701 +a=dog,b=pan,i=201,x=0.8586732093831214,y=0.8290490023386249,x2=0.7373196805123099,xy=0.7118821675739819,y2=0.6873222482786693 +a=pan,b=dog,i=202,x=0.5354169735755743,y=0.6047143965939313,x2=0.2866713355928272,xy=0.32377435210190225,y2=0.36567950144796246 +a=dog,b=dog,i=203,x=0.04315872660095632,y=0.4977426641942203,x2=0.0018626756818160947,xy=0.021481939561589964,y2=0.24774775975916036 +a=pan,b=cat,i=204,x=0.6736808738647746,y=0.4116172737283622,x2=0.45384591981120637,xy=0.27729868466315916,y2=0.16942878003156947 +a=dog,b=cat,i=205,x=0.7084602563402208,y=0.7764646118117859,x2=0.5019159348136514,xy=0.5500943179232879,y2=0.6028972933960275 +a=pan,b=hat,i=206,x=0.846022268235842,y=0.7161501328213358,x2=0.7157536783509191,xy=0.605878959766906,y2=0.5128710127400169 +a=hat,b=wye,i=207,x=0.5802854404844445,y=0.3698796019086972,x2=0.3367311924382258,xy=0.21463574771979932,y2=0.1368109199081363 +a=wye,b=dog,i=208,x=0.7785473703666729,y=0.748001128982437,x2=0.6061360079048613,xy=0.5823543120005789,y2=0.5595056889590003 +a=wye,b=wye,i=209,x=0.7896380913474478,y=0.974775073742359,x2=0.6235283153068403,xy=0.7697195287229841,y2=0.9501864443894216 +a=pan,b=wye,i=210,x=0.5724957252200905,y=0.05440965268402409,x2=0.3277513553952774,xy=0.031149293572313615,y2=0.0029604103051961298 +a=wye,b=cat,i=211,x=0.6929472847216296,y=0.39994383006146406,x2=0.4801759394030792,xy=0.2771399910822604,y2=0.15995506720423325 +a=wye,b=wye,i=212,x=0.07058342953121044,y=0.865284985377559,x2=0.00498202052438735,xy=0.06107478178981139,y2=0.7487181059198426 +a=hat,b=pan,i=213,x=0.036673575990873175,y=0.7235022443197023,x2=0.0013449511759583493,xy=0.026533414536625895,y2=0.5234554975356462 +a=wye,b=hat,i=214,x=0.6548697103289118,y=0.23477827212480973,x2=0.4288543375062729,xy=0.1537491790578966,y2=0.05512083706191121 +a=dog,b=hat,i=215,x=0.35159363478296046,y=0.2102813772850397,x2=0.12361808401989378,xy=0.07393359376681417,y2=0.044218257632893214 +a=dog,b=pan,i=216,x=0.8135484638165029,y=0.5726493378206012,x2=0.6618611029781918,xy=0.46587798908948774,y2=0.3279272641063731 +a=cat,b=cat,i=217,x=0.8709609999341167,y=0.28896413402352317,x2=0.7585730634062364,xy=0.25167649111422385,y2=0.08350027075196466 +a=wye,b=wye,i=218,x=0.08719663778611642,y=0.2616108398138992,x2=0.007603253641203185,xy=0.02281158564017429,y2=0.06844023150813364 +a=pan,b=wye,i=219,x=0.38026953308772515,y=0.7053556432055249,x2=0.14460491779475648,xy=0.268225261102557,y2=0.4975265834018798 +a=wye,b=cat,i=220,x=0.05345420342600993,y=0.0780787369858923,x2=0.0028573518639092516,xy=0.004173636690089812,y2=0.006096289169312145 +a=cat,b=cat,i=221,x=0.11539660728851342,y=0.3377214375036798,x2=0.013316376973699388,xy=0.038971908096524364,y2=0.11405576934955189 +a=dog,b=pan,i=222,x=0.8183003829840468,y=0.5178153474775814,x2=0.6696155167918377,xy=0.42372849715592215,y2=0.2681327340833284 +a=pan,b=wye,i=223,x=0.2221032096613662,y=0.6333589821084413,x2=0.049329835741880795,xy=0.14067106279414063,y2=0.4011436002174409 +a=pan,b=pan,i=224,x=0.039710319262320604,y=0.6520052001892092,x2=0.0015769094559154307,xy=0.025891334660206752,y2=0.4251107810737707 +a=hat,b=dog,i=225,x=0.36964408169776986,y=0.271263408040449,x2=0.13663674713418755,xy=0.10027091336331921,y2=0.07358383654171914 +a=cat,b=wye,i=226,x=0.6066386461288729,y=0.8204059790745054,x2=0.3680104469770718,xy=0.49768997242179036,y2=0.6730659705011978 +a=cat,b=pan,i=227,x=0.12321098964692656,y=0.06855927715701327,x2=0.015180947969775043,xy=0.00844725638799353,y2=0.004700374484292161 +a=hat,b=pan,i=228,x=0.24516345981870424,y=0.26898582371311797,x2=0.06010512203027741,xy=0.06594549518369205,y2=0.07235337335862457 +a=pan,b=wye,i=229,x=0.9358289979073265,y=0.07408812183525015,x2=0.875775913324231,xy=0.06933381281391807,y2=0.005489049797074871 +a=pan,b=pan,i=230,x=0.7428830695288504,y=0.639523773239204,x2=0.5518752549926068,xy=0.4750913837006123,y2=0.40899065653810873 +a=dog,b=cat,i=231,x=0.2654604721892435,y=0.24247109406817857,x2=0.07046926229493612,xy=0.06436649112358117,y2=0.058792231458619504 +a=dog,b=pan,i=232,x=0.9226596784808877,y=0.8783208744732139,x2=0.8513008822944551,xy=0.8103912556445076,y2=0.7714475585353913 +a=wye,b=hat,i=233,x=0.7132524612279595,y=0.6133723334562391,x2=0.5087290734477419,xy=0.4374893264867992,y2=0.37622561944955174 +a=hat,b=cat,i=234,x=0.18129409233828286,y=0.14075273424219947,x2=0.03286754791676183,xy=0.0255176391985711,y2=0.01981133219665523 +a=cat,b=dog,i=235,x=0.10082533483175837,y=0.3924249112255551,x2=0.010165748143936188,xy=0.03956637307063965,y2=0.15399731095038482 +a=dog,b=wye,i=236,x=0.7726971141507323,y=0.6197385098311806,x2=0.5970608302168698,xy=0.47887015807462846,y2=0.38407582056777234 +a=hat,b=cat,i=237,x=0.6231126061219576,y=0.6468592277326921,x2=0.3882693199080979,xy=0.40306613918655465,y2=0.4184268605029348 +a=wye,b=hat,i=238,x=0.5981684929378425,y=0.864184577482475,x2=0.3578055459435297,xy=0.5169279863328182,y2=0.7468149839585638 +a=dog,b=dog,i=239,x=0.26356489832647445,y=0.5281983158813417,x2=0.06946645562984481,xy=0.13921453542148085,y2=0.27899346089988564 +a=dog,b=wye,i=240,x=0.11159855008602237,y=0.2494380614284566,x2=0.012454236381302445,xy=0.02783692599168394,y2=0.062219346489186485 +a=cat,b=cat,i=241,x=0.0845788651633742,y=0.7782649774619638,x2=0.007153584432324235,xy=0.0658247685901319,y2=0.605696375143871 +a=dog,b=hat,i=242,x=0.5429333798951006,y=0.48584690422492494,x2=0.2947766550043176,xy=0.2637825018224097,y2=0.23604721434494338 +a=hat,b=pan,i=243,x=0.08100577123880537,y=0.36005778435663893,x2=0.006561934973993667,xy=0.029166758512345008,y2=0.1296416080758119 +a=hat,b=wye,i=244,x=0.15058148801382099,y=0.5426167622977167,x2=0.022674784532456513,xy=0.08170803948803199,y2=0.2944329507264568 +a=dog,b=hat,i=245,x=0.03800440296280816,y=0.7060923351074192,x2=0.0014443346445595015,xy=0.026834617632372534,y2=0.498566385697448 +a=cat,b=dog,i=246,x=0.23397318719440163,y=0.05562375729079583,x2=0.05474345232590651,xy=0.013014467777055335,y2=0.003094002375145362 +a=dog,b=pan,i=247,x=0.7180442962589734,y=0.9789266392331171,x2=0.5155876113900443,xy=0.7029126897573055,y2=0.9582973650002453 +a=pan,b=cat,i=248,x=0.11146867790316062,y=0.7782788544169932,x2=0.012425266153478567,xy=0.08675371494184865,y2=0.6057179752326273 +a=pan,b=dog,i=249,x=0.9216417789370487,y=0.2960193921262023,x2=0.8494235686822477,xy=0.2728238391590569,y2=0.08762748051476633 +a=wye,b=dog,i=250,x=0.8936319731370298,y=0.4528717725074187,x2=0.7985781034127811,xy=0.4047006956438687,y2=0.2050928423340112 +a=cat,b=hat,i=251,x=0.01325361629448818,y=0.5200326784504148,x2=0.0001756583448815226,xy=0.006892313580776749,y2=0.2704339866563125 +a=pan,b=hat,i=252,x=0.07433877240630482,y=0.09753668852818931,x2=0.005526253082876387,xy=0.007250757689761707,y2=0.009513405609045017 +a=hat,b=pan,i=253,x=0.7146115566167207,y=0.7956331890808649,x2=0.5106696768501726,xy=0.5685686717450026,y2=0.6330321715669873 +a=hat,b=pan,i=254,x=0.49433932221345944,y=0.386116830538318,x2=0.2443713654864625,xy=0.1908727323035213,y2=0.14908620682495619 +a=dog,b=hat,i=255,x=0.907140804810107,y=0.7893834040317629,x2=0.8229044397515286,xy=0.7160818964371152,y2=0.6231261585607734 +a=pan,b=hat,i=256,x=0.7964354159520071,y=0.8663361959149535,x2=0.6343093717826465,xy=0.6899808285478054,y2=0.7505384043523926 +a=hat,b=dog,i=257,x=0.9349608449277914,y=0.42804573048051864,x2=0.8741517815480896,xy=0.40020599783779937,y2=0.18322314738260082 +a=dog,b=pan,i=258,x=0.46500532906688263,y=0.48642051379866635,x2=0.2162299560605998,xy=0.22618813108383098,y2=0.23660491624415855 +a=wye,b=pan,i=259,x=0.6416052149195055,y=0.20912858896404318,x2=0.4116572518119049,xy=0.13417799326808785,y2=0.04373476672209172 +a=dog,b=dog,i=260,x=0.02000070676075616,y=0.47209439803866526,x2=0.00040002827092975717,xy=0.009442221618567042,y2=0.22287312065948972 +a=hat,b=cat,i=261,x=0.4182390609397455,y=0.45190412161985016,x2=0.17492391209576014,xy=0.18900395546108667,y2=0.20421733513700832 +a=cat,b=dog,i=262,x=0.2513467234237762,y=0.03548677236411568,x2=0.06317517537586824,xy=0.008919483958605888,y2=0.0012593110128225646 +a=cat,b=hat,i=263,x=0.12495706870437084,y=0.09634906121116771,x2=0.015614269019188855,xy=0.012039496261365515,y2=0.009283141596273341 +a=pan,b=pan,i=264,x=0.8338593496048697,y=0.6001359925660235,x2=0.6953214149234563,xy=0.5004290084355772,y2=0.3601632095732062 +a=dog,b=hat,i=265,x=0.9001805241346884,y=0.3414510446791148,x2=0.8103249760314023,xy=0.3073675803655825,y2=0.11658881591245886 +a=hat,b=pan,i=266,x=0.8335743054196116,y=0.8169125697585177,x2=0.6948461226557879,xy=0.6809573279250064,y2=0.667346146629465 +a=dog,b=pan,i=267,x=0.8458637889181786,y=0.3430998568910747,x2=0.715485549403017,xy=0.2902157449271693,y2=0.11771751179867594 +a=dog,b=dog,i=268,x=0.7414869829804196,y=0.012891560807983926,x2=0.549802945929405,xy=0.009558924529420622,y2=0.00016619234006594717 +a=wye,b=cat,i=269,x=0.3079352177094503,y=0.4609585778769133,x2=0.09482409830576656,xy=0.1419453800335659,y2=0.21248281051830634 +a=dog,b=pan,i=270,x=0.05212953023805167,y=0.5387824620231573,x2=0.002717487922839943,xy=0.0280864766457681,y2=0.2902865413837349 +a=wye,b=hat,i=271,x=0.7790221947957395,y=0.7025339627538687,x2=0.6068755799843711,xy=0.5472895495830671,y2=0.4935539688226542 +a=dog,b=cat,i=272,x=0.0008954359621561325,y=0.054271178088963645,x2=8.018055623224788e-07,xy=4.859636456943798e-05,y2=0.002945360771164008 +a=cat,b=cat,i=273,x=0.10380296471678485,y=0.6937832475316934,x2=0.010775055483994081,xy=0.07201675796462878,y2=0.48133519455562296 +a=hat,b=dog,i=274,x=0.29979216886710724,y=0.8838417337375815,x2=0.08987534451404415,xy=0.2649688302924539,y2=0.7811762102962538 +a=hat,b=pan,i=275,x=0.38696122136190136,y=0.586256931066018,x2=0.14973898683789444,xy=0.2268586980771863,y2=0.34369718922294573 +a=cat,b=hat,i=276,x=0.05756896680109025,y=0.9110663752285088,x2=0.003314185938545031,xy=0.052449149909119655,y2=0.8300419400720139 +a=pan,b=dog,i=277,x=0.7092891435128651,y=0.4397689333439547,x2=0.5030910891052137,xy=0.3119233300750999,y2=0.1933967147344797 +a=cat,b=pan,i=278,x=0.29118271542024754,y=0.3841899576024924,x2=0.08478737375950886,xy=0.11186947509188351,y2=0.14760192352260493 +a=dog,b=dog,i=279,x=0.7294751397040691,y=0.20665147583356047,x2=0.532133979446271,xy=0.15074711420373857,y2=0.04270483246418863 +a=wye,b=dog,i=280,x=0.9751199139198755,y=0.3299994281281837,x2=0.9508588465231055,xy=0.3217890139499627,y2=0.1088996225649283 +a=cat,b=pan,i=281,x=0.7630555075664498,y=0.3673871684719181,x2=0.5822537076274923,xy=0.2803368023117403,y2=0.13497333155781355 +a=cat,b=hat,i=282,x=0.6862576061985859,y=0.9279592416281224,x2=0.4709495020654134,xy=0.6368190878095704,y2=0.86110835412304 +a=pan,b=cat,i=283,x=0.30466183485464227,y=0.6314883078693645,x2=0.09281883361699732,xy=0.1923903865647338,y2=0.3987774829757133 +a=dog,b=dog,i=284,x=0.1266975390198115,y=0.2837976906149976,x2=0.01605226639367666,xy=0.03595646898042605,y2=0.08054112919840589 +a=dog,b=dog,i=285,x=0.7354466023082858,y=0.5108089498320502,x2=0.540881704846802,xy=0.37567270658264496,y2=0.26092578322852195 +a=wye,b=hat,i=286,x=0.08791157895576474,y=0.6465223747243519,x2=0.007728445714495657,xy=0.05683680279224838,y2=0.41799118101921534 +a=dog,b=hat,i=287,x=0.11970840137472971,y=0.1482816627005039,x2=0.014330101359693391,xy=0.01775056079506421,y2=0.021987451493226014 +a=cat,b=wye,i=288,x=0.35399343255194404,y=0.316440140894129,x2=0.12531135028990775,xy=0.11201773167233352,y2=0.1001343627690962 +a=wye,b=pan,i=289,x=0.8443166377691436,y=0.9126747095020535,x2=0.7128705848137912,xy=0.7705864421037036,y2=0.8329751253646578 +a=hat,b=hat,i=290,x=0.8878219877890456,y=0.07743429366510513,x2=0.7882278820016924,xy=0.06874786852479434,y2=0.00599606983541374 +a=cat,b=cat,i=291,x=0.0271768798964106,y=0.7062174315398737,x2=0.0007385828009039266,xy=0.019192786317710722,y2=0.4987430606107762 +a=cat,b=hat,i=292,x=0.9443573120228451,y=0.592886870065721,x2=0.8918107327710133,xy=0.5598970509489022,y2=0.3515148406963272 +a=cat,b=wye,i=293,x=0.9220457035038476,y=0.7750015695972157,x2=0.8501682793499052,xy=0.7145868674558509,y2=0.6006274328781479 +a=cat,b=dog,i=294,x=0.6020924895573685,y=0.82611891030865,x2=0.3625153659813899,xy=0.4973999913781555,y2=0.6824724539695514 +a=pan,b=cat,i=295,x=0.3403817179931268,y=0.9507443645375449,x2=0.11585971394395249,xy=0.3236160001735731,y2=0.9039148466999 +a=pan,b=cat,i=296,x=0.9097127625952343,y=0.8605433360178909,x2=0.827577310428653,xy=0.7828472555417545,y2=0.7405348331648007 +a=wye,b=cat,i=297,x=0.6160372456767832,y=0.9020031887873672,x2=0.37950188806103735,xy=0.5556675600122452,y2=0.8136097525825787 +a=pan,b=wye,i=298,x=0.50577150863781,y=0.8259093126367452,x2=0.25580481894976626,xy=0.41772139905030325,y2=0.6821261927001009 +a=cat,b=cat,i=299,x=0.2981525480578324,y=0.6662890636412198,x2=0.08889494191337807,xy=0.19865578206769693,y2=0.4439411163278934 +a=cat,b=dog,i=300,x=0.0818678111539376,y=0.8004492798748463,x2=0.00670233850313679,xy=0.06553103048309926,y2=0.64071904965216 +a=cat,b=cat,i=301,x=0.12451202794377325,y=0.18564081545729194,x2=0.015503245102670971,xy=0.02311451440172319,y2=0.03446251236364832 +a=hat,b=cat,i=302,x=0.6734590557879861,y=0.673610869564445,x2=0.45354709982284586,xy=0.45364934018539543,y2=0.4537516035953678 +a=cat,b=pan,i=303,x=0.3585747227398197,y=0.8584656686844071,x2=0.12857583178793858,xy=0.30782408913016523,y2=0.7369633043097662 +a=cat,b=cat,i=304,x=0.20349559283978325,y=0.05618018115685175,x2=0.041410456305214845,xy=0.011432419270359966,y2=0.0031562127548166803 +a=hat,b=pan,i=305,x=0.5025551615837717,y=0.3304723949698324,x2=0.25256169043449084,xy=0.16608060785304013,y2=0.1092120038370969 +a=pan,b=pan,i=306,x=0.6152907560829367,y=0.22422100197362638,x2=0.3785827145211119,xy=0.1379611098340262,y2=0.05027505772605696 +a=dog,b=pan,i=307,x=0.43445251775626836,y=0.5191797007874173,x2=0.18874899018476068,xy=0.2255589281750395,y2=0.2695475617097121 +a=dog,b=cat,i=308,x=0.3070261088744515,y=0.05842083731286474,x2=0.09426503153058653,xy=0.017936722357356227,y2=0.003412994232336209 +a=dog,b=dog,i=309,x=0.8794547781341963,y=0.7332302883378141,x2=0.7734407067830683,xy=0.644842880551405,y2=0.537626655735954 +a=wye,b=cat,i=310,x=0.9888690403216374,y=0.5281326729751255,x2=0.9778619789066361,xy=0.5222540494874135,y2=0.2789241202638508 +a=pan,b=cat,i=311,x=0.3819560927822282,y=0.06438228257288925,x2=0.1458904568134661,xy=0.02459120509594212,y2=0.004145078309295358 +a=hat,b=pan,i=312,x=0.38739993766324976,y=0.8334486763106171,x2=0.1500787117014898,xy=0.32287796524825113,y2=0.6946366960439199 +a=hat,b=hat,i=313,x=0.2889248371208133,y=0.3113593460747701,x2=0.0834775615052885,xy=0.0899594483506959,y2=0.09694464238810846 +a=pan,b=pan,i=314,x=0.7705573615128862,y=0.9786808359787603,x2=0.5937586473817008,xy=0.7541297227350193,y2=0.9578161787120851 +a=hat,b=pan,i=315,x=0.22161939991648127,y=0.6799850454378898,x2=0.04911515841934126,xy=0.1506978777221264,y2=0.46237966201916914 +a=wye,b=pan,i=316,x=0.47223177684534823,y=0.2308631128058921,x2=0.22300285106251477,xy=0.1090208979683745,y2=0.05329777685442607 +a=dog,b=hat,i=317,x=0.4588358326624131,y=0.6629410208229793,x2=0.21053032133500998,xy=0.3041810952953819,y2=0.4394907970898139 +a=hat,b=cat,i=318,x=0.45926143061048397,y=0.7089887074654951,x2=0.21092106164638838,xy=0.3256111680772812,y2=0.5026649873135934 +a=cat,b=dog,i=319,x=0.9572556652231445,y=0.41269372516458,x2=0.9163384086018049,xy=0.39505340641583764,y2=0.1703161107902179 +a=pan,b=dog,i=320,x=0.7575141377032723,y=0.863562750562446,x2=0.5738276688203321,xy=0.6541609923449773,y2=0.7457406241589773 +a=wye,b=wye,i=321,x=0.7490553802399513,y=0.12306864410919094,x2=0.561083962666418,xy=0.09218523000882527,y2=0.015145891162874698 +a=hat,b=pan,i=322,x=0.2586385043179358,y=0.9230414729790952,x2=0.06689387591581888,xy=0.2387340659947375,y2=0.8520055608394178 +a=pan,b=cat,i=323,x=0.07085767112499741,y=0.9208584577909767,x2=0.005020809557258292,xy=0.06524988575482533,y2=0.8479802992851762 +a=dog,b=wye,i=324,x=0.371993577798137,y=0.7171686471344474,x2=0.13837922192305863,xy=0.2667821309321927,y2=0.5143308684326535 +a=pan,b=wye,i=325,x=0.7493887659784733,y=0.24257918878264784,x2=0.561583522574739,xy=0.18178611893388757,y2=0.0588446628304475 +a=cat,b=dog,i=326,x=0.7673708339325579,y=0.48141094171150267,x2=0.5888579967703493,xy=0.3694207158054138,y2=0.23175649479955582 +a=wye,b=hat,i=327,x=0.39089795934844385,y=0.18978525585445072,x2=0.15280121462277765,xy=0.07418666922792709,y2=0.036018443339739324 +a=wye,b=hat,i=328,x=0.30799655248421554,y=0.13719489618597558,x2=0.09486187634216213,xy=0.04225555504371033,y2=0.018822439539480616 +a=pan,b=hat,i=329,x=0.5989139125471804,y=0.3688054470820389,x2=0.35869787464257163,xy=0.220882713280616,y2=0.13601745779738258 +a=dog,b=dog,i=330,x=0.8251164627142066,y=0.6107692981277933,x2=0.6808171770420046,xy=0.5039558028056436,y2=0.3730391355355173 +a=dog,b=wye,i=331,x=0.405811566767869,y=0.9995223047806924,x2=0.1646830277225926,xy=0.40561771252248424,y2=0.9990448377541072 +a=dog,b=cat,i=332,x=0.5785425869013293,y=0.9296892821389334,x2=0.33471152485848216,xy=0.5378648423030984,y2=0.8643221613240054 +a=hat,b=hat,i=333,x=0.18855941279376276,y=0.24326199631666412,x2=0.03555465215312862,xy=0.045869339180508666,y2=0.05917639885196871 +a=cat,b=cat,i=334,x=0.9241901076212868,y=0.5723216714316407,x2=0.8541273550250458,xy=0.5289340271144027,y2=0.3275520955903069 +a=hat,b=dog,i=335,x=0.3875326629689546,y=0.29951305698338815,x2=0.15018156486780937,xy=0.11607109256674465,y2=0.08970807130353432 +a=cat,b=hat,i=336,x=0.36353909967371323,y=0.3037407740127752,x2=0.132160676991574,xy=0.1104216475188011,y2=0.09225845779787978 +a=wye,b=wye,i=337,x=0.15322408671389842,y=0.5364783269608415,x2=0.023477620749308262,xy=0.08220140169037513,y2=0.2878089952987036 +a=pan,b=wye,i=338,x=0.8342151312807021,y=0.0878748423317367,x2=0.6959148852576791,xy=0.07330652313204074,y2=0.007721987914827585 +a=pan,b=cat,i=339,x=0.36288996792695283,y=0.07297789973834401,x2=0.13168912882202485,xy=0.026482947695424038,y2=0.005325773850219791 +a=wye,b=wye,i=340,x=0.5495314800674435,y=0.4909485366614089,x2=0.301984847585115,xy=0.2697916759884896,y2=0.24103046564997876 +a=cat,b=pan,i=341,x=0.79498448769681,y=0.6638388502217857,x2=0.6320003356785594,xy=0.5277415882568056,y2=0.4406820190637824 +a=cat,b=hat,i=342,x=0.3295734049370175,y=0.7755432624102072,x2=0.1086186292417793,xy=0.25559843366849483,y2=0.6014673518698676 +a=pan,b=cat,i=343,x=0.6408042653352577,y=0.31349610449795595,x2=0.4106301064718593,xy=0.20088964092827785,y2=0.09827980753539332 +a=hat,b=hat,i=344,x=0.7362290618135519,y=0.6713538150535315,x2=0.5420332314588627,xy=0.49427018940181033,y2=0.4507159449869314 +a=pan,b=dog,i=345,x=0.7471489053370911,y=0.5757507025427996,x2=0.5582314867464135,xy=0.4301715071519139,y2=0.3314888714785273 +a=hat,b=hat,i=346,x=0.4039115623544295,y=0.9777356701558304,x2=0.16314455020359617,xy=0.3949187421022966,y2=0.9559670406950708 +a=dog,b=wye,i=347,x=0.753780066913511,y=0.6228105759522281,x2=0.568184389276137,xy=0.4694621976157128,y2=0.3878930135179461 +a=hat,b=wye,i=348,x=0.6271735401916162,y=0.17271963779635158,x2=0.3933466495164848,xy=0.1083251866973515,y2=0.029832073280502882 +a=dog,b=pan,i=349,x=0.008499846398031474,y=0.7784194540391546,x2=7.224738879012863e-05,xy=0.0066164457925723345,y2=0.6059368464266155 +a=dog,b=pan,i=350,x=0.4146878755302308,y=0.5980930475191678,x2=0.1719660341117762,xy=0.24802193524512506,y2=0.35771529349076553 +a=dog,b=cat,i=351,x=0.19333948681663715,y=0.8310163194530423,x2=0.03738015716252061,xy=0.16066826873930182,y2=0.6905881231972809 +a=wye,b=wye,i=352,x=0.6301771590119656,y=0.16193987131098408,x2=0.39712325174039215,xy=0.10205080803351926,y2=0.026224521920218086 +a=hat,b=dog,i=353,x=0.971822816670598,y=0.6107563563649813,x2=0.9444395870015747,xy=0.5935469625420876,y2=0.373023326840228 +a=dog,b=cat,i=354,x=0.6059945338166207,y=0.5908847323988631,x2=0.36722937501562347,xy=0.3580729179494077,y2=0.349144766982076 +a=cat,b=dog,i=355,x=0.9195111520172229,y=0.029690019889583197,x2=0.8455007586840404,xy=0.027300304392084907,y2=0.0008814972810438458 +a=cat,b=cat,i=356,x=0.18749508840350748,y=0.8115036777374969,x2=0.035154408175439085,xy=0.15215295379716343,y2=0.6585382189814832 +a=hat,b=wye,i=357,x=0.45853408021748976,y=0.9829665524302919,x2=0.21025350272089932,xy=0.4507236640031808,y2=0.9662232431966937 +a=cat,b=pan,i=358,x=0.41012256850789486,y=0.4498989364506413,x2=0.1682005211995129,xy=0.18451370738610717,y2=0.20240905301941817 +a=hat,b=cat,i=359,x=0.7473329464063138,y=0.8632953504427492,x2=0.5585065327843423,xy=0.6451690578652509,y2=0.7452788620960691 +a=cat,b=wye,i=360,x=0.7951325722573537,y=0.8459362528452746,x2=0.6322358074645957,xy=0.6726314686906103,y2=0.7156081438779044 +a=cat,b=wye,i=361,x=0.44763526932508135,y=0.31613950159283066,x2=0.2003773343437381,xy=0.14151519093980375,y2=0.09994418446736338 +a=pan,b=hat,i=362,x=0.906722306509765,y=0.6953547596343465,x2=0.8221453411223884,xy=0.6304936714981979,y2=0.4835182417461397 +a=pan,b=hat,i=363,x=0.06080903598353993,y=0.5645160214383047,x2=0.003697738857247454,xy=0.03432767506092667,y2=0.3186783384605325 +a=wye,b=pan,i=364,x=0.30514786611348743,y=0.13300047635483836,x2=0.09311522019361484,xy=0.040584811551756264,y2=0.017689126710613918 +a=wye,b=pan,i=365,x=0.37125897309400546,y=0.06739019658056855,x2=0.13783322510281548,xy=0.025019215179105037,y2=0.004541438595167673 +a=cat,b=wye,i=366,x=0.7791499362465059,y=0.27692636995359365,x2=0.6070746231529341,xy=0.2157671634943188,y2=0.07668821437567462 +a=cat,b=hat,i=367,x=0.9527733550611998,y=0.818523110036349,x2=0.907777066114575,xy=0.7798670097444599,y2=0.6699800816635771 +a=dog,b=hat,i=368,x=0.35020686980579574,y=0.23868938503279757,x2=0.12264485165917356,xy=0.0835906623882064,y2=0.05697262252733509 +a=pan,b=dog,i=369,x=0.8447943084740233,y=0.9949640479404968,x2=0.7136774236301031,xy=0.8405399648364069,y2=0.9899534566941391 +a=hat,b=wye,i=370,x=0.69940906738559,y=0.16693271246129116,x2=0.48917304354118085,xy=0.11675425273869851,y2=0.02786653048968411 +a=hat,b=pan,i=371,x=0.14714810220633867,y=0.3418482846423728,x2=0.02165256398292709,xy=0.05030232632761743,y2=0.11686024971293275 +a=cat,b=pan,i=372,x=0.42287448553330953,y=0.7687144669280749,x2=0.1788228305150612,xy=0.32506973472422196,y2=0.5909219316645143 +a=hat,b=pan,i=373,x=0.614903553546492,y=0.24894173738731518,x2=0.3781063801641035,xy=0.1530751589454977,y2=0.061971988613415 +a=wye,b=hat,i=374,x=0.14942412760967416,y=0.14152237684943625,x2=0.022327569911912187,xy=0.021146857697974558,y2=0.02002858314911385 +a=pan,b=hat,i=375,x=0.6737371074317526,y=0.3039803689768553,x2=0.45392168993050497,xy=0.20480285451050337,y2=0.0924040647233051 +a=hat,b=pan,i=376,x=0.8919202420346224,y=0.027633376425687306,x2=0.7955217181510994,xy=0.024646767789832852,y2=0.0007636034926837309 +a=pan,b=wye,i=377,x=0.7792580509827138,y=0.3805839747344706,x2=0.6072431100213779,xy=0.29657312638683797,y2=0.14484416182468815 +a=dog,b=wye,i=378,x=0.5473115371142823,y=0.13039780370314658,x2=0.29954991865839836,xy=0.0713682223810956,y2=0.017003587210604347 +a=hat,b=wye,i=379,x=0.6443554743420592,y=0.9254896320591379,x2=0.41519397731458013,xy=0.5963443108641237,y2=0.8565310590489585 +a=hat,b=cat,i=380,x=0.8305972957484694,y=0.3049792454885969,x2=0.6898918677046704,xy=0.2533149365622372,y2=0.09301234017879385 +a=cat,b=pan,i=381,x=0.49398849327681127,y=0.9686677193449981,x2=0.2440246314898942,xy=0.4785107071651207,y2=0.9383171505010399 +a=cat,b=wye,i=382,x=0.6658169957258326,y=0.6336496624002959,x2=0.4433122717973734,xy=0.4218947145620531,y2=0.4015118946600089 +a=hat,b=pan,i=383,x=0.5270422144850718,y=0.5949792755559095,x2=0.2777734958493285,xy=0.3135791949617103,y2=0.35400033834103484 +a=wye,b=dog,i=384,x=0.18443535729748028,y=0.13212443323489675,x2=0.03401640102144921,xy=0.024368417051405262,y2=0.01745686585764269 +a=hat,b=cat,i=385,x=0.17314133568517354,y=0.7379797046975181,x2=0.029977922122845946,xy=0.12777479177987822,y2=0.5446140445454359 +a=cat,b=dog,i=386,x=0.03478093143569683,y=0.15264820757159847,x2=0.0012097131915346437,xy=0.005309246841329784,y2=0.023301475274821813 +a=pan,b=pan,i=387,x=0.15246713204674733,y=0.10164387298451916,x2=0.02324622635456029,xy=0.015497349804073496,y2=0.010331476915293063 +a=pan,b=hat,i=388,x=0.17718620062853796,y=0.3500245786758208,x2=0.03139494969317651,xy=0.06201952522217346,y2=0.12251720567718588 +a=pan,b=pan,i=389,x=0.7605186211036413,y=0.28891913356723176,x2=0.5783885730453839,xy=0.21972838107100987,y2=0.08347426574123991 +a=hat,b=dog,i=390,x=0.6840388221413488,y=0.3649565855293123,x2=0.4679091101965238,xy=0.24964447289819922,y2=0.13319330932121426 +a=dog,b=cat,i=391,x=0.05921371062232661,y=0.389622580190799,x2=0.003506263525664635,xy=0.023070998715342215,y2=0.15180575499453558 +a=wye,b=dog,i=392,x=0.862948560484572,y=0.8359180773168853,x2=0.744680218042395,xy=0.7213543015036373,y2=0.6987590319851582 +a=cat,b=pan,i=393,x=0.6921946903714182,y=0.45062372911318316,x2=0.47913348937838357,xy=0.31191935264751364,y2=0.20306174523987147 +a=wye,b=hat,i=394,x=0.49393307945457976,y=0.007566390255741684,x2=0.2439698869794842,xy=0.003737290439373615,y2=5.72502615021827e-05 +a=cat,b=pan,i=395,x=0.48487561271603474,y=0.6592712972060344,x2=0.23510435980675012,xy=0.31966457417887095,y2=0.43463864331972735 +a=wye,b=hat,i=396,x=0.10898530427790898,y=0.8271502664191211,x2=0.011877796548548406,xy=0.0901472234692414,y2=0.6841775632372231 +a=hat,b=pan,i=397,x=0.20482548839258963,y=0.9341499290560121,x2=0.04195348069526287,xy=0.19133771545080064,y2=0.8726360899553525 +a=wye,b=wye,i=398,x=0.2414582722670322,y=0.7573182779141447,x2=0.058302097246180254,xy=0.18286076294139353,y2=0.5735309740628458 +a=pan,b=cat,i=399,x=0.25476845018641514,y=0.8106336969146216,x2=0.0649069632103879,xy=0.20652389063182233,y2=0.6571269905734666 +a=pan,b=pan,i=400,x=0.447675163315121,y=0.3962846957190259,x2=0.2004130518492203,xy=0.17740681587529797,y2=0.15704156006112097 +a=cat,b=dog,i=401,x=0.7196040784960461,y=0.6029774996918733,x2=0.5178300297881437,xy=0.4339050680196204,y2=0.36358186513466306 +a=pan,b=dog,i=402,x=0.3293635895274962,y=0.21292877581824698,x2=0.10848037410643702,xy=0.07013098591719337,y2=0.04533866357145728 +a=pan,b=pan,i=403,x=0.4794159710575423,y=0.7444257071982773,x2=0.22983967330504623,xy=0.35688957329665977,y2=0.5541696335376552 +a=pan,b=hat,i=404,x=0.35229848819990284,y=0.7048649430677805,x2=0.12411422478793707,xy=0.24832285382788966,y2=0.49683458796594543 +a=cat,b=cat,i=405,x=0.5539894972585298,y=0.4939436326491574,x2=0.30690436307275853,xy=0.2736395847253586,y2=0.24398031223464578 +a=wye,b=cat,i=406,x=0.9201662520135037,y=0.9061685082859349,x2=0.8467059313445787,xy=0.8338256799621362,y2=0.8211413654091564 +a=dog,b=wye,i=407,x=0.599977042706569,y=0.30667551037779883,x2=0.35997245177492015,xy=0.18399826578699946,y2=0.0940498686654834 +a=wye,b=wye,i=408,x=0.5163229735300138,y=0.8274828000305222,x2=0.2665894129948753,xy=0.427248379856701,y2=0.6847277843463532 +a=hat,b=cat,i=409,x=0.8637691382173114,y=0.27659796335817277,x2=0.7460971241366767,xy=0.23891678444255238,y2=0.07650643333388908 +a=cat,b=cat,i=410,x=0.5141323390854813,y=0.26336512902289655,x2=0.2643320620935083,xy=0.13540452981809137,y2=0.06936119118524695 +a=dog,b=pan,i=411,x=0.41224226185516033,y=0.36847099985667353,x2=0.16994368245945857,xy=0.15189931840894755,y2=0.13577087773537672 +a=cat,b=hat,i=412,x=0.7113346946765016,y=0.2675665550758648,x2=0.5059970478505117,xy=0.19032937376053363,y2=0.0715918613951658 +a=pan,b=cat,i=413,x=0.09725330111603114,y=0.6596012359249898,x2=0.009458204577965425,xy=0.06414839761391933,y2=0.435073790433774 +a=cat,b=pan,i=414,x=0.2032789261029312,y=0.7930423978993805,x2=0.04132232179756096,xy=0.16120880699907952,y2=0.6289162448659993 +a=wye,b=hat,i=415,x=0.7208194991426115,y=0.5076782641736721,x2=0.5195807503442053,xy=0.3659443921072567,y2=0.2577372199143928 +a=wye,b=cat,i=416,x=0.05094177917901299,y=0.823254645192439,x2=0.0025950648659233216,xy=0.04193805634348991,y2=0.6777482108309285 +a=dog,b=hat,i=417,x=0.3502332835712425,y=0.9015133693043408,x2=0.12266335292109437,xy=0.31573998751483345,y2=0.8127263550344648 +a=dog,b=hat,i=418,x=0.6897208043031566,y=0.17572608145503243,x2=0.4757147878885933,xy=0.121201934238207,y2=0.030879655703540693 +a=pan,b=wye,i=419,x=0.6948323736722205,y=0.8023485943181106,x2=0.4827920275029723,xy=0.5574977783026223,y2=0.643763266804248 +a=dog,b=pan,i=420,x=0.8611324428810029,y=0.8948892565088714,x2=0.7415490841822037,xy=0.7706181715654489,y2=0.8008267814150006 +a=dog,b=dog,i=421,x=0.6682769610946666,y=0.22827141775037252,x2=0.44659409672992256,xy=0.15254852935899008,y2=0.05210784016176508 +a=wye,b=hat,i=422,x=0.0541450623921913,y=0.03492968354866677,x2=0.002931687781454289,xy=0.0018912698950820602,y2=0.0012200827928100018 +a=hat,b=cat,i=423,x=0.2878891280366729,y=0.6923190205915444,x2=0.08288015004171582,xy=0.1993111191613031,y2=0.47930562627283524 +a=pan,b=pan,i=424,x=0.24969668722058536,y=0.5603015174164245,x2=0.062348435608934834,xy=0.1399054327435483,y2=0.3139377904191479 +a=cat,b=hat,i=425,x=0.6432373390180074,y=0.4601326221257571,x2=0.413754274306967,xy=0.2959744834515503,y2=0.2117220299443248 +a=pan,b=pan,i=426,x=0.08857290171262766,y=0.4948683043964537,x2=0.0078451589177948,xy=0.0438319216860018,y2=0.24489463869622113 +a=hat,b=hat,i=427,x=0.9817619908536765,y=0.9720329944246192,x2=0.9638566066849745,xy=0.9543050477817748,y2=0.9448481422500918 +a=hat,b=hat,i=428,x=0.9148525407955268,y=0.9648238200013665,x2=0.8369551714000311,xy=0.8826715231482961,y2=0.9308850036420292 +a=wye,b=dog,i=429,x=0.35950848468859187,y=0.9331667854080467,x2=0.1292463505630875,xy=0.33548137698377123,y2=0.8708002493887874 +a=cat,b=cat,i=430,x=0.37025745666447096,y=0.7068430140496296,x2=0.1370905842156426,xy=0.26171389664306477,y2=0.49962704651076484 +a=hat,b=wye,i=431,x=0.7473977295217059,y=0.31222462031682663,x2=0.558603366094201,xy=0.23335597232557292,y2=0.09748421353198655 +a=pan,b=wye,i=432,x=0.020626452567093057,y=0.9036046339384172,x2=0.00042545054550253975,xy=0.018638158121336245,y2=0.8165013344749809 +a=dog,b=cat,i=433,x=0.39895262550969957,y=0.3255908291058476,x2=0.1591631974010826,xy=0.1298953161136578,y2=0.10600938799783324 +a=cat,b=pan,i=434,x=0.03308271819637287,y=0.4561703448158573,x2=0.0010944662432606207,xy=0.01509135496708525,y2=0.20809138348941814 +a=wye,b=hat,i=435,x=0.5265827060213647,y=0.8324508984088317,x2=0.277289346280783,xy=0.4383542467140387,y2=0.692974498261671 +a=dog,b=dog,i=436,x=0.13573248026899842,y=0.6296955997868453,x2=0.018423306199974045,xy=0.08547014557354311,y2=0.3965165483909149 +a=hat,b=cat,i=437,x=0.8654646438877281,y=0.16019212127781757,x2=0.7490290498197121,xy=0.13864061719532614,y2=0.02566151571948701 +a=cat,b=dog,i=438,x=0.7966508697236587,y=0.8179096733918833,x2=0.6346526082314619,xy=0.6515884526630374,y2=0.6689762338280172 +a=pan,b=wye,i=439,x=0.03263795204183584,y=0.3028707310744211,x2=0.001065235913485176,xy=0.009885080395682715,y2=0.0917306797415543 +a=dog,b=hat,i=440,x=0.966023792673685,y=0.6707282859911573,x2=0.9332019680116507,xy=0.6479394826866979,y2=0.4498764336286357 +a=wye,b=wye,i=441,x=0.5051303446747406,y=0.8181837283036516,x2=0.25515666511122226,xy=0.41328942868528784,y2=0.6694246132608636 +a=wye,b=wye,i=442,x=0.00189056621370709,y=0.34828222446247414,x2=3.5742406084107622e-06,xy=0.0006584506064035026,y2=0.12130050787652923 +a=pan,b=cat,i=443,x=0.6793754442809697,y=0.1298115452400409,x2=0.461550994291965,xy=0.088190776220252,y2=0.016851037277607187 +a=hat,b=dog,i=444,x=0.6790194116161151,y=0.5696648954621644,x2=0.4610673613514952,xy=0.3868135221350746,y2=0.32451809312191865 +a=cat,b=wye,i=445,x=0.6656154116151947,y=0.8994567166267486,x2=0.443043876179665,xy=0.5986922526675648,y2=0.8090223850849713 +a=pan,b=dog,i=446,x=0.25382576885203534,y=0.7091042660509055,x2=0.06442752093332688,xy=0.1799889355266293,y2=0.5028288601315933 +a=dog,b=cat,i=447,x=0.5286351304176596,y=0.819162354301337,x2=0.279455101111696,xy=0.4330379979993244,y2=0.6710269627045091 +a=wye,b=wye,i=448,x=0.08576681150946075,y=0.49558546913709267,x2=0.007355945956499369,xy=0.042504785518308705,y2=0.24560495721983222 +a=dog,b=wye,i=449,x=0.9279016015331357,y=0.24265136631045403,x2=0.8610013821277582,xy=0.22515659141367386,y2=0.05887968557233014 +a=wye,b=pan,i=450,x=0.9954136776717515,y=0.8564839236024028,x2=0.9908483896960015,xy=0.8525558122597992,y2=0.7335647113893665 +a=wye,b=dog,i=451,x=0.75599828738501,y=0.5714548197102787,x2=0.5715334105290681,xy=0.4320188650188803,y2=0.3265606109701071 +a=hat,b=wye,i=452,x=0.8111424402968179,y=0.31828231231277015,x2=0.6579520584506768,xy=0.25817229151269433,y2=0.10130363033116375 +a=pan,b=cat,i=453,x=0.8230952277223608,y=0.23017811163282564,x2=0.677485753899325,xy=0.1894585052111236,y2=0.05298196307485355 +a=cat,b=pan,i=454,x=0.1681250040487443,y=0.4832147037274883,x2=0.02826601698639029,xy=0.08124047402059675,y2=0.2334964498984443 +a=wye,b=cat,i=455,x=0.583591811976771,y=0.6182535096548227,x2=0.3405794030063308,xy=0.3608076859604561,y2=0.382237402200506 +a=pan,b=pan,i=456,x=0.5341162080768863,y=0.18521008011230855,x2=0.2852801237304317,xy=0.09892370568720257,y2=0.034302773775207754 +a=pan,b=pan,i=457,x=0.43606616667930154,y=0.6504089455435781,x2=0.19015370172238039,xy=0.28362133565711467,y2=0.4230317964431091 +a=pan,b=hat,i=458,x=0.41053891653745356,y=0.39042433627756823,x2=0.16854220199174627,xy=0.16028438400524728,y2=0.15243116235777968 +a=hat,b=cat,i=459,x=0.8279009780108291,y=0.49850047419497034,x2=0.6854200293912873,xy=0.41270903012487803,y2=0.2485027227726103 +a=hat,b=hat,i=460,x=0.6721806454947676,y=0.10396222643019659,x2=0.4518268201777625,xy=0.06988139646892273,y2=0.010808144524323467 +a=pan,b=wye,i=461,x=0.02023810899472822,y=0.5501255555291902,x2=0.0004095810556824993,xy=0.011133500953585163,y2=0.3026381268463001 +a=wye,b=cat,i=462,x=0.727795641281456,y=0.40124503379262455,x2=0.5296864954682858,xy=0.29202438668010267,y2=0.16099757714324442 +a=pan,b=hat,i=463,x=0.21408874740949402,y=0.4526591991311629,x2=0.04583399176736613,xy=0.0969092409453754,y2=0.20490035055806582 +a=pan,b=hat,i=464,x=0.808013299733613,y=0.8508128545640562,x2=0.6528854925464016,xy=0.6874681020720776,y2=0.7238825134914378 +a=cat,b=cat,i=465,x=0.18443046027469845,y=0.3198595241708798,x2=0.03401459467713712,xy=0.0589918392660814,y2=0.10231011520282166 +a=dog,b=wye,i=466,x=0.6690693684021588,y=0.35529864134741296,x2=0.4476538197340637,xy=0.23771943756045874,y2=0.1262371245433176 +a=hat,b=dog,i=467,x=0.5541917854317743,y=0.37428947552399106,x2=0.3071285350400577,xy=0.20742815270896298,y2=0.1400926114880243 +a=cat,b=cat,i=468,x=0.1736348246454934,y=0.01764568600585459,x2=0.030149052329671244,xy=0.0030639055953759985,y2=0.0003113702346172125 +a=hat,b=hat,i=469,x=0.5033692302886069,y=0.10883292644571674,x2=0.25338058200134456,xy=0.05478314641503701,y2=0.01184460587873879 +a=dog,b=hat,i=470,x=0.7182088654841831,y=0.0053812060288691566,x2=0.5158239744600773,xy=0.003864829876930763,y2=2.895737832513776e-05 +a=pan,b=cat,i=471,x=0.9153812295229025,y=0.684467443316095,x2=0.8379227953628606,xy=0.6265486498310846,y2=0.4684956809596717 +a=wye,b=pan,i=472,x=0.5426093114832728,y=0.8937944086246787,x2=0.2944248649083514,xy=0.484981168671436,y2=0.7988684448887392 +a=dog,b=wye,i=473,x=0.254035842066346,y=0.014533606202589922,x2=0.06453420905435749,xy=0.0036920568899356,y2=0.00021122570925196025 +a=cat,b=dog,i=474,x=0.7208349357817031,y=0.7969304385460733,x2=0.519603004643412,xy=0.5744553014918432,y2=0.6350981238812367 +a=wye,b=wye,i=475,x=0.44310978998369854,y=0.5903375948709183,x2=0.19634628597939743,xy=0.2615843676827343,y2=0.34849847591798044 +a=wye,b=wye,i=476,x=0.211134619552652,y=0.37682855600072707,x2=0.0445778275736431,xy=0.07956155380778873,y2=0.1419997606175931 +a=cat,b=wye,i=477,x=0.656123622461519,y=0.23518195578595602,x2=0.4304982079520259,xy=0.15430843676786626,y2=0.055310552327307375 +a=pan,b=hat,i=478,x=0.261137365170943,y=0.848909404771103,x2=0.06819272348842242,xy=0.22168196523075936,y2=0.7206471775088283 +a=hat,b=wye,i=479,x=0.5726860692616852,y=0.20658315802101979,x2=0.3279693339263997,xy=0.11830729674272339,y2=0.04267660117793763 +a=dog,b=cat,i=480,x=0.5889373970697118,y=0.6324315776400301,x2=0.3468472576672474,xy=0.3724626071600107,y2=0.39996970039625745 +a=pan,b=wye,i=481,x=0.7326724570245813,y=0.7607701934340202,x2=0.536808929282437,xy=0.5573953668543695,y2=0.5787712872176365 +a=cat,b=hat,i=482,x=0.7156786664141497,y=0.6727068718078026,x2=0.5121959535603358,xy=0.48144195690304253,y2=0.45253453537743943 +a=pan,b=wye,i=483,x=0.906076222484393,y=0.8837149104449258,x2=0.8209741209515873,xy=0.800713067809072,y2=0.7809520429426832 +a=wye,b=wye,i=484,x=0.17485771656037297,y=0.3286561057182015,x2=0.030575221040707732,xy=0.057468056179509244,y2=0.10801483582585363 +a=pan,b=hat,i=485,x=0.9746813020717191,y=0.9603727749897781,x2=0.9500036406082217,xy=0.936057386801267,y2=0.922315866941567 +a=hat,b=hat,i=486,x=0.389737022988879,y=0.5054926492080817,x2=0.151894947088234,xy=0.19700920024511948,y2=0.25552281840340474 +a=cat,b=cat,i=487,x=0.7717280840966645,y=0.5792209586499713,x2=0.5955642357835085,xy=0.44700108068757566,y2=0.3354969189393917 +a=cat,b=hat,i=488,x=0.5352653098753735,y=0.6995994641416728,x2=0.2865089519559796,xy=0.37447132396243776,y2=0.4894394102273158 +a=wye,b=pan,i=489,x=0.3817318590918931,y=0.10110815614280855,x2=0.14571921224575293,xy=0.03859620441374772,y2=0.010222859238598553 +a=cat,b=wye,i=490,x=0.4338593996143578,y=0.16064648936002768,x2=0.18823397863373104,xy=0.06969798942389593,y2=0.025807294543701485 +a=cat,b=dog,i=491,x=0.5523473079666366,y=0.1011038140762488,x2=0.3050875486179904,xy=0.05584441953017536,y2=0.010221981220764684 +a=dog,b=pan,i=492,x=0.8548158489133266,y=0.4035450933075072,x2=0.7307101355534112,xy=0.3449567415104644,y2=0.16284864233256469 +a=cat,b=dog,i=493,x=0.6761850511558616,y=0.6358566191991404,x2=0.45722622340665514,xy=0.42995674058096395,y2=0.4043136401793606 +a=hat,b=cat,i=494,x=0.7255484564419751,y=0.3663459020675335,x2=0.5264205626453327,xy=0.26580170376894185,y2=0.13420931996167484 +a=cat,b=pan,i=495,x=0.017780663500744698,y=0.18199852103097924,x2=0.0003161519945267147,xy=0.003236054460085049,y2=0.03312346165746379 +a=dog,b=pan,i=496,x=0.3354816673166041,y=0.2950171337294082,x2=0.11254794910552864,xy=0.09897283991050743,y2=0.08703510919391551 +a=hat,b=cat,i=497,x=0.845745458886744,y=0.30462935389212265,x2=0.7152853812275493,xy=0.2576388926978656,y2=0.0927990432527321 +a=cat,b=wye,i=498,x=0.4270245034620467,y=0.8684115407395496,x2=0.18234992655700752,xy=0.3708330069850171,y2=0.7541386040896385 +a=cat,b=wye,i=499,x=0.2841158830878526,y=0.3616334878960804,x2=0.08072183502279034,xy=0.10274581776773514,y2=0.13077877956788453 +a=hat,b=cat,i=500,x=0.1078620490437403,y=0.891240434209545,x2=0.011634221623914238,xy=0.09613101942447434,y2=0.7943095115700184 +a=cat,b=hat,i=501,x=0.02602252145560835,y=0.4249719491548738,x2=0.0006771716229075969,xy=0.011058841664914405,y2=0.18060115756849263 +a=cat,b=dog,i=502,x=0.9600130477076377,y=0.10206080237229287,x2=0.9216250517689071,xy=0.09797970193691179,y2=0.010416407380876222 +a=dog,b=wye,i=503,x=0.7224035498570839,y=0.30405882634135073,x2=0.5218668888461163,xy=0.21965317551437039,y2=0.09245176987607968 +a=cat,b=dog,i=504,x=0.29699950881556403,y=0.8492341300547505,x2=0.08820870823668629,xy=0.2522221194956737,y2=0.7211986076498488 +a=dog,b=wye,i=505,x=0.719987868759384,y=0.3042780893445137,x2=0.51838253116068,xy=0.21907653305733388,y2=0.09258515565514788 +a=wye,b=dog,i=506,x=0.571928391586696,y=0.8759035093371151,x2=0.32710208510294503,xy=0.5009540852803188,y2=0.7672069576690738 +a=pan,b=dog,i=507,x=0.9451105204196616,y=0.08262536392557762,x2=0.8932338958079236,xy=0.0780901006995666,y2=0.0068269507638341435 +a=hat,b=cat,i=508,x=0.06494158136397976,y=0.7691311772880609,x2=0.004217408990054404,xy=0.04994859492942615,y2=0.5915627678765186 +a=hat,b=wye,i=509,x=0.8526682827229164,y=0.9502200981859352,x2=0.7270432003616473,xy=0.8102225393290023,y2=0.9029182349964884 +a=dog,b=hat,i=510,x=0.7961747152551889,y=0.4290742277373424,x2=0.6338941772116812,xy=0.3416180510921186,y2=0.18410469290839676 +a=dog,b=dog,i=511,x=0.9644468520430375,y=0.6982963594821596,x2=0.9301577304157246,xy=0.6734697256956821,y2=0.4876178056660375 +a=wye,b=cat,i=512,x=0.7782849197477183,y=0.7390864748178285,x2=0.6057274163067123,xy=0.5752198577402177,y2=0.5462488172586447 +a=hat,b=wye,i=513,x=0.058468587059375854,y=0.08061130780101255,x2=0.0034185756727198135,xy=0.0047132292681336466,y2=0.006498182945389588 +a=pan,b=dog,i=514,x=0.357548753499498,y=0.6568238423174304,x2=0.12784111112904478,xy=0.23484654608934807,y2=0.43141755983663266 +a=dog,b=dog,i=515,x=0.1192143216962187,y=0.15885584816018783,x2=0.014212054497489522,xy=0.018937892185894305,y2=0.02523518049469265 +a=dog,b=hat,i=516,x=0.7844258125322406,y=0.6795173335538125,x2=0.615323855366866,xy=0.533030936502691,y2=0.4617438066000833 +a=hat,b=cat,i=517,x=0.803492095202423,y=0.9777180162849328,x2=0.6455995470527797,xy=0.7855886974219375,y2=0.9559325193681442 +a=pan,b=cat,i=518,x=0.8929678579851031,y=0.8731506959135767,x2=0.7973915953945033,xy=0.7796955066281488,y2=0.7623921377743633 +a=cat,b=hat,i=519,x=0.8430997768388969,y=0.3592743119385645,x2=0.7108172337057977,xy=0.302904092219352,y2=0.12907803121892897 +a=pan,b=cat,i=520,x=0.6070056034765043,y=0.5878574244689501,x2=0.3684558026518752,xy=0.3568327506979186,y2=0.3455763515032673 +a=wye,b=dog,i=521,x=0.6022397584211494,y=0.6804292951308468,x2=0.3626927266231644,xy=0.4097815743222742,y2=0.46298402567226105 +a=hat,b=cat,i=522,x=0.8778649552084499,y=0.9121524444235004,x2=0.7706468795831337,xy=0.8007466647671142,y2=0.832022081867767 +a=wye,b=cat,i=523,x=0.5651100240663355,y=0.4298499196494372,x2=0.3193493393002543,xy=0.24291249843800583,y2=0.18477095342262762 +a=hat,b=hat,i=524,x=0.176299648277084,y=0.9020467171674311,x2=0.031081565982623526,xy=0.15903051896611636,y2=0.8136882799525395 +a=wye,b=wye,i=525,x=0.17893912687254476,y=0.9775420788552232,x2=0.03201921112590867,xy=0.17492052607152594,y2=0.9555885159325913 +a=pan,b=cat,i=526,x=0.8375161177973927,y=0.7512783056396939,x2=0.7014332475704161,xy=0.6292076899247594,y2=0.5644190925248493 +a=hat,b=hat,i=527,x=0.8452592696154724,y=0.10934788095339154,x2=0.7144632328708819,xy=0.09242730998866336,y2=0.011956959068997089 +a=pan,b=dog,i=528,x=0.626938320263565,y=0.2998594026650514,x2=0.3930516574149004,xy=0.1879933502220633,y2=0.08991566136664143 +a=hat,b=dog,i=529,x=0.34324615615265386,y=0.34947501965777994,x2=0.11781792371357204,xy=0.11995595716890611,y2=0.12213278936480568 +a=cat,b=wye,i=530,x=0.09585122473142738,y=0.3977348374237427,x2=0.009187457282514595,xy=0.03812337128542089,y2=0.15819300090049104 +a=cat,b=pan,i=531,x=0.3136925767907739,y=0.7272959366988331,x2=0.09840303273363557,xy=0.22814733647251653,y2=0.528959379538633 +a=wye,b=dog,i=532,x=0.6336194018015315,y=0.6185562907483662,x2=0.4014735463393307,xy=0.391929266924554,y2=0.3826118848243773 +a=wye,b=cat,i=533,x=0.6206814745682353,y=0.8577418603739316,x2=0.38524549287219895,xy=0.5323844826957933,y2=0.7357210990377332 +a=wye,b=hat,i=534,x=0.886934308928995,y=0.9507140909937993,x2=0.7866524683553541,xy=0.8432209452846431,y2=0.9038572828141661 +a=pan,b=wye,i=535,x=0.1368489021210476,y=0.7785386772895759,x2=0.01872762201173607,xy=0.10654216324585104,y2=0.6061224720358025 +a=hat,b=hat,i=536,x=0.779299644491487,y=0.0905711082010715,x2=0.6073079359045581,xy=0.07058203242229504,y2=0.008203125640770201 +a=pan,b=hat,i=537,x=0.5468876904615854,y=0.0403492727581517,x2=0.2990861459784068,xy=0.022066520590510147,y2=0.0016280638121117228 +a=cat,b=wye,i=538,x=0.5348837444710285,y=0.6184260119257476,x2=0.2861006200993485,xy=0.33078602093712883,y2=0.382450732226385 +a=cat,b=wye,i=539,x=0.2514015500496377,y=0.5686176926055978,x2=0.0632027393673605,xy=0.14295136930669572,y2=0.3233260803441141 +a=hat,b=cat,i=540,x=0.03587712705596502,y=0.0639971587990984,x2=0.0012871682457898572,xy=0.002296034197456023,y2=0.0040956363343570175 +a=dog,b=cat,i=541,x=0.5140554945247015,y=0.3951198550793644,x2=0.26425305145103534,xy=0.20311353249935105,y2=0.15611969987793795 +a=pan,b=pan,i=542,x=0.505988282501811,y=0.61886003251058,x2=0.25602414202913254,xy=0.3131359249590433,y2=0.3829877398389961 +a=dog,b=pan,i=543,x=0.06724122779098063,y=0.6844038973931703,x2=0.004521382714838546,xy=0.0460201583656491,y2=0.4684086947669612 +a=cat,b=hat,i=544,x=0.2251062355675667,y=0.46180421651863035,x2=0.050672817291400836,xy=0.10395500874973838,y2=0.21326313439438602 +a=dog,b=wye,i=545,x=0.05601503064905111,y=0.250556229890031,x2=0.0031376836586141355,xy=0.014034914896600784,y2=0.06277842433670607 +a=hat,b=pan,i=546,x=0.09484781714308776,y=0.5304294933057503,x2=0.008996108416808613,xy=0.0503100795883645,y2=0.28135544736859497 +a=pan,b=cat,i=547,x=0.06526726447590292,y=0.8939940568623452,x2=0.004259815812167459,xy=0.05834854654912008,y2=0.7992253737051942 +a=wye,b=hat,i=548,x=0.8498290633914884,y=0.09181738815270246,x2=0.7222094369848545,xy=0.07802908497686388,y2=0.008430432767184026 +a=cat,b=wye,i=549,x=0.32107592669097085,y=0.3153327302443085,x2=0.10308975070046568,xy=0.1012457485791853,y2=0.09943473076332984 +a=hat,b=cat,i=550,x=0.3962909153545656,y=0.6623064945082948,x2=0.15704648959255949,xy=0.26246604695396575,y2=0.43864989266786597 +a=wye,b=wye,i=551,x=0.43650140196394005,y=0.8569782859131105,x2=0.19053347391648517,xy=0.374072223253727,y2=0.734411782526573 +a=pan,b=dog,i=552,x=0.9993077485337599,y=0.10019859749555626,x2=0.9986159762796124,xy=0.10012923486952477,y2=0.010039758940076493 +a=pan,b=cat,i=553,x=0.44797263597990333,y=0.8662958294512269,x2=0.20067948258678298,xy=0.3880768262576629,y2=0.7504684641245891 +a=dog,b=dog,i=554,x=0.40480362277090387,y=0.6539051006815002,x2=0.16386597300844824,xy=0.2647031537042439,y2=0.42759188069728293 +a=hat,b=wye,i=555,x=0.6128372799136335,y=0.46626943145563005,x2=0.3755695316519411,xy=0.28574729008014466,y2=0.2174071827099565 +a=cat,b=dog,i=556,x=0.9831029154847094,y=0.30946523504038015,x2=0.9664913424345357,xy=0.30423617480935855,y2=0.09576873169859773 +a=dog,b=pan,i=557,x=0.9187169194231349,y=0.8714507884381463,x2=0.844040778034335,xy=0.8006165837827558,y2=0.7594264766694667 +a=cat,b=cat,i=558,x=0.6297377530200902,y=0.9564703645603738,x2=0.3965696375787921,xy=0.6023254982085563,y2=0.9148355582822544 +a=dog,b=wye,i=559,x=0.5554989886174412,y=0.7532866340748579,x2=0.30857912635500007,xy=0.41844996336762,y2=0.5674407530758288 +a=pan,b=pan,i=560,x=0.5310698092443845,y=0.8265306359880259,x2=0.28203514229086696,xy=0.43894546718880073,y2=0.6831528922267706 +a=wye,b=pan,i=561,x=0.022976813994650347,y=0.9342710142178746,x2=0.0005279339813447601,xy=0.021466571314277434,y2=0.872862328007696 +a=hat,b=hat,i=562,x=0.28441187328233775,y=0.6675462356653574,x2=0.08089011366396855,xy=0.18985807538815722,y2=0.4456179767509889 +a=dog,b=pan,i=563,x=0.6224741669574889,y=0.11916397259976652,x2=0.3874740885294198,xy=0.0741764945753847,y2=0.014200052365757906 +a=pan,b=dog,i=564,x=0.9837709447757146,y=0.8330969991954611,x2=0.967805271784902,xy=0.8195766219883315,y2=0.6940506100684821 +a=pan,b=wye,i=565,x=0.3688855052429517,y=0.9040587054107869,x2=0.13607651597834775,xy=0.333494152314747,y2=0.817322142829028 +a=wye,b=wye,i=566,x=0.5138537141869847,y=0.5560587607325808,x2=0.2640456395837593,xy=0.28573285950864846,y2=0.3092013453874535 +a=hat,b=cat,i=567,x=0.804358708281772,y=0.4023986125270216,x2=0.6469929315887208,xy=0.32367282818661236,y2=0.16192464336367204 +a=wye,b=pan,i=568,x=0.9973387930844961,y=0.5711453274816489,x2=0.9946846681912394,xy=0.569625391586397,y2=0.32620698510412 +a=dog,b=cat,i=569,x=0.5807005891800942,y=0.46037286387360454,x2=0.33721317427410846,xy=0.26733879329392946,y2=0.2119431737911844 +a=cat,b=hat,i=570,x=0.4673986559801019,y=0.9704729359036818,x2=0.21846150361200564,xy=0.4535977459064444,y2=0.9418177193215116 +a=pan,b=cat,i=571,x=0.19902565265833183,y=0.8897887225086547,x2=0.039611210416074946,xy=0.17709078122530833,y2=0.7917239707035837 +a=wye,b=pan,i=572,x=0.9765395095911745,y=0.4954531021095988,x2=0.9536294137925716,xy=0.4838295293595337,y2=0.24547377639002455 +a=dog,b=wye,i=573,x=0.740323306950601,y=0.0789459840490837,x2=0.5480785988142738,xy=0.05844555198168705,y2=0.0062324683974781785 +a=wye,b=dog,i=574,x=0.9646512592477066,y=0.6589096310365389,x2=0.930552051968186,xy=0.6356180053098389,y2=0.4341619018727078 +a=hat,b=pan,i=575,x=0.9349096289723295,y=0.009990558226173452,x2=0.8740560143451789,xy=0.009340269084458277,y2=9.981125367056202e-05 +a=cat,b=hat,i=576,x=0.0535540240207355,y=0.8438819580641209,x2=0.002868033488813515,xy=0.04519327465283124,y2=0.7121367591461347 +a=dog,b=dog,i=577,x=0.3534573064310561,y=0.8830990802028328,x2=0.12493206746949749,xy=0.31213782220023645,y2=0.7798639854550893 +a=pan,b=cat,i=578,x=0.2896905064885902,y=0.4717415849739569,x2=0.08392058954961591,xy=0.13665905868283587,y2=0.222540122993741 +a=pan,b=hat,i=579,x=0.8469622711045872,y=0.05034158398652022,x2=0.7173450886746403,xy=0.042637422304225486,y2=0.0025342750782718694 +a=dog,b=wye,i=580,x=0.92247105168372,y=0.4607201119337304,x2=0.8509528411944685,xy=0.4250009661873495,y2=0.21226302154022908 +a=wye,b=wye,i=581,x=0.5394694831520579,y=0.42191550462126415,x2=0.2910273232523485,xy=0.22761053921187308,y2=0.17801269303981596 +a=cat,b=hat,i=582,x=0.1980857029178107,y=0.3696136938289396,x2=0.03923794570044316,xy=0.07321518835015398,y2=0.1366142826658731 +a=pan,b=cat,i=583,x=0.7419057634234156,y=0.5185280910497336,x2=0.5504241618008812,xy=0.384698979246739,y2=0.26887138120768084 +a=dog,b=cat,i=584,x=0.709429914643071,y=0.678472673421283,x2=0.5032908037904751,xy=0.48132881079291706,y2=0.46032516857942296 +a=wye,b=dog,i=585,x=0.3969321618524141,y=0.06893081064610551,x2=0.15755514111283106,xy=0.02736085568799806,y2=0.0047514566563292525 +a=wye,b=hat,i=586,x=0.5796873362193875,y=0.47960567601099047,x2=0.33603740777312924,xy=0.2780213367625097,y2=0.23002160446195916 +a=dog,b=cat,i=587,x=0.3823538804427917,y=0.6227305847052022,x2=0.14619448988966066,xy=0.23810345553244264,y2=0.38779338112728295 +a=pan,b=cat,i=588,x=0.6729056596127668,y=0.855307402214849,x2=0.4528020267388928,xy=0.575541191659065,y2=0.7315507522835135 +a=wye,b=cat,i=589,x=0.7756644096506681,y=0.9934419395516876,x2=0.6016552763987194,xy=0.7705775555645744,y2=0.9869268872602189 +a=cat,b=cat,i=590,x=0.5043359295981563,y=0.20976859569338902,x2=0.2543547298836365,xy=0.10579383970952516,y2=0.0440028637391765 +a=dog,b=hat,i=591,x=0.8669601128845403,y=0.6373110010483346,x2=0.7516198373327749,xy=0.5525232174114235,y2=0.40616531205723033 +a=pan,b=cat,i=592,x=0.7044083196853276,y=0.4226239612654834,x2=0.49619108084190666,xy=0.2976998344137761,y2=0.17861101263572882 +a=wye,b=pan,i=593,x=0.5515403005725981,y=0.480013394589378,x2=0.3041967031557118,xy=0.26474673193069864,y2=0.23041285898521788 +a=cat,b=cat,i=594,x=0.2615824864121392,y=0.24054710356722298,x2=0.068425397197557,xy=0.06292290945035255,y2=0.057862909034580294 +a=pan,b=wye,i=595,x=0.37831785348075364,y=0.0988205317466111,x2=0.14312439826228499,xy=0.03738557145020458,y2=0.009765497494682971 +a=wye,b=dog,i=596,x=0.10997957058997387,y=0.8607615584803269,x2=0.012095505947155047,xy=0.09466618658202304,y2=0.7409104605574812 +a=pan,b=pan,i=597,x=0.3578314631700755,y=0.4610253660653395,x2=0.12804335603443712,xy=0.16496938129768013,y2=0.2125443881556803 +a=pan,b=hat,i=598,x=0.04277171024958748,y=0.2316071342295577,x2=0.0018294191976746667,xy=0.009906233237003957,y2=0.05364186462602836 +a=dog,b=pan,i=599,x=0.933656964091152,y=0.3604541366591547,x2=0.8717153265959066,xy=0.3365405149272836,y2=0.12992718463469657 +a=pan,b=dog,i=600,x=0.8279059521913905,y=0.9102424712543687,x2=0.685428265673933,xy=0.7535951598888926,y2=0.8285413564752603 +a=cat,b=cat,i=601,x=0.28088999427212924,y=0.9912215980573098,x2=0.0788991888821968,xy=0.27842422900072855,y2=0.9825202564552871 +a=hat,b=cat,i=602,x=0.37386268101282927,y=0.5135855689760194,x2=0.13977330425410053,xy=0.19201047774687396,y2=0.26377013666042154 +a=hat,b=dog,i=603,x=0.3803020210377117,y=0.28893565862763304,x2=0.14462962720536812,xy=0.10988281492595119,y2=0.0834838148265841 +a=cat,b=pan,i=604,x=0.7066746969537755,y=0.965389301398448,x2=0.4993891273147104,xy=0.6822161920081653,y2=0.9319765032545835 +a=pan,b=cat,i=605,x=0.3058965912441608,y=0.29637041075010173,x2=0.09357272453479719,xy=0.09065869839408791,y2=0.08783542036818402 +a=pan,b=hat,i=606,x=0.2679309094874891,y=0.6237381631675911,x2=0.07178697225879307,xy=0.16711873333954858,y2=0.38904929619168055 +a=dog,b=cat,i=607,x=0.7791895125595627,y=0.034844749031911704,x2=0.6071362964828089,xy=0.027150663013435574,y2=0.0012141565350969115 +a=hat,b=cat,i=608,x=0.6913845849105351,y=0.0784559825533423,x2=0.4780126442519129,xy=0.054243256931390746,y2=0.006155341198410351 +a=dog,b=wye,i=609,x=0.633866333722232,y=0.722140445897368,x2=0.401786529026464,xy=0.45774051687350253,y2=0.5214868236008495 +a=wye,b=wye,i=610,x=0.31989367240781375,y=0.90234836985202,x2=0.10233196164655765,xy=0.28865553382316683,y2=0.814232580574598 +a=cat,b=wye,i=611,x=0.8139721003412402,y=0.6942407060285465,x2=0.6625505801339301,xy=0.5650925656284415,y2=0.4819701579070147 +a=pan,b=dog,i=612,x=0.8183348011907539,y=0.8847778416101758,x2=0.6696718468399107,xy=0.7240444991120475,y2=0.7828318290043613 +a=cat,b=wye,i=613,x=0.7326510422319794,y=0.6062625695353675,x2=0.5367775496836057,xy=0.4441789034363249,y2=0.3675543032196263 +a=dog,b=dog,i=614,x=0.07038667736657966,y=0.2982907049163095,x2=0.004954284350706978,xy=0.020995691608393895,y2=0.08897734463946882 +a=dog,b=cat,i=615,x=0.7622669597997499,y=0.31569377144533395,x2=0.5810509180023535,xy=0.2406429313873518,y2=0.09966255732937875 +a=pan,b=cat,i=616,x=0.428192969224764,y=0.5399779987847076,x2=0.1833492188935197,xy=0.23121478261567,y2=0.29157623917153774 +a=pan,b=cat,i=617,x=0.9010965128514362,y=0.5931563226749272,x2=0.8119749254730185,xy=0.5344910939381582,y2=0.3518344231292424 +a=wye,b=hat,i=618,x=0.7266325029014346,y=0.6586352626392248,x2=0.5279947942728033,xy=0.47858578939068364,y2=0.4338004091918406 +a=pan,b=dog,i=619,x=0.37449343923943623,y=0.8136812967444776,x2=0.14024533603338132,xy=0.3047183072626437,y2=0.6620772526717746 +a=hat,b=dog,i=620,x=0.8635032118133309,y=0.10847192527528038,x2=0.7456377968119382,xy=0.09366585586678024,y2=0.011766158572926011 +a=dog,b=cat,i=621,x=0.29950978683846696,y=0.04614568762234006,x2=0.08970611241202392,xy=0.013821085063281554,y2=0.0021294244861385886 +a=pan,b=hat,i=622,x=0.7689737553993135,y=0.8899859079896967,x2=0.5913206364929231,xy=0.6843758059193049,y2=0.7920749164202449 +a=hat,b=hat,i=623,x=0.16401907387212689,y=0.47557547547898305,x2=0.026902256593870216,xy=0.07800344904435919,y2=0.2261720328770608 +a=dog,b=pan,i=624,x=0.4364532344594886,y=0.9894813135306753,x2=0.1904914258701493,xy=0.4318623197276865,y2=0.9790732698263904 +a=dog,b=dog,i=625,x=0.05594189959864382,y=0.15862700962402898,x2=0.0031294961307047455,xy=0.008873896246020536,y2=0.025162528182261782 +a=dog,b=hat,i=626,x=0.25591635834238546,y=0.7020347860903682,x2=0.06549318246722824,xy=0.1796621858859226,y2=0.492852840880949 +a=wye,b=wye,i=627,x=0.1099722490913756,y=0.07528683687238935,x2=0.012093895570215561,xy=0.008279462777832163,y2=0.005668107806249764 +a=dog,b=cat,i=628,x=0.8543574585850832,y=0.19910931595552905,x2=0.7299266670399621,xy=0.17011052916038016,y2=0.0396445197002787 +a=pan,b=wye,i=629,x=0.24343751390915702,y=0.5782313367627924,x2=0.05926182317827102,xy=0.14076319908590273,y2=0.3343514788144858 +a=hat,b=pan,i=630,x=0.2886803795666991,y=0.6275237652895367,x2=0.08333636154677347,xy=0.18115379875090765,y2=0.3937860760031575 +a=hat,b=wye,i=631,x=0.18174335965195643,y=0.30171923538713774,x2=0.033030648777580385,xy=0.054835467510877874,y2=0.09103449700259904 +a=dog,b=dog,i=632,x=0.8032872688215081,y=0.9598123853927985,x2=0.6452704362507179,xy=0.7710050696432379,y2=0.9212398151534139 +a=wye,b=hat,i=633,x=0.8167281874382986,y=0.6275501410033091,x2=0.6670449321562485,xy=0.5125378891882814,y2=0.3938191794732731 +a=hat,b=pan,i=634,x=0.5014128775886096,y=0.17897332371251284,x2=0.25141487381169003,xy=0.08973952925428881,y2=0.03203145060070391 +a=cat,b=wye,i=635,x=0.642248921041283,y=0.8563744957128003,x2=0.4124836765786921,xy=0.5500055958788188,y2=0.7333772769073531 +a=dog,b=dog,i=636,x=0.6813161263570021,y=0.2562808134680652,x2=0.4641916640341105,xy=0.1746082510916836,y2=0.06567985535185322 +a=dog,b=dog,i=637,x=0.7298771870554595,y=0.33815675098998677,x2=0.5327207081839902,xy=0.246812898196385,y2=0.11434998824010391 +a=cat,b=dog,i=638,x=0.25489438523989205,y=0.00429655201835788,x2=0.0649711476268225,xy=0.0010951669853705491,y2=1.846035924645517e-05 +a=hat,b=dog,i=639,x=0.8948762266962884,y=0.018630792419090936,x2=0.8008034611061869,xy=0.01667225322035791,y2=0.0003471064261632563 +a=cat,b=hat,i=640,x=0.5939327381286611,y=0.7638047567608417,x2=0.3527560974210087,xy=0.45364865057866266,y2=0.5833977064504885 +a=wye,b=dog,i=641,x=0.7876157448124265,y=0.033865934334884495,x2=0.6203385614764333,xy=0.026673343094938778,y2=0.0011469015083747085 +a=cat,b=cat,i=642,x=0.9630354820480607,y=0.39868798939322136,x2=0.9274373396835406,xy=0.38395068005207306,y2=0.1589521128864094 +a=cat,b=dog,i=643,x=0.4804040254282608,y=0.4342650603699365,x2=0.23078802764767703,xy=0.20862268310456417,y2=0.1885861426581046 +a=dog,b=dog,i=644,x=0.7056252629336117,y=0.9248527997726413,x2=0.4979070116901287,xy=0.652599500014457,y2=0.8553527012472935 +a=pan,b=wye,i=645,x=0.06666631805239998,y=0.34446560525480874,x2=0.004444397962663751,xy=0.02296425359802954,y2=0.11865655320356172 +a=dog,b=hat,i=646,x=0.30689417080562087,y=0.14426701009501386,x2=0.0941840320744696,xy=0.04427470443771541,y2=0.02081297020175483 +a=wye,b=wye,i=647,x=0.7262466157792433,y=0.43930333429170987,x2=0.5274341469308039,xy=0.3190425598298919,y2=0.1929874195198138 +a=pan,b=dog,i=648,x=0.9211909548648852,y=0.2920994341508264,x2=0.848592775324879,xy=0.26907935666089244,y2=0.08532207943123296 +a=cat,b=hat,i=649,x=0.6502493058776962,y=0.8191483030801362,x2=0.4228241597944258,xy=0.5326506154887514,y2=0.6710039424390667 +a=pan,b=dog,i=650,x=0.9336485825609395,y=0.412457787338537,x2=0.8716996757180515,xy=0.3850906285148465,y2=0.1701214263362018 +a=dog,b=wye,i=651,x=0.21435132141768964,y=0.0361802627461133,x2=0.04594648899350969,xy=0.007755287128868595,y2=0.001309011412377794 +a=pan,b=pan,i=652,x=0.17653494010523307,y=0.632055185075695,x2=0.03116458507795823,xy=0.11157982424053983,y2=0.3994937569810711 +a=dog,b=wye,i=653,x=0.7934904799393186,y=0.7063162386528442,x2=0.6296271417543302,xy=0.5604552111975797,y2=0.4988826289847016 +a=dog,b=hat,i=654,x=0.7166810357882388,y=0.244962427366476,x2=0.5136317070585029,xy=0.17555992617420724,y2=0.06000659082127603 +a=pan,b=wye,i=655,x=0.37149843757026557,y=0.7652342292255708,x2=0.13801108911714852,xy=0.28428332053258604,y2=0.5855834255784534 +a=pan,b=wye,i=656,x=0.9878298247617573,y=0.5834552678172099,x2=0.9758077626888442,xy=0.5763545149641986,y2=0.3404200495436521 +a=hat,b=pan,i=657,x=0.8018928767440677,y=0.27012322572904324,x2=0.6430321857728766,xy=0.21660989055524965,y2=0.07296655707826365 +a=cat,b=wye,i=658,x=0.9756650391067915,y=0.538576785847527,x2=0.951922268535257,xy=0.5254705408259375,y2=0.290064954253853 +a=pan,b=wye,i=659,x=0.6546101034582225,y=0.9183027095534713,x2=0.4285143875495847,xy=0.6011302317067638,y2=0.843279866373247 +a=hat,b=hat,i=660,x=0.6056079386753953,y=0.7621213262550391,x2=0.36676097538666136,xy=0.4615467254138727,y2=0.5808289159327398 +a=cat,b=hat,i=661,x=0.6155376028946405,y=0.9607198669196126,x2=0.3788865405772802,xy=0.5913592039369564,y2=0.9229826626940382 +a=hat,b=cat,i=662,x=0.273576290769719,y=0.8358467433466826,x2=0.07484398687131784,xy=0.22866785169673476,y2=0.6986397783632552 +a=cat,b=cat,i=663,x=0.9116283500250337,y=0.30755866947242627,x2=0.8310662485693654,xy=0.28037920238704267,y2=0.09459233516764916 +a=dog,b=cat,i=664,x=0.681440375153455,y=0.40326893190957636,x2=0.4643609848892815,xy=0.2748037322481948,y2=0.16262583144349052 +a=dog,b=wye,i=665,x=0.556701883952789,y=0.2077252598258471,x2=0.30991698759658454,xy=0.11564104348963167,y2=0.04314978356971569 +a=dog,b=pan,i=666,x=0.18039318656861325,y=0.3971176762613682,x2=0.03254170176037851,xy=0.07163732306351114,y2=0.15770244879922882 +a=pan,b=dog,i=667,x=0.45876812529320365,y=0.5114974665166978,x2=0.21046819278504061,xy=0.23465873380608865,y2=0.2616296582530004 +a=cat,b=wye,i=668,x=0.5999638685903643,y=0.34651837096344573,x2=0.35995664361391594,xy=0.20789850238085988,y2=0.1200749814151602 +a=cat,b=pan,i=669,x=0.3953298944912743,y=0.44132156645350873,x2=0.15628572547848207,xy=0.1744676083027895,y2=0.19476472501697872 +a=pan,b=dog,i=670,x=0.5742369662562881,y=0.45470709356379424,x2=0.3297480934152253,xy=0.26110962194328735,y2=0.20675854093723314 +a=wye,b=wye,i=671,x=0.204845400414845,y=0.9834017236215821,x2=0.04196163807111818,xy=0.20144531984391173,y2=0.9670789500218985 +a=cat,b=pan,i=672,x=0.010200084965239498,y=0.5193786713232798,x2=0.00010404173329810484,xy=0.005297706576630652,y2=0.2697542042255355 +a=pan,b=dog,i=673,x=0.37805567579664534,y=0.796925254923346,x2=0.14292609400205822,xy=0.3012821158094594,y2=0.63508986193464 +a=dog,b=dog,i=674,x=0.010584874037750769,y=0.918376672813548,x2=0.00011203955839505027,xy=0.009720901400940056,y2=0.8434157131680825 +a=hat,b=dog,i=675,x=0.7808052633453111,y=0.32819076493831556,x2=0.6096568592677406,xy=0.25625307664516056,y2=0.1077091781907967 +a=cat,b=wye,i=676,x=0.18383855808326421,y=0.6419376756640074,x2=0.03379661543813371,xy=0.11801289667339325,y2=0.41208397943690833 +a=cat,b=dog,i=677,x=0.09370495191840922,y=0.6379280422695233,x2=0.008780618014031384,xy=0.0597770165282706,y2=0.40695218711382664 +a=dog,b=wye,i=678,x=0.07129586318391401,y=0.7205145584323225,x2=0.005083100107139385,xy=0.05136970738000908,y2=0.5191412289129247 +a=dog,b=wye,i=679,x=0.2806511819369465,y=0.8024798522027793,x2=0.07876508592260505,xy=0.22521691900129615,y2=0.6439739131913945 +a=dog,b=dog,i=680,x=0.307464788040163,y=0.892726683412014,x2=0.09453459588458235,xy=0.2744820204930726,y2=0.7969609312758142 +a=wye,b=wye,i=681,x=0.4638094536373415,y=0.6763233986299853,x2=0.21511920928336922,xy=0.31368518600072337,y2=0.45741333953441393 +a=wye,b=cat,i=682,x=0.6549236504388642,y=0.6724922085564017,x2=0.42892498790416766,xy=0.4404310521194526,y2=0.45224577056906684 +a=dog,b=wye,i=683,x=0.29501824964374734,y=0.4562380927618723,x2=0.08703576762286043,xy=0.1345985635474092,y2=0.20815319728699083 +a=hat,b=dog,i=684,x=0.059282719226964375,y=0.2642650422733903,x2=0.0035144407989430916,xy=0.01566635030259527,y2=0.06983601256775678 +a=cat,b=cat,i=685,x=0.41255038540002265,y=0.7545729508782292,x2=0.1701978204937072,xy=0.3112993616972458,y2=0.5693803381970785 +a=hat,b=cat,i=686,x=0.5632576154489349,y=0.09067560686771681,x2=0.31725914136122024,xy=0.05107372610369524,y2=0.00822206568082873 +a=dog,b=dog,i=687,x=0.9445088668225828,y=0.12938833313358844,x2=0.8920969995064795,xy=0.12220842790806846,y2=0.01674134075108846 +a=cat,b=wye,i=688,x=0.44107001651763333,y=0.9027399918597477,x2=0.19454275947086533,xy=0.3981715431207071,y2=0.8149394929029374 +a=dog,b=pan,i=689,x=0.49128825186385117,y=0.809215546212808,x2=0.24136414641943885,xy=0.3975580910799419,y2=0.6548298002324932 +a=wye,b=dog,i=690,x=0.34429686601523735,y=0.2844786708909688,x2=0.1185403319479143,xy=0.09794511483594068,y2=0.08092811419189214 +a=pan,b=cat,i=691,x=0.7667096709438219,y=0.20657770046533896,x2=0.5878437195187837,xy=0.15838512074811145,y2=0.04267434632954731 +a=hat,b=wye,i=692,x=0.39986680014905984,y=0.9398657414231609,x2=0.15989345786144815,xy=0.37582110659260304,y2=0.883347611900908 +a=dog,b=dog,i=693,x=0.6622827912308988,y=0.9108718138179128,x2=0.43861849556059035,xy=0.603254727308879,y2=0.8296874612079345 +a=hat,b=dog,i=694,x=0.20043426609309134,y=0.469483028263054,x2=0.040173895024276145,xy=0.09410048621306728,y2=0.22041431382704754 +a=cat,b=cat,i=695,x=0.014453292624752367,y=0.331690589927086,x2=0.00020889766769672117,xy=0.004794021157092914,y2=0.11001864744617833 +a=cat,b=pan,i=696,x=0.17586054638409654,y=0.40705795940745815,x2=0.03092693177451297,xy=0.07158543515139099,y2=0.16569618231696384 +a=wye,b=dog,i=697,x=0.2462627216963228,y=0.5149541111764933,x2=0.060645328097280536,xy=0.12681400096703402,y2=0.26517773661757216 +a=pan,b=cat,i=698,x=0.8881694396830215,y=0.21621369618476227,x2=0.7888449535868525,xy=0.19203439739221537,y2=0.046748362417876686 +a=wye,b=wye,i=699,x=0.34064759605569916,y=0.5117005632025989,x2=0.11604078469852679,xy=0.17430956675531267,y2=0.26183746638185695 +a=wye,b=cat,i=700,x=0.6171058843980554,y=0.19037770326108672,x2=0.3808196725587061,xy=0.11748320094060347,y2=0.03624366989896639 +a=cat,b=dog,i=701,x=0.16966649099972952,y=0.7746664751435653,x2=0.0287867181681613,xy=0.13143494253273794,y2=0.6001081477113561 +a=pan,b=cat,i=702,x=0.9666068626696498,y=0.7506852103873074,x2=0.9343288269600633,xy=0.7256174760649812,y2=0.563528285094236 +a=dog,b=wye,i=703,x=0.05236716064893443,y=0.612791909364745,x2=0.0027423195144313066,xy=0.03209017236207087,y2=0.37551392418288987 +a=pan,b=pan,i=704,x=0.11218932047414909,y=0.026881826389739016,x2=0.012586443628451328,xy=0.003015853835768869,y2=0.000722632590048069 +a=hat,b=hat,i=705,x=0.9071556729941082,y=0.9106992104876415,x2=0.8229314150453932,xy=0.8261459551851194,y2=0.8293730519828135 +a=cat,b=hat,i=706,x=0.9743694755987752,y=0.4678325205552769,x2=0.9493958749786321,xy=0.4558417277214984,y2=0.21886726728910358 +a=dog,b=wye,i=707,x=0.7500470499024816,y=0.23854032279188464,x2=0.5625705770674158,xy=0.17891646539283876,y2=0.056901485597656516 +a=cat,b=pan,i=708,x=0.7641611039700442,y=0.19825719293654487,x2=0.5839421928207167,xy=0.15150043542439218,y2=0.039305914551078375 +a=hat,b=pan,i=709,x=0.3300583003504418,y=0.8415214690644649,x2=0.10893848163022246,xy=0.27775114578782417,y2=0.7081583828964152 +a=dog,b=hat,i=710,x=0.7754192632904059,y=0.6571707682086041,x2=0.6012750338818358,xy=0.5095828729403059,y2=0.43187341858788686 +a=wye,b=hat,i=711,x=0.37832133923590616,y=0.7488676293849656,x2=0.1431270357212496,xy=0.2833126044593384,y2=0.5608027263406583 +a=hat,b=cat,i=712,x=0.9631299491774535,y=0.8172661823041355,x2=0.9276192990025642,xy=0.7871335366270336,y2=0.6679240127379764 +a=hat,b=wye,i=713,x=0.2704894268616752,y=0.15580537884000922,x2=0.07316453004395754,xy=0.04214370762440027,y2=0.024275316075478795 +a=dog,b=wye,i=714,x=0.951884509254984,y=0.18535688215871748,x2=0.9060841189596017,xy=0.17643834481068468,y2=0.03435717376360068 +a=wye,b=cat,i=715,x=0.9648431191772672,y=0.20702769835854917,x2=0.9309222446237182,xy=0.19974925024035298,y2=0.04286046788763842 +a=pan,b=pan,i=716,x=0.54062796998219,y=0.26214674180539355,x2=0.29227860192706373,xy=0.1417238608596952,y2=0.06872091423918367 +a=hat,b=dog,i=717,x=0.9563794498766638,y=0.7787136742425006,x2=0.9146616521463901,xy=0.7447457553834783,y2=0.6063949864522553 +a=cat,b=pan,i=718,x=0.6876102509763913,y=0.09858588204177132,x2=0.4728078572478158,xy=0.06778866309347129,y2=0.009719176137954049 +a=wye,b=hat,i=719,x=0.38908047655525646,y=0.9452665319783746,x2=0.15138361723646548,xy=0.36778475273388056,y2=0.8935288164784235 +a=pan,b=cat,i=720,x=0.2592860483524986,y=0.9088051651455961,x2=0.06722925487025423,xy=0.23564049999294148,y2=0.8259268281953142 +a=pan,b=hat,i=721,x=0.6758674765249959,y=0.17012810645455811,x2=0.4567968458242659,xy=0.11498405399541806,y2=0.02894357260581346 +a=hat,b=pan,i=722,x=0.7621741457805322,y=0.6022016456156329,x2=0.580909428496284,xy=0.45898252483472585,y2=0.36264682198217635 +a=wye,b=hat,i=723,x=0.03908932355981043,y=0.6767758558560469,x2=0.0015279752163635508,xy=0.026454710407024642,y2=0.45802555906968484 +a=pan,b=wye,i=724,x=0.6866208924567617,y=0.025161390654418136,x2=0.47144824995811996,xy=0.017276336506589805,y2=0.0006330955796642403 +a=cat,b=pan,i=725,x=0.4409277411269419,y=0.9047781220249766,x2=0.19441727289530747,xy=0.39894177356554955,y2=0.8186234500950436 +a=hat,b=wye,i=726,x=0.5379539711810011,y=0.9219555713213392,x2=0.28939447510940935,xy=0.49596966084476307,y2=0.850002075490457 +a=wye,b=hat,i=727,x=0.8812388237141883,y=0.6434778499253834,x2=0.7765818644211662,xy=0.5670576635543798,y2=0.4140637433445942 +a=cat,b=hat,i=728,x=0.5073505851490089,y=0.47505404750912783,x2=0.2574046162510417,xy=0.24101894898116108,y2=0.2256763480548047 +a=pan,b=hat,i=729,x=0.7505898109290352,y=0.019209876435152262,x2=0.5633850642704848,xy=0.014418737521431066,y2=0.0003690193526538182 +a=dog,b=cat,i=730,x=0.5676893229947293,y=0.7702760275269791,x2=0.32227116744221407,xy=0.43727747658586025,y2=0.5933251585827435 +a=cat,b=hat,i=731,x=0.25757631638687406,y=0.49888611501918945,x2=0.06634555876343105,xy=0.12850124780320119,y2=0.24888735575893992 +a=hat,b=hat,i=732,x=0.9356142965615097,y=0.2712958876781135,x2=0.8753741119302887,xy=0.25382831110998855,y2=0.0736014586710556 +a=pan,b=hat,i=733,x=0.037564291393333726,y=0.28968131412477416,x2=0.0014110759878832864,xy=0.010881673294986858,y2=0.08391526375305608 +a=dog,b=dog,i=734,x=0.7289015723659092,y=0.6922902279093466,x2=0.5312975021974948,xy=0.5046114356566764,y2=0.47926575965877505 +a=wye,b=pan,i=735,x=0.2605606600733885,y=0.09176219878728087,x2=0.06789185757787992,xy=0.023909619085799395,y2=0.008420301126276451 +a=pan,b=dog,i=736,x=0.1202212587887802,y=0.7482722739652927,x2=0.014453151064758862,xy=0.0899582346928505,y2=0.5599113959851901 +a=pan,b=hat,i=737,x=0.5511991289770363,y=0.9437419681770345,x2=0.30382047978504345,xy=0.5201897508382552,y2=0.8906489024986628 +a=wye,b=dog,i=738,x=0.8484721809277587,y=0.12265385134433548,x2=0.7199050418083073,xy=0.10406838074931743,y2=0.015043967249598347 +a=cat,b=wye,i=739,x=0.1736721121765168,y=0.6541724760808302,x2=0.03016200254785263,xy=0.11361151564869969,y2=0.42794162846172434 +a=pan,b=cat,i=740,x=0.9191072314756276,y=0.09237768563237059,x2=0.8447581029507928,xy=0.08490499889169399,y2=0.008533636802793088 +a=pan,b=cat,i=741,x=0.16333728979866036,y=0.6322918687716038,x2=0.026679070238771557,xy=0.10327684020688398,y2=0.3997930073146871 +a=pan,b=hat,i=742,x=0.6592900853719631,y=0.56407525201075,x2=0.4346634166697704,xy=0.371889221054379,y2=0.31818088993099114 +a=hat,b=hat,i=743,x=0.8830864459548787,y=0.08686698218682332,x2=0.779841671029219,xy=0.07671105457018756,y2=0.007545872594245879 +a=hat,b=dog,i=744,x=0.8975631160557165,y=0.791571765557401,x2=0.8056195473036476,xy=0.710485620475426,y2=0.6265858600276611 +a=hat,b=pan,i=745,x=0.35169238363466515,y=0.32903226829772925,x2=0.12368753270663249,xy=0.11571814273034907,y2=0.10826223358114888 +a=dog,b=wye,i=746,x=0.3289380868423477,y=0.8875023240465095,x2=0.10820026497550389,xy=0.29193331653999616,y2=0.7876603751879556 +a=cat,b=wye,i=747,x=0.8902092321224123,y=0.4250494265494692,x2=0.792472476955975,xy=0.37838292362267467,y2=0.1806670150100326 +a=cat,b=dog,i=748,x=0.986548192318023,y=0.22327955924073406,x2=0.973277335765959,xy=0.2202760455505111,y2=0.04985376157473647 +a=pan,b=pan,i=749,x=0.4244814446882297,y=0.7353411946490032,x2=0.18018449688460658,xy=0.31213869264337757,y2=0.5407266725478231 +a=dog,b=wye,i=750,x=0.5129794588106171,y=0.6033400789231494,x2=0.26314792516163366,xy=0.30950106716475223,y2=0.3640192508349922 +a=wye,b=hat,i=751,x=0.697578206130514,y=0.3781819268120694,x2=0.4866153536682659,xy=0.2638114700965447,y2=0.1430215697672894 +a=dog,b=pan,i=752,x=0.686527845255024,y=0.3414791871406174,x2=0.47132048231050616,xy=0.23443497054708518,y2=0.11660803525021682 +a=dog,b=hat,i=753,x=0.057067042691808956,y=0.34766396030144486,x2=0.003256647361588746,xy=0.019840154064925928,y2=0.12087022929248463 +a=hat,b=wye,i=754,x=0.6758002251578562,y=0.5221923775790305,x2=0.45670594432340916,xy=0.35289772634362504,y2=0.27268487920164075 +a=wye,b=cat,i=755,x=0.5831437743121346,y=0.5906129897660252,x2=0.34005666151900177,xy=0.34441228800993406,y2=0.348823703680363 +a=pan,b=pan,i=756,x=0.9965826588776338,y=0.8864833103309704,x2=0.9931769959756142,xy=0.883453894460285,y2=0.7858526594953555 +a=wye,b=cat,i=757,x=0.8211650666566518,y=0.42668670197381964,x2=0.6743120666972233,xy=0.35038021406783854,y2=0.18206154164129518 +a=hat,b=pan,i=758,x=0.3400297232695506,y=0.3517706078504709,x2=0.11562021270676717,xy=0.11961246244175722,y2=0.12374256054748976 +a=pan,b=dog,i=759,x=0.4690931525792873,y=0.8364915573615876,x2=0.22004838579677452,xy=0.3923924617487049,y2=0.6997181255372142 +a=hat,b=wye,i=760,x=0.42710815754180076,y=0.7028076921804566,x2=0.1824213782387517,xy=0.30017489851339985,y2=0.4939386521880194 +a=dog,b=wye,i=761,x=0.04685691053834329,y=0.49240339911968856,x2=0.0021955700651983064,xy=0.02307250202132739,y2=0.2424611074646233 +a=wye,b=hat,i=762,x=0.5214034880091322,y=0.9057172555953829,x2=0.27186159730808923,xy=0.4722441362174913,y2=0.8203237470832321 +a=cat,b=wye,i=763,x=0.3293907183268989,y=0.3943264033522689,x2=0.10849824531991047,xy=0.12988745725546633,y2=0.15549331238073624 +a=cat,b=wye,i=764,x=0.7863068915914236,y=0.9484380633526672,x2=0.6182785277641668,xy=0.7457633854618255,y2=0.8995347600161581 +a=dog,b=cat,i=765,x=0.9394516863208765,y=0.37368521011114253,x2=0.8825694709311386,xy=0.3510592007920839,y2=0.13964063625580875 +a=cat,b=wye,i=766,x=0.3868441976616561,y=0.24369088426850782,x2=0.14964843326449048,xy=0.09427040460231041,y2=0.05938524707556728 +a=pan,b=cat,i=767,x=0.2275114758829052,y=0.6533572385893692,x2=0.05176147165841776,xy=0.14864626963024682,y2=0.42687568121712594 +a=hat,b=wye,i=768,x=0.08806251129519171,y=0.052816238168512664,x2=0.007755005895615768,xy=0.004651130570284183,y2=0.002789555014273054 +a=hat,b=pan,i=769,x=0.8552650886303925,y=0.7058684713842834,x2=0.7314783718299531,xy=0.6037046607398788,y2=0.498250298894385 +a=hat,b=pan,i=770,x=0.9043801066452809,y=0.47986698695818764,x2=0.8179033772957297,xy=0.43398215684079533,y2=0.23027232517232943 +a=pan,b=hat,i=771,x=0.5753128246648473,y=0.30621839997259126,x2=0.3309848462238454,xy=0.17617137265258148,y2=0.09376970848177388 +a=cat,b=pan,i=772,x=0.7454609561562912,y=0.10764510772148561,x2=0.5557120371534519,xy=0.08024522492760562,y2=0.01158746921637024 +a=pan,b=wye,i=773,x=0.889983027502424,y=0.0930802888208736,x2=0.7920697892423804,xy=0.08283987724560112,y2=0.008663940166977246 +a=wye,b=hat,i=774,x=0.3241419410731854,y=0.8004381936154861,x2=0.1050679979626924,xy=0.25945558978763783,y2=0.6407013017984223 +a=hat,b=dog,i=775,x=0.08644741476164519,y=0.16743346394966108,x2=0.007473155518971911,xy=0.01447419010303532,y2=0.028033964850182454 +a=dog,b=hat,i=776,x=0.8465506444792363,y=0.08317373752662649,x2=0.7166479936682104,xy=0.0704107811069125,y2=0.0069178706141481555 +a=wye,b=cat,i=777,x=0.196023624794873,y=0.21174928859580733,x2=0.03842526147772115,xy=0.041507863098285816,y2=0.0448377612208305 +a=cat,b=cat,i=778,x=0.5764737723226592,y=0.6395255247768671,x2=0.33232201017591706,xy=0.3686696917647488,y2=0.4089928968411272 +a=dog,b=pan,i=779,x=0.3758546172772318,y=0.14144998658957741,x2=0.14126669332861438,xy=0.053164630573495186,y2=0.02000809870619163 +a=hat,b=dog,i=780,x=0.23173454859220277,y=0.3505016268111515,x2=0.05370090101123199,xy=0.0812233362699149,y2=0.12285139039726371 +a=pan,b=dog,i=781,x=0.0626485574741863,y=0.8347422505981941,x2=0.003924841753596423,xy=0.05229539786273258,y2=0.6967946249337382 +a=wye,b=dog,i=782,x=0.3168395421741931,y=0.6695453552576639,x2=0.10038729548515228,xy=0.21213844382469568,y2=0.4482909827471114 +a=cat,b=dog,i=783,x=0.640218961180953,y=0.3278005809165341,x2=0.4098803182556186,xy=0.2098641473888964,y2=0.10745322084921721 +a=dog,b=pan,i=784,x=0.3713482863553802,y=0.09822192559310827,x2=0.13789954977907745,xy=0.036474543751526416,y2=0.009647546667218098 +a=wye,b=dog,i=785,x=0.6125629193634933,y=0.095998056773002,x2=0.3752333301791256,xy=0.05880484991009247,y2=0.009215626904192514 +a=pan,b=pan,i=786,x=0.11507645846382175,y=0.8192902299547586,x2=0.013242591292575693,xy=0.09428101811720375,y2=0.6712364808993213 +a=pan,b=cat,i=787,x=0.37810148287672585,y=0.08810292713511803,x2=0.142960731353579,xy=0.03331184739556825,y2=0.007762125769775916 +a=pan,b=dog,i=788,x=0.6966646475521092,y=0.32832780568398645,x2=0.48534163114890455,xy=0.22873437502839183,y2=0.10779914798526156 +a=pan,b=dog,i=789,x=0.8625991513242034,y=0.209258758236743,x2=0.744077295865236,xy=0.18050642726217117,y2=0.04378922789878366 +a=dog,b=dog,i=790,x=0.954622083079162,y=0.9954847001142825,x2=0.9113033215023985,xy=0.9503116780965312,y2=0.9909897881616229 +a=hat,b=wye,i=791,x=0.8437545927205472,y=0.1455640910039323,x2=0.7119218127370165,xy=0.12282037031975958,y2=0.021188904589801084 +a=hat,b=dog,i=792,x=0.6291498056715833,y=0.10598781312134209,x2=0.395829477976591,xy=0.06668221202884846,y2=0.011233416530244534 +a=pan,b=wye,i=793,x=0.7262149840747153,y=0.9926177938593836,x2=0.527388203094639,xy=0.7208539153598713,y2=0.9852900846862699 +a=hat,b=pan,i=794,x=0.6392479219184836,y=0.6825404700858696,x2=0.4086379056770997,xy=0.43631257712765703,y2=0.46586149330503984 +a=dog,b=wye,i=795,x=0.598504884658865,y=0.3787646874120393,x2=0.35820809696052125,xy=0.22669251555239361,y2=0.14346268843033982 +a=wye,b=hat,i=796,x=0.48049061733461884,y=0.34369988394774387,x2=0.23087123334660312,xy=0.16514456941588831,y2=0.1181296102256926 +a=hat,b=dog,i=797,x=0.05004104718155633,y=0.7894829047147601,x2=0.002504106403026747,xy=0.039506551283863454,y2=0.623283256836855 +a=cat,b=cat,i=798,x=0.6549250573390932,y=0.19493923807461988,x2=0.42892683073061455,xy=0.12767059167365957,y2=0.038001306541113326 +a=wye,b=pan,i=799,x=0.42197995250076836,y=0.8251800230215005,x2=0.17806708031255072,xy=0.3482094269191957,y2=0.6809220703937641 +a=dog,b=hat,i=800,x=0.7480461467642859,y=0.1888136856077568,x2=0.5595730376888957,xy=0.1412413499752458,y2=0.035650607872784824 +a=cat,b=dog,i=801,x=0.3491691308786241,y=0.1322545421642024,x2=0.12191908195853374,xy=0.0461792035422249,y2=0.017491263923062793 +a=wye,b=wye,i=802,x=0.41295400205621124,y=0.8799107119795011,x2=0.17053100781424133,xy=0.3633626499640652,y2=0.7742428610562725 +a=cat,b=cat,i=803,x=0.5378634245510693,y=0.15722757458263636,x2=0.2892970634698038,xy=0.08456696169887545,y2=0.024720510209138482 +a=wye,b=hat,i=804,x=0.7516383220207629,y=0.3708676090408751,x2=0.564960167130188,xy=0.27875830735133567,y2=0.1375427834356954 +a=hat,b=wye,i=805,x=0.6661935417293913,y=0.6643471366205853,x2=0.4438138350419502,xy=0.4425837718830475,y2=0.44135711793597066 +a=hat,b=dog,i=806,x=0.17312553589325408,y=0.026879444221558524,x2=0.029972451178326406,xy=0.004653518185370151,y2=0.0007225045216598759 +a=hat,b=cat,i=807,x=0.6774379517015529,y=0.04542050650851759,x2=0.45892217840559546,xy=0.030769574894377205,y2=0.0020630224114902888 +a=wye,b=wye,i=808,x=0.8524737347853896,y=0.926916442954667,x2=0.7267114684989507,xy=0.7901719219595535,y2=0.8591740922197325 +a=hat,b=wye,i=809,x=0.7848280312957139,y=0.31572042431105607,x2=0.615955038707506,xy=0.24778623905189356,y2=0.09967938632715329 +a=pan,b=hat,i=810,x=0.5101794254127774,y=0.9065235870380484,x2=0.2602830461145117,xy=0.4624896827582014,y2=0.8217850138563301 +a=dog,b=hat,i=811,x=0.6080377557256639,y=0.06528218831026511,x2=0.3697099123879021,xy=0.03969403526903377,y2=0.004261764110576914 +a=dog,b=dog,i=812,x=0.17203162334805688,y=0.7869545622144918,x2=0.02959487943176771,xy=0.13538107083891845,y2=0.6192974829902024 +a=dog,b=cat,i=813,x=0.5274589853025814,y=0.3982850231684436,x2=0.2782129811764288,xy=0.21007901418164238,y2=0.15863095968028768 +a=cat,b=hat,i=814,x=0.45066542079445837,y=0.19549042604288147,x2=0.20309932149984622,xy=0.08810077511390312,y2=0.03821650667442731 +a=pan,b=cat,i=815,x=0.915169604952166,y=0.3208394583949399,x2=0.8375354058283037,xy=0.29362252039236403,y2=0.10293795806315836 +a=cat,b=hat,i=816,x=0.6289371252503521,y=0.09961353155285746,x2=0.39556190751817705,xy=0.0626506481708894,y2=0.009922855668432129 +a=cat,b=wye,i=817,x=0.5918008776228343,y=0.7901726001168455,x2=0.3502282787551569,xy=0.4676248382226661,y2=0.6243727379754163 +a=hat,b=hat,i=818,x=0.9957052214494239,y=0.026702922142899044,x2=0.9914288880216462,xy=0.026588239005642018,y2=0.0007130460509697281 +a=wye,b=pan,i=819,x=0.7698305878822377,y=0.8257549912538609,x2=0.5926391340391117,xy=0.6356914503636517,y2=0.6818713055806639 +a=cat,b=hat,i=820,x=0.11840704068628438,y=0.2731009565650273,x2=0.014020227284083404,xy=0.032337076075458375,y2=0.07458413247673293 +a=pan,b=cat,i=821,x=0.16575861713034812,y=0.8385594122473529,x2=0.027475919152965336,xy=0.1389984485557587,y2=0.7031818878686259 +a=hat,b=cat,i=822,x=0.6827428856236868,y=0.4526975089901234,x2=0.46613784786975865,xy=0.30907600360257176,y2=0.20493503464586285 +a=dog,b=wye,i=823,x=0.5603831774536844,y=0.7242975425940232,x2=0.3140293055730875,xy=0.40588415834073405,y2=0.5246069302077409 +a=wye,b=pan,i=824,x=0.1165595975998206,y=0.026098503614706003,x2=0.013586139792632103,xy=0.003042031079287595,y2=0.0006811318909268223 +a=dog,b=dog,i=825,x=0.36065738947447856,y=0.7861605167349159,x2=0.13007375258254572,xy=0.2835345996735219,y2=0.61804835807291 +a=wye,b=cat,i=826,x=0.03064375957521026,y=0.3106058617927957,x2=0.0009390400009032905,xy=0.009518131351429418,y2=0.0964760013800453 +a=hat,b=wye,i=827,x=0.8347298580535868,y=0.5084680264203864,x2=0.6967739359261611,xy=0.4244334435186765,y2=0.2585397338918427 +a=hat,b=hat,i=828,x=0.6392287649180021,y=0.13880595512059102,x2=0.40861341389859435,xy=0.08872875925499903,y2=0.019267093176939528 +a=cat,b=pan,i=829,x=0.5964934366651018,y=0.6420547661716093,x2=0.3558044199845438,xy=0.38298145400091155,y2=0.4122343227636799 +a=wye,b=wye,i=830,x=0.3817201787405874,y=0.10809811919145063,x2=0.14571029485774598,xy=0.04126323337928185,y2=0.011685203372729066 +a=pan,b=dog,i=831,x=0.9237617174839042,y=0.5487821002755663,x2=0.8533357106888125,xy=0.5069438954749813,y2=0.3011617935828617 +a=pan,b=pan,i=832,x=0.9755863704587128,y=0.4750574892881576,x2=0.9517687662248048,xy=0.4634596117338625,y2=0.22567961812876797 +a=cat,b=pan,i=833,x=0.30354198827116374,y=0.06172562221652489,x2=0.09213773864361131,xy=0.018736318094878683,y2=0.003810052438017151 +a=wye,b=dog,i=834,x=0.6698221461058869,y=0.8210265206550994,x2=0.44866170741389605,xy=0.549941746075048,y2=0.6740845476190184 +a=cat,b=cat,i=835,x=0.4686179347944489,y=0.029262329868421366,x2=0.21960276881101437,xy=0.013712852590213539,y2=0.0008562839493283052 +a=dog,b=cat,i=836,x=0.721094408698922,y=0.7293852684468619,x2=0.519977146256848,xy=0.5259556388643944,y2=0.5320028698273008 +a=hat,b=dog,i=837,x=0.26605798248684176,y=0.8721352584850544,x2=0.0707868500449686,xy=0.2320385473281738,y2=0.7606199090927925 +a=wye,b=pan,i=838,x=0.6672927305389438,y=0.6418074827778028,x2=0.4452795882301194,xy=0.42827346766312613,y2=0.4119168449495796 +a=cat,b=pan,i=839,x=0.17159163631914598,y=0.3164629353479077,x2=0.029443689654682057,xy=0.054302392910707584,y2=0.10014878944901401 +a=hat,b=pan,i=840,x=0.4788658406877069,y=0.9775625657328338,x2=0.22931249337754425,xy=0.4681213198644852,y2=0.955628569922161 +a=hat,b=cat,i=841,x=0.6679675997666049,y=0.29400987483784913,x2=0.4461807143379593,xy=0.196389070403118,y2=0.0864418065021677 +a=cat,b=wye,i=842,x=0.9129798969881031,y=0.6883855286504225,x2=0.8335322923044074,xy=0.6284821490353636,y2=0.4738746360553216 +a=dog,b=wye,i=843,x=0.2070630859227116,y=0.5799237603766771,x2=0.04287512155183625,xy=0.12008080342349792,y2=0.3363115678494257 +a=hat,b=hat,i=844,x=0.2186310315035832,y=0.10114133789610291,x2=0.04779952793632079,xy=0.02211263503187743,y2=0.010229570231413663 +a=pan,b=pan,i=845,x=0.8424144754998923,y=0.10454231850187046,x2=0.7096621485317587,xy=0.0880679624082959,y2=0.010929096357746526 +a=wye,b=pan,i=846,x=0.34342486536164973,y=0.6926478262192819,x2=0.11794063814866725,xy=0.23787248646239625,y2=0.47976101116629655 +a=dog,b=pan,i=847,x=0.3808673589411615,y=0.38470555294986253,x2=0.14505994510681558,xy=0.1465217879220133,y2=0.14799836247045947 +a=hat,b=wye,i=848,x=0.3596530917994194,y=0.8221046883234665,x2=0.1293503464408816,xy=0.29567249293833275,y2=0.675856118563424 +a=hat,b=cat,i=849,x=0.9802025016845907,y=0.3712601501962042,x2=0.96079694430873,xy=0.36391012799811623,y2=0.1378340991237081 +a=dog,b=cat,i=850,x=0.41192992606906487,y=0.3481696400454314,x2=0.16968626399126524,xy=0.14342149408340749,y2=0.12122209824936525 +a=cat,b=hat,i=851,x=0.26284256802170036,y=0.17651695062162687,x2=0.06908621556424219,xy=0.046396168600748085,y2=0.031158233856757856 +a=wye,b=hat,i=852,x=0.8950852588075826,y=0.7265214600566965,x2=0.8011776205346371,xy=0.650298649104111,y2=0.527833431922914 +a=dog,b=dog,i=853,x=0.08147261896577951,y=0.9636631059390952,x2=0.006637787641143095,xy=0.07851215704155552,y2=0.9286465817481838 +a=hat,b=hat,i=854,x=0.3065298229214011,y=0.38396348344713616,x2=0.0939605323402255,xy=0.11769625858933495,y2=0.1474279566208592 +a=pan,b=pan,i=855,x=0.6652309340751762,y=0.8209155852306491,x2=0.4425321956505314,xy=0.5460984415598547,y2=0.6739023980745791 +a=wye,b=pan,i=856,x=0.06993033483673339,y=0.9791078310667237,x2=0.004890251730377647,xy=0.06846933846776378,y2=0.958652144856184 +a=hat,b=wye,i=857,x=0.7946870008153237,y=0.8322385855071592,x2=0.6315274292648544,xy=0.6613691854794718,y2=0.6926210632069572 +a=pan,b=hat,i=858,x=0.48190390864045884,y=0.008804124502015287,x2=0.2322313771629517,xy=0.0042427420096784,y2=7.751260824698593e-05 +a=cat,b=cat,i=859,x=0.1978808319576767,y=0.49301100953578814,x2=0.03915682365626228,xy=0.09755742873123584,y2=0.243059855523497 +a=dog,b=dog,i=860,x=0.23181433510474192,y=0.707863271825844,x2=0.053737885960053584,xy=0.1640928537033752,y2=0.5010704115999887 +a=hat,b=pan,i=861,x=0.20656469678426048,y=0.17021804670475116,x2=0.04266897395757347,xy=0.035161039204776014,y2=0.028974183423980848 +a=pan,b=wye,i=862,x=0.7447132643699934,y=0.41838270080015394,x2=0.5545978461286117,xy=0.3115751468688169,y2=0.17504408432883115 +a=wye,b=hat,i=863,x=0.8931259653993054,y=0.5240494288838036,x2=0.7976739900704414,xy=0.46804215208880173,y2=0.2746278039134407 +a=dog,b=pan,i=864,x=0.19890854257784296,y=0.5819912477557206,x2=0.03956460831044157,xy=0.11576303088415071,y2=0.33871381246426063 +a=dog,b=pan,i=865,x=0.08348734276314873,y=0.46365140261253324,x2=0.006970136401651483,xy=0.038709023572527236,y2=0.21497262314456939 +a=wye,b=cat,i=866,x=0.992459292444092,y=0.7757136682861361,x2=0.9849754471586278,xy=0.7698642383664698,y2=0.6017316951659336 +a=dog,b=pan,i=867,x=0.20005683106815952,y=0.8281767420620922,x2=0.04002273565703412,xy=0.1656824145812947,y2=0.6858767160925813 +a=hat,b=hat,i=868,x=0.6641874034693073,y=0.7927732001674593,x2=0.44114490692730035,xy=0.5265499733592782,y2=0.6284893469037546 +a=cat,b=hat,i=869,x=0.849533915413141,y=0.2670454068905317,x2=0.7217078734371819,xy=0.2268641301088088,y2=0.07131324934132963 +a=dog,b=dog,i=870,x=0.818681824385546,y=0.15991198795909045,x2=0.670239929579246,xy=0.13091703804346763,y2=0.02557184389302829 +a=hat,b=dog,i=871,x=0.9657740236138191,y=0.9119721289248706,x2=0.9327194646872257,xy=0.8807589923754329,y2=0.8316931639357608 +a=wye,b=cat,i=872,x=0.7382755379424762,y=0.7473853438162121,x2=0.5450507699242527,xy=0.5517763167562366,y2=0.5585848521512776 +a=pan,b=wye,i=873,x=0.06836429475504757,y=0.2723717731023233,x2=0.004673676797355025,xy=0.018620504179322168,y2=0.07418638278290349 +a=hat,b=dog,i=874,x=0.5656097272439253,y=0.37894346154820757,x2=0.3199143635529476,xy=0.2143341079271506,y2=0.14359814705013788 +a=dog,b=hat,i=875,x=0.33534591909904754,y=0.579691758263101,x2=0.11245688545638494,xy=0.1943972654688825,y2=0.3360425345981656 +a=wye,b=cat,i=876,x=0.4354192326304044,y=0.17028091885454333,x2=0.1895899081444502,xy=0.07414358701924541,y2=0.02899559132594757 +a=dog,b=wye,i=877,x=0.15821476076382146,y=0.7823531529766005,x2=0.025031910523553257,xy=0.12377981693101425,y2=0.612076455972428 +a=hat,b=hat,i=878,x=0.7134099995531998,y=0.8070281607631373,x2=0.5089538274624966,xy=0.5757419598094495,y2=0.6512944522647323 +a=hat,b=dog,i=879,x=0.4841546493561141,y=0.7473067049010725,x2=0.23440572449314176,xy=0.3618120156728518,y2=0.5584673111900987 +a=dog,b=pan,i=880,x=0.1767701917760346,y=0.9667338935872557,x2=0.031247700700536046,xy=0.17088973576581182,y2=0.9345744210103755 +a=cat,b=wye,i=881,x=0.6961602259704199,y=0.8624291510214103,x2=0.48463906022318615,xy=0.6003888726585423,y2=0.7437840405315105 +a=wye,b=dog,i=882,x=0.9942189496990836,y=0.3298671968153588,x2=0.988471319940749,xy=0.32796021795794694,y2=0.10881236753482267 +a=pan,b=pan,i=883,x=0.3654591179142088,y=0.6790141016683621,x2=0.13356036686663159,xy=0.2481518946470285,y2=0.46106015026449276 +a=wye,b=wye,i=884,x=0.1431668343921907,y=0.7907269003628851,x2=0.020496742469880955,xy=0.11320586719370343,y2=0.625249030957496 +a=cat,b=dog,i=885,x=0.06557022118007017,y=0.10846466015020673,x2=0.004299453905603322,xy=0.007112051756270198,y2=0.011764582501499843 +a=hat,b=hat,i=886,x=0.17483412751180394,y=0.6237369473898733,x2=0.03056697214281372,xy=0.10905050499378445,y2=0.3890477795392376 +a=cat,b=pan,i=887,x=0.526277813412793,y=0.9120729790279264,x2=0.27696833689055056,xy=0.4800037730757093,y2=0.8318771190728762 +a=hat,b=pan,i=888,x=0.604852227423324,y=0.30299438896585484,x2=0.3658462170189565,xy=0.18326683106276634,y2=0.09180559974479174 +a=hat,b=pan,i=889,x=0.7560340628074265,y=0.1962826972512871,x2=0.5715875041251036,xy=0.14839640506169066,y2=0.03852689724024043 +a=pan,b=cat,i=890,x=0.22948163869543092,y=0.7460938106876837,x2=0.0526618224983403,xy=0.17121483029712825,y2=0.5566559743464692 +a=pan,b=pan,i=891,x=0.5174048680480675,y=0.5350818027132432,x2=0.26770779747983814,xy=0.2768539295277677,y2=0.28631253559485415 +a=pan,b=dog,i=892,x=0.3230292484624844,y=0.5125573163255617,x2=0.10434789536223746,xy=0.16557100468659405,y2=0.2627150025188619 +a=pan,b=hat,i=893,x=0.019755674152504676,y=0.713367718453797,x2=0.00039028666121994137,xy=0.014093060196688911,y2=0.5088935017319758 +a=pan,b=hat,i=894,x=0.585363891076839,y=0.5562416426860548,x2=0.3426508849766174,xy=0.32560377234168175,y2=0.3094047650580807 +a=hat,b=dog,i=895,x=0.7688318917927516,y=0.5818949738955219,x2=0.5911024778376213,xy=0.4473794136047879,y2=0.33860176064487013 +a=cat,b=hat,i=896,x=0.7953295771429987,y=0.9979287928502694,x2=0.6325491362784611,xy=0.7936822848364279,y2=0.9958618755995958 +a=cat,b=hat,i=897,x=0.2708161837458276,y=0.06760409558629299,x2=0.07334140537865386,xy=0.018308283172268014,y2=0.004570313740040639 +a=pan,b=pan,i=898,x=0.9450997160514841,y=0.613932095581323,x2=0.893213473280596,xy=0.580227049208801,y2=0.37691261798487474 +a=wye,b=cat,i=899,x=0.8795019445540828,y=0.47408779441071724,x2=0.773523670474413,xy=0.41696113707358207,y2=0.2247592368092185 +a=hat,b=wye,i=900,x=0.15229282083921347,y=0.8833697361238129,x2=0.023193103279164774,xy=0.13453086895828711,y2=0.7803420906994548 +a=cat,b=dog,i=901,x=0.9963591865818606,y=0.9423606044154952,x2=0.9927316286860669,xy=0.9389296452822133,y2=0.8880435087543374 +a=hat,b=pan,i=902,x=0.42866863763118523,y=0.6650814671398664,x2=0.1837568008885764,xy=0.28509956643259643,y2=0.44233335793291717 +a=hat,b=hat,i=903,x=0.8045428658324745,y=0.7226649410127849,x2=0.647289222961931,xy=0.5814149226790821,y2=0.5222446169690118 +a=hat,b=pan,i=904,x=0.7719231923698515,y=0.0550611942242798,x2=0.5958654149184628,xy=0.04250301282130249,y2=0.003031735109403863 +a=cat,b=wye,i=905,x=0.10385573852005647,y=0.7024043876290446,x2=0.010786014423546342,xy=0.07294872641694244,y2=0.49337192376053307 +a=dog,b=dog,i=906,x=0.8453563942836098,y=0.7146221102011221,x2=0.7146274333561858,xy=0.604110370354965,y2=0.5106847603883047 +a=dog,b=pan,i=907,x=0.3762010306955349,y=0.5720049995578428,x2=0.14152721549638278,xy=0.21518887039665943,y2=0.3271897195191677 +a=pan,b=pan,i=908,x=0.1558176335309317,y=0.5109657742766185,x2=0.02427913491917973,xy=0.07961747776308291,y2=0.2610860224821042 +a=hat,b=cat,i=909,x=0.19530910772058396,y=0.4313061117939153,x2=0.03814564755861067,xy=0.08423801184890403,y2=0.18602496207078537 +a=hat,b=wye,i=910,x=0.7853057534899444,y=0.23673344723772105,x2=0.6167051264644092,xy=0.18590813815929053,y2=0.056042725041054856 +a=dog,b=dog,i=911,x=0.6820089482250695,y=0.827544207784697,x2=0.46513620545906553,xy=0.5643925547609896,y2=0.6848294158380017 +a=wye,b=cat,i=912,x=0.5992184385943385,y=0.21072064560691928,x2=0.35906273715143705,xy=0.12626769624016912,y2=0.04440319048499687 +a=hat,b=pan,i=913,x=0.04143325240249729,y=0.7341534877432273,x2=0.0017167144046490474,xy=0.030418366759838836,y2=0.5389813435655451 +a=cat,b=hat,i=914,x=0.13661397645943585,y=0.44052415487054775,x2=0.018663378564059294,xy=0.06018175652329788,y2=0.19406153102441034 +a=pan,b=hat,i=915,x=0.6423493830531135,y=0.3296660920252046,x2=0.41261272990871556,xy=0.2117608108259211,y2=0.10867973223117065 +a=wye,b=cat,i=916,x=0.37164909661033596,y=0.40189957349793326,x2=0.13812305101127884,xy=0.14936561341858623,y2=0.16152326717782065 +a=cat,b=wye,i=917,x=0.22198485653121702,y=0.690292696414577,x2=0.049277276529185,xy=0.15323452517813682,y2=0.4765040067233074 +a=dog,b=pan,i=918,x=0.7073942058565554,y=0.46092951368502777,x2=0.5004065624794267,xy=0.3260588672890685,y2=0.2124560165859162 +a=cat,b=hat,i=919,x=0.14151997916254433,y=0.5385081787030932,x2=0.02002790450216698,xy=0.07620966622892145,y2=0.2899910585301226 +a=dog,b=wye,i=920,x=0.2666453213739709,y=0.3072922207317045,x2=0.07109972741062823,xy=0.08193803295272654,y2=0.09442850892222258 +a=hat,b=pan,i=921,x=0.4547526452692495,y=0.15519111136730102,x2=0.2067999683793799,xy=0.07057356841655484,y2=0.024084281047418027 +a=wye,b=cat,i=922,x=0.21525470102264654,y=0.16556905159493673,x2=0.04633458631234895,xy=0.03563951669967125,y2=0.027413110846046824 +a=hat,b=dog,i=923,x=0.41687782182269617,y=0.07019410239848023,x2=0.1737871183276356,xy=0.029262364512677733,y2=0.004927212011528328 +a=pan,b=hat,i=924,x=0.8780534717357373,y=0.7873355062590681,x2=0.7709778992271813,xy=0.6913226746915891,y2=0.6198971994162231 +a=hat,b=hat,i=925,x=0.46266864135659247,y=0.7145088994960574,x2=0.2140622716947552,xy=0.330580861767035,y2=0.5105229674590671 +a=wye,b=hat,i=926,x=0.22868151273613524,y=0.5201340517551178,x2=0.05229523426728718,xy=0.11894504178093561,y2=0.27053943179519563 +a=pan,b=hat,i=927,x=0.3746304958274238,y=0.17093794150208985,x2=0.1403480084039014,xy=0.06403856578064708,y2=0.029219779844971892 +a=pan,b=cat,i=928,x=0.33561226968517766,y=0.6701536560644064,x2=0.11263559556323642,xy=0.22491178954959534,y2=0.44910592273649064 +a=dog,b=wye,i=929,x=0.6064855333541553,y=0.4141672252184334,x2=0.3678247021678743,xy=0.25118643048441214,y2=0.17153449044513655 +a=dog,b=hat,i=930,x=0.6324355476753056,y=0.762109091304607,x2=0.39997472196336376,xy=0.48198488054755867,y2=0.5808102670491339 +a=pan,b=hat,i=931,x=0.8830906732363291,y=0.38008337812375315,x2=0.7798491371569929,xy=0.3356480862732434,y2=0.1444633743259639 +a=dog,b=wye,i=932,x=0.9112312614588713,y=0.8762271242954337,x2=0.830342411859926,xy=0.7984455477962074,y2=0.7677739733510455 +a=wye,b=pan,i=933,x=0.29688501773453857,y=0.24743131347282576,x2=0.08814071375523728,xy=0.07345864988846004,y2=0.06122225488688777 +a=cat,b=dog,i=934,x=0.06045711073020743,y=0.6548623532225628,x2=0.0036550622378445623,xy=0.03959108580182069,y2=0.4288447016681926 +a=dog,b=hat,i=935,x=0.019832522192974822,y=0.15602458248960316,x2=0.00039332893653483886,xy=0.0030943609948746852,y2=0.02434367034105498 +a=wye,b=cat,i=936,x=0.5309363025365442,y=0.06530016180674902,x2=0.2818933573511768,xy=0.03467022646471339,y2=0.004264111131987604 +a=pan,b=wye,i=937,x=0.6180817541716009,y=0.9876308686371087,x2=0.38202505483984334,xy=0.6104366197612461,y2=0.9754147326848899 +a=pan,b=pan,i=938,x=0.9818389635120035,y=0.8793670901119667,x2=0.9640077502703254,xy=0.8633968723020999,y2=0.7732864791719877 +a=pan,b=pan,i=939,x=0.7123702155128228,y=0.19613168702534123,x2=0.5074713239497856,xy=0.13971837215513583,y2=0.0384676386554064 +a=pan,b=wye,i=940,x=0.2763911140028529,y=0.9039093669743488,x2=0.07639204789973801,xy=0.2498325168956538,y2=0.817052143703968 +a=cat,b=dog,i=941,x=0.07182291530717488,y=0.8822713977303266,x2=0.005158531163221616,xy=0.06336730387712805,y2=0.7784028192530241 +a=dog,b=wye,i=942,x=0.2680043914557573,y=0.9004523844910486,x2=0.07182635383957078,xy=0.24132519334040906,y2=0.8108144967356152 +a=dog,b=cat,i=943,x=0.7865047304222321,y=0.35215724454095876,x2=0.618589690976548,xy=0.2769733386839228,y2=0.12401472488268063 +a=hat,b=dog,i=944,x=0.5675204239943485,y=0.3295982424813395,x2=0.32207943165072517,xy=0.1870537343208019,y2=0.10863500144678788 +a=hat,b=cat,i=945,x=0.17923128277767597,y=0.20921118142295692,x2=0.03212385272613125,xy=0.03749718841786966,y2=0.04376931843238939 +a=wye,b=hat,i=946,x=0.16763083018519132,y=0.10228733253499145,x2=0.028100095228576448,xy=0.017146510470269345,y2=0.01046269839712392 +a=cat,b=cat,i=947,x=0.7914191333138371,y=0.748388853094136,x2=0.626344244575225,xy=0.5922892574974977,y2=0.5600858754355563 +a=hat,b=wye,i=948,x=0.6834678751932841,y=0.11533712351371006,x2=0.4671283364212226,xy=0.07882921873882079,y2=0.01330265206041681 +a=pan,b=dog,i=949,x=0.26979861814609696,y=0.9149668439234241,x2=0.07279129435354344,xy=0.2468567901400354,y2=0.8371643254791915 +a=wye,b=dog,i=950,x=0.5623890188980715,y=0.5493012859573337,x2=0.3162814085771354,xy=0.3089210112889939,y2=0.30173190275438055 +a=dog,b=dog,i=951,x=0.1281055710583192,y=0.8637404563175912,x2=0.01641103733617807,xy=0.11064996440273825,y2=0.7460475758797207 +a=hat,b=pan,i=952,x=0.7495158494009292,y=0.05659940815409714,x2=0.5617740085031964,xy=0.042422153478208,y2=0.003203493003394078 +a=dog,b=hat,i=953,x=0.02008382113876772,y=0.023054974160895414,x2=0.00040335987153401314,xy=0.00046303197740633494,y2=0.0005315318335595552 +a=hat,b=dog,i=954,x=0.8048331895510095,y=0.45833484414841963,x2=0.6477564630028512,xy=0.3688830944983374,y2=0.2100708293605561 +a=wye,b=dog,i=955,x=0.5085330470357038,y=0.6955385567911895,x2=0.2586058599274173,xy=0.35370434161583947,y2=0.4837738839831707 +a=wye,b=wye,i=956,x=0.3032441644265019,y=0.7682973644818734,x2=0.09195702325872734,xy=0.23298169232338928,y2=0.5902808402697926 +a=pan,b=wye,i=957,x=0.23273075450777592,y=0.6115766438206743,x2=0.05416360409375866,xy=0.14233269375571886,y2=0.37402599126695996 +a=pan,b=dog,i=958,x=0.3479868982175456,y=0.06981440575125086,x2=0.12109488133106842,xy=0.024294498508278962,y2=0.00487405125040029 +a=cat,b=cat,i=959,x=0.2506771355614953,y=0.5281728384744155,x2=0.06283902629331628,xy=0.13240085423015083,y2=0.27896654730212106 +a=hat,b=cat,i=960,x=0.8793447124216682,y=0.25901777778092283,x2=0.7732471232639464,xy=0.22776591331486515,y2=0.06709020920656752 +a=wye,b=pan,i=961,x=0.8977214919326137,y=0.38469643551126753,x2=0.8059038770777179,xy=0.34535025802833363,y2=0.1479913474950748 +a=wye,b=hat,i=962,x=0.9562617903669814,y=0.47382566138151094,x2=0.9144366117158648,xy=0.4531013752745027,y2=0.22451075738362627 +a=cat,b=pan,i=963,x=0.05062588275210245,y=0.0001071165779457095,x2=0.002562980004429624,xy=5.422871315885932e-06,y2=1.1473961270799259e-08 +a=cat,b=dog,i=964,x=0.4685988126190114,y=0.019310315636905995,x2=0.21958484718794732,xy=0.009048790978752478,y2=0.00037288828999693617 +a=cat,b=hat,i=965,x=0.9652309625577333,y=0.25063333378563546,x2=0.9316708110801284,xy=0.24191905401896258,y2=0.06281706800450176 +a=wye,b=pan,i=966,x=0.23292707596683615,y=0.48395502336718577,x2=0.05425502271846026,xy=0.11272622849238044,y2=0.23421246464233333 +a=dog,b=cat,i=967,x=0.4816380078329947,y=0.14585492856879678,x2=0.23197517058933587,xy=0.07024927722849902,y2=0.021273660187808813 +a=dog,b=hat,i=968,x=0.5370776632361478,y=0.6372146048574174,x2=0.288452416347201,xy=0.342233730956767,y2=0.4060424526435946 +a=cat,b=pan,i=969,x=0.07512255270840607,y=0.719699576859241,x2=0.0056433979254272475,xy=0.054065669396825874,y2=0.5179674809313706 +a=hat,b=hat,i=970,x=0.14960927782686417,y=0.6213694158181706,x2=0.022382936011875833,xy=0.09296262956425698,y2=0.3860999509142146 +a=wye,b=dog,i=971,x=0.7785604592951778,y=0.9994502931828215,x2=0.6061563887779182,xy=0.7781324793031177,y2=0.9989008885432279 +a=wye,b=pan,i=972,x=0.8434626638118352,y=0.8602450015939322,x2=0.711429265244557,xy=0.7255845405752345,y2=0.7400214627673445 +a=pan,b=dog,i=973,x=0.05726926291551737,y=0.5994218334683502,x2=0.003279768474886653,xy=0.03432844657820042,y2=0.3593065344385586 +a=hat,b=dog,i=974,x=0.9226697875828058,y=0.030904389281711464,x2=0.8513195369181,xy=0.028514546293933057,y2=0.0009550812768755624 +a=cat,b=hat,i=975,x=0.9901595235021967,y=0.8592860989306361,x2=0.9804158819820973,xy=0.8508303142692202,y2=0.738372599815431 +a=cat,b=wye,i=976,x=0.7969021093554425,y=0.463755536956553,x2=0.6350529718951536,xy=0.36956776562594296,y2=0.21506919805786082 +a=hat,b=wye,i=977,x=0.7417136990825777,y=0.4328986289834107,x2=0.5501392114067606,xy=0.3210868434310619,y2=0.18740122297571665 +a=dog,b=pan,i=978,x=0.9772797759762182,y=0.5328687567382687,x2=0.9550757605321272,xy=0.5207618592099011,y2=0.2839491119077882 +a=hat,b=wye,i=979,x=0.2038116276017774,y=0.23985168428289871,x2=0.04153917954568559,xy=0.048884562156725236,y2=0.057528830453343324 +a=dog,b=hat,i=980,x=0.17296447071262933,y=0.8591423895174625,x2=0.02991670812890001,xy=0.14860110866967152,y2=0.7381256454657752 +a=dog,b=pan,i=981,x=0.8881154785907516,y=0.5109155266572019,x2=0.7887491033124797,xy=0.4537519874766067,y2=0.26103467537940594 +a=hat,b=pan,i=982,x=0.8650008763499077,y=0.9826562694504397,x2=0.7482265160861084,xy=0.8499985342253614,y2=0.9656133438902552 +a=dog,b=dog,i=983,x=0.9590123093113615,y=0.8242062568096603,x2=0.9197046094107105,xy=0.7904239456919054,y2=0.6793159537641917 +a=cat,b=dog,i=984,x=0.17694035611155956,y=0.7200229552285787,x2=0.031307889620885515,xy=0.12740111810664223,y2=0.5184330560560959 +a=cat,b=pan,i=985,x=0.19790162171076175,y=0.20309187904653137,x2=0.03916505187574945,xy=0.04019221221959443,y2=0.041246311334650926 +a=pan,b=dog,i=986,x=0.5954211603726871,y=0.469050219456017,x2=0.3545263582195572,xy=0.27928242594156516,y2=0.2200081083717377 +a=cat,b=hat,i=987,x=0.5459319667494228,y=0.5212717765654789,x2=0.29804171231889287,xy=0.28457892619135755,y2=0.2717242650437305 +a=cat,b=dog,i=988,x=0.12277185901082299,y=0.3386165276216283,x2=0.0150729293649734,xy=0.041572580587897,y2=0.11466115277852897 +a=hat,b=hat,i=989,x=0.4452840739358812,y=0.5945350917465275,x2=0.19827790650093532,xy=0.26473700775073666,y2=0.3534719753180519 +a=dog,b=cat,i=990,x=0.5749714825497623,y=0.5821722092343784,x2=0.3305922057454716,xy=0.33473241824276095,y2=0.33892448120483687 +a=cat,b=hat,i=991,x=0.08517713483975298,y=0.6140564687795391,x2=0.0072551442995094605,xy=0.05230357064045737,y2=0.3770653468499971 +a=wye,b=pan,i=992,x=0.22526402517427413,y=0.9588061574025097,x2=0.05074388103771601,xy=0.215984534378368,y2=0.9193092474729663 +a=wye,b=dog,i=993,x=0.5733255046749886,y=0.7898205441934877,x2=0.32870213431083034,xy=0.45282426210240545,y2=0.623816492030097 +a=hat,b=hat,i=994,x=0.6514029667906138,y=0.20813520752042713,x2=0.42432582514361356,xy=0.13557989167238632,y2=0.043320264609571266 +a=wye,b=dog,i=995,x=0.91510627197243,y=0.3616586038082443,x2=0.837419489003279,xy=0.33095605665771655,y2=0.13079694570852865 +a=hat,b=cat,i=996,x=0.44761087175904435,y=0.7566230280704532,x2=0.20035549251689164,xy=0.3386726931875835,y2=0.5724784066065018 +a=wye,b=cat,i=997,x=0.8588159982893151,y=0.2518130191815001,x2=0.7375649189176728,xy=0.21626104945060648,y2=0.06340979662930255 +a=cat,b=hat,i=998,x=0.49632650430902825,y=0.1658604134256596,x2=0.24633999887961983,xy=0.08232091919880785,y2=0.027509676741730726 +a=wye,b=hat,i=999,x=0.29120233477659807,y=0.1032096823717803,x2=0.0847987997793419,xy=0.03005490047821352,y2=0.010652238535283777 +a=dog,b=cat,i=1000,x=0.6342074605740181,y=0.020204769958250823,x2=0.4022191030477447,xy=0.012814015846704465,y2=0.00040823272906583496 +a=pan,b=dog,i=1001,x=0.5440962271899282,y=0.8507513390682108,x2=0.296040704442314,xy=0.4628905938637929,y2=0.7237778409263537 +a=pan,b=wye,i=1002,x=0.9767984205420347,y=0.24085139484174467,x2=0.9541351543734137,xy=0.23526326206676215,y2=0.05800939439721399 +a=dog,b=dog,i=1003,x=0.9374506282275957,y=0.42631604802092005,x2=0.878813680364314,xy=0.3996502470407174,y2=0.18174537280017541 +a=wye,b=dog,i=1004,x=0.5775274892249994,y=0.7211591715565521,x2=0.3335380008105318,xy=0.4164892456806361,y2=0.5200705507201325 +a=cat,b=dog,i=1005,x=0.7090989774440678,y=0.9873769606793289,x2=0.5028213598122225,xy=0.7001479931695437,y2=0.974913262480349 +a=cat,b=pan,i=1006,x=0.6043080143248889,y=0.09927933178093473,x2=0.3651881761772901,xy=0.059995295852038506,y2=0.009856385718868916 +a=dog,b=dog,i=1007,x=0.3578885561246494,y=0.13589282310616246,x2=0.12808421860498634,xy=0.04863448624916688,y2=0.01846685937176276 +a=pan,b=wye,i=1008,x=0.6798888637740312,y=0.7598653357623847,x2=0.4622488670839432,xy=0.5166239797527604,y2=0.5773953284932816 +a=dog,b=cat,i=1009,x=0.960568894623436,y=0.9105491402373301,x2=0.9226926013180896,xy=0.8746451811380922,y2=0.8290997367869412 +a=pan,b=pan,i=1010,x=0.1248653013221197,y=0.20360304318502975,x2=0.015591343474263749,xy=0.02542295533739929,y2=0.041454199194205094 +a=pan,b=hat,i=1011,x=0.6087246228004949,y=0.004919964524642939,x2=0.37054566640360476,xy=0.002994903549455089,y2=2.4206050923745023e-05 +a=wye,b=cat,i=1012,x=0.6079618404129372,y=0.9895746699262148,x2=0.36961759939828576,xy=0.6016236375543664,y2=0.9792580273595769 +a=wye,b=wye,i=1013,x=0.20922215896167096,y=0.9771015198150322,x2=0.04377391180058271,xy=0.20443128950043096,y2=0.9547273800248458 +a=dog,b=dog,i=1014,x=0.8843402003807457,y=0.3926907979717157,x2=0.7820575900094574,xy=0.34727225896598196,y2=0.15420606281166283 +a=hat,b=cat,i=1015,x=0.372415813118841,y=0.17229317366874286,x2=0.1386935378609675,xy=0.06416470236667056,y2=0.02968493769284759 +a=hat,b=pan,i=1016,x=0.8679193129184527,y=0.2352481151221144,x2=0.753283933736839,xy=0.20417638244214661,y2=0.055341675668507596 +a=wye,b=pan,i=1017,x=0.6987004127420731,y=0.19215217266808393,x2=0.48818226676594323,xy=0.13425680235247633,y2=0.03692245746106514 +a=pan,b=pan,i=1018,x=0.1513426365535807,y=0.9583801421415503,x2=0.022904593638989224,xy=0.14504377753229766,y2=0.9184924968512582 +a=wye,b=dog,i=1019,x=0.4317948780039407,y=0.28056558302014645,x2=0.186446816670438,xy=0.12114678169228862,y2=0.07871704637543468 +a=wye,b=cat,i=1020,x=0.5320130701140631,y=0.49284211602664263,x2=0.283037906772191,xy=0.26219844722884544,y2=0.24289335132961867 +a=hat,b=cat,i=1021,x=0.01903200162010199,y=0.6048001051810862,x2=0.0003622170856675648,xy=0.011510556581644286,y2=0.3657831672270529 +a=pan,b=wye,i=1022,x=0.6047652537288687,y=0.47797327818113344,x2=0.3657410121177429,xy=0.28906163085483233,y2=0.22845845465521916 +a=dog,b=pan,i=1023,x=0.49591860886900707,y=0.4506369587192145,x2=0.24593526662257123,xy=0.223479253672993,y2=0.20307366856370304 +a=cat,b=pan,i=1024,x=0.6289256242714548,y=0.38219168166454864,x2=0.3955474408652392,xy=0.2403701419822334,y2=0.14607048153357569 +a=cat,b=cat,i=1025,x=0.3866427067941546,y=0.7213028755311852,x2=0.14949258271711058,xy=0.27888649621378464,y2=0.5202778382495564 +a=pan,b=cat,i=1026,x=0.8032224836204428,y=0.31948296783638674,x2=0.6451663581933925,xy=0.2566159028999726,y2=0.10206936673754573 +a=dog,b=cat,i=1027,x=0.8048421863331399,y=0.35338983647132594,x2=0.6477709449015087,xy=0.2844230486134927,y2=0.12488437652123048 +a=hat,b=cat,i=1028,x=0.6226709866380417,y=0.012662422631392056,x2=0.38771915760079223,xy=0.00788452319311676,y2=0.00016033694689598972 +a=cat,b=dog,i=1029,x=0.5711949137244665,y=0.7434225895518772,x2=0.3262636294647007,xy=0.424639201899904,y2=0.552677146656019 +a=cat,b=wye,i=1030,x=0.26312318744491703,y=0.16142518462583078,x2=0.06923381177117294,xy=0.04247470911263281,y2=0.026058090231483554 +a=cat,b=hat,i=1031,x=0.5024658818641952,y=0.7911608972408211,x2=0.2524719624375633,xy=0.397531357928577,y2=0.6259355653229011 +a=wye,b=cat,i=1032,x=0.794893250619878,y=0.43663416290551493,x2=0.6318552798810362,xy=0.3470775490836541,y2=0.19064939221619975 +a=pan,b=dog,i=1033,x=0.2180491028489473,y=0.7391689879036737,x2=0.04754541125323079,xy=0.16117513466616043,y2=0.5463707926785413 +a=dog,b=pan,i=1034,x=0.6729162913090135,y=0.6902170709873656,x2=0.45281633510907715,xy=0.4644583116069882,y2=0.4763996050823781 +a=wye,b=wye,i=1035,x=0.5875359040331551,y=0.076240435233347,x2=0.3451984385280569,xy=0.044793993038705744,y2=0.005812603964570179 +a=pan,b=hat,i=1036,x=0.4983986870789734,y=0.9035481210268024,x2=0.24840125128204443,xy=0.45032719723243164,y2=0.8163992070110652 +a=hat,b=wye,i=1037,x=0.1118064145025699,y=0.09592641102267185,x2=0.012500674323920472,xy=0.01072518807254474,y2=0.00920187633169058 +a=wye,b=hat,i=1038,x=0.5914575924270633,y=0.368485574031287,x2=0.34982208363961814,xy=0.21794359046064943,y2=0.1357816182691671 +a=pan,b=dog,i=1039,x=0.2516733591409376,y=0.5475705161469302,x2=0.06333947970128335,xy=0.13780891116523492,y2=0.29983347015341555 +a=pan,b=pan,i=1040,x=0.2558903138640043,y=0.828534112110143,x2=0.06547985272941863,xy=0.21201385399489864,y2=0.6864687749301431 +a=pan,b=hat,i=1041,x=0.5743764131391449,y=0.8714137337081335,x2=0.32990826397058964,xy=0.5005194947274677,y2=0.7593618952951497 +a=dog,b=cat,i=1042,x=0.9370932104263013,y=0.7358732147282736,x2=0.8781436850270723,xy=0.689581793256441,y2=0.5415093881545239 +a=pan,b=wye,i=1043,x=0.6406051557435536,y=0.9330221542165993,x2=0.41037496556522257,xy=0.5976988024141104,y2=0.8705303402589836 +a=wye,b=cat,i=1044,x=0.8198293508753841,y=0.6392148624011491,x2=0.6721201645567537,xy=0.524047105712232,y2=0.40859564031452 +a=cat,b=cat,i=1045,x=0.31711061445473976,y=0.5524017355391501,x2=0.1005591417998626,xy=0.17517245378268453,y2=0.3051476774266651 +a=dog,b=pan,i=1046,x=0.9493190533618198,y=0.38632970108414066,x2=0.9012066650757816,xy=0.36675014611875123,y2=0.14925063793976148 +a=dog,b=hat,i=1047,x=0.5506255092279859,y=0.7695630775773794,x2=0.30318845141257883,xy=0.42374106147410057,y2=0.5922273303703677 +a=pan,b=wye,i=1048,x=0.4870673877222067,y=0.20530958927031162,x2=0.23723464018253443,xy=0.09999960532020988,y2=0.042152027446344054 +a=pan,b=dog,i=1049,x=0.44377477511029007,y=0.7069920540171963,x2=0.1969360510241885,xy=0.31374523977624336,y2=0.49983776444345424 +a=cat,b=wye,i=1050,x=0.5760196111912421,y=0.5313191474605581,x2=0.33179859247690974,xy=0.3060502487386929,y2=0.2823000364582143 +a=wye,b=pan,i=1051,x=0.4399385440979908,y=0.8880298159008242,x2=0.1935459225830598,xy=0.3906785443230154,y2=0.7885969539288518 +a=wye,b=hat,i=1052,x=0.8296158619638061,y=0.9271603190971333,x2=0.688262478421949,xy=0.7691869073064057,y2=0.859626257308298 +a=hat,b=hat,i=1053,x=0.8213818417466454,y=0.8219814213452944,x2=0.6746681299511113,xy=0.6751606137461232,y2=0.6756534570368304 +a=wye,b=dog,i=1054,x=0.7935581938812478,y=0.6677182570731883,x2=0.6297346070760681,xy=0.5298732941045341,y2=0.4458476708288564 +a=cat,b=pan,i=1055,x=0.8393392041707429,y=0.508518054485822,x2=0.704490299657976,xy=0.4268191391585843,y2=0.25859061173804543 +a=hat,b=cat,i=1056,x=0.10146195097856081,y=0.5013880055029021,x2=0.010294527496375877,xy=0.05087180523557383,y2=0.2513899320621782 +a=hat,b=pan,i=1057,x=0.8045389366320291,y=0.7335248930675334,x2=0.6472829005569962,xy=0.5901493374616762,y2=0.5380587687497363 +a=pan,b=hat,i=1058,x=0.41111803793121704,y=0.6333739720771131,x2=0.16901804111241361,xy=0.26039146467704416,y2=0.4011625885047396 +a=pan,b=wye,i=1059,x=0.5440039718966404,y=0.44600871429630595,x2=0.2959403214393207,xy=0.24263051207770434,y2=0.19892377322824387 +a=cat,b=hat,i=1060,x=0.42848512529884564,y=0.760379589589332,x2=0.18359950260236746,xy=0.32581134371986975,y2=0.578177120264041 +a=hat,b=wye,i=1061,x=0.6086991223249973,y=0.26727047467444054,x2=0.3705146215192221,xy=0.1626873033577174,y2=0.07143350663270076 +a=hat,b=pan,i=1062,x=0.8313074120181857,y=0.5272138667448927,x2=0.6910720132763736,xy=0.43827679514379736,y2=0.2779544612881015 +a=wye,b=hat,i=1063,x=0.5868897183341317,y=0.5897451195913053,x2=0.34443954148631645,xy=0.34611534712587,y2=0.34779930608176296 +a=cat,b=dog,i=1064,x=0.7397842027559516,y=0.19330378276021587,x2=0.5472806666472588,xy=0.14300308481897595,y2=0.03736635242940873 +a=dog,b=hat,i=1065,x=0.6788622204499666,y=0.3082398647535174,x2=0.46085391435425904,xy=0.2092523990177702,y2=0.0950118142232667 +a=cat,b=hat,i=1066,x=0.5293401279343086,y=0.9445953393456461,x2=0.2802009710415102,xy=0.500012217775376,y2=0.8922603551135163 +a=cat,b=dog,i=1067,x=0.2403917325329138,y=0.6076355121295253,x2=0.05778818507017596,xy=0.14607055350934092,y2=0.36922091560091047 +a=pan,b=cat,i=1068,x=0.20921260941283415,y=0.2949165036698348,x2=0.0437699159373271,xy=0.06170025129167581,y2=0.08697574413683969 +a=hat,b=pan,i=1069,x=0.3754581763056679,y=0.9711108861348786,x2=0.140968842154778,xy=0.36461152229878263,y2=0.9430563531696692 +a=hat,b=dog,i=1070,x=0.24735210740949987,y=0.5050668925990092,x2=0.061183065039920756,xy=0.12492936026713244,y2=0.25509256599961905 +a=wye,b=hat,i=1071,x=0.660602779925325,y=0.42368464415736373,x2=0.4363960328450674,xy=0.2798872537420266,y2=0.17950867769475193 +a=hat,b=pan,i=1072,x=0.23186122160766431,y=0.4336855941433039,x2=0.05375962608539842,xy=0.10055487165171215,y2=0.1880831945674305 +a=hat,b=cat,i=1073,x=0.5122072492645222,y=0.9694750073357224,x2=0.2623562661991284,xy=0.4965721267381329,y2=0.939881789848599 +a=wye,b=pan,i=1074,x=0.43595890232167034,y=0.36905250816503343,x2=0.1900601645135157,xy=0.16089172635868726,y2=0.13619975378290206 +a=hat,b=pan,i=1075,x=0.33427939730036704,y=0.7933254358401198,x2=0.11174271545949664,xy=0.26519234855568624,y2=0.6293652471509161 +a=hat,b=wye,i=1076,x=0.6931979555950077,y=0.44330243921126156,x2=0.4805234056410983,xy=0.3072963445715267,y2=0.19651705261065425 +a=hat,b=cat,i=1077,x=0.42785997597505154,y=0.518438949372806,x2=0.1830641590413717,xy=0.22181927642317972,y2=0.2687789442267789 +a=dog,b=wye,i=1078,x=0.4422743191976337,y=0.48177417934319466,x2=0.1956065734217304,xy=0.2130763471760101,y2=0.2321063598818087 +a=wye,b=hat,i=1079,x=0.5418642209237631,y=0.9476398847621776,x2=0.2936168339173167,xy=0.513492147872942,y2=0.8980213511920733 +a=pan,b=wye,i=1080,x=0.8650411565479376,y=0.7610469041859692,x2=0.7482962025217934,xy=0.6583368941842582,y2=0.5791923903710477 +a=wye,b=cat,i=1081,x=0.863642873883729,y=0.9411919456681188,x2=0.7458790136101465,xy=0.8128537168330326,y2=0.8858422785905391 +a=cat,b=wye,i=1082,x=0.9444653638696833,y=0.35050033430161065,x2=0.8920148235494932,xy=0.33103542577261635,y2=0.12285048434554083 +a=wye,b=hat,i=1083,x=0.8966975312509847,y=0.10092356690059079,x2=0.8040664625516107,xy=0.09049791328480336,y2=0.010185566355938024 +a=cat,b=pan,i=1084,x=0.5413307127431968,y=0.44326266490365374,x2=0.29303894055905744,xy=0.23995169432474367,y2=0.1964817900974888 +a=cat,b=pan,i=1085,x=0.2839939997658667,y=0.7028464774792382,x2=0.08065259190301509,xy=0.199604182360679,y2=0.49399317090497336 +a=wye,b=hat,i=1086,x=0.08155852459426205,y=0.7660135045083457,x2=0.006651792933992848,xy=0.06247493124698078,y2=0.5867766890891574 +a=dog,b=cat,i=1087,x=0.05100926358628344,y=0.2925931226507835,x2=0.0026019449716149414,xy=0.014924959716827576,y2=0.08561073542253644 +a=dog,b=dog,i=1088,x=0.7086028076135323,y=0.8413205380520563,x2=0.5021179389577807,xy=0.5961620953666148,y2=0.7078202477482015 +a=wye,b=dog,i=1089,x=0.18671024727982866,y=0.40739135131533766,x2=0.03486071643929477,xy=0.07606413994375025,y2=0.16596771312653688 +a=dog,b=pan,i=1090,x=0.2664113723843127,y=0.6937231025818595,x2=0.07097501933569292,xy=0.18481572381353653,y2=0.4812517430558012 +a=pan,b=cat,i=1091,x=0.793159753586116,y=0.4409433651088378,x2=0.6291023947087883,xy=0.3497385308151586,y2=0.19443105123350585 +a=hat,b=hat,i=1092,x=0.6512931235244617,y=0.20800570847161715,x2=0.4241827327502497,xy=0.1354726875813981,y2=0.04326637475677938 +a=cat,b=wye,i=1093,x=0.7478916367217758,y=0.712517745948077,x2=0.5593419002783767,xy=0.5328860632104178,y2=0.5076815382909284 +a=wye,b=wye,i=1094,x=0.23641082721661355,y=0.6370262281634499,x2=0.05589007922524351,xy=0.1505998975588004,y2=0.4058024153681517 +a=cat,b=dog,i=1095,x=0.7747991261476976,y=0.3322107519852314,x2=0.6003136858792358,xy=0.2573966003350268,y2=0.11036398373459294 +a=wye,b=wye,i=1096,x=0.6048532839105468,y=0.24251161200680948,x2=0.3658474950573726,xy=0.1466839449087591,y2=0.058811881958141306 +a=hat,b=cat,i=1097,x=0.4787260513072743,y=0.12498415897510329,x2=0.22917863220025503,xy=0.05983317290211183,y2=0.015621039994713891 +a=pan,b=wye,i=1098,x=0.594658212310013,y=0.7237896024672402,x2=0.35361838946774055,xy=0.43040743109174406,y2=0.5238713886396856 +a=wye,b=wye,i=1099,x=0.6066364587995798,y=0.20828802132322632,x2=0.36800779314489435,xy=0.1263551076658934,y2=0.04338389982674479 +a=wye,b=pan,i=1100,x=0.35532388403878157,y=0.35804659022907115,x2=0.1262550625684055,xy=0.12722250510703562,y2=0.1281973607746644 +a=pan,b=hat,i=1101,x=0.4487538878427101,y=0.46697683514906696,x2=0.2013800518539476,xy=0.2095576703056281,y2=0.21806736456583886 +a=hat,b=dog,i=1102,x=0.03136871604264768,y=0.3607990819866618,x2=0.000983996346164262,xy=0.011317803951287553,y2=0.1301759775624179 +a=dog,b=pan,i=1103,x=0.6441341502724975,y=0.4022253408667993,x2=0.41490880354727244,xy=0.2590870781573014,y2=0.16178522483541288 +a=cat,b=dog,i=1104,x=0.6395109732585249,y=0.750769211304267,x2=0.40897428491806576,xy=0.48012514901372694,y2=0.5636544086424311 +a=cat,b=pan,i=1105,x=0.8410479118904012,y=0.357626507656608,x2=0.707361590095204,xy=0.3007810275012467,y2=0.1278967189786619 +a=hat,b=cat,i=1106,x=0.863784532630219,y=0.6129075968250145,x2=0.746123718811206,xy=0.5294201020690059,y2=0.3756557222458145 +a=hat,b=dog,i=1107,x=0.4882958743237995,y=0.2884372096275648,x2=0.2384328608816438,xy=0.1408426994626088,y2=0.08319602389773577 +a=pan,b=cat,i=1108,x=0.3138710259922588,y=0.8680486410464611,x2=0.0985150209574332,xy=0.2724553175764387,y2=0.7535084432226078 +a=hat,b=cat,i=1109,x=0.02914443603611583,y=0.35747191368541953,x2=0.0008493981518632469,xy=0.010418317323112629,y2=0.12778616907391602 +a=dog,b=hat,i=1110,x=0.7845918032912979,y=0.4529218136895614,x2=0.6155842977918906,xy=0.3553587425526582,y2=0.20513816931584178 +a=dog,b=pan,i=1111,x=0.26539773926787824,y=0.6397637893288771,x2=0.07043596000850068,xy=0.16979186335333513,y2=0.40929770613644384 +a=hat,b=cat,i=1112,x=0.198395774137602,y=0.1249190785483415,x2=0.03936088319565839,xy=0.024783417293154125,y2=0.015604776185366714 +a=dog,b=cat,i=1113,x=0.3293818212784465,y=0.4286677322263892,x2=0.10849238418870648,xy=0.1411953583640295,y2=0.18375602465211532 +a=dog,b=hat,i=1114,x=0.3829667540927333,y=0.4040167806903713,x2=0.14666353474032404,xy=0.15472499509998716,y2=0.16322955907941156 +a=dog,b=hat,i=1115,x=0.06672734211151576,y=0.2988485473539988,x2=0.004452538185267265,xy=0.019941369258819796,y2=0.08931045425559526 +a=cat,b=dog,i=1116,x=0.8527725668016823,y=0.7202701834573114,x2=0.7272210506895298,xy=0.61422665313761,y2=0.5187891371776291 +a=hat,b=hat,i=1117,x=0.6448913304258395,y=0.41314314973722477,x2=0.41588482805840926,xy=0.26643243549036066,y2=0.17068726217479493 +a=cat,b=hat,i=1118,x=0.7454553807439559,y=0.9827694251192239,x2=0.5557037246801163,xy=0.7326107559857697,y2=0.96583574294917 +a=dog,b=pan,i=1119,x=0.3070936366066537,y=0.8872748423008111,x2=0.09430650164429946,xy=0.27247645799175124,y2=0.7872566457799293 +a=wye,b=cat,i=1120,x=0.39571565867227043,y=0.05767287981921754,x2=0.15659088251842884,xy=0.02282206162518836,y2=0.0033261610666419097 +a=pan,b=hat,i=1121,x=0.7003417500246725,y=0.5343941112860977,x2=0.4904785668276208,xy=0.37425850710098524,y2=0.2855770661772582 +a=dog,b=hat,i=1122,x=0.12745836334243676,y=0.10123723506133542,x2=0.016245634385932628,xy=0.012903532290231369,y2=0.010248977762864082 +a=pan,b=pan,i=1123,x=0.39070449028862997,y=0.3182926635583354,x2=0.15264999873169816,xy=0.12435837287816982,y2=0.1013102196750597 +a=pan,b=hat,i=1124,x=0.6410442083520145,y=0.9480479009695016,x2=0.41093767706166096,xy=0.6077406161567832,y2=0.898794822532678 +a=dog,b=wye,i=1125,x=0.7956693842355999,y=0.464939080509021,x2=0.6330897690098586,xy=0.3699377918956787,y2=0.2161683485845739 +a=wye,b=wye,i=1126,x=0.8319060225228574,y=0.11303810682768145,x2=0.6920676303098009,xy=0.09403708184453033,y2=0.012777613595186324 +a=hat,b=hat,i=1127,x=0.25840497150139485,y=0.14546553147858832,x2=0.06677312929663669,xy=0.03758901651615987,y2=0.02116022084834817 +a=hat,b=cat,i=1128,x=0.009624542183057194,y=0.8018834107157139,x2=9.263181223344734e-05,xy=0.007717760712327166,y2=0.6430170043810663 +a=cat,b=hat,i=1129,x=0.671027006220547,y=0.6492461398441377,x2=0.45027724307731004,xy=0.43566169351985834,y2=0.4215205501025136 +a=dog,b=dog,i=1130,x=0.8863744599302459,y=0.23451249862419843,x2=0.785659683216635,xy=0.20786588931491642,y2=0.05499611201096467 +a=dog,b=hat,i=1131,x=0.24561475914554787,y=0.7983105466556188,x2=0.06032660991012549,xy=0.19607685264017047,y2=0.637299728901593 +a=hat,b=hat,i=1132,x=0.12215761324247987,y=0.059194869138346595,x2=0.014922482473099293,xy=0.007231103930141351,y2=0.003504032532305978 +a=cat,b=cat,i=1133,x=0.45995479897134484,y=0.9699398990182666,x2=0.21155841709677023,xy=0.44612851126723335,y2=0.9407834077075652 +a=cat,b=cat,i=1134,x=0.745352225088946,y=0.90324302826816,x2=0.5555499394450429,xy=0.6732342009157509,y2=0.8158479681150361 +a=dog,b=pan,i=1135,x=0.5052151771411246,y=0.12974884928428687,x2=0.25524237521373794,xy=0.06555108787501808,y2=0.01683476389059659 +a=wye,b=hat,i=1136,x=0.01044276900378649,y=0.32603690418363707,x2=0.00010905142446644387,xy=0.0034047280770993908,y2=0.10630006288965013 +a=dog,b=dog,i=1137,x=0.8977009326635101,y=0.6319499049985434,x2=0.805866964504936,xy=0.5673020191138091,y2=0.39936068242766803 +a=cat,b=pan,i=1138,x=0.3659452160992942,y=0.12630848786008497,x2=0.13391590118595914,xy=0.046221986885133876,y2=0.015953834105501233 +a=cat,b=hat,i=1139,x=0.2222862108606949,y=0.6721019549883772,x2=0.04941115953880531,xy=0.14939899688643168,y2=0.45172103789919865 +a=wye,b=pan,i=1140,x=0.2914972055161553,y=0.6357557059324661,x2=0.0849706208237277,xy=0.1853210116702645,y2=0.4041853176256883 +a=dog,b=hat,i=1141,x=0.4266529907443396,y=0.5134085687711274,x2=0.18203277451108954,xy=0.21904730133997247,y2=0.26358835848761747 +a=cat,b=dog,i=1142,x=0.5322703793573935,y=0.8891588365204124,x2=0.28331175674126363,xy=0.4732729112236985,y2=0.7906034365623335 +a=pan,b=cat,i=1143,x=0.27994448082331946,y=0.5318630356389697,x2=0.07836891234343787,xy=0.14889212138106606,y2=0.28287828867910003 +a=wye,b=hat,i=1144,x=0.03716552624373293,y=0.4411681159221027,x2=0.001381276340973601,xy=0.01639624519020112,y2=0.19462930650625784 +a=wye,b=hat,i=1145,x=0.09153841600334467,y=0.753384940980195,x2=0.008379281604401387,xy=0.06896366413810036,y2=0.5675888692957319 +a=dog,b=cat,i=1146,x=0.9091950492491973,y=0.3486779040776171,x2=0.8266356375792502,xy=0.31701622416995595,y2=0.12157628079195996 +a=dog,b=cat,i=1147,x=0.6397060288677293,y=0.4269278965397596,x2=0.40922380336972014,xy=0.2731083493083024,y2=0.18226742884386368 +a=hat,b=hat,i=1148,x=0.8194745411913835,y=0.8989205706193172,x2=0.6715385236608286,xy=0.7366425221757616,y2=0.8080581922825588 +a=dog,b=cat,i=1149,x=0.5287998003069021,y=0.425955845236605,x2=0.27962922880461955,xy=0.22524536590067443,y2=0.1814383820912306 +a=pan,b=hat,i=1150,x=0.5835456838747279,y=0.8740662106771149,x2=0.34052556516882393,xy=0.510057564661369,y2=0.7639917406474506 +a=pan,b=cat,i=1151,x=0.6522024486696242,y=0.5657660217947503,x2=0.42536803405065376,xy=0.3689939847886081,y2=0.3200911914174579 +a=pan,b=cat,i=1152,x=0.3539601131941189,y=0.25640961808475804,x2=0.12528776173239348,xy=0.09075877744134175,y2=0.06574589224637148 +a=hat,b=hat,i=1153,x=0.6973917722108447,y=0.8220444136221455,x2=0.4863552839473827,xy=0.5732870104519727,y2=0.6757570179673771 +a=pan,b=pan,i=1154,x=0.8797639810640132,y=0.6162946277787805,x2=0.7739846623776014,xy=0.5421938152430241,y2=0.37981906822898565 +a=hat,b=pan,i=1155,x=0.4377588064658874,y=0.3857917372842491,x2=0.19163277263843825,xy=0.16888373045795407,y2=0.14883526455679907 +a=cat,b=cat,i=1156,x=0.9212930829184702,y=0.6241199936250447,x2=0.8487809446334192,xy=0.5749974330378734,y2=0.3895257664425258 +a=wye,b=dog,i=1157,x=0.8209510629039569,y=0.3747469584931943,x2=0.6739606476831367,xy=0.30764891389501287,y2=0.14043528289989987 +a=pan,b=dog,i=1158,x=0.5974294364800277,y=0.6981999319048695,x2=0.3569219315728434,xy=0.41712519186831987,y2=0.48748314491196443 +a=cat,b=hat,i=1159,x=0.13184638853569974,y=0.5286862217502872,x2=0.017383470169906698,xy=0.06970536900635949,y2=0.2795091210685939 +a=pan,b=dog,i=1160,x=0.6723291822932118,y=0.08940961362984456,x2=0.4520265293630588,xy=0.0601126924209054,y2=0.007994079009438087 +a=cat,b=cat,i=1161,x=0.33049385434668643,y=0.9022959566664027,x2=0.10922618776092878,xy=0.2982032684801102,y2=0.8141379934165389 +a=dog,b=hat,i=1162,x=0.676281316646256,y=0.11195521829057764,x2=0.4573564192447936,xy=0.07571322243097085,y2=0.01253397090249089 +a=pan,b=cat,i=1163,x=0.5327388900339096,y=0.7039706938316723,x2=0.28381072495456205,xy=0.37503256604828633,y2=0.49557473777384614 +a=hat,b=cat,i=1164,x=0.1933278467331423,y=0.008914393054231695,x2=0.03737565632247336,xy=0.0017234004141074935,y2=7.94664035253343e-05 +a=hat,b=wye,i=1165,x=0.021340741844274036,y=0.7602588744617488,x2=0.0004554272624639488,xy=0.016224488374706525,y2=0.5779935561978451 +a=cat,b=pan,i=1166,x=0.665014628709845,y=0.46332035098488633,x2=0.44224445639809296,xy=0.30811481118392925,y2=0.21466574763675825 +a=hat,b=dog,i=1167,x=0.6077597776150052,y=0.17579066134697052,x2=0.3693719472866406,xy=0.1068384932470295,y2=0.030902356616805276 +a=cat,b=hat,i=1168,x=0.8418250117669293,y=0.8860151608635193,x2=0.7086693504363906,xy=0.7458697232196099,y2=0.785022865280008 +a=hat,b=cat,i=1169,x=0.9340118413002695,y=0.2457129242900873,x2=0.8723781196891198,xy=0.22949878084745814,y2=0.060374841163186165 +a=hat,b=wye,i=1170,x=0.6461099251188956,y=0.19438865009440986,x2=0.41745803533714493,xy=0.12559643615646238,y2=0.03778694728552691 +a=pan,b=cat,i=1171,x=0.9447375439682993,y=0.20802590998182424,x2=0.8925290269832543,xy=0.19652988727799917,y2=0.04327477922376604 +a=wye,b=pan,i=1172,x=0.6078790246684067,y=0.8357743273327147,x2=0.3695169086318134,xy=0.5080496829419043,y2=0.6985187262284518 +a=wye,b=pan,i=1173,x=0.6213831858768594,y=0.2755732381662571,x2=0.38611706369047555,xy=0.17123657667415138,y2=0.07594060959343667 +a=hat,b=pan,i=1174,x=0.5618126256983736,y=0.889248530414444,x2=0.3156334263941009,xy=0.49959105177055885,y2=0.7907629488442482 +a=cat,b=wye,i=1175,x=0.7437196121160394,y=0.08538081278312915,x2=0.5531188614460322,xy=0.06349938496522099,y2=0.007289883191507749 +a=hat,b=pan,i=1176,x=0.7290249006448934,y=0.04361641718557552,x2=0.5314773057602967,xy=0.031797454205200415,y2=0.0019023918481061673 +a=hat,b=dog,i=1177,x=0.31363080644456,y=0.7180272834208573,x2=0.09836428275106505,xy=0.2251954759484801,y2=0.5155631797367362 +a=wye,b=hat,i=1178,x=0.6834067249536789,y=0.9878807105188865,x2=0.4670447517119134,xy=0.6751243210206256,y2=0.9759082982153 +a=hat,b=dog,i=1179,x=0.49045154753612985,y=0.6734478449684046,x2=0.24054272048058464,xy=0.33029353774962567,y2=0.4535319998925883 +a=cat,b=hat,i=1180,x=0.12978130038938562,y=0.42171750159109544,x2=0.016843185930759945,xy=0.054731045753455165,y2=0.17784565114823558 +a=cat,b=hat,i=1181,x=0.3264872217972796,y=0.4666906345216678,x2=0.10659390599690606,xy=0.15236852870378892,y2=0.21780014835023692 +a=pan,b=cat,i=1182,x=0.12993325182555615,y=0.8008745906124531,x2=0.01688264992996339,xy=0.10406023986273706,y2=0.6414001098886645 +a=dog,b=hat,i=1183,x=0.9241833806481935,y=0.9921515876591461,x2=0.8541149210663237,xy=0.9169300083983022,y2=0.9843647728945644 +a=pan,b=cat,i=1184,x=0.76370596148368,y=0.18860964378787792,x2=0.5832467956057121,xy=0.1440423093541157,y2=0.0355735977297902 +a=pan,b=cat,i=1185,x=0.21456293879544752,y=0.287520239815655,x2=0.04603725470453896,xy=0.06169118761801878,y2=0.08266788830365177 +a=cat,b=dog,i=1186,x=0.6305366088057442,y=0.5208735730780759,x2=0.3975764150442482,xy=0.328429856385181,y2=0.2713092791311217 +a=pan,b=dog,i=1187,x=0.7135047495843945,y=0.602312134937668,x2=0.5090890276794895,xy=0.4297525690103428,y2=0.3627799078931716 +a=pan,b=wye,i=1188,x=0.12846391575991634,y=0.20534006815546713,x2=0.01650297765237088,xy=0.026378789217659408,y2=0.042164543590091884 +a=pan,b=pan,i=1189,x=0.9284204826309687,y=0.17346669545432036,x2=0.8619645925687208,xy=0.16105003311409938,y2=0.030090694431841928 +a=pan,b=pan,i=1190,x=0.5779102962941246,y=0.703500872993506,x2=0.3339803105627629,xy=0.4065603979548524,y2=0.4949134783026251 +a=pan,b=dog,i=1191,x=0.0762925743827011,y=0.656412741684207,x2=0.0058205569059399795,xy=0.050079417920695125,y2=0.4308776874453775 +a=wye,b=pan,i=1192,x=0.3315607730558524,y=0.9006904051746625,x2=0.10993254622939447,xy=0.2986336070237,y2=0.8112432059736977 +a=dog,b=dog,i=1193,x=0.8219100974851303,y=0.5890668500456228,x2=0.6755362083480164,xy=0.48415999214625643,y2=0.34699975382267223 +a=hat,b=wye,i=1194,x=0.7327635556383868,y=0.5133261943553027,x2=0.5369424284718112,xy=0.3761467273781132,y2=0.26350378181129797 +a=dog,b=wye,i=1195,x=0.31733254497756136,y=0.8422498053947577,x2=0.100699944101936,xy=0.26727327425277425,y2=0.7093847346875072 +a=cat,b=wye,i=1196,x=0.8663304768297544,y=0.1806750045641552,x2=0.7505284950840696,xy=0.15652426285528262,y2=0.0326434572742575 +a=pan,b=dog,i=1197,x=0.10442035300131425,y=0.15297020960344554,x2=0.010903610120919078,xy=0.015973203285476814,y2=0.02339988502612206 +a=wye,b=hat,i=1198,x=0.7098332919268155,y=0.13845498744722728,x2=0.5038633023276597,xy=0.09827995952335127,y2=0.019169783549011866 +a=wye,b=hat,i=1199,x=0.35664993432047165,y=0.3645218251998338,x2=0.12719917565079675,xy=0.13000668501589915,y2=0.1328761610470182 +a=pan,b=wye,i=1200,x=0.1647150484954425,y=0.6379619820498607,x2=0.027131047200855973,xy=0.10508193881159142,y2=0.4069954905409867 +a=wye,b=pan,i=1201,x=0.83270638124717,y=0.9548807656837569,x2=0.6933999173697573,xy=0.7951353069150481,y2=0.9117972766727979 +a=cat,b=wye,i=1202,x=0.43001142909773493,y=0.7425920749313834,x2=0.18490982915467633,xy=0.3193230793778964,y2=0.5514429897508972 +a=cat,b=hat,i=1203,x=0.7329732645390651,y=0.9431809128231767,x2=0.5372498065290543,xy=0.6913263927229392,y2=0.8895902343139609 +a=cat,b=wye,i=1204,x=0.7290731704570307,y=0.8949646591052313,x2=0.5315476878802665,xy=0.6524947214608466,y2=0.8009617410473429 +a=pan,b=cat,i=1205,x=0.25322925493758774,y=0.9298982697468532,x2=0.06412505555624581,xy=0.23547744601574763,y2=0.8647107920781913 +a=dog,b=wye,i=1206,x=0.9749604614519463,y=0.32417744747181354,x2=0.950547901394592,xy=0.3160601937794334,y2=0.10509101744934042 +a=cat,b=pan,i=1207,x=0.8314777995642517,y=0.5227494108250007,x2=0.6913553311682099,xy=0.4346545298362806,y2=0.27326694651788536 +a=pan,b=dog,i=1208,x=0.33661841906630885,y=0.06655108628263828,x2=0.11331196005470112,xy=0.022402321451607213,y2=0.004429047085399165 +a=hat,b=hat,i=1209,x=0.30986404247398636,y=0.23825793505507742,x2=0.09601572481832042,xy=0.0738275669076708,y2=0.056766843616709486 +a=hat,b=pan,i=1210,x=0.17730722761279805,y=0.3560127455749533,x2=0.03143785296373657,xy=0.06312363291271542,y2=0.12674507501181645 +a=hat,b=wye,i=1211,x=0.9119554450290102,y=0.0611598553934497,x2=0.83166273371806,xy=0.055775063143243334,y2=0.0037405279117476787 +a=wye,b=pan,i=1212,x=0.8399964869697952,y=0.8504059004347759,x2=0.7055940981215973,xy=0.7143379688635972,y2=0.723190195494282 +a=hat,b=dog,i=1213,x=0.44573913124024467,y=0.24348351632610143,x2=0.19868337311880807,xy=0.10853013103851639,y2=0.05928422272252291 +a=cat,b=wye,i=1214,x=0.4603130670649951,y=0.27368801255740494,x2=0.21188811971078267,xy=0.12598216847922195,y2=0.07490512821762224 +a=dog,b=dog,i=1215,x=0.7037609424578929,y=0.8879790244833483,x2=0.49527946412922164,xy=0.6249249551532415,y2=0.7885067479223989 +a=cat,b=dog,i=1216,x=0.3953143785677151,y=0.4073871432884367,x2=0.1562734579023788,xy=0.1610459953855451,y2=0.16596428451671327 +a=dog,b=cat,i=1217,x=0.526181430061743,y=0.30586743969181684,x2=0.27686689734182096,xy=0.16094176682636413,y2=0.09355489066362721 +a=cat,b=pan,i=1218,x=0.8867757270271591,y=0.5989445701896535,x2=0.7863711900445466,xy=0.5311295066788994,y2=0.3587345981596688 +a=hat,b=dog,i=1219,x=0.13841948204772603,y=0.05135249214326498,x2=0.019159953010360747,xy=0.007108185364330659,y2=0.002637078449324092 +a=dog,b=pan,i=1220,x=0.2459954771391254,y=0.1560564999412034,x2=0.06051377477290597,xy=0.038389193163698224,y2=0.02435363117389882 +a=cat,b=dog,i=1221,x=0.9143791641556079,y=0.4389641087121654,x2=0.8360892558419082,xy=0.4013796348185412,y2=0.19268948873746577 +a=dog,b=dog,i=1222,x=0.15008767036442006,y=0.8251052209242011,x2=0.022526308795418816,xy=0.12383812041403348,y2=0.6807986255963747 +a=dog,b=dog,i=1223,x=0.7101870770582471,y=0.9376914005043703,x2=0.5043656844205366,xy=0.6659363149068529,y2=0.8792651625798473 +a=dog,b=wye,i=1224,x=0.44520684092545226,y=0.8405880196130835,x2=0.19820913120682096,xy=0.374235536731723,y2=0.7065882187170457 +a=hat,b=pan,i=1225,x=0.12587096755685157,y=0.3752704943016385,x2=0.01584350047369798,xy=0.04723566021328519,y2=0.1408279438933961 +a=wye,b=hat,i=1226,x=0.08938872028449751,y=0.970617897717945,x2=0.007990343314100137,xy=0.0867622917622364,y2=0.9420991033704033 +a=wye,b=pan,i=1227,x=0.1443195297875961,y=0.23929652165666815,x2=0.02082812667811284,xy=0.03453516148529765,y2=0.05726282527698025 +a=cat,b=pan,i=1228,x=0.7899541509746342,y=0.5014230517864684,x2=0.6240275606420551,xy=0.39610122115308966,y2=0.25142507686285537 +a=dog,b=dog,i=1229,x=0.9706713416187546,y=0.46104593094313173,x2=0.9422028534399529,xy=0.4475240723364374,y2=0.212563350439219 +a=dog,b=wye,i=1230,x=0.1794553359563008,y=0.053879218624868774,x2=0.03220421760318879,xy=0.009668913279388805,y2=0.002902970199626406 +a=dog,b=dog,i=1231,x=0.3996700063691223,y=0.5511739394072727,x2=0.15973611399109428,xy=0.2202876918733989,y2=0.30379271148173187 +a=wye,b=pan,i=1232,x=0.355156802874253,y=0.5598896285486372,x2=0.126136354627861,xy=0.1988486104377871,y2=0.31347639615633094 +a=cat,b=wye,i=1233,x=0.8202540256885691,y=0.8562502234302561,x2=0.6728166666583038,xy=0.7023426927654044,y2=0.7331644451243635 +a=cat,b=dog,i=1234,x=0.7236085818346178,y=0.021930314770576276,x2=0.5236093797047069,xy=0.01586896397032347,y2=0.000480938705936556 +a=cat,b=pan,i=1235,x=0.6376328703932327,y=0.153824857319812,x2=0.40657567740591305,xy=0.09808378531066118,y2=0.02366208672946052 +a=dog,b=cat,i=1236,x=0.008821831450497752,y=0.6605829141961933,x2=7.782471014099128e-05,xy=0.005827551128117436,y2=0.4363697865279353 +a=pan,b=wye,i=1237,x=0.019736067843255545,y=0.7588608156781,x2=0.0003895123739135856,xy=0.014976928541811223,y2=0.5758697375716313 +a=wye,b=pan,i=1238,x=0.9258166586020053,y=0.9802983599274745,x2=0.8571364853449821,xy=0.9075765520210805,y2=0.9609848744764963 +a=dog,b=cat,i=1239,x=0.19657918430573829,y=0.22985177051739536,x2=0.03864337570230942,xy=0.04518407355953932,y2=0.052831836409981375 +a=wye,b=pan,i=1240,x=0.30072400764264606,y=0.7382587100138145,x2=0.09043492877265424,xy=0.22201211795244438,y2=0.5450259229112614 +a=hat,b=cat,i=1241,x=0.5085858946674511,y=0.9209223771852333,x2=0.25865961225469164,xy=0.46836813112002773,y2=0.8480980248005011 +a=dog,b=hat,i=1242,x=0.7549874884903122,y=0.9946065400158237,x2=0.5700061077769092,xy=0.7509154936825859,y2=0.9892421694422483 +a=cat,b=cat,i=1243,x=0.15289987122066706,y=0.023701936373413668,x2=0.02337837061929657,xy=0.0036240230191753944,y2=0.0005617817878493499 +a=hat,b=cat,i=1244,x=0.0003019398209038737,y=0.0919727340470814,x2=9.116765544746334e-08,xy=2.7770230846215367e-05,y2=0.008458983808095165 +a=pan,b=cat,i=1245,x=0.8402829269564804,y=0.07732864161559194,x2=0.7060753973345498,xy=0.0649779373143183,y2=0.005979718814112658 +a=cat,b=pan,i=1246,x=0.0718872375637084,y=0.79217024461803,x2=0.005167774924541049,xy=0.05694693056575732,y2=0.6275336964581895 +a=dog,b=hat,i=1247,x=0.17248274263681374,y=0.11008471505388406,x2=0.029750296507517322,xy=0.01898771357488606,y2=0.012118644488494848 +a=cat,b=hat,i=1248,x=0.5470209562460591,y=0.378410015008109,x2=0.29923192657235287,xy=0.20699820826282134,y2=0.1431941394584373 +a=dog,b=cat,i=1249,x=0.8379376645858482,y=0.4001626583818123,x2=0.7021395297315854,xy=0.33531136341892037,y2=0.160130153163199 +a=pan,b=pan,i=1250,x=0.6375751472274978,y=0.8655124118639334,x2=0.40650206836216546,xy=0.551829203421374,y2=0.749111735090523 +a=dog,b=hat,i=1251,x=0.7346778726638965,y=0.45564654943834115,x2=0.5397515765819485,xy=0.3347534376280054,y2=0.20761377801506667 +a=wye,b=wye,i=1252,x=0.8350957680694377,y=0.5595201147363097,x2=0.6973849418474841,xy=0.4672528799660185,y2=0.31306275879453316 +a=pan,b=cat,i=1253,x=0.29211930299900446,y=0.7244139650792422,x2=0.08533368718462418,xy=0.21161530256169336,y2=0.5247755928018295 +a=hat,b=wye,i=1254,x=0.8887338453591545,y=0.20959696782842074,x2=0.7898478478868695,xy=0.18627591919377134,y2=0.04393088892286804 +a=pan,b=pan,i=1255,x=0.443909909162025,y=0.10329754285240145,x2=0.19705600745223728,xy=0.04585480286426991,y2=0.010670382359343714 +a=dog,b=wye,i=1256,x=0.05264152379661258,y=0.8889782833216691,x2=0.002771130027629328,xy=0.046797171456149436,y2=0.7902823882175417 +a=wye,b=hat,i=1257,x=0.3698931119871959,y=0.09097174030912514,x2=0.13682091429557222,xy=0.03364982012583333,y2=0.008275857534870904 +a=cat,b=dog,i=1258,x=0.46812609791627513,y=0.3955421850389915,x2=0.21914204355031802,xy=0.18516361964358036,y2=0.1564536201454198 +a=cat,b=hat,i=1259,x=0.2780875029277935,y=0.5077895538992379,x2=0.07733265928461555,xy=0.14120992905665725,y2=0.257850231049187 +a=wye,b=hat,i=1260,x=0.19557419507347884,y=0.43905957261630313,x2=0.03824926577863916,xy=0.08586872250373911,y2=0.19277330830601075 +a=pan,b=hat,i=1261,x=0.5980791709422237,y=0.8821131444143128,x2=0.3576986947149377,xy=0.5275734980885503,y2=0.7781235995485062 +a=pan,b=cat,i=1262,x=0.08817645032241295,y=0.500279859952405,x2=0.007775086391460958,xy=0.04411290221839694,y2=0.2502799382739979 +a=hat,b=dog,i=1263,x=0.24299696523672476,y=0.030242580788100826,x2=0.05904752511425802,xy=0.007348855352434977,y2=0.0009146136927248051 +a=hat,b=cat,i=1264,x=0.5295954768581507,y=0.3309314760872929,x2=0.280471369108612,xy=0.17525981288582157,y2=0.10951564186531451 +a=cat,b=dog,i=1265,x=0.905752507806013,y=0.7191510596061227,x2=0.8203876053968817,xy=0.6513728757295971,y2=0.517178246532609 +a=hat,b=hat,i=1266,x=0.9334075361797493,y=0.14210105344366453,x2=0.8712496285971499,xy=0.13263819418339778,y2=0.020192709389799203 +a=cat,b=hat,i=1267,x=0.6914483245290053,y=0.4504589772986569,x2=0.4781007854939686,xy=0.31146910512220555,y2=0.2029132902289519 +a=pan,b=pan,i=1268,x=0.18194896813725736,y=0.630957364942069,x2=0.0331054270062127,xy=0.11480204148981238,y2=0.39810719637463926 +a=wye,b=dog,i=1269,x=0.5003101503907067,y=0.5897199432774787,x2=0.25031024658397155,xy=0.2950428735095544,y2=0.34776961149919267 +a=wye,b=hat,i=1270,x=0.6034315448665395,y=0.13402176597457927,x2=0.36412962934001847,xy=0.08087296128778218,y2=0.01796183375494489 +a=dog,b=hat,i=1271,x=0.5935499818449671,y=0.0008044408327545494,x2=0.3523015809481608,xy=0.000477475841676813,y2=6.471250534028328e-07 +a=wye,b=cat,i=1272,x=0.4644744356299617,y=0.7622091936894339,x2=0.21573650135377145,xy=0.354026685070868,y2=0.5809628549446969 +a=hat,b=hat,i=1273,x=0.71111248882706,y=0.046093470613435605,x2=0.5056809717658156,xy=0.03277764260659714,y2=0.0021246080331916517 +a=pan,b=dog,i=1274,x=0.08437746758614917,y=0.9602158367689005,x2=0.007119557036251654,xy=0.081020580642675,y2=0.9220144531817999 +a=wye,b=pan,i=1275,x=0.09442311424637628,y=0.35535974402164017,x2=0.008915724503984227,xy=0.03355417370831836,y2=0.12628054767112562 +a=pan,b=wye,i=1276,x=0.6348957100323941,y=0.20224852524666714,x2=0.40309256261753784,xy=0.12840672103948733,y2=0.040904465964451756 +a=wye,b=wye,i=1277,x=0.9452313996763632,y=0.35383848056213607,x2=0.8934623989341366,xy=0.3344592422411055,y2=0.12520167032652116 +a=cat,b=pan,i=1278,x=0.7577531781653619,y=0.9304075630050439,x2=0.5741898790197068,xy=0.7050192878561612,y2=0.8656582332969848 +a=hat,b=cat,i=1279,x=0.6692001711965577,y=0.5576306640146016,x2=0.44782886912950215,xy=0.37316653582302156,y2=0.3109519574493655 +a=pan,b=pan,i=1280,x=0.4594940683388816,y=0.5000196255843276,x2=0.21113479883861683,xy=0.22975605200902702,y2=0.2500196259694911 +a=pan,b=wye,i=1281,x=0.27552198385915716,y=0.9583152358503305,x2=0.07591236358968566,xy=0.26403691494393916,y2=0.9183680912628746 +a=cat,b=dog,i=1282,x=0.18698696789643865,y=0.33464578850893034,x2=0.03496412616310378,xy=0.06257440131259775,y2=0.11198780376676373 +a=dog,b=cat,i=1283,x=0.45712467259773504,y=0.09031131053359154,x2=0.20896296629758646,xy=0.04128352825954041,y2=0.008156132810294802 +a=dog,b=pan,i=1284,x=0.7917634082084332,y=0.7884060770985923,x2=0.6268892945778339,xy=0.6242310826558222,y2=0.6215841424059916 +a=pan,b=pan,i=1285,x=0.3632495793130629,y=0.39832910764967155,x2=0.13195025687111717,xy=0.14469288078189094,y2=0.15866607800098362 +a=wye,b=pan,i=1286,x=0.05045398808922252,y=0.9004970918613318,x2=0.002545604914107408,xy=0.045433669547151154,y2=0.8108950124507157 +a=dog,b=dog,i=1287,x=0.46537064998839495,y=0.5020931377860767,x2=0.2165698418706212,xy=0.23365940988621925,y2=0.25209751901186817 +a=cat,b=hat,i=1288,x=0.19401567281316467,y=0.2958610817180076,x2=0.03764208129714497,xy=0.057401686828749944,y2=0.08753377967534959 +a=hat,b=wye,i=1289,x=0.8065531976690105,y=0.661007460051391,x2=0.6505280606701058,xy=0.5331376805875201,y2=0.43693086224359123 +a=wye,b=cat,i=1290,x=0.4167345553632029,y=0.9638585599173016,x2=0.17366768963376644,xy=0.40167316840015377,y2=0.9290233235258545 +a=wye,b=wye,i=1291,x=0.5890993308702704,y=0.9531628070355647,x2=0.34703802163180036,xy=0.5615075718350798,y2=0.9085193367159171 +a=wye,b=wye,i=1292,x=0.9697370827388256,y=0.7184432159679051,x2=0.9403900096388079,xy=0.6967010283662163,y2=0.5161606545703059 +a=pan,b=pan,i=1293,x=0.41000146000264226,y=0.5100693031049607,x2=0.16810119720429825,xy=0.20912915897556414,y2=0.26017069396998027 +a=pan,b=hat,i=1294,x=0.3062135719920578,y=0.5674927907821685,x2=0.09376675167213516,xy=0.17377399454514936,y2=0.3220480675897341 +a=dog,b=dog,i=1295,x=0.06474535374956214,y=0.5041596111532878,x2=0.00419196083215594,xy=0.03264199237036131,y2=0.25417691351823435 +a=pan,b=dog,i=1296,x=0.9174495038575284,y=0.6776095740778809,x2=0.8417135921284251,xy=0.6216725675468631,y2=0.4591547348820072 +a=wye,b=cat,i=1297,x=0.05331799688336658,y=0.5229200185876776,x2=0.0028428087916546885,xy=0.027881047921307786,y2=0.27344534583973706 +a=cat,b=pan,i=1298,x=0.3160068626914928,y=0.5890542594098647,x2=0.09986033726811999,xy=0.1861451884711721,y2=0.3469849205289041 +a=hat,b=hat,i=1299,x=0.2072848391062655,y=0.12814541657277967,x2=0.04296700452331037,xy=0.026562602056494,y2=0.016421247788611235 +a=cat,b=pan,i=1300,x=0.609674840109402,y=0.5909992841362198,x2=0.37170341066242485,xy=0.3603173940605209,y2=0.3492801538495243 +a=dog,b=dog,i=1301,x=0.5796288173573501,y=0.4257016817868029,x2=0.3359695659110803,xy=0.24674896236111954,y2=0.18122192187611239 +a=dog,b=dog,i=1302,x=0.9118817054703917,y=0.846988303319469,x2=0.8315282447715903,xy=0.7723531385444308,y2=0.7173891859599927 +a=pan,b=wye,i=1303,x=0.4169703117166762,y=0.7994962779047577,x2=0.17386424085310212,xy=0.3333662122142692,y2=0.6391942983835617 +a=cat,b=hat,i=1304,x=0.13852682880846345,y=0.7530205145981622,x2=0.01918968229972934,xy=0.10431354391500067,y2=0.567039895405681 +a=cat,b=dog,i=1305,x=0.3885342626087418,y=0.20925757370208675,x2=0.15095887322091875,xy=0.08130373709363471,y2=0.043788732151684266 +a=pan,b=cat,i=1306,x=0.8557416705878303,y=0.8734297213645742,x2=0.7322938067804508,xy=0.7474302089015838,y2=0.7628794781629977 +a=pan,b=wye,i=1307,x=0.10716129465626512,y=0.5272411144445465,x2=0.011483543072406874,xy=0.05649984041988964,y2=0.27798319276072736 +a=pan,b=cat,i=1308,x=0.08556539709217525,y=0.2440579939012173,x2=0.007321437179541633,xy=0.020882919161677345,y2=0.05956430438708662 +a=wye,b=hat,i=1309,x=0.4349772526179212,y=0.7471972254649456,x2=0.18920521029503484,xy=0.3250137962964755,y2=0.5583036937425128 +a=pan,b=hat,i=1310,x=0.9759801648745264,y=0.14253420620232893,x2=0.9525372822285078,xy=0.13911055806960873,y2=0.02031599993772802 +a=dog,b=dog,i=1311,x=0.360620454838383,y=0.454502894802174,x2=0.13004711244784223,xy=0.16390304064892172,y2=0.20657288138355603 +a=cat,b=cat,i=1312,x=0.6370834204192627,y=0.7331696157351928,x2=0.405875284573107,xy=0.4670902065400531,y2=0.5375376854372903 +a=wye,b=hat,i=1313,x=0.10499935974120844,y=0.5651319889883529,x2=0.011024865546063705,xy=0.059338497013052716,y2=0.31937416497793186 +a=wye,b=hat,i=1314,x=0.9298742811904012,y=0.5845001596194702,x2=0.8646661788193652,xy=0.5435116657818296,y2=0.34164043659518617 +a=wye,b=dog,i=1315,x=0.12051945367449224,y=0.9530771885366903,x2=0.01452493871399808,xy=0.11486434207206296,y2=0.908356127309002 +a=wye,b=pan,i=1316,x=0.2727618459553073,y=0.8629441664612792,x2=0.07439902460894678,xy=0.2353782438003425,y2=0.744672634429552 +a=pan,b=dog,i=1317,x=0.36438644148867383,y=0.7704211206115722,x2=0.13277747874077872,xy=0.28073101058736716,y2=0.5935487030843907 +a=hat,b=hat,i=1318,x=0.8568068178360483,y=0.7767586117883688,x2=0.7341179230903352,xy=0.6655320743931387,y2=0.6033539409873938 +a=dog,b=pan,i=1319,x=0.8922495916804474,y=0.012941737130864772,x2=0.796109333853925,xy=0.011547259670649778,y2=0.00016748855996440395 +a=pan,b=pan,i=1320,x=0.8626651570404971,y=0.406411849427885,x2=0.7441911731717055,xy=0.3505973419098253,y2=0.16517059135539386 +a=cat,b=wye,i=1321,x=0.34747795978064333,y=0.5149968839028906,x2=0.12074093253331838,xy=0.17895006651196524,y2=0.26522179042968735 +a=dog,b=wye,i=1322,x=0.23830442449475375,y=0.7271069301204073,x2=0.05678899873377579,xy=0.17327279852849078,y2=0.5286844878291228 +a=cat,b=pan,i=1323,x=0.09287445972986075,y=0.8917392928686774,x2=0.008625665270113526,xy=0.08281980504506647,y2=0.7951989664459288 +a=hat,b=cat,i=1324,x=0.35081527077194585,y=0.7536940586117985,x2=0.12307135420679369,xy=0.2644073852511049,y2=0.5680547339867251 +a=wye,b=hat,i=1325,x=0.10192472917376827,y=0.9404881667594776,x2=0.010388650417146008,xy=0.09585900168809355,y2=0.8845179918146029 +a=wye,b=wye,i=1326,x=0.6110597678648207,y=0.35617421567299123,x2=0.3733940399030086,xy=0.2176437335485726,y2=0.12686007191027046 +a=pan,b=wye,i=1327,x=0.31914560213095555,y=0.8636634576979166,x2=0.10185391535953019,xy=0.2756343942455047,y2=0.7459145681627211 +a=pan,b=cat,i=1328,x=0.24438961193058029,y=0.7973815656193725,x2=0.059726282419579634,xy=0.19487177138231698,y2=0.6358173611896016 +a=pan,b=hat,i=1329,x=0.1036012027987635,y=0.5550550565830947,x2=0.010733209221350523,xy=0.05750437148154435,y2=0.3080861158384625 +a=dog,b=cat,i=1330,x=0.32926870072325665,y=0.8466435075064959,x2=0.10841787727598155,xy=0.2787732076924447,y2=0.7168052288029019 +a=dog,b=wye,i=1331,x=0.9802656048578349,y=0.9431768957041479,x2=0.9609206560672968,xy=0.9245638701553616,y2=0.889582656590113 +a=dog,b=hat,i=1332,x=0.8962952905759901,y=0.31641509451119587,x2=0.8033452479086985,xy=0.2836013590775417,y2=0.10011851203452901 +a=hat,b=wye,i=1333,x=0.032026645297779543,y=0.09784931062734303,x2=0.0010257060090297844,xy=0.003133785164094166,y2=0.009574487590246266 +a=cat,b=wye,i=1334,x=0.8754005993404697,y=0.41678957651506,x2=0.7663262093256534,xy=0.36485784508014407,y2=0.17371355109160305 +a=cat,b=dog,i=1335,x=0.7036518195894103,y=0.2769453583768763,x2=0.495125883211488,xy=0.1948731053487303,y2=0.07669873152649644 +a=wye,b=dog,i=1336,x=0.5165243951313276,y=0.42434006291526427,x2=0.2667974507657839,xy=0.2191819943272964,y2=0.18006448899493044 +a=cat,b=hat,i=1337,x=0.13033411237488224,y=0.28111539223703563,x2=0.01698698084854843,xy=0.0366389251221309,y2=0.07902586375258239 +a=pan,b=pan,i=1338,x=0.28490550758539046,y=0.7306416069236189,x2=0.08117114825248899,xy=0.208163817883579,y2=0.5338371577679281 +a=cat,b=hat,i=1339,x=0.5694077497715048,y=0.9962316825250905,x2=0.3242251854998486,xy=0.5672620405976919,y2=0.9924775652667728 +a=dog,b=hat,i=1340,x=0.15590394809440555,y=0.5898433860158557,x2=0.0243060410314231,xy=0.09195891263724439,y2=0.3479152200266498 +a=dog,b=pan,i=1341,x=0.6003950461936786,y=0.8198112574477217,x2=0.3604742114939094,xy=0.4922106177854225,y2=0.6720904978380146 +a=pan,b=wye,i=1342,x=0.36315346596462383,y=0.7493664806721014,x2=0.1318804398421192,xy=0.2721350347337859,y2=0.561550122354891 +a=cat,b=wye,i=1343,x=0.6421101334356485,y=0.8328811865952982,x2=0.41230542346074633,xy=0.5348014498607482,y2=0.693691070984392 +a=hat,b=pan,i=1344,x=0.7661127041531015,y=0.6894482017443371,x2=0.5869286754647777,xy=0.5281950262118471,y2=0.4753388228885001 +a=pan,b=pan,i=1345,x=0.4759604984469762,y=0.8616528616190144,x2=0.22653839608189402,xy=0.4101127255044495,y2=0.7424456539362364 +a=dog,b=cat,i=1346,x=0.22188183101325643,y=0.915064692367077,x2=0.04923154693379528,xy=0.20303622943798924,y2=0.8373433912168533 +a=dog,b=dog,i=1347,x=0.9208912790263596,y=0.49420571014645875,x2=0.8480407477868045,xy=0.45510972851890275,y2=0.2442392839413656 +a=dog,b=wye,i=1348,x=0.8467666552722811,y=0.942258648149609,x2=0.7170137684810062,xy=0.7978732038950256,y2=0.8878513600127287 +a=hat,b=hat,i=1349,x=0.09019580643306802,y=0.5668952833739302,x2=0.008135283498111474,xy=0.051131577247014254,y2=0.3213702623116087 +a=dog,b=hat,i=1350,x=0.6550191801524471,y=0.32506206782235547,x2=0.42905012636758394,xy=0.21292188916365842,y2=0.10566534793694562 +a=wye,b=cat,i=1351,x=0.8690839589227304,y=0.1824626004555484,x2=0.7553069276568061,xy=0.1585753191592444,y2=0.03329260056500109 +a=pan,b=cat,i=1352,x=0.9314074859896871,y=0.13373488380373733,x2=0.8675199049576292,xy=0.1245616719127619,y2=0.017885019145999125 +a=pan,b=wye,i=1353,x=0.5885458895544678,y=0.6924498690301565,x2=0.34638626411145984,xy=0.40753852414022823,y2=0.4794868211198809 +a=hat,b=dog,i=1354,x=0.7069862790399287,y=0.4646549024385439,x2=0.49982959875072397,xy=0.32850464051268724,y2=0.21590417836017275 +a=pan,b=hat,i=1355,x=0.7862895251624157,y=0.2614772772981365,x2=0.6182512173801371,xy=0.20559684420751306,y2=0.06837036654324659 +a=hat,b=hat,i=1356,x=0.8738403717900255,y=0.22150598992111536,x2=0.76359699537013,xy=0.1935608765863851,y2=0.04906490357093326 +a=dog,b=wye,i=1357,x=0.43466568972781705,y=0.4222392477016015,x2=0.18893426182655892,xy=0.1835329138323712,y2=0.17828598229961437 +a=hat,b=dog,i=1358,x=0.711748884597892,y=0.25645940614412344,x2=0.5065864747263433,xy=0.18253469626771762,y2=0.06577142699979646 +a=cat,b=cat,i=1359,x=0.6180047192178522,y=0.06044898556350575,x2=0.3819298329755363,xy=0.03735775835017837,y2=0.003654079855656927 +a=hat,b=hat,i=1360,x=0.2708340339490777,y=0.23161818324706895,x2=0.07335107394513016,xy=0.06273008690476037,y2=0.053646982810672816 +a=cat,b=wye,i=1361,x=0.4659498048108057,y=0.11016246737554947,x2=0.21710922060322796,xy=0.05133018017111403,y2=0.012135769218269001 +a=wye,b=dog,i=1362,x=0.7531416742891262,y=0.34873353501849025,x2=0.5672223815510282,xy=0.26264575844459137,y2=0.12161507844649257 +a=cat,b=cat,i=1363,x=0.864278486066686,y=0.3291451686100988,x2=0.7469773014777228,xy=0.28447308802250026,y2=0.10833654201937036 +a=dog,b=pan,i=1364,x=0.28375807360599525,y=0.415196967779604,x2=0.08051864433658543,xy=0.11781549174419091,y2=0.17238852205337754 +a=cat,b=pan,i=1365,x=0.9519640755452027,y=0.5724428475007298,x2=0.9062356011286323,xy=0.5449450261234957,y2=0.32769081365474384 +a=wye,b=cat,i=1366,x=0.8729459872971888,y=0.30097510878623235,x2=0.7620346967382636,xy=0.26273501349127637,y2=0.09058601610888439 +a=dog,b=cat,i=1367,x=0.5288238699834243,y=0.906229923389107,x2=0.2796546854642457,xy=0.47923601518140974,y2=0.8212526740458268 +a=cat,b=hat,i=1368,x=0.8677752360596517,y=0.5057105656441789,x2=0.7530338603183842,xy=0.43884310547973737,y2=0.25574317620415543 +a=pan,b=pan,i=1369,x=0.13928618456519037,y=0.4981223118846513,x2=0.01940064121072828,xy=0.06938155626920486,y2=0.2481258375973098 +a=hat,b=pan,i=1370,x=0.14926005556219812,y=0.6825801026593413,x2=0.022278564186430472,xy=0.10188194404858418,y2=0.46591559654643694 +a=cat,b=pan,i=1371,x=0.8874762541378755,y=0.430727170868458,x2=0.7876141016585949,xy=0.38226013615774374,y2=0.18552589572434583 +a=pan,b=cat,i=1372,x=0.055481587623166795,y=0.020130916319327286,x2=0.003078206565187135,xy=0.0011168951977053952,y2=0.0004052537918557576 +a=hat,b=wye,i=1373,x=0.01773252916422907,y=0.7038538617279082,x2=0.00031444259056023457,xy=0.012481109130445388,y2=0.49541025866928934 +a=cat,b=pan,i=1374,x=0.5772467643960123,y=0.08979702996792505,x2=0.3332138270056653,xy=0.05183504500135649,y2=0.00806350659106043 +a=wye,b=dog,i=1375,x=0.7186819696362957,y=0.9750853169337808,x2=0.5165037734803055,xy=0.7007762361374013,y2=0.9507913752998517 +a=pan,b=pan,i=1376,x=0.012127435402209952,y=0.737649467492079,x2=0.00014707468943477524,xy=0.008945796266484759,y2=0.5441267368913478 +a=pan,b=hat,i=1377,x=0.1176493243314749,y=0.03953239943871212,x2=0.013841363515652573,xy=0.004650960083166458,y2=0.001562810605381886 +a=dog,b=wye,i=1378,x=0.8404549058183635,y=0.5233749071680257,x2=0.7063644487141542,xy=0.43987300831159776,y2=0.27392129345313954 +a=wye,b=hat,i=1379,x=0.6830083895212168,y=0.1943755073990716,x2=0.4665004601563662,xy=0.13276010227100926,y2=0.037781837876646546 +a=dog,b=wye,i=1380,x=0.036699727556552375,y=0.22841271630687543,x2=0.0013468700027251697,xy=0.008382684458914417,y2=0.052172368970685154 +a=cat,b=wye,i=1381,x=0.24980580942734343,y=0.3359096035218332,x2=0.06240294242365022,xy=0.08391217040218955,y2=0.11283526173819516 +a=cat,b=pan,i=1382,x=0.12838778331057865,y=0.6008614102707441,x2=0.0164834229034041,xy=0.07714326454152899,y2=0.3610344343525475 +a=hat,b=hat,i=1383,x=0.2916895193626061,y=0.03032448567581081,x2=0.08508277570598817,xy=0.008845334651695489,y2=0.0009195744315024549 +a=cat,b=hat,i=1384,x=0.9402388854624985,y=0.4879444803737807,x2=0.8840491617357613,xy=0.4587843743942215,y2=0.23808981592723885 +a=dog,b=cat,i=1385,x=0.94601401053633,y=0.16234319195761016,x2=0.8949425081310316,xy=0.15357893410708806,y2=0.02635531197498546 +a=pan,b=pan,i=1386,x=0.5043323260351605,y=0.5370015925014423,x2=0.2543510950840355,xy=0.2708272622308378,y2=0.28837071034908507 +a=pan,b=cat,i=1387,x=0.6028547009079508,y=0.8671091734910473,x2=0.3634337904068148,xy=0.5227408414394857,y2=0.7518783187523272 +a=hat,b=hat,i=1388,x=0.5090633985401595,y=0.11630855862341449,x2=0.2591455437332572,xy=0.059208430132142754,y2=0.013527680809056246 +a=wye,b=hat,i=1389,x=0.871750098695372,y=0.07013210455112173,x2=0.7599482345753908,xy=0.06113766906415452,y2=0.00491851208876947 +a=wye,b=wye,i=1390,x=0.1869280613978892,y=0.12584623841447395,x2=0.03494210013797303,xy=0.02352419338103419,y2=0.01583727572307262 +a=wye,b=pan,i=1391,x=0.21402115392833831,y=0.9800494903428287,x2=0.045805054328817485,xy=0.20975132283005207,y2=0.9604970035212383 +a=wye,b=dog,i=1392,x=0.551059079038248,y=0.10685292449326611,x2=0.3036661085904821,xy=0.05888227416380268,y2=0.011417547472763629 +a=cat,b=wye,i=1393,x=0.4678244968269991,y=0.7249906295286983,x2=0.2188597598314349,xy=0.33916837646355263,y2=0.5256114129044183 +a=cat,b=cat,i=1394,x=0.7167722114927373,y=0.28712631644066244,x2=0.5137624031681893,xy=0.20580416481293712,y2=0.08244152159278342 +a=pan,b=wye,i=1395,x=0.2762204757261446,y=0.011486475128392848,x2=0.07629775121037764,xy=0.0031727996243812004,y2=0.0001319391108751875 +a=hat,b=cat,i=1396,x=0.5819182194871779,y=0.5886751143305508,x2=0.3386288141711274,xy=0.342560774387645,y2=0.346538390232087 +a=hat,b=pan,i=1397,x=0.19288150561327133,y=0.11249178081954025,x2=0.03720327520764242,xy=0.02169758405359104,y2=0.012654400751951485 +a=cat,b=cat,i=1398,x=0.24399120748834546,y=0.41029668051499657,x2=0.059531709331620844,xy=0.10010878250731392,y2=0.16834336604162517 +a=cat,b=cat,i=1399,x=0.17220187835057998,y=0.6494609231347691,x2=0.029653486907467948,xy=0.11183839087910889,y2=0.42179949067906647 +a=pan,b=cat,i=1400,x=0.17220507948844355,y=0.9939455961997427,x2=0.029654589401621162,xy=0.1711624804007651,y2=0.9879278482048619 +a=dog,b=wye,i=1401,x=0.9721778010832514,y=0.13451363018016638,x2=0.9451296769190658,xy=0.13077116520427984,y2=0.018093916704246565 +a=wye,b=hat,i=1402,x=0.5658764529186242,y=0.09047444065190158,x2=0.3202161599677639,xy=0.05119735555589464,y2=0.008185624411274461 +a=pan,b=dog,i=1403,x=0.3906650291185706,y=0.8340390004173398,x2=0.1526191649762136,xy=0.3258298703840636,y2=0.6956210542171554 +a=dog,b=dog,i=1404,x=0.4934751758900321,y=0.29889026279686437,x2=0.2435177492196981,xy=0.14749492500550057,y2=0.08933538919477864 +a=cat,b=pan,i=1405,x=0.9045117334972449,y=0.9676855030380848,x2=0.818141476034191,xy=0.8752828918331315,y2=0.9364152327900711 +a=hat,b=pan,i=1406,x=0.1439073258172452,y=0.6346571251787796,x2=0.020709318423870766,xy=0.0913318096953388,y2=0.4027896665401931 +a=dog,b=pan,i=1407,x=0.8469730435544695,y=0.41014970787877403,x2=0.7173633365079212,xy=0.3473857463950618,y2=0.16822278287304368 +a=dog,b=pan,i=1408,x=0.8688722371484102,y=0.11846976397020581,x2=0.7549389644872833,xy=0.10293508885523685,y2=0.014035084975156275 +a=dog,b=cat,i=1409,x=0.9202028068692502,y=0.6295966148394991,x2=0.8467732057700466,xy=0.5793565721706853,y2=0.39639189741735664 +a=cat,b=dog,i=1410,x=0.6843494473937148,y=0.01567965052287723,x2=0.4683341661480829,xy=0.010730360170657606,y2=0.00024585144051956424 +a=wye,b=dog,i=1411,x=0.6734529541868731,y=0.1841112509992,x2=0.4535388815030266,xy=0.12399026588445214,y2=0.03389695274449042 +a=cat,b=wye,i=1412,x=0.9396933186751201,y=0.086711644119988,x2=0.8830235331626608,xy=0.08148235263088748,y2=0.0075189092259914485 +a=dog,b=hat,i=1413,x=0.2844730851848265,y=0.5095482304423925,x2=0.08092493619457355,xy=0.14495275716441633,y2=0.25963939914697354 +a=wye,b=hat,i=1414,x=0.4743476649105962,y=0.5142851449565702,x2=0.22500570720613527,xy=0.24394995760835655,y2=0.2644892103230004 +a=wye,b=hat,i=1415,x=0.16895553027547872,y=0.46153937019693836,x2=0.028545971210668205,xy=0.07797962903463419,y2=0.21301859024178652 +a=pan,b=dog,i=1416,x=0.32582961061066795,y=0.03585131824293797,x2=0.1061649351506995,xy=0.011681421062975615,y2=0.0012853170197564168 +a=hat,b=hat,i=1417,x=0.3026418357254389,y=0.004614752454422111,x2=0.09159208073126354,xy=0.0013966171542247824,y2=2.1295940215594896e-05 +a=pan,b=pan,i=1418,x=0.42304084167773315,y=0.12392812416721377,x2=0.17896355372740488,xy=0.052426657955240735,y2=0.015358179959604354 +a=hat,b=hat,i=1419,x=0.8459599975145355,y=0.10566339134758163,x2=0.715648317394793,xy=0.08938700228177755,y2=0.011164752271072187 +a=wye,b=wye,i=1420,x=0.9310295079548001,y=0.17466407501923698,x2=0.8668159446825572,xy=0.1626174078225405,y2=0.03050753910232564 +a=dog,b=cat,i=1421,x=0.502209665448799,y=0.9885386088080114,x2=0.2522145480701946,xy=0.49645364401269254,y2=0.9772085811040785 +a=dog,b=cat,i=1422,x=0.7729461330006621,y=0.39309585669646974,x2=0.5974457245206771,xy=0.3038419223321187,y2=0.15452435255193148 +a=pan,b=hat,i=1423,x=0.6199712813809483,y=0.26981177277874735,x2=0.38436438973713494,xy=0.16727555050130524,y2=0.07279839273001039 +a=cat,b=hat,i=1424,x=0.20555135841236738,y=0.869583767645243,x2=0.042251360945169514,xy=0.17874412469282414,y2=0.7561759289520961 +a=hat,b=cat,i=1425,x=0.9130691761644157,y=0.14367810795564318,x2=0.8336953204615649,xy=0.1311880516639211,y2=0.020643398705713453 +a=dog,b=pan,i=1426,x=0.23123876984973346,y=0.7920929241051321,x2=0.053471368681618,xy=0.18316259337674903,y2=0.6274112004174186 +a=hat,b=cat,i=1427,x=0.5608888924642393,y=0.305055776481581,x2=0.314596349689761,xy=0.17110239661057253,y2=0.09305902676478031 +a=cat,b=wye,i=1428,x=0.9095930130183074,y=0.4767794622095476,x2=0.8273594493317228,xy=0.43367526757643066,y2=0.22731865558482542 +a=wye,b=wye,i=1429,x=0.10863587137597741,y=0.9286459149556059,x2=0.011801752549617909,xy=0.10088425817094406,y2=0.8623832353637344 +a=hat,b=wye,i=1430,x=0.8622224940251898,y=0.5334741714008802,x2=0.7434276292030184,xy=0.4599734305632885,y2=0.2845946915518557 +a=hat,b=wye,i=1431,x=0.09742334198191993,y=0.9810984813848357,x2=0.009491307562926123,xy=0.09558189286989716,y2=0.9625542301756308 +a=cat,b=hat,i=1432,x=0.2601610612236708,y=0.36480352975322794,x2=0.06768377777702657,xy=0.09490767343874074,y2=0.13308161532041426 +a=dog,b=cat,i=1433,x=0.8265198575453196,y=0.9324939966679968,x2=0.6831350749167355,xy=0.7707248052878986,y2=0.8695450538218541 +a=wye,b=wye,i=1434,x=0.6946765335260483,y=0.20200928081444647,x2=0.4825754862317669,xy=0.14033110693626974,y2=0.04080774953516989 +a=cat,b=cat,i=1435,x=0.8255836799033486,y=0.24916816524689422,x2=0.6815884125227547,xy=0.2057091707792966,y2=0.06208477457250359 +a=wye,b=hat,i=1436,x=0.2174053265016268,y=0.4824524435442561,x2=0.04726507599127895,xy=0.10488773101024666,y2=0.23276036028182362 +a=pan,b=dog,i=1437,x=0.771373898754349,y=0.04186581312981008,x2=0.5950176916794847,xy=0.032294195498462616,y2=0.0017527463090201783 +a=hat,b=pan,i=1438,x=0.19182670076601294,y=0.45537709476990573,x2=0.036797483126773466,xy=0.08735348569412302,y2=0.2073682984410797 +a=hat,b=wye,i=1439,x=0.714222708220045,y=0.7453977101018939,x2=0.5101140769371755,xy=0.5323799712099947,y2=0.5556177462251471 +a=cat,b=cat,i=1440,x=0.8322586744033202,y=0.10313297668924326,x2=0.6926545011195718,xy=0.08583331446665812,y2=0.010636410880783993 +a=cat,b=dog,i=1441,x=0.9472799723818048,y=0.426334179527565,x2=0.8973393460756729,xy=0.4038578298082912,y2=0.18176083263344206 +a=hat,b=wye,i=1442,x=0.11366628807823498,y=0.8539618874961815,x2=0.012920025045484304,xy=0.09706667791197425,y2=0.729250905296041 +a=cat,b=pan,i=1443,x=0.4448661611242415,y=0.7520612280086222,x2=0.1979059013134196,xy=0.3345665914345786,y2=0.5655960906738368 +a=pan,b=wye,i=1444,x=0.9435596776538897,y=0.02257313941287642,x2=0.8903048652943123,xy=0.021299104148049988,y2=0.0005095466229531548 +a=cat,b=hat,i=1445,x=0.859783392830569,y=0.8780331181941216,x2=0.7392274825872446,xy=0.7549182933785459,y2=0.7709421566456922 +a=cat,b=hat,i=1446,x=0.6519916814535887,y=0.7185339592232461,x2=0.42509315268467784,xy=0.46847816425546857,y2=0.5162910505570335 +a=cat,b=dog,i=1447,x=0.10377307114420198,y=0.21704859436178736,x2=0.010768850294699605,xy=0.022523799224454796,y2=0.04711009231442771 +a=wye,b=pan,i=1448,x=0.9273173576733522,y=0.9318729218015536,x2=0.8599174818422879,xy=0.8641419355323631,y2=0.8683871423869644 +a=hat,b=pan,i=1449,x=0.6375012429444301,y=0.5310388147952827,x2=0.4064078347556933,xy=0.3385379044837297,y2=0.2820022228191786 +a=hat,b=cat,i=1450,x=0.6153045495441312,y=0.3948073863559951,x2=0.37859968868970617,xy=0.24292678101847132,y2=0.155872872321252 +a=cat,b=pan,i=1451,x=0.104775482636281,y=0.047012890653388206,x2=0.010977901761665621,xy=0.004925798308335454,y2=0.002210211887587436 +a=cat,b=pan,i=1452,x=0.704306898081268,y=0.3590456724638449,x2=0.49604820668485766,xy=0.25287834384251356,y2=0.1289137949150146 +a=pan,b=pan,i=1453,x=0.4850397789341774,y=0.27946084955758654,x2=0.23526358714851567,xy=0.13554962869016918,y2=0.07809836643544801 +a=hat,b=cat,i=1454,x=0.7139052975695583,y=0.9627736757283823,x2=0.5096607738978797,xy=0.6873292274630083,y2=0.9269331506755403 +a=wye,b=wye,i=1455,x=0.007982364048064072,y=0.9976141705705273,x2=6.371813579582584e-05,xy=0.007963319489001437,y2=0.9952340333231211 +a=wye,b=cat,i=1456,x=0.7449673176112723,y=0.37483093904443254,x2=0.5549763043089343,xy=0.2792367992176452,y2=0.1404982328649311 +a=hat,b=dog,i=1457,x=0.9599744936672627,y=0.9843133756536661,x2=0.9215510284917174,xy=0.9449157344030422,y2=0.9688728214907151 +a=pan,b=dog,i=1458,x=0.8233716461878181,y=0.891969123189684,x2=0.6779408677460376,xy=0.7344220853093949,y2=0.7956089167237738 +a=cat,b=dog,i=1459,x=0.7308968293550443,y=0.037240833426733455,x2=0.5342101751612568,xy=0.027219207074138833,y2=0.001386879674317708 +a=pan,b=pan,i=1460,x=0.07085408330425413,y=0.1755347772797169,x2=0.005020301120886184,xy=0.012437355732170757,y2=0.030812458034639813 +a=wye,b=hat,i=1461,x=0.0006779422696939763,y=0.3334548999208484,x2=4.596057210378201e-07,xy=0.0002260631716929177,y2=0.11119217028122304 +a=cat,b=wye,i=1462,x=0.9686895422147692,y=0.7895826259809053,x2=0.9383594291962591,xy=0.7648604325021785,y2=0.6234407232509023 +a=dog,b=hat,i=1463,x=0.6659257291779056,y=0.9214760431929409,x2=0.4434570767811253,xy=0.6136346059832304,y2=0.8491180981785186 +a=wye,b=cat,i=1464,x=0.2281620156044537,y=0.3336094097972423,x2=0.05205790536468698,xy=0.07611699536395099,y2=0.11129523830526435 +a=wye,b=cat,i=1465,x=0.3611555760881471,y=0.8092916112370757,x2=0.1304333501395614,xy=0.29228017807963086,y2=0.6549529120187021 +a=wye,b=dog,i=1466,x=0.3489899877303331,y=0.2809129395093045,x2=0.12179401153601803,xy=0.09803580331264398,y2=0.07891207958375818 +a=pan,b=pan,i=1467,x=0.11346480630238476,y=0.5360131594723014,x2=0.012874262269237692,xy=0.060818629315053954,y2=0.28731010712747884 +a=pan,b=cat,i=1468,x=0.5775881715751248,y=0.2280737250945013,x2=0.3336080959434958,xy=0.13173268586166065,y2=0.05201762407848215 +a=hat,b=pan,i=1469,x=0.3062476674620713,y=0.28706130041795064,x2=0.09378763382595942,xy=0.08791185367162631,y2=0.0824041901976449 +a=dog,b=dog,i=1470,x=0.030478198313291682,y=0.5848530546223129,x2=0.000928920572424336,xy=0.017825267382913262,y2=0.34205309550105006 +a=cat,b=pan,i=1471,x=0.44505369311904597,y=0.9523208692427725,x2=0.19807278975890194,xy=0.42383391989083596,y2=0.9069150379953098 +a=cat,b=pan,i=1472,x=0.20291236499826126,y=0.04960947407654792,x2=0.0411734278691876,xy=0.010066375711192272,y2=0.00246109991815168 +a=dog,b=pan,i=1473,x=0.09949313982898744,y=0.7183672544226375,x2=0.009898884873030447,xy=0.07147261369283726,y2=0.5160515122267184 +a=cat,b=hat,i=1474,x=0.352809068548661,y=0.024962652522327655,x2=0.12447423885017378,xy=0.008807050184906304,y2=0.0006231340209504713 +a=wye,b=cat,i=1475,x=0.6608084684008684,y=0.8598299398147315,x2=0.43666783191030145,xy=0.5681829056141836,y2=0.7393075254018049 +a=pan,b=hat,i=1476,x=0.5669052214370769,y=0.17926469808528966,x2=0.32138153009262116,xy=0.10162609336389188,y2=0.032135831979610056 +a=pan,b=hat,i=1477,x=0.8099020676087838,y=0.8915148799264969,x2=0.655941359116983,xy=0.7220397445564665,y2=0.7947987811303562 +a=dog,b=pan,i=1478,x=0.6296682139425525,y=0.6104249412189928,x2=0.39648205964960404,xy=0.3843651824833508,y2=0.3726186088622108 +a=hat,b=dog,i=1479,x=0.04076624893321379,y=0.5327214484144159,x2=0.0016618870520847544,xy=0.02171705517812429,y2=0.2837921416007532 +a=hat,b=cat,i=1480,x=0.509190032309779,y=0.14952434255595937,x2=0.25927448900363376,xy=0.07613630481716742,y2=0.02235752901679188 +a=pan,b=cat,i=1481,x=0.31131749285840704,y=0.3884471378381704,x2=0.09691858135964432,xy=0.12093038905980327,y2=0.15089117889466658 +a=wye,b=cat,i=1482,x=0.21416750317699285,y=0.1925486742632878,x2=0.04586771941706724,xy=0.04123766880700845,y2=0.03707499196054971 +a=pan,b=hat,i=1483,x=0.41127580324322,y=0.6916409695224564,x2=0.1691477863333558,xy=0.28445519529626767,y2=0.4783672307219634 +a=hat,b=wye,i=1484,x=0.5036290543263833,y=0.5124414036336514,x2=0.2536422243616871,xy=0.2580803795097003,y2=0.2625961921580269 +a=dog,b=wye,i=1485,x=0.48067604837123523,y=0.25561201998460414,x2=0.23104946347778607,xy=0.12286657568238873,y2=0.06533750476060966 +a=pan,b=pan,i=1486,x=0.5308171816038317,y=0.44140631297419275,x2=0.2817668802858353,xy=0.23430605499509985,y2=0.194839533133471 +a=wye,b=wye,i=1487,x=0.4217420866304358,y=0.484250357788911,x2=0.177866387635394,xy=0.20422875634543042,y2=0.23449840901868832 +a=pan,b=wye,i=1488,x=0.4464763932559691,y=0.06247195527210159,x2=0.19934116973485877,xy=0.027892253269536142,y2=0.0039027451955194613 +a=hat,b=wye,i=1489,x=0.42274885425062425,y=0.07596963234716747,x2=0.17871659377021554,xy=0.03211607503260621,y2=0.005771385038963794 +a=dog,b=cat,i=1490,x=0.692927713608303,y=0.24544000498853658,x2=0.48014881628643036,xy=0.17007218148471712,y2=0.06024079604877286 +a=hat,b=hat,i=1491,x=0.6087531065526952,y=0.26160208208492797,x2=0.3705803447375571,xy=0.15925108014985306,y2=0.06843564935116939 +a=cat,b=dog,i=1492,x=0.7254141100100487,y=0.8302926192061462,x2=0.5262256310016711,xy=0.6023059814093388,y2=0.6893858335082025 +a=cat,b=hat,i=1493,x=0.5475753320134177,y=0.5217686968248798,x2=0.2998387442296046,xy=0.28570766739809184,y2=0.27224257298633336 +a=dog,b=hat,i=1494,x=0.5260468562076355,y=0.2818852314330206,x2=0.2767252949259367,xy=0.14828483980670223,y2=0.07945928370004757 +a=cat,b=pan,i=1495,x=0.5403536562906746,y=0.1281330591107771,x2=0.29198207386670044,xy=0.06923716698221753,y2=0.0164180808370859 +a=hat,b=cat,i=1496,x=0.8633531871432814,y=0.446911367789502,x2=0.7453787257504618,xy=0.3858423537516298,y2=0.19972977065948355 +a=cat,b=dog,i=1497,x=0.38131923662715583,y=0.8674734444664344,x2=0.14540436022191686,xy=0.3307843116382702,y2=0.75251017685446 +a=hat,b=dog,i=1498,x=0.3261180226468561,y=0.7253611203309942,x2=0.10635296469509534,xy=0.23655333426725206,y2=0.5261487548878351 +a=wye,b=dog,i=1499,x=0.6732522088500549,y=0.6621067180227186,x2=0.45326853672147793,xy=0.4457648104032557,y2=0.43838530605081577 +a=wye,b=pan,i=1500,x=0.9808737380624147,y=0.5425302090855434,x2=0.9621132900205346,xy=0.5321536341975204,y2=0.29433902777040344 +a=pan,b=pan,i=1501,x=0.5780096357980177,y=0.8550994240994678,x2=0.33409513907535704,xy=0.49425570669482805,y2=0.7311950250952415 +a=hat,b=pan,i=1502,x=0.2774932582132752,y=0.9027623326364321,x2=0.07700250835381942,xy=0.25051046107550007,y2=0.8149798292271722 +a=hat,b=cat,i=1503,x=0.5632544178950221,y=0.7213298388492506,x2=0.31725553927826017,xy=0.4062922184913447,y2=0.5203167364142859 +a=hat,b=wye,i=1504,x=0.24924662977999656,y=0.5133814433421646,x2=0.06212388245668667,xy=0.1279585945446248,y2=0.2635605063680842 +a=dog,b=cat,i=1505,x=0.9052135431451185,y=0.9064647142531286,x2=0.8194115586933393,xy=0.8205441357251019,y2=0.821678278186006 +a=pan,b=hat,i=1506,x=0.39901457386442973,y=0.6385244972604642,x2=0.15921263015621245,xy=0.2547805801763834,y2=0.4077135336017286 +a=pan,b=hat,i=1507,x=0.42560907422849514,y=0.7385824097799405,x2=0.1811430840656367,xy=0.3143473756678915,y2=0.5455039760363439 +a=wye,b=dog,i=1508,x=0.24836853850846896,y=0.10510099225675706,x2=0.06168693092083283,xy=0.026103779842600663,y2=0.011046218573354909 +a=cat,b=pan,i=1509,x=0.19405289787876656,y=0.757765187724275,x2=0.037656527175147,xy=0.14704653058954312,y2=0.5742080797268058 +a=cat,b=pan,i=1510,x=0.42619538892527276,y=0.8177257976529756,x2=0.1816425095411645,xy=0.34851096436493884,y2=0.6686754801471951 +a=cat,b=cat,i=1511,x=0.3119961308047905,y=0.2692771758370184,x2=0.09734158563715994,xy=0.08401343697519095,y2=0.07251019742676051 +a=dog,b=pan,i=1512,x=0.4956268080174796,y=0.34898138069783036,x2=0.24564593282559558,xy=0.17296452777279853,y2=0.121788004073764 +a=hat,b=hat,i=1513,x=0.9928788688650781,y=0.1805357299725343,x2=0.9858084482387971,xy=0.17925011136486105,y2=0.03259314979671582 +a=pan,b=dog,i=1514,x=0.6448737665685752,y=0.10975042360679177,x2=0.4158621748083412,xy=0.07077516905380848,y2=0.012045155481870237 +a=pan,b=cat,i=1515,x=0.1094473216590276,y=0.34122267308228693,x2=0.011978716218334651,xy=0.03734590765819028,y2=0.11643291262542126 +a=cat,b=cat,i=1516,x=0.08811008185638147,y=0.20179679125663352,x2=0.007763386524738244,xy=0.017780331795977104,y2=0.04072194496147332 +a=hat,b=hat,i=1517,x=0.499677763055302,y=0.45791040648205683,x2=0.2496778668919505,xy=0.22880764759069822,y2=0.2096819403645625 +a=hat,b=hat,i=1518,x=0.3841861055633752,y=0.29467543539117547,x2=0.14759896370795286,xy=0.11321020792812768,y2=0.08683361222297882 +a=wye,b=dog,i=1519,x=0.43779523845120794,y=0.2644626628409492,x2=0.19166467081055003,xy=0.11578049453989477,y2=0.06994050003692558 +a=pan,b=dog,i=1520,x=0.8621151418028805,y=0.8087471833817196,x2=0.7432425177258007,xy=0.6972331926838113,y2=0.6540720066278648 +a=dog,b=dog,i=1521,x=0.915428541505597,y=0.6918518428007708,x2=0.8380094146030647,xy=0.6333409233930692,y2=0.47865897238682253 +a=pan,b=hat,i=1522,x=0.34246330299611916,y=0.4015667600891675,x2=0.11728111389901172,xy=0.13752187903358645,y2=0.16125586280851098 +a=wye,b=hat,i=1523,x=0.6086233191892091,y=0.7779595323252304,x2=0.3704223446608899,xy=0.47348431275866654,y2=0.6052210339356913 +a=hat,b=cat,i=1524,x=0.10442936908164735,y=0.4581450509779861,x2=0.010905493126790924,xy=0.047843798621510246,y2=0.20989688773562146 +a=pan,b=pan,i=1525,x=0.2583246878545772,y=0.02240067573993554,x2=0.06673164435516474,xy=0.005786647568250447,y2=0.0005017902736057366 +a=pan,b=hat,i=1526,x=0.23796014595848403,y=0.3072450414987614,x2=0.05662503106458302,xy=0.07311207492006574,y2=0.09439951552557563 +a=hat,b=pan,i=1527,x=0.12119541398603217,y=0.17048024763361747,x2=0.014688328371245724,xy=0.020661424188397552,y2=0.029063514833219534 +a=dog,b=cat,i=1528,x=0.5175855045219828,y=0.7817853634426445,x2=0.2678947544912755,xy=0.40464077176536284,y2=0.6111883544931477 +a=wye,b=dog,i=1529,x=0.3149584970318017,y=0.09231541484342054,x2=0.09919885485253142,xy=0.02907552431195101,y2=0.00852213581771283 +a=hat,b=pan,i=1530,x=0.6893929855985418,y=0.42906722591329993,x2=0.4752626885924712,xy=0.29579593589485387,y2=0.18409868435293475 +a=dog,b=wye,i=1531,x=0.45335175048306375,y=0.07118777173148638,x2=0.2055278096660581,xy=0.032273100927458116,y2=0.005067698844094212 +a=cat,b=cat,i=1532,x=0.18419733883722667,y=0.24948680832820092,x2=0.03392865963471609,xy=0.045954806169047846,y2=0.06224366752979246 +a=dog,b=cat,i=1533,x=0.9464506050337935,y=0.9008282308337938,x2=0.8957687477688339,xy=0.8525894241041659,y2=0.8114915014671429 +a=dog,b=dog,i=1534,x=0.04092212076171453,y=0.4810326111514236,x2=0.0016746199676363474,xy=0.019684874603861424,y2=0.2313923729911567 +a=hat,b=hat,i=1535,x=0.04217832231710106,y=0.1739421021255957,x2=0.0017790108734852652,xy=0.007336586047967484,y2=0.03025585489187116 +a=pan,b=pan,i=1536,x=0.4357609226668223,y=0.7464995143390647,x2=0.1898875817234403,xy=0.32529531713872556,y2=0.5572615249084595 +a=wye,b=wye,i=1537,x=0.6744759735073189,y=0.48261666323539476,x2=0.45491783883864556,xy=0.3255133437665468,y2=0.23291884363246643 +a=wye,b=dog,i=1538,x=0.5090904718939057,y=0.02011153089090212,x2=0.25917310857315956,xy=0.01023858875175822,y2=0.00040447367477571016 +a=wye,b=wye,i=1539,x=0.34746876165555896,y=0.5458488723201921,x2=0.12073454032644763,xy=0.18966543171618044,y2=0.29795099141322534 +a=hat,b=dog,i=1540,x=0.10238215788898886,y=0.9830316802525342,x2=0.010482106254005844,xy=0.10064490469749296,y2=0.9663512843801206 +a=cat,b=pan,i=1541,x=0.35385559107620834,y=0.3216267622332234,x2=0.12521377933589278,xy=0.11380942805596439,y2=0.10344377418462641 +a=hat,b=hat,i=1542,x=0.8253265157708232,y=0.2075510242659313,x2=0.6811638576344068,xy=0.17129736370206666,y2=0.0430774276738372 +a=hat,b=hat,i=1543,x=0.7991369037258617,y=0.2859450664777635,x2=0.6386197908965571,xy=0.2285092550607256,y2=0.0817645810429726 +a=cat,b=cat,i=1544,x=0.6392952718588218,y=0.7439525954966602,x2=0.40869844462104493,xy=0.4756053767881135,y2=0.5534654643462172 +a=hat,b=hat,i=1545,x=0.5084509220184711,y=0.6728224711625662,x2=0.2585223401014334,xy=0.342097205817353,y2=0.45269007770130226 +a=dog,b=dog,i=1546,x=0.14100930019189006,y=0.7938180994167824,x2=0.019883622740606566,xy=0.11193573467841669,y2=0.6301471749616726 +a=wye,b=hat,i=1547,x=0.9928968716790996,y=0.8508215547880971,x2=0.9858441977901423,xy=0.8447780601062492,y2=0.7238973180920348 +a=cat,b=dog,i=1548,x=0.6350205719045344,y=0.26567328158599435,x2=0.40325112674196195,xy=0.16870799921249255,y2=0.07058229254867104 +a=wye,b=pan,i=1549,x=0.021473868740017554,y=0.34749808992043807,x2=0.0004611270386635031,xy=0.007462128370358304,y2=0.12075492249835286 +a=hat,b=cat,i=1550,x=0.7408751855532695,y=0.3423014162600545,x2=0.5488960405685914,xy=0.2536026252868148,y2=0.11717025957363911 +a=wye,b=dog,i=1551,x=0.04383676821479654,y=0.266850697482773,x2=0.0019216622475177962,xy=0.011697872173509111,y2=0.07120929474704243 +a=dog,b=pan,i=1552,x=0.3801549297268849,y=0.04997949600296803,x2=0.14451777059565282,xy=0.018999951790793435,y2=0.002497950020710697 +a=wye,b=pan,i=1553,x=0.5345857907474418,y=0.135104902701352,x2=0.28578196766906766,xy=0.07222516124445845,y2=0.018253334733941792 +a=dog,b=hat,i=1554,x=0.7592553908177758,y=0.4867024463422348,x2=0.5764687484858535,xy=0.3695314561095411,y2=0.23687927127551595 +a=pan,b=wye,i=1555,x=0.9156527188879559,y=0.6114596061890427,x2=0.8384199016069059,xy=0.5598846508971557,y2=0.3738828500008592 +a=dog,b=wye,i=1556,x=0.2052844395044381,y=0.6894819818589596,x2=0.0421417011026513,xy=0.14153992219432568,y2=0.4753854033081587 +a=cat,b=cat,i=1557,x=0.2982791981713536,y=0.18014522680887524,x2=0.08897048006174564,xy=0.05373357380694794,y2=0.0324523027420211 +a=cat,b=dog,i=1558,x=0.06790524135741416,y=0.8195635939312853,x2=0.00461112180380867,xy=0.0556526636536537,y2=0.6716844844975647 +a=cat,b=pan,i=1559,x=0.10877195122466432,y=0.8210416061457385,x2=0.011831337373220754,xy=0.08930629753710433,y2=0.674109319022374 +a=pan,b=pan,i=1560,x=0.8756525639753959,y=0.661646767692369,x2=0.7667674127966848,xy=0.579372688575856,y2=0.43777644519775966 +a=hat,b=wye,i=1561,x=0.02446088669345725,y=0.10532388717105712,x2=0.000598334977830154,xy=0.002576315670205704,y2=0.01109312120882157 +a=hat,b=dog,i=1562,x=0.19889556497967098,y=0.8936796259204715,x2=0.03955944576858252,xy=0.17774891410827318,y2=0.7986632737853538 +a=hat,b=cat,i=1563,x=0.03660256512961213,y=0.5634520296563341,x2=0.0013397477740674979,xy=0.020623789612908117,y2=0.3174781897238424 +a=cat,b=pan,i=1564,x=0.9659545905762601,y=0.571818493225905,x2=0.9330682710553503,xy=0.5523506985079629,y2=0.3269763891951443 +a=cat,b=hat,i=1565,x=0.7583921834169207,y=0.2601502538203321,x2=0.5751587038678844,xy=0.19729591901126778,y2=0.0676781545627832 +a=hat,b=dog,i=1566,x=0.026263975866313904,y=0.02216648927463971,x2=0.0006897964283063192,xy=0.0005821801393500434,y2=0.0004913532467627174 +a=dog,b=hat,i=1567,x=0.6844253879734883,y=0.2949316889002147,x2=0.46843811170266,xy=0.2018587356012056,y2=0.08698470111753304 +a=pan,b=wye,i=1568,x=0.12484859125467229,y=0.8991956339382959,x2=0.015587170738276234,xy=0.11226330815954824,y2=0.8085527880936939 +a=pan,b=hat,i=1569,x=0.18131094277686866,y=0.596307418549097,x2=0.03287365797063694,xy=0.10811706024197759,y2=0.35558253741668794 +a=dog,b=pan,i=1570,x=0.8579920772160065,y=0.7280991456877075,x2=0.7361504045654376,xy=0.6247032984277958,y2=0.5301283659511695 +a=cat,b=hat,i=1571,x=0.8553472608035858,y=0.11757479526347292,x2=0.7316189365641974,xy=0.10056727906815398,y2=0.013823832481247574 +a=pan,b=wye,i=1572,x=0.6479567905186169,y=0.2807792182278904,x2=0.41984800237918674,xy=0.1819328010872702,y2=0.07883696938866532 +a=pan,b=dog,i=1573,x=0.7819251395306596,y=0.9370590895583982,x2=0.6114069238300415,xy=0.7327100593514233,y2=0.8780797373240142 +a=cat,b=cat,i=1574,x=0.1514963814079887,y=0.3289798760930779,x2=0.02295115357971479,xy=0.0498392607841498,y2=0.10822775887421687 +a=pan,b=cat,i=1575,x=0.14828774243885756,y=0.4937495068399602,x2=0.02198925455761296,xy=0.07321699969959695,y2=0.24378857550470392 +a=wye,b=cat,i=1576,x=0.44849029095061377,y=0.3474789085726283,x2=0.2011435410769662,xy=0.15584091680493978,y2=0.12074159190282498 +a=pan,b=cat,i=1577,x=0.11742715840772,y=0.8533514684924811,x2=0.013789137531711767,xy=0.10020663806812706,y2=0.728208728778274 +a=hat,b=pan,i=1578,x=0.9561812114331917,y=0.6311123886196823,x2=0.914282509097846,xy=0.6034578083008632,y2=0.39830284706924096 +a=hat,b=wye,i=1579,x=0.3893408935248426,y=0.07585593238137323,x2=0.1515863313707228,xy=0.02953381649252389,y2=0.005754122477447467 +a=cat,b=hat,i=1580,x=0.017691921667216448,y=0.5885134221742414,x2=0.0003130040922789228,xy=0.010411933365212163,y2=0.3463480480792369 +a=hat,b=hat,i=1581,x=0.44867319136622774,y=0.781216580590725,x2=0.20130763265075563,xy=0.35051093636185243,y2=0.6102993457898647 +a=cat,b=pan,i=1582,x=0.44447231875949966,y=0.34367821135820475,x2=0.1975556421434463,xy=0.15275545150949868,y2=0.11811471296237486 +a=pan,b=pan,i=1583,x=0.8509473547023161,y=0.04830044716645099,x2=0.7241114004748693,xy=0.04110113774723045,y2=0.0023329331964791235 +a=dog,b=cat,i=1584,x=0.10225562909113295,y=0.9981951134648713,x2=0.010456213680823355,xy=0.10207106928304525,y2=0.9963934845451473 +a=cat,b=wye,i=1585,x=0.28818623525822074,y=0.9549435530526844,x2=0.08305130619230655,xy=0.2752015874383621,y2=0.911917189516885 +a=dog,b=pan,i=1586,x=0.7717108759456307,y=0.8580611734234349,x2=0.5955376760527726,xy=0.6621751397575347,y2=0.7362689773368021 +a=pan,b=dog,i=1587,x=0.4765709177992249,y=0.8517795433900952,x2=0.22711983969199556,xy=0.4059333587560224,y2=0.7255283905378391 +a=cat,b=pan,i=1588,x=0.4469143340193531,y=0.6454699064416178,x2=0.19973242195196192,xy=0.2884697533668898,y2=0.41663140012175087 +a=hat,b=wye,i=1589,x=0.7995256860918732,y=0.21409278194551606,x2=0.6392413227206807,xy=0.17117267837230654,y2=0.04583571928117029 +a=dog,b=hat,i=1590,x=0.09949712510568698,y=0.26672131711357683,x2=0.009899677904296727,xy=0.026538004257203162,y2=0.07114026100280121 +a=cat,b=wye,i=1591,x=0.7720877441185823,y=0.9494920350525312,x2=0.5961194846181214,xy=0.7330911634022707,y2=0.9015351246281972 +a=wye,b=cat,i=1592,x=0.8294711791618263,y=0.25070500876954116,x2=0.6880224370601106,xy=0.2079525792458473,y2=0.06285300142213571 +a=hat,b=cat,i=1593,x=0.1413366958783815,y=0.6479105320354736,x2=0.0199760616018181,xy=0.09157353382269807,y2=0.4197880575224904 +a=cat,b=pan,i=1594,x=0.6930683954666307,y=0.026735216731828326,x2=0.48034380079468997,xy=0.018529333762780875,y2=0.0007147718136978333 +a=wye,b=hat,i=1595,x=0.1949077017171642,y=0.27715582259784965,x2=0.03798901218866706,xy=0.05401980440007696,y2=0.0768153499998907 +a=hat,b=dog,i=1596,x=0.9050627783665586,y=0.8831462196869232,x2=0.8191386327845943,xy=0.7993027712937698,y2=0.7799472453473032 +a=dog,b=pan,i=1597,x=0.9512476936366657,y=0.5147958917805698,x2=0.9048721746490759,xy=0.4896984047498976,y2=0.2650148101941522 +a=dog,b=pan,i=1598,x=0.6201253205268328,y=0.7374258584444923,x2=0.3845554131585071,xy=0.45729644683266557,y2=0.5437968967025963 +a=dog,b=dog,i=1599,x=0.20861740577667076,y=0.3744857984645993,x2=0.0435212219929881,xy=0.07812425577588986,y2=0.14023961325166848 +a=cat,b=cat,i=1600,x=0.9180509487209038,y=0.6961609399227705,x2=0.8428175444473515,xy=0.6391112113585355,y2=0.4846400542741553 +a=hat,b=pan,i=1601,x=0.5668724662094057,y=0.6892431702222551,x2=0.32134439294633377,xy=0.39071297572187896,y2=0.47505614769802457 +a=dog,b=dog,i=1602,x=0.6291540296653728,y=0.2036098512447937,x2=0.3958347930441768,xy=0.1281019583902291,y2=0.041456971523927015 +a=cat,b=hat,i=1603,x=0.9531511923578132,y=0.8297657896193978,x2=0.908497195493121,xy=0.7908922517534515,y2=0.6885112656227028 +a=dog,b=pan,i=1604,x=0.0432946719776931,y=0.3070866737944582,x2=0.0018744286216560442,xy=0.01329521681065191,y2=0.09430222522214397 +a=pan,b=pan,i=1605,x=0.3736137583809874,y=0.1089267696226176,x2=0.13958724045156684,xy=0.04069653978700613,y2=0.011865041140418808 +a=cat,b=wye,i=1606,x=0.6487271855151501,y=0.6932495108666088,x2=0.4208469612264079,xy=0.44972980404424956,y2=0.48059488431679237 +a=hat,b=wye,i=1607,x=0.002825140366817802,y=0.7102085021236773,x2=7.981418092223425e-06,xy=0.002006438708206807,y2=0.5043961164887573 +a=dog,b=hat,i=1608,x=0.43735145990915725,y=0.5122308961341998,x2=0.19127629948467118,xy=0.2240249302348682,y2=0.2623804909544454 +a=cat,b=cat,i=1609,x=0.8704637894619757,y=0.4114224078394778,x2=0.7577072087645027,xy=0.3581283081975223,y2=0.16926839767243362 +a=hat,b=hat,i=1610,x=0.863903018597316,y=0.8955887400885664,x2=0.7463284255415545,xy=0.7737018159842796,y2=0.8020791913734256 +a=dog,b=hat,i=1611,x=0.813479285014705,y=0.556016363747658,x2=0.6617485471480357,xy=0.45230779403792093,y2=0.30915419675516786 +a=pan,b=pan,i=1612,x=0.9828256133628142,y=0.9462282732785905,x2=0.9659461862819918,xy=0.9299773830662672,y2=0.895347945151783 +a=dog,b=pan,i=1613,x=0.997245171384539,y=0.8188847898688517,x2=0.9944979318497786,xy=0.8166289026169553,y2=0.6705722990785534 +a=cat,b=hat,i=1614,x=0.8702296622957021,y=0.9633415388928867,x2=0.7572996651392917,xy=0.8383283820661787,y2=0.928026920556515 +a=dog,b=hat,i=1615,x=0.32938974607166416,y=0.6648535062276374,x2=0.1084976048171554,xy=0.21899592759117706,y2=0.44203018474318306 +a=cat,b=hat,i=1616,x=0.21973398978224268,y=0.9170301108422763,x2=0.04828302626562273,xy=0.2015026850058256,y2=0.8409442241913975 +a=wye,b=cat,i=1617,x=0.3188600305313566,y=0.12797936125166676,x2=0.10167171907045766,xy=0.04080750303608997,y2=0.01637871690638462 +a=dog,b=hat,i=1618,x=0.08169283210276668,y=0.3290482944796531,x2=0.0066737188169708256,xy=0.02688088707462803,y2=0.10827278009996852 +a=cat,b=pan,i=1619,x=0.5474618104169076,y=0.7275509604239726,x2=0.29971443386495805,xy=0.3983063659642679,y2=0.5293304000138449 +a=dog,b=pan,i=1620,x=0.8496579259046118,y=0.5331672214883044,x2=0.7219185910525268,xy=0.4530097555700775,y2=0.28426728606955864 +a=hat,b=cat,i=1621,x=0.5789362482550833,y=0.5721615488209199,x2=0.3351671795436714,xy=0.331245060470201,y2=0.32736883794915383 +a=dog,b=dog,i=1622,x=0.07340446939675682,y=0.053524173914530015,x2=0.005388216127419409,xy=0.003928913586095808,y2=0.0028648371932328554 +a=cat,b=cat,i=1623,x=0.4016965060303803,y=0.07864444010507288,x2=0.16136008295701537,xy=0.03159119680892329,y2=0.006184947959440395 +a=pan,b=dog,i=1624,x=0.10848281944185878,y=0.3423443652351136,x2=0.011768522114054934,xy=0.03713848196073858,y2=0.11719966440823285 +a=wye,b=dog,i=1625,x=0.48963027550697813,y=0.7440099158860606,x2=0.23973780669303932,xy=0.36428978009521545,y2=0.553550754936783 +a=hat,b=pan,i=1626,x=0.09566940342098973,y=0.007673090508222624,x2=0.009152634750928082,xy=0.0007340799913169173,y2=5.8876317947376127e-05 +a=pan,b=cat,i=1627,x=0.23451298640557194,y=0.2681503215077292,x2=0.05499634079285997,xy=0.06288473270239185,y2=0.07190459492469854 +a=cat,b=cat,i=1628,x=0.22742389846337696,y=0.5907743445113182,x2=0.051721629592280396,xy=0.1343562045409101,y2=0.34901432613277766 +a=pan,b=dog,i=1629,x=0.2041361746188951,y=0.08002125587765907,x2=0.041671577788036034,xy=0.0163352330630651,y2=0.006403401392237786 +a=cat,b=wye,i=1630,x=0.6221885986617947,y=0.872101148421837,x2=0.3871186523047278,xy=0.5426113914279245,y2=0.7605604130786868 +a=hat,b=dog,i=1631,x=0.9724844283703676,y=0.888091684129161,x2=0.9457259634228407,xy=0.8636553337808242,y2=0.7887068394193694 +a=hat,b=dog,i=1632,x=0.04113654741104045,y=0.4298748752486753,x2=0.0016922155329007786,xy=0.01768356818648223,y2=0.18479240837006414 +a=wye,b=dog,i=1633,x=0.22240261580881637,y=0.36232016649260135,x2=0.04946292351860398,xy=0.0805809527882404,y2=0.13127590304722636 +a=dog,b=pan,i=1634,x=0.027438300456492648,y=0.8218611481795173,x2=0.0007528603319407646,xy=0.02255047311726762,y2=0.6754557468869544 +a=hat,b=dog,i=1635,x=0.43912761905308106,y=0.8039990824810354,x2=0.19283306581522788,xy=0.3530582028107588,y2=0.6464145246303467 +a=hat,b=pan,i=1636,x=0.8574393079576283,y=0.3981090276084197,x2=0.7352021668308566,xy=0.34135432912424774,y2=0.1584907978633215 +a=dog,b=wye,i=1637,x=0.3936158292210302,y=0.4002525764948093,x2=0.15493342101335922,xy=0.1575457497948582,y2=0.16020212499073316 +a=cat,b=dog,i=1638,x=0.9126998946130102,y=0.06115876060098202,x2=0.8330210976265998,xy=0.05581959435517861,y2=0.003740393998248231 +a=cat,b=dog,i=1639,x=0.2842306037315152,y=0.20461476009403634,x2=0.08078703609758163,xy=0.058157776793907094,y2=0.04186720004834005 +a=dog,b=pan,i=1640,x=0.9071641742095542,y=0.2158698815251211,x2=0.8229468389693024,xy=0.1958294228104508,y2=0.04659980574966982 +a=dog,b=dog,i=1641,x=0.9205768203019893,y=0.7162208455434735,x2=0.8474616820773211,xy=0.6593363086244131,y2=0.5129722995910082 +a=hat,b=wye,i=1642,x=0.07708601630855028,y=0.3677116704903335,x2=0.005942253910322079,xy=0.02834542782826211,y2=0.1352118726147916 +a=hat,b=cat,i=1643,x=0.891086171382202,y=0.45465600270588036,x2=0.7940345648285911,xy=0.40513767674711904,y2=0.20671208079648948 +a=wye,b=hat,i=1644,x=0.9535785952720344,y=0.6545866530193877,x2=0.9093121373609864,xy=0.6241998210700502,y2=0.4284836863111242 +a=hat,b=cat,i=1645,x=0.2146953126698945,y=0.11304072018003597,x2=0.04609407728242376,xy=0.024269312763482875,y2=0.012778204418821191 +a=dog,b=cat,i=1646,x=0.703602800768384,y=0.1788354701674164,x2=0.4950569012491143,xy=0.12582913768652496,y2=0.031982125390000886 +a=cat,b=dog,i=1647,x=0.23644793052741475,y=0.37664599907875307,x2=0.055907623850697155,xy=0.08905716702360172,y2=0.14186220862203205 +a=wye,b=cat,i=1648,x=0.7738923843915508,y=0.9220658594972316,x2=0.5989094226192399,xy=0.7135797465723573,y2=0.8502054492503686 +a=pan,b=wye,i=1649,x=0.3881512739565207,y=0.3166268964167729,x2=0.15066141147407,xy=0.12289913321306972,y2=0.10025259153451782 +a=dog,b=pan,i=1650,x=0.08069176552256929,y=0.20005901085517142,x2=0.0065111610231493025,xy=0.016143114794602637,y2=0.04002360782434959 +a=dog,b=pan,i=1651,x=0.2275129965873679,y=0.5632678749374941,x2=0.051762163616163676,xy=0.12815076210842807,y2=0.3172706989366005 +a=wye,b=dog,i=1652,x=0.5519239750397438,y=0.8099186708035292,x2=0.3046200742236717,xy=0.4470135322487895,y2=0.6559682533161555 +a=dog,b=wye,i=1653,x=0.639889328423366,y=0.2540187912756243,x2=0.4094583526301063,xy=0.16254391375627442,y2=0.0645255463211292 +a=wye,b=dog,i=1654,x=0.8737413102903783,y=0.9886812038724857,x2=0.763423877307947,xy=0.8638516105310142,y2=0.9774905228907477 +a=wye,b=pan,i=1655,x=0.47282261946513027,y=0.3211346348224169,x2=0.22356122947786738,xy=0.1518397192377132,y2=0.10312745368252704 +a=wye,b=dog,i=1656,x=0.14294522345450367,y=0.22926887621937164,x2=0.020433336908457986,xy=0.03277289074234102,y2=0.05256421760289356 +a=wye,b=dog,i=1657,x=0.43048291429852836,y=0.3870314399018282,x2=0.18531553950295412,xy=0.16661042217409475,y2=0.14979333547248244 +a=dog,b=dog,i=1658,x=0.567295665732677,y=0.886177490533436,x2=0.3218243723590812,xy=0.5027246494494786,y2=0.785310544728138 +a=hat,b=hat,i=1659,x=0.17874497185555105,y=0.050992313608872575,x2=0.031949764963641734,xy=0.009114619660867362,y2=0.002600216047185611 +a=wye,b=dog,i=1660,x=0.37405584427544813,y=0.7809699765352812,x2=0.1399177746366183,xy=0.29212638392668155,y2=0.6099141042495178 +a=pan,b=pan,i=1661,x=0.13582576025733262,y=0.7573342859324125,x2=0.018448637149482396,xy=0.10286550515571405,y2=0.5735552206487571 +a=wye,b=wye,i=1662,x=0.747943111650199,y=0.07115853449918319,x2=0.559418898264982,xy=0.05322253571378711,y2=0.005063537032071444 +a=hat,b=pan,i=1663,x=0.3204641843851568,y=0.721857856580675,x2=0.10269729347364376,xy=0.2313295892511435,y2=0.5210787651072464 +a=hat,b=cat,i=1664,x=0.8761516655928389,y=0.9096956097881236,x2=0.7676417411211057,xy=0.7970313236983577,y2=0.827546102467786 +a=wye,b=pan,i=1665,x=0.4048769803504033,y=0.12258576541477295,x2=0.16392536921766088,xy=0.049632154535076176,y2=0.015027269882325745 +a=dog,b=cat,i=1666,x=0.2179285734605032,y=0.31374185530645116,x2=0.047492863130529944,xy=0.0683733149617865,y2=0.09843395177113413 +a=pan,b=hat,i=1667,x=0.8707522639142692,y=0.7726065553597292,x2=0.758209505111825,xy=0.6727489071944893,y2=0.5969208893848263 +a=hat,b=dog,i=1668,x=0.28780883579957106,y=0.3178867299709123,x2=0.08283392596430446,xy=0.09149060966906088,y2=0.10105197309159969 +a=pan,b=wye,i=1669,x=0.5792574059470896,y=0.11568552140933597,x2=0.3355391423445514,xy=0.06701169503720845,y2=0.01338313986374993 +a=hat,b=hat,i=1670,x=0.3227620938680381,y=0.9047964130984939,x2=0.10417536923808024,xy=0.29203398481596027,y2=0.8186565491559005 +a=dog,b=cat,i=1671,x=0.4170283119952225,y=0.9782353863453211,x2=0.17391261300558464,xy=0.4079518519015836,y2=0.9569444710981797 +a=pan,b=cat,i=1672,x=0.6599992419763393,y=0.9741564387006593,x2=0.4355989994093425,xy=0.6429425111088054,y2=0.9489807670619513 +a=wye,b=cat,i=1673,x=0.29187601892586845,y=0.5388057612947819,x2=0.08519161042401392,xy=0.1572644805810427,y2=0.29031164840444945 +a=hat,b=cat,i=1674,x=0.5390394718631818,y=0.8048259724603639,x2=0.29056355222653796,xy=0.43383296713680625,y2=0.6477448459467705 +a=hat,b=wye,i=1675,x=0.048579087927689724,y=0.24652911047462378,x2=0.0023599277838862094,xy=0.011976159334481882,y2=0.06077660231140926 +a=dog,b=dog,i=1676,x=0.048972441564576696,y=0.9218204959234996,x2=0.002398300032795879,xy=0.045143800369642696,y2=0.8497530267046467 +a=pan,b=wye,i=1677,x=0.8723437200679534,y=0.3157472779224004,x2=0.7609835659419958,xy=0.27544015502415675,y2=0.09969634351540557 +a=dog,b=pan,i=1678,x=0.8167222472906894,y=0.986551120263316,x2=0.667035229219554,xy=0.8057382480086027,y2=0.9732831128928039 +a=hat,b=hat,i=1679,x=0.39775090311253436,y=0.9492050319119413,x2=0.1582057809268367,xy=0.37754715868193667,y2=0.9009901926069495 +a=dog,b=hat,i=1680,x=0.9885812365291148,y=0.048768165346359305,x2=0.9772928612174336,xy=0.04821129320136021,y2=0.0023783339512498405 +a=wye,b=wye,i=1681,x=0.062568716830534,y=0.6943753352072064,x2=0.003914844325819548,xy=0.043446173722686825,y2=0.4821571061441203 +a=pan,b=cat,i=1682,x=0.8888030579112071,y=0.04402650833464217,x2=0.7899708757523125,xy=0.0391308952369832,y2=0.0019383334361403161 +a=pan,b=hat,i=1683,x=0.9724493454696065,y=0.6589972933012489,x2=0.9456577295042661,xy=0.6408414865370418,y2=0.43427743257837226 +a=hat,b=hat,i=1684,x=0.4069692594975953,y=0.3986453675645386,x2=0.1656239781760211,xy=0.16223641003988698,y2=0.1589181290806661 +a=dog,b=dog,i=1685,x=0.28322884520031133,y=0.16586598055549973,x2=0.08021857875350191,xy=0.04697803013075148,y2=0.027511523505637413 +a=cat,b=pan,i=1686,x=0.12937859467738544,y=0.9861644534388775,x2=0.01673882076069519,xy=0.12758857110671387,y2=0.9725203292264 +a=hat,b=pan,i=1687,x=0.23287889562740582,y=0.8389347784619275,x2=0.054232580028640176,xy=0.19537020471163605,y2=0.7038115625129634 +a=dog,b=cat,i=1688,x=0.5682955920434908,y=0.5945491777156097,x2=0.3229598799360617,xy=0.337879676948863,y2=0.3534887247223076 +a=pan,b=dog,i=1689,x=0.16105478267120443,y=0.08426726713328936,x2=0.02593864302126889,xy=0.013571646394448246,y2=0.007100972310113149 +a=dog,b=cat,i=1690,x=0.5070153147880428,y=0.5380671284015519,x2=0.25706452942961816,xy=0.2728082744836111,y2=0.28951623466629217 +a=wye,b=dog,i=1691,x=0.30350321074609365,y=0.5933552503916028,x2=0.09211419893318774,xy=0.18008522360690377,y2=0.3520704531672816 +a=dog,b=dog,i=1692,x=0.487796053925177,y=0.031684652993436924,x2=0.23794499022497417,xy=0.015455648700187079,y2=0.0010039172353145114 +a=cat,b=pan,i=1693,x=0.37634611053732825,y=0.4375476097662617,x2=0.1416363949165749,xy=0.1646693411104373,y2=0.19144791081216886 +a=hat,b=cat,i=1694,x=0.9481870673353364,y=0.03227311659127241,x2=0.8990587146619858,xy=0.030600951774449978,y2=0.0010415540545138625 +a=cat,b=dog,i=1695,x=0.1461079052481754,y=0.009273641061726678,x2=0.021347519976009803,xy=0.0013549522695523503,y2=8.600041854174311e-05 +a=cat,b=cat,i=1696,x=0.664622851996795,y=0.6220953625183441,x2=0.44172353539635373,xy=0.41345879405092195,y2=0.38700264006682994 +a=dog,b=wye,i=1697,x=0.7392009908426814,y=0.5100797348391554,x2=0.546418104862802,xy=0.37705144540187585,y2=0.26018133589358305 +a=wye,b=wye,i=1698,x=0.7054910080579193,y=0.1031198321244089,x2=0.4977175624505792,xy=0.07275011431621264,y2=0.010633699777366272 +a=cat,b=wye,i=1699,x=0.6126583948316581,y=0.1966643871428705,x2=0.3753503087577038,xy=0.1204880877475028,y2=0.03867688117028084 +a=cat,b=hat,i=1700,x=0.054997512547894534,y=0.15759987654208285,x2=0.0030247263864558167,xy=0.008667601187669832,y2=0.024837721086079758 +a=cat,b=pan,i=1701,x=0.22975216825718248,y=0.809183481892754,x2=0.052786058818876685,xy=0.18591165948275679,y2=0.654777907368081 +a=dog,b=hat,i=1702,x=0.18418666280139295,y=0.8171870602406262,x2=0.03392472675391403,xy=0.1505149575102018,y2=0.6677946914247167 +a=dog,b=cat,i=1703,x=0.010686095765771508,y=0.05199916348790379,x2=0.00011419264271523976,xy=0.0005556680407717491,y2=0.0027039130034417465 +a=hat,b=wye,i=1704,x=0.01877485223131614,y=0.6375043667215262,x2=0.0003524950763077567,xy=0.01196905028201543,y2=0.4064118175890142 +a=hat,b=dog,i=1705,x=0.12425555965226853,y=0.12056177606993312,x2=0.015439444104498464,xy=0.014980470958241017,y2=0.0145351418491367 +a=dog,b=dog,i=1706,x=0.2106835201181333,y=0.7148544928686459,x2=0.04438754564936788,xy=0.15060806092982934,y2=0.5110169459744889 +a=hat,b=pan,i=1707,x=0.17785992112431714,y=0.5889112469352836,x2=0.03163415154234832,xy=0.1047437079291328,y2=0.3468164567668706 +a=cat,b=dog,i=1708,x=0.8918669744557775,y=0.5287616486231685,x2=0.7954267001249024,xy=0.47158505176579424,y2=0.27958888105469115 +a=cat,b=dog,i=1709,x=0.33807974986782396,y=0.17333156717370213,x2=0.11429791727069041,xy=0.05859989287428314,y2=0.030043832178891613 +a=wye,b=hat,i=1710,x=0.896316605122267,y=0.6483005933840498,x2=0.8033834566179059,xy=0.5810825869607427,y2=0.42029365938211105 +a=cat,b=wye,i=1711,x=0.07951586685765877,y=0.8532530554817359,x2=0.006322773082124916,xy=0.06784715635557624,y2=0.7280407766889183 +a=wye,b=hat,i=1712,x=0.9193212686772694,y=0.09656171635091815,x2=0.8451515950423841,xy=0.0887712395813807,y2=0.009324165064635173 +a=wye,b=cat,i=1713,x=0.5309901853379356,y=0.49148282419851896,x2=0.28195057692521525,xy=0.26097255591158364,y2=0.2415553664821523 +a=dog,b=wye,i=1714,x=0.3713852638032674,y=0.7143118003856945,x2=0.13792701417022254,xy=0.26528487642402804,y2=0.5102413481702524 +a=dog,b=cat,i=1715,x=0.5498980759698163,y=0.5515600622820238,x2=0.3023878939553059,xy=0.30330181703067693,y2=0.30421850230455 +a=pan,b=pan,i=1716,x=0.6417672435229054,y=0.511317231123837,x2=0.41186519485898815,xy=0.3281466499841092,y2=0.26144531084414735 +a=wye,b=pan,i=1717,x=0.356435387400564,y=0.293561640269951,x2=0.12704618539139015,xy=0.104635756975565,y2=0.08617843663798412 +a=hat,b=wye,i=1718,x=0.2471457357935608,y=0.6963887482349558,x2=0.06108101472094056,xy=0.17210950958088492,y2=0.4849572886682486 +a=wye,b=pan,i=1719,x=0.2676134553202123,y=0.41541078011182897,x2=0.07161696146842327,xy=0.11116951424299149,y2=0.17256611623311832 +a=wye,b=cat,i=1720,x=0.4589470991791813,y=0.183923236852081,x2=0.21063243984498528,xy=0.08441103602490807,y2=0.03382775705414669 +a=pan,b=wye,i=1721,x=0.039615501671190545,y=0.14665293148181202,x2=0.001569387972660101,xy=0.005809729452202717,y2=0.02150708231220905 +a=cat,b=dog,i=1722,x=0.8662864366230233,y=0.34394731887733476,x2=0.7504521902770154,xy=0.29795689725628904,y2=0.118299758162907 +a=cat,b=dog,i=1723,x=0.07903078625494464,y=0.24001021107925202,x2=0.0062458651760747465,xy=0.01896819569080851,y2=0.05760490142230711 +a=cat,b=pan,i=1724,x=0.7830526631959221,y=0.7935710543782611,x2=0.6131714733382263,xy=0.6214079275660933,y2=0.6297550183470251 +a=hat,b=hat,i=1725,x=0.9512582065298667,y=0.07219992983142942,x2=0.9048921754904186,xy=0.06868077576302778,y2=0.005212829867663332 +a=cat,b=cat,i=1726,x=0.8058645335096987,y=0.14090201105649103,x2=0.6494176463688043,xy=0.11354793341061754,y2=0.01985337671976352 +a=cat,b=cat,i=1727,x=0.03389485595072095,y=0.21485029038316628,x2=0.0011488612599201233,xy=0.007282319643507987,y2=0.04616064727773087 +a=dog,b=pan,i=1728,x=0.3055709310603073,y=0.7866221380232453,x2=0.09337359390906308,xy=0.24036885910841263,y2=0.6187743880282616 +a=dog,b=hat,i=1729,x=0.265121445235708,y=0.9417304705530022,x2=0.07028938072387053,xy=0.24967294337551532,y2=0.8868562791679789 +a=wye,b=wye,i=1730,x=0.7292610640760363,y=0.9200769530022502,x2=0.5318216995773127,xy=0.6709762977782583,y2=0.846541599445905 +a=pan,b=cat,i=1731,x=0.8513480198069239,y=0.6986139757894256,x2=0.7247934508291705,xy=0.5947636248977698,y2=0.48806148716830816 +a=pan,b=pan,i=1732,x=0.22934256104451933,y=0.27815947814507547,x2=0.052598010306459074,xy=0.06379380709659861,y2=0.07737269528194071 +a=cat,b=dog,i=1733,x=0.4845474085415866,y=0.7667845346413503,x2=0.23478619112436724,xy=0.37154345917023274,y2=0.5879585225651521 +a=wye,b=cat,i=1734,x=0.22892107237211945,y=0.01409474046015502,x2=0.05240485737600115,xy=0.0032265831009453873,y2=0.00019866170863913092 +a=dog,b=hat,i=1735,x=0.33509194011827514,y=0.4721650657233548,x2=0.1122866083322297,xy=0.15821870792931186,y2=0.22293984928953997 +a=hat,b=dog,i=1736,x=0.9876191923044322,y=0.6650527172550228,x2=0.975391669008059,xy=0.6568188274552735,y2=0.4422951167282893 +a=pan,b=cat,i=1737,x=0.21297769770583086,y=0.42402822689699815,x2=0.045359499720076274,xy=0.09030855552680833,y2=0.17979993720541215 +a=wye,b=wye,i=1738,x=0.2212273093526289,y=0.17299483060817533,x2=0.04894152240340377,xy=0.03827118090736044,y2=0.029927211417151278 +a=wye,b=dog,i=1739,x=0.9098658106605109,y=0.4384104189889705,x2=0.8278557934089086,xy=0.39889465127541385,y2=0.19220369547808466 +a=wye,b=cat,i=1740,x=0.9671747170035226,y=0.6012023947001768,x2=0.9354269332108441,xy=0.5814677559559835,y2=0.36144431939322713 +a=pan,b=wye,i=1741,x=0.9550513985898104,y=0.9556429110874218,x2=0.9121231739483529,xy=0.91268809878648,y2=0.913253373511642 +a=cat,b=hat,i=1742,x=0.13073846840344072,y=0.9445862471961136,x2=0.017092547120477468,xy=0.12349375923337375,y2=0.8922431783920375 +a=dog,b=pan,i=1743,x=0.43414820746345273,y=0.7919077935124472,x2=0.18848466604372918,xy=0.343805349029767,y2=0.6271179534257527 +a=pan,b=wye,i=1744,x=0.574874116705401,y=0.690880644329792,x2=0.330480250057815,xy=0.3971694001579475,y2=0.47731606470954857 +a=wye,b=dog,i=1745,x=0.4278747685381553,y=0.13777943630640976,x2=0.18307681755157998,xy=0.05895234441892259,y2=0.018983173068912024 +a=cat,b=wye,i=1746,x=0.6330381557702408,y=0.49246585024445066,x2=0.40073730666098767,xy=0.31174967361857064,y2=0.2425226136569897 +a=dog,b=dog,i=1747,x=0.6022946305721123,y=0.3656813004827404,x2=0.36275882201599724,xy=0.22024788378138171,y2=0.13372281352274826 +a=pan,b=cat,i=1748,x=0.8375798793797348,y=0.10960658652398791,x2=0.701540054341771,xy=0.09180427151998626,y2=0.01201360380944045 +a=dog,b=pan,i=1749,x=0.3303535052740735,y=0.7742389849511115,x2=0.10913343844686729,xy=0.25577256259844033,y2=0.5994460058181276 +a=dog,b=pan,i=1750,x=0.16063950494340218,y=0.8438432319496711,x2=0.02580505054846133,xy=0.13555455903023567,y2=0.7120714001072665 +a=pan,b=dog,i=1751,x=0.33999616836593083,y=0.8343053621609845,x2=0.11559739450351439,xy=0.283660626381885,y2=0.6960654373305715 +a=pan,b=pan,i=1752,x=0.7144541724297309,y=0.6139779382258238,x2=0.5104447645022516,xy=0.43865909974524336,y2=0.3769689086280335 +a=cat,b=pan,i=1753,x=0.6544323239936926,y=0.3643199188569274,x2=0.4282816666877854,xy=0.23842273117473248,y2=0.13272900327591816 +a=pan,b=cat,i=1754,x=0.23201094407326062,y=0.7181868648263479,x2=0.05382907816976566,xy=0.16662721252937618,y2=0.5157923728090988 +a=cat,b=pan,i=1755,x=0.5986068909712109,y=0.9405308418235501,x2=0.3583302099182192,xy=0.5630082430865311,y2=0.8845982644213157 +a=wye,b=hat,i=1756,x=0.9226172663827227,y=0.7237210152066758,x2=0.8512226202275278,xy=0.667717504673712,y2=0.5237721078517814 +a=hat,b=wye,i=1757,x=0.7571687617686531,y=0.9668382924336988,x2=0.5733045337982754,xy=0.7320597527125426,y2=0.9347762837161104 +a=cat,b=hat,i=1758,x=0.03268932597099139,y=0.11108559019828956,x2=0.0010685920324377321,xy=0.0036313130686718535,y2=0.012340008349702326 +a=dog,b=pan,i=1759,x=0.47169323862792967,y=0.64448614816657,x2=0.222494511367305,xy=0.30399975847952915,y2=0.41536239517858203 +a=wye,b=hat,i=1760,x=0.008043623002711664,y=0.1748775174539996,x2=6.469987100975221e-05,xy=0.0014066488220501017,y2=0.030582146110873933 +a=wye,b=cat,i=1761,x=0.6779502269399476,y=0.06420237948280028,x2=0.4596165102079264,xy=0.04352601774044908,y2=0.004121945531253494 +a=dog,b=wye,i=1762,x=0.22556796503914278,y=0.3846235121679249,x2=0.05088090685189994,xy=0.0867587429459268,y2=0.14793524611238987 +a=wye,b=wye,i=1763,x=0.8244848473299208,y=0.1042535818976208,x2=0.6797752634766427,xy=0.08595549855445728,y2=0.010868809338483927 +a=hat,b=wye,i=1764,x=0.2858369419763843,y=0.7808258749653562,x2=0.08170275739841089,xy=0.22318888031613202,y2=0.609689047015414 +a=dog,b=hat,i=1765,x=0.7251456550779655,y=0.7159940591578817,x2=0.5258362210784516,xy=0.5191999810599737,y2=0.5126474927493803 +a=wye,b=wye,i=1766,x=0.8849163471216128,y=0.41271092798688314,x2=0.7830769414030587,xy=0.36521464681132365,y2=0.17033031007979424 +a=wye,b=wye,i=1767,x=0.47496268763755545,y=0.7981581076516883,x2=0.22558955464789007,xy=0.37909531996995116,y2=0.637056364810124 +a=hat,b=dog,i=1768,x=0.9896393441122658,y=0.5323182982465756,x2=0.9793860314149557,xy=0.5268031315356986,y2=0.2833627706481302 +a=cat,b=dog,i=1769,x=0.5164658322137244,y=0.5132175158316351,x2=0.266736955844215,xy=0.2650593114206457,y2=0.2633922185563946 +a=cat,b=cat,i=1770,x=0.9668996720367993,y=0.07518686681810283,x2=0.93489497578487,xy=0.07269815686789813,y2=0.005653064941923132 +a=wye,b=hat,i=1771,x=0.7743375502627112,y=0.7289800273885898,x2=0.5995986417468568,xy=0.5644766085985248,y2=0.5314118803314691 +a=wye,b=dog,i=1772,x=0.9965249307670624,y=0.8078766237661098,x2=0.9930619376402985,xy=0.8050691965668507,y2=0.6526646392277285 +a=dog,b=hat,i=1773,x=0.7116265206221457,y=0.7151885144596509,x2=0.5064123048527812,xy=0.5089471141338425,y2=0.5114946112150023 +a=hat,b=hat,i=1774,x=0.4376901701869539,y=0.3605708398169458,x2=0.19157268507828465,xy=0.15781831224393192,y2=0.1300113305262976 +a=hat,b=cat,i=1775,x=0.3195386981996169,y=0.289186013348143,x2=0.10210497964710584,xy=0.09240612224280265,y2=0.08362855031619233 +a=wye,b=pan,i=1776,x=0.9853873547798295,y=0.5288800665158183,x2=0.9709882389599896,xy=0.5211517297398025,y2=0.2797141247577764 +a=hat,b=dog,i=1777,x=0.27750099924010097,y=0.3780642470021439,x2=0.07700680457925452,xy=0.10491320632005129,y2=0.1429325748612981 +a=wye,b=cat,i=1778,x=0.6611510227584849,y=0.4812147687163354,x2=0.43712067489459067,xy=0.3181556365032929,y2=0.23156765363071616 +a=dog,b=wye,i=1779,x=0.48252312835071653,y=0.49616279916570294,x2=0.23282856939336205,xy=0.23941002602468328,y2=0.24617752327594566 +a=wye,b=hat,i=1780,x=0.29436374758258366,y=0.6450398419304549,x2=0.08665001589086302,xy=0.1898763452107261,y2=0.4160763976776663 +a=wye,b=dog,i=1781,x=0.8174855364721907,y=0.618298166324581,x2=0.6682826023412254,xy=0.5054498081976219,y2=0.38229262248033924 +a=hat,b=dog,i=1782,x=0.5037632655338878,y=0.6824878230175867,x2=0.2537774277013664,xy=0.3438122944104536,y2=0.46578962856728473 +a=dog,b=pan,i=1783,x=0.33081855088472034,y=0.9462338647932917,x2=0.1094409136094663,xy=0.3130317159489652,y2=0.8953585268816495 +a=cat,b=hat,i=1784,x=0.7472029238789469,y=0.02836925274663693,x2=0.5583122094532473,xy=0.021197588600547962,y2=0.000804814501402567 +a=wye,b=cat,i=1785,x=0.49573494524974115,y=0.5302430759087261,x2=0.24575313594176387,xy=0.2628600222046667,y2=0.2811577195491471 +a=hat,b=hat,i=1786,x=0.6603210033010132,y=0.24360853029689966,x2=0.43602382740045664,xy=0.16085982913833405,y2=0.05934511603341548 +a=hat,b=hat,i=1787,x=0.7526385589532756,y=0.044057683484496346,x2=0.5664648004232633,xy=0.03315951140859086,y2=0.0019410794740200622 +a=cat,b=cat,i=1788,x=0.351674868639994,y=0.304405219667928,x2=0.12367521323295702,xy=0.10705166564004709,y2=0.0926625377610795 +a=wye,b=cat,i=1789,x=0.6889201579026637,y=0.09338440873281562,x2=0.4746109839646311,xy=0.06433440160985822,y2=0.008720647794377569 +a=pan,b=pan,i=1790,x=0.016229991240866548,y=0.2376523664051715,x2=0.00026341261567860486,xy=0.003857095825127141,y2=0.056478647257977896 +a=hat,b=hat,i=1791,x=0.39265740728471266,y=0.23109005596489685,x2=0.15417983949555272,xy=0.09073922222445555,y2=0.05340261396585916 +a=pan,b=wye,i=1792,x=0.7579241748695155,y=0.004836136766521948,x2=0.5744490548516359,xy=0.003665424968322274,y2=2.338821882450536e-05 +a=pan,b=cat,i=1793,x=0.42631097946423413,y=0.2953869846632946,x2=0.18174105121175466,xy=0.12592671475279582,y2=0.08725347070847345 +a=dog,b=dog,i=1794,x=0.23033848526517242,y=0.5171140657697146,x2=0.05305581779425405,xy=0.11911127061871082,y2=0.26740695701688477 +a=dog,b=pan,i=1795,x=0.2146743945945675,y=0.7592223385380801,x2=0.04608509569454407,xy=0.1629855958883341,y2=0.5764185593352311 +a=pan,b=dog,i=1796,x=0.5358576113037925,y=0.5220496229435341,x2=0.28714337959220637,xy=0.27974426393256774,y2=0.2725358088154861 +a=dog,b=hat,i=1797,x=0.2972846079571114,y=0.3209019558758809,x2=0.08837813812821343,xy=0.09539921214523152,y2=0.10297806528496581 +a=pan,b=wye,i=1798,x=0.949098867301435,y=0.3285880721086816,x2=0.9007886599128669,xy=0.3118625670471119,y2=0.10797012113210012 +a=cat,b=pan,i=1799,x=0.4169070877203852,y=0.11276362422911823,x2=0.17381151979149295,xy=0.047011954178157546,y2=0.01271563494928578 +a=hat,b=dog,i=1800,x=0.43455436546868176,y=0.2225852015143457,x2=0.18883749654788864,xy=0.09672537100678515,y2=0.04954417193318188 +a=wye,b=hat,i=1801,x=0.02277217074068183,y=0.45059087400220166,x2=0.0005185717602427657,xy=0.01026093231697119,y2=0.20303213573406798 +a=cat,b=wye,i=1802,x=0.7912072275392371,y=0.5518211868607243,x2=0.6260088769103261,xy=0.436604911353485,y2=0.30450662226837844 +a=pan,b=wye,i=1803,x=0.14189506146024844,y=0.8267106493322868,x2=0.020134208466807683,xy=0.11730615839684673,y2=0.6834504977194112 +a=wye,b=dog,i=1804,x=0.46150772541024665,y=0.7699528297226281,x2=0.21298938061333964,xy=0.35533917911847307,y2=0.5928273599978824 +a=hat,b=hat,i=1805,x=0.6543836401812494,y=0.17693895697078177,x2=0.4282179485368629,xy=0.11578595875241363,y2=0.03130739449390816 +a=pan,b=wye,i=1806,x=0.7075778031502546,y=0.27140640944755257,x2=0.5006663475109405,xy=0.19204115095779775,y2=0.07366143908921255 +a=wye,b=dog,i=1807,x=0.7455539798869707,y=0.7941736168162291,x2=0.5558507369253015,xy=0.5920993007385696,y2=0.6307117336469708 +a=cat,b=dog,i=1808,x=0.7700874896297054,y=0.9801151721491236,x2=0.5930347416841817,xy=0.7547744324683051,y2=0.9606257506769061 +a=cat,b=wye,i=1809,x=0.6544385781489724,y=0.5312971566122922,x2=0.4282898525696487,xy=0.3477013557479404,y2=0.2822766686243065 +a=pan,b=dog,i=1810,x=0.5849172939305057,y=0.028816292677288025,x2=0.3421282407389856,xy=0.01685514793390876,y2=0.0008303787236631235 +a=cat,b=pan,i=1811,x=0.08577479332166249,y=0.3954629030828457,x2=0.0073573151693739165,xy=0.03392074877831573,y2=0.15639090771471223 +a=pan,b=pan,i=1812,x=0.5024959150799869,y=0.4791330917679748,x2=0.25250214467207344,xy=0.24076242139305185,y2=0.22956851962713856 +a=pan,b=dog,i=1813,x=0.4274637251967476,y=0.8988706929897433,x2=0.18272523635908053,xy=0.3842346148955777,y2=0.8079685227158614 +a=wye,b=cat,i=1814,x=0.23106677027476674,y=0.9175553062756457,x2=0.053391852325211826,xy=0.21201654116958787,y2=0.841907740074594 +a=dog,b=wye,i=1815,x=0.2091223069008652,y=0.9549106528911347,x2=0.04373213924353965,xy=0.19969311861680544,y2=0.9118543550049732 +a=cat,b=hat,i=1816,x=0.636789060549747,y=0.01752449017649793,x2=0.4055003076358294,xy=0.011159403636105389,y2=0.0003071077559461725 +a=pan,b=pan,i=1817,x=0.38457200000249525,y=0.274983657709687,x2=0.1478956231859192,xy=0.10575101521341591,y2=0.07561601200739831 +a=pan,b=cat,i=1818,x=0.47722507056186736,y=0.3293445715952592,x2=0.2277437679727793,xy=0.15717148641871556,y2=0.10846784683926482 +a=cat,b=dog,i=1819,x=0.5193588839557899,y=0.09317774875313545,x2=0.26973365034380364,xy=0.04839269160194142,y2=0.008682092862702434 +a=dog,b=wye,i=1820,x=0.1673646057996403,y=0.462003081217774,x2=0.028010911274468992,xy=0.07732296356623194,y2=0.2134468470547171 +a=cat,b=dog,i=1821,x=0.2936142514969645,y=0.9052678886360254,x2=0.08620932868212274,xy=0.265799553526104,y2=0.8195099501955272 +a=dog,b=hat,i=1822,x=0.5638370233255022,y=0.9899497757638864,x2=0.31791218887256295,xy=0.5581703348084581,y2=0.980000558534969 +a=pan,b=cat,i=1823,x=0.040153720931592085,y=0.36075389102759503,x2=0.0016123213046521764,xy=0.014485611065308032,y2=0.1301433698915499 +a=wye,b=pan,i=1824,x=0.12093653700249474,y=0.30926776170280323,x2=0.014625645982155778,xy=0.037401772106849786,y2=0.09564654842866188 +a=pan,b=wye,i=1825,x=0.2099831282159229,y=0.35389600563007906,x2=0.04409291413534472,xy=0.07431219032532387,y2=0.12524238280092495 +a=hat,b=wye,i=1826,x=0.9724611126180899,y=0.1454173477404106,x2=0.9456806155544133,xy=0.14141271577761136,y2=0.0211462050238555 +a=hat,b=cat,i=1827,x=0.13365853083503354,y=0.7169278037197248,x2=0.017864602864979613,xy=0.0958235169599657,y2=0.5139854757463882 +a=pan,b=cat,i=1828,x=0.11022518131579606,y=0.7706028655923053,x2=0.012149590596100117,xy=0.08493984058238387,y2=0.5938287764590725 +a=hat,b=dog,i=1829,x=0.48946172894630635,y=0.0784572450203207,x2=0.23957278410310748,xy=0.03840181879601015,y2=0.006155539296178637 +a=cat,b=cat,i=1830,x=0.9280851829589482,y=0.5177457332043888,x2=0.8613421068279442,xy=0.4805121435272099,y2=0.2680606442513501 +a=cat,b=wye,i=1831,x=0.04642027830087225,y=0.6494131546788959,x2=0.0021548422375304312,xy=0.030145939372441748,y2=0.4217374454699956 +a=hat,b=wye,i=1832,x=0.6857514350854769,y=0.36289271210344964,x2=0.470255030721791,xy=0.2488541981070014,y2=0.1316911204977972 +a=dog,b=wye,i=1833,x=0.09500906973160539,y=0.2740836896748564,x2=0.009026723331265056,xy=0.026040436384614125,y2=0.07512186894578299 +a=pan,b=cat,i=1834,x=0.3891034194374777,y=0.41285451787678373,x2=0.15140147101793772,xy=0.16064310463606782,y2=0.17044885293127154 +a=cat,b=hat,i=1835,x=0.8648307282983019,y=0.877800241267602,x2=0.7479321886089713,xy=0.7591486219558854,y2=0.7705332635694604 +a=wye,b=hat,i=1836,x=0.1083201113100416,y=0.8830714691889023,x2=0.011733246514219801,xy=0.09565439983726387,y2=0.7798152196954465 +a=cat,b=pan,i=1837,x=0.5910333246072961,y=0.4700355030879563,x2=0.3493203907963534,xy=0.2778066460735378,y2=0.22093337416314815 +a=wye,b=wye,i=1838,x=0.976156478807367,y=0.4963443661617175,x2=0.9528814711175976,xy=0.4845097687482966,y2=0.2463577298204771 +a=cat,b=cat,i=1839,x=0.5857391367230061,y=0.21042599768926196,x2=0.3430903362890125,xy=0.12325474223058558,y2=0.044279100503521275 +a=cat,b=wye,i=1840,x=0.4625995520167725,y=0.4914487558439634,x2=0.2139983455261186,xy=0.22734397429261768,y2=0.24152187962057955 +a=cat,b=dog,i=1841,x=0.5083785764238301,y=0.17967790520934135,x2=0.2584487769667201,xy=0.09134439766514084,y2=0.032284149620417056 +a=dog,b=hat,i=1842,x=0.08973952346955483,y=0.4080088536410058,x2=0.008053182072542782,xy=0.0366145200971032,y2=0.1664712246494477 +a=dog,b=wye,i=1843,x=0.7413358080887688,y=0.8059568250500672,x2=0.5495787803546278,xy=0.59748465418315,y2=0.6495664038447846 +a=dog,b=dog,i=1844,x=0.135674020550268,y=0.5106329505716233,x2=0.018407439852274544,xy=0.0692796254294984,y2=0.26074601020948185 +a=cat,b=cat,i=1845,x=0.014689676776337035,y=0.316038734586748,x2=0.00021578660379325564,xy=0.004642506859881897,y2=0.09988048175919297 +a=wye,b=cat,i=1846,x=0.8211819138194043,y=0.8866389100790875,x2=0.6743397355840995,xy=0.7280918370454957,y2=0.7861285568662322 +a=wye,b=cat,i=1847,x=0.9385592125942065,y=0.4793262044790002,x2=0.8808933955454569,xy=0.44987602505158003,y2=0.22975361030024433 +a=wye,b=pan,i=1848,x=0.7893143757600549,y=0.6919112149444487,x2=0.6230171837814852,xy=0.5461354687052588,y2=0.47874112936590313 +a=wye,b=cat,i=1849,x=0.12371548179815062,y=0.8684796337803941,x2=0.015305520436548536,xy=0.10744437632502285,y2=0.7542568742913274 +a=dog,b=hat,i=1850,x=0.1473330723141124,y=0.7129239980300203,x2=0.021707034197515476,xy=0.10503728295622311,y2=0.5082606269671084 +a=hat,b=hat,i=1851,x=0.504310464747479,y=0.9695595351812518,x2=0.25432904485381824,xy=0.4889590197876068,y2=0.9400456922608851 +a=wye,b=wye,i=1852,x=0.7141968633631569,y=0.07349430152204495,x2=0.5100771596377718,xy=0.05248939962211059,y2=0.005401412356213258 +a=hat,b=pan,i=1853,x=0.6941633575842103,y=0.15744572867390538,x2=0.48186276701258424,xy=0.10929305565357074,y2=0.02478915747765703 +a=dog,b=cat,i=1854,x=0.5301548545100264,y=0.38765241432256414,x2=0.28106416976054727,xy=0.20551580931563948,y2=0.15027439433011294 +a=hat,b=hat,i=1855,x=0.6719990370772357,y=0.4520550328185472,x2=0.4515827058327321,xy=0.3037805467599819,y2=0.2043537526965778 +a=dog,b=wye,i=1856,x=0.4772555680520256,y=0.6322990566715125,x2=0.22777287723666167,xy=0.30176824547052267,y2=0.3998020970676846 +a=dog,b=wye,i=1857,x=0.7986025159140517,y=0.9080985637180121,x2=0.6377659784242533,xy=0.7252097976831413,y2=0.8246430014267165 +a=dog,b=wye,i=1858,x=0.23880474055835288,y=0.4703603772135009,x2=0.05702770411314223,xy=0.11232428784939907,y2=0.22123888445242684 +a=cat,b=wye,i=1859,x=0.9548889864289271,y=0.42094008659908877,x2=0.9118129764032636,xy=0.40195105263990866,y2=0.17719055650604834 +a=pan,b=dog,i=1860,x=0.5708603602987686,y=0.7716128562092849,x2=0.3258815509604399,xy=0.44048319310679435,y2=0.5953863998674506 +a=dog,b=hat,i=1861,x=0.6081637768881512,y=0.6598151702145101,x2=0.3698631795188609,xy=0.4012756859657548,y2=0.4353560588452029 +a=dog,b=hat,i=1862,x=0.18227050655777366,y=0.21199911021304896,x2=0.03322253756082741,xy=0.03864118520832972,y2=0.044943622731124476 +a=cat,b=cat,i=1863,x=0.5097463310635671,y=0.057005544836321254,x2=0.25984132203276783,xy=0.029058367330594435,y2=0.003249632142085833 +a=wye,b=cat,i=1864,x=0.960170183444857,y=0.6035854062372394,x2=0.9219267811765305,xy=0.5795447102314487,y2=0.36431534262257337 +a=hat,b=pan,i=1865,x=0.9678322067419,y=0.14285458653365724,x2=0.9366991804068958,xy=0.13825926972807118,y2=0.020407432893702164 +a=dog,b=hat,i=1866,x=0.4458172422957142,y=0.721500218126486,x2=0.19875301352815553,xy=0.32165723756090625,y2=0.5205625647565669 +a=wye,b=pan,i=1867,x=0.3324294042337804,y=0.4711395763539047,x2=0.11050930879922619,xy=0.15662064867828424,y2=0.22197250040693678 +a=dog,b=cat,i=1868,x=0.5202033203165165,y=0.9685070508492729,x2=0.2706114944683283,xy=0.5038205836017491,y2=0.9380059075447561 +a=dog,b=dog,i=1869,x=0.04263265911354075,y=0.027874483930962368,x2=0.001817543623091369,xy=0.001188363371394588,y2=0.0007769868544174793 +a=cat,b=dog,i=1870,x=0.6075625460293752,y=0.2590439713720014,x2=0.3691322473376967,xy=0.15738541478033377,y2=0.0671037791041783 +a=pan,b=cat,i=1871,x=0.12168877974431747,y=0.16099253350193754,x2=0.014808159115661008,xy=0.019590984949796927,y2=0.025918595843372482 +a=pan,b=wye,i=1872,x=0.5238972446998524,y=0.005571739317915103,x2=0.27446832300409707,xy=0.002919018876841558,y2=3.104427902680106e-05 +a=hat,b=hat,i=1873,x=0.8435735251414606,y=0.008669283793229066,x2=0.7116162923195903,xy=0.007313178289905976,y2=7.515648148754414e-05 +a=hat,b=wye,i=1874,x=0.3722275553134189,y=0.27490108794464796,x2=0.13855335293460433,xy=0.10232575991863548,y2=0.07557060815315107 +a=dog,b=cat,i=1875,x=0.5274569201354636,y=0.30887322350847013,x2=0.2782108025987889,xy=0.16291731918409033,y2=0.09540266820051334 +a=pan,b=wye,i=1876,x=0.9908531016291003,y=0.318873165751998,x2=0.9817898690080082,xy=0.3159564653116574,y2=0.10168009583670118 +a=wye,b=cat,i=1877,x=0.4985270079406078,y=0.859770421815565,x2=0.24852917764621482,xy=0.42861877590354786,y2=0.7392051782289145 +a=wye,b=cat,i=1878,x=0.76078545836753,y=0.5617936421705944,x2=0.5787945136634927,xy=0.42740443356671975,y2=0.3156120963833018 +a=wye,b=hat,i=1879,x=0.12661485498555325,y=0.7714852316975519,x2=0.016031321503012678,xy=0.09768149073488148,y2=0.5951894627274253 +a=pan,b=cat,i=1880,x=0.6473054872084413,y=0.2763324345662559,x2=0.4190043937701575,xy=0.178871501188405,y2=0.0763596143933141 +a=hat,b=hat,i=1881,x=0.7028567609419808,y=0.8559547631237583,x2=0.49400762640185275,xy=0.6016135923220252,y2=0.7326585565142492 +a=wye,b=pan,i=1882,x=0.7039035324291367,y=0.5825785397127933,x2=0.4954801829662167,xy=0.4100790920212433,y2=0.3393977549338906 +a=hat,b=wye,i=1883,x=0.4354395504414025,y=0.4313558991052089,x2=0.1896076020886107,xy=0.18782941878661913,y2=0.18606791169286316 +a=wye,b=hat,i=1884,x=0.4680423469534515,y=0.4600259999648787,x2=0.21906363854169505,xy=0.2153116486831702,y2=0.21162392064368657 +a=cat,b=cat,i=1885,x=0.5621276986405592,y=0.07370622847695374,x2=0.3159875495789314,xy=0.04143231258922526,y2=0.005432608116296906 +a=wye,b=cat,i=1886,x=0.05295361060059567,y=0.2703073644974977,x2=0.002804084875639518,xy=0.014313750922073772,y2=0.07306607130158309 +a=cat,b=wye,i=1887,x=0.4956315475738545,y=0.6284563971450301,x2=0.24565063095045403,xy=0.3114828166996802,y2=0.3949574431125118 +a=hat,b=pan,i=1888,x=0.7225838421443049,y=0.2568173469958308,x2=0.5221274089280258,xy=0.1855720653215546,y2=0.06595514971797697 +a=cat,b=cat,i=1889,x=0.5249774787875754,y=0.7999289864413597,x2=0.2756013532341592,xy=0.41994470251108557,y2=0.639886383349101 +a=wye,b=hat,i=1890,x=0.5932896697959987,y=0.5666936479678745,x2=0.35199263228664524,xy=0.3362134872783502,y2=0.3211416906471372 +a=pan,b=dog,i=1891,x=0.6936886019849191,y=0.9085575716131387,x2=0.48120387652379154,xy=0.6302560316751312,y2=0.8254768609355636 +a=hat,b=pan,i=1892,x=0.6278789321927271,y=0.9614314343646176,x2=0.39423195349147916,xy=0.6036625423853781,y2=0.9243504029844061 +a=pan,b=wye,i=1893,x=0.5068215741396227,y=0.09461873694597445,x2=0.25686810801336507,xy=0.04795481720206164,y2=0.00895270538125151 +a=hat,b=dog,i=1894,x=0.9970136511026203,y=0.2054109087831395,x2=0.9940362204849775,xy=0.2047974801421852,y2=0.04219364144711526 +a=dog,b=hat,i=1895,x=0.45154718754362844,y=0.19803710821245812,x2=0.20389486257856076,xy=0.08942309924260866,y2=0.03921869622915285 +a=dog,b=pan,i=1896,x=0.45178612360197967,y=0.21143170418181334,x2=0.20411070147930324,xy=0.09552191003886193,y2=0.044703365533225826 +a=dog,b=cat,i=1897,x=0.8284592168198257,y=0.37414538945545384,x2=0.686344673933719,xy=0.309964196325014,y2=0.13998477245077323 +a=pan,b=cat,i=1898,x=0.6578753840992824,y=0.5606141231298089,x2=0.4328000210037783,xy=0.36881423158550536,y2=0.31428819505260447 +a=dog,b=cat,i=1899,x=0.5578615396986291,y=0.24893276783730456,x2=0.3112094974749251,xy=0.1388700171471601,y2=0.06196752290314137 +a=pan,b=pan,i=1900,x=0.1999163967434261,y=0.23106421121292509,x2=0.03996656568687495,xy=0.04619352452204994,y2=0.05339066970345126 +a=wye,b=pan,i=1901,x=0.7221043028648414,y=0.9545189972805478,x2=0.5214346242159186,xy=0.6892622751025174,y2=0.9111065161694624 +a=cat,b=wye,i=1902,x=0.7857344089281942,y=0.39748580921982657,x2=0.6173785613737388,xy=0.3123182773646854,y2=0.15799496853114037 +a=dog,b=cat,i=1903,x=0.4377556052325614,y=0.9205889212151315,x2=0.19162996991252615,xy=0.4029929603769207,y2=0.8474839618640395 +a=dog,b=wye,i=1904,x=0.6364594734271972,y=0.9988277206721594,x2=0.4050806613152252,xy=0.6357133651434902,y2=0.9976568155831413 +a=cat,b=wye,i=1905,x=0.7494980960150721,y=0.3233057611615623,x2=0.5617473959302183,xy=0.2423170524212946,y2=0.10452661520025716 +a=pan,b=dog,i=1906,x=0.3596467807923023,y=0.03607296469435961,x2=0.12934580693426634,xy=0.01297352562596081,y2=0.0013012587818405149 +a=pan,b=dog,i=1907,x=0.4534172862657031,y=0.45625122636763116,x2=0.20558723548455454,xy=0.20687219291501033,y2=0.20816518156196742 +a=dog,b=dog,i=1908,x=0.3941709634584213,y=0.6681118838539379,x2=0.1553707484337401,xy=0.26335030495672757,y2=0.44637348934685783 +a=pan,b=cat,i=1909,x=0.18925668401877693,y=0.31859001901289064,x2=0.03581809244578318,xy=0.06029529055985878,y2=0.10149960021463401 +a=wye,b=dog,i=1910,x=0.8598761609531259,y=0.8564524122457609,x2=0.7393870121754861,xy=0.7364430122809288,y2=0.7335107344415827 +a=hat,b=dog,i=1911,x=0.2951437397116916,y=0.30801314344950215,x2=0.08710982709100276,xy=0.09090815103803979,y2=0.09487209653764359 +a=dog,b=cat,i=1912,x=0.46852111498594173,y=0.42442338462650697,x2=0.21951203518767004,xy=0.19885131739131826,y2=0.18013520941781988 +a=dog,b=pan,i=1913,x=0.857345461986018,y=0.32535406406240897,x2=0.7350412411880187,xy=0.2789408303626145,y2=0.10585526700192611 +a=hat,b=hat,i=1914,x=0.35674542509750684,y=0.5640334157488235,x2=0.12726729832800088,xy=0.20121634067051283,y2=0.31813369408128517 +a=wye,b=hat,i=1915,x=0.3201029255847997,y=0.7641268225779082,x2=0.10246588296794781,xy=0.2445992314250056,y2=0.58388980098301 +a=hat,b=hat,i=1916,x=0.26849889363278556,y=0.5960659506515633,x2=0.0720916558820299,xy=0.1600430482821193,y2=0.35529461752615193 +a=hat,b=cat,i=1917,x=0.15341962994596148,y=0.6464271573257129,x2=0.02353758285275576,xy=0.09917461526393069,y2=0.41786806972820195 +a=cat,b=hat,i=1918,x=0.2059147752091829,y=0.15303076691478756,x2=0.042400894649448316,xy=0.03151129596934734,y2=0.02341841562252804 +a=dog,b=cat,i=1919,x=0.6520094436702853,y=0.9006621596644201,x2=0.425116314635235,xy=0.5872402336576763,y2=0.8111923258513773 +a=cat,b=cat,i=1920,x=0.4943396218474403,y=0.9469147048476291,x2=0.24437166172827027,xy=0.46809745711615747,y2=0.8966474582566725 +a=dog,b=pan,i=1921,x=0.430692526311669,y=0.6280723581906466,x2=0.18549605222072768,xy=0.270506070655657,y2=0.3944748871231598 +a=cat,b=pan,i=1922,x=0.830265632162649,y=0.20797913700668036,x2=0.6893410199504433,xy=0.17267792966349366,y2=0.04325532143004352 +a=dog,b=cat,i=1923,x=0.9476536672136628,y=0.20591241384973957,x2=0.8980474729835036,xy=0.19513365410952313,y2=0.04239992217742642 +a=pan,b=cat,i=1924,x=0.5457406649999199,y=0.999319317626043,x2=0.29783287343455483,xy=0.5453691889485028,y2=0.9986390985805802 +a=cat,b=dog,i=1925,x=0.8347298456786796,y=0.5148043426639031,x2=0.6967739152667523,xy=0.4297225495065539,y2=0.26502351122561335 +a=wye,b=wye,i=1926,x=0.1790291945225012,y=0.7077818317950146,x2=0.03205145249137558,xy=0.12671361124392191,y2=0.5009551214191064 +a=wye,b=wye,i=1927,x=0.36165393273394675,y=0.18598534813927592,x2=0.13079356706193007,xy=0.06726233258546137,y2=0.034590549722487665 +a=cat,b=hat,i=1928,x=0.44912201651560346,y=0.5921420879161559,x2=0.201710585719042,xy=0.26594404858866366,y2=0.35063225228170447 +a=dog,b=dog,i=1929,x=0.2542943701307576,y=0.5561419469051366,x2=0.06466562668019875,xy=0.14142376609153495,y2=0.3092938651074358 +a=hat,b=hat,i=1930,x=0.4145256779871679,y=0.43548570839091383,x2=0.1718315377107212,xy=0.18052000852446565,y2=0.18964780221273603 +a=hat,b=cat,i=1931,x=0.1771081870965595,y=0.03921409808618914,x2=0.03136730993662993,xy=0.006945137820671623,y2=0.0015377454887132629 +a=hat,b=hat,i=1932,x=0.5637566075428295,y=0.8513241017800217,x2=0.3178215125481999,xy=0.47993958753895155,y2=0.7247527262715607 +a=hat,b=hat,i=1933,x=0.5978661283989376,y=0.6146801264132213,x2=0.35744390748673494,xy=0.3674964273824422,y2=0.37783165780737377 +a=wye,b=wye,i=1934,x=0.0594028946154872,y=0.2812140461609792,x2=0.0035287038886986782,xy=0.016704928348495404,y2=0.07908133975822935 +a=pan,b=wye,i=1935,x=0.8031983433337532,y=0.6001926367446158,x2=0.6451275787340857,xy=0.4820737315143925,y2=0.3602312012024543 +a=cat,b=cat,i=1936,x=0.9452450634561056,y=0.8383363244626086,x2=0.893488229988137,xy=0.7924332722142168,y2=0.7028077929134763 +a=dog,b=dog,i=1937,x=0.5719613387155258,y=0.44354432565419655,x2=0.3271397729852564,xy=0.2536902062808494,y2=0.19673156882003595 +a=pan,b=pan,i=1938,x=0.6891389849896078,y=0.835439567532576,x2=0.4749125406325069,xy=0.5757339755895563,y2=0.6979592709990176 +a=pan,b=dog,i=1939,x=0.09114806381008289,y=0.2555433546853909,x2=0.008307969536326943,xy=0.023292281999106657,y2=0.0653024061238635 +a=hat,b=dog,i=1940,x=0.5236878163188348,y=0.1477355232703238,x2=0.2742489289607896,xy=0.07736729357415627,y2=0.021825784835956385 +a=dog,b=dog,i=1941,x=0.05667870325475044,y=0.09362041882224037,x2=0.0032124754026400582,xy=0.0053062839370112145,y2=0.008764782820451698 +a=wye,b=dog,i=1942,x=0.1950731031569587,y=0.4354796173007899,x2=0.03805351557528545,xy=0.08495036030846988,y2=0.18964249708444242 +a=pan,b=cat,i=1943,x=0.9997301774748071,y=0.8408385083267972,x2=0.9994604277538093,xy=0.8406116311572011,y2=0.7070093970852334 +a=cat,b=pan,i=1944,x=0.5200891211928741,y=0.5027071845601069,x2=0.2704926939831761,xy=0.26145253783520994,y2=0.2527145134083494 +a=cat,b=wye,i=1945,x=0.28650709092005766,y=0.29700166356358126,x2=0.0820863131474742,xy=0.08509308262601935,y2=0.08820998815953471 +a=dog,b=pan,i=1946,x=0.1928207092593428,y=0.2931434667127827,x2=0.03717982591927601,xy=0.056524131166301304,y2=0.08593309207638833 +a=pan,b=dog,i=1947,x=0.6191864723715613,y=0.6597169323541499,x2=0.3833918875679383,xy=0.408487800108154,y2=0.4352264308347699 +a=hat,b=cat,i=1948,x=0.06105819430380832,y=0.2216297398784508,x2=0.003728103091641611,xy=0.013532311721000945,y2=0.04911974159858977 +a=wye,b=cat,i=1949,x=0.39006512687798656,y=0.7411698261501961,x2=0.15215080320633975,xy=0.28910450227541146,y2=0.549332711195512 +a=dog,b=hat,i=1950,x=0.5647214293253914,y=0.775378992255826,x2=0.318910292739313,xy=0.4378731327755916,y2=0.6012125816316602 +a=dog,b=hat,i=1951,x=0.5079065817824603,y=0.973907719639408,x2=0.25796909581794303,xy=0.4946541408536024,y2=0.9484962463732318 +a=wye,b=pan,i=1952,x=0.637860906606702,y=0.9633937557590291,x2=0.40686653617712387,xy=0.61451121446769,y2=0.9281275286354878 +a=dog,b=wye,i=1953,x=0.08307786246752591,y=0.02792209445052518,x2=0.0069019312321731505,xy=0.0023197079225659996,y2=0.0007796433585040491 +a=dog,b=cat,i=1954,x=0.41753539608338086,y=0.2160002459363365,x2=0.17433580698250573,xy=0.09018774824113593,y2=0.04665610624455785 +a=wye,b=wye,i=1955,x=0.5512559258404929,y=0.205687403628523,x2=0.303883095774259,xy=0.11338640012096861,y2=0.04230730801144294 +a=hat,b=pan,i=1956,x=0.5587500096459429,y=0.4137374102923569,x2=0.3122015732793413,xy=0.23117578199174185,y2=0.17117864467542607 +a=pan,b=cat,i=1957,x=0.754814481507741,y=0.13735538214099252,x2=0.5697449014937999,xy=0.1036778315530509,y2=0.01886650100309809 +a=hat,b=dog,i=1958,x=0.346044502438559,y=0.7524672264370861,x2=0.11974679766794986,xy=0.26038714697374393,y2=0.566206926861921 +a=hat,b=pan,i=1959,x=0.6704008281574495,y=0.9030997339750632,x2=0.4494372703941941,xy=0.6054388095656547,y2=0.8155891295058298 +a=pan,b=wye,i=1960,x=0.424121628516242,y=0.4700100410762793,x2=0.1798791557752692,xy=0.1993414240402574,y2=0.22090943871252575 +a=dog,b=cat,i=1961,x=0.26082501706717964,y=0.5271575259299263,x2=0.06802968952809456,xy=0.1374958706977652,y2=0.27789505714456086 +a=cat,b=wye,i=1962,x=0.4004204247150758,y=0.45948897969094016,x2=0.16033651652900166,xy=0.1839887723997431,y2=0.21113012245742122 +a=dog,b=pan,i=1963,x=0.566258344848614,y=0.7590416956530732,x2=0.32064851311069187,xy=0.42981369425159466,y2=0.5761442957398927 +a=hat,b=wye,i=1964,x=0.543750094243006,y=0.4080083600528972,x2=0.29566416498927794,xy=0.22185458423069718,y2=0.1664708218730546 +a=hat,b=dog,i=1965,x=0.13957352000394396,y=0.7345129593607466,x2=0.019480767486291347,xy=0.10251855922649324,y2=0.5395092874688817 +a=dog,b=cat,i=1966,x=0.7217547939582643,y=0.1467544702092567,x2=0.5209299826017365,xy=0.1059207424083363,y2=0.02153687452639961 +a=cat,b=wye,i=1967,x=0.9123342559478345,y=0.09180218863804412,x2=0.8323537945758888,xy=0.08375428146547273,y2=0.008427641838735038 +a=pan,b=wye,i=1968,x=0.9571434219694788,y=0.7679577339312599,x2=0.9161235302194437,xy=0.7350456933828926,y2=0.5897590811048358 +a=cat,b=pan,i=1969,x=0.545058440887102,y=0.2632010695311473,x2=0.29708870398227843,xy=0.14345996459846486,y2=0.06927480300233983 +a=pan,b=pan,i=1970,x=0.7397159384861364,y=0.1167771663731686,x2=0.5471796696504255,xy=0.0863819312174801,y2=0.013636906586146698 +a=cat,b=hat,i=1971,x=0.9726274282842899,y=0.621723092207134,x2=0.9460041142509116,xy=0.6047049322783812,y2=0.3865396033836004 +a=pan,b=hat,i=1972,x=0.9551191389894814,y=0.554583451306824,x2=0.9122525696640084,xy=0.5296932685099887,y2=0.3075628044633884 +a=dog,b=dog,i=1973,x=0.20712014040863647,y=0.1490765678592062,x2=0.042898752562893286,xy=0.03087675966663641,y2=0.02222382308468051 +a=hat,b=cat,i=1974,x=0.3485984155594296,y=0.8706537631090331,x2=0.12152085533054477,xy=0.3035085223206639,y2=0.7580379752159203 +a=dog,b=dog,i=1975,x=0.8553530567509867,y=0.044355818311703654,x2=0.7316288516932568,xy=0.03793988477760711,y2=0.0019674386181008654 +a=dog,b=hat,i=1976,x=0.02157953697752668,y=0.4995753400915781,x2=0.0004656764161644414,xy=0.010780604524566677,y2=0.24957552042761594 +a=pan,b=dog,i=1977,x=0.002345497877634606,y=0.33024301683227086,x2=5.50136029398844e-06,xy=0.0007745842950837407,y2=0.10906045016647954 +a=hat,b=dog,i=1978,x=0.4143609240891579,y=0.9913997989414325,x2=0.1716949754120209,xy=0.4107973368311773,y2=0.9828735613411128 +a=dog,b=pan,i=1979,x=0.25986284555401273,y=0.5432073452922572,x2=0.06752869849942868,xy=0.1411594064734871,y2=0.2950742199794616 +a=hat,b=wye,i=1980,x=0.03283655272761554,y=0.1853095711969286,x2=0.0010782391950334756,xy=0.006084927505539772,y2=0.03433963717718955 +a=dog,b=pan,i=1981,x=0.9300610248275437,y=0.43854544233750237,x2=0.8650135099032609,xy=0.4078740235338659,y2=0.1923221049949956 +a=hat,b=dog,i=1982,x=0.45684863357423755,y=0.4017729244389676,x2=0.20871067399864796,xy=0.18354941153706775,y2=0.1614214828122404 +a=hat,b=dog,i=1983,x=0.6601665924719262,y=0.25346104542215886,x2=0.4358199298159943,xy=0.16732651468071874,y2=0.06424250154649368 +a=wye,b=dog,i=1984,x=0.39291855423695565,y=0.06200108158497475,x2=0.15438499026365946,xy=0.024361375337495814,y2=0.003844134117706695 +a=pan,b=wye,i=1985,x=0.4085531920151485,y=0.7697975606046983,x2=0.1669157107057668,xy=0.3145032505905242,y2=0.5925882843129441 +a=cat,b=hat,i=1986,x=0.19941490783677196,y=0.2304215691718211,x2=0.03976630546754825,xy=0.04594949598000308,y2=0.05309409953960434 +a=dog,b=dog,i=1987,x=0.9512236571317361,y=0.08232357605490426,x2=0.9048264458870746,xy=0.07830813308310865,y2=0.0067771711744676055 +a=hat,b=cat,i=1988,x=0.3795926086837851,y=0.5503100589330622,x2=0.1440905485673612,xy=0.20889363085532858,y2=0.30284116096291036 +a=hat,b=cat,i=1989,x=0.43724725835821965,y=0.9686657648338483,x2=0.19118516494177967,xy=0.4235464499390681,y2=0.9383133639611442 +a=dog,b=hat,i=1990,x=0.9644509448856519,y=0.6570664073250574,x2=0.9301656250908267,xy=0.6337083173972722,y2=0.43173626363505824 +a=cat,b=pan,i=1991,x=0.9518161607677816,y=0.9663159136351449,x2=0.9059540038987195,xy=0.9197551030050148,y2=0.9337664449445249 +a=dog,b=hat,i=1992,x=0.32417090539430016,y=0.6595975315610155,x2=0.10508677590416031,xy=0.21382232900197987,y2=0.4350689036413849 +a=hat,b=cat,i=1993,x=0.9679659795942246,y=0.3623190225967923,x2=0.9369581376518068,xy=0.350712487633526,y2=0.13127507413549486 +a=wye,b=hat,i=1994,x=0.9584661091937297,y=0.7356419740173126,x2=0.9186572824729665,xy=0.7050879005959684,y2=0.5411691139360884 +a=wye,b=pan,i=1995,x=0.0918788372083641,y=0.3995465991850543,x2=0.008441720726761071,xy=0.0367098769436791,y2=0.15963748492034244 +a=cat,b=wye,i=1996,x=0.19549812467393535,y=0.9499072727966543,x2=0.03821951675102557,xy=0.18570509044587824,y2=0.9023238269119774 +a=cat,b=hat,i=1997,x=0.7643927480995454,y=0.17816043420320515,x2=0.584296273347175,xy=0.13618454390319623,y2=0.03174114031547459 +a=dog,b=wye,i=1998,x=0.544898947312341,y=0.9687310115367199,x2=0.2969148627820974,xy=0.527860508415178,y2=0.9384397727129565 +a=hat,b=dog,i=1999,x=0.010819574860139292,y=0.8983779455002124,x2=0.00011706320015415817,xy=0.009720067434037685,y2=0.8070829329611827 +a=wye,b=cat,i=2000,x=0.10887569736363611,y=0.3480524315645718,x2=0.01185391747641808,xy=0.037894451205701986,y2=0.12114049511801092 diff --git a/go/reg_test/input/abixy-wide-short b/go/reg_test/input/abixy-wide-short new file mode 100644 index 000000000..a8d41ca4f --- /dev/null +++ b/go/reg_test/input/abixy-wide-short @@ -0,0 +1,20 @@ +a=cat,b=pan,i=1,x=0.5117389009583777,y=0.08295224980036853,x2=0.2618767027540883,xy=0.0424498931448654,y2=0.006881075746942741 +a=pan,b=wye,i=2,x=0.5225940442098578,y=0.511678736087022,x2=0.27310453504361476,xy=0.2674002600279053,y2=0.26181512896361225 +a=wye,b=cat,i=3,x=0.8150401717873625,y=0.07989551500795256,x2=0.6642904816271734,xy=0.06511805427712146,y2=0.006383293318385972 +a=dog,b=hat,i=4,x=0.4488733555675044,y=0.5730530513123552,x2=0.20148728933843124,xy=0.25722824606077416,y2=0.32838979961840076 +a=dog,b=pan,i=5,x=0.2946557960430134,y=0.6850437256584863,x2=0.08682203814174191,xy=0.20185210430817294,y2=0.46928490606405937 +a=wye,b=cat,i=6,x=0.048709182664292916,y=0.5851879044762575,x2=0.0023725844758234536,xy=0.02850402453206882,y2=0.34244488354531344 +a=dog,b=hat,i=7,x=0.8500003149528544,y=0.2984098741712895,x2=0.7225005354199517,xy=0.25364848703063775,y2=0.08904845300292483 +a=pan,b=pan,i=8,x=0.616507208914765,y=0.25924335982487057,x2=0.38008113864387366,xy=0.15982540019531707,y2=0.06720711961328732 +a=hat,b=hat,i=9,x=0.33786884067769307,y=0.6036735617015514,x2=0.11415535350088835,xy=0.203962486439877,y2=0.3644217690974368 +a=wye,b=hat,i=10,x=0.3834648944206174,y=0.4999709279216641,x2=0.14704532525301522,xy=0.19172129908885902,y2=0.24997092876684981 +a=pan,b=hat,i=11,x=0.025474999754416028,y=0.7861954915044592,x2=0.0006489756124874967,xy=0.020028329952999087,y2=0.6181033508619382 +a=cat,b=hat,i=12,x=0.6335445699880142,y=0.15467178563525052,x2=0.4013787221612979,xy=0.0979914699195631,y2=0.02392336127159689 +a=hat,b=wye,i=13,x=0.35922068401384877,y=0.8502678133887914,x2=0.1290394998233774,xy=0.30543378552048117,y2=0.7229553544849566 +a=dog,b=dog,i=14,x=0.5440047442770544,y=0.933608851612059,x2=0.2959411617959433,xy=0.5078876445760125,y2=0.8716254878083876 +a=wye,b=dog,i=15,x=0.4689175303764642,y=0.09048353045392021,x2=0.21988365029436224,xy=0.04242931364019586,y2=0.008187269283405506 +a=pan,b=pan,i=16,x=0.3959177828066379,y=0.6339858483805666,x2=0.15675089074252413,xy=0.25100627142161924,y2=0.4019380559468268 +a=dog,b=hat,i=17,x=0.34033844788864975,y=0.8845934733681523,x2=0.11583025911125516,xy=0.3010611697385466,y2=0.782505613125532 +a=wye,b=wye,i=18,x=0.6770613653962891,y=0.896307226056897,x2=0.4584120925122874,xy=0.6068549942886431,y2=0.8033666434818095 +a=dog,b=wye,i=19,x=0.4865373244199632,y=0.44117766146315884,x2=0.23671856805373653,xy=0.2146493990021416,y2=0.1946377289741016 +a=dog,b=dog,i=20,x=0.3223311725542929,y=0.08115611029827985,x2=0.10389738480022534,xy=0.026159144192390068,y2=0.006586314238746564 diff --git a/go/reg_test/input/abixy.csv b/go/reg_test/input/abixy.csv new file mode 100644 index 000000000..9e6d97092 --- /dev/null +++ b/go/reg_test/input/abixy.csv @@ -0,0 +1,11 @@ +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 diff --git a/go/reg_test/input/abixy.dkvp b/go/reg_test/input/abixy.dkvp new file mode 100644 index 000000000..547de9e99 --- /dev/null +++ b/go/reg_test/input/abixy.dkvp @@ -0,0 +1,10 @@ +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 diff --git a/go/reg_test/input/abixy.json b/go/reg_test/input/abixy.json new file mode 100644 index 000000000..3bba0e8d7 --- /dev/null +++ b/go/reg_test/input/abixy.json @@ -0,0 +1,10 @@ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } diff --git a/go/reg_test/input/abixy.md b/go/reg_test/input/abixy.md new file mode 100644 index 000000000..37253beb2 --- /dev/null +++ b/go/reg_test/input/abixy.md @@ -0,0 +1,12 @@ +| a | b | i | x | y | +| --- | --- | --- | --- | --- | +| pan | pan | 1 | 0.3467901443380824 | 0.7268028627434533 | +| eks | pan | 2 | 0.7586799647899636 | 0.5221511083334797 | +| wye | wye | 3 | 0.20460330576630303 | 0.33831852551664776 | +| eks | wye | 4 | 0.38139939387114097 | 0.13418874328430463 | +| wye | pan | 5 | 0.5732889198020006 | 0.8636244699032729 | +| zee | pan | 6 | 0.5271261600918548 | 0.49322128674835697 | +| eks | zee | 7 | 0.6117840605678454 | 0.1878849191181694 | +| zee | wye | 8 | 0.5985540091064224 | 0.976181385699006 | +| hat | wye | 9 | 0.03144187646093577 | 0.7495507603507059 | +| pan | wye | 10 | 0.5026260055412137 | 0.9526183602969864 | diff --git a/go/reg_test/input/abixy.nidx b/go/reg_test/input/abixy.nidx new file mode 100644 index 000000000..61eea58e5 --- /dev/null +++ b/go/reg_test/input/abixy.nidx @@ -0,0 +1,10 @@ +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 diff --git a/go/reg_test/input/abixy.pprint b/go/reg_test/input/abixy.pprint new file mode 100644 index 000000000..c894dcf82 --- /dev/null +++ b/go/reg_test/input/abixy.pprint @@ -0,0 +1,11 @@ +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 diff --git a/go/reg_test/input/abixy.tsv b/go/reg_test/input/abixy.tsv new file mode 100644 index 000000000..c57882025 --- /dev/null +++ b/go/reg_test/input/abixy.tsv @@ -0,0 +1,11 @@ +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 diff --git a/go/reg_test/input/abixy.xtab b/go/reg_test/input/abixy.xtab new file mode 100644 index 000000000..0bb84975a --- /dev/null +++ b/go/reg_test/input/abixy.xtab @@ -0,0 +1,59 @@ +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 diff --git a/go/reg_test/input/absent.dkvp b/go/reg_test/input/absent.dkvp new file mode 100644 index 000000000..867885108 --- /dev/null +++ b/go/reg_test/input/absent.dkvp @@ -0,0 +1,4 @@ +a=1,b=2 +a=,b=4 +x=,b=6 +a=7,b=8 diff --git a/go/reg_test/input/arrays.json b/go/reg_test/input/arrays.json new file mode 100644 index 000000000..22713b007 --- /dev/null +++ b/go/reg_test/input/arrays.json @@ -0,0 +1,6 @@ +{"a":1,"b":1} +{"a":2,"b":[2,3]} +{"a":3,"b":{"c":[4,5]}} +{"a":4,"b":{"c":{"d":[4,5]}}} +{"a":5,"b":[6,7,[8,9]]} +{"a":6,"b":[[[11]]]} diff --git a/go/reg_test/input/b.csv b/go/reg_test/input/b.csv new file mode 100644 index 000000000..a04a43394 --- /dev/null +++ b/go/reg_test/input/b.csv @@ -0,0 +1,2 @@ +d,e,f +5,6,7 diff --git a/go/reg_test/input/b.pprint b/go/reg_test/input/b.pprint new file mode 100644 index 000000000..550924d01 --- /dev/null +++ b/go/reg_test/input/b.pprint @@ -0,0 +1,2 @@ +d e f +5 6 7 diff --git a/go/reg_test/input/bom-dquote-header.csv b/go/reg_test/input/bom-dquote-header.csv new file mode 100644 index 000000000..3906fe84f --- /dev/null +++ b/go/reg_test/input/bom-dquote-header.csv @@ -0,0 +1,3 @@ +"a","b","c" +1,2,3 +4,5,6 diff --git a/go/reg_test/input/bom.csv b/go/reg_test/input/bom.csv new file mode 100644 index 000000000..cd08dcc9b --- /dev/null +++ b/go/reg_test/input/bom.csv @@ -0,0 +1,3 @@ +a,b,c +1,2,3 +4,5,6 diff --git a/go/reg_test/input/braced.csv b/go/reg_test/input/braced.csv new file mode 100644 index 000000000..4ec74aff0 --- /dev/null +++ b/go/reg_test/input/braced.csv @@ -0,0 +1,3 @@ +name.x,name.y,z +1,2,3 +4,6,5 diff --git a/go/reg_test/input/c.csv b/go/reg_test/input/c.csv new file mode 100644 index 000000000..0748974a9 --- /dev/null +++ b/go/reg_test/input/c.csv @@ -0,0 +1,6 @@ +a,b,c +1,2,3 +4,5,6 + +a,b,c +7,8,9 diff --git a/go/reg_test/input/c.pprint b/go/reg_test/input/c.pprint new file mode 100644 index 000000000..b1a788a6f --- /dev/null +++ b/go/reg_test/input/c.pprint @@ -0,0 +1,6 @@ +a b c +1 2 3 +4 5 6 + +a b c +7 8 9 diff --git a/go/reg_test/input/capture-lengths.dkvp b/go/reg_test/input/capture-lengths.dkvp new file mode 100644 index 000000000..a44db65f6 --- /dev/null +++ b/go/reg_test/input/capture-lengths.dkvp @@ -0,0 +1,13 @@ +FIELD= +FIELD=a +FIELD=ab +FIELD=abc +FIELD=abcd +FIELD=abcde +FIELD=abcdef +FIELD=abcdefg +FIELD=abcdefgh +FIELD=abcdefghi +FIELD=abcdefghij +FIELD=abcdefghijk +FIELD=abcdefghijkl diff --git a/go/reg_test/input/capture.dkvp b/go/reg_test/input/capture.dkvp new file mode 100644 index 000000000..86b5125c1 --- /dev/null +++ b/go/reg_test/input/capture.dkvp @@ -0,0 +1,4 @@ +FIELD=ABC123 +FIELD=ABC..123 +FIELD=..ABC..123.. +FIELD=none of the above diff --git a/go/reg_test/input/clean-whitespace.csv b/go/reg_test/input/clean-whitespace.csv new file mode 100644 index 000000000..420c41b11 --- /dev/null +++ b/go/reg_test/input/clean-whitespace.csv @@ -0,0 +1,17 @@ +n,a,b , c +1,xy,2,3 +2,xy ,2,3 +3,xy ,2,3 +4,xy ,2,3 +5,xy,2,3 +6, xy,2,3 +7, xy,2,3 +8, xy,2,3 +9,xy,2,3 +10, xy ,2,3 +11, xy ,2,3 +12, xy ,2,3 +13,,2,3 +14, ,2,3 +15, ,2,3 +16, ,2,3 diff --git a/go/reg_test/input/comma-at-eof.csv b/go/reg_test/input/comma-at-eof.csv new file mode 100644 index 000000000..12e1120e8 --- /dev/null +++ b/go/reg_test/input/comma-at-eof.csv @@ -0,0 +1,3 @@ +a,b,c +1,2,3 +4,5, \ No newline at end of file diff --git a/go/reg_test/input/comments/comments1-atat.dkvp b/go/reg_test/input/comments/comments1-atat.dkvp new file mode 100644 index 000000000..2692f9394 --- /dev/null +++ b/go/reg_test/input/comments/comments1-atat.dkvp @@ -0,0 +1,3 @@ +@@ hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 diff --git a/go/reg_test/input/comments/comments1.csv b/go/reg_test/input/comments/comments1.csv new file mode 100644 index 000000000..ef1911b7e --- /dev/null +++ b/go/reg_test/input/comments/comments1.csv @@ -0,0 +1,4 @@ +# hello +a,b,c +1,2,3 +4,5,6 diff --git a/go/reg_test/input/comments/comments1.dkvp b/go/reg_test/input/comments/comments1.dkvp new file mode 100644 index 000000000..9c3dad9cf --- /dev/null +++ b/go/reg_test/input/comments/comments1.dkvp @@ -0,0 +1,3 @@ +# hello world 1 +a=1,b=2,c=3 +a=4,b=5,c=6 diff --git a/go/reg_test/input/comments/comments1.json b/go/reg_test/input/comments/comments1.json new file mode 100644 index 000000000..a5d842336 --- /dev/null +++ b/go/reg_test/input/comments/comments1.json @@ -0,0 +1,3 @@ +# hello world 1 +{ "a":1, "b":2, "c":3 } +{ "a":4, "b":5, "c":6 } diff --git a/go/reg_test/input/comments/comments1.nidx b/go/reg_test/input/comments/comments1.nidx new file mode 100644 index 000000000..eb2f2f10d --- /dev/null +++ b/go/reg_test/input/comments/comments1.nidx @@ -0,0 +1,3 @@ +# hello world 1 +aX1 bX2 cX3 +aX4 bX5 cX6 diff --git a/go/reg_test/input/comments/comments1.xtab b/go/reg_test/input/comments/comments1.xtab new file mode 100644 index 000000000..4d9f43db8 --- /dev/null +++ b/go/reg_test/input/comments/comments1.xtab @@ -0,0 +1,8 @@ +x 1 +#hello world3 +z 3 + +x 2 +#hello world4 +z 5 + diff --git a/go/reg_test/input/comments/comments2-atat.dkvp b/go/reg_test/input/comments/comments2-atat.dkvp new file mode 100644 index 000000000..6ccd3aaab --- /dev/null +++ b/go/reg_test/input/comments/comments2-atat.dkvp @@ -0,0 +1,3 @@ +a=1,b=2,c=3 +@@ hello world 2 +a=4,b=5,c=6 diff --git a/go/reg_test/input/comments/comments2.csv b/go/reg_test/input/comments/comments2.csv new file mode 100644 index 000000000..d8e996a14 --- /dev/null +++ b/go/reg_test/input/comments/comments2.csv @@ -0,0 +1,7 @@ +# hello +a,b,c +# hi +1,2,3 +# there +4,5,6 +# haha diff --git a/go/reg_test/input/comments/comments2.dkvp b/go/reg_test/input/comments/comments2.dkvp new file mode 100644 index 000000000..b13f182fb --- /dev/null +++ b/go/reg_test/input/comments/comments2.dkvp @@ -0,0 +1,3 @@ +a=1,b=2,c=3 +# hello world 2 +a=4,b=5,c=6 diff --git a/go/reg_test/input/comments/comments2.json b/go/reg_test/input/comments/comments2.json new file mode 100644 index 000000000..d020ac685 --- /dev/null +++ b/go/reg_test/input/comments/comments2.json @@ -0,0 +1,3 @@ +{ "a":1, "b":2, "c":3 } +# hello world 2 +{ "a":4, "b":5, "c":6 } diff --git a/go/reg_test/input/comments/comments2.nidx b/go/reg_test/input/comments/comments2.nidx new file mode 100644 index 000000000..8ee3ae723 --- /dev/null +++ b/go/reg_test/input/comments/comments2.nidx @@ -0,0 +1,3 @@ +aX1 bX2 cX3 +# hello world 2 +aX4 bX5 cX6 diff --git a/go/reg_test/input/comments/comments2.xtab b/go/reg_test/input/comments/comments2.xtab new file mode 100644 index 000000000..043e7736b --- /dev/null +++ b/go/reg_test/input/comments/comments2.xtab @@ -0,0 +1,13 @@ +#hello world1 + +#hello world2 +x 1 +#hello world3 +z 3 + +x 2 +#hello world4 +z 5 +#hello world5 + +#hello world6 diff --git a/go/reg_test/input/comments/comments3-atat.dkvp b/go/reg_test/input/comments/comments3-atat.dkvp new file mode 100644 index 000000000..83d9930ac --- /dev/null +++ b/go/reg_test/input/comments/comments3-atat.dkvp @@ -0,0 +1,3 @@ +a=1,b=2,c=3 +a=4,b=5,c=6 +@@ hello world 3 diff --git a/go/reg_test/input/comments/comments3.dkvp b/go/reg_test/input/comments/comments3.dkvp new file mode 100644 index 000000000..23c5e97c8 --- /dev/null +++ b/go/reg_test/input/comments/comments3.dkvp @@ -0,0 +1,3 @@ +a=1,b=2,c=3 +a=4,b=5,c=6 +# hello world 3 diff --git a/go/reg_test/input/comments/comments3.json b/go/reg_test/input/comments/comments3.json new file mode 100644 index 000000000..104fae21c --- /dev/null +++ b/go/reg_test/input/comments/comments3.json @@ -0,0 +1,3 @@ +{ "a":1, "b":2, "c":3 } +{ "a":4, "b":5, "c":6 } +# hello world 3 diff --git a/go/reg_test/input/comments/comments3.nidx b/go/reg_test/input/comments/comments3.nidx new file mode 100644 index 000000000..2d23d575d --- /dev/null +++ b/go/reg_test/input/comments/comments3.nidx @@ -0,0 +1,3 @@ +aX1 bX2 cX3 +aX4 bX5 cX6 +# hello world 3 diff --git a/go/reg_test/input/d.csv b/go/reg_test/input/d.csv new file mode 100644 index 000000000..a65ee2c39 --- /dev/null +++ b/go/reg_test/input/d.csv @@ -0,0 +1,5 @@ +h,i,j +3,4,5 + +m,n,o +8,9,10 diff --git a/go/reg_test/input/d.pprint b/go/reg_test/input/d.pprint new file mode 100644 index 000000000..4418cb5c6 --- /dev/null +++ b/go/reg_test/input/d.pprint @@ -0,0 +1,5 @@ +h i j +3 4 5 + +m n o +8 9 10 diff --git a/go/reg_test/input/date1.csv b/go/reg_test/input/date1.csv new file mode 100644 index 000000000..5911442dd --- /dev/null +++ b/go/reg_test/input/date1.csv @@ -0,0 +1,5 @@ +Name,Date_201505,Extraneous +Alice,2015-05-14,foo +Bob,2015-05-11,bar +Chuck,2015-05-28,quux +Denise,2015-05-02,meep diff --git a/go/reg_test/input/date2.csv b/go/reg_test/input/date2.csv new file mode 100644 index 000000000..0d9ec9f5f --- /dev/null +++ b/go/reg_test/input/date2.csv @@ -0,0 +1,5 @@ +Name,Date_201506,Extraneous +Alice,2015-06-23,cafe +Denise,2015-06-17,feed +Chuck,2015-06-19,beef +Bob,2015-06-19,d00d diff --git a/go/reg_test/input/dot-match.csv b/go/reg_test/input/dot-match.csv new file mode 100644 index 000000000..2ba4816b8 --- /dev/null +++ b/go/reg_test/input/dot-match.csv @@ -0,0 +1,4 @@ +text +hi +a.b +bye diff --git a/go/reg_test/input/dots.pprint-crlf b/go/reg_test/input/dots.pprint-crlf new file mode 100644 index 000000000..ff3ef7432 --- /dev/null +++ b/go/reg_test/input/dots.pprint-crlf @@ -0,0 +1,11 @@ +a///b///i//x///////////////////y +pan/pan/1//0.3467901443380824//0.7268028627434533 +eks/pan/2//0.7586799647899636//0.5221511083334797 +wye/wye/3//0.20460330576630303/0.33831852551664776 +eks/wye/4//0.38139939387114097/0.13418874328430463 +wye/pan/5//0.5732889198020006//0.8636244699032729 +zee/pan/6//0.5271261600918548//0.49322128674835697 +eks/zee/7//0.6117840605678454//0.1878849191181694 +zee/wye/8//0.5985540091064224//0.976181385699006 +hat/wye/9//0.03144187646093577/0.7495507603507059 +pan/wye/10/0.5026260055412137//0.9526183602969864 diff --git a/go/reg_test/input/dots.xtab b/go/reg_test/input/dots.xtab new file mode 100644 index 000000000..51947376e --- /dev/null +++ b/go/reg_test/input/dots.xtab @@ -0,0 +1,6 @@ +a.....1 +b.....2 +c.....345 + +defg..6 +hi....78 diff --git a/go/reg_test/input/double-ps.dkvp b/go/reg_test/input/double-ps.dkvp new file mode 100644 index 000000000..59aff8f0f --- /dev/null +++ b/go/reg_test/input/double-ps.dkvp @@ -0,0 +1,2 @@ +a=pan,b=wy.e,c=3 +a=pan,b=wy=e,c=3 diff --git a/go/reg_test/input/e.csv b/go/reg_test/input/e.csv new file mode 100644 index 000000000..b20400fda --- /dev/null +++ b/go/reg_test/input/e.csv @@ -0,0 +1,4 @@ + +a,b,c +1,2,3 +4,5,6 diff --git a/go/reg_test/input/e.pprint b/go/reg_test/input/e.pprint new file mode 100644 index 000000000..9ad19ff0e --- /dev/null +++ b/go/reg_test/input/e.pprint @@ -0,0 +1,4 @@ + +a b c +1 2 3 +4 5 6 diff --git a/go/reg_test/input/embedded-ips.xtab b/go/reg_test/input/embedded-ips.xtab new file mode 100644 index 000000000..5147c0b09 --- /dev/null +++ b/go/reg_test/input/embedded-ips.xtab @@ -0,0 +1,3 @@ +a 1 +b 2 +c 3 4 5 diff --git a/go/reg_test/input/env-assign.sh b/go/reg_test/input/env-assign.sh new file mode 100755 index 000000000..3e897e980 --- /dev/null +++ b/go/reg_test/input/env-assign.sh @@ -0,0 +1,4 @@ +#!/bin/sh +while read line; do + echo "[ZYX]=[$ZYX] $line" +done diff --git a/go/reg_test/input/env-var.dkvp b/go/reg_test/input/env-var.dkvp new file mode 100644 index 000000000..873ce5fcd --- /dev/null +++ b/go/reg_test/input/env-var.dkvp @@ -0,0 +1,3 @@ +name=X,x=1,y=2 +name=Y,x=3,y=4 +x=5,y=6 diff --git a/go/reg_test/input/escapes.json b/go/reg_test/input/escapes.json new file mode 100644 index 000000000..0abc41834 --- /dev/null +++ b/go/reg_test/input/escapes.json @@ -0,0 +1,2 @@ +{"abc\bdef\fghi": "jkl\nmno\rpqr\tstu\"vw\\xyz"} +{"abc\bdef\fghi": "jkl\nmno\rpqr\tstu\"vw\\\\xyz"} diff --git a/go/reg_test/input/example.usv b/go/reg_test/input/example.usv new file mode 100644 index 000000000..e6a617da4 --- /dev/null +++ b/go/reg_test/input/example.usv @@ -0,0 +1 @@ +a␟b␟c␞d␟e␟f␞g␟h␟i \ No newline at end of file diff --git a/go/reg_test/input/f.csv b/go/reg_test/input/f.csv new file mode 100644 index 000000000..e69de29bb diff --git a/go/reg_test/input/f.pprint b/go/reg_test/input/f.pprint new file mode 100644 index 000000000..e69de29bb diff --git a/go/reg_test/input/fill-down.csv b/go/reg_test/input/fill-down.csv new file mode 100644 index 000000000..88477a59d --- /dev/null +++ b/go/reg_test/input/fill-down.csv @@ -0,0 +1,4 @@ +a,b,c +1,,3 +4,5,6 +7,,9 diff --git a/go/reg_test/input/filter-example.dsl b/go/reg_test/input/filter-example.dsl new file mode 100644 index 000000000..a7f80f659 --- /dev/null +++ b/go/reg_test/input/filter-example.dsl @@ -0,0 +1 @@ +$x < $y diff --git a/go/reg_test/input/filter-script-piece-1 b/go/reg_test/input/filter-script-piece-1 new file mode 100644 index 000000000..55a59de8e --- /dev/null +++ b/go/reg_test/input/filter-script-piece-1 @@ -0,0 +1 @@ +$x > 0.5 diff --git a/go/reg_test/input/filter-script-piece-2 b/go/reg_test/input/filter-script-piece-2 new file mode 100644 index 000000000..edb1568dc --- /dev/null +++ b/go/reg_test/input/filter-script-piece-2 @@ -0,0 +1 @@ +&& $i < 5 diff --git a/go/reg_test/input/freq.dkvp b/go/reg_test/input/freq.dkvp new file mode 100644 index 000000000..698cbc80f --- /dev/null +++ b/go/reg_test/input/freq.dkvp @@ -0,0 +1,17 @@ +a=apple,b=apple +a=apple,b=apple +a=apple,b=apple +a=apple,b=apple +a=apple,b=apple +a=apple,b=apple +a=bat,b=cat +a=bat,b=cat +a=bat,b=cat +a=bat,b=cat +a=bat,b=cat +a=cat,b=bat +a=cat,b=bat +a=cat,b=bat +a=cat,b=cat +a=dog,b=dog +a=dog,b=dog diff --git a/go/reg_test/input/from-first.csv b/go/reg_test/input/from-first.csv new file mode 100644 index 000000000..5e8474bbe --- /dev/null +++ b/go/reg_test/input/from-first.csv @@ -0,0 +1,7 @@ +x,g +100,red +203,red +101,green +307,red +209,green +314,green diff --git a/go/reg_test/input/fsec2xhms b/go/reg_test/input/fsec2xhms new file mode 100644 index 000000000..0db13e465 --- /dev/null +++ b/go/reg_test/input/fsec2xhms @@ -0,0 +1,28 @@ +sec=0.25 +sec=1.25 +sec=59.25 +sec=60.25 +sec=61.25 +sec=3599.25 +sec=3600.25 +sec=3601.25 +sec=86399.25 +sec=86400.25 +sec=86401.25 +sec=863999.25 +sec=864000.25 +sec=864001.25 +sec=-0.25 +sec=-1.25 +sec=-59.25 +sec=-60.25 +sec=-61.25 +sec=-3599.25 +sec=-3600.25 +sec=-3601.25 +sec=-86399.25 +sec=-86400.25 +sec=-86401.25 +sec=-863999.25 +sec=-864000.25 +sec=-864001.25 diff --git a/go/reg_test/input/g.csv b/go/reg_test/input/g.csv new file mode 100644 index 000000000..3f2ff2d6c --- /dev/null +++ b/go/reg_test/input/g.csv @@ -0,0 +1,5 @@ + + + + + diff --git a/go/reg_test/input/g.pprint b/go/reg_test/input/g.pprint new file mode 100644 index 000000000..3f2ff2d6c --- /dev/null +++ b/go/reg_test/input/g.pprint @@ -0,0 +1,5 @@ + + + + + diff --git a/go/reg_test/input/gmt2sec b/go/reg_test/input/gmt2sec new file mode 100644 index 000000000..f63c71714 --- /dev/null +++ b/go/reg_test/input/gmt2sec @@ -0,0 +1,29 @@ +gmt +1970-01-01T00:00:00Z +1970-01-01T00:00:00.Z +1970-01-01T00:00:01Z +1970-01-01T00:00:01.0Z +1970-01-01T00:00:10Z +1970-01-01T00:00:10.00Z +1970-01-01T00:01:40Z +1970-01-01T00:01:40.1Z +1970-01-01T00:16:40Z +1970-01-01T00:16:40.12Z +1970-01-01T02:46:40Z +1970-01-01T02:46:40.123Z +1970-01-02T03:46:40Z +1970-01-02T03:46:40.1234Z +1970-01-12T13:46:40Z +1970-01-12T13:46:40.12345Z +1970-04-26T17:46:40Z +1970-04-26T17:46:40.123456Z +1973-03-03T09:46:40Z +1973-03-03T09:46:40.1234567Z +2001-09-09T01:46:40Z +2001-09-09T01:46:40.12345678Z +2015-05-19T11:49:40Z +2015-05-19T11:49:40.123456789Z +2017-07-14T02:40:00Z +2017-07-14T02:40:00.999Z +2033-05-18T03:33:20Z +2033-05-18T03:33:20.999999Z diff --git a/go/reg_test/input/gsub.dat b/go/reg_test/input/gsub.dat new file mode 100644 index 000000000..7897c36c7 --- /dev/null +++ b/go/reg_test/input/gsub.dat @@ -0,0 +1,6 @@ +x=lmnop +x=abcdefg +x=ababbabbba +x=LMNOP +x=ABCDEFG +x=ABABBABBBA diff --git a/go/reg_test/input/having-fields-regex.dkvp b/go/reg_test/input/having-fields-regex.dkvp new file mode 100644 index 000000000..417f01af8 --- /dev/null +++ b/go/reg_test/input/having-fields-regex.dkvp @@ -0,0 +1,6 @@ +abc=1,def=11 +ABC=2,DEF=12 +abcd=3,ghi=13 +ABCD=4,GHI=14 +abcde=5,ghi=15 +ABCDE=6,GHI=16 diff --git a/go/reg_test/input/het-join-left b/go/reg_test/input/het-join-left new file mode 100644 index 000000000..2d709f9e2 --- /dev/null +++ b/go/reg_test/input/het-join-left @@ -0,0 +1,10 @@ +x=100,b=10 +l=1,b=11 +l=1,b=12 +x=200,b=13 +l=3,b=14 +l=3,b=15 +x=300,b=16 +l=5,b=17 +l=5,b=18 +x=400,b=19 diff --git a/go/reg_test/input/het-join-right-r0 b/go/reg_test/input/het-join-right-r0 new file mode 100644 index 000000000..b030aeda0 --- /dev/null +++ b/go/reg_test/input/het-join-right-r0 @@ -0,0 +1,3 @@ +y=111 +r=0 +y=333 diff --git a/go/reg_test/input/het-join-right-r1 b/go/reg_test/input/het-join-right-r1 new file mode 100644 index 000000000..a7e76fb86 --- /dev/null +++ b/go/reg_test/input/het-join-right-r1 @@ -0,0 +1,3 @@ +y=111 +r=1 +y=333 diff --git a/go/reg_test/input/het-join-right-r11 b/go/reg_test/input/het-join-right-r11 new file mode 100644 index 000000000..c476442ec --- /dev/null +++ b/go/reg_test/input/het-join-right-r11 @@ -0,0 +1,5 @@ +y=111 +r=1 +y=222 +r=1 +y=333 diff --git a/go/reg_test/input/het-join-right-r12 b/go/reg_test/input/het-join-right-r12 new file mode 100644 index 000000000..9a372ed47 --- /dev/null +++ b/go/reg_test/input/het-join-right-r12 @@ -0,0 +1,5 @@ +y=111 +r=1 +y=222 +r=2 +y=333 diff --git a/go/reg_test/input/het-join-right-r13 b/go/reg_test/input/het-join-right-r13 new file mode 100644 index 000000000..7e85bc75f --- /dev/null +++ b/go/reg_test/input/het-join-right-r13 @@ -0,0 +1,5 @@ +y=111 +r=1 +y=222 +r=3 +y=333 diff --git a/go/reg_test/input/het-join-right-r14 b/go/reg_test/input/het-join-right-r14 new file mode 100644 index 000000000..dabd3b84c --- /dev/null +++ b/go/reg_test/input/het-join-right-r14 @@ -0,0 +1,5 @@ +y=111 +r=1 +y=222 +r=4 +y=333 diff --git a/go/reg_test/input/het-join-right-r15 b/go/reg_test/input/het-join-right-r15 new file mode 100644 index 000000000..8fc2de945 --- /dev/null +++ b/go/reg_test/input/het-join-right-r15 @@ -0,0 +1,5 @@ +y=111 +r=1 +y=222 +r=5 +y=333 diff --git a/go/reg_test/input/het-join-right-r16 b/go/reg_test/input/het-join-right-r16 new file mode 100644 index 000000000..5c73f9c2f --- /dev/null +++ b/go/reg_test/input/het-join-right-r16 @@ -0,0 +1,5 @@ +y=111 +r=1 +y=222 +r=6 +y=333 diff --git a/go/reg_test/input/het-join-right-r2 b/go/reg_test/input/het-join-right-r2 new file mode 100644 index 000000000..16be27340 --- /dev/null +++ b/go/reg_test/input/het-join-right-r2 @@ -0,0 +1,3 @@ +y=111 +r=2 +y=333 diff --git a/go/reg_test/input/het-join-right-r22 b/go/reg_test/input/het-join-right-r22 new file mode 100644 index 000000000..b04597d28 --- /dev/null +++ b/go/reg_test/input/het-join-right-r22 @@ -0,0 +1,5 @@ +y=111 +r=2 +y=222 +r=2 +y=333 diff --git a/go/reg_test/input/het-join-right-r23 b/go/reg_test/input/het-join-right-r23 new file mode 100644 index 000000000..ca1f22f8e --- /dev/null +++ b/go/reg_test/input/het-join-right-r23 @@ -0,0 +1,5 @@ +y=111 +r=2 +y=222 +r=3 +y=333 diff --git a/go/reg_test/input/het-join-right-r24 b/go/reg_test/input/het-join-right-r24 new file mode 100644 index 000000000..6653b9feb --- /dev/null +++ b/go/reg_test/input/het-join-right-r24 @@ -0,0 +1,5 @@ +y=111 +r=2 +y=222 +r=4 +y=333 diff --git a/go/reg_test/input/het-join-right-r25 b/go/reg_test/input/het-join-right-r25 new file mode 100644 index 000000000..e7db35ee3 --- /dev/null +++ b/go/reg_test/input/het-join-right-r25 @@ -0,0 +1,5 @@ +y=111 +r=2 +y=222 +r=5 +y=333 diff --git a/go/reg_test/input/het-join-right-r26 b/go/reg_test/input/het-join-right-r26 new file mode 100644 index 000000000..2e5f1ef7f --- /dev/null +++ b/go/reg_test/input/het-join-right-r26 @@ -0,0 +1,5 @@ +y=111 +r=2 +y=222 +r=6 +y=333 diff --git a/go/reg_test/input/het-join-right-r3 b/go/reg_test/input/het-join-right-r3 new file mode 100644 index 000000000..1af5b2bbb --- /dev/null +++ b/go/reg_test/input/het-join-right-r3 @@ -0,0 +1,3 @@ +y=111 +r=3 +y=333 diff --git a/go/reg_test/input/het-join-right-r33 b/go/reg_test/input/het-join-right-r33 new file mode 100644 index 000000000..fb3cea30a --- /dev/null +++ b/go/reg_test/input/het-join-right-r33 @@ -0,0 +1,5 @@ +y=111 +r=3 +y=222 +r=3 +y=333 diff --git a/go/reg_test/input/het-join-right-r34 b/go/reg_test/input/het-join-right-r34 new file mode 100644 index 000000000..c524ba83f --- /dev/null +++ b/go/reg_test/input/het-join-right-r34 @@ -0,0 +1,5 @@ +y=111 +r=3 +y=222 +r=4 +y=333 diff --git a/go/reg_test/input/het-join-right-r35 b/go/reg_test/input/het-join-right-r35 new file mode 100644 index 000000000..ec02cfad6 --- /dev/null +++ b/go/reg_test/input/het-join-right-r35 @@ -0,0 +1,5 @@ +y=111 +r=3 +y=222 +r=5 +y=333 diff --git a/go/reg_test/input/het-join-right-r36 b/go/reg_test/input/het-join-right-r36 new file mode 100644 index 000000000..a1f3e266b --- /dev/null +++ b/go/reg_test/input/het-join-right-r36 @@ -0,0 +1,5 @@ +y=111 +r=3 +y=222 +r=6 +y=333 diff --git a/go/reg_test/input/het-join-right-r4 b/go/reg_test/input/het-join-right-r4 new file mode 100644 index 000000000..7ef5063bd --- /dev/null +++ b/go/reg_test/input/het-join-right-r4 @@ -0,0 +1,3 @@ +y=111 +r=4 +y=333 diff --git a/go/reg_test/input/het-join-right-r44 b/go/reg_test/input/het-join-right-r44 new file mode 100644 index 000000000..b59ba8547 --- /dev/null +++ b/go/reg_test/input/het-join-right-r44 @@ -0,0 +1,5 @@ +y=111 +r=4 +y=222 +r=4 +y=333 diff --git a/go/reg_test/input/het-join-right-r45 b/go/reg_test/input/het-join-right-r45 new file mode 100644 index 000000000..440f4c63e --- /dev/null +++ b/go/reg_test/input/het-join-right-r45 @@ -0,0 +1,5 @@ +y=111 +r=4 +y=222 +r=5 +y=333 diff --git a/go/reg_test/input/het-join-right-r46 b/go/reg_test/input/het-join-right-r46 new file mode 100644 index 000000000..29f11afe8 --- /dev/null +++ b/go/reg_test/input/het-join-right-r46 @@ -0,0 +1,5 @@ +y=111 +r=4 +y=222 +r=6 +y=333 diff --git a/go/reg_test/input/het-join-right-r5 b/go/reg_test/input/het-join-right-r5 new file mode 100644 index 000000000..5b38eae5c --- /dev/null +++ b/go/reg_test/input/het-join-right-r5 @@ -0,0 +1,3 @@ +y=111 +r=5 +y=333 diff --git a/go/reg_test/input/het-join-right-r55 b/go/reg_test/input/het-join-right-r55 new file mode 100644 index 000000000..23fd56630 --- /dev/null +++ b/go/reg_test/input/het-join-right-r55 @@ -0,0 +1,5 @@ +y=111 +r=5 +y=222 +r=5 +y=333 diff --git a/go/reg_test/input/het-join-right-r56 b/go/reg_test/input/het-join-right-r56 new file mode 100644 index 000000000..370e45064 --- /dev/null +++ b/go/reg_test/input/het-join-right-r56 @@ -0,0 +1,5 @@ +y=111 +r=5 +y=222 +r=6 +y=333 diff --git a/go/reg_test/input/het-join-right-r6 b/go/reg_test/input/het-join-right-r6 new file mode 100644 index 000000000..4753050c8 --- /dev/null +++ b/go/reg_test/input/het-join-right-r6 @@ -0,0 +1,3 @@ +y=111 +r=6 +y=333 diff --git a/go/reg_test/input/het-join-right-r66 b/go/reg_test/input/het-join-right-r66 new file mode 100644 index 000000000..e1c5537fa --- /dev/null +++ b/go/reg_test/input/het-join-right-r66 @@ -0,0 +1,5 @@ +y=111 +r=6 +y=222 +r=6 +y=333 diff --git a/go/reg_test/input/het.csv b/go/reg_test/input/het.csv new file mode 100644 index 000000000..f48f8f295 --- /dev/null +++ b/go/reg_test/input/het.csv @@ -0,0 +1,14 @@ +resource,loadsec,ok +/path/to/file,0.45,true + +record_count,resource +100,/path/to/file + +resource,loadsec,ok +/path/to/second/file,0.32,true + +record_count,resource +150,/path/to/second/file + +resource,loadsec,ok +/some/other/path,0.97,false diff --git a/go/reg_test/input/het.dkvp b/go/reg_test/input/het.dkvp new file mode 100644 index 000000000..a2e4d0ced --- /dev/null +++ b/go/reg_test/input/het.dkvp @@ -0,0 +1,12 @@ +host=jupiter +df/tmp=2.43MB,uptime=32345sec +host=saturn +df/tmp=1.34MB,uptime=234214132sec +host=mars +df/tmp=4.97MB,uptime=345089805sec +host=jupiter +df/tmp=0.04MB,uptime=890sec +host=mars +df/tmp=8.55MB,uptime=787897777sec +host=saturn +df/tmp=9.47MB,uptime=234289080sec diff --git a/go/reg_test/input/int-float.dkvp b/go/reg_test/input/int-float.dkvp new file mode 100644 index 000000000..36284ee85 --- /dev/null +++ b/go/reg_test/input/int-float.dkvp @@ -0,0 +1,3 @@ +x=1,y=10.1,z=20 +x=2,y=10.2,z=30 +x=3,y=10.3,z=40.8 diff --git a/go/reg_test/input/int64arith.dkvp b/go/reg_test/input/int64arith.dkvp new file mode 100644 index 000000000..187aa39f3 --- /dev/null +++ b/go/reg_test/input/int64arith.dkvp @@ -0,0 +1,7 @@ +p=0x7ffffffffffff9ff,n=0x8000000000000000 +p=0x7ffffffffffffa00,n=0x8000000000000001 +p=0x7ffffffffffffbff,n=0x8000000000000200 +p=0x7ffffffffffffc00,n=0x8000000000000400 +p=0x7ffffffffffffe00,n=0x8000000000000401 +p=0x7ffffffffffffffe,n=0x8000000000000600 +p=0x7fffffffffffffff,n=0x8000000000000601 diff --git a/go/reg_test/input/int64io.dkvp b/go/reg_test/input/int64io.dkvp new file mode 100644 index 000000000..33a8726ab --- /dev/null +++ b/go/reg_test/input/int64io.dkvp @@ -0,0 +1,5 @@ +a=0x1,b=1 +a=0x7ffffffffffffffe,b=9223372036854775806 +a=0x7fffffffffffffff,b=9223372036854775807 +a=0x8000000000000000,b=-9223372036854775808 +a=0xffffffffffffffff,b=-1 diff --git a/go/reg_test/input/ints.dkvp b/go/reg_test/input/ints.dkvp new file mode 100644 index 000000000..5f788198b --- /dev/null +++ b/go/reg_test/input/ints.dkvp @@ -0,0 +1,30 @@ +x=0,y=1 +x=1,y=7 +x=6,y=0 +x=6,y=9 +x=0,y=5 +x=0,y=7 +x=4,y=9 +x=7,y=1 +x=3,y=3 +x=7,y=9 +x=8,y=5 +x=0,y=6 +x=5,y=9 +x=0,y=9 +x=3,y=7 +x=0,y=6 +x=2,y=2 +x=3,y=6 +x=2,y=7 +x=4,y=8 +x=6,y=2 +x=2,y=2 +x=1,y=6 +x=0,y=8 +x=0,y=4 +x=2,y=2 +x=3,y=5 +x=4,y=4 +x=9,y=5 +x=2,y=2 diff --git a/go/reg_test/input/join-het.dkvp b/go/reg_test/input/join-het.dkvp new file mode 100644 index 000000000..49d27fc36 --- /dev/null +++ b/go/reg_test/input/join-het.dkvp @@ -0,0 +1,5 @@ +a=eks,n=123 +a=pan,n=234 +a=wye,n=345 +a=zee,n=456 +aye=bee,enn=emm diff --git a/go/reg_test/input/joina.dkvp b/go/reg_test/input/joina.dkvp new file mode 100644 index 000000000..d0e6c9c9e --- /dev/null +++ b/go/reg_test/input/joina.dkvp @@ -0,0 +1,7 @@ +l=1,x=a +l=2,x=b +l=2,x=c +l=2,x=d +l=3,x=e +l=3,x=f +l=4,x=g diff --git a/go/reg_test/input/joinb.dkvp b/go/reg_test/input/joinb.dkvp new file mode 100644 index 000000000..54fac4532 --- /dev/null +++ b/go/reg_test/input/joinb.dkvp @@ -0,0 +1,7 @@ +r=1,y=s +r=2,y=t +r=2,y=v +r=3,y=w +r=3,y=x +r=3,y=y +r=5,y=z diff --git a/go/reg_test/input/json-output-options.dkvp b/go/reg_test/input/json-output-options.dkvp new file mode 100644 index 000000000..c5859e5e6 --- /dev/null +++ b/go/reg_test/input/json-output-options.dkvp @@ -0,0 +1,3 @@ +a=1,b=x,c=3 +d=4 +1=5,f=6 diff --git a/go/reg_test/input/line-ending-cr.bin b/go/reg_test/input/line-ending-cr.bin new file mode 100644 index 000000000..fe21da055 --- /dev/null +++ b/go/reg_test/input/line-ending-cr.bin @@ -0,0 +1 @@ +hello there how are you \ No newline at end of file diff --git a/go/reg_test/input/line-ending-crlf.bin b/go/reg_test/input/line-ending-crlf.bin new file mode 100644 index 000000000..4d2c1c6f4 --- /dev/null +++ b/go/reg_test/input/line-ending-crlf.bin @@ -0,0 +1,5 @@ +hello +there +how +are +you diff --git a/go/reg_test/input/line-ending-lf.bin b/go/reg_test/input/line-ending-lf.bin new file mode 100644 index 000000000..6f086d80a --- /dev/null +++ b/go/reg_test/input/line-ending-lf.bin @@ -0,0 +1,5 @@ +hello +there +how +are +you diff --git a/go/reg_test/input/line-term-crlf-wrap.json b/go/reg_test/input/line-term-crlf-wrap.json new file mode 100644 index 000000000..883f39a64 --- /dev/null +++ b/go/reg_test/input/line-term-crlf-wrap.json @@ -0,0 +1,12 @@ +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 }, +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 }, +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 }, +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 }, +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 }, +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 }, +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 }, +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 }, +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 }, +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] diff --git a/go/reg_test/input/line-term-crlf.csv b/go/reg_test/input/line-term-crlf.csv new file mode 100644 index 000000000..9e6d97092 --- /dev/null +++ b/go/reg_test/input/line-term-crlf.csv @@ -0,0 +1,11 @@ +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 diff --git a/go/reg_test/input/line-term-crlf.dkvp b/go/reg_test/input/line-term-crlf.dkvp new file mode 100644 index 000000000..547de9e99 --- /dev/null +++ b/go/reg_test/input/line-term-crlf.dkvp @@ -0,0 +1,10 @@ +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 diff --git a/go/reg_test/input/line-term-crlf.json b/go/reg_test/input/line-term-crlf.json new file mode 100644 index 000000000..3bba0e8d7 --- /dev/null +++ b/go/reg_test/input/line-term-crlf.json @@ -0,0 +1,10 @@ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } diff --git a/go/reg_test/input/line-term-crlf.pprint b/go/reg_test/input/line-term-crlf.pprint new file mode 100644 index 000000000..c894dcf82 --- /dev/null +++ b/go/reg_test/input/line-term-crlf.pprint @@ -0,0 +1,11 @@ +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 diff --git a/go/reg_test/input/line-term-crlf.xtab b/go/reg_test/input/line-term-crlf.xtab new file mode 100644 index 000000000..0bb84975a --- /dev/null +++ b/go/reg_test/input/line-term-crlf.xtab @@ -0,0 +1,59 @@ +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 diff --git a/go/reg_test/input/line-term-lf-wrap.json b/go/reg_test/input/line-term-lf-wrap.json new file mode 100644 index 000000000..883f39a64 --- /dev/null +++ b/go/reg_test/input/line-term-lf-wrap.json @@ -0,0 +1,12 @@ +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 }, +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 }, +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 }, +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 }, +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 }, +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 }, +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 }, +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 }, +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 }, +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] diff --git a/go/reg_test/input/line-term-lf.csv b/go/reg_test/input/line-term-lf.csv new file mode 100644 index 000000000..9e6d97092 --- /dev/null +++ b/go/reg_test/input/line-term-lf.csv @@ -0,0 +1,11 @@ +a,b,i,x,y +pan,pan,1,0.3467901443380824,0.7268028627434533 +eks,pan,2,0.7586799647899636,0.5221511083334797 +wye,wye,3,0.20460330576630303,0.33831852551664776 +eks,wye,4,0.38139939387114097,0.13418874328430463 +wye,pan,5,0.5732889198020006,0.8636244699032729 +zee,pan,6,0.5271261600918548,0.49322128674835697 +eks,zee,7,0.6117840605678454,0.1878849191181694 +zee,wye,8,0.5985540091064224,0.976181385699006 +hat,wye,9,0.03144187646093577,0.7495507603507059 +pan,wye,10,0.5026260055412137,0.9526183602969864 diff --git a/go/reg_test/input/line-term-lf.dkvp b/go/reg_test/input/line-term-lf.dkvp new file mode 100644 index 000000000..547de9e99 --- /dev/null +++ b/go/reg_test/input/line-term-lf.dkvp @@ -0,0 +1,10 @@ +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 diff --git a/go/reg_test/input/line-term-lf.json b/go/reg_test/input/line-term-lf.json new file mode 100644 index 000000000..3bba0e8d7 --- /dev/null +++ b/go/reg_test/input/line-term-lf.json @@ -0,0 +1,10 @@ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } diff --git a/go/reg_test/input/line-term-lf.pprint b/go/reg_test/input/line-term-lf.pprint new file mode 100644 index 000000000..c894dcf82 --- /dev/null +++ b/go/reg_test/input/line-term-lf.pprint @@ -0,0 +1,11 @@ +a b i x y +pan pan 1 0.3467901443380824 0.7268028627434533 +eks pan 2 0.7586799647899636 0.5221511083334797 +wye wye 3 0.20460330576630303 0.33831852551664776 +eks wye 4 0.38139939387114097 0.13418874328430463 +wye pan 5 0.5732889198020006 0.8636244699032729 +zee pan 6 0.5271261600918548 0.49322128674835697 +eks zee 7 0.6117840605678454 0.1878849191181694 +zee wye 8 0.5985540091064224 0.976181385699006 +hat wye 9 0.03144187646093577 0.7495507603507059 +pan wye 10 0.5026260055412137 0.9526183602969864 diff --git a/go/reg_test/input/line-term-lf.xtab b/go/reg_test/input/line-term-lf.xtab new file mode 100644 index 000000000..0bb84975a --- /dev/null +++ b/go/reg_test/input/line-term-lf.xtab @@ -0,0 +1,59 @@ +a pan +b pan +i 1 +x 0.3467901443380824 +y 0.7268028627434533 + +a eks +b pan +i 2 +x 0.7586799647899636 +y 0.5221511083334797 + +a wye +b wye +i 3 +x 0.20460330576630303 +y 0.33831852551664776 + +a eks +b wye +i 4 +x 0.38139939387114097 +y 0.13418874328430463 + +a wye +b pan +i 5 +x 0.5732889198020006 +y 0.8636244699032729 + +a zee +b pan +i 6 +x 0.5271261600918548 +y 0.49322128674835697 + +a eks +b zee +i 7 +x 0.6117840605678454 +y 0.1878849191181694 + +a zee +b wye +i 8 +x 0.5985540091064224 +y 0.976181385699006 + +a hat +b wye +i 9 +x 0.03144187646093577 +y 0.7495507603507059 + +a pan +b wye +i 10 +x 0.5026260055412137 +y 0.9526183602969864 diff --git a/go/reg_test/input/logi.dkvp b/go/reg_test/input/logi.dkvp new file mode 100644 index 000000000..340f0cc08 --- /dev/null +++ b/go/reg_test/input/logi.dkvp @@ -0,0 +1,22 @@ +x=-11,y=0,g=red +x=-9,y=0,g=red +x=-7,y=0,g=red +x=-5,y=1,g=red +x=-3,y=0,g=red +x=-1,y=1,g=red +x=1,y=0,g=red +x=3,y=1,g=red +x=5,y=1,g=red +x=7,y=0,g=red +x=9,y=1,g=red +x=-11,y=0,g=blue +x=-9,y=0,g=blue +x=-7,y=0,g=blue +x=-5,y=1,g=blue +x=-3,y=1,g=blue +x=-1,y=0,g=blue +x=1,y=1,g=blue +x=3,y=1,g=blue +x=5,y=1,g=blue +x=7,y=0,g=blue +x=9,y=1,g=blue diff --git a/go/reg_test/input/mand.mlr b/go/reg_test/input/mand.mlr new file mode 100644 index 000000000..9c367b93b --- /dev/null +++ b/go/reg_test/input/mand.mlr @@ -0,0 +1,73 @@ +# Mandelbrot set generator: simple example of Miller DSL as programming language. +begin { + # Set defaults + @rcorn = -2.0; + @icorn = -2.0; + @side = 4.0; + @iheight = 50; + @iwidth = 100; + @maxits = 100; + @levelstep = 5; + @chars = "@X*o-."; + @verbose = false; + +} + +# Override defaults +@rcorn = $rcorn; +@icorn = $icorn; +@side = $side; +@iheight = $iheight; +@iwidth = $iwidth; +@maxits = $maxits; +@levelstep = $levelstep; +@chars = $chars; +@verbose = $verbose; + +end { + if (@verbose) { + print "RCORN = ".@rcorn; + print "ICORN = ".@icorn; + print "SIDE = ".@side; + print "IHEIGHT = ".@iheight; + print "IWIDTH = ".@iwidth; + print "MAXITS = ".@maxits; + print "LEVELSTEP = ".@levelstep; + print "CHARS = ".@chars; + } + + for (int ii = @iheight-1; ii >= 0; ii -= 1) { + num ci = @icorn + (ii/@iheight) * @side; + for (int ir = 0; ir < @iwidth; ir += 1) { + num cr = @rcorn + (ir/@iwidth) * @side; + printn get_point_plot(cr, ci, @maxits); + } + print; + } +} + +func get_point_plot(cr, ci, maxits) { + num zr = 0.0; + num zi = 0.0; + + int iti = 0; + bool escaped = false; + num zt = 0; + for (iti = 0; iti < maxits; iti += 1) { + num mag = zr*zr + zi+zi; + if (mag > 4.0) { + escaped = true; + break; + } + # z := z^2 + c + zt = zr*zr - zi*zi + cr; + zi = 2*zr*zi + ci; + zr = zt; + } + if (!escaped) { + return "."; + } else { + int level = (iti // @levelstep) % strlen(@chars); + return substr(@chars, level, level); + } +} diff --git a/go/reg_test/input/merge-fields-abxy.dkvp b/go/reg_test/input/merge-fields-abxy.dkvp new file mode 100644 index 000000000..cd63a2ef8 --- /dev/null +++ b/go/reg_test/input/merge-fields-abxy.dkvp @@ -0,0 +1,20 @@ +a_in_x=1,a_out_x=2,b_in_y=4,b_out_x=8 +z=1 +a_on_x=1,a_out_x=2,b_in_y=4,b_out_x=8 +a_in_x=1,a_oot_x=2,b_in_y=4,b_out_x=8 +a_in_x=1,a_out_x=2,b_on_y=4,b_out_x=8 +a_in_x=1,a_out_x=2,b_in_y=4,b_oot_x=8 +z=2 +a_on_x=1,a_oot_x=2,b_in_y=4,b_out_x=8 +a_on_x=1,a_out_x=2,b_on_y=4,b_out_x=8 +a_on_x=1,a_out_x=2,b_in_y=4,b_oot_x=8 +a_in_x=1,a_oot_x=2,b_on_y=4,b_out_x=8 +a_in_x=1,a_oot_x=2,b_in_y=4,b_oot_x=8 +a_in_x=1,a_out_x=2,b_on_y=4,b_oot_x=8 +z=3 +a_in_x=1,a_oot_x=2,b_on_y=4,b_oot_x=8 +a_on_x=1,a_out_x=2,b_on_y=4,b_oot_x=8 +a_on_x=1,a_oot_x=2,b_in_y=4,b_oot_x=8 +a_on_x=1,a_oot_x=2,b_on_y=4,b_out_x=8 +z=4 +a_on_x=1,a_oot_x=2,b_on_y=4,b_oot_x=8 diff --git a/go/reg_test/input/merge-fields-in-out-mixed.csv b/go/reg_test/input/merge-fields-in-out-mixed.csv new file mode 100644 index 000000000..09db9f124 --- /dev/null +++ b/go/reg_test/input/merge-fields-in-out-mixed.csv @@ -0,0 +1,5 @@ +a_in,a_out,b_in,b_out +436,abc,446,195 +526,320,def,780 +220,888,705,ghi +jkl,mno,pqr,stu diff --git a/go/reg_test/input/merge-fields-in-out.csv b/go/reg_test/input/merge-fields-in-out.csv new file mode 100644 index 000000000..6e4f71c4f --- /dev/null +++ b/go/reg_test/input/merge-fields-in-out.csv @@ -0,0 +1,4 @@ +a_in,a_out,b_in,b_out +436,490,446,195 +526,320,963,780 +220,888,705,831 diff --git a/go/reg_test/input/minmax.dkvp b/go/reg_test/input/minmax.dkvp new file mode 100644 index 000000000..725ef2e5f --- /dev/null +++ b/go/reg_test/input/minmax.dkvp @@ -0,0 +1,8 @@ +x=1,y=2 +x=1,y= +x=,y= +x=,y=2 +x=3,y=2 +x=3,y= +x=,y= +x=,y=2 diff --git a/go/reg_test/input/missings.dkvp b/go/reg_test/input/missings.dkvp new file mode 100644 index 000000000..881e4f3fa --- /dev/null +++ b/go/reg_test/input/missings.dkvp @@ -0,0 +1,3 @@ +a=1,b=2,c=3,d=4,e=5,f=6 +a,b=,x=4,c=3,d,e,f +a,b=,x=4,c=3,d,e,f=6 diff --git a/go/reg_test/input/mixed-types.xtab b/go/reg_test/input/mixed-types.xtab new file mode 100644 index 000000000..2a47e04a3 --- /dev/null +++ b/go/reg_test/input/mixed-types.xtab @@ -0,0 +1,10 @@ +pf1 71.2 +nf1 -71.2 +zf 0.0 +pf2 73.4 +nf2 -73.4 +pi1 75 +ni1 -75 +zi 0 +pi2 76 +ni2 -76 diff --git a/go/reg_test/input/modarith.dat b/go/reg_test/input/modarith.dat new file mode 100644 index 000000000..9e4a5141e --- /dev/null +++ b/go/reg_test/input/modarith.dat @@ -0,0 +1,111 @@ +x=-37 +x=-36 +x=-35 +x=-34 +x=-33 +x=-32 +x=-31 +x=-30 +x=-29 +x=-28 +x=-27 +x=-26 +x=-25 +x=-24 +x=-23 +x=-22 +x=-21 +x=-20 +x=-19 +x=-18 +x=-17 +x=-16 +x=-15 +x=-14 +x=-13 +x=-12 +x=-11 +x=-10 +x=-9 +x=-8 +x=-7 +x=-6 +x=-5 +x=-4 +x=-3 +x=-2 +x=-1 +x=0 +x=1 +x=2 +x=3 +x=4 +x=5 +x=6 +x=7 +x=8 +x=9 +x=10 +x=11 +x=12 +x=13 +x=14 +x=15 +x=16 +x=17 +x=18 +x=19 +x=20 +x=21 +x=22 +x=23 +x=24 +x=25 +x=26 +x=27 +x=28 +x=29 +x=30 +x=31 +x=32 +x=33 +x=34 +x=35 +x=36 +x=37 +x=38 +x=39 +x=40 +x=41 +x=42 +x=43 +x=44 +x=45 +x=46 +x=47 +x=48 +x=49 +x=50 +x=51 +x=52 +x=53 +x=54 +x=55 +x=56 +x=57 +x=58 +x=59 +x=60 +x=61 +x=62 +x=63 +x=64 +x=65 +x=66 +x=67 +x=68 +x=69 +x=70 +x=71 +x=72 +x=73 diff --git a/go/reg_test/input/multi-format-join-a.csv b/go/reg_test/input/multi-format-join-a.csv new file mode 100644 index 000000000..7d79690b4 --- /dev/null +++ b/go/reg_test/input/multi-format-join-a.csv @@ -0,0 +1,5 @@ +x,a +1,2 +2,3 +3,4 +4,5 diff --git a/go/reg_test/input/multi-format-join-a.dkvp b/go/reg_test/input/multi-format-join-a.dkvp new file mode 100644 index 000000000..f0e325c99 --- /dev/null +++ b/go/reg_test/input/multi-format-join-a.dkvp @@ -0,0 +1,4 @@ +x=1,a=2 +x=2,a=3 +x=3,a=4 +x=4,a=5 diff --git a/go/reg_test/input/multi-format-join-a.json b/go/reg_test/input/multi-format-join-a.json new file mode 100644 index 000000000..1870d491a --- /dev/null +++ b/go/reg_test/input/multi-format-join-a.json @@ -0,0 +1,4 @@ +{"x":1,"a":2} +{"x":2,"a":3} +{"x":3,"a":4} +{"x":4,"a":5} diff --git a/go/reg_test/input/multi-format-join-b.csv b/go/reg_test/input/multi-format-join-b.csv new file mode 100644 index 000000000..02686bbaa --- /dev/null +++ b/go/reg_test/input/multi-format-join-b.csv @@ -0,0 +1,5 @@ +x,b +1,20 +2,30 +3,40 +4,50 diff --git a/go/reg_test/input/multi-format-join-b.dkvp b/go/reg_test/input/multi-format-join-b.dkvp new file mode 100644 index 000000000..b366c94a3 --- /dev/null +++ b/go/reg_test/input/multi-format-join-b.dkvp @@ -0,0 +1,4 @@ +x=1,b=20 +x=2,b=30 +x=3,b=40 +x=4,b=50 diff --git a/go/reg_test/input/multi-format-join-b.json b/go/reg_test/input/multi-format-join-b.json new file mode 100644 index 000000000..de1314630 --- /dev/null +++ b/go/reg_test/input/multi-format-join-b.json @@ -0,0 +1,4 @@ +{"x":1,"b":20} +{"x":2,"b":30} +{"x":3,"b":40} +{"x":4,"b":50} diff --git a/go/reg_test/input/multi-ips.dkvp b/go/reg_test/input/multi-ips.dkvp new file mode 100644 index 000000000..083c5aec5 --- /dev/null +++ b/go/reg_test/input/multi-ips.dkvp @@ -0,0 +1,2 @@ +a: 1 +b: 2 diff --git a/go/reg_test/input/multi-sep.csv-crlf b/go/reg_test/input/multi-sep.csv-crlf new file mode 100644 index 000000000..3e872842e --- /dev/null +++ b/go/reg_test/input/multi-sep.csv-crlf @@ -0,0 +1,6 @@ +a/,b/,i/,x/,y/ +wye/,eks/,0/,0.641593543645736508/,0.262688053894177098 +eks/,zee/,1/,0.827614412562742041/,0.715431942006308552 +zee/,zee/,2/,0.923068348748175560/,0.009737410587136359 +zee/,pan/,3/,0.000047786161325772/,0.803142013402256216 +zee/,hat/,4/,0.676537984365847889/,0.573903236805416328 diff --git a/go/reg_test/input/multi-sep.dkvp-crlf b/go/reg_test/input/multi-sep.dkvp-crlf new file mode 100644 index 000000000..3106a2eaa --- /dev/null +++ b/go/reg_test/input/multi-sep.dkvp-crlf @@ -0,0 +1,5 @@ +a=:wye/,b=:eks/,i=:0/,x=:0.641593543645736508/,y=:0.262688053894177098 +a=:eks/,b=:zee/,i=:1/,x=:0.827614412562742041/,y=:0.715431942006308552 +a=:zee/,b=:zee/,i=:2/,x=:0.923068348748175560/,y=:0.009737410587136359 +a=:zee/,b=:pan/,i=:3/,x=:0.000047786161325772/,y=:0.803142013402256216 +a=:zee/,b=:hat/,i=:4/,x=:0.676537984365847889/,y=:0.573903236805416328 diff --git a/go/reg_test/input/near-ovf.dkvp b/go/reg_test/input/near-ovf.dkvp new file mode 100644 index 000000000..2a4a1a154 --- /dev/null +++ b/go/reg_test/input/near-ovf.dkvp @@ -0,0 +1,7 @@ +x=9223372036854775806,y=-9223372036854775805 +x=9223372036854775804,y=-9223372036854775804 +x=9223372036854775801,y=-9223372036854775801 +x=9223372036854775807,y=-9223372036854775803 +x=9223372036854775803,y=-9223372036854775807 +x=9223372036854775802,y=-9223372036854775806 +x=9223372036854775805,y=-9223372036854775802 diff --git a/go/reg_test/input/nest-explode-vary-fs-ps.dkvp b/go/reg_test/input/nest-explode-vary-fs-ps.dkvp new file mode 100644 index 000000000..29dfd2935 --- /dev/null +++ b/go/reg_test/input/nest-explode-vary-fs-ps.dkvp @@ -0,0 +1,4 @@ +x=a=1|b=2|c=3,y=d=40 +x=,y=d=50 +u=100,y=d=60 +x=a=4|b=5,y=d=70 diff --git a/go/reg_test/input/nest-explode.dkvp b/go/reg_test/input/nest-explode.dkvp new file mode 100644 index 000000000..947de22fb --- /dev/null +++ b/go/reg_test/input/nest-explode.dkvp @@ -0,0 +1,4 @@ +x=a:1;b:2;c:3,y=d:40 +x=,y=d:50 +u=100,y=d:60 +x=a:4;b:5,y=d:70 diff --git a/go/reg_test/input/null-fields.csv b/go/reg_test/input/null-fields.csv new file mode 100644 index 000000000..8ddbe5849 --- /dev/null +++ b/go/reg_test/input/null-fields.csv @@ -0,0 +1,6 @@ +a,b,c,d,e +1,2,3,4,5 +6,,,,10 +,,,11,12 +13,14,,, +,,,, diff --git a/go/reg_test/input/null-fields.nidx b/go/reg_test/input/null-fields.nidx new file mode 100644 index 000000000..c807ef426 --- /dev/null +++ b/go/reg_test/input/null-fields.nidx @@ -0,0 +1,5 @@ +a,b,c,d,e +f,,,,g +,,,h,i +j,k,,, +,,,, diff --git a/go/reg_test/input/null-vs-empty.dkvp b/go/reg_test/input/null-vs-empty.dkvp new file mode 100644 index 000000000..5514f32f1 --- /dev/null +++ b/go/reg_test/input/null-vs-empty.dkvp @@ -0,0 +1,3 @@ +x=1,y=2,s=hello +x=1,y=,s= +x=,y=,s=hurrah diff --git a/go/reg_test/input/nullvals.dkvp b/go/reg_test/input/nullvals.dkvp new file mode 100644 index 000000000..2f78356da --- /dev/null +++ b/go/reg_test/input/nullvals.dkvp @@ -0,0 +1,5 @@ +a=b,x=1,y=2,z= +a=b,x=3,y=4,z= +a=b,x=5,y=,z= +a=b,x=,y=6,z= +a=b,x=,y=,z= diff --git a/go/reg_test/input/ofmt.dat b/go/reg_test/input/ofmt.dat new file mode 100644 index 000000000..8dcb51414 --- /dev/null +++ b/go/reg_test/input/ofmt.dat @@ -0,0 +1,3 @@ +x=1 +x=2 +x=3 diff --git a/go/reg_test/input/page-aligned-final-ifs.dkvp b/go/reg_test/input/page-aligned-final-ifs.dkvp new file mode 100644 index 000000000..40c7406eb --- /dev/null +++ b/go/reg_test/input/page-aligned-final-ifs.dkvp @@ -0,0 +1,64 @@ +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z= \ No newline at end of file diff --git a/go/reg_test/input/page-aligned-final-irs.dkvp b/go/reg_test/input/page-aligned-final-irs.dkvp new file mode 100644 index 000000000..7b4e5a15d --- /dev/null +++ b/go/reg_test/input/page-aligned-final-irs.dkvp @@ -0,0 +1,64 @@ +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc diff --git a/go/reg_test/input/page-aligned-final-no-ifs.dkvp b/go/reg_test/input/page-aligned-final-no-ifs.dkvp new file mode 100644 index 000000000..e682c78ee --- /dev/null +++ b/go/reg_test/input/page-aligned-final-no-ifs.dkvp @@ -0,0 +1,64 @@ +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z \ No newline at end of file diff --git a/go/reg_test/input/page-aligned-no-final-eol.xtab b/go/reg_test/input/page-aligned-no-final-eol.xtab new file mode 100644 index 000000000..6606a6e4a --- /dev/null +++ b/go/reg_test/input/page-aligned-no-final-eol.xtab @@ -0,0 +1,255 @@ +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 33333333333333333333 + +aaaaaaaaaaaaaaaaaaaa 111111111111111111111 +bbbbbbbbbbbbbbbbbbbb 22222222222222222222 +cccccccccccccccccccc 3333333333333333333333 \ No newline at end of file diff --git a/go/reg_test/input/page-aligned-no-final-irs.csvl b/go/reg_test/input/page-aligned-no-final-irs.csvl new file mode 100644 index 000000000..284a9a07a --- /dev/null +++ b/go/reg_test/input/page-aligned-no-final-irs.csvl @@ -0,0 +1,64 @@ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,ccccccccccccccccccccccccccccccccccccccccccc +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,33333333333333333333333333333333333333333333 \ No newline at end of file diff --git a/go/reg_test/input/page-aligned-no-final-irs.dkvp b/go/reg_test/input/page-aligned-no-final-irs.dkvp new file mode 100644 index 000000000..976c76d3f --- /dev/null +++ b/go/reg_test/input/page-aligned-no-final-irs.dkvp @@ -0,0 +1,64 @@ +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=cccccccccccccccccccccccccccccccccccccccccccccccc +x=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,y=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,z=ccccccccccccccccccccccccccccccccccccccccccccccccc \ No newline at end of file diff --git a/go/reg_test/input/page-aligned-no-final-irs.nidx b/go/reg_test/input/page-aligned-no-final-irs.nidx new file mode 100644 index 000000000..d9cbe5b19 --- /dev/null +++ b/go/reg_test/input/page-aligned-no-final-irs.nidx @@ -0,0 +1,64 @@ +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,3333333333333333333333333333333333333333333 +11111111111111111111111111111111111111,22222222222222222222222222222222222222222222,33333333333333333333333333333333333333333333 \ No newline at end of file diff --git a/go/reg_test/input/put-example.dsl b/go/reg_test/input/put-example.dsl new file mode 100644 index 000000000..90442b2e1 --- /dev/null +++ b/go/reg_test/input/put-example.dsl @@ -0,0 +1,2 @@ +$xy = $x * $y; +$ab = $a . $b diff --git a/go/reg_test/input/put-script-piece-1 b/go/reg_test/input/put-script-piece-1 new file mode 100644 index 000000000..ba74f6285 --- /dev/null +++ b/go/reg_test/input/put-script-piece-1 @@ -0,0 +1,4 @@ +subr s(a,b) { + $[a] = b; + $DID = "YES"; +} diff --git a/go/reg_test/input/put-script-piece-2 b/go/reg_test/input/put-script-piece-2 new file mode 100644 index 000000000..a24ef660f --- /dev/null +++ b/go/reg_test/input/put-script-piece-2 @@ -0,0 +1,3 @@ +func f(x,y,z) { + return x + y + z +} diff --git a/go/reg_test/input/put-script-piece-3 b/go/reg_test/input/put-script-piece-3 new file mode 100644 index 000000000..16eb874ab --- /dev/null +++ b/go/reg_test/input/put-script-piece-3 @@ -0,0 +1,2 @@ +$o = f($x, $y, $i); +call s("W", NR); diff --git a/go/reg_test/input/quote-original.csv b/go/reg_test/input/quote-original.csv new file mode 100644 index 000000000..bf529106b --- /dev/null +++ b/go/reg_test/input/quote-original.csv @@ -0,0 +1,4 @@ +a,b,c +1,2,3 +4,"5",6 +"7",8,"9" diff --git a/go/reg_test/input/ragged.csv b/go/reg_test/input/ragged.csv new file mode 100644 index 000000000..ae7f0ec57 --- /dev/null +++ b/go/reg_test/input/ragged.csv @@ -0,0 +1,4 @@ +a,b,c +1,2,3 +4,5 +6,7,8,9 diff --git a/go/reg_test/input/regex.dkvp b/go/reg_test/input/regex.dkvp new file mode 100644 index 000000000..78962a9f9 --- /dev/null +++ b/go/reg_test/input/regex.dkvp @@ -0,0 +1,7 @@ +x=abc,y=def +x=ABC,y=DEF +x=abcd,y=ghi +x=ABCD,y=GHI +x=abcde,y=ghi +x=ABCDE,y=GHI +x=ABCDE,y="GHI" diff --git a/go/reg_test/input/regularize.dkvp b/go/reg_test/input/regularize.dkvp new file mode 100644 index 000000000..196c52b5c --- /dev/null +++ b/go/reg_test/input/regularize.dkvp @@ -0,0 +1,3 @@ +a=1,c=2,b=3 +e=4,d=5 +c=7,a=6,b=8 diff --git a/go/reg_test/input/remove-empty-columns.csv b/go/reg_test/input/remove-empty-columns.csv new file mode 100644 index 000000000..9c485d345 --- /dev/null +++ b/go/reg_test/input/remove-empty-columns.csv @@ -0,0 +1,4 @@ +a,b,c,d,e +1,,3,,5 +2,,4,,5 +3,,5,,7 diff --git a/go/reg_test/input/repeat-input.dat b/go/reg_test/input/repeat-input.dat new file mode 100644 index 000000000..a644162e1 --- /dev/null +++ b/go/reg_test/input/repeat-input.dat @@ -0,0 +1,4 @@ +a=1,b=2,c=3 +a=3,b=4,c=5 +a=6,b=,c=7 +a=8,x=,c=9 diff --git a/go/reg_test/input/repeats.dkvp b/go/reg_test/input/repeats.dkvp new file mode 100644 index 000000000..c19438e51 --- /dev/null +++ b/go/reg_test/input/repeats.dkvp @@ -0,0 +1,57 @@ +color=red,shape=square,flag=0 +color=purple,shape=triangle,flag=0 +color=yellow,shape=circle,flag=1 +color=red,shape=circle,flag=1 +color=red,shape=square,flag=0 +color=yellow,shape=circle,flag=1 +color=red,shape=square,flag=0 +color=red,shape=square,flag=0 +color=yellow,shape=circle,flag=1 +color=red,shape=circle,flag=1 +color=yellow,shape=circle,flag=1 +color=yellow,shape=circle,flag=1 +color=purple,shape=triangle,flag=0 +color=yellow,shape=circle,flag=1 +color=yellow,shape=circle,flag=1 +color=red,shape=circle,flag=1 +color=red,shape=square,flag=0 +color=purple,shape=triangle,flag=0 +color=yellow,shape=circle,flag=1 +color=red,shape=square,flag=0 +color=purple,shape=square,flag=0 +color=red,shape=square,flag=0 +color=red,shape=square,flag=1 +color=red,shape=square,flag=0 +color=red,shape=square,flag=0 +color=purple,shape=triangle,flag=0 +color=red,shape=square,flag=0 +color=purple,shape=triangle,flag=0 +color=red,shape=square,flag=0 +color=red,shape=square,flag=0 +color=purple,shape=square,flag=0 +color=red,shape=square,flag=0 +color=red,shape=square,flag=0 +color=purple,shape=triangle,flag=0 +color=yellow,shape=triangle,flag=1 +color=purple,shape=square,flag=0 +color=yellow,shape=circle,flag=1 +color=purple,shape=triangle,flag=0 +color=red,shape=circle,flag=1 +color=purple,shape=triangle,flag=0 +color=purple,shape=triangle,flag=0 +color=red,shape=square,flag=0 +color=red,shape=circle,flag=1 +color=red,shape=square,flag=1 +color=red,shape=square,flag=0 +color=red,shape=circle,flag=1 +color=purple,shape=square,flag=0 +color=purple,shape=square,flag=0 +color=red,shape=square,flag=1 +color=purple,shape=triangle,flag=0 +color=purple,shape=triangle,flag=0 +color=purple,shape=square,flag=0 +color=yellow,shape=circle,flag=1 +color=red,shape=square,flag=0 +color=yellow,shape=triangle,flag=1 +color=yellow,shape=circle,flag=1 +color=purple,shape=square,flag=0 diff --git a/go/reg_test/input/reshape-long-ragged.dkvp b/go/reg_test/input/reshape-long-ragged.dkvp new file mode 100644 index 000000000..f08ce45dc --- /dev/null +++ b/go/reg_test/input/reshape-long-ragged.dkvp @@ -0,0 +1,8 @@ +time=2009-01-01,item=X,value=0.65473572 +time=2009-01-01,item=Y,value=2.4520609 +time=2009-01-01,item=Z,value=-1.46570942 +time=2009-01-02,item=X,value=-0.89248112 +time=2009-01-02,item=Y,value=0.2154713 +time=2009-01-03,item=X,value=0.98012375 +time=2009-01-04 +time=2009-01-05,U=1.3477511,V=0.09719105,item=X,value=2.19357813 diff --git a/go/reg_test/input/reshape-long.tbl b/go/reg_test/input/reshape-long.tbl new file mode 100644 index 000000000..e5acd8134 --- /dev/null +++ b/go/reg_test/input/reshape-long.tbl @@ -0,0 +1,16 @@ +time item price +2009-01-01 X 0.65473572 +2009-01-01 Y 2.4520609 +2009-01-01 Z -1.46570942 +2009-01-02 X -0.89248112 +2009-01-02 Y 0.2154713 +2009-01-02 Z -2.05357735 +2009-01-03 X 0.98012375 +2009-01-03 Y 1.3179287 +2009-01-03 Z 4.64248357 +2009-01-04 X 0.35397376 +2009-01-04 Y 3.3765645 +2009-01-04 Z -0.25237774 +2009-01-05 X 2.19357813 +2009-01-05 Y 1.3477511 +2009-01-05 Z 0.09719105 diff --git a/go/reg_test/input/reshape-wide-ragged.dkvp b/go/reg_test/input/reshape-wide-ragged.dkvp new file mode 100644 index 000000000..7d2a6c5cb --- /dev/null +++ b/go/reg_test/input/reshape-wide-ragged.dkvp @@ -0,0 +1,5 @@ +time=2009-01-01,X=0.65473572,Y=2.4520609,Z=-1.46570942 +time=2009-01-02,X=-0.89248112,Y=0.2154713 +time=2009-01-03,X=0.98012375 +time=2009-01-04 +time=2009-01-05,X=2.19357813,U=1.3477511,V=0.09719105 diff --git a/go/reg_test/input/reshape-wide.tbl b/go/reg_test/input/reshape-wide.tbl new file mode 100644 index 000000000..e8e19e283 --- /dev/null +++ b/go/reg_test/input/reshape-wide.tbl @@ -0,0 +1,6 @@ +time X Y Z +2009-01-01 0.65473572 2.4520609 -1.46570942 +2009-01-02 -0.89248112 0.2154713 -2.05357735 +2009-01-03 0.98012375 1.3179287 4.64248357 +2009-01-04 0.35397376 3.3765645 -0.25237774 +2009-01-05 2.19357813 1.3477511 0.09719105 diff --git a/go/reg_test/input/rfc-csv/modify-defaults.csv b/go/reg_test/input/rfc-csv/modify-defaults.csv new file mode 100644 index 000000000..8278f303a --- /dev/null +++ b/go/reg_test/input/rfc-csv/modify-defaults.csv @@ -0,0 +1,3 @@ +a;b;c +1;2;3 +4;;6 diff --git a/go/reg_test/input/rfc-csv/narrow-truncated.csv b/go/reg_test/input/rfc-csv/narrow-truncated.csv new file mode 100644 index 000000000..263255620 --- /dev/null +++ b/go/reg_test/input/rfc-csv/narrow-truncated.csv @@ -0,0 +1,5 @@ +a +1 +2 +3 +4 \ No newline at end of file diff --git a/go/reg_test/input/rfc-csv/narrow.csv b/go/reg_test/input/rfc-csv/narrow.csv new file mode 100644 index 000000000..5d936c78d --- /dev/null +++ b/go/reg_test/input/rfc-csv/narrow.csv @@ -0,0 +1,5 @@ +a +1 +2 +3 +4 diff --git a/go/reg_test/input/rfc-csv/quoted-comma-truncated.csv b/go/reg_test/input/rfc-csv/quoted-comma-truncated.csv new file mode 100644 index 000000000..14a38de9e --- /dev/null +++ b/go/reg_test/input/rfc-csv/quoted-comma-truncated.csv @@ -0,0 +1,3 @@ +a,"b",c +1,"x,3",y +4,5,6 \ No newline at end of file diff --git a/go/reg_test/input/rfc-csv/quoted-comma.csv b/go/reg_test/input/rfc-csv/quoted-comma.csv new file mode 100644 index 000000000..a981534a8 --- /dev/null +++ b/go/reg_test/input/rfc-csv/quoted-comma.csv @@ -0,0 +1,3 @@ +a,"b",c +1,"x,3",y +4,5,6 diff --git a/go/reg_test/input/rfc-csv/quoted-crlf-truncated.csv b/go/reg_test/input/rfc-csv/quoted-crlf-truncated.csv new file mode 100644 index 000000000..bb0ca0ee2 --- /dev/null +++ b/go/reg_test/input/rfc-csv/quoted-crlf-truncated.csv @@ -0,0 +1,4 @@ +a,"b",c +1,"x +3",y +4,5,6 \ No newline at end of file diff --git a/go/reg_test/input/rfc-csv/quoted-crlf.csv b/go/reg_test/input/rfc-csv/quoted-crlf.csv new file mode 100644 index 000000000..672da35c7 --- /dev/null +++ b/go/reg_test/input/rfc-csv/quoted-crlf.csv @@ -0,0 +1,4 @@ +a,"b",c +1,"x +3",y +4,5,6 diff --git a/go/reg_test/input/rfc-csv/simple-truncated.csv b/go/reg_test/input/rfc-csv/simple-truncated.csv new file mode 100644 index 000000000..da5a963fa --- /dev/null +++ b/go/reg_test/input/rfc-csv/simple-truncated.csv @@ -0,0 +1,3 @@ +a,"b",c +1,x,3 +4,5,6 \ No newline at end of file diff --git a/go/reg_test/input/rfc-csv/simple.csv-crlf b/go/reg_test/input/rfc-csv/simple.csv-crlf new file mode 100644 index 000000000..6d960dd46 --- /dev/null +++ b/go/reg_test/input/rfc-csv/simple.csv-crlf @@ -0,0 +1,4 @@ +a,"b",c +1,x,3 +4,5,6 +"x","y""yy","z" diff --git a/go/reg_test/input/scinot.dkvp b/go/reg_test/input/scinot.dkvp new file mode 100644 index 000000000..fede625cb --- /dev/null +++ b/go/reg_test/input/scinot.dkvp @@ -0,0 +1,26 @@ +x=123 +x=123. +x=123.4 +x=.234 +x=1e2 +x=1e-2 +x=1.2e3 +x=1.e3 +x=1.2e-3 +x=1.e-3 +x=.2e3 +x=.2e-3 +x=1.e-3 +x=-123 +x=-123. +x=-123.4 +x=-.234 +x=-1e2 +x=-1e-2 +x=-1.2e3 +x=-1.e3 +x=-1.2e-3 +x=-1.e-3 +x=-.2e3 +x=-.2e-3 +x=-1.e-3 diff --git a/go/reg_test/input/scinot1.dkvp b/go/reg_test/input/scinot1.dkvp new file mode 100644 index 000000000..dbb572dbd --- /dev/null +++ b/go/reg_test/input/scinot1.dkvp @@ -0,0 +1 @@ +i=1 diff --git a/go/reg_test/input/sec2gmt b/go/reg_test/input/sec2gmt new file mode 100644 index 000000000..740950b9b --- /dev/null +++ b/go/reg_test/input/sec2gmt @@ -0,0 +1,26 @@ +n,sec +1,0 +2,1 +3,10 +4,100 +5,1000 +6,10000 +7,100000 +8,1000000 +9,10000000 +10,100000000 +11,1000000000 +12,1432036180 +13,1500000000 +14,2000000000 +15,2000000000. +16,2000000000.0 +17,2000000000.00 +18,2000000000.123400 +19,2000000000.123456 +20,2000000000.999 +21,2000000000.999999 +22,2000000000.999999999 +23, +24,x +25,123x diff --git a/go/reg_test/input/sec2xhms b/go/reg_test/input/sec2xhms new file mode 100644 index 000000000..1679c2060 --- /dev/null +++ b/go/reg_test/input/sec2xhms @@ -0,0 +1,27 @@ +sec=0 +sec=1 +sec=59 +sec=60 +sec=61 +sec=3599 +sec=3600 +sec=3601 +sec=86399 +sec=86400 +sec=86401 +sec=863999 +sec=864000 +sec=864001 +sec=-1 +sec=-59 +sec=-60 +sec=-61 +sec=-3599 +sec=-3600 +sec=-3601 +sec=-86399 +sec=-86400 +sec=-86401 +sec=-863999 +sec=-864000 +sec=-864001 diff --git a/go/reg_test/input/short b/go/reg_test/input/short new file mode 100644 index 000000000..32e581cae --- /dev/null +++ b/go/reg_test/input/short @@ -0,0 +1,3 @@ +a=1 +b=2 +c=3 diff --git a/go/reg_test/input/short-circuit.dkvp b/go/reg_test/input/short-circuit.dkvp new file mode 100644 index 000000000..9c67de9d5 --- /dev/null +++ b/go/reg_test/input/short-circuit.dkvp @@ -0,0 +1,3 @@ +x=1,a="hello" +x=2,a="there" +x=3,a="world" diff --git a/go/reg_test/input/sieve.mlr b/go/reg_test/input/sieve.mlr new file mode 100644 index 000000000..341e5c977 --- /dev/null +++ b/go/reg_test/input/sieve.mlr @@ -0,0 +1,21 @@ +# Sieve of Eratosthenes: simple example of Miller DSL as programming language. +begin { + @n = 100; +} +end { + for (int i = 0; i <= @n; i += 1) { + @s[i] = true; + } + @s[0] = false; + @s[1] = false; + for (int i = 2; i <= @n; i += 1) { + for (int j = i+i; j <= @n; j += i) { + @s[j] = false; + } + } + for (int i = 0; i <= @n; i += 1) { + if (@s[i]) { + print i; + } + } +} diff --git a/go/reg_test/input/simple.tsv b/go/reg_test/input/simple.tsv new file mode 100644 index 000000000..3db900504 --- /dev/null +++ b/go/reg_test/input/simple.tsv @@ -0,0 +1,6 @@ +a b i x y +pan pan 1 2 0.989945 +eks pan 2 1 0.775159 +wye wye 3 1 0.761642 +eks wye 4 5 0.322934 +wye pan 5 5 0.448283 diff --git a/go/reg_test/input/small b/go/reg_test/input/small new file mode 100644 index 000000000..547de9e99 --- /dev/null +++ b/go/reg_test/input/small @@ -0,0 +1,10 @@ +a=pan,b=pan,i=1,x=0.3467901443380824,y=0.7268028627434533 +a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797 +a=wye,b=wye,i=3,x=0.20460330576630303,y=0.33831852551664776 +a=eks,b=wye,i=4,x=0.38139939387114097,y=0.13418874328430463 +a=wye,b=pan,i=5,x=0.5732889198020006,y=0.8636244699032729 +a=zee,b=pan,i=6,x=0.5271261600918548,y=0.49322128674835697 +a=eks,b=zee,i=7,x=0.6117840605678454,y=0.1878849191181694 +a=zee,b=wye,i=8,x=0.5985540091064224,y=0.976181385699006 +a=hat,b=wye,i=9,x=0.03144187646093577,y=0.7495507603507059 +a=pan,b=wye,i=10,x=0.5026260055412137,y=0.9526183602969864 diff --git a/go/reg_test/input/small-nested.json b/go/reg_test/input/small-nested.json new file mode 100644 index 000000000..5a02dea93 --- /dev/null +++ b/go/reg_test/input/small-nested.json @@ -0,0 +1,21 @@ +{ + "z": { + "pan": { + "1": 0.726803, + "0": 0.952618 + }, + "eks": { + "0": 0.134189, + "1": 0.187885 + }, + "wye": { + "1": 0.863624 + }, + "zee": { + "0": 0.976181 + }, + "hat": { + "1": 0.749551 + } + } +} diff --git a/go/reg_test/input/small-non-nested-wrapped.json b/go/reg_test/input/small-non-nested-wrapped.json new file mode 100644 index 000000000..e9551ad2b --- /dev/null +++ b/go/reg_test/input/small-non-nested-wrapped.json @@ -0,0 +1,12 @@ +[ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +,{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +,{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +,{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +,{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +,{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +,{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +,{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +,{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +,{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } +] diff --git a/go/reg_test/input/small-non-nested.json b/go/reg_test/input/small-non-nested.json new file mode 100644 index 000000000..3bba0e8d7 --- /dev/null +++ b/go/reg_test/input/small-non-nested.json @@ -0,0 +1,10 @@ +{ "a": "pan", "b": "pan", "i": 1, "x": 0.3467901443380824, "y": 0.7268028627434533 } +{ "a": "eks", "b": "pan", "i": 2, "x": 0.7586799647899636, "y": 0.5221511083334797 } +{ "a": "wye", "b": "wye", "i": 3, "x": 0.20460330576630303, "y": 0.33831852551664776 } +{ "a": "eks", "b": "wye", "i": 4, "x": 0.38139939387114097, "y": 0.13418874328430463 } +{ "a": "wye", "b": "pan", "i": 5, "x": 0.5732889198020006, "y": 0.8636244699032729 } +{ "a": "zee", "b": "pan", "i": 6, "x": 0.5271261600918548, "y": 0.49322128674835697 } +{ "a": "eks", "b": "zee", "i": 7, "x": 0.6117840605678454, "y": 0.1878849191181694 } +{ "a": "zee", "b": "wye", "i": 8, "x": 0.5985540091064224, "y": 0.976181385699006 } +{ "a": "hat", "b": "wye", "i": 9, "x": 0.03144187646093577, "y": 0.7495507603507059 } +{ "a": "pan", "b": "wye", "i": 10, "x": 0.5026260055412137, "y": 0.9526183602969864 } diff --git a/go/reg_test/input/sort-het.dkvp b/go/reg_test/input/sort-het.dkvp new file mode 100644 index 000000000..0896145f4 --- /dev/null +++ b/go/reg_test/input/sort-het.dkvp @@ -0,0 +1,4 @@ +x=2 +a=3 +x=4 +x=1 diff --git a/go/reg_test/input/space-pad.dkvp b/go/reg_test/input/space-pad.dkvp new file mode 100644 index 000000000..0e2548268 --- /dev/null +++ b/go/reg_test/input/space-pad.dkvp @@ -0,0 +1,2 @@ + a=1 b=2 + c=3 diff --git a/go/reg_test/input/space-pad.nidx b/go/reg_test/input/space-pad.nidx new file mode 100644 index 000000000..8a79d5a2b --- /dev/null +++ b/go/reg_test/input/space-pad.nidx @@ -0,0 +1,2 @@ + a b c + d e f diff --git a/go/reg_test/input/space-pad.pprint b/go/reg_test/input/space-pad.pprint new file mode 100644 index 000000000..57a791b6f --- /dev/null +++ b/go/reg_test/input/space-pad.pprint @@ -0,0 +1,2 @@ + a b c + 1 2 3 diff --git a/go/reg_test/input/string-numeric-ordering.dkvp b/go/reg_test/input/string-numeric-ordering.dkvp new file mode 100644 index 000000000..9a2a83b54 --- /dev/null +++ b/go/reg_test/input/string-numeric-ordering.dkvp @@ -0,0 +1,6 @@ +x=1,y=1,z=a +x=1.5,y=1.5,z=b +x=a,y=2,z=c +x=2,y=3,z=d +x=2.5,y=3.5,z=e +x=b,y=4,z=f diff --git a/go/reg_test/input/sub.dat b/go/reg_test/input/sub.dat new file mode 100644 index 000000000..0de6d76c2 --- /dev/null +++ b/go/reg_test/input/sub.dat @@ -0,0 +1,4 @@ +x=hello +x=HELLO +x=world +x=WORLD diff --git a/go/reg_test/input/subtab.dkvp b/go/reg_test/input/subtab.dkvp new file mode 100644 index 000000000..3ccf184ed --- /dev/null +++ b/go/reg_test/input/subtab.dkvp @@ -0,0 +1,6 @@ +x=afoob +x=a\tb +x=a\\tb +x=a b +z= +x= diff --git a/go/reg_test/input/subtab1.mlr b/go/reg_test/input/subtab1.mlr new file mode 100644 index 000000000..2bcf47a8b --- /dev/null +++ b/go/reg_test/input/subtab1.mlr @@ -0,0 +1 @@ +$y=sub($x, "\t", "TAB") diff --git a/go/reg_test/input/subtab2.mlr b/go/reg_test/input/subtab2.mlr new file mode 100644 index 000000000..01ca19654 --- /dev/null +++ b/go/reg_test/input/subtab2.mlr @@ -0,0 +1 @@ +$y=sub($x, "\\t", "TAB") diff --git a/go/reg_test/input/subtab3.mlr b/go/reg_test/input/subtab3.mlr new file mode 100644 index 000000000..de941812e --- /dev/null +++ b/go/reg_test/input/subtab3.mlr @@ -0,0 +1 @@ +$y=sub($x, "\t", "\t") diff --git a/go/reg_test/input/subtab4.mlr b/go/reg_test/input/subtab4.mlr new file mode 100644 index 000000000..5e04f1d08 --- /dev/null +++ b/go/reg_test/input/subtab4.mlr @@ -0,0 +1 @@ +$y=sub($x, "\\t", "\t") diff --git a/go/reg_test/input/test-dsl-stack-allocation.mlr b/go/reg_test/input/test-dsl-stack-allocation.mlr new file mode 100644 index 000000000..745d02679 --- /dev/null +++ b/go/reg_test/input/test-dsl-stack-allocation.mlr @@ -0,0 +1,164 @@ +# ================================================================ +# See comments in test_dsl_stack.c for details what is being tested here. +# ================================================================ + +# ---------------------------------------------------------------- +func f(a,b,c) { + @v[NR] = NR*1000; + true { + var val = nonesuch; + while (1 == 1) { + if (NR == 1) { + for (k, v in $*) { + val = v.":".a.":".b.":".c; + print "f:1:val:".val; + } + } elif (NR == 2) { + for (k in @v) { + print "f:2:k:".k; + } + } elif (NR == 3) { + for (k, v in @v) { + print "f:3:k:".k."v:".v; + } + } elif (NR == 4) { + var sum = 0; + for (var i = 1; i <= 10; i += 1) { + for (var j = 1; j <= 10; j += 1) { + sum += i*j; + } + } + val = sum; + print "f:val:".val; + } + break; + } + } +} + +# ---------------------------------------------------------------- +subr s(a,b,c) { + @v[NR] = NR*2000; + true { + var val = nonesuch; + while (1 == 1) { + if (NR == 1) { + for (k, v in $*) { + val = v.":".a.":".b.":".c; + print "s:1:val:".val; + } + } elif (NR == 2) { + for (k in @v) { + print "s:2:k:".k; + } + } elif (NR == 3) { + for (k, v in @v) { + print "s:3:k:".k."v:".v; + } + } elif (NR == 4) { + var sum = 0; + for (var i = 1; i <= 10; i += 1) { + for (var j = 1; j <= 10; j += 1) { + sum += i*j; + } + } + val = sum; + print "s:val:".val; + } + break; + } + } +} + +# ---------------------------------------------------------------- +begin { + print "BEGIN"; + @v[0] = 456; + true { + var val = nonesuch; + for (var idx = 1; idx <= 4; idx += 1) { + if (idx == 2) { + for (k in @v) { + print "b:2:k:".k; + } + } elif (idx == 3) { + for (k, v in @v) { + print "b:3:k:".k."v:".v; + } + } elif (idx == 4) { + var sum = 0; + for (var i = 1; i <= 10; i += 1) { + for (var j = 1; j <= 10; j += 1) { + sum += i*j; + } + } + val = sum; + print "b:val:".val; + } + } + } +} + +# ---------------------------------------------------------------- +print "MAIN"; +@v[NR] = NR*4000; +true { + var val = nonesuch; + while (1 == 1) { + if (NR == 1) { + for (k, v in $*) { + val = v; + print "m:1:val:".val; + } + } elif (NR == 2) { + for (k in @v) { + print "m:2:k:".k; + } + } elif (NR == 3) { + for (k, v in @v) { + print "m:3:k:".k."v:".v; + } + } elif (NR == 4) { + var sum = 0; + for (var i = 1; i <= 10; i += 1) { + for (var j = 1; j <= 10; j += 1) { + sum += i*j; + } + } + val = sum; + print "m:val:".val; + } + break; + } +} +$o = f(NR, $a, $y); +call s($b, NR, $i**2); + +# ---------------------------------------------------------------- +end { + print "END"; + @v[100] = 789; + true { + var val = nonesuch; + for (var idx = 1; idx <= 4; idx += 1) { + if (idx == 2) { + for (k in @v) { + print "e:2:k:".k; + } + } elif (idx == 3) { + for (k, v in @v) { + print "e:3:k:".k."v:".v; + } + } elif (idx == 4) { + var sum = 0; + for (var i = 1; i <= 10; i += 1) { + for (var j = 1; j <= 10; j += 1) { + sum += i*j; + } + } + val = sum; + print "e:val:".val; + } + } + } +} diff --git a/go/reg_test/input/trivial-records.csv b/go/reg_test/input/trivial-records.csv new file mode 100644 index 000000000..42d5e9304 --- /dev/null +++ b/go/reg_test/input/trivial-records.csv @@ -0,0 +1,5 @@ +a,b,c +1,2,3 +4,,6 +,, +,8,9 diff --git a/go/reg_test/input/truncated.csv b/go/reg_test/input/truncated.csv new file mode 100644 index 000000000..83d4cdde1 --- /dev/null +++ b/go/reg_test/input/truncated.csv @@ -0,0 +1,4 @@ +a,b,c +1,2,3 +4,5,6 +7,8,9 \ No newline at end of file diff --git a/go/reg_test/input/truncated.dkvp b/go/reg_test/input/truncated.dkvp new file mode 100644 index 000000000..be211cc0e --- /dev/null +++ b/go/reg_test/input/truncated.dkvp @@ -0,0 +1,2 @@ +a=1,b=2 +c=3 \ No newline at end of file diff --git a/go/reg_test/input/truncated.nidx b/go/reg_test/input/truncated.nidx new file mode 100644 index 000000000..f84ebb389 --- /dev/null +++ b/go/reg_test/input/truncated.nidx @@ -0,0 +1,2 @@ +1 2 3 +4 5 \ No newline at end of file diff --git a/go/reg_test/input/truncated.pprint b/go/reg_test/input/truncated.pprint new file mode 100644 index 000000000..738b2acfb --- /dev/null +++ b/go/reg_test/input/truncated.pprint @@ -0,0 +1,4 @@ +a b c +1 2 3 +4 5 6 +7 8 9 \ No newline at end of file diff --git a/go/reg_test/input/truncated.xtab-crlf b/go/reg_test/input/truncated.xtab-crlf new file mode 100644 index 000000000..215b66017 --- /dev/null +++ b/go/reg_test/input/truncated.xtab-crlf @@ -0,0 +1,6 @@ +a 1 +b 2 +c 3 + +d 4 +e 5 \ No newline at end of file diff --git a/go/reg_test/input/typeof.dkvp b/go/reg_test/input/typeof.dkvp new file mode 100644 index 000000000..b77a1635f --- /dev/null +++ b/go/reg_test/input/typeof.dkvp @@ -0,0 +1,12 @@ +x=1,y=2 +x=1,y= +x=,y=2 +x=,y= +a=1,y=2 +a=1,y= +a=,y=2 +a=,y= +x=1,b=2 +x=1,b= +x=,b=2 +x=,b= diff --git a/go/reg_test/input/unset1.dkvp b/go/reg_test/input/unset1.dkvp new file mode 100644 index 000000000..f8ad178b3 --- /dev/null +++ b/go/reg_test/input/unset1.dkvp @@ -0,0 +1 @@ +a=1,b=2,x=9 diff --git a/go/reg_test/input/unset4.dkvp b/go/reg_test/input/unset4.dkvp new file mode 100644 index 000000000..80250e5ea --- /dev/null +++ b/go/reg_test/input/unset4.dkvp @@ -0,0 +1,4 @@ +a=1,b=2,x=9 +a=1,b=3,x=9 +a=4,b=5,x=9 +a=4,b=6,x=9 diff --git a/go/reg_test/input/utf8-1.csv b/go/reg_test/input/utf8-1.csv new file mode 100644 index 000000000..557ea9326 --- /dev/null +++ b/go/reg_test/input/utf8-1.csv @@ -0,0 +1,3 @@ +langue,nom,jour +français,françois,vendredi +žusz,éloignée, diff --git a/go/reg_test/input/utf8-2.csv b/go/reg_test/input/utf8-2.csv new file mode 100644 index 000000000..e04a85b8e --- /dev/null +++ b/go/reg_test/input/utf8-2.csv @@ -0,0 +1,2 @@ +français,françois,vendredi +langue,nom,jour diff --git a/go/reg_test/input/utf8-align.dkvp b/go/reg_test/input/utf8-align.dkvp new file mode 100644 index 000000000..925b12366 --- /dev/null +++ b/go/reg_test/input/utf8-align.dkvp @@ -0,0 +1,3 @@ +191º=test,1912=test2,cois=çais,çois=cais +191º=test,1912=test2,ois=çais,çois=cais +191º=test,1912=test2,coise=çais,çois=cais diff --git a/go/reg_test/input/utf8-align.nidx b/go/reg_test/input/utf8-align.nidx new file mode 100644 index 000000000..5a3bbe6e6 --- /dev/null +++ b/go/reg_test/input/utf8-align.nidx @@ -0,0 +1,4 @@ +191º test +191 test2 +francois français +françois francais diff --git a/go/reg_test/input/valgrind.txt b/go/reg_test/input/valgrind.txt new file mode 100644 index 000000000..649e8f359 --- /dev/null +++ b/go/reg_test/input/valgrind.txt @@ -0,0 +1,219 @@ +Using mlr executable valgrind --leak-check=full ./reg_test/../../c/mlrg + +mlr cat ./reg_test/input/abixy +Command: ./reg_test/../../c/mlrg cat ./reg_test/input/abixy + +--1366737-- WARNING: Serious error when reading debug info +--1366737-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1366737-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1366737-- WARNING: Serious error when reading debug info +--1366737-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1366737-- Last block truncated in .debug_info; ignoring +--1366737-- WARNING: Serious error when reading debug info +--1366737-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1366737-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 +--1366737-- WARNING: Serious error when reading debug info +--1366737-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1366737-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1366737-- WARNING: Serious error when reading debug info +--1366737-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1366737-- Last block truncated in .debug_info; ignoring +--1366737-- WARNING: Serious error when reading debug info +--1366737-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1366737-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 + +All heap blocks were freed -- no leaks are possible + +mlr --prepipe cat --odkvp join -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het +Command: ./reg_test/../../c/mlrg --prepipe cat --odkvp join -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het + +--1369394-- WARNING: Serious error when reading debug info +--1369394-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369394-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369394-- WARNING: Serious error when reading debug info +--1369394-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369394-- Last block truncated in .debug_info; ignoring +--1369394-- WARNING: Serious error when reading debug info +--1369394-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369394-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 +--1369394-- WARNING: Serious error when reading debug info +--1369394-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369394-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369394-- WARNING: Serious error when reading debug info +--1369394-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369394-- Last block truncated in .debug_info; ignoring +--1369394-- WARNING: Serious error when reading debug info +--1369394-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369394-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 + +32 bytes in 1 blocks are definitely lost in loss record 1 of 2 + at 0x4C26B0F: malloc (in /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + by 0x40CE15: mlr_malloc_or_die (mlrutil.c:89) + by 0x42BA54: mlr_alloc_read_line_single_delimiter (line_readers.c:15) + by 0x434B6F: lrec_reader_stdio_dkvp_process_single_irs_single_others_auto_line_term (lrec_reader_stdio_dkvp.c:103) + by 0x45BEAE: ingest_left_file (mapper_join.c:559) + by 0x45B916: mapper_join_process_unsorted (mapper_join.c:421) + by 0x428C4A: chain_map (stream.c:219) + by 0x428BA7: drive_lrec (stream.c:200) + by 0x428B48: do_file_chained (stream.c:189) + by 0x428970: do_stream_chained_to_stdout (stream.c:143) + by 0x4284F3: do_stream_chained (stream.c:34) + by 0x4024B3: main (mlrmain.c:32) + +64 bytes in 1 blocks are definitely lost in loss record 2 of 2 + at 0x4C26B0F: malloc (in /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + by 0x40CE15: mlr_malloc_or_die (mlrutil.c:89) + by 0x42BA54: mlr_alloc_read_line_single_delimiter (line_readers.c:15) + by 0x434B6F: lrec_reader_stdio_dkvp_process_single_irs_single_others_auto_line_term (lrec_reader_stdio_dkvp.c:103) + by 0x428ABB: do_file_chained (stream.c:177) + by 0x428970: do_stream_chained_to_stdout (stream.c:143) + by 0x4284F3: do_stream_chained (stream.c:34) + by 0x4024B3: main (mlrmain.c:32) + +mlr --odkvp join --prepipe cat -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het +Command: ./reg_test/../../c/mlrg --odkvp join --prepipe cat -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het + +--1369398-- WARNING: Serious error when reading debug info +--1369398-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369398-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369398-- WARNING: Serious error when reading debug info +--1369398-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369398-- Last block truncated in .debug_info; ignoring +--1369398-- WARNING: Serious error when reading debug info +--1369398-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369398-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 +--1369398-- WARNING: Serious error when reading debug info +--1369398-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369398-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369398-- WARNING: Serious error when reading debug info +--1369398-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369398-- Last block truncated in .debug_info; ignoring +--1369398-- WARNING: Serious error when reading debug info +--1369398-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369398-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 + +32 bytes in 1 blocks are definitely lost in loss record 1 of 1 + at 0x4C26B0F: malloc (in /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + by 0x40CE15: mlr_malloc_or_die (mlrutil.c:89) + by 0x42BA54: mlr_alloc_read_line_single_delimiter (line_readers.c:15) + by 0x434B6F: lrec_reader_stdio_dkvp_process_single_irs_single_others_auto_line_term (lrec_reader_stdio_dkvp.c:103) + by 0x45BEAE: ingest_left_file (mapper_join.c:559) + by 0x45B916: mapper_join_process_unsorted (mapper_join.c:421) + by 0x428C4A: chain_map (stream.c:219) + by 0x428BA7: drive_lrec (stream.c:200) + by 0x428B48: do_file_chained (stream.c:189) + by 0x428970: do_stream_chained_to_stdout (stream.c:143) + by 0x4284F3: do_stream_chained (stream.c:34) + by 0x4024B3: main (mlrmain.c:32) + +mlr --prepipe cat --odkvp join --prepipe cat -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het +Command: ./reg_test/../../c/mlrg --prepipe cat --odkvp join --prepipe cat -j a -f ./reg_test/input/join-het.dkvp ./reg_test/input/abixy-het + +--1369400-- WARNING: Serious error when reading debug info +--1369400-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369400-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369400-- WARNING: Serious error when reading debug info +--1369400-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369400-- Last block truncated in .debug_info; ignoring +--1369400-- WARNING: Serious error when reading debug info +--1369400-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369400-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 +--1369400-- WARNING: Serious error when reading debug info +--1369400-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369400-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369400-- WARNING: Serious error when reading debug info +--1369400-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369400-- Last block truncated in .debug_info; ignoring +--1369400-- WARNING: Serious error when reading debug info +--1369400-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369400-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 + +32 bytes in 1 blocks are definitely lost in loss record 1 of 2 + at 0x4C26B0F: malloc (in /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + by 0x40CE15: mlr_malloc_or_die (mlrutil.c:89) + by 0x42BA54: mlr_alloc_read_line_single_delimiter (line_readers.c:15) + by 0x434B6F: lrec_reader_stdio_dkvp_process_single_irs_single_others_auto_line_term (lrec_reader_stdio_dkvp.c:103) + by 0x45BEAE: ingest_left_file (mapper_join.c:559) + by 0x45B916: mapper_join_process_unsorted (mapper_join.c:421) + by 0x428C4A: chain_map (stream.c:219) + by 0x428BA7: drive_lrec (stream.c:200) + by 0x428B48: do_file_chained (stream.c:189) + by 0x428970: do_stream_chained_to_stdout (stream.c:143) + by 0x4284F3: do_stream_chained (stream.c:34) + by 0x4024B3: main (mlrmain.c:32) + +64 bytes in 1 blocks are definitely lost in loss record 2 of 2 + at 0x4C26B0F: malloc (in /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so) + by 0x40CE15: mlr_malloc_or_die (mlrutil.c:89) + by 0x42BA54: mlr_alloc_read_line_single_delimiter (line_readers.c:15) + by 0x434B6F: lrec_reader_stdio_dkvp_process_single_irs_single_others_auto_line_term (lrec_reader_stdio_dkvp.c:103) + by 0x428ABB: do_file_chained (stream.c:177) + by 0x428970: do_stream_chained_to_stdout (stream.c:143) + by 0x4284F3: do_stream_chained (stream.c:34) + by 0x4024B3: main (mlrmain.c:32) + +mlr --json join -s -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json +Command: ./reg_test/../../c/mlrg --json join -s -j x -f ./reg_test/input/multi-format-join-a.json ./reg_test/input/multi-format-join-b.json + +--1369430-- WARNING: Serious error when reading debug info +--1369430-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369430-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369430-- WARNING: Serious error when reading debug info +--1369430-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369430-- Last block truncated in .debug_info; ignoring +--1369430-- WARNING: Serious error when reading debug info +--1369430-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369430-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 +--1369430-- WARNING: Serious error when reading debug info +--1369430-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369430-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369430-- WARNING: Serious error when reading debug info +--1369430-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369430-- Last block truncated in .debug_info; ignoring +--1369430-- WARNING: Serious error when reading debug info +--1369430-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369430-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 + +mlr --dkvp join -s -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp +Command: ./reg_test/../../c/mlrg --dkvp join -s -j x -f ./reg_test/input/multi-format-join-a.dkvp ./reg_test/input/multi-format-join-b.dkvp + +--1369432-- WARNING: Serious error when reading debug info +--1369432-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369432-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369432-- WARNING: Serious error when reading debug info +--1369432-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369432-- Last block truncated in .debug_info; ignoring +--1369432-- WARNING: Serious error when reading debug info +--1369432-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369432-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 +--1369432-- WARNING: Serious error when reading debug info +--1369432-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369432-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369432-- WARNING: Serious error when reading debug info +--1369432-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369432-- Last block truncated in .debug_info; ignoring +--1369432-- WARNING: Serious error when reading debug info +--1369432-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369432-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 + +mlr --csvlite join -s -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv +Command: ./reg_test/../../c/mlrg --csvlite join -s -j x -f ./reg_test/input/multi-format-join-a.csv ./reg_test/input/multi-format-join-b.csv + +--1369435-- WARNING: Serious error when reading debug info +--1369435-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369435-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369435-- WARNING: Serious error when reading debug info +--1369435-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369435-- Last block truncated in .debug_info; ignoring +--1369435-- WARNING: Serious error when reading debug info +--1369435-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_core-amd64-linux.so: +--1369435-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 +--1369435-- WARNING: Serious error when reading debug info +--1369435-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369435-- Ignoring non-Dwarf2/3/4 block in .debug_info +--1369435-- WARNING: Serious error when reading debug info +--1369435-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369435-- Last block truncated in .debug_info; ignoring +--1369435-- WARNING: Serious error when reading debug info +--1369435-- When reading debug info from /usr/local/fbcode/gcc-5-glibc-2.23/lib/valgrind/vgpreload_memcheck-amd64-linux.so: +--1369435-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4 diff --git a/go/reg_test/input/x0to10.dat b/go/reg_test/input/x0to10.dat new file mode 100644 index 000000000..9ca10c89d --- /dev/null +++ b/go/reg_test/input/x0to10.dat @@ -0,0 +1,11 @@ +x=0 +x=1 +x=2 +x=3 +x=4 +x=5 +x=6 +x=7 +x=8 +x=9 +x=10 diff --git a/go/reg_test/input/xy40.dkvp b/go/reg_test/input/xy40.dkvp new file mode 100644 index 000000000..83ed5ba19 --- /dev/null +++ b/go/reg_test/input/xy40.dkvp @@ -0,0 +1,40 @@ +i=1,x=101,y=201 +i=2,x=102,y=202 +i=3,x=103,y=203 +i=4,x=104,y=204 +i=5,x=105,y=205 +i=6,x=106,y=206 +i=7,x=107,y=207 +i=8,x=108,y=208 +i=9,x=109,y=209 +i=10,x=110,y=210 +i=11,x=111,y=211 +i=12,x=112,y=212 +i=13,x=113,y=213 +i=14,x=114,y=214 +i=15,x=115,y=215 +i=16,x=116,y=216 +i=17,x=117,y=217 +i=18,x=118,y=218 +i=19,x=119,y=219 +i=20,x=120,y=220 +i=21,x=121,y=221 +i=22,x=122,y=222 +i=23,x=123,y=223 +i=24,x=124,y=224 +i=25,x=125,y=225 +i=26,x=126,y=226 +i=27,x=127,y=227 +i=28,x=128,y=228 +i=29,x=129,y=229 +i=30,x=130,y=230 +i=31,x=131,y=231 +i=32,x=132,y=232 +i=33,x=133,y=233 +i=34,x=134,y=234 +i=35,x=135,y=235 +i=36,x=136,y=236 +i=37,x=137,y=237 +i=38,x=138,y=238 +i=39,x=139,y=239 +i=40,x=140,y=240 diff --git a/go/reg_test/input/xyz2 b/go/reg_test/input/xyz2 new file mode 100644 index 000000000..213777c91 --- /dev/null +++ b/go/reg_test/input/xyz2 @@ -0,0 +1,2 @@ +x=3,y=4,z=5 +x=6,y=7,u=8 diff --git a/go/reg_test/input/xyz345 b/go/reg_test/input/xyz345 new file mode 100644 index 000000000..a3caa8f9a --- /dev/null +++ b/go/reg_test/input/xyz345 @@ -0,0 +1 @@ +x=3,y=4,z=5 diff --git a/go/reg_test/run b/go/reg_test/run new file mode 100755 index 000000000..a8ac7c174 --- /dev/null +++ b/go/reg_test/run @@ -0,0 +1,7302 @@ +#!/bin/sh + +# ================================================================ +set -e + +# For building with autoconf: +# * in-directory build: +# pwd is /path/to/the/tree/c/reg_test +# path to mlr is /path/to/the/tree/c/mlr +# path to reg_test/run is /path/to/the/tree/c/reg_test/run +# +# * out-of-directory ("VPATH") build: +# pwd is /path/to/build/tree/c/reg_test +# path to mlr is /path/to/build/tree/c/mlr +# path to reg_test/run is /path/to/source/tree/c/reg_test/run + +# For building without autoconf: +# pwd is /does/not/matter +# path to mlr is /path/to/the/tree/c/mlr +# path to reg_test/run is /path/to/the/tree/c/reg_test/run + +ourdir=`dirname $0` +srcdir=$ourdir/../.. +pwd=`pwd` + +try1=$pwd/../mlr # For autoconf builds, in-tree or out-of-tree +try2=$srcdir/go/mlr # For non-autoconf builds +if [ -x "$try1" ]; then + path_to_mlr=$try1 +elif [ -x "$try2" ]; then + path_to_mlr=$try2 +else + echo "$0: Could not find path to mlr executable." 1>&2 + echo "Try 1: $try1" 1>&2 + echo "Try 2: $try2" 1>&2 + exit 1 +fi + +# mlr lecat, mlr termcvt, etc. do not accept initial '--no-mmap'. +path_to_mlr_for_auxents="$path_to_mlr" + +if [ "$1" = "--valgrind" ]; then + # Leak-check the test suite. Needs 'make mlrg' first. + # ../tools/clean-valg can be used to filter the output. + path_to_mlr="valgrind --leak-check=full ${path_to_mlr}g" + path_to_mlr_for_auxents="$path_to_mlr" +fi +echo Using mlr executable $path_to_mlr + +indir=$ourdir/input +expdir=$ourdir/expected +outdir=$pwd/output-regtest +reloutdir=./output-regtest +outfile=$outdir/out +expfile=$expdir/out +mkdir -p $outdir + +# Don't let the running user's .mlrrc affect the regression test +export MLRRC="__none__" + +rm -rf $outdir +mkdir -p $outdir +touch $outfile +echo + +num_completed=0 + +announce() { + echo >> $outfile + echo "================================================================" >> $outfile + echo "$@" >> $outfile + echo >> $outfile +} + +mention() { + echo >> $outfile + echo ---------------------------------------------------------------- "$@" >> $outfile +} + +# A key feature of this regression script is that it can be invoked from any +# directory. Depending on the directory it's invoked from, the path to the mlr +# executable may vary. Nonetheless for debugging it's crucial that we echo out +# each command being executed. See also diff -I below. +run_mlr() { + # Use just "mlr" for info messages + echo mlr "$@" + echo mlr "$@" >> $outfile + # Use path to mlr for invoking the command + $path_to_mlr "$@" >> $outfile + echo >> $outfile + # since set -e + num_completed=`expr $num_completed + 1` +} + +run_cat() { + echo cat "$@" + echo cat "$@" >> $outfile + cat "$@" >> $outfile + echo >> $outfile +} + +run_mlr_for_auxents() { + # Use just "mlr" for info messages + echo mlr "$@" >> $outfile + # Use path to mlr for invoking the command + $path_to_mlr_for_auxents "$@" >> $outfile + # since set -e + num_completed=`expr $num_completed + 1` +} + +run_mlr_for_auxents_no_output() { + # Use just "mlr" for info messages + echo mlr "$@" >> $outfile + # Use path to mlr for invoking the command + $path_to_mlr_for_auxents "$@" + # since set -e + num_completed=`expr $num_completed + 1` +} + +# Just cats a file while also announcing that fact. +run_cat() { + echo cat "$@" + echo cat "$@" >> $outfile # for diff at end + cat "$@" >> $outfile # for diff at end + echo >> $outfile +} + +mlr_expect_fail() { + # Use just "mlr" for info messages + echo mlr "$@" + echo mlr "$@" >> $outfile + # Use path to mlr for invoking the command + set +e + stderr_capture=$( $path_to_mlr "$@" 3>&1 1>&2 2>&3 >>$outfile ) + status=$? + echo "${stderr_capture}" >> $outfile + if [ $status -ne 1 ]; then + echo "Exit status was $status; expected 1." + echo "Exit status was $status; expected 1." >> $outfile + fi + set -e + echo >> $outfile + test $status -eq 1 + # since set -e + num_completed=`expr $num_completed + 1` +} + +# ================================================================ +announce STATELESS MAPPERS + +run_mlr cat $indir/abixy +run_mlr cat /dev/null + +run_mlr cat -n $indir/abixy-het +run_mlr cat -N counter $indir/abixy-het + +run_mlr cat -g a,b $indir/abixy-het +run_mlr cat -g a,b $indir/abixy-het + +run_mlr cat -g a,b -n $indir/abixy-het +run_mlr cat -g a,b -N counter $indir/abixy-het + +run_mlr cut -f a,x $indir/abixy +run_mlr cut --complement -f a,x $indir/abixy + +run_mlr cut -r -f c,e $indir/having-fields-regex.dkvp +run_mlr cut -r -f '"C","E"' $indir/having-fields-regex.dkvp +run_mlr cut -r -f '"c"i,"e"' $indir/having-fields-regex.dkvp +run_mlr cut -r -f '"C"i,"E"' $indir/having-fields-regex.dkvp +run_mlr cut -r -x -f c,e $indir/having-fields-regex.dkvp +run_mlr cut -r -x -f '"C","E"' $indir/having-fields-regex.dkvp +run_mlr cut -r -x -f '"C","E"i' $indir/having-fields-regex.dkvp +run_mlr cut -r -x -f '"c","e"i' $indir/having-fields-regex.dkvp + +run_mlr --csvlite cut -r -f '^Name$,^Date_[0-9].*$' $indir/date1.csv $indir/date2.csv + +run_mlr having-fields --at-least a,b $indir/abixy +run_mlr having-fields --at-least a,c $indir/abixy +run_mlr having-fields --at-least a,b,i,x,y $indir/abixy +run_mlr having-fields --which-are a,b,i,x $indir/abixy +run_mlr having-fields --which-are a,b,i,x,y $indir/abixy +run_mlr having-fields --which-are a,b,i,y,x $indir/abixy +run_mlr having-fields --which-are a,b,i,x,w $indir/abixy +run_mlr having-fields --which-are a,b,i,x,y,z $indir/abixy +run_mlr having-fields --at-most a,c $indir/abixy +run_mlr having-fields --at-most a,b,i,x,y $indir/abixy +run_mlr having-fields --at-most a,b,i,x,y,z $indir/abixy + +run_mlr having-fields --all-matching '"^[a-z][a-z][a-z]$"' $indir/having-fields-regex.dkvp +run_mlr having-fields --any-matching '"^[a-z][a-z][a-z]$"' $indir/having-fields-regex.dkvp +run_mlr having-fields --none-matching '"^[a-z][a-z][a-z]$"' $indir/having-fields-regex.dkvp +run_mlr having-fields --all-matching '"^[a-z][a-z][a-z]$"i' $indir/having-fields-regex.dkvp +run_mlr having-fields --any-matching '"^[a-z][a-z][a-z]$"i' $indir/having-fields-regex.dkvp +run_mlr having-fields --none-matching '"^[a-z][a-z][a-z]$"i' $indir/having-fields-regex.dkvp + +run_mlr rename b,BEE,x,EKS $indir/abixy +run_mlr rename nonesuch,nonesuch,x,EKS $indir/abixy + +run_mlr label NEW $indir/abixy +run_mlr label a,NEW,c $indir/abixy +run_mlr label 1,2,3,4,5,6,7,8 $indir/abixy +run_mlr label d,x,f $indir/abixy +mlr_expect_fail label d,x,d $indir/abixy + +run_mlr --csvlite rename -r '^Date_[0-9].*$,Date' $indir/date1.csv $indir/date2.csv +run_mlr --csvlite rename -r '(.*)e(.*),\1EEE\2' $indir/date1.csv $indir/date2.csv +run_mlr --csvlite rename -r '"(.*)e(.*)"i,\1EEE\2' $indir/date1.csv $indir/date2.csv +run_mlr --csvlite rename -r -g '"(.*)e(.*)"i,\1EEE\2' $indir/date1.csv $indir/date2.csv +run_mlr --csvlite rename -r '^(.a.e)(_.*)?,AA\1BB\2CC' $indir/date1.csv +run_mlr --csvlite rename -r '"e",EEE' $indir/date1.csv $indir/date2.csv +run_mlr --csvlite rename -r -g '"e",EEE' $indir/date1.csv $indir/date2.csv +run_mlr --csvlite rename -r '"e"i,EEE' $indir/date1.csv $indir/date2.csv +run_mlr --csvlite rename -r -g '"e"i,EEE' $indir/date1.csv $indir/date2.csv + +run_mlr regularize $indir/regularize.dkvp + +run_mlr --opprint bar -f x,y --lo 0 --hi 1 $indir/abixy +run_mlr --opprint bar -f x,y -c c -x x -b b --lo 0.1 --hi 0.9 -w 20 $indir/abixy +run_mlr --opprint bar --auto -f x,y -w 10 $indir/abixy + +run_mlr altkv < 2 > 3' /dev/null +run_mlr filter -v ' 1 > 2 > 3' /dev/null +run_mlr put -v '$x = 1 >= 2 >= 3' /dev/null +run_mlr filter -v ' 1 >= 2 >= 3' /dev/null +run_mlr put -v '$x = 1 < 2 <= 3' /dev/null +run_mlr filter -v ' 1 < 2 <= 3' /dev/null +run_mlr put -v '$x = 1 <= 2 < 3' /dev/null +run_mlr filter -v ' 1 <= 2 < 3' /dev/null + +run_mlr put -v '$x = 1 | 2 | 3' /dev/null +run_mlr filter -v ' 1 | 2 | 3' /dev/null +run_mlr put -v '$x = 1 ^ 2 ^ 3' /dev/null +run_mlr filter -v ' 1 ^ 2 ^ 3' /dev/null +run_mlr put -v '$x = 1 & 2 & 3' /dev/null +run_mlr filter -v ' 1 & 2 & 3' /dev/null +run_mlr put -v '$x = 1 | 2 & 3' /dev/null +run_mlr filter -v ' 1 | 2 & 3' /dev/null +run_mlr put -v '$x = 1 | 2 ^ 3' /dev/null +run_mlr filter -v ' 1 | 2 ^ 3' /dev/null +run_mlr put -v '$x = 1 ^ 2 | 3' /dev/null +run_mlr filter -v ' 1 ^ 2 | 3' /dev/null +run_mlr put -v '$x = 1 ^ 2 & 3' /dev/null +run_mlr filter -v ' 1 ^ 2 & 3' /dev/null +run_mlr put -v '$x = 1 & 2 | 3' /dev/null +run_mlr filter -v ' 1 & 2 | 3' /dev/null +run_mlr put -v '$x = 1 & 2 ^ 3' /dev/null +run_mlr filter -v ' 1 & 2 ^ 3' /dev/null + +run_mlr put -v '$x = 1 << 2 << 3' /dev/null +run_mlr filter -v ' 1 << 2 << 3' /dev/null +run_mlr put -v '$x = 1 >> 2 >> 3' /dev/null +run_mlr filter -v ' 1 >> 2 >> 3' /dev/null +run_mlr put -v '$x = 1 << 2 >> 3' /dev/null +run_mlr filter -v ' 1 << 2 >> 3' /dev/null +run_mlr put -v '$x = 1 >> 2 << 3' /dev/null +run_mlr filter -v ' 1 >> 2 << 3' /dev/null + +run_mlr put -v '$x = 1 + 2 + 3' /dev/null +run_mlr filter -v ' 1 + 2 + 3' /dev/null +run_mlr put -v '$x = 1 - 2 - 3' /dev/null +run_mlr filter -v ' 1 - 2 - 3' /dev/null +run_mlr put -v '$x = 1 + 2 - 3' /dev/null +run_mlr filter -v ' 1 + 2 - 3' /dev/null +run_mlr put -v '$x = 1 - 2 + 3' /dev/null +run_mlr filter -v ' 1 - 2 + 3' /dev/null +run_mlr put -v '$x = 1 . 2 . 3' /dev/null +run_mlr filter -v ' 1 . 2 . 3' /dev/null + +run_mlr put -v '$x = 1 * 2 * 3' /dev/null +run_mlr filter -v ' 1 * 2 * 3' /dev/null +run_mlr put -v '$x = 1 / 2 / 3' /dev/null +run_mlr filter -v ' 1 / 2 / 3' /dev/null +run_mlr put -v '$x = 1 // 2 // 3' /dev/null +run_mlr filter -v ' 1 // 2 // 3' /dev/null +run_mlr put -v '$x = 1 % 2 % 3' /dev/null +run_mlr filter -v ' 1 % 2 % 3' /dev/null +run_mlr put -v '$x = 1 ** 2 ** 3' /dev/null +run_mlr filter -v ' 1 ** 2 ** 3' /dev/null + + +run_mlr put -v '$x = 1 * 2 / 3' /dev/null +run_mlr filter -v ' 1 * 2 / 3' /dev/null +run_mlr put -v '$x = 1 * 2 // 3' /dev/null +run_mlr filter -v ' 1 * 2 // 3' /dev/null +run_mlr put -v '$x = 1 * 2 % 3' /dev/null +run_mlr filter -v ' 1 * 2 % 3' /dev/null +run_mlr put -v '$x = 1 * 2 ** 3' /dev/null +run_mlr filter -v ' 1 * 2 ** 3' /dev/null + +run_mlr put -v '$x = 1 / 2 * 3' /dev/null +run_mlr filter -v ' 1 / 2 * 3' /dev/null +run_mlr put -v '$x = 1 / 2 // 3' /dev/null +run_mlr filter -v ' 1 / 2 // 3' /dev/null +run_mlr put -v '$x = 1 / 2 % 3' /dev/null +run_mlr filter -v ' 1 / 2 % 3' /dev/null +run_mlr put -v '$x = 1 / 2 ** 3' /dev/null +run_mlr filter -v ' 1 / 2 ** 3' /dev/null + +run_mlr put -v '$x = 1 // 2 * 3' /dev/null +run_mlr filter -v ' 1 // 2 * 3' /dev/null +run_mlr put -v '$x = 1 // 2 / 3' /dev/null +run_mlr filter -v ' 1 // 2 / 3' /dev/null +run_mlr put -v '$x = 1 // 2 % 3' /dev/null +run_mlr filter -v ' 1 // 2 % 3' /dev/null +run_mlr put -v '$x = 1 // 2 ** 3' /dev/null +run_mlr filter -v ' 1 // 2 ** 3' /dev/null + +run_mlr put -v '$x = 1 % 2 * 3' /dev/null +run_mlr filter -v ' 1 % 2 * 3' /dev/null +run_mlr put -v '$x = 1 % 2 / 3' /dev/null +run_mlr filter -v ' 1 % 2 / 3' /dev/null +run_mlr put -v '$x = 1 % 2 // 3' /dev/null +run_mlr filter -v ' 1 % 2 // 3' /dev/null +run_mlr put -v '$x = 1 % 2 ** 3' /dev/null +run_mlr filter -v ' 1 % 2 ** 3' /dev/null + +run_mlr put -v '$x = 1 ** 2 * 3' /dev/null +run_mlr filter -v ' 1 ** 2 * 3' /dev/null +run_mlr put -v '$x = 1 ** 2 / 3' /dev/null +run_mlr filter -v ' 1 ** 2 / 3' /dev/null +run_mlr put -v '$x = 1 ** 2 // 3' /dev/null +run_mlr filter -v ' 1 ** 2 // 3' /dev/null +run_mlr put -v '$x = 1 ** 2 % 3' /dev/null +run_mlr filter -v ' 1 ** 2 % 3' /dev/null + +run_mlr put -v '$x = ++1' /dev/null +run_mlr filter -v ' ++1' /dev/null +run_mlr put -v '$x = --1' /dev/null +run_mlr filter -v ' --1' /dev/null +run_mlr put -v '$x = !!1' /dev/null +run_mlr filter -v ' !!1' /dev/null +run_mlr put -v '$x = ~~1' /dev/null +run_mlr filter -v ' ~~1' /dev/null + +run_mlr put -v '$x = 1 ? 2 : 3' /dev/null +run_mlr filter -v ' 1 ? 2 : 3' /dev/null +run_mlr put -v '$x = 1 ? 2 ? 3 : 4 : 5' /dev/null +run_mlr filter -v ' 1 ? 2 ? 3 : 4 : 5' /dev/null +run_mlr put -v '$x = 1 ? 2 : 3 ? 4 : 5' /dev/null +run_mlr filter -v ' 1 ? 2 : 3 ? 4 : 5' /dev/null + +# ---------------------------------------------------------------- +announce DSL OPERATOR PRECEDENCE +# Note: filter -v and put -v print the AST. + +run_mlr put -v '$x = 1 || 2 ^^ 3' /dev/null +run_mlr filter -v ' 1 || 2 ^^ 3' /dev/null +run_mlr put -v '$x = 1 || 2 && 3' /dev/null +run_mlr filter -v ' 1 || 2 && 3' /dev/null + +run_mlr put -v '$x = 1 ^^ 2 || 3' /dev/null +run_mlr filter -v ' 1 ^^ 2 || 3' /dev/null +run_mlr put -v '$x = 1 ^^ 2 && 3' /dev/null +run_mlr filter -v ' 1 ^^ 2 && 3' /dev/null + +run_mlr put -v '$x = 1 && 2 || 3' /dev/null +run_mlr filter -v ' 1 && 2 || 3' /dev/null +run_mlr put -v '$x = 1 && 2 ^^ 3' /dev/null +run_mlr filter -v ' 1 && 2 ^^ 3' /dev/null + +run_mlr put -v '$x = 1 == 2 <= 3' /dev/null +run_mlr filter -v ' 1 == 2 <= 3' /dev/null +run_mlr put -v '$x = 1 <= 2 == 3' /dev/null +run_mlr filter -v ' 1 <= 2 == 3' /dev/null + +run_mlr put -v '$x = 1 <= 2 | 3' /dev/null +run_mlr filter -v ' 1 <= 2 | 3' /dev/null +run_mlr put -v '$x = 1 | 2 <= 3' /dev/null +run_mlr filter -v ' 1 | 2 <= 3' /dev/null + +run_mlr put -v '$x = 1 | 2 ^ 3' /dev/null +run_mlr filter -v ' 1 | 2 ^ 3' /dev/null +run_mlr put -v '$x = 1 ^ 2 | 3' /dev/null +run_mlr filter -v ' 1 ^ 2 | 3' /dev/null + +run_mlr put -v '$x = 1 ^ 2 & 3' /dev/null +run_mlr filter -v ' 1 ^ 2 & 3' /dev/null +run_mlr put -v '$x = 1 & 2 ^ 3' /dev/null +run_mlr filter -v ' 1 & 2 ^ 3' /dev/null + +run_mlr put -v '$x = 1 & 2 << 3' /dev/null +run_mlr filter -v ' 1 & 2 << 3' /dev/null +run_mlr put -v '$x = 1 << 2 & 3' /dev/null +run_mlr filter -v ' 1 << 2 & 3' /dev/null + +run_mlr put -v '$x = 1 + 2 * 3' /dev/null +run_mlr filter -v ' 1 + 2 * 3' /dev/null +run_mlr put -v '$x = 1 * 2 + 3' /dev/null +run_mlr filter -v ' 1 * 2 + 3' /dev/null +run_mlr put -v '$x = 1 + (2 * 3)' /dev/null +run_mlr filter -v ' 1 + (2 * 3)' /dev/null +run_mlr put -v '$x = 1 * (2 + 3)' /dev/null +run_mlr filter -v ' 1 * (2 + 3)' /dev/null +run_mlr put -v '$x = (1 + 2) * 3' /dev/null +run_mlr filter -v ' (1 + 2) * 3' /dev/null +run_mlr put -v '$x = (1 * 2) + 3' /dev/null +run_mlr filter -v ' (1 * 2) + 3' /dev/null + +run_mlr put -v '$x = 1 + 2 ** 3' /dev/null +run_mlr filter -v ' 1 + 2 ** 3' /dev/null +run_mlr put -v '$x = 1 ** 2 + 3' /dev/null +run_mlr filter -v ' 1 ** 2 + 3' /dev/null +run_mlr put -v '$x = 1 + (2 ** 3)' /dev/null +run_mlr filter -v ' 1 + (2 ** 3)' /dev/null +run_mlr put -v '$x = 1 ** (2 + 3)' /dev/null +run_mlr filter -v ' 1 ** (2 + 3)' /dev/null +run_mlr put -v '$x = (1 + 2) ** 3' /dev/null +run_mlr filter -v ' (1 + 2) ** 3' /dev/null +run_mlr put -v '$x = (1 ** 2) + 3' /dev/null +run_mlr filter -v ' (1 ** 2) + 3' /dev/null + +run_mlr put -v '$x = 1 * 2 ** 3' /dev/null +run_mlr filter -v ' 1 * 2 ** 3' /dev/null +run_mlr put -v '$x = 1 ** 2 * 3' /dev/null +run_mlr filter -v ' 1 ** 2 * 3' /dev/null +run_mlr put -v '$x = 1 * (2 ** 3)' /dev/null +run_mlr filter -v ' 1 * (2 ** 3)' /dev/null +run_mlr put -v '$x = 1 ** (2 * 3)' /dev/null +run_mlr filter -v ' 1 ** (2 * 3)' /dev/null +run_mlr put -v '$x = (1 * 2) ** 3' /dev/null +run_mlr filter -v ' (1 * 2) ** 3' /dev/null +run_mlr put -v '$x = (1 ** 2) * 3' /dev/null +run_mlr filter -v ' (1 ** 2) * 3' /dev/null + +run_mlr put -v '$x = -1 + 2 * 3' /dev/null +run_mlr filter -v ' -1 + 2 * 3' /dev/null +run_mlr put -v '$x = -1 * 2 + 3' /dev/null +run_mlr filter -v ' -1 * 2 + 3' /dev/null +run_mlr put -v '$x = 1 + -2 * 3' /dev/null +run_mlr filter -v ' 1 + -2 * 3' /dev/null +run_mlr put -v '$x = 1 * -2 + 3' /dev/null +run_mlr filter -v ' 1 * -2 + 3' /dev/null +run_mlr put -v '$x = 1 + 2 * -3' /dev/null +run_mlr filter -v ' 1 + 2 * -3' /dev/null +run_mlr put -v '$x = 1 * 2 + -3' /dev/null +run_mlr filter -v ' 1 * 2 + -3' /dev/null + +run_mlr put -v '$x = ~1 | 2 & 3' /dev/null +run_mlr filter -v ' ~1 | 2 & 3' /dev/null +run_mlr put -v '$x = ~1 & 2 | 3' /dev/null +run_mlr filter -v ' ~1 & 2 | 3' /dev/null +run_mlr put -v '$x = 1 | ~2 & 3' /dev/null +run_mlr filter -v ' 1 | ~2 & 3' /dev/null +run_mlr put -v '$x = 1 & ~2 | 3' /dev/null +run_mlr filter -v ' 1 & ~2 | 3' /dev/null +run_mlr put -v '$x = 1 | 2 & ~3' /dev/null +run_mlr filter -v ' 1 | 2 & ~3' /dev/null +run_mlr put -v '$x = 1 & 2 | ~3' /dev/null +run_mlr filter -v ' 1 & 2 | ~3' /dev/null + +run_mlr put -v '$x = $a==1 && $b == 1 && $c == 1' /dev/null +run_mlr filter -v ' $a==1 && $b == 1 && $c == 1' /dev/null +run_mlr put -v '$x = $a==1 || $b == 1 && $c == 1' /dev/null +run_mlr filter -v ' $a==1 || $b == 1 && $c == 1' /dev/null +run_mlr put -v '$x = $a==1 || $b == 1 || $c == 1' /dev/null +run_mlr filter -v ' $a==1 || $b == 1 || $c == 1' /dev/null +run_mlr put -v '$x = $a==1 && $b == 1 || $c == 1' /dev/null +run_mlr filter -v ' $a==1 && $b == 1 || $c == 1' /dev/null + +run_mlr put -v '$x = $a==1 ? $b == 2 : $c == 3' /dev/null +run_mlr filter -v ' $a==1 ? $b == 2 : $c == 3' /dev/null + +run_mlr put -v '$x = true' /dev/null +run_mlr filter -v ' true' /dev/null + +run_mlr put -v 'true || 1==0; $x = 3' /dev/null +run_mlr filter -v ' true || 1==0' /dev/null + +run_mlr put -v '1==0 || false; $x = 3' /dev/null +run_mlr filter -v ' 1==0 || false' /dev/null + +run_mlr put -v 'true && false; $x = 3' /dev/null +run_mlr filter -v ' true && false' /dev/null + +run_mlr put -v 'true && false && true; $x = 3' /dev/null +run_mlr filter -v ' true && false && true' /dev/null + +run_mlr put -v '$y += $x + 3' /dev/null +run_mlr put -v '$y += $x * 3' /dev/null + +run_mlr put -v '$y ||= $x' /dev/null +run_mlr put -v '$y ^^= $x' /dev/null +run_mlr put -v '$y &&= $x' /dev/null +run_mlr put -v '$y |= $x' /dev/null +run_mlr put -v '$y ^= $x' /dev/null +run_mlr put -v '$y &= $x' /dev/null +run_mlr put -v '$y <<= $x' /dev/null +run_mlr put -v '$y >>= $x' /dev/null +run_mlr put -v '$y += $x' /dev/null +run_mlr put -v '$y -= $x' /dev/null +run_mlr put -v '$y .= $x' /dev/null +run_mlr put -v '$y *= $x' /dev/null +run_mlr put -v '$y /= $x' /dev/null +run_mlr put -v '$y //= $x' /dev/null +run_mlr put -v '$y %= $x' /dev/null +run_mlr put -v '$y **= $x' /dev/null + +# ---------------------------------------------------------------- +announce DSL COMMENTS + +run_mlr --from $indir/abixy put ' + $s = 1; + #$t = 2; + $u = 3; +' + +run_mlr --from $indir/abixy filter ' + NR == 1 || + #NR == 2 || + NR == 3 +' + +run_mlr --from $indir/abixy put ' + $s = "here is a pound#sign"; # but this is a comment + #$t = 2; + $u = 3; +' + +# ---------------------------------------------------------------- +announce DSL EMPTY STATEMENTS + +run_mlr -n put -v '' +mlr_expect_fail -n filter -v '' + +run_mlr -n put -v 'begin {}' +run_mlr -n put -v 'begin {;}' +run_mlr -n put -v 'begin {;;}' +run_mlr -n put -v 'begin {;;;}' +run_mlr -n put -v 'begin {@x=1}' +run_mlr -n put -v 'begin {@x=1;}' +run_mlr -n put -v 'begin {;@x=1}' +run_mlr -n put -v 'begin {@x=1;@y=2}' +run_mlr -n put -v 'begin {@x=1;;@y=2}' + +run_mlr -n put -v 'true {}' +run_mlr -n put -v 'true {;}' +run_mlr -n put -v 'true {;;}' +run_mlr -n put -v 'true {;;;}' +run_mlr -n put -v 'true {@x=1}' +run_mlr -n put -v 'true {@x=1;}' +run_mlr -n put -v 'true {;@x=1}' +run_mlr -n put -v 'true {@x=1;@y=2}' +run_mlr -n put -v 'true {@x=1;;@y=2}' + +run_mlr -n put -v 'end {}' +run_mlr -n put -v 'end {;}' +run_mlr -n put -v 'end {;;}' +run_mlr -n put -v 'end {;;;}' +run_mlr -n put -v 'end {@x=1}' +run_mlr -n put -v 'end {@x=1;}' +run_mlr -n put -v 'end {;@x=1}' +run_mlr -n put -v 'end {@x=1;@y=2}' +run_mlr -n put -v 'end {@x=1;;@y=2}' + +# ---------------------------------------------------------------- +announce DSL CONTEXT-SPECIFIC VALIDATION + +mention non-top-level begin/end +mlr_expect_fail put -v 'begin{begin{@x=1}}' +mlr_expect_fail put -v 'true{begin{@x=1}}' +mlr_expect_fail put -v 'end{end{@x=1}}' +mlr_expect_fail put -v 'true{end{@x=1}}' + +mention srecs in begin/end +mlr_expect_fail put -v 'begin{$x=1}' +mlr_expect_fail put -v 'begin{@x=$y}' +mlr_expect_fail put -v 'end{$x=1}' +mlr_expect_fail put -v 'end{@x=$y}' +mlr_expect_fail put -v 'begin{@v=$*}' +mlr_expect_fail put -v 'end{$*=@v}' + +mlr_expect_fail put -v 'begin{unset $x}' +mlr_expect_fail put -v 'end{unset $x}' +mlr_expect_fail put -v 'begin{unset $*}' +mlr_expect_fail put -v 'end{unset $*}' + +mention break/continue outside loop +mlr_expect_fail put -v 'break' +mlr_expect_fail put -v 'continue' + +mention oosvars etc. in mlr filter +mlr_expect_fail filter -v 'break' +mlr_expect_fail filter -v 'continue' + +mention expanded filter + +run_mlr --from $indir/abixy filter ' + begin { + @avoid = 3 + } + NR != @avoid +' + +run_mlr --from $indir/abixy filter -x ' + begin { + @avoid = 3 + } + NR != @avoid +' + +run_mlr --from $indir/abixy filter ' + func f(n) { + return n - 1 + } + f(NR) == 5 +' + +run_mlr --from $indir/abixy filter ' + subr s(n) { + print "NR is ".n + } + call s(NR); + false +' + +run_mlr --from $indir/abixy filter ' + int a = 5; + int b = 7; + a <= NR && NR <= b +' + +mlr_expect_fail --from $indir/abixy filter 'filter false' +mlr_expect_fail --from $indir/abixy filter 'filter false; true' + +# ---------------------------------------------------------------- +announce DSL FUNCTIONAL TESTS + +run_mlr filter '$x>.3' $indir/abixy +run_mlr filter '$x>.3;' $indir/abixy +run_mlr filter '$x>0.3' $indir/abixy +run_mlr filter '$x>0.3 && $y>0.3' $indir/abixy +run_mlr filter '$x>0.3 || $y>0.3' $indir/abixy +run_mlr filter 'NR>=4 && NR <= 7' $indir/abixy + +run_mlr filter -x '$x>.3' $indir/abixy +run_mlr filter -x '$x>0.3' $indir/abixy +run_mlr filter -x '$x>0.3 && $y>0.3' $indir/abixy +run_mlr filter -x '$x>0.3 || $y>0.3' $indir/abixy +run_mlr filter -x 'NR>=4 && NR <= 7' $indir/abixy + +run_mlr filter '$nosuchfield>.3' $indir/abixy + +run_mlr put '$x2 = $x**2' $indir/abixy +run_mlr put '$x2 = $x**2;' $indir/abixy +run_mlr put '$z = -0.024*$x+0.13' $indir/abixy +run_mlr put '$c = $a . $b' $indir/abixy +run_mlr put '$ii = $i + $i' $indir/abixy +run_mlr put '$emptytest = $i + $nosuch' $indir/abixy + +run_mlr --opprint put '$nr=NR;$fnr=FNR;$nf=NF;$filenum=FILENUM' $indir/abixy $indir/abixy + +run_mlr --opprint put '$y=madd($x,10,37)' then put '$z=msub($x,10,37)' $indir/modarith.dat +run_mlr --opprint put '$y=mexp($x,35,37)' then put '$z=mmul($x,$y,37)' $indir/modarith.dat + +run_mlr put '$z=min($x, $y)' $indir/minmax.dkvp +run_mlr put '$z=max($x, $y)' $indir/minmax.dkvp + +echo 'x=1,y=2,z=3' | run_mlr put '$o=min()' +echo 'x=1,y=2,z=3' | run_mlr put '$o=max()' +echo 'x=1,y=2,z=3' | run_mlr put '$o=min($x)' +echo 'x=1,y=2,z=3' | run_mlr put '$o=max($x)' +echo 'x=1,y=2,z=3' | run_mlr put '$o=min($x,$y)' +echo 'x=1,y=2,z=3' | run_mlr put '$o=max($x,$y)' +echo 'x=1,y=2,z=3' | run_mlr put '$o=min($x,$y,$z)' +echo 'x=1,y=2,z=3' | run_mlr put '$o=max($x,$y,$z)' + +echo 'x=1,y=b' | run_mlr put '$u=min($x,$y);$v=max($x,$y)' +echo 'x=a,y=2' | run_mlr put '$u=min($x,$y);$v=max($x,$y)' +echo 'x=a,y=b' | run_mlr put '$u=min($x,$y);$v=max($x,$y)' + +run_mlr --icsvlite --oxtab put '${x+y} = ${name.x} + ${name.y}; ${x*y} = ${name.x} * ${name.y}' $indir/braced.csv +run_mlr --icsvlite --oxtab filter '${name.y} < ${z}' $indir/braced.csv + +run_mlr --opprint put '$z = $x < 0.5 ? 0 : 1' $indir/abixy + +run_mlr --csvlite filter 'true && true' $indir/b.csv +run_mlr --csvlite filter 'true && false' $indir/b.csv +run_mlr --csvlite filter 'false && true' $indir/b.csv +run_mlr --csvlite filter 'false && false' $indir/b.csv + +run_mlr --csvlite filter 'true || true' $indir/b.csv +run_mlr --csvlite filter 'true || false' $indir/b.csv +run_mlr --csvlite filter 'false || true' $indir/b.csv +run_mlr --csvlite filter 'false || false' $indir/b.csv + +run_mlr --csvlite filter 'true ^^ true' $indir/b.csv +run_mlr --csvlite filter 'true ^^ false' $indir/b.csv +run_mlr --csvlite filter 'false ^^ true' $indir/b.csv +run_mlr --csvlite filter 'false ^^ false' $indir/b.csv + +# This tests boolean short-circuiting +run_mlr put '$x==2 && $a =~ "....." { $y=4 }' $indir/short-circuit.dkvp + +export X=97 +export Y=98 +run_mlr put '$x = ENV["X"]; $y = ENV[$name]' $indir/env-var.dkvp +export X= +export Y= +run_mlr put '$x = ENV["X"]; $y = ENV[$name]' $indir/env-var.dkvp + +run_mlr -n put 'begin{ENV["HOME"]="foobar"} end{print ENV["HOME"]}' + +echo 'x=hello' | run_mlr put '$y = toupper($x)' +echo 'x=HELLO' | run_mlr put '$y = toupper($x)' +echo 'x=' | run_mlr put '$y = toupper($x)' +echo 'x=hello' | run_mlr put '$y = toupper($z)' + +echo 'x=hello' | run_mlr put '$y = tolower($x)' +echo 'x=HELLO' | run_mlr put '$y = tolower($x)' +echo 'x=' | run_mlr put '$y = tolower($x)' +echo 'x=hello' | run_mlr put '$y = tolower($z)' + +echo 'x=hello' | run_mlr put '$y = capitalize($x)' +echo 'x=HELLO' | run_mlr put '$y = capitalize($x)' +echo 'x=' | run_mlr put '$y = capitalize($x)' +echo 'x=hello' | run_mlr put '$y = capitalize($z)' + +mention LHS value on first record should result in ZYX for process creation +export indir; run_mlr --from $indir/abixy put -q 'ENV["ZYX"]="CBA".NR; print | ENV["indir"]."/env-assign.sh" , "a is " . $a' + +# ---------------------------------------------------------------- +announce POSITIONAL INDEXING + +run_mlr --opprint put '$NEW = $[[3]]' $indir/abixy +run_mlr --opprint put '$NEW = $[[[3]]]' $indir/abixy + +run_mlr --opprint put '$NEW = $[[11]]' $indir/abixy +run_mlr --opprint put '$NEW = $[[[11]]]' $indir/abixy + +run_mlr --opprint put '$[[3]] = "NEW"' $indir/abixy +run_mlr --opprint put '$[[[3]]] = "NEW"' $indir/abixy + +run_mlr --opprint put '$[[11]] = "NEW"' $indir/abixy +run_mlr --opprint put '$[[[11]]] = "NEW"' $indir/abixy + +run_mlr --opprint put '$[[1]] = $[[2]]' $indir/abixy + +run_mlr --opprint put '$a = $[[2]]; unset $["a"]' $indir/abixy +run_mlr --opprint put '$[[1]] = $b; unset $[[1]]' $indir/abixy +run_mlr --opprint put '$[[1]] = $[[2]]; unset $["a"]' $indir/abixy + +# xxx to do -- there is an old bug here with lack of lhmsmv_unset on the typed overlay at unset +run_mlr --opprint put 'unset $c' $indir/abixy +run_mlr --opprint put 'unset $c; $c="new"' $indir/abixy +run_mlr --opprint put '$c=$a.$b; unset $c; $c="new"' $indir/abixy +run_mlr --opprint put '$c=$a.$b; unset $c' $indir/abixy + +# ---------------------------------------------------------------- +announce IS-PREDICATES + +run_mlr --opprint put '$f=is_absent($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_absent($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_absent($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_absent($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_absent(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_absent(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_bool($x>1)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_bool($y>1)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_bool($z>1)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_bool($nosuch>1)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_bool(@nosuch>1)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_bool(@somesuch>1)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_boolean($x>1)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_boolean($y>1)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_boolean($z>1)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_boolean($nosuch>1)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_boolean(@nosuch>1)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_boolean(@somesuch>1)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_empty($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_empty(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_empty_map($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty_map($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty_map($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty_map($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty_map(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty_map($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty_map({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_empty_map({})' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_empty_map(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_float($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_float($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_float($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_float($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_float(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_float($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_float({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_float(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_int($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_int($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_int($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_int($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_int(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_int($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_int({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_int(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_map($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_map($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_map($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_map($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_map(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_map($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_map({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_map({})' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_map(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_nonempty_map($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_nonempty_map($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_nonempty_map($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_nonempty_map($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_nonempty_map(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_nonempty_map($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_nonempty_map({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_nonempty_map({})' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_nonempty_map(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_not_empty($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_empty($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_empty($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_empty($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_empty(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_empty($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_empty({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_not_empty(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_not_map($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_map($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_map($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_map($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_map(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_map($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_map({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_map({})' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_not_map(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_not_null($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_null($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_null($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_null($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_not_null(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_not_null(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_null($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_null($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_null($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_null($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_null(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_null(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_numeric($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_numeric($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_numeric($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_numeric($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_numeric(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_numeric(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_present($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_present($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_present($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_present($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_present(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_present(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=is_string($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_string($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_string($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_string($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=is_string(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=is_string(@somesuch)' $indir/nullvals.dkvp + +# ---------------------------------------------------------------- +announce ASSERTION PASS-THROUGHS + +run_mlr --opprint put '$f=asserting_absent($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_absent(@nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_absent($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_absent($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_absent($z)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '@somesuch=1;$f=asserting_absent(@somesuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put 'foo=asserting_absent($*)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put 'foo=asserting_absent({1:2})' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=asserting_empty($z)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty($nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty(@nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '@somesuch=1;$f=asserting_empty(@somesuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put 'foo=asserting_empty($*)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put 'foo=asserting_empty({1:2})' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=asserting_empty_map({})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty_map($*)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty_map($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty_map($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty_map($z)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty_map($nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty_map(@nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_empty_map({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '@somesuch=1;$f=asserting_empty_map(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=asserting_map($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_map({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_map({})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_map($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_map($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_map($z)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_map($nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_map(@nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '@somesuch=1;$f=asserting_map(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=asserting_nonempty_map($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_nonempty_map({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_nonempty_map($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_nonempty_map($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_nonempty_map($z)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_nonempty_map($nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_nonempty_map(@nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_nonempty_map({})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '@somesuch=1;$f=asserting_nonempty_map(@somesuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$*=asserting_not_empty($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_not_empty($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_not_empty(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_not_empty({1:2})' $indir/nullvals.dkvp +run_mlr --opprint put '$nosuch=asserting_not_empty($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=asserting_not_empty(@somesuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$*=asserting_not_empty($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$*=asserting_not_empty({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_empty($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_empty($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_empty($z)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=asserting_not_map($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_not_map($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_not_map($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_not_map($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_not_map(@nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=asserting_not_map(@somesuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_map($*)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_map({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_map({})' $indir/nullvals.dkvp + +run_mlr --opprint put '@somesuch=1;$f=asserting_not_null(@somesuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$*=asserting_not_null($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$*=asserting_not_null({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_null($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_null($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_null($z)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_null($nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_not_null(@nosuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=asserting_null($z)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_null($nosuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_null(@nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_null($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_null($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '@somesuch=1;$f=asserting_null(@somesuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$*=asserting_null($*)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$*=asserting_null({1:2})' $indir/nullvals.dkvp + +mlr_expect_fail --opprint put '$f=asserting_numeric($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_numeric($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_numeric($z)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$*=asserting_numeric($*)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$*=asserting_numeric({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_numeric($nosuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=asserting_present($x)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_present($y)' $indir/nullvals.dkvp +run_mlr --opprint put '$f=asserting_present($z)' $indir/nullvals.dkvp +run_mlr --opprint put '@somesuch=1;$f=asserting_present(@somesuch)' $indir/nullvals.dkvp +run_mlr --opprint put '$*=asserting_present($*)' $indir/nullvals.dkvp +run_mlr --opprint put '$*=asserting_present({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_present($nosuch)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_present(@nosuch)' $indir/nullvals.dkvp + +run_mlr --opprint put '$f=asserting_string($z)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$*=asserting_string($*)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$*=asserting_string({1:2})' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_string($x)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_string($y)' $indir/nullvals.dkvp +mlr_expect_fail --opprint put '$f=asserting_string($nosuch)' $indir/nullvals.dkvp + +# ---------------------------------------------------------------- +announce DSL NULL/EMPTY HANDLING + +run_mlr put '$z = $s . $s' $indir/null-vs-empty.dkvp +run_mlr put '$z = $s == ""' $indir/null-vs-empty.dkvp +run_mlr put '$z = $s == $s' $indir/null-vs-empty.dkvp +run_mlr put '$z = is_empty($s)' $indir/null-vs-empty.dkvp + +run_mlr put '$z = $x + $y' $indir/null-vs-empty.dkvp +run_mlr put '$z = $y + $y' $indir/null-vs-empty.dkvp +run_mlr put '$z = $x + $nosuch' $indir/null-vs-empty.dkvp +run_mlr put '$t = sub($s, "ell", "X")' $indir/null-vs-empty.dkvp +run_mlr put '$t = sub($s, "ell", "")' $indir/null-vs-empty.dkvp +run_mlr put '$t = sub($nosuch, "ell", "X")' $indir/null-vs-empty.dkvp +run_mlr put '$t = gsub($s, "l", "X")' $indir/null-vs-empty.dkvp +run_mlr put '$t = gsub($s, "l", "")' $indir/null-vs-empty.dkvp +run_mlr put '$t = gsub($nosuch, "l", "X")' $indir/null-vs-empty.dkvp + +mention EMIT +run_mlr put -q '@v=1; @nonesuch {emit @v}' $indir/abixy +run_mlr put -q '@v=1; @nonesuch==true {emit @v}' $indir/abixy +run_mlr put -q '@v=1; $nonesuch {emit @v}' $indir/abixy +run_mlr put -q '@v=1; $nonesuch==true {emit @v}' $indir/abixy + +mention PLUS +run_mlr --ofs tab put 'begin{}; $xy = $x + $y; $sy = @s + $y; $xt = $x + @t; $st = @s + @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x + $y; $sy = @s + $y; $xt = $x + @t; $st = @s + @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x + $y; $sy = @s + $y; $xt = $x + @t; $st = @s + @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x + $y; $sy = @s + $y; $xt = $x + @t; $st = @s + @t' $indir/typeof.dkvp + +mention MINUS +run_mlr --ofs tab put 'begin{}; $xy = $x - $y; $sy = @s - $y; $xt = $x - @t; $st = @s - @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x - $y; $sy = @s - $y; $xt = $x - @t; $st = @s - @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x - $y; $sy = @s - $y; $xt = $x - @t; $st = @s - @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x - $y; $sy = @s - $y; $xt = $x - @t; $st = @s - @t' $indir/typeof.dkvp + +mention TIMES +run_mlr --ofs tab put 'begin{}; $xy = $x * $y; $sy = @s * $y; $xt = $x * @t; $st = @s * @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x * $y; $sy = @s * $y; $xt = $x * @t; $st = @s * @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x * $y; $sy = @s * $y; $xt = $x * @t; $st = @s * @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x * $y; $sy = @s * $y; $xt = $x * @t; $st = @s * @t' $indir/typeof.dkvp + +mention DIVIDE +run_mlr --ofs tab put 'begin{}; $xy = $x / $y; $sy = @s / $y; $xt = $x / @t; $st = @s / @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x / $y; $sy = @s / $y; $xt = $x / @t; $st = @s / @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x / $y; $sy = @s / $y; $xt = $x / @t; $st = @s / @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x / $y; $sy = @s / $y; $xt = $x / @t; $st = @s / @t' $indir/typeof.dkvp + +mention INTEGER DIVIDE +run_mlr --ofs tab put 'begin{}; $xy = $x // $y; $sy = @s // $y; $xt = $x // @t; $st = @s // @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x // $y; $sy = @s // $y; $xt = $x // @t; $st = @s // @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x // $y; $sy = @s // $y; $xt = $x // @t; $st = @s // @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x // $y; $sy = @s // $y; $xt = $x // @t; $st = @s // @t' $indir/typeof.dkvp + +mention REMAINDER +run_mlr --ofs tab put 'begin{}; $xy = $x % $y; $sy = @s % $y; $xt = $x % @t; $st = @s % @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x % $y; $sy = @s % $y; $xt = $x % @t; $st = @s % @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x % $y; $sy = @s % $y; $xt = $x % @t; $st = @s % @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x % $y; $sy = @s % $y; $xt = $x % @t; $st = @s % @t' $indir/typeof.dkvp + +mention BITWISE AND +run_mlr --ofs tab put 'begin{}; $xy = $x & $y; $sy = @s & $y; $xt = $x & @t; $st = @s & @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x & $y; $sy = @s & $y; $xt = $x & @t; $st = @s & @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x & $y; $sy = @s & $y; $xt = $x & @t; $st = @s & @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x & $y; $sy = @s & $y; $xt = $x & @t; $st = @s & @t' $indir/typeof.dkvp + +mention BITWISE OR +run_mlr --ofs tab put 'begin{}; $xy = $x | $y; $sy = @s | $y; $xt = $x | @t; $st = @s | @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x | $y; $sy = @s | $y; $xt = $x | @t; $st = @s | @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x | $y; $sy = @s | $y; $xt = $x | @t; $st = @s | @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x | $y; $sy = @s | $y; $xt = $x | @t; $st = @s | @t' $indir/typeof.dkvp + +mention BITWISE XOR +run_mlr --ofs tab put 'begin{}; $xy = $x ^ $y; $sy = @s ^ $y; $xt = $x ^ @t; $st = @s ^ @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3}; $xy = $x ^ $y; $sy = @s ^ $y; $xt = $x ^ @t; $st = @s ^ @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@t=4}; $xy = $x ^ $y; $sy = @s ^ $y; $xt = $x ^ @t; $st = @s ^ @t' $indir/typeof.dkvp +run_mlr --ofs tab put 'begin{@s=3;@t=4}; $xy = $x ^ $y; $sy = @s ^ $y; $xt = $x ^ @t; $st = @s ^ @t' $indir/typeof.dkvp + +# ---------------------------------------------------------------- +announce DSL TYPE PREDICATES + +run_mlr --from $indir/abixy --opprint put ' for (k, v in $*) { $[k."_type"] = typeof(v) } ' + +run_mlr --from $indir/abixy-het put -q 'for (k,v in $*) {if (is_float(v)) {@float[NR][k] = v}} end{ emit @float, "NR", "k" }' +run_mlr --from $indir/abixy-het put -q 'for (k,v in $*) {if (is_int(v)) {@int[NR][k] = v}} end{ emit @int, "NR", "k" }' +run_mlr --from $indir/abixy-het put -q 'for (k,v in $*) {if (is_numeric(v)) {@numeric[NR][k] = v}} end{ emit @numeric, "NR", "k" }' +run_mlr --from $indir/abixy-het put -q 'for (k,v in $*) {if (is_string(v)) {@string[NR][k] = v}} end{ emit @string, "NR", "k" }' +run_mlr --from $indir/abixy-het put -q 'for (k,v in $*) {if (is_bool(v)) {@bool[NR][k] = v}} end{ emit @bool, "NR", "k" }' +run_mlr --from $indir/abixy-het put -q 'for (k,v in $*) {if (is_bool(NR==2)) {@bool[NR][k] = "NR==2"}} end{ emit @bool, "NR", "k" }' + +# ---------------------------------------------------------------- +announce DSL TYPE-INFERENCE + +run_mlr --xtab put '$y = $pi1 + $pi2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y = $pi1 + $pi2' $indir/mixed-types.xtab +run_mlr --xtab put -S '$y = $pi1 . $pi2' $indir/mixed-types.xtab +run_mlr --xtab filter '999 != $pi1 + $pi2' $indir/mixed-types.xtab +run_mlr --xtab filter -F '999 != $pi1 + $pi2' $indir/mixed-types.xtab +run_mlr --xtab filter -S '"999" != $pi1 . $pi2' $indir/mixed-types.xtab + +echo a=1,b=2.0 | run_mlr --oxtab put '$s = $a; $t = $b; $u = 3; $v = 4.0; $ts=typeof($s); $tt=typeof($t); $tu=typeof($u); $tv=typeof($v);' +echo a=1,b=2.0 | run_mlr --oxtab put -F '$s = $a; $t = $b; $u = 3; $v = 4.0; $ts=typeof($s); $tt=typeof($t); $tu=typeof($u); $tv=typeof($v);' +echo a=1,b=2.0 | run_mlr --oxtab put -S '$s = $a; $t = $b; $u = 3; $v = 4.0; $ts=typeof($s); $tt=typeof($t); $tu=typeof($u); $tv=typeof($v);' + +run_mlr --xtab put '$y=abs($pf1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=abs($nf1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=abs($zf)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=abs($pi1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=abs($ni1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=abs($zi)' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$y=abs($pf1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=abs($nf1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=abs($zf)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=abs($pi1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=abs($ni1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=abs($zi)' $indir/mixed-types.xtab + +run_mlr --xtab put '$y=ceil($pf1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=ceil($nf1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=ceil($zf)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=ceil($pi1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=ceil($ni1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=ceil($zi)' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$y=floor($pf1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=floor($nf1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=floor($zf)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=floor($pi1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=floor($ni1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=floor($zi)' $indir/mixed-types.xtab + +run_mlr --xtab put '$y=round($pf1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=round($nf1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=round($zf)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=round($pi1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=round($ni1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=round($zi)' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$y=round($pf1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=round($nf1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=round($zf)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=round($pi1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=round($ni1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=round($zi)' $indir/mixed-types.xtab + +run_mlr --xtab put '$y=sgn($pf1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=sgn($nf1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=sgn($zf)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=sgn($pi1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=sgn($ni1)' $indir/mixed-types.xtab +run_mlr --xtab put '$y=sgn($zi)' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$y=sgn($pf1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=sgn($nf1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=sgn($zf)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=sgn($pi1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=sgn($ni1)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$y=sgn($zi)' $indir/mixed-types.xtab + +run_mlr --xtab put '$min=min($pf1,$pf2);$max=max($pf1,$pf2)' $indir/mixed-types.xtab +run_mlr --xtab put '$min=min($pf1,$pi2);$max=max($pf1,$pi2)' $indir/mixed-types.xtab +run_mlr --xtab put '$min=min($pi1,$pf2);$max=max($pi1,$pf2)' $indir/mixed-types.xtab +run_mlr --xtab put '$min=min($pi1,$pi2);$max=max($pi1,$pi2)' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$min=min($pf1,$pf2);$max=max($pf1,$pf2)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$min=min($pf1,$pi2);$max=max($pf1,$pi2)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$min=min($pi1,$pf2);$max=max($pi1,$pf2)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$min=min($pi1,$pi2);$max=max($pi1,$pi2)' $indir/mixed-types.xtab + +run_mlr --xtab put '$min=min($pf1,$pf2);$max=max($pf1,$pf2)' $indir/mixed-types.xtab +run_mlr --xtab put '$min=min($pf1,$pi2);$max=max($pf1,$pi2)' $indir/mixed-types.xtab +run_mlr --xtab put '$min=min($pi1,$pf2);$max=max($pi1,$pf2)' $indir/mixed-types.xtab +run_mlr --xtab put '$min=min($pi1,$pi2);$max=max($pi1,$pi2)' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$min=min($pf1,$pf2);$max=max($pf1,$pf2)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$min=min($pf1,$pi2);$max=max($pf1,$pi2)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$min=min($pi1,$pf2);$max=max($pi1,$pf2)' $indir/mixed-types.xtab +run_mlr --xtab put -F '$min=min($pi1,$pi2);$max=max($pi1,$pi2)' $indir/mixed-types.xtab + +run_mlr --xtab put '$sum=$pf1+$pf2;$diff=$pf1-$pf2' $indir/mixed-types.xtab +run_mlr --xtab put '$sum=$pf1+$pi2;$diff=$pf1-$pi2' $indir/mixed-types.xtab +run_mlr --xtab put '$sum=$pi1+$pf2;$diff=$pi1-$pf2' $indir/mixed-types.xtab +run_mlr --xtab put '$sum=$pi1+$pi2;$diff=$pi1-$pi2' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$sum=$pf1+$pf2;$diff=$pf1-$pf2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$sum=$pf1+$pi2;$diff=$pf1-$pi2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$sum=$pi1+$pf2;$diff=$pi1-$pf2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$sum=$pi1+$pi2;$diff=$pi1-$pi2' $indir/mixed-types.xtab + +run_mlr --xtab put '$prod=$pf1*$pf2;$quot=$pf1/$pf2' $indir/mixed-types.xtab +run_mlr --xtab put '$prod=$pf1*$pi2;$quot=$pf1/$pi2' $indir/mixed-types.xtab +run_mlr --xtab put '$prod=$pi1*$pf2;$quot=$pi1/$pf2' $indir/mixed-types.xtab +run_mlr --xtab put '$prod=$pi1*$pi2;$quot=$pi1/$pi2' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$prod=$pf1*$pf2;$quot=$pf1/$pf2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$prod=$pf1*$pi2;$quot=$pf1/$pi2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$prod=$pi1*$pf2;$quot=$pi1/$pf2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$prod=$pi1*$pi2;$quot=$pi1/$pi2' $indir/mixed-types.xtab + +run_mlr --xtab put '$iquot=$pf1//$pf2;$mod=$pf1%$pf2' $indir/mixed-types.xtab +run_mlr --xtab put '$iquot=$pf1//$pi2;$mod=$pf1%$pi2' $indir/mixed-types.xtab +run_mlr --xtab put '$iquot=$pi1//$pf2;$mod=$pi1%$pf2' $indir/mixed-types.xtab +run_mlr --xtab put '$iquot=$pi1//$pi2;$mod=$pi1%$pi2' $indir/mixed-types.xtab + +run_mlr --xtab put -F '$iquot=$pf1//$pf2;$mod=$pf1%$pf2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$iquot=$pf1//$pi2;$mod=$pf1%$pi2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$iquot=$pi1//$pf2;$mod=$pi1%$pf2' $indir/mixed-types.xtab +run_mlr --xtab put -F '$iquot=$pi1//$pi2;$mod=$pi1%$pi2' $indir/mixed-types.xtab + +run_mlr --xtab put '$a=roundm($pf1,10.0);$b=roundm($pf1,-10.0)' $indir/mixed-types.xtab +run_mlr --xtab put '$a=roundm($pf1,10) ;$b=roundm($pf1,-10) ' $indir/mixed-types.xtab +run_mlr --xtab put '$a=roundm($pi1,10.0);$b=roundm($pi1,-10.0)' $indir/mixed-types.xtab +run_mlr --xtab put '$a=roundm($pi1,10) ;$b=roundm($pi1,-10) ' $indir/mixed-types.xtab + +echo 'x=3,y=4' | run_mlr --oxtab put '$z=$x+$y; $a=3+4; $b="3"."4"; $c="3"+4' + +# ---------------------------------------------------------------- +announce DSL SCIENTIFIC NOTATION IN FIELD VALUES + +run_mlr --opprint put '$y=$x+1' $indir/scinot.dkvp + +# ---------------------------------------------------------------- +announce DSL SCIENTIFIC NOTATION IN EXPRESSION LITERALS + +run_mlr --opprint put '$y = 123 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 123. + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 123.4 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = .234 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 1e2 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 1e-2 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 1.2e3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 1.e3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 1.2e-3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 1.e-3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = .2e3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = .2e-3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = 1.e-3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -123 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -123. + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -123.4 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -.234 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -1e2 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -1e-2 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -1.2e3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -1.e3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -1.2e-3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -1.e-3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -.2e3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -.2e-3 + $i' $indir/scinot1.dkvp +run_mlr --opprint put '$y = -1.e-3 + $i' $indir/scinot1.dkvp + +# ---------------------------------------------------------------- +announce DSL FROM-FILE FEATURE + +run_mlr put -f $indir/put-example.dsl $indir/abixy +run_mlr filter -f $indir/filter-example.dsl $indir/abixy + +run_mlr --from $indir/abixy put -f $indir/put-example.dsl +run_mlr --from $indir/abixy filter -f $indir/filter-example.dsl + +run_mlr --from $indir/abixy --from $indir/abixy-het put -f $indir/put-example.dsl +run_mlr --from $indir/abixy --from $indir/abixy-het filter -f $indir/filter-example.dsl + +# ---------------------------------------------------------------- +announce DSL MULTI-PART SCRIPTS + +run_mlr --opprint --from $indir/abixy put -f $indir/put-script-piece-1 +run_mlr --opprint --from $indir/abixy put -f $indir/put-script-piece-1 -f $indir/put-script-piece-2 +run_mlr --opprint --from $indir/abixy put -f $indir/put-script-piece-1 -f $indir/put-script-piece-2 -f $indir/put-script-piece-3 + +run_mlr --opprint --from $indir/abixy put -e '$xy = $x**2 + $y**2' +run_mlr --opprint --from $indir/abixy filter -e 'NR == 7' + +run_mlr --opprint --from $indir/abixy put -e 'print "PRE";' -f $indir/put-script-piece-1 -f $indir/put-script-piece-2 -f $indir/put-script-piece-3 -e 'print "POST"' + +run_mlr --opprint --from $indir/abixy filter -f $indir/filter-script-piece-1 +run_mlr --opprint --from $indir/abixy filter -f $indir/filter-script-piece-1 -f $indir/filter-script-piece-2 + +# ---------------------------------------------------------------- +announce UTF-8 STRLEN + +run_mlr --inidx --ifs comma --oxtab put '$s1=strlen($1);$s2=strlen($2);$s3=strlen($3);$s4=strlen($4)' $indir/utf8-align.dkvp + +# ---------------------------------------------------------------- +announce STATS1/STEP INT/FLOAT + +run_mlr --opprint step -a rsum,delta,counter -f x,y,z $indir/int-float.dkvp +run_mlr --opprint step -F -a rsum,delta,counter -f x,y,z $indir/int-float.dkvp +run_mlr --oxtab stats1 -a min,max,sum,count -f x,y,z $indir/int-float.dkvp +run_mlr --oxtab stats1 -F -a min,max,sum,count -f x,y,z $indir/int-float.dkvp + +# ---------------------------------------------------------------- +announce DSL PYTHONIC DIVISION + +run_mlr --xtab put '$quot=$pf1/10.0;$iquot=$pf1//10.0;$mod=$pf1%10.0' $indir/mixed-types.xtab +run_mlr --xtab put '$quot=$pi1/10 ;$iquot=$pi1//10 ;$mod=$pi1%10 ' $indir/mixed-types.xtab +run_mlr --xtab put '$quot=$nf1/10.0;$iquot=$nf1//10.0;$mod=$nf1%10.0' $indir/mixed-types.xtab +run_mlr --xtab put '$quot=$ni1/10 ;$iquot=$ni1//10 ;$mod=$ni1%10 ' $indir/mixed-types.xtab +run_mlr --xtab put -F '$quot=$pf1/10.0;$iquot=$pf1//10.0;$mod=$pf1%10.0' $indir/mixed-types.xtab +run_mlr --xtab put -F '$quot=$pi1/10 ;$iquot=$pi1//10 ;$mod=$pi1%10 ' $indir/mixed-types.xtab +run_mlr --xtab put -F '$quot=$nf1/10.0;$iquot=$nf1//10.0;$mod=$nf1%10.0' $indir/mixed-types.xtab +run_mlr --xtab put -F '$quot=$ni1/10 ;$iquot=$ni1//10 ;$mod=$ni1%10 ' $indir/mixed-types.xtab + +run_mlr --xtab put '$quot=$pf1/-10.0;$iquot=$pf1//-10.0;$mod=$pf1%-10.0' $indir/mixed-types.xtab +run_mlr --xtab put '$quot=$pi1/-10 ;$iquot=$pi1//-10 ;$mod=$pi1%-10 ' $indir/mixed-types.xtab +run_mlr --xtab put '$quot=$nf1/-10.0;$iquot=$nf1//-10.0;$mod=$nf1%-10.0' $indir/mixed-types.xtab +run_mlr --xtab put '$quot=$ni1/-10 ;$iquot=$ni1//-10 ;$mod=$ni1%-10 ' $indir/mixed-types.xtab +run_mlr --xtab put -F '$quot=$pf1/-10.0;$iquot=$pf1//-10.0;$mod=$pf1%-10.0' $indir/mixed-types.xtab +run_mlr --xtab put -F '$quot=$pi1/-10 ;$iquot=$pi1//-10 ;$mod=$pi1%-10 ' $indir/mixed-types.xtab +run_mlr --xtab put -F '$quot=$nf1/-10.0;$iquot=$nf1//-10.0;$mod=$nf1%-10.0' $indir/mixed-types.xtab +run_mlr --xtab put -F '$quot=$ni1/-10 ;$iquot=$ni1//-10 ;$mod=$ni1%-10 ' $indir/mixed-types.xtab + +# ---------------------------------------------------------------- +announce DSL REGEX MATCHING + +run_mlr filter -v '$x =~ "bcd"' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^bcd"' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^abc"' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^abc$"' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^a.*d$"' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^a.*"."d$"' $indir/regex.dkvp +run_mlr filter -v '$y =~ "\".."' $indir/regex.dkvp + +run_mlr filter -v '$x =~ "bcd"i' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^bcd"i' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^abc"i' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^abc$"i' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^a.*d$"i' $indir/regex.dkvp +run_mlr filter -v '$x =~ "^a.*"."d$"i' $indir/regex.dkvp + +run_mlr --csv filter '$text =~ "."' $indir/dot-match.csv +run_mlr --csv filter '$text =~ "\."' $indir/dot-match.csv + +# ---------------------------------------------------------------- +announce DSL TYPED OVERLAY + +run_mlr put '$y = string($x); $z=$y.$y' $indir/int-float.dkvp +run_mlr put '$z=string($x).string($x)' $indir/int-float.dkvp +run_mlr put '$y = string($x)' then put '$z=$y.$y' $indir/int-float.dkvp +run_mlr put '$a="hello"' then put '$b=$a." world";$z=$x+$y;$c=$b;$a=sub($b,"hello","farewell")' $indir/int-float.dkvp + +# ---------------------------------------------------------------- +announce DSL REGEX CAPTURES + +# cat reg_test/input/capture.dkvp +# FIELD=ABC123 +# FIELD=ABC..123 +# FIELD=..ABC..123.. +# FIELD=none of the above + +run_mlr --opprint put '$FIELD =~ "([A-Z]+)([0-9]+)"; $F1="\1"; $F2="\2"; $F3="\3"' $indir/capture.dkvp +run_mlr --opprint put '$FIELD =~ "([A-Z]+)[^0-9]*([0-9]+)"; $F1="\1"; $F2="\2"; $F3="\3"' $indir/capture.dkvp + +run_mlr --opprint put '$FIELD =~ "([A-Z]+)([0-9]+)"' then put '$F1="\1"; $F2="\2"; $F3="\3"' $indir/capture.dkvp +run_mlr --opprint put '$FIELD =~ "([A-Z]+)[^0-9]*([0-9]+)"' then put '$F1="\1"; $F2="\2"; $F3="\3"' $indir/capture.dkvp + +# cat reg_test/input/capture-lengths.dkvp +# FIELD= +# FIELD=a +# FIELD=ab +# FIELD=abc +# FIELD=abcd +# FIELD=abcde +# FIELD=abcdef +# FIELD=abcdefg +# FIELD=abcdefgh +# FIELD=abcdefghi +# FIELD=abcdefghij +# FIELD=abcdefghijk +# FIELD=abcdefghijkl + +run_mlr --opprint put ' $FIELD =~ "....."; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put ' $FIELD =~ "....." {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "....."; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp + +run_mlr --opprint put '$FIELD =~ "(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp + +run_mlr --opprint put '$FIELD =~ "(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp +run_mlr --opprint put '$FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)" {$F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"}' $indir/capture-lengths.dkvp + +run_mlr --opprint put 'filter $FIELD =~ "(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp +run_mlr --opprint put 'filter $FIELD =~ "(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)"; $F0="\0";$F1="\1";$F2="\2";$F3="\3";$F4="\4";$F5="\5";$F6="\6";$F7="\7";$F8="\8";$F9="\9"' $indir/capture-lengths.dkvp + +echo 'abcdefg' | run_mlr --inidx --odkvp put '$1 =~ "ab(.)d(..)g" { $c1 = "\1"; $c2 = "\2"}' +echo 'abcdefg' | run_mlr --inidx --odkvp put '$1 =~ "ab(.)?d(..)g" { $c1 = "\1"; $c2 = "\2"}' +echo 'abXdefg' | run_mlr --inidx --odkvp put '$1 =~ "ab(c)?d(..)g" { $c1 = "\1"; $c2 = "\2"}' +echo 'abdefg' | run_mlr --inidx --odkvp put '$1 =~ "ab(c)?d(..)g" { $c1 = "\1"; $c2 = "\2"}' + +# ---------------------------------------------------------------- +announce DSL FILTER/PATTERN-ACTION + +run_mlr --opprint put ' $x > 0.5; $z = "flag"' $indir/abixy +run_mlr --opprint put ' !($x > 0.5); $z = "flag"' $indir/abixy +run_mlr --opprint put 'filter $x > 0.5; $z = "flag"' $indir/abixy +run_mlr --opprint put ' $x > 0.5 {$z = "flag"}' $indir/abixy +run_mlr --opprint put 'filter !($x > 0.5); $z = "flag"' $indir/abixy +run_mlr --opprint put ' !($x > 0.5) {$z = "flag"}' $indir/abixy + +# ---------------------------------------------------------------- +announce DSL GMT DATE/TIME FUNCTIONS + +run_mlr --csvlite put '$gmt = sec2gmt($sec)' $indir/sec2gmt +run_mlr --csvlite put '$gmt = sec2gmt($sec,1)' $indir/sec2gmt +run_mlr --csvlite put '$gmt = sec2gmt($sec,3)' $indir/sec2gmt +run_mlr --csvlite put '$gmt = sec2gmt($sec,6)' $indir/sec2gmt +run_mlr --csvlite put '$sec = gmt2sec($gmt)' $indir/gmt2sec +run_mlr --csvlite put '$gmtdate = sec2gmtdate($sec)' $indir/sec2gmt + +run_mlr --icsv --opprint put '$gmt = strftime($sec, "%Y-%m-%dT%H:%M:%SZ")' $indir/sec2gmt +run_mlr --icsv --opprint put '$gmt = strftime($sec, "%Y-%m-%dT%H:%M:%1SZ")' $indir/sec2gmt +run_mlr --icsv --opprint put '$gmt = strftime($sec, "%Y-%m-%dT%H:%M:%3SZ")' $indir/sec2gmt +run_mlr --icsv --opprint put '$gmt = strftime($sec, "%Y-%m-%dT%H:%M:%6SZ")' $indir/sec2gmt +run_mlr --icsv --opprint put '$sec = strptime($gmt, "%Y-%m-%dT%H:%M:%SZ")' $indir/gmt2sec + +run_mlr --csvlite sec2gmt sec $indir/sec2gmt + +run_mlr --opprint put '$hms=sec2hms($sec); $resec=hms2sec($hms); $diff=$resec-$sec' $indir/sec2xhms +run_mlr --opprint put '$hms=fsec2hms($sec); $resec=hms2fsec($hms); $diff=$resec-$sec' $indir/fsec2xhms +run_mlr --opprint put '$hms=sec2dhms($sec); $resec=dhms2sec($hms); $diff=$resec-$sec' $indir/sec2xhms +run_mlr --opprint put '$hms=fsec2dhms($sec); $resec=dhms2fsec($hms); $diff=$resec-$sec' $indir/fsec2xhms + +run_mlr --csvlite sec2gmt sec $indir/sec2gmt +run_mlr --csvlite sec2gmtdate sec $indir/sec2gmt + +# ---------------------------------------------------------------- +announce DSL LOCAL DATE/TIME FUNCTIONS + +# See also the system date command: +# export TZ=America/Sao_Paulo; date -j -f "%Y-%m-%d %H:%M:%S %Z" "2017-02-19 00:30:00" +%s +# export TZ=America/Sao_Paulo; date -r 86400 +"%Y-%m-%d %H:%M:%S %Z" + +export TZ=America/Sao_Paulo +echo TZ=$TZ +run_mlr --opprint put '$b=localtime2sec($a); $c=sec2localtime($b); $d=sec2localdate($b)' <<_EOF +a=2017-02-18 23:00:00 +a=2017-02-18 23:59:59 +a=2017-02-19 00:00:00 +a=2017-02-19 00:30:00 +a=2017-02-19 01:00:00 +a=2017-10-14 23:00:00 +a=2017-10-14 23:59:59 +a=2017-10-15 00:00:00 +a=2017-10-15 00:30:00 +a=2017-10-15 01:00:00 +_EOF +export TZ= + +export TZ=America/Sao_Paulo +echo TZ=$TZ +run_mlr --opprint put '$b=localtime2sec($a); $c=sec2localtime($b); $d=sec2localdate($b)' <<_EOF +a=2017-02-14 00:00:00 +a=2017-02-15 00:00:00 +a=2017-02-16 00:00:00 +a=2017-02-17 00:00:00 +a=2017-02-18 00:00:00 +a=2017-02-19 00:00:00 +a=2017-02-20 00:00:00 +a=2017-10-12 00:00:00 +a=2017-10-13 00:00:00 +a=2017-10-14 00:00:00 +a=2017-10-15 00:00:00 +a=2017-10-16 00:00:00 +a=2017-10-17 00:00:00 +a=2017-10-18 00:00:00 +a=2017-10-19 00:00:00 +_EOF +export TZ= + +export TZ=America/Sao_Paulo +echo TZ=$TZ +run_mlr --opprint put '$b=strptime_local($a, "%Y-%m-%d %H:%M:%S"); $c=strftime_local($b, "%Y-%m-%d %H:%M:%S")' <<_EOF +a=2017-02-18 23:00:00 +a=2017-02-18 23:59:59 +a=2017-02-19 00:00:00 +a=2017-02-19 00:30:00 +a=2017-02-19 01:00:00 +a=2017-10-14 23:00:00 +a=2017-10-14 23:59:59 +a=2017-10-15 00:00:00 +a=2017-10-15 00:30:00 +a=2017-10-15 01:00:00 +_EOF +export TZ= + +export TZ=America/Sao_Paulo +echo TZ=$TZ +run_mlr --opprint put '$b=strptime_local($a, "%Y-%m-%d %H:%M:%S"); $c=strftime_local($b, "%Y-%m-%d %H:%M:%S")' <<_EOF +a=2017-02-18 23:00:00 +a=2017-02-18 23:59:59 +a=2017-02-19 00:00:00 +a=2017-02-19 00:30:00 +a=2017-02-19 01:00:00 +a=2017-10-14 23:00:00 +a=2017-10-14 23:59:59 +a=2017-10-15 00:00:00 +a=2017-10-15 00:30:00 +a=2017-10-15 01:00:00 +_EOF +export TZ= + +# ---------------------------------------------------------------- +announce DSL SUB/GSUB/REGEX_EXTRACT + +run_mlr --opprint put '$y = sub($x, "e.*l", "")' $indir/sub.dat +run_mlr --opprint put '$y = sub($x, "e.*l"i, "")' $indir/sub.dat +run_mlr --opprint put '$y = sub($x, "e.*"."l", "")' $indir/sub.dat +run_mlr --opprint put '$y = sub($x, "e.*l", "y123y")' $indir/sub.dat +run_mlr --opprint put '$y = sub($x, "e.*l"i, "y123y")' $indir/sub.dat +run_mlr --opprint put '$y = sub($x, "e.*"."l", "y123y")' $indir/sub.dat +run_mlr --opprint put '$y = sub($x, "([hg])e.*l(.)", "y\1y123\2y")' $indir/sub.dat +run_mlr --opprint put '$y = sub($x, "([hg])e.*l.", "y\1y123\2y")' $indir/sub.dat +run_mlr --opprint put '$y = sub($x, "([hg])e.*l(.)", "y\1y123.y")' $indir/sub.dat + +run_mlr --opprint put '$y = sub($x, "a", "aa")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "a", "aa")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "A", "Aa")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "a"i, "Aa")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "A"i, "Aa")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "a(.)", "aa\1\1\1")' $indir/gsub.dat + +run_mlr --opprint put '$y = sub($x, "a", "")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "a", "")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "A", "")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "a"i, "")' $indir/gsub.dat +run_mlr --opprint put '$y = gsub($x, "A"i, "")' $indir/gsub.dat + +run_mlr --oxtab cat $indir/subtab.dkvp +run_mlr --oxtab put -f $indir/subtab1.mlr $indir/subtab.dkvp +run_mlr --oxtab put -f $indir/subtab2.mlr $indir/subtab.dkvp +run_mlr --oxtab put -f $indir/subtab3.mlr $indir/subtab.dkvp +run_mlr --oxtab put -f $indir/subtab4.mlr $indir/subtab.dkvp + +run_mlr --opprint put '$y = ssub($x, "HE", "")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "HE", "HE")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "HE", "12345")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "LL", "1")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "LL", "12")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "LL", "12345")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "LLO", "")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "LLO", "12")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "LLO", "123")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "LLO", "123456")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "HELLO", "")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "HELLO", "1234")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "HELLO", "12345")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "HELLO", "1234678")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "nonesuch", "")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "nonesuch", "1234")' $indir/sub.dat +run_mlr --opprint put '$y = ssub($x, "nonesuch", "1234567890")' $indir/sub.dat + +run_mlr --oxtab put '$y = regextract($x, "[A-Z]+")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[A-Z]*")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[a-z]+")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[a-z]*")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[0-9]+")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[0-9]*")' $indir/sub.dat + +run_mlr --oxtab put '$y = regextract($x, "[ef]+")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[ef]*")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[hi]+")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[hi]*")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[op]+")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract($x, "[op]*")' $indir/sub.dat + +run_mlr --oxtab put '$y = regextract_or_else($x, "[A-Z]+", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[A-Z]*", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[a-z]+", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[a-z]*", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[0-9]+", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[0-9]*", "DEFAULT")' $indir/sub.dat + +run_mlr --oxtab put '$y = regextract_or_else($x, "[ef]+", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[ef]*", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[hi]+", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[hi]*", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[op]+", "DEFAULT")' $indir/sub.dat +run_mlr --oxtab put '$y = regextract_or_else($x, "[op]*", "DEFAULT")' $indir/sub.dat + +echo 'abcdefg' | run_mlr --nidx put '$1 = sub($1, "ab(.)d(..)g", "ab<<\1>>d<<\2>>g")' +echo 'abcdefg' | run_mlr --nidx put '$1 = sub($1, "ab(c)?d(..)g", "ab<<\1>>d<<\2>>g")' +echo 'abXdefg' | run_mlr --nidx put '$1 = sub($1, "ab(c)?d(..)g", "ab<<\1>>d<<\2>>g")' +echo 'abdefg' | run_mlr --nidx put '$1 = sub($1, "ab(c)?d(..)g", "ab<<\1>>d<<\2>>g")' + +# ---------------------------------------------------------------- +announce DSL SUBSTR + +run_mlr put -q ' + int n = strlen($x); + print "input= <<".$x.">>"; + for (i = -n-2; i <= n+2; i += 1) { + for (j = -n-2; j <= n+2; j += 1) { + print "i: ".fmtnum(i,"%3lld") + ." j:".fmtnum(j,"%3lld") + ." substr(".$x.",".fmtnum(i,"%3lld").",".fmtnum(j,"%3lld")."): <<" + .substr($x, i, j) .">>"; + } + print; +} +' << EOF +x= +x=o +x=o1 +x=o123456789 +EOF + +# ---------------------------------------------------------------- +announce DSL SYSTEM + +run_mlr put '$counter = system("echo X".NR."Y")' $indir/abixy + +# ---------------------------------------------------------------- +announce DSL OOSVARS + +run_mlr --opprint put -v 'begin{@ox=0}; $d=$x-@ox; @ox=$x' $indir/abixy +run_mlr --opprint put -v 'begin{@ox="no"}; $d=@ox == "no" ? 1.0 : $x/@ox; @ox=$x' then step -a ratio -f x $indir/abixy +run_mlr --opprint put -v '$d=$x/@ox; @ox=$x' then step -a ratio -f x $indir/abixy +run_mlr --opprint put -v 'begin{@ox="no"}; $d=@ox == "no" ? 1.0 : $x/@ox; @ox=$x' then step -a ratio -f x $indir/abixy +run_mlr --opprint put -v 'begin{@rsum = 0}; @rsum = @rsum + $x; $rsum = @rsum' $indir/abixy +run_mlr --opprint put -v 'begin{@a=0; @b=0; @c=0}; $za=@a; $zb=@b; $zc=@c; $d=@a+@b+@c; @a=@b; @b=@c; @c=$i' $indir/abixy +run_mlr --opprint put -v 'begin {@a=0; @b=0; @c=0}; $za=@a; $zb=@b; $zc=@c; $d=@a+@b+@c; @a=@b; @b=@c; @c=$i' $indir/abixy +run_mlr --opprint put -v 'begin{@ox=0}; $d=$x-@ox; @ox=$x' $indir/abixy + +run_mlr put -v '@a=$a; @b=$b; @c=$x; end {emitf @a; emitf @b; emitf @c}' $indir/abixy +run_mlr put -v '@a=$a; @b=$b; @c=$x; end{emitf @a, @b, @c}' $indir/abixy + +run_mlr --opprint put -v 'begin {@count=0; @sum=0.0}; @count=@count+1; @sum=@sum+$x; end{@mean=@sum/@count; emitf @mean}' $indir/abixy +run_mlr --opprint put -v 'end{@mean=@sum/@count; emitf @mean}; begin {@count=0; @sum=0.0}; @count=@count+1; @sum=@sum+$x' $indir/abixy + +run_mlr put -v 'begin{ @a = @b[1] }; $c = @d; @e[$i][2+$j][3] = $4; end{@f[@g[5][@h]] = 6}' /dev/null + +run_mlr put '@y[$a]=$y; end{dump}' $indir/abixy + +run_mlr stats1 -a sum -f y -g a $indir/abixy +run_mlr put '@y_sum[$a] = $y; end{dump}' $indir/abixy + + +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @s ; dump}' $indir/unset1.dkvp + +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @t ; dump}' $indir/unset1.dkvp +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @t[1] ; dump}' $indir/unset1.dkvp + +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u ; dump}' $indir/unset1.dkvp +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u[1] ; dump}' $indir/unset1.dkvp +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u[1][2]; dump}' $indir/unset1.dkvp + + +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @s ; dump}' $indir/unset4.dkvp + +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @t ; dump}' $indir/unset4.dkvp +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @t[1] ; dump}' $indir/unset4.dkvp + +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u ; dump}' $indir/unset4.dkvp +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u[1] ; dump}' $indir/unset4.dkvp +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @u[1][2]; dump}' $indir/unset4.dkvp + +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset all; dump}' $indir/unset4.dkvp +run_mlr put -q '@s=$x; @t[$a]=$x; @u[$a][$b]=$x; end{dump; unset @*; dump}' $indir/unset4.dkvp + +run_mlr put 'unset $x' $indir/unset4.dkvp +run_mlr put 'unset $*; $aaa = 999' $indir/unset4.dkvp +run_mlr --from $indir/abixy put 'x = 1; print "OX=".x; unset x; print "NX=".x' + +run_mlr put -q '@{variable.name} += $x; end{emit @{variable.name}}' $indir/abixy +run_mlr put -q '@{variable.name}[$a] += $x; end{emit @{variable.name},"a"}' $indir/abixy + +run_mlr put 'for (k,v in $*) { if (k == "i") {unset $[k]}}' $indir/abixy + +run_mlr --opprint --from $indir/abixy put -q ' + @output[NR] = $*; + end { + for ((nr, k), v in @output) { + if (nr == 4 || k == "i") { + unset @output[nr][k] + } + } + emitp @output, "NR", "k" + } +' + +# ---------------------------------------------------------------- +announce DSL PATTERN-ACTION BLOCKS + +run_mlr put -v 'begin{@a=1}; $e=2; $f==$g||$h==$i {}; $x=6; end{@z=9}' /dev/null +run_mlr put -v 'begin{@a=1}; $e=2; $f==$g||$h==$i {$s=1}; $x=6; end{@z=9}' /dev/null +run_mlr put -v 'begin{@a=1}; $e=2; $f==$g||$h==$i {$s=1;$t=2}; $x=6; end{@z=9}' /dev/null +run_mlr put -v 'begin{@a=1}; $e=2; $f==$g||$h==$i {$s=1;$t=2;$u=3}; $x=6; end{@z=9}' /dev/null +run_mlr put -v 'begin{@a=1}; $e=2; $f==$g||$h==$i {$s=1;@t["u".$5]=2;emitf @v,@w;dump}; $x=6; end{@z=9}' /dev/null +run_mlr put -v 'begin{true{@x=1}}; true{@x=2}; end{true{@x=3}}' /dev/null + +# ---------------------------------------------------------------- +announce DSL STACK-ALLOCATION + +# This important test validates the local-stack allocator: which variables are +# assigned which offsets in the stack, and how the local-extent contract is +# satisfied by the clear-at-enter-subframe logic. The -v flag gives context on +# the AST; the -a flag provides the essential output on variable placement; the +# Miller script per se validates semantics. + +run_mlr --from $indir/abixy put -v -a -f $indir/test-dsl-stack-allocation.mlr + +# These test absent-null handing for as-yet-undefined localvars in expression RHSs. +run_mlr --from $indir/abixy put 'a=a; $oa = a' +run_mlr --from $indir/abixy put 'a=a; $oa = a; a = a; $ob = a' +run_mlr --from $indir/abixy put 'a=a; $oa = a; a = a; $ob = a; a = b; $oc = a' +run_mlr --from $indir/abixy put 'a=a; $oa = a; a = a; $ob = a; a = b; $oc = a; b = 3; b = a; $od = a' +run_mlr --from $indir/abixy put 'a=a; $oa = a; a = a; $ob = a; a = b; $oc = a; b = 3; b = a; $od = a; b = 4;a = b; $oe= a' + +# ---------------------------------------------------------------- +announce DSL IF-CHAINING + +mention IF/ELIF WITH ELSE +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR==1) { + $x = 2; + $y = 3 + }' + +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR == 4) { + $x = 5; + $y = 6 + } else { + $x = 1007; + $y = 1008 + }' + +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR == 9) { + $x = 10; + $y = 11 + } elif (NR == 12) { + $x = 13; + $y = 14 + } else { + $x = 1015; + $y = 1016 + }' + +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR == 17) { + $x = 18; + $y = 19 + } elif (NR == 20) { + $x = 21; + $y = 22 + } elif (NR == 23) { + $x = 24; + $y = 25 + } else { + $x = 1026; + $y = 1027 + }' + +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR == 28) { + $x = 29; + $y = 30 + } elif (NR == 31) { + $x = 32; + $y = 33 + } elif (NR == 34) { + $x = 35; + $y = 36 + } elif (NR == 37) { + $x = 38; + $y = 39 + } else { + $x = 1040; + $y = 1041 + }' + +mention IF/ELIF WITHOUT ELSE +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR == 1) { + $x = 2; + $y = 3 + }' + +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR == 4) { + $x = 5; + $y = 6 + } elif (NR == 7) { + $x = 8; + $y = 9 + }' + +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR == 10) { + $x = 11; + $y = 12 + } elif (NR == 13) { + $x = 14; + $y = 15 + } elif (NR == 16) { + $x = 17; + $y = 18 + }' + +run_mlr --from $indir/xy40.dkvp put -v ' + if (NR == 19) { + $x = 20; + $y = 21 + } elif (NR == 22) { + $x = 23; + $y = 24 + } elif (NR == 25) { + $x = 26; + $y = 37 + } elif (NR == 28) { + $x = 29; + $y = 30 + }' + +# ---------------------------------------------------------------- +announce DSL INDIRECT SREC ASSIGNMENTS + +run_mlr put -v '$["a"] = $["b"]; $["x"] = 10 * $["y"]' $indir/abixy +run_mlr --from $indir/abixy put 'while (NF < 256) { $["k".string(NF+1)] = "v".string(NF) }' + +# ---------------------------------------------------------------- +announce DSL INDIRECT OOSVAR ASSIGNMENTS + +run_mlr --opprint put -v '@s = NR; $t = @s; $u=@["s"]; $v = $t - $u' $indir/abixy + +run_mlr put -v '@t["u"] = NR; $tu = @["t"]["u"]; emitp all' $indir/abixy +run_mlr put -v '@t["u"] = NR; $tu = @["t"]["u"]; emitp @*' $indir/abixy + +run_mlr put -v '@["s"] = $x; emitp all' $indir/abixy + +run_mlr put -v '@["t"]["u"] = $y; emitp all' $indir/abixy + +# xxx @* on the right +# xxx @* on the left + +# ---------------------------------------------------------------- +announce DSL WHILE/DO-WHILE LOOPS + +run_mlr put -v 'while($i < 5) { $i += 1}' $indir/abixy +run_mlr put -v 'do {$i += 1} while($i < 5)' $indir/abixy + +# ---------------------------------------------------------------- +announce DSL FOR-SREC LOOPS + +mention empty for-srec +run_mlr --from $indir/abixy put -v 'for(k,v in $*) { }' + +mention for-srec without boundvars +run_mlr --from $indir/abixy put -v 'for(k,v in $*) {$nr= NR}' + +mention for-srec modifying the srec +run_mlr --from $indir/abixy put -v 'for(k,v in $*) {unset $[k]}; $j = NR' +run_mlr --from $indir/abixy put -v 'for(k,v in $*) {if (k != "x") {unset $[k]}}; $j = NR' +run_mlr --from $indir/abixy --opprint put -S -v 'for(k,v in $*) {$[k."_orig"]=v; $[k] = "other"}' +run_mlr --from $indir/abixy put -S -v 'for(k,v in $*) {$[v]=k}' + +run_mlr --from $indir/abixy put -v ' + $sum = 0; + for(k,v in $*) { + if (k =~ "^[xy]$") { + $sum += $[k] + } + }' + +run_mlr --from $indir/abixy put -S -v ' + $sum = float(0); + for(k,v in $*) { + if (k =~ "^[xy]$") { + $sum += float($[k]) + } + }' + +# ---------------------------------------------------------------- +announce DSL FOR-OOSVAR LOOPS + +run_mlr --opprint -n put -v ' + @o[1][1]["text1"][NR] = $a; + @o[1][2]["text2"][NR] = $b; + @o[1][2][$a][$i*100] = $x; + for((k1,k2),v in @o[1][2]) { + @n[3][4][k2][k1] = v; + } + end { + emit @n, "a", "b", "c", "d" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @o[1][1]["text1"][NR] = $a; + @o[1][2]["text2"][NR] = $b; + @o[1][2][$a][$i*100] = $x; + for((k1,k2),v in @o[1][2]) { + @n[3][4][k2][k1] = v; + } + end { + emit @n, "a", "b", "c", "d" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @sum[$a][$b] += $x; + @count[$a][$b] += 1; + end { + for ((k1, k2), v in @sum) { + @mean[k1][k2] = @sum[k1][k2] / @count[k1][k2] + } + emitp @sum, "a", "b"; + emitp @count, "a", "b"; + emitp @mean, "a", "b" + } +' + +run_mlr --opprint --from $indir/abixy-wide put -q ' + @value["sum"][$a][$b] += $x; + @value["count"][$a][$b] += 1; + end { + for ((k1, k2), v in @value["sum"]) { + @value["mean"][k1][k2] = @value["sum"][k1][k2] / @value["count"][k1][k2] + } + emitp @value, "stat", "a", "b"; + } +' + +mlr_expect_fail -n put -v 'for (k, k in $*) {}' + +mlr_expect_fail -n put -v 'for (k, k in @*) {}' + +mlr_expect_fail -n put -v 'for ((a,a), c in @*) {}' +mlr_expect_fail -n put -v 'for ((a,b), a in @*) {}' +mlr_expect_fail -n put -v 'for ((a,b), b in @*) {}' + +mlr_expect_fail -n put -v 'for ((a,a,c), d in @*) {}' +mlr_expect_fail -n put -v 'for ((a,b,a), d in @*) {}' +mlr_expect_fail -n put -v 'for ((a,b,c), a in @*) {}' +mlr_expect_fail -n put -v 'for ((a,b,b), d in @*) {}' +mlr_expect_fail -n put -v 'for ((a,b,c), b in @*) {}' +mlr_expect_fail -n put -v 'for ((a,b,c), c in @*) {}' + +run_mlr --from $indir/xyz2 put -q 'func f() { return {"a"."b":"c"."d",3:4}}; for (k,v in f()){print "k=".k.",v=".v}' +run_mlr --from $indir/xyz2 put -q 'for (k,v in {"a"."b":"c"."d",3:"c"}) {print "k=".k.",v=".v}' +run_mlr --from $indir/xyz2 put -q 'o["a"."b"]="c"."d"; for (k,v in o) {print "k=".k.",v=".v}' +run_mlr --from $indir/xyz2 put -q '@o["a"."b"]="c"."d"; for (k,v in @o) {print "k=".k.",v=".v}' +run_mlr --from $indir/xyz2 put 'for (k in $*) { print k}' +run_mlr --from $indir/xyz2 put 'm=$*; for (k in m) { print k}' + +# ---------------------------------------------------------------- +announce DSL FOR-BIND LOOPS FOR VALGRIND + +mention key-only fors + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + map o = {}; + o[ab] = xy; + for (k in o) { + print "k is " . k; + } +' + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + unset @o; + @o[ab] = xy; + for (k in @o) { + print "k is " . k; + } +' + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + for (k in {ab : xy}) { + print "k is " . k; + } +' + +run_mlr --from $indir/abixy-het put ' + func f(a, b, x, y): map { + ab = $a . "_" . $b; + xy = $x . "_" . $y; + return {ab : xy}; + } + for (k in f($a, $b, $x, $y)) { + print "k is " . k; + } +' + +mention key-value fors with scalar values + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + map o = {}; + o[ab] = xy; + for (k, v in o) { + print "k is " . k . " v is " . v; + } +' + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + unset @o; + @o[ab] = xy; + for (k, v in @o) { + print "k is " . k . " v is " . v; + } +' + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + for (k, v in {ab : xy}) { + print "k is " . k . " v is " . v; + } +' + +run_mlr --from $indir/abixy-het put ' + func f(a, b, x, y): map { + ab = $a . "_" . $b; + xy = $x . "_" . $y; + return {ab : xy}; + } + for (k, v in f($a, $b, $x, $y)) { + print "k is " . k . " v is " . v; + } +' + + +mention key-value fors with map values + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + map o = {}; + o[ab] = {"foo": xy}; + for (k, v in o) { + print "k is " . k . " v is "; + dump v; + } +' + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + unset @o; + @o[ab]["foo"] = xy; + for (k, v in @o) { + print "k is " . k . " v is "; + dump v; + } +' + +run_mlr --from $indir/abixy-het put ' + ab = $a . "_" . $b; + xy = $x . "_" . $y; + for (k, v in {ab : {"foo": xy}}) { + print "k is " . k . " v is "; + dump v; + } +' + +run_mlr --from $indir/abixy-het put ' + func f(a, b, x, y): map { + ab = $a . "_" . $b; + xy = $x . "_" . $y; + return {ab : {"foo" : xy}}; + } + for (k, v in f($a, $b, $x, $y)) { + print "k is " . k . " v is "; + dump v; + } +' + +# ---------------------------------------------------------------- +announce DSL BREAK/CONTINUE IN SINGLE WHILE/DO-WHILE + +run_mlr --opprint --from $indir/abixy put ' + while ($i < 5) { + $i += 1; + break; + $a = "ERROR"; + } +' + +run_mlr --opprint --from $indir/abixy put ' + while ($i < 5) { + $i += 1; + continue; + $a = "ERROR"; + } +' + +run_mlr --opprint --from $indir/abixy put ' + do { + $i += 1; + break; + $a = "ERROR"; + } while ($i < 5); +' + +run_mlr --opprint --from $indir/abixy put ' + do { + $i += 1; + continue; + $a = "ERROR"; + } while ($i < 5); +' + +run_mlr --opprint --from $indir/abixy put ' + $NR = NR; + while ($i < 5) { + $i += 1; + if (NR == 2) { + break; + } + $a = "reached"; + } +' + +run_mlr --opprint --from $indir/abixy put ' + $NR = NR; + while ($i < 5) { + $i += 1; + if (NR == 2) { + continue; + } + $a = "reached"; + } +' + +run_mlr --opprint --from $indir/abixy put ' +$NR = NR; + do { + $i += 1; + if (NR == 2) { + break; + } + $a = "reached"; + } while ($i < 5); +' + +run_mlr --opprint --from $indir/abixy put ' + $NR = NR; + do { + $i += 1; + if (NR == 2) { + continue; + } + $a = "reached"; + } while ($i < 5); +' + +# ---------------------------------------------------------------- +announce DSL BREAK/CONTINUE IN NESTED WHILE/DO-WHILE + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + break; + while ($k < 7) { + $k += 1 + } + } +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + continue; + while ($k < 7) { + $k += 1 + } + } +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + while ($k < 7) { + $k += 1; + break; + $k += 10000; + } + } +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + while ($k < 7) { + $k += 1; + continue; + $k += 10000; + } + } +' + + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + if (NR == 2 || NR == 8) { + break; + } + while ($k < 7) { + $k += 1 + } + } +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + if (NR == 2 || NR == 8) { + continue; + } + while ($k < 7) { + $k += 1 + } + } +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + while ($k < 7) { + $k += 1; + if (NR == 2 || NR == 8) { + break; + } + $k += 10000; + } + } +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + while ($j < 4) { + $k = NR; + $j += 1; + while ($k < 7) { + $k += 1; + if (NR == 2 || NR == 8) { + continue; + } + $k += 10000; + } + } +' + + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + do { + $k = NR; + $j += 1; + break; + do { + $k += 1 + } while ($k < 7); + } while ($j < 4); +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + do { + $k = NR; + $j += 1; + continue; + do { + $k += 1 + } while ($k < 7); + } while ($j < 4); +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + do { + $k = NR; + $j += 1; + do { + $k += 1; + break; + $k += 10000; + } while ($k < 7); + } while ($j < 4); +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + do { + $k = NR; + $j += 1; + do { + $k += 1; + continue; + $k += 10000; + } while ($k < 7); + } while ($j < 4); +' + + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + do { + $k = NR; + $j += 1; + if (NR == 2 || NR == 8) { + break; + } + do { + $k += 1 + } while ($k < 7); + } while ($j < 4); +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + do { + $k = NR; + $j += 1; + if (NR == 2 || NR == 8) { + continue; + } + do { + $k += 1 + } while ($k < 7); + } while ($j < 4); +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + do { + $k = NR; + $j += 1; + do { + $k += 1; + if (NR == 2 || NR == 8) { + break; + } + $k += 10000; + } while ($k < 7); + } while ($j < 4); +' + +run_mlr --opprint --from $indir/abixy put ' + $j = NR; + do { + $k = NR; + $j += 1; + do { + $k += 1; + if (NR == 2 || NR == 8) { + continue; + } + $k += 10000; + } while ($k < 7); + } while ($j < 4); +' + + +# ---------------------------------------------------------------- +announce DSL BREAK/CONTINUE IN SINGLE FOR-SREC + +run_mlr --opprint --from $indir/abixy put -q ' + for (k,v in $*) { + @logging1[NR][k] = v; + if (k == "x") { + break; + } + } + end { + emitp @logging1, "NR", "k"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k,v in $*) { + if (k == "x") { + break; + } + @logging2[NR][k] = v; + } + end { + emitp @logging2, "NR", "k"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k,v in $*) { + @logging3[NR][k] = v; + if (k == "x") { + continue; + } + } + end { + emitp @logging3, "NR", "k"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k,v in $*) { + if (k == "x") { + continue; + } + @logging4[NR][k] = v; + } + end { + emitp @logging4, "NR", "k" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k,v in $*) { + @logging1[NR][k] = v; + if (k == "x") { + break; + } + } + + for (k,v in $*) { + if (k == "x") { + break; + } + @logging2[NR][k] = v; + } + + for (k,v in $*) { + @logging3[NR][k] = v; + if (k == "x") { + continue; + } + } + + for (k,v in $*) { + if (k == "x") { + continue; + } + @logging4[NR][k] = v; + } + + end { + emitp @logging1, "NR", "k"; + emitp @logging2, "NR", "k"; + emitp @logging3, "NR", "k"; + emitp @logging4, "NR", "k" + } +' + +# ---------------------------------------------------------------- +announce DSL BREAK/CONTINUE IN NESTED FOR-SREC + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + break; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + continue; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + break; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + continue; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + break; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + break; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + continue; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + break; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + break; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + continue; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + continue; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + continue; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + break + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + continue + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + break + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "b") { + continue + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + break + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + break + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + continue + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + break + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + break + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + continue + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + for (k1, v1 in $*) { + @output1[NR][k1] = "before"; + if (k1 == "b") { + continue + } + @output1[NR][k1] = v1; + for (k2, v2 in $*) { + @output2[NR][k1."_".k2] = "before"; + if (k2 == "a") { + continue + } + @output2[NR][k1."_".k2] = v2; + } + } + end { + emit @output1, "NR", "name"; + emit @output2, "NR", "names"; + } +' + + +# ---------------------------------------------------------------- +announce FOR-MAP DEPTH TESTS + +mention 'for full oosvar' +run_mlr --from $indir/abixy put '@o[1][2] = 7; for(k1,v in @*) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put '@o[1][2] = 7; for((k1),v in @*) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put '@o[1][2] = 7; for((k1,k2),v in @*) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put '@o[1][2] = 7; for((k1,k2,k3),v in @*) {$x+=10;$y+=100}' + +mention 'for oosvar submap' +run_mlr --from $indir/abixy put '@o[1][2][3] = 7; for(k1,v in @o[1][2]) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put '@o[1][2][3] = 7; for((k1),v in @o[1][2]) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put '@o[1][2][3] = 7; for((k1,k2),v in @o[1][2]) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put '@o[1][2][3] = 7; for((k1,k2,k3),v in @o[1][2]) {$x+=10;$y+=100}' + +mention 'for local' +run_mlr --from $indir/abixy put 'o[1][2] = 7; for(k1,v in o) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put 'o[1][2] = 7; for((k1),v in o) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put 'o[1][2] = 7; for((k1,k2),v in o) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put 'o[1][2] = 7; for((k1,k2,k3),v in o) {$x+=10;$y+=100}' + +mention 'for map-literal' +run_mlr --from $indir/abixy put 'for(k1,v in {1:{2:7}}) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put 'for((k1),v in {1:{2:7}}) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put 'for((k1,k2),v in {1:{2:7}}) {$x+=10;$y+=100}' +run_mlr --from $indir/abixy put 'for((k1,k2,k3),v in {1:{2:7}}) {$x+=10;$y+=100}' + +# ---------------------------------------------------------------- +announce DSL BREAK/CONTINUE IN SINGLE FOR-OOSVAR + +mention single-key tests, direct break/continue + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + break; + @output[k1] = v; + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + @output[k1] = v; + break; + @output[k1] = "ERROR"; + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + continue; + @output[k1] = v + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + @output[k1] = v; + continue; + @output[k1] = "ERROR"; + } + emit @output, "NR", "name" + } +' + +mention single-key tests, indirect break/continue + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + if (k1 == "i") { + break; + } + @output[k1] = v; + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + @output[k1] = v; + if (k1 == "i") { + break; + } + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + if (k1 == "i") { + continue; + } + @output[k1] = v + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for (k1, v in @logging[2]) { + @output[k1] = v; + if (k1 == "i") { + continue; + } + @output[k1] = "reached"; + } + emit @output, "NR", "name" + } +' + +mention multiple-key tests, direct break/continue + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + break; + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = v; + break; + @output[k1][k2] = "ERROR" + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + continue; + @output[k1][k2] = v + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = v; + continue; + @output[k1][k2] = "ERROR"; + } + emit @output, "NR", "name" + } +' + +mention multiple-key tests, indirect break/continue + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k1 == 5) { + break; + } + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } +' +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k2 == "i") { + break; + } + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = v; + if (k1 == 5) { + break; + } + } + emit @output, "NR", "name" + } +' +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = v; + if (k2 == "i") { + break; + } + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k1 == 5) { + continue; + } + @output[k1][k2] = v + } + emit @output, "NR", "name" + } +' +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k2 == "i") { + continue; + } + @output[k1][k2] = v + } + emit @output, "NR", "name" + } +' + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = "before"; + if (k1 == 5) { + continue; + } + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } +' +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + @output[k1][k2] = "before"; + if (k2 == "i") { + continue; + } + @output[k1][k2] = v; + } + emit @output, "NR", "name" + } +' + + +# ---------------------------------------------------------------- +announce DSL BREAK/CONTINUE IN NESTED FOR-OOSVAR + +run_mlr --opprint --from $indir/abixy put -q ' + @logging[NR] = $*; + end { + for ((k1, k2), v in @logging) { + if (k1 != 2) { + continue + } + for ((k3, k4), v in @logging) { + if (k3 != 4) { + continue + } + @output[k1][k2][k3][k4] = v; + } + } + emit @output, "NR1", "name1", "NR2", "name2" + } +' + +# ---------------------------------------------------------------- +announce DSL PRINT + +run_mlr put -q 'print 1; print "two"; print $a; print; print $i < 4; print "y is ".string($y); print ""' $indir/abixy +run_mlr put -q 'printn 1; printn "two"; printn $a; printn; printn $i < 4; printn "y is ".string($y); print ""' $indir/abixy + +run_mlr put -q 'print $*; print $*; print {}; print' $indir/abixy +run_mlr put -q 'printn $*; printn $*; printn {}; print' $indir/abixy + +# ---------------------------------------------------------------- +announce ABSENT/EMPTY + +run_mlr put -q '@sum += $x; end{emitp @sum}' $indir/abixy +run_mlr put -q '@sum[$a] += $x; end{emitp @sum, "a"}' $indir/abixy +run_mlr put '$nonesuch = @nonesuch' $indir/abixy + +run_mlr put -q '@sum += $x; end{emitp @sum}' $indir/abixy-het +run_mlr put -q '@sum[$a] += $x; end{emitp @sum, "a"}' $indir/abixy-het +run_mlr put '$nonesuch = @nonesuch' $indir/abixy-het + +run_mlr put -q '@sum += $x; @sumtype = typeof(@sum); @xtype = typeof($x); emitf @sumtype, @xtype, @sum; end{emitp @sum}' $indir/abixy +run_mlr put -q '@sum += $x; @sumtype = typeof(@sum); @xtype = typeof($x); emitf @sumtype, @xtype, @sum; end{emitp @sum}' $indir/abixy-het + +run_mlr put '$z = $x + $y' $indir/typeof.dkvp +run_mlr put '$z = $x + $u' $indir/typeof.dkvp + +run_mlr put '@s = @s + $y; emitp @s' $indir/typeof.dkvp +run_mlr put '@s = @s + $u; emitp @s' $indir/typeof.dkvp + +run_mlr put '$z = $x + $y; $x=typeof($x);$y=typeof($y);$z=typeof($z)' $indir/typeof.dkvp +run_mlr put '$z = $x + $u; $x=typeof($x);$y=typeof($y);$z=typeof($z)' $indir/typeof.dkvp + +run_mlr put '@s = @s + $y; $x=typeof($x);$y=typeof($y);$z=typeof($z);$s=typeof(@s)' $indir/typeof.dkvp +run_mlr put '@s = @s + $u; $x=typeof($x);$y=typeof($y);$z=typeof($z);$s=typeof(@s)' $indir/typeof.dkvp + +run_mlr cat << EOF +x=1 +x= +x=7 +EOF + +run_mlr --ofs tab put '$osum=@sum; $ostype=typeof(@sum);$xtype=typeof($x);@sum+=$x; $nstype=typeof(@sum);$nsum=@sum; end { emit @sum }' < "'$tee2'/out.".$a, $*' $indir/abixy +run_cat $tee2/out.eks +run_cat $tee2/out.hat +run_cat $tee2/out.pan +run_cat $tee2/out.wye +run_cat $tee2/out.zee + +run_mlr put -q --no-fflush 'tee > "'$tee2'/out.".$a, $*' $indir/abixy +run_cat $tee2/out.eks +run_cat $tee2/out.hat +run_cat $tee2/out.pan +run_cat $tee2/out.wye +run_cat $tee2/out.zee + +run_mlr put -q 'tee >> "'$tee2'/out.".$a, $*' $indir/abixy +run_cat $tee2/out.eks +run_cat $tee2/out.hat +run_cat $tee2/out.pan +run_cat $tee2/out.wye +run_cat $tee2/out.zee + +run_mlr put -q -o json 'tee > "'$tee2'/out.".$a, $*' $indir/abixy +run_cat $tee2/out.eks +run_cat $tee2/out.hat +run_cat $tee2/out.pan +run_cat $tee2/out.wye +run_cat $tee2/out.zee + +run_mlr put -q 'tee | "tr \[a-z\] \[A-Z\]", $*' $indir/abixy + +run_mlr put -q -o json 'tee | "tr \[a-z\] \[A-Z\]", $*' $indir/abixy + +touch $tee2/err1 +run_mlr put -q 'tee > stdout, $*' $indir/abixy 2> $tee2/err1 +run_cat $tee2/err1 + +touch $tee2/err2 +run_mlr put -q 'tee > stderr, $*' $indir/abixy 2> $tee2/err2 +run_cat $tee2/err2 + +# ---------------------------------------------------------------- +announce DSL PRINT REDIRECTS + +print1=$reloutdir/print1 +mkdir -p $print1 + +run_mlr put -q 'print > "'$print1'/out.".$a, "abi:".$a.$b.$i' $indir/abixy +run_cat $print1/out.eks +run_cat $print1/out.hat +run_cat $print1/out.pan +run_cat $print1/out.wye +run_cat $print1/out.zee + +run_mlr put -q 'print > "'$print1'/out.".$a, "abi:".$a.$b.$i' $indir/abixy +run_cat $print1/out.eks +run_cat $print1/out.hat +run_cat $print1/out.pan +run_cat $print1/out.wye +run_cat $print1/out.zee + +run_mlr put -q 'print >> "'$print1'/out.".$a, "abi:".$a.$b.$i' $indir/abixy +run_cat $print1/out.eks +run_cat $print1/out.hat +run_cat $print1/out.pan +run_cat $print1/out.wye +run_cat $print1/out.zee + +run_mlr put -q 'print | "tr \[a-z\] \[A-Z\]", "abi:".$a.$b.$i' $indir/abixy + +touch $print1/err1 +run_mlr put -q 'print > stdout, "abi:".$a.$b.$i' $indir/abixy 2> $print1/err1 +run_cat $print1/err1 + +touch $print1/err2 +run_mlr put -q 'print > stderr, "abi:".$a.$b.$i' $indir/abixy 2> $print1/err2 +run_cat $print1/err2 + +# ---------------------------------------------------------------- +announce DSL PRINTN REDIRECTS + +printn1=$reloutdir/printn1 +mkdir -p $printn1 + +run_mlr put -q 'printn > "'$printn1'/out.".$a, "abi:".$a.$b.$i' $indir/abixy +run_cat $printn1/out.eks +run_cat $printn1/out.hat +run_cat $printn1/out.pan +run_cat $printn1/out.wye +run_cat $printn1/out.zee + +run_mlr put -q 'printn > "'$printn1'/out.".$a, "abi:".$a.$b.$i' $indir/abixy +run_cat $printn1/out.eks +run_cat $printn1/out.hat +run_cat $printn1/out.pan +run_cat $printn1/out.wye +run_cat $printn1/out.zee + +run_mlr put -q 'printn >> "'$printn1'/out.".$a, "abi:".$a.$b.$i' $indir/abixy +run_cat $printn1/out.eks +run_cat $printn1/out.hat +run_cat $printn1/out.pan +run_cat $printn1/out.wye +run_cat $printn1/out.zee + +run_mlr put -q 'printn | "tr \[a-z\] \[A-Z\]", "abi:".$a.$b.$i' $indir/abixy + +touch $printn1/err1 +run_mlr put -q 'printn > stdout, "abi:".$a.$b.$i' $indir/abixy 2> $printn1/err1 +run_cat $printn1/err1 + +touch $printn1/err2 +run_mlr put -q 'printn > stderr, "abi:".$a.$b.$i' $indir/abixy 2> $printn1/err2 +run_cat $printn1/err2 + +# ---------------------------------------------------------------- +announce DSL DUMP REDIRECTS + +dump1=$reloutdir/dump1 +mkdir -p $dump1 + +run_mlr put -q '@v=$*; dump > "'$dump1'/out.".$a' $indir/abixy +run_cat $dump1/out.eks +run_cat $dump1/out.hat +run_cat $dump1/out.pan +run_cat $dump1/out.wye +run_cat $dump1/out.zee + +run_mlr put -q '@v=$*; dump > "'$dump1'/out.".$a' $indir/abixy +run_cat $dump1/out.eks +run_cat $dump1/out.hat +run_cat $dump1/out.pan +run_cat $dump1/out.wye +run_cat $dump1/out.zee + +run_mlr put -q '@v=$*; dump >> "'$dump1'/out.".$a' $indir/abixy +run_cat $dump1/out.eks +run_cat $dump1/out.hat +run_cat $dump1/out.pan +run_cat $dump1/out.wye +run_cat $dump1/out.zee + +run_mlr put -q '@v=$*; dump | "tr \[a-z\] \[A-Z\]"' $indir/abixy + +touch $dump1/err1 +run_mlr put -q '@v[NR] = $*; NR == 2 { dump > stdout }' $indir/abixy 2> $dump1/err1 +run_cat $dump1/err1 + +touch $dump1/err2 +run_mlr put -q '@v[NR] = $*; NR == 2 { dump > stderr }' $indir/abixy 2> $dump1/err2 +run_cat $dump1/err2 + +# ---------------------------------------------------------------- +announce DSL EMITF REDIRECTS + +emitf1=$reloutdir/emitf1 +mkdir -p $emitf1 + +run_mlr put -q '@a=$a; @b=$b; emitf > "'$emitf1'/out.".$a.$b, @a, @b' $indir/abixy +run_cat $emitf1/out.ekspan +run_cat $emitf1/out.ekswye +run_cat $emitf1/out.ekszee +run_cat $emitf1/out.hatwye +run_cat $emitf1/out.panpan +run_cat $emitf1/out.panwye +run_cat $emitf1/out.wyepan +run_cat $emitf1/out.wyewye +run_cat $emitf1/out.zeepan +run_cat $emitf1/out.zeewye + +run_mlr put -q '@a=$a; @b=$b; emitf > "'$emitf1'/out.".$a.$b, @a, @b' $indir/abixy +run_cat $emitf1/out.ekspan +run_cat $emitf1/out.ekswye +run_cat $emitf1/out.ekszee +run_cat $emitf1/out.hatwye +run_cat $emitf1/out.panpan +run_cat $emitf1/out.panwye +run_cat $emitf1/out.wyepan +run_cat $emitf1/out.wyewye +run_cat $emitf1/out.zeepan +run_cat $emitf1/out.zeewye + +run_mlr put -q '@a=$a; @b=$b; emitf >> "'$emitf1'/out.".$a.$b, @a, @b' $indir/abixy +run_cat $emitf1/out.ekspan +run_cat $emitf1/out.ekswye +run_cat $emitf1/out.ekszee +run_cat $emitf1/out.hatwye +run_cat $emitf1/out.panpan +run_cat $emitf1/out.panwye +run_cat $emitf1/out.wyepan +run_cat $emitf1/out.wyewye +run_cat $emitf1/out.zeepan +run_cat $emitf1/out.zeewye + +run_mlr put -q -o json '@a=$a; @b=$b; emitf > "'$emitf1'/out.".$a.$b, @a, @b' $indir/abixy +run_cat $emitf1/out.ekspan +run_cat $emitf1/out.ekswye +run_cat $emitf1/out.ekszee +run_cat $emitf1/out.hatwye +run_cat $emitf1/out.panpan +run_cat $emitf1/out.panwye +run_cat $emitf1/out.wyepan +run_cat $emitf1/out.wyewye +run_cat $emitf1/out.zeepan +run_cat $emitf1/out.zeewye + +run_mlr put -q '@a=$a; @b=$b; emitf | "tr \[a-z\] \[A-Z\]", @a, @b' $indir/abixy + +touch $emitf1/err1 +run_mlr put -q '@a=$a; @b=$b; emitf > stdout, @a, @b' $indir/abixy 2> $emitf1/err1 +run_cat $emitf1/err1 + +touch $emitf1/err2 +run_mlr put -q '@a=$a; @b=$b; emitf > stderr, @a, @b' $indir/abixy 2> $emitf1/err2 +run_cat $emitf1/err2 + +# ---------------------------------------------------------------- +announce DSL EMITP REDIRECTS + +emitp1=$reloutdir/emitp1 +mkdir -p $emitp1 + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp1'/out.".$a.$b, @a' $indir/abixy +run_cat $emitp1/out.ekspan +run_cat $emitp1/out.ekswye +run_cat $emitp1/out.panpan +run_cat $emitp1/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp1'/out.".$a.$b, @a' $indir/abixy +run_cat $emitp1/out.ekspan +run_cat $emitp1/out.ekswye +run_cat $emitp1/out.panpan +run_cat $emitp1/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp >> "'$emitp1'/out.".$a.$b, @a' $indir/abixy +run_cat $emitp1/out.ekspan +run_cat $emitp1/out.ekswye +run_cat $emitp1/out.panpan +run_cat $emitp1/out.wyewye + +run_mlr head -n 4 then put -q -o json '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp1'/out.".$a.$b, @a' $indir/abixy +run_cat $emitp1/out.ekspan +run_cat $emitp1/out.ekswye +run_cat $emitp1/out.panpan +run_cat $emitp1/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", @a' $indir/abixy + +touch $emitp1/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stdout, @a' $indir/abixy 2> $emitp1/err1 +run_cat $emitp1/err1 + +touch $emitp1/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stderr, @a' $indir/abixy 2> $emitp1/err2 +run_cat $emitp1/err2 + + +emitp2=$reloutdir/emitp2 +mkdir -p $emitp2 + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp2'/out.".$a.$b, @a, "NR"' $indir/abixy +run_cat $emitp2/out.ekspan +run_cat $emitp2/out.ekswye +run_cat $emitp2/out.panpan +run_cat $emitp2/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp2'/out.".$a.$b, @a, "NR"' $indir/abixy +run_cat $emitp2/out.ekspan +run_cat $emitp2/out.ekswye +run_cat $emitp2/out.panpan +run_cat $emitp2/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp >> "'$emitp2'/out.".$a.$b, @a, "NR"' $indir/abixy +run_cat $emitp2/out.ekspan +run_cat $emitp2/out.ekswye +run_cat $emitp2/out.panpan +run_cat $emitp2/out.wyewye + +run_mlr head -n 4 then put -q -o json '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp2'/out.".$a.$b, @a, "NR"' $indir/abixy +run_cat $emitp2/out.ekspan +run_cat $emitp2/out.ekswye +run_cat $emitp2/out.panpan +run_cat $emitp2/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", @a, "NR"' $indir/abixy + +touch $emitp2/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stdout, @a, "NR"' $indir/abixy 2> $emitp2/err1 +run_cat $emitp2/err1 + +touch $emitp2/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stderr, @a, "NR"' $indir/abixy 2> $emitp2/err2 +run_cat $emitp2/err2 + + +emitp3=$reloutdir/emitp3 +mkdir -p $emitp3 + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp3'/out.".$a.$b, (@a, @b)' $indir/abixy +run_cat $emitp3/out.ekspan +run_cat $emitp3/out.ekswye +run_cat $emitp3/out.panpan +run_cat $emitp3/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp3'/out.".$a.$b, (@a, @b)' $indir/abixy +run_cat $emitp3/out.ekspan +run_cat $emitp3/out.ekswye +run_cat $emitp3/out.panpan +run_cat $emitp3/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp >> "'$emitp3'/out.".$a.$b, (@a, @b)' $indir/abixy +run_cat $emitp3/out.ekspan +run_cat $emitp3/out.ekswye +run_cat $emitp3/out.panpan +run_cat $emitp3/out.wyewye + +run_mlr head -n 4 then put -q -o json '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp3'/out.".$a.$b, (@a, @b)' $indir/abixy +run_cat $emitp3/out.ekspan +run_cat $emitp3/out.ekswye +run_cat $emitp3/out.panpan +run_cat $emitp3/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", (@a, @b)' $indir/abixy + +touch $emitp3/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stdout, (@a, @b)' $indir/abixy 2> $emitp3/err1 +run_cat $emitp3/err1 + +touch $emitp3/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stderr, (@a, @b)' $indir/abixy 2> $emitp3/err2 +run_cat $emitp3/err2 + + +emitp4=$reloutdir/emitp4 +mkdir -p $emitp4 + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp4'/out.".$a.$b, (@a, @b), "NR"' $indir/abixy +run_cat $emitp4/out.ekspan +run_cat $emitp4/out.ekswye +run_cat $emitp4/out.panpan +run_cat $emitp4/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp4'/out.".$a.$b, (@a, @b), "NR"' $indir/abixy +run_cat $emitp4/out.ekspan +run_cat $emitp4/out.ekswye +run_cat $emitp4/out.panpan +run_cat $emitp4/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp >> "'$emitp4'/out.".$a.$b, (@a, @b), "NR"' $indir/abixy +run_cat $emitp4/out.ekspan +run_cat $emitp4/out.ekswye +run_cat $emitp4/out.panpan +run_cat $emitp4/out.wyewye + +run_mlr head -n 4 then put -q -o json '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp4'/out.".$a.$b, (@a, @b), "NR"' $indir/abixy +run_cat $emitp4/out.ekspan +run_cat $emitp4/out.ekswye +run_cat $emitp4/out.panpan +run_cat $emitp4/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", (@a, @b), "NR"' $indir/abixy + +touch $emitp4/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stdout, (@a, @b), "NR"' $indir/abixy 2> $emitp4/err1 +run_cat $emitp4/err1 + +touch $emitp4/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stderr, (@a, @b), "NR"' $indir/abixy 2> $emitp4/err2 +run_cat $emitp4/err2 + + +emitp5=$reloutdir/emitp5 +mkdir -p $emitp5 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp5'/out.".$a.$b, @*' $indir/abixy +run_cat $emitp5/out.ekspan +run_cat $emitp5/out.ekswye +run_cat $emitp5/out.panpan +run_cat $emitp5/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", @*' $indir/abixy + +touch $emitp5/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stdout, @*' $indir/abixy 2> $emitp5/err1 +run_cat $emitp5/err1 + +touch $emitp5/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stderr, @*' $indir/abixy 2> $emitp5/err2 +run_cat $emitp5/err2 + + +emitp6=$reloutdir/emitp6 +mkdir -p $emitp6 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp6'/out.".$a.$b, all' $indir/abixy +run_cat $emitp6/out.ekspan +run_cat $emitp6/out.ekswye +run_cat $emitp6/out.panpan +run_cat $emitp6/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", all' $indir/abixy + +touch $emitp6/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stdout, all' $indir/abixy 2> $emitp6/err1 +run_cat $emitp6/err1 + +touch $emitp6/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stderr, all' $indir/abixy 2> $emitp6/err2 +run_cat $emitp6/err2 + + +emitp7=$reloutdir/emitp7 +mkdir -p $emitp7 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp7'/out.".$a.$b, @*, "NR"' $indir/abixy +run_cat $emitp7/out.ekspan +run_cat $emitp7/out.ekswye +run_cat $emitp7/out.panpan +run_cat $emitp7/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", @*, "NR"' $indir/abixy + +touch $emitp7/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stdout, @*, "NR"' $indir/abixy 2> $emitp7/err1 +run_cat $emitp7/err1 + +touch $emitp7/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stderr, @*, "NR"' $indir/abixy 2> $emitp7/err2 +run_cat $emitp7/err2 + + +emitp8=$reloutdir/emitp8 +mkdir -p $emitp8 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > "'$emitp8'/out.".$a.$b, all, "NR"' $indir/abixy +run_cat $emitp8/out.ekspan +run_cat $emitp8/out.ekswye +run_cat $emitp8/out.panpan +run_cat $emitp8/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp | "tr \[a-z\] \[A-Z\]", all, "NR"' $indir/abixy + +touch $emitp8/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stdout, all, "NR"' $indir/abixy 2> $emitp8/err1 +run_cat $emitp8/err1 + +touch $emitp8/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emitp > stderr, all, "NR"' $indir/abixy 2> $emitp8/err2 +run_cat $emitp8/err2 + + +# ---------------------------------------------------------------- +announce DSL EMIT REDIRECTS + +emit1=$reloutdir/emit1 +mkdir -p $emit1 + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit1'/out.".$a.$b, @a' $indir/abixy +run_cat $emit1/out.ekspan +run_cat $emit1/out.ekswye +run_cat $emit1/out.panpan +run_cat $emit1/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit1'/out.".$a.$b, @a' $indir/abixy +run_cat $emit1/out.ekspan +run_cat $emit1/out.ekswye +run_cat $emit1/out.panpan +run_cat $emit1/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit >> "'$emit1'/out.".$a.$b, @a' $indir/abixy +run_cat $emit1/out.ekspan +run_cat $emit1/out.ekswye +run_cat $emit1/out.panpan +run_cat $emit1/out.wyewye + +run_mlr head -n 4 then put -q -o json '@a[NR]=$a; @b[NR]=$b; emit > "'$emit1'/out.".$a.$b, @a' $indir/abixy +run_cat $emit1/out.ekspan +run_cat $emit1/out.ekswye +run_cat $emit1/out.panpan +run_cat $emit1/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", @a' $indir/abixy + +touch $emit1/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, @a' $indir/abixy 2> $emit1/err1 +run_cat $emit1/err1 + +touch $emit1/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, @a' $indir/abixy 2> $emit1/err2 +run_cat $emit1/err2 + + +emit2=$reloutdir/emit2 +mkdir -p $emit2 + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit2'/out.".$a.$b, @a, "NR"' $indir/abixy +run_cat $emit2/out.ekspan +run_cat $emit2/out.ekswye +run_cat $emit2/out.panpan +run_cat $emit2/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit2'/out.".$a.$b, @a, "NR"' $indir/abixy +run_cat $emit2/out.ekspan +run_cat $emit2/out.ekswye +run_cat $emit2/out.panpan +run_cat $emit2/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit >> "'$emit2'/out.".$a.$b, @a, "NR"' $indir/abixy +run_cat $emit2/out.ekspan +run_cat $emit2/out.ekswye +run_cat $emit2/out.panpan +run_cat $emit2/out.wyewye + +run_mlr head -n 4 then put -q -o pprint '@a[NR]=$a; @b[NR]=$b; emit > "'$emit2'/out.".$a.$b, @a, "NR"' $indir/abixy +run_cat $emit2/out.ekspan +run_cat $emit2/out.ekswye +run_cat $emit2/out.panpan +run_cat $emit2/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", @a, "NR"' $indir/abixy + +touch $emit2/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, @a, "NR"' $indir/abixy 2> $emit2/err1 +run_cat $emit2/err1 + +touch $emit2/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, @a, "NR"' $indir/abixy 2> $emit2/err2 +run_cat $emit2/err2 + + +emit3=$reloutdir/emit3 +mkdir -p $emit3 + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit3'/out.".$a.$b, (@a, @b)' $indir/abixy +run_cat $emit3/out.ekspan +run_cat $emit3/out.ekswye +run_cat $emit3/out.panpan +run_cat $emit3/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit3'/out.".$a.$b, (@a, @b)' $indir/abixy +run_cat $emit3/out.ekspan +run_cat $emit3/out.ekswye +run_cat $emit3/out.panpan +run_cat $emit3/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit >> "'$emit3'/out.".$a.$b, (@a, @b)' $indir/abixy +run_cat $emit3/out.ekspan +run_cat $emit3/out.ekswye +run_cat $emit3/out.panpan +run_cat $emit3/out.wyewye + +run_mlr head -n 4 then put -q --oxtab '@a[NR]=$a; @b[NR]=$b; emit > "'$emit3'/out.".$a.$b, (@a, @b)' $indir/abixy +run_cat $emit3/out.ekspan +run_cat $emit3/out.ekswye +run_cat $emit3/out.panpan +run_cat $emit3/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", (@a, @b)' $indir/abixy + +touch $emit3/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, (@a, @b)' $indir/abixy 2> $emit3/err1 +run_cat $emit3/err1 + +touch $emit3/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, (@a, @b)' $indir/abixy 2> $emit3/err2 +run_cat $emit3/err2 + + +emit4=$reloutdir/emit4 +mkdir -p $emit4 + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit4'/out.".$a.$b, (@a, @b), "NR"' $indir/abixy +run_cat $emit4/out.ekspan +run_cat $emit4/out.ekswye +run_cat $emit4/out.panpan +run_cat $emit4/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit4'/out.".$a.$b, (@a, @b), "NR"' $indir/abixy +run_cat $emit4/out.ekspan +run_cat $emit4/out.ekswye +run_cat $emit4/out.panpan +run_cat $emit4/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit >> "'$emit4'/out.".$a.$b, (@a, @b), "NR"' $indir/abixy +run_cat $emit4/out.ekspan +run_cat $emit4/out.ekswye +run_cat $emit4/out.panpan +run_cat $emit4/out.wyewye + +run_mlr head -n 4 then put -q --ojson '@a[NR]=$a; @b[NR]=$b; emit > "'$emit4'/out.".$a.$b, (@a, @b), "NR"' $indir/abixy +run_cat $emit4/out.ekspan +run_cat $emit4/out.ekswye +run_cat $emit4/out.panpan +run_cat $emit4/out.wyewye + +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", (@a, @b), "NR"' $indir/abixy + +touch $emit4/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, (@a, @b), "NR"' $indir/abixy 2> $emit4/err1 +run_cat $emit4/err1 + +touch $emit4/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, (@a, @b), "NR"' $indir/abixy 2> $emit4/err2 +run_cat $emit4/err2 + + +emit5=$reloutdir/emit5 +mkdir -p $emit5 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit5'/out.".$a.$b, @*' $indir/abixy +run_cat $emit5/out.ekspan +run_cat $emit5/out.ekswye +run_cat $emit5/out.panpan +run_cat $emit5/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", @*' $indir/abixy + +touch $emit5/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, @*' $indir/abixy 2> $emit5/err1 +run_cat $emit5/err1 + +touch $emit5/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, @*' $indir/abixy 2> $emit5/err2 +run_cat $emit5/err2 + + +emit6=$reloutdir/emit6 +mkdir -p $emit6 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit6'/out.".$a.$b, all' $indir/abixy +run_cat $emit6/out.ekspan +run_cat $emit6/out.ekswye +run_cat $emit6/out.panpan +run_cat $emit6/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", all' $indir/abixy + +touch $emit6/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, all' $indir/abixy 2> $emit6/err1 +run_cat $emit6/err1 + +touch $emit6/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, all' $indir/abixy 2> $emit6/err2 +run_cat $emit6/err2 + + +emit7=$reloutdir/emit7 +mkdir -p $emit7 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit7'/out.".$a.$b, @*, "NR"' $indir/abixy +run_cat $emit7/out.ekspan +run_cat $emit7/out.ekswye +run_cat $emit7/out.panpan +run_cat $emit7/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", @*, "NR"' $indir/abixy + +touch $emit7/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, @*, "NR"' $indir/abixy 2> $emit7/err1 +run_cat $emit7/err1 + +touch $emit7/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, @*, "NR"' $indir/abixy 2> $emit7/err2 +run_cat $emit7/err2 + + +emit8=$reloutdir/emit8 +mkdir -p $emit8 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > "'$emit8'/out.".$a.$b, all, "NR"' $indir/abixy +run_cat $emit8/out.ekspan +run_cat $emit8/out.ekswye +run_cat $emit8/out.panpan +run_cat $emit8/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", all, "NR"' $indir/abixy + +touch $emit8/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, all, "NR"' $indir/abixy 2> $emit8/err1 +run_cat $emit8/err1 + +touch $emit8/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, all, "NR"' $indir/abixy 2> $emit8/err2 +run_cat $emit8/err2 + + +emit9=$reloutdir/emit9 +mkdir -p $emit9 +run_mlr head -n 4 then put -q 'emit > "'$emit9'/out.".$a.$b, $*' $indir/abixy +run_cat $emit9/out.ekspan +run_cat $emit9/out.ekswye +run_cat $emit9/out.panpan +run_cat $emit9/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", $*, "NR"' $indir/abixy + +touch $emit9/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, $*, "NR"' $indir/abixy 2> $emit9/err1 +run_cat $emit9/err1 + +touch $emit9/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, $*, "NR"' $indir/abixy 2> $emit9/err2 +run_cat $emit9/err2 + + +emit10=$reloutdir/emit10 +mkdir -p $emit10 +run_mlr head -n 4 then put -q 'emit > "'$emit10'/out.".$a.$b, mapexcept($*, "a", "b")' $indir/abixy +run_cat $emit10/out.ekspan +run_cat $emit10/out.ekswye +run_cat $emit10/out.panpan +run_cat $emit10/out.wyewye +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit | "tr \[a-z\] \[A-Z\]", mapexcept($*, "a", "b"), "NR"' $indir/abixy + +touch $emit10/err1 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stdout, mapexcept($*, "a", "b"), "NR"' $indir/abixy 2> $emit10/err1 +run_cat $emit10/err1 + +touch $emit10/err2 +run_mlr head -n 4 then put -q '@a[NR]=$a; @b[NR]=$b; emit > stderr, mapexcept($*, "a", "b"), "NR"' $indir/abixy 2> $emit10/err2 +run_cat $emit10/err2 + +# ---------------------------------------------------------------- +announce OOSVAR-FROM-SREC ASSIGNMENT + +run_mlr put -v '@v = $*' /dev/null +run_mlr put -v '@v[1] = $*' /dev/null +run_mlr put -v '@v[$2] = $*' /dev/null +run_mlr put -v 'NR == 3 {@v = $*}' /dev/null +run_mlr put -v 'NR == 3 {@v[1] = $*}' /dev/null +run_mlr put -v 'NR == 3 {@v[$2] = $*}' /dev/null + +run_mlr --oxtab put -q '@v = $*; end {emitp @v }' $indir/abixy-het + +run_mlr --oxtab put -q '@v[$a] = $*; end {emitp @v }' $indir/abixy-het +run_mlr --oxtab put -q '@v[$a] = $*; end {emitp @v, "a" }' $indir/abixy-het + +run_mlr --oxtab put -q '@v[$a][$b] = $*; end {emitp @v }' $indir/abixy-het +run_mlr --oxtab put -q '@v[$a][$b] = $*; end {emitp @v, "a" }' $indir/abixy-het +run_mlr --oxtab put -q '@v[$a][$b] = $*; end {emitp @v, "a", "b"}' $indir/abixy-het + +# ---------------------------------------------------------------- +announce SREC-FROM-OOSVAR ASSIGNMENT + +run_mlr put -v '$* = @v ' /dev/null +run_mlr put -v '$* = @v[1] ' /dev/null +run_mlr put -v '$* = @v[$2]' /dev/null +run_mlr put -v 'NR == 3 {$* = @v }' /dev/null +run_mlr put -v 'NR == 3 {$* = @v[1] }' /dev/null +run_mlr put -v 'NR == 3 {$* = @v[$2]}' /dev/null + +run_mlr put '@v[NR] = $a; NR == 7 { @v = $*} ; $* = @v' $indir/abixy-het + +# ---------------------------------------------------------------- +announce OOSVAR-FROM-OOSVAR ASSIGNMENT + +run_mlr put -v '@u = @v' /dev/null +run_mlr put -v '@u = @v[1]' /dev/null +run_mlr put -v '@u[2] = @v' /dev/null +run_mlr put -v '@u[2] = @v[1]' /dev/null + +run_mlr put -v 'begin { @u = @v }' /dev/null +run_mlr put -v 'begin { @u = @v[1] }' /dev/null +run_mlr put -v 'begin { @u[2] = @v }' /dev/null +run_mlr put -v 'begin { @u[2] = @v[1] }' /dev/null + +run_mlr put -v 'NR == 3 { @u = @v }' /dev/null +run_mlr put -v 'NR == 3 { @u = @v[1] }' /dev/null +run_mlr put -v 'NR == 3 { @u[2] = @v }' /dev/null +run_mlr put -v 'NR == 3 { @u[2] = @v[1] }' /dev/null + +run_mlr put -v 'end { @u = @v }' /dev/null +run_mlr put -v 'end { @u = @v[1] }' /dev/null +run_mlr put -v 'end { @u[2] = @v }' /dev/null +run_mlr put -v 'end { @u[2] = @v[1] }' /dev/null + + +run_mlr put -q '@s += $i; @t=@s; end{dump; emitp@s; emitp @t}' $indir/abixy + +run_mlr put -q '@s[1] += $i; @t=@s; end{dump; emitp@s; emitp @t}' $indir/abixy +run_mlr put -q '@s[1] += $i; @t=@s[1]; end{dump; emitp@s; emitp @t}' $indir/abixy + +run_mlr put -q '@s[1] += $i; @t[3]=@s; end{dump; emitp@s; emitp @t}' $indir/abixy +run_mlr put -q '@s[1] += $i; @t[3]=@s[1]; end{dump; emitp@s; emitp @t}' $indir/abixy + +run_mlr put -q '@s[1][2] += $i; @t=@s; end{dump; emitp@s; emitp @t}' $indir/abixy +run_mlr put -q '@s[1][2] += $i; @t=@s[1]; end{dump; emitp@s; emitp @t}' $indir/abixy +run_mlr put -q '@s[1][2] += $i; @t=@s[1][2]; end{dump; emitp@s; emitp @t}' $indir/abixy + +run_mlr put -q '@s[1][2] += $i; @t[3]=@s; end{dump; emitp@s; emitp @t}' $indir/abixy +run_mlr put -q '@s[1][2] += $i; @t[3]=@s[1]; end{dump; emitp@s; emitp @t}' $indir/abixy +run_mlr put -q '@s[1][2] += $i; @t[3]=@s[1][2]; end{dump; emitp@s; emitp @t}' $indir/abixy + +run_mlr put -q '@s[1][2] += $i; @t[3][4]=@s; end{dump; emitp@s; emitp @t}' $indir/abixy +run_mlr put -q '@s[1][2] += $i; @t[3][4]=@s[1]; end{dump; emitp@s; emitp @t}' $indir/abixy +run_mlr put -q '@s[1][2] += $i; @t[3][4]=@s[1][2]; end{dump; emitp@s; emitp @t}' $indir/abixy + +run_mlr --opprint put -q '@s[NR][NR] = $i/100; @t[NR*10]=@s; end{emitp@s,"A","B"; emitp @t,"C","D","E"}' $indir/abixy + +# ---------------------------------------------------------------- +announce CHAINING + +run_mlr cat then cat $indir/short +run_mlr cat then tac $indir/short +run_mlr tac then cat $indir/short +run_mlr tac then tac $indir/short + +run_mlr cat then cat then cat $indir/short +run_mlr cat then cat then tac $indir/short +run_mlr cat then tac then cat $indir/short +run_mlr cat then tac then tac $indir/short +run_mlr tac then cat then cat $indir/short +run_mlr tac then cat then tac $indir/short +run_mlr tac then tac then cat $indir/short +run_mlr tac then tac then tac $indir/short + +# ---------------------------------------------------------------- +announce NUMBER FORMATTING + +run_mlr --opprint stats1 -a sum -f x $indir/ofmt.dat +run_mlr --ofmt '%.3lf' --opprint stats1 -a sum -f x $indir/ofmt.dat +run_mlr --opprint --ofmt '%.3lf' stats1 -a sum -f x $indir/ofmt.dat + +# ---------------------------------------------------------------- +announce IMPLICIT-HEADER-CSV INPUT + +run_mlr --irs crlf --icsvlite --ifs , --opprint cut -x -f b/ $indir/multi-sep.csv-crlf +run_mlr --irs crlf --implicit-csv-header --icsvlite --ifs , --opprint cut -x -f 2 $indir/multi-sep.csv-crlf + +run_mlr --irs crlf --icsvlite --ifs /, --opprint cut -x -f b $indir/multi-sep.csv-crlf +run_mlr --irs crlf --implicit-csv-header --icsvlite --ifs /, --opprint cut -x -f 2 $indir/multi-sep.csv-crlf + +run_mlr --icsv --ifs , --opprint cut -x -f b/ $indir/multi-sep.csv-crlf +run_mlr --implicit-csv-header --icsv --ifs , --opprint cut -x -f 2 $indir/multi-sep.csv-crlf + +run_mlr --icsv --ifs /, --opprint cut -x -f b $indir/multi-sep.csv-crlf +run_mlr --implicit-csv-header --icsv --ifs /, --opprint cut -x -f 2 $indir/multi-sep.csv-crlf + +run_mlr --csv -N reorder -f 1,3,2,5,4 $indir/multi-sep.csv-crlf +run_mlr --csv -N reorder -f 5,4,3,2,1 $indir/multi-sep.csv-crlf + +# ---------------------------------------------------------------- +announce HET-CSV INPUT + +run_mlr --icsvlite --odkvp cat $indir/a.csv +run_mlr --icsvlite --odkvp cat $indir/b.csv +run_mlr --icsvlite --odkvp cat $indir/c.csv +run_mlr --icsvlite --odkvp cat $indir/d.csv +run_mlr --icsvlite --odkvp cat $indir/e.csv +run_mlr --icsvlite --odkvp cat $indir/f.csv +run_mlr --icsvlite --odkvp cat $indir/g.csv + +run_mlr --icsvlite --odkvp cat $indir/a.csv $indir/a.csv +run_mlr --icsvlite --odkvp cat $indir/b.csv $indir/b.csv +run_mlr --icsvlite --odkvp cat $indir/c.csv $indir/c.csv +run_mlr --icsvlite --odkvp cat $indir/d.csv $indir/d.csv +run_mlr --icsvlite --odkvp cat $indir/e.csv $indir/e.csv +run_mlr --icsvlite --odkvp cat $indir/f.csv $indir/f.csv +run_mlr --icsvlite --odkvp cat $indir/g.csv $indir/g.csv + +run_mlr --icsvlite --odkvp cat $indir/a.csv $indir/b.csv +run_mlr --icsvlite --odkvp cat $indir/b.csv $indir/c.csv +run_mlr --icsvlite --odkvp cat $indir/c.csv $indir/d.csv +run_mlr --icsvlite --odkvp cat $indir/d.csv $indir/e.csv +run_mlr --icsvlite --odkvp cat $indir/e.csv $indir/f.csv +run_mlr --icsvlite --odkvp cat $indir/f.csv $indir/g.csv + +run_mlr --icsvlite --odkvp cat $indir/a.csv $indir/b.csv \ + $indir/c.csv $indir/d.csv $indir/e.csv $indir/f.csv $indir/g.csv + +run_mlr --icsvlite --odkvp tac $indir/het.csv + +run_mlr --headerless-csv-output --csvlite tac $indir/a.csv +run_mlr --headerless-csv-output --csvlite tac $indir/c.csv +run_mlr --headerless-csv-output --csvlite tac $indir/a.csv $indir/c.csv +run_mlr --headerless-csv-output --csvlite tac $indir/het.csv +run_mlr --headerless-csv-output --csvlite group-like $indir/het.csv + +# ---------------------------------------------------------------- +announce HET-PPRINT INPUT + +run_mlr --ipprint --odkvp cat $indir/a.pprint +run_mlr --ipprint --odkvp cat $indir/b.pprint +run_mlr --ipprint --odkvp cat $indir/c.pprint +run_mlr --ipprint --odkvp cat $indir/d.pprint +run_mlr --ipprint --odkvp cat $indir/e.pprint +run_mlr --ipprint --odkvp cat $indir/f.pprint +run_mlr --ipprint --odkvp cat $indir/g.pprint + +run_mlr --ipprint --odkvp cat $indir/a.pprint $indir/a.pprint +run_mlr --ipprint --odkvp cat $indir/b.pprint $indir/b.pprint +run_mlr --ipprint --odkvp cat $indir/c.pprint $indir/c.pprint +run_mlr --ipprint --odkvp cat $indir/d.pprint $indir/d.pprint +run_mlr --ipprint --odkvp cat $indir/e.pprint $indir/e.pprint +run_mlr --ipprint --odkvp cat $indir/f.pprint $indir/f.pprint +run_mlr --ipprint --odkvp cat $indir/g.pprint $indir/g.pprint + +run_mlr --ipprint --odkvp cat $indir/a.pprint $indir/b.pprint +run_mlr --ipprint --odkvp cat $indir/b.pprint $indir/c.pprint +run_mlr --ipprint --odkvp cat $indir/c.pprint $indir/d.pprint +run_mlr --ipprint --odkvp cat $indir/d.pprint $indir/e.pprint +run_mlr --ipprint --odkvp cat $indir/e.pprint $indir/f.pprint +run_mlr --ipprint --odkvp cat $indir/f.pprint $indir/g.pprint + +run_mlr --ipprint --odkvp cat $indir/a.pprint $indir/b.pprint \ + $indir/c.pprint $indir/d.pprint $indir/e.pprint $indir/f.pprint $indir/g.pprint + +# ---------------------------------------------------------------- +announce NULL-FIELD INPUT + +run_mlr --icsvlite --odkvp cat $indir/null-fields.csv +run_mlr --inidx --ifs comma --odkvp cat $indir/null-fields.nidx +run_mlr --idkvp --oxtab cat $indir/missings.dkvp + +run_mlr --oxtab stats1 -a sum,min,max,antimode,mode -f x $indir/nullvals.dkvp +run_mlr --oxtab stats1 -a sum,min,max,antimode,mode -f y $indir/nullvals.dkvp +run_mlr --oxtab stats1 -a sum,min,max,antimode,mode -f z $indir/nullvals.dkvp +run_mlr --oxtab stats1 -a sum,min,max,antimode,mode -f x,y,z $indir/nullvals.dkvp +run_mlr --oxtab stats1 -a sum,min,max,antimode,mode -f x -g a $indir/nullvals.dkvp +run_mlr --oxtab stats1 -a sum,min,max,antimode,mode -f y -g a $indir/nullvals.dkvp +run_mlr --oxtab stats1 -a sum,min,max,antimode,mode -f z -g a $indir/nullvals.dkvp +run_mlr --oxtab stats1 -a sum,min,max,antimode,mode -f x,y,z -g a $indir/nullvals.dkvp + +run_mlr --opprint merge-fields -a sum,min,max,antimode,mode -f x,y,z -o xyz $indir/nullvals.dkvp +run_mlr --opprint merge-fields -a sum,min,max,antimode,mode -r x,y,z -o xyz $indir/nullvals.dkvp +run_mlr --opprint merge-fields -a sum,min,max,antimode,mode -c x,y,z $indir/nullvals.dkvp + +run_mlr --oxtab stats2 -a cov -f x,y $indir/nullvals.dkvp +run_mlr --oxtab stats2 -a cov -f x,z $indir/nullvals.dkvp +run_mlr --oxtab stats2 -a cov -f y,z $indir/nullvals.dkvp +run_mlr --oxtab stats2 -a cov -f x,y -g a $indir/nullvals.dkvp +run_mlr --oxtab stats2 -a cov -f x,z -g a $indir/nullvals.dkvp +run_mlr --oxtab stats2 -a cov -f y,z -g a $indir/nullvals.dkvp + +run_mlr --opprint top -n 5 -f x $indir/nullvals.dkvp +run_mlr --opprint top -n 5 -f y $indir/nullvals.dkvp +run_mlr --opprint top -n 5 -f z $indir/nullvals.dkvp +run_mlr --opprint top -n 5 -f x,y,z $indir/nullvals.dkvp +run_mlr --opprint top -n 5 -f x -g a $indir/nullvals.dkvp +run_mlr --opprint top -n 5 -f y -g a $indir/nullvals.dkvp +run_mlr --opprint top -n 5 -f z -g a $indir/nullvals.dkvp +run_mlr --opprint top -n 5 -f x,y,z -g a $indir/nullvals.dkvp + +run_mlr --opprint top -a -n 5 -f x $indir/nullvals.dkvp +run_mlr --opprint top -a -n 5 -f y $indir/nullvals.dkvp +run_mlr --opprint top -a -n 5 -f z $indir/nullvals.dkvp +run_mlr --opprint top -a -n 5 -f x -g a $indir/nullvals.dkvp +run_mlr --opprint top -a -n 5 -f y -g a $indir/nullvals.dkvp +run_mlr --opprint top -a -n 5 -f z -g a $indir/nullvals.dkvp + +run_mlr --opprint top -n 5 -f x -o foo $indir/nullvals.dkvp +run_mlr --opprint top -n 5 -f x -g a -o foo $indir/nullvals.dkvp + +run_mlr --opprint top -a -n 5 -f x -o foo $indir/nullvals.dkvp +run_mlr --opprint top -a -n 5 -f z -o foo -g a $indir/nullvals.dkvp + +run_mlr --opprint step -a counter,rsum -f x $indir/nullvals.dkvp +run_mlr --opprint step -a counter,rsum -f y $indir/nullvals.dkvp +run_mlr --opprint step -a counter,rsum -f z $indir/nullvals.dkvp +run_mlr --opprint step -a counter,rsum -f x,y,z $indir/nullvals.dkvp + +run_mlr --opprint step -a counter,rsum -f x -g a $indir/nullvals.dkvp +run_mlr --opprint step -a counter,rsum -f y -g a $indir/nullvals.dkvp +run_mlr --opprint step -a counter,rsum -f z -g a $indir/nullvals.dkvp +run_mlr --opprint step -a counter,rsum -f x,y,z -g a $indir/nullvals.dkvp + +# ---------------------------------------------------------------- +announce SPACE-PADDING + +run_mlr --idkvp --odkvp --ifs space --repifs cat $indir/space-pad.dkvp +run_mlr --inidx --odkvp --ifs space --repifs cat $indir/space-pad.nidx +run_mlr --icsvlite --odkvp --ifs space --repifs cat $indir/space-pad.pprint + +# ---------------------------------------------------------------- +announce DOUBLE PS + +run_mlr --opprint cat $indir/double-ps.dkvp + +# ---------------------------------------------------------------- +announce MISSING FINAL LF + +run_mlr --csvlite cat $indir/truncated.csv +run_mlr --dkvp cat $indir/truncated.dkvp +run_mlr --nidx cat $indir/truncated.nidx +run_mlr --pprint cat $indir/truncated.pprint +run_mlr --xtab cat $indir/truncated.xtab-crlf + +# ---------------------------------------------------------------- +announce UTF-8 alignment + +run_mlr --icsvlite --opprint cat $indir/utf8-1.csv +run_mlr --icsvlite --opprint cat $indir/utf8-2.csv +run_mlr --icsvlite --oxtab cat $indir/utf8-1.csv +run_mlr --icsvlite --oxtab cat $indir/utf8-2.csv + +run_mlr --inidx --ifs space --opprint cat $indir/utf8-align.nidx +run_mlr --inidx --ifs space --opprint --right cat $indir/utf8-align.nidx +run_mlr --oxtab cat $indir/utf8-align.dkvp + +run_mlr --inidx --ifs space --oxtab --xvright cat $indir/utf8-align.nidx + +# ---------------------------------------------------------------- +announce UTF-8 BOM + +run_mlr --icsv --opprint cat $indir/bom.csv +run_mlr --icsv --opprint cat < $indir/bom.csv +run_mlr --icsv --opprint cat $indir/bom-dquote-header.csv +run_mlr --icsv --opprint cat < $indir/bom-dquote-header.csv + +# ---------------------------------------------------------------- +announce UTF-8 UPPERCASE/LOWERCASE + +run_mlr --icsvlite --opprint put '$langue = toupper($langue)' $indir/utf8-1.csv +run_mlr --icsvlite --opprint put '$nom = toupper($nom)' $indir/utf8-1.csv +run_mlr --icsvlite --opprint put '$jour = toupper($jour)' $indir/utf8-1.csv + +run_mlr --icsvlite --opprint put '$langue = capitalize($langue)' $indir/utf8-1.csv +run_mlr --icsvlite --opprint put '$nom = capitalize($nom)' $indir/utf8-1.csv +run_mlr --icsvlite --opprint put '$jour = capitalize($jour)' $indir/utf8-1.csv + +# ---------------------------------------------------------------- +announce SKIP/PASS COMMENTS DKVP + +mention input comments1.dkvp +run_cat $indir/comments/comments1.dkvp + +mention skip comments1.dkvp +run_mlr --skip-comments --idkvp --oxtab cat < $indir/comments/comments1.dkvp +run_mlr --skip-comments --idkvp --oxtab cat $indir/comments/comments1.dkvp + +mention pass comments1.dkvp +run_mlr --pass-comments --idkvp --oxtab cat < $indir/comments/comments1.dkvp +run_mlr --pass-comments --idkvp --oxtab cat $indir/comments/comments1.dkvp + + +mention input comments2.dkvp +run_cat $indir/comments/comments2.dkvp + +mention skip comments2.dkvp +run_mlr --skip-comments --idkvp --oxtab cat < $indir/comments/comments2.dkvp +run_mlr --skip-comments --idkvp --oxtab cat $indir/comments/comments2.dkvp + +mention pass comments2.dkvp +run_mlr --pass-comments --idkvp --oxtab cat < $indir/comments/comments2.dkvp +run_mlr --pass-comments --idkvp --oxtab cat $indir/comments/comments2.dkvp + + +mention input comments3.dkvp +run_cat $indir/comments/comments3.dkvp + +mention skip comments3.dkvp +run_mlr --skip-comments --idkvp --oxtab cat < $indir/comments/comments3.dkvp +run_mlr --skip-comments --idkvp --oxtab cat $indir/comments/comments3.dkvp + +mention pass comments3.dkvp +run_mlr --pass-comments --idkvp --oxtab cat < $indir/comments/comments3.dkvp +run_mlr --pass-comments --idkvp --oxtab cat $indir/comments/comments3.dkvp + +# It's annoying trying to check in text files (especially CSV) with CRLF +# to Git, given that it likes to 'fix' line endings for multi-platform use. +# It's easy to simply create CRLF on the fly. +run_mlr_for_auxents_no_output termcvt --lf2crlf < $indir/comments/comments1.dkvp > $outdir/comments1-crlf.dkvp + +mention input comments1-crlf.dkvp +run_cat $outdir/comments1-crlf.dkvp + +mention skip comments1-crlf.dkvp +run_mlr --skip-comments --idkvp --oxtab cat < $outdir/comments1-crlf.dkvp +run_mlr --skip-comments --idkvp --oxtab cat $outdir/comments1-crlf.dkvp + +mention pass comments1-crlf.dkvp +run_mlr --pass-comments --idkvp --oxtab cat < $outdir/comments1-crlf.dkvp +run_mlr --pass-comments --idkvp --oxtab cat $outdir/comments1-crlf.dkvp + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +announce SKIP/PASS COMMENTS DKVP WITH ALTERNATE PREFIX + +mention input comments1-atat.dkvp +run_cat $indir/comments/comments1-atat.dkvp + +mention skip comments1-atat.dkvp +run_mlr --skip-comments-with @@ --idkvp --oxtab cat < $indir/comments/comments1-atat.dkvp +run_mlr --skip-comments-with @@ --idkvp --oxtab cat $indir/comments/comments1-atat.dkvp + +mention pass comments1-atat.dkvp +run_mlr --pass-comments-with @@ --idkvp --oxtab cat < $indir/comments/comments1-atat.dkvp +run_mlr --pass-comments-with @@ --idkvp --oxtab cat $indir/comments/comments1-atat.dkvp + + +mention input comments2-atat.dkvp +run_cat $indir/comments/comments2-atat.dkvp + +mention skip comments2-atat.dkvp +run_mlr --skip-comments-with @@ --idkvp --oxtab cat < $indir/comments/comments2-atat.dkvp +run_mlr --skip-comments-with @@ --idkvp --oxtab cat $indir/comments/comments2-atat.dkvp + +mention pass comments2-atat.dkvp +run_mlr --pass-comments-with @@ --idkvp --oxtab cat < $indir/comments/comments2-atat.dkvp +run_mlr --pass-comments-with @@ --idkvp --oxtab cat $indir/comments/comments2-atat.dkvp + + +mention input comments3-atat.dkvp +run_cat $indir/comments/comments3-atat.dkvp + +mention skip comments3-atat.dkvp +run_mlr --skip-comments-with @@ --idkvp --oxtab cat < $indir/comments/comments3-atat.dkvp +run_mlr --skip-comments-with @@ --idkvp --oxtab cat $indir/comments/comments3-atat.dkvp + +mention pass comments3-atat.dkvp +run_mlr --pass-comments-with @@ --idkvp --oxtab cat < $indir/comments/comments3-atat.dkvp +run_mlr --pass-comments-with @@ --idkvp --oxtab cat $indir/comments/comments3-atat.dkvp + +# ---------------------------------------------------------------- +announce SKIP/PASS COMMENTS NIDX + +mention input comments1.nidx +run_cat $indir/comments/comments1.nidx + +mention skip comments1.nidx +run_mlr --skip-comments --inidx --oxtab cat < $indir/comments/comments1.nidx +run_mlr --skip-comments --inidx --oxtab cat $indir/comments/comments1.nidx + +mention pass comments1.nidx +run_mlr --pass-comments --inidx --oxtab cat < $indir/comments/comments1.nidx +run_mlr --pass-comments --inidx --oxtab cat $indir/comments/comments1.nidx + + +mention input comments2.nidx +run_cat $indir/comments/comments2.nidx + +mention skip comments2.nidx +run_mlr --skip-comments --inidx --oxtab cat < $indir/comments/comments2.nidx +run_mlr --skip-comments --inidx --oxtab cat $indir/comments/comments2.nidx + +mention pass comments2.nidx +run_mlr --pass-comments --inidx --oxtab cat < $indir/comments/comments2.nidx +run_mlr --pass-comments --inidx --oxtab cat $indir/comments/comments2.nidx + + +mention input comments3.nidx +run_cat $indir/comments/comments3.nidx + +mention skip comments3.nidx +run_mlr --skip-comments --inidx --oxtab cat < $indir/comments/comments3.nidx +run_mlr --skip-comments --inidx --oxtab cat $indir/comments/comments3.nidx + +mention pass comments3.nidx +run_mlr --pass-comments --inidx --oxtab cat < $indir/comments/comments3.nidx +run_mlr --pass-comments --inidx --oxtab cat $indir/comments/comments3.nidx + + +# It's annoying trying to check in text files (especially CSV) with CRLF +# to Git, given that it likes to 'fix' line endings for multi-platform use. +# It's easy to simply create CRLF on the fly. +run_mlr_for_auxents_no_output termcvt --lf2crlf < $indir/comments/comments1.nidx > $outdir/comments1-crlf.nidx + +mention input comments1-crlf.nidx +run_cat $outdir/comments1-crlf.nidx + +mention skip comments1-crlf.nidx +run_mlr --skip-comments --inidx --oxtab cat < $outdir/comments1-crlf.nidx +run_mlr --skip-comments --inidx --oxtab cat $outdir/comments1-crlf.nidx + +mention pass comments1-crlf.nidx +run_mlr --pass-comments --inidx --oxtab cat < $outdir/comments1-crlf.nidx +run_mlr --pass-comments --inidx --oxtab cat $outdir/comments1-crlf.nidx + +# ---------------------------------------------------------------- +announce SKIP/PASS COMMENTS JSON + +mention input comments1.json +run_cat $indir/comments/comments1.json + +mention skip comments1.json +run_mlr --skip-comments --ijson --odkvp cat < $indir/comments/comments1.json +run_mlr --skip-comments --ijson --odkvp cat $indir/comments/comments1.json + +mention pass comments1.json +run_mlr --pass-comments --ijson --odkvp cat < $indir/comments/comments1.json +run_mlr --pass-comments --ijson --odkvp cat $indir/comments/comments1.json + + +mention input comments2.json +run_cat $indir/comments/comments2.json + +mention skip comments2.json +run_mlr --skip-comments --ijson --odkvp cat < $indir/comments/comments2.json +run_mlr --skip-comments --ijson --odkvp cat $indir/comments/comments2.json + +mention pass comments2.json +run_mlr --pass-comments --ijson --odkvp cat < $indir/comments/comments2.json +run_mlr --pass-comments --ijson --odkvp cat $indir/comments/comments2.json + + +mention input comments3.json +run_cat $indir/comments/comments3.json + +mention skip comments3.json +run_mlr --skip-comments --ijson --odkvp cat < $indir/comments/comments3.json +run_mlr --skip-comments --ijson --odkvp cat $indir/comments/comments3.json + +mention pass comments3.json +run_mlr --pass-comments --ijson --odkvp cat < $indir/comments/comments3.json +run_mlr --pass-comments --ijson --odkvp cat $indir/comments/comments3.json + + +# It's annoying trying to check in text files (especially CSV) with CRLF +# to Git, given that it likes to 'fix' line endings for multi-platform use. +# It's easy to simply create CRLF on the fly. +run_mlr_for_auxents_no_output termcvt --lf2crlf < $indir/comments/comments1.json > $outdir/comments1-crlf.json + +mention input comments1-crlf.json +run_cat $outdir/comments1-crlf.json + +mention skip comments1-crlf.json +run_mlr --skip-comments --ijson --odkvp cat < $outdir/comments1-crlf.json +run_mlr --skip-comments --ijson --odkvp cat $outdir/comments1-crlf.json + +mention pass comments1-crlf.json +run_mlr --pass-comments --ijson --odkvp cat < $outdir/comments1-crlf.json +run_mlr --pass-comments --ijson --odkvp cat $outdir/comments1-crlf.json + +# ---------------------------------------------------------------- +announce SKIP/PASS COMMENTS XTAB + +mention input comments1.xtab +run_cat $indir/comments/comments1.xtab + +mention skip comments1.xtab +run_mlr --skip-comments --ixtab --odkvp cat < $indir/comments/comments1.xtab +run_mlr --skip-comments --ixtab --odkvp cat $indir/comments/comments1.xtab + +mention pass comments1.xtab +run_mlr --pass-comments --ixtab --odkvp cat < $indir/comments/comments1.xtab +run_mlr --pass-comments --ixtab --odkvp cat $indir/comments/comments1.xtab + + +mention input comments2.xtab +run_cat $indir/comments/comments2.xtab + +mention skip comments2.xtab +run_mlr --skip-comments --ixtab --odkvp cat < $indir/comments/comments2.xtab +run_mlr --skip-comments --ixtab --odkvp cat $indir/comments/comments2.xtab + +mention pass comments2.xtab +run_mlr --pass-comments --ixtab --odkvp cat < $indir/comments/comments2.xtab +run_mlr --pass-comments --ixtab --odkvp cat $indir/comments/comments2.xtab + + +# It's annoying trying to check in text files (especially CSV) with CRLF +# to Git, given that it likes to 'fix' line endings for multi-platform use. +# It's easy to simply create CRLF on the fly. +run_mlr_for_auxents_no_output termcvt --lf2crlf < $indir/comments/comments1.xtab > $outdir/comments1-crlf.xtab + +mention input comments1-crlf.xtab +run_cat $outdir/comments1-crlf.xtab + +mention skip comments1-crlf.xtab +run_mlr --skip-comments --ixtab --odkvp cat < $outdir/comments1-crlf.xtab +run_mlr --skip-comments --ixtab --odkvp cat $outdir/comments1-crlf.xtab + +mention pass comments1-crlf.xtab +run_mlr --pass-comments --ixtab --odkvp cat < $outdir/comments1-crlf.xtab +run_mlr --pass-comments --ixtab --odkvp cat $outdir/comments1-crlf.xtab + +# ---------------------------------------------------------------- +announce SKIP/PASS COMMENTS CSVLITE + +mention input comments1.csv +run_cat $indir/comments/comments1.csv + +mention skip comments1.csv +run_mlr --skip-comments --icsvlite --odkvp cat < $indir/comments/comments1.csv +run_mlr --skip-comments --icsvlite --odkvp cat $indir/comments/comments1.csv + +mention pass comments1.csv +run_mlr --pass-comments --icsvlite --odkvp cat < $indir/comments/comments1.csv +run_mlr --pass-comments --icsvlite --odkvp cat $indir/comments/comments1.csv + + +mention input comments2.csv +run_cat $indir/comments/comments2.csv + +mention skip comments2.csv +run_mlr --skip-comments --icsvlite --odkvp cat < $indir/comments/comments2.csv +run_mlr --skip-comments --icsvlite --odkvp cat $indir/comments/comments2.csv + +mention pass comments2.csv +run_mlr --pass-comments --icsvlite --odkvp cat < $indir/comments/comments2.csv +run_mlr --pass-comments --icsvlite --odkvp cat $indir/comments/comments2.csv + + +# It's annoying trying to check in text files (especially CSV) with CRLF +# to Git, given that it likes to 'fix' line endings for multi-platform use. +# It's easy to simply create CRLF on the fly. +run_mlr_for_auxents_no_output termcvt --lf2crlf < $indir/comments/comments1.csv > $outdir/comments1-crlf.csv + +mention input comments1-crlf.csv +run_cat $outdir/comments1-crlf.csv + +mention skip comments1-crlf.csv +run_mlr --skip-comments --icsvlite --odkvp cat < $outdir/comments1-crlf.csv +run_mlr --skip-comments --icsvlite --odkvp cat $outdir/comments1-crlf.csv + +mention pass comments1-crlf.csv +run_mlr --pass-comments --icsvlite --odkvp cat < $outdir/comments1-crlf.csv +run_mlr --pass-comments --icsvlite --odkvp cat $outdir/comments1-crlf.csv + +# ---------------------------------------------------------------- +announce SKIP/PASS COMMENTS CSV + +mention input comments1.csv +run_cat $indir/comments/comments1.csv + +mention skip comments1.csv +run_mlr --skip-comments --icsv --odkvp cat < $indir/comments/comments1.csv +run_mlr --skip-comments --icsv --odkvp cat $indir/comments/comments1.csv + +mention pass comments1.csv +run_mlr --pass-comments --icsv --odkvp cat < $indir/comments/comments1.csv +run_mlr --pass-comments --icsv --odkvp cat $indir/comments/comments1.csv + + +mention input comments2.csv +run_cat $indir/comments/comments2.csv + +mention skip comments2.csv +run_mlr --skip-comments --icsv --odkvp cat < $indir/comments/comments2.csv +run_mlr --skip-comments --icsv --odkvp cat $indir/comments/comments2.csv + +mention pass comments2.csv +run_mlr --pass-comments --icsv --odkvp cat < $indir/comments/comments2.csv +run_mlr --pass-comments --icsv --odkvp cat $indir/comments/comments2.csv + + +# It's annoying trying to check in text files (especially CSV) with CRLF +# to Git, given that it likes to 'fix' line endings for multi-platform use. +# It's easy to simply create CRLF on the fly. +run_mlr_for_auxents_no_output termcvt --lf2crlf < $indir/comments/comments1.csv > $outdir/comments1-crlf.csv + +mention input comments1-crlf.csv +run_cat $outdir/comments1-crlf.csv + +mention skip comments1-crlf.csv +run_mlr --skip-comments --icsv --odkvp cat < $outdir/comments1-crlf.csv +run_mlr --skip-comments --icsv --odkvp cat $outdir/comments1-crlf.csv + +mention pass comments1-crlf.csv +run_mlr --pass-comments --icsv --odkvp cat < $outdir/comments1-crlf.csv +run_mlr --pass-comments --icsv --odkvp cat $outdir/comments1-crlf.csv + +# ---------------------------------------------------------------- +announce INT64 I/O + +run_mlr --oxtab put '$c=$a;$d=$b;$e=hexfmt($a);$f=hexfmt($b)' $indir/int64io.dkvp + +# There is different rounding on i386 vs. x86_64 but the essential check is +# that overflow has been avoided. Hence the %g output format here. +run_mlr --oxtab --ofmt '%.8g' put '$p0=$p+0;$p1=$p+1;$p2=$p+2;$p3=$p+3' $indir/int64arith.dkvp +run_mlr --oxtab --ofmt '%.8g' put '$p0=$p-0;$p1=$p-1;$p2=$p-2;$p3=$p-3' $indir/int64arith.dkvp +run_mlr --oxtab --ofmt '%.8g' put '$p0=$p*0;$p1=$p*1;$p2=$p*2;$p3=$p*3' $indir/int64arith.dkvp +run_mlr --oxtab --ofmt '%.8g' put '$n0=$n+0;$n1=$n+1;$n2=$n+2;$n3=$n+3' $indir/int64arith.dkvp +run_mlr --oxtab --ofmt '%.8g' put '$n0=$n-0;$n1=$n-1;$n2=$n-2;$n3=$n-3' $indir/int64arith.dkvp +run_mlr --oxtab --ofmt '%.8g' put '$n0=$n*0;$n1=$n*1;$n2=$n*2;$n3=$n*3' $indir/int64arith.dkvp + +# ---------------------------------------------------------------- +announce COMPRESSED INPUT + +run_mlr --csv --prepipe 'cat' cat $indir/rfc-csv/simple.csv-crlf +run_mlr --dkvp --prepipe 'cat' cat $indir/abixy +run_mlr --csv --prepipe 'cat' cat < $indir/rfc-csv/simple.csv-crlf +run_mlr --dkvp --prepipe 'cat' cat < $indir/abixy + +# ---------------------------------------------------------------- +announce STDIN + +run_mlr --csv cat < $indir/rfc-csv/simple.csv-crlf + +# ---------------------------------------------------------------- +announce RFC-CSV + +run_mlr --csv cat $indir/rfc-csv/simple.csv-crlf +run_mlr --csv cat $indir/rfc-csv/simple-truncated.csv +run_mlr --csv cat $indir/rfc-csv/narrow.csv +run_mlr --csv cat $indir/rfc-csv/narrow-truncated.csv +run_mlr --csv cat $indir/rfc-csv/quoted-comma.csv +run_mlr --csv cat $indir/rfc-csv/quoted-comma-truncated.csv +run_mlr --csv cat $indir/rfc-csv/quoted-crlf.csv +run_mlr --csv cat $indir/rfc-csv/quoted-crlf-truncated.csv +run_mlr --csv cat $indir/rfc-csv/simple-truncated.csv $indir/rfc-csv/simple.csv-crlf +run_mlr --csv --ifs semicolon --ofs pipe --irs lf --ors lflf cut -x -f b $indir/rfc-csv/modify-defaults.csv +run_mlr --csv --rs lf --quote-original cut -o -f c,b,a $indir/quote-original.csv + +run_mlr --icsv --oxtab cat $indir/comma-at-eof.csv + +run_mlr --csv --quote-all cat $indir/rfc-csv/simple.csv-crlf +run_mlr --csv --quote-original cat $indir/rfc-csv/simple.csv-crlf + +run_mlr --itsv --rs lf --oxtab cat $indir/simple.tsv + +run_mlr --iusv --oxtab cat $indir/example.usv + +# ---------------------------------------------------------------- +announce RAGGED NON-RFC CSV + +run_mlr --icsv --oxtab --ragged cat $indir/ragged.csv +run_mlr --icsvlite --oxtab --ragged cat $indir/ragged.csv + +# ---------------------------------------------------------------- +announce MARKDOWN OUTPUT + +run_mlr --itsv --rs lf --omd cat $indir/simple.tsv + +# ---------------------------------------------------------------- +announce CSV/RS ENVIRONMENT DEFAULTS + +run_mlr --csv cut -f a $indir/rfc-csv/simple.csv-crlf +run_mlr --csv --rs crlf cut -f a $indir/rfc-csv/simple.csv-crlf +mlr_expect_fail --csv --rs lf cut -f a $indir/rfc-csv/simple.csv-crlf + +# ---------------------------------------------------------------- +announce MULTI-CHARACTER IRS/IFS/IPS FOR DKVP + +run_mlr --oxtab --idkvp --irs lf --ifs , --ips = cut -o -f x,a,i $indir/multi-sep.dkvp-crlf +run_mlr --oxtab --idkvp --irs lf --ifs /, --ips =: cut -o -f x,a,i $indir/multi-sep.dkvp-crlf +run_mlr --oxtab --idkvp --irs crlf --ifs , --ips = cut -o -f x,a,i $indir/multi-sep.dkvp-crlf +run_mlr --oxtab --idkvp --irs crlf --ifs /, --ips =: cut -o -f x,a,i $indir/multi-sep.dkvp-crlf + +# ---------------------------------------------------------------- +announce MULTI-CHARACTER IRS/IFS FOR NIDX + +run_mlr --oxtab --inidx --irs lf --ifs , cut -o -f 4,1,3 $indir/multi-sep.dkvp-crlf +run_mlr --oxtab --inidx --irs lf --ifs /, cut -o -f 4,1,3 $indir/multi-sep.dkvp-crlf +run_mlr --oxtab --inidx --irs crlf --ifs , cut -o -f 4,1,3 $indir/multi-sep.dkvp-crlf +run_mlr --oxtab --inidx --irs crlf --ifs /, cut -o -f 4,1,3 $indir/multi-sep.dkvp-crlf + +# ---------------------------------------------------------------- +announce MULTI-CHARACTER IRS/IFS FOR CSVLITE + +run_mlr --oxtab --icsvlite --irs lf --ifs , cut -o -f x/,a/,i/ $indir/multi-sep.csv-crlf +run_mlr --oxtab --icsvlite --irs lf --ifs /, cut -o -f x,a,i $indir/multi-sep.csv-crlf +run_mlr --oxtab --icsvlite --irs crlf --ifs , cut -o -f x/,a/,i/ $indir/multi-sep.csv-crlf +run_mlr --oxtab --icsvlite --irs crlf --ifs /, cut -o -f x,a,i $indir/multi-sep.csv-crlf + +# ---------------------------------------------------------------- +announce MULTI-CHARACTER SEPARATORS FOR XTAB + +run_mlr --xtab --ifs crlf --ofs Z cut -x -f b $indir/truncated.xtab-crlf +run_mlr --xtab --ips . --ops @ cut -x -f b $indir/dots.xtab +run_mlr --xtab --ips ": " --ops '@@@@' put '$sum=int($a+$b)' $indir/multi-ips.dkvp + +# ---------------------------------------------------------------- +announce EMBEDDED IPS FOR XTAB + +run_mlr --xtab cat $indir/embedded-ips.xtab + +# ---------------------------------------------------------------- +announce MULTI-CHARACTER IRS FOR PPRINT + +run_mlr --pprint --irs crlf --ifs / --ofs @ cut -x -f b $indir/dots.pprint-crlf + +# ---------------------------------------------------------------- +announce BARRED PPRINT + +run_mlr --opprint --barred cat $indir/abixy +run_mlr --opprint --barred --right cat $indir/abixy + +run_mlr --opprint --barred cat $indir/abixy-het +run_mlr --opprint --barred --right cat $indir/abixy-het + +# ---------------------------------------------------------------- +announce MULTI-CHARACTER IXS SPECIFIERS + +run_mlr --oxtab --idkvp --irs lf --ifs '\x2c' --ips '\075' cut -o -f x,a,i $indir/multi-sep.dkvp-crlf +run_mlr --oxtab --idkvp --irs lf --ifs /, --ips '\x3d\x3a' cut -o -f x,a,i $indir/multi-sep.dkvp-crlf + +# ---------------------------------------------------------------- +announce JSON I/O + +run_mlr --ijson --opprint cat $indir/small-non-nested.json +run_mlr --ijson --opprint cat $indir/small-non-nested-wrapped.json +run_mlr --ijson --oxtab cat $indir/small-nested.json + +run_mlr --ojson cat $indir/json-output-options.dkvp +run_mlr --ojson --jvstack cat $indir/json-output-options.dkvp +run_mlr --ojson --jlistwrap cat $indir/json-output-options.dkvp +run_mlr --ojson --jvstack --jlistwrap cat $indir/json-output-options.dkvp +run_mlr --ojson --jquoteall cat $indir/json-output-options.dkvp +run_mlr --ojson --jvstack --jquoteall cat $indir/json-output-options.dkvp +run_mlr --ojson --jlistwrap --jquoteall cat $indir/json-output-options.dkvp +run_mlr --ojson --jvstack --jlistwrap --jquoteall cat $indir/json-output-options.dkvp +run_mlr --ojson --jvquoteall cat $indir/json-output-options.dkvp +run_mlr --ojson --jvstack --jvquoteall cat $indir/json-output-options.dkvp +run_mlr --ojson --jlistwrap --jvquoteall cat $indir/json-output-options.dkvp +run_mlr --ojson --jvstack --jlistwrap --jvquoteall cat $indir/json-output-options.dkvp +run_mlr --ojson --jknquoteint cat $indir/json-output-options.dkvp +run_mlr --ojson --jvstack --jknquoteint cat $indir/json-output-options.dkvp +run_mlr --ojson --jlistwrap --jknquoteint cat $indir/json-output-options.dkvp +run_mlr --ojson --jvstack --jlistwrap --jknquoteint cat $indir/json-output-options.dkvp + +run_mlr put -q --jvquoteall 'dump $*' $indir/json-output-options.dkvp +run_mlr put -q --jvquoteall 'o = $*; o[7] = 8; dump o' $indir/json-output-options.dkvp +run_mlr put -q --jknquoteint 'dump $*' $indir/json-output-options.dkvp +run_mlr put -q --jknquoteint 'o = $*; o[7] = 8; dump o' $indir/json-output-options.dkvp + +run_mlr --ijson --opprint cat $indir/small-non-nested-wrapped.json $indir/small-non-nested-wrapped.json + +run_mlr --icsv --ojson --rs lf cat < 0) { + return n * f(n-1) + } else { + return 1 + } + } + # implicitly return absent + } + $o = f(NR) +' + +run_mlr --opprint --from $indir/abixy head -n 5 then put ' + subr s(n) { + print "n = " . n; + if (is_numeric(n)) { + if (n > 0) { + call s(n-1) + } + } + } + print ""; + call s(NR) +' + +run_mlr --from $indir/abixy --opprint put ' + func f(n) { + return n+1; + } + $o1 = f(NR); + $o2 = f(f(NR)); + $o3 = f(f(f(NR))); + $o4 = f(f(f(f(NR)))); + $o5 = f(f(f(f(f(NR))))); + $o6 = f(f(f(f(f(f(NR)))))); +' + +run_mlr --from $indir/abixy --opprint put ' + func f(n) { + if (n < 2) { + return 1 + } else { + return f(n-1) + f(n-2) + } + } + $o = f(NR) +' + +run_mlr --from $indir/abixy --opprint put ' + func f(n) { + if (is_present(@fcache[n])) { + return @fcache[n] + } else { + num rv = 1; + if (n >= 2) { + rv = f(n-1) + f(n-2) + } + @fcache[n] = rv; + return rv + } + } + $o = f(NR) +' + +# No nesting of top-levels +mlr_expect_fail --from $indir/abixy --opprint put 'func f(x) { begin {} }' +mlr_expect_fail --from $indir/abixy --opprint put 'func f(x) { end {} }' +mlr_expect_fail --from $indir/abixy --opprint put 'subr s(x) { begin {} }' +mlr_expect_fail --from $indir/abixy --opprint put 'subr s(x) { end {} }' + +mlr_expect_fail --from $indir/abixy --opprint put 'func f(x) { func g(y) {} }' +mlr_expect_fail --from $indir/abixy --opprint put 'func f(x) { subr t(y) {} }' +mlr_expect_fail --from $indir/abixy --opprint put 'subr s(x) { func g(y) {} }' +mlr_expect_fail --from $indir/abixy --opprint put 'subr s(x) { subr t(y) {} }' + +mlr_expect_fail --from $indir/abixy --opprint filter 'func f(x) { begin {} }; true' +mlr_expect_fail --from $indir/abixy --opprint filter 'func f(x) { end {} }; true' +mlr_expect_fail --from $indir/abixy --opprint filter 'subr s(x) { begin {} }; true' +mlr_expect_fail --from $indir/abixy --opprint filter 'subr s(x) { end {} }; true' + +mlr_expect_fail --from $indir/abixy --opprint filter 'func f(x) { func g(y) {} }; true' +mlr_expect_fail --from $indir/abixy --opprint filter 'func f(x) { subr t(y) {} }; true' +mlr_expect_fail --from $indir/abixy --opprint filter 'subr s(x) { func g(y) {} }; true' +mlr_expect_fail --from $indir/abixy --opprint filter 'subr s(x) { subr t(y) {} }; true' + +# Disallow redefines +mlr_expect_fail --from $indir/abixy --opprint put 'func log(x) { return $x + 1 }' +mlr_expect_fail --from $indir/abixy --opprint put 'func f(x) { return $x + 1 } func f(x) { return $x + 1}' +mlr_expect_fail --from $indir/abixy --opprint put 'subr s() { } subr s() { }' +mlr_expect_fail --from $indir/abixy --opprint put 'subr s() { } subr s(x) { }' +run_mlr --from $indir/abixy --opprint put 'subr log(text) { print "TEXT IS ".text } call log("NR is ".NR)' + +# print/dump from subr/func; no tee/emit from func +run_mlr --from $indir/abixy --opprint put 'subr log(text) { print "TEXT IS ".text } call log("NR is ".NR)' +run_mlr --from $indir/abixy --opprint put 'func f(text) { print "TEXT IS ".text; return text.text } $o = f($a)' +run_mlr --from $indir/abixy put 'begin{@x=1} func f(x) { dump; print "hello" } $o=f($i)' +mlr_expect_fail --from $indir/abixy put 'begin{@x=1} func f(x) { dump; print "hello"; tee > "x", $* } $o=f($i)' +mlr_expect_fail --from $indir/abixy put 'begin{@x=1} func f(x) { dump; print "hello"; emit > "x", @* } $o=f($i)' + +# not use all args (for valgrind) +run_mlr --from $indir/abixy put 'func f(x,y) { return 2*y } $o = f($x,$y) ' + +# general programming-language stuff +run_mlr -n put -q -f $indir/sieve.mlr +run_mlr -n put -q -f $indir/mand.mlr -e 'begin {@verbose = true}' + +# scoping within distinct begin/end blocks +run_mlr --from $indir/abixy put -v ' + func f(x) { + return x**2 + } + func g(y) { + return y+1 + } + subr s(a,b,c) { + print a.b.c + } + begin { + @a = 0; + var ell = 1; + print "local1 = ".ell; + } + end { + emit @a; + var emm = 2; + print "local2 = ".emm; + } + @a += 1; + begin { + @b = 0; + @c = 0; + print "local3 = ".ell; + } + @b += 2; + @c += 3; + end { + emit @b; + emit @c; + print "local4 = ".emm; + } +' + +# ---------------------------------------------------------------- +announce LOCALVAR SCOPE AND EXTENT + +run_mlr --opprint --from $indir/abixy put ' + func f() { + var a = 1; + if (NR > 5) { + a = 2; + } + return a; + } + func g() { + var b = 1; + if (NR > 5) { + var b = 2; + } + return b; + } + func h() { + var a = 1; + if (NR > 5) { + a = 2; + return a; + } + return a; + } + func i() { + var b = 1; + if (NR > 5) { + var b = 2; + return b; + } + return b; + } + $of = f(); + $og = g(); + $oh = h(); + $oi = i(); + ' + +# test fencing at function entry +run_mlr --opprint --from $indir/abixy put ' + func f() { + var a = 2; + var b = 2; + if (NR > 5) { + var a = 3; + b = 3; + } + return 1000 * a + b; + } + a = 1; + b = 1; + $ab = f(); + $oa = a; + $ob = b; + ' + +# ---------------------------------------------------------------- +announce LOCALVAR UNSETS + +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset s ; dump s; dump t; dump u' $indir/unset1.dkvp + +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset t ; dump s; dump t; dump u' $indir/unset1.dkvp +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset t[1] ; dump s; dump t; dump u' $indir/unset1.dkvp + +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u ; dump s; dump t; dump u' $indir/unset1.dkvp +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u[1] ; dump s; dump t; dump u' $indir/unset1.dkvp +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u[1][2]; dump s; dump t; dump u' $indir/unset1.dkvp + +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset s ; dump s; dump t; dump u' $indir/unset4.dkvp + +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset t ; dump s; dump t; dump u' $indir/unset4.dkvp +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset t[1] ; dump s; dump t; dump u' $indir/unset4.dkvp + +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u ; dump s; dump t; dump u' $indir/unset4.dkvp +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u[1] ; dump s; dump t; dump u' $indir/unset4.dkvp +run_mlr put -q 's=$x; t[$a]=$x; u[$a][$b]=$x; dump s; dump t; dump u; unset u[1][2]; dump s; dump t; dump u' $indir/unset4.dkvp + +# ---------------------------------------------------------------- +announce LOCALVAR TYPEDECLs + +run_mlr --from $indir/abixy put ' + str a = $a; + a = "a:".NR; + $c = a; +' + +mlr_expect_fail --from $indir/abixy put ' + str a = $a; + a = NR; + $c = a; +' + +mlr_expect_fail --from $indir/abixy put ' + int a = $a; + a = NR; + $c = a; +' + +run_mlr --from $indir/abixy put ' + int i = $i; + i = NR; + $c = a; +' + +# ---------------------------------------------------------------- +announce FORBIND TYPEDECLs + +run_mlr --from $indir/abixy put ' + for (int i = 0; i < $i; i += 1) { + $c = i * 10; + } +' + +mlr_expect_fail --from $indir/abixy put ' + for (float i = 0; i < $i; i += 1) { + $c = i * 10; + } +' + +run_mlr --from $indir/abixy put ' + for (int i = 0; i < $i; i += 1) { + i += 2; + $c = i; + } +' + +mlr_expect_fail --from $indir/abixy put ' + for (int i = 0; i < $i; i += 1) { + i += 1.5; + $c = i; + } +' + +mlr_expect_fail --from $indir/abixy put ' + for (int i = 0; i < $i; i += 1) { + i += 1.0; + $c = i; + } +' + +run_mlr --from $indir/abixy put ' + for (num i = 0; i < $i; i += 1) { + i += 1.0; + $c = i; + } +' + +# ---------------------------------------------------------------- +announce ARGPASS TYPEDECLs + +run_mlr --from $indir/abixy put ' + func f(int i) { + return i+3; + } + $c = f($i); +' + +mlr_expect_fail --from $indir/abixy put ' + func f(int i) { + return i+3; + } + $c = f($x); +' + +mlr_expect_fail --from $indir/abixy put ' + func f(num i): int { + return i+3.45; + } + $c = f($x); +' + +mlr_expect_fail --from $indir/abixy put ' + func f(num i): int { + return i+3.45; + } + $c = f($i); +' + +mlr_expect_fail --from $indir/abixy put ' + func f(num i): int { + i = "a"; + return 2; + } + $c = f($x); +' + + +run_mlr --from $indir/abixy put ' + subr s(int i) { + print i+3; + } + call s($i); +' + +mlr_expect_fail --from $indir/abixy put ' + subr s(int i) { + print i+3; + } + call s($x); +' + +mlr_expect_fail --from $indir/abixy put ' + subr s(num i) { + i = "a"; + print 2; + } + call s($x); +' + +# ---------------------------------------------------------------- +announce LOCAL MAP-VARIABLE WRITE/READ + +run_mlr --from $indir/xyz345 put -v -a ' + $s = a; + $t = b[$x]; + $u = c[$x][$y]; + $v = d[$x][$y][$z]; +' + +run_mlr --from $indir/xyz345 put -v -a ' + d[$x][$y][$z] = 9; + $d = d[$x][$y][$z]; +' + +run_mlr --from $indir/xyz345 put -v -a ' + a = 6; + b[$x] = 7; + c[$x][$y] = 8; + d[$x][$y][$z] = 9; + + $a = a; + $b = b[$x]; + $c = c[$x][$y]; + $d = d[$x][$y][$z]; +' + +run_mlr --from $indir/xyz345 put -v -a ' + a = 6; + b[$x] = 7; + c[$x][$y] = 8; + d[$x][$y][$z] = 9; + + $a0 = a; + $a1 = a[$x]; + $a2 = a[$x][$y]; + $a3 = a[$x][$y][$z]; + + $b0 = b; + $b1 = b[$x]; + $b2 = b[$x][$y]; + $b3 = b[$x][$y][$z]; + + $c0 = c; + $c1 = c[$x]; + $c2 = c[$x][$y]; + $c3 = c[$x][$y][$z]; + + $d0 = d; + $d1 = d[$x]; + $d2 = d[$x][$y]; + $d3 = d[$x][$y][$z]; +' + +# ---------------------------------------------------------------- +announce LOCAL MAP-VARIABLE TYPE-DECL + +run_mlr --from $indir/xyz345 put ' + map a = {}; +' + +run_mlr --from $indir/xyz345 put ' + map a = {}; + a[1]=2; + a[3][4]=5; +' + +mlr_expect_fail --from $indir/xyz345 put ' + map a = {}; + a=2; + a[3][4]=5; +' + +mlr_expect_fail --from $indir/xyz345 put ' + map a = {}; + a[3][4]=5; + a=2; +' + +# ---------------------------------------------------------------- +announce TRIPLE-FORs + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + num a = 1; + for (;;) { + if (a > NR) { + break; + } + sum += a; + a += 1 + } + $z = sum +' + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + num a = 1; + for (;;) { + if (a > NR) { + break; + } + sum += a; + a += 1 + } + $z = sum +' + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + for (num a = 1; ;) { + if (a > NR) { + break; + } + sum += a; + a += 1 + } + $z = sum +' + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + num a = 1; + for (; ; a += 1) { + if (a > NR) { + break; + } + sum += a; + } + $z = sum +' + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + for (num a=1; ; a += 1) { + if (a > NR) { + break; + } + sum += a; + } + $z = sum +' + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + for (num a=1; a <= NR; a += 1) { + sum += a; + } + $z = sum +' + +echo x=1 | run_mlr put ' + num a = 100; + num b = 100; + for (num a = 200, b = 300; a <= 210; a += 1, b += 1) { + print "a:".a.",b:".b + } + $oa = a; + $ob = b; +' + +run_mlr --from $indir/abixy put ' + for ( ; $x <= 10; $x += 1) { + } +' + +run_mlr --opprint --from $indir/abixy put ' + num a = 100; + b = 200; + @c = 300; + $d = 400; + for (num i = 1; i < 1024; i *= 2) { + a += 1; + b += 1; + @c += 1; + $d += 1; + $oa = a; + $ob = b; + $oc = @c; + $od = $d; + } +' + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + for (num a = 1; a <= 10; a += 1) { + continue; + sum += a; + } + $z = sum +' + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + for (num a = 1; a <= 10; a += 1) { + sum += a; + break; + } + $z = sum +' + +run_mlr --opprint --from $indir/abixy put ' + num sum = 0; + for (num a = 1; a <= NR; a += 1) { + if (a == 4 || a == 5) { + continue; + } + if (a == 8) { + break; + } + sum += a; + } + $z = sum +' + +# Multi-continutation cases + +run_mlr --opprint --from $indir/abixy put ' + for ($o1 = 1; ; $o3 = 3) { + break; + } +' + +run_mlr --opprint --from $indir/abixy put ' + for ($o1 = 1; $o1 < NR; $o1 += 1) { + } +' + +mlr_expect_fail --opprint --from $indir/abixy put ' + for ($o1 = 1, $o2 = 2; $o3 = 3; $o4 = 4) { + } +' + +mlr_expect_fail --opprint --from $indir/abixy put ' + for ($o1 = 1, $o2 = 2; $o3 < 3, $o4 = 4; $o5 = 5) { + break; + } +' + +run_mlr --opprint --from $indir/abixy put ' + $o4 = 0; + for ($o1 = 1, $o2 = 2; $o3 = 3, $o4 < 4; $o5 = 5) { + break; + } +' + +# ---------------------------------------------------------------- +announce MAPVARS IN SCALAR FUNCTION-CALL CONTEXTS + +mlr_expect_fail --from $indir/abixy put '$z=strlen($*)' +mlr_expect_fail --from $indir/abixy put '$z=strlen({})' +run_mlr --from $indir/abixy put 'a={}; $z=strlen(a)' + +# ---------------------------------------------------------------- +announce MAPVAR ASSIGNMENTS TO FULL SREC + +run_mlr --from $indir/xyz2 put '$* = {"a":1, "b": {"x":8,"y":9}, "c":3}' +run_mlr --from $indir/xyz2 put '$* = $*' +run_mlr --from $indir/xyz2 put '@a = 1; $* = @a' +run_mlr --from $indir/xyz2 put '@b[1] = 2; $* = @b' +run_mlr --from $indir/xyz2 put '@c[1][2] = 3; $* = @c' +run_mlr --from $indir/xyz2 put '@a = 1; $* = @*' +run_mlr --from $indir/xyz2 put '@b[1] = 2; $* = @*' +run_mlr --from $indir/xyz2 put '@c[1][2] = 3; $* = @*' +run_mlr --from $indir/xyz2 put 'a = 1; $* = a' +run_mlr --from $indir/xyz2 put 'b[1] = 2; $* = b' +run_mlr --from $indir/xyz2 put 'c[1][2] = 3; $* = c' +run_mlr --from $indir/xyz2 put '$* = 3' + +run_mlr --from $indir/xyz2 put ' + func map_valued_func() { + return {"a":1,"b":2} + } + map m = map_valued_func(); + $* = m; +' + +run_mlr --from $indir/xyz2 put ' + func map_valued_func() { + return {"a":1,"b":2} + } + $* = map_valued_func(); +' + +# ---------------------------------------------------------------- +announce MAPVAR ASSIGNMENTS TO FULL OOSVAR + +run_mlr --from $indir/xyz2 put '@* = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump' +run_mlr --from $indir/xyz2 put '@* = $*; dump' +run_mlr --from $indir/xyz2 put '@* = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump; @* = @*; dump' +run_mlr --from $indir/xyz2 put '@a = 1; @* = @a; dump' +run_mlr --from $indir/xyz2 put '@b[1] = 2; @* = @b; dump' +run_mlr --from $indir/xyz2 put '@c[1][2] = 3; @* = @c; dump' +run_mlr --from $indir/xyz2 put '@a = 1; @* = @*; dump' +run_mlr --from $indir/xyz2 put '@b[1] = 2; @* = @*; dump' +run_mlr --from $indir/xyz2 put '@c[1][2] = 3; @* = @*; dump' +run_mlr --from $indir/xyz2 put 'a = 1; @* = a; dump' +run_mlr --from $indir/xyz2 put 'b[1] = 2; @* = b; dump' +run_mlr --from $indir/xyz2 put 'c[1][2] = 3; @* = c; dump' +run_mlr --from $indir/xyz2 put '@* = 3' + +run_mlr --from $indir/xyz2 put ' + func map_valued_func() { + return {"a":1,"b":2} + } + map m = map_valued_func(); + @* = m; + dump +' + +run_mlr --from $indir/xyz2 put ' + func map_valued_func() { + return {"a":1,"b":2} + } + @* = map_valued_func(); + dump +' + +# ---------------------------------------------------------------- +announce MAPVAR ASSIGNMENTS TO OOSVAR + +run_mlr --from $indir/xyz2 put -q '@o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump @o' +run_mlr --from $indir/xyz2 put -q '@o = @o; dump @o' +run_mlr --from $indir/xyz2 put -q '@o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump; @o = @*; dump' +run_mlr --from $indir/xyz2 put -q '@o = $*; dump @o' +run_mlr --from $indir/xyz2 put -q '@o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump @o; @o = @o; dump @o' +run_mlr --from $indir/xyz2 put -q '@o = {"a":1, "b": {"x":8,"y":9}, "c":3}; @o = @o; dump @o' +run_mlr --from $indir/xyz2 put -q '@a = 1; @o = @a; dump @o' +run_mlr --from $indir/xyz2 put -q '@b[1] = 2; @o = @b; dump @o' +run_mlr --from $indir/xyz2 put -q '@c[1][2] = 3; @o = @c; dump @o' +run_mlr --from $indir/xyz2 put -q '@a = 1; @o = @*; dump @o' +run_mlr --from $indir/xyz2 put -q '@b[1] = 2; @o = @*; dump @o' +run_mlr --from $indir/xyz2 put -q '@c[1][2] = 3; @o = @*; dump @o' +run_mlr --from $indir/xyz2 put -q 'a = 1; @o = a; dump @o' +run_mlr --from $indir/xyz2 put -q 'b[1] = 2; @o = b; dump @o' +run_mlr --from $indir/xyz2 put -q 'c[1][2] = 3; @o = c; dump @o' +run_mlr --from $indir/xyz2 put -q 'func map_valued_func() { return {"a":1,"b":2}} @o = map_valued_func(); dump @o' + +# ---------------------------------------------------------------- +announce MAPVAR ASSIGNMENTS TO MAP-TYPED LOCAL + +run_mlr --from $indir/xyz2 put -q 'map o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump o' +mlr_expect_fail --from $indir/xyz2 put -q 'map o = @o; dump o' +run_mlr --from $indir/xyz2 put -q 'map o = $*; dump o' +run_mlr --from $indir/xyz2 put -q 'map o = {"a":1, "b": {"x":8,"y":9}, "c":3}; o = o; dump o' +mlr_expect_fail --from $indir/xyz2 put -q '@a = 1; map o = @a; dump o' +run_mlr --from $indir/xyz2 put -q '@b[1] = 2; map o = @b; dump o' +run_mlr --from $indir/xyz2 put -q '@c[1][2] = 3; map o = @c; dump o' +run_mlr --from $indir/xyz2 put -q '@a = 1; map o = @*; dump o' +run_mlr --from $indir/xyz2 put -q '@b[1] = 2; map o = @*; dump o' +run_mlr --from $indir/xyz2 put -q '@c[1][2] = 3; map o = @*; dump o' +mlr_expect_fail --from $indir/xyz2 put -q 'a = 1; map o = a; dump o' +run_mlr --from $indir/xyz2 put -q 'b[1] = 2; map o = b; dump o' +run_mlr --from $indir/xyz2 put -q 'c[1][2] = 3; map o = c; dump o' +run_mlr --from $indir/xyz2 put -q 'func map_valued_func() { return {"a":1,"b":2}} map o = map_valued_func(); dump o' + +# ---------------------------------------------------------------- +announce MAPVAR ASSIGNMENTS TO VAR-TYPED LOCAL + +run_mlr --from $indir/xyz2 put -q 'var o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump o' +run_mlr --from $indir/xyz2 put -q 'var o = @o; dump o' +run_mlr --from $indir/xyz2 put -q 'var o = $*; dump o' +run_mlr --from $indir/xyz2 put -q 'var o = {"a":1, "b": {"x":8,"y":9}, "c":3}; o = o; dump o' +run_mlr --from $indir/xyz2 put -q '@a = 1; var o = @a; dump o' +run_mlr --from $indir/xyz2 put -q '@b[1] = 2; var o = @b; dump o' +run_mlr --from $indir/xyz2 put -q '@c[1][2] = 3; var o = @c; dump o' +run_mlr --from $indir/xyz2 put -q '@a = 1; var o = @*; dump o' +run_mlr --from $indir/xyz2 put -q '@b[1] = 2; var o = @*; dump o' +run_mlr --from $indir/xyz2 put -q '@c[1][2] = 3; var o = @*; dump o' +run_mlr --from $indir/xyz2 put -q 'a = 1; var o = a; dump o' +run_mlr --from $indir/xyz2 put -q 'b[1] = 2; var o = b; dump o' +run_mlr --from $indir/xyz2 put -q 'c[1][2] = 3; var o = c; dump o' +run_mlr --from $indir/xyz2 put -q 'func map_valued_func() { return {"a":1,"b":2}} var o = map_valued_func(); dump o' + +# ---------------------------------------------------------------- +announce MAPVAR ASSIGNMENTS TO UNTYPED LOCAL + +run_mlr --from $indir/xyz2 put -q 'o = {"a":1, "b": {"x":8,"y":9}, "c":3}; dump o' +run_mlr --from $indir/xyz2 put -q 'o = @o; dump o' +run_mlr --from $indir/xyz2 put -q 'o = $*; dump o' +run_mlr --from $indir/xyz2 put -q 'o = {"a":1, "b": {"x":8,"y":9}, "c":3}; o = o; dump o' +run_mlr --from $indir/xyz2 put -q '@a = 1; o = @a; dump o' +run_mlr --from $indir/xyz2 put -q '@b[1] = 2; o = @b; dump o' +run_mlr --from $indir/xyz2 put -q '@c[1][2] = 3; o = @c; dump o' +run_mlr --from $indir/xyz2 put -q '@a = 1; o = @*; dump o' +run_mlr --from $indir/xyz2 put -q '@b[1] = 2; o = @*; dump o' +run_mlr --from $indir/xyz2 put -q '@c[1][2] = 3; o = @*; dump o' +run_mlr --from $indir/xyz2 put -q 'a = 1; o = a; dump o' +run_mlr --from $indir/xyz2 put -q 'b[1] = 2; o = b; dump o' +run_mlr --from $indir/xyz2 put -q 'c[1][2] = 3; o = c; dump o' +run_mlr --from $indir/xyz2 put -q 'func map_valued_func() { return {"a":1,"b":2}} o = map_valued_func(); dump o' + +# ---------------------------------------------------------------- +announce SPLIT/JOIN + +run_mlr --from $indir/abixy-het put -q 'o = joink($*, ":"); print o' +run_mlr --from $indir/abixy-het put -q 'o = joinv($*, ":"); print o' +run_mlr --from $indir/abixy-het put -q 'o = joinkv($*, ":", ";"); print o' + +run_mlr --from $indir/abixy-het put -q 'o = joink({1:2, "abc":4, 5:"xyz"}, ":"); print o' +run_mlr --from $indir/abixy-het put -q 'o = joinv({1:2, "abc":4, 5:"xyz"}, ":"); print o' +run_mlr --from $indir/abixy-het put -q 'o = joinkv({1:2, "abc":4, 5:"xyz"}, ":", ";"); print o' + +run_mlr --from $indir/abixy-het put '$* = splitnv("a,b,c" , ","); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitkv("a=1,b=2,c", "=", ","); for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitnv("a,b,c", IFS); print ">>".IRS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitkv("a=1,b=2,c", IPS, IFS); print ">>".IRS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitnv("a,b,c", OFS); print ">>".ORS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitkv("a=1,b=2,c", OPS, OFS); print ">>".ORS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' + +run_mlr --from $indir/abixy-het put '$* = splitnvx("a,b,c" , ","); for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitkvx("a=1,b=2,c", "=", ","); for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitnvx("a,b,c", IFS); print ">>".IRS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitkvx("a=1,b=2,c", IPS, IFS); print ">>".IRS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitnvx("a,b,c", OFS); print ">>".ORS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --from $indir/abixy-het put '$* = splitkvx("a=1,b=2,c", OPS, OFS); print ">>".ORS."<<"; for (k, v in $*) {print k.":".typeof(k)." ".v.":".typeof(v)}' + +run_mlr --oxtab --from $indir/abixy-het put 's = joink($*, ":"); $* = splitnv(s, ":")' +run_mlr --oxtab --from $indir/abixy-het put 's = joinv($*, ":"); $* = splitnv(s, ":")' +run_mlr --oxtab --from $indir/abixy-het put 's = joinkv($*, ":", ";"); $* = splitkv(s, ":", ";"); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --oxtab --from $indir/abixy-het put 's = joinkv($*, ":", ";"); $* = splitkvx(s, ":", ";"); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)}' + +run_mlr --oxtab --from $indir/abixy-het put 's = joink({1:2, "abc":4, 5:"xyz"}, ":"); $* = splitnv(s, ":")' +run_mlr --oxtab --from $indir/abixy-het put 's = joinv({1:2, "abc":4, 5:"xyz"}, ":"); $* = splitnv(s, ":")' +run_mlr --oxtab --from $indir/abixy-het put 's = joinkv({1:2, "abc":4, 5:"xyz"}, ":", ";"); $* = splitkv(s, ":", ";"); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)}' +run_mlr --oxtab --from $indir/abixy-het put 's = joinkv({1:2, "abc":4, 5:"xyz"}, ":", ";"); $* = splitkvx(s, ":", ";"); for (k,v in $*) { print k.":".typeof(k)." ".v.":".typeof(v)}' + +# ---------------------------------------------------------------- +announce MAPSUM/MAPDIFF/MAPEXCEPT + +run_mlr --from $indir/abixy-het put -q 'o = mapsum(); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapdiff(); dump o' +mlr_expect_fail --from $indir/abixy-het put -q 'o = mapexcept(); dump o' +mlr_expect_fail --from $indir/abixy-het put -q 'o = mapselect(); dump o' + +run_mlr --from $indir/abixy-het put -q 'o = mapsum($*); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapsum({"a":999}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapdiff($*); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapdiff({"a":999}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapexcept($*); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapexcept({"a":999}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapselect($*); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapselect({"a":999}); dump o' + +run_mlr --from $indir/abixy-het put -q 'o = mapsum($*, {"a":999}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapsum({"a":999}, $*); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapdiff($*, {"a":999}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapdiff({"a":999}, $*); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapexcept($*, "a"); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapexcept({"a":999}, "a"); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapexcept({"a":999}, "nonesuch"); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapselect($*, "a"); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapselect({"a":999}, "a"); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapselect({"a":999}, "nonesuch"); dump o' + +run_mlr --from $indir/abixy-het put -q 'o = mapsum($*, {"a":999}, {"b": 444}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapsum({"a":999}, $*, {"b": 444}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapdiff($*, {"a":999}, {"b": 444}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapdiff({"a":999}, $*, {"b": 444}); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapexcept($*, "a", "b"); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapselect({"a":999}, "b", "nonesuch"); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapselect($*, "a", "b"); dump o' +run_mlr --from $indir/abixy-het put -q 'o = mapselect({"a":999}, "b", "nonesuch"); dump o' + +# ---------------------------------------------------------------- +announce EXTENDED TYPEOF + +run_mlr --from $indir/xyz2 --oxtab put ' + a = {1:2, 3:4}; + b = {1: {2:3, 4:5}}; + @c = {1:2, 3:4}; + @d = {1: {2:3, 4:5}}; + + $ta = typeof(a); + $ta1 = typeof(a[1]); + $ta7 = typeof(a[7]); + + $tb = typeof(b); + $tb1 = typeof(b[1]); + $tb7 = typeof(b[7]); + + $tc = typeof(@c); + $tc1 = typeof(@c[1]); + $tc7 = typeof(@c[7]); + + $td = typeof(@d); + $td1 = typeof(@d[1]); + $td7 = typeof(@d[7]); + + $te1 = typeof(6); + $te2 = typeof({6:4}); + + $tsa = typeof($a); + $tsx = typeof($x); + $ts = typeof($*); +' + +# ---------------------------------------------------------------- +announce HASKEY + +run_mlr --from $indir/abixy-het put '$haskeya = haskey($*, "a")' +run_mlr --from $indir/abixy-het put '$haskey3 = haskey($*, 3)' + +run_mlr --from $indir/xyz2 put '$haskeya = haskey({3:4}, "a")' +run_mlr --from $indir/xyz2 put '$haskey3 = haskey({3:4}, 3)' +run_mlr --from $indir/xyz2 put '$haskey3 = haskey({3:4}, 4)' + +run_mlr --from $indir/xyz2 put 'o = {3:4}; $haskeya = haskey(o, "a")' +run_mlr --from $indir/xyz2 put 'o = {3:4}; $haskey3 = haskey(o, 3)' +run_mlr --from $indir/xyz2 put 'o = {3:4}; $haskey3 = haskey(o, 4)' + +run_mlr --from $indir/xyz2 put '@o = {3:4}; $haskeya = haskey(@o, "a")' +run_mlr --from $indir/xyz2 put '@o = {3:4}; $haskey3 = haskey(@o, 3)' +run_mlr --from $indir/xyz2 put '@o = {3:4}; $haskey3 = haskey(@o, 4)' + +run_mlr --from $indir/xyz2 put 'o = "3:4"; $haskeya = haskey(@o, "a")' +run_mlr --from $indir/xyz2 put 'o = "3:4"; $haskey3 = haskey(@o, 3)' +run_mlr --from $indir/xyz2 put 'o = "3:4"; $haskey3 = haskey(@o, 4)' + +# ---------------------------------------------------------------- +announce LENGTH/DEPTH/LEAFCOUNT + +run_mlr --from $indir/abixy-het put '$length = length($a)' +run_mlr --from $indir/abixy-het put '$length = length($*)' +run_mlr --from $indir/xyz2 put '$length= length({3:4, 5:{6:7}, 8:{9:{10:11}}})' +run_mlr --from $indir/xyz2 put 'o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $length = length(o)' +run_mlr --from $indir/xyz2 put '@o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $length = length(@o)' + +run_mlr --from $indir/abixy-het put '$depth = depth($a)' +run_mlr --from $indir/abixy-het put '$depth = depth($*)' +run_mlr --from $indir/xyz2 put '$depth= depth({3:4, 5:{6:7}, 8:{9:{10:11}}})' +run_mlr --from $indir/xyz2 put 'o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $depth = depth(o)' +run_mlr --from $indir/xyz2 put '@o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $depth = depth(@o)' + +run_mlr --from $indir/abixy-het put '$leafcount = leafcount($a)' +run_mlr --from $indir/abixy-het put '$leafcount = leafcount($*)' +run_mlr --from $indir/xyz2 put '$leafcount= leafcount({3:4, 5:{6:7}, 8:{9:{10:11}}})' +run_mlr --from $indir/xyz2 put 'o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $leafcount = leafcount(o)' +run_mlr --from $indir/xyz2 put '@o = {3:4, 5:{6:7}, 8:{9:{10:11}}}; $leafcount = leafcount(@o)' + +# xxx ternary operator (and most RHS expressions in the grammar) doesn't handle maps. +# run_mlr --from $indir/abixy-het put -q 'o = haskey(NR==4 ? {"a": NF} : {"b": NF}, "a"); print "NR=".NR.",haskeya=".o' + +# ---------------------------------------------------------------- +announce MAPVAR EMIT + +run_mlr -n put 'end { + @a[2][3] = 4; + b[2][3] = 8; + emit (@a, b, {2:{3:12}}); + emitp (@a, b, {2:{3:12}}); + emit {}; + emit (@a, b, {2:{3:12}}), "t"; + emitp (@a, b, {2:{3:12}}), "t"; + emit {}; + emit (@a, b, {2:{3:12}}), "t", "u"; + emitp (@a, b, {2:{3:12}}), "t", "u"; +}' + +run_mlr -n put 'end { + @a[2][3] = 4; + b[2][3] = 8; + emitp (@a, b, {2:{3:12}}); + emit (@a, b, {2:{3:12}}); + emit {}; + emitp (@a, b, {2:{3:12}}), "t"; + emit (@a, b, {2:{3:12}}), "t"; + emit {}; + emitp (@a, b, {2:{3:12}}), "t", "u"; + emit (@a, b, {2:{3:12}}), "t", "u"; +}' + +# ---------------------------------------------------------------- +announce MAPVAR FOR-LOOPS + +run_mlr --from $indir/abixy put -q ' + func f() { + return { + "a:".$a: $i, + "b:".$b: $y, + NR: NF, + } + } + for (k,v in f()) { + print "k=".k; + print "v=".v; + } + print +' + +# ---------------------------------------------------------------- +announce TRAILING COMMAS + +run_mlr --from $indir/abixy put ' + $* = { + "a": $a, + "x": $x, + } +' + +run_mlr --from $indir/xyz345 put 'func f(): int { return 999 } $y=f()' +mlr_expect_fail --from $indir/xyz345 put 'func f(): int { return 999 } $y=f(,)' + +run_mlr --from $indir/xyz345 put 'func f(a,): int { return a*2 } $y=f(NR)' +mlr_expect_fail --from $indir/xyz345 put 'func f(a,,): int { return a*2 } $y=f(NR)' + +run_mlr --from $indir/xyz345 put 'func f(int a,): int { return a*2 } $y=f(NR)' +mlr_expect_fail --from $indir/xyz345 put 'func f(int a,,): int { return a*2 } $y=f(NR)' + +run_mlr --from $indir/xyz345 put 'subr s() { print 999 } call s()' +mlr_expect_fail --from $indir/xyz345 put 'subr s() { print 999 } call s(,)' + +run_mlr --from $indir/xyz345 put 'subr s(a,) { print a*2 } call s(NR)' +mlr_expect_fail --from $indir/xyz345 put 'subr s(a,,) { print a*2 } call s(NR)' + +run_mlr --from $indir/xyz345 put 'subr s(int a,) { print a*2 } call s(NR)' +mlr_expect_fail --from $indir/xyz345 put 'subr s(int a,,) { print a*2 } call s(NR)' + +run_mlr --from $indir/xyz345 put '$y=log10($x)' +run_mlr --from $indir/xyz345 put '$y=log10($x,)' +mlr_expect_fail --from $indir/xyz345 put '$y=log10($x,,)' +mlr_expect_fail --from $indir/xyz345 put '$y=log10(,$x)' +run_mlr --from $indir/xyz345 put '$y=pow($x,2)' +run_mlr --from $indir/xyz345 put '$y=pow($x,2,)' + +# ---------------------------------------------------------------- +announce MAPVARS/UDFs/SUBROUTINES + +run_mlr --from $indir/abixy put ' + func f(m) { + dump m; + sum = 0; + for (k, v in m) { + sum += k + } + return sum + } + @v[$i] = $a; + $y = f(@v) +' + +run_mlr --from $indir/abixy put ' + subr s(m) { + dump m; + sum = 0; + for (k, v in m) { + sum += k + } + @sum = sum; + } + @v[$i] = $a; + call s(@v); + $y = @sum; +' + +run_mlr --from $indir/abixy-het put 'func f(x) {return {"a":x,"b":x**2}}; map o = f($x); $* = o' +run_mlr --from $indir/abixy-het put -q 'func f(x) {return x**2}; var z = f($x); dump z' +run_mlr --from $indir/abixy-het put -q 'func f(x) {map m = {NR:x};return m}; z = f($y); dump z' + +mlr_expect_fail --from $indir/abixy put ' + func f(int x): map { + if (NR==2) { + return 2 + } else { + return {} + } + } + $y=f($x) +' + +run_mlr --from $indir/abixy put ' + func f(int x): map { + if (NR==200) { + return 2 + } else { + return {} + } + } + $y=f($i) +' + +mlr_expect_fail --from $indir/abixy put ' + func f(int x): map { + if (NR==200) { + return 2 + } else { + return {} + } + } + $y=f($x) +' + +run_mlr --from $indir/abixy put ' + func f(int x): var { + if (NR==2) { + return 2 + } else { + return {} + } + } + $y=f($i) +' + +mlr_expect_fail --from $indir/abixy put ' + func f(int x): var { + if (NR==2) { + return 2 + } else { + return {} + } + } + $y=f($x) +' + +mlr_expect_fail --from $indir/abixy put ' + func f(x): int { + # fall-through return value is absent-null + } + $y=f($x) +' + +mlr_expect_fail --from $indir/abixy put ' + int a = 1; + var b = a[2]; # cannot index localvar declared non-map +' + +# This one is intended to particularly look at freeing, e.g. with './reg_test/run --valgrind'. +run_mlr --oxtab --from $indir/abixy-het put ' + $* = mapdiff( + mapsum($*, {"a": "newval"}), + {"b": "nonesuch"}, + ) +' + +# ---------------------------------------------------------------- +# AUX ENTRIES + +run_mlr_for_auxents lecat --mono < $indir/line-ending-cr.bin +run_mlr_for_auxents lecat --mono < $indir/line-ending-lf.bin +run_mlr_for_auxents lecat --mono < $indir/line-ending-crlf.bin + +run_mlr_for_auxents_no_output termcvt --cr2lf < $indir/line-ending-cr.bin > $outdir/line-ending-temp-1.bin +run_mlr_for_auxents_no_output termcvt --cr2crlf < $indir/line-ending-cr.bin > $outdir/line-ending-temp-2.bin +run_mlr_for_auxents_no_output termcvt --lf2cr < $indir/line-ending-lf.bin > $outdir/line-ending-temp-3.bin +run_mlr_for_auxents_no_output termcvt --lf2crlf < $indir/line-ending-lf.bin > $outdir/line-ending-temp-4.bin +run_mlr_for_auxents_no_output termcvt --crlf2cr < $indir/line-ending-crlf.bin > $outdir/line-ending-temp-5.bin +run_mlr_for_auxents_no_output termcvt --crlf2lf < $indir/line-ending-crlf.bin > $outdir/line-ending-temp-6.bin + +run_mlr_for_auxents hex < $outdir/line-ending-temp-1.bin +run_mlr_for_auxents hex < $outdir/line-ending-temp-2.bin +run_mlr_for_auxents hex < $outdir/line-ending-temp-3.bin +run_mlr_for_auxents hex < $outdir/line-ending-temp-4.bin +run_mlr_for_auxents hex < $outdir/line-ending-temp-5.bin +run_mlr_for_auxents hex < $outdir/line-ending-temp-6.bin + +# ================================================================ +# A key feature of this regression script is that it can be invoked from any +# directory. Depending on the directory it's invoked from, the path to $outdir +# may vary. Nonetheless for debugging it's crucial that we echo out each +# command being executed -- here we use diff -I to skip the info lines and +# focus the test on program output per se. + +echo +echo ================================================================ +echo "Differences between $expfile and $outfile:" + +# We run with 'set -e' all the way through this script, to die on error -- but +# for the diff command we want to trap the error and die with a message, especially +# when the diff is long. + +set +e +diff -a -I '^mlr' -I '^cat' -C5 $expfile $outfile +status=$? + +if [ $status -eq 0 ]; then + echo "No differences were found between $expfile and $outfile" + echo ================================================================ + echo + echo ALL REGRESSION TESTS PASSED + echo Tests completed: $num_completed + exit 0 +else + echo + echo "Differences were found between $expfile and $outfile !" + echo + echo Tests completed: $num_completed + exit 1 +fi