JAL-3746 apply copyright to tests
[jalview.git] / test / jalview / structure / AtomSpecModelTest.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.structure;
22
23 import static org.testng.Assert.assertEquals;
24 import static org.testng.Assert.assertFalse;
25 import static org.testng.Assert.assertTrue;
26
27 import java.util.List;
28
29 import org.testng.annotations.Test;
30
31 public class AtomSpecModelTest
32 {
33   @Test(groups = "Functional")
34   public void testGetRanges()
35   {
36     AtomSpecModel model = new AtomSpecModel();
37     assertFalse(model.getModels().iterator().hasNext());
38     List<int[]> ranges = model.getRanges("1", "A");
39     assertTrue(ranges.isEmpty());
40
41     model.addRange("1", 12, 14, "A");
42     assertTrue(model.getRanges("1", "B").isEmpty());
43     assertTrue(model.getRanges("2", "A").isEmpty());
44     ranges = model.getRanges("1", "A");
45     assertEquals(ranges.size(), 1);
46     int[] range = ranges.get(0);
47     assertEquals(range[0], 12);
48     assertEquals(range[1], 14);
49
50     /*
51      * add some ranges; they should be coalesced and
52      * ordered when retrieved
53      */
54     model.addRange("1", 25, 25, "A");
55     model.addRange("1", 20, 24, "A");
56     model.addRange("1", 6, 8, "A");
57     model.addRange("1", 13, 18, "A");
58     model.addRange("1", 5, 6, "A");
59     ranges = model.getRanges("1", "A");
60     assertEquals(ranges.size(), 3);
61     range = ranges.get(0);
62     assertEquals(range[0], 5);
63     assertEquals(range[1], 8);
64     range = ranges.get(1);
65     assertEquals(range[0], 12);
66     assertEquals(range[1], 18);
67     range = ranges.get(2);
68     assertEquals(range[0], 20);
69     assertEquals(range[1], 25);
70   }
71 }