### Question:
RouteLegProgress { public abstract double distanceRemaining();  abstract int stepIndex(); double distanceTraveled(); abstract double distanceRemaining(); double durationRemaining(); float fractionTraveled(); @Nullable LegStep previousStep(); @NonNull LegStep currentStep(); @Nullable LegStep upComingStep(); @Nullable LegStep followOnStep(); abstract RouteStepProgress currentStepProgress(); abstract List<Point> currentStepPoints(); @Nullable abstract List<Point> upcomingStepPoints(); @Nullable abstract CurrentLegAnnotation currentLegAnnotation(); static Builder builder();  }### Answer:
@Test public void distanceRemaining_equalsLegDistanceAtBeginning() throws Exception { RouteProgress routeProgress = buildBeginningOfLegRouteProgress(); DirectionsRoute route = buildTestDirectionsRoute(); RouteLeg firstLeg = route.legs().get(0); assertEquals(firstLeg.distance(), routeProgress.currentLegProgress().distanceRemaining(), BaseTest.LARGE_DELTA); }
@Test public void distanceRemaining_equalsZeroAtEndOfLeg() throws Exception { RouteProgress routeProgress = buildEndOfLegRouteProgress(); assertEquals(0, routeProgress.currentLegProgress().distanceRemaining(), BaseTest.DELTA); }