Exemple #1
0
def test_Maze_move():
    maze = Maze([['#', '#', '#', '#', '#', '#', '#'],
                 ['#', 'J', '@', '.', 'P', '.', '#'],
                 ['#', '.', '#', '#', '#', '.', '#'],
                 ['#', '.', '.', '@', '#', '.', '#'],
                 ['#', '@', '#', '.', '@', '.', '#'],
                 ['#', '#', '#', '#', '#', '#', '#']], Rat('J', 1, 1),
                Rat('P', 1, 4))

    assert maze.move(maze.rat_1, 0, 1)
    assert not maze.move(maze.rat_2, -1, 0)
    assert maze.maze[maze.rat_1.row][maze.rat_1.col] == "."
    assert maze.num_sprouts_left == 3
Exemple #2
0
class TestMaze(unittest.TestCase):
    def setUp(self):
        self.maze = Maze([['#', '#', '#', '#', '#', '#', '#'],
                          ['#', '.', '.', '.', '.', '.', '#'],
                          ['#', '.', '#', '#', '#', '.', '#'],
                          ['#', '.', '.', '@', '#', '.', '#'],
                          ['#', '@', '#', '.', '@', '.', '#'],
                          ['#', '#', '#', '#', '#', '#', '#']], Rat('J', 1, 1),
                         Rat('P', 1, 4))

    def test_maze_create(self):
        tmp = [['#', '#', '#', '#', '#', '#', '#'],
               ['#', '.', '.', '.', '.', '.', '#'],
               ['#', '.', '#', '#', '#', '.', '#'],
               ['#', '.', '.', '@', '#', '.', '#'],
               ['#', '@', '#', '.', '@', '.', '#'],
               ['#', '#', '#', '#', '#', '#', '#']]
        self.assertListEqual(tmp, self.maze.maze)
        self.assertEqual(self.maze.rat_1.symbol, 'J')
        self.assertEqual(self.maze.rat_1.row, 1)
        self.assertEqual(self.maze.rat_1.col, 1)

        self.assertEqual(self.maze.rat_2.symbol, 'P')
        self.assertEqual(self.maze.rat_2.row, 1)
        self.assertEqual(self.maze.rat_2.col, 4)

    def test_is_wall(self):
        self.assertTrue(self.maze.is_wall(0, 0))
        self.assertTrue(self.maze.is_wall(0, 6))
        self.assertTrue(self.maze.is_wall(2, 2))
        self.assertFalse(self.maze.is_wall(1, 1))
        self.assertFalse(self.maze.is_wall(4, 1))

    def test_get_character(self):
        self.assertEqual(self.maze.get_character(0, 0), '#')
        self.assertEqual(self.maze.get_character(1, 1), 'J')
        self.assertEqual(self.maze.get_character(1, 4), 'P')
        self.assertEqual(self.maze.get_character(3, 3), '@')

    def test_move(self):
        # original position for J (1,1)
        self.assertTrue(self.maze.move(self.maze.rat_1, NO_CHANGE, NO_CHANGE))
        self.assertTrue(self.maze.move(self.maze.rat_1, NO_CHANGE, RIGHT))
        self.assertFalse(self.maze.move(self.maze.rat_1, DOWN, NO_CHANGE))
        # position 1, 2
        self.assertTrue(self.maze.move(self.maze.rat_1, NO_CHANGE, LEFT))
        self.maze.move(self.maze.rat_1, DOWN, NO_CHANGE)
        self.assertTrue(self.maze.move(self.maze.rat_1, DOWN, NO_CHANGE))