예제 #1
0
def testRouteNothingToDo():
    origin = navigation.Coordinate(0, 0, 30)
    destination = navigation.Coordinate(0, 0, 30)

    result = navigation.Terrain().plotRouteFromTo(origin, destination)

    assert len(result) == 0
예제 #2
0
def testRouteNoDistance():
    origin = navigation.Coordinate(0, 0, 30)
    destination = navigation.Coordinate(0, 0, 0)

    result = navigation.Terrain().plotRouteFromTo(origin, destination)

    assert len(result) == 1
    assert result[0] == navigation.RouteStep(navigation.RouteStep.TURN, -30)
예제 #3
0
def testRouteFromSouth():
    origin = navigation.Coordinate(0, -50, 30)
    destination = navigation.Coordinate(0, 0, 0)

    result = navigation.Terrain().plotRouteFromTo(origin, destination)

    assert len(result) == 2
    assert result[0] == navigation.RouteStep(navigation.RouteStep.TURN, -30)
    assert result[1] == navigation.RouteStep(navigation.RouteStep.DRIVE, 50)
예제 #4
0
def testRouteFromEast():
    origin = navigation.Coordinate(50, 0, 30)
    destination = navigation.Coordinate(0, 0, 0)

    result = navigation.Terrain().plotRouteFromTo(origin, destination)

    assert len(result) == 3
    print(str(result[0]))
    assert result[0] == navigation.RouteStep(navigation.RouteStep.TURN, -120)
    assert result[1] == navigation.RouteStep(navigation.RouteStep.DRIVE, 50)
    assert result[2] == navigation.RouteStep(navigation.RouteStep.TURN, -270)
예제 #5
0
def testRouteFromSouthWest():
    origin = navigation.Coordinate(-10, -10, 30)
    destination = navigation.Coordinate(30, 20, 20)

    result = navigation.Terrain().plotRouteFromTo(origin, destination)

    assert len(result) == 3
    print(str(result[0]))
    assert result[0] == navigation.RouteStep(navigation.RouteStep.TURN, -337)
    assert result[1] == navigation.RouteStep(navigation.RouteStep.DRIVE, 50)
    assert result[2] == navigation.RouteStep(navigation.RouteStep.TURN, -33)
예제 #6
0
def testRouteFromNorthEast():
    origin = navigation.Coordinate(80, 60, 30)
    destination = navigation.Coordinate(40, 30, 20)

    result = navigation.Terrain().plotRouteFromTo(origin, destination)

    assert len(result) == 3
    print(str(result[0]))
    assert result[0] == navigation.RouteStep(navigation.RouteStep.TURN, -157)
    assert result[1] == navigation.RouteStep(navigation.RouteStep.DRIVE, 50)
    assert result[2] == navigation.RouteStep(navigation.RouteStep.TURN, -213)
예제 #7
0
def testThatMoveLeftIsCalculatedCorrectly():
    position = navigation.Coordinate(0, 0, 270)

    position.ahead(50)

    assert position.x == -50
    assert position.y == 0
예제 #8
0
def testThatVeryBigNegativeTurnIsAppliedCorrectly():
    position = navigation.Coordinate(0, 0, 60)

    position.turn(-760)

    assert position.heading == 20
예제 #9
0
def testThatNegativeTurnIsAppliedCorrectlyWhenHeadingSwingsToLeft():
    position = navigation.Coordinate(0, 0, 60)

    position.turn(-70)

    assert position.heading == 350
예제 #10
0
def testThatPositiveTurnIsAppliedCorrectly():
    position = navigation.Coordinate(0, 0, 10)

    position.turn(41)

    assert position.heading == 51
예제 #11
0
def testThatVeryBigPositiveTurnIsAppliedCorrectly():
    position = navigation.Coordinate(0, 0, 20)

    position.turn(705)

    assert position.heading == 5