From effcc1f4ac6c63be0cbdcd46d0e8738fdedf94ab Mon Sep 17 00:00:00 2001 From: Johannes Bechberger Date: Mon, 5 Sep 2016 22:38:18 +0200 Subject: [PATCH] add: tests for EditDistance Change-Id: Ia0c9d6da088cc4060ebd6b24d1d8a34eb99c4e6d --- .../cacert/gigi/util/EditDistanceTest.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tests/org/cacert/gigi/util/EditDistanceTest.java diff --git a/tests/org/cacert/gigi/util/EditDistanceTest.java b/tests/org/cacert/gigi/util/EditDistanceTest.java new file mode 100644 index 00000000..b3331627 --- /dev/null +++ b/tests/org/cacert/gigi/util/EditDistanceTest.java @@ -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 wordList = Arrays.asList(words); + + @Parameters(name = "next({0}) = {1}") + public static Iterable params() { + List testVectors = new LinkedList(); + 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 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)); + } + +} -- 2.39.2