예제 #1
0
 def test_range_in_brackets_trap(self):
     regex = PythonRegex("a[a-e-z]")
     self.assertTrue(regex.accepts(["a", "a"]))
     self.assertTrue(regex.accepts(["a", "c"]))
     self.assertTrue(regex.accepts(["a", "z"]))
     self.assertTrue(regex.accepts(["a", "-"]))
     self.assertFalse(regex.accepts(["a", "y"]))
     self.assertFalse(regex.accepts(["a", "f"]))
예제 #2
0
 def test_dot(self):
     regex = PythonRegex("a.")
     self.assertTrue(regex.accepts(["a", "b"]))
     self.assertTrue(regex.accepts(["a", "?"]))
     self.assertFalse(regex.accepts(["a", "\n"]))
     self.assertFalse(regex.accepts(["a"]))
     self.assertTrue(regex.accepts(["a", "|"]))
     self.assertTrue(regex.accepts(["a", "("]))
     self.assertTrue(regex.accepts(["a", ")"]))
     self.assertTrue(regex.accepts(["a", "."]))
     self.assertTrue(regex.accepts(["a", "*"]))
     self.assertTrue(regex.accepts(["a", "+"]))
     self.assertTrue(regex.accepts(["a", "$"]))
예제 #3
0
 def test_range_in_brackets(self):
     regex = PythonRegex("a[a-z]")
     self.assertTrue(regex.accepts(["a", "a"]))
     self.assertTrue(regex.accepts(["a", "c"]))
     self.assertTrue(regex.accepts(["a", "g"]))
     self.assertTrue(regex.accepts(["a", "z"]))
     self.assertFalse(regex.accepts(["a", "b", "c"]))
     self.assertFalse(regex.accepts(["a", "A"]))
예제 #4
0
 def test_shortcut_word(self):
     regex = PythonRegex(r"a\w")
     self.assertTrue(regex.accepts(["a", "0"]))
     self.assertTrue(regex.accepts(["a", "_"]))
     self.assertTrue(regex.accepts(["a", "A"]))
     self.assertTrue(regex.accepts(["a", "f"]))
예제 #5
0
 def test_space(self):
     regex = PythonRegex(" ")
     self.assertTrue(regex.accepts([" "]))
예제 #6
0
 def test_escape_closing_bracket(self):
     regex = PythonRegex(r"a\]")
     self.assertTrue(regex.accepts(["a", "]"]))
예제 #7
0
 def test_escape_kleene_star(self):
     regex = PythonRegex(r"ab\*")
     self.assertTrue(regex.accepts(["a", "b", "*"]))
예제 #8
0
 def test_with_parenthesis_optional(self):
     regex = PythonRegex("a(bb|c)?")
     self.assertTrue(regex.accepts(["a"]))
     self.assertTrue(regex.accepts(["a", "b", "b"]))
     self.assertTrue(regex.accepts(["a", "c"]))
     self.assertFalse(regex.accepts(["a", "b"]))
예제 #9
0
 def test_dot_spaces(self):
     regex = PythonRegex("a.")
     self.assertTrue(regex.accepts(["a", " "]))
     self.assertTrue(regex.accepts(["a", "\t"]))
     self.assertTrue(regex.accepts(["a", "\v"]))
     self.assertTrue(regex.accepts(["a", "\r"]))
예제 #10
0
 def test_escape_backslash_opening_bracket(self):
     regex = PythonRegex(r"a\\[ab]")
     self.assertTrue(regex.accepts(["a", "\\", "a"]))
     self.assertTrue(regex.accepts(["a", "\\", "b"]))
예제 #11
0
 def test_range_in_brackets_trap2_bis(self):
     regex = PythonRegex(re.compile("[a-e-g-z]*"))
     self.assertTrue(regex.accepts(["a", "-", "y"]))
예제 #12
0
 def test_special_in_brackets_closing_parenthesis(self):
     regex = PythonRegex(r"a[a)]")
     self.assertTrue(regex.accepts(["a", "a"]))
     self.assertTrue(regex.accepts(["a", ")"]))
예제 #13
0
 def test_with_brackets(self):
     regex = PythonRegex("a[bc]")
     self.assertTrue(regex.accepts(["a", "b"]))
     self.assertTrue(regex.accepts(["a", "c"]))
     self.assertFalse(regex.accepts(["a", "b", "c"]))
     self.assertFalse(regex.accepts(["a", "a"]))
예제 #14
0
 def test_escape_dash_in_brackets(self):
     regex = PythonRegex(r"a[a\-]")
     self.assertTrue(regex.accepts(["a", "a"]))
     self.assertTrue(regex.accepts(["a", "-"]))
예제 #15
0
 def test_escape_backslash_question_mark(self):
     regex = PythonRegex(r"a\\?")
     self.assertTrue(regex.accepts(["a"]))
     self.assertTrue(regex.accepts(["a", "\\"]))
     self.assertFalse(regex.accepts(["a", "\\", "?"]))
     self.assertFalse(regex.accepts(["a", "\\?"]))
예제 #16
0
 def test_escape_backslash_closing_bracket(self):
     regex = PythonRegex(r"a[ab\\]")
     self.assertTrue(regex.accepts(["a", "a"]))
     self.assertTrue(regex.accepts(["a", "b"]))
     self.assertTrue(regex.accepts(["a", "\\"]))
예제 #17
0
 def test_plus(self):
     regex = PythonRegex("a+")
     self.assertFalse(regex.accepts([]))
     self.assertTrue(regex.accepts(["a"]))
     self.assertTrue(regex.accepts(["a", "a"]))
예제 #18
0
 def test_special_in_brackets_kleene_star(self):
     regex = PythonRegex(r"a[a*]")
     self.assertTrue(regex.accepts(["a", "a"]))
     self.assertTrue(regex.accepts(["a", "*"]))
     self.assertFalse(regex.accepts(["a", "a", "a"]))
예제 #19
0
 def test_escape_backslash_plus(self):
     regex = PythonRegex(r"a\\+")
     self.assertTrue(regex.accepts(["a", "\\", "\\"]))
예제 #20
0
 def test_parenthesis(self):
     regex = PythonRegex("((a)|(b))+")
     self.assertTrue(regex.accepts(["a", "b"]))
예제 #21
0
 def test_special_in_brackets_positive_closure(self):
     regex = PythonRegex(r"a[a+]")
     self.assertTrue(regex.accepts(["a", "a"]))
     self.assertTrue(regex.accepts(["a", "+"]))
     self.assertFalse(regex.accepts(["a", "a", "a"]))
예제 #22
0
 def test_special_in_brackets_optional(self):
     regex = PythonRegex(r"a[a?]")
     self.assertTrue(regex.accepts(["a", "a"]))
     self.assertTrue(regex.accepts(["a", "?"]))
     self.assertFalse(regex.accepts(["a"]))
예제 #23
0
 def test_shortcut_digits(self):
     regex = PythonRegex(r"a\d")
     self.assertTrue(regex.accepts(["a", "0"]))
     self.assertTrue(regex.accepts(["a", "1"]))
예제 #24
0
 def test_simple_optional(self):
     regex = PythonRegex("ab?")
     self.assertTrue(regex.accepts(["a"]))
     self.assertTrue(regex.accepts(["a", "b"]))
     self.assertFalse(regex.accepts(["a", "a"]))
예제 #25
0
 def test_shortcut_digits_in_brackets(self):
     regex = PythonRegex(r"a[\da]")
     self.assertTrue(regex.accepts(["a", "0"]))
     self.assertTrue(regex.accepts(["a", "1"]))
     self.assertTrue(regex.accepts(["a", "a"]))
예제 #26
0
 def test_escape_question_mark(self):
     regex = PythonRegex(r"ab\?")
     self.assertTrue(regex.accepts(["a", "b", "?"]))
예제 #27
0
 def test_shortcut_spaces(self):
     regex = PythonRegex(r"a\s")
     self.assertTrue(regex.accepts(["a", " "]))
     self.assertTrue(regex.accepts(["a", "\t"]))
예제 #28
0
 def test_escape_plus(self):
     regex = PythonRegex(r"ab\+")
     self.assertTrue(regex.accepts(["a", "b", "+"]))
     self.assertFalse(regex.accepts(["a", "b", "\\"]))
예제 #29
0
 def test_escape_opening_bracket(self):
     regex = PythonRegex(r"a\[")
     self.assertTrue(regex.accepts(["a", "["]))