JAL-1297 JAL-1295 JAL-1294 improve test logic for comparing annotation elements
authorJim Procter <jprocter@compbio.dundee.ac.uk>
Wed, 22 May 2013 16:43:40 +0000 (17:43 +0100)
committerJim Procter <jprocter@compbio.dundee.ac.uk>
Fri, 24 May 2013 14:10:55 +0000 (15:10 +0100)
test/jalview/io/StockholmFileTest.java

index 92ee5e0..fc2ffda 100644 (file)
@@ -4,6 +4,7 @@ import static org.junit.Assert.*;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.Annotation;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 
@@ -138,7 +139,7 @@ public class StockholmFileTest
       for (int i = 0; i < aa_original.length; i++)
       {
         if (aa_new.length>i) {
-          assertTrue("Different alignment annotation ordering",
+          assertTrue("Different alignment annotation at position "+i,
                 equalss(aa_original[i], aa_new[i]));
         } else {
           System.err.println("No matching annotation row for "+aa_original[i].toString());
@@ -254,18 +255,20 @@ public class StockholmFileTest
       System.err.println("Different lengths for annotation row elements: "+annot_or.annotations.length +"!="+ annot_new.annotations.length);
       return false;
     }
+    // TODO: does not compare graphGroup or graph properties
+    // TODO: does not compare visibility
     for (int i = 0; i < annot_or.annotations.length; i++)
     {
-      if (annot_or.annotations[i] != null
-              && annot_new.annotations[i] != null)
+      Annotation an_or=annot_or.annotations[i],an_new=annot_new.annotations[i];
+      if (an_or != null
+              && an_new!= null)
       {
-        // Jim's comment - shouldn't the conditional here be using || not && for
-        // all these clauses ?
-        if (!annot_or.annotations[i].displayCharacter
-                .equals(annot_new.annotations[i].displayCharacter)
-                && annot_or.annotations[i].secondaryStructure != annot_new.annotations[i].secondaryStructure
-                && !annot_or.annotations[i].description
-                        .equals(annot_new.annotations[i].description))
+        if (!an_or.displayCharacter
+                .equals(an_new.displayCharacter)
+                || an_or.secondaryStructure != an_new.secondaryStructure
+                || (an_or.description != an_new.description && (an_or.description == null
+                        || an_new.description == null || !an_or.description
+                          .equals(an_new.description))))
         {
           System.err.println("Annotation Element Mismatch\nElement "+i+" in original: "+annot_or.annotations[i].toString()+"\nElement "+i+" in new: "+annot_new.annotations[i].toString());
           return false;