//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.annotators.cleaners; import static org.junit.Assert.assertEquals; import org.apache.uima.analysis_engine.AnalysisEngine; import org.apache.uima.fit.factory.AnalysisEngineFactory; import org.apache.uima.fit.util.JCasUtil; import org.apache.uima.jcas.JCas; import org.junit.Test; import uk.gov.dstl.baleen.annotators.testing.Annotations; import uk.gov.dstl.baleen.annotators.testing.AnnotatorTestBase; import uk.gov.dstl.baleen.types.common.Person; import uk.gov.dstl.baleen.types.semantic.Location; import uk.gov.dstl.baleen.types.semantic.Temporal; public class RemoveNestedEntitiesTest extends AnnotatorTestBase { @Test public void test() throws Exception{ AnalysisEngine rneAE = AnalysisEngineFactory.createEngine(RemoveNestedEntities.class); populateJCas(jCas); rneAE.process(jCas); assertEquals(1, JCasUtil.select(jCas, Person.class).size()); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); assertEquals(1, JCasUtil.select(jCas, Location.class).size()); Temporal dt = JCasUtil.selectByIndex(jCas, Temporal.class, 0); assertEquals("December 1972", dt.getCoveredText()); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); assertEquals("Oxford", l.getCoveredText()); } @Test public void testExclude() throws Exception{ AnalysisEngine rneAE = AnalysisEngineFactory.createEngine(RemoveNestedEntities.class, "excludedTypes", new String[]{"uk.gov.dstl.baleen.types.semantic.Location"}); populateJCas(jCas); rneAE.process(jCas); assertEquals(1, JCasUtil.select(jCas, Person.class).size()); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); assertEquals(3, JCasUtil.select(jCas, Location.class).size()); } private void populateJCas(JCas jCas){ jCas.setDocumentText("Eliza was born in December 1972 in Oxford"); Annotations.createPerson(jCas, 0, 5, "Eliza"); Annotations.createTemporal(jCas, 18, 31, "December 1972"); Annotations.createTemporal(jCas, 18, 26, "December"); Annotations.createLocation(jCas, 35, 37, "OX", null); Annotations.createLocation(jCas, 35, 41, "Oxford", null); Annotations.createLocation(jCas, 36, 41, "xford", null); } }