json_schemer 0.2.9 → 0.2.14

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 (239) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3 -9
  3. data/Gemfile.lock +6 -6
  4. data/json_schemer.gemspec +2 -2
  5. data/lib/json_schemer.rb +2 -0
  6. data/lib/json_schemer/errors.rb +31 -0
  7. data/lib/json_schemer/schema/base.rb +13 -16
  8. data/lib/json_schemer/version.rb +1 -1
  9. metadata +5 -234
  10. data/JSON-Schema-Test-Suite/.gitignore +0 -1
  11. data/JSON-Schema-Test-Suite/.travis.yml +0 -8
  12. data/JSON-Schema-Test-Suite/LICENSE +0 -19
  13. data/JSON-Schema-Test-Suite/README.md +0 -181
  14. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +0 -298
  15. data/JSON-Schema-Test-Suite/index.js +0 -45
  16. data/JSON-Schema-Test-Suite/package.json +0 -28
  17. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +0 -3
  18. data/JSON-Schema-Test-Suite/remotes/integer.json +0 -3
  19. data/JSON-Schema-Test-Suite/remotes/name-defs.json +0 -15
  20. data/JSON-Schema-Test-Suite/remotes/name.json +0 -15
  21. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +0 -8
  22. data/JSON-Schema-Test-Suite/test-schema.json +0 -59
  23. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalItems.json +0 -87
  24. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalProperties.json +0 -133
  25. data/JSON-Schema-Test-Suite/tests/draft2019-09/allOf.json +0 -218
  26. data/JSON-Schema-Test-Suite/tests/draft2019-09/anchor.json +0 -87
  27. data/JSON-Schema-Test-Suite/tests/draft2019-09/anyOf.json +0 -189
  28. data/JSON-Schema-Test-Suite/tests/draft2019-09/boolean_schema.json +0 -104
  29. data/JSON-Schema-Test-Suite/tests/draft2019-09/const.json +0 -170
  30. data/JSON-Schema-Test-Suite/tests/draft2019-09/contains.json +0 -95
  31. data/JSON-Schema-Test-Suite/tests/draft2019-09/default.json +0 -49
  32. data/JSON-Schema-Test-Suite/tests/draft2019-09/defs.json +0 -24
  33. data/JSON-Schema-Test-Suite/tests/draft2019-09/dependencies.json +0 -268
  34. data/JSON-Schema-Test-Suite/tests/draft2019-09/enum.json +0 -179
  35. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMaximum.json +0 -30
  36. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMinimum.json +0 -30
  37. data/JSON-Schema-Test-Suite/tests/draft2019-09/format.json +0 -614
  38. data/JSON-Schema-Test-Suite/tests/draft2019-09/if-then-else.json +0 -188
  39. data/JSON-Schema-Test-Suite/tests/draft2019-09/items.json +0 -250
  40. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxItems.json +0 -28
  41. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxLength.json +0 -33
  42. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxProperties.json +0 -38
  43. data/JSON-Schema-Test-Suite/tests/draft2019-09/maximum.json +0 -28
  44. data/JSON-Schema-Test-Suite/tests/draft2019-09/minItems.json +0 -28
  45. data/JSON-Schema-Test-Suite/tests/draft2019-09/minLength.json +0 -33
  46. data/JSON-Schema-Test-Suite/tests/draft2019-09/minProperties.json +0 -38
  47. data/JSON-Schema-Test-Suite/tests/draft2019-09/minimum.json +0 -59
  48. data/JSON-Schema-Test-Suite/tests/draft2019-09/multipleOf.json +0 -60
  49. data/JSON-Schema-Test-Suite/tests/draft2019-09/not.json +0 -117
  50. data/JSON-Schema-Test-Suite/tests/draft2019-09/oneOf.json +0 -206
  51. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/bignum.json +0 -105
  52. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/content.json +0 -77
  53. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/ecmascript-regex.json +0 -213
  54. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date-time.json +0 -53
  55. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date.json +0 -23
  56. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/email.json +0 -18
  57. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/hostname.json +0 -33
  58. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-email.json +0 -18
  59. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-hostname.json +0 -28
  60. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv4.json +0 -33
  61. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv6.json +0 -28
  62. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri-reference.json +0 -43
  63. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri.json +0 -53
  64. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/json-pointer.json +0 -168
  65. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/regex.json +0 -18
  66. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/relative-json-pointer.json +0 -33
  67. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/time.json +0 -23
  68. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-reference.json +0 -43
  69. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-template.json +0 -28
  70. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri.json +0 -103
  71. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/zeroTerminatedFloats.json +0 -15
  72. data/JSON-Schema-Test-Suite/tests/draft2019-09/pattern.json +0 -34
  73. data/JSON-Schema-Test-Suite/tests/draft2019-09/patternProperties.json +0 -151
  74. data/JSON-Schema-Test-Suite/tests/draft2019-09/properties.json +0 -167
  75. data/JSON-Schema-Test-Suite/tests/draft2019-09/propertyNames.json +0 -78
  76. data/JSON-Schema-Test-Suite/tests/draft2019-09/ref.json +0 -359
  77. data/JSON-Schema-Test-Suite/tests/draft2019-09/refRemote.json +0 -167
  78. data/JSON-Schema-Test-Suite/tests/draft2019-09/required.json +0 -105
  79. data/JSON-Schema-Test-Suite/tests/draft2019-09/type.json +0 -464
  80. data/JSON-Schema-Test-Suite/tests/draft2019-09/uniqueItems.json +0 -173
  81. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +0 -82
  82. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +0 -133
  83. data/JSON-Schema-Test-Suite/tests/draft3/default.json +0 -49
  84. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +0 -118
  85. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +0 -80
  86. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +0 -60
  87. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +0 -71
  88. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +0 -94
  89. data/JSON-Schema-Test-Suite/tests/draft3/format.json +0 -362
  90. data/JSON-Schema-Test-Suite/tests/draft3/items.json +0 -46
  91. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +0 -28
  92. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +0 -33
  93. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +0 -42
  94. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +0 -28
  95. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +0 -33
  96. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +0 -73
  97. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +0 -107
  98. data/JSON-Schema-Test-Suite/tests/draft3/optional/ecmascript-regex.json +0 -18
  99. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +0 -227
  100. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  101. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +0 -34
  102. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +0 -115
  103. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +0 -97
  104. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +0 -192
  105. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +0 -74
  106. data/JSON-Schema-Test-Suite/tests/draft3/required.json +0 -53
  107. data/JSON-Schema-Test-Suite/tests/draft3/type.json +0 -489
  108. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +0 -163
  109. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +0 -87
  110. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +0 -133
  111. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +0 -185
  112. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +0 -156
  113. data/JSON-Schema-Test-Suite/tests/draft4/default.json +0 -49
  114. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +0 -32
  115. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +0 -194
  116. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +0 -179
  117. data/JSON-Schema-Test-Suite/tests/draft4/format.json +0 -218
  118. data/JSON-Schema-Test-Suite/tests/draft4/items.json +0 -195
  119. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +0 -28
  120. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +0 -33
  121. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +0 -38
  122. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +0 -73
  123. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +0 -28
  124. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +0 -33
  125. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +0 -38
  126. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +0 -104
  127. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +0 -60
  128. data/JSON-Schema-Test-Suite/tests/draft4/not.json +0 -96
  129. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +0 -162
  130. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +0 -107
  131. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +0 -213
  132. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +0 -253
  133. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  134. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +0 -34
  135. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +0 -120
  136. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +0 -136
  137. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +0 -411
  138. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +0 -171
  139. data/JSON-Schema-Test-Suite/tests/draft4/required.json +0 -89
  140. data/JSON-Schema-Test-Suite/tests/draft4/type.json +0 -464
  141. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +0 -173
  142. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +0 -87
  143. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +0 -133
  144. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +0 -218
  145. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +0 -189
  146. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +0 -104
  147. data/JSON-Schema-Test-Suite/tests/draft6/const.json +0 -170
  148. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +0 -100
  149. data/JSON-Schema-Test-Suite/tests/draft6/default.json +0 -49
  150. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +0 -32
  151. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +0 -268
  152. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +0 -179
  153. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +0 -30
  154. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +0 -30
  155. data/JSON-Schema-Test-Suite/tests/draft6/format.json +0 -326
  156. data/JSON-Schema-Test-Suite/tests/draft6/items.json +0 -250
  157. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +0 -28
  158. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +0 -33
  159. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +0 -38
  160. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +0 -28
  161. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +0 -28
  162. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +0 -33
  163. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +0 -38
  164. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +0 -59
  165. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +0 -60
  166. data/JSON-Schema-Test-Suite/tests/draft6/not.json +0 -117
  167. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +0 -206
  168. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +0 -105
  169. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +0 -213
  170. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +0 -491
  171. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +0 -15
  172. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +0 -34
  173. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +0 -151
  174. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +0 -167
  175. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +0 -78
  176. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +0 -443
  177. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +0 -171
  178. data/JSON-Schema-Test-Suite/tests/draft6/required.json +0 -105
  179. data/JSON-Schema-Test-Suite/tests/draft6/type.json +0 -464
  180. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +0 -173
  181. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +0 -87
  182. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +0 -133
  183. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +0 -218
  184. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +0 -189
  185. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +0 -104
  186. data/JSON-Schema-Test-Suite/tests/draft7/const.json +0 -170
  187. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +0 -100
  188. data/JSON-Schema-Test-Suite/tests/draft7/default.json +0 -49
  189. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +0 -32
  190. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +0 -268
  191. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +0 -179
  192. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +0 -30
  193. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +0 -30
  194. data/JSON-Schema-Test-Suite/tests/draft7/format.json +0 -614
  195. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +0 -188
  196. data/JSON-Schema-Test-Suite/tests/draft7/items.json +0 -250
  197. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +0 -28
  198. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +0 -33
  199. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +0 -38
  200. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +0 -28
  201. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +0 -28
  202. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +0 -33
  203. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +0 -38
  204. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +0 -59
  205. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +0 -60
  206. data/JSON-Schema-Test-Suite/tests/draft7/not.json +0 -117
  207. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +0 -206
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +0 -105
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +0 -77
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +0 -213
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +0 -53
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +0 -23
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +0 -18
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +0 -33
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +0 -18
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +0 -28
  217. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +0 -33
  218. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +0 -28
  219. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +0 -43
  220. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +0 -53
  221. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +0 -168
  222. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +0 -18
  223. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +0 -33
  224. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +0 -23
  225. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +0 -43
  226. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +0 -28
  227. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +0 -103
  228. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +0 -15
  229. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +0 -34
  230. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +0 -151
  231. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +0 -167
  232. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +0 -78
  233. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +0 -443
  234. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +0 -171
  235. data/JSON-Schema-Test-Suite/tests/draft7/required.json +0 -105
  236. data/JSON-Schema-Test-Suite/tests/draft7/type.json +0 -464
  237. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +0 -173
  238. data/JSON-Schema-Test-Suite/tests/latest +0 -1
  239. data/JSON-Schema-Test-Suite/tox.ini +0 -9
@@ -1,213 +0,0 @@
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
- ]
@@ -1,491 +0,0 @@
1
- [
2
- {
3
- "description": "validation of date-time strings",
4
- "schema": {"format": "date-time"},
5
- "tests": [
6
- {
7
- "description": "a valid date-time string",
8
- "data": "1963-06-19T08:30:06.283185Z",
9
- "valid": true
10
- },
11
- {
12
- "description": "a valid date-time string without second fraction",
13
- "data": "1963-06-19T08:30:06Z",
14
- "valid": true
15
- },
16
- {
17
- "description": "a valid date-time string with plus offset",
18
- "data": "1937-01-01T12:00:27.87+00:20",
19
- "valid": true
20
- },
21
- {
22
- "description": "a valid date-time string with minus offset",
23
- "data": "1990-12-31T15:59:50.123-08:00",
24
- "valid": true
25
- },
26
- {
27
- "description": "a invalid day in date-time string",
28
- "data": "1990-02-31T15:59:60.123-08:00",
29
- "valid": false
30
- },
31
- {
32
- "description": "an invalid offset in date-time string",
33
- "data": "1990-12-31T15:59:60-24:00",
34
- "valid": false
35
- },
36
- {
37
- "description": "an invalid closing Z after time-zone offset",
38
- "data": "1963-06-19T08:30:06.28123+01:00Z",
39
- "valid": false
40
- },
41
- {
42
- "description": "an invalid date-time string",
43
- "data": "06/19/1963 08:30:06 PST",
44
- "valid": false
45
- },
46
- {
47
- "description": "case-insensitive T and Z",
48
- "data": "1963-06-19t08:30:06.283185z",
49
- "valid": true
50
- },
51
- {
52
- "description": "only RFC3339 not all of ISO 8601 are valid",
53
- "data": "2013-350T01:01:01",
54
- "valid": false
55
- }
56
- ]
57
- },
58
- {
59
- "description": "validation of URIs",
60
- "schema": {"format": "uri"},
61
- "tests": [
62
- {
63
- "description": "a valid URL with anchor tag",
64
- "data": "http://foo.bar/?baz=qux#quux",
65
- "valid": true
66
- },
67
- {
68
- "description": "a valid URL with anchor tag and parantheses",
69
- "data": "http://foo.com/blah_(wikipedia)_blah#cite-1",
70
- "valid": true
71
- },
72
- {
73
- "description": "a valid URL with URL-encoded stuff",
74
- "data": "http://foo.bar/?q=Test%20URL-encoded%20stuff",
75
- "valid": true
76
- },
77
- {
78
- "description": "a valid puny-coded URL ",
79
- "data": "http://xn--nw2a.xn--j6w193g/",
80
- "valid": true
81
- },
82
- {
83
- "description": "a valid URL with many special characters",
84
- "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com",
85
- "valid": true
86
- },
87
- {
88
- "description": "a valid URL based on IPv4",
89
- "data": "http://223.255.255.254",
90
- "valid": true
91
- },
92
- {
93
- "description": "a valid URL with ftp scheme",
94
- "data": "ftp://ftp.is.co.za/rfc/rfc1808.txt",
95
- "valid": true
96
- },
97
- {
98
- "description": "a valid URL for a simple text file",
99
- "data": "http://www.ietf.org/rfc/rfc2396.txt",
100
- "valid": true
101
- },
102
- {
103
- "description": "a valid URL ",
104
- "data": "ldap://[2001:db8::7]/c=GB?objectClass?one",
105
- "valid": true
106
- },
107
- {
108
- "description": "a valid mailto URI",
109
- "data": "mailto:John.Doe@example.com",
110
- "valid": true
111
- },
112
- {
113
- "description": "a valid newsgroup URI",
114
- "data": "news:comp.infosystems.www.servers.unix",
115
- "valid": true
116
- },
117
- {
118
- "description": "a valid tel URI",
119
- "data": "tel:+1-816-555-1212",
120
- "valid": true
121
- },
122
- {
123
- "description": "a valid URN",
124
- "data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2",
125
- "valid": true
126
- },
127
- {
128
- "description": "an invalid protocol-relative URI Reference",
129
- "data": "//foo.bar/?baz=qux#quux",
130
- "valid": false
131
- },
132
- {
133
- "description": "an invalid relative URI Reference",
134
- "data": "/abc",
135
- "valid": false
136
- },
137
- {
138
- "description": "an invalid URI",
139
- "data": "\\\\WINDOWS\\fileshare",
140
- "valid": false
141
- },
142
- {
143
- "description": "an invalid URI though valid URI reference",
144
- "data": "abc",
145
- "valid": false
146
- },
147
- {
148
- "description": "an invalid URI with spaces",
149
- "data": "http:// shouldfail.com",
150
- "valid": false
151
- },
152
- {
153
- "description": "an invalid URI with spaces and missing scheme",
154
- "data": ":// should fail",
155
- "valid": false
156
- }
157
- ]
158
- },
159
- {
160
- "description": "validation of URI References",
161
- "schema": {"format": "uri-reference"},
162
- "tests": [
163
- {
164
- "description": "a valid URI",
165
- "data": "http://foo.bar/?baz=qux#quux",
166
- "valid": true
167
- },
168
- {
169
- "description": "a valid protocol-relative URI Reference",
170
- "data": "//foo.bar/?baz=qux#quux",
171
- "valid": true
172
- },
173
- {
174
- "description": "a valid relative URI Reference",
175
- "data": "/abc",
176
- "valid": true
177
- },
178
- {
179
- "description": "an invalid URI Reference",
180
- "data": "\\\\WINDOWS\\fileshare",
181
- "valid": false
182
- },
183
- {
184
- "description": "a valid URI Reference",
185
- "data": "abc",
186
- "valid": true
187
- },
188
- {
189
- "description": "a valid URI fragment",
190
- "data": "#fragment",
191
- "valid": true
192
- },
193
- {
194
- "description": "an invalid URI fragment",
195
- "data": "#frag\\ment",
196
- "valid": false
197
- }
198
- ]
199
- },
200
- {
201
- "description": "format: uri-template",
202
- "schema": {"format": "uri-template"},
203
- "tests": [
204
- {
205
- "description": "a valid uri-template",
206
- "data": "http://example.com/dictionary/{term:1}/{term}",
207
- "valid": true
208
- },
209
- {
210
- "description": "an invalid uri-template",
211
- "data": "http://example.com/dictionary/{term:1}/{term",
212
- "valid": false
213
- },
214
- {
215
- "description": "a valid uri-template without variables",
216
- "data": "http://example.com/dictionary",
217
- "valid": true
218
- },
219
- {
220
- "description": "a valid relative uri-template",
221
- "data": "dictionary/{term:1}/{term}",
222
- "valid": true
223
- }
224
- ]
225
- },
226
- {
227
- "description": "validation of e-mail addresses",
228
- "schema": {"format": "email"},
229
- "tests": [
230
- {
231
- "description": "a valid e-mail address",
232
- "data": "joe.bloggs@example.com",
233
- "valid": true
234
- },
235
- {
236
- "description": "an invalid e-mail address",
237
- "data": "2962",
238
- "valid": false
239
- }
240
- ]
241
- },
242
- {
243
- "description": "validation of IP addresses",
244
- "schema": {"format": "ipv4"},
245
- "tests": [
246
- {
247
- "description": "a valid IP address",
248
- "data": "192.168.0.1",
249
- "valid": true
250
- },
251
- {
252
- "description": "an IP address with too many components",
253
- "data": "127.0.0.0.1",
254
- "valid": false
255
- },
256
- {
257
- "description": "an IP address with out-of-range values",
258
- "data": "256.256.256.256",
259
- "valid": false
260
- },
261
- {
262
- "description": "an IP address without 4 components",
263
- "data": "127.0",
264
- "valid": false
265
- },
266
- {
267
- "description": "an IP address as an integer",
268
- "data": "0x7f000001",
269
- "valid": false
270
- }
271
- ]
272
- },
273
- {
274
- "description": "validation of IPv6 addresses",
275
- "schema": {"format": "ipv6"},
276
- "tests": [
277
- {
278
- "description": "a valid IPv6 address",
279
- "data": "::1",
280
- "valid": true
281
- },
282
- {
283
- "description": "an IPv6 address with out-of-range values",
284
- "data": "12345::",
285
- "valid": false
286
- },
287
- {
288
- "description": "an IPv6 address with too many components",
289
- "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1",
290
- "valid": false
291
- },
292
- {
293
- "description": "an IPv6 address containing illegal characters",
294
- "data": "::laptop",
295
- "valid": false
296
- }
297
- ]
298
- },
299
- {
300
- "description": "validation of host names",
301
- "schema": {"format": "hostname"},
302
- "tests": [
303
- {
304
- "description": "a valid host name",
305
- "data": "www.example.com",
306
- "valid": true
307
- },
308
- {
309
- "description": "a host name starting with an illegal character",
310
- "data": "-a-host-name-that-starts-with--",
311
- "valid": false
312
- },
313
- {
314
- "description": "a host name containing illegal characters",
315
- "data": "not_a_valid_host_name",
316
- "valid": false
317
- },
318
- {
319
- "description": "a host name with a component too long",
320
- "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component",
321
- "valid": false
322
- }
323
- ]
324
- },
325
- {
326
- "description": "validation of JSON-pointers (JSON String Representation)",
327
- "schema": {"format": "json-pointer"},
328
- "tests": [
329
- {
330
- "description": "a valid JSON-pointer",
331
- "data": "/foo/bar~0/baz~1/%a",
332
- "valid": true
333
- },
334
- {
335
- "description": "not a valid JSON-pointer (~ not escaped)",
336
- "data": "/foo/bar~",
337
- "valid": false
338
- },
339
- {
340
- "description": "valid JSON-pointer with empty segment",
341
- "data": "/foo//bar",
342
- "valid": true
343
- },
344
- {
345
- "description": "valid JSON-pointer with the last empty segment",
346
- "data": "/foo/bar/",
347
- "valid": true
348
- },
349
- {
350
- "description": "valid JSON-pointer as stated in RFC 6901 #1",
351
- "data": "",
352
- "valid": true
353
- },
354
- {
355
- "description": "valid JSON-pointer as stated in RFC 6901 #2",
356
- "data": "/foo",
357
- "valid": true
358
- },
359
- {
360
- "description": "valid JSON-pointer as stated in RFC 6901 #3",
361
- "data": "/foo/0",
362
- "valid": true
363
- },
364
- {
365
- "description": "valid JSON-pointer as stated in RFC 6901 #4",
366
- "data": "/",
367
- "valid": true
368
- },
369
- {
370
- "description": "valid JSON-pointer as stated in RFC 6901 #5",
371
- "data": "/a~1b",
372
- "valid": true
373
- },
374
- {
375
- "description": "valid JSON-pointer as stated in RFC 6901 #6",
376
- "data": "/c%d",
377
- "valid": true
378
- },
379
- {
380
- "description": "valid JSON-pointer as stated in RFC 6901 #7",
381
- "data": "/e^f",
382
- "valid": true
383
- },
384
- {
385
- "description": "valid JSON-pointer as stated in RFC 6901 #8",
386
- "data": "/g|h",
387
- "valid": true
388
- },
389
- {
390
- "description": "valid JSON-pointer as stated in RFC 6901 #9",
391
- "data": "/i\\j",
392
- "valid": true
393
- },
394
- {
395
- "description": "valid JSON-pointer as stated in RFC 6901 #10",
396
- "data": "/k\"l",
397
- "valid": true
398
- },
399
- {
400
- "description": "valid JSON-pointer as stated in RFC 6901 #11",
401
- "data": "/ ",
402
- "valid": true
403
- },
404
- {
405
- "description": "valid JSON-pointer as stated in RFC 6901 #12",
406
- "data": "/m~0n",
407
- "valid": true
408
- },
409
- {
410
- "description": "valid JSON-pointer used adding to the last array position",
411
- "data": "/foo/-",
412
- "valid": true
413
- },
414
- {
415
- "description": "valid JSON-pointer (- used as object member name)",
416
- "data": "/foo/-/bar",
417
- "valid": true
418
- },
419
- {
420
- "description": "valid JSON-pointer (multiple escaped characters)",
421
- "data": "/~1~0~0~1~1",
422
- "valid": true
423
- },
424
- {
425
- "description": "valid JSON-pointer (escaped with fraction part) #1",
426
- "data": "/~1.1",
427
- "valid": true
428
- },
429
- {
430
- "description": "valid JSON-pointer (escaped with fraction part) #2",
431
- "data": "/~0.1",
432
- "valid": true
433
- },
434
- {
435
- "description": "not a valid JSON-pointer (URI Fragment Identifier) #1",
436
- "data": "#",
437
- "valid": false
438
- },
439
- {
440
- "description": "not a valid JSON-pointer (URI Fragment Identifier) #2",
441
- "data": "#/",
442
- "valid": false
443
- },
444
- {
445
- "description": "not a valid JSON-pointer (URI Fragment Identifier) #3",
446
- "data": "#a",
447
- "valid": false
448
- },
449
- {
450
- "description": "not a valid JSON-pointer (some escaped, but not all) #1",
451
- "data": "/~0~",
452
- "valid": false
453
- },
454
- {
455
- "description": "not a valid JSON-pointer (some escaped, but not all) #2",
456
- "data": "/~0/~",
457
- "valid": false
458
- },
459
- {
460
- "description": "not a valid JSON-pointer (wrong escape character) #1",
461
- "data": "/~2",
462
- "valid": false
463
- },
464
- {
465
- "description": "not a valid JSON-pointer (wrong escape character) #2",
466
- "data": "/~-1",
467
- "valid": false
468
- },
469
- {
470
- "description": "not a valid JSON-pointer (multiple characters not escaped)",
471
- "data": "/~~",
472
- "valid": false
473
- },
474
- {
475
- "description": "not a valid JSON-pointer (isn't empty nor starts with /) #1",
476
- "data": "a",
477
- "valid": false
478
- },
479
- {
480
- "description": "not a valid JSON-pointer (isn't empty nor starts with /) #2",
481
- "data": "0",
482
- "valid": false
483
- },
484
- {
485
- "description": "not a valid JSON-pointer (isn't empty nor starts with /) #3",
486
- "data": "a/a",
487
- "valid": false
488
- }
489
- ]
490
- }
491
- ]