X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fio%2FJSONFileTest.java;h=5e835bf17b68208ab9f0e8e0e30b1b9afb2db718;hb=84965b0d97f7db54b0855ac7122586d89cac7e46;hp=410263c7a92c7477b2d9aec5e34ecf90df270410;hpb=262f29f7b600e4c8d02461600b5184707192b9c1;p=jalview.git diff --git a/test/jalview/io/JSONFileTest.java b/test/jalview/io/JSONFileTest.java index 410263c..5e835bf 100644 --- a/test/jalview/io/JSONFileTest.java +++ b/test/jalview/io/JSONFileTest.java @@ -42,7 +42,9 @@ import jalview.schemes.ResidueColourScheme; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.Map; import org.testng.Assert; import org.testng.AssertJUnit; @@ -74,11 +76,11 @@ public class JSONFileTest private Alignment alignment; - private HashMap expectedSeqs = new HashMap(); + private HashMap expectedSeqs = new HashMap<>(); - private HashMap expectedAnnots = new HashMap(); + private HashMap expectedAnnots = new HashMap<>(); - private HashMap expectedGrps = new HashMap(); + private HashMap expectedGrps = new HashMap<>(); private HiddenColumns expectedColSel = new HiddenColumns(); @@ -120,14 +122,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); @@ -140,7 +142,7 @@ public class JSONFileTest } // create and add a sequence group - List grpSeqs = new ArrayList(); + List grpSeqs = new ArrayList<>(); grpSeqs.add(seqs[1]); grpSeqs.add(seqs[2]); grpSeqs.add(seqs[3]); @@ -204,7 +206,7 @@ public class JSONFileTest TEST_SEQ_HEIGHT = expectedSeqs.size(); TEST_GRP_HEIGHT = expectedGrps.size(); TEST_ANOT_HEIGHT = expectedAnnots.size(); - TEST_CS_HEIGHT = expectedColSel.getHiddenRegions().size(); + TEST_CS_HEIGHT = expectedColSel.getNumberOfRegions(); exportSettings = new AlignExportSettingI() { @@ -324,11 +326,12 @@ public class JSONFileTest { HiddenColumns cs = testJsonFile.getHiddenColumns(); Assert.assertNotNull(cs); - Assert.assertNotNull(cs.getHiddenRegions()); - List hiddenCols = cs.getHiddenRegions(); - Assert.assertEquals(hiddenCols.size(), TEST_CS_HEIGHT); - Assert.assertEquals(hiddenCols.get(0), expectedColSel - .getHiddenRegions().get(0), + + Iterator it = cs.iterator(); + Iterator colselit = expectedColSel.iterator(); + Assert.assertTrue(it.hasNext()); + Assert.assertEquals(cs.getNumberOfRegions(), TEST_CS_HEIGHT); + Assert.assertEquals(it.next(), colselit.next(), "Mismatched hidden columns!"); } @@ -548,23 +551,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 +588,43 @@ public class JSONFileTest return true; } + boolean mapsMatch(Map m1, Map 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 *