Link to code: WordNgramTester.java
import org.junit.*;
import java.util.*;
import static org.junit.Assert.*;
public class WordNgramTester {
;
private WordNgram[] myNgrams;
@Before
public void setUp(){
String str = "aa bb cc aa bb cc aa bb cc aa bb dd ee ff gg hh ii jj";
String[] array = str.split("\\s+");
myNgrams= new WordNgram[array.length-2];
for(int k=0; k < array.length-2; k++){
myNgrams[k] = new WordNgram(array,k,3);
}
}
@Test
public void testHashEquals(){
assertEquals("hash fail on equals 0,3",myNgrams[0].hashCode(),myNgrams[3].hashCode());
assertEquals("hash fail on equals 0,3",myNgrams[0].hashCode(),myNgrams[6].hashCode());
assertEquals("hash fail on equals 0,3",myNgrams[1].hashCode(),myNgrams[4].hashCode());
assertEquals("hash fail on equals 0,3",myNgrams[2].hashCode(),myNgrams[8].hashCode());
assertEquals("hash fail on equals 0,3",myNgrams[2].hashCode(),myNgrams[5].hashCode());
}
@Test
public void testEquals(){
assertEquals("fail on 0,3",myNgrams[0].equals(myNgrams[3]),true);
assertEquals("fail on 0,6",myNgrams[0].equals(myNgrams[6]),true);
assertEquals("fail on 1,4",myNgrams[1].equals(myNgrams[4]),true);
assertEquals("fail on 2,5",myNgrams[2].equals(myNgrams[5]),true);
assertEquals("fail on 2,8",myNgrams[2].equals(myNgrams[8]),true);
assertEquals("fail on 0,2",myNgrams[0].equals(myNgrams[2]),false);
assertEquals("fail on 0,4",myNgrams[0].equals(myNgrams[2]),false);
assertEquals("fail on 2,3",myNgrams[2].equals(myNgrams[3]),false);
assertEquals("fail no 2,6",myNgrams[2].equals(myNgrams[6]),false);
assertEquals("fail no 7,8",myNgrams[7].equals(myNgrams[8]),false);
}
@Test
public void testHash(){
Set<Integer> set = new HashSet<Integer>();
for(WordNgram w : myNgrams) {
set.add(w.hashCode());
}
assertTrue("hash code test", set.size() > 9);
}
}