//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.uima.utils;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.apache.uima.UIMAException;
import org.apache.uima.fit.util.JCasUtil;
import org.apache.uima.jcas.JCas;
import org.junit.Before;
import org.junit.Test;
import uk.gov.dstl.baleen.types.semantic.Entity;
import uk.gov.dstl.baleen.uima.testing.JCasSingleton;
public class ComparableEntitySpanUtilsTest {
private JCas jCas;
@Before
public void before() throws UIMAException {
jCas = JCasSingleton.getJCasInstance();
}
@Test
public void testCopyEntity() {
final Entity e = new Entity(jCas);
e.setBegin(0);
e.setBegin(5);
e.setValue("value");
e.addToIndexes();
final Entity copyEntity = ComparableEntitySpanUtils.copyEntity(jCas, 10, 20, e);
copyEntity.addToIndexes();
final List<Entity> select = new ArrayList<>(JCasUtil.select(jCas, Entity.class));
assertEquals(2, select.size());
assertSame(e, select.get(0));
assertEquals("value", select.get(1).getValue());
assertEquals(10, select.get(1).getBegin());
assertEquals(20, select.get(1).getEnd());
}
@Test
public void testOverlaps() {
final Entity a = new Entity(jCas);
a.setBegin(0);
a.setEnd(10);
final Entity b = new Entity(jCas);
b.setBegin(8);
b.setEnd(15);
final Entity c = new Entity(jCas);
c.setBegin(20);
c.setEnd(30);
assertTrue(ComparableEntitySpanUtils.overlaps(a, b));
assertTrue(ComparableEntitySpanUtils.overlaps(b, a));
assertFalse(ComparableEntitySpanUtils.overlaps(a, c));
assertFalse(ComparableEntitySpanUtils.overlaps(c, a));
}
}