//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.uima.grammar; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertSame; import org.apache.uima.UIMAException; import org.apache.uima.jcas.JCas; import org.junit.Test; import uk.gov.dstl.baleen.types.language.WordToken; import uk.gov.dstl.baleen.uima.testing.JCasSingleton; public class WordDistanceTest { @Test public void testNoDistance() throws UIMAException { final JCas jCas = JCasSingleton.getJCasInstance(); final WordToken word = new WordToken(jCas); final WordDistance wd = new WordDistance(word); assertEquals(0, wd.getDistance()); assertSame(word, wd.getWord()); assertEquals(1, wd.getWords().size()); assertEquals(word, wd.getWords().get(0)); } @Test public void testSomeDistance() throws UIMAException { final JCas jCas = JCasSingleton.getJCasInstance(); final WordToken w1 = new WordToken(jCas); final WordToken w2 = new WordToken(jCas); final WordDistance a = new WordDistance(w1); final WordDistance b = new WordDistance(w2, a); assertEquals(1, b.getDistance()); assertSame(w2, b.getWord()); assertEquals(2, b.getWords().size()); assertSame(w1, b.getWords().get(0)); assertSame(w2, b.getWords().get(1)); assertEquals(a, b.getWordDistance()); } @Test public void testEquals() throws UIMAException{ final JCas jCas = JCasSingleton.getJCasInstance(); final WordToken w1 = new WordToken(jCas); final WordToken w2 = new WordToken(jCas); final WordDistance a = new WordDistance(w1); final WordDistance b = new WordDistance(w2); final WordDistance c = new WordDistance(w2, a); final WordDistance nwd1 = new WordDistance(null); final WordDistance nwd2 = new WordDistance(null); assertNotEquals(a, null); assertEquals(a, a); assertNotEquals(a, "Hello"); assertNotEquals(a, b); assertNotEquals(a, c); assertNotEquals(c, b); assertEquals(nwd1, nwd2); assertNotEquals(a.hashCode(), b.hashCode()); assertNotEquals(a.hashCode(), nwd1.hashCode()); assertEquals(-1, a.compareTo(c)); } }