]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/util/EditDistanceTest.java
upd: rename package name and all references to it
[gigi.git] / tests / club / wpia / gigi / util / EditDistanceTest.java
1 package club.wpia.gigi.util;
2
3 import static org.junit.Assert.*;
4
5 import java.util.Arrays;
6 import java.util.LinkedList;
7 import java.util.List;
8
9 import org.junit.Test;
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;
14
15 import club.wpia.gigi.util.EditDistance;
16
17 @RunWith(Parameterized.class)
18 public class EditDistanceTest {
19
20     private static final String[] words = new String[] {
21             "A", "B", "C", "aa", "bb", "cc c", "dfdf", "__*"
22     };
23
24     private static final List<String> wordList = Arrays.asList(words);
25
26     @Parameters(name = "next({0}) = {1}")
27     public static Iterable<Object[]> params() {
28         List<Object[]> testVectors = new LinkedList<Object[]>();
29         for (String word : words) {
30             addTest(testVectors, word, word);
31             addTest(testVectors, word + " ", word);
32             addTest(testVectors, word + "_", word);
33             addTest(testVectors, " " + word, word);
34             addTest(testVectors, "werwer" + word, word);
35         }
36         addTest(testVectors, "Acc c", "cc c");
37         addTest(testVectors, "bbB", "bb");
38         addTest(testVectors, "dfÄö", "dfdf");
39         addTest(testVectors, "*__", "__*");
40         addTest(testVectors, "c cc", "cc c");
41         addTest(testVectors, "fddf", "dfdf");
42         addTest(testVectors, "fdd..", "dfdf");
43         addTest(testVectors, "*", "A");
44         addTest(testVectors, "A__*", "__*");
45         return testVectors;
46     }
47
48     private static void addTest(List<Object[]> testVectors, String test, String expected) {
49         testVectors.add(new Object[] {
50                 test, expected
51         });
52     }
53
54     @Parameter(0)
55     public String search;
56
57     @Parameter(1)
58     public String expected;
59
60     @Test
61     public void getBestMatchingStringByEditDistanceArray() {
62         assertEquals(expected, EditDistance.getBestMatchingStringByEditDistance(search, words));
63     }
64
65     @Test
66     public void getBestMatchingStringByEditDistanceList() {
67         assertEquals(expected, EditDistance.getBestMatchingStringByEditDistance(search, wordList));
68     }
69
70 }