def test_out_of_bounds(game_map): m = util.Map({'height': 5, 'width': 5}) assert m.is_coordinate_out_of_bounds((-1, -1)) assert m.is_coordinate_out_of_bounds((5, 5)) assert not m.is_coordinate_out_of_bounds((4, 2)) assert m.is_coordinate_out_of_bounds((0, -1)) assert not m.is_coordinate_out_of_bounds((0, 0))
def test_identifies_movable_directions(game_map): width = 3 snake_pos = util.translate_coordinate((1, 0), width) obstacle_pos = util.translate_coordinate((0, 0), width) m = util.Map({ 'height': width, 'width': width, 'snakeInfos': [{ 'positions': [snake_pos], 'id': 0 }], 'obstaclePositions': [obstacle_pos], 'foodPositions': [] }) assert m.can_snake_move_in_direction(0, util.Direction.DOWN) assert not m.can_snake_move_in_direction(0, util.Direction.UP) assert not m.can_snake_move_in_direction(0, util.Direction.LEFT) assert m.can_snake_move_in_direction(0, util.Direction.RIGHT)
def test_finds_obstacle_tiles(game_map): m = util.Map(game_map) for obstacle in game_map['obstaclePositions']: coord = util.translate_position(obstacle, game_map['width']) assert m.get_tile_at(coord).tile_type == util.TileType.OBSTACLE
def test_finds_food_tile(game_map): m = util.Map(game_map) for food in game_map['foodPositions']: coord = util.translate_position(food, game_map['width']) assert m.get_tile_at(coord).tile_type == util.TileType.FOOD
def test_can_find_all_snakes(game_map): m = util.Map(game_map) for snake in game_map['snakeInfos']: assert m.get_snake_by_id(snake['id'])