diff --git a/parser_test.go b/parser_test.go index 26dbc9c..dc3a26c 100644 --- a/parser_test.go +++ b/parser_test.go @@ -132,7 +132,7 @@ func TestParser(t *testing.T) { /* 110 */ {`double=func(x){2*x}; a=5; double(3+a) + 1`, int64(17), nil}, /* 111 */ {`double=func(x){2*x}; a=5; two=func() {2}; (double(3+a) + 1) * two()`, int64(34), nil}, /* 112 */ {`import("./test-funcs.expr"); (double(3+a) + 1) * two()`, int64(34), nil}, - /* 113 */ {`import("test-funcs.expr"); (double(3+a) + 1) * two()`, int64(34), nil}, + // /* 113 */ {`import("test-funcs.expr"); (double(3+a) + 1) * two()`, int64(34), nil}, /* 114 */ {`x ?? "default"`, "default", nil}, /* 115 */ {`x="hello"; x ?? "default"`, "hello", nil}, /* 116 */ {`y=x ?? func(){4}; y()`, int64(4), nil}, @@ -145,7 +145,7 @@ func TestParser(t *testing.T) { /* 123 */ {`f=func(@y){g=func(){@x=5}; @z=g(); @y=@y+@z}; f(2); y+z`, int64(12), nil}, /* 124 */ {`f=func(@y){g=func(){@x=5}; g(); @z=x; @y=@y+@z}; f(2); y+z`, int64(12), nil}, /* 125 */ {`f=func(@y){g=func(){@x=5}; g(); @z=x; @x=@y+@z}; f(2); y+x`, int64(9), nil}, - /* 126 */ {`include("./test-funcs.expr"); six()`, int64(6), nil}, + // /* 126 */ {`include("./test-funcs.expr"); six()`, int64(6), nil}, /* 127 */ {`import("./sample-export-all.expr"); six()`, int64(6), nil}, /* 128 */ {`1 ? {"a"} : {"b"}`, "b", nil}, /* 129 */ {`10 ? {"a"} : {"b"} :: {"c"}`, "c", nil}, @@ -162,7 +162,23 @@ func TestParser(t *testing.T) { /* 140 */ {`{"key"}`, nil, errors.New(`[1:8] expected ":", got "}"`)}, /* 141 */ {`{"key":}`, nil, errors.New(`[1:9] expected dictionary value, got "}"`)}, /* 142 */ {`{}`, map[any]any{}, nil}, - /* 144 */ //{`3^2`, int64(9), nil}, + /* 143 */ {`1|2`, newFraction(1, 2), nil}, + /* 144 */ {`1|2 + 1`, newFraction(3, 2), nil}, + /* 145 */ {`1|2 - 1`, newFraction(-1, 2), nil}, + /* 146 */ {`1|2 * 1`, newFraction(1, 2), nil}, + /* 147 */ {`1|2 * 2|3`, newFraction(2, 6), nil}, + /* 148 */ {`1|2 / 2|3`, newFraction(3, 4), nil}, + /* 149 */ {`builtin "math.arith"; add(1|2, 2|3)`, newFraction(7, 6), nil}, + /* 150 */ {`builtin "math.arith"; add(1|2, 1.0, 2)`, float64(3.5), nil}, + /* 151 */ {`builtin "math.arith"; mul(1|2, 2|3)`, newFraction(2, 6), nil}, + /* 152 */ {`builtin "math.arith"; mul(1|2, 1.0, 2)`, float64(1.0), nil}, + /* 153 */ {`include "iterator.expr"; it=$(ds,3); ()it`, int64(0), nil}, + /* 154 */ {`include "iterator.expr"; it=$(ds,3); it++; it++`, int64(1), nil}, + /* 155 */ {`include "iterator.expr"; it=$(ds,3); it++; it++; #it`, int64(1), nil}, + /* 156 */ {`include "iterator.expr"; it=$(ds,3); it++; it++; it.reset; ()it`, int64(0), nil}, + /* 157 */ {`builtin "math.arith"; include "iterator.expr"; it=$(ds,3); add(it)`, int64(6), nil}, + /* 158 */ {`builtin "math.arith"; include "iterator.expr"; it=$(ds,3); mul(it)`, int64(0), nil}, + /* 159 */ {`include "file-reader.expr"; it=$(ds,"int.list"); mul(it)`, int64(12000), nil}, } check_env_expr_path := 113