use of com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress in project mapbox-navigation-android by mapbox.
the class NavigationRouteProcessorTest method onSnapToRouteEnabledAndUserOnRoute_snappedLocationReturns.
@Test
public void onSnapToRouteEnabledAndUserOnRoute_snappedLocationReturns() throws Exception {
RouteProgress progress = routeProcessor.buildNewRouteProgress(navigation, mock(Location.class));
boolean snapEnabled = true;
boolean userOffRoute = false;
List<Point> coordinates = createCoordinatesFromCurrentStep(progress);
Point lastPointInCurrentStep = coordinates.remove(coordinates.size() - 1);
Location rawLocation = buildDefaultLocationUpdate(lastPointInCurrentStep.longitude(), lastPointInCurrentStep.latitude());
Location snappedLocation = routeProcessor.buildSnappedLocation(navigation, snapEnabled, rawLocation, progress, userOffRoute);
assertTrue(!rawLocation.equals(snappedLocation));
}
use of com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress in project mapbox-navigation-android by mapbox.
the class OffRouteDetectorTest method setupStepPoints.
private void setupStepPoints(OffRouteDetector offRouteDetector) throws Exception {
RouteProgress routeProgress = buildDefaultRouteProgress();
LegStep currentStep = routeProgress.currentLegProgress().currentStep();
LineString lineString = LineString.fromPolyline(currentStep.geometry(), Constants.PRECISION_6);
List<Point> stepPoints = lineString.coordinates();
offRouteDetector.updateStepPoints(stepPoints);
}
use of com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress in project mapbox-navigation-android by mapbox.
the class OffRouteDetectorTest method validOffRoute_onMinimumDistanceBeforeReroutingPassed.
@Test
public void validOffRoute_onMinimumDistanceBeforeReroutingPassed() throws Exception {
Location mapboxOffice = buildDefaultLocationUpdate(-77.0339782574523, 38.89993519985637);
RouteProgress routeProgress = buildDefaultRouteProgress();
offRouteDetector.isUserOffRoute(mockLocation, mockProgress, options);
Point target = buildPointAwayFromLocation(mapboxOffice, options.minimumDistanceBeforeRerouting() + 1);
Location locationOverMinimumDistance = buildDefaultLocationUpdate(target.longitude(), target.latitude());
boolean validOffRoute = offRouteDetector.isUserOffRoute(locationOverMinimumDistance, routeProgress, options);
assertTrue(validOffRoute);
}
use of com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress in project mapbox-navigation-android by mapbox.
the class OffRouteDetectorTest method isUserOffRoute_AssertFalseWhenWithinRadiusAndStepLocationHasBadAccuracy.
@Test
public void isUserOffRoute_AssertFalseWhenWithinRadiusAndStepLocationHasBadAccuracy() throws Exception {
RouteProgress routeProgress = buildDefaultRouteProgress();
Point stepManeuverPoint = routeProgress.directionsRoute().legs().get(0).steps().get(0).maneuver().location();
Location firstUpdate = buildDefaultLocationUpdate(-77.0339782574523, 38.89993519985637);
offRouteDetector.isUserOffRoute(firstUpdate, routeProgress, options);
Point offRoutePoint = buildPointAwayFromPoint(stepManeuverPoint, 250, 90);
Location secondUpdate = buildDefaultLocationUpdate(offRoutePoint.longitude(), offRoutePoint.latitude());
when(secondUpdate.getAccuracy()).thenReturn(300f);
boolean isUserOffRoute = offRouteDetector.isUserOffRoute(secondUpdate, routeProgress, options);
assertFalse(isUserOffRoute);
}
use of com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress in project mapbox-navigation-android by mapbox.
the class RouteProgressTest method multiLeg_getFractionTraveled_equalsCorrectValueAtIntervals.
// TODO check fut
@Test
public void multiLeg_getFractionTraveled_equalsCorrectValueAtIntervals() {
// Chop the line in small pieces
for (RouteLeg leg : multiLegRoute.legs()) {
for (int step = 0; step < leg.steps().size(); step++) {
RouteProgress routeProgress = RouteProgress.builder().stepDistanceRemaining(multiLegRoute.legs().get(0).steps().get(0).distance()).legDistanceRemaining(multiLegRoute.legs().get(0).distance()).distanceRemaining(multiLegRoute.distance()).directionsRoute(multiLegRoute).stepIndex(step).legIndex(0).build();
float fractionRemaining = (float) (routeProgress.distanceTraveled() / multiLegRoute.distance());
assertEquals(fractionRemaining, routeProgress.fractionTraveled(), BaseTest.LARGE_DELTA);
}
}
}
Aggregations