Exemple #1
0
def test_eu_loop():
    t = Transition([0], [0])
    p = PetriNet([t])
    s1 = State([1], p)
    prop = EUProposition(TrueProposition(), FalseProposition())
    s1.evaluate(prop) # should terminate
    assert len(p._states_cache) == 1
Exemple #2
0
def test_eg_loop():
    t = Transition([0], [0])
    p = PetriNet([t])
    s1 = State([1], p)
    prop = EGProposition(TrueProposition())
    assert s1.evaluate(prop) == True
    assert len(p._states_cache) == 1
Exemple #3
0
def test_eu_proposition_2():
    t = Transition([0], [1])
    p = PetriNet([t])
    s1 = State([0,2], p)
    prop = EUProposition(LessProposition(NumericExpression(0),
    VariableExpression(0)), TrueProposition())
    assert s1.evaluate(prop) == True
Exemple #4
0
def test_ex_proposition():
    t1 = Transition([0], [1])
    t2 = Transition([1], [2])
    p = PetriNet([t1, t2])
    s1 = State([1,1,0], p)
    prop = EXProposition(EqualsProposition(VariableExpression(0), NumericExpression(0)))
    assert s1.evaluate(prop) == True
Exemple #5
0
def test_eu_proposition_1():
    t = Transition([0], [1])
    p = PetriNet([t])
    s1 = State([0,2], p)
    prop = EUProposition(LessProposition(NumericExpression(0),
    VariableExpression(0)), EqualsProposition(VariableExpression(1), NumericExpression(3)))
    assert s1.evaluate(prop) == False
Exemple #6
0
def test_dual_loop():
    t1 = Transition([0], [1])
    t2 = Transition([1], [0])
    p = PetriNet([t1, t2])
    s1 = State([0, 1], p)
    prop = EGProposition(TrueProposition())
    assert s1.evaluate(prop) == True
Exemple #7
0
def test_eu_proposition_3():
    p = PetriNet([])
    s = State([], p)
    prop = EUProposition(TrueProposition(), FalseProposition())
    assert s.evaluate(prop) == False
Exemple #8
0
def test_petri_net_with_propositions():
    t = Transition([0], [1])
    p = PetriNet([t])
    s1 = State([1,0], p)
    assert s1.evaluate(AndProposition(EqualsProposition(VariableExpression(0), NumericExpression(1)),
                                    EqualsProposition(VariableExpression(1), NumericExpression(0))))
Exemple #9
0
def test_eg_five():
    t = Transition([0], [1])
    p = PetriNet([t])
    s1 = State([5,0], p)
    prop = EGProposition(LessProposition(NumericExpression(0), VariableExpression(0)))
    assert s1.evaluate(prop) == False
Exemple #10
0
def test_mark_continuation_true():
    p = TrueProposition()
    s1 = State([1])
    assert s1.evaluate(p) == True
    assert p.label() not in s1.labels
Exemple #11
0
def test_mark_continuation_false():
    p = FalseProposition()
    s1 = State([1])
    assert s1.evaluate(p) == False
    assert p.label() not in s1.labels