X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FHiddenColumnsTest.java;h=192a822aea8f56457ed687edd8f98671f23435e6;hb=04cb6a433a7ae367e57454c069222ccb830a03f1;hp=19a5671cd6d54ceae2faf13b59fdf3b2e6fc8d61;hpb=ad09c54f294b945fd4d037a93f5fa8eced6c1797;p=jalview.git diff --git a/test/jalview/datamodel/HiddenColumnsTest.java b/test/jalview/datamodel/HiddenColumnsTest.java index 19a5671..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(); - int[] visible = cs.getVisibleContigs(3, 10); - assertEquals("[3, 9]", Arrays.toString(visible)); + 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,24 +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, 7, 7, 10, 11]", Arrays.toString(visible)); + 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, 10, 11, 13, 13]", Arrays.toString(visible)); + 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)); + 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, 7, 7, 10, 11]", Arrays.toString(visible)); + 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("[]", Arrays.toString(visible)); + visible = cs.getVisContigsIterator(4, 6); + assertFalse(visible.hasNext()); } @Test(groups = { "Functional" }) @@ -821,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(); @@ -970,19 +948,22 @@ public class HiddenColumnsTest false); // confirm that original contigs are as expected - int[] oldcontigs = hidden.getVisibleContigs(0, 25); - int[] testcontigs = { 0, 14, 18, 24 }; - assertTrue(Arrays.equals(oldcontigs, testcontigs)); + 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 - int[] newcontigs = result.getVisibleContigs(0, 25); - testcontigs[1] = 10; - testcontigs[2] = 14; - assertTrue(Arrays.equals(newcontigs, testcontigs)); + 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 @@ -1025,19 +1006,24 @@ public class HiddenColumnsTest false); // confirm that original contigs are as expected - int[] oldcontigs = hidden.getVisibleContigs(0, 20); - int[] testcontigs = { 0, 6, 11, 19 }; - assertTrue(Arrays.equals(oldcontigs, testcontigs)); + 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 - int[] newcontigs = result.getVisibleContigs(0, 20); - testcontigs[1] = 4; - testcontigs[2] = 7; - assertTrue(Arrays.equals(newcontigs, testcontigs)); + 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 @@ -1333,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()); @@ -1342,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]); @@ -1354,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]); @@ -1363,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]); @@ -1375,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]); @@ -1390,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()); @@ -1399,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); @@ -1409,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); @@ -1424,7 +1410,7 @@ 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);