This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-text.git


The following commit(s) were added to refs/heads/master by this push:
     new f99e435a Added new tests for the main Levenshtein algorithm 
implementations  (#728)
f99e435a is described below

commit f99e435a750594a88b562bf9f6f97fd442d34d3b
Author: Michael Hausegger <[email protected]>
AuthorDate: Wed Dec 3 19:42:20 2025 +0100

    Added new tests for the main Levenshtein algorithm implementations  (#728)
    
    * Added new tests for the main Levenshtein algorithm implementation classes
    
    * Added new tests for the main Levenshtein algorithm implementation classes
    
    * Added tests
    
    * Remove extra vertical whitespace
    
    * Added tests
    
    ---------
    
    Co-authored-by: TheRealHaui <[email protected]>
    Co-authored-by: Gary Gregory <[email protected]>
---
 ...coreFromTest.java => EditDistanceFromTest.java} | 24 ++++++++++++++--------
 .../text/similarity/JaccardSimilarityTest.java     | 10 +++++++++
 .../text/similarity/JaroWinklerDistanceTest.java   |  6 ++++++
 .../LevenshteinDetailedDistanceTest.java           |  8 ++++++++
 .../text/similarity/LevenshteinDistanceTest.java   | 10 +++++++++
 .../similarity/LongestCommonSubsequenceTest.java   |  7 +++++++
 .../text/similarity/SimilarityScoreFromTest.java   | 22 ++++++++++++++++++--
 7 files changed, 76 insertions(+), 11 deletions(-)

diff --git 
a/src/test/java/org/apache/commons/text/similarity/SimilarityScoreFromTest.java 
b/src/test/java/org/apache/commons/text/similarity/EditDistanceFromTest.java
similarity index 60%
copy from 
src/test/java/org/apache/commons/text/similarity/SimilarityScoreFromTest.java
copy to 
src/test/java/org/apache/commons/text/similarity/EditDistanceFromTest.java
index 9f141f7e..32d85752 100644
--- 
a/src/test/java/org/apache/commons/text/similarity/SimilarityScoreFromTest.java
+++ b/src/test/java/org/apache/commons/text/similarity/EditDistanceFromTest.java
@@ -14,26 +14,32 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.commons.text.similarity;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-class SimilarityScoreFromTest {
+class EditDistanceFromTest {
+
+    private LongestCommonSubsequenceDistance longestCommonSubsequenceDistance;
+    private EditDistanceFrom<Integer> editDistanceFrom;
+
+    @BeforeEach
+    void doBeforeEachTest() {
+        longestCommonSubsequenceDistance = new 
LongestCommonSubsequenceDistance();
+        editDistanceFrom = new 
EditDistanceFrom<>(longestCommonSubsequenceDistance, "asdf");
+    }
 
     @Test
-    void testApply() {
-        final LongestCommonSubsequence longestCommonSubsequence = new 
LongestCommonSubsequence();
-        final SimilarityScoreFrom<Integer> similarityScoreFrom = new 
SimilarityScoreFrom<>(longestCommonSubsequence, "asdf");
-        assertEquals(1, similarityScoreFrom.apply("s"));
+    void testGetLeft() {
+        assertEquals("asdf", editDistanceFrom.getLeft());
     }
 
     @Test
-    void testFailsToCreateSimilarityScoreFromThrowsIllegalArgumentException() {
-        assertThrows(IllegalArgumentException.class, () -> new 
SimilarityScoreFrom<>(null, ""));
+    void testGetSimilarityScore() {
+        assertEquals(longestCommonSubsequenceDistance, 
editDistanceFrom.getEditDistance());
     }
 
 }
diff --git 
a/src/test/java/org/apache/commons/text/similarity/JaccardSimilarityTest.java 
b/src/test/java/org/apache/commons/text/similarity/JaccardSimilarityTest.java
index 334ea748..f7ef2ab7 100644
--- 
a/src/test/java/org/apache/commons/text/similarity/JaccardSimilarityTest.java
+++ 
b/src/test/java/org/apache/commons/text/similarity/JaccardSimilarityTest.java
@@ -89,4 +89,14 @@ class JaccardSimilarityTest {
     void testGettingJaccardSimilarityStringNull() {
         assertThrows(IllegalArgumentException.class, () -> 
classBeingTested.apply(" ", null));
     }
+
+    @Test
+    void testGettingJaccardSimilarityNullSimilarityInput() {
+        assertThrows(IllegalArgumentException.class, () -> 
classBeingTested.apply(null, new SimilarityCharacterInput("asdf")));
+    }
+
+    @Test
+    void testGettingJaccardSimilaritySimilarityInputNull() {
+        assertThrows(IllegalArgumentException.class, () -> 
classBeingTested.apply(new SimilarityCharacterInput("asdf"), null));
+    }
 }
diff --git 
a/src/test/java/org/apache/commons/text/similarity/JaroWinklerDistanceTest.java 
b/src/test/java/org/apache/commons/text/similarity/JaroWinklerDistanceTest.java
index 509d58bb..7df3a103 100644
--- 
a/src/test/java/org/apache/commons/text/similarity/JaroWinklerDistanceTest.java
+++ 
b/src/test/java/org/apache/commons/text/similarity/JaroWinklerDistanceTest.java
@@ -18,6 +18,7 @@ package org.apache.commons.text.similarity;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -105,4 +106,9 @@ class JaroWinklerDistanceTest {
         assertEquals(1 - 0.51111d, distance.apply("foo", "  foo"), 0.00001d);
     }
 
+    @Test
+    void testMatches() {
+        assertArrayEquals(new int[]{2, 0, 2}, distance.matches("ab", "aba"));
+    }
+
 }
diff --git 
a/src/test/java/org/apache/commons/text/similarity/LevenshteinDetailedDistanceTest.java
 
b/src/test/java/org/apache/commons/text/similarity/LevenshteinDetailedDistanceTest.java
index 9ba1baf7..f80cbc79 100644
--- 
a/src/test/java/org/apache/commons/text/similarity/LevenshteinDetailedDistanceTest.java
+++ 
b/src/test/java/org/apache/commons/text/similarity/LevenshteinDetailedDistanceTest.java
@@ -41,6 +41,14 @@ class LevenshteinDetailedDistanceTest {
     void testApplyWithNullSimilarityInput() {
         assertThrows(IllegalArgumentException.class,
                 () -> new 
LevenshteinDetailedDistance(0).apply((SimilarityInput<Object>) null, 
(SimilarityInput<Object>) null));
+        assertThrows(IllegalArgumentException.class,
+                () -> new LevenshteinDetailedDistance(0).apply(new 
SimilarityCharacterInput("asdf"), (SimilarityCharacterInput) null));
+        assertThrows(IllegalArgumentException.class,
+                () -> new 
LevenshteinDetailedDistance(0).apply((SimilarityCharacterInput) null, new 
SimilarityCharacterInput("asdf")));
+        assertThrows(IllegalArgumentException.class,
+                () -> new LevenshteinDetailedDistance(null).apply(new 
SimilarityCharacterInput("asdf"), (SimilarityCharacterInput) null));
+        assertThrows(IllegalArgumentException.class,
+                () -> new 
LevenshteinDetailedDistance(null).apply((SimilarityCharacterInput) null, new 
SimilarityCharacterInput("asdf")));
     }
 
     @Test
diff --git 
a/src/test/java/org/apache/commons/text/similarity/LevenshteinDistanceTest.java 
b/src/test/java/org/apache/commons/text/similarity/LevenshteinDistanceTest.java
index 99dd5e72..8aa3960d 100644
--- 
a/src/test/java/org/apache/commons/text/similarity/LevenshteinDistanceTest.java
+++ 
b/src/test/java/org/apache/commons/text/similarity/LevenshteinDistanceTest.java
@@ -34,6 +34,10 @@ class LevenshteinDistanceTest {
     @Test
     void testApplyThrowsIllegalArgumentExceptionSimilarityInput() {
         assertThrows(IllegalArgumentException.class, () -> new 
LevenshteinDistance(0).apply((SimilarityInput<Object>) null, 
(SimilarityInput<Object>) null));
+        assertThrows(IllegalArgumentException.class, () -> new 
LevenshteinDistance(0).apply(new SimilarityCharacterInput("asdf"),
+                (SimilarityCharacterInput) null));
+        assertThrows(IllegalArgumentException.class, () -> new 
LevenshteinDistance(0).apply((SimilarityCharacterInput) null,
+                new SimilarityCharacterInput("asdf")));
     }
 
     @Test
@@ -85,6 +89,12 @@ class LevenshteinDistanceTest {
         assertThrows(IllegalArgumentException.class, () -> 
UNLIMITED_DISTANCE.apply(SimilarityInputTest.build(cls, "a"), 
SimilarityInputTest.build(cls, null)));
     }
 
+    @Test
+    void testGetLevenshteinDistance_EmptyStringString() {
+        assertEquals(-1, new LevenshteinDistance(0).apply(new 
SimilarityCharacterInput(""),
+                new SimilarityCharacterInput("asdf")));
+    }
+
     @ParameterizedTest
     
@MethodSource("org.apache.commons.text.similarity.SimilarityInputTest#similarityInputs()")
     void testGetLevenshteinDistance_StringString(final Class<?> cls) {
diff --git 
a/src/test/java/org/apache/commons/text/similarity/LongestCommonSubsequenceTest.java
 
b/src/test/java/org/apache/commons/text/similarity/LongestCommonSubsequenceTest.java
index b280361a..e5208a20 100644
--- 
a/src/test/java/org/apache/commons/text/similarity/LongestCommonSubsequenceTest.java
+++ 
b/src/test/java/org/apache/commons/text/similarity/LongestCommonSubsequenceTest.java
@@ -18,6 +18,7 @@ package org.apache.commons.text.similarity;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -133,4 +134,10 @@ class LongestCommonSubsequenceTest {
         assertEquals(4, subject.apply("leettteft", "ritttght"));
         assertEquals(15, subject.apply("the same string", "the same string"));
     }
+
+    @Test
+    void testLongestCommonSubstringLengthArray() {
+        assertArrayEquals(new int[][]{ {0, 0, 0, 0}, {0, 1, 1, 1}, {0, 1, 2, 
2}}, subject.longestCommonSubstringLengthArray("ab", "abc"));
+    }
+
 }
diff --git 
a/src/test/java/org/apache/commons/text/similarity/SimilarityScoreFromTest.java 
b/src/test/java/org/apache/commons/text/similarity/SimilarityScoreFromTest.java
index 9f141f7e..cd037b4d 100644
--- 
a/src/test/java/org/apache/commons/text/similarity/SimilarityScoreFromTest.java
+++ 
b/src/test/java/org/apache/commons/text/similarity/SimilarityScoreFromTest.java
@@ -20,17 +20,35 @@ package org.apache.commons.text.similarity;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 class SimilarityScoreFromTest {
 
+    private LongestCommonSubsequence longestCommonSubsequence;
+    private SimilarityScoreFrom<Integer> similarityScoreFrom;
+
+    @BeforeEach
+    void doBeforeEachTest() {
+        longestCommonSubsequence = new LongestCommonSubsequence();
+        similarityScoreFrom = new 
SimilarityScoreFrom<>(longestCommonSubsequence, "asdf");
+    }
+
     @Test
     void testApply() {
-        final LongestCommonSubsequence longestCommonSubsequence = new 
LongestCommonSubsequence();
-        final SimilarityScoreFrom<Integer> similarityScoreFrom = new 
SimilarityScoreFrom<>(longestCommonSubsequence, "asdf");
         assertEquals(1, similarityScoreFrom.apply("s"));
     }
 
+    @Test
+    void testGetLeft() {
+        assertEquals("asdf", similarityScoreFrom.getLeft());
+    }
+
+    @Test
+    void testGetSimilarityScore() {
+        assertEquals(longestCommonSubsequence, 
similarityScoreFrom.getSimilarityScore());
+    }
+
     @Test
     void testFailsToCreateSimilarityScoreFromThrowsIllegalArgumentException() {
         assertThrows(IllegalArgumentException.class, () -> new 
SimilarityScoreFrom<>(null, ""));

Reply via email to