Ejemplo n.º 1
0
 def test_get_state_tape_contents_and_index(self):
     rules = [
         Rule("A", 0, 1, True, "B"),
         Rule("B", 0, 1, False, "A"),
         Rule("C", 0, 1, False, "B"),
         Rule("A", 1, 1, False, "C"),
         Rule("B", 1, 1, True, "B"),
         Rule("C", 1, 1, True, "HALT"),
     ]
     m = Machine(rules)
     t = Tape()
     s = System(m, t)
     s.next()
     state, contents, index = s.get_state_tape_contents_and_head_index()
     self.assertEqual(state, "B")
     self.assertEqual(contents, [1, 0])
     self.assertEqual(index, 1)
Ejemplo n.º 2
0
 def test_iterate_until_halt(self):
     rules = [
         Rule("A", 0, 1, True, "B"),
         Rule("B", 0, 1, False, "A"),
         Rule("C", 0, 1, False, "B"),
         Rule("A", 1, 1, False, "C"),
         Rule("B", 1, 1, True, "B"),
         Rule("C", 1, 1, True, "HALT"),
     ]
     m = Machine(rules)
     t = Tape()
     s = System(m, t)
     steps = s.iterate_until_halt()
     self.assertEqual(steps, 14)
     state, contents, index = s.get_state_tape_contents_and_head_index()
     self.assertEqual(state, "HALT")
     self.assertEqual(contents, 6 * [1])
     self.assertEqual(index, 4)