[
	{
		"description": "not",
		"schema": {
			"not": {
				"type": "integer"
			}
		},
		"tests": [
			{
				"description": "allowed",
				"data": "foo",
				"valid": true
			},
			{
				"description": "disallowed",
				"data": 1,
				"valid": false
			}
		]
	},
	{
		"description": "not multiple types",
		"schema": {
			"not": {
				"type": [
					"integer",
					"boolean"
				]
			}
		},
		"tests": [
			{
				"description": "valid",
				"data": "foo",
				"valid": true
			},
			{
				"description": "mismatch",
				"data": 1,
				"valid": false
			},
			{
				"description": "other mismatch",
				"data": true,
				"valid": false
			}
		]
	},
	{
		"description": "not more complex schema",
		"schema": {
			"not": {
				"type": "object",
				"properties": {
					"foo": {
						"type": "string"
					}
				}
			}
		},
		"tests": [
			{
				"description": "match",
				"data": 1,
				"valid": true
			},
			{
				"description": "other match",
				"data": {
					"foo": 1
				},
				"valid": true
			},
			{
				"description": "mismatch",
				"data": {
					"foo": "bar"
				},
				"valid": false
			}
		]
	},
	{
		"description": "forbidden property",
		"schema": {
			"properties": {
				"foo": {
					"not": {}
				}
			}
		},
		"tests": [
			{
				"description": "property present",
				"data": {
					"foo": 1,
					"bar": 2
				},
				"valid": false
			},
			{
				"description": "property absent",
				"data": {
					"bar": 1,
					"baz": 2
				},
				"valid": true
			}
		]
	},
	{
		"description": "forbid everything with empty schema",
		"schema": {
			"not": {}
		},
		"tests": [
			{
				"description": "number is invalid",
				"data": 1,
				"valid": false
			},
			{
				"description": "string is invalid",
				"data": "foo",
				"valid": false
			},
			{
				"description": "boolean true is invalid",
				"data": true,
				"valid": false
			},
			{
				"description": "boolean false is invalid",
				"data": false,
				"valid": false
			},
			{
				"description": "null is invalid",
				"data": null,
				"valid": false
			},
			{
				"description": "object is invalid",
				"data": {
					"foo": "bar"
				},
				"valid": false
			},
			{
				"description": "empty object is invalid",
				"data": {},
				"valid": false
			},
			{
				"description": "array is invalid",
				"data": [
					"foo"
				],
				"valid": false
			},
			{
				"description": "empty array is invalid",
				"data": [],
				"valid": false
			}
		]
	},
	{
		"description": "double negation",
		"schema": {
			"not": {
				"not": {}
			}
		},
		"tests": [
			{
				"description": "any value is valid",
				"data": "foo",
				"valid": true
			}
		]
	}
]
