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