2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
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.
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.
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.
21 package jalview.datamodel;
23 import static org.testng.Assert.assertNull;
24 import static org.testng.AssertJUnit.assertEquals;
26 import java.util.ArrayList;
27 import java.util.List;
29 import org.testng.annotations.Test;
31 public class HiddenColumnsCursorTest
34 * Test the method which finds the corresponding region given a column
36 @Test(groups = { "Functional" })
37 public void testFindRegionForColumn()
39 HiddenColumnsCursor cursor = new HiddenColumnsCursor();
41 HiddenCursorPosition pos = cursor.findRegionForColumn(20);
44 List<int[]> hidden = new ArrayList<>();
45 hidden.add(new int[] { 53, 76 });
46 hidden.add(new int[] { 104, 125 });
47 cursor.resetCursor(hidden);
49 int regionIndex = cursor.findRegionForColumn(126).getRegionIndex();
50 assertEquals(2, regionIndex);
52 regionIndex = cursor.findRegionForColumn(125).getRegionIndex();
53 assertEquals(1, regionIndex);
55 regionIndex = cursor.findRegionForColumn(108).getRegionIndex();
56 assertEquals(1, regionIndex);
58 regionIndex = cursor.findRegionForColumn(104).getRegionIndex();
59 assertEquals(1, regionIndex);
61 regionIndex = cursor.findRegionForColumn(103).getRegionIndex();
62 assertEquals(1, regionIndex);
64 regionIndex = cursor.findRegionForColumn(77).getRegionIndex();
65 assertEquals(1, regionIndex);
67 regionIndex = cursor.findRegionForColumn(76).getRegionIndex();
68 assertEquals(0, regionIndex);
70 regionIndex = cursor.findRegionForColumn(53).getRegionIndex();
71 assertEquals(0, regionIndex);
73 regionIndex = cursor.findRegionForColumn(52).getRegionIndex();
74 assertEquals(0, regionIndex);
76 regionIndex = cursor.findRegionForColumn(0).getRegionIndex();
77 assertEquals(0, regionIndex);
79 hidden.add(new int[] { 138, 155 });
80 cursor.resetCursor(hidden);
82 regionIndex = cursor.findRegionForColumn(160).getRegionIndex();
83 assertEquals(3, regionIndex);
85 regionIndex = cursor.findRegionForColumn(100).getRegionIndex();
86 assertEquals(1, regionIndex);
90 * Test the method which counts the number of hidden columns before a column
92 @Test(groups = { "Functional" })
93 public void testGetHiddenOffset()
95 HiddenColumnsCursor cursor = new HiddenColumnsCursor();
97 HiddenCursorPosition pos = cursor.findRegionForVisColumn(20);
100 List<int[]> hidden = new ArrayList<>();
101 hidden.add(new int[] { 53, 76 });
102 hidden.add(new int[] { 104, 125 });
103 cursor.resetCursor(hidden);
105 int offset = cursor.findRegionForVisColumn(80).getHiddenSoFar();
106 assertEquals(46, offset);
108 offset = cursor.findRegionForVisColumn(79).getHiddenSoFar();
109 assertEquals(24, offset);
111 offset = cursor.findRegionForVisColumn(53).getHiddenSoFar();
112 assertEquals(24, offset);
114 offset = cursor.findRegionForVisColumn(52).getHiddenSoFar();
115 assertEquals(0, offset);
117 offset = cursor.findRegionForVisColumn(10).getHiddenSoFar();
118 assertEquals(0, offset);
120 offset = cursor.findRegionForVisColumn(0).getHiddenSoFar();
121 assertEquals(0, offset);