[
	{
		"description": "validation of IPv6 addresses",
		"schema": {
			"format": "ipv6"
		},
		"tests": [
			{
				"description": "all string formats ignore integers",
				"data": 12,
				"valid": true
			},
			{
				"description": "all string formats ignore floats",
				"data": 13.7,
				"valid": true
			},
			{
				"description": "all string formats ignore objects",
				"data": {},
				"valid": true
			},
			{
				"description": "all string formats ignore arrays",
				"data": [],
				"valid": true
			},
			{
				"description": "all string formats ignore booleans",
				"data": false,
				"valid": true
			},
			{
				"description": "all string formats ignore nulls",
				"data": null,
				"valid": true
			},
			{
				"description": "a valid IPv6 address",
				"data": "::1",
				"valid": true
			},
			{
				"description": "an IPv6 address with out-of-range values",
				"data": "12345::",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "trailing 4 hex symbols is valid",
				"data": "::abef",
				"valid": true
			},
			{
				"description": "trailing 5 hex symbols is invalid",
				"data": "::abcef",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "an IPv6 address with too many components",
				"data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "an IPv6 address containing illegal characters",
				"data": "::laptop",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "no digits is valid",
				"data": "::",
				"valid": true
			},
			{
				"description": "leading colons is valid",
				"data": "::42:ff:1",
				"valid": true
			},
			{
				"description": "trailing colons is valid",
				"data": "d6::",
				"valid": true
			},
			{
				"description": "missing leading octet is invalid",
				"data": ":2:3:4:5:6:7:8",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "missing trailing octet is invalid",
				"data": "1:2:3:4:5:6:7:",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "missing leading octet with omitted octets later",
				"data": ":2:3:4::8",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "single set of double colons in the middle is valid",
				"data": "1:d6::42",
				"valid": true
			},
			{
				"description": "two sets of double colons is invalid",
				"data": "1::d6::42",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "mixed format with the ipv4 section as decimal octets",
				"data": "1::d6:192.168.0.1",
				"valid": true
			},
			{
				"description": "mixed format with double colons between the sections",
				"data": "1:2::192.168.0.1",
				"valid": true
			},
			{
				"description": "mixed format with ipv4 section with octet out of range",
				"data": "1::2:192.168.256.1",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "mixed format with ipv4 section with a hex octet",
				"data": "1::2:192.168.ff.1",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "mixed format with leading double colons (ipv4-mapped ipv6 address)",
				"data": "::ffff:192.168.0.1",
				"valid": true
			},
			{
				"description": "triple colons is invalid",
				"data": "1:2:3:4:5:::8",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "8 octets",
				"data": "1:2:3:4:5:6:7:8",
				"valid": true
			},
			{
				"description": "insufficient octets without double colons",
				"data": "1:2:3:4:5:6:7",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "no colons is invalid",
				"data": "1",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "ipv4 is not ipv6",
				"data": "127.0.0.1",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "ipv4 segment must have 4 octets",
				"data": "1:2:3:4:1.2.3",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "leading whitespace is invalid",
				"data": "  ::1",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "trailing whitespace is invalid",
				"data": "::1  ",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "netmask is not a part of ipv6 address",
				"data": "fe80::/64",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "zone id is not a part of ipv6 address",
				"data": "fe80::a%eth1",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "a long valid ipv6",
				"data": "1000:1000:1000:1000:1000:1000:255.255.255.255",
				"valid": true
			},
			{
				"description": "a long invalid ipv6, below length limit, first",
				"data": "100:100:100:100:100:100:255.255.255.255.255",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "a long invalid ipv6, below length limit, second",
				"data": "100:100:100:100:100:100:100:255.255.255.255",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "invalid non-ASCII '৪' (a Bengali 4)",
				"data": "1:2:3:4:5:6:7:৪",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			},
			{
				"description": "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion",
				"data": "1:2::192.16৪.0.1",
				"valid": false,
				"skip": {
					"v2": "unexpected success",
					"v3": "unexpected success"
				}
			}
		]
	}
]
