package jalview.datamodel.features; import static org.testng.Assert.assertEquals; import org.testng.annotations.Test; public class RangeComparatorTest { class Range implements ContiguousI { int begin; int end; @Override public int getBegin() { return begin; } @Override public int getEnd() { return end; } Range(int i, int j) { begin = i; end = j; } } @Test(groups = "Functional") public void testCompare() { RangeComparator comp = new RangeComparator(true); // same position, same length assertEquals(comp.compare(10, 10, 20, 20), 0); // same position, len1 > len2 assertEquals(comp.compare(10, 10, 20, 19), -1); // same position, len1 < len2 assertEquals(comp.compare(10, 10, 20, 21), 1); // pos1 > pos2 assertEquals(comp.compare(11, 10, 20, 20), 1); // pos1 < pos2 assertEquals(comp.compare(10, 11, 20, 10), -1); } @Test(groups = "Functional") public void testCompare_byStart() { RangeComparator comp = new RangeComparator(true); // same start position, same length assertEquals(comp.compare(new Range(10, 20), new Range(10, 20)), 0); // same start position, len1 > len2 assertEquals(comp.compare(new Range(10, 20), new Range(10, 19)), -1); // same start position, len1 < len2 assertEquals(comp.compare(new Range(10, 18), new Range(10, 20)), 1); // pos1 > pos2 assertEquals(comp.compare(new Range(11, 20), new Range(10, 20)), 1); // pos1 < pos2 assertEquals(comp.compare(new Range(10, 20), new Range(11, 20)), -1); } @Test(groups = "Functional") public void testCompare_byEnd() { RangeComparator comp = new RangeComparator(false); // same end position, same length assertEquals(comp.compare(new Range(10, 20), new Range(10, 20)), 0); // same end position, len1 > len2 assertEquals(comp.compare(new Range(10, 20), new Range(11, 20)), -1); // same end position, len1 < len2 assertEquals(comp.compare(new Range(11, 20), new Range(10, 20)), 1); // end1 > end2 assertEquals(comp.compare(new Range(10, 21), new Range(10, 20)), 1); // end1 < end2 assertEquals(comp.compare(new Range(10, 20), new Range(10, 21)), -1); } }