Exemple #1
0
def test_eu_continuation():
    net, state = parse_net("""
P:7
T:0->1
T:0->2
T:0->3
T:0->4
T:0->5
T:0->6
S:1|0|0|0|0|0|0
""")
    prop = parse_props('E true U $6 = 1')[0]
    prop1 = parse_props('E true U $6 = 1')[0]
    assert state.evaluate(prop) == True
Exemple #2
0
def test_eg_continuation1():
    net, state = parse_net("""
P:7
T:0->1
T:0->2
T:0->3
T:0->4
T:0->5
T:0->6
S:1|0|0|0|0|0|0
""")
    prop = parse_props('EG true')[0]
    prop1 = parse_props('EG false')[0]
    assert state.evaluate(prop) == True
    assert state.evaluate(prop1) == False
Exemple #3
0
def test_parse_ctl_paren():
    ctl = parse_props(
        """EG not(true)
    EX not(true & false)"""
    )
    assert ctl[0] == EGProposition(NegationProposition(TrueProposition()))
    assert ctl[1] == EXProposition(NegationProposition(AndProposition(TrueProposition(), FalseProposition())))
Exemple #4
0
def test_parse_ctl():
    ctls = parse_props(
        """EG true
EX false
E true U false
EX true & not false
EG not(false & not true)
EG $1 < 100 & 0 = $1
EX true | false"""
    )

    assert ctls[0] == EGProposition(TrueProposition())
    assert ctls[1] == EXProposition(FalseProposition())
    assert ctls[2] == EUProposition(TrueProposition(), FalseProposition())
    assert ctls[3] == EXProposition(AndProposition(TrueProposition(), NegationProposition(FalseProposition())))
    assert ctls[4] == EGProposition(
        NegationProposition(AndProposition(FalseProposition(), NegationProposition(TrueProposition())))
    )
    assert ctls[5] == EGProposition(
        AndProposition(
            LessProposition(VariableExpression(1), NumericExpression(100)),
            EqualsProposition(NumericExpression(0), VariableExpression(1)),
        )
    )
    assert ctls[6] == EXProposition(OrProposition(TrueProposition(), FalseProposition()))
Exemple #5
0
def test_eg_continuation2():
    net, state = parse_net("""
P:5
T:0->1
T:0->2
T:1->3
T:2->4
S:1|0|0|0|0""")
    prop = parse_props('EG $4=0')[0]
    assert state.evaluate(prop) == False
Exemple #6
0
def entry_point(argv):
    file = argv[1]
    net, state = parse_net(read_file(file))
    props = parse_props(argv[2])
    for prop in props:
        print prop.label()
    g_start = time.time()
    for p in props:
        print p.label(),"= ",
        start = time.time()
        res = state.evaluate(p)
        end = time.time()
        if res:
            print "True",
        else:
            print "False",

        print "(%f)" % (end -start,)
    g_end = time.time()
    print "Total runtime %f" % (g_end - g_start, )
    print "Calculated %d states" % len(net._states_cache)
    return 0
Exemple #7
0
def test_parse_top_level_not():
    f = parse_props("""not(EG false)""")
    assert f[0] == NegationProposition(EGProposition(FalseProposition()))