private LevehnsteinDistanceCalculation performCalculation(Segment a, Segment b) {
    List<Entry> entriesForA = a.getEntries();
    List<Entry> entriesForB = b.getEntries();

    if (filter != null) {
      applyFilter(entriesForA);
      applyFilter(entriesForB);
    }
    LevehnsteinDistanceCalculation calculationData =
        new LevehnsteinDistanceCalculation(entriesForA, entriesForB, costStrategy);
    calculationData.calculateDistance();
    calculationData.printEntireArrayToTraceLog();
    calculationData.printBackTrackToTraceLog();
    return calculationData;
  }
 private double calculateDistanceFor(Segment a, Segment b) {
   LevehnsteinDistanceCalculation calculationData = performCalculation(a, b);
   return calculationData.getResult();
 }