1 package org.cacert.gigi.util;
3 import static org.junit.Assert.*;
5 import java.util.Arrays;
6 import java.util.LinkedList;
10 import org.junit.runner.RunWith;
11 import org.junit.runners.Parameterized;
12 import org.junit.runners.Parameterized.Parameter;
13 import org.junit.runners.Parameterized.Parameters;
15 @RunWith(Parameterized.class)
16 public class EditDistanceTest {
18 private static final String[] words = new String[] {
19 "A", "B", "C", "aa", "bb", "cc c", "dfdf", "__*"
22 private static final List<String> wordList = Arrays.asList(words);
24 @Parameters(name = "next({0}) = {1}")
25 public static Iterable<Object[]> params() {
26 List<Object[]> testVectors = new LinkedList<Object[]>();
27 for (String word : words) {
28 addTest(testVectors, word, word);
29 addTest(testVectors, word + " ", word);
30 addTest(testVectors, word + "_", word);
31 addTest(testVectors, " " + word, word);
32 addTest(testVectors, "werwer" + word, word);
34 addTest(testVectors, "Acc c", "cc c");
35 addTest(testVectors, "bbB", "bb");
36 addTest(testVectors, "dfÄö", "dfdf");
37 addTest(testVectors, "*__", "__*");
38 addTest(testVectors, "c cc", "cc c");
39 addTest(testVectors, "fddf", "dfdf");
40 addTest(testVectors, "fdd..", "dfdf");
41 addTest(testVectors, "*", "A");
42 addTest(testVectors, "A__*", "__*");
46 private static void addTest(List<Object[]> testVectors, String test, String expected) {
47 testVectors.add(new Object[] {
56 public String expected;
59 public void getBestMatchingStringByEditDistanceArray() {
60 assertEquals(expected, EditDistance.getBestMatchingStringByEditDistance(search, words));
64 public void getBestMatchingStringByEditDistanceList() {
65 assertEquals(expected, EditDistance.getBestMatchingStringByEditDistance(search, wordList));