-
Notifications
You must be signed in to change notification settings - Fork 0
/
testFSM.py
37 lines (27 loc) · 931 Bytes
/
testFSM.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from FSM import *
print "Creating x as follows..."
x = FSM(1, [])
x.addTransition(1, 2, 'ab')
x.addTransition(1, 3, 'b')
x.addTransition(2, 3, 'b')
x.grantAcceptingState(3)
#print x.toString()
x.breakMultipleCharactersTransitions()
print x.toString()
k = FSM.kleene(x)
k.addTransition(1, 3, 'bb')
k.removeTransition(1, 3, 'b')
print k.toString()
print "Determinising..."
dfsm = FSM.determinise(k)
print dfsm.toString()
dfsm.draw()
print "Is abbbbbbabb in dfsm? : " + str(dfsm.match("abbbbbbabb")) # True
print "Is abb in dfsm? : " + str(dfsm.match("abb")) # True
print "Is bb in dfsm? : " + str(dfsm.match("bb")) # True
print "Is a in dfsm? : " + str(dfsm.match("a")) # False
print "Is b in dfsm? : " + str(dfsm.match("b")) # False
print "Is aa in dfsm? : " + str(dfsm.match("aa")) # False
print "Is bb in dfsm? : " + str(dfsm.match("bb")) # True
print "Is c in dfsm? : " + str(dfsm.match("c")) # True
exit()