JAL-2291 get bitset representing hidden columns
[jalview.git] / test / jalview / datamodel / HiddenColumnsTest.java
index a671263..10808d6 100644 (file)
@@ -31,6 +31,7 @@ import jalview.gui.JvOptionPane;
 import java.util.Arrays;
 import java.util.BitSet;
 import java.util.List;
+import java.util.Random;
 
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
@@ -563,4 +564,25 @@ public class HiddenColumnsTest
     assertEquals(2, cs.adjustForHiddenColumns(2));
     assertEquals(4, cs.adjustForHiddenColumns(3));
   }
+
+  @Test(groups = { "Functional" })
+  public void testGetBitset()
+  {
+    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();
+      hc.hideMarkedBits(toMark);
+
+      // see if we can recover bitfield
+      hc.markHiddenRegions(fromMark = new BitSet());
+      assertEquals(toMark, fromMark);
+    }
+  }
 }