json_schemer 0.2.7 → 0.2.12

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.
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
- ]