[
{
"description": "short-circuit with items (schema form)",
"schema": {
"items": { "multipleOf": 2 }
},
"tests": [
{
"description": "single item is valid",
"data": [ 2 ],
"valid": true
},
{
"description": "second item is invalid",
"data": [ 2, 1 ],
"valid": false
}
]
},
{
"description": "short-circuit with items (array form)",
"schema": {
"items": [
{ "multipleOf": 2 },
{ "multipleOf": 2 }
]
},
"tests": [
{
"description": "single item is valid",
"data": [ 2 ],
"valid": true
},
{
"description": "second item is invalid",
"data": [ 2, 1 ],
"valid": false
}
]
},
{
"description": "short-circuit with additionalItems",
"schema": {
"items": [ true ],
"additionalItems": { "multipleOf": 2 }
},
"tests": [
{
"description": "single additional item is valid",
"data": [ 1, 2 ],
"valid": true
},
{
"description": "second additional item is invalid",
"data": [ 1, 2, 1 ],
"valid": false
}
]
},
{
"description": "short-circuit with unevaluatedItems",
"schema": {
"unevaluatedItems": { "multipleOf": 2 }
},
"tests": [
{
"description": "single item is valid",
"data": [ 2 ],
"valid": true
},
{
"description": "second item is invalid",
"data": [ 2, 1 ],
"valid": false
}
]
},
{
"description": "short-circuit with properties",
"schema": {
"properties": {
"alpha": { "multipleOf": 2 },
"beta": { "multipleOf": 2 }
}
},
"tests": [
{
"description": "single property is valid",
"data": { "alpha": 2 },
"valid": true
},
{
"description": "second property is invalid",
"data": { "alpha": 2, "beta": 1 },
"valid": false
}
]
},
{
"description": "short-circuit with properties and unevaluatedProperties",
"schema": {
"properties": {
"alpha": true,
"beta": false,
"gamma": true
},
"unevaluatedProperties": false
},
"tests": [
{
"description": "single property is valid",
"data": { "alpha": 1 },
"valid": true
},
{
"description": "second property is invalid",
"data": { "alpha": 1, "beta": 2 },
"valid": false
}
]
},
{
"description": "short-circuit with patternProperties",
"schema": {
"patternProperties": {
"^a": { "multipleOf": 2 },
"^b": { "multipleOf": 2 }
}
},
"tests": [
{
"description": "single property is valid",
"data": { "alpha": 2 },
"valid": true
},
{
"description": "second property is invalid",
"data": { "alpha": 2, "beta": 1 },
"valid": false
}
]
},
{
"description": "short-circuit with patternProperties and boolean schemas",
"schema": {
"patternProperties": {
"^a": true,
"^b": false
}
},
"tests": [
{
"description": "single property is valid",
"data": { "alpha": 2 },
"valid": true
},
{
"description": "second property is invalid",
"data": { "alpha": 2, "beta": 1 },
"valid": false
}
]
},
{
"description": "short-circuit with additionalProperties",
"schema": {
"additionalProperties": { "multipleOf": 2 }
},
"tests": [
{
"description": "single property is valid",
"data": { "alpha": 2 },
"valid": true
},
{
"description": "second property is invalid",
"data": { "alpha": 2, "beta": 1 },
"valid": false
}
]
},
{
"description": "short-circuit with unevaluatedProperties",
"schema": {
"unevaluatedProperties": { "multipleOf": 2 }
},
"tests": [
{
"description": "single property is valid",
"data": { "alpha": 2 },
"valid": true
},
{
"description": "second property is invalid",
"data": { "alpha": 2, "beta": 1 },
"valid": false
}
]
},
{
"description": "short-circuit with allOf",
"schema": {
"allOf": [
false,
{
"properties": {
"alpha": {},
"beta": {}
}
}
],
"unevaluatedProperties": false
},
"tests": [
{
"description": "'unevaluated' errors are produced iff short_circuit is false",
"data": { "alpha": 1, "gamma": 3 },
"valid": false
},
{
"description": "/allOf/0 guarantees a false result even when all branches are evaluated",
"data": { "alpha": 1, "beta": 2 },
"valid": false
}
]
},
{
"description": "short-circuit with anyOf",
"schema": {
"anyOf": [
true,
{
"properties": {
"alpha": {},
"beta": {}
}
}
],
"unevaluatedProperties": false
},
"tests": [
{
"description": "some properties are unevaluated",
"data": { "alpha": 1, "gamma": 1 },
"valid": false
},
{
"description": "all branches are still evaluated, even though we would have wanted to abort earlier",
"data": { "alpha": 1, "beta": 2 },
"valid": true
}
]
},
{
"description": "short-circuit with oneOf",
"schema": {
"oneOf": [
{
"required": ["alpha"],
"properties": {
"alpha": { "const": 1 }
}
},
{
"required": ["beta"],
"properties": {
"beta": { "const": 2 }
}
},
{
"required": ["gamma"],
"properties": {
"gamma": { "const": 3 }
}
}
],
"unevaluatedProperties": false
},
"tests": [
{
"description": "we can safely short-circuit after two valid oneOfs; gamma never gets evaluated; incorrect unevaluated error is not produced",
"data": { "alpha": 1, "beta": 2, "gamma": 3 },
"valid": false
},
{
"description": "all branches are still evaluated, even though we would have wanted to abort earlier",
"data": { "alpha": 1, "delta": 4 },
"valid": false
}
]
}
]