1 | [{
|
2 | "given": {
|
3 | "foo": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
4 | "bar": {
|
5 | "baz": 1
|
6 | }
|
7 | },
|
8 | "cases": [
|
9 | {
|
10 | "expression": "bar[0:10]",
|
11 | "result": null
|
12 | },
|
13 | {
|
14 | "expression": "foo[0:10:1]",
|
15 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
16 | },
|
17 | {
|
18 | "expression": "foo[0:10]",
|
19 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
20 | },
|
21 | {
|
22 | "expression": "foo[0:10:]",
|
23 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
24 | },
|
25 | {
|
26 | "expression": "foo[0::1]",
|
27 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
28 | },
|
29 | {
|
30 | "expression": "foo[0::]",
|
31 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
32 | },
|
33 | {
|
34 | "expression": "foo[0:]",
|
35 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
36 | },
|
37 | {
|
38 | "expression": "foo[:10:1]",
|
39 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
40 | },
|
41 | {
|
42 | "expression": "foo[::1]",
|
43 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
44 | },
|
45 | {
|
46 | "expression": "foo[:10:]",
|
47 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
48 | },
|
49 | {
|
50 | "expression": "foo[::]",
|
51 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
52 | },
|
53 | {
|
54 | "expression": "foo[:]",
|
55 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
56 | },
|
57 | {
|
58 | "expression": "foo[1:9]",
|
59 | "result": [1, 2, 3, 4, 5, 6, 7, 8]
|
60 | },
|
61 | {
|
62 | "expression": "foo[0:10:2]",
|
63 | "result": [0, 2, 4, 6, 8]
|
64 | },
|
65 | {
|
66 | "expression": "foo[5:]",
|
67 | "result": [5, 6, 7, 8, 9]
|
68 | },
|
69 | {
|
70 | "expression": "foo[5::2]",
|
71 | "result": [5, 7, 9]
|
72 | },
|
73 | {
|
74 | "expression": "foo[::2]",
|
75 | "result": [0, 2, 4, 6, 8]
|
76 | },
|
77 | {
|
78 | "expression": "foo[::-1]",
|
79 | "result": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
|
80 | },
|
81 | {
|
82 | "expression": "foo[1::2]",
|
83 | "result": [1, 3, 5, 7, 9]
|
84 | },
|
85 | {
|
86 | "expression": "foo[10:0:-1]",
|
87 | "result": [9, 8, 7, 6, 5, 4, 3, 2, 1]
|
88 | },
|
89 | {
|
90 | "expression": "foo[10:5:-1]",
|
91 | "result": [9, 8, 7, 6]
|
92 | },
|
93 | {
|
94 | "expression": "foo[8:2:-2]",
|
95 | "result": [8, 6, 4]
|
96 | },
|
97 | {
|
98 | "expression": "foo[0:20]",
|
99 | "result": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
100 | },
|
101 | {
|
102 | "expression": "foo[10:-20:-1]",
|
103 | "result": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
|
104 | },
|
105 | {
|
106 | "expression": "foo[10:-20]",
|
107 | "result": []
|
108 | },
|
109 | {
|
110 | "expression": "foo[-4:-1]",
|
111 | "result": [6, 7, 8]
|
112 | },
|
113 | {
|
114 | "expression": "foo[:-5:-1]",
|
115 | "result": [9, 8, 7, 6]
|
116 | },
|
117 | {
|
118 | "expression": "foo[8:2:0]",
|
119 | "error": "invalid-value"
|
120 | },
|
121 | {
|
122 | "expression": "foo[8:2:0:1]",
|
123 | "error": "syntax"
|
124 | },
|
125 | {
|
126 | "expression": "foo[8:2&]",
|
127 | "error": "syntax"
|
128 | }
|
129 | ]
|
130 | }, {
|
131 | "given": {
|
132 | "foo": [{"a": 1}, {"a": 2}, {"a": 3}],
|
133 | "bar": [{"a": {"b": 1}}, {"a": {"b": 2}},
|
134 | {"a": {"b": 3}}],
|
135 | "baz": 50
|
136 | },
|
137 | "cases": [
|
138 | {
|
139 | "expression": "foo[:2].a",
|
140 | "result": [1, 2]
|
141 | },
|
142 | {
|
143 | "expression": "foo[:2].b",
|
144 | "result": []
|
145 | },
|
146 | {
|
147 | "expression": "foo[:2].a.b",
|
148 | "result": []
|
149 | },
|
150 | {
|
151 | "expression": "bar[::-1].a.b",
|
152 | "result": [3, 2, 1]
|
153 | },
|
154 | {
|
155 | "expression": "bar[:2].a.b",
|
156 | "result": [1, 2]
|
157 | },
|
158 | {
|
159 | "expression": "baz[:2].a",
|
160 | "result": null
|
161 | }
|
162 | ]
|
163 | }, {
|
164 | "given": [{"a": 1}, {"a": 2}, {"a": 3}],
|
165 | "cases": [
|
166 | {
|
167 | "expression": "[:]",
|
168 | "result": [{"a": 1}, {"a": 2}, {"a": 3}]
|
169 | },
|
170 | {
|
171 | "expression": "[:2].a",
|
172 | "result": [1, 2]
|
173 | },
|
174 | {
|
175 | "expression": "[::-1].a",
|
176 | "result": [3, 2, 1]
|
177 | },
|
178 | {
|
179 | "expression": "[:2].b",
|
180 | "result": []
|
181 | }
|
182 | ]
|
183 | }]
|