Exemplo n.º 1
0
def test19():
    exp = Re("This is a test")
    assert isinstance(exp, Expression.Seq)
    assert exp.expressions[0].char == "T"
    assert exp.expressions[-1].char == "t"
    format = optimize.optimize(exp)
    assert format.string == "This is a test"
Exemplo n.º 2
0
def test5():
    format = optimize.optimize(Group(None, Str("A")) + \
                               Group("B", Str("B")) + \
                               Group(None, Str("C")))
    assert format.expressions[0].string == "A"
    assert format.expressions[1].expression.string == "B"
    assert format.expressions[2].string == "C"
Exemplo n.º 3
0
def test5():
    format = optimize.optimize(Group(None, Str("A")) + \
                               Group("B", Str("B")) + \
                               Group(None, Str("C")))
    assert format.expressions[0].string == "A"
    assert format.expressions[1].expression.string == "B"
    assert format.expressions[2].string == "C"
Exemplo n.º 4
0
def test1():
    format = Group(None, Group("test", Str("A")))
    assert format.name is None
    format2 = optimize.optimize(format)
    assert format.name is None    # must not affect original expressions
    assert format2.name == "test" # got rid of top level
    assert format2.expression.string == "A"
Exemplo n.º 5
0
def test1():
    format = Group(None, Group("test", Str("A")))
    assert format.name is None
    format2 = optimize.optimize(format)
    assert format.name is None  # must not affect original expressions
    assert format2.name == "test"  # got rid of top level
    assert format2.expression.string == "A"
Exemplo n.º 6
0
def test19():
    exp = Re("This is a test")
    assert isinstance(exp, Expression.Seq)
    assert exp.expressions[0].char == "T"
    assert exp.expressions[-1].char == "t"
    format = optimize.optimize(exp)
    assert format.string == "This is a test"
Exemplo n.º 7
0
def test13():
    format = optimize.optimize(Expression.Any("A") + \
                               Expression.Any("B") + \
                               Expression.Any("C") + \
                               ((Expression.Any("D") + \
                                 Expression.Any("E")) + \
                                Expression.Any("F")))
    assert format.string == "ABCDEF"
Exemplo n.º 8
0
def test13():
    format = optimize.optimize(Expression.Any("A") + \
                               Expression.Any("B") + \
                               Expression.Any("C") + \
                               ((Expression.Any("D") + \
                                 Expression.Any("E")) + \
                                Expression.Any("F")))
    assert format.string == "ABCDEF"
Exemplo n.º 9
0
def test20():
    test_format = Group("full_format",
                        Rep(Group("a_record",
                                  Str("A") + Opt(Str("B")) + Str("\n"))) + \
                        Str("Z"))

    text = "A\nAC\nAB\nZ"
    pos = check_error_pos(text, test_format)
    assert pos == 0

    format = select_names(test_format, ())
    format = optimize.optimize(format)
    pos = check_error_pos(text, format)
    assert pos == 2
Exemplo n.º 10
0
def test20():
    test_format = Group("full_format",
                        Rep(Group("a_record",
                                  Str("A") + Opt(Str("B")) + Str("\n"))) + \
                        Str("Z"))

    text = "A\nAC\nAB\nZ"
    pos = check_error_pos(text, test_format)
    assert pos == 0
    
    format = select_names(test_format, ())
    format = optimize.optimize(format)
    pos = check_error_pos(text, format)
    assert pos == 2
Exemplo n.º 11
0
def test9():
    # Shows that subexpressions are combined first
    format = optimize.optimize(Str("A") + (Str("B") + Str("C")))
    assert format.string == "ABC"
Exemplo n.º 12
0
def test10():
    format = optimize.optimize(Any("A") + Str("B"))
    assert format.string == "AB"
Exemplo n.º 13
0
def test8():
    format = optimize.optimize((Str("A") + Str("B")) + Str("C"))
    assert format.string == "ABC"
Exemplo n.º 14
0
def test16():
    format = optimize.optimize(Str("A") + Expression.Literal("B"))
    assert format.string == "AB"
Exemplo n.º 15
0
def test18():
    format = optimize.optimize(
        Group(None, Group(None, Str("A") + Str("B")) + Str("C")) + \
        Group(None, Str("D") + Expression.Any("E") + \
              Group(None, Str("FG") + Str("H")) + Group(None, Str("I"))))
    assert format.string == "ABCDEFGHI"
Exemplo n.º 16
0
def test11():
    format = optimize.optimize(AnyBut("A") + Str("B"))
    assert format.expressions[1].string == "B"
Exemplo n.º 17
0
def test2():
    format = Group("test", Group(None, Str("A")))
    format = optimize.optimize(format)
    assert format.name == "test"
    assert format.expression.string == "A"
Exemplo n.º 18
0
def test16():
    format = optimize.optimize(Str("A") + Expression.Literal("B"))
    assert format.string == "AB"
Exemplo n.º 19
0
def test7():
    format = optimize.optimize(Str("A") + Str("B") + Str("C") + Str("D"))
    assert format.string == "ABCD"
Exemplo n.º 20
0
def test14():
    format = optimize.optimize(Str("A") + Expression.Any("B", invert=1))
    assert isinstance(format, Expression.Seq)
Exemplo n.º 21
0
def test15():
    format = optimize.optimize(Str("A") + Any("BC"))
    assert isinstance(format, Expression.Seq)
Exemplo n.º 22
0
def test8():
    format = optimize.optimize((Str("A") + Str("B")) + Str("C"))
    assert format.string == "ABC"
Exemplo n.º 23
0
def test12():
    format = optimize.optimize(Str("A") + Expression.Any("B"))
    assert format.string == "AB"
Exemplo n.º 24
0
def test11():
    format = optimize.optimize(AnyBut("A") + Str("B"))
    assert format.expressions[1].string == "B"
Exemplo n.º 25
0
def test3():
    format = optimize.optimize(Rep1(Group(None, Str("A"))))
    assert format.expression.string == "A"
Exemplo n.º 26
0
def test2():
    format = Group("test", Group(None, Str("A")))
    format = optimize.optimize(format)
    assert format.name == "test"
    assert format.expression.string == "A"
Exemplo n.º 27
0
def test10():
    format = optimize.optimize(Any("A") + Str("B"))
    assert format.string == "AB"
Exemplo n.º 28
0
def test3():
    format = optimize.optimize(Rep1(Group(None, Str("A"))))
    assert format.expression.string == "A"
Exemplo n.º 29
0
def test12():
    format = optimize.optimize(Str("A") + Expression.Any("B"))
    assert format.string == "AB"
Exemplo n.º 30
0
def test4():
    format = optimize.optimize(Group(None, Group(None, Group(None, Str("A")))))
    assert format.string == "A"
Exemplo n.º 31
0
def test15():
    format = optimize.optimize(Str("A") + Any("BC"))
    assert isinstance(format, Expression.Seq)
Exemplo n.º 32
0
def test4():
    format = optimize.optimize(Group(None, Group(None, Group(None, Str("A")))))
    assert format.string == "A"
Exemplo n.º 33
0
def test17():
    format = optimize.optimize(Str("A") + Expression.Literal("B", invert = 1))
    assert isinstance(format, Expression.Seq)
Exemplo n.º 34
0
def test7():
    format = optimize.optimize(Str("A") + Str("B") + Str("C") + Str("D"))
    assert format.string == "ABCD"
Exemplo n.º 35
0
def test18():
    format = optimize.optimize(
        Group(None, Group(None, Str("A") + Str("B")) + Str("C")) + \
        Group(None, Str("D") + Expression.Any("E") + \
              Group(None, Str("FG") + Str("H")) + Group(None, Str("I"))))
    assert format.string == "ABCDEFGHI"
Exemplo n.º 36
0
def test9():
    # Shows that subexpressions are combined first
    format = optimize.optimize(Str("A") + (Str("B") + Str("C")))
    assert format.string == "ABC"