6f22adde37dd187355acb614d7ec85eeedc97f07
[jalview.git] / test / jalview / datamodel / features / RangeComparatorTest.java
1 package jalview.datamodel.features;
2
3 import static org.testng.Assert.assertEquals;
4
5 import org.testng.annotations.Test;
6
7 public class RangeComparatorTest
8 {
9   class Range implements ContiguousI
10   {
11     int begin;
12
13     int end;
14
15     @Override
16     public int getBegin()
17     {
18       return begin;
19     }
20
21     @Override
22     public int getEnd()
23     {
24       return end;
25     }
26
27     Range(int i, int j)
28     {
29       begin = i;
30       end = j;
31     }
32   }
33
34   @Test(groups = "Functional")
35   public void testCompare()
36   {
37     RangeComparator comp = new RangeComparator(true);
38
39     // same position, same length
40     assertEquals(comp.compare(10, 10, 20, 20), 0);
41     // same position, len1 > len2
42     assertEquals(comp.compare(10, 10, 20, 19), -1);
43     // same position, len1 < len2
44     assertEquals(comp.compare(10, 10, 20, 21), 1);
45     // pos1 > pos2
46     assertEquals(comp.compare(11, 10, 20, 20), 1);
47     // pos1 < pos2
48     assertEquals(comp.compare(10, 11, 20, 10), -1);
49   }
50
51   @Test(groups = "Functional")
52   public void testCompare_byStart()
53   {
54     RangeComparator comp = new RangeComparator(true);
55
56     // same start position, same length
57     assertEquals(comp.compare(new Range(10, 20), new Range(10, 20)), 0);
58     // same start position, len1 > len2
59     assertEquals(comp.compare(new Range(10, 20), new Range(10, 19)), -1);
60     // same start position, len1 < len2
61     assertEquals(comp.compare(new Range(10, 18), new Range(10, 20)), 1);
62     // pos1 > pos2
63     assertEquals(comp.compare(new Range(11, 20), new Range(10, 20)), 1);
64     // pos1 < pos2
65     assertEquals(comp.compare(new Range(10, 20), new Range(11, 20)), -1);
66   }
67
68   @Test(groups = "Functional")
69   public void testCompare_byEnd()
70   {
71     RangeComparator comp = new RangeComparator(false);
72
73     // same end position, same length
74     assertEquals(comp.compare(new Range(10, 20), new Range(10, 20)), 0);
75     // same end position, len1 > len2
76     assertEquals(comp.compare(new Range(10, 20), new Range(11, 20)), -1);
77     // same end position, len1 < len2
78     assertEquals(comp.compare(new Range(11, 20), new Range(10, 20)), 1);
79     // end1 > end2
80     assertEquals(comp.compare(new Range(10, 21), new Range(10, 20)), 1);
81     // end1 < end2
82     assertEquals(comp.compare(new Range(10, 20), new Range(10, 21)), -1);
83   }
84 }