//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.annotators.cleaners;
import static org.junit.Assert.assertEquals;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneOffset;
import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.fit.factory.AnalysisEngineFactory;
import org.apache.uima.fit.util.JCasUtil;
import org.junit.Test;
import uk.gov.dstl.baleen.annotators.testing.AnnotatorTestBase;
import uk.gov.dstl.baleen.types.semantic.Temporal;
/**
*
*/
public class CleanTemporalTest extends AnnotatorTestBase {
@Test
public void testRemove() throws Exception{
AnalysisEngine ae = AnalysisEngineFactory.createEngine(CleanTemporal.class, CleanTemporal.PARAM_REMOVE_ZERO_TIMESTAMP, true);
jCas.setDocumentText("Tom was born on 1 January 2010, his grandfather was born on 1 January 1930");
Long jan2010 = LocalDateTime.of(2010, Month.JANUARY, 1, 0, 0).toEpochSecond(ZoneOffset.UTC);
Temporal dt1 = new Temporal(jCas);
dt1.setValue("1 January 2010");
dt1.setBegin(16);
dt1.setEnd(30);
dt1.setTimestampStart(jan2010);
dt1.setTimestampStop(jan2010);
dt1.addToIndexes();
Long jan1930 = LocalDateTime.of(1930, Month.JANUARY, 1, 0, 0).toEpochSecond(ZoneOffset.UTC);
Temporal dt2 = new Temporal(jCas);
dt2.setValue("1 January 1930");
dt2.setBegin(60);
dt2.setEnd(74);
dt2.setTimestampStart(jan1930);
dt2.setTimestampStop(jan1930);
dt2.addToIndexes();
Temporal dt3 = new Temporal(jCas);
dt3.setValue("1 January 1930 to 1 January 2010");
dt3.setTimestampStart(jan1930);
dt3.setTimestampStop(jan2010);
dt3.addToIndexes();
Temporal dt4 = new Temporal(jCas);
dt4.setValue("Some date");
dt4.addToIndexes();
ae.process(jCas);
assertEquals(1, JCasUtil.select(jCas, Temporal.class).size());
Temporal dt = JCasUtil.selectByIndex(jCas, Temporal.class, 0);
assertEquals("1 January 2010", dt.getValue());
}
@Test
public void testCurrencyInDate() throws Exception{
AnalysisEngine ae = AnalysisEngineFactory.createEngine(CleanTemporal.class);
jCas.setDocumentText("It cost $4.10");
Temporal dt = new Temporal(jCas);
dt.setBegin(8);
dt.setEnd(13);
dt.setValue(dt.getCoveredText());
dt.addToIndexes();
assertEquals(1, JCasUtil.select(jCas, Temporal.class).size());
ae.process(jCas);
assertEquals(0, JCasUtil.select(jCas, Temporal.class).size());
}
}