JAL-2759 change subtractVisibleColumns and removal of reverse iterator
[jalview.git] / test / jalview / datamodel / HiddenColumnsTest.java
index 3aadcb7..9bbba5f 100644 (file)
@@ -1203,48 +1203,48 @@ public class HiddenColumnsTest
   public void testSubtractVisibleColumns()
   {
     HiddenColumns h = new HiddenColumns();
-    int result = h.subtractVisibleColumns(1, 10);
+    int result = h.offsetByVisibleColumns(-1, 10);
     assertEquals(9, result);
 
     h.hideColumns(7, 9);
-    result = h.subtractVisibleColumns(4, 10);
+    result = h.offsetByVisibleColumns(-4, 10);
     assertEquals(3, result);
 
     h.hideColumns(14, 15);
-    result = h.subtractVisibleColumns(4, 10);
+    result = h.offsetByVisibleColumns(-4, 10);
     assertEquals(3, result);
 
-    result = h.subtractVisibleColumns(10, 17);
+    result = h.offsetByVisibleColumns(-10, 17);
     assertEquals(2, result);
 
-    result = h.subtractVisibleColumns(1, 7);
+    result = h.offsetByVisibleColumns(-1, 7);
     assertEquals(5, result);
 
-    result = h.subtractVisibleColumns(1, 8);
+    result = h.offsetByVisibleColumns(-1, 8);
     assertEquals(5, result);
 
-    result = h.subtractVisibleColumns(3, 15);
+    result = h.offsetByVisibleColumns(-3, 15);
     assertEquals(10, result);
 
     ColumnSelection sel = new ColumnSelection();
     h.revealAllHiddenColumns(sel);
     h.hideColumns(0, 30);
-    result = h.subtractVisibleColumns(31, 0);
+    result = h.offsetByVisibleColumns(-31, 0);
     assertEquals(-31, result);
 
     HiddenColumns cs = new HiddenColumns();
 
-    // test that without hidden columns, findColumnNToLeft returns
+    // test that without hidden columns, offsetByVisibleColumns returns
     // position n to left of provided position
-    long pos = cs.subtractVisibleColumns(3, 10);
+    long pos = cs.offsetByVisibleColumns(-3, 10);
     assertEquals(7, pos);
 
     // 0 returns same position
-    pos = cs.subtractVisibleColumns(0, 10);
+    pos = cs.offsetByVisibleColumns(0, 10);
     assertEquals(10, pos);
 
     // overflow to left returns negative number
-    pos = cs.subtractVisibleColumns(3, 0);
+    pos = cs.offsetByVisibleColumns(-3, 0);
     assertEquals(-3, pos);
 
     // test that with hidden columns to left of result column
@@ -1252,21 +1252,21 @@ public class HiddenColumnsTest
     cs.hideColumns(1, 3);
 
     // position n to left of provided position
-    pos = cs.subtractVisibleColumns(3, 10);
+    pos = cs.offsetByVisibleColumns(-3, 10);
     assertEquals(7, pos);
 
     // 0 returns same position
-    pos = cs.subtractVisibleColumns(0, 10);
+    pos = cs.offsetByVisibleColumns(0, 10);
     assertEquals(10, pos);
 
     // test with one set of hidden columns between start and required position
     cs.hideColumns(12, 15);
-    pos = cs.subtractVisibleColumns(8, 17);
+    pos = cs.offsetByVisibleColumns(-8, 17);
     assertEquals(5, pos);
 
     // test with two sets of hidden columns between start and required position
     cs.hideColumns(20, 21);
-    pos = cs.subtractVisibleColumns(8, 23);
+    pos = cs.offsetByVisibleColumns(-8, 23);
     assertEquals(9, pos);
 
     // repeat last 2 tests with no hidden columns to left of required position
@@ -1275,16 +1275,49 @@ public class HiddenColumnsTest
 
     // test with one set of hidden columns between start and required position
     cs.hideColumns(12, 15);
-    pos = cs.subtractVisibleColumns(8, 17);
+    pos = cs.offsetByVisibleColumns(-8, 17);
     assertEquals(5, pos);
 
     // test with two sets of hidden columns between start and required position
     cs.hideColumns(20, 21);
-    pos = cs.subtractVisibleColumns(8, 23);
+    pos = cs.offsetByVisibleColumns(-8, 23);
     assertEquals(9, pos);
 
-  }
+    // test with right (positive) offsets
+
+    // test that without hidden columns, offsetByVisibleColumns returns
+    // position n to right of provided position
+    pos = cs.offsetByVisibleColumns(3, 7);
+    assertEquals(10, pos);
+
+    // test that with hidden columns to left of result column
+    // behaviour is the same as above
+    cs.hideColumns(1, 3);
+
+    // test with one set of hidden columns between start and required position
+    cs.hideColumns(12, 15);
+    pos = cs.offsetByVisibleColumns(8, 5);
+    assertEquals(17, pos);
 
+    // test with two sets of hidden columns between start and required position
+    cs.hideColumns(20, 21);
+    pos = cs.offsetByVisibleColumns(8, 9);
+    assertEquals(23, pos);
+
+    // repeat last 2 tests with no hidden columns to left of required position
+    colsel = new ColumnSelection();
+    cs.revealAllHiddenColumns(colsel);
+
+    // test with one set of hidden columns between start and required position
+    cs.hideColumns(12, 15);
+    pos = cs.offsetByVisibleColumns(8, 5);
+    assertEquals(17, pos);
+
+    // test with two sets of hidden columns between start and required position
+    cs.hideColumns(20, 21);
+    pos = cs.offsetByVisibleColumns(8, 9);
+    assertEquals(23, pos);
+  }
 
   @Test(groups = "Functional")
   public void testBoundedIterator()