[
	{
		"description": "single dependency",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"dependencies": {
				"bar": [
					"foo"
				]
			}
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "neither",
				"data": {},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "nondependant",
				"data": {
					"foo": 1
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "with dependency",
				"data": {
					"foo": 1,
					"bar": 2
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "missing dependency",
				"data": {
					"bar": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "ignores arrays",
				"data": [
					"bar"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "ignores strings",
				"data": "foobar",
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "ignores other non-objects",
				"data": 12,
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "empty dependents",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"dependencies": {
				"bar": []
			}
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "empty object",
				"data": {},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "object with one property",
				"data": {
					"bar": 2
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "non-object is valid",
				"data": 1,
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "multiple dependents required",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"dependencies": {
				"quux": [
					"foo",
					"bar"
				]
			}
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "neither",
				"data": {},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "nondependants",
				"data": {
					"foo": 1,
					"bar": 2
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "with dependencies",
				"data": {
					"foo": 1,
					"bar": 2,
					"quux": 3
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "missing dependency",
				"data": {
					"foo": 1,
					"quux": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "missing other dependency",
				"data": {
					"bar": 1,
					"quux": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "missing both dependencies",
				"data": {
					"quux": 1
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "dependencies with escaped characters",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"dependencies": {
				"foo\nbar": [
					"foo\rbar"
				],
				"foo\"bar": [
					"foo'bar"
				]
			}
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "CRLF",
				"data": {
					"foo\nbar": 1,
					"foo\rbar": 2
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "quoted quotes",
				"data": {
					"foo'bar": 1,
					"foo\"bar": 2
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "CRLF missing dependent",
				"data": {
					"foo\nbar": 1,
					"foo": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "quoted quotes missing dependent",
				"data": {
					"foo\"bar": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "single schema dependency",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"dependencies": {
				"bar": {
					"properties": {
						"foo": {
							"type": "integer"
						},
						"bar": {
							"type": "integer"
						}
					}
				}
			}
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "valid",
				"data": {
					"foo": 1,
					"bar": 2
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "no dependency",
				"data": {
					"foo": "quux"
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "wrong type",
				"data": {
					"foo": "quux",
					"bar": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "wrong type other",
				"data": {
					"foo": 2,
					"bar": "quux"
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "wrong type both",
				"data": {
					"foo": "quux",
					"bar": "quux"
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "ignores arrays",
				"data": [
					"bar"
				],
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "ignores strings",
				"data": "foobar",
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "ignores other non-objects",
				"data": 12,
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "boolean subschemas",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"dependencies": {
				"foo": true,
				"bar": false
			}
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "object with property having schema true is valid",
				"data": {
					"foo": 1
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "object with property having schema false is invalid",
				"data": {
					"bar": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "object with both properties is invalid",
				"data": {
					"foo": 1,
					"bar": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "empty object is valid",
				"data": {},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	},
	{
		"description": "schema dependencies with escaped characters",
		"schema": {
			"$schema": "https://json-schema.org/draft/2019-09/schema",
			"dependencies": {
				"foo\tbar": {
					"minProperties": 4
				},
				"foo'bar": {
					"required": [
						"foo\"bar"
					]
				}
			}
		},
		"skip": {
			"v3-roundtrip": "generation only supported in version https://json-schema.org/draft/2020-12/schema"
		},
		"tests": [
			{
				"description": "quoted tab",
				"data": {
					"foo\tbar": 1,
					"a": 2,
					"b": 3,
					"c": 4
				},
				"valid": true,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "quoted quote",
				"data": {
					"foo'bar": {
						"foo\"bar": 1
					}
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "quoted tab invalid under dependent schema",
				"data": {
					"foo\tbar": 1,
					"a": 2
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			},
			{
				"description": "quoted quote invalid under dependent schema",
				"data": {
					"foo'bar": 1
				},
				"valid": false,
				"skip": {
					"v3-roundtrip": "could not extract schema"
				}
			}
		]
	}
]
