diff --git a/cts.json b/cts.json index 214a029..f324316 100644 --- a/cts.json +++ b/cts.json @@ -62,6 +62,20 @@ "$['☺']" ] }, + { + "name": "basic, name shorthand, supplementary plane character", + "selector": "$.😀", + "document": { + "😀": "A", + "b": "B" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['😀']" + ] + }, { "name": "basic, name shorthand, underscore", "selector": "$._", @@ -86,6 +100,11 @@ "selector": "$.1", "invalid_selector": true }, + { + "name": "basic, name shorthand, hyphen", + "selector": "$.a-b", + "invalid_selector": true + }, { "name": "basic, name shorthand, absent data", "selector": "$.c", @@ -259,6 +278,11 @@ "selector": "$[0,]", "invalid_selector": true }, + { + "name": "basic, selector, trailing comma, space", + "selector": "$[0, ]", + "invalid_selector": true + }, { "name": "basic, multiple selectors, name and index, array data", "selector": "$['a',1]", @@ -2148,6 +2172,22 @@ "$[0]" ] }, + { + "name": "filter, less than or equal to true, number", + "selector": "$[?@.a<=true]", + "document": [ + { + "a": 0, + "d": "e" + }, + { + "a": 1, + "d": "f" + } + ], + "result": [], + "result_paths": [] + }, { "name": "filter, less than or equal to false", "selector": "$[?@.a<=false]", @@ -2304,6 +2344,22 @@ "result": [], "result_paths": [] }, + { + "name": "filter, greater than false, number", + "selector": "$[?@.a>false]", + "document": [ + { + "a": 0, + "d": "e" + }, + { + "a": 1, + "d": "f" + } + ], + "result": [], + "result_paths": [] + }, { "name": "filter, greater than or equal to string, single quotes", "selector": "$[?@.a>='c']", @@ -5586,6 +5642,38 @@ "unicode" ] }, + { + "name": "name selector, double quotes, escaped é, lower case hex e", + "selector": "$[\"\\u00e9\"]", + "document": { + "é": "A" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['é']" + ], + "tags": [ + "unicode" + ] + }, + { + "name": "name selector, double quotes, escaped control character", + "selector": "$[\"\\u001f\"]", + "document": { + "\u001f": "A" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['\\u001f']" + ], + "tags": [ + "unicode" + ] + }, { "name": "name selector, double quotes, surrogate pair 𝄞", "selector": "$[\"\\uD834\\uDD1E\"]", @@ -6276,6 +6364,38 @@ "unicode" ] }, + { + "name": "name selector, single quotes, escaped é, lower case hex e", + "selector": "$['\\u00e9']", + "document": { + "é": "A" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['é']" + ], + "tags": [ + "unicode" + ] + }, + { + "name": "name selector, single quotes, escaped control character", + "selector": "$['\\u001f']", + "document": { + "\u001f": "A" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['\\u001f']" + ], + "tags": [ + "unicode" + ] + }, { "name": "name selector, single quotes, surrogate pair 𝄞", "selector": "$['\\uD834\\uDD1E']", diff --git a/tests/basic.json b/tests/basic.json index 509771b..a04db88 100644 --- a/tests/basic.json +++ b/tests/basic.json @@ -61,6 +61,20 @@ "$['☺']" ] }, + { + "name": "name shorthand, supplementary plane character", + "selector": "$.😀", + "document": { + "😀": "A", + "b": "B" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['😀']" + ] + }, { "name": "name shorthand, underscore", "selector": "$._", @@ -85,6 +99,11 @@ "selector": "$.1", "invalid_selector": true }, + { + "name": "name shorthand, hyphen", + "selector": "$.a-b", + "invalid_selector": true + }, { "name": "name shorthand, absent data", "selector": "$.c", @@ -258,6 +277,11 @@ "selector": "$[0,]", "invalid_selector": true }, + { + "name": "selector, trailing comma, space", + "selector": "$[0, ]", + "invalid_selector": true + }, { "name": "multiple selectors, name and index, array data", "selector": "$['a',1]", diff --git a/tests/filter.json b/tests/filter.json index 79b84d3..24bae08 100644 --- a/tests/filter.json +++ b/tests/filter.json @@ -1159,6 +1159,22 @@ "$[0]" ] }, + { + "name": "less than or equal to true, number", + "selector": "$[?@.a<=true]", + "document": [ + { + "a": 0, + "d": "e" + }, + { + "a": 1, + "d": "f" + } + ], + "result": [], + "result_paths": [] + }, { "name": "less than or equal to false", "selector": "$[?@.a<=false]", @@ -1315,6 +1331,22 @@ "result": [], "result_paths": [] }, + { + "name": "greater than false, number", + "selector": "$[?@.a>false]", + "document": [ + { + "a": 0, + "d": "e" + }, + { + "a": 1, + "d": "f" + } + ], + "result": [], + "result_paths": [] + }, { "name": "greater than or equal to string, single quotes", "selector": "$[?@.a>='c']", diff --git a/tests/name_selector.json b/tests/name_selector.json index d3ca645..7248543 100644 --- a/tests/name_selector.json +++ b/tests/name_selector.json @@ -505,6 +505,38 @@ "unicode" ] }, + { + "name": "double quotes, escaped é, lower case hex e", + "selector": "$[\"\\u00e9\"]", + "document": { + "é": "A" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['é']" + ], + "tags": [ + "unicode" + ] + }, + { + "name": "double quotes, escaped control character", + "selector": "$[\"\\u001f\"]", + "document": { + "\u001f": "A" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['\\u001f']" + ], + "tags": [ + "unicode" + ] + }, { "name": "double quotes, surrogate pair 𝄞", "selector": "$[\"\\uD834\\uDD1E\"]", @@ -1195,6 +1227,38 @@ "unicode" ] }, + { + "name": "single quotes, escaped é, lower case hex e", + "selector": "$['\\u00e9']", + "document": { + "é": "A" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['é']" + ], + "tags": [ + "unicode" + ] + }, + { + "name": "single quotes, escaped control character", + "selector": "$['\\u001f']", + "document": { + "\u001f": "A" + }, + "result": [ + "A" + ], + "result_paths": [ + "$['\\u001f']" + ], + "tags": [ + "unicode" + ] + }, { "name": "single quotes, surrogate pair 𝄞", "selector": "$['\\uD834\\uDD1E']",