Ticket #8687: regexp-data.json

File regexp-data.json, 3.2 KB (added by dommage, 11 years ago)

JSON test data for regular expressions.

Line 
1{
2 "tests": [
3 {
4 "key": "layer",
5 "regexp": "^0$|^-?[1-5]$",
6 "match": [
7 "0", "1", "2", "3", "4", "5", "-1", "-2", "-3", "-4", "-5"
8 ],
9 "reject": [
10 "+1", "+2", "+3", "+4", "+5", "zero", "yes", "no", "o", "1,2", "'-1", "1;0", "01", "!", "46", "-2000"
11 ]
12 },
13 {
14 "key": "level",
15 "regexp": "^((([0-9]|-[1-9])|[1-9][0-9]*)(\\.5)?)(;(([0-9]|-[1-9])|[1-9][0-9]*)(\\.5)?)*$|^-0\\.5$",
16 "match": [
17 "163", "88", "-1", "-2", "0", "1", "10", "0;1", "0.5", "1.5", "-0.5", "-1.5"
18 ],
19 "reject": [
20 "01", "+1", "0,1", "0; 1", "0 ;1", "1.33"
21 ]
22 },
23 {
24 "key": "height",
25 "regexp": "^(([0-9]+\\.?[0-9]*( m)?)|([1-9][0-9]*\\'((10|11|[0-9])((\\.[0-9]+)?)\\\")?))$",
26 "match": [
27 "4 m", "0.8", "11'4\"", "10", "2.5", "10 m", "10.2", "10'", "10'0\"", "9'5.5\""
28 ],
29 "reject": [
30 ">20", "10m", "10.2m"
31 ]
32 },
33 {
34 "key": "maxheight",
35 "regexp": "^(([1-9][0-9]*(\\.[0-9]+)?( m)?)|([0-9]+\\'([0-9]|10|11)(\\.[0-9]*)?\\\"))$",
36 "match": [
37 "3", "3 m", "3.8", "3.8 m", "6'7\"", "7'0\"", "2.3 m", "7'9\"", "16'3\""
38 ],
39 "reject": [
40 "3.8m", "3.8 meters", "0,6", "7 ft", "7'", "2.3; 7'9\"", "16' 0\""
41 ]
42 },
43 {
44 "key": "width",
45 "regexp": "^(([0-9]+\\.?[0-9]*( [a-z]+)?)|([0-9]+\\'[0-9]+\\.?[0-9]*\\\"))$",
46 "match": [
47 "2", "2 m", "0.6 mi", "16'3\"", "12.2", "2.5", "2.00", "0.30479999"
48 ],
49 "reject": [
50 "2m", "12' 6\"", "2km", "0,6", "2,5", "3,00", "8' - 10'", ".2"
51 ]
52 },
53 {
54 "key": "maxwidth",
55 "regexp": "^(([0-9]+\\.?[0-9]*( m)?)|([0-9]+\\'[0-9]+\\.?[0-9]*\\\"))$",
56 "match": [
57 "2", "3 m", "2.2", "6'6\"", "10'0\"", "3.6576", "2.50", "33.05"
58 ],
59 "reject": [
60 "3.8m", "2.8 meters", "0,6", "7 ft", "6.5 ft", "7'", "2.3; 7'9\"", "13' 6\"", "7ft6in", "2m"
61 ]
62 },
63 {
64 "key": "maxspeed",
65 "regexp": "^(signals|none|unposted|unknown|variable|walk|[1-9][0-9]*( [a-z]+)?|[A-Z][A-Z]:(urban|rural|living_street|motorway))$",
66 "match": [
67 "50", "30", "60", "30 mph", "RO:urban", "100", "none", "10 knots", "signals", "RU:rural", "5", "250", "walk"
68 ],
69 "reject": [
70 "70mph", "ru:urban"
71 ]
72 },
73 {
74 "key": "frequency",
75 "regexp": "^(0|[1-9][0-9]*(\\.[0-9]+)?)( (kHz|MHz|GHz|THz))?$",
76 "match": [
77 "0", "16.7", "50", "60", "16.67"
78 ],
79 "reject": [
80 "16.7 ; 50", "16,7", "680kHz", "50 khz", "50 KHZ"
81 ]
82 },
83 {
84 "key": "gauge",
85 "regexp": "^([1-9][0-9]{1,3}(;[1-9][0-9]{1,3})*|broad|standard|narrow)$",
86 "match": [
87 "1435", "750", "1000;1435", "broad", "standard", "narrow", "127;184", "89;127;184", "89;127;144;184"
88 ],
89 "reject": [
90 "1435mm"
91 ]
92 },
93 {
94 "key": "incline",
95 "regexp": "^(up|down|-?([0-9]+?(\\.[1-9]%)?|100)[%°]?)$",
96 "match": [
97 "up", "down", "10%", "-10%", "12%", "15%", "0", "5%", "10", "15", "-10°", "-6%", "10°", "5°", "-5°"
98 ],
99 "reject": [
100 "10 °", "5 °", "10 %", "-10 %", "5 %", "-5 %", "11.7 %", "2,5%", "3,5", "+33%", "incline=20°", "yes;10%"
101 ]
102 },
103 {
104 "key": "voltage",
105 "regexp": "([A-Za-z])|,|( )",
106 "match": [
107 "15 kV", "15,000", "11000; 400", "11000,400", "11000 ;400"
108 ],
109 "reject": [
110 "15000", "25000", "3000", "1500", "750", "110000", "11000;400", "380000;220000;110000"
111 ],
112 "comment": "This test is reversed, it checks for violations rather than what is permitted."
113 }
114 ]
115}
116