import static org.junit.Assert.*; import org.junit.*; import java.util.*; public class TestLexicon { private ArrayList myWords; private ArrayList myPrefixes; private ArrayList myNonWords; private ILexicon myLexicon; public ILexicon makeLexicon(){ return new TrieLexicon(); } @Before public void setUp(){ String[] words = { "apple", "berry", "cherry", "date", "fig", "melon", "orange", "pineapple", "blueberry", "cherry-pie", "blueberry-pie", "apple-pie", "pineapple-upside-down-cake", "watermelon"}; String[] prefixes = { "pine", "blue", "water", "melo", "fi", "cherr"}; String[] nonWords = { "aardvark", "figgy", "melon-ball", "dater", "xylophone", "oranges", "goofy", "mickey"}; myWords = new ArrayList(Arrays.asList(words)); myPrefixes = new ArrayList(Arrays.asList(prefixes)); myNonWords = new ArrayList(Arrays.asList(nonWords)); myLexicon = makeLexicon(); myLexicon.load(myWords); } @Test public void wordTest(){ assertEquals("size of lexicon failed",myWords.size(), myLexicon.size()); for(String s : myWords){ LexStatus stat = myLexicon.wordStatus(s); assertEquals("fail for word: "+s,LexStatus.WORD,stat); } } @Test public void prefixTest(){ for(String s : myPrefixes){ LexStatus stat = myLexicon.wordStatus(s); assertEquals("fail for prefix: "+s,LexStatus.PREFIX,stat); } } @Test public void nonWordTest(){ for(String s : myNonWords){ LexStatus stat = myLexicon.wordStatus(s); assertEquals("fail for non word: "+s,LexStatus.NOT_WORD,stat); } } }