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 )
def test_commander_have_rover_start_on_obstacle(): with pytest.raises(ValidationError): _ = Commander(obstacles=[Vector()])
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)
def test_commander_unknown_command(): com = Commander() with pytest.raises(ValueError): com.parse_execute("A")
def test_commander_complex_command(): com = Commander() com.parse_execute("FRFRFLB") assert com.rover == Rover(dir=Direction.EAST)
def test_commmander_can_parse_backward(): com = Commander(rover=Rover(pos=Vector(x=0, y=1))) com.parse_execute("B") assert com.rover == Rover()
def test_commmander_can_parse_forward(): com = Commander() com.parse_execute("F") assert com.rover == Rover(pos=Vector(x=0, y=1))
def test_commander_can_parse_right(): com = Commander() com.parse_execute("R") assert com.rover == Rover(dir=Direction.EAST)
def test_commander_can_parse_left(): com = Commander() com.parse_execute("L") assert com.rover == Rover(dir=Direction.WEST)
def test_commander_default_values(): com = Commander() assert com.rover == Rover()