def test_get_tiles_in_rect_returns_all_tiles_within_a_bounding_rectangle(self): # noqa grid = TileGrid(Size(10, 15)) tiles_in_rect = grid.get_tiles_in_rect(Rectangle(Point(3, 4), Size(2, 3))) self.assertEqual(6, len(tiles_in_rect)) self.assertIn("(3.00,4.00)", [t.tile_id for t in tiles_in_rect]) self.assertIn("(3.00,6.00)", [t.tile_id for t in tiles_in_rect]) self.assertIn("(4.00,4.00)", [t.tile_id for t in tiles_in_rect]) self.assertIn("(4.00,6.00)", [t.tile_id for t in tiles_in_rect]) self.assertNotIn("(3.00,3.00)", [t.tile_id for t in tiles_in_rect]) self.assertNotIn("(4.00,7.00)", [t.tile_id for t in tiles_in_rect])
def test_get_tile_returns_a_tile_at_a_given_position(self): grid = TileGrid(Size(2, 2)) grid.get_tile(Point(1, 1)).tile_id = 'target' tmap = TileMap(grid, tile_sz=Size(10, 10)) tile = tmap.get_tile(Point(15, 15)) self.assertEqual(tile.tile_id, 'target')
def test_get_grid_points_in_rect_finds_all_points_inside_of_the_grid_if_a_rectangle_is_not_provided(self): # noqa grid = TileGrid(Size(10, 15)) expected_points = [Point(x, y) for x in range(10) for y in range(15)] computed_points = [pt for pt in grid.get_grid_points_in_rect()] self.assertEqual(expected_points, computed_points)
def test_get_grid_points_in_rect_raises_an_error_if_the_bounding_rect_is_out_of_bounds(self): # noqa grid = TileGrid(Size(10, 15)) rect = Rectangle(Point(8, 13), Size(4, 4)) with self.assertRaises(TileGridException) as error_context: grid.get_grid_points_in_rect(rect) self.assertIn("invalid rectangle", error_context.exception.message)
def test_get_grid_points_in_rect_finds_all_points_inside_of_a_bounding_rectangle(self): # noqa grid = TileGrid(Size(10, 15)) rect = Rectangle(Point(4, 5), Size(2, 3)) expected_points = [Point(x, y) for x in range(4, 4 + 2) for y in range(5, 5 + 3)] computed_points = [pt for pt in grid.get_grid_points_in_rect(rect)] self.assertEqual(expected_points, computed_points)
def test_get_tile_raises_an_exception_if_the_requested_point_is_out_of_bounds(self): # noqa grid = TileGrid(Size(10, 15)) with self.assertRaises(TileGridException) as error_context: grid.get_tile(Point(-1, 5)) self.assertIn("out of bounds", error_context.exception.message)