import org.junit.Test;
import java.util.Arrays;
import java.util.List;
public class ComputeKMostFrequentTest {
private List<String> expected;
private List<String> list;
private int k;
@Test
public void mostFrequent1() throws Exception {
expected = Arrays.asList(
"Joan"
);
list = Arrays.asList(
"Mark",
"Steve",
"Mason",
"Joan",
"Jordan",
"Greg",
"Mark",
"Garth",
"Joan",
"Daisy",
"Joan",
"Marcus"
);
k = 1;
test(expected, list, k);
}
@Test
public void mostFrequent2() throws Exception {
expected = Arrays.asList(
"Mark",
"Joan"
);
list = Arrays.asList(
"Mark",
"Steve",
"Mason",
"Joan",
"Jordan",
"Greg",
"Mark",
"Garth",
"Joan",
"Daisy",
"Joan",
"Marcus"
);
k = 2;
test(expected, list, k);
}
@Test
public void mostFrequent3() throws Exception {
expected = Arrays.asList(
"Mark",
"Joan",
"Greg"
);
list = Arrays.asList(
"Mark",
"Steve",
"Mason",
"Joan",
"Jordan",
"Greg",
"Mark",
"Garth",
"Joan",
"Daisy",
"Greg",
"Marcus"
);
k = 3;
test(expected, list, k);
}
private static void test(List<String> expected, List<String> list, int k) {
AssertUtils.assertSameContentsString(expected, ComputeKMostFrequent.mostFrequent(list, k));
}
}