json_schemer 0.2.7 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (233) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -6
  3. data/Gemfile.lock +7 -7
  4. data/json_schemer.gemspec +3 -3
  5. data/lib/json_schemer.rb +2 -0
  6. data/lib/json_schemer/errors.rb +31 -0
  7. data/lib/json_schemer/format.rb +25 -58
  8. data/lib/json_schemer/schema/base.rb +52 -32
  9. data/lib/json_schemer/version.rb +1 -1
  10. metadata +8 -229
  11. data/JSON-Schema-Test-Suite/.gitignore +0 -1
  12. data/JSON-Schema-Test-Suite/.travis.yml +0 -8
  13. data/JSON-Schema-Test-Suite/LICENSE +0 -19
  14. data/JSON-Schema-Test-Suite/README.md +0 -181
  15. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +0 -295
  16. data/JSON-Schema-Test-Suite/index.js +0 -45
  17. data/JSON-Schema-Test-Suite/package.json +0 -28
  18. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +0 -3
  19. data/JSON-Schema-Test-Suite/remotes/integer.json +0 -3
  20. data/JSON-Schema-Test-Suite/remotes/name-defs.json +0 -11
  21. data/JSON-Schema-Test-Suite/remotes/name.json +0 -11
  22. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +0 -8
  23. data/JSON-Schema-Test-Suite/test-schema.json +0 -59
  24. data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalItems.json +0 -87
  25. data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalProperties.json +0 -133
  26. data/JSON-Schema-Test-Suite/tests/draft2019-08/allOf.json +0 -218
  27. data/JSON-Schema-Test-Suite/tests/draft2019-08/anyOf.json +0 -189
  28. data/JSON-Schema-Test-Suite/tests/draft2019-08/boolean_schema.json +0 -104
  29. data/JSON-Schema-Test-Suite/tests/draft2019-08/const.json +0 -170
  30. data/JSON-Schema-Test-Suite/tests/draft2019-08/contains.json +0 -95
  31. data/JSON-Schema-Test-Suite/tests/draft2019-08/default.json +0 -49
  32. data/JSON-Schema-Test-Suite/tests/draft2019-08/defs.json +0 -24
  33. data/JSON-Schema-Test-Suite/tests/draft2019-08/dependencies.json +0 -268
  34. data/JSON-Schema-Test-Suite/tests/draft2019-08/enum.json +0 -179
  35. data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMaximum.json +0 -30
  36. data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMinimum.json +0 -30
  37. data/JSON-Schema-Test-Suite/tests/draft2019-08/if-then-else.json +0 -188
  38. data/JSON-Schema-Test-Suite/tests/draft2019-08/items.json +0 -250
  39. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxItems.json +0 -28
  40. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxLength.json +0 -33
  41. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxProperties.json +0 -38
  42. data/JSON-Schema-Test-Suite/tests/draft2019-08/maximum.json +0 -28
  43. data/JSON-Schema-Test-Suite/tests/draft2019-08/minItems.json +0 -28
  44. data/JSON-Schema-Test-Suite/tests/draft2019-08/minLength.json +0 -33
  45. data/JSON-Schema-Test-Suite/tests/draft2019-08/minProperties.json +0 -38
  46. data/JSON-Schema-Test-Suite/tests/draft2019-08/minimum.json +0 -59
  47. data/JSON-Schema-Test-Suite/tests/draft2019-08/multipleOf.json +0 -60
  48. data/JSON-Schema-Test-Suite/tests/draft2019-08/not.json +0 -117
  49. data/JSON-Schema-Test-Suite/tests/draft2019-08/oneOf.json +0 -206
  50. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/bignum.json +0 -105
  51. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/content.json +0 -77
  52. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/ecmascript-regex.json +0 -13
  53. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date-time.json +0 -53
  54. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date.json +0 -23
  55. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/email.json +0 -18
  56. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/hostname.json +0 -33
  57. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-email.json +0 -18
  58. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-hostname.json +0 -28
  59. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv4.json +0 -33
  60. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv6.json +0 -28
  61. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri-reference.json +0 -43
  62. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri.json +0 -53
  63. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/json-pointer.json +0 -168
  64. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/regex.json +0 -18
  65. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/relative-json-pointer.json +0 -33
  66. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/time.json +0 -23
  67. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-reference.json +0 -43
  68. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-template.json +0 -28
  69. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri.json +0 -103
  70. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/zeroTerminatedFloats.json +0 -15
  71. data/JSON-Schema-Test-Suite/tests/draft2019-08/pattern.json +0 -34
  72. data/JSON-Schema-Test-Suite/tests/draft2019-08/patternProperties.json +0 -151
  73. data/JSON-Schema-Test-Suite/tests/draft2019-08/properties.json +0 -167
  74. data/JSON-Schema-Test-Suite/tests/draft2019-08/propertyNames.json +0 -78
  75. data/JSON-Schema-Test-Suite/tests/draft2019-08/ref.json +0 -443
  76. data/JSON-Schema-Test-Suite/tests/draft2019-08/refRemote.json +0 -167
  77. data/JSON-Schema-Test-Suite/tests/draft2019-08/required.json +0 -105
  78. data/JSON-Schema-Test-Suite/tests/draft2019-08/type.json +0 -464
  79. data/JSON-Schema-Test-Suite/tests/draft2019-08/uniqueItems.json +0 -89
  80. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +0 -82
  81. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +0 -133
  82. data/JSON-Schema-Test-Suite/tests/draft3/default.json +0 -49
  83. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +0 -118
  84. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +0 -80
  85. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +0 -60
  86. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +0 -71
  87. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +0 -94
  88. data/JSON-Schema-Test-Suite/tests/draft3/items.json +0 -46
  89. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +0 -28
  90. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +0 -33
  91. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +0 -42
  92. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +0 -28
  93. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +0 -33
  94. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +0 -73
  95. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +0 -107
  96. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +0 -227
  97. data/JSON-Schema-Test-Suite/tests/draft3/optional/jsregex.json +0 -18
  98. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  99. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +0 -34
  100. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +0 -115
  101. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +0 -97
  102. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +0 -192
  103. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +0 -74
  104. data/JSON-Schema-Test-Suite/tests/draft3/required.json +0 -53
  105. data/JSON-Schema-Test-Suite/tests/draft3/type.json +0 -489
  106. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +0 -79
  107. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +0 -87
  108. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +0 -133
  109. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +0 -185
  110. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +0 -156
  111. data/JSON-Schema-Test-Suite/tests/draft4/default.json +0 -49
  112. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +0 -32
  113. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +0 -194
  114. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +0 -179
  115. data/JSON-Schema-Test-Suite/tests/draft4/items.json +0 -195
  116. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +0 -28
  117. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +0 -33
  118. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +0 -38
  119. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +0 -73
  120. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +0 -28
  121. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +0 -33
  122. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +0 -38
  123. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +0 -104
  124. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +0 -60
  125. data/JSON-Schema-Test-Suite/tests/draft4/not.json +0 -96
  126. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +0 -162
  127. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +0 -107
  128. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +0 -13
  129. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +0 -253
  130. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  131. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +0 -34
  132. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +0 -120
  133. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +0 -136
  134. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +0 -411
  135. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +0 -171
  136. data/JSON-Schema-Test-Suite/tests/draft4/required.json +0 -89
  137. data/JSON-Schema-Test-Suite/tests/draft4/type.json +0 -464
  138. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +0 -89
  139. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +0 -87
  140. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +0 -133
  141. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +0 -218
  142. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +0 -189
  143. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +0 -104
  144. data/JSON-Schema-Test-Suite/tests/draft6/const.json +0 -170
  145. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +0 -100
  146. data/JSON-Schema-Test-Suite/tests/draft6/default.json +0 -49
  147. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +0 -32
  148. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +0 -268
  149. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +0 -179
  150. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +0 -30
  151. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +0 -30
  152. data/JSON-Schema-Test-Suite/tests/draft6/items.json +0 -250
  153. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +0 -28
  154. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +0 -33
  155. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +0 -38
  156. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +0 -28
  157. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +0 -28
  158. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +0 -33
  159. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +0 -38
  160. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +0 -59
  161. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +0 -60
  162. data/JSON-Schema-Test-Suite/tests/draft6/not.json +0 -117
  163. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +0 -206
  164. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +0 -105
  165. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +0 -13
  166. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +0 -491
  167. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +0 -15
  168. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +0 -34
  169. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +0 -151
  170. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +0 -167
  171. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +0 -78
  172. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +0 -443
  173. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +0 -171
  174. data/JSON-Schema-Test-Suite/tests/draft6/required.json +0 -105
  175. data/JSON-Schema-Test-Suite/tests/draft6/type.json +0 -464
  176. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +0 -89
  177. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +0 -87
  178. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +0 -133
  179. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +0 -218
  180. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +0 -189
  181. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +0 -104
  182. data/JSON-Schema-Test-Suite/tests/draft7/const.json +0 -170
  183. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +0 -100
  184. data/JSON-Schema-Test-Suite/tests/draft7/default.json +0 -49
  185. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +0 -32
  186. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +0 -268
  187. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +0 -179
  188. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +0 -30
  189. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +0 -30
  190. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +0 -188
  191. data/JSON-Schema-Test-Suite/tests/draft7/items.json +0 -250
  192. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +0 -28
  193. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +0 -33
  194. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +0 -38
  195. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +0 -28
  196. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +0 -28
  197. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +0 -33
  198. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +0 -38
  199. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +0 -59
  200. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +0 -60
  201. data/JSON-Schema-Test-Suite/tests/draft7/not.json +0 -117
  202. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +0 -206
  203. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +0 -105
  204. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +0 -77
  205. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +0 -13
  206. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +0 -53
  207. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +0 -23
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +0 -18
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +0 -33
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +0 -18
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +0 -28
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +0 -33
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +0 -28
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +0 -43
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +0 -53
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +0 -168
  217. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +0 -18
  218. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +0 -33
  219. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +0 -23
  220. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +0 -43
  221. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +0 -28
  222. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +0 -103
  223. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +0 -15
  224. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +0 -34
  225. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +0 -151
  226. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +0 -167
  227. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +0 -78
  228. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +0 -443
  229. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +0 -171
  230. data/JSON-Schema-Test-Suite/tests/draft7/required.json +0 -105
  231. data/JSON-Schema-Test-Suite/tests/draft7/type.json +0 -464
  232. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +0 -89
  233. data/JSON-Schema-Test-Suite/tox.ini +0 -8
@@ -1,30 +0,0 @@
1
- [
2
- {
3
- "description": "exclusiveMaximum validation",
4
- "schema": {
5
- "exclusiveMaximum": 3.0
6
- },
7
- "tests": [
8
- {
9
- "description": "below the exclusiveMaximum is valid",
10
- "data": 2.2,
11
- "valid": true
12
- },
13
- {
14
- "description": "boundary point is invalid",
15
- "data": 3.0,
16
- "valid": false
17
- },
18
- {
19
- "description": "above the exclusiveMaximum is invalid",
20
- "data": 3.5,
21
- "valid": false
22
- },
23
- {
24
- "description": "ignores non-numbers",
25
- "data": "x",
26
- "valid": true
27
- }
28
- ]
29
- }
30
- ]
@@ -1,30 +0,0 @@
1
- [
2
- {
3
- "description": "exclusiveMinimum validation",
4
- "schema": {
5
- "exclusiveMinimum": 1.1
6
- },
7
- "tests": [
8
- {
9
- "description": "above the exclusiveMinimum is valid",
10
- "data": 1.2,
11
- "valid": true
12
- },
13
- {
14
- "description": "boundary point is invalid",
15
- "data": 1.1,
16
- "valid": false
17
- },
18
- {
19
- "description": "below the exclusiveMinimum is invalid",
20
- "data": 0.6,
21
- "valid": false
22
- },
23
- {
24
- "description": "ignores non-numbers",
25
- "data": "x",
26
- "valid": true
27
- }
28
- ]
29
- }
30
- ]
@@ -1,188 +0,0 @@
1
- [
2
- {
3
- "description": "ignore if without then or else",
4
- "schema": {
5
- "if": {
6
- "const": 0
7
- }
8
- },
9
- "tests": [
10
- {
11
- "description": "valid when valid against lone if",
12
- "data": 0,
13
- "valid": true
14
- },
15
- {
16
- "description": "valid when invalid against lone if",
17
- "data": "hello",
18
- "valid": true
19
- }
20
- ]
21
- },
22
- {
23
- "description": "ignore then without if",
24
- "schema": {
25
- "then": {
26
- "const": 0
27
- }
28
- },
29
- "tests": [
30
- {
31
- "description": "valid when valid against lone then",
32
- "data": 0,
33
- "valid": true
34
- },
35
- {
36
- "description": "valid when invalid against lone then",
37
- "data": "hello",
38
- "valid": true
39
- }
40
- ]
41
- },
42
- {
43
- "description": "ignore else without if",
44
- "schema": {
45
- "else": {
46
- "const": 0
47
- }
48
- },
49
- "tests": [
50
- {
51
- "description": "valid when valid against lone else",
52
- "data": 0,
53
- "valid": true
54
- },
55
- {
56
- "description": "valid when invalid against lone else",
57
- "data": "hello",
58
- "valid": true
59
- }
60
- ]
61
- },
62
- {
63
- "description": "if and then without else",
64
- "schema": {
65
- "if": {
66
- "exclusiveMaximum": 0
67
- },
68
- "then": {
69
- "minimum": -10
70
- }
71
- },
72
- "tests": [
73
- {
74
- "description": "valid through then",
75
- "data": -1,
76
- "valid": true
77
- },
78
- {
79
- "description": "invalid through then",
80
- "data": -100,
81
- "valid": false
82
- },
83
- {
84
- "description": "valid when if test fails",
85
- "data": 3,
86
- "valid": true
87
- }
88
- ]
89
- },
90
- {
91
- "description": "if and else without then",
92
- "schema": {
93
- "if": {
94
- "exclusiveMaximum": 0
95
- },
96
- "else": {
97
- "multipleOf": 2
98
- }
99
- },
100
- "tests": [
101
- {
102
- "description": "valid when if test passes",
103
- "data": -1,
104
- "valid": true
105
- },
106
- {
107
- "description": "valid through else",
108
- "data": 4,
109
- "valid": true
110
- },
111
- {
112
- "description": "invalid through else",
113
- "data": 3,
114
- "valid": false
115
- }
116
- ]
117
- },
118
- {
119
- "description": "validate against correct branch, then vs else",
120
- "schema": {
121
- "if": {
122
- "exclusiveMaximum": 0
123
- },
124
- "then": {
125
- "minimum": -10
126
- },
127
- "else": {
128
- "multipleOf": 2
129
- }
130
- },
131
- "tests": [
132
- {
133
- "description": "valid through then",
134
- "data": -1,
135
- "valid": true
136
- },
137
- {
138
- "description": "invalid through then",
139
- "data": -100,
140
- "valid": false
141
- },
142
- {
143
- "description": "valid through else",
144
- "data": 4,
145
- "valid": true
146
- },
147
- {
148
- "description": "invalid through else",
149
- "data": 3,
150
- "valid": false
151
- }
152
- ]
153
- },
154
- {
155
- "description": "non-interference across combined schemas",
156
- "schema": {
157
- "allOf": [
158
- {
159
- "if": {
160
- "exclusiveMaximum": 0
161
- }
162
- },
163
- {
164
- "then": {
165
- "minimum": -10
166
- }
167
- },
168
- {
169
- "else": {
170
- "multipleOf": 2
171
- }
172
- }
173
- ]
174
- },
175
- "tests": [
176
- {
177
- "description": "valid, but would have been invalid through then",
178
- "data": -100,
179
- "valid": true
180
- },
181
- {
182
- "description": "valid, but would have been invalid through else",
183
- "data": 3,
184
- "valid": true
185
- }
186
- ]
187
- }
188
- ]
@@ -1,250 +0,0 @@
1
- [
2
- {
3
- "description": "a schema given for items",
4
- "schema": {
5
- "items": {"type": "integer"}
6
- },
7
- "tests": [
8
- {
9
- "description": "valid items",
10
- "data": [ 1, 2, 3 ],
11
- "valid": true
12
- },
13
- {
14
- "description": "wrong type of items",
15
- "data": [1, "x"],
16
- "valid": false
17
- },
18
- {
19
- "description": "ignores non-arrays",
20
- "data": {"foo" : "bar"},
21
- "valid": true
22
- },
23
- {
24
- "description": "JavaScript pseudo-array is valid",
25
- "data": {
26
- "0": "invalid",
27
- "length": 1
28
- },
29
- "valid": true
30
- }
31
- ]
32
- },
33
- {
34
- "description": "an array of schemas for items",
35
- "schema": {
36
- "items": [
37
- {"type": "integer"},
38
- {"type": "string"}
39
- ]
40
- },
41
- "tests": [
42
- {
43
- "description": "correct types",
44
- "data": [ 1, "foo" ],
45
- "valid": true
46
- },
47
- {
48
- "description": "wrong types",
49
- "data": [ "foo", 1 ],
50
- "valid": false
51
- },
52
- {
53
- "description": "incomplete array of items",
54
- "data": [ 1 ],
55
- "valid": true
56
- },
57
- {
58
- "description": "array with additional items",
59
- "data": [ 1, "foo", true ],
60
- "valid": true
61
- },
62
- {
63
- "description": "empty array",
64
- "data": [ ],
65
- "valid": true
66
- },
67
- {
68
- "description": "JavaScript pseudo-array is valid",
69
- "data": {
70
- "0": "invalid",
71
- "1": "valid",
72
- "length": 2
73
- },
74
- "valid": true
75
- }
76
- ]
77
- },
78
- {
79
- "description": "items with boolean schema (true)",
80
- "schema": {"items": true},
81
- "tests": [
82
- {
83
- "description": "any array is valid",
84
- "data": [ 1, "foo", true ],
85
- "valid": true
86
- },
87
- {
88
- "description": "empty array is valid",
89
- "data": [],
90
- "valid": true
91
- }
92
- ]
93
- },
94
- {
95
- "description": "items with boolean schema (false)",
96
- "schema": {"items": false},
97
- "tests": [
98
- {
99
- "description": "any non-empty array is invalid",
100
- "data": [ 1, "foo", true ],
101
- "valid": false
102
- },
103
- {
104
- "description": "empty array is valid",
105
- "data": [],
106
- "valid": true
107
- }
108
- ]
109
- },
110
- {
111
- "description": "items with boolean schemas",
112
- "schema": {
113
- "items": [true, false]
114
- },
115
- "tests": [
116
- {
117
- "description": "array with one item is valid",
118
- "data": [ 1 ],
119
- "valid": true
120
- },
121
- {
122
- "description": "array with two items is invalid",
123
- "data": [ 1, "foo" ],
124
- "valid": false
125
- },
126
- {
127
- "description": "empty array is valid",
128
- "data": [],
129
- "valid": true
130
- }
131
- ]
132
- },
133
- {
134
- "description": "items and subitems",
135
- "schema": {
136
- "$defs": {
137
- "item": {
138
- "type": "array",
139
- "additionalItems": false,
140
- "items": [
141
- { "$ref": "#/$defs/sub-item" },
142
- { "$ref": "#/$defs/sub-item" }
143
- ]
144
- },
145
- "sub-item": {
146
- "type": "object",
147
- "required": ["foo"]
148
- }
149
- },
150
- "type": "array",
151
- "additionalItems": false,
152
- "items": [
153
- { "$ref": "#/$defs/item" },
154
- { "$ref": "#/$defs/item" },
155
- { "$ref": "#/$defs/item" }
156
- ]
157
- },
158
- "tests": [
159
- {
160
- "description": "valid items",
161
- "data": [
162
- [ {"foo": null}, {"foo": null} ],
163
- [ {"foo": null}, {"foo": null} ],
164
- [ {"foo": null}, {"foo": null} ]
165
- ],
166
- "valid": true
167
- },
168
- {
169
- "description": "too many items",
170
- "data": [
171
- [ {"foo": null}, {"foo": null} ],
172
- [ {"foo": null}, {"foo": null} ],
173
- [ {"foo": null}, {"foo": null} ],
174
- [ {"foo": null}, {"foo": null} ]
175
- ],
176
- "valid": false
177
- },
178
- {
179
- "description": "too many sub-items",
180
- "data": [
181
- [ {"foo": null}, {"foo": null}, {"foo": null} ],
182
- [ {"foo": null}, {"foo": null} ],
183
- [ {"foo": null}, {"foo": null} ]
184
- ],
185
- "valid": false
186
- },
187
- {
188
- "description": "wrong item",
189
- "data": [
190
- {"foo": null},
191
- [ {"foo": null}, {"foo": null} ],
192
- [ {"foo": null}, {"foo": null} ]
193
- ],
194
- "valid": false
195
- },
196
- {
197
- "description": "wrong sub-item",
198
- "data": [
199
- [ {}, {"foo": null} ],
200
- [ {"foo": null}, {"foo": null} ],
201
- [ {"foo": null}, {"foo": null} ]
202
- ],
203
- "valid": false
204
- },
205
- {
206
- "description": "fewer items is valid",
207
- "data": [
208
- [ {"foo": null} ],
209
- [ {"foo": null} ]
210
- ],
211
- "valid": true
212
- }
213
- ]
214
- },
215
- {
216
- "description": "nested items",
217
- "schema": {
218
- "type": "array",
219
- "items": {
220
- "type": "array",
221
- "items": {
222
- "type": "array",
223
- "items": {
224
- "type": "array",
225
- "items": {
226
- "type": "number"
227
- }
228
- }
229
- }
230
- }
231
- },
232
- "tests": [
233
- {
234
- "description": "valid nested array",
235
- "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]],
236
- "valid": true
237
- },
238
- {
239
- "description": "nested array with invalid type",
240
- "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]],
241
- "valid": false
242
- },
243
- {
244
- "description": "not deep enough",
245
- "data": [[[1], [2],[3]], [[4], [5], [6]]],
246
- "valid": false
247
- }
248
- ]
249
- }
250
- ]