1[
2 {
3 "given": {
4 "outer": {
5 "foo": "foo",
6 "bar": "bar",
7 "baz": "baz"
8 }
9 },
10 "cases": [
11 {
12 "expression": "outer.foo || outer.bar",
13 "result": "foo"
14 },
15 {
16 "expression": "outer.foo||outer.bar",
17 "result": "foo"
18 },
19 {
20 "expression": "outer.bar || outer.baz",
21 "result": "bar"
22 },
23 {
24 "expression": "outer.bar||outer.baz",
25 "result": "bar"
26 },
27 {
28 "expression": "outer.bad || outer.foo",
29 "result": "foo"
30 },
31 {
32 "expression": "outer.bad||outer.foo",
33 "result": "foo"
34 },
35 {
36 "expression": "outer.foo || outer.bad",
37 "result": "foo"
38 },
39 {
40 "expression": "outer.foo||outer.bad",
41 "result": "foo"
42 },
43 {
44 "expression": "outer.bad || outer.alsobad",
45 "result": null
46 },
47 {
48 "expression": "outer.bad||outer.alsobad",
49 "result": null
50 }
51 ]
52 },
53 {
54 "given": {
55 "outer": {
56 "foo": "foo",
57 "bool": false,
58 "empty_list": [],
59 "empty_string": ""
60 }
61 },
62 "cases": [
63 {
64 "expression": "outer.empty_string || outer.foo",
65 "result": "foo"
66 },
67 {
68 "expression": "outer.nokey || outer.bool || outer.empty_list || outer.empty_string || outer.foo",
69 "result": "foo"
70 }
71 ]
72 },
73 {
74 "given": {
75 "True": true,
76 "False": false,
77 "Number": 5,
78 "EmptyList": [],
79 "Zero": 0
80 },
81 "cases": [
82 {
83 "expression": "True && False",
84 "result": false
85 },
86 {
87 "expression": "False && True",
88 "result": false
89 },
90 {
91 "expression": "True && True",
92 "result": true
93 },
94 {
95 "expression": "False && False",
96 "result": false
97 },
98 {
99 "expression": "True && Number",
100 "result": 5
101 },
102 {
103 "expression": "Number && True",
104 "result": true
105 },
106 {
107 "expression": "Number && False",
108 "result": false
109 },
110 {
111 "expression": "Number && EmptyList",
112 "result": []
113 },
114 {
115 "expression": "Number && True",
116 "result": true
117 },
118 {
119 "expression": "EmptyList && True",
120 "result": []
121 },
122 {
123 "expression": "EmptyList && False",
124 "result": []
125 },
126 {
127 "expression": "True || False",
128 "result": true
129 },
130 {
131 "expression": "True || True",
132 "result": true
133 },
134 {
135 "expression": "False || True",
136 "result": true
137 },
138 {
139 "expression": "False || False",
140 "result": false
141 },
142 {
143 "expression": "Number || EmptyList",
144 "result": 5
145 },
146 {
147 "expression": "Number || True",
148 "result": 5
149 },
150 {
151 "expression": "Number || True && False",
152 "result": 5
153 },
154 {
155 "expression": "(Number || True) && False",
156 "result": false
157 },
158 {
159 "expression": "Number || (True && False)",
160 "result": 5
161 },
162 {
163 "expression": "!True",
164 "result": false
165 },
166 {
167 "expression": "!False",
168 "result": true
169 },
170 {
171 "expression": "!Number",
172 "result": false
173 },
174 {
175 "expression": "!EmptyList",
176 "result": true
177 },
178 {
179 "expression": "True && !False",
180 "result": true
181 },
182 {
183 "expression": "True && !EmptyList",
184 "result": true
185 },
186 {
187 "expression": "!False && !EmptyList",
188 "result": true
189 },
190 {
191 "expression": "!(True && False)",
192 "result": true
193 },
194 {
195 "expression": "!Zero",
196 "result": false
197 },
198 {
199 "expression": "!!Zero",
200 "result": true
201 }
202 ]
203 },
204 {
205 "given": {
206 "one": 1,
207 "two": 2,
208 "three": 3
209 },
210 "cases": [
211 {
212 "expression": "one < two",
213 "result": true
214 },
215 {
216 "expression": "one <= two",
217 "result": true
218 },
219 {
220 "expression": "one == one",
221 "result": true
222 },
223 {
224 "expression": "one == two",
225 "result": false
226 },
227 {
228 "expression": "one > two",
229 "result": false
230 },
231 {
232 "expression": "one >= two",
233 "result": false
234 },
235 {
236 "expression": "one != two",
237 "result": true
238 },
239 {
240 "expression": "one < two && three > one",
241 "result": true
242 },
243 {
244 "expression": "one < two || three > one",
245 "result": true
246 },
247 {
248 "expression": "one < two || three < one",
249 "result": true
250 },
251 {
252 "expression": "two < one || three < one",
253 "result": false
254 }
255 ]
256 }
257]
View as plain text