type.json 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. [
  2. {
  3. "description": "integer type matches integers",
  4. "schema": {"type": "integer"},
  5. "tests": [
  6. {
  7. "description": "an integer is an integer",
  8. "data": 1,
  9. "valid": true
  10. },
  11. {
  12. "description": "a float is not an integer",
  13. "data": 1.1,
  14. "valid": false
  15. },
  16. {
  17. "description": "a string is not an integer",
  18. "data": "foo",
  19. "valid": false
  20. },
  21. {
  22. "description": "an object is not an integer",
  23. "data": {},
  24. "valid": false
  25. },
  26. {
  27. "description": "an array is not an integer",
  28. "data": [],
  29. "valid": false
  30. },
  31. {
  32. "description": "a boolean is not an integer",
  33. "data": true,
  34. "valid": false
  35. },
  36. {
  37. "description": "null is not an integer",
  38. "data": null,
  39. "valid": false
  40. }
  41. ]
  42. },
  43. {
  44. "description": "number type matches numbers",
  45. "schema": {"type": "number"},
  46. "tests": [
  47. {
  48. "description": "an integer is a number",
  49. "data": 1,
  50. "valid": true
  51. },
  52. {
  53. "description": "a float is a number",
  54. "data": 1.1,
  55. "valid": true
  56. },
  57. {
  58. "description": "a string is not a number",
  59. "data": "foo",
  60. "valid": false
  61. },
  62. {
  63. "description": "an object is not a number",
  64. "data": {},
  65. "valid": false
  66. },
  67. {
  68. "description": "an array is not a number",
  69. "data": [],
  70. "valid": false
  71. },
  72. {
  73. "description": "a boolean is not a number",
  74. "data": true,
  75. "valid": false
  76. },
  77. {
  78. "description": "null is not a number",
  79. "data": null,
  80. "valid": false
  81. }
  82. ]
  83. },
  84. {
  85. "description": "string type matches strings",
  86. "schema": {"type": "string"},
  87. "tests": [
  88. {
  89. "description": "1 is not a string",
  90. "data": 1,
  91. "valid": false
  92. },
  93. {
  94. "description": "a float is not a string",
  95. "data": 1.1,
  96. "valid": false
  97. },
  98. {
  99. "description": "a string is a string",
  100. "data": "foo",
  101. "valid": true
  102. },
  103. {
  104. "description": "an object is not a string",
  105. "data": {},
  106. "valid": false
  107. },
  108. {
  109. "description": "an array is not a string",
  110. "data": [],
  111. "valid": false
  112. },
  113. {
  114. "description": "a boolean is not a string",
  115. "data": true,
  116. "valid": false
  117. },
  118. {
  119. "description": "null is not a string",
  120. "data": null,
  121. "valid": false
  122. }
  123. ]
  124. },
  125. {
  126. "description": "object type matches objects",
  127. "schema": {"type": "object"},
  128. "tests": [
  129. {
  130. "description": "an integer is not an object",
  131. "data": 1,
  132. "valid": false
  133. },
  134. {
  135. "description": "a float is not an object",
  136. "data": 1.1,
  137. "valid": false
  138. },
  139. {
  140. "description": "a string is not an object",
  141. "data": "foo",
  142. "valid": false
  143. },
  144. {
  145. "description": "an object is an object",
  146. "data": {},
  147. "valid": true
  148. },
  149. {
  150. "description": "an array is not an object",
  151. "data": [],
  152. "valid": false
  153. },
  154. {
  155. "description": "a boolean is not an object",
  156. "data": true,
  157. "valid": false
  158. },
  159. {
  160. "description": "null is not an object",
  161. "data": null,
  162. "valid": false
  163. }
  164. ]
  165. },
  166. {
  167. "description": "array type matches arrays",
  168. "schema": {"type": "array"},
  169. "tests": [
  170. {
  171. "description": "an integer is not an array",
  172. "data": 1,
  173. "valid": false
  174. },
  175. {
  176. "description": "a float is not an array",
  177. "data": 1.1,
  178. "valid": false
  179. },
  180. {
  181. "description": "a string is not an array",
  182. "data": "foo",
  183. "valid": false
  184. },
  185. {
  186. "description": "an object is not an array",
  187. "data": {},
  188. "valid": false
  189. },
  190. {
  191. "description": "an array is not an array",
  192. "data": [],
  193. "valid": true
  194. },
  195. {
  196. "description": "a boolean is not an array",
  197. "data": true,
  198. "valid": false
  199. },
  200. {
  201. "description": "null is not an array",
  202. "data": null,
  203. "valid": false
  204. }
  205. ]
  206. },
  207. {
  208. "description": "boolean type matches booleans",
  209. "schema": {"type": "boolean"},
  210. "tests": [
  211. {
  212. "description": "an integer is not a boolean",
  213. "data": 1,
  214. "valid": false
  215. },
  216. {
  217. "description": "a float is not a boolean",
  218. "data": 1.1,
  219. "valid": false
  220. },
  221. {
  222. "description": "a string is not a boolean",
  223. "data": "foo",
  224. "valid": false
  225. },
  226. {
  227. "description": "an object is not a boolean",
  228. "data": {},
  229. "valid": false
  230. },
  231. {
  232. "description": "an array is not a boolean",
  233. "data": [],
  234. "valid": false
  235. },
  236. {
  237. "description": "a boolean is not a boolean",
  238. "data": true,
  239. "valid": true
  240. },
  241. {
  242. "description": "null is not a boolean",
  243. "data": null,
  244. "valid": false
  245. }
  246. ]
  247. },
  248. {
  249. "description": "null type matches only the null object",
  250. "schema": {"type": "null"},
  251. "tests": [
  252. {
  253. "description": "an integer is not null",
  254. "data": 1,
  255. "valid": false
  256. },
  257. {
  258. "description": "a float is not null",
  259. "data": 1.1,
  260. "valid": false
  261. },
  262. {
  263. "description": "a string is not null",
  264. "data": "foo",
  265. "valid": false
  266. },
  267. {
  268. "description": "an object is not null",
  269. "data": {},
  270. "valid": false
  271. },
  272. {
  273. "description": "an array is not null",
  274. "data": [],
  275. "valid": false
  276. },
  277. {
  278. "description": "a boolean is not null",
  279. "data": true,
  280. "valid": false
  281. },
  282. {
  283. "description": "null is null",
  284. "data": null,
  285. "valid": true
  286. }
  287. ]
  288. },
  289. {
  290. "description": "multiple types can be specified in an array",
  291. "schema": {"type": ["integer", "string"]},
  292. "tests": [
  293. {
  294. "description": "an integer is valid",
  295. "data": 1,
  296. "valid": true
  297. },
  298. {
  299. "description": "a string is valid",
  300. "data": "foo",
  301. "valid": true
  302. },
  303. {
  304. "description": "a float is invalid",
  305. "data": 1.1,
  306. "valid": false
  307. },
  308. {
  309. "description": "an object is invalid",
  310. "data": {},
  311. "valid": false
  312. },
  313. {
  314. "description": "an array is invalid",
  315. "data": [],
  316. "valid": false
  317. },
  318. {
  319. "description": "a boolean is invalid",
  320. "data": true,
  321. "valid": false
  322. },
  323. {
  324. "description": "null is invalid",
  325. "data": null,
  326. "valid": false
  327. }
  328. ]
  329. }
  330. ]