//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.annotators.cleaners;
import static org.junit.Assert.assertEquals;
import org.apache.uima.UIMAException;
import org.apache.uima.fit.util.JCasUtil;
import org.junit.Test;
import uk.gov.dstl.baleen.annotators.testing.AbstractAnnotatorTest;
import uk.gov.dstl.baleen.types.common.Quantity;
import uk.gov.dstl.baleen.types.semantic.Location;
public class ExpandLocationToDescriptionTest extends AbstractAnnotatorTest {
public ExpandLocationToDescriptionTest(){
super(ExpandLocationToDescription.class);
}
@Test
public void test() throws UIMAException {
jCas.setDocumentText("The weapons were found 50 miles south-west of London");
Quantity q = new Quantity(jCas);
q.setBegin(23);
q.setEnd(31);
q.setSubType("distance");
q.addToIndexes();
Location l = new Location(jCas, 46, 52);
l.addToIndexes();
processJCas();
assertEquals("50 miles south-west of London", l.getCoveredText());
assertEquals(1, JCasUtil.select(jCas, Quantity.class).size());
}
@Test
public void test2() throws UIMAException {
jCas.setDocumentText("It happened in northern Syria.");
Location l = new Location(jCas, 24, 29);
l.addToIndexes();
processJCas();
assertEquals("northern Syria", l.getCoveredText());
assertEquals(1, JCasUtil.select(jCas, Location.class).size());
}
@Test
public void testRemoveQuantity() throws UIMAException {
jCas.setDocumentText("The weapons were found 20 miles north of London");
Quantity q = new Quantity(jCas);
q.setBegin(23);
q.setEnd(31);
q.setSubType("distance");
q.addToIndexes();
Location l = new Location(jCas, 41, 47);
l.addToIndexes();
processJCas(ExpandLocationToDescription.PARAM_REMOVE_QUANTITY, true);
assertEquals("20 miles north of London", l.getCoveredText());
assertEquals(0, JCasUtil.select(jCas, Quantity.class).size());
}
@Test
public void testNoQuantity() throws UIMAException {
jCas.setDocumentText("The weapons were found 20 miles N of London");
Location l = new Location(jCas, 37, 43);
l.addToIndexes();
processJCas();
assertEquals("N of London", l.getCoveredText());
assertEquals(0, JCasUtil.select(jCas, Quantity.class).size());
}
@Test
public void testArea() throws UIMAException {
jCas.setDocumentText("The weapons were found in the vicinity of Tower Bridge");
Location l = new Location(jCas, 42, 54);
l.addToIndexes();
processJCas();
assertEquals("the vicinity of Tower Bridge", l.getCoveredText());
assertEquals(0, JCasUtil.select(jCas, Quantity.class).size());
}
}