]> WPIA git - gigi.git/commitdiff
add: tests for EditDistance
authorJohannes Bechberger <me@mostlynerdless.de>
Mon, 5 Sep 2016 20:38:18 +0000 (22:38 +0200)
committerFelix Dörre <felix@dogcraft.de>
Wed, 7 Sep 2016 20:47:21 +0000 (22:47 +0200)
Change-Id: Ia0c9d6da088cc4060ebd6b24d1d8a34eb99c4e6d

tests/org/cacert/gigi/util/EditDistanceTest.java [new file with mode: 0644]

diff --git a/tests/org/cacert/gigi/util/EditDistanceTest.java b/tests/org/cacert/gigi/util/EditDistanceTest.java
new file mode 100644 (file)
index 0000000..b333162
--- /dev/null
@@ -0,0 +1,68 @@
+package org.cacert.gigi.util;
+
+import static org.junit.Assert.*;
+
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class EditDistanceTest {
+
+    private static final String[] words = new String[] {
+            "A", "B", "C", "aa", "bb", "cc c", "dfdf", "__*"
+    };
+
+    private static final List<String> wordList = Arrays.asList(words);
+
+    @Parameters(name = "next({0}) = {1}")
+    public static Iterable<Object[]> params() {
+        List<Object[]> testVectors = new LinkedList<Object[]>();
+        for (String word : words) {
+            addTest(testVectors, word, word);
+            addTest(testVectors, word + " ", word);
+            addTest(testVectors, word + "_", word);
+            addTest(testVectors, " " + word, word);
+            addTest(testVectors, "werwer" + word, word);
+        }
+        addTest(testVectors, "Acc c", "cc c");
+        addTest(testVectors, "bbB", "bb");
+        addTest(testVectors, "dfÄö", "dfdf");
+        addTest(testVectors, "*__", "__*");
+        addTest(testVectors, "c cc", "cc c");
+        addTest(testVectors, "fddf", "dfdf");
+        addTest(testVectors, "fdd..", "dfdf");
+        addTest(testVectors, "*", "A");
+        addTest(testVectors, "A__*", "__*");
+        return testVectors;
+    }
+
+    private static void addTest(List<Object[]> testVectors, String test, String expected) {
+        testVectors.add(new Object[] {
+                test, expected
+        });
+    }
+
+    @Parameter(0)
+    public String search;
+
+    @Parameter(1)
+    public String expected;
+
+    @Test
+    public void getBestMatchingStringByEditDistanceArray() {
+        assertEquals(expected, EditDistance.getBestMatchingStringByEditDistance(search, words));
+    }
+
+    @Test
+    public void getBestMatchingStringByEditDistanceList() {
+        assertEquals(expected, EditDistance.getBestMatchingStringByEditDistance(search, wordList));
+    }
+
+}