github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/tests/draft2019-09/items.json (about)

     1  [
     2      {
     3          "description": "a schema given for items",
     4          "schema": {
     5              "$schema": "https://json-schema.org/draft/2019-09/schema",
     6              "items": {"type": "integer"}
     7          },
     8          "tests": [
     9              {
    10                  "description": "valid items",
    11                  "data": [ 1, 2, 3 ],
    12                  "valid": true
    13              },
    14              {
    15                  "description": "wrong type of items",
    16                  "data": [1, "x"],
    17                  "valid": false
    18              },
    19              {
    20                  "description": "ignores non-arrays",
    21                  "data": {"foo" : "bar"},
    22                  "valid": true
    23              },
    24              {
    25                  "description": "JavaScript pseudo-array is valid",
    26                  "data": {
    27                      "0": "invalid",
    28                      "length": 1
    29                  },
    30                  "valid": true
    31              }
    32          ]
    33      },
    34      {
    35          "description": "an array of schemas for items",
    36          "schema": {
    37              "$schema": "https://json-schema.org/draft/2019-09/schema",
    38              "items": [
    39                  {"type": "integer"},
    40                  {"type": "string"}
    41              ]
    42          },
    43          "tests": [
    44              {
    45                  "description": "correct types",
    46                  "data": [ 1, "foo" ],
    47                  "valid": true
    48              },
    49              {
    50                  "description": "wrong types",
    51                  "data": [ "foo", 1 ],
    52                  "valid": false
    53              },
    54              {
    55                  "description": "incomplete array of items",
    56                  "data": [ 1 ],
    57                  "valid": true
    58              },
    59              {
    60                  "description": "array with additional items",
    61                  "data": [ 1, "foo", true ],
    62                  "valid": true
    63              },
    64              {
    65                  "description": "empty array",
    66                  "data": [ ],
    67                  "valid": true
    68              },
    69              {
    70                  "description": "JavaScript pseudo-array is valid",
    71                  "data": {
    72                      "0": "invalid",
    73                      "1": "valid",
    74                      "length": 2
    75                  },
    76                  "valid": true
    77              }
    78          ]
    79      },
    80      {
    81          "description": "items with boolean schema (true)",
    82          "schema": {
    83              "$schema": "https://json-schema.org/draft/2019-09/schema",
    84              "items": true
    85          },
    86          "tests": [
    87              {
    88                  "description": "any array is valid",
    89                  "data": [ 1, "foo", true ],
    90                  "valid": true
    91              },
    92              {
    93                  "description": "empty array is valid",
    94                  "data": [],
    95                  "valid": true
    96              }
    97          ]
    98      },
    99      {
   100          "description": "items with boolean schema (false)",
   101          "schema": {
   102              "$schema": "https://json-schema.org/draft/2019-09/schema",
   103              "items": false
   104          },
   105          "tests": [
   106              {
   107                  "description": "any non-empty array is invalid",
   108                  "data": [ 1, "foo", true ],
   109                  "valid": false
   110              },
   111              {
   112                  "description": "empty array is valid",
   113                  "data": [],
   114                  "valid": true
   115              }
   116          ]
   117      },
   118      {
   119          "description": "items with boolean schemas",
   120          "schema": {
   121              "$schema": "https://json-schema.org/draft/2019-09/schema",
   122              "items": [true, false]
   123          },
   124          "tests": [
   125              {
   126                  "description": "array with one item is valid",
   127                  "data": [ 1 ],
   128                  "valid": true
   129              },
   130              {
   131                  "description": "array with two items is invalid",
   132                  "data": [ 1, "foo" ],
   133                  "valid": false
   134              },
   135              {
   136                  "description": "empty array is valid",
   137                  "data": [],
   138                  "valid": true
   139              }
   140          ]
   141      },
   142      {
   143          "description": "items and subitems",
   144          "schema": {
   145              "$schema": "https://json-schema.org/draft/2019-09/schema",
   146              "$defs": {
   147                  "item": {
   148                      "type": "array",
   149                      "additionalItems": false,
   150                      "items": [
   151                          { "$ref": "#/$defs/sub-item" },
   152                          { "$ref": "#/$defs/sub-item" }
   153                      ]
   154                  },
   155                  "sub-item": {
   156                      "type": "object",
   157                      "required": ["foo"]
   158                  }
   159              },
   160              "type": "array",
   161              "additionalItems": false,
   162              "items": [
   163                  { "$ref": "#/$defs/item" },
   164                  { "$ref": "#/$defs/item" },
   165                  { "$ref": "#/$defs/item" }
   166              ]
   167          },
   168          "tests": [
   169              {
   170                  "description": "valid items",
   171                  "data": [
   172                      [ {"foo": null}, {"foo": null} ],
   173                      [ {"foo": null}, {"foo": null} ],
   174                      [ {"foo": null}, {"foo": null} ]
   175                  ],
   176                  "valid": true
   177              },
   178              {
   179                  "description": "too many items",
   180                  "data": [
   181                      [ {"foo": null}, {"foo": null} ],
   182                      [ {"foo": null}, {"foo": null} ],
   183                      [ {"foo": null}, {"foo": null} ],
   184                      [ {"foo": null}, {"foo": null} ]
   185                  ],
   186                  "valid": false
   187              },
   188              {
   189                  "description": "too many sub-items",
   190                  "data": [
   191                      [ {"foo": null}, {"foo": null}, {"foo": null} ],
   192                      [ {"foo": null}, {"foo": null} ],
   193                      [ {"foo": null}, {"foo": null} ]
   194                  ],
   195                  "valid": false
   196              },
   197              {
   198                  "description": "wrong item",
   199                  "data": [
   200                      {"foo": null},
   201                      [ {"foo": null}, {"foo": null} ],
   202                      [ {"foo": null}, {"foo": null} ]
   203                  ],
   204                  "valid": false
   205              },
   206              {
   207                  "description": "wrong sub-item",
   208                  "data": [
   209                      [ {}, {"foo": null} ],
   210                      [ {"foo": null}, {"foo": null} ],
   211                      [ {"foo": null}, {"foo": null} ]
   212                  ],
   213                  "valid": false
   214              },
   215              {
   216                  "description": "fewer items is valid",
   217                  "data": [
   218                      [ {"foo": null} ],
   219                      [ {"foo": null} ]
   220                  ],
   221                  "valid": true
   222              }
   223          ]
   224      },
   225      {
   226          "description": "nested items",
   227          "schema": {
   228              "$schema": "https://json-schema.org/draft/2019-09/schema",
   229              "type": "array",
   230              "items": {
   231                  "type": "array",
   232                  "items": {
   233                      "type": "array",
   234                      "items": {
   235                          "type": "array",
   236                          "items": {
   237                              "type": "number"
   238                          }
   239                      }
   240                  }
   241              }
   242          },
   243          "tests": [
   244              {
   245                  "description": "valid nested array",
   246                  "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]],
   247                  "valid": true
   248              },
   249              {
   250                  "description": "nested array with invalid type",
   251                  "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]],
   252                  "valid": false
   253              },
   254              {
   255                  "description": "not deep enough",
   256                  "data": [[[1], [2],[3]], [[4], [5], [6]]],
   257                  "valid": false
   258              }
   259          ]
   260      },
   261      {
   262          "description": "single-form items with null instance elements",
   263          "schema": {
   264              "$schema": "https://json-schema.org/draft/2019-09/schema",
   265              "items": {
   266                  "type": "null"
   267              }
   268          },
   269          "tests": [
   270              {
   271                  "description": "allows null elements",
   272                  "data": [ null ],
   273                  "valid": true
   274              }
   275          ]
   276      },
   277      {
   278          "description": "array-form items with null instance elements",
   279          "schema": {
   280              "$schema": "https://json-schema.org/draft/2019-09/schema",
   281              "items": [
   282                  {
   283                      "type": "null"
   284                  }
   285              ]
   286          },
   287          "tests": [
   288              {
   289                  "description": "allows null elements",
   290                  "data": [ null ],
   291                  "valid": true
   292              }
   293          ]
   294      }
   295  ]