X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FJSONFileTest.java;h=2d5f7a2b8b3a3ada62e6e1081df3105aa62a0ef6;hb=316a666545d6b6fcb16c534a08acfab7fd8b3404;hp=410263c7a92c7477b2d9aec5e34ecf90df270410;hpb=262f29f7b600e4c8d02461600b5184707192b9c1;p=jalview.git diff --git a/test/jalview/io/JSONFileTest.java b/test/jalview/io/JSONFileTest.java index 410263c..2d5f7a2 100644 --- a/test/jalview/io/JSONFileTest.java +++ b/test/jalview/io/JSONFileTest.java @@ -22,7 +22,8 @@ package jalview.io; import static org.testng.AssertJUnit.assertNotNull; -import jalview.api.AlignExportSettingI; +import jalview.api.AlignExportSettingsI; +import jalview.datamodel.AlignExportSettingsAdapter; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; @@ -42,7 +43,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 +77,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(); @@ -92,7 +95,7 @@ public class JSONFileTest private JSONFile jf; - private AlignExportSettingI exportSettings; + private AlignExportSettingsI exportSettings; @BeforeTest(alwaysRun = true) public void setup() throws Exception @@ -120,14 +123,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 +143,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,46 +207,9 @@ 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() - { - @Override - public boolean isExportHiddenSequences() - { - return true; - } - - @Override - public boolean isExportHiddenColumns() - { - return true; - } - - @Override - public boolean isExportGroups() - { - return true; - } - - @Override - public boolean isExportFeatures() - { - return true; - } - - @Override - public boolean isExportAnnotations() - { - return true; - } - - @Override - public boolean isCancelled() - { - return false; - } - }; + exportSettings = new AlignExportSettingsAdapter(true); AppletFormatAdapter formatAdapter = new AppletFormatAdapter(); try @@ -270,7 +236,7 @@ public class JSONFileTest testAlignment = formatAdapter.readFile(jsonOutput, DataSourceType.PASTE, FileFormat.Json); testJsonFile = (JSONFile) formatAdapter.getAlignFile(); - // System.out.println(jsonOutput); + System.out.println(jsonOutput); } catch (IOException e) { e.printStackTrace(); @@ -324,11 +290,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 +515,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())) + */ + if (!in.equals(out)) { - } - else - { - 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 +552,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 *