1[
2 {
3 "description": "uniqueItems validation",
4 "schema": {"uniqueItems": true},
5 "tests": [
6 {
7 "description": "unique array of integers is valid",
8 "data": [1, 2],
9 "valid": true
10 },
11 {
12 "description": "non-unique array of integers is invalid",
13 "data": [1, 1],
14 "valid": false
15 },
16 {
17 "description": "numbers are unique if mathematically unequal",
18 "data": [1.0, 1.00, 1],
19 "valid": false
20 },
21 {
22 "description": "unique array of objects is valid",
23 "data": [{"foo": "bar"}, {"foo": "baz"}],
24 "valid": true
25 },
26 {
27 "description": "non-unique array of objects is invalid",
28 "data": [{"foo": "bar"}, {"foo": "bar"}],
29 "valid": false
30 },
31 {
32 "description": "unique array of nested objects is valid",
33 "data": [
34 {"foo": {"bar" : {"baz" : true}}},
35 {"foo": {"bar" : {"baz" : false}}}
36 ],
37 "valid": true
38 },
39 {
40 "description": "non-unique array of nested objects is invalid",
41 "data": [
42 {"foo": {"bar" : {"baz" : true}}},
43 {"foo": {"bar" : {"baz" : true}}}
44 ],
45 "valid": false
46 },
47 {
48 "description": "unique array of arrays is valid",
49 "data": [["foo"], ["bar"]],
50 "valid": true
51 },
52 {
53 "description": "non-unique array of arrays is invalid",
54 "data": [["foo"], ["foo"]],
55 "valid": false
56 },
57 {
58 "description": "1 and true are unique",
59 "data": [1, true],
60 "valid": true
61 },
62 {
63 "description": "0 and false are unique",
64 "data": [0, false],
65 "valid": true
66 },
67 {
68 "description": "unique heterogeneous types are valid",
69 "data": [{}, [1], true, null, 1],
70 "valid": true
71 },
72 {
73 "description": "non-unique heterogeneous types are invalid",
74 "data": [{}, [1], true, null, {}, 1],
75 "valid": false
76 }
77 ]
78 },
79 {
80 "description": "uniqueItems with an array of items",
81 "schema": {
82 "items": [{"type": "boolean"}, {"type": "boolean"}],
83 "uniqueItems": true
84 },
85 "tests": [
86 {
87 "description": "[false, true] from items array is valid",
88 "data": [false, true],
89 "valid": true
90 },
91 {
92 "description": "[true, false] from items array is valid",
93 "data": [true, false],
94 "valid": true
95 },
96 {
97 "description": "[false, false] from items array is not valid",
98 "data": [false, false],
99 "valid": false
100 },
101 {
102 "description": "[true, true] from items array is not valid",
103 "data": [true, true],
104 "valid": false
105 },
106 {
107 "description": "unique array extended from [false, true] is valid",
108 "data": [false, true, "foo", "bar"],
109 "valid": true
110 },
111 {
112 "description": "unique array extended from [true, false] is valid",
113 "data": [true, false, "foo", "bar"],
114 "valid": true
115 },
116 {
117 "description": "non-unique array extended from [false, true] is not valid",
118 "data": [false, true, "foo", "foo"],
119 "valid": false
120 },
121 {
122 "description": "non-unique array extended from [true, false] is not valid",
123 "data": [true, false, "foo", "foo"],
124 "valid": false
125 }
126 ]
127 },
128 {
129 "description": "uniqueItems with an array of items and additionalItems=false",
130 "schema": {
131 "items": [{"type": "boolean"}, {"type": "boolean"}],
132 "uniqueItems": true,
133 "additionalItems": false
134 },
135 "tests": [
136 {
137 "description": "[false, true] from items array is valid",
138 "data": [false, true],
139 "valid": true
140 },
141 {
142 "description": "[true, false] from items array is valid",
143 "data": [true, false],
144 "valid": true
145 },
146 {
147 "description": "[false, false] from items array is not valid",
148 "data": [false, false],
149 "valid": false
150 },
151 {
152 "description": "[true, true] from items array is not valid",
153 "data": [true, true],
154 "valid": false
155 },
156 {
157 "description": "extra items are invalid even if unique",
158 "data": [false, true, null],
159 "valid": false
160 }
161 ]
162 }
163]
View as plain text