json_schemer 0.2.7 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/JSON-Schema-Test-Suite/bin/jsonschema_suite +8 -5
- data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +1 -1
- data/JSON-Schema-Test-Suite/remotes/integer.json +1 -1
- data/JSON-Schema-Test-Suite/remotes/name-defs.json +6 -2
- data/JSON-Schema-Test-Suite/remotes/name.json +6 -2
- data/JSON-Schema-Test-Suite/remotes/subSchemas.json +2 -2
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/additionalItems.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/additionalProperties.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/allOf.json +0 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-09/anchor.json +87 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/anyOf.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/boolean_schema.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/const.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/contains.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/default.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/defs.json +2 -2
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/dependencies.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/enum.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/exclusiveMaximum.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/exclusiveMinimum.json +0 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-09/format.json +614 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/if-then-else.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/items.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/maxItems.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/maxLength.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/maxProperties.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/maximum.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/minItems.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/minLength.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/minProperties.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/minimum.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/multipleOf.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/not.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/oneOf.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/bignum.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/content.json +0 -0
- data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/ecmascript-regex.json +213 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/date-time.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/date.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/email.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/hostname.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/idn-email.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/idn-hostname.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/ipv4.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/ipv6.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/iri-reference.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/iri.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/json-pointer.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/regex.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/relative-json-pointer.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/time.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/uri-reference.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/uri-template.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/uri.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/zeroTerminatedFloats.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/pattern.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/patternProperties.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/properties.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/propertyNames.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/ref.json +1 -85
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/refRemote.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/required.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/type.json +0 -0
- data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/uniqueItems.json +84 -0
- data/JSON-Schema-Test-Suite/tests/draft3/format.json +362 -0
- data/JSON-Schema-Test-Suite/tests/draft3/optional/{jsregex.json → ecmascript-regex.json} +0 -0
- data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +84 -0
- data/JSON-Schema-Test-Suite/tests/draft4/format.json +218 -0
- data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +200 -0
- data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +84 -0
- data/JSON-Schema-Test-Suite/tests/draft6/format.json +326 -0
- data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +200 -0
- data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +84 -0
- data/JSON-Schema-Test-Suite/tests/draft7/format.json +614 -0
- data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +200 -0
- data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +84 -0
- data/JSON-Schema-Test-Suite/tests/latest +1 -0
- data/JSON-Schema-Test-Suite/tox.ini +3 -2
- data/lib/json_schemer/format.rb +25 -58
- data/lib/json_schemer/version.rb +1 -1
- metadata +66 -59
- data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/ecmascript-regex.json +0 -13
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"description": "ECMA 262 regex non-compliance",
|
|
4
|
+
"schema": { "format": "regex" },
|
|
5
|
+
"tests": [
|
|
6
|
+
{
|
|
7
|
+
"description": "ECMA 262 has no support for \\Z anchor from .NET",
|
|
8
|
+
"data": "^\\S(|(.|\\n)*\\S)\\Z",
|
|
9
|
+
"valid": false
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"description": "ECMA 262 regex $ does not match trailing newline",
|
|
15
|
+
"schema": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"pattern": "^abc$"
|
|
18
|
+
},
|
|
19
|
+
"tests": [
|
|
20
|
+
{
|
|
21
|
+
"description": "matches in Python, but should not in jsonschema",
|
|
22
|
+
"data": "abc\n",
|
|
23
|
+
"valid": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"description": "should match",
|
|
27
|
+
"data": "abc",
|
|
28
|
+
"valid": true
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"description": "ECMA 262 regex converts \\a to ascii BEL",
|
|
34
|
+
"schema": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"pattern": "^\\a$"
|
|
37
|
+
},
|
|
38
|
+
"tests": [
|
|
39
|
+
{
|
|
40
|
+
"description": "does not match",
|
|
41
|
+
"data": "\\a",
|
|
42
|
+
"valid": false
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"description": "matches",
|
|
46
|
+
"data": "\u0007",
|
|
47
|
+
"valid": true
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"description": "ECMA 262 regex escapes control codes with \\c and upper letter",
|
|
53
|
+
"schema": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"pattern": "^\\cC$"
|
|
56
|
+
},
|
|
57
|
+
"tests": [
|
|
58
|
+
{
|
|
59
|
+
"description": "does not match",
|
|
60
|
+
"data": "\\cC",
|
|
61
|
+
"valid": false
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"description": "matches",
|
|
65
|
+
"data": "\u0003",
|
|
66
|
+
"valid": true
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"description": "ECMA 262 regex escapes control codes with \\c and lower letter",
|
|
72
|
+
"schema": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"pattern": "^\\cc$"
|
|
75
|
+
},
|
|
76
|
+
"tests": [
|
|
77
|
+
{
|
|
78
|
+
"description": "does not match",
|
|
79
|
+
"data": "\\cc",
|
|
80
|
+
"valid": false
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"description": "matches",
|
|
84
|
+
"data": "\u0003",
|
|
85
|
+
"valid": true
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"description": "ECMA 262 \\d matches ascii digits only",
|
|
91
|
+
"schema": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"pattern": "^\\d$"
|
|
94
|
+
},
|
|
95
|
+
"tests": [
|
|
96
|
+
{
|
|
97
|
+
"description": "ASCII zero matches",
|
|
98
|
+
"data": "0",
|
|
99
|
+
"valid": true
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"description": "NKO DIGIT ZERO does not match (unlike e.g. Python)",
|
|
103
|
+
"data": "߀",
|
|
104
|
+
"valid": false
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"description": "NKO DIGIT ZERO (as \\u escape) does not match",
|
|
108
|
+
"data": "\u07c0",
|
|
109
|
+
"valid": false
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"description": "ECMA 262 \\D matches everything but ascii digits",
|
|
115
|
+
"schema": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"pattern": "^\\D$"
|
|
118
|
+
},
|
|
119
|
+
"tests": [
|
|
120
|
+
{
|
|
121
|
+
"description": "ASCII zero does not match",
|
|
122
|
+
"data": "0",
|
|
123
|
+
"valid": false
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"description": "NKO DIGIT ZERO matches (unlike e.g. Python)",
|
|
127
|
+
"data": "߀",
|
|
128
|
+
"valid": true
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"description": "NKO DIGIT ZERO (as \\u escape) matches",
|
|
132
|
+
"data": "\u07c0",
|
|
133
|
+
"valid": true
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"description": "ECMA 262 \\w matches ascii letters only",
|
|
139
|
+
"schema": {
|
|
140
|
+
"type": "string",
|
|
141
|
+
"pattern": "^\\w$"
|
|
142
|
+
},
|
|
143
|
+
"tests": [
|
|
144
|
+
{
|
|
145
|
+
"description": "ASCII 'a' matches",
|
|
146
|
+
"data": "a",
|
|
147
|
+
"valid": true
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"description": "latin-1 e-acute does not match (unlike e.g. Python)",
|
|
151
|
+
"data": "é",
|
|
152
|
+
"valid": false
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"description": "ECMA 262 \\w matches everything but ascii letters",
|
|
158
|
+
"schema": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"pattern": "^\\W$"
|
|
161
|
+
},
|
|
162
|
+
"tests": [
|
|
163
|
+
{
|
|
164
|
+
"description": "ASCII 'a' does not match",
|
|
165
|
+
"data": "a",
|
|
166
|
+
"valid": false
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"description": "latin-1 e-acute matches (unlike e.g. Python)",
|
|
170
|
+
"data": "é",
|
|
171
|
+
"valid": true
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"description": "ECMA 262 \\s matches ascii whitespace only",
|
|
177
|
+
"schema": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"pattern": "^\\s$"
|
|
180
|
+
},
|
|
181
|
+
"tests": [
|
|
182
|
+
{
|
|
183
|
+
"description": "ASCII space matches",
|
|
184
|
+
"data": " ",
|
|
185
|
+
"valid": true
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"description": "latin-1 non-breaking-space does not match (unlike e.g. Python)",
|
|
189
|
+
"data": "\u00a0",
|
|
190
|
+
"valid": false
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"description": "ECMA 262 \\S matches everything but ascii whitespace",
|
|
196
|
+
"schema": {
|
|
197
|
+
"type": "string",
|
|
198
|
+
"pattern": "^\\S$"
|
|
199
|
+
},
|
|
200
|
+
"tests": [
|
|
201
|
+
{
|
|
202
|
+
"description": "ASCII space does not match",
|
|
203
|
+
"data": " ",
|
|
204
|
+
"valid": false
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"description": "latin-1 non-breaking-space matches (unlike e.g. Python)",
|
|
208
|
+
"data": "\u00a0",
|
|
209
|
+
"valid": true
|
|
210
|
+
}
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
]
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/date-time.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/hostname.json
RENAMED
|
File without changes
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/idn-email.json
RENAMED
|
File without changes
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/idn-hostname.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/iri-reference.json
RENAMED
|
File without changes
|
|
File without changes
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/json-pointer.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/uri-reference.json
RENAMED
|
File without changes
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/format/uri-template.json
RENAMED
|
File without changes
|
|
File without changes
|
data/JSON-Schema-Test-Suite/tests/{draft2019-08 → draft2019-09}/optional/zeroTerminatedFloats.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"description": "remote ref, containing refs itself",
|
|
178
|
-
"schema": {"$ref": "
|
|
178
|
+
"schema": {"$ref": "https://json-schema.org/draft/2019-09/schema"},
|
|
179
179
|
"tests": [
|
|
180
180
|
{
|
|
181
181
|
"description": "remote ref valid",
|
|
@@ -355,89 +355,5 @@
|
|
|
355
355
|
"valid": false
|
|
356
356
|
}
|
|
357
357
|
]
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
"description": "Location-independent identifier",
|
|
361
|
-
"schema": {
|
|
362
|
-
"allOf": [{
|
|
363
|
-
"$ref": "#foo"
|
|
364
|
-
}],
|
|
365
|
-
"$defs": {
|
|
366
|
-
"A": {
|
|
367
|
-
"$id": "#foo",
|
|
368
|
-
"type": "integer"
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
},
|
|
372
|
-
"tests": [
|
|
373
|
-
{
|
|
374
|
-
"data": 1,
|
|
375
|
-
"description": "match",
|
|
376
|
-
"valid": true
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
"data": "a",
|
|
380
|
-
"description": "mismatch",
|
|
381
|
-
"valid": false
|
|
382
|
-
}
|
|
383
|
-
]
|
|
384
|
-
},
|
|
385
|
-
{
|
|
386
|
-
"description": "Location-independent identifier with absolute URI",
|
|
387
|
-
"schema": {
|
|
388
|
-
"allOf": [{
|
|
389
|
-
"$ref": "http://localhost:1234/bar#foo"
|
|
390
|
-
}],
|
|
391
|
-
"$defs": {
|
|
392
|
-
"A": {
|
|
393
|
-
"$id": "http://localhost:1234/bar#foo",
|
|
394
|
-
"type": "integer"
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
},
|
|
398
|
-
"tests": [
|
|
399
|
-
{
|
|
400
|
-
"data": 1,
|
|
401
|
-
"description": "match",
|
|
402
|
-
"valid": true
|
|
403
|
-
},
|
|
404
|
-
{
|
|
405
|
-
"data": "a",
|
|
406
|
-
"description": "mismatch",
|
|
407
|
-
"valid": false
|
|
408
|
-
}
|
|
409
|
-
]
|
|
410
|
-
},
|
|
411
|
-
{
|
|
412
|
-
"description": "Location-independent identifier with base URI change in subschema",
|
|
413
|
-
"schema": {
|
|
414
|
-
"$id": "http://localhost:1234/root",
|
|
415
|
-
"allOf": [{
|
|
416
|
-
"$ref": "http://localhost:1234/nested.json#foo"
|
|
417
|
-
}],
|
|
418
|
-
"$defs": {
|
|
419
|
-
"A": {
|
|
420
|
-
"$id": "nested.json",
|
|
421
|
-
"$defs": {
|
|
422
|
-
"B": {
|
|
423
|
-
"$id": "#foo",
|
|
424
|
-
"type": "integer"
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
},
|
|
430
|
-
"tests": [
|
|
431
|
-
{
|
|
432
|
-
"data": 1,
|
|
433
|
-
"description": "match",
|
|
434
|
-
"valid": true
|
|
435
|
-
},
|
|
436
|
-
{
|
|
437
|
-
"data": "a",
|
|
438
|
-
"description": "mismatch",
|
|
439
|
-
"valid": false
|
|
440
|
-
}
|
|
441
|
-
]
|
|
442
358
|
}
|
|
443
359
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -85,5 +85,89 @@
|
|
|
85
85
|
"valid": false
|
|
86
86
|
}
|
|
87
87
|
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"description": "uniqueItems with an array of items",
|
|
91
|
+
"schema": {
|
|
92
|
+
"items": [{"type": "boolean"}, {"type": "boolean"}],
|
|
93
|
+
"uniqueItems": true
|
|
94
|
+
},
|
|
95
|
+
"tests": [
|
|
96
|
+
{
|
|
97
|
+
"description": "[false, true] from items array is valid",
|
|
98
|
+
"data": [false, true],
|
|
99
|
+
"valid": true
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"description": "[true, false] from items array is valid",
|
|
103
|
+
"data": [true, false],
|
|
104
|
+
"valid": true
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"description": "[false, false] from items array is not valid",
|
|
108
|
+
"data": [false, false],
|
|
109
|
+
"valid": false
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"description": "[true, true] from items array is not valid",
|
|
113
|
+
"data": [true, true],
|
|
114
|
+
"valid": false
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"description": "unique array extended from [false, true] is valid",
|
|
118
|
+
"data": [false, true, "foo", "bar"],
|
|
119
|
+
"valid": true
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"description": "unique array extended from [true, false] is valid",
|
|
123
|
+
"data": [true, false, "foo", "bar"],
|
|
124
|
+
"valid": true
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"description": "non-unique array extended from [false, true] is not valid",
|
|
128
|
+
"data": [false, true, "foo", "foo"],
|
|
129
|
+
"valid": false
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"description": "non-unique array extended from [true, false] is not valid",
|
|
133
|
+
"data": [true, false, "foo", "foo"],
|
|
134
|
+
"valid": false
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"description": "uniqueItems with an array of items and additionalItems=false",
|
|
140
|
+
"schema": {
|
|
141
|
+
"items": [{"type": "boolean"}, {"type": "boolean"}],
|
|
142
|
+
"uniqueItems": true,
|
|
143
|
+
"additionalItems": false
|
|
144
|
+
},
|
|
145
|
+
"tests": [
|
|
146
|
+
{
|
|
147
|
+
"description": "[false, true] from items array is valid",
|
|
148
|
+
"data": [false, true],
|
|
149
|
+
"valid": true
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"description": "[true, false] from items array is valid",
|
|
153
|
+
"data": [true, false],
|
|
154
|
+
"valid": true
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"description": "[false, false] from items array is not valid",
|
|
158
|
+
"data": [false, false],
|
|
159
|
+
"valid": false
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"description": "[true, true] from items array is not valid",
|
|
163
|
+
"data": [true, true],
|
|
164
|
+
"valid": false
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"description": "extra items are invalid even if unique",
|
|
168
|
+
"data": [false, true, null],
|
|
169
|
+
"valid": false
|
|
170
|
+
}
|
|
171
|
+
]
|
|
88
172
|
}
|
|
89
173
|
]
|