github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/tests/draft3/type.json (about) 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": "a string is still not an integer, even if it looks like one", 23 "data": "1", 24 "valid": false 25 }, 26 { 27 "description": "an object is not an integer", 28 "data": {}, 29 "valid": false 30 }, 31 { 32 "description": "an array is not an integer", 33 "data": [], 34 "valid": false 35 }, 36 { 37 "description": "a boolean is not an integer", 38 "data": true, 39 "valid": false 40 }, 41 { 42 "description": "null is not an integer", 43 "data": null, 44 "valid": false 45 } 46 ] 47 }, 48 { 49 "description": "number type matches numbers", 50 "schema": {"type": "number"}, 51 "tests": [ 52 { 53 "description": "an integer is a number", 54 "data": 1, 55 "valid": true 56 }, 57 { 58 "description": "a float with zero fractional part is a number", 59 "data": 1.0, 60 "valid": true 61 }, 62 { 63 "description": "a float is a number", 64 "data": 1.1, 65 "valid": true 66 }, 67 { 68 "description": "a string is not a number", 69 "data": "foo", 70 "valid": false 71 }, 72 { 73 "description": "a string is still not a number, even if it looks like one", 74 "data": "1", 75 "valid": false 76 }, 77 { 78 "description": "an object is not a number", 79 "data": {}, 80 "valid": false 81 }, 82 { 83 "description": "an array is not a number", 84 "data": [], 85 "valid": false 86 }, 87 { 88 "description": "a boolean is not a number", 89 "data": true, 90 "valid": false 91 }, 92 { 93 "description": "null is not a number", 94 "data": null, 95 "valid": false 96 } 97 ] 98 }, 99 { 100 "description": "string type matches strings", 101 "schema": {"type": "string"}, 102 "tests": [ 103 { 104 "description": "1 is not a string", 105 "data": 1, 106 "valid": false 107 }, 108 { 109 "description": "a float is not a string", 110 "data": 1.1, 111 "valid": false 112 }, 113 { 114 "description": "a string is a string", 115 "data": "foo", 116 "valid": true 117 }, 118 { 119 "description": "a string is still a string, even if it looks like a number", 120 "data": "1", 121 "valid": true 122 }, 123 { 124 "description": "an object is not a string", 125 "data": {}, 126 "valid": false 127 }, 128 { 129 "description": "an array is not a string", 130 "data": [], 131 "valid": false 132 }, 133 { 134 "description": "a boolean is not a string", 135 "data": true, 136 "valid": false 137 }, 138 { 139 "description": "null is not a string", 140 "data": null, 141 "valid": false 142 } 143 ] 144 }, 145 { 146 "description": "object type matches objects", 147 "schema": {"type": "object"}, 148 "tests": [ 149 { 150 "description": "an integer is not an object", 151 "data": 1, 152 "valid": false 153 }, 154 { 155 "description": "a float is not an object", 156 "data": 1.1, 157 "valid": false 158 }, 159 { 160 "description": "a string is not an object", 161 "data": "foo", 162 "valid": false 163 }, 164 { 165 "description": "an object is an object", 166 "data": {}, 167 "valid": true 168 }, 169 { 170 "description": "an array is not an object", 171 "data": [], 172 "valid": false 173 }, 174 { 175 "description": "a boolean is not an object", 176 "data": true, 177 "valid": false 178 }, 179 { 180 "description": "null is not an object", 181 "data": null, 182 "valid": false 183 } 184 ] 185 }, 186 { 187 "description": "array type matches arrays", 188 "schema": {"type": "array"}, 189 "tests": [ 190 { 191 "description": "an integer is not an array", 192 "data": 1, 193 "valid": false 194 }, 195 { 196 "description": "a float is not an array", 197 "data": 1.1, 198 "valid": false 199 }, 200 { 201 "description": "a string is not an array", 202 "data": "foo", 203 "valid": false 204 }, 205 { 206 "description": "an object is not an array", 207 "data": {}, 208 "valid": false 209 }, 210 { 211 "description": "an array is an array", 212 "data": [], 213 "valid": true 214 }, 215 { 216 "description": "a boolean is not an array", 217 "data": true, 218 "valid": false 219 }, 220 { 221 "description": "null is not an array", 222 "data": null, 223 "valid": false 224 } 225 ] 226 }, 227 { 228 "description": "boolean type matches booleans", 229 "schema": {"type": "boolean"}, 230 "tests": [ 231 { 232 "description": "an integer is not a boolean", 233 "data": 1, 234 "valid": false 235 }, 236 { 237 "description": "a float is not a boolean", 238 "data": 1.1, 239 "valid": false 240 }, 241 { 242 "description": "a string is not a boolean", 243 "data": "foo", 244 "valid": false 245 }, 246 { 247 "description": "an object is not a boolean", 248 "data": {}, 249 "valid": false 250 }, 251 { 252 "description": "an array is not a boolean", 253 "data": [], 254 "valid": false 255 }, 256 { 257 "description": "a boolean is a boolean", 258 "data": true, 259 "valid": true 260 }, 261 { 262 "description": "null is not a boolean", 263 "data": null, 264 "valid": false 265 } 266 ] 267 }, 268 { 269 "description": "null type matches only the null object", 270 "schema": {"type": "null"}, 271 "tests": [ 272 { 273 "description": "an integer is not null", 274 "data": 1, 275 "valid": false 276 }, 277 { 278 "description": "a float is not null", 279 "data": 1.1, 280 "valid": false 281 }, 282 { 283 "description": "a string is not null", 284 "data": "foo", 285 "valid": false 286 }, 287 { 288 "description": "an object is not null", 289 "data": {}, 290 "valid": false 291 }, 292 { 293 "description": "an array is not null", 294 "data": [], 295 "valid": false 296 }, 297 { 298 "description": "a boolean is not null", 299 "data": true, 300 "valid": false 301 }, 302 { 303 "description": "null is null", 304 "data": null, 305 "valid": true 306 } 307 ] 308 }, 309 { 310 "description": "any type matches any type", 311 "schema": {"type": "any"}, 312 "tests": [ 313 { 314 "description": "any type includes integers", 315 "data": 1, 316 "valid": true 317 }, 318 { 319 "description": "any type includes float", 320 "data": 1.1, 321 "valid": true 322 }, 323 { 324 "description": "any type includes string", 325 "data": "foo", 326 "valid": true 327 }, 328 { 329 "description": "any type includes object", 330 "data": {}, 331 "valid": true 332 }, 333 { 334 "description": "any type includes array", 335 "data": [], 336 "valid": true 337 }, 338 { 339 "description": "any type includes boolean", 340 "data": true, 341 "valid": true 342 }, 343 { 344 "description": "any type includes null", 345 "data": null, 346 "valid": true 347 } 348 ] 349 }, 350 { 351 "description": "multiple types can be specified in an array", 352 "schema": {"type": ["integer", "string"]}, 353 "tests": [ 354 { 355 "description": "an integer is valid", 356 "data": 1, 357 "valid": true 358 }, 359 { 360 "description": "a string is valid", 361 "data": "foo", 362 "valid": true 363 }, 364 { 365 "description": "a float is invalid", 366 "data": 1.1, 367 "valid": false 368 }, 369 { 370 "description": "an object is invalid", 371 "data": {}, 372 "valid": false 373 }, 374 { 375 "description": "an array is invalid", 376 "data": [], 377 "valid": false 378 }, 379 { 380 "description": "a boolean is invalid", 381 "data": true, 382 "valid": false 383 }, 384 { 385 "description": "null is invalid", 386 "data": null, 387 "valid": false 388 } 389 ] 390 }, 391 { 392 "description": "types can include schemas", 393 "schema": { 394 "type": [ 395 "array", 396 {"type": "object"} 397 ] 398 }, 399 "tests": [ 400 { 401 "description": "an integer is invalid", 402 "data": 1, 403 "valid": false 404 }, 405 { 406 "description": "a string is invalid", 407 "data": "foo", 408 "valid": false 409 }, 410 { 411 "description": "a float is invalid", 412 "data": 1.1, 413 "valid": false 414 }, 415 { 416 "description": "an object is valid", 417 "data": {}, 418 "valid": true 419 }, 420 { 421 "description": "an array is valid", 422 "data": [], 423 "valid": true 424 }, 425 { 426 "description": "a boolean is invalid", 427 "data": true, 428 "valid": false 429 }, 430 { 431 "description": "null is invalid", 432 "data": null, 433 "valid": false 434 } 435 ] 436 }, 437 { 438 "description": "applies a nested schema", 439 "schema": { 440 "type": [ 441 "integer", 442 { 443 "properties": { 444 "foo": {"type": "null"} 445 } 446 } 447 ] 448 }, 449 "tests": [ 450 { 451 "description": "an integer is valid", 452 "data": 1, 453 "valid": true 454 }, 455 { 456 "description": "an object is valid only if it is fully valid", 457 "data": {"foo": null}, 458 "valid": true 459 }, 460 { 461 "description": "an object is invalid otherwise", 462 "data": {"foo": "bar"}, 463 "valid": false 464 } 465 ] 466 }, 467 { 468 "description": "types from separate schemas are merged", 469 "schema": { 470 "type": [ 471 {"type": ["string"]}, 472 {"type": ["array", "null"]} 473 ] 474 }, 475 "tests": [ 476 { 477 "description": "an integer is invalid", 478 "data": 1, 479 "valid": false 480 }, 481 { 482 "description": "a string is valid", 483 "data": "foo", 484 "valid": true 485 }, 486 { 487 "description": "an array is valid", 488 "data": [1, 2, 3], 489 "valid": true 490 } 491 ] 492 } 493 ]