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

     1  [
     2      {
     3          "description": "minContains without contains is ignored",
     4          "schema": {
     5              "$schema": "https://json-schema.org/draft/2019-09/schema",
     6              "minContains": 1
     7          },
     8          "tests": [
     9              {
    10                  "description": "one item valid against lone minContains",
    11                  "data": [ 1 ],
    12                  "valid": true
    13              },
    14              {
    15                  "description": "zero items still valid against lone minContains",
    16                  "data": [],
    17                  "valid": true
    18              }
    19          ]
    20      },
    21      {
    22          "description": "minContains=1 with contains",
    23          "schema": {
    24              "$schema": "https://json-schema.org/draft/2019-09/schema",
    25              "contains": {"const": 1},
    26              "minContains": 1
    27          },
    28          "tests": [
    29              {
    30                  "description": "empty data",
    31                  "data": [ ],
    32                  "valid": false
    33              },
    34              {
    35                  "description": "no elements match",
    36                  "data": [ 2 ],
    37                  "valid": false
    38              },
    39              {
    40                  "description": "single element matches, valid minContains",
    41                  "data": [ 1 ],
    42                  "valid": true
    43              },
    44              {
    45                  "description": "some elements match, valid minContains",
    46                  "data": [ 1, 2 ],
    47                  "valid": true
    48              },
    49              {
    50                  "description": "all elements match, valid minContains",
    51                  "data": [ 1, 1 ],
    52                  "valid": true
    53              }
    54          ]
    55      },
    56      {
    57          "description": "minContains=2 with contains",
    58          "schema": {
    59              "$schema": "https://json-schema.org/draft/2019-09/schema",
    60              "contains": {"const": 1},
    61              "minContains": 2
    62          },
    63          "tests": [
    64              {
    65                  "description": "empty data",
    66                  "data": [ ],
    67                  "valid": false
    68              },
    69              {
    70                  "description": "all elements match, invalid minContains",
    71                  "data": [ 1 ],
    72                  "valid": false
    73              },
    74              {
    75                  "description": "some elements match, invalid minContains",
    76                  "data": [ 1, 2 ],
    77                  "valid": false
    78              },
    79              {
    80                  "description": "all elements match, valid minContains (exactly as needed)",
    81                  "data": [ 1, 1 ],
    82                  "valid": true
    83              },
    84              {
    85                  "description": "all elements match, valid minContains (more than needed)",
    86                  "data": [ 1, 1, 1 ],
    87                  "valid": true
    88              },
    89              {
    90                  "description": "some elements match, valid minContains",
    91                  "data": [ 1, 2, 1 ],
    92                  "valid": true
    93              }
    94          ]
    95      },
    96      {
    97          "description": "minContains=2 with contains with a decimal value",
    98          "schema": {
    99              "$schema": "https://json-schema.org/draft/2019-09/schema",
   100              "contains": {"const": 1},
   101              "minContains": 2.0
   102          },
   103          "tests": [
   104              {
   105                  "description": "one element matches, invalid minContains",
   106                  "data": [ 1 ],
   107                  "valid": false
   108              },
   109              {
   110                  "description": "both elements match, valid minContains",
   111                  "data": [ 1, 1 ],
   112                  "valid": true
   113              }
   114          ]
   115      },
   116      {
   117          "description": "maxContains = minContains",
   118          "schema": {
   119              "$schema": "https://json-schema.org/draft/2019-09/schema",
   120              "contains": {"const": 1},
   121              "maxContains": 2,
   122              "minContains": 2
   123          },
   124          "tests": [
   125              {
   126                  "description": "empty data",
   127                  "data": [ ],
   128                  "valid": false
   129              },
   130              {
   131                  "description": "all elements match, invalid minContains",
   132                  "data": [ 1 ],
   133                  "valid": false
   134              },
   135              {
   136                  "description": "all elements match, invalid maxContains",
   137                  "data": [ 1, 1, 1 ],
   138                  "valid": false
   139              },
   140              {
   141                  "description": "all elements match, valid maxContains and minContains",
   142                  "data": [ 1, 1 ],
   143                  "valid": true
   144              }
   145          ]
   146      },
   147      {
   148          "description": "maxContains < minContains",
   149          "schema": {
   150              "$schema": "https://json-schema.org/draft/2019-09/schema",
   151              "contains": {"const": 1},
   152              "maxContains": 1,
   153              "minContains": 3
   154          },
   155          "tests": [
   156              {
   157                  "description": "empty data",
   158                  "data": [ ],
   159                  "valid": false
   160              },
   161              {
   162                  "description": "invalid minContains",
   163                  "data": [ 1 ],
   164                  "valid": false
   165              },
   166              {
   167                  "description": "invalid maxContains",
   168                  "data": [ 1, 1, 1 ],
   169                  "valid": false
   170              },
   171              {
   172                  "description": "invalid maxContains and minContains",
   173                  "data": [ 1, 1 ],
   174                  "valid": false
   175              }
   176          ]
   177      },
   178      {
   179          "description": "minContains = 0 with no maxContains",
   180          "schema": {
   181              "$schema": "https://json-schema.org/draft/2019-09/schema",
   182              "contains": {"const": 1},
   183              "minContains": 0
   184          },
   185          "tests": [
   186              {
   187                  "description": "empty data",
   188                  "data": [ ],
   189                  "valid": true
   190              },
   191              {
   192                  "description": "minContains = 0 makes contains always pass",
   193                  "data": [ 2 ],
   194                  "valid": true
   195              }
   196          ]
   197      },
   198      {
   199          "description": "minContains = 0 with maxContains",
   200          "schema": {
   201              "$schema": "https://json-schema.org/draft/2019-09/schema",
   202              "contains": {"const": 1},
   203              "minContains": 0,
   204              "maxContains": 1
   205          },
   206          "tests": [
   207              {
   208                  "description": "empty data",
   209                  "data": [ ],
   210                  "valid": true
   211              },
   212              {
   213                  "description": "not more than maxContains",
   214                  "data": [ 1 ],
   215                  "valid": true
   216              },
   217              {
   218                  "description": "too many",
   219                  "data": [ 1, 1 ],
   220                  "valid": false
   221              }
   222          ]
   223      }
   224  ]