{
	"tests": [
		{
			"key": "layer",
			"regexp": "^0$|^-?[1-5]$",
			"match": [
				"0", "1", "2", "3", "4", "5", "-1", "-2", "-3", "-4", "-5"
			],
			"reject": [
				"+1", "+2", "+3", "+4", "+5", "zero", "yes", "no", "o", "1,2", "'-1", "1;0", "01", "!", "46", "-2000"
			]
		},
		{
			"key": "level",
			"regexp": "^((([0-9]|-[1-9])|[1-9][0-9]*)(\\.5)?)(;(([0-9]|-[1-9])|[1-9][0-9]*)(\\.5)?)*$|^-0\\.5$",
			"match": [
				"163", "88", "-1", "-2", "0", "1", "10", "0;1", "0.5", "1.5", "-0.5", "-1.5"
			],
			"reject": [
				"01", "+1", "0,1", "0; 1", "0 ;1", "1.33"
			]
		},
		{
			"key": "height",
			"regexp": "^(([0-9]+\\.?[0-9]*( m)?)|([1-9][0-9]*\\'((10|11|[0-9])((\\.[0-9]+)?)\\\")?))$",
			"match": [
				"4 m", "0.8", "11'4\"", "10", "2.5", "10 m", "10.2", "10'", "10'0\"", "9'5.5\""
			],
			"reject": [
				">20", "10m", "10.2m"
			]
		},
		{
			"key": "maxheight",
			"regexp": "^(([1-9][0-9]*(\\.[0-9]+)?( m)?)|([0-9]+\\'([0-9]|10|11)(\\.[0-9]*)?\\\"))$",
			"match": [
				"3", "3 m", "3.8", "3.8 m", "6'7\"", "7'0\"", "2.3 m", "7'9\"", "16'3\""
			],
			"reject": [
				"3.8m", "3.8 meters", "0,6", "7 ft", "7'", "2.3; 7'9\"", "16' 0\""
			]
		},
		{
			"key": "width",
			"regexp": "^(([0-9]+\\.?[0-9]*( [a-z]+)?)|([0-9]+\\'[0-9]+\\.?[0-9]*\\\"))$",
			"match": [
				"2", "2 m", "0.6 mi", "16'3\"", "12.2", "2.5", "2.00", "0.30479999"
			],
			"reject": [
				"2m", "12' 6\"", "2km", "0,6", "2,5", "3,00", "8' - 10'", ".2"
			]
		},
		{
			"key": "maxwidth",
			"regexp": "^(([0-9]+\\.?[0-9]*( m)?)|([0-9]+\\'[0-9]+\\.?[0-9]*\\\"))$",
			"match": [
				"2", "3 m", "2.2", "6'6\"", "10'0\"", "3.6576", "2.50", "33.05"
			],
			"reject": [
				"3.8m", "2.8 meters", "0,6", "7 ft", "6.5 ft", "7'", "2.3; 7'9\"", "13' 6\"", "7ft6in", "2m"
			]
		},
		{
			"key": "maxspeed",
			"regexp": "^(signals|none|unposted|unknown|variable|walk|[1-9][0-9]*( [a-z]+)?|[A-Z][A-Z]:(urban|rural|living_street|motorway))$",
			"match": [
				"50", "30", "60", "30 mph", "RO:urban", "100", "none", "10 knots", "signals", "RU:rural", "5", "250", "walk"
			],
			"reject": [
				"70mph", "ru:urban"
			]
		},
		{
			"key": "frequency",
			"regexp": "^(0|[1-9][0-9]*(\\.[0-9]+)?)( (kHz|MHz|GHz|THz))?$",
			"match": [
				"0", "16.7", "50", "60", "16.67"
			],
			"reject": [
				"16.7 ; 50", "16,7", "680kHz", "50 khz", "50 KHZ"
			]
		},
		{
			"key": "gauge",
			"regexp": "^([1-9][0-9]{1,3}(;[1-9][0-9]{1,3})*|broad|standard|narrow)$",
			"match": [
				"1435", "750", "1000;1435", "broad", "standard", "narrow", "127;184", "89;127;184", "89;127;144;184"
			],
			"reject": [
				"1435mm"
			]
		},
		{
			"key": "incline",
			"regexp": "^(up|down|-?([0-9]+?(\\.[1-9]%)?|100)[%°]?)$",
			"match": [
				"up", "down", "10%", "-10%", "12%", "15%", "0", "5%", "10", "15", "-10°", "-6%", "10°", "5°", "-5°"
			],
			"reject": [
				"10 °", "5 °", "10 %", "-10 %", "5 %", "-5 %", "11.7 %", "2,5%", "3,5", "+33%", "incline=20°", "yes;10%"
			]
		},
		{
			"key": "voltage",
			"regexp": "([A-Za-z])|,|( )",
			"match": [
				"15 kV", "15,000", "11000; 400", "11000,400", "11000 ;400"
			],
			"reject": [
				"15000", "25000", "3000", "1500", "750", "110000", "11000;400", "380000;220000;110000"
			],
			"comment": "This test is reversed, it checks for violations rather than what is permitted."
		}
	]
}

