xref: /aosp_15_r20/external/json-schema-validator/src/test/suite/tests/draft2020-12/const.json (revision 78c4dd6aa35290980cdcd1623a7e337e8d021c7c)
1[
2    {
3        "description": "const validation",
4        "schema": {
5            "$schema": "https://json-schema.org/draft/2020-12/schema",
6            "const": 2
7        },
8        "tests": [
9            {
10                "description": "same value is valid",
11                "data": 2,
12                "valid": true
13            },
14            {
15                "description": "another value is invalid",
16                "data": 5,
17                "valid": false
18            },
19            {
20                "description": "another type is invalid",
21                "data": "a",
22                "valid": false
23            }
24        ]
25    },
26    {
27        "description": "const with object",
28        "schema": {
29            "$schema": "https://json-schema.org/draft/2020-12/schema",
30            "const": {"foo": "bar", "baz": "bax"}
31        },
32        "tests": [
33            {
34                "description": "same object is valid",
35                "data": {"foo": "bar", "baz": "bax"},
36                "valid": true
37            },
38            {
39                "description": "same object with different property order is valid",
40                "data": {"baz": "bax", "foo": "bar"},
41                "valid": true
42            },
43            {
44                "description": "another object is invalid",
45                "data": {"foo": "bar"},
46                "valid": false
47            },
48            {
49                "description": "another type is invalid",
50                "data": [1, 2],
51                "valid": false
52            }
53        ]
54    },
55    {
56        "description": "const with array",
57        "schema": {
58            "$schema": "https://json-schema.org/draft/2020-12/schema",
59            "const": [{ "foo": "bar" }]
60        },
61        "tests": [
62            {
63                "description": "same array is valid",
64                "data": [{"foo": "bar"}],
65                "valid": true
66            },
67            {
68                "description": "another array item is invalid",
69                "data": [2],
70                "valid": false
71            },
72            {
73                "description": "array with additional items is invalid",
74                "data": [1, 2, 3],
75                "valid": false
76            }
77        ]
78    },
79    {
80        "description": "const with null",
81        "schema": {
82            "$schema": "https://json-schema.org/draft/2020-12/schema",
83            "const": null
84        },
85        "tests": [
86            {
87                "description": "null is valid",
88                "data": null,
89                "valid": true
90            },
91            {
92                "description": "not null is invalid",
93                "data": 0,
94                "valid": false
95            }
96        ]
97    },
98    {
99        "description": "const with false does not match 0",
100        "schema": {
101            "$schema": "https://json-schema.org/draft/2020-12/schema",
102            "const": false
103        },
104        "tests": [
105            {
106                "description": "false is valid",
107                "data": false,
108                "valid": true
109            },
110            {
111                "description": "integer zero is invalid",
112                "data": 0,
113                "valid": false
114            },
115            {
116                "description": "float zero is invalid",
117                "data": 0.0,
118                "valid": false
119            }
120        ]
121    },
122    {
123        "description": "const with true does not match 1",
124        "schema": {
125            "$schema": "https://json-schema.org/draft/2020-12/schema",
126            "const": true
127        },
128        "tests": [
129            {
130                "description": "true is valid",
131                "data": true,
132                "valid": true
133            },
134            {
135                "description": "integer one is invalid",
136                "data": 1,
137                "valid": false
138            },
139            {
140                "description": "float one is invalid",
141                "data": 1.0,
142                "valid": false
143            }
144        ]
145    },
146    {
147        "description": "const with [false] does not match [0]",
148        "schema": {
149            "$schema": "https://json-schema.org/draft/2020-12/schema",
150            "const": [false]
151        },
152        "tests": [
153            {
154                "description": "[false] is valid",
155                "data": [false],
156                "valid": true
157            },
158            {
159                "description": "[0] is invalid",
160                "data": [0],
161                "valid": false
162            },
163            {
164                "description": "[0.0] is invalid",
165                "data": [0.0],
166                "valid": false
167            }
168        ]
169    },
170    {
171        "description": "const with [true] does not match [1]",
172        "schema": {
173            "$schema": "https://json-schema.org/draft/2020-12/schema",
174            "const": [true]
175        },
176        "tests": [
177            {
178                "description": "[true] is valid",
179                "data": [true],
180                "valid": true
181            },
182            {
183                "description": "[1] is invalid",
184                "data": [1],
185                "valid": false
186            },
187            {
188                "description": "[1.0] is invalid",
189                "data": [1.0],
190                "valid": false
191            }
192        ]
193    },
194    {
195        "description": "const with {\"a\": false} does not match {\"a\": 0}",
196        "schema": {
197            "$schema": "https://json-schema.org/draft/2020-12/schema",
198            "const": {"a": false}
199        },
200        "tests": [
201            {
202                "description": "{\"a\": false} is valid",
203                "data": {"a": false},
204                "valid": true
205            },
206            {
207                "description": "{\"a\": 0} is invalid",
208                "data": {"a": 0},
209                "valid": false
210            },
211            {
212                "description": "{\"a\": 0.0} is invalid",
213                "data": {"a": 0.0},
214                "valid": false
215            }
216        ]
217    },
218    {
219        "description": "const with {\"a\": true} does not match {\"a\": 1}",
220        "schema": {
221            "$schema": "https://json-schema.org/draft/2020-12/schema",
222            "const": {"a": true}
223        },
224        "tests": [
225            {
226                "description": "{\"a\": true} is valid",
227                "data": {"a": true},
228                "valid": true
229            },
230            {
231                "description": "{\"a\": 1} is invalid",
232                "data": {"a": 1},
233                "valid": false
234            },
235            {
236                "description": "{\"a\": 1.0} is invalid",
237                "data": {"a": 1.0},
238                "valid": false
239            }
240        ]
241    },
242    {
243        "description": "const with 0 does not match other zero-like types",
244        "schema": {
245            "$schema": "https://json-schema.org/draft/2020-12/schema",
246            "const": 0
247        },
248        "tests": [
249            {
250                "description": "false is invalid",
251                "data": false,
252                "valid": false
253            },
254            {
255                "description": "integer zero is valid",
256                "data": 0,
257                "valid": true
258            },
259            {
260                "description": "float zero is valid",
261                "data": 0.0,
262                "valid": true
263            },
264            {
265                "description": "empty object is invalid",
266                "data": {},
267                "valid": false
268            },
269            {
270                "description": "empty array is invalid",
271                "data": [],
272                "valid": false
273            },
274            {
275                "description": "empty string is invalid",
276                "data": "",
277                "valid": false
278            }
279        ]
280    },
281    {
282        "description": "const with 1 does not match true",
283        "schema": {
284            "$schema": "https://json-schema.org/draft/2020-12/schema",
285            "const": 1
286        },
287        "tests": [
288            {
289                "description": "true is invalid",
290                "data": true,
291                "valid": false
292            },
293            {
294                "description": "integer one is valid",
295                "data": 1,
296                "valid": true
297            },
298            {
299                "description": "float one is valid",
300                "data": 1.0,
301                "valid": true
302            }
303        ]
304    },
305    {
306        "description": "const with -2.0 matches integer and float types",
307        "schema": {
308            "$schema": "https://json-schema.org/draft/2020-12/schema",
309            "const": -2.0
310        },
311        "tests": [
312            {
313                "description": "integer -2 is valid",
314                "data": -2,
315                "valid": true
316            },
317            {
318                "description": "integer 2 is invalid",
319                "data": 2,
320                "valid": false
321            },
322            {
323                "description": "float -2.0 is valid",
324                "data": -2.0,
325                "valid": true
326            },
327            {
328                "description": "float 2.0 is invalid",
329                "data": 2.0,
330                "valid": false
331            },
332            {
333                "description": "float -2.00001 is invalid",
334                "data": -2.00001,
335                "valid": false
336            }
337        ]
338    },
339    {
340        "description": "float and integers are equal up to 64-bit representation limits",
341        "schema": {
342            "$schema": "https://json-schema.org/draft/2020-12/schema",
343            "const": 9007199254740992
344        },
345        "tests": [
346            {
347                "description": "integer is valid",
348                "data": 9007199254740992,
349                "valid": true
350            },
351            {
352                "description": "integer minus one is invalid",
353                "data": 9007199254740991,
354                "valid": false
355            },
356            {
357                "description": "float is valid",
358                "data": 9007199254740992.0,
359                "valid": true
360            },
361            {
362                "description": "float minus one is invalid",
363                "data": 9007199254740991.0,
364                "valid": false
365            }
366        ]
367    },
368    {
369        "description": "nul characters in strings",
370        "schema": {
371            "$schema": "https://json-schema.org/draft/2020-12/schema",
372            "const": "hello\u0000there"
373        },
374        "tests": [
375            {
376                "description": "match string with nul",
377                "data": "hello\u0000there",
378                "valid": true
379            },
380            {
381                "description": "do not match string lacking nul",
382                "data": "hellothere",
383                "valid": false
384            }
385        ]
386    }
387]
388