### Question:
NeedlemanWunschEditDistance { public static int getWorstCaseEditDistance( int sourceLength, int targetLength, int changeCost, int openGapCost, int continueGapCost) { int maxLen = Math.max(sourceLength, targetLength); int minLen = Math.min(sourceLength, targetLength); int totChangeCost = scriptCost(openGapCost, continueGapCost, maxLen - minLen) + minLen * changeCost; int blowAwayCost = scriptCost(openGapCost, continueGapCost, sourceLength) + scriptCost(openGapCost, continueGapCost, targetLength); return Math.min(totChangeCost, blowAwayCost); } private  NeedlemanWunschEditDistance(); static int getEditDistance(
      String source,
      String target,
      boolean caseSensitive,
      int changeCost,
      int openGapCost,
      int continueGapCost); static int getWorstCaseEditDistance(
      int sourceLength, int targetLength, int changeCost, int openGapCost, int continueGapCost); static double getNormalizedEditDistance(
      String source,
      String target,
      boolean caseSensitive,
      int changeCost,
      int openGapCost,
      int continueGapCost);  }### Answer:
@Test public void needlemanWunschEditDistanceWorstCase_matchesLevenschtein_withHugeGapCost() { String identifier = "fooBar"; String otherIdentifier = "bazQux"; double levenschtein = LevenshteinEditDistance.getWorstCaseEditDistance( identifier.length(), otherIdentifier.length()); double needlemanWunsch = NeedlemanWunschEditDistance.getWorstCaseEditDistance( identifier.length(), otherIdentifier.length(), 1, 1000, 1000); assertThat(needlemanWunsch).isEqualTo(levenschtein); }