Example #1
0
def test_commander_constructor():
    com = Commander(
        rover=Rover(
            pos=Vector(x=12, y=27), planet_size=Vector(x=100, y=100), dir=Direction.WEST
        )
    )
    assert (
        com.rover.pos == Vector(x=12, y=27)
        and com.rover.planet_size == Vector(x=100, y=100)
        and com.rover.dir == Direction.WEST
    )
Example #2
0
def test_commander_have_rover_start_on_obstacle():
    with pytest.raises(ValidationError):
        _ = Commander(obstacles=[Vector()])
Example #3
0
def test_commander_command_with_obstacles():
    com = Commander(obstacles=[Vector(x=1, y=0), Vector(x=1, y=2)])
    with pytest.raises(ObstacleError):
        com.parse_execute("FFRF")
    assert com.rover == Rover(pos=Vector(x=0, y=2), dir=Direction.EAST)
Example #4
0
def test_commander_unknown_command():
    com = Commander()
    with pytest.raises(ValueError):
        com.parse_execute("A")
Example #5
0
def test_commander_complex_command():
    com = Commander()
    com.parse_execute("FRFRFLB")
    assert com.rover == Rover(dir=Direction.EAST)
Example #6
0
def test_commmander_can_parse_backward():
    com = Commander(rover=Rover(pos=Vector(x=0, y=1)))
    com.parse_execute("B")
    assert com.rover == Rover()
Example #7
0
def test_commmander_can_parse_forward():
    com = Commander()
    com.parse_execute("F")
    assert com.rover == Rover(pos=Vector(x=0, y=1))
Example #8
0
def test_commander_can_parse_right():
    com = Commander()
    com.parse_execute("R")
    assert com.rover == Rover(dir=Direction.EAST)
Example #9
0
def test_commander_can_parse_left():
    com = Commander()
    com.parse_execute("L")
    assert com.rover == Rover(dir=Direction.WEST)
Example #10
0
def test_commander_default_values():
    com = Commander()

    assert com.rover == Rover()