*/
package jalview.datamodel;
+import static org.testng.Assert.assertNull;
import static org.testng.AssertJUnit.assertEquals;
import java.util.ArrayList;
public class HiddenColumnsCursorTest
{
+
+ @Test(groups = { "Functional" })
+ public void testConstructor()
+ {
+ HiddenColumnsCursor cursor = new HiddenColumnsCursor();
+ assertNull(cursor.findRegionForColumn(0, false));
+
+ List<int[]> hlist = new ArrayList<>();
+ cursor = new HiddenColumnsCursor(hlist);
+ assertNull(cursor.findRegionForColumn(0, false));
+
+ cursor = new HiddenColumnsCursor(hlist, 3, 12);
+ assertNull(cursor.findRegionForColumn(0, false));
+
+ hlist.add(new int[] { 3, 7 });
+ hlist.add(new int[] { 15, 25 });
+ cursor = new HiddenColumnsCursor(hlist);
+ HiddenCursorPosition p = cursor.findRegionForColumn(8, false);
+ assertEquals(1, p.getRegionIndex());
+
+ cursor = new HiddenColumnsCursor(hlist, 1, 5);
+ p = cursor.findRegionForColumn(8, false);
+ assertEquals(1, p.getRegionIndex());
+ }
+
/**
* Test the method which finds the corresponding region given a column
*/
{
HiddenColumnsCursor cursor = new HiddenColumnsCursor();
- int regionIndex = cursor.findRegionForColumn(20);
- assertEquals(-1, regionIndex);
+ HiddenCursorPosition pos = cursor.findRegionForColumn(20, false);
+ assertNull(pos);
List<int[]> hidden = new ArrayList<>();
hidden.add(new int[] { 53, 76 });
hidden.add(new int[] { 104, 125 });
- cursor.resetCursor(hidden);
- regionIndex = cursor.findRegionForColumn(126);
+ cursor = new HiddenColumnsCursor(hidden);
+
+ int regionIndex = cursor.findRegionForColumn(126, false).getRegionIndex();
assertEquals(2, regionIndex);
- regionIndex = cursor.findRegionForColumn(125);
+ regionIndex = cursor.findRegionForColumn(125, false).getRegionIndex();
assertEquals(1, regionIndex);
- regionIndex = cursor.findRegionForColumn(108);
+ regionIndex = cursor.findRegionForColumn(108, false).getRegionIndex();
assertEquals(1, regionIndex);
- regionIndex = cursor.findRegionForColumn(104);
+ regionIndex = cursor.findRegionForColumn(104, false).getRegionIndex();
assertEquals(1, regionIndex);
- regionIndex = cursor.findRegionForColumn(103);
+ regionIndex = cursor.findRegionForColumn(103, false).getRegionIndex();
assertEquals(1, regionIndex);
- regionIndex = cursor.findRegionForColumn(77);
+ regionIndex = cursor.findRegionForColumn(77, false).getRegionIndex();
assertEquals(1, regionIndex);
- regionIndex = cursor.findRegionForColumn(76);
+ regionIndex = cursor.findRegionForColumn(76, false).getRegionIndex();
assertEquals(0, regionIndex);
- regionIndex = cursor.findRegionForColumn(53);
+ regionIndex = cursor.findRegionForColumn(53, false).getRegionIndex();
assertEquals(0, regionIndex);
- regionIndex = cursor.findRegionForColumn(52);
+ regionIndex = cursor.findRegionForColumn(52, false).getRegionIndex();
assertEquals(0, regionIndex);
- regionIndex = cursor.findRegionForColumn(0);
+ regionIndex = cursor.findRegionForColumn(0, false).getRegionIndex();
assertEquals(0, regionIndex);
hidden.add(new int[] { 138, 155 });
- cursor.resetCursor(hidden);
- regionIndex = cursor.findRegionForColumn(160);
+ cursor = new HiddenColumnsCursor(hidden);
+
+ regionIndex = cursor.findRegionForColumn(160, false).getRegionIndex();
assertEquals(3, regionIndex);
- regionIndex = cursor.findRegionForColumn(100);
+ regionIndex = cursor.findRegionForColumn(100, false).getRegionIndex();
assertEquals(1, regionIndex);
}
* Test the method which counts the number of hidden columns before a column
*/
@Test(groups = { "Functional" })
- public void testGetHiddenOffset()
+ public void testFindRegionForColumn_Visible()
{
HiddenColumnsCursor cursor = new HiddenColumnsCursor();
- int offset = cursor.getHiddenOffset(20);
- assertEquals(-1, offset);
+ HiddenCursorPosition pos = cursor.findRegionForColumn(20, true);
+ assertNull(pos);
List<int[]> hidden = new ArrayList<>();
hidden.add(new int[] { 53, 76 });
hidden.add(new int[] { 104, 125 });
- cursor.resetCursor(hidden);
- offset = cursor.getHiddenOffset(80);
+ cursor = new HiddenColumnsCursor(hidden);
+
+ int offset = cursor.findRegionForColumn(80, true).getHiddenSoFar();
assertEquals(46, offset);
- offset = cursor.getHiddenOffset(79);
+ offset = cursor.findRegionForColumn(79, true).getHiddenSoFar();
assertEquals(24, offset);
- offset = cursor.getHiddenOffset(53);
+ offset = cursor.findRegionForColumn(53, true).getHiddenSoFar();
assertEquals(24, offset);
- offset = cursor.getHiddenOffset(52);
+ offset = cursor.findRegionForColumn(52, true).getHiddenSoFar();
assertEquals(0, offset);
- offset = cursor.getHiddenOffset(10);
+ offset = cursor.findRegionForColumn(10, true).getHiddenSoFar();
assertEquals(0, offset);
- offset = cursor.getHiddenOffset(0);
+ offset = cursor.findRegionForColumn(0, true).getHiddenSoFar();
assertEquals(0, offset);
- }
+ offset = cursor.findRegionForColumn(79, true).getHiddenSoFar();
+ assertEquals(24, offset);
+
+ offset = cursor.findRegionForColumn(80, true).getHiddenSoFar();
+ assertEquals(46, offset);
+ }
}