@@ -12,11 +12,28 @@ def _verify_range(self, regex, min_, max_, from_min_, to_max_):
1212
1313 def test_quality (self ):
1414 self .assertEqual (regex_for_range (1 , 1 ), '1' )
15+ self .assertEqual (regex_for_range (0 , 1 ), '[0-1]' )
16+ self .assertEqual (regex_for_range (- 1 , - 1 ), '-1' )
17+ self .assertEqual (regex_for_range (- 1 , 0 ), '-1|0' )
18+ self .assertEqual (regex_for_range (- 1 , 1 ), '-1|[0-1]' )
19+ self .assertEqual (regex_for_range (- 4 , - 2 ), '-[2-4]' )
20+ self .assertEqual (regex_for_range (- 3 , 1 ), '-[1-3]|[0-1]' )
21+ self .assertEqual (regex_for_range (- 2 , 0 ), '-[1-2]|0' )
22+ self .assertEqual (regex_for_range (0 , 2 ), '[0-2]' )
23+ self .assertEqual (regex_for_range (- 1 , 3 ), '-1|[0-3]' )
1524 self .assertEqual (regex_for_range (65666 , 65667 ), '6566[6-7]' )
1625 self .assertEqual (regex_for_range (12 , 3456 ), r'1[2-9]|[2-9]\d|[1-9]\d{2}|[1-2]\d{3}|3[0-3]\d{2}|34[0-4]\d|345[0-6]' )
1726 self .assertEqual (regex_for_range (1 , 19 ), r'[1-9]|1\d' )
1827 self .assertEqual (regex_for_range (1 , 99 ), r'[1-9]|[1-9]\d' )
1928
29+ def test_optimization (self ):
30+ self .assertEqual (regex_for_range (- 9 , 9 ), r'-[1-9]|\d' )
31+ self .assertEqual (regex_for_range (- 19 , 19 ), r'-[1-9]|-?1\d|\d' )
32+ self .assertEqual (regex_for_range (- 29 , 29 ), r'-[1-9]|-?[1-2]\d|\d' )
33+ self .assertEqual (regex_for_range (- 99 , 99 ), r'-[1-9]|-?[1-9]\d|\d' )
34+ self .assertEqual (regex_for_range (- 999 , 999 ), r'-[1-9]|-?[1-9]\d|-?[1-9]\d{2}|\d' )
35+ self .assertEqual (regex_for_range (- 9999 , 9999 ), r'-[1-9]|-?[1-9]\d|-?[1-9]\d{2}|-?[1-9]\d{3}|\d' )
36+
2037 def test_equal (self ):
2138 regex = bounded_regex_for_range (1 , 1 )
2239 self ._verify_range (regex , 1 , 1 , 0 , 100 )
0 commit comments