Exemplo n.º 1
0
    def test_concatenation(self):
        assert parse_regex(" foo bar ") == Concatenation(
            Symbol("foo"),
            Symbol("bar"),
        )

        assert parse_regex(" foo bar baz ") == Concatenation(
            Symbol("foo"),
            Concatenation(
                Symbol("bar"),
                Symbol("baz"),
            ),
        )
Exemplo n.º 2
0
    def test_union(self):
        assert parse_regex(" foo | ") == Union(
            Symbol("foo"),
            None,
        )

        assert parse_regex(" foo | bar ") == Union(
            Symbol("foo"),
            Symbol("bar"),
        )

        assert parse_regex(" foo | bar | baz ") == Union(
            Union(
                Symbol("foo"),
                Symbol("bar"),
            ),
            Symbol("baz"),
        )
Exemplo n.º 3
0
 def test_parentheses(self):
     assert parse_regex(" (foo) (bar baz) * (qux quo)") == Concatenation(
         Symbol("foo"),
         Concatenation(
             Star(Concatenation(
                 Symbol("bar"),
                 Symbol("baz"),
             ), ),
             Concatenation(
                 Symbol("qux"),
                 Symbol("quo"),
             ),
         ),
     )
Exemplo n.º 4
0
 def test_wildcard(self):
     assert parse_regex(" . ") == Symbol(".")
Exemplo n.º 5
0
 def test_symbol(self):
     assert parse_regex(" foo ") == Symbol("foo")
Exemplo n.º 6
0
 def test_empty(self):
     assert parse_regex(" ") is None
Exemplo n.º 7
0
 def test_unmatched_opening_parentheses(self):
     with pytest.raises(SymbolRegexSyntaxError,
                        match=r"Unmatched parentheses"):
         parse_regex(" ( ( foo )")
Exemplo n.º 8
0
 def test_modifier_at_start_of_expression(self):
     with pytest.raises(SymbolRegexSyntaxError,
                        match=r"Modifier at start of expression"):
         parse_regex(" ? foo ")
Exemplo n.º 9
0
 def test_modifier_before_parenthesis(self):
     with pytest.raises(SymbolRegexSyntaxError,
                        match=r"Modifier before '\(' at position 1"):
         parse_regex(" ( ? foo ) ")
Exemplo n.º 10
0
 def test_modifier_before_union(self):
     with pytest.raises(SymbolRegexSyntaxError,
                        match=r"Modifier before '\|' at position 2"):
         parse_regex("a | ? b")
Exemplo n.º 11
0
 def test_multiple_modifiers(self):
     with pytest.raises(SymbolRegexSyntaxError,
                        match=r"Multiple modifiers at position 4"):
         parse_regex("foo ? *")
Exemplo n.º 12
0
 def test_query(self):
     assert parse_regex(" foo ? ") == Union(Symbol("foo"), None)
Exemplo n.º 13
0
 def test_plus(self):
     assert parse_regex(" foo + ") == Concatenation(
         Symbol("foo"),
         Star(Symbol("foo")),
     )
Exemplo n.º 14
0
 def test_star(self):
     assert parse_regex(" foo * ") == Star(Symbol("foo"))