//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.uima; import static org.junit.Assert.*; import java.util.List; import java.util.regex.Pattern; import org.junit.Test; import uk.gov.dstl.baleen.testing.ComparatorTestUtils; public class ComparableSpanTest { @Test public void testHashCodeEqualsComparator() { ComparableTextSpan a = new ComparableTextSpan(0, 1, "a"); ComparableTextSpan a2 = new ComparableTextSpan(0, 1, "a"); ComparableTextSpan b = new ComparableTextSpan(0, 1, "b"); ComparableTextSpan c = new ComparableTextSpan(0, 1); ComparableTextSpan aNull = new ComparableTextSpan(0, 1, null); ComparableTextSpan cNull = new ComparableTextSpan(0, 2, null); ComparatorTestUtils.comparedNotEqual(a, b); ComparatorTestUtils.comparedNotEqual(a, c); ComparatorTestUtils.comparedEqual(a, a2); ComparatorTestUtils.comparedEqual(a, a); ComparatorTestUtils.comparedEqual(aNull, aNull); ComparatorTestUtils.comparedNotEqual(aNull, cNull); ComparatorTestUtils.comparedNotEqual(a, aNull); ComparatorTestUtils.comparedNotEqual(a, cNull); ComparatorTestUtils.comparedNotEqual(aNull, a); } @Test public void testComparision() { ComparableTextSpan a = new ComparableTextSpan(0, 10, "a"); ComparableTextSpan a1 = new ComparableTextSpan(0, 1, "a"); ComparableTextSpan a2 = new ComparableTextSpan(9, 10, "a"); ComparableTextSpan a3 = new ComparableTextSpan(5, 15, "a"); ComparableTextSpan z = new ComparableTextSpan(0, 10, "z"); ComparableTextSpan b = new ComparableTextSpan(0, 10, "b"); ComparableTextSpan c = new ComparableTextSpan(0, 10, "c"); ComparableTextSpan n = new ComparableTextSpan(0, 10, null); ComparableTextSpan nG = new ComparableTextSpan(5, 10, null); ComparableTextSpan nL = new ComparableTextSpan(0, 6, null); ComparatorTestUtils.compareOrder(a, z); ComparatorTestUtils.compareOrder(a1, a); ComparatorTestUtils.compareOrder(a, a2); ComparatorTestUtils.compareOrder(a1, a2); ComparatorTestUtils.compareOrder(a, a3); ComparatorTestUtils.compareOrder(a3, a2); ComparatorTestUtils.compareOrder(a, b); ComparatorTestUtils.compareOrder(b, c); ComparatorTestUtils.compareOrder(n, a); ComparatorTestUtils.compareOrder(nL, nG); ComparatorTestUtils.compareOrder(n, a); ComparatorTestUtils.compareOrder(nL, a); ComparatorTestUtils.compareOrder(a, nG); } @Test public void testGet() { ComparableTextSpan a = new ComparableTextSpan(0, 10, "a"); ComparableTextSpan b = new ComparableTextSpan(0, 10, null); assertEquals(0, a.getStart()); assertEquals(10, a.getEnd()); assertEquals("a", a.getValue()); assertTrue(a.hasValue()); assertFalse(b.hasValue()); // Not specifically required to be like this assertEquals("0:10[a]", a.toString()); } @Test public void testStatic() { List<ComparableTextSpan> spans = ComparableTextSpan.buildSpans("The quick brown fox", Pattern.compile("\\w+")); assertEquals(4,spans.size()); assertEquals("fox",spans.get(3).getValue()); } }