コード例 #1
0
ファイル: test_stategraph2.py プロジェクト: 10183308/eco-1
def test_state_0():
    # State 0
    # Z ::= .S
    # S ::= .bAd
    s = StateSet()
    s.add(State(None_S, 0))
    s.add(State(S_bAd, 0))
    assert graph.state_sets[0] == s
コード例 #2
0
ファイル: test_stategraph2.py プロジェクト: Britefury/eco
def test_state_0():
    # State 0
    # Z ::= .S
    # S ::= .bAd
    s = StateSet()
    s.add(State(None_S, 0))
    s.add(State(S_bAd, 0))
    assert graph.state_sets[0] == s
コード例 #3
0
ファイル: test_stategraph.py プロジェクト: Britefury/eco
def test_state_1():
    # State 1
    # Z ::= S.
    # S ::= S.b
    s = StateSet()
    s.add(move_dot(None_S, 1))
    s.add(move_dot(S_Sb, 1))

    assert graph.state_sets[1] == s
コード例 #4
0
ファイル: test_stategraph.py プロジェクト: 10183308/eco-1
def test_state_1():
    # State 1
    # Z ::= S.
    # S ::= S.b
    s = StateSet()
    s.add(move_dot(None_S, 1))
    s.add(move_dot(S_Sb, 1))

    assert graph.state_sets[1] == s
コード例 #5
0
ファイル: test_helpers.py プロジェクト: ptersilie/eco
def test_closure_recursion():
    pytest.skip("what is this supposed to test?")
    s1 = StateSet()
    s1.add(LR1Element(Production(Z, [E]), 0, set([finish])), [finish])

    closure = helper1.closure_1(s1)
    assert len(closure.elements) == 4
    assert LR1Element(Production(Z, [E]), 0, set([finish])) in closure
    assert LR1Element(Production(E, [P]), 0, set([plus, finish])) in closure
    assert LR1Element(Production(E, [E, plus, P]), 0, set([plus, finish])) in closure
    assert LR1Element(Production(P, [a]), 0, set([plus, finish])) in closure
コード例 #6
0
ファイル: test_helpers.py プロジェクト: ptersilie/eco
def test_closure_1():
    s1 = StateSet()
    s1.add(LR1Element(Production(Z, [S]), 0, set([finish])), [finish])
    closure = helper1.closure_1(s1)
    assert len(closure.elements) == 4
    assert LR1Element(Production(Z, [S]), 0, set([finish])) in closure
    assert LR1Element(Production(S, [S, b]), 0, set([b, finish])) in closure
    assert LR1Element(Production(S, [b, A, a]), 0, set([b, finish])) in closure
    assert LR1Element(Production(S, [a]), 0, set([b, finish])) in closure

    s2 = StateSet()
    s2.add(LR1Element(Production(F, [C, D, f]), 0, set([finish])), [finish])
    closure = helper1.closure_1(s2)
    assert len(closure.elements) == 4
    assert LR1Element(Production(F, [C, D, f]), 0, set([finish])) in closure
    assert LR1Element(Production(C, [D, A]), 0, set([d, f])) in closure
    assert LR1Element(Production(D, [d]), 0, set([a])) in closure
    assert LR1Element(Production(D, [epsilon]), 1, set([a])) in closure
コード例 #7
0
ファイル: test_stategraph.py プロジェクト: 10183308/eco-1
def test_state_2():
    # State 2
    # S ::= b.Aa
    # A ::= .aSc
    # A ::= .a
    # A ::= .aSb
    s = StateSet()
    s.add(move_dot(S_bAa, 1))
    s.add(A_aSc)
    s.add(A_a)
    s.add(A_aSb)

    assert graph.state_sets[2] == s
コード例 #8
0
ファイル: test_stategraph.py プロジェクト: Britefury/eco
def test_state_2():
    # State 2
    # S ::= b.Aa
    # A ::= .aSc
    # A ::= .a
    # A ::= .aSb
    s = StateSet()
    s.add(move_dot(S_bAa, 1))
    s.add(A_aSc)
    s.add(A_a)
    s.add(A_aSb)

    assert graph.state_sets[2] == s
コード例 #9
0
ファイル: test_helpers.py プロジェクト: ptersilie/eco
def test_closure_0():
    s1 = StateSet()
    s =  State(Production(Nonterminal("Z"), [Nonterminal("S")]), 0) # first state Z ::= .S
    s1.add(s)
    closure = helper1.closure_0(s1)
    assert len(closure.elements) == 4
    assert State(Production(Z, [S]), 0) in closure
    assert State(Production(S, [S, b]), 0) in closure
    assert State(Production(S, [b, A, a]), 0) in closure
    assert State(Production(S, [a]), 0) in closure

    s2 = StateSet()
    s =  State(Production(F, [C, D, f]), 0)
    s2.add(s)
    closure = helper1.closure_0(s2)
    assert len(closure.elements) == 4
    assert State(Production(F, [C, D, f]), 0) in closure
    assert State(Production(C, [D, A]), 0) in closure
    assert State(Production(D, [d]), 0) in closure
    assert State(Production(D, [Epsilon()]), 1) in closure

    s3 = StateSet()
    s =  State(Production(C, [D, A]), 1)
    s3.add(s)
    closure = helper1.closure_0(s3)
    assert len(closure.elements) == 4
    assert State(Production(C, [D, A]), 1) in closure
    assert State(Production(A, [a, S, c]), 0) in closure
    assert State(Production(A, [a, S, b]), 0) in closure
    assert State(Production(A, [a]), 0) in closure
コード例 #10
0
ファイル: test_stategraph2.py プロジェクト: Britefury/eco
def test_state_2():
    # State 2
    # S ::= b.Ad
    # A ::= .c
    # A ::= .
    s = StateSet()
    s.add(State(S_bAd, 1))
    s.add(State(A_c, 0))
    s.add(State(A_None, 1))
    assert graph.state_sets[2] == s
コード例 #11
0
ファイル: test_stategraph2.py プロジェクト: 10183308/eco-1
def test_state_2():
    # State 2
    # S ::= b.Ad
    # A ::= .c
    # A ::= .
    s = StateSet()
    s.add(State(S_bAd, 1))
    s.add(State(A_c, 0))
    s.add(State(A_None, 1))
    assert graph.state_sets[2] == s
コード例 #12
0
ファイル: test_stategraph.py プロジェクト: 10183308/eco-1
def test_state_0():
    # State 0
    # Z ::= .S
    # S ::= .Sb
    # S ::= .bAa
    s = StateSet()
    s.add(None_S)
    s.add(S_Sb)
    s.add(S_bAa)

    assert graph.state_sets[0] == s
コード例 #13
0
ファイル: test_stategraph.py プロジェクト: Britefury/eco
def test_state_0():
    # State 0
    # Z ::= .S
    # S ::= .Sb
    # S ::= .bAa
    s = StateSet()
    s.add(None_S)
    s.add(S_Sb)
    s.add(S_bAa)

    assert graph.state_sets[0] == s
コード例 #14
0
ファイル: test_stategraph2.py プロジェクト: 10183308/eco-1
def test_state_6():
    # State 6
    # S ::= bAd.
    s = StateSet()
    s.add(State(S_bAd, 3))
    assert s in graph.state_sets
コード例 #15
0
ファイル: test_stategraph2.py プロジェクト: Britefury/eco
def test_state_4():
    # State 4
    # S ::= bA.d
    s = StateSet()
    s.add(State(S_bAd, 2))
    assert s in graph.state_sets
コード例 #16
0
ファイル: test_stategraph2.py プロジェクト: Britefury/eco
def test_state_6():
    # State 6
    # S ::= bAd.
    s = StateSet()
    s.add(State(S_bAd, 3))
    assert s in graph.state_sets
コード例 #17
0
ファイル: test_stategraph2.py プロジェクト: Britefury/eco
def test_state_5():
    # State 5
    # A ::= c.
    s = StateSet()
    s.add(State(A_c, 1))
    assert s in graph.state_sets
コード例 #18
0
ファイル: test_stategraph2.py プロジェクト: 10183308/eco-1
def test_state_5():
    # State 5
    # A ::= c.
    s = StateSet()
    s.add(State(A_c, 1))
    assert s in graph.state_sets
コード例 #19
0
ファイル: test_stategraph2.py プロジェクト: Britefury/eco
def test_state_1():
    # State 1
    # Z ::= S.
    s = StateSet()
    s.add(State(None_S, 1))
    assert graph.state_sets[1] == s
コード例 #20
0
ファイル: test_stategraph2.py プロジェクト: 10183308/eco-1
def test_state_4():
    # State 4
    # S ::= bA.d
    s = StateSet()
    s.add(State(S_bAd, 2))
    assert s in graph.state_sets
コード例 #21
0
ファイル: test_stategraph2.py プロジェクト: 10183308/eco-1
def test_state_1():
    # State 1
    # Z ::= S.
    s = StateSet()
    s.add(State(None_S, 1))
    assert graph.state_sets[1] == s