X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FHiddenColumnsTest.java;h=462957b1481f4d60a7face80c6ecf3a39159f06a;hb=1b548e8307dd533f127252a05c845313a2bf9dd0;hp=dbde94375ae2f74604269e6396c8074c6099709e;hpb=b3cd7fa160c1323a80af9dd69d13e1a45e7c189c;p=jalview.git diff --git a/test/jalview/datamodel/HiddenColumnsTest.java b/test/jalview/datamodel/HiddenColumnsTest.java index dbde943..462957b 100644 --- a/test/jalview/datamodel/HiddenColumnsTest.java +++ b/test/jalview/datamodel/HiddenColumnsTest.java @@ -31,7 +31,6 @@ import jalview.util.Comparison; import java.util.Arrays; import java.util.BitSet; import java.util.Iterator; -import java.util.Random; import org.testng.annotations.Test; @@ -726,32 +725,43 @@ public class HiddenColumnsTest } @Test(groups = { "Functional" }) - public void testMarkHiddenRegions() + public void hideColumns_BitSetAndRange() { - BitSet toMark, fromMark; - long seed = -3241532; - Random number = new Random(seed); - for (int n = 0; n < 1000; n++) - { - // create a random bitfield - toMark = BitSet - .valueOf(new long[] - { number.nextLong(), number.nextLong(), number.nextLong() }); - toMark.set(n * number.nextInt(10), n * (25 + number.nextInt(25))); - HiddenColumns hc = new HiddenColumns(); - - if (n == 0) - { - hc.markHiddenRegions(fromMark = new BitSet()); - assertTrue(fromMark.isEmpty()); - } - - hc.hideColumns(toMark); - - // see if we can recover bitfield - hc.markHiddenRegions(fromMark = new BitSet()); - assertEquals(toMark, fromMark); - } + HiddenColumns hc = new HiddenColumns(); + hc.hideColumns(3, 5); + hc.hideColumns(15, 20); + hc.hideColumns(45, 60); + + BitSet tohide = new BitSet(); + + // all unhidden if tohide is empty and range covers hidden + hc.hideColumns(tohide, 1, 70); + assertTrue(!hc.hasHiddenColumns()); + + hc.hideColumns(3, 5); + hc.hideColumns(15, 20); + hc.hideColumns(45, 60); + + // but not if range does not cover hidden + hc.hideColumns(tohide, 23, 40); + assertTrue(hc.hasHiddenColumns()); + + // and partial unhide if range partially covers + hc.hideColumns(tohide, 1, 17); + Iterator it = hc.iterator(); + assertTrue(it.hasNext()); + int[] region = it.next(); + + assertEquals(18, region[0]); + assertEquals(20, region[1]); + + assertTrue(it.hasNext()); + region = it.next(); + + assertEquals(45, region[0]); + assertEquals(60, region[1]); + + assertFalse(it.hasNext()); } @Test(groups = { "Functional" }) @@ -1150,7 +1160,7 @@ public class HiddenColumnsTest } @Test(groups = "Functional") - public void testHideMarkedBits() + public void testHideColumns_BitSet() { HiddenColumns h = new HiddenColumns(); HiddenColumns h2 = new HiddenColumns();