def test_Finite_Automata_run_2(self): M = machine.FiniteAutomata([['q_0', 'b', 'q_1']], 'q_0', ['q_1']) self.assertFalse(M.run('')) self.assertTrue(M.run('b')) self.assertFalse(M.run('bb')) self.assertFalse(M.run('a')) del M
def test_Finite_Automata_BadConstruction_6(self): try: M1 = machine.FiniteAutomata([['q_0', '1', '']], 'q_0', ['q_0']) self.assertTrue(False) del M1 except: self.assertTrue(True)
def runNAProgram(params: list): print('Enter strings to check if they are in the language on the machine, L(M).') print('When you are finished, enter \'quit\'') M = machine.FiniteAutomata(params[0],params[1],params[2]) userIn = input() while not userIn == 'quit': if M.run(userIn): print(userIn,'is in the language!') else: print(userIn,'is not in the language!') userIn = input() return
def test_Finite_Automata_run_7(self): M = machine.FiniteAutomata( [['q0', 'a', 'q2'], ['q0', 'b', 'q1'], ['q1', 'a', 'q1'], ['q1', 'b', 'q1'], ['q2', 'b', 'q2'], ['q2', 'a', 'q3'], ['q3', 'b', 'q2'], ['q3', 'a', 'q3']], 'q0', ['q3']) self.assertFalse(M.run('')) self.assertTrue(M.run('abbbba')) self.assertFalse(M.run('bba')) self.assertTrue(M.run('aaaaa')) self.assertTrue(M.run('aaba')) self.assertFalse(M.run('babab')) self.assertFalse(M.run('abab')) self.assertFalse(M.run('abbbaab'))
def test_Finite_Automata_run_6(self): M = machine.FiniteAutomata( [['L', '1', 'L'], ['L', '0', '0'], ['0', '1', 'L'], ['0', '0', '00'], ['00', '0', '00'], ['00', '1', '001'], ['001', '0', '001'], ['001', '1', '001']], 'L', ['L', '0', '00']) self.assertTrue(M.run('')) self.assertTrue(M.run('1')) self.assertFalse(M.run('001')) self.assertTrue(M.run('101')) self.assertTrue(M.run('000')) self.assertFalse(M.run('0011')) self.assertFalse(M.run('0010')) self.assertFalse(M.run('1001'))
def test_Finite_Automata_run_3(self): M = machine.FiniteAutomata( [['q_0', '0', 'q_0'], ['q_0', '1', 'q_1'], ['q_1', '0', 'q_0'], ['q_1', '1', 'q_2'], ['q_2', '0', 'q_2'], ['q_2', '1', 'q_1']], 'q_0', ['q_1']) self.assertFalse(M.run('')) self.assertTrue(M.run('01')) self.assertFalse(M.run('00')) self.assertTrue(M.run('101')) self.assertTrue(M.run('0111')) self.assertTrue(M.run('11001')) self.assertFalse(M.run('100')) self.assertFalse(M.run('1100')) del M