Esempio n. 1
0
class ObstacleGridTest(unittest.TestCase):
    """
    Test obstacle mechanism in OrthogonalGrid
    """
    def setUp(self):
        self.grid = OrthogonalGrid(3, 3, [])
        self.obstacle_grid = OrthogonalGrid(3, 3, [Coord(1, 1), Coord(0, 1)])

    def test_add_obstacle(self):
        self.grid.insert_obstacle(Coord(1, 1))
        self.assertEqual({Coord(1, 1)}, self.grid.obstacles())
Esempio n. 2
0
 def test_l_wall(self):
     """
     An L-shaped wall is between the start and end.
     Test to see if A* goes around wall instead of walking straight up to it.
     Expected outcome:
     P P P P
     P X X E
     S . X .
     . . X .
     """
     grid = OrthogonalGrid(
         4, 4,
         [Coord(2, 1), Coord(2, 2),
          Coord(1, 2), Coord(0, 2)])
     expected_path = {
         Coord(1, 0),
         Coord(2, 0),
         Coord(3, 0),
         Coord(3, 1),
         Coord(3, 2),
         Coord(3, 3),
         Coord(2, 3)
     }
     actual_path = AStar(grid, manhattan).execute((Coord(1, 0), Coord(2,
                                                                      3)))
     self.assertEqual(expected_path, set(actual_path))
Esempio n. 3
0
 def test_tricky_path(self):
     tricky_grid = OrthogonalGrid(3, 3, [Coord(0, 1), Coord(2, 1)])
     path = set(
         AStar(tricky_grid, manhattan).execute((Coord(0, 0), Coord(2, 2))))
     expected = {
         Coord(0, 0),
         Coord(1, 0),
         Coord(1, 1),
         Coord(1, 2),
         Coord(2, 2)
     }
     coord_path = set(map(lambda cell: Coord(cell.x, cell.y), path))
     self.assertEqual(expected, coord_path)
Esempio n. 4
0
class GridTest(unittest.TestCase):
    def setUp(self):
        self.grid = OrthogonalGrid(3, 3, [])

    def test_is_adjacent(self):
        self.assertFalse(self.grid.is_adjacent(Coord(0, 0), Coord(0, 0)))
        self.assertFalse(self.grid.is_adjacent(Coord(0, 0), Coord(1, 2)))
        self.assertFalse(self.grid.is_adjacent(Coord(-1, 0), Coord(1, 2)))
        self.assertFalse(self.grid.is_adjacent(Coord(-1, 0), Coord(-1, 2)))

        self.assertTrue(self.grid.is_adjacent(Coord(0, 0), Coord(0, 1)))
        self.assertTrue(self.grid.is_adjacent(Coord(1, 1), Coord(0, 1)))

    def test_neighbors(self):
        neighbors = self.grid.neighbors(Coord(1, 1))
        expected = {Coord(1, 2), Coord(0, 1), Coord(2, 1), Coord(1, 0)}
        self.assertEqual(expected, set(neighbors))

    def test_out_of_bound_neighbors(self):
        neighbors = self.grid.neighbors(Coord(0, -1))
        self.assertEqual(set(), set(neighbors),
                         "Expected coords not equivalent to actual coords.")
Esempio n. 5
0
 def setUp(self):
     obstacles = [Coord(2, 0), Coord(2, 1), Coord(0, 1), Coord(0, 2)]
     self.grid = OrthogonalGrid(3, 3, obstacles)
Esempio n. 6
0
 def setUp(self):
     self.grid = OrthogonalGrid(2, 2, [])
     self.maker = AStar(self.grid, manhattan)
Esempio n. 7
0
 def setUp(self):
     self.grid = OrthogonalGrid(2, 2, [])
Esempio n. 8
0
 def setUp(self):
     self.grid = OrthogonalGrid(3, 3, [])
     self.obstacle_grid = OrthogonalGrid(3, 3, [Coord(1, 1), Coord(0, 1)])
Esempio n. 9
0
 def setUp(self):
     self.grid = OrthogonalGrid(3, 3, [])