//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.annotators.cleaners;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
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.semantic.Temporal;
public class NormalizeTemporalTest extends AbstractAnnotatorTest {
public NormalizeTemporalTest() {
super(NormalizeTemporal.class);
}
@Test
public void testTime() throws Exception{
jCas.setDocumentText("It was midnight, and all was quiet");
Temporal t = new Temporal(jCas, 7, 15);
t.setTimestampStart(LocalDateTime.of(2016, 10, 4, 0, 0, 0).toEpochSecond(ZoneOffset.UTC));
t.setTimestampStop(LocalDateTime.of(2016, 10, 4, 0, 0, 0).toEpochSecond(ZoneOffset.UTC));
t.setScope("SINGLE");
t.setTemporalType("TIME");
t.setValue("midnight");
t.addToIndexes();
processJCas(NormalizeTemporal.PARAM_DATE_FORMAT, "HH:mm", NormalizeTemporal.PARAM_TEMPORAL_TYPE, "TIME");
assertEquals(1, JCasUtil.select(jCas, Temporal.class).size());
Temporal tTest = JCasUtil.selectByIndex(jCas, Temporal.class, 0);
assertEquals("00:00", tTest.getValue());
assertTrue(tTest.getIsNormalised());
}
@Test
public void testTimeRange() throws Exception{
jCas.setDocumentText("It was July, and all was quiet");
Temporal t = new Temporal(jCas, 7, 11);
t.setTimestampStart(LocalDateTime.of(2016, 7, 1, 0, 0, 0).toEpochSecond(ZoneOffset.UTC));
t.setTimestampStop(LocalDateTime.of(2016, 8, 1, 0, 0, 0).toEpochSecond(ZoneOffset.UTC));
t.setScope("RANGE");
t.setTemporalType("DATE");
t.setValue("July");
t.addToIndexes();
processJCas(NormalizeTemporal.PARAM_DATE_FORMAT, "HH:mm", NormalizeTemporal.PARAM_TEMPORAL_TYPE, "TIME");
assertEquals(1, JCasUtil.select(jCas, Temporal.class).size());
Temporal tTest = JCasUtil.selectByIndex(jCas, Temporal.class, 0);
assertEquals("July", tTest.getValue());
assertFalse(tTest.getIsNormalised());
}
@Test
public void testWrongType() throws Exception{
jCas.setDocumentText("It was midnight, and all was quiet");
Temporal t = new Temporal(jCas, 7, 15);
t.setTimestampStart(LocalDateTime.of(2016, 10, 4, 0, 0, 0).toEpochSecond(ZoneOffset.UTC));
t.setTimestampStop(LocalDateTime.of(2016, 10, 4, 0, 0, 0).toEpochSecond(ZoneOffset.UTC));
t.setScope("SINGLE");
t.setTemporalType("TIME");
t.setValue("midnight");
t.addToIndexes();
processJCas(NormalizeTemporal.PARAM_DATE_FORMAT, "HH:mm", NormalizeTemporal.PARAM_TEMPORAL_TYPE, "DATE");
assertEquals(1, JCasUtil.select(jCas, Temporal.class).size());
Temporal tTest = JCasUtil.selectByIndex(jCas, Temporal.class, 0);
assertEquals("midnight", tTest.getValue());
assertFalse(tTest.getIsNormalised());
}
@Test
public void testNoTimestamp() throws Exception{
jCas.setDocumentText("It was midnight, and all was quiet");
Temporal t = new Temporal(jCas, 7, 15);
t.setScope("SINGLE");
t.setTemporalType("TIME");
t.setValue("midnight");
t.addToIndexes();
processJCas(NormalizeTemporal.PARAM_DATE_FORMAT, "HH:mm", NormalizeTemporal.PARAM_TEMPORAL_TYPE, "TIME");
assertEquals(1, JCasUtil.select(jCas, Temporal.class).size());
Temporal tTest = JCasUtil.selectByIndex(jCas, Temporal.class, 0);
assertEquals("midnight", tTest.getValue());
assertFalse(tTest.getIsNormalised());
}
}