81dd0307bb88b9e2e230bdba80a9b72e519ddd71
[jalview.git] / test / jalview / structure / AtomSpecModelTest.java
1 package jalview.structure;
2
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertFalse;
5 import static org.testng.Assert.assertTrue;
6
7 import java.util.List;
8
9 import org.testng.annotations.Test;
10
11 public class AtomSpecModelTest
12 {
13   @Test(groups = "Functional")
14   public void testGetRanges()
15   {
16     AtomSpecModel model = new AtomSpecModel();
17     assertFalse(model.getModels().iterator().hasNext());
18     List<int[]> ranges = model.getRanges("1", "A");
19     assertTrue(ranges.isEmpty());
20
21     model.addRange("1", 12, 14, "A");
22     assertTrue(model.getRanges("1", "B").isEmpty());
23     assertTrue(model.getRanges("2", "A").isEmpty());
24     ranges = model.getRanges("1", "A");
25     assertEquals(ranges.size(), 1);
26     int[] range = ranges.get(0);
27     assertEquals(range[0], 12);
28     assertEquals(range[1], 14);
29
30     /*
31      * add some ranges; they should be coalesced and
32      * ordered when retrieved
33      */
34     model.addRange("1", 25, 25, "A");
35     model.addRange("1", 20, 24, "A");
36     model.addRange("1", 6, 8, "A");
37     model.addRange("1", 13, 18, "A");
38     model.addRange("1", 5, 6, "A");
39     ranges = model.getRanges("1", "A");
40     assertEquals(ranges.size(), 3);
41     range = ranges.get(0);
42     assertEquals(range[0], 5);
43     assertEquals(range[1], 8);
44     range = ranges.get(1);
45     assertEquals(range[0], 12);
46     assertEquals(range[1], 18);
47     range = ranges.get(2);
48     assertEquals(range[0], 20);
49     assertEquals(range[1], 25);
50   }
51 }