]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/util/EditDistanceTest.java
add: tests for EditDistance
[gigi.git] / tests / org / cacert / gigi / util / EditDistanceTest.java
1 package org.cacert.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 @RunWith(Parameterized.class)
16 public class EditDistanceTest {
17
18     private static final String[] words = new String[] {
19             "A", "B", "C", "aa", "bb", "cc c", "dfdf", "__*"
20     };
21
22     private static final List<String> wordList = Arrays.asList(words);
23
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);
33         }
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__*", "__*");
43         return testVectors;
44     }
45
46     private static void addTest(List<Object[]> testVectors, String test, String expected) {
47         testVectors.add(new Object[] {
48                 test, expected
49         });
50     }
51
52     @Parameter(0)
53     public String search;
54
55     @Parameter(1)
56     public String expected;
57
58     @Test
59     public void getBestMatchingStringByEditDistanceArray() {
60         assertEquals(expected, EditDistance.getBestMatchingStringByEditDistance(search, words));
61     }
62
63     @Test
64     public void getBestMatchingStringByEditDistanceList() {
65         assertEquals(expected, EditDistance.getBestMatchingStringByEditDistance(search, wordList));
66     }
67
68 }