Skip to content

Commit bc519bc

Browse files
committed
Fix issue #27
1 parent 35cca6a commit bc519bc

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

src/main/java/info/debatty/java/stringsimilarity/NGram.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ public final double distance(final String s0, final String s1) {
4646
final int sl = s0.length();
4747
final int tl = s1.length();
4848

49+
if (s0.equals(s1)) {
50+
return 0;
51+
}
52+
4953
if (sl == 0 || tl == 0) {
5054
if (sl == tl) {
5155
return 0;

src/test/java/info/debatty/java/stringsimilarity/NGramTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package info.debatty.java.stringsimilarity;
2626

2727
import org.junit.Assert;
28+
import static org.junit.Assert.assertEquals;
2829
import org.junit.Test;
2930

3031
/**
@@ -46,6 +47,13 @@ public void testDistance() {
4647
System.out.println(ngram.distance(s0, s1));
4748
System.out.println(ngram.distance(s0, s2));
4849
Assert.assertTrue(ngram.distance(s0, s1) < ngram.distance(s0, s2));
50+
51+
52+
assertEquals(0.0, ngram.distance("SIJK", "SIJK"), 0.0);
53+
assertEquals(0.0, ngram.distance("S", "S"), 0.0);
54+
assertEquals(1.0, ngram.distance("", "S"), 0.0);
55+
assertEquals(1.0, ngram.distance("", "SIJK"), 0.0);
56+
4957
}
5058

5159
}

src/test/java/info/debatty/java/stringsimilarity/QGramTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,14 @@ public final void testDistance() {
4646
// Total: 2
4747
double result = instance.distance("ABCD", "ABCE");
4848
assertEquals(2.0, result, 0.0);
49+
50+
assertEquals(
51+
0.0,
52+
instance.distance("S", "S"),
53+
0.0);
54+
55+
assertEquals(0.0,
56+
instance.distance("012345", "012345"),
57+
0.0);
4958
}
5059
}

0 commit comments

Comments
 (0)