-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathtest_automata.py
53 lines (47 loc) · 1.75 KB
/
test_automata.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
def automata_01(g):
e1 = g.event_add('a', True, True)
e2 = g.event_add('b', False, True)
e3 = g.event_add('c', True, False)
e4 = g.event_add('d', False, False)
s1 = g.state_add('q1', x=100, y=150, marked=True, initial=True)
s2 = g.state_add('q2', x=400, y=150, marked=True)
s3 = g.state_add('q3', x=250, y=400, marked=True)
g.transition_add(s1, s2, e1)
g.transition_add(s2, s1, e2)
g.transition_add(s1, s1, e2)
g.transition_add(s2, s2, e1)
g.transition_add(s1, s3, e3)
g.transition_add(s2, s3, e3)
g.transition_add(s3, s1, e1)
g.transition_add(s3, s2, e2)
g.transition_add(s3, s3, e3)
g.transition_add(s1, s2, e4)
g.transition_add(s2, s1, e4)
#~ def create_automaton_01():
def automata_02(g):
q0 = g.state_add('q0', x=50, y=150, marked=True, initial=True)
q1 = g.state_add('q1', x=250, y=150, marked=True)
q12 = g.state_add('q12', x=450, y=150, marked=True)
q13 = g.state_add('q13', x=250, y=400, marked=True)
q2 = g.state_add('q2', x=450, y=400, marked=True)
q123 = g.state_add('q123', x=650, y=150, marked=True)
a = g.event_add('a', True, True)
b = g.event_add('b', False, True)
c = g.event_add('c', True, False)
g.transition_add(q0, q0, c)
g.transition_add(q0, q0, b)
g.transition_add(q0, q1, a)
g.transition_add(q1, q12, b)
g.transition_add(q1, q13, c)
g.transition_add(q1, q1, a)
g.transition_add(q12, q1, a)
g.transition_add(q12, q2, b)
g.transition_add(q12, q123, c)
g.transition_add(q123, q1, a)
g.transition_add(q123, q2, b)
g.transition_add(q13, q1, a)
g.transition_add(q13, q2, b)
g.transition_add(q13, q13, c)
g.transition_add(q2, q2, b)
g.transition_add(q2, q1, a)
g.transition_add(q2, q13, c)