Files
jspg/tests/fixtures/old/uniqueItems.json
2026-02-17 17:41:54 -05:00

694 lines
13 KiB
JSON
Executable File

[
{
"description": "uniqueItems validation",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"uniqueItems": true
},
"tests": [
{
"description": "unique array of integers is valid",
"data": [
1,
2
],
"valid": true
},
{
"description": "non-unique array of integers is invalid",
"data": [
1,
1
],
"valid": false
},
{
"description": "non-unique array of more than two integers is invalid",
"data": [
1,
2,
1
],
"valid": false
},
{
"description": "numbers are unique if mathematically unequal",
"data": [
1.0,
1.0,
1
],
"valid": false
},
{
"description": "false is not equal to zero",
"data": [
0,
false
],
"valid": true
},
{
"description": "true is not equal to one",
"data": [
1,
true
],
"valid": true
},
{
"description": "unique array of strings is valid",
"data": [
"foo",
"bar",
"baz"
],
"valid": true
},
{
"description": "non-unique array of strings is invalid",
"data": [
"foo",
"bar",
"foo"
],
"valid": false
},
{
"description": "unique array of objects is valid",
"data": [
{
"foo": "bar"
},
{
"foo": "baz"
}
],
"valid": true
},
{
"description": "non-unique array of objects is invalid",
"data": [
{
"foo": "bar"
},
{
"foo": "bar"
}
],
"valid": false
},
{
"description": "property order of array of objects is ignored",
"data": [
{
"foo": "bar",
"bar": "foo"
},
{
"bar": "foo",
"foo": "bar"
}
],
"valid": false
},
{
"description": "unique array of nested objects is valid",
"data": [
{
"foo": {
"bar": {
"baz": true
}
}
},
{
"foo": {
"bar": {
"baz": false
}
}
}
],
"valid": true
},
{
"description": "non-unique array of nested objects is invalid",
"data": [
{
"foo": {
"bar": {
"baz": true
}
}
},
{
"foo": {
"bar": {
"baz": true
}
}
}
],
"valid": false
},
{
"description": "unique array of arrays is valid",
"data": [
[
"foo"
],
[
"bar"
]
],
"valid": true
},
{
"description": "non-unique array of arrays is invalid",
"data": [
[
"foo"
],
[
"foo"
]
],
"valid": false
},
{
"description": "non-unique array of more than two arrays is invalid",
"data": [
[
"foo"
],
[
"bar"
],
[
"foo"
]
],
"valid": false
},
{
"description": "1 and true are unique",
"data": [
1,
true
],
"valid": true
},
{
"description": "0 and false are unique",
"data": [
0,
false
],
"valid": true
},
{
"description": "[1] and [true] are unique",
"data": [
[
1
],
[
true
]
],
"valid": true
},
{
"description": "[0] and [false] are unique",
"data": [
[
0
],
[
false
]
],
"valid": true
},
{
"description": "nested [1] and [true] are unique",
"data": [
[
[
1
],
"foo"
],
[
[
true
],
"foo"
]
],
"valid": true
},
{
"description": "nested [0] and [false] are unique",
"data": [
[
[
0
],
"foo"
],
[
[
false
],
"foo"
]
],
"valid": true
},
{
"description": "unique heterogeneous types are valid",
"data": [
{},
[
1
],
true,
null,
1,
"{}"
],
"valid": true
},
{
"description": "non-unique heterogeneous types are invalid",
"data": [
{},
[
1
],
true,
null,
{},
1
],
"valid": false
},
{
"description": "different objects are unique",
"data": [
{
"a": 1,
"b": 2
},
{
"a": 2,
"b": 1
}
],
"valid": true
},
{
"description": "objects are non-unique despite key order",
"data": [
{
"a": 1,
"b": 2
},
{
"b": 2,
"a": 1
}
],
"valid": false
},
{
"description": "{\"a\": false} and {\"a\": 0} are unique",
"data": [
{
"a": false
},
{
"a": 0
}
],
"valid": true
},
{
"description": "{\"a\": true} and {\"a\": 1} are unique",
"data": [
{
"a": true
},
{
"a": 1
}
],
"valid": true
}
]
},
{
"description": "uniqueItems with an array of items",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{
"type": "boolean"
},
{
"type": "boolean"
}
],
"uniqueItems": true
},
"tests": [
{
"description": "[false, true] from items array is valid",
"data": [
false,
true
],
"valid": true
},
{
"description": "[true, false] from items array is valid",
"data": [
true,
false
],
"valid": true
},
{
"description": "[false, false] from items array is not valid",
"data": [
false,
false
],
"valid": false
},
{
"description": "[true, true] from items array is not valid",
"data": [
true,
true
],
"valid": false
}
]
},
{
"description": "uniqueItems=false validation",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"uniqueItems": false
},
"tests": [
{
"description": "unique array of integers is valid",
"data": [
1,
2
],
"valid": true
},
{
"description": "non-unique array of integers is valid",
"data": [
1,
1
],
"valid": true
},
{
"description": "numbers are unique if mathematically unequal",
"data": [
1.0,
1.0,
1
],
"valid": true
},
{
"description": "false is not equal to zero",
"data": [
0,
false
],
"valid": true
},
{
"description": "true is not equal to one",
"data": [
1,
true
],
"valid": true
},
{
"description": "unique array of objects is valid",
"data": [
{
"foo": "bar"
},
{
"foo": "baz"
}
],
"valid": true
},
{
"description": "non-unique array of objects is valid",
"data": [
{
"foo": "bar"
},
{
"foo": "bar"
}
],
"valid": true
},
{
"description": "unique array of nested objects is valid",
"data": [
{
"foo": {
"bar": {
"baz": true
}
}
},
{
"foo": {
"bar": {
"baz": false
}
}
}
],
"valid": true
},
{
"description": "non-unique array of nested objects is valid",
"data": [
{
"foo": {
"bar": {
"baz": true
}
}
},
{
"foo": {
"bar": {
"baz": true
}
}
}
],
"valid": true
},
{
"description": "unique array of arrays is valid",
"data": [
[
"foo"
],
[
"bar"
]
],
"valid": true
},
{
"description": "non-unique array of arrays is valid",
"data": [
[
"foo"
],
[
"foo"
]
],
"valid": true
},
{
"description": "1 and true are unique",
"data": [
1,
true
],
"valid": true
},
{
"description": "0 and false are unique",
"data": [
0,
false
],
"valid": true
},
{
"description": "unique heterogeneous types are valid",
"data": [
{},
[
1
],
true,
null,
1
],
"valid": true
},
{
"description": "non-unique heterogeneous types are valid",
"data": [
{},
[
1
],
true,
null,
{},
1
],
"valid": true
}
]
},
{
"description": "uniqueItems=false with an array of items",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"prefixItems": [
{
"type": "boolean"
},
{
"type": "boolean"
}
],
"uniqueItems": false
},
"tests": [
{
"description": "[false, true] from items array is valid",
"data": [
false,
true
],
"valid": true
},
{
"description": "[true, false] from items array is valid",
"data": [
true,
false
],
"valid": true
},
{
"description": "[false, false] from items array is valid",
"data": [
false,
false
],
"valid": true
},
{
"description": "[true, true] from items array is valid",
"data": [
true,
true
],
"valid": true
}
]
},
{
"description": "zero fraction",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"uniqueItems": true
},
"tests": [
{
"description": "with fraction",
"data": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
-1,
-2,
-3,
-4,
-5,
-6,
-7,
-8,
-9,
-10,
2.0
],
"valid": false
},
{
"description": "without fraction",
"data": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
-1,
-2,
-3,
-4,
-5,
-6,
-7,
-8,
-9,
-10,
2
],
"valid": false
}
]
}
]