[
	{
		"description": "uniqueItems validation",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"uniqueItems": true
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "unique array of integers is valid",
				"data": [
					1,
					2
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of integers is invalid",
				"data": [
					1,
					1
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of more than two integers is invalid",
				"data": [
					1,
					2,
					1
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "numbers are unique if mathematically unequal",
				"data": [
					1.0,
					1.00,
					1
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "false is not equal to zero",
				"data": [
					0,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "true is not equal to one",
				"data": [
					1,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array of strings is valid",
				"data": [
					"foo",
					"bar",
					"baz"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of strings is invalid",
				"data": [
					"foo",
					"bar",
					"foo"
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array of objects is valid",
				"data": [
					{
						"foo": "bar"
					},
					{
						"foo": "baz"
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of objects is invalid",
				"data": [
					{
						"foo": "bar"
					},
					{
						"foo": "bar"
					}
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "property order of array of objects is ignored",
				"data": [
					{
						"foo": "bar",
						"bar": "foo"
					},
					{
						"bar": "foo",
						"foo": "bar"
					}
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array of nested objects is valid",
				"data": [
					{
						"foo": {
							"bar": {
								"baz": true
							}
						}
					},
					{
						"foo": {
							"bar": {
								"baz": false
							}
						}
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of nested objects is invalid",
				"data": [
					{
						"foo": {
							"bar": {
								"baz": true
							}
						}
					},
					{
						"foo": {
							"bar": {
								"baz": true
							}
						}
					}
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array of arrays is valid",
				"data": [
					[
						"foo"
					],
					[
						"bar"
					]
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of arrays is invalid",
				"data": [
					[
						"foo"
					],
					[
						"foo"
					]
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of more than two arrays is invalid",
				"data": [
					[
						"foo"
					],
					[
						"bar"
					],
					[
						"foo"
					]
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "1 and true are unique",
				"data": [
					1,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "0 and false are unique",
				"data": [
					0,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[1] and [true] are unique",
				"data": [
					[
						1
					],
					[
						true
					]
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[0] and [false] are unique",
				"data": [
					[
						0
					],
					[
						false
					]
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "nested [1] and [true] are unique",
				"data": [
					[
						[
							1
						],
						"foo"
					],
					[
						[
							true
						],
						"foo"
					]
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "nested [0] and [false] are unique",
				"data": [
					[
						[
							0
						],
						"foo"
					],
					[
						[
							false
						],
						"foo"
					]
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique heterogeneous types are valid",
				"data": [
					{},
					[
						1
					],
					true,
					null,
					1,
					"{}"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique heterogeneous types are invalid",
				"data": [
					{},
					[
						1
					],
					true,
					null,
					{},
					1
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "different objects are unique",
				"data": [
					{
						"a": 1,
						"b": 2
					},
					{
						"a": 2,
						"b": 1
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "objects are non-unique despite key order",
				"data": [
					{
						"a": 1,
						"b": 2
					},
					{
						"b": 2,
						"a": 1
					}
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "{\"a\": false} and {\"a\": 0} are unique",
				"data": [
					{
						"a": false
					},
					{
						"a": 0
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "{\"a\": true} and {\"a\": 1} are unique",
				"data": [
					{
						"a": true
					},
					{
						"a": 1
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "uniqueItems with an array of items",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"items": [
				{
					"type": "boolean"
				},
				{
					"type": "boolean"
				}
			],
			"uniqueItems": true
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "[false, true] from items array is valid",
				"data": [
					false,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[true, false] from items array is valid",
				"data": [
					true,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[false, false] from items array is not valid",
				"data": [
					false,
					false
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[true, true] from items array is not valid",
				"data": [
					true,
					true
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array extended from [false, true] is valid",
				"data": [
					false,
					true,
					"foo",
					"bar"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array extended from [true, false] is valid",
				"data": [
					true,
					false,
					"foo",
					"bar"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array extended from [false, true] is not valid",
				"data": [
					false,
					true,
					"foo",
					"foo"
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array extended from [true, false] is not valid",
				"data": [
					true,
					false,
					"foo",
					"foo"
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "uniqueItems with an array of items and additionalItems=false",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"items": [
				{
					"type": "boolean"
				},
				{
					"type": "boolean"
				}
			],
			"uniqueItems": true,
			"additionalItems": false
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "[false, true] from items array is valid",
				"data": [
					false,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[true, false] from items array is valid",
				"data": [
					true,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[false, false] from items array is not valid",
				"data": [
					false,
					false
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[true, true] from items array is not valid",
				"data": [
					true,
					true
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "extra items are invalid even if unique",
				"data": [
					false,
					true,
					null
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "uniqueItems=false validation",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"uniqueItems": false
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "unique array of integers is valid",
				"data": [
					1,
					2
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of integers is valid",
				"data": [
					1,
					1
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "numbers are unique if mathematically unequal",
				"data": [
					1.0,
					1.00,
					1
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "false is not equal to zero",
				"data": [
					0,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "true is not equal to one",
				"data": [
					1,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array of objects is valid",
				"data": [
					{
						"foo": "bar"
					},
					{
						"foo": "baz"
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of objects is valid",
				"data": [
					{
						"foo": "bar"
					},
					{
						"foo": "bar"
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array of nested objects is valid",
				"data": [
					{
						"foo": {
							"bar": {
								"baz": true
							}
						}
					},
					{
						"foo": {
							"bar": {
								"baz": false
							}
						}
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of nested objects is valid",
				"data": [
					{
						"foo": {
							"bar": {
								"baz": true
							}
						}
					},
					{
						"foo": {
							"bar": {
								"baz": true
							}
						}
					}
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array of arrays is valid",
				"data": [
					[
						"foo"
					],
					[
						"bar"
					]
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array of arrays is valid",
				"data": [
					[
						"foo"
					],
					[
						"foo"
					]
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "1 and true are unique",
				"data": [
					1,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "0 and false are unique",
				"data": [
					0,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique heterogeneous types are valid",
				"data": [
					{},
					[
						1
					],
					true,
					null,
					1
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique heterogeneous types are valid",
				"data": [
					{},
					[
						1
					],
					true,
					null,
					{},
					1
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "uniqueItems=false with an array of items",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"items": [
				{
					"type": "boolean"
				},
				{
					"type": "boolean"
				}
			],
			"uniqueItems": false
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "[false, true] from items array is valid",
				"data": [
					false,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[true, false] from items array is valid",
				"data": [
					true,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[false, false] from items array is valid",
				"data": [
					false,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[true, true] from items array is valid",
				"data": [
					true,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array extended from [false, true] is valid",
				"data": [
					false,
					true,
					"foo",
					"bar"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "unique array extended from [true, false] is valid",
				"data": [
					true,
					false,
					"foo",
					"bar"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array extended from [false, true] is valid",
				"data": [
					false,
					true,
					"foo",
					"foo"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-unique array extended from [true, false] is valid",
				"data": [
					true,
					false,
					"foo",
					"foo"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "uniqueItems=false with an array of items and additionalItems=false",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"items": [
				{
					"type": "boolean"
				},
				{
					"type": "boolean"
				}
			],
			"uniqueItems": false,
			"additionalItems": false
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "[false, true] from items array is valid",
				"data": [
					false,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[true, false] from items array is valid",
				"data": [
					true,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[false, false] from items array is valid",
				"data": [
					false,
					false
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "[true, true] from items array is valid",
				"data": [
					true,
					true
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "extra items are invalid even if unique",
				"data": [
					false,
					true,
					null
				],
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	}
]
