diff --git a/src/Jsonata.Net.Native.JsonNet/Jsonata.Net.Native.JsonNet.csproj b/src/Jsonata.Net.Native.JsonNet/Jsonata.Net.Native.JsonNet.csproj index b45e8f0..e69da9c 100644 --- a/src/Jsonata.Net.Native.JsonNet/Jsonata.Net.Native.JsonNet.csproj +++ b/src/Jsonata.Net.Native.JsonNet/Jsonata.Net.Native.JsonNet.csproj @@ -24,7 +24,7 @@ true snupkg true - 2.3.1 + 2.4.0 True ..\sgKey.snk diff --git a/src/Jsonata.Net.Native.SystemTextJson/Jsonata.Net.Native.SystemTextJson.csproj b/src/Jsonata.Net.Native.SystemTextJson/Jsonata.Net.Native.SystemTextJson.csproj index 97b525d..345759c 100644 --- a/src/Jsonata.Net.Native.SystemTextJson/Jsonata.Net.Native.SystemTextJson.csproj +++ b/src/Jsonata.Net.Native.SystemTextJson/Jsonata.Net.Native.SystemTextJson.csproj @@ -24,7 +24,7 @@ true snupkg true - 2.3.0 + 2.4.0 True ..\sgKey.snk diff --git a/src/Jsonata.Net.Native.TestSuite/TestReport/Jsonata.Net.Native.TestSuite.xml b/src/Jsonata.Net.Native.TestSuite/TestReport/Jsonata.Net.Native.TestSuite.xml index 663f4f1..e4a06bb 100644 --- a/src/Jsonata.Net.Native.TestSuite/TestReport/Jsonata.Net.Native.TestSuite.xml +++ b/src/Jsonata.Net.Native.TestSuite/TestReport/Jsonata.Net.Native.TestSuite.xml @@ -1,6 +1,6 @@ - - + + Jsonata.Net.Native.TestSuite.Tests.array-constructor.array-sequences[1] @@ -1616,52 +1616,52 @@ Jsonata.Net.Native.TestSuite.Tests.wildcards.case009 - - + + - + - + - + - + - + - + - + - + - + - + @@ -1670,7 +1670,7 @@ Result: '[[3,1578381600],[5,1578381700]]' Expected: '[[3,1578381600],[5,1578381700]]' ]]> - + @@ -1679,7 +1679,7 @@ Result: '[[3,1578381600]]' Expected: '[[3,1578381600]]' ]]> - + @@ -1688,7 +1688,7 @@ Result: '[3,1578381600]' Expected: '[3,1578381600]' ]]> - + @@ -1697,7 +1697,7 @@ Result: '[{"foo":"bar"}]' Expected: '[{"foo":"bar"}]' ]]> - + @@ -1706,7 +1706,7 @@ Result: '[{"foo":"bar"}]' Expected: '[{"foo":"bar"}]' ]]> - + @@ -1715,7 +1715,7 @@ Result: '[]' Expected: '[]' ]]> - + @@ -1724,7 +1724,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -1733,7 +1733,7 @@ Result: '[1,2]' Expected: '[1,2]' ]]> - + @@ -1742,7 +1742,7 @@ Result: '[1,2,3]' Expected: '[1,2,3]' ]]> - + @@ -1751,7 +1751,7 @@ Result: '[1,2,[3,4]]' Expected: '[1,2,[3,4]]' ]]> - + @@ -1760,7 +1760,7 @@ Result: '[1,"two",["three",4]]' Expected: '[1,"two",["three",4]]' ]]> - + @@ -1769,7 +1769,7 @@ Result: '[1,2,["three","four"]]' Expected: '[1,2,["three","four"]]' ]]> - + @@ -1778,7 +1778,7 @@ Result: '["foo.bar",42,["foo.baz",{"fud":"hello"},{"fud":"world"}]]' Expected: '["foo.bar",42,["foo.baz",{"fud":"hello"},{"fud":"world"}]]' ]]> - + @@ -1787,7 +1787,7 @@ Result: '1' Expected: '1' ]]> - + @@ -1796,7 +1796,7 @@ Result: '[3,4]' Expected: '[3,4]' ]]> - + @@ -1805,7 +1805,7 @@ Result: '4' Expected: '4' ]]> - + @@ -1814,7 +1814,7 @@ Result: '[["hello","hello"],["world","world"]]' Expected: '[["hello","hello"],["world","world"]]' ]]> - + @@ -1823,7 +1823,7 @@ Result: '[[["hello","hello"]],[["world","world"]]]' Expected: '[[["hello","hello"]],[["world","world"]]]' ]]> - + @@ -1832,7 +1832,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -1841,7 +1841,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -1850,7 +1850,7 @@ Result: '["Winchester","London"]' Expected: '["Winchester","London"]' ]]> - + @@ -1859,7 +1859,7 @@ Result: '["Winchester","London"]' Expected: '["Winchester","London"]' ]]> - + @@ -1868,7 +1868,7 @@ Result: '[0,2,4,6,8]' Expected: '[0,2,4,6,8]' ]]> - + @@ -1877,7 +1877,7 @@ Result: '[1,2,3]' Expected: '[1,2,3]' ]]> - + @@ -1886,7 +1886,7 @@ Result: '[1,2,3]' Expected: '[1,2,3]' ]]> - + @@ -1895,7 +1895,7 @@ Result: '[1,2,3]' Expected: '[1,2,3]' ]]> - + @@ -1904,7 +1904,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -1913,7 +1913,7 @@ Result: '3' Expected: '3' ]]> - + @@ -1922,7 +1922,7 @@ Result: '3' Expected: '3' ]]> - + @@ -1931,7 +1931,7 @@ Result: '7' Expected: '7' ]]> - + @@ -1940,7 +1940,7 @@ Result: '[68.9,21.67,137.8,107.99]' Expected: '[68.9,21.67,137.8,107.99]' ]]> - + @@ -1949,7 +1949,7 @@ Result: '"order103"' Expected: '"order103"' ]]> - + @@ -1958,7 +1958,7 @@ Result: '"order103"' Expected: '"order103"' ]]> - + @@ -1967,7 +1967,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -1976,7 +1976,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -1985,7 +1985,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -1994,7 +1994,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2003,7 +2003,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2012,7 +2012,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2021,7 +2021,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2030,7 +2030,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2039,7 +2039,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2048,7 +2048,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2057,7 +2057,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2066,7 +2066,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2075,7 +2075,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2084,7 +2084,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2093,7 +2093,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2102,7 +2102,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2111,7 +2111,7 @@ Result: '["fakeintegrationname"]' Expected: '["fakeintegrationname"]' ]]> - + @@ -2120,7 +2120,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2129,7 +2129,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2138,7 +2138,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2147,7 +2147,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2156,7 +2156,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2165,7 +2165,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2174,7 +2174,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2183,7 +2183,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2192,7 +2192,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2201,7 +2201,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2210,7 +2210,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -2220,7 +2220,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2230,7 +2230,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2243,7 +2243,7 @@ Not checking codes yet]]> Expr is '$type(age) = 'number' or $number(age) > 0' ]]> - + @@ -2252,7 +2252,7 @@ Result: '{"Account":"Firefly","SKU-858383":"Bowler Hat","SKU-345664":"Cloak"}' Expected: '{"Account":"Firefly","SKU-858383":"Bowler Hat","SKU-345664":"Cloak"}' ]]> - + @@ -2261,7 +2261,7 @@ Result: '{"Account":"Firefly","SKU-858383":"Bowler Hat","SKU-345664":"Cloak"}' Expected: '{"Account":"Firefly","SKU-858383":"Bowler Hat","SKU-345664":"Cloak"}' ]]> - + @@ -2272,7 +2272,7 @@ Result: '2' Expected: '2' ]]> - + @@ -2282,7 +2282,7 @@ Result: '"Hello"' Expected: '"Hello"' ]]> - + @@ -2296,7 +2296,7 @@ Not checking codes yet]]> ' ]]> - + @@ -2330,7 +2330,7 @@ Result: '16' Expected: '16' ]]> - + @@ -2339,7 +2339,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2348,7 +2348,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2357,7 +2357,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2366,7 +2366,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2375,7 +2375,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2384,7 +2384,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2393,7 +2393,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2402,7 +2402,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2414,7 +2414,7 @@ Not checking codes yet]]> - + @@ -2426,7 +2426,7 @@ Not checking codes yet]]> - + @@ -2438,7 +2438,7 @@ Not checking codes yet]]> = true' ]]> - + @@ -2447,7 +2447,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2456,7 +2456,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2465,7 +2465,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2474,7 +2474,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2483,7 +2483,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2492,7 +2492,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2501,7 +2501,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2510,7 +2510,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2519,7 +2519,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2528,7 +2528,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2537,7 +2537,7 @@ Result: '{"fud":"hello"}' Expected: '{"fud":"hello"}' ]]> - + @@ -2546,7 +2546,7 @@ Result: '{"fud":"hello"}' Expected: '{"fud":"hello"}' ]]> - + @@ -2555,7 +2555,7 @@ Result: '[34.45,34.45,107.99]' Expected: '[34.45,34.45,107.99]' ]]> - + @@ -2564,7 +2564,7 @@ Result: '[34.45,21.67,34.45]' Expected: '[34.45,21.67,34.45]' ]]> - + @@ -2576,7 +2576,7 @@ Not checking codes yet]]> 1' ]]> - + @@ -2588,7 +2588,7 @@ Not checking codes yet]]> $x' ]]> - + @@ -2597,7 +2597,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -2606,7 +2606,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -2615,7 +2615,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2624,7 +2624,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2633,7 +2633,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2642,7 +2642,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2651,7 +2651,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2660,7 +2660,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2669,7 +2669,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2678,7 +2678,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2687,7 +2687,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2696,7 +2696,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2705,7 +2705,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2714,7 +2714,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2723,7 +2723,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2732,7 +2732,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2741,7 +2741,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2750,7 +2750,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2759,7 +2759,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2768,7 +2768,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -2777,7 +2777,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -2786,7 +2786,7 @@ Result: '"Red"' Expected: '"Red"' ]]> - + @@ -2795,7 +2795,7 @@ Result: '"White"' Expected: '"White"' ]]> - + @@ -2804,7 +2804,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -2813,7 +2813,7 @@ Result: '"Red"' Expected: '"Red"' ]]> - + @@ -2822,7 +2822,7 @@ Result: '"White"' Expected: '"White"' ]]> - + @@ -2831,7 +2831,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -2840,7 +2840,7 @@ Result: '"Cheap"' Expected: '"Cheap"' ]]> - + @@ -2849,7 +2849,7 @@ Result: '["Expensive","Cheap","Expensive","Expensive"]' Expected: '["Expensive","Cheap","Expensive","Expensive"]' ]]> - + @@ -2858,7 +2858,7 @@ Result: '["Expensive","Cheap","Expensive","Rip off"]' Expected: '["Expensive","Cheap","Expensive","Rip off"]' ]]> - + @@ -2867,7 +2867,7 @@ Result: '5' Expected: '5' ]]> - + @@ -2876,7 +2876,7 @@ Result: '["1","2","3","4","5"]' Expected: '["1","2","3","4","5"]' ]]> - + @@ -2885,7 +2885,7 @@ Result: '["Item 1","Item 2","Item 3","Item 4","Item 5"]' Expected: '["Item 1","Item 2","Item 3","Item 4","Item 5"]' ]]> - + @@ -2894,7 +2894,7 @@ Result: '["BOWLER","TRILBY","BOWLER","CLOAK"]' Expected: '["BOWLER","TRILBY","BOWLER","CLOAK"]' ]]> - + @@ -2903,7 +2903,7 @@ Result: '[{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}]' Expected: '[{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}]' ]]> - + @@ -2912,7 +2912,7 @@ Result: '[{"fud":"hello"},{"fud":"world"}]' Expected: '[{"fud":"hello"},{"fud":"world"}]' ]]> - + @@ -2921,7 +2921,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -2930,7 +2930,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -2939,7 +2939,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -2948,7 +2948,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -2957,7 +2957,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -2966,7 +2966,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -2975,7 +2975,7 @@ Result: '["Purple","Orange","Purple","Black"]' Expected: '["Purple","Orange","Purple","Black"]' ]]> - + @@ -2984,7 +2984,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -2993,7 +2993,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -3002,7 +3002,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -3011,7 +3011,7 @@ Result: '[34.45,21.67,34.45,107.99]' Expected: '[34.45,21.67,34.45,107.99]' ]]> - + @@ -3020,7 +3020,7 @@ Result: '[34.45,21.67,34.45,107.99]' Expected: '[34.45,21.67,34.45,107.99]' ]]> - + @@ -3029,7 +3029,7 @@ Result: '34.45' Expected: '34.45' ]]> - + @@ -3038,7 +3038,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -3047,7 +3047,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -3056,7 +3056,7 @@ Result: '"aGVsbG86d29ybGQ="' Expected: '"aGVsbG86d29ybGQ="' ]]> - + @@ -3065,7 +3065,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -3074,7 +3074,7 @@ Result: '"hello:world"' Expected: '"hello:world"' ]]> - + @@ -3083,7 +3083,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -3095,7 +3095,7 @@ Not checking codes yet]]> - + @@ -3107,7 +3107,7 @@ Not checking codes yet]]> - + @@ -3119,7 +3119,7 @@ Not checking codes yet]]> - + @@ -3131,7 +3131,7 @@ Not checking codes yet]]> - + @@ -3143,7 +3143,7 @@ Not checking codes yet]]> - + @@ -3155,7 +3155,7 @@ Not checking codes yet]]> - + @@ -3167,7 +3167,7 @@ Not checking codes yet]]> - + @@ -3179,7 +3179,7 @@ Not checking codes yet]]> - + @@ -3191,7 +3191,7 @@ Not checking codes yet]]> - + @@ -3203,7 +3203,7 @@ Not checking codes yet]]> - + @@ -3215,25 +3215,25 @@ Not checking codes yet]]> - + - + @@ -3245,7 +3245,7 @@ Not checking codes yet]]> - + @@ -3257,7 +3257,7 @@ Not checking codes yet]]> - + @@ -3269,7 +3269,7 @@ Not checking codes yet]]> - + @@ -3281,7 +3281,7 @@ Not checking codes yet]]> - + @@ -3293,7 +3293,7 @@ Not checking codes yet]]> - + @@ -3305,7 +3305,7 @@ Not checking codes yet]]> - + @@ -3317,7 +3317,7 @@ Not checking codes yet]]> - + @@ -3329,7 +3329,7 @@ Not checking codes yet]]> - + @@ -3341,7 +3341,7 @@ Not checking codes yet]]> 5' ]]> - + @@ -3353,7 +3353,7 @@ Not checking codes yet]]> - + @@ -3365,7 +3365,7 @@ Not checking codes yet]]> - + @@ -3377,7 +3377,7 @@ Not checking codes yet]]> - + @@ -3389,21 +3389,21 @@ Not checking codes yet]]> - + - + - + @@ -3412,7 +3412,7 @@ Result: '42' Expected: '42' ]]> - + @@ -3421,7 +3421,7 @@ Result: '[{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}]' Expected: '[{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}]' ]]> - + @@ -3430,7 +3430,7 @@ Result: '"gotcha"' Expected: '"gotcha"' ]]> - + @@ -3439,7 +3439,7 @@ Result: '[{"fud":"hello"},{"fud":"world"}]' Expected: '[{"fud":"hello"},{"fud":"world"}]' ]]> - + @@ -3448,7 +3448,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -3457,7 +3457,7 @@ Result: 'null' Expected: 'null' ]]> - + @@ -3466,7 +3466,7 @@ Result: '"gotcha"' Expected: '"gotcha"' ]]> - + @@ -3475,7 +3475,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -3484,7 +3484,7 @@ Result: '[{"number":0},{"number":1},{"number":2}]' Expected: '[{"number":0},{"number":1},{"number":2}]' ]]> - + @@ -3493,7 +3493,7 @@ Result: '{"number":0}' Expected: '{"number":0}' ]]> - + @@ -3502,7 +3502,7 @@ Result: '[{"number":0}]' Expected: '[{"number":0}]' ]]> - + @@ -3511,7 +3511,7 @@ Result: '0' Expected: '0' ]]> - + @@ -3520,7 +3520,7 @@ Result: '0' Expected: '0' ]]> - + @@ -3529,7 +3529,7 @@ Result: '[0,1,2]' Expected: '[0,1,2]' ]]> - + @@ -3538,7 +3538,7 @@ Result: '{"Hello":"World"}' Expected: '{"Hello":"World"}' ]]> - + @@ -3547,7 +3547,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -3556,7 +3556,7 @@ Result: '[[34.45,21.67],[34.45,107.99]]' Expected: '[[34.45,21.67],[34.45,107.99]]' ]]> - + @@ -3565,7 +3565,7 @@ Result: '[1,2,3,4]' Expected: '[1,2,3,4]' ]]> - + @@ -3574,7 +3574,7 @@ Result: '[1,2,3,4]' Expected: '[1,2,3,4]' ]]> - + @@ -3583,7 +3583,7 @@ Result: '{"nest0":[1,2]}' Expected: '{"nest0":[1,2]}' ]]> - + @@ -3592,7 +3592,7 @@ Result: '{"nest0":[3,4]}' Expected: '{"nest0":[3,4]}' ]]> - + @@ -3601,7 +3601,7 @@ Result: '{"nest0":[3,4]}' Expected: '{"nest0":[3,4]}' ]]> - + @@ -3610,7 +3610,7 @@ Result: '[1,2]' Expected: '[1,2]' ]]> - + @@ -3619,7 +3619,7 @@ Result: '[3,4]' Expected: '[3,4]' ]]> - + @@ -3628,7 +3628,7 @@ Result: '1' Expected: '1' ]]> - + @@ -3637,7 +3637,7 @@ Result: '[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]' Expected: '[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]' ]]> - + @@ -3646,7 +3646,7 @@ Result: '[[[1],[2]],[[3],[4]],[[5],[6]],[[7],[8]]]' Expected: '[[[1],[2]],[[3],[4]],[[5],[6]],[[7],[8]]]' ]]> - + @@ -3655,7 +3655,7 @@ Result: '[[[1],[2],[3],[4]],[[5],[6],[7],[8]]]' Expected: '[[[1],[2],[3],[4]],[[5],[6],[7],[8]]]' ]]> - + @@ -3664,7 +3664,7 @@ Result: '[[[1,2],[3,4]],[[5,6],[7,8]]]' Expected: '[[[1,2],[3,4]],[[5,6],[7,8]]]' ]]> - + @@ -3673,7 +3673,7 @@ Result: '[[1,2,3,4],[5,6,7,8]]' Expected: '[[1,2,3,4],[5,6,7,8]]' ]]> - + @@ -3682,7 +3682,7 @@ Result: '[[1,2],[3,4],[5,6],[7,8]]' Expected: '[[1,2],[3,4],[5,6],[7,8]]' ]]> - + @@ -3691,7 +3691,7 @@ Result: '[[1],[2],[3],[4],[5],[6],[7],[8]]' Expected: '[[1],[2],[3],[4],[5],[6],[7],[8]]' ]]> - + @@ -3700,7 +3700,7 @@ Result: '[1,2,3,4,5,6,7,8]' Expected: '[1,2,3,4,5,6,7,8]' ]]> - + @@ -3709,7 +3709,7 @@ Result: '[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]' Expected: '[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]' ]]> - + @@ -3718,7 +3718,7 @@ Result: '[[[1],[2]],[[3],[4]],[[5],[6]],[[7],[8]]]' Expected: '[[[1],[2]],[[3],[4]],[[5],[6]],[[7],[8]]]' ]]> - + @@ -3727,7 +3727,7 @@ Result: '[[[1],[2],[3],[4]],[[5],[6],[7],[8]]]' Expected: '[[[1],[2],[3],[4]],[[5],[6],[7],[8]]]' ]]> - + @@ -3736,7 +3736,7 @@ Result: '[[[1,2],[3,4]],[[5,6],[7,8]]]' Expected: '[[[1,2],[3,4]],[[5,6],[7,8]]]' ]]> - + @@ -3745,7 +3745,7 @@ Result: '[[1,2,3,4],[5,6,7,8]]' Expected: '[[1,2,3,4],[5,6,7,8]]' ]]> - + @@ -3754,7 +3754,7 @@ Result: '[[1,2],[3,4],[5,6],[7,8]]' Expected: '[[1,2],[3,4],[5,6],[7,8]]' ]]> - + @@ -3763,7 +3763,7 @@ Result: '[[1],[2],[3],[4],[5],[6],[7],[8]]' Expected: '[[1],[2],[3],[4],[5],[6],[7],[8]]' ]]> - + @@ -3772,7 +3772,7 @@ Result: '[1,2,3,4,5,6,7,8]' Expected: '[1,2,3,4,5,6,7,8]' ]]> - + @@ -3781,7 +3781,7 @@ Result: '1' Expected: '1' ]]> - + @@ -3790,7 +3790,7 @@ Result: '1' Expected: '1' ]]> - + @@ -3799,7 +3799,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -3808,7 +3808,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -3817,7 +3817,7 @@ Result: '[[1]]' Expected: '[[1]]' ]]> - + @@ -3826,7 +3826,7 @@ Result: '[[1]]' Expected: '[[1]]' ]]> - + @@ -3835,7 +3835,7 @@ Result: '[1,2,3]' Expected: '[1,2,3]' ]]> - + @@ -3844,7 +3844,7 @@ Result: '[1,2,3]' Expected: '[1,2,3]' ]]> - + @@ -3853,7 +3853,7 @@ Result: '[1,3]' Expected: '[1,3]' ]]> - + @@ -3862,7 +3862,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -3871,7 +3871,7 @@ Result: '[1,3]' Expected: '[1,3]' ]]> - + @@ -3880,7 +3880,7 @@ Result: '[1,2,3,4]' Expected: '[1,2,3,4]' ]]> - + @@ -3889,7 +3889,7 @@ Result: '"077 7700 1234"' Expected: '"077 7700 1234"' ]]> - + @@ -3898,7 +3898,7 @@ Result: '["077 7700 1234"]' Expected: '["077 7700 1234"]' ]]> - + @@ -3907,7 +3907,7 @@ Result: '["077 7700 1234"]' Expected: '["077 7700 1234"]' ]]> - + @@ -3916,7 +3916,7 @@ Result: '["01962 001234","01962 001235"]' Expected: '["01962 001234","01962 001235"]' ]]> - + @@ -3925,7 +3925,7 @@ Result: '{"home":"0203 544 1234","office":["01962 001234","01962 001235"],"mobil Expected: '{"home":"0203 544 1234","office":["01962 001234","01962 001235"],"mobile":"077 7700 1234"}' ]]> - + @@ -3934,7 +3934,7 @@ Result: '{"home":["0203 544 1234"],"office":["01962 001234","01962 001235"],"mob Expected: '{"home":["0203 544 1234"],"office":["01962 001234","01962 001235"],"mobile":["077 7700 1234"]}' ]]> - + @@ -3943,7 +3943,7 @@ Result: '[{"type":"command"}]' Expected: '[{"type":"command"}]' ]]> - + @@ -3952,7 +3952,7 @@ Result: '[{"type":"command"}]' Expected: '[{"type":"command"}]' ]]> - + @@ -3961,7 +3961,7 @@ Result: '[5]' Expected: '[5]' ]]> - + @@ -3970,7 +3970,7 @@ Result: '[{"title":"example","description":"Hello"}]' Expected: '[{"title":"example","description":"Hello"}]' ]]> - + @@ -3979,7 +3979,7 @@ Result: '200000' Expected: '200000' ]]> - + @@ -3988,7 +3988,7 @@ Result: '200000' Expected: '200000' ]]> - + @@ -3997,7 +3997,7 @@ Result: '[[3,1578381600],[5,1578381700]]' Expected: '[[3,1578381600],[5,1578381700]]' ]]> - + @@ -4006,7 +4006,7 @@ Result: '[3,1578381600]' Expected: '[3,1578381600]' ]]> - + @@ -4015,7 +4015,7 @@ Result: '[[3,1578381600],[5,1578381700]]' Expected: '[[3,1578381600],[5,1578381700]]' ]]> - + @@ -4024,7 +4024,7 @@ Result: '[[3,1578381600]]' Expected: '[[3,1578381600]]' ]]> - + @@ -4033,7 +4033,7 @@ Result: '3.7' Expected: '3.7' ]]> - + @@ -4042,7 +4042,7 @@ Result: '3.7' Expected: '3.7' ]]> - + @@ -4051,7 +4051,7 @@ Result: '0' Expected: '0' ]]> - + @@ -4060,7 +4060,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4069,7 +4069,7 @@ Result: '[1,2,3,4]' Expected: '[1,2,3,4]' ]]> - + @@ -4078,7 +4078,7 @@ Result: '[1,3,4]' Expected: '[1,3,4]' ]]> - + @@ -4087,7 +4087,7 @@ Result: '[1,2]' Expected: '[1,2]' ]]> - + @@ -4096,7 +4096,7 @@ Result: '1' Expected: '1' ]]> - + @@ -4105,7 +4105,7 @@ Result: '[2,3,4]' Expected: '[2,3,4]' ]]> - + @@ -4114,7 +4114,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -4123,7 +4123,7 @@ Result: '"ORDER103"' Expected: '"ORDER103"' ]]> - + @@ -4132,7 +4132,7 @@ Result: '"order103"' Expected: '"order103"' ]]> - + @@ -4141,7 +4141,7 @@ Result: '"order103order104"' Expected: '"order103order104"' ]]> - + @@ -4150,7 +4150,7 @@ Result: '"order103, order104"' Expected: '"order103, order104"' ]]> - + @@ -4159,7 +4159,7 @@ Result: '336.36' Expected: '336.36' ]]> - + @@ -4168,7 +4168,7 @@ Result: '"HELLO WORLD"' Expected: '"HELLO WORLD"' ]]> - + @@ -4177,7 +4177,7 @@ Result: '"example"' Expected: '"example"' ]]> - + @@ -4186,7 +4186,7 @@ Result: '""' Expected: '""' ]]> - + @@ -4195,7 +4195,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4204,7 +4204,7 @@ Result: '"example"' Expected: '"example"' ]]> - + @@ -4213,7 +4213,7 @@ Result: '[1,4,9,16,25]' Expected: '[1,4,9,16,25]' ]]> - + @@ -4222,7 +4222,7 @@ Result: '55' Expected: '55' ]]> - + @@ -4231,7 +4231,7 @@ Result: '"foo"' Expected: '"foo"' ]]> - + @@ -4240,7 +4240,7 @@ Result: '225' Expected: '225' ]]> - + @@ -4249,7 +4249,7 @@ Result: '"225"' Expected: '"225"' ]]> - + @@ -4258,7 +4258,7 @@ Result: '225' Expected: '225' ]]> - + @@ -4267,7 +4267,7 @@ Result: '55' Expected: '55' ]]> - + @@ -4276,7 +4276,7 @@ Result: '14400' Expected: '14400' ]]> - + @@ -4285,7 +4285,7 @@ Result: '14400' Expected: '14400' ]]> - + @@ -4294,7 +4294,7 @@ Result: '336.36' Expected: '336.36' ]]> - + @@ -4306,7 +4306,7 @@ Not checking codes yet]]> "hello"' ]]> - + @@ -4315,14 +4315,14 @@ Result: '[858383,858236,858383]' Expected: '[858383,858236,858383]' ]]> - + - + @@ -4331,7 +4331,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4340,14 +4340,14 @@ Result: '34.45' Expected: '34.45' ]]> - + - + @@ -4359,7 +4359,7 @@ Not checking codes yet]]> - + @@ -4371,14 +4371,14 @@ Not checking codes yet]]> - + - + @@ -4387,7 +4387,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4396,7 +4396,7 @@ Result: '84.09' Expected: '84.09' ]]> - + @@ -4405,7 +4405,7 @@ Result: '[45.285,122.895]' Expected: '[45.285000000000004,122.89500000000001]' ]]> - + @@ -4414,7 +4414,7 @@ Result: '["order103: 45.285","order104: 122.895"]' Expected: '["order103: 45.285","order104: 122.895"]' ]]> - + @@ -4423,7 +4423,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4432,7 +4432,7 @@ Result: '2' Expected: '2' ]]> - + @@ -4444,7 +4444,7 @@ Not checking codes yet]]> - + @@ -4456,7 +4456,7 @@ Not checking codes yet]]> - + @@ -4465,7 +4465,7 @@ Result: '1' Expected: '1' ]]> - + @@ -4477,7 +4477,7 @@ Not checking codes yet]]> - + @@ -4489,7 +4489,7 @@ Not checking codes yet]]> - + @@ -4501,7 +4501,7 @@ Not checking codes yet]]> - + @@ -4513,7 +4513,7 @@ Not checking codes yet]]> - + @@ -4522,7 +4522,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4531,7 +4531,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4540,7 +4540,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4549,7 +4549,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4558,7 +4558,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4567,7 +4567,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4576,7 +4576,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4585,7 +4585,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4594,7 +4594,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4603,7 +4603,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4612,7 +4612,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4621,7 +4621,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4630,7 +4630,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4639,7 +4639,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4648,7 +4648,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4657,7 +4657,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4666,7 +4666,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4675,7 +4675,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4684,7 +4684,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4693,7 +4693,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4702,7 +4702,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4711,7 +4711,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4720,7 +4720,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4729,7 +4729,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4741,7 +4741,7 @@ Not checking codes yet]]> - + @@ -4750,7 +4750,7 @@ Result: '4' Expected: '4' ]]> - + @@ -4759,7 +4759,7 @@ Result: '-3' Expected: '-3' ]]> - + @@ -4768,7 +4768,7 @@ Result: '0' Expected: '0' ]]> - + @@ -4777,7 +4777,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4786,7 +4786,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4795,7 +4795,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -4804,7 +4804,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4813,7 +4813,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -4822,7 +4822,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -4834,7 +4834,7 @@ Not checking codes yet]]> - + @@ -4846,7 +4846,7 @@ Not checking codes yet]]> - + @@ -4855,7 +4855,7 @@ Result: '4' Expected: '4' ]]> - + @@ -4864,7 +4864,7 @@ Result: '[2,2]' Expected: '[2,2]' ]]> - + @@ -4873,7 +4873,7 @@ Result: '["order103: 2","order104: 2"]' Expected: '["order103: 2","order104: 2"]' ]]> - + @@ -4882,7 +4882,7 @@ Result: '0' Expected: '0' ]]> - + @@ -4891,7 +4891,7 @@ Result: '3' Expected: '3' ]]> - + @@ -4900,7 +4900,7 @@ Result: '3' Expected: '3' ]]> - + @@ -4909,7 +4909,7 @@ Result: '3' Expected: '3' ]]> - + @@ -4918,7 +4918,7 @@ Result: '1' Expected: '1' ]]> - + @@ -4930,7 +4930,7 @@ Not checking codes yet]]> - + @@ -4942,7 +4942,7 @@ Not checking codes yet]]> - + @@ -4954,7 +4954,7 @@ Not checking codes yet]]> - + @@ -4966,7 +4966,7 @@ Not checking codes yet]]> - + @@ -4975,7 +4975,7 @@ Result: '0' Expected: '0' ]]> - + @@ -4984,7 +4984,7 @@ Result: '2' Expected: '2' ]]> - + @@ -4993,7 +4993,7 @@ Result: '"https://mozilla.org/?x=шеллы"' Expected: '"https://mozilla.org/?x=шеллы"' ]]> - + @@ -5002,7 +5002,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5013,7 +5013,7 @@ Expected 'undefined' Result: '"%E0%A4%A"' ]]> - + @@ -5022,7 +5022,7 @@ Result: '"?x=test"' Expected: '"?x=test"' ]]> - + @@ -5031,7 +5031,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5042,7 +5042,7 @@ Expected 'undefined' Result: '"%E0%A4%A"' ]]> - + @@ -5051,7 +5051,7 @@ Result: '[1,2,3,4]' Expected: '[1,2,3,4]' ]]> - + @@ -5060,7 +5060,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -5069,7 +5069,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5078,7 +5078,7 @@ Result: 'null' Expected: 'null' ]]> - + @@ -5087,7 +5087,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -5096,7 +5096,7 @@ Result: '["0406654608","0406634348","040657863","0406654603"]' Expected: '["0406654608","0406634348","040657863","0406654603"]' ]]> - + @@ -5105,7 +5105,7 @@ Result: '["Bowler Hat","Trilby hat","Cloak"]' Expected: '["Bowler Hat","Trilby hat","Cloak"]' ]]> - + @@ -5114,7 +5114,7 @@ Result: '[{"Colour":"Purple","Width":300,"Height":200,"Depth":210,"Weight":0.75} Expected: '[{"Colour":"Purple","Width":300,"Height":200,"Depth":210,"Weight":0.75},{"Colour":"Orange","Width":300,"Height":200,"Depth":210,"Weight":0.6},{"Colour":"Black","Width":30,"Height":20,"Depth":210,"Weight":2}]' ]]> - + @@ -5123,7 +5123,7 @@ Result: '["Street: Hursley Park","City: Winchester","Postcode: SO21 2JN"]' Expected: '["Street: Hursley Park","City: Winchester","Postcode: SO21 2JN"]' ]]> - + @@ -5132,7 +5132,7 @@ Result: '["HELLO","WORLD"]' Expected: '["HELLO","WORLD"]' ]]> - + @@ -5141,7 +5141,7 @@ Result: '["c","d"]' Expected: '["c","d"]' ]]> - + @@ -5150,7 +5150,7 @@ Result: '"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"' Expected: '"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"' ]]> - + @@ -5159,7 +5159,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5170,7 +5170,7 @@ Expected 'undefined' Result: '"%EF%BF%BD"' ]]> - + @@ -5179,7 +5179,7 @@ Result: '"%3Fx%3Dtest"' Expected: '"%3Fx%3Dtest"' ]]> - + @@ -5188,7 +5188,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5199,14 +5199,14 @@ Expected 'undefined' Result: '"%EF%BF%BD"' ]]> - + 35 ? Account.Order[0].Product[0].Price : $error('Too Expensive')' ]]> - + @@ -5215,7 +5215,7 @@ Result: '34.45' Expected: '34.45' ]]> - + @@ -5224,14 +5224,14 @@ Result: '34.45' Expected: '34.45' ]]> - + 34 ? $error('Too Expensive') : Account.Order[0].Product[0].Price' ]]> - + @@ -5240,21 +5240,21 @@ Result: 'undefined' Expected 'undefined' ]]> - + - + - + @@ -5266,7 +5266,7 @@ Not checking codes yet]]> - + @@ -5278,21 +5278,21 @@ Not checking codes yet]]> - + - + - + @@ -5301,7 +5301,7 @@ Result: '[1,2,3]' Expected: '[1,2,3]' ]]> - + @@ -5310,7 +5310,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5319,7 +5319,7 @@ Result: '[1,"2",3]' Expected: '[1,"2",3]' ]]> - + @@ -5328,7 +5328,7 @@ Result: '8' Expected: '8' ]]> - + @@ -5337,7 +5337,7 @@ Result: '[{"Name":"Bowler Hat","Total":68.9},{"Name":"Trilby hat","Total":21.67} Expected: '[{"Name":"Bowler Hat","Total":68.9},{"Name":"Trilby hat","Total":21.67},{"Name":"Bowler Hat","Total":137.8},{"Name":"Cloak","Total":107.99}]' ]]> - + @@ -5346,7 +5346,7 @@ Result: '[{"Name":"Bowler Hat","Volume":12600000},{"Name":"Trilby hat","Volume": Expected: '[{"Name":"Bowler Hat","Volume":12600000},{"Name":"Trilby hat","Volume":12600000},{"Name":"Bowler Hat","Volume":12600000},{"Name":"Cloak","Volume":126000}]' ]]> - + @@ -5358,27 +5358,28 @@ Not checking codes yet]]> - + - + @@ -5387,7 +5388,7 @@ Result: '{"test":1}' Expected: '{"test":1}' ]]> - + @@ -5396,7 +5397,7 @@ Result: '{"test":1}' Expected: '{"test":1}' ]]> - + @@ -5405,7 +5406,7 @@ Result: '{"test":1}' Expected: '{"test":1}' ]]> - + @@ -5414,7 +5415,7 @@ Result: '{"test":1}' Expected: '{"test":1}' ]]> - + @@ -5423,7 +5424,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5432,7 +5433,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5441,7 +5442,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5450,7 +5451,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5459,7 +5460,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5468,7 +5469,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5477,7 +5478,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5486,7 +5487,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5495,7 +5496,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5504,7 +5505,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5513,7 +5514,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5522,7 +5523,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5531,7 +5532,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5540,7 +5541,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5549,7 +5550,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5558,7 +5559,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5567,7 +5568,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5576,7 +5577,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5585,7 +5586,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -5594,7 +5595,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -5603,7 +5604,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -5612,7 +5613,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -5621,7 +5622,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -5633,7 +5634,7 @@ Not checking codes yet]]> - + @@ -5645,7 +5646,7 @@ Not checking codes yet]]> - + @@ -5654,7 +5655,7 @@ Result: '3' Expected: '3' ]]> - + @@ -5663,7 +5664,7 @@ Result: '-4' Expected: '-4' ]]> - + @@ -5672,7 +5673,7 @@ Result: '0' Expected: '0' ]]> - + @@ -5681,7 +5682,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5690,7 +5691,7 @@ Result: '"100"' Expected: '"100"' ]]> - + @@ -5699,7 +5700,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5708,7 +5709,7 @@ Result: '"1100100"' Expected: '"1100100"' ]]> - + @@ -5717,27 +5718,28 @@ Result: '"-1100100"' Expected: '"-1100100"' ]]> - + - + @@ -5764,7 +5766,7 @@ Expected: '"1100100"' - + @@ -5776,7 +5778,7 @@ Not checking codes yet]]> - + @@ -5788,7 +5790,7 @@ Not checking codes yet]]> - + @@ -5798,7 +5800,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -5808,7 +5810,7 @@ Result: '"123"' Expected: '"123"' ]]> - + @@ -5818,7 +5820,7 @@ Result: '"0123"' Expected: '"0123"' ]]> - + @@ -5828,7 +5830,7 @@ Result: '"-0003"' Expected: '"-0003"' ]]> - + @@ -5838,7 +5840,7 @@ Result: '"1234"' Expected: '"1234"' ]]> - + @@ -5848,7 +5850,7 @@ Result: '"1234"' Expected: '"1234"' ]]> - + @@ -5858,7 +5860,7 @@ Result: '"12"' Expected: '"12"' ]]> - + @@ -5868,7 +5870,7 @@ Result: '"12"' Expected: '"12"' ]]> - + @@ -5896,7 +5898,7 @@ Expected: '"123rd"' - + @@ -5924,7 +5926,7 @@ Expected: '"1st"' - + @@ -5952,7 +5954,7 @@ Expected: '"28th"' - + @@ -5980,7 +5982,7 @@ Expected: '"1234th"' - + @@ -6008,7 +6010,7 @@ Expected: '"12th"' - + @@ -6036,7 +6038,7 @@ Expected: '"١٢٣٤٠"' - + @@ -6064,7 +6066,7 @@ Expected: '"12340"' - + @@ -6086,7 +6088,7 @@ Expected error D3131 - + @@ -6096,7 +6098,7 @@ Result: '"12"' Expected: '"12"' ]]> - + @@ -6106,7 +6108,7 @@ Result: '"1,200"' Expected: '"1,200"' ]]> - + @@ -6116,7 +6118,7 @@ Result: '"120,000"' Expected: '"120,000"' ]]> - + @@ -6126,7 +6128,7 @@ Result: '"12,345,678"' Expected: '"12,345,678"' ]]> - + @@ -6136,7 +6138,7 @@ Result: '"1,234,567,890"' Expected: '"1,234,567,890"' ]]> - + @@ -6146,7 +6148,7 @@ Result: '"1,234,567,890"' Expected: '"1,234,567,890"' ]]> - + @@ -6174,7 +6176,7 @@ Expected: '"1234:567,890"' - + @@ -6202,196 +6204,205 @@ Expected: '"12345,67,890"' - + - + - + - + - + - + - + - + - + - + @@ -6419,238 +6430,249 @@ Expected: '"Five Hundred and Fifty-Five"' - + - + - + - + - + - + - + - + - + - + - + - + @@ -6678,7 +6700,7 @@ Expected: '"twelfth"' - + @@ -6706,7 +6728,7 @@ Expected: '"twentieth"' - + @@ -6734,7 +6756,7 @@ Expected: '"thirty-fourth"' - + @@ -6762,7 +6784,7 @@ Expected: '"NINETY-NINTH"' - + @@ -6790,7 +6812,7 @@ Expected: '"one hundredth"' - + @@ -6818,7 +6840,7 @@ Expected: '"FIVE HUNDRED AND FIFTY-FIFTH"' - + @@ -6846,7 +6868,7 @@ Expected: '"nine hundred and nineteenth"' - + @@ -6874,7 +6896,7 @@ Expected: '"seven hundred and thirtieth"' - + @@ -6902,7 +6924,7 @@ Expected: '"one thousandth"' - + @@ -6930,7 +6952,7 @@ Expected: '"three thousand, seven hundred and thirty-first"' - + @@ -6958,7 +6980,7 @@ Expected: '"three hundred and twenty-seven thousand, seven hundred and thirteent - + @@ -6986,7 +7008,7 @@ Expected: '"four million, three hundred and twenty-seven thousand, seven hundred - + @@ -7014,133 +7036,139 @@ Expected: '"one trillion and first"' - + - + - + - + - + - + - + @@ -7162,7 +7190,7 @@ Expected error D3130 - + @@ -7171,7 +7199,7 @@ Result: '"12,345.60"' Expected: '"12,345.60"' ]]> - + @@ -7198,7 +7226,7 @@ Expected: '"12,345,678.90"' - + @@ -7207,7 +7235,7 @@ Result: '"123412345,6,78.90"' Expected: '"123412345,6,78.90"' ]]> - + @@ -7216,7 +7244,7 @@ Result: '"1,234.567,890"' Expected: '"1,234.567,890"' ]]> - + @@ -7225,7 +7253,7 @@ Result: '"0124"' Expected: '"0124"' ]]> - + @@ -7234,7 +7262,7 @@ Result: '"14%"' Expected: '"14%"' ]]> - + @@ -7243,7 +7271,7 @@ Result: '"485.7‰"' Expected: '"485.7‰"' ]]> - + @@ -7270,7 +7298,7 @@ Expected: '"140pm"' - + @@ -7279,7 +7307,7 @@ Result: '"-006"' Expected: '"-006"' ]]> - + @@ -7288,7 +7316,7 @@ Result: '"12.346e2"' Expected: '"12.346e2"' ]]> - + @@ -7297,7 +7325,7 @@ Result: '"12.346e002"' Expected: '"12.346e002"' ]]> - + @@ -7324,7 +7352,7 @@ Expected: '"①②.③④⑥e②"' - + @@ -7333,7 +7361,7 @@ Result: '"2.3e-1"' Expected: '"2.3e-1"' ]]> - + @@ -7360,7 +7388,7 @@ Expected: '"0.23e0"' - + @@ -7387,7 +7415,7 @@ Expected: '"0.1e0"' - + @@ -7396,7 +7424,7 @@ Result: '".23e0"' Expected: '".23e0"' ]]> - + @@ -7405,7 +7433,7 @@ Result: '"87,504.4812"' Expected: '"87,504.4812"' ]]> - + @@ -7414,7 +7442,7 @@ Result: '"PREFIX185.2812SUFFIX"' Expected: '"PREFIX185.2812SUFFIX"' ]]> - + @@ -7441,7 +7469,7 @@ Expected: '"100,000000,000000,000000"' - + @@ -7462,7 +7490,7 @@ Expected error D3080 - + @@ -7483,7 +7511,7 @@ Expected error D3081 - + @@ -7504,7 +7532,7 @@ Expected error D3082 - + @@ -7525,7 +7553,7 @@ Expected error D3083 - + @@ -7546,7 +7574,7 @@ Expected error D3084 - + @@ -7567,7 +7595,7 @@ Expected error D3085 - + @@ -7588,7 +7616,7 @@ Expected error D3086 - + @@ -7609,7 +7637,7 @@ Expected error D3087 - + @@ -7630,7 +7658,7 @@ Expected error D3088 - + @@ -7651,7 +7679,7 @@ Expected error D3089 - + @@ -7672,7 +7700,7 @@ Expected error D3090 - + @@ -7693,7 +7721,7 @@ Expected error D3091 - + @@ -7714,7 +7742,7 @@ Expected error D3092 - + @@ -7735,7 +7763,7 @@ Expected error D3093 - + @@ -7744,7 +7772,7 @@ Result: '"002.000"' Expected: '"002.000"' ]]> - + @@ -7771,7 +7799,7 @@ Expected: '"AAC.AAA"' - + @@ -7798,7 +7826,7 @@ Expected: '"Be-AAB"' - + @@ -7807,7 +7835,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -7834,7 +7862,7 @@ Expected: '"1970-01-01T00:00:00.001Z"' - + @@ -7861,7 +7889,7 @@ Expected: '"2017-10-30T16:25:32.935Z"' - + @@ -7870,7 +7898,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -7880,7 +7908,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -7908,7 +7936,7 @@ Expected: '"Hello"' - + @@ -7936,7 +7964,7 @@ Expected: '"Year: 2018"' - + @@ -7964,7 +7992,7 @@ Expected: '"Year: <2018>"' - + @@ -7992,7 +8020,7 @@ Expected: '"Year: <2,018>"' - + @@ -8020,7 +8048,7 @@ Expected: '"[Year: <2018>"' - + @@ -8048,7 +8076,7 @@ Expected: '"Year]: <2018>"' - + @@ -8076,7 +8104,7 @@ Expected: '"[Year]: [2018]"' - + @@ -8104,7 +8132,7 @@ Expected: '"23/3/2018"' - + @@ -8132,7 +8160,7 @@ Expected: '"7 Sunday"' - + @@ -8160,7 +8188,7 @@ Expected: '"1 Monday"' - + @@ -8188,7 +8216,7 @@ Expected: '"2018-03-23"' - + @@ -8216,7 +8244,7 @@ Expected: '"03/23/2018 at 10:33:36"' - + @@ -8244,7 +8272,7 @@ Expected: '"2018-03-23T10:33:36.617Z"' - + @@ -8273,7 +8301,7 @@ Expected: '"2018-03-23T10:33:36.617Z"' - + @@ -8301,7 +8329,7 @@ Expected: '"2018-03-23T13:33:36.617+03:00"' - + @@ -8329,7 +8357,7 @@ Expected: '"2018-07-11T15:00:00+03:00"' - + @@ -8357,7 +8385,7 @@ Expected: '"2018-07-11T12:00:00Z"' - + @@ -8385,7 +8413,7 @@ Expected: '"2018-07-11T15:00:00+03:00"' - + @@ -8413,7 +8441,7 @@ Expected: '"2018-07-11T07:00:00-5"' - + @@ -8441,7 +8469,7 @@ Expected: '"2018-07-11T15:00:00+03:00"' - + @@ -8469,7 +8497,7 @@ Expected: '"2018-07-11T15:00:00+03:00"' - + @@ -8497,7 +8525,7 @@ Expected: '"2018-07-11T17:30:00+5:30"' - + @@ -8525,7 +8553,7 @@ Expected: '"2018-07-11T07:00:00GMT-05:00"' - + @@ -8553,7 +8581,7 @@ Expected: '"2008-03-02T00:05:00+03:00"' - + @@ -8581,7 +8609,7 @@ Expected: '"2009-01-01T00:05:00+03:00"' - + @@ -8603,7 +8631,7 @@ Expected error D3134 - + @@ -8631,7 +8659,7 @@ Expected: '"23/03/18"' - + @@ -8659,7 +8687,7 @@ Expected: '"23/03/2018"' - + @@ -8687,7 +8715,7 @@ Expected: '"23/03/18"' - + @@ -8715,7 +8743,7 @@ Expected: '"23/03/18"' - + @@ -8743,7 +8771,7 @@ Expected: '"23 03 MMXVIII"' - + @@ -8771,7 +8799,7 @@ Expected: '"w C mmxviii"' - + @@ -8799,7 +8827,7 @@ Expected: '"23rd 03 2018"' - + @@ -8827,7 +8855,7 @@ Expected: '"two thousand and eighteen"' - + @@ -8855,7 +8883,7 @@ Expected: '"twenty-third 03 2018"' - + @@ -8883,7 +8911,7 @@ Expected: '"23rd March 2018"' - + @@ -8911,7 +8939,7 @@ Expected: '"23rd MARCH 2018"' - + @@ -8939,7 +8967,7 @@ Expected: '"Friday, 23rd March 2018"' - + @@ -8967,7 +8995,7 @@ Expected: '"Friday, the twenty-third of March 2018 ISO"' - + @@ -8995,7 +9023,7 @@ Expected: '"Fri, 23rd Mar 2018 ISO"' - + @@ -9023,7 +9051,7 @@ Expected: '"friday, 23/3/2018 10:33:36 am"' - + @@ -9051,7 +9079,7 @@ Expected: '"saturday, 1/3/2008 9:05:00 pm"' - + @@ -9079,7 +9107,7 @@ Expected: '"monday, 7/1/2008 12:00:00 am"' - + @@ -9107,7 +9135,7 @@ Expected: '"first day of the year"' - + @@ -9135,7 +9163,7 @@ Expected: '"365 days in 2018"' - + @@ -9163,7 +9191,7 @@ Expected: '"366 days in 2016"' - + @@ -9191,7 +9219,7 @@ Expected: '"Week: 1"' - + @@ -9219,7 +9247,7 @@ Expected: '"Week: 1"' - + @@ -9247,7 +9275,7 @@ Expected: '"Week: 52"' - + @@ -9275,7 +9303,7 @@ Expected: '"Week: 1"' - + @@ -9303,7 +9331,7 @@ Expected: '"Week: 1"' - + @@ -9331,7 +9359,7 @@ Expected: '"Week: 52"' - + @@ -9359,7 +9387,7 @@ Expected: '"Week: 52"' - + @@ -9387,7 +9415,7 @@ Expected: '"Week: 1"' - + @@ -9415,7 +9443,7 @@ Expected: '"Week: 2"' - + @@ -9443,7 +9471,7 @@ Expected: '"Week: 53"' - + @@ -9471,7 +9499,7 @@ Expected: '"Week: 53"' - + @@ -9499,7 +9527,7 @@ Expected: '"Week: 53"' - + @@ -9527,7 +9555,7 @@ Expected: '"Week: 5 of January"' - + @@ -9555,7 +9583,7 @@ Expected: '"Week: 5 of January"' - + @@ -9583,7 +9611,7 @@ Expected: '"Week: 5 of January"' - + @@ -9611,7 +9639,7 @@ Expected: '"Week: 1 of January"' - + @@ -9639,7 +9667,7 @@ Expected: '"Week: 5 of December"' - + @@ -9667,7 +9695,7 @@ Expected: '"Week: 1 of August"' - + @@ -9695,33 +9723,34 @@ Expected: '"Week: 1 of January"' - + - - + @@ -9743,7 +9772,7 @@ Expected error D3133 - + @@ -9765,539 +9794,558 @@ Expected error D3135 - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + @@ -10306,7 +10354,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -10315,7 +10363,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -10324,7 +10372,7 @@ Result: '"helloworld"' Expected: '"helloworld"' ]]> - + @@ -10333,7 +10381,7 @@ Result: '"hello, world"' Expected: '"hello, world"' ]]> - + @@ -10342,7 +10390,7 @@ Result: '""' Expected: '""' ]]> - + @@ -10351,7 +10399,7 @@ Result: '"Purple, Orange, Purple, Black"' Expected: '"Purple, Orange, Purple, Black"' ]]> - + @@ -10360,7 +10408,7 @@ Result: '"PurpleOrangePurpleBlack"' Expected: '"PurpleOrangePurpleBlack"' ]]> - + @@ -10369,7 +10417,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10381,7 +10429,7 @@ Not checking codes yet]]> - + @@ -10393,7 +10441,7 @@ Not checking codes yet]]> - + @@ -10405,7 +10453,7 @@ Not checking codes yet]]> - + @@ -10417,7 +10465,7 @@ Not checking codes yet]]> - + @@ -10426,7 +10474,7 @@ Result: '["Account Name","Order"]' Expected: '["Account Name","Order"]' ]]> - + @@ -10435,7 +10483,7 @@ Result: '["Product Name","ProductID","SKU","Description","Price","Quantity"]' Expected: '["Product Name","ProductID","SKU","Description","Price","Quantity"]' ]]> - + @@ -10444,7 +10492,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10453,7 +10501,7 @@ Result: '"foo"' Expected: '"foo"' ]]> - + @@ -10462,7 +10510,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10471,7 +10519,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10480,7 +10528,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10489,7 +10537,7 @@ Result: '0' Expected: '0' ]]> - + @@ -10498,7 +10546,7 @@ Result: '5' Expected: '5' ]]> - + @@ -10507,7 +10555,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10516,7 +10564,7 @@ Result: '10' Expected: '10' ]]> - + @@ -10543,7 +10591,7 @@ Expected: '1' - + @@ -10570,7 +10618,7 @@ Expected: '1' - + @@ -10579,7 +10627,7 @@ Result: '4' Expected: '4' ]]> - + @@ -10588,7 +10636,7 @@ Result: '1' Expected: '1' ]]> - + @@ -10597,7 +10645,7 @@ Result: '1' Expected: '1' ]]> - + @@ -10609,7 +10657,7 @@ Not checking codes yet]]> - + @@ -10621,7 +10669,7 @@ Not checking codes yet]]> - + @@ -10633,7 +10681,7 @@ Not checking codes yet]]> - + @@ -10645,7 +10693,7 @@ Not checking codes yet]]> - + @@ -10657,7 +10705,7 @@ Not checking codes yet]]> - + @@ -10669,7 +10717,7 @@ Not checking codes yet]]> - + @@ -10681,7 +10729,7 @@ Not checking codes yet]]> - + @@ -10708,7 +10756,7 @@ Expected: '2' - + @@ -10717,7 +10765,7 @@ Result: '"Firefly"' Expected: '"Firefly"' ]]> - + @@ -10726,7 +10774,7 @@ Result: '["Bowler Hat","Trilby hat","Bowler Hat","Cloak"]' Expected: '["Bowler Hat","Trilby hat","Bowler Hat","Cloak"]' ]]> - + @@ -10735,7 +10783,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10744,7 +10792,7 @@ Result: 'null' Expected: 'null' ]]> - + @@ -10753,7 +10801,7 @@ Result: '"hello world"' Expected: '"hello world"' ]]> - + @@ -10762,7 +10810,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10771,7 +10819,7 @@ Result: '137.8' Expected: '137.8' ]]> - + @@ -10780,7 +10828,7 @@ Result: '[68.9,137.8]' Expected: '[68.9,137.8]' ]]> - + @@ -10789,7 +10837,7 @@ Result: '["order103: 2","order104: 2"]' Expected: '["order103: 2","order104: 2"]' ]]> - + @@ -10798,7 +10846,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10807,7 +10855,7 @@ Result: '3' Expected: '3' ]]> - + @@ -10819,7 +10867,7 @@ Not checking codes yet]]> - + @@ -10831,7 +10879,7 @@ Not checking codes yet]]> - + @@ -10840,7 +10888,7 @@ Result: '1' Expected: '1' ]]> - + @@ -10849,7 +10897,7 @@ Result: '-1' Expected: '-1' ]]> - + @@ -10861,7 +10909,7 @@ Not checking codes yet]]> - + @@ -10873,7 +10921,7 @@ Not checking codes yet]]> - + @@ -10885,7 +10933,7 @@ Not checking codes yet]]> - + @@ -10897,7 +10945,7 @@ Not checking codes yet]]> - + @@ -10906,7 +10954,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10915,7 +10963,7 @@ Result: '21.67' Expected: '21.67' ]]> - + @@ -10924,7 +10972,7 @@ Result: '[21.67,107.99]' Expected: '[21.67,107.99]' ]]> - + @@ -10933,7 +10981,7 @@ Result: '["order103: 21.67","order104: 107.99"]' Expected: '["order103: 21.67","order104: 107.99"]' ]]> - + @@ -10942,7 +10990,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -10951,7 +10999,7 @@ Result: '1' Expected: '1' ]]> - + @@ -10963,7 +11011,7 @@ Not checking codes yet]]> - + @@ -10975,7 +11023,7 @@ Not checking codes yet]]> - + @@ -10984,7 +11032,7 @@ Result: '1' Expected: '1' ]]> - + @@ -10996,7 +11044,7 @@ Not checking codes yet]]> - + @@ -11008,7 +11056,7 @@ Not checking codes yet]]> - + @@ -11020,7 +11068,7 @@ Not checking codes yet]]> - + @@ -11032,7 +11080,7 @@ Not checking codes yet]]> - + @@ -11041,7 +11089,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -11050,7 +11098,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -11059,7 +11107,7 @@ Result: '{"a":1}' Expected: '{"a":1}' ]]> - + @@ -11068,7 +11116,7 @@ Result: '{"a":1,"b":2}' Expected: '{"a":1,"b":2}' ]]> - + @@ -11077,7 +11125,7 @@ Result: '{"a":1,"b":2,"c":3}' Expected: '{"a":1,"b":2,"c":3}' ]]> - + @@ -11086,7 +11134,7 @@ Result: '{"a":3,"b":2}' Expected: '{"a":3,"b":2}' ]]> - + @@ -11095,7 +11143,7 @@ Result: '0' Expected: '0' ]]> - + @@ -11104,7 +11152,7 @@ Result: '10' Expected: '10' ]]> - + @@ -11113,7 +11161,7 @@ Result: '-0.05' Expected: '-0.05' ]]> - + @@ -11122,7 +11170,7 @@ Result: '0' Expected: '0' ]]> - + @@ -11131,7 +11179,7 @@ Result: '-0.05' Expected: '-0.05' ]]> - + @@ -11140,7 +11188,7 @@ Result: '100' Expected: '100' ]]> - + @@ -11149,7 +11197,7 @@ Result: '0.01' Expected: '0.01' ]]> - + @@ -11158,7 +11206,7 @@ Result: '1' Expected: '1' ]]> - + @@ -11170,7 +11218,7 @@ Not checking codes yet]]> - + @@ -11182,7 +11230,7 @@ Not checking codes yet]]> - + @@ -11194,7 +11242,7 @@ Not checking codes yet]]> - + @@ -11206,7 +11254,7 @@ Not checking codes yet]]> - + @@ -11218,7 +11266,7 @@ Not checking codes yet]]> - + @@ -11227,7 +11275,7 @@ Result: '1' Expected: '1' ]]> - + @@ -11236,7 +11284,7 @@ Result: '0' Expected: '0' ]]> - + @@ -11245,7 +11293,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -11257,7 +11305,7 @@ Not checking codes yet]]> - + @@ -11269,7 +11317,7 @@ Not checking codes yet]]> - + @@ -11281,7 +11329,7 @@ Not checking codes yet]]> - + @@ -11293,7 +11341,7 @@ Not checking codes yet]]> - + @@ -11305,7 +11353,7 @@ Not checking codes yet]]> - + @@ -11317,7 +11365,7 @@ Not checking codes yet]]> - + @@ -11329,7 +11377,7 @@ Not checking codes yet]]> - + @@ -11341,7 +11389,7 @@ Not checking codes yet]]> - + @@ -11353,7 +11401,7 @@ Not checking codes yet]]> - + @@ -11365,7 +11413,7 @@ Not checking codes yet]]> - + @@ -11377,7 +11425,7 @@ Not checking codes yet]]> - + @@ -11386,7 +11434,7 @@ Result: '0' Expected: '0' ]]> - + @@ -11395,7 +11443,7 @@ Result: '123' Expected: '123' ]]> - + @@ -11404,7 +11452,7 @@ Result: '-7' Expected: '-7' ]]> - + @@ -11413,7 +11461,7 @@ Result: '0.00123' Expected: '0.00123' ]]> - + @@ -11422,7 +11470,7 @@ Result: '"foo "' Expected: '"foo "' ]]> - + @@ -11431,7 +11479,7 @@ Result: '" foo"' Expected: '" foo"' ]]> - + @@ -11440,7 +11488,7 @@ Result: '"##foo"' Expected: '"##foo"' ]]> - + @@ -11449,7 +11497,7 @@ Result: '"foo "' Expected: '"foo "' ]]> - + @@ -11458,7 +11506,7 @@ Result: '"foo"' Expected: '"foo"' ]]> - + @@ -11467,7 +11515,7 @@ Result: '"foo-+-+-"' Expected: '"foo-+-+-"' ]]> - + @@ -11476,7 +11524,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -11503,7 +11551,7 @@ Expected: '"a𝄞💩 "' - + @@ -11530,7 +11578,7 @@ Expected: '" 𝄞💩"' - + @@ -11557,7 +11605,7 @@ Expected: '"a𝄞💩💩💩💩💩"' - + @@ -11584,7 +11632,7 @@ Expected: '"a𝄞💩💩💩💩"' - + @@ -11594,7 +11642,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -11604,7 +11652,7 @@ Result: '123' Expected: '123' ]]> - + @@ -11614,7 +11662,7 @@ Result: '123' Expected: '123' ]]> - + @@ -11624,7 +11672,7 @@ Result: '1234' Expected: '1234' ]]> - + @@ -11634,7 +11682,7 @@ Result: '1234' Expected: '1234' ]]> - + @@ -11644,154 +11692,161 @@ Result: '12' Expected: '12' ]]> - + - + - + - + - + - + - + - + @@ -11801,973 +11856,1019 @@ Result: '12' Expected: '12' ]]> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -12789,7 +12890,7 @@ Expected error D3130 - + @@ -12798,7 +12899,7 @@ Result: '16' Expected: '16' ]]> - + @@ -12807,7 +12908,7 @@ Result: '2' Expected: '2' ]]> - + @@ -12816,7 +12917,7 @@ Result: '0.01' Expected: '0.01' ]]> - + @@ -12825,7 +12926,7 @@ Result: '-8' Expected: '-8' ]]> - + @@ -12834,7 +12935,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -12846,7 +12947,7 @@ Not checking codes yet]]> - + @@ -12858,7 +12959,7 @@ Not checking codes yet]]> - + @@ -12867,7 +12968,7 @@ Result: '"Hello Everyone"' Expected: '"Hello Everyone"' ]]> - + @@ -12876,7 +12977,7 @@ Result: '"the cit sit on the mit"' Expected: '"the cit sit on the mit"' ]]> - + @@ -12885,7 +12986,7 @@ Result: '"the cat sat on the mat"' Expected: '"the cat sat on the mat"' ]]> - + @@ -12894,7 +12995,7 @@ Result: '"the cit sit on the mat"' Expected: '"the cit sit on the mat"' ]]> - + @@ -12903,7 +13004,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -12915,7 +13016,7 @@ Not checking codes yet]]> - + @@ -12927,7 +13028,7 @@ Not checking codes yet]]> - + @@ -12939,7 +13040,7 @@ Not checking codes yet]]> - + @@ -12951,7 +13052,7 @@ Not checking codes yet]]> - + @@ -12963,7 +13064,7 @@ Not checking codes yet]]> - + @@ -12975,7 +13076,7 @@ Not checking codes yet]]> - + @@ -12987,7 +13088,7 @@ Not checking codes yet]]> - + @@ -12996,7 +13097,7 @@ Result: '[5,4,3,2,1]' Expected: '[5,4,3,2,1]' ]]> - + @@ -13005,7 +13106,7 @@ Result: '[[1,2,3],[3,2,1],[1,2,3]]' Expected: '[[1,2,3],[3,2,1],[1,2,3]]' ]]> - + @@ -13014,7 +13115,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -13023,7 +13124,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -13032,7 +13133,7 @@ Result: '4' Expected: '4' ]]> - + @@ -13041,7 +13142,7 @@ Result: '2' Expected: '2' ]]> - + @@ -13050,7 +13151,7 @@ Result: '3' Expected: '3' ]]> - + @@ -13059,7 +13160,7 @@ Result: '2' Expected: '2' ]]> - + @@ -13068,7 +13169,7 @@ Result: '4' Expected: '4' ]]> - + @@ -13077,7 +13178,7 @@ Result: '0' Expected: '0' ]]> - + @@ -13086,7 +13187,7 @@ Result: '0' Expected: '0' ]]> - + @@ -13095,7 +13196,7 @@ Result: '0' Expected: '0' ]]> - + @@ -13104,7 +13205,7 @@ Result: '-8' Expected: '-8' ]]> - + @@ -13113,7 +13214,7 @@ Result: '-8' Expected: '-8' ]]> - + @@ -13122,7 +13223,7 @@ Result: '4.5' Expected: '4.5' ]]> - + @@ -13131,7 +13232,7 @@ Result: '4.52' Expected: '4.52' ]]> - + @@ -13140,7 +13241,7 @@ Result: '4.52' Expected: '4.52' ]]> - + @@ -13149,7 +13250,7 @@ Result: '12300' Expected: '12300' ]]> - + @@ -13158,7 +13259,7 @@ Result: '12400' Expected: '12400' ]]> - + @@ -13167,7 +13268,7 @@ Result: '12400' Expected: '12400' ]]> - + @@ -13176,7 +13277,7 @@ Result: '0.000000000000000000000060' Expected: '6E-23' ]]> - + @@ -13185,7 +13286,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -13194,7 +13295,7 @@ Result: '10' Expected: '10' ]]> - + @@ -13203,7 +13304,7 @@ Result: '[1,2,3,4,5,6,7,8,9,10]' Expected: '[1,2,3,4,5,6,7,8,9,10]' ]]> - + @@ -13212,7 +13313,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -13221,7 +13322,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -13230,7 +13331,7 @@ Result: '{"Address":{"Street":"Hursley Park","City":"Winchester","Postcode":"SO2 Expected: '{"Address":{"Street":"Hursley Park","City":"Winchester","Postcode":"SO21 2JN"},"Other":{"Over 18 ?":true,"Misc":null,"Alternative.Address":{"Street":"Brick Lane","City":"London","Postcode":"E1 6RF"}}}' ]]> - + @@ -13239,7 +13340,7 @@ Result: '[{"Address":{"Street":"Hursley Park","City":"Winchester","Postcode":"SO Expected: '[{"Address":{"Street":"Hursley Park","City":"Winchester","Postcode":"SO21 2JN"}},{"Alternative.Address":{"Street":"Brick Lane","City":"London","Postcode":"E1 6RF"}}]' ]]> - + @@ -13248,7 +13349,7 @@ Result: '{"Age":28,"Address":{"Street":"Hursley Park","City":"Winchester","Postc Expected: '{"Age":28,"Address":{"Street":"Hursley Park","City":"Winchester","Postcode":"SO21 2JN"}}' ]]> - + @@ -13257,7 +13358,7 @@ Result: '{"a":1}' Expected: '{"a":1}' ]]> - + @@ -13266,777 +13367,812 @@ Result: '{"a":"hello"}' Expected: '{"a":"hello"}' ]]> - + {$not($arg)}(true)' ]]> - + {$not($arg)}(foo)' ]]> - + {$not($arg)}(null)' ]]> - + {$x+$y}(2, 6)' ]]> - + {$x+$y}(6)' ]]> - + {$x+$y}(2, 6)' ]]> - + {$x+$y}(6)' ]]> - + {$uppercase($str)}("hello")' ]]> - + {$uppercase($str)}()' ]]> - + {$prefix & $str}("World", "Hello ")' ]]> - + {$prefix & $str}("Hello ")' ]]> - + s?:s>{$join($arr, $sep)}("a")' ]]> - + s?:s>{$join($arr, $sep)}(["a"])' ]]> - + s?:s>{$join($arr, $sep)}("a", "-")' ]]> - + s?:s>{$join($arr, $sep)}(["a"], "-")' ]]> - + s?:s>{$join($arr, $sep)}(["a", "b"], "-")' ]]> - + {$join($arr, $sep)}(["a", "b"], "-")' ]]> - + s?:s>{$join($arr, $sep)}([], "-")' ]]> - + s?:s>{$join($arr, $sep)}(foo, "-")' ]]> - + {$obj}({"hello": "world"})' ]]> - + >>{$arr}([[1]])' ]]> - + {$number($num)}(5)' ]]> - + {$number($num)}("5")' ]]> - + {$number($num)}()' ]]> - + {function($x){$f($f($x))}};$add2 := function($x){$x+2};$add4 := $twice($add2);$add4(5))' ]]> - + :f>{function($x){$f($f($x))}};$add2 := function($x){$x+2};$add4 := $twice($add2);$add4(5))' ]]> - + >{$arg}(5)' ]]> - + {[$arg1, $arg2]}(1,"2")' ]]> - + {[$arg1, $arg2]}(1,3,"2")' ]]> - + {[$arg1, $arg2]}(1,3, 2,"g")' ]]> - + >{$arr}(["3"]) ' ]]> - + >{$arr}([1, 2, "3"]) ' ]]> - + >{$arr}("f")' ]]> - + >{$arr};$fun("f"))' ]]> - + )>', Whole string was: '<(sa)>' (Exception) - at Jsonata.Net.Native.Parsing.SignatureParser.Parse(String str) in /_/src/Jsonata.Net.Native/Parsing/SignatureParser.cs:line 32 - at Jsonata.Net.Native.Parsing.Parser.ParseLambdaDefinition(Boolean isShorthand) in /_/src/Jsonata.Net.Native/Parsing/Parser_Leds.cs:line 58 - at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in /_/src/Jsonata.Net.Native/Parsing/Parser.cs:line 231 - at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in /_/src/Jsonata.Net.Native/Parsing/Parser.cs:line 18 - at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in /_/src/Jsonata.Net.Native/JsonataQuery.cs:line 18 + at Jsonata.Net.Native.Parsing.SignatureParser.Parse(String str) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\SignatureParser.cs:line 32 + at Jsonata.Net.Native.Parsing.Parser.ParseLambdaDefinition(Boolean isShorthand) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser_Leds.cs:line 58 + at Jsonata.Net.Native.Parsing.Parser.parseFunctionCall(Token t, Node lhs) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser_Leds.cs:line 16 + at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 231 + at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 18 + at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\JsonataQuery.cs:line 18 at Jsonata.Net.Native.TestSuite.Tests.Test(CaseInfo caseInfo) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.TestSuite\UnitTest1.cs:line 93]]> )>>{$arr}([[1]])' ]]> - + @@ -14045,7 +14181,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -14054,7 +14190,7 @@ Result: '[1]' Expected: '[1]' ]]> - + @@ -14063,7 +14199,7 @@ Result: '[1,2,3]' Expected: '[1,2,3]' ]]> - + @@ -14072,7 +14208,7 @@ Result: '[1,3,11,22]' Expected: '[1,3,11,22]' ]]> - + @@ -14081,7 +14217,7 @@ Result: '[[1,3,2],[1,2,3],[1,3,2]]' Expected: '[[1,3,2],[1,2,3],[1,3,2]]' ]]> - + @@ -14090,7 +14226,7 @@ Result: '[21.67,34.45,34.45,107.99]' Expected: '[21.67,34.45,34.45,107.99]' ]]> - + @@ -14099,7 +14235,7 @@ Result: '["Bowler Hat","Bowler Hat","Cloak","Trilby hat"]' Expected: '["Bowler Hat","Bowler Hat","Cloak","Trilby hat"]' ]]> - + @@ -14111,7 +14247,7 @@ Not checking codes yet]]> - + @@ -14120,7 +14256,7 @@ Result: '["21.67 x 1","34.45 x 2","107.99 x 1","34.45 x 4"]' Expected: '["21.67 x 1","34.45 x 2","107.99 x 1","34.45 x 4"]' ]]> - + @@ -14147,7 +14283,7 @@ Expected: '["0406634348","0406654608","040657863","0406654603"]' - + @@ -14179,7 +14315,7 @@ Expected: '["0406634348","040657863","0406654608","0406654603"]' - + @@ -14188,7 +14324,7 @@ Result: '["Hello","World"]' Expected: '["Hello","World"]' ]]> - + @@ -14197,7 +14333,7 @@ Result: '["Hello"]' Expected: '["Hello"]' ]]> - + @@ -14206,7 +14342,7 @@ Result: '["Hello","","World"]' Expected: '["Hello","","World"]' ]]> - + @@ -14215,7 +14351,7 @@ Result: '["H","e","l","l","o"]' Expected: '["H","e","l","l","o"]' ]]> - + @@ -14224,7 +14360,7 @@ Result: '15' Expected: '15' ]]> - + @@ -14233,7 +14369,7 @@ Result: '["a","b","c","d"]' Expected: '["a","b","c","d"]' ]]> - + @@ -14242,7 +14378,7 @@ Result: '["a","b"]' Expected: '["a","b"]' ]]> - + @@ -14251,7 +14387,7 @@ Result: '["a","b"]' Expected: '["a","b"]' ]]> - + @@ -14260,7 +14396,7 @@ Result: '["a","b","c","d"]' Expected: '["a","b","c","d"]' ]]> - + @@ -14269,7 +14405,7 @@ Result: '[]' Expected: '[]' ]]> - + @@ -14278,7 +14414,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -14290,7 +14426,7 @@ Not checking codes yet]]> - + @@ -14302,7 +14438,7 @@ Not checking codes yet]]> - + @@ -14314,7 +14450,7 @@ Not checking codes yet]]> - + @@ -14326,7 +14462,7 @@ Not checking codes yet]]> - + @@ -14338,7 +14474,7 @@ Not checking codes yet]]> - + @@ -14350,7 +14486,7 @@ Not checking codes yet]]> - + @@ -14362,7 +14498,7 @@ Not checking codes yet]]> - + @@ -14371,7 +14507,7 @@ Result: '["12","345","6"]' Expected: '["12","345","6"]' ]]> - + @@ -14380,7 +14516,7 @@ Result: '"Hello World"' Expected: '"Hello World"' ]]> - + @@ -14389,7 +14525,7 @@ Result: '[{"Colour":"Purple"},{"Width":300},{"Height":200},{"Depth":210},{"Weigh Expected: '[{"Colour":"Purple"},{"Width":300},{"Height":200},{"Depth":210},{"Weight":0.75},{"Colour":"Orange"},{"Width":300},{"Height":200},{"Depth":210},{"Weight":0.6},{"Colour":"Purple"},{"Width":300},{"Height":200},{"Depth":210},{"Weight":0.75},{"Colour":"Black"},{"Width":30},{"Height":20},{"Depth":210},{"Weight":2}]' ]]> - + @@ -14398,7 +14534,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -14407,7 +14543,7 @@ Result: '""' Expected: '""' ]]> - + @@ -14416,7 +14552,7 @@ Result: '2' Expected: '2' ]]> - + @@ -14425,7 +14561,7 @@ Result: '1.4142135623731' Expected: '1.4142135623730951' ]]> - + @@ -14434,7 +14570,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -14446,7 +14582,7 @@ Not checking codes yet]]> - + @@ -14455,7 +14591,7 @@ Result: '"5"' Expected: '"5"' ]]> - + @@ -14464,7 +14600,7 @@ Result: '"3.14285714285714"' Expected: '"3.14285714285714"' ]]> - + @@ -14473,7 +14609,7 @@ Result: '"1e+100"' Expected: '"1e+100"' ]]> - + @@ -14500,7 +14636,7 @@ Expected: '"1e-100"' - + @@ -14509,7 +14645,7 @@ Result: '"0.000001"' Expected: '"0.000001"' ]]> - + @@ -14536,7 +14672,7 @@ Expected: '"1e-7"' - + @@ -14545,7 +14681,7 @@ Result: '"100000000000000000000"' Expected: '"100000000000000000000"' ]]> - + @@ -14572,7 +14708,7 @@ Expected: '"1e+21"' - + @@ -14581,7 +14717,7 @@ Result: '["90.57","245.79"]' Expected: '["90.57","245.79"]' ]]> - + @@ -14590,7 +14726,7 @@ Result: '"true"' Expected: '"true"' ]]> - + @@ -14599,7 +14735,7 @@ Result: '"false"' Expected: '"false"' ]]> - + @@ -14608,7 +14744,7 @@ Result: '"null"' Expected: '"null"' ]]> - + @@ -14617,7 +14753,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -14626,7 +14762,7 @@ Result: '""' Expected: '""' ]]> - + @@ -14635,7 +14771,7 @@ Result: '""' Expected: '""' ]]> - + @@ -14644,7 +14780,7 @@ Result: '""' Expected: '""' ]]> - + @@ -14653,7 +14789,7 @@ Result: '"{\"string\":\"hello\"}"' Expected: '"{\"string\":\"hello\"}"' ]]> - + @@ -14662,7 +14798,7 @@ Result: '"[\"string\",5]"' Expected: '"[\"string\",5]"' ]]> - + @@ -14671,7 +14807,7 @@ Result: '"{\"string\":\"hello\",\"number\":39.4,\"null\":null,\"boolean\":false, Expected: '"{\"string\":\"hello\",\"number\":39.4,\"null\":null,\"boolean\":false,\"function\":\"\",\"lambda\":\"\",\"object\":{\"str\":\"another\",\"lambda2\":\"\"},\"array\":[]}"' ]]> - + @@ -14683,7 +14819,7 @@ Not checking codes yet]]> - + @@ -14695,7 +14831,7 @@ Not checking codes yet]]> - + @@ -14707,7 +14843,7 @@ Not checking codes yet]]> - + @@ -14716,7 +14852,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -14725,7 +14861,7 @@ Result: '"{\"string\":\"hello\"}"' Expected: '"{\"string\":\"hello\"}"' ]]> - + @@ -14734,7 +14870,7 @@ Result: '"{\n \"string\": \"hello\"\n}"' Expected: '"{\n \"string\": \"hello\"\n}"' ]]> - + @@ -14743,7 +14879,7 @@ Result: '"[\"string\",5]"' Expected: '"[\"string\",5]"' ]]> - + @@ -14752,7 +14888,7 @@ Result: '"[\n \"string\",\n 5\n]"' Expected: '"[\n \"string\",\n 5\n]"' ]]> - + @@ -14761,7 +14897,7 @@ Result: '"{\"string\":\"hello\",\"number\":39.4,\"null\":null,\"boolean\":false, Expected: '"{\"string\":\"hello\",\"number\":39.4,\"null\":null,\"boolean\":false,\"function\":\"\",\"lambda\":\"\",\"object\":{\"str\":\"another\",\"lambda2\":\"\"},\"array\":[]}"' ]]> - + @@ -14770,7 +14906,7 @@ Result: '"{\n \"string\": \"hello\",\n \"number\": 39.4,\n \"null\": null,\n Expected: '"{\n \"string\": \"hello\",\n \"number\": 39.4,\n \"null\": null,\n \"boolean\": false,\n \"function\": \"\",\n \"lambda\": \"\",\n \"object\": {\n \"str\": \"another\",\n \"lambda2\": \"\"\n },\n \"array\": []\n}"' ]]> - + @@ -14797,7 +14933,7 @@ Expected: '"[4,true]"' - + @@ -14806,7 +14942,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -14815,7 +14951,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -14824,7 +14960,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -14833,7 +14969,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -14860,7 +14996,7 @@ Expected: '"𝄞💩"' - + @@ -14887,7 +15023,7 @@ Expected: '"𝄞"' - + @@ -14914,7 +15050,7 @@ Expected: '"💩"' - + @@ -14923,7 +15059,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -14932,7 +15068,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -14941,7 +15077,7 @@ Result: '"worl"' Expected: '"worl"' ]]> - + @@ -14950,7 +15086,7 @@ Result: '"w"' Expected: '"w"' ]]> - + @@ -14959,7 +15095,7 @@ Result: '""' Expected: '""' ]]> - + @@ -14968,7 +15104,7 @@ Result: '""' Expected: '""' ]]> - + @@ -14977,7 +15113,7 @@ Result: '""' Expected: '""' ]]> - + @@ -14986,7 +15122,7 @@ Result: '"hel"' Expected: '"hel"' ]]> - + @@ -15013,7 +15149,7 @@ Expected: '"😁"' - + @@ -15040,7 +15176,7 @@ Expected: '"😂"' - + @@ -15067,7 +15203,7 @@ Expected: '"😂"' - + @@ -15094,7 +15230,7 @@ Expected: '"😂"' - + @@ -15103,7 +15239,7 @@ Result: '"World"' Expected: '"World"' ]]> - + @@ -15112,7 +15248,7 @@ Result: '"lo World"' Expected: '"lo World"' ]]> - + @@ -15121,7 +15257,7 @@ Result: '"Hello World"' Expected: '"Hello World"' ]]> - + @@ -15130,7 +15266,7 @@ Result: '""' Expected: '""' ]]> - + @@ -15139,7 +15275,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -15148,7 +15284,7 @@ Result: '"Hello"' Expected: '"Hello"' ]]> - + @@ -15157,7 +15293,7 @@ Result: '"He"' Expected: '"He"' ]]> - + @@ -15166,7 +15302,7 @@ Result: '"Hello World"' Expected: '"Hello World"' ]]> - + @@ -15175,7 +15311,7 @@ Result: '""' Expected: '""' ]]> - + @@ -15184,7 +15320,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -15193,7 +15329,7 @@ Result: '336.36' Expected: '336.36' ]]> - + @@ -15202,7 +15338,7 @@ Result: '[90.57,245.79]' Expected: '[90.57000000000001,245.79000000000002]' ]]> - + @@ -15211,7 +15347,7 @@ Result: '["order103: 90.57","order104: 245.79"]' Expected: '["order103: 90.57","order104: 245.79"]' ]]> - + @@ -15223,7 +15359,7 @@ Not checking codes yet]]> - + @@ -15232,7 +15368,7 @@ Result: '1' Expected: '1' ]]> - + @@ -15244,7 +15380,7 @@ Not checking codes yet]]> - + @@ -15253,28 +15389,29 @@ Result: 'undefined' Expected 'undefined' ]]> - + - - + @@ -15283,92 +15420,96 @@ Result: '1517478133123' Expected: '1517478133123' ]]> - + - - + - - + - - + - - + @@ -15380,7 +15521,7 @@ Not checking codes yet]]> - + @@ -15392,7 +15533,7 @@ Not checking codes yet]]> - + @@ -15404,805 +15545,840 @@ Not checking codes yet]]> - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - $fromMillis() ~> $substringBefore('T') = $substringBefore($now(), 'T')' ]]> - + - $fromMillis() ~> $substringAfter('T')' ]]> - + - $fromMillis()' ]]> - + - $fromMillis()' ]]> - + - $fromMillis()' ]]> - + - $fromMillis()' ]]> - + - - + @@ -16215,7 +16391,7 @@ Not checking codes yet]]> Expr is '$toMillis('2018-05-22', '[Y]-[M]-[q]')' ]]> - + @@ -16228,7 +16404,7 @@ Not checking codes yet]]> Expr is '$toMillis('2018-05-22', '[YN]-[M]-[D]')' ]]> - + @@ -16241,7 +16417,7 @@ Not checking codes yet]]> Expr is '$toMillis('2018-22', '[Y]-[D]')' ]]> - + @@ -16254,7 +16430,7 @@ Not checking codes yet]]> Expr is '$toMillis('5-22 23:59', '[M]-[D] [m]:[s]')' ]]> - + @@ -16267,7 +16443,7 @@ Not checking codes yet]]> Expr is '$toMillis('2018-3-2-5', '[X]-[x]-[w]-[F1]')' ]]> - + @@ -16280,132 +16456,137 @@ Not checking codes yet]]> Expr is '$toMillis('2018-32-5', '[X]-[W]-[F1]')' ]]> - + - $fromMillis() ' ]]> - + - $fromMillis() ' ]]> - + - $fromMillis() ' ]]> - + - $fromMillis() ' ]]> - + - $fromMillis() ' ]]> - + @@ -16414,7 +16595,7 @@ Result: '"Hello World"' Expected: '"Hello World"' ]]> - + @@ -16424,7 +16605,7 @@ Result: '"Hello World"' Expected: '"Hello World"' ]]> - + @@ -16433,7 +16614,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -16442,7 +16623,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -16451,7 +16632,7 @@ Result: '"null"' Expected: '"null"' ]]> - + @@ -16460,7 +16641,7 @@ Result: '"number"' Expected: '"number"' ]]> - + @@ -16469,7 +16650,7 @@ Result: '"string"' Expected: '"string"' ]]> - + @@ -16478,7 +16659,7 @@ Result: '"boolean"' Expected: '"boolean"' ]]> - + @@ -16487,7 +16668,7 @@ Result: '"string"' Expected: '"string"' ]]> - + @@ -16496,7 +16677,7 @@ Result: '"array"' Expected: '"array"' ]]> - + @@ -16505,7 +16686,7 @@ Result: '"array"' Expected: '"array"' ]]> - + @@ -16514,7 +16695,7 @@ Result: '"array"' Expected: '"array"' ]]> - + @@ -16523,7 +16704,7 @@ Result: '"function"' Expected: '"function"' ]]> - + @@ -16532,7 +16713,7 @@ Result: '"function"' Expected: '"function"' ]]> - + @@ -16541,7 +16722,7 @@ Result: '"object"' Expected: '"object"' ]]> - + @@ -16550,7 +16731,7 @@ Result: '"object"' Expected: '"object"' ]]> - + @@ -16559,7 +16740,7 @@ Result: '"HELLO WORLD"' Expected: '"HELLO WORLD"' ]]> - + @@ -16568,7 +16749,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -16577,7 +16758,7 @@ Result: '[[1,4],[2,5],[3,6]]' Expected: '[[1,4],[2,5],[3,6]]' ]]> - + @@ -16586,7 +16767,7 @@ Result: '[[1,4,7],[2,5,8],[3,6,9]]' Expected: '[[1,4,7],[2,5,8],[3,6,9]]' ]]> - + @@ -16595,7 +16776,7 @@ Result: '[[1,4,7],[2,5,8]]' Expected: '[[1,4,7],[2,5,8]]' ]]> - + @@ -16604,7 +16785,7 @@ Result: '[[1],[2],[3]]' Expected: '[[1],[2],[3]]' ]]> - + @@ -16613,7 +16794,7 @@ Result: '[[1,2,3]]' Expected: '[[1,2,3]]' ]]> - + @@ -16622,7 +16803,7 @@ Result: '[]' Expected: '[]' ]]> - + @@ -16631,7 +16812,7 @@ Result: '13' Expected: '13' ]]> - + @@ -16640,7 +16821,7 @@ Result: '720' Expected: '720' ]]> - + @@ -16649,7 +16830,7 @@ Result: '8' Expected: '8' ]]> - + @@ -16658,7 +16839,7 @@ Result: '"9780262510875"' Expected: '"9780262510875"' ]]> - + @@ -16667,7 +16848,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -16676,7 +16857,7 @@ Result: '5' Expected: '5' ]]> - + @@ -16685,7 +16866,7 @@ Result: '[1,2]' Expected: '[1,2]' ]]> - + @@ -16694,7 +16875,7 @@ Result: '[1,4,9,16,25]' Expected: '[1,4,9,16,25]' ]]> - + @@ -16706,7 +16887,7 @@ Not checking codes yet]]> - + @@ -16715,7 +16896,7 @@ Result: '["1","2","3"]' Expected: '["1","2","3"]' ]]> - + @@ -16724,7 +16905,7 @@ Result: '["1: Bowler Hat","2: Trilby hat","3: Bowler Hat","4: Cloak"]' Expected: '["1: Bowler Hat","2: Trilby hat","3: Bowler Hat","4: Cloak"]' ]]> - + @@ -16733,7 +16914,7 @@ Result: '["1/4: Bowler Hat","2/4: Trilby hat","3/4: Bowler Hat","4/4: Cloak"]' Expected: '["1/4: Bowler Hat","2/4: Trilby hat","3/4: Bowler Hat","4/4: Cloak"]' ]]> - + @@ -16742,7 +16923,7 @@ Result: '[1,2]' Expected: '[1,2]' ]]> - + @@ -16751,7 +16932,7 @@ Result: '[1,2]' Expected: '[1,2]' ]]> - + @@ -16760,7 +16941,7 @@ Result: '[null,1,2,null]' Expected: '[null,1,2,null]' ]]> - + @@ -16769,7 +16950,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -16778,7 +16959,7 @@ Result: '[false,true,true]' Expected: '[false,true,true]' ]]> - + @@ -16787,7 +16968,7 @@ Result: '15' Expected: '15' ]]> - + @@ -16796,7 +16977,7 @@ Result: '"1 ... 2 ... 3 ... 4 ... 5"' Expected: '"1 ... 2 ... 3 ... 4 ... 5"' ]]> - + @@ -16805,7 +16986,7 @@ Result: '17' Expected: '17' ]]> - + @@ -16814,7 +16995,7 @@ Result: '1' Expected: '1' ]]> - + @@ -16823,7 +17004,7 @@ Result: '1' Expected: '1' ]]> - + @@ -16832,7 +17013,7 @@ Result: '[2,1,4,1]' Expected: '[2,1,4,1]' ]]> - + @@ -16841,7 +17022,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -16850,7 +17031,7 @@ Result: '[1,2,4,8,16,32]' Expected: '[1,2,4,8,16,32]' ]]> - + @@ -16862,7 +17043,7 @@ Not checking codes yet]]> - + @@ -16883,7 +17064,7 @@ Result: '4' Expected: '4' ]]> - + @@ -16901,7 +17082,7 @@ Result: '6' Expected: '6' ]]> - + @@ -16910,7 +17091,7 @@ Result: '"9780262510875"' Expected: '"9780262510875"' ]]> - + @@ -16919,7 +17100,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -16928,7 +17109,7 @@ Result: '5' Expected: '5' ]]> - + @@ -16940,7 +17121,7 @@ Not checking codes yet]]> - + @@ -16952,7 +17133,7 @@ Not checking codes yet]]> - + @@ -16964,7 +17145,7 @@ Not checking codes yet]]> - + @@ -16973,7 +17154,7 @@ Result: '0' Expected: '0' ]]> - + @@ -16985,7 +17166,7 @@ Not checking codes yet]]> - + @@ -16994,7 +17175,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -17003,7 +17184,7 @@ Result: '"one"' Expected: '"one"' ]]> - + @@ -17012,7 +17193,7 @@ Result: '{"type":"home","number":"0203 544 1234"}' Expected: '{"type":"home","number":"0203 544 1234"}' ]]> - + @@ -17021,7 +17202,7 @@ Result: '[6,6,6,6,6]' Expected: '[6,6,6,6,6]' ]]> - + @@ -17030,7 +17211,7 @@ Result: '[6,6,6,6,6]' Expected: '[6,6,6,6,6]' ]]> - + @@ -17039,7 +17220,7 @@ Result: '6' Expected: '6' ]]> - + @@ -17048,7 +17229,7 @@ Result: '6' Expected: '6' ]]> - + @@ -17057,7 +17238,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -17066,7 +17247,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -17075,7 +17256,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -17084,7 +17265,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -17093,7 +17274,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -17102,7 +17283,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -17111,7 +17292,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -17120,7 +17301,7 @@ Result: '["The AWK Programming Language","Compilers: Principles, Techniques, and Expected: '["The AWK Programming Language","Compilers: Principles, Techniques, and Tools"]' ]]> - + @@ -17129,597 +17310,605 @@ Result: '"fakeintegrationname"' Expected: '"fakeintegrationname"' ]]> - + - + - + - + $join(', ') }' ]]> - + - + - + - + - + - + - + $) }' ]]> - + - + - + - + - + OrderID)@$o.Product.{ 'name':`Product Name`, 'orderid':$o.OrderID }' ]]> - + - + - + - + - + - + $)' ]]> - + - + - + - + - + - + - + =2]' ]]> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -17955,7 +18154,7 @@ Result: '25' Expected: '25' ]]> - + @@ -17964,7 +18163,7 @@ Result: '"foo"' Expected: '"foo"' ]]> - + @@ -17973,7 +18172,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -17982,7 +18181,7 @@ Result: '24' Expected: '24' ]]> - + @@ -17991,7 +18190,7 @@ Result: '[1,1,2,3,5,8,13,21,34]' Expected: '[1,1,2,3,5,8,13,21,34]' ]]> - + @@ -18000,7 +18199,7 @@ Result: '21.67' Expected: '21.67' ]]> - + @@ -18009,7 +18208,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -18018,7 +18217,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -18027,7 +18226,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -18036,7 +18235,7 @@ Result: '[4,3]' Expected: '[4,3]' ]]> - + @@ -18045,7 +18244,7 @@ Result: '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]' Expected: '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]' ]]> - + @@ -18054,7 +18253,7 @@ Result: '[0,2,4,6,8,10,12,14]' Expected: '[0,2,4,6,8,10,12,14]' ]]> - + @@ -18063,7 +18262,7 @@ Result: '4' Expected: '4' ]]> - + @@ -18072,7 +18271,7 @@ Result: '{"fgFoo:0:hausnummer":{"type":"de.example.api.PossibleValuesList","valu Expected: '{"fgFoo:0:hausnummer":{"type":"de.example.api.PossibleValuesList","value":[{"label":"","value":""}]}}' ]]> - + @@ -18081,7 +18280,7 @@ Result: '{"fgFoo:0:hausnummer":{"type":"de.example.api.PossibleValuesList","valu Expected: '{"fgFoo:0:hausnummer":{"type":"de.example.api.PossibleValuesList","value":[{"label":"","value":""}]}}' ]]> - + @@ -18090,7 +18289,7 @@ Result: '{"fgFoo:0:hausnummer":{"type":"de.example.api.PossibleValuesList","valu Expected: '{"fgFoo:0:hausnummer":{"type":"de.example.api.PossibleValuesList","value":[{"label":"","value":""}]}}' ]]> - + @@ -18099,7 +18298,7 @@ Result: '{"fgFoo:0:hausnummer":{"type":"de.example.api.PossibleValuesList","valu Expected: '{"fgFoo:0:hausnummer":{"type":"de.example.api.PossibleValuesList","value":[{"label":"","value":""}]}}' ]]> - + @@ -18108,7 +18307,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -18117,7 +18316,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -18126,7 +18325,7 @@ Result: '"Wayne's World"' Expected: '"Wayne's World"' ]]> - + @@ -18135,7 +18334,7 @@ Result: '42' Expected: '42' ]]> - + @@ -18144,7 +18343,7 @@ Result: '-42' Expected: '-42' ]]> - + @@ -18153,7 +18352,7 @@ Result: '3.14159' Expected: '3.14159' ]]> - + @@ -18162,7 +18361,7 @@ Result: '602200000000000000000000.0' Expected: '6.022E+23' ]]> - + @@ -18171,7 +18370,7 @@ Result: '0.0000000000000000001602' Expected: '1.602E-19' ]]> - + @@ -18183,7 +18382,7 @@ Not checking codes yet]]> - + @@ -18192,7 +18391,7 @@ Result: '"hello\tworld"' Expected: '"hello\tworld"' ]]> - + @@ -18201,7 +18400,7 @@ Result: '"hello\nworld"' Expected: '"hello\nworld"' ]]> - + @@ -18210,7 +18409,7 @@ Result: '"hello \"world\""' Expected: '"hello \"world\""' ]]> - + @@ -18219,7 +18418,7 @@ Result: '"C:\\Test\\test.txt"' Expected: '"C:\\Test\\test.txt"' ]]> - + @@ -18228,7 +18427,7 @@ Result: '"λ-calculus rocks"' Expected: '"λ-calculus rocks"' ]]> - + @@ -18237,7 +18436,7 @@ Result: '"𝄞"' Expected: '"𝄞"' ]]> - + @@ -18248,17 +18447,17 @@ Expected: '"𝄞"' at System.Text.RegularExpressions.RegexParser.UnescapeImpl(String input, Int32 i) at System.Text.RegularExpressions.RegexParser.Unescape(String input) at System.Text.RegularExpressions.Regex.Unescape(String str) - at Jsonata.Net.Native.Parsing.Helpers.Unescape(String src) in /_/src/Jsonata.Net.Native/Parsing/Helpers.cs:line 28 - at Jsonata.Net.Native.Parsing.Parser.parseString(Token t) in /_/src/Jsonata.Net.Native/Parsing/Parser_Nuds.cs:line 16 - at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in /_/src/Jsonata.Net.Native/Parsing/Parser.cs:line 221 - at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in /_/src/Jsonata.Net.Native/Parsing/Parser.cs:line 18 - at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in /_/src/Jsonata.Net.Native/JsonataQuery.cs:line 18 + at Jsonata.Net.Native.Parsing.Helpers.Unescape(String src) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Helpers.cs:line 28 + at Jsonata.Net.Native.Parsing.Parser.parseString(Token t) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser_Nuds.cs:line 16 + at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 221 + at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 18 + at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\JsonataQuery.cs:line 18 at Jsonata.Net.Native.TestSuite.Tests.Test(CaseInfo caseInfo) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.TestSuite\UnitTest1.cs:line 93]]> - + @@ -18270,17 +18469,17 @@ Expected: '"𝄞"' at System.Text.RegularExpressions.RegexParser.UnescapeImpl(String input, Int32 i) at System.Text.RegularExpressions.RegexParser.Unescape(String input) at System.Text.RegularExpressions.Regex.Unescape(String str) - at Jsonata.Net.Native.Parsing.Helpers.Unescape(String src) in /_/src/Jsonata.Net.Native/Parsing/Helpers.cs:line 28 - at Jsonata.Net.Native.Parsing.Parser.parseString(Token t) in /_/src/Jsonata.Net.Native/Parsing/Parser_Nuds.cs:line 16 - at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in /_/src/Jsonata.Net.Native/Parsing/Parser.cs:line 221 - at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in /_/src/Jsonata.Net.Native/Parsing/Parser.cs:line 18 - at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in /_/src/Jsonata.Net.Native/JsonataQuery.cs:line 18 + at Jsonata.Net.Native.Parsing.Helpers.Unescape(String src) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Helpers.cs:line 28 + at Jsonata.Net.Native.Parsing.Parser.parseString(Token t) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser_Nuds.cs:line 16 + at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 221 + at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 18 + at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\JsonataQuery.cs:line 18 at Jsonata.Net.Native.TestSuite.Tests.Test(CaseInfo caseInfo) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.TestSuite\UnitTest1.cs:line 93]]> - + @@ -18292,17 +18491,17 @@ Expected: '"𝄞"' at System.Text.RegularExpressions.RegexParser.UnescapeImpl(String input, Int32 i) at System.Text.RegularExpressions.RegexParser.Unescape(String input) at System.Text.RegularExpressions.Regex.Unescape(String str) - at Jsonata.Net.Native.Parsing.Helpers.Unescape(String src) in /_/src/Jsonata.Net.Native/Parsing/Helpers.cs:line 28 - at Jsonata.Net.Native.Parsing.Parser.parseString(Token t) in /_/src/Jsonata.Net.Native/Parsing/Parser_Nuds.cs:line 16 - at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in /_/src/Jsonata.Net.Native/Parsing/Parser.cs:line 221 - at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in /_/src/Jsonata.Net.Native/Parsing/Parser.cs:line 18 - at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in /_/src/Jsonata.Net.Native/JsonataQuery.cs:line 18 + at Jsonata.Net.Native.Parsing.Helpers.Unescape(String src) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Helpers.cs:line 28 + at Jsonata.Net.Native.Parsing.Parser.parseString(Token t) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser_Nuds.cs:line 16 + at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 221 + at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 18 + at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\JsonataQuery.cs:line 18 at Jsonata.Net.Native.TestSuite.Tests.Test(CaseInfo caseInfo) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.TestSuite\UnitTest1.cs:line 93]]> - + @@ -18311,7 +18510,7 @@ Result: '{"foo":{"sequence":123,"bar":"baz"}}' Expected: '{"foo":{"sequence":123,"bar":"baz"}}' ]]> - + @@ -18320,25 +18519,26 @@ Result: '{"foo":{"sequence":true,"bar":"baz"}}' Expected: '{"foo":{"sequence":true,"bar":"baz"}}' ]]> - + - - + @@ -18373,7 +18573,7 @@ Not checking codes yet]]> - + @@ -18382,7 +18582,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18391,7 +18591,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18400,7 +18600,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18409,7 +18609,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18418,7 +18618,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18427,7 +18627,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18436,7 +18636,7 @@ Result: '[2,3,4,9,10]' Expected: '[2,3,4,9,10]' ]]> - + @@ -18445,7 +18645,7 @@ Result: '[2,3,4,6,9]' Expected: '[2,3,4,6,9]' ]]> - + @@ -18454,7 +18654,7 @@ Result: '[1,2,3,4,5,6,7,8,9,10]' Expected: '[1,2,3,4,5,6,7,8,9,10]' ]]> - + @@ -18463,7 +18663,7 @@ Result: 'null' Expected: 'null' ]]> - + @@ -18472,7 +18672,7 @@ Result: '[null]' Expected: '[null]' ]]> - + @@ -18481,7 +18681,7 @@ Result: '[null,null]' Expected: '[null,null]' ]]> - + @@ -18490,7 +18690,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -18499,7 +18699,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -18508,7 +18708,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -18517,7 +18717,7 @@ Result: '{"true":true,"false":false,"null":null}' Expected: '{"true":true,"false":false,"null":null}' ]]> - + @@ -18526,7 +18726,7 @@ Result: '140' Expected: '140' ]]> - + @@ -18535,7 +18735,7 @@ Result: '140' Expected: '140' ]]> - + @@ -18544,7 +18744,7 @@ Result: '-56' Expected: '-56' ]]> - + @@ -18553,7 +18753,7 @@ Result: '56' Expected: '56' ]]> - + @@ -18562,7 +18762,7 @@ Result: '4116' Expected: '4116' ]]> - + @@ -18571,7 +18771,7 @@ Result: '4116' Expected: '4116' ]]> - + @@ -18580,7 +18780,7 @@ Result: '0.428571428571429' Expected: '0.42857142857142855' ]]> - + @@ -18589,7 +18789,7 @@ Result: '2.33333333333333' Expected: '2.3333333333333335' ]]> - + @@ -18598,7 +18798,7 @@ Result: '42' Expected: '42' ]]> - + @@ -18607,7 +18807,7 @@ Result: '14' Expected: '14' ]]> - + @@ -18616,7 +18816,7 @@ Result: '4214' Expected: '4214' ]]> - + @@ -18625,7 +18825,7 @@ Result: '4214' Expected: '4214' ]]> - + @@ -18634,7 +18834,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18643,7 +18843,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18655,7 +18855,7 @@ Not checking codes yet]]> - + @@ -18667,7 +18867,7 @@ Not checking codes yet]]> - + @@ -18676,7 +18876,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18688,7 +18888,7 @@ Not checking codes yet]]> - + @@ -18709,7 +18909,7 @@ Expected error T2001 - + @@ -18718,7 +18918,7 @@ Result: '{}' Expected: '{}' ]]> - + @@ -18727,7 +18927,7 @@ Result: '{"key":"value"}' Expected: '{"key":"value"}' ]]> - + @@ -18736,7 +18936,7 @@ Result: '{"one":1,"two":2}' Expected: '{"one":1,"two":2}' ]]> - + @@ -18745,7 +18945,7 @@ Result: '2' Expected: '2' ]]> - + @@ -18754,7 +18954,7 @@ Result: '{"one":1,"two":{"three":3,"four":"4"}}' Expected: '{"one":1,"two":{"three":3,"four":"4"}}' ]]> - + @@ -18763,7 +18963,7 @@ Result: '{"one":1,"two":[3,"four"]}' Expected: '{"one":1,"two":[3,"four"]}' ]]> - + @@ -18772,7 +18972,7 @@ Result: '{}' Expected: '{}' ]]> - + @@ -18781,7 +18981,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -18790,7 +18990,7 @@ Result: '{"order103":["Bowler Hat","Trilby hat"],"order104":["Bowler Hat","Cloak Expected: '{"order103":["Bowler Hat","Trilby hat"],"order104":["Bowler Hat","Cloak"]}' ]]> - + @@ -18799,7 +18999,7 @@ Result: '[{"order103":["Bowler Hat","Trilby hat"]},{"order104":["Bowler Hat","Cl Expected: '[{"order103":["Bowler Hat","Trilby hat"]},{"order104":["Bowler Hat","Cloak"]}]' ]]> - + @@ -18808,7 +19008,7 @@ Result: '{"858383":[34.45,34.45],"858236":21.67,"345664":107.99}' Expected: '{"345664":107.99,"858236":21.67,"858383":[34.45,34.45]}' ]]> - + @@ -18817,7 +19017,7 @@ Result: '{"858383":34.45,"858236":21.67,"345664":107.99}' Expected: '{"345664":107.99,"858236":21.67,"858383":34.45}' ]]> - + @@ -18826,7 +19026,7 @@ Result: '[{"858383":34.45},{"858236":21.67},{"858383":34.45},{"345664":107.99}]' Expected: '[{"858383":34.45},{"858236":21.67},{"858383":34.45},{"345664":107.99}]' ]]> - + @@ -18838,7 +19038,7 @@ Not checking codes yet]]> - + @@ -18850,7 +19050,7 @@ Not checking codes yet]]> - + @@ -18859,7 +19059,7 @@ Result: '{"order103":90.57,"order104":245.79}' Expected: '{"order103":90.57000000000001,"order104":245.79000000000002}' ]]> - + @@ -18868,7 +19068,7 @@ Result: '[{"order103":90.57},{"order104":245.79}]' Expected: '[{"order103":90.57000000000001},{"order104":245.79000000000002}]' ]]> - + @@ -18880,7 +19080,7 @@ Not checking codes yet]]> - + @@ -18889,7 +19089,7 @@ Result: '{"Bowler Hat":[34.45,34.45],"0406654608":34.45,"Trilby hat":21.67,"0406 Expected: '{"Bowler Hat":[34.45,34.45],"0406654608":34.45,"Trilby hat":21.67,"0406634348":21.67,"040657863":34.45,"Cloak":107.99,"0406654603":107.99}' ]]> - + @@ -18898,7 +19098,7 @@ Result: '{"order103":{"TotalPrice":90.57,"Items":["Bowler Hat","Trilby hat"]},"o Expected: '{"order103":{"TotalPrice":90.57000000000001,"Items":["Bowler Hat","Trilby hat"]},"order104":{"TotalPrice":245.79000000000002,"Items":["Bowler Hat","Cloak"]}}' ]]> - + @@ -18907,7 +19107,7 @@ Result: '{"Order":[{"ID":"order103","Product":[{"Name":"Bowler Hat","SKU":858383 Expected: '{"Order":[{"ID":"order103","Product":[{"Name":"Bowler Hat","SKU":858383,"Details":{"Weight":0.75,"Dimensions":"300 x 200 x 210"}},{"Name":"Trilby hat","SKU":858236,"Details":{"Weight":0.6,"Dimensions":"300 x 200 x 210"}}],"Total Price":90.57000000000001},{"ID":"order104","Product":[{"Name":"Bowler Hat","SKU":858383,"Details":{"Weight":0.75,"Dimensions":"300 x 200 x 210"}},{"Name":"Cloak","SKU":345664,"Details":{"Weight":2,"Dimensions":"30 x 20 x 210"}}],"Total Price":245.79000000000002}]}' ]]> - + @@ -18916,7 +19116,7 @@ Result: '{"Order":[{"ID":"order103","Product":[{"Name":"Bowler Hat","SKU":858383 Expected: '{"Order":[{"ID":"order103","Product":[{"Name":"Bowler Hat","SKU":858383,"Details":{"Weight":0.75,"Dimensions":"300 x 200 x 210"}},{"Name":"Trilby hat","SKU":858236,"Details":{"Weight":0.6,"Dimensions":"300 x 200 x 210"}}],"Total Price":90.57000000000001},{"ID":"order104","Product":[{"Name":"Bowler Hat","SKU":858383,"Details":{"Weight":0.75,"Dimensions":"300 x 200 x 210"}},{"Name":"Cloak","SKU":345664,"Details":{"Weight":2,"Dimensions":"30 x 20 x 210"}}],"Total Price":245.79000000000002}]}' ]]> - + @@ -18925,7 +19125,7 @@ Result: '{"home":"0203 544 1234","phone":["0203 544 1234","01962 001234","01962 Expected: '{"home":"0203 544 1234","phone":["0203 544 1234","01962 001234","01962 001235","077 7700 1234"],"office":"01962 001234, 01962 001235","mobile":"077 7700 1234"}' ]]> - + @@ -18937,7 +19137,7 @@ Not checking codes yet]]> - + @@ -18949,7 +19149,7 @@ Not checking codes yet]]> - + @@ -18966,7 +19166,7 @@ Result: '{"2019-01":68281,"2019-02":63672,"2019-03":78625,"2019-04":76505,"2019- Expected: '{"2019-01":68281,"2019-02":63672,"2019-03":78625,"2019-04":76505,"2019-05":129360,"2019-06":484244,"2019-07":698748,"2019-08":788322}' ]]> - + @@ -18978,7 +19178,7 @@ Not checking codes yet]]> - + @@ -18990,7 +19190,7 @@ Not checking codes yet]]> - + @@ -19002,7 +19202,7 @@ Not checking codes yet]]> - + @@ -19014,7 +19214,7 @@ Not checking codes yet]]> - + @@ -19026,7 +19226,7 @@ Not checking codes yet]]> - + @@ -19038,7 +19238,7 @@ Not checking codes yet]]> - + @@ -19050,7 +19250,7 @@ Not checking codes yet]]> - + @@ -19062,7 +19262,7 @@ Not checking codes yet]]> - + @@ -19074,7 +19274,7 @@ Not checking codes yet]]> - + @@ -19086,7 +19286,7 @@ Not checking codes yet]]> - + @@ -19098,7 +19298,7 @@ Not checking codes yet]]> - + @@ -19110,7 +19310,7 @@ Not checking codes yet]]> - + @@ -19122,7 +19322,7 @@ Not checking codes yet]]> - + @@ -19134,7 +19334,7 @@ Not checking codes yet]]> - + @@ -19146,7 +19346,7 @@ Not checking codes yet]]> - + @@ -19158,7 +19358,7 @@ Not checking codes yet]]> - + @@ -19172,7 +19372,7 @@ Result: '[{"order":"order103","Product":"Bowler Hat","Weight":0.75},{"order":"or Expected: '[{"order":"order103","Product":"Bowler Hat","Weight":0.75},{"order":"order103","Product":"Trilby hat","Weight":0.6},{"order":"order104","Product":"Bowler Hat","Weight":0.75},{"order":"order104","Product":"Cloak","Weight":2}]' ]]> - + @@ -19186,7 +19386,7 @@ Result: '[{"order":"order103","Product":"Bowler Hat","Weight":0.75},{"order":"or Expected: '[{"order":"order103","Product":"Bowler Hat","Weight":0.75},{"order":"order103","Product":"Trilby hat","Weight":0.6},{"order":"order104","Product":"Bowler Hat","Weight":0.75},{"order":"order104","Product":"Cloak","Weight":2}]' ]]> - + @@ -19213,7 +19413,7 @@ Expected: '["Bowler Hat","order103","Trilby hat","order103","Bowler Hat","order1 - + @@ -19222,7 +19422,7 @@ Result: '[{"Bowler Hat":[2,"order103"]},{"Trilby hat":[1,"order103"]},{"Bowler H Expected: '[{"Bowler Hat":[2,"order103"]},{"Trilby hat":[1,"order103"]},{"Bowler Hat":[4,"order104"]},{"Cloak":[1,"order104"]}]' ]]> - + @@ -19231,7 +19431,7 @@ Result: '[{"Bowler Hat":[2,"order103"]},{"Trilby hat":[1,"order103"]},{"Bowler H Expected: '[{"Bowler Hat":[2,"order103"]},{"Trilby hat":[1,"order103"]},{"Bowler Hat":[4,"order104"]},{"Cloak":[1,"order104"]}]' ]]> - + @@ -19240,7 +19440,7 @@ Result: '["040657863","0406654603"]' Expected: '["040657863","0406654603"]' ]]> - + @@ -19249,7 +19449,7 @@ Result: '["0406654608","0406634348","040657863","0406654603"]' Expected: '["0406654608","0406634348","040657863","0406654603"]' ]]> - + @@ -19258,7 +19458,7 @@ Result: '[34.45,21.67]' Expected: '[34.45,21.67]' ]]> - + @@ -19267,7 +19467,7 @@ Result: '["0406654608","0406634348"]' Expected: '["0406654608","0406634348"]' ]]> - + @@ -19276,7 +19476,7 @@ Result: '["040657863","0406654603"]' Expected: '["040657863","0406654603"]' ]]> - + @@ -19285,7 +19485,7 @@ Result: '["040657863","0406654603"]' Expected: '["040657863","0406654603"]' ]]> - + @@ -19294,7 +19494,7 @@ Result: '[{"order103":68.9},{"order103":21.67},{"order104":137.8},{"order104":10 Expected: '[{"order103":68.9},{"order103":21.67},{"order104":137.8},{"order104":107.99}]' ]]> - + @@ -19303,7 +19503,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -19317,7 +19517,7 @@ Result: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Prod Expected: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Product":"Trilby hat","Order":"order103","Account":"Firefly"},{"Product":"Bowler Hat","Order":"order104","Account":"Firefly"},{"Product":"Cloak","Order":"order104","Account":"Firefly"}]' ]]> - + @@ -19331,7 +19531,7 @@ Result: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Prod Expected: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Product":"Trilby hat","Order":"order103","Account":"Firefly"},{"Product":"Bowler Hat","Order":"order104","Account":"Firefly"},{"Product":"Cloak","Order":"order104","Account":"Firefly"}]' ]]> - + @@ -19345,7 +19545,7 @@ Result: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Prod Expected: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Product":"Trilby hat","Order":"order103","Account":"Firefly"},{"Product":"Bowler Hat","Order":"order104","Account":"Firefly"},{"Product":"Cloak","Order":"order104","Account":"Firefly"}]' ]]> - + @@ -19359,7 +19559,7 @@ Result: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Prod Expected: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Product":"Trilby hat","Order":"order103","Account":"Firefly"},{"Product":"Bowler Hat","Order":"order104","Account":"Firefly"},{"Product":"Cloak","Order":"order104","Account":"Firefly"}]' ]]> - + @@ -19373,7 +19573,7 @@ Result: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Prod Expected: '[{"Product":"Bowler Hat","Order":"order103","Account":"Firefly"},{"Product":"Trilby hat","Order":"order103","Account":"Firefly"},{"Product":"Bowler Hat","Order":"order104","Account":"Firefly"},{"Product":"Cloak","Order":"order104","Account":"Firefly"}]' ]]> - + @@ -19382,7 +19582,7 @@ Result: '["0406634348","0406654608","040657863","0406654603"]' Expected: '["0406634348","0406654608","040657863","0406654603"]' ]]> - + @@ -19391,7 +19591,7 @@ Result: '["0406634348","040657863","0406654608","0406654603"]' Expected: '["0406634348","040657863","0406654608","0406654603"]' ]]> - + @@ -19400,7 +19600,7 @@ Result: '[{"Colour":"Purple","Total":68.9},{"Colour":"Orange","Total":21.67},{"C Expected: '[{"Colour":"Purple","Total":68.9},{"Colour":"Orange","Total":21.67},{"Colour":"Purple","Total":137.8},{"Colour":"Black","Total":107.99}]' ]]> - + @@ -19409,7 +19609,7 @@ Result: '[{"Item":"Purple Bowler Hat","Discounted":17.225},{"Item":"Orange Trilb Expected: '[{"Item":"Purple Bowler Hat","Discounted":17.225},{"Item":"Orange Trilby hat","Discounted":10.835},{"Item":"Purple Bowler Hat","Discounted":34.45},{"Item":"Black Cloak","Discounted":107.99}]' ]]> - + @@ -19418,7 +19618,7 @@ Result: '["order103","order103","order104","order104"]' Expected: '["order103","order103","order104","order104"]' ]]> - + @@ -19427,75 +19627,79 @@ Result: '["order103","order103","order104","order104"]' Expected: '["order103","order103","order104","order104"]' ]]> - + - + - + - + - + @@ -19504,7 +19708,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19513,7 +19717,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19522,7 +19726,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19531,7 +19735,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19540,7 +19744,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19549,7 +19753,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19558,7 +19762,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19567,7 +19771,7 @@ Result: '3' Expected: '3' ]]> - + @@ -19576,7 +19780,7 @@ Result: '5' Expected: '5' ]]> - + @@ -19585,7 +19789,7 @@ Result: '6' Expected: '6' ]]> - + @@ -19594,7 +19798,7 @@ Result: '"Hello"' Expected: '"Hello"' ]]> - + @@ -19606,7 +19810,7 @@ Not checking codes yet]]> - + @@ -19618,7 +19822,7 @@ Not checking codes yet]]> - + @@ -19627,7 +19831,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -19636,7 +19840,7 @@ Result: '7' Expected: '7' ]]> - + @@ -19645,7 +19849,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -19654,7 +19858,7 @@ Result: '[34.45,34.45]' Expected: '[34.45,34.45]' ]]> - + @@ -19663,7 +19867,7 @@ Result: '[{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}]' Expected: '[{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}]' ]]> - + @@ -19672,7 +19876,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19681,7 +19885,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19690,7 +19894,7 @@ Result: '"here"' Expected: '"here"' ]]> - + @@ -19699,7 +19903,7 @@ Result: '[{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}]' Expected: '[{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}]' ]]> - + @@ -19708,7 +19912,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19717,7 +19921,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -19726,7 +19930,7 @@ Result: '"here"' Expected: '"here"' ]]> - + @@ -19735,7 +19939,7 @@ Result: '[0,1,2,3,4,5,6,7,8,9]' Expected: '[0,1,2,3,4,5,6,7,8,9]' ]]> - + @@ -19744,7 +19948,7 @@ Result: '[0,2,4,6,8]' Expected: '[0,2,4,6,8]' ]]> - + @@ -19753,7 +19957,7 @@ Result: '[0,4,5,6,7,8,9,20,22]' Expected: '[0,4,5,6,7,8,9,20,22]' ]]> - + @@ -19762,7 +19966,7 @@ Result: '[]' Expected: '[]' ]]> - + @@ -19771,7 +19975,7 @@ Result: '[2,3,4,5]' Expected: '[2,3,4,5]' ]]> - + @@ -19780,7 +19984,7 @@ Result: '[-2,-1,0,1,2]' Expected: '[-2,-1,0,1,2]' ]]> - + @@ -19789,7 +19993,7 @@ Result: '[4,1,0,1,4]' Expected: '[4,1,0,1,4]' ]]> - + @@ -19798,7 +20002,7 @@ Result: '[]' Expected: '[]' ]]> - + @@ -19807,7 +20011,7 @@ Result: '[3]' Expected: '[3]' ]]> - + @@ -19819,7 +20023,7 @@ Not checking codes yet]]> - + @@ -19831,7 +20035,7 @@ Not checking codes yet]]> - + @@ -19843,7 +20047,7 @@ Not checking codes yet]]> - + @@ -19855,7 +20059,7 @@ Not checking codes yet]]> - + @@ -19867,7 +20071,7 @@ Not checking codes yet]]> - + @@ -19879,7 +20083,7 @@ Not checking codes yet]]> - + @@ -19891,7 +20095,7 @@ Not checking codes yet]]> - + @@ -19903,7 +20107,7 @@ Not checking codes yet]]> - + @@ -19915,7 +20119,7 @@ Not checking codes yet]]> - + @@ -19927,7 +20131,7 @@ Not checking codes yet]]> - + @@ -19939,7 +20143,7 @@ Not checking codes yet]]> - + @@ -19951,7 +20155,7 @@ Not checking codes yet]]> - + @@ -19960,7 +20164,7 @@ Result: '10000000' Expected: '10000000' ]]> - + @@ -19972,7 +20176,7 @@ Not checking codes yet]]> $count()' ]]> - + @@ -19984,7 +20188,7 @@ Not checking codes yet]]> $count()' ]]> - + @@ -19993,7 +20197,7 @@ Result: '10000000' Expected: '10000000' ]]> - + @@ -20002,7 +20206,7 @@ Result: '["a","a","xa","cc"]' Expected: '["a","a","xa","cc"]' ]]> - + @@ -20011,7 +20215,7 @@ Result: '["a","a"]' Expected: '["a","a"]' ]]> - + @@ -20020,7 +20224,7 @@ Result: '["ababbxabbcc"]' Expected: '["ababbxabbcc"]' ]]> - + @@ -20029,7 +20233,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -20038,7 +20242,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -20047,7 +20251,7 @@ Result: '858236' Expected: '858236' ]]> - + @@ -20056,7 +20260,7 @@ Result: '[858383,858236,858383]' Expected: '[858383,858236,858383]' ]]> - + @@ -20065,7 +20269,7 @@ Result: '"ayyayyxayycc"' Expected: '"ayyayyxayycc"' ]]> - + @@ -20074,7 +20278,7 @@ Result: '"ayyayyxabbcc"' Expected: '"ayyayyxabbcc"' ]]> - + @@ -20083,7 +20287,7 @@ Result: '"ababbxabbcc"' Expected: '"ababbxabbcc"' ]]> - + @@ -20092,7 +20296,7 @@ Result: '"ababbxabbcc"' Expected: '"ababbxabbcc"' ]]> - + @@ -20101,7 +20305,7 @@ Result: '"Smith, John"' Expected: '"Smith, John"' ]]> - + @@ -20110,7 +20314,7 @@ Result: '"$265"' Expected: '"$265"' ]]> - + @@ -20119,7 +20323,7 @@ Result: '"$w"' Expected: '"$w"' ]]> - + @@ -20128,7 +20332,7 @@ Result: '"265USD -> $265"' Expected: '"265USD -> $265"' ]]> - + @@ -20137,7 +20341,7 @@ Expected: '"265USD -> $265"' Expected: True But was: False ]]> - - - + @@ -20164,7 +20368,7 @@ Result: '"[1=ab][2=]cd"' Expected: '"[1=ab][2=]cd"' ]]> - + @@ -20173,7 +20377,7 @@ Result: '"a*cada*"' Expected: '"a*cada*"' ]]> - + @@ -20182,7 +20386,7 @@ Result: '"*"' Expected: '"*"' ]]> - + @@ -20191,7 +20395,7 @@ Result: '"*c*bra"' Expected: '"*c*bra"' ]]> - + @@ -20200,7 +20404,7 @@ Result: '"brcdbr"' Expected: '"brcdbr"' ]]> - + @@ -20209,13 +20413,13 @@ Result: '"abbraccaddabbra"' Expected: '"abbraccaddabbra"' ]]> - + - - - + @@ -20239,7 +20443,7 @@ Result: '"b"' Expected: '"b"' ]]> - + @@ -20248,7 +20452,7 @@ Result: '"bbbb"' Expected: '"bbbb"' ]]> - + @@ -20257,7 +20461,7 @@ Result: '"carted"' Expected: '"carted"' ]]> - + @@ -20266,7 +20470,7 @@ Expected: '"carted"' Expected: True But was: False ]]> - - - + @@ -20293,7 +20497,7 @@ Result: '"abcdefghijklmno"' Expected: '"abcdefghijklmno"' ]]> - + @@ -20302,7 +20506,7 @@ Expected: '"abcdefghijklmno"' Expected: True But was: False ]]> - - - + @@ -20329,7 +20533,7 @@ Expected: '"abcdefgh22823lmno"' Expected: True But was: False ]]> - - - + @@ -20356,7 +20560,7 @@ Result: '"abcdefgh$xlmno"' Expected: '"abcdefgh$xlmno"' ]]> - + @@ -20365,7 +20569,7 @@ Result: '"abcdefgh$x$lmno"' Expected: '"abcdefgh$x$lmno"' ]]> - + @@ -20374,7 +20578,7 @@ Result: '["Bowler foo","Trilby foo","Bowler foo","Cloak"]' Expected: '["Bowler foo","Trilby foo","Bowler foo","Cloak"]' ]]> - + @@ -20383,7 +20587,7 @@ Result: '["Bowler HAT","Trilby HAT","Bowler HAT","Cloak"]' Expected: '["Bowler HAT","Trilby HAT","Bowler HAT","Cloak"]' ]]> - + @@ -20392,7 +20596,7 @@ Result: '"temperature = 20C today"' Expected: '"temperature = 20C today"' ]]> - + @@ -20404,7 +20608,7 @@ Not checking codes yet]]> - + @@ -20416,7 +20620,7 @@ Not checking codes yet]]> - + @@ -20425,7 +20629,7 @@ Result: '["Felicia Saunders","Jimmy Schultz","Dolores Figueroa","Craig Moreno"," Expected: '["Felicia Saunders","Jimmy Schultz","Dolores Figueroa","Craig Moreno","Lindsey Hall","Bonnie Russell","Kristin Stewart","Owen Reid","Brenda Sherman","Dwayne Baldwin"]' ]]> - + @@ -20434,7 +20638,7 @@ Result: '["Felicia Saunders","Jimmy Schultz","Dolores Figueroa","Craig Moreno"," Expected: '["Felicia Saunders","Jimmy Schultz","Dolores Figueroa","Craig Moreno","Lindsey Hall","Bonnie Russell","Kristin Stewart","Owen Reid","Brenda Sherman","Dwayne Baldwin"]' ]]> - + @@ -20443,7 +20647,7 @@ Result: '[1,3,5,6]' Expected: '[1,3,5,6]' ]]> - + @@ -20452,7 +20656,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -20461,7 +20665,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -20470,7 +20674,7 @@ Result: '"gotcha"' Expected: '"gotcha"' ]]> - + @@ -20479,7 +20683,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -20488,7 +20692,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -20497,7 +20701,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -20506,7 +20710,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -20515,7 +20719,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -20524,7 +20728,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -20533,7 +20737,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -20542,7 +20746,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -20551,7 +20755,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -20560,7 +20764,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -20569,7 +20773,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -20578,7 +20782,7 @@ Result: '{"fud":"hello"}' Expected: '{"fud":"hello"}' ]]> - + @@ -20587,7 +20791,7 @@ Result: '[{"fud":"hello"},{"fud":"world"}]' Expected: '[{"fud":"hello"},{"fud":"world"}]' ]]> - + @@ -20596,7 +20800,7 @@ Result: '{"fud":"hello"}' Expected: '{"fud":"hello"}' ]]> - + @@ -20605,7 +20809,7 @@ Result: '[1,2]' Expected: '[1,2]' ]]> - + @@ -20614,7 +20818,7 @@ Result: '[3,4]' Expected: '[3,4]' ]]> - + @@ -20623,7 +20827,7 @@ Result: '[3,4]' Expected: '[3,4]' ]]> - + @@ -20632,7 +20836,7 @@ Result: '3' Expected: '3' ]]> - + @@ -20641,7 +20845,7 @@ Result: '3' Expected: '3' ]]> - + @@ -20650,7 +20854,7 @@ Result: '[21.67,34.45,34.45,107.99]' Expected: '[21.67,34.45,34.45,107.99]' ]]> - + @@ -20659,7 +20863,7 @@ Result: '[21.67,34.45,34.45,107.99]' Expected: '[21.67,34.45,34.45,107.99]' ]]> - + @@ -20668,7 +20872,7 @@ Result: '[107.99,34.45,34.45,21.67]' Expected: '[107.99,34.45,34.45,21.67]' ]]> - + @@ -20677,7 +20881,7 @@ Result: '["Orange","Purple","Purple","Black"]' Expected: '["Orange","Purple","Purple","Black"]' ]]> - + @@ -20686,7 +20890,7 @@ Result: '["0406634348","0406654608","040657863","0406654603"]' Expected: '["0406634348","0406654608","040657863","0406654603"]' ]]> - + @@ -20695,7 +20899,7 @@ Result: '["Orange","Purple","Black","Purple"]' Expected: '["Orange","Purple","Black","Purple"]' ]]> - + @@ -20704,7 +20908,7 @@ Result: '["Black","Orange","Purple","Purple"]' Expected: '["Black","Orange","Purple","Purple"]' ]]> - + @@ -20713,7 +20917,7 @@ Result: '["Orange","Black","Purple","Purple"]' Expected: '["Orange","Black","Purple","Purple"]' ]]> - + @@ -20722,7 +20926,7 @@ Result: '["0406634348","040657863","0406654603","0406654608"]' Expected: '["0406634348","040657863","0406654603","0406654608"]' ]]> - + @@ -20731,7 +20935,7 @@ Result: '["0406654608","040657863","0406654603","0406634348"]' Expected: '["0406654608","040657863","0406654603","0406634348"]' ]]> - + @@ -20740,7 +20944,7 @@ Result: '["040657863","0406654603","0406654608","0406634348"]' Expected: '["040657863","0406654603","0406654608","0406634348"]' ]]> - + @@ -20752,7 +20956,7 @@ Not checking codes yet]]> - + @@ -20764,7 +20968,7 @@ Not checking codes yet]]> - + @@ -20776,7 +20980,7 @@ Not checking codes yet]]> - + @@ -20785,7 +20989,7 @@ Result: '["Sally","Bill","Jim"]' Expected: '["Sally","Bill","Jim"]' ]]> - + @@ -20794,7 +20998,7 @@ Result: '["Sally","Bill","Jim"]' Expected: '["Sally","Bill","Jim"]' ]]> - + @@ -20803,7 +21007,7 @@ Result: '"Sally"' Expected: '"Sally"' ]]> - + @@ -20812,7 +21016,7 @@ Result: '"Sally"' Expected: '"Sally"' ]]> - + @@ -20821,7 +21025,7 @@ Result: '"Sally"' Expected: '"Sally"' ]]> - + @@ -20830,23 +21034,25 @@ Result: '{"name":"Bill","age":35}' Expected: '{"name":"Bill","age":35}' ]]> - + + at Jsonata.Net.Native.Parsing.Lexer.scanName() in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Lexer.cs:line 252 + at Jsonata.Net.Native.Parsing.Lexer.next(Boolean allowRegex) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Lexer.cs:line 160 + at Jsonata.Net.Native.Parsing.Parser.advance(Boolean allowRegex) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 180 + at Jsonata.Net.Native.Parsing.Parser.parseExpression(Int32 rbp) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 225 + at Jsonata.Net.Native.Parsing.Parser.Parse(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Parsing\Parser.cs:line 18 + at Jsonata.Net.Native.JsonataQuery..ctor(String queryText) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\JsonataQuery.cs:line 18 + at Jsonata.Net.Native.TestSuite.Tests.Test(CaseInfo caseInfo) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.TestSuite\UnitTest1.cs:line 93]]> - + @@ -20855,7 +21061,7 @@ Result: '"foobar"' Expected: '"foobar"' ]]> - + @@ -20864,7 +21070,7 @@ Result: '"foobar"' Expected: '"foobar"' ]]> - + @@ -20873,7 +21079,7 @@ Result: '"helloworld"' Expected: '"helloworld"' ]]> - + @@ -20882,7 +21088,7 @@ Result: '"helloworld"' Expected: '"helloworld"' ]]> - + @@ -20891,7 +21097,7 @@ Result: '"hello"' Expected: '"hello"' ]]> - + @@ -20900,7 +21106,7 @@ Result: '"world"' Expected: '"world"' ]]> - + @@ -20909,7 +21115,7 @@ Result: '"[1,2][3,4]"' Expected: '"[1,2][3,4]"' ]]> - + @@ -20918,7 +21124,7 @@ Result: '"[1,2]3"' Expected: '"[1,2]3"' ]]> - + @@ -20927,7 +21133,7 @@ Result: '"12"' Expected: '"12"' ]]> - + @@ -20936,7 +21142,7 @@ Result: '"1[2]"' Expected: '"1[2]"' ]]> - + @@ -20945,7 +21151,7 @@ Result: '"hello5"' Expected: '"hello5"' ]]> - + @@ -20954,7 +21160,7 @@ Result: '"Prices: [34.45,21.67,34.45,107.99]"' Expected: '"Prices: [34.45,21.67,34.45,107.99]"' ]]> - + @@ -20963,7 +21169,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -20972,7 +21178,7 @@ Expected 'undefined' Expected: True But was: False ]]> - - - + - - - + @@ -21020,7 +21226,7 @@ Result: '120' Expected: '120' ]]> - + @@ -21029,7 +21235,7 @@ Expected: '120' Expected: True But was: False ]]> - - - + - @@ -21064,13 +21270,13 @@ Expected: '5.7133839564458575E+262' - + - @@ -21081,13 +21287,13 @@ Expected: '5.7133839564458575E+262' - + - @@ -21098,51 +21304,57 @@ Expected: '5.7133839564458575E+262' - + + at Jsonata.Net.Native.Eval.FunctionTokenLambda.ValidateSignature(List`1 args, JToken inputAsContext) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\FunctionTokenLambda.cs:line 75 + at Jsonata.Net.Native.Eval.FunctionTokenLambda.Invoke(List`1 args, JToken context, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\FunctionTokenLambda.cs:line 36 + at Jsonata.Net.Native.Eval.EvalProcessor.InvokeFunction(FunctionToken function, List`1 args, JToken context, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 474 + at Jsonata.Net.Native.Eval.EvalProcessor.evalFunctionCall(FunctionCallNode functionCallNode, JToken input, EvaluationEnvironment env, JToken evalutedFirstArgFromApplication) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 469 + at Jsonata.Net.Native.Eval.EvalProcessor.EvalInternal(Node node, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 117 + at Jsonata.Net.Native.Eval.EvalProcessor.Eval(Node node, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 47 + at Jsonata.Net.Native.Eval.EvalProcessor.evalBlock(BlockNode blockNode, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 443 + at Jsonata.Net.Native.Eval.EvalProcessor.EvalInternal(Node node, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 95 + at Jsonata.Net.Native.Eval.EvalProcessor.Eval(Node node, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 47 + at Jsonata.Net.Native.Eval.EvalProcessor.EvaluateJson(Node rootNode, JToken data, EvaluationEnvironment parentEnvironment) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 29 + at Jsonata.Net.Native.JsonataQuery.Eval(JToken data, EvaluationEnvironment environment) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\JsonataQuery.cs:line 44 + at Jsonata.Net.Native.JsonNet.JsonataExtensions.EvalNewtonsoft(JsonataQuery query, JToken data, EvaluationEnvironment environment) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.JsonNet\JsonataExtensions.cs:line 182 + at Jsonata.Net.Native.JsonNet.JsonataExtensions.EvalNewtonsoft(JsonataQuery query, JToken data, JObject bindings) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.JsonNet\JsonataExtensions.cs:line 177 + at Jsonata.Net.Native.TestSuite.Tests.Test(CaseInfo caseInfo) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.TestSuite\UnitTest1.cs:line 94]]> { $x > 0 ? $f([$s, $s], $x-1) : $s}; $f('a', 2) )' ]]> - + + at Jsonata.Net.Native.Eval.FunctionTokenLambda.ValidateSignature(List`1 args, JToken inputAsContext) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\FunctionTokenLambda.cs:line 75 + at Jsonata.Net.Native.Eval.FunctionTokenLambda.Invoke(List`1 args, JToken context, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\FunctionTokenLambda.cs:line 36 + at Jsonata.Net.Native.Eval.EvalProcessor.InvokeFunction(FunctionToken function, List`1 args, JToken context, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 474 + at Jsonata.Net.Native.Eval.EvalProcessor.evalFunctionCall(FunctionCallNode functionCallNode, JToken input, EvaluationEnvironment env, JToken evalutedFirstArgFromApplication) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 469 + at Jsonata.Net.Native.Eval.EvalProcessor.EvalInternal(Node node, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 117 + at Jsonata.Net.Native.Eval.EvalProcessor.Eval(Node node, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 47 + at Jsonata.Net.Native.Eval.EvalProcessor.evalBlock(BlockNode blockNode, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 443 + at Jsonata.Net.Native.Eval.EvalProcessor.EvalInternal(Node node, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 95 + at Jsonata.Net.Native.Eval.EvalProcessor.Eval(Node node, JToken input, EvaluationEnvironment env) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 47 + at Jsonata.Net.Native.Eval.EvalProcessor.EvaluateJson(Node rootNode, JToken data, EvaluationEnvironment parentEnvironment) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\Eval\EvalProcessor.cs:line 29 + at Jsonata.Net.Native.JsonataQuery.Eval(JToken data, EvaluationEnvironment environment) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native\JsonataQuery.cs:line 44 + at Jsonata.Net.Native.JsonNet.JsonataExtensions.EvalNewtonsoft(JsonataQuery query, JToken data, EvaluationEnvironment environment) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.JsonNet\JsonataExtensions.cs:line 182 + at Jsonata.Net.Native.JsonNet.JsonataExtensions.EvalNewtonsoft(JsonataQuery query, JToken data, JObject bindings) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.JsonNet\JsonataExtensions.cs:line 177 + at Jsonata.Net.Native.TestSuite.Tests.Test(CaseInfo caseInfo) in F:\Projects\_NuGet_External\jsonata.net.native\src\Jsonata.Net.Native.TestSuite\UnitTest1.cs:line 94]]> { $x > 0 ? $f([$s, $s], $x-1) : $s}; $f('a', 2) )' ]]> - + @@ -21151,7 +21363,7 @@ Result: '33' Expected: '33' ]]> - + @@ -21160,7 +21372,7 @@ Result: '88' Expected: '88' ]]> - + @@ -21172,7 +21384,7 @@ Not checking codes yet]]> - + @@ -21184,7 +21396,7 @@ Not checking codes yet]]> - + @@ -21193,7 +21405,7 @@ Result: '{"Order":[{"ID":"order103","Product":[{"SKU":858383,"Details":{"Weight" Expected: '{"Order":[{"ID":"order103","Product":[{"SKU":858383,"Details":{"Weight":0.75,"Dimensions":"300 x 200 x 210"}},{"SKU":858236,"Details":{"Weight":0.6,"Dimensions":"300 x 200 x 210"}}],"Total Price":90.57000000000001},{"ID":"order104","Product":[{"SKU":858383,"Details":{"Weight":0.75,"Dimensions":"300 x 200 x 210"}},{"SKU":345664,"Details":{"Weight":2,"Dimensions":"30 x 20 x 210"}}],"Total Price":245.79000000000002}]}' ]]> - + @@ -21215,7 +21427,7 @@ Result: '{"tempReadings":[28.9,28,28.2,28.4,28.4],"sumTemperatures":141.9,"avgTe Expected: '{"tempReadings":[28.9,28,28.2,28.4,28.4],"sumTemperatures":141.9,"avgTemperature":28.38,"maxTemperature":28.9,"minTemperature":28}' ]]> - + @@ -21224,7 +21436,7 @@ Result: '{"output":{"is":{"same":{"as":"input"}}}}' Expected: '{"output":{"is":{"same":{"as":"input"}}}}' ]]> - + @@ -21233,7 +21445,7 @@ Result: '{"bar":42}' Expected: '{"bar":42}' ]]> - + @@ -21242,7 +21454,7 @@ Result: '{"gar":50}' Expected: '{"gar":50}' ]]> - + @@ -21251,7 +21463,7 @@ Result: '{"mama":45}' Expected: '{"mama":45}' ]]> - + @@ -21260,7 +21472,7 @@ Result: '{"wa":"hume"}' Expected: '{"wa":"hume"}' ]]> - + @@ -21269,7 +21481,7 @@ Result: '42' Expected: '42' ]]> - + @@ -21278,7 +21490,7 @@ Result: '{"bar":87}' Expected: '{"bar":87}' ]]> - + @@ -21287,7 +21499,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -21296,7 +21508,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -21305,7 +21517,7 @@ Result: '"foo"' Expected: '"foo"' ]]> - + @@ -21314,7 +21526,7 @@ Result: '"foo"' Expected: '"foo"' ]]> - + @@ -21323,7 +21535,7 @@ Result: '6754322' Expected: '6754322' ]]> - + @@ -21332,7 +21544,7 @@ Result: '0' Expected: '0' ]]> - + @@ -21341,7 +21553,7 @@ Result: '-24' Expected: '-24' ]]> - + @@ -21350,7 +21562,7 @@ Result: '6.54' Expected: '6.54' ]]> - + @@ -21359,7 +21571,7 @@ Result: 'true' Expected: 'true' ]]> - + @@ -21368,7 +21580,7 @@ Result: 'false' Expected: 'false' ]]> - + @@ -21377,7 +21589,7 @@ Result: 'null' Expected: 'null' ]]> - + @@ -21386,7 +21598,7 @@ Result: 'null' Expected: 'null' ]]> - + @@ -21395,7 +21607,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -21404,7 +21616,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -21413,7 +21625,7 @@ Result: '"\"Hello\""' Expected: '"\"Hello\""' ]]> - + @@ -21422,7 +21634,7 @@ Result: '"\"Hello\""' Expected: '"\"Hello\""' ]]> - + @@ -21431,7 +21643,7 @@ Result: '"'Hello'"' Expected: '"'Hello'"' ]]> - + @@ -21440,7 +21652,7 @@ Result: '"'Hello'"' Expected: '"'Hello'"' ]]> - + @@ -21449,7 +21661,7 @@ Result: '"mr"' Expected: '"mr"' ]]> - + @@ -21458,7 +21670,7 @@ Result: '"steve"' Expected: '"steve"' ]]> - + @@ -21467,7 +21679,7 @@ Result: '"/ˈspænɪʃ/"' Expected: '"/ˈspænɪʃ/"' ]]> - + @@ -21476,7 +21688,7 @@ Result: '"no10furbzness"' Expected: '"no10furbzness"' ]]> - + @@ -21485,7 +21697,7 @@ Result: '"compensation is : 1400000"' Expected: '"compensation is : 1400000"' ]]> - + @@ -21494,7 +21706,7 @@ Result: '"Hello"' Expected: '"Hello"' ]]> - + @@ -21503,7 +21715,7 @@ Result: '"MR"' Expected: '"MR"' ]]> - + @@ -21512,7 +21724,7 @@ Result: '"HELLO WORLD"' Expected: '"HELLO WORLD"' ]]> - + @@ -21521,7 +21733,7 @@ Result: '"鯵噂ソ竹"' Expected: '"鯵噂ソ竹"' ]]> - + @@ -21530,7 +21742,7 @@ Result: '"IBM UK is happy"' Expected: '"IBM UK is happy"' ]]> - + @@ -21539,7 +21751,7 @@ Result: '"IBM UK is pleased to employ Mr Smith"' Expected: '"IBM UK is pleased to employ Mr Smith"' ]]> - + @@ -21548,7 +21760,7 @@ Result: '"HELLO MR SMITH"' Expected: '"HELLO MR SMITH"' ]]> - + @@ -21557,7 +21769,7 @@ Result: '"MR SMITH - HAS 3 REGISTERED CARS"' Expected: '"MR SMITH - HAS 3 REGISTERED CARS"' ]]> - + @@ -21566,7 +21778,7 @@ Result: '"PERMANENT"' Expected: '"PERMANENT"' ]]> - + @@ -21575,7 +21787,7 @@ Result: '"Ho"' Expected: '"Ho"' ]]> - + @@ -21584,7 +21796,7 @@ Result: '"Ho"' Expected: '"Ho"' ]]> - + @@ -21593,7 +21805,7 @@ Result: '"Hola"' Expected: '"Hola"' ]]> - + @@ -21602,7 +21814,7 @@ Result: '""' Expected: '""' ]]> - + @@ -21611,7 +21823,7 @@ Result: '"鯵噂"' Expected: '"鯵噂"' ]]> - + @@ -21620,7 +21832,7 @@ Result: '"Cola"' Expected: '"Cola"' ]]> - + @@ -21629,7 +21841,7 @@ Result: '" Smith"' Expected: '" Smith"' ]]> - + @@ -21638,7 +21850,7 @@ Result: '" Senior Physician"' Expected: '" Senior Physician"' ]]> - + @@ -21647,7 +21859,7 @@ Result: '"a"' Expected: '"a"' ]]> - + @@ -21656,7 +21868,7 @@ Result: '"Hola"' Expected: '"Hola"' ]]> - + @@ -21665,7 +21877,7 @@ Result: '"senior physician (Senior Physician)"' Expected: '"senior physician (Senior Physician)"' ]]> - + @@ -21674,7 +21886,7 @@ Result: '"12 years of employment"' Expected: '"12 years of employment"' ]]> - + @@ -21683,7 +21895,7 @@ Result: '"MR SMITH - HAS 12 YEARS OF EMPLOYMENT"' Expected: '"MR SMITH - HAS 12 YEARS OF EMPLOYMENT"' ]]> - + @@ -21692,7 +21904,7 @@ Result: '"Phys"' Expected: '"Phys"' ]]> - + @@ -21701,7 +21913,7 @@ Result: '"cian"' Expected: '"cian"' ]]> - + @@ -21710,7 +21922,7 @@ Result: '"lo Wo"' Expected: '"lo Wo"' ]]> - + @@ -21722,7 +21934,7 @@ Not checking codes yet]]> - + @@ -21734,7 +21946,7 @@ Not checking codes yet]]> - + @@ -21746,7 +21958,7 @@ Not checking codes yet]]> - + @@ -21758,7 +21970,7 @@ Not checking codes yet]]> - + @@ -21767,7 +21979,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -21776,7 +21988,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -21788,7 +22000,7 @@ Not checking codes yet]]> - + @@ -21800,7 +22012,7 @@ Not checking codes yet]]> - + @@ -21812,7 +22024,7 @@ Not checking codes yet]]> - + @@ -21824,7 +22036,7 @@ Not checking codes yet]]> - + @@ -21836,7 +22048,7 @@ Not checking codes yet]]> - + @@ -21848,7 +22060,7 @@ Not checking codes yet]]> - + @@ -21860,7 +22072,7 @@ Not checking codes yet]]> - + @@ -21872,7 +22084,7 @@ Not checking codes yet]]> - + @@ -21884,7 +22096,7 @@ Not checking codes yet]]> - + @@ -21896,7 +22108,7 @@ Not checking codes yet]]> - + @@ -21908,7 +22120,7 @@ Not checking codes yet]]> - + @@ -21920,7 +22132,7 @@ Not checking codes yet]]> - + @@ -21932,7 +22144,7 @@ Not checking codes yet]]> - + @@ -21944,7 +22156,7 @@ Not checking codes yet]]> - + @@ -21956,7 +22168,7 @@ Not checking codes yet]]> - + @@ -21968,7 +22180,7 @@ Not checking codes yet]]> - + @@ -21980,7 +22192,7 @@ Not checking codes yet]]> - + @@ -21992,7 +22204,7 @@ Not checking codes yet]]> - + @@ -22004,7 +22216,7 @@ Not checking codes yet]]> - + @@ -22016,7 +22228,7 @@ Not checking codes yet]]> - + @@ -22028,7 +22240,7 @@ Not checking codes yet]]> - + @@ -22040,7 +22252,7 @@ Not checking codes yet]]> - + @@ -22052,7 +22264,7 @@ Not checking codes yet]]> - + @@ -22064,7 +22276,7 @@ Not checking codes yet]]> - + @@ -22076,7 +22288,7 @@ Not checking codes yet]]> - + @@ -22088,7 +22300,7 @@ Not checking codes yet]]> - + @@ -22100,7 +22312,7 @@ Not checking codes yet]]> - + @@ -22112,7 +22324,7 @@ Not checking codes yet]]> - + @@ -22124,7 +22336,7 @@ Not checking codes yet]]> - + @@ -22136,7 +22348,7 @@ Not checking codes yet]]> - + @@ -22148,7 +22360,7 @@ Not checking codes yet]]> - + @@ -22160,7 +22372,7 @@ Not checking codes yet]]> - + @@ -22172,7 +22384,7 @@ Not checking codes yet]]> - + @@ -22184,7 +22396,7 @@ Not checking codes yet]]> - + @@ -22196,7 +22408,7 @@ Not checking codes yet]]> - + @@ -22205,7 +22417,7 @@ Result: '" Worl"' Expected: '" Worl"' ]]> - + @@ -22217,7 +22429,7 @@ Not checking codes yet]]> - + @@ -22229,7 +22441,7 @@ Not checking codes yet]]> - + @@ -22238,7 +22450,7 @@ Result: '"stuff"' Expected: '"stuff"' ]]> - + @@ -22247,7 +22459,7 @@ Result: '"boo"' Expected: '"boo"' ]]> - + @@ -22256,7 +22468,7 @@ Result: '5' Expected: '5' ]]> - + @@ -22265,7 +22477,7 @@ Result: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Pr Expected: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"Price":34.45,"Quantity":2,"Total":68.9},{"Product Name":"Trilby hat","ProductID":858236,"Price":21.67,"Quantity":1,"Total":21.67}]},{"OrderID":"order104","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"Price":34.45,"Quantity":4,"Total":137.8},{"ProductID":345664,"Product Name":"Cloak","Price":107.99,"Quantity":1,"Total":107.99}]}]}}' ]]> - + @@ -22274,7 +22486,7 @@ Result: '[{"OrderID":"order103","Product":[{"Product Name":"Bowler Hat","Product Expected: '[{"OrderID":"order103","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"Price":34.45,"Quantity":2,"Total":68.9},{"Product Name":"Trilby hat","ProductID":858236,"Price":21.67,"Quantity":1,"Total":21.67}]},{"OrderID":"order104","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"Price":34.45,"Quantity":4,"Total":137.8},{"ProductID":345664,"Product Name":"Cloak","Price":107.99,"Quantity":1,"Total":107.99}]}]' ]]> - + @@ -22283,7 +22495,7 @@ Result: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Pr Expected: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"0406654608","Description":{"Colour":"Purple","Width":300,"Height":200,"Depth":210,"Weight":0.75},"Price":41.34,"Quantity":2,"Total":68.9},{"Product Name":"Trilby hat","ProductID":858236,"SKU":"0406634348","Description":{"Colour":"Orange","Width":300,"Height":200,"Depth":210,"Weight":0.6},"Price":26.004,"Quantity":1,"Total":21.67}]},{"OrderID":"order104","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"040657863","Description":{"Colour":"Purple","Width":300,"Height":200,"Depth":210,"Weight":0.75},"Price":41.34,"Quantity":4,"Total":137.8},{"ProductID":345664,"SKU":"0406654603","Product Name":"Cloak","Description":{"Colour":"Black","Width":30,"Height":20,"Depth":210,"Weight":2},"Price":129.588,"Quantity":1,"Total":107.99}]}]}}' ]]> - + @@ -22292,7 +22504,7 @@ Result: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Pr Expected: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"0406654608","Price":34.45,"Quantity":2},{"Product Name":"Trilby hat","ProductID":858236,"SKU":"0406634348","Price":21.67,"Quantity":1}]},{"OrderID":"order104","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"040657863","Price":34.45,"Quantity":4},{"ProductID":345664,"SKU":"0406654603","Product Name":"Cloak","Price":107.99,"Quantity":1}]}]}}' ]]> - + @@ -22301,7 +22513,7 @@ Result: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Pr Expected: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"0406654608","Price":34.45,"Quantity":2},{"Product Name":"Trilby hat","ProductID":858236,"SKU":"0406634348","Price":21.67,"Quantity":1}]},{"OrderID":"order104","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"040657863","Price":34.45,"Quantity":4},{"ProductID":345664,"SKU":"0406654603","Product Name":"Cloak","Price":107.99,"Quantity":1}]}]}}' ]]> - + @@ -22310,7 +22522,7 @@ Result: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Pr Expected: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"0406654608","Description":"blah","Price":34.45,"Quantity":2},{"Product Name":"Trilby hat","ProductID":858236,"SKU":"0406634348","Description":{"Colour":"Orange","Width":300,"Height":200,"Depth":210,"Weight":0.6},"Price":21.67,"Quantity":1}]},{"OrderID":"order104","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"040657863","Description":{"Colour":"Purple","Width":300,"Height":200,"Depth":210,"Weight":0.75},"Price":34.45,"Quantity":4},{"ProductID":345664,"SKU":"0406654603","Product Name":"Cloak","Description":{"Colour":"Black","Width":30,"Height":20,"Depth":210,"Weight":2},"Price":107.99,"Quantity":1}]}]}}' ]]> - + @@ -22319,7 +22531,7 @@ Result: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Pr Expected: '{"Account":{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"0406654608","Description":{"Colour":"Purple","Width":300,"Height":200,"Depth":210,"Weight":0.75},"Price":34.45,"Quantity":2},{"Product Name":"Trilby hat","ProductID":858236,"SKU":"0406634348","Description":{"Colour":"Orange","Width":300,"Height":200,"Depth":210,"Weight":0.6},"Price":21.67,"Quantity":1}]},{"OrderID":"order104","Product":[{"Product Name":"Bowler Hat","ProductID":858383,"SKU":"040657863","Description":{"Colour":"Purple","Width":300,"Height":200,"Depth":210,"Weight":0.75},"Price":34.45,"Quantity":4},{"ProductID":345664,"SKU":"0406654603","Product Name":"Cloak","Description":{"Colour":"Black","Width":30,"Height":20,"Depth":210,"Weight":2},"Price":107.99,"Quantity":1}]}]}}' ]]> - + @@ -22328,7 +22540,7 @@ Result: '{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":"bla Expected: '{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":"blah"},{"OrderID":"order104","Product":"blah"}]}' ]]> - + @@ -22337,7 +22549,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -22349,7 +22561,7 @@ Not checking codes yet]]> |Order|5|' ]]> - + @@ -22361,7 +22573,7 @@ Not checking codes yet]]> |Order|{},5|' ]]> - + @@ -22370,7 +22582,7 @@ Result: '{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":"bla Expected: '{"Account Name":"Firefly","Order":[{"OrderID":"order103","Product":"blah"},{"OrderID":"order104","Product":"blah"}]}' ]]> - + @@ -22382,7 +22594,7 @@ Not checking codes yet]]> |$|['one', 'two', 'three']|' ]]> - + @@ -22391,7 +22603,7 @@ Result: '{"bye":null,"hello":"world"}' Expected: '{"hello":"world","bye":null}' ]]> - + @@ -22400,7 +22612,7 @@ Result: '{"bye":null,"hello":"world"}' Expected: '{"bye":null,"hello":"world"}' ]]> - + @@ -22409,7 +22621,7 @@ Result: '45' Expected: '45' ]]> - + @@ -22418,7 +22630,7 @@ Result: '45' Expected: '45' ]]> - + @@ -22427,7 +22639,7 @@ Result: '2' Expected: '2' ]]> - + @@ -22436,7 +22648,7 @@ Result: '42' Expected: '42' ]]> - + @@ -22445,7 +22657,7 @@ Result: '5' Expected: '5' ]]> - + @@ -22454,7 +22666,7 @@ Result: '5' Expected: '5' ]]> - + @@ -22463,7 +22675,7 @@ Result: '5' Expected: '5' ]]> - + @@ -22472,7 +22684,7 @@ Result: '5' Expected: '5' ]]> - + @@ -22481,7 +22693,7 @@ Result: '7' Expected: '7' ]]> - + @@ -22490,7 +22702,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -22499,7 +22711,7 @@ Result: '"defined"' Expected: '"defined"' ]]> - + @@ -22508,7 +22720,7 @@ Result: 'undefined' Expected 'undefined' ]]> - + @@ -22520,7 +22732,7 @@ Not checking codes yet]]> - + @@ -22529,7 +22741,7 @@ Result: '[42,{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"}," Expected: '[42,{"baz":{"fud":"hello"}},{"baz":{"fud":"world"}},{"bazz":"gotcha"},"here"]' ]]> - + @@ -22538,7 +22750,7 @@ Result: '[{"fud":"hello"},{"fud":"world"}]' Expected: '[{"fud":"hello"},{"fud":"world"}]' ]]> - + @@ -22547,7 +22759,7 @@ Result: '"gotcha"' Expected: '"gotcha"' ]]> - + @@ -22556,7 +22768,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -22565,7 +22777,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -22574,7 +22786,7 @@ Result: '["hello","world"]' Expected: '["hello","world"]' ]]> - + @@ -22583,7 +22795,7 @@ Result: '[{"type":"home","number":"0203 544 1234"},{"type":"home","address":["fr Expected: '[{"type":"home","number":"0203 544 1234"},{"type":"home","address":["freddy@my-social.com","frederic.smith@very-serious.com"]}]' ]]> - + @@ -22592,7 +22804,7 @@ Result: '[34.45,107.99]' Expected: '[34.45,107.99]' ]]> - + @@ -22601,7 +22813,7 @@ Result: '[34.45,107.99]' Expected: '[34.45,107.99]' ]]> - + diff --git a/src/Jsonata.Net.Native.Tests/FuncBindingTests.cs b/src/Jsonata.Net.Native.Tests/FuncBindingTests.cs new file mode 100644 index 0000000..69d8724 --- /dev/null +++ b/src/Jsonata.Net.Native.Tests/FuncBindingTests.cs @@ -0,0 +1,72 @@ +using System; +using Jsonata.Net.Native; +using Jsonata.Net.Native.Json; +using NUnit.Framework; + +namespace Jsonata.Net.Native.Tests +{ + public sealed class FuncBindingTests + { + [Test] + public void ViaMethodInfo() + { + EvaluationEnvironment env = new EvaluationEnvironment(); + env.BindFunction(typeof(FuncBindingTests).GetMethod(nameof(Mult3))!); + JsonataQuery query = new JsonataQuery("( $Mult3(1, 2, 3); )"); + JToken result = query.Eval(JValue.CreateNull(), env); + Assert.AreEqual(JTokenType.Integer, result.Type); + Assert.AreEqual(6, (int)result); + } + + [Test] + public void ViaFuncStatic() + { + EvaluationEnvironment env = new EvaluationEnvironment(); + Func func = Mult3; + env.BindFunction(nameof(Mult3), func); + JsonataQuery query = new JsonataQuery("( $Mult3(1, 2, 3); )"); + JToken result = query.Eval(JValue.CreateNull(), env); + Assert.AreEqual(JTokenType.Integer, result.Type); + Assert.AreEqual(6, (int)result); + } + + [Test] + public void ViaInplaceStatic() + { + EvaluationEnvironment env = new EvaluationEnvironment(); + env.BindFunction(nameof(Mult3), Mult3); + JsonataQuery query = new JsonataQuery("( $Mult3(1, 2, 3); )"); + JToken result = query.Eval(JValue.CreateNull(), env); + Assert.AreEqual(JTokenType.Integer, result.Type); + Assert.AreEqual(6, (int)result); + } + + [Test] + public void ViaFuncLambda() + { + EvaluationEnvironment env = new EvaluationEnvironment(); + Func func = (int a, int b, int c) => a * b * c; + env.BindFunction(nameof(Mult3), func); + JsonataQuery query = new JsonataQuery("( $Mult3(1, 2, 3); )"); + JToken result = query.Eval(JValue.CreateNull(), env); + Assert.AreEqual(JTokenType.Integer, result.Type); + Assert.AreEqual(6, (int)result); + } + + [Test] + public void ViaInplaceLambda() + { + EvaluationEnvironment env = new EvaluationEnvironment(); + env.BindFunction(nameof(Mult3), (int a, int b, int c) => a * b * c); + JsonataQuery query = new JsonataQuery("( $Mult3(1, 2, 3); )"); + JToken result = query.Eval(JValue.CreateNull(), env); + Assert.AreEqual(JTokenType.Integer, result.Type); + Assert.AreEqual(6, (int)result); + } + + public static int Mult3(int a, int b, int c) + { + return a * b * c; + } + } +} diff --git a/src/Jsonata.Net.Native.Tests/UnitTest1.cs b/src/Jsonata.Net.Native.Tests/UnitTest1.cs index 81a8687..2b948f5 100644 --- a/src/Jsonata.Net.Native.Tests/UnitTest1.cs +++ b/src/Jsonata.Net.Native.Tests/UnitTest1.cs @@ -402,5 +402,6 @@ public void Test_Issue14_8() string value = (string)((Jsonata.Net.Native.Json.JObject)jToken).Properties["key"]; Assert.AreEqual("00000000000000000000000000000000", value); } + } } diff --git a/src/Jsonata.Net.Native/Eval/FunctionTokenCsharp.cs b/src/Jsonata.Net.Native/Eval/FunctionTokenCsharp.cs index c19c9b4..30fcf17 100644 --- a/src/Jsonata.Net.Native/Eval/FunctionTokenCsharp.cs +++ b/src/Jsonata.Net.Native/Eval/FunctionTokenCsharp.cs @@ -12,32 +12,43 @@ namespace Jsonata.Net.Native.Eval internal sealed class FunctionTokenCsharp : FunctionToken { - internal readonly MethodInfo methodInfo; - internal IReadOnlyList parameters; - internal readonly string functionName; - internal readonly bool hasContextParameter; - internal readonly bool hasEnvParameter; + private readonly object? m_target; + private readonly MethodInfo m_methodInfo; + private IReadOnlyList m_parameters; + private readonly string m_functionName; + private readonly bool m_hasContextParameter; + private readonly bool m_hasEnvParameter; - internal FunctionTokenCsharp(string funcName, MethodInfo methodInfo) - : base($"{methodInfo.DeclaringType?.Name}.{methodInfo.Name}", methodInfo.GetParameters().Length) + internal FunctionTokenCsharp(string funcName, MethodInfo methodInfo) + :this(funcName, methodInfo, null) { if (!methodInfo.IsStatic) - { - throw new ArgumentException("Only static methods are allowed to be bound as Jsonata functions"); + { + throw new ArgumentException("Only static methods are allowed to be bound as Jsonata functions via MethodInfo"); } + } + + internal FunctionTokenCsharp(string funcName, Delegate delegateFunc) + : this(funcName, delegateFunc.Method, delegateFunc.Target) + { + } - this.functionName = funcName; - this.methodInfo = methodInfo; - this.parameters = this.methodInfo.GetParameters() + private FunctionTokenCsharp(string funcName, MethodInfo methodInfo, object? target) + : base($"{methodInfo.DeclaringType?.Name}.{methodInfo.Name}", methodInfo.GetParameters().Length) + { + this.m_functionName = funcName; + this.m_methodInfo = methodInfo; + this.m_target = target; + this.m_parameters = this.m_methodInfo.GetParameters() .Select(pi => new ArgumentInfo(funcName, pi)) .ToList(); - this.hasContextParameter = this.parameters.Any(p => p.allowContextAsValue); - this.hasEnvParameter = this.parameters.Any(p => p.isEvaluationSupplement); + this.m_hasContextParameter = this.m_parameters.Any(p => p.allowContextAsValue); + this.m_hasEnvParameter = this.m_parameters.Any(p => p.isEvaluationSupplement); - this.RequiredArgsCount = this.parameters.Where(p => !p.isOptional && !p.isEvaluationSupplement).Count(); + this.RequiredArgsCount = this.m_parameters.Where(p => !p.isOptional && !p.isEvaluationSupplement).Count(); } - internal sealed class ArgumentInfo + internal sealed class ArgumentInfo { internal readonly string name; internal readonly Type parameterType; @@ -94,7 +105,7 @@ internal override JToken Invoke(List args, JToken? context, EvaluationEn object? resultObj; try { - resultObj = this.methodInfo.Invoke(null, parameters); + resultObj = this.m_methodInfo.Invoke(this.m_target, parameters); } catch (TargetInvocationException ti) { @@ -104,7 +115,7 @@ internal override JToken Invoke(List args, JToken? context, EvaluationEn } else { - throw new Exception($"Error evaluating function '{this.functionName}': {(ti.InnerException?.Message ?? "?")}", ti); + throw new Exception($"Error evaluating function '{this.m_functionName}': {(ti.InnerException?.Message ?? "?")}", ti); } throw; } @@ -121,7 +132,7 @@ internal override JToken Invoke(List args, JToken? context, EvaluationEn catch (JsonataException) { //try binding with context if possible - if (context != null && this.hasContextParameter) + if (context != null && this.m_hasContextParameter) { return this.TryBindFunctionArguments(args, context, env, out returnUndefined); } @@ -136,11 +147,11 @@ internal override JToken Invoke(List args, JToken? context, EvaluationEn private object?[] TryBindFunctionArguments(List args, JToken? context, EvaluationEnvironment env, out bool returnUndefined) { returnUndefined = false; - object?[] result = new object[this.parameters.Count]; + object?[] result = new object[this.m_parameters.Count]; int sourceIndex = 0; - for (int targetIndex = 0; targetIndex < this.parameters.Count; ++targetIndex) + for (int targetIndex = 0; targetIndex < this.m_parameters.Count; ++targetIndex) { - ArgumentInfo argumentInfo = this.parameters[targetIndex]; + ArgumentInfo argumentInfo = this.m_parameters[targetIndex]; if (context != null && argumentInfo.allowContextAsValue) { //if we explicitly provide context, then hurry and use it! @@ -163,7 +174,7 @@ internal override JToken Invoke(List args, JToken? context, EvaluationEn } else { - throw new JsonataException("T0410", $"Function '{functionName}' requires {this.parameters.Count + (this.hasEnvParameter? -1 : 0)} arguments. Passed {args.Count} arguments"); + throw new JsonataException("T0410", $"Function '{m_functionName}' requires {this.m_parameters.Count + (this.m_hasEnvParameter? -1 : 0)} arguments. Passed {args.Count} arguments"); } } else if (argumentInfo.isVariableArgumentsArray) @@ -191,7 +202,7 @@ internal override JToken Invoke(List args, JToken? context, EvaluationEn if (sourceIndex < args.Count) { - throw new JsonataException("T0410", $"Function '{functionName}' requires {this.parameters.Count + (this.hasEnvParameter ? -1 : 0)} arguments. Passed {args.Count} arguments"); + throw new JsonataException("T0410", $"Function '{m_functionName}' requires {this.m_parameters.Count + (this.m_hasEnvParameter ? -1 : 0)} arguments. Passed {args.Count} arguments"); }; return result; @@ -294,7 +305,7 @@ internal override JToken Invoke(List args, JToken? context, EvaluationEn return (bool)argToken; } } - throw new JsonataException("T0410", $"Argument {parameterIndex + 1} ('{argumentInfo.name}') of function {this.functionName} should be {argumentInfo.parameterType.Name} but incompatible value of type {argToken.Type} was specified"); + throw new JsonataException("T0410", $"Argument {parameterIndex + 1} ('{argumentInfo.name}') of function {this.m_functionName} should be {argumentInfo.parameterType.Name} but incompatible value of type {argToken.Type} was specified"); } private JToken ConvertFunctionResult(object? resultObj) @@ -343,7 +354,7 @@ private JToken ConvertFunctionResult(object? resultObj) public override JToken DeepClone() { - return new FunctionTokenCsharp(this.functionName, this.methodInfo); + return new FunctionTokenCsharp(this.m_functionName, this.m_methodInfo, this.m_target); } } } diff --git a/src/Jsonata.Net.Native/EvaluationEnvironment.cs b/src/Jsonata.Net.Native/EvaluationEnvironment.cs index 9c84d8f..3ef5190 100644 --- a/src/Jsonata.Net.Native/EvaluationEnvironment.cs +++ b/src/Jsonata.Net.Native/EvaluationEnvironment.cs @@ -84,6 +84,11 @@ public void BindFunction(string name, MethodInfo mi) this.m_bindings.Add(name, new FunctionTokenCsharp(name, mi)); } + public void BindFunction(string name, Delegate funcDelegate) + { + this.m_bindings.Add(name, new FunctionTokenCsharp(name, funcDelegate)); + } + internal JToken Lookup(string name) { if (this.m_bindings.TryGetValue(name, out JToken? result)) diff --git a/src/Jsonata.Net.Native/Jsonata.Net.Native.csproj b/src/Jsonata.Net.Native/Jsonata.Net.Native.csproj index d0fe362..d1dafff 100644 --- a/src/Jsonata.Net.Native/Jsonata.Net.Native.csproj +++ b/src/Jsonata.Net.Native/Jsonata.Net.Native.csproj @@ -26,7 +26,7 @@ snupkg --> true - 2.3.0 + 2.4.0 True ..\sgKey.snk