json_schemer 0.2.6 → 0.2.7

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 (232) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +22 -0
  3. data/Gemfile.lock +1 -1
  4. data/JSON-Schema-Test-Suite/.gitignore +1 -0
  5. data/JSON-Schema-Test-Suite/.travis.yml +8 -0
  6. data/JSON-Schema-Test-Suite/LICENSE +19 -0
  7. data/JSON-Schema-Test-Suite/README.md +181 -0
  8. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +295 -0
  9. data/JSON-Schema-Test-Suite/index.js +45 -0
  10. data/JSON-Schema-Test-Suite/package.json +28 -0
  11. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +3 -0
  12. data/JSON-Schema-Test-Suite/remotes/integer.json +3 -0
  13. data/JSON-Schema-Test-Suite/remotes/name-defs.json +11 -0
  14. data/JSON-Schema-Test-Suite/remotes/name.json +11 -0
  15. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +8 -0
  16. data/JSON-Schema-Test-Suite/test-schema.json +59 -0
  17. data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalItems.json +87 -0
  18. data/JSON-Schema-Test-Suite/tests/draft2019-08/additionalProperties.json +133 -0
  19. data/JSON-Schema-Test-Suite/tests/draft2019-08/allOf.json +218 -0
  20. data/JSON-Schema-Test-Suite/tests/draft2019-08/anyOf.json +189 -0
  21. data/JSON-Schema-Test-Suite/tests/draft2019-08/boolean_schema.json +104 -0
  22. data/JSON-Schema-Test-Suite/tests/draft2019-08/const.json +170 -0
  23. data/JSON-Schema-Test-Suite/tests/draft2019-08/contains.json +95 -0
  24. data/JSON-Schema-Test-Suite/tests/draft2019-08/default.json +49 -0
  25. data/JSON-Schema-Test-Suite/tests/draft2019-08/defs.json +24 -0
  26. data/JSON-Schema-Test-Suite/tests/draft2019-08/dependencies.json +268 -0
  27. data/JSON-Schema-Test-Suite/tests/draft2019-08/enum.json +179 -0
  28. data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMaximum.json +30 -0
  29. data/JSON-Schema-Test-Suite/tests/draft2019-08/exclusiveMinimum.json +30 -0
  30. data/JSON-Schema-Test-Suite/tests/draft2019-08/if-then-else.json +188 -0
  31. data/JSON-Schema-Test-Suite/tests/draft2019-08/items.json +250 -0
  32. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxItems.json +28 -0
  33. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxLength.json +33 -0
  34. data/JSON-Schema-Test-Suite/tests/draft2019-08/maxProperties.json +38 -0
  35. data/JSON-Schema-Test-Suite/tests/draft2019-08/maximum.json +28 -0
  36. data/JSON-Schema-Test-Suite/tests/draft2019-08/minItems.json +28 -0
  37. data/JSON-Schema-Test-Suite/tests/draft2019-08/minLength.json +33 -0
  38. data/JSON-Schema-Test-Suite/tests/draft2019-08/minProperties.json +38 -0
  39. data/JSON-Schema-Test-Suite/tests/draft2019-08/minimum.json +59 -0
  40. data/JSON-Schema-Test-Suite/tests/draft2019-08/multipleOf.json +60 -0
  41. data/JSON-Schema-Test-Suite/tests/draft2019-08/not.json +117 -0
  42. data/JSON-Schema-Test-Suite/tests/draft2019-08/oneOf.json +206 -0
  43. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/bignum.json +105 -0
  44. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/content.json +77 -0
  45. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/ecmascript-regex.json +13 -0
  46. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date-time.json +53 -0
  47. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/date.json +23 -0
  48. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/email.json +18 -0
  49. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/hostname.json +33 -0
  50. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-email.json +18 -0
  51. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/idn-hostname.json +28 -0
  52. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv4.json +33 -0
  53. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/ipv6.json +28 -0
  54. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri-reference.json +43 -0
  55. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/iri.json +53 -0
  56. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/json-pointer.json +168 -0
  57. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/regex.json +18 -0
  58. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/relative-json-pointer.json +33 -0
  59. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/time.json +23 -0
  60. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-reference.json +43 -0
  61. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri-template.json +28 -0
  62. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/format/uri.json +103 -0
  63. data/JSON-Schema-Test-Suite/tests/draft2019-08/optional/zeroTerminatedFloats.json +15 -0
  64. data/JSON-Schema-Test-Suite/tests/draft2019-08/pattern.json +34 -0
  65. data/JSON-Schema-Test-Suite/tests/draft2019-08/patternProperties.json +151 -0
  66. data/JSON-Schema-Test-Suite/tests/draft2019-08/properties.json +167 -0
  67. data/JSON-Schema-Test-Suite/tests/draft2019-08/propertyNames.json +78 -0
  68. data/JSON-Schema-Test-Suite/tests/draft2019-08/ref.json +443 -0
  69. data/JSON-Schema-Test-Suite/tests/draft2019-08/refRemote.json +167 -0
  70. data/JSON-Schema-Test-Suite/tests/draft2019-08/required.json +105 -0
  71. data/JSON-Schema-Test-Suite/tests/draft2019-08/type.json +464 -0
  72. data/JSON-Schema-Test-Suite/tests/draft2019-08/uniqueItems.json +89 -0
  73. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +82 -0
  74. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +133 -0
  75. data/JSON-Schema-Test-Suite/tests/draft3/default.json +49 -0
  76. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +118 -0
  77. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +80 -0
  78. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +60 -0
  79. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +71 -0
  80. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +94 -0
  81. data/JSON-Schema-Test-Suite/tests/draft3/items.json +46 -0
  82. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +28 -0
  83. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +33 -0
  84. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +42 -0
  85. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +28 -0
  86. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +33 -0
  87. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +73 -0
  88. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +107 -0
  89. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +227 -0
  90. data/JSON-Schema-Test-Suite/tests/draft3/optional/jsregex.json +18 -0
  91. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +15 -0
  92. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +34 -0
  93. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +115 -0
  94. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +97 -0
  95. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +192 -0
  96. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +74 -0
  97. data/JSON-Schema-Test-Suite/tests/draft3/required.json +53 -0
  98. data/JSON-Schema-Test-Suite/tests/draft3/type.json +489 -0
  99. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +79 -0
  100. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +87 -0
  101. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +133 -0
  102. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +185 -0
  103. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +156 -0
  104. data/JSON-Schema-Test-Suite/tests/draft4/default.json +49 -0
  105. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +32 -0
  106. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +194 -0
  107. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +179 -0
  108. data/JSON-Schema-Test-Suite/tests/draft4/items.json +195 -0
  109. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +28 -0
  110. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +33 -0
  111. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +38 -0
  112. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +73 -0
  113. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +28 -0
  114. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +33 -0
  115. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +38 -0
  116. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +104 -0
  117. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +60 -0
  118. data/JSON-Schema-Test-Suite/tests/draft4/not.json +96 -0
  119. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +162 -0
  120. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +107 -0
  121. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +13 -0
  122. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +253 -0
  123. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +15 -0
  124. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +34 -0
  125. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +120 -0
  126. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +136 -0
  127. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +411 -0
  128. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +171 -0
  129. data/JSON-Schema-Test-Suite/tests/draft4/required.json +89 -0
  130. data/JSON-Schema-Test-Suite/tests/draft4/type.json +464 -0
  131. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +89 -0
  132. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +87 -0
  133. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +133 -0
  134. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +218 -0
  135. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +189 -0
  136. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +104 -0
  137. data/JSON-Schema-Test-Suite/tests/draft6/const.json +170 -0
  138. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +100 -0
  139. data/JSON-Schema-Test-Suite/tests/draft6/default.json +49 -0
  140. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +32 -0
  141. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +268 -0
  142. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +179 -0
  143. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +30 -0
  144. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +30 -0
  145. data/JSON-Schema-Test-Suite/tests/draft6/items.json +250 -0
  146. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +28 -0
  147. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +33 -0
  148. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +38 -0
  149. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +28 -0
  150. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +28 -0
  151. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +33 -0
  152. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +38 -0
  153. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +59 -0
  154. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +60 -0
  155. data/JSON-Schema-Test-Suite/tests/draft6/not.json +117 -0
  156. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +206 -0
  157. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +105 -0
  158. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +13 -0
  159. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +491 -0
  160. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +15 -0
  161. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +34 -0
  162. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +151 -0
  163. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +167 -0
  164. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +78 -0
  165. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +443 -0
  166. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +171 -0
  167. data/JSON-Schema-Test-Suite/tests/draft6/required.json +105 -0
  168. data/JSON-Schema-Test-Suite/tests/draft6/type.json +464 -0
  169. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +89 -0
  170. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +87 -0
  171. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +133 -0
  172. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +218 -0
  173. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +189 -0
  174. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +104 -0
  175. data/JSON-Schema-Test-Suite/tests/draft7/const.json +170 -0
  176. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +100 -0
  177. data/JSON-Schema-Test-Suite/tests/draft7/default.json +49 -0
  178. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +32 -0
  179. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +268 -0
  180. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +179 -0
  181. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +30 -0
  182. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +30 -0
  183. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +188 -0
  184. data/JSON-Schema-Test-Suite/tests/draft7/items.json +250 -0
  185. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +28 -0
  186. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +33 -0
  187. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +38 -0
  188. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +28 -0
  189. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +28 -0
  190. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +33 -0
  191. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +38 -0
  192. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +59 -0
  193. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +60 -0
  194. data/JSON-Schema-Test-Suite/tests/draft7/not.json +117 -0
  195. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +206 -0
  196. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +105 -0
  197. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +77 -0
  198. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +13 -0
  199. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +53 -0
  200. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +23 -0
  201. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +18 -0
  202. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +33 -0
  203. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +18 -0
  204. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +28 -0
  205. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +33 -0
  206. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +28 -0
  207. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +43 -0
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +53 -0
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +168 -0
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +18 -0
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +33 -0
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +23 -0
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +43 -0
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +28 -0
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +103 -0
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +15 -0
  217. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +34 -0
  218. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +151 -0
  219. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +167 -0
  220. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +78 -0
  221. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +443 -0
  222. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +171 -0
  223. data/JSON-Schema-Test-Suite/tests/draft7/required.json +105 -0
  224. data/JSON-Schema-Test-Suite/tests/draft7/type.json +464 -0
  225. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +89 -0
  226. data/JSON-Schema-Test-Suite/tox.ini +8 -0
  227. data/README.md +1 -1
  228. data/lib/json_schemer/schema/base.rb +2 -2
  229. data/lib/json_schemer/version.rb +1 -1
  230. metadata +226 -4
  231. data/.gitmodules +0 -4
  232. data/.travis.yml +0 -10
@@ -0,0 +1,28 @@
1
+ [
2
+ {
3
+ "description": "minItems validation",
4
+ "schema": {"minItems": 1},
5
+ "tests": [
6
+ {
7
+ "description": "longer is valid",
8
+ "data": [1, 2],
9
+ "valid": true
10
+ },
11
+ {
12
+ "description": "exact length is valid",
13
+ "data": [1],
14
+ "valid": true
15
+ },
16
+ {
17
+ "description": "too short is invalid",
18
+ "data": [],
19
+ "valid": false
20
+ },
21
+ {
22
+ "description": "ignores non-arrays",
23
+ "data": "",
24
+ "valid": true
25
+ }
26
+ ]
27
+ }
28
+ ]
@@ -0,0 +1,33 @@
1
+ [
2
+ {
3
+ "description": "minLength validation",
4
+ "schema": {"minLength": 2},
5
+ "tests": [
6
+ {
7
+ "description": "longer is valid",
8
+ "data": "foo",
9
+ "valid": true
10
+ },
11
+ {
12
+ "description": "exact length is valid",
13
+ "data": "fo",
14
+ "valid": true
15
+ },
16
+ {
17
+ "description": "too short is invalid",
18
+ "data": "f",
19
+ "valid": false
20
+ },
21
+ {
22
+ "description": "ignores non-strings",
23
+ "data": 1,
24
+ "valid": true
25
+ },
26
+ {
27
+ "description": "one supplementary Unicode code point is not long enough",
28
+ "data": "\uD83D\uDCA9",
29
+ "valid": false
30
+ }
31
+ ]
32
+ }
33
+ ]
@@ -0,0 +1,73 @@
1
+ [
2
+ {
3
+ "description": "minimum validation",
4
+ "schema": {"minimum": 1.1},
5
+ "tests": [
6
+ {
7
+ "description": "above the minimum is valid",
8
+ "data": 2.6,
9
+ "valid": true
10
+ },
11
+ {
12
+ "description": "below the minimum is invalid",
13
+ "data": 0.6,
14
+ "valid": false
15
+ },
16
+ {
17
+ "description": "ignores non-numbers",
18
+ "data": "x",
19
+ "valid": true
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ "description": "exclusiveMinimum validation",
25
+ "schema": {
26
+ "minimum": 1.1,
27
+ "exclusiveMinimum": true
28
+ },
29
+ "tests": [
30
+ {
31
+ "description": "above the minimum is still valid",
32
+ "data": 1.2,
33
+ "valid": true
34
+ },
35
+ {
36
+ "description": "boundary point is invalid",
37
+ "data": 1.1,
38
+ "valid": false
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "description": "minimum validation with signed integer",
44
+ "schema": {"minimum": -2},
45
+ "tests": [
46
+ {
47
+ "description": "negative above the minimum is valid",
48
+ "data": -1,
49
+ "valid": true
50
+ },
51
+ {
52
+ "description": "positive above the minimum is valid",
53
+ "data": 0,
54
+ "valid": true
55
+ },
56
+ {
57
+ "description": "boundary point is valid",
58
+ "data": -2,
59
+ "valid": true
60
+ },
61
+ {
62
+ "description": "below the minimum is invalid",
63
+ "data": -3,
64
+ "valid": false
65
+ },
66
+ {
67
+ "description": "ignores non-numbers",
68
+ "data": "x",
69
+ "valid": true
70
+ }
71
+ ]
72
+ }
73
+ ]
@@ -0,0 +1,107 @@
1
+ [
2
+ {
3
+ "description": "integer",
4
+ "schema": {"type": "integer"},
5
+ "tests": [
6
+ {
7
+ "description": "a bignum is an integer",
8
+ "data": 12345678910111213141516171819202122232425262728293031,
9
+ "valid": true
10
+ }
11
+ ]
12
+ },
13
+ {
14
+ "description": "number",
15
+ "schema": {"type": "number"},
16
+ "tests": [
17
+ {
18
+ "description": "a bignum is a number",
19
+ "data": 98249283749234923498293171823948729348710298301928331,
20
+ "valid": true
21
+ }
22
+ ]
23
+ },
24
+ {
25
+ "description": "integer",
26
+ "schema": {"type": "integer"},
27
+ "tests": [
28
+ {
29
+ "description": "a negative bignum is an integer",
30
+ "data": -12345678910111213141516171819202122232425262728293031,
31
+ "valid": true
32
+ }
33
+ ]
34
+ },
35
+ {
36
+ "description": "number",
37
+ "schema": {"type": "number"},
38
+ "tests": [
39
+ {
40
+ "description": "a negative bignum is a number",
41
+ "data": -98249283749234923498293171823948729348710298301928331,
42
+ "valid": true
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "description": "string",
48
+ "schema": {"type": "string"},
49
+ "tests": [
50
+ {
51
+ "description": "a bignum is not a string",
52
+ "data": 98249283749234923498293171823948729348710298301928331,
53
+ "valid": false
54
+ }
55
+ ]
56
+ },
57
+ {
58
+ "description": "integer comparison",
59
+ "schema": {"maximum": 18446744073709551615},
60
+ "tests": [
61
+ {
62
+ "description": "comparison works for high numbers",
63
+ "data": 18446744073709551600,
64
+ "valid": true
65
+ }
66
+ ]
67
+ },
68
+ {
69
+ "description": "float comparison with high precision",
70
+ "schema": {
71
+ "maximum": 972783798187987123879878123.18878137,
72
+ "exclusiveMaximum": true
73
+ },
74
+ "tests": [
75
+ {
76
+ "description": "comparison works for high numbers",
77
+ "data": 972783798187987123879878123.188781371,
78
+ "valid": false
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ "description": "integer comparison",
84
+ "schema": {"minimum": -18446744073709551615},
85
+ "tests": [
86
+ {
87
+ "description": "comparison works for very negative numbers",
88
+ "data": -18446744073709551600,
89
+ "valid": true
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "description": "float comparison with high precision on negative numbers",
95
+ "schema": {
96
+ "minimum": -972783798187987123879878123.18878137,
97
+ "exclusiveMinimum": true
98
+ },
99
+ "tests": [
100
+ {
101
+ "description": "comparison works for very negative numbers",
102
+ "data": -972783798187987123879878123.188781371,
103
+ "valid": false
104
+ }
105
+ ]
106
+ }
107
+ ]
@@ -0,0 +1,227 @@
1
+ [
2
+ {
3
+ "description": "validation of regular expressions",
4
+ "schema": {"format": "regex"},
5
+ "tests": [
6
+ {
7
+ "description": "a valid regular expression",
8
+ "data": "([abc])+\\s+$",
9
+ "valid": true
10
+ },
11
+ {
12
+ "description": "a regular expression with unclosed parens is invalid",
13
+ "data": "^(abc]",
14
+ "valid": false
15
+ }
16
+ ]
17
+ },
18
+ {
19
+ "description": "validation of date-time strings",
20
+ "schema": {"format": "date-time"},
21
+ "tests": [
22
+ {
23
+ "description": "a valid date-time string",
24
+ "data": "1963-06-19T08:30:06.283185Z",
25
+ "valid": true
26
+ },
27
+ {
28
+ "description": "an invalid date-time string",
29
+ "data": "06/19/1963 08:30:06 PST",
30
+ "valid": false
31
+ },
32
+ {
33
+ "description": "case-insensitive T and Z",
34
+ "data": "1963-06-19t08:30:06.283185z",
35
+ "valid": true
36
+ },
37
+ {
38
+ "description": "only RFC3339 not all of ISO 8601 are valid",
39
+ "data": "2013-350T01:01:01",
40
+ "valid": false
41
+ }
42
+ ]
43
+ },
44
+ {
45
+ "description": "validation of date strings",
46
+ "schema": {"format": "date"},
47
+ "tests": [
48
+ {
49
+ "description": "a valid date string",
50
+ "data": "1963-06-19",
51
+ "valid": true
52
+ },
53
+ {
54
+ "description": "an invalid date string",
55
+ "data": "06/19/1963",
56
+ "valid": false
57
+ }
58
+ ]
59
+ },
60
+ {
61
+ "description": "validation of time strings",
62
+ "schema": {"format": "time"},
63
+ "tests": [
64
+ {
65
+ "description": "a valid time string",
66
+ "data": "08:30:06",
67
+ "valid": true
68
+ },
69
+ {
70
+ "description": "an invalid time string",
71
+ "data": "8:30 AM",
72
+ "valid": false
73
+ }
74
+ ]
75
+ },
76
+ {
77
+ "description": "validation of URIs",
78
+ "schema": {"format": "uri"},
79
+ "tests": [
80
+ {
81
+ "description": "a valid URI",
82
+ "data": "http://foo.bar/?baz=qux#quux",
83
+ "valid": true
84
+ },
85
+ {
86
+ "description": "an invalid protocol-relative URI Reference",
87
+ "data": "//foo.bar/?baz=qux#quux",
88
+ "valid": false
89
+ },
90
+ {
91
+ "description": "an invalid URI",
92
+ "data": "\\\\WINDOWS\\fileshare",
93
+ "valid": false
94
+ },
95
+ {
96
+ "description": "an invalid URI though valid URI reference",
97
+ "data": "abc",
98
+ "valid": false
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ "description": "validation of e-mail addresses",
104
+ "schema": {"format": "email"},
105
+ "tests": [
106
+ {
107
+ "description": "a valid e-mail address",
108
+ "data": "joe.bloggs@example.com",
109
+ "valid": true
110
+ },
111
+ {
112
+ "description": "an invalid e-mail address",
113
+ "data": "2962",
114
+ "valid": false
115
+ }
116
+ ]
117
+ },
118
+ {
119
+ "description": "validation of IP addresses",
120
+ "schema": {"format": "ip-address"},
121
+ "tests": [
122
+ {
123
+ "description": "a valid IP address",
124
+ "data": "192.168.0.1",
125
+ "valid": true
126
+ },
127
+ {
128
+ "description": "an IP address with too many components",
129
+ "data": "127.0.0.0.1",
130
+ "valid": false
131
+ },
132
+ {
133
+ "description": "an IP address with out-of-range values",
134
+ "data": "256.256.256.256",
135
+ "valid": false
136
+ }
137
+ ]
138
+ },
139
+ {
140
+ "description": "validation of IPv6 addresses",
141
+ "schema": {"format": "ipv6"},
142
+ "tests": [
143
+ {
144
+ "description": "a valid IPv6 address",
145
+ "data": "::1",
146
+ "valid": true
147
+ },
148
+ {
149
+ "description": "an IPv6 address with out-of-range values",
150
+ "data": "12345::",
151
+ "valid": false
152
+ },
153
+ {
154
+ "description": "an IPv6 address with too many components",
155
+ "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1",
156
+ "valid": false
157
+ },
158
+ {
159
+ "description": "an IPv6 address containing illegal characters",
160
+ "data": "::laptop",
161
+ "valid": false
162
+ }
163
+ ]
164
+ },
165
+ {
166
+ "description": "validation of host names",
167
+ "schema": {"format": "host-name"},
168
+ "tests": [
169
+ {
170
+ "description": "a valid host name",
171
+ "data": "www.example.com",
172
+ "valid": true
173
+ },
174
+ {
175
+ "description": "a host name starting with an illegal character",
176
+ "data": "-a-host-name-that-starts-with--",
177
+ "valid": false
178
+ },
179
+ {
180
+ "description": "a host name containing illegal characters",
181
+ "data": "not_a_valid_host_name",
182
+ "valid": false
183
+ },
184
+ {
185
+ "description": "a host name with a component too long",
186
+ "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component",
187
+ "valid": false
188
+ }
189
+ ]
190
+ },
191
+ {
192
+ "description": "validation of CSS colors",
193
+ "schema": {"format": "color"},
194
+ "tests": [
195
+ {
196
+ "description": "a valid CSS color name",
197
+ "data": "fuchsia",
198
+ "valid": true
199
+ },
200
+ {
201
+ "description": "a valid six-digit CSS color code",
202
+ "data": "#CC8899",
203
+ "valid": true
204
+ },
205
+ {
206
+ "description": "a valid three-digit CSS color code",
207
+ "data": "#C89",
208
+ "valid": true
209
+ },
210
+ {
211
+ "description": "an invalid CSS color code",
212
+ "data": "#00332520",
213
+ "valid": false
214
+ },
215
+ {
216
+ "description": "an invalid CSS color name",
217
+ "data": "puce",
218
+ "valid": false
219
+ },
220
+ {
221
+ "description": "a CSS color name containing invalid characters",
222
+ "data": "light_grayish_red-violet",
223
+ "valid": false
224
+ }
225
+ ]
226
+ }
227
+ ]