X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FHiddenColumnsTest.java;h=192a822aea8f56457ed687edd8f98671f23435e6;hb=04cb6a433a7ae367e57454c069222ccb830a03f1;hp=92e0f90aa7ff4c67a79dfbf26dd3df25fd691354;hpb=e2c3b3602486cee3f85dd8dfc7856a5ce6701669;p=jalview.git diff --git a/test/jalview/datamodel/HiddenColumnsTest.java b/test/jalview/datamodel/HiddenColumnsTest.java index 92e0f90..192a822 100644 --- a/test/jalview/datamodel/HiddenColumnsTest.java +++ b/test/jalview/datamodel/HiddenColumnsTest.java @@ -32,7 +32,6 @@ import jalview.util.Comparison; import java.util.Arrays; import java.util.BitSet; import java.util.Iterator; -import java.util.List; import java.util.Random; import org.testng.annotations.BeforeClass; @@ -184,12 +183,14 @@ public class HiddenColumnsTest } @Test(groups = { "Functional" }) - public void testGetVisibleContigs() + public void testVisibleContigsIterator() { HiddenColumns cs = new HiddenColumns(); - List visible = cs.getVisibleContigs(3, 10); - assertEquals("[3, 9]", Arrays.toString(visible.get(0))); + Iterator visible = cs.getVisContigsIterator(3, 10); + int[] region = visible.next(); + assertEquals("[3, 9]", Arrays.toString(region)); + assertFalse(visible.hasNext()); cs.hideColumns(3, 6); cs.hideColumns(8, 9); @@ -198,30 +199,44 @@ public class HiddenColumnsTest // Test both ends visible region // start position is inclusive, end position exclusive - visible = cs.getVisibleContigs(1, 13); - assertEquals("[1, 2]", Arrays.toString(visible.get(0))); - assertEquals("[7, 7]", Arrays.toString(visible.get(1))); - assertEquals("[10, 11]", Arrays.toString(visible.get(2))); + visible = cs.getVisContigsIterator(1, 13); + region = visible.next(); + assertEquals("[1, 2]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[7, 7]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[10, 11]", Arrays.toString(region)); + assertFalse(visible.hasNext()); // Test start hidden, end visible - visible = cs.getVisibleContigs(4, 14); - assertEquals("[7, 7]", Arrays.toString(visible.get(0))); - assertEquals("[10, 11]", Arrays.toString(visible.get(1))); - assertEquals("[13, 13]", Arrays.toString(visible.get(2))); + visible = cs.getVisContigsIterator(4, 14); + region = visible.next(); + assertEquals("[7, 7]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[10, 11]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[13, 13]", Arrays.toString(region)); + assertFalse(visible.hasNext()); // Test start hidden, end hidden - visible = cs.getVisibleContigs(3, 10); - assertEquals("[7, 7]", Arrays.toString(visible.get(0))); + visible = cs.getVisContigsIterator(3, 10); + region = visible.next(); + assertEquals("[7, 7]", Arrays.toString(region)); + assertFalse(visible.hasNext()); // Test start visible, end hidden - visible = cs.getVisibleContigs(0, 13); - assertEquals("[0, 2]", Arrays.toString(visible.get(0))); - assertEquals("[7, 7]", Arrays.toString(visible.get(1))); - assertEquals("[10, 11]", Arrays.toString(visible.get(2))); + visible = cs.getVisContigsIterator(0, 13); + region = visible.next(); + assertEquals("[0, 2]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[7, 7]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[10, 11]", Arrays.toString(region)); + assertFalse(visible.hasNext()); // Test empty result - visible = cs.getVisibleContigs(4, 6); - assertEquals(0, visible.size()); + visible = cs.getVisContigsIterator(4, 6); + assertFalse(visible.hasNext()); } @Test(groups = { "Functional" }) @@ -827,49 +842,6 @@ public class HiddenColumnsTest } @Test(groups = { "Functional" }) - public void testFindHiddenRegionPositions() - { - HiddenColumns hc = new HiddenColumns(); - - List positions = hc.findHiddenRegionPositions(0, 20); - assertTrue(positions.isEmpty()); - - hc.hideColumns(3, 7); - hc.hideColumns(10, 10); - hc.hideColumns(14, 15); - - positions = hc.findHiddenRegionPositions(0, 20); - assertEquals(3, positions.size()); - assertEquals(3, positions.get(0).intValue()); - assertEquals(5, positions.get(1).intValue()); - assertEquals(8, positions.get(2).intValue()); - - positions = hc.findHiddenRegionPositions(7, 20); - assertEquals(2, positions.size()); - assertEquals(5, positions.get(0).intValue()); - assertEquals(8, positions.get(1).intValue()); - - positions = hc.findHiddenRegionPositions(11, 13); - assertEquals(0, positions.size()); - - positions = hc.findHiddenRegionPositions(7, 20); - assertEquals(2, positions.size()); - assertEquals(5, positions.get(0).intValue()); - assertEquals(8, positions.get(1).intValue()); - - positions = hc.findHiddenRegionPositions(0, 1); - assertEquals(0, positions.size()); - - positions = hc.findHiddenRegionPositions(17, 20); - assertEquals(0, positions.size()); - - positions = hc.findHiddenRegionPositions(10, 15); - assertEquals(2, positions.size()); - assertEquals(5, positions.get(0).intValue()); - assertEquals(8, positions.get(1).intValue()); - } - - @Test(groups = { "Functional" }) public void testRegionsToString() { HiddenColumns hc = new HiddenColumns(); @@ -976,18 +948,22 @@ public class HiddenColumnsTest false); // confirm that original contigs are as expected - List visible = hidden.getVisibleContigs(0, 25); - assertEquals("[0, 14]", Arrays.toString(visible.get(0))); - assertEquals("[18, 24]", Arrays.toString(visible.get(1))); + Iterator visible = hidden.getVisContigsIterator(0, 25); + int[] region = visible.next(); + assertEquals("[0, 14]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[18, 24]", Arrays.toString(region)); // propagate insertions HiddenColumns result = HiddenColumns.propagateInsertions(profileseq, al, view); // confirm that the contigs have changed to account for the gaps - visible = result.getVisibleContigs(0, 25); - assertEquals("[0, 10]", Arrays.toString(visible.get(0))); - assertEquals("[14, 24]", Arrays.toString(visible.get(1))); + visible = result.getVisContigsIterator(0, 25); + region = visible.next(); + assertEquals("[0, 10]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[14, 24]", Arrays.toString(region)); // confirm the alignment has been changed so that the other sequences have // gaps inserted where the columns are hidden @@ -1030,18 +1006,24 @@ public class HiddenColumnsTest false); // confirm that original contigs are as expected - List visible = hidden.getVisibleContigs(0, 20); - assertEquals("[0, 6]", Arrays.toString(visible.get(0))); - assertEquals("[11, 19]", Arrays.toString(visible.get(1))); + Iterator visible = hidden.getVisContigsIterator(0, 20); + int[] region = visible.next(); + assertEquals("[0, 6]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[11, 19]", Arrays.toString(region)); + assertFalse(visible.hasNext()); // propagate insertions HiddenColumns result = HiddenColumns.propagateInsertions(profileseq, al, view); // confirm that the contigs have changed to account for the gaps - visible = result.getVisibleContigs(0, 20); - assertEquals("[0, 4]", Arrays.toString(visible.get(0))); - assertEquals("[7, 19]", Arrays.toString(visible.get(1))); + visible = result.getVisContigsIterator(0, 20); + region = visible.next(); + assertEquals("[0, 4]", Arrays.toString(region)); + region = visible.next(); + assertEquals("[7, 19]", Arrays.toString(region)); + assertFalse(visible.hasNext()); // confirm the alignment has been changed so that the other sequences have // gaps inserted where the columns are hidden @@ -1337,7 +1319,7 @@ public class HiddenColumnsTest public void testBoundedIterator() { HiddenColumns h = new HiddenColumns(); - Iterator it = h.getBoundedIterator(0, 10, false); + Iterator it = h.getBoundedIterator(0, 10); // no hidden columns = nothing to iterate over assertFalse(it.hasNext()); @@ -1346,7 +1328,7 @@ public class HiddenColumnsTest // all regions are returned h.hideColumns(3, 10); h.hideColumns(14, 16); - it = h.getBoundedIterator(0, 20, false); + it = h.getBoundedIterator(0, 20); assertTrue(it.hasNext()); int[] next = it.next(); assertEquals(3, next[0]); @@ -1358,7 +1340,7 @@ public class HiddenColumnsTest // [start,end] overlaps a region // 1 region returned - it = h.getBoundedIterator(5, 7, false); + it = h.getBoundedIterator(5, 7); assertTrue(it.hasNext()); next = it.next(); assertEquals(3, next[0]); @@ -1367,7 +1349,7 @@ public class HiddenColumnsTest // [start,end] fully contains 1 region and start of last // - 2 regions returned - it = h.getBoundedIterator(3, 15, false); + it = h.getBoundedIterator(3, 15); assertTrue(it.hasNext()); next = it.next(); assertEquals(3, next[0]); @@ -1379,7 +1361,7 @@ public class HiddenColumnsTest // [start,end] contains end of first region and whole of last region // - 2 regions returned - it = h.getBoundedIterator(4, 20, false); + it = h.getBoundedIterator(4, 20); assertTrue(it.hasNext()); next = it.next(); assertEquals(3, next[0]); @@ -1394,7 +1376,7 @@ public class HiddenColumnsTest public void testBoundedStartIterator() { HiddenColumns h = new HiddenColumns(); - Iterator it = h.getBoundedStartIterator(0, 10, false); + Iterator it = h.getBoundedStartIterator(0, 10); // no hidden columns = nothing to iterate over assertFalse(it.hasNext()); @@ -1403,7 +1385,7 @@ public class HiddenColumnsTest // all regions are returned h.hideColumns(3, 10); h.hideColumns(14, 16); - it = h.getBoundedStartIterator(0, 20, false); + it = h.getBoundedStartIterator(0, 20); assertTrue(it.hasNext()); int next = it.next(); assertEquals(3, next); @@ -1413,12 +1395,12 @@ public class HiddenColumnsTest // [start,end] does not contain a start of a region // no regions to iterate over - it = h.getBoundedStartIterator(4, 5, false); + it = h.getBoundedStartIterator(4, 5); assertFalse(it.hasNext()); // [start,end] fully contains 1 region and start of last // - 2 regions returned - it = h.getBoundedStartIterator(3, 7, false); + it = h.getBoundedStartIterator(3, 7); assertTrue(it.hasNext()); next = it.next(); assertEquals(3, next); @@ -1428,71 +1410,10 @@ public class HiddenColumnsTest // [start,end] contains whole of last region // - 1 region returned - it = h.getBoundedStartIterator(4, 20, false); + it = h.getBoundedStartIterator(4, 20); assertTrue(it.hasNext()); next = it.next(); assertEquals(6, next); assertFalse(it.hasNext()); } - - @Test(groups = "Functional") - public void testVisRegionsIterator() - { - HiddenColumns h = new HiddenColumns(); - Iterator 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()); - } }