Skip to content

Commit 133b19e

Browse files
authored
Add files via upload
1 parent 594826e commit 133b19e

29 files changed

+5574
-0
lines changed

Algorithms/test_array.py

Lines changed: 431 additions & 0 deletions
Large diffs are not rendered by default.

Algorithms/test_automata.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from algorithms.automata import DFA
2+
3+
4+
import unittest
5+
6+
7+
class TestDFA(unittest.TestCase):
8+
def test_DFA(self):
9+
transitions = {
10+
'a': {'1': 'a', '0': 'b'},
11+
'b': {'1': 'b', '0': 'a'}
12+
}
13+
14+
final = ['a']
15+
start = 'a'
16+
17+
self.assertEqual(False, DFA(transitions, start, final, "000111100"))
18+
self.assertEqual(True, DFA(transitions, start, final, "111000011"))
19+
20+
transitions1 = {
21+
'0': {'0': '1', '1': '0'},
22+
'1': {'0': '2', '1': '0'},
23+
'2': {'0': '2', '1': '3'},
24+
'3': {'0': '3', '1': '3'}
25+
}
26+
27+
final1 = ['0', '1', '2']
28+
start1 = '0'
29+
30+
self.assertEqual(False, DFA(transitions1, start1, final1, "0001111"))
31+
self.assertEqual(True, DFA(transitions1, start1, final1, "01010101"))
32+
33+
transitions2 = {
34+
'0': {'a': '0', 'b': '1'},
35+
'1': {'a': '0', 'b': '2'},
36+
'2': {'a': '3', 'b': '2'},
37+
'3': {'a': '3', 'b': '3'}
38+
}
39+
40+
final2 = ['3']
41+
start2 = '0'
42+
43+
self.assertEqual(False, DFA(transitions2, start2, final2, "aaabbb"))
44+
self.assertEqual(True, DFA(transitions2, start2, final2, "baabba"))
45+
46+
47+
if __name__ == '__main__':
48+
unittest.main()

0 commit comments

Comments
 (0)