JAL-2759 make a new cursor instead of resetting, updated after review
[jalview.git] / test / jalview / datamodel / HiddenColumnsCursorTest.java
index 91cd3cd..0deed08 100644 (file)
@@ -20,6 +20,7 @@
  */
 package jalview.datamodel;
 
+import static org.testng.Assert.assertNull;
 import static org.testng.AssertJUnit.assertEquals;
 
 import java.util.ArrayList;
@@ -37,43 +38,54 @@ public class HiddenColumnsCursorTest
   {
     HiddenColumnsCursor cursor = new HiddenColumnsCursor();
     
-    int regionIndex = cursor.findRegionForColumn(20);
-    assertEquals(-1, regionIndex);
+    HiddenCursorPosition pos = cursor.findRegionForColumn(20);
+    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).getRegionIndex();
     assertEquals(2, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(125);
+    regionIndex = cursor.findRegionForColumn(125).getRegionIndex();
     assertEquals(1, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(108);
+    regionIndex = cursor.findRegionForColumn(108).getRegionIndex();
     assertEquals(1, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(104);
+    regionIndex = cursor.findRegionForColumn(104).getRegionIndex();
     assertEquals(1, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(103);
+    regionIndex = cursor.findRegionForColumn(103).getRegionIndex();
     assertEquals(1, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(77);
+    regionIndex = cursor.findRegionForColumn(77).getRegionIndex();
     assertEquals(1, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(76);
+    regionIndex = cursor.findRegionForColumn(76).getRegionIndex();
     assertEquals(0, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(53);
+    regionIndex = cursor.findRegionForColumn(53).getRegionIndex();
     assertEquals(0, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(52);
+    regionIndex = cursor.findRegionForColumn(52).getRegionIndex();
     assertEquals(0, regionIndex);
 
-    regionIndex = cursor.findRegionForColumn(0);
+    regionIndex = cursor.findRegionForColumn(0).getRegionIndex();
     assertEquals(0, regionIndex);
+
+    hidden.add(new int[] { 138, 155 });
+
+    cursor = new HiddenColumnsCursor(hidden);
+
+    regionIndex = cursor.findRegionForColumn(160).getRegionIndex();
+    assertEquals(3, regionIndex);
+
+    regionIndex = cursor.findRegionForColumn(100).getRegionIndex();
+    assertEquals(1, regionIndex);
   }
 
   /**
@@ -84,30 +96,31 @@ public class HiddenColumnsCursorTest
   {
     HiddenColumnsCursor cursor = new HiddenColumnsCursor();
 
-    int offset = cursor.getHiddenOffset(20);
-    assertEquals(-1, offset);
+    HiddenCursorPosition pos = cursor.findRegionForVisColumn(20);
+    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.findRegionForVisColumn(80).getHiddenSoFar();
     assertEquals(46, offset);
 
-    offset = cursor.getHiddenOffset(79);
+    offset = cursor.findRegionForVisColumn(79).getHiddenSoFar();
     assertEquals(24, offset);
 
-    offset = cursor.getHiddenOffset(53);
+    offset = cursor.findRegionForVisColumn(53).getHiddenSoFar();
     assertEquals(24, offset);
 
-    offset = cursor.getHiddenOffset(52);
+    offset = cursor.findRegionForVisColumn(52).getHiddenSoFar();
     assertEquals(0, offset);
 
-    offset = cursor.getHiddenOffset(10);
+    offset = cursor.findRegionForVisColumn(10).getHiddenSoFar();
     assertEquals(0, offset);
 
-    offset = cursor.getHiddenOffset(0);
+    offset = cursor.findRegionForVisColumn(0).getHiddenSoFar();
     assertEquals(0, offset);
   }