-
- @Test(groups = "Functional")
- public void testVisRegionsIterator()
- {
- HiddenColumns h = new HiddenColumns();
- Iterator<int[]> it = h.getBoundedVisRegionIterator(0, 15);
-
- // no hidden columns = single visible contig
- assertTrue(it.hasNext());
- assertEquals("[0, 15]", Arrays.toString(it.next()));
-
- // hidden column region at start
- h.hideColumns(0, 5);
- it = h.getBoundedVisRegionIterator(0, 15);
- assertTrue(it.hasNext());
- assertEquals("[6, 15]", Arrays.toString(it.next()));
-
- // hidden column region at end
- h = new HiddenColumns();
- h.hideColumns(8, 15);
- it = h.getBoundedVisRegionIterator(0, 15);
- assertTrue(it.hasNext());
- assertEquals("[0, 7]", Arrays.toString(it.next()));
-
- // hidden column region across whole region
- h = new HiddenColumns();
- h.hideColumns(0, 20);
- it = h.getBoundedVisRegionIterator(0, 15);
- assertFalse(it.hasNext());
-
- // hidden column region in middle
- h = new HiddenColumns();
- h.hideColumns(1, 14);
- it = h.getBoundedVisRegionIterator(0, 15);
- assertTrue(it.hasNext());
- assertEquals("[0, 0]", Arrays.toString(it.next()));
- assertTrue(it.hasNext());
- assertEquals("[15, 15]", Arrays.toString(it.next()));
-
- // hidden column region just off either end
- h = new HiddenColumns();
- h.hideColumns(3, 14);
- it = h.getBoundedVisRegionIterator(4, 13);
- assertFalse(it.hasNext());
-
- // multiple regions
- h = new HiddenColumns();
- h.hideColumns(3, 5);
- h.hideColumns(7, 11);
- h.hideColumns(14, 19);
- h.hideColumns(24, 25);
- h.hideColumns(35, 39);
- it = h.getBoundedVisRegionIterator(8, 26);
- assertTrue(it.hasNext());
- assertEquals("[12, 13]", Arrays.toString(it.next()));
- assertTrue(it.hasNext());
- assertEquals("[20, 23]", Arrays.toString(it.next()));
- assertTrue(it.hasNext());
- assertEquals("[26, 26]", Arrays.toString(it.next()));
- assertFalse(it.hasNext());
- }