def test_move_raises_an_exception_if_the_move_would_take_the_unit_into_non_traversable_terrain(self): # noqa tmap = TileMap(TileGrid(Size(10, 10))) u = DummyUnit() tmap.place_unit(u, Point(5, 5)) tmap.get_tile(Point(15, 5)).set_terrain(Water) with self.assertRaises(UnitException) as error_context: u.move(Vector(10, 0)) self.assertIn("unit cannot traverse", error_context.exception.message)
def test_get_tile_raises_an_exception_when_the_requested_position_is_out_of_bounds(self): # noqa tmap = TileMap(TileGrid(Size(2, 2))) with self.assertRaises(TileMapException) as error_context: tmap.get_tile(Point(-1, 0)) self.assertIn("out of bounds", error_context.exception.message)
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')