cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2020-12/unevaluatedItems.json (about) 1 [ 2 { 3 "description": "unevaluatedItems true", 4 "schema": { 5 "$schema": "https://json-schema.org/draft/2020-12/schema", 6 "unevaluatedItems": true 7 }, 8 "skip": { 9 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 10 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 11 }, 12 "tests": [ 13 { 14 "description": "with no unevaluated items", 15 "data": [], 16 "valid": true, 17 "skip": { 18 "v2": "could not compile schema", 19 "v3": "could not compile schema" 20 } 21 }, 22 { 23 "description": "with unevaluated items", 24 "data": [ 25 "foo" 26 ], 27 "valid": true, 28 "skip": { 29 "v2": "could not compile schema", 30 "v3": "could not compile schema" 31 } 32 } 33 ] 34 }, 35 { 36 "description": "unevaluatedItems false", 37 "schema": { 38 "$schema": "https://json-schema.org/draft/2020-12/schema", 39 "unevaluatedItems": false 40 }, 41 "skip": { 42 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 43 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 44 }, 45 "tests": [ 46 { 47 "description": "with no unevaluated items", 48 "data": [], 49 "valid": true, 50 "skip": { 51 "v2": "could not compile schema", 52 "v3": "could not compile schema" 53 } 54 }, 55 { 56 "description": "with unevaluated items", 57 "data": [ 58 "foo" 59 ], 60 "valid": false, 61 "skip": { 62 "v2": "could not compile schema", 63 "v3": "could not compile schema" 64 } 65 } 66 ] 67 }, 68 { 69 "description": "unevaluatedItems as schema", 70 "schema": { 71 "$schema": "https://json-schema.org/draft/2020-12/schema", 72 "unevaluatedItems": { 73 "type": "string" 74 } 75 }, 76 "skip": { 77 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 78 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 79 }, 80 "tests": [ 81 { 82 "description": "with no unevaluated items", 83 "data": [], 84 "valid": true, 85 "skip": { 86 "v2": "could not compile schema", 87 "v3": "could not compile schema" 88 } 89 }, 90 { 91 "description": "with valid unevaluated items", 92 "data": [ 93 "foo" 94 ], 95 "valid": true, 96 "skip": { 97 "v2": "could not compile schema", 98 "v3": "could not compile schema" 99 } 100 }, 101 { 102 "description": "with invalid unevaluated items", 103 "data": [ 104 42 105 ], 106 "valid": false, 107 "skip": { 108 "v2": "could not compile schema", 109 "v3": "could not compile schema" 110 } 111 } 112 ] 113 }, 114 { 115 "description": "unevaluatedItems with uniform items", 116 "schema": { 117 "$schema": "https://json-schema.org/draft/2020-12/schema", 118 "items": { 119 "type": "string" 120 }, 121 "unevaluatedItems": false 122 }, 123 "skip": { 124 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 125 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 126 }, 127 "tests": [ 128 { 129 "description": "unevaluatedItems doesn't apply", 130 "data": [ 131 "foo", 132 "bar" 133 ], 134 "valid": true, 135 "skip": { 136 "v2": "could not compile schema", 137 "v3": "could not compile schema" 138 } 139 } 140 ] 141 }, 142 { 143 "description": "unevaluatedItems with tuple", 144 "schema": { 145 "$schema": "https://json-schema.org/draft/2020-12/schema", 146 "prefixItems": [ 147 { 148 "type": "string" 149 } 150 ], 151 "unevaluatedItems": false 152 }, 153 "skip": { 154 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 155 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 156 }, 157 "tests": [ 158 { 159 "description": "with no unevaluated items", 160 "data": [ 161 "foo" 162 ], 163 "valid": true, 164 "skip": { 165 "v2": "could not compile schema", 166 "v3": "could not compile schema" 167 } 168 }, 169 { 170 "description": "with unevaluated items", 171 "data": [ 172 "foo", 173 "bar" 174 ], 175 "valid": false, 176 "skip": { 177 "v2": "could not compile schema", 178 "v3": "could not compile schema" 179 } 180 } 181 ] 182 }, 183 { 184 "description": "unevaluatedItems with items and prefixItems", 185 "schema": { 186 "$schema": "https://json-schema.org/draft/2020-12/schema", 187 "prefixItems": [ 188 { 189 "type": "string" 190 } 191 ], 192 "items": true, 193 "unevaluatedItems": false 194 }, 195 "skip": { 196 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 197 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 198 }, 199 "tests": [ 200 { 201 "description": "unevaluatedItems doesn't apply", 202 "data": [ 203 "foo", 204 42 205 ], 206 "valid": true, 207 "skip": { 208 "v2": "could not compile schema", 209 "v3": "could not compile schema" 210 } 211 } 212 ] 213 }, 214 { 215 "description": "unevaluatedItems with items", 216 "schema": { 217 "$schema": "https://json-schema.org/draft/2020-12/schema", 218 "items": { 219 "type": "number" 220 }, 221 "unevaluatedItems": { 222 "type": "string" 223 } 224 }, 225 "skip": { 226 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 227 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 228 }, 229 "tests": [ 230 { 231 "description": "valid under items", 232 "comment": "no elements are considered by unevaluatedItems", 233 "data": [ 234 5, 235 6, 236 7, 237 8 238 ], 239 "valid": true, 240 "skip": { 241 "v2": "could not compile schema", 242 "v3": "could not compile schema" 243 } 244 }, 245 { 246 "description": "invalid under items", 247 "data": [ 248 "foo", 249 "bar", 250 "baz" 251 ], 252 "valid": false, 253 "skip": { 254 "v2": "could not compile schema", 255 "v3": "could not compile schema" 256 } 257 } 258 ] 259 }, 260 { 261 "description": "unevaluatedItems with nested tuple", 262 "schema": { 263 "$schema": "https://json-schema.org/draft/2020-12/schema", 264 "prefixItems": [ 265 { 266 "type": "string" 267 } 268 ], 269 "allOf": [ 270 { 271 "prefixItems": [ 272 true, 273 { 274 "type": "number" 275 } 276 ] 277 } 278 ], 279 "unevaluatedItems": false 280 }, 281 "skip": { 282 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 283 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 284 }, 285 "tests": [ 286 { 287 "description": "with no unevaluated items", 288 "data": [ 289 "foo", 290 42 291 ], 292 "valid": true, 293 "skip": { 294 "v2": "could not compile schema", 295 "v3": "could not compile schema" 296 } 297 }, 298 { 299 "description": "with unevaluated items", 300 "data": [ 301 "foo", 302 42, 303 true 304 ], 305 "valid": false, 306 "skip": { 307 "v2": "could not compile schema", 308 "v3": "could not compile schema" 309 } 310 } 311 ] 312 }, 313 { 314 "description": "unevaluatedItems with nested items", 315 "schema": { 316 "$schema": "https://json-schema.org/draft/2020-12/schema", 317 "unevaluatedItems": { 318 "type": "boolean" 319 }, 320 "anyOf": [ 321 { 322 "items": { 323 "type": "string" 324 } 325 }, 326 true 327 ] 328 }, 329 "skip": { 330 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 331 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 332 }, 333 "tests": [ 334 { 335 "description": "with only (valid) additional items", 336 "data": [ 337 true, 338 false 339 ], 340 "valid": true, 341 "skip": { 342 "v2": "could not compile schema", 343 "v3": "could not compile schema" 344 } 345 }, 346 { 347 "description": "with no additional items", 348 "data": [ 349 "yes", 350 "no" 351 ], 352 "valid": true, 353 "skip": { 354 "v2": "could not compile schema", 355 "v3": "could not compile schema" 356 } 357 }, 358 { 359 "description": "with invalid additional item", 360 "data": [ 361 "yes", 362 false 363 ], 364 "valid": false, 365 "skip": { 366 "v2": "could not compile schema", 367 "v3": "could not compile schema" 368 } 369 } 370 ] 371 }, 372 { 373 "description": "unevaluatedItems with nested prefixItems and items", 374 "schema": { 375 "$schema": "https://json-schema.org/draft/2020-12/schema", 376 "allOf": [ 377 { 378 "prefixItems": [ 379 { 380 "type": "string" 381 } 382 ], 383 "items": true 384 } 385 ], 386 "unevaluatedItems": false 387 }, 388 "skip": { 389 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 390 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 391 }, 392 "tests": [ 393 { 394 "description": "with no additional items", 395 "data": [ 396 "foo" 397 ], 398 "valid": true, 399 "skip": { 400 "v2": "could not compile schema", 401 "v3": "could not compile schema" 402 } 403 }, 404 { 405 "description": "with additional items", 406 "data": [ 407 "foo", 408 42, 409 true 410 ], 411 "valid": true, 412 "skip": { 413 "v2": "could not compile schema", 414 "v3": "could not compile schema" 415 } 416 } 417 ] 418 }, 419 { 420 "description": "unevaluatedItems with nested unevaluatedItems", 421 "schema": { 422 "$schema": "https://json-schema.org/draft/2020-12/schema", 423 "allOf": [ 424 { 425 "prefixItems": [ 426 { 427 "type": "string" 428 } 429 ] 430 }, 431 { 432 "unevaluatedItems": true 433 } 434 ], 435 "unevaluatedItems": false 436 }, 437 "skip": { 438 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented (and 1 more errors)", 439 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented (and 1 more errors)" 440 }, 441 "tests": [ 442 { 443 "description": "with no additional items", 444 "data": [ 445 "foo" 446 ], 447 "valid": true, 448 "skip": { 449 "v2": "could not compile schema", 450 "v3": "could not compile schema" 451 } 452 }, 453 { 454 "description": "with additional items", 455 "data": [ 456 "foo", 457 42, 458 true 459 ], 460 "valid": true, 461 "skip": { 462 "v2": "could not compile schema", 463 "v3": "could not compile schema" 464 } 465 } 466 ] 467 }, 468 { 469 "description": "unevaluatedItems with anyOf", 470 "schema": { 471 "$schema": "https://json-schema.org/draft/2020-12/schema", 472 "prefixItems": [ 473 { 474 "const": "foo" 475 } 476 ], 477 "anyOf": [ 478 { 479 "prefixItems": [ 480 true, 481 { 482 "const": "bar" 483 } 484 ] 485 }, 486 { 487 "prefixItems": [ 488 true, 489 true, 490 { 491 "const": "baz" 492 } 493 ] 494 } 495 ], 496 "unevaluatedItems": false 497 }, 498 "skip": { 499 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 500 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 501 }, 502 "tests": [ 503 { 504 "description": "when one schema matches and has no unevaluated items", 505 "data": [ 506 "foo", 507 "bar" 508 ], 509 "valid": true, 510 "skip": { 511 "v2": "could not compile schema", 512 "v3": "could not compile schema" 513 } 514 }, 515 { 516 "description": "when one schema matches and has unevaluated items", 517 "data": [ 518 "foo", 519 "bar", 520 42 521 ], 522 "valid": false, 523 "skip": { 524 "v2": "could not compile schema", 525 "v3": "could not compile schema" 526 } 527 }, 528 { 529 "description": "when two schemas match and has no unevaluated items", 530 "data": [ 531 "foo", 532 "bar", 533 "baz" 534 ], 535 "valid": true, 536 "skip": { 537 "v2": "could not compile schema", 538 "v3": "could not compile schema" 539 } 540 }, 541 { 542 "description": "when two schemas match and has unevaluated items", 543 "data": [ 544 "foo", 545 "bar", 546 "baz", 547 42 548 ], 549 "valid": false, 550 "skip": { 551 "v2": "could not compile schema", 552 "v3": "could not compile schema" 553 } 554 } 555 ] 556 }, 557 { 558 "description": "unevaluatedItems with oneOf", 559 "schema": { 560 "$schema": "https://json-schema.org/draft/2020-12/schema", 561 "prefixItems": [ 562 { 563 "const": "foo" 564 } 565 ], 566 "oneOf": [ 567 { 568 "prefixItems": [ 569 true, 570 { 571 "const": "bar" 572 } 573 ] 574 }, 575 { 576 "prefixItems": [ 577 true, 578 { 579 "const": "baz" 580 } 581 ] 582 } 583 ], 584 "unevaluatedItems": false 585 }, 586 "skip": { 587 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 588 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 589 }, 590 "tests": [ 591 { 592 "description": "with no unevaluated items", 593 "data": [ 594 "foo", 595 "bar" 596 ], 597 "valid": true, 598 "skip": { 599 "v2": "could not compile schema", 600 "v3": "could not compile schema" 601 } 602 }, 603 { 604 "description": "with unevaluated items", 605 "data": [ 606 "foo", 607 "bar", 608 42 609 ], 610 "valid": false, 611 "skip": { 612 "v2": "could not compile schema", 613 "v3": "could not compile schema" 614 } 615 } 616 ] 617 }, 618 { 619 "description": "unevaluatedItems with not", 620 "schema": { 621 "$schema": "https://json-schema.org/draft/2020-12/schema", 622 "prefixItems": [ 623 { 624 "const": "foo" 625 } 626 ], 627 "not": { 628 "not": { 629 "prefixItems": [ 630 true, 631 { 632 "const": "bar" 633 } 634 ] 635 } 636 }, 637 "unevaluatedItems": false 638 }, 639 "skip": { 640 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 641 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 642 }, 643 "tests": [ 644 { 645 "description": "with unevaluated items", 646 "data": [ 647 "foo", 648 "bar" 649 ], 650 "valid": false, 651 "skip": { 652 "v2": "could not compile schema", 653 "v3": "could not compile schema" 654 } 655 } 656 ] 657 }, 658 { 659 "description": "unevaluatedItems with if/then/else", 660 "schema": { 661 "$schema": "https://json-schema.org/draft/2020-12/schema", 662 "prefixItems": [ 663 { 664 "const": "foo" 665 } 666 ], 667 "if": { 668 "prefixItems": [ 669 true, 670 { 671 "const": "bar" 672 } 673 ] 674 }, 675 "then": { 676 "prefixItems": [ 677 true, 678 true, 679 { 680 "const": "then" 681 } 682 ] 683 }, 684 "else": { 685 "prefixItems": [ 686 true, 687 true, 688 true, 689 { 690 "const": "else" 691 } 692 ] 693 }, 694 "unevaluatedItems": false 695 }, 696 "skip": { 697 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 698 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 699 }, 700 "tests": [ 701 { 702 "description": "when if matches and it has no unevaluated items", 703 "data": [ 704 "foo", 705 "bar", 706 "then" 707 ], 708 "valid": true, 709 "skip": { 710 "v2": "could not compile schema", 711 "v3": "could not compile schema" 712 } 713 }, 714 { 715 "description": "when if matches and it has unevaluated items", 716 "data": [ 717 "foo", 718 "bar", 719 "then", 720 "else" 721 ], 722 "valid": false, 723 "skip": { 724 "v2": "could not compile schema", 725 "v3": "could not compile schema" 726 } 727 }, 728 { 729 "description": "when if doesn't match and it has no unevaluated items", 730 "data": [ 731 "foo", 732 42, 733 42, 734 "else" 735 ], 736 "valid": true, 737 "skip": { 738 "v2": "could not compile schema", 739 "v3": "could not compile schema" 740 } 741 }, 742 { 743 "description": "when if doesn't match and it has unevaluated items", 744 "data": [ 745 "foo", 746 42, 747 42, 748 "else", 749 42 750 ], 751 "valid": false, 752 "skip": { 753 "v2": "could not compile schema", 754 "v3": "could not compile schema" 755 } 756 } 757 ] 758 }, 759 { 760 "description": "unevaluatedItems with boolean schemas", 761 "schema": { 762 "$schema": "https://json-schema.org/draft/2020-12/schema", 763 "allOf": [ 764 true 765 ], 766 "unevaluatedItems": false 767 }, 768 "skip": { 769 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 770 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 771 }, 772 "tests": [ 773 { 774 "description": "with no unevaluated items", 775 "data": [], 776 "valid": true, 777 "skip": { 778 "v2": "could not compile schema", 779 "v3": "could not compile schema" 780 } 781 }, 782 { 783 "description": "with unevaluated items", 784 "data": [ 785 "foo" 786 ], 787 "valid": false, 788 "skip": { 789 "v2": "could not compile schema", 790 "v3": "could not compile schema" 791 } 792 } 793 ] 794 }, 795 { 796 "description": "unevaluatedItems with $ref", 797 "schema": { 798 "$schema": "https://json-schema.org/draft/2020-12/schema", 799 "$ref": "#/$defs/bar", 800 "prefixItems": [ 801 { 802 "type": "string" 803 } 804 ], 805 "unevaluatedItems": false, 806 "$defs": { 807 "bar": { 808 "prefixItems": [ 809 true, 810 { 811 "type": "string" 812 } 813 ] 814 } 815 } 816 }, 817 "skip": { 818 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented (and 1 more errors)", 819 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented (and 1 more errors)" 820 }, 821 "tests": [ 822 { 823 "description": "with no unevaluated items", 824 "data": [ 825 "foo", 826 "bar" 827 ], 828 "valid": true, 829 "skip": { 830 "v2": "could not compile schema", 831 "v3": "could not compile schema" 832 } 833 }, 834 { 835 "description": "with unevaluated items", 836 "data": [ 837 "foo", 838 "bar", 839 "baz" 840 ], 841 "valid": false, 842 "skip": { 843 "v2": "could not compile schema", 844 "v3": "could not compile schema" 845 } 846 } 847 ] 848 }, 849 { 850 "description": "unevaluatedItems before $ref", 851 "schema": { 852 "$schema": "https://json-schema.org/draft/2020-12/schema", 853 "unevaluatedItems": false, 854 "prefixItems": [ 855 { 856 "type": "string" 857 } 858 ], 859 "$ref": "#/$defs/bar", 860 "$defs": { 861 "bar": { 862 "prefixItems": [ 863 true, 864 { 865 "type": "string" 866 } 867 ] 868 } 869 } 870 }, 871 "skip": { 872 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented (and 1 more errors)", 873 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented (and 1 more errors)" 874 }, 875 "tests": [ 876 { 877 "description": "with no unevaluated items", 878 "data": [ 879 "foo", 880 "bar" 881 ], 882 "valid": true, 883 "skip": { 884 "v2": "could not compile schema", 885 "v3": "could not compile schema" 886 } 887 }, 888 { 889 "description": "with unevaluated items", 890 "data": [ 891 "foo", 892 "bar", 893 "baz" 894 ], 895 "valid": false, 896 "skip": { 897 "v2": "could not compile schema", 898 "v3": "could not compile schema" 899 } 900 } 901 ] 902 }, 903 { 904 "description": "unevaluatedItems with $dynamicRef", 905 "schema": { 906 "$schema": "https://json-schema.org/draft/2020-12/schema", 907 "$id": "https://example.com/unevaluated-items-with-dynamic-ref/derived", 908 "$ref": "./baseSchema", 909 "$defs": { 910 "derived": { 911 "$dynamicAnchor": "addons", 912 "prefixItems": [ 913 true, 914 { 915 "type": "string" 916 } 917 ] 918 }, 919 "baseSchema": { 920 "$id": "./baseSchema", 921 "$comment": "unevaluatedItems comes first so it's more likely to catch bugs with implementations that are sensitive to keyword ordering", 922 "unevaluatedItems": false, 923 "type": "array", 924 "prefixItems": [ 925 { 926 "type": "string" 927 } 928 ], 929 "$dynamicRef": "#addons", 930 "$defs": { 931 "defaultAddons": { 932 "$comment": "Needed to satisfy the bookending requirement", 933 "$dynamicAnchor": "addons" 934 } 935 } 936 } 937 } 938 }, 939 "skip": { 940 "v2": "extract error: keyword \"$dynamicAnchor\" not yet implemented (and 7 more errors)", 941 "v3": "extract error: keyword \"$dynamicAnchor\" not yet implemented (and 7 more errors)" 942 }, 943 "tests": [ 944 { 945 "description": "with no unevaluated items", 946 "data": [ 947 "foo", 948 "bar" 949 ], 950 "valid": true, 951 "skip": { 952 "v2": "could not compile schema", 953 "v3": "could not compile schema" 954 } 955 }, 956 { 957 "description": "with unevaluated items", 958 "data": [ 959 "foo", 960 "bar", 961 "baz" 962 ], 963 "valid": false, 964 "skip": { 965 "v2": "could not compile schema", 966 "v3": "could not compile schema" 967 } 968 } 969 ] 970 }, 971 { 972 "description": "unevaluatedItems can't see inside cousins", 973 "schema": { 974 "$schema": "https://json-schema.org/draft/2020-12/schema", 975 "allOf": [ 976 { 977 "prefixItems": [ 978 true 979 ] 980 }, 981 { 982 "unevaluatedItems": false 983 } 984 ] 985 }, 986 "skip": { 987 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 988 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 989 }, 990 "tests": [ 991 { 992 "description": "always fails", 993 "data": [ 994 1 995 ], 996 "valid": false, 997 "skip": { 998 "v2": "could not compile schema", 999 "v3": "could not compile schema" 1000 } 1001 } 1002 ] 1003 }, 1004 { 1005 "description": "item is evaluated in an uncle schema to unevaluatedItems", 1006 "schema": { 1007 "$schema": "https://json-schema.org/draft/2020-12/schema", 1008 "properties": { 1009 "foo": { 1010 "prefixItems": [ 1011 { 1012 "type": "string" 1013 } 1014 ], 1015 "unevaluatedItems": false 1016 } 1017 }, 1018 "anyOf": [ 1019 { 1020 "properties": { 1021 "foo": { 1022 "prefixItems": [ 1023 true, 1024 { 1025 "type": "string" 1026 } 1027 ] 1028 } 1029 } 1030 } 1031 ] 1032 }, 1033 "skip": { 1034 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 1035 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 1036 }, 1037 "tests": [ 1038 { 1039 "description": "no extra items", 1040 "data": { 1041 "foo": [ 1042 "test" 1043 ] 1044 }, 1045 "valid": true, 1046 "skip": { 1047 "v2": "could not compile schema", 1048 "v3": "could not compile schema" 1049 } 1050 }, 1051 { 1052 "description": "uncle keyword evaluation is not significant", 1053 "data": { 1054 "foo": [ 1055 "test", 1056 "test" 1057 ] 1058 }, 1059 "valid": false, 1060 "skip": { 1061 "v2": "could not compile schema", 1062 "v3": "could not compile schema" 1063 } 1064 } 1065 ] 1066 }, 1067 { 1068 "description": "unevaluatedItems depends on adjacent contains", 1069 "schema": { 1070 "$schema": "https://json-schema.org/draft/2020-12/schema", 1071 "prefixItems": [ 1072 true 1073 ], 1074 "contains": { 1075 "type": "string" 1076 }, 1077 "unevaluatedItems": false 1078 }, 1079 "skip": { 1080 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 1081 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 1082 }, 1083 "tests": [ 1084 { 1085 "description": "second item is evaluated by contains", 1086 "data": [ 1087 1, 1088 "foo" 1089 ], 1090 "valid": true, 1091 "skip": { 1092 "v2": "could not compile schema", 1093 "v3": "could not compile schema" 1094 } 1095 }, 1096 { 1097 "description": "contains fails, second item is not evaluated", 1098 "data": [ 1099 1, 1100 2 1101 ], 1102 "valid": false, 1103 "skip": { 1104 "v2": "could not compile schema", 1105 "v3": "could not compile schema" 1106 } 1107 }, 1108 { 1109 "description": "contains passes, second item is not evaluated", 1110 "data": [ 1111 1, 1112 2, 1113 "foo" 1114 ], 1115 "valid": false, 1116 "skip": { 1117 "v2": "could not compile schema", 1118 "v3": "could not compile schema" 1119 } 1120 } 1121 ] 1122 }, 1123 { 1124 "description": "unevaluatedItems depends on multiple nested contains", 1125 "schema": { 1126 "$schema": "https://json-schema.org/draft/2020-12/schema", 1127 "allOf": [ 1128 { 1129 "contains": { 1130 "multipleOf": 2 1131 } 1132 }, 1133 { 1134 "contains": { 1135 "multipleOf": 3 1136 } 1137 } 1138 ], 1139 "unevaluatedItems": { 1140 "multipleOf": 5 1141 } 1142 }, 1143 "skip": { 1144 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 1145 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 1146 }, 1147 "tests": [ 1148 { 1149 "description": "5 not evaluated, passes unevaluatedItems", 1150 "data": [ 1151 2, 1152 3, 1153 4, 1154 5, 1155 6 1156 ], 1157 "valid": true, 1158 "skip": { 1159 "v2": "could not compile schema", 1160 "v3": "could not compile schema" 1161 } 1162 }, 1163 { 1164 "description": "7 not evaluated, fails unevaluatedItems", 1165 "data": [ 1166 2, 1167 3, 1168 4, 1169 7, 1170 8 1171 ], 1172 "valid": false, 1173 "skip": { 1174 "v2": "could not compile schema", 1175 "v3": "could not compile schema" 1176 } 1177 } 1178 ] 1179 }, 1180 { 1181 "description": "unevaluatedItems and contains interact to control item dependency relationship", 1182 "schema": { 1183 "$schema": "https://json-schema.org/draft/2020-12/schema", 1184 "if": { 1185 "contains": { 1186 "const": "a" 1187 } 1188 }, 1189 "then": { 1190 "if": { 1191 "contains": { 1192 "const": "b" 1193 } 1194 }, 1195 "then": { 1196 "if": { 1197 "contains": { 1198 "const": "c" 1199 } 1200 } 1201 } 1202 }, 1203 "unevaluatedItems": false 1204 }, 1205 "skip": { 1206 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 1207 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 1208 }, 1209 "tests": [ 1210 { 1211 "description": "empty array is valid", 1212 "data": [], 1213 "valid": true, 1214 "skip": { 1215 "v2": "could not compile schema", 1216 "v3": "could not compile schema" 1217 } 1218 }, 1219 { 1220 "description": "only a's are valid", 1221 "data": [ 1222 "a", 1223 "a" 1224 ], 1225 "valid": true, 1226 "skip": { 1227 "v2": "could not compile schema", 1228 "v3": "could not compile schema" 1229 } 1230 }, 1231 { 1232 "description": "a's and b's are valid", 1233 "data": [ 1234 "a", 1235 "b", 1236 "a", 1237 "b", 1238 "a" 1239 ], 1240 "valid": true, 1241 "skip": { 1242 "v2": "could not compile schema", 1243 "v3": "could not compile schema" 1244 } 1245 }, 1246 { 1247 "description": "a's, b's and c's are valid", 1248 "data": [ 1249 "c", 1250 "a", 1251 "c", 1252 "c", 1253 "b", 1254 "a" 1255 ], 1256 "valid": true, 1257 "skip": { 1258 "v2": "could not compile schema", 1259 "v3": "could not compile schema" 1260 } 1261 }, 1262 { 1263 "description": "only b's are invalid", 1264 "data": [ 1265 "b", 1266 "b" 1267 ], 1268 "valid": false, 1269 "skip": { 1270 "v2": "could not compile schema", 1271 "v3": "could not compile schema" 1272 } 1273 }, 1274 { 1275 "description": "only c's are invalid", 1276 "data": [ 1277 "c", 1278 "c" 1279 ], 1280 "valid": false, 1281 "skip": { 1282 "v2": "could not compile schema", 1283 "v3": "could not compile schema" 1284 } 1285 }, 1286 { 1287 "description": "only b's and c's are invalid", 1288 "data": [ 1289 "c", 1290 "b", 1291 "c", 1292 "b", 1293 "c" 1294 ], 1295 "valid": false, 1296 "skip": { 1297 "v2": "could not compile schema", 1298 "v3": "could not compile schema" 1299 } 1300 }, 1301 { 1302 "description": "only a's and c's are invalid", 1303 "data": [ 1304 "c", 1305 "a", 1306 "c", 1307 "a", 1308 "c" 1309 ], 1310 "valid": false, 1311 "skip": { 1312 "v2": "could not compile schema", 1313 "v3": "could not compile schema" 1314 } 1315 } 1316 ] 1317 }, 1318 { 1319 "description": "non-array instances are valid", 1320 "schema": { 1321 "$schema": "https://json-schema.org/draft/2020-12/schema", 1322 "unevaluatedItems": false 1323 }, 1324 "skip": { 1325 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 1326 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 1327 }, 1328 "tests": [ 1329 { 1330 "description": "ignores booleans", 1331 "data": true, 1332 "valid": true, 1333 "skip": { 1334 "v2": "could not compile schema", 1335 "v3": "could not compile schema" 1336 } 1337 }, 1338 { 1339 "description": "ignores integers", 1340 "data": 123, 1341 "valid": true, 1342 "skip": { 1343 "v2": "could not compile schema", 1344 "v3": "could not compile schema" 1345 } 1346 }, 1347 { 1348 "description": "ignores floats", 1349 "data": 1.0, 1350 "valid": true, 1351 "skip": { 1352 "v2": "could not compile schema", 1353 "v3": "could not compile schema" 1354 } 1355 }, 1356 { 1357 "description": "ignores objects", 1358 "data": {}, 1359 "valid": true, 1360 "skip": { 1361 "v2": "could not compile schema", 1362 "v3": "could not compile schema" 1363 } 1364 }, 1365 { 1366 "description": "ignores strings", 1367 "data": "foo", 1368 "valid": true, 1369 "skip": { 1370 "v2": "could not compile schema", 1371 "v3": "could not compile schema" 1372 } 1373 }, 1374 { 1375 "description": "ignores null", 1376 "data": null, 1377 "valid": true, 1378 "skip": { 1379 "v2": "could not compile schema", 1380 "v3": "could not compile schema" 1381 } 1382 } 1383 ] 1384 }, 1385 { 1386 "description": "unevaluatedItems with null instance elements", 1387 "schema": { 1388 "$schema": "https://json-schema.org/draft/2020-12/schema", 1389 "unevaluatedItems": { 1390 "type": "null" 1391 } 1392 }, 1393 "skip": { 1394 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 1395 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 1396 }, 1397 "tests": [ 1398 { 1399 "description": "allows null elements", 1400 "data": [ 1401 null 1402 ], 1403 "valid": true, 1404 "skip": { 1405 "v2": "could not compile schema", 1406 "v3": "could not compile schema" 1407 } 1408 } 1409 ] 1410 }, 1411 { 1412 "description": "unevaluatedItems can see annotations from if without then and else", 1413 "schema": { 1414 "$schema": "https://json-schema.org/draft/2020-12/schema", 1415 "if": { 1416 "prefixItems": [ 1417 { 1418 "const": "a" 1419 } 1420 ] 1421 }, 1422 "unevaluatedItems": false 1423 }, 1424 "skip": { 1425 "v2": "extract error: keyword \"unevaluatedItems\" not yet implemented", 1426 "v3": "extract error: keyword \"unevaluatedItems\" not yet implemented" 1427 }, 1428 "tests": [ 1429 { 1430 "description": "valid in case if is evaluated", 1431 "data": [ 1432 "a" 1433 ], 1434 "valid": true, 1435 "skip": { 1436 "v2": "could not compile schema", 1437 "v3": "could not compile schema" 1438 } 1439 }, 1440 { 1441 "description": "invalid in case if is evaluated", 1442 "data": [ 1443 "b" 1444 ], 1445 "valid": false, 1446 "skip": { 1447 "v2": "could not compile schema", 1448 "v3": "could not compile schema" 1449 } 1450 } 1451 ] 1452 } 1453 ]