def test_cell_can_move(direction): b = Board(size=(10, 24)) c = Cell(position=(3, 4), color=(0, 0, 0)) old_position = c.position c.move(b, direction) assert c.position == ( old_position[0] + direction[0], old_position[1] + direction[1], )
def test_cell_can_not_move_if_exceed_limit(direction): b = Board(size=(10, 24)) direction_x, direction_y = direction if direction_x: potential_values_of_x = {1: 9, -1: 0} initial_position = (potential_values_of_x[direction_x], 0) else: potential_values_of_y = {1: 23, -1: 0} initial_position = (0, potential_values_of_y[direction_y]) c = Cell(position=initial_position, color=(0, 0, 0)) with pytest.raises(CanNotMove): c.move(b, direction) assert c.position == initial_position
def test_cell_can_not_move_if_there_already_is_a_cell(direction): b = Board( size=(10, 24), deactivated_cells=[Cell(position=(4, 4), color=(0, 0, 0))], ) direction_x, direction_y = direction potential_values = {1: 3, -1: 5, 0: 4} initial_position = ( potential_values[direction_x], potential_values[direction_y], ) c = Cell(position=initial_position, color=(0, 0, 0)) with pytest.raises(CanNotMove): c.move(b, direction) assert c.position == initial_position