1[
2 {
3 "description": "integer type matches integers",
4 "schema": {"type": "integer"},
5 "tests": [
6 {
7 "description": "an integer is an integer",
8 "data": 1,
9 "valid": true
10 },
11 {
12 "description": "a float is not an integer",
13 "data": 1.1,
14 "valid": false
15 },
16 {
17 "description": "a string is not an integer",
18 "data": "foo",
19 "valid": false
20 },
21 {
22 "description": "a string is still not an integer, even if it looks like one",
23 "data": "1",
24 "valid": false
25 },
26 {
27 "description": "an object is not an integer",
28 "data": {},
29 "valid": false
30 },
31 {
32 "description": "an array is not an integer",
33 "data": [],
34 "valid": false
35 },
36 {
37 "description": "a boolean is not an integer",
38 "data": true,
39 "valid": false
40 },
41 {
42 "description": "null is not an integer",
43 "data": null,
44 "valid": false
45 }
46 ]
47 },
48 {
49 "description": "number type matches numbers",
50 "schema": {"type": "number"},
51 "tests": [
52 {
53 "description": "an integer is a number",
54 "data": 1,
55 "valid": true
56 },
57 {
58 "description": "a float is a number",
59 "data": 1.1,
60 "valid": true
61 },
62 {
63 "description": "a string is not a number",
64 "data": "foo",
65 "valid": false
66 },
67 {
68 "description": "a string is still not a number, even if it looks like one",
69 "data": "1",
70 "valid": false
71 },
72 {
73 "description": "an object is not a number",
74 "data": {},
75 "valid": false
76 },
77 {
78 "description": "an array is not a number",
79 "data": [],
80 "valid": false
81 },
82 {
83 "description": "a boolean is not a number",
84 "data": true,
85 "valid": false
86 },
87 {
88 "description": "null is not a number",
89 "data": null,
90 "valid": false
91 }
92 ]
93 },
94 {
95 "description": "string type matches strings",
96 "schema": {"type": "string"},
97 "tests": [
98 {
99 "description": "1 is not a string",
100 "data": 1,
101 "valid": false
102 },
103 {
104 "description": "a float is not a string",
105 "data": 1.1,
106 "valid": false
107 },
108 {
109 "description": "a string is a string",
110 "data": "foo",
111 "valid": true
112 },
113 {
114 "description": "a string is still a string, even if it looks like a number",
115 "data": "1",
116 "valid": true
117 },
118 {
119 "description": "an object is not a string",
120 "data": {},
121 "valid": false
122 },
123 {
124 "description": "an array is not a string",
125 "data": [],
126 "valid": false
127 },
128 {
129 "description": "a boolean is not a string",
130 "data": true,
131 "valid": false
132 },
133 {
134 "description": "null is not a string",
135 "data": null,
136 "valid": false
137 }
138 ]
139 },
140 {
141 "description": "object type matches objects",
142 "schema": {"type": "object"},
143 "tests": [
144 {
145 "description": "an integer is not an object",
146 "data": 1,
147 "valid": false
148 },
149 {
150 "description": "a float is not an object",
151 "data": 1.1,
152 "valid": false
153 },
154 {
155 "description": "a string is not an object",
156 "data": "foo",
157 "valid": false
158 },
159 {
160 "description": "an object is an object",
161 "data": {},
162 "valid": true
163 },
164 {
165 "description": "an array is not an object",
166 "data": [],
167 "valid": false
168 },
169 {
170 "description": "a boolean is not an object",
171 "data": true,
172 "valid": false
173 },
174 {
175 "description": "null is not an object",
176 "data": null,
177 "valid": false
178 }
179 ]
180 },
181 {
182 "description": "array type matches arrays",
183 "schema": {"type": "array"},
184 "tests": [
185 {
186 "description": "an integer is not an array",
187 "data": 1,
188 "valid": false
189 },
190 {
191 "description": "a float is not an array",
192 "data": 1.1,
193 "valid": false
194 },
195 {
196 "description": "a string is not an array",
197 "data": "foo",
198 "valid": false
199 },
200 {
201 "description": "an object is not an array",
202 "data": {},
203 "valid": false
204 },
205 {
206 "description": "an array is an array",
207 "data": [],
208 "valid": true
209 },
210 {
211 "description": "a boolean is not an array",
212 "data": true,
213 "valid": false
214 },
215 {
216 "description": "null is not an array",
217 "data": null,
218 "valid": false
219 }
220 ]
221 },
222 {
223 "description": "boolean type matches booleans",
224 "schema": {"type": "boolean"},
225 "tests": [
226 {
227 "description": "an integer is not a boolean",
228 "data": 1,
229 "valid": false
230 },
231 {
232 "description": "a float is not a boolean",
233 "data": 1.1,
234 "valid": false
235 },
236 {
237 "description": "a string is not a boolean",
238 "data": "foo",
239 "valid": false
240 },
241 {
242 "description": "an object is not a boolean",
243 "data": {},
244 "valid": false
245 },
246 {
247 "description": "an array is not a boolean",
248 "data": [],
249 "valid": false
250 },
251 {
252 "description": "a boolean is a boolean",
253 "data": true,
254 "valid": true
255 },
256 {
257 "description": "null is not a boolean",
258 "data": null,
259 "valid": false
260 }
261 ]
262 },
263 {
264 "description": "null type matches only the null object",
265 "schema": {"type": "null"},
266 "tests": [
267 {
268 "description": "an integer is not null",
269 "data": 1,
270 "valid": false
271 },
272 {
273 "description": "a float is not null",
274 "data": 1.1,
275 "valid": false
276 },
277 {
278 "description": "a string is not null",
279 "data": "foo",
280 "valid": false
281 },
282 {
283 "description": "an object is not null",
284 "data": {},
285 "valid": false
286 },
287 {
288 "description": "an array is not null",
289 "data": [],
290 "valid": false
291 },
292 {
293 "description": "a boolean is not null",
294 "data": true,
295 "valid": false
296 },
297 {
298 "description": "null is null",
299 "data": null,
300 "valid": true
301 }
302 ]
303 },
304 {
305 "description": "multiple types can be specified in an array",
306 "schema": {"type": ["integer", "string"]},
307 "tests": [
308 {
309 "description": "an integer is valid",
310 "data": 1,
311 "valid": true
312 },
313 {
314 "description": "a string is valid",
315 "data": "foo",
316 "valid": true
317 },
318 {
319 "description": "a float is invalid",
320 "data": 1.1,
321 "valid": false
322 },
323 {
324 "description": "an object is invalid",
325 "data": {},
326 "valid": false
327 },
328 {
329 "description": "an array is invalid",
330 "data": [],
331 "valid": false
332 },
333 {
334 "description": "a boolean is invalid",
335 "data": true,
336 "valid": false
337 },
338 {
339 "description": "null is invalid",
340 "data": null,
341 "valid": false
342 }
343 ]
344 }
345]
View as plain text