public void StaticLevSimilarityShouldHandleRoundUpDownMin() { var actual = Similarity.Levenshtein("123456789", "a2345aaaa", .5); Assert.AreEqual(-1, actual); actual = Similarity.Levenshtein("123456789", "a23456aaa", .5); Assert.AreEqual(5 / 9.0, actual); }
public void StaticLevSimilarityShouldHandleNulls() { var actual = Similarity.Levenshtein(null, null); Assert.AreEqual(1.0, actual); actual = Similarity.Levenshtein(null, "hi"); Assert.AreEqual(0, actual); actual = Similarity.Levenshtein("hi", null); Assert.AreEqual(0, actual); }
static double RunLevSimStatic(List <string> strings, double minSimilarity) { double result = 0; for (int i = 0; i < strings.Count / 2; i++) { for (int j = strings.Count / 2; j < strings.Count; j++) { result = Similarity.Levenshtein(strings[i], strings[j], minSimilarity); } } return(result); }
public void StaticLevSimilarityShouldGiveRange0To1() { var actual = Similarity.Levenshtein("1234", "aaaa"); Assert.AreEqual(0, actual); actual = Similarity.Levenshtein("1234", "a2aa"); Assert.AreEqual(.25, actual); actual = Similarity.Levenshtein("1234", "a23a"); Assert.AreEqual(.5, actual); actual = Similarity.Levenshtein("1234", "1a34"); Assert.AreEqual(.75, actual); actual = Similarity.Levenshtein("1234", "1234"); Assert.AreEqual(1, actual); }
public void StaticLevSimilarityShouldBeCommutative() { foreach (var s1 in testStrings) { foreach (var s2 in testStrings) { double d1 = Similarity.Levenshtein(s1, s2); double d2 = Similarity.Levenshtein(s2, s1); Assert.AreEqual(d1, d2); d1 = Similarity.Levenshtein(s1, s2, .5); d2 = Similarity.Levenshtein(s2, s1, .5); Assert.AreEqual(d1, d2); } } }