ajv/spec/extras/$data/multipleOf.json

177 lines
3.8 KiB
JSON

[
{
"description": "one property is multiple of another",
"schema": {
"properties": {
"divider": {},
"multiple": { "multipleOf": { "$data": "1/divider" } }
}
},
"tests": [
{
"description": "int by int valid",
"data": {
"divider": 3,
"multiple": 12
},
"valid": true
},
{
"description": "float by float valid",
"data": {
"divider": 2.5,
"multiple": 7.5
},
"valid": true
},
{
"description": "int by int invalid",
"data": {
"divider": 3,
"multiple": 10
},
"valid": false
},
{
"description": "float by float invalid",
"data": {
"divider": 2.5,
"multiple": 8
},
"valid": false
},
{
"description": "ignores non-numbers",
"data": {
"divider": 2.5,
"multiple": "not a number"
},
"valid": true
},
{
"description": "fails if value of multipleOf is not a number",
"data": {
"divider": "2.5",
"multiple": 10
},
"valid": false
},
{
"description": "valid if value of multipleOf is undefined",
"data": {
"multiple": 10
},
"valid": true
}
]
},
{
"description": "one property is multiple of another property with escaped characters",
"schema": {
"properties": {
"/divider~": { "type": "number" },
"/multiple~": { "multipleOf": { "$data": "1/~1divider~0" } }
}
},
"tests": [
{
"description": "int by int valid",
"data": {
"/divider~": 3,
"/multiple~": 12
},
"valid": true
},
{
"description": "int by int invalid",
"data": {
"/divider~": 3,
"/multiple~": 10
},
"valid": false
}
]
},
{
"description": "one subproperty is multiple of another",
"schema": {
"properties": {
"divider": {
"properties": {
"value": { "type": "number" }
}
},
"multiple": {
"properties": {
"value": { "multipleOf": { "$data": "2/divider/value" } }
}
}
}
},
"tests": [
{
"description": "int by int valid",
"data": {
"divider": { "value": 3 },
"multiple": { "value": 12 }
},
"valid": true
},
{
"description": "int by int invalid",
"data": {
"divider": { "value": 3 },
"multiple": { "value": 10 }
},
"valid": false
}
]
},
{
"description": "item is a multiple of its index",
"schema": {
"items": [ {} ],
"additionalItems": {
"multipleOf": { "$data": "0#" }
}
},
"tests": [
{
"description": "valid array",
"data": ["anything", 1, 4, 12, 8, 10],
"valid": true
},
{
"description": "invalid array (3 is not a multiple of 2)",
"data": ["anything", 1, 3],
"valid": false
}
]
},
{
"description": "item property is a multiple of item index",
"schema": {
"items": [ {} ],
"additionalItems": {
"properties": {
"value": {
"multipleOf": { "$data": "1#" }
}
}
}
},
"tests": [
{
"description": "valid array",
"data": ["anything", {"value": 1}, {"value": 4}, {"value": 12}],
"valid": true
},
{
"description": "invalid array (3 is not a multiple of 2)",
"data": ["anything", {"value": 1}, {"value": 3}],
"valid": false
}
]
}
]