JAL-2446 merged to spike branch
[jalview.git] / test / jalview / datamodel / features / RangeComparatorTest.java
1 package jalview.datamodel.features;
2
3 import static org.testng.Assert.assertEquals;
4
5 import jalview.datamodel.ContiguousI;
6 import jalview.datamodel.Range;
7
8 import java.util.Comparator;
9
10 import org.testng.annotations.Test;
11
12 public class RangeComparatorTest
13 {
14
15   @Test(groups = "Functional")
16   public void testCompare()
17   {
18     RangeComparator comp = new RangeComparator(true);
19
20     // same position, same length
21     assertEquals(comp.compare(10, 10, 20, 20), 0);
22     // same position, len1 > len2
23     assertEquals(comp.compare(10, 10, 20, 19), -1);
24     // same position, len1 < len2
25     assertEquals(comp.compare(10, 10, 20, 21), 1);
26     // pos1 > pos2
27     assertEquals(comp.compare(11, 10, 20, 20), 1);
28     // pos1 < pos2
29     assertEquals(comp.compare(10, 11, 20, 10), -1);
30   }
31
32   @Test(groups = "Functional")
33   public void testCompare_byStart()
34   {
35     Comparator<ContiguousI> comp = RangeComparator.BY_START_POSITION;
36
37     // same start position, same length
38     assertEquals(comp.compare(new Range(10, 20), new Range(10, 20)), 0);
39     // same start position, len1 > len2
40     assertEquals(comp.compare(new Range(10, 20), new Range(10, 19)), -1);
41     // same start position, len1 < len2
42     assertEquals(comp.compare(new Range(10, 18), new Range(10, 20)), 1);
43     // pos1 > pos2
44     assertEquals(comp.compare(new Range(11, 20), new Range(10, 20)), 1);
45     // pos1 < pos2
46     assertEquals(comp.compare(new Range(10, 20), new Range(11, 20)), -1);
47   }
48
49   @Test(groups = "Functional")
50   public void testCompare_byEnd()
51   {
52     Comparator<ContiguousI> comp = RangeComparator.BY_END_POSITION;
53
54     // same end position, same length
55     assertEquals(comp.compare(new Range(10, 20), new Range(10, 20)), 0);
56     // same end position, len1 > len2
57     assertEquals(comp.compare(new Range(10, 20), new Range(11, 20)), -1);
58     // same end position, len1 < len2
59     assertEquals(comp.compare(new Range(11, 20), new Range(10, 20)), 1);
60     // end1 > end2
61     assertEquals(comp.compare(new Range(10, 21), new Range(10, 20)), 1);
62     // end1 < end2
63     assertEquals(comp.compare(new Range(10, 20), new Range(10, 21)), -1);
64   }
65 }