cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2019-09/uniqueItems.json (about) 1 [ 2 { 3 "description": "uniqueItems validation", 4 "schema": { 5 "$schema": "https://json-schema.org/draft/2019-09/schema", 6 "uniqueItems": true 7 }, 8 "tests": [ 9 { 10 "description": "unique array of integers is valid", 11 "data": [ 12 1, 13 2 14 ], 15 "valid": true 16 }, 17 { 18 "description": "non-unique array of integers is invalid", 19 "data": [ 20 1, 21 1 22 ], 23 "valid": false 24 }, 25 { 26 "description": "non-unique array of more than two integers is invalid", 27 "data": [ 28 1, 29 2, 30 1 31 ], 32 "valid": false 33 }, 34 { 35 "description": "numbers are unique if mathematically unequal", 36 "data": [ 37 1.0, 38 1.00, 39 1 40 ], 41 "valid": false 42 }, 43 { 44 "description": "false is not equal to zero", 45 "data": [ 46 0, 47 false 48 ], 49 "valid": true 50 }, 51 { 52 "description": "true is not equal to one", 53 "data": [ 54 1, 55 true 56 ], 57 "valid": true 58 }, 59 { 60 "description": "unique array of strings is valid", 61 "data": [ 62 "foo", 63 "bar", 64 "baz" 65 ], 66 "valid": true 67 }, 68 { 69 "description": "non-unique array of strings is invalid", 70 "data": [ 71 "foo", 72 "bar", 73 "foo" 74 ], 75 "valid": false 76 }, 77 { 78 "description": "unique array of objects is valid", 79 "data": [ 80 { 81 "foo": "bar" 82 }, 83 { 84 "foo": "baz" 85 } 86 ], 87 "valid": true 88 }, 89 { 90 "description": "non-unique array of objects is invalid", 91 "data": [ 92 { 93 "foo": "bar" 94 }, 95 { 96 "foo": "bar" 97 } 98 ], 99 "valid": false 100 }, 101 { 102 "description": "property order of array of objects is ignored", 103 "data": [ 104 { 105 "foo": "bar", 106 "bar": "foo" 107 }, 108 { 109 "bar": "foo", 110 "foo": "bar" 111 } 112 ], 113 "valid": false 114 }, 115 { 116 "description": "unique array of nested objects is valid", 117 "data": [ 118 { 119 "foo": { 120 "bar": { 121 "baz": true 122 } 123 } 124 }, 125 { 126 "foo": { 127 "bar": { 128 "baz": false 129 } 130 } 131 } 132 ], 133 "valid": true 134 }, 135 { 136 "description": "non-unique array of nested objects is invalid", 137 "data": [ 138 { 139 "foo": { 140 "bar": { 141 "baz": true 142 } 143 } 144 }, 145 { 146 "foo": { 147 "bar": { 148 "baz": true 149 } 150 } 151 } 152 ], 153 "valid": false 154 }, 155 { 156 "description": "unique array of arrays is valid", 157 "data": [ 158 [ 159 "foo" 160 ], 161 [ 162 "bar" 163 ] 164 ], 165 "valid": true 166 }, 167 { 168 "description": "non-unique array of arrays is invalid", 169 "data": [ 170 [ 171 "foo" 172 ], 173 [ 174 "foo" 175 ] 176 ], 177 "valid": false 178 }, 179 { 180 "description": "non-unique array of more than two arrays is invalid", 181 "data": [ 182 [ 183 "foo" 184 ], 185 [ 186 "bar" 187 ], 188 [ 189 "foo" 190 ] 191 ], 192 "valid": false 193 }, 194 { 195 "description": "1 and true are unique", 196 "data": [ 197 1, 198 true 199 ], 200 "valid": true 201 }, 202 { 203 "description": "0 and false are unique", 204 "data": [ 205 0, 206 false 207 ], 208 "valid": true 209 }, 210 { 211 "description": "[1] and [true] are unique", 212 "data": [ 213 [ 214 1 215 ], 216 [ 217 true 218 ] 219 ], 220 "valid": true 221 }, 222 { 223 "description": "[0] and [false] are unique", 224 "data": [ 225 [ 226 0 227 ], 228 [ 229 false 230 ] 231 ], 232 "valid": true 233 }, 234 { 235 "description": "nested [1] and [true] are unique", 236 "data": [ 237 [ 238 [ 239 1 240 ], 241 "foo" 242 ], 243 [ 244 [ 245 true 246 ], 247 "foo" 248 ] 249 ], 250 "valid": true 251 }, 252 { 253 "description": "nested [0] and [false] are unique", 254 "data": [ 255 [ 256 [ 257 0 258 ], 259 "foo" 260 ], 261 [ 262 [ 263 false 264 ], 265 "foo" 266 ] 267 ], 268 "valid": true 269 }, 270 { 271 "description": "unique heterogeneous types are valid", 272 "data": [ 273 {}, 274 [ 275 1 276 ], 277 true, 278 null, 279 1, 280 "{}" 281 ], 282 "valid": true 283 }, 284 { 285 "description": "non-unique heterogeneous types are invalid", 286 "data": [ 287 {}, 288 [ 289 1 290 ], 291 true, 292 null, 293 {}, 294 1 295 ], 296 "valid": false 297 }, 298 { 299 "description": "different objects are unique", 300 "data": [ 301 { 302 "a": 1, 303 "b": 2 304 }, 305 { 306 "a": 2, 307 "b": 1 308 } 309 ], 310 "valid": true 311 }, 312 { 313 "description": "objects are non-unique despite key order", 314 "data": [ 315 { 316 "a": 1, 317 "b": 2 318 }, 319 { 320 "b": 2, 321 "a": 1 322 } 323 ], 324 "valid": false 325 }, 326 { 327 "description": "{\"a\": false} and {\"a\": 0} are unique", 328 "data": [ 329 { 330 "a": false 331 }, 332 { 333 "a": 0 334 } 335 ], 336 "valid": true 337 }, 338 { 339 "description": "{\"a\": true} and {\"a\": 1} are unique", 340 "data": [ 341 { 342 "a": true 343 }, 344 { 345 "a": 1 346 } 347 ], 348 "valid": true 349 } 350 ] 351 }, 352 { 353 "description": "uniqueItems with an array of items", 354 "schema": { 355 "$schema": "https://json-schema.org/draft/2019-09/schema", 356 "items": [ 357 { 358 "type": "boolean" 359 }, 360 { 361 "type": "boolean" 362 } 363 ], 364 "uniqueItems": true 365 }, 366 "tests": [ 367 { 368 "description": "[false, true] from items array is valid", 369 "data": [ 370 false, 371 true 372 ], 373 "valid": true 374 }, 375 { 376 "description": "[true, false] from items array is valid", 377 "data": [ 378 true, 379 false 380 ], 381 "valid": true 382 }, 383 { 384 "description": "[false, false] from items array is not valid", 385 "data": [ 386 false, 387 false 388 ], 389 "valid": false 390 }, 391 { 392 "description": "[true, true] from items array is not valid", 393 "data": [ 394 true, 395 true 396 ], 397 "valid": false 398 }, 399 { 400 "description": "unique array extended from [false, true] is valid", 401 "data": [ 402 false, 403 true, 404 "foo", 405 "bar" 406 ], 407 "valid": true 408 }, 409 { 410 "description": "unique array extended from [true, false] is valid", 411 "data": [ 412 true, 413 false, 414 "foo", 415 "bar" 416 ], 417 "valid": true 418 }, 419 { 420 "description": "non-unique array extended from [false, true] is not valid", 421 "data": [ 422 false, 423 true, 424 "foo", 425 "foo" 426 ], 427 "valid": false 428 }, 429 { 430 "description": "non-unique array extended from [true, false] is not valid", 431 "data": [ 432 true, 433 false, 434 "foo", 435 "foo" 436 ], 437 "valid": false 438 } 439 ] 440 }, 441 { 442 "description": "uniqueItems with an array of items and additionalItems=false", 443 "schema": { 444 "$schema": "https://json-schema.org/draft/2019-09/schema", 445 "items": [ 446 { 447 "type": "boolean" 448 }, 449 { 450 "type": "boolean" 451 } 452 ], 453 "uniqueItems": true, 454 "additionalItems": false 455 }, 456 "tests": [ 457 { 458 "description": "[false, true] from items array is valid", 459 "data": [ 460 false, 461 true 462 ], 463 "valid": true 464 }, 465 { 466 "description": "[true, false] from items array is valid", 467 "data": [ 468 true, 469 false 470 ], 471 "valid": true 472 }, 473 { 474 "description": "[false, false] from items array is not valid", 475 "data": [ 476 false, 477 false 478 ], 479 "valid": false 480 }, 481 { 482 "description": "[true, true] from items array is not valid", 483 "data": [ 484 true, 485 true 486 ], 487 "valid": false 488 }, 489 { 490 "description": "extra items are invalid even if unique", 491 "data": [ 492 false, 493 true, 494 null 495 ], 496 "valid": false 497 } 498 ] 499 }, 500 { 501 "description": "uniqueItems=false validation", 502 "schema": { 503 "$schema": "https://json-schema.org/draft/2019-09/schema", 504 "uniqueItems": false 505 }, 506 "tests": [ 507 { 508 "description": "unique array of integers is valid", 509 "data": [ 510 1, 511 2 512 ], 513 "valid": true 514 }, 515 { 516 "description": "non-unique array of integers is valid", 517 "data": [ 518 1, 519 1 520 ], 521 "valid": true 522 }, 523 { 524 "description": "numbers are unique if mathematically unequal", 525 "data": [ 526 1.0, 527 1.00, 528 1 529 ], 530 "valid": true 531 }, 532 { 533 "description": "false is not equal to zero", 534 "data": [ 535 0, 536 false 537 ], 538 "valid": true 539 }, 540 { 541 "description": "true is not equal to one", 542 "data": [ 543 1, 544 true 545 ], 546 "valid": true 547 }, 548 { 549 "description": "unique array of objects is valid", 550 "data": [ 551 { 552 "foo": "bar" 553 }, 554 { 555 "foo": "baz" 556 } 557 ], 558 "valid": true 559 }, 560 { 561 "description": "non-unique array of objects is valid", 562 "data": [ 563 { 564 "foo": "bar" 565 }, 566 { 567 "foo": "bar" 568 } 569 ], 570 "valid": true 571 }, 572 { 573 "description": "unique array of nested objects is valid", 574 "data": [ 575 { 576 "foo": { 577 "bar": { 578 "baz": true 579 } 580 } 581 }, 582 { 583 "foo": { 584 "bar": { 585 "baz": false 586 } 587 } 588 } 589 ], 590 "valid": true 591 }, 592 { 593 "description": "non-unique array of nested objects is valid", 594 "data": [ 595 { 596 "foo": { 597 "bar": { 598 "baz": true 599 } 600 } 601 }, 602 { 603 "foo": { 604 "bar": { 605 "baz": true 606 } 607 } 608 } 609 ], 610 "valid": true 611 }, 612 { 613 "description": "unique array of arrays is valid", 614 "data": [ 615 [ 616 "foo" 617 ], 618 [ 619 "bar" 620 ] 621 ], 622 "valid": true 623 }, 624 { 625 "description": "non-unique array of arrays is valid", 626 "data": [ 627 [ 628 "foo" 629 ], 630 [ 631 "foo" 632 ] 633 ], 634 "valid": true 635 }, 636 { 637 "description": "1 and true are unique", 638 "data": [ 639 1, 640 true 641 ], 642 "valid": true 643 }, 644 { 645 "description": "0 and false are unique", 646 "data": [ 647 0, 648 false 649 ], 650 "valid": true 651 }, 652 { 653 "description": "unique heterogeneous types are valid", 654 "data": [ 655 {}, 656 [ 657 1 658 ], 659 true, 660 null, 661 1 662 ], 663 "valid": true 664 }, 665 { 666 "description": "non-unique heterogeneous types are valid", 667 "data": [ 668 {}, 669 [ 670 1 671 ], 672 true, 673 null, 674 {}, 675 1 676 ], 677 "valid": true 678 } 679 ] 680 }, 681 { 682 "description": "uniqueItems=false with an array of items", 683 "schema": { 684 "$schema": "https://json-schema.org/draft/2019-09/schema", 685 "items": [ 686 { 687 "type": "boolean" 688 }, 689 { 690 "type": "boolean" 691 } 692 ], 693 "uniqueItems": false 694 }, 695 "tests": [ 696 { 697 "description": "[false, true] from items array is valid", 698 "data": [ 699 false, 700 true 701 ], 702 "valid": true 703 }, 704 { 705 "description": "[true, false] from items array is valid", 706 "data": [ 707 true, 708 false 709 ], 710 "valid": true 711 }, 712 { 713 "description": "[false, false] from items array is valid", 714 "data": [ 715 false, 716 false 717 ], 718 "valid": true 719 }, 720 { 721 "description": "[true, true] from items array is valid", 722 "data": [ 723 true, 724 true 725 ], 726 "valid": true 727 }, 728 { 729 "description": "unique array extended from [false, true] is valid", 730 "data": [ 731 false, 732 true, 733 "foo", 734 "bar" 735 ], 736 "valid": true 737 }, 738 { 739 "description": "unique array extended from [true, false] is valid", 740 "data": [ 741 true, 742 false, 743 "foo", 744 "bar" 745 ], 746 "valid": true 747 }, 748 { 749 "description": "non-unique array extended from [false, true] is valid", 750 "data": [ 751 false, 752 true, 753 "foo", 754 "foo" 755 ], 756 "valid": true 757 }, 758 { 759 "description": "non-unique array extended from [true, false] is valid", 760 "data": [ 761 true, 762 false, 763 "foo", 764 "foo" 765 ], 766 "valid": true 767 } 768 ] 769 }, 770 { 771 "description": "uniqueItems=false with an array of items and additionalItems=false", 772 "schema": { 773 "$schema": "https://json-schema.org/draft/2019-09/schema", 774 "items": [ 775 { 776 "type": "boolean" 777 }, 778 { 779 "type": "boolean" 780 } 781 ], 782 "uniqueItems": false, 783 "additionalItems": false 784 }, 785 "tests": [ 786 { 787 "description": "[false, true] from items array is valid", 788 "data": [ 789 false, 790 true 791 ], 792 "valid": true 793 }, 794 { 795 "description": "[true, false] from items array is valid", 796 "data": [ 797 true, 798 false 799 ], 800 "valid": true 801 }, 802 { 803 "description": "[false, false] from items array is valid", 804 "data": [ 805 false, 806 false 807 ], 808 "valid": true 809 }, 810 { 811 "description": "[true, true] from items array is valid", 812 "data": [ 813 true, 814 true 815 ], 816 "valid": true 817 }, 818 { 819 "description": "extra items are invalid even if unique", 820 "data": [ 821 false, 822 true, 823 null 824 ], 825 "valid": false 826 } 827 ] 828 } 829 ]