docs: public static StepIntersection findCurrentIntersection(@NonNull List<StepIntersection> intersections,
                                                    @NonNull List<Pair<StepIntersection, Double>> measuredIntersections,
                                                    double stepDistanceTraveled) {
      for (Pair<StepIntersection, Double> measuredIntersection : measuredIntersections) {
        double intersectionDistance = measuredIntersection.second;
        int intersectionIndex = measuredIntersections.indexOf(measuredIntersection);
        int nextIntersectionIndex = intersectionIndex + ONE_INDEX;
        int measuredIntersectionSize = measuredIntersections.size();
        boolean hasValidNextIntersection = nextIntersectionIndex < measuredIntersectionSize;
  
        if (hasValidNextIntersection) {
          double nextIntersectionDistance = measuredIntersections.get(nextIntersectionIndex).second;
          if (stepDistanceTraveled > intersectionDistance && stepDistanceTraveled < nextIntersectionDistance) {
            return measuredIntersection.first;
          }
        } else if (stepDistanceTraveled > measuredIntersection.second) {
          return measuredIntersection.first;
        } else {
          return measuredIntersections.get(FIRST_INTERSECTION).first;
        }
      }
      return intersections.get(FIRST_INTERSECTION);
    }