LevenshteinDistance
Zur Navigation springen
Zur Suche springen
Beschreibung
Die Funktion levenshteinDistance berechnet die Levenshtein-Distanz [1] zwischen zwei Zeichenketten. Die Funktion erwartet zwei Strings und gibt eine Zahl zurück.
Syntax
levenshteinDistance(Zeichenkette zeichenkette1, Zeichenkette zeichenkette2)
Parameter
- zeichenkette1 - erste zu vergleichende Zeichenkette
- zeichenkette2 - zweite zu vergleichende Zeichenkette
Return Value
- Gibt eine Zahl zurück
Beispiele
levenshteinDistance('Hallo','Hallo') --> returns 0 levenshteinDistance('Hallo','JACK') --> returns 5 levenshteinDistance('Hallo','Holla') --> returns 2
JUnit Tests
[Anzeigen]
private static Function func = new LevenshteinDistance();
@Test
public void testCompareToEqualStrings() throws EvaluatorException, OpenMathException {
List<Object> args = new ArrayList<Object>();
args.add(OMCreator.createOMSTR("Test"));
args.add(OMCreator.createOMSTR("Test"));
Object result = func.evaluate(args);
assertEquals(OMCreator.createOMI(0), result);
}
@Test
public void testCompareToNotEqualStrings() throws EvaluatorException, OpenMathException {
List<Object> args = new ArrayList<Object>();
args.add(OMCreator.createOMSTR("Testin"));
args.add(OMCreator.createOMSTR("Tester"));
Object result = func.evaluate(args);
assertEquals(OMCreator.createOMI(2), result);
}
@Test
public void testCompareToIntegration() throws EvaluatorException, OpenMathException {
OMOBJ omobj = ExpressionParser.parse("levenshteinDistance('Hallo', 'Test')", null, null);
OMOBJ result = OMCreator.createOMOBJ(OMToResultVisitor.getInstance().visit(omobj));
assertEquals(OMCreator.createOMI(5), result.getOMI());
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testCompareToWithLessThanMinParam() throws EvaluatorException, OpenMathException {
OMOBJ omobj = ExpressionParser.parse("levenshteinDistance('Test')", null, null);
OMToResultVisitor.getInstance().visit(omobj);
fail();
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testCompareToWithMoreThanMaxParam() throws EvaluatorException, OpenMathException {
OMOBJ omobj = ExpressionParser.parse("levenshteinDistance('Test', 'Test', 'Test')", null, null);
OMToResultVisitor.getInstance().visit(omobj);
fail();
}
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testCompareToWithWrongArguments() throws EvaluatorException, OpenMathException {
OMOBJ omobj = ExpressionParser.parse("compareTo('Test', vector(2))", null, null);
OMToResultVisitor.getInstance().visit(omobj);
fail();
}
Hinweise
- Die Funktion unterscheidet zwischen Groß- und Kleinschreibung.
- Die Rückgabe ist immer 0 oder einen positive Zahl.