JAL-4134 column grouping model and methods moved to their own object held by by Conta...
[jalview.git] / test / jalview / project / Jalview2xmlTests.java
index 343df05..d038c78 100644 (file)
@@ -32,7 +32,9 @@ import java.awt.Color;
 import java.awt.Rectangle;
 import java.io.File;
 import java.io.IOException;
+import java.math.BigInteger;
 import java.util.ArrayList;
+import java.util.BitSet;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
@@ -59,6 +61,7 @@ import jalview.datamodel.ContactMatrix;
 import jalview.datamodel.ContactMatrixI;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.GeneLocus;
+import jalview.datamodel.GroupSet;
 import jalview.datamodel.HiddenSequences;
 import jalview.datamodel.Mapping;
 import jalview.datamodel.PDBEntry;
@@ -1568,10 +1571,36 @@ public class Jalview2xmlTests extends Jalview2xmlBase
     Assert.assertTrue(content.contains("\t1.")); // at least one element must be 1
     float[][] vals = ContactMatrix.fromFloatStringToContacts(content, sq.getLength(), sq.getLength());
     assertEquals(vals[3][4],paevals[3][4]);
-    dummyMat.makeGroups(0.5f, false);
+    dummyMat.setGroupSet(GroupSet.makeGroups(dummyMat,0.5f, false));
     Assert.assertNotSame(dummyMat.getNewick(), "");
     AlignmentAnnotation paeCm = sq.addContactList(dummyMat);
     al.addAnnotation(paeCm);
+    // verify store/restore of group bitsets
+    for (BitSet  gp:dummyMat.getGroups())
+    {
+      StringBuilder sb = new StringBuilder();
+      for (long val:gp.toLongArray())
+      {
+        if (sb.length()>0) {
+          sb.append(",");
+        }
+        sb.append(val);
+      }
+      String[] longvals = sb.toString().split(",");
+      long[] newlongvals = new long[longvals.length];
+      for (int lv=0;lv<longvals.length;lv++)
+      {
+        try {
+        newlongvals[lv]=Long.valueOf(longvals[lv]);
+        } catch (Exception x)
+        {
+          Assert.fail("failed to deserialise bitset element ");
+        }
+      }
+      BitSet newGp = BitSet.valueOf(newlongvals);
+      assertTrue(gp.equals(newGp));
+    }
+    
     File tfile = File.createTempFile("testStoreAndRecoverPAEmatrix",
             ".jvp");
     new Jalview2XML(false).saveState(tfile);