xref: /aosp_15_r20/external/json-schema-validator/src/test/suite/tests/draft2020-12/maxContains.json (revision 78c4dd6aa35290980cdcd1623a7e337e8d021c7c)
1[
2    {
3        "description": "maxContains without contains is ignored",
4        "schema": {
5            "$schema": "https://json-schema.org/draft/2020-12/schema",
6            "maxContains": 1
7        },
8        "tests": [
9            {
10                "description": "one item valid against lone maxContains",
11                "data": [ 1 ],
12                "valid": true
13            },
14            {
15                "description": "two items still valid against lone maxContains",
16                "data": [ 1, 2 ],
17                "valid": true
18            }
19        ]
20    },
21    {
22        "description": "maxContains with contains",
23        "schema": {
24            "$schema": "https://json-schema.org/draft/2020-12/schema",
25            "contains": {"const": 1},
26            "maxContains": 1
27        },
28        "tests": [
29            {
30                "description": "empty data",
31                "data": [ ],
32                "valid": false
33            },
34            {
35                "description": "all elements match, valid maxContains",
36                "data": [ 1 ],
37                "valid": true
38            },
39            {
40                "description": "all elements match, invalid maxContains",
41                "data": [ 1, 1 ],
42                "valid": false
43            },
44            {
45                "description": "some elements match, valid maxContains",
46                "data": [ 1, 2 ],
47                "valid": true
48            },
49            {
50                "description": "some elements match, invalid maxContains",
51                "data": [ 1, 2, 1 ],
52                "valid": false
53            }
54        ]
55    },
56    {
57        "description": "maxContains with contains, value with a decimal",
58        "schema": {
59            "$schema": "https://json-schema.org/draft/2020-12/schema",
60            "contains": {"const": 1},
61            "maxContains": 1.0
62        },
63        "tests": [
64            {
65                "description": "one element matches, valid maxContains",
66                "data": [ 1 ],
67                "valid": true
68            },
69            {
70                "description": "too many elements match, invalid maxContains",
71                "data": [ 1, 1 ],
72                "valid": false
73            }
74        ]
75    },
76    {
77        "description": "minContains < maxContains",
78        "schema": {
79            "$schema": "https://json-schema.org/draft/2020-12/schema",
80            "contains": {"const": 1},
81            "minContains": 1,
82            "maxContains": 3
83        },
84        "tests": [
85            {
86                "description": "actual < minContains < maxContains",
87                "data": [ ],
88                "valid": false
89            },
90            {
91                "description": "minContains < actual < maxContains",
92                "data": [ 1, 1 ],
93                "valid": true
94            },
95            {
96                "description": "minContains < maxContains < actual",
97                "data": [ 1, 1, 1, 1 ],
98                "valid": false
99            }
100        ]
101    }
102]
103