cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2020-12/minContains.json (about)

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