//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.annotators.misc;
import static org.junit.Assert.assertEquals;
import org.apache.uima.fit.util.JCasUtil;
import org.junit.Test;
import uk.gov.dstl.baleen.annotators.misc.People;
import uk.gov.dstl.baleen.annotators.testing.AbstractAnnotatorTest;
import uk.gov.dstl.baleen.types.common.Nationality;
import uk.gov.dstl.baleen.types.common.Organisation;
import uk.gov.dstl.baleen.types.common.Quantity;
import uk.gov.dstl.baleen.types.semantic.Location;
public class PeopleTest extends AbstractAnnotatorTest {
public PeopleTest(){
super(People.class);
}
@Test
public void testPeopleOfLocation() throws Exception{
jCas.setDocumentText("The people of Scotland voted in an independence referendum");
Location l = new Location(jCas, 14, 22);
l.addToIndexes();
processJCas();
assertEquals(0, JCasUtil.select(jCas, Location.class).size());
assertEquals(1, JCasUtil.select(jCas, Organisation.class).size());
assertEquals("people of Scotland", JCasUtil.selectByIndex(jCas, Organisation.class, 0).getCoveredText());
}
@Test
public void testPeopleOfLocationKeepOriginal() throws Exception{
jCas.setDocumentText("The people of Scotland voted in an independence referendum");
Location l = new Location(jCas, 14, 22);
l.addToIndexes();
processJCas(People.PARAM_REMOVE_ORIGINAL, false);
assertEquals(1, JCasUtil.select(jCas, Location.class).size());
assertEquals("Scotland", JCasUtil.selectByIndex(jCas, Location.class, 0).getCoveredText());
assertEquals(1, JCasUtil.select(jCas, Organisation.class).size());
assertEquals("people of Scotland", JCasUtil.selectByIndex(jCas, Organisation.class, 0).getCoveredText());
}
@Test
public void testNationalityPeople() throws Exception{
jCas.setDocumentText("The Scottish people voted in an independence referendum");
Nationality n = new Nationality(jCas, 4, 12);
n.addToIndexes();
processJCas();
assertEquals(0, JCasUtil.select(jCas, Nationality.class).size());
assertEquals(1, JCasUtil.select(jCas, Organisation.class).size());
assertEquals("Scottish people", JCasUtil.selectByIndex(jCas, Organisation.class, 0).getCoveredText());
}
@Test
public void testNationalityPeopleKeepOriginal() throws Exception{
jCas.setDocumentText("The Scottish people voted in an independence referendum");
Nationality n = new Nationality(jCas, 4, 12);
n.addToIndexes();
processJCas(People.PARAM_REMOVE_ORIGINAL, false);
assertEquals(1, JCasUtil.select(jCas, Nationality.class).size());
assertEquals("Scottish", JCasUtil.selectByIndex(jCas, Nationality.class, 0).getCoveredText());
assertEquals(1, JCasUtil.select(jCas, Organisation.class).size());
assertEquals("Scottish people", JCasUtil.selectByIndex(jCas, Organisation.class, 0).getCoveredText());
}
@Test
public void testQuantityPeople() throws Exception{
jCas.setDocumentText("47,000 people voted in an independence referendum");
Quantity n = new Quantity(jCas, 0, 6);
n.addToIndexes();
processJCas();
assertEquals(0, JCasUtil.select(jCas, Quantity.class).size());
assertEquals(1, JCasUtil.select(jCas, Organisation.class).size());
assertEquals("47,000 people", JCasUtil.selectByIndex(jCas, Organisation.class, 0).getCoveredText());
}
@Test
public void testQuantityPeopleKeepOriginal() throws Exception{
jCas.setDocumentText("47,000 people voted in an independence referendum");
Quantity n = new Quantity(jCas, 0, 6);
n.addToIndexes();
processJCas(People.PARAM_REMOVE_ORIGINAL, false);
assertEquals(1, JCasUtil.select(jCas, Quantity.class).size());
assertEquals("47,000", JCasUtil.selectByIndex(jCas, Quantity.class, 0).getCoveredText());
assertEquals(1, JCasUtil.select(jCas, Organisation.class).size());
assertEquals("47,000 people", JCasUtil.selectByIndex(jCas, Organisation.class, 0).getCoveredText());
}
}