Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
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 
Exemplo n.º 4
0
 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'))
Exemplo n.º 5
0
 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'))
Exemplo n.º 6
0
 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