1[ 2 { 3 "description": "maxContains without contains is ignored", 4 "schema": { 5 "$schema": "https://json-schema.org/draft/2020-12/schema", 6 "maxContains": 1 7 }, 8 "tests": [ 9 { 10 "description": "one item valid against lone maxContains", 11 "data": [ 1 ], 12 "valid": true 13 }, 14 { 15 "description": "two items still valid against lone maxContains", 16 "data": [ 1, 2 ], 17 "valid": true 18 } 19 ] 20 }, 21 { 22 "description": "maxContains with contains", 23 "schema": { 24 "$schema": "https://json-schema.org/draft/2020-12/schema", 25 "contains": {"const": 1}, 26 "maxContains": 1 27 }, 28 "tests": [ 29 { 30 "description": "empty data", 31 "data": [ ], 32 "valid": false 33 }, 34 { 35 "description": "all elements match, valid maxContains", 36 "data": [ 1 ], 37 "valid": true 38 }, 39 { 40 "description": "all elements match, invalid maxContains", 41 "data": [ 1, 1 ], 42 "valid": false 43 }, 44 { 45 "description": "some elements match, valid maxContains", 46 "data": [ 1, 2 ], 47 "valid": true 48 }, 49 { 50 "description": "some elements match, invalid maxContains", 51 "data": [ 1, 2, 1 ], 52 "valid": false 53 } 54 ] 55 }, 56 { 57 "description": "maxContains with contains, value with a decimal", 58 "schema": { 59 "$schema": "https://json-schema.org/draft/2020-12/schema", 60 "contains": {"const": 1}, 61 "maxContains": 1.0 62 }, 63 "tests": [ 64 { 65 "description": "one element matches, valid maxContains", 66 "data": [ 1 ], 67 "valid": true 68 }, 69 { 70 "description": "too many elements match, invalid maxContains", 71 "data": [ 1, 1 ], 72 "valid": false 73 } 74 ] 75 }, 76 { 77 "description": "minContains < maxContains", 78 "schema": { 79 "$schema": "https://json-schema.org/draft/2020-12/schema", 80 "contains": {"const": 1}, 81 "minContains": 1, 82 "maxContains": 3 83 }, 84 "tests": [ 85 { 86 "description": "actual < minContains < maxContains", 87 "data": [ ], 88 "valid": false 89 }, 90 { 91 "description": "minContains < actual < maxContains", 92 "data": [ 1, 1 ], 93 "valid": true 94 }, 95 { 96 "description": "minContains < maxContains < actual", 97 "data": [ 1, 1, 1, 1 ], 98 "valid": false 99 } 100 ] 101 } 102] 103