JAL-2505 removed SequenceFeature constructor JAL-1641 include
[jalview.git] / test / jalview / io / JSONFileTest.java
index 410263c..17982be 100644 (file)
@@ -43,6 +43,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.testng.Assert;
 import org.testng.AssertJUnit;
@@ -120,14 +121,14 @@ public class JSONFileTest
 
     // create and add sequence features
     SequenceFeature seqFeature2 = new SequenceFeature("feature_x",
-            "description", "status", 6, 15, "Jalview");
+            "theDesc", 6, 15, "Jalview");
     SequenceFeature seqFeature3 = new SequenceFeature("feature_x",
-            "description", "status", 9, 18, "Jalview");
+            "theDesc", 9, 18, "Jalview");
     SequenceFeature seqFeature4 = new SequenceFeature("feature_x",
-            "description", "status", 9, 18, "Jalview");
+            "theDesc", 9, 18, "Jalview");
     // non-positional feature:
     SequenceFeature seqFeature5 = new SequenceFeature("Domain",
-            "My description", "status", 0, 0, "Pfam");
+            "My description", 0, 0, "Pfam");
     seqs[2].addSequenceFeature(seqFeature2);
     seqs[3].addSequenceFeature(seqFeature3);
     seqs[4].addSequenceFeature(seqFeature4);
@@ -548,23 +549,33 @@ public class JSONFileTest
       for (SequenceFeature in : inFeature)
       {
         SequenceFeature out = outFeature.get(i);
+        /*
         System.out.println(out.getType() + " | " + in.getType());
         System.out.println(out.getBegin() + " | " + in.getBegin());
         System.out.println(out.getEnd() + " | " + in.getEnd());
-
-        if (in.getBegin() == out.getBegin() && in.getEnd() == out.getEnd()
-                && in.getScore() == out.getScore()
-                && in.getFeatureGroup().equals(out.getFeatureGroup())
-                && in.getType().equals(out.getType()))
-        {
-        }
-        else
+        */
+        if (!in.equals(out))
         {
-          System.err.println("Feature[" + i + "] mismatch, in: "
-                  + in.toString() + ", out: "
-                  + outFeature.get(i).toString());
+          System.err.println("Mismatch of " + in.toString() + " "
+                  + out.toString());
           return false;
         }
+        /*
+                if (in.getBegin() == out.getBegin() && in.getEnd() == out.getEnd()
+                        && in.getScore() == out.getScore()
+                        && in.getFeatureGroup().equals(out.getFeatureGroup())
+                        && in.getType().equals(out.getType())
+                        && mapsMatch(in.otherDetails, out.otherDetails))
+                {
+                }
+                else
+                {
+                  System.err.println("Feature[" + i + "] mismatch, in: "
+                          + in.toString() + ", out: "
+                          + outFeature.get(i).toString());
+                  return false;
+                }
+                */
         i++;
       }
     } catch (Exception e)
@@ -575,6 +586,43 @@ public class JSONFileTest
     return true;
   }
 
+  boolean mapsMatch(Map<String, Object> m1, Map<String, Object> m2)
+  {
+    if (m1 == null || m2 == null)
+    {
+      if (m1 != null || m2 != null)
+      {
+        System.err
+                .println("only one SequenceFeature.otherDetails is not null");
+        return false;
+      }
+      else
+      {
+        return true;
+      }
+    }
+    if (m1.size() != m2.size())
+    {
+      System.err.println("otherDetails map different sizes");
+      return false;
+    }
+    for (String key : m1.keySet())
+    {
+      if (!m2.containsKey(key))
+      {
+        System.err.println(key + " in only one otherDetails");
+        return false;
+      }
+      if (m1.get(key) == null && m2.get(key) != null || m1.get(key) != null
+              && m2.get(key) == null || !m1.get(key).equals(m2.get(key)))
+      {
+        System.err.println(key + " values in otherDetails don't match");
+        return false;
+      }
+    }
+    return true;
+  }
+
   /**
    * Test group roundtrip with null (None) group colour scheme
    *