Beispiel #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"
Beispiel #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"
Beispiel #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"
Beispiel #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"
Beispiel #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"
Beispiel #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"
Beispiel #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"
Beispiel #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"
Beispiel #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
Beispiel #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
Beispiel #11
0
def test9():
    # Shows that subexpressions are combined first
    format = optimize.optimize(Str("A") + (Str("B") + Str("C")))
    assert format.string == "ABC"
Beispiel #12
0
def test10():
    format = optimize.optimize(Any("A") + Str("B"))
    assert format.string == "AB"
Beispiel #13
0
def test8():
    format = optimize.optimize((Str("A") + Str("B")) + Str("C"))
    assert format.string == "ABC"
Beispiel #14
0
def test16():
    format = optimize.optimize(Str("A") + Expression.Literal("B"))
    assert format.string == "AB"
Beispiel #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"
Beispiel #16
0
def test11():
    format = optimize.optimize(AnyBut("A") + Str("B"))
    assert format.expressions[1].string == "B"
Beispiel #17
0
def test2():
    format = Group("test", Group(None, Str("A")))
    format = optimize.optimize(format)
    assert format.name == "test"
    assert format.expression.string == "A"
Beispiel #18
0
def test16():
    format = optimize.optimize(Str("A") + Expression.Literal("B"))
    assert format.string == "AB"
Beispiel #19
0
def test7():
    format = optimize.optimize(Str("A") + Str("B") + Str("C") + Str("D"))
    assert format.string == "ABCD"
Beispiel #20
0
def test14():
    format = optimize.optimize(Str("A") + Expression.Any("B", invert=1))
    assert isinstance(format, Expression.Seq)
Beispiel #21
0
def test15():
    format = optimize.optimize(Str("A") + Any("BC"))
    assert isinstance(format, Expression.Seq)
Beispiel #22
0
def test8():
    format = optimize.optimize((Str("A") + Str("B")) + Str("C"))
    assert format.string == "ABC"
Beispiel #23
0
def test12():
    format = optimize.optimize(Str("A") + Expression.Any("B"))
    assert format.string == "AB"
Beispiel #24
0
def test11():
    format = optimize.optimize(AnyBut("A") + Str("B"))
    assert format.expressions[1].string == "B"
Beispiel #25
0
def test3():
    format = optimize.optimize(Rep1(Group(None, Str("A"))))
    assert format.expression.string == "A"
Beispiel #26
0
def test2():
    format = Group("test", Group(None, Str("A")))
    format = optimize.optimize(format)
    assert format.name == "test"
    assert format.expression.string == "A"
Beispiel #27
0
def test10():
    format = optimize.optimize(Any("A") + Str("B"))
    assert format.string == "AB"
Beispiel #28
0
def test3():
    format = optimize.optimize(Rep1(Group(None, Str("A"))))
    assert format.expression.string == "A"
Beispiel #29
0
def test12():
    format = optimize.optimize(Str("A") + Expression.Any("B"))
    assert format.string == "AB"
Beispiel #30
0
def test4():
    format = optimize.optimize(Group(None, Group(None, Group(None, Str("A")))))
    assert format.string == "A"
Beispiel #31
0
def test15():
    format = optimize.optimize(Str("A") + Any("BC"))
    assert isinstance(format, Expression.Seq)
Beispiel #32
0
def test4():
    format = optimize.optimize(Group(None, Group(None, Group(None, Str("A")))))
    assert format.string == "A"
Beispiel #33
0
def test17():
    format = optimize.optimize(Str("A") + Expression.Literal("B", invert = 1))
    assert isinstance(format, Expression.Seq)
Beispiel #34
0
def test7():
    format = optimize.optimize(Str("A") + Str("B") + Str("C") + Str("D"))
    assert format.string == "ABCD"
Beispiel #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"
Beispiel #36
0
def test9():
    # Shows that subexpressions are combined first
    format = optimize.optimize(Str("A") + (Str("B") + Str("C")))
    assert format.string == "ABC"