示例#1
0
def test_grid_wrapping_max_x():
    """An instruction to move beyond the x-axis grid limits results in the rover
    position being wrapped to the grid origin"""

    rover = Rover(start_position=(10, 10, "E"), grid_dimensions=(10, 10))
    rover.instruct(["F"])
    assert rover.position == (1, 10, "E")
示例#2
0
def test_rover_rotate():
    rover = Rover(start_position=(0, 0, "N"), grid_dimensions=(10, 10))

    rover.instruct(["L", "L"])
    assert rover.position == (0, 0, "S")

    rover.instruct(["R"])
    assert rover.position == (0, 0, "W")

    rover.instruct(["R", "R", "R", "R", "R"])
    assert rover.position == (0, 0, "N")
示例#3
0
def test_rover_move_forward_and_back():
    rover = Rover(start_position=(0, 0, "N"), grid_dimensions=(10, 10))

    rover.instruct(["F"])
    assert rover.position == (0, 1, "N")

    rover.instruct(["F"])
    assert rover.position == (0, 2, "N")

    rover.instruct(["B", "B", "B"])
    assert rover.position == (0, 9, "N")
示例#4
0
def test_obstacle_avoidance():
    rover = Rover(start_position=(0, 0, "N"), grid_dimensions=(100, 100), obstacles=[(0, 2)])
    rover.instruct(["F", "F", "F"])
    assert rover.position == (0, 1, "N")
示例#5
0
def test_rover_complex_path():
    rover = Rover(start_position=(1, 8, "N"), grid_dimensions=(10, 10))

    rover.instruct(["F", "F", "B", "L", "F", "F"])
    assert rover.position == (9, 9, "W")
示例#6
0
def test_grid_wrapping_min_y():
    rover = Rover(start_position=(10, 0, "N"), grid_dimensions=(10, 10))
    rover.instruct(["B"])
    assert rover.position == (10, 9, "N")
示例#7
0
def test_rover_simple_path():
    rover = Rover(start_position=(1, 1, "E"), grid_dimensions=(10, 10))
    rover.instruct(["F", "F", "L", "B", "L", "F"])
    assert rover.position == (2, 0, "W")
示例#8
0
def test_rover_reports_start_position():
    rover = Rover(start_position=(0, 0, "N"), grid_dimensions=(10, 10))
    assert rover.position == (0, 0, "N")