FileFormat enum new types
[jalview.git] / test / jalview / ext / jmol / JmolParserTest.java
index 2a501a7..2a5dda4 100644 (file)
@@ -29,7 +29,9 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
 import jalview.io.FileLoader;
+import jalview.structure.StructureImportSettings;
 
 import java.util.Vector;
 
@@ -49,13 +51,13 @@ public class JmolParserTest
    * 1GAQ has been reduced to alpha carbons only
    * 1QCF is the full PDB file including headers, HETATM etc
    */
-  // String[] testFile = new String[] { "./examples/1GAQ.txt",
-  // "./test/jalview/ext/jmol/1QCF.pdb" }; // ,
-  String[] testFile = new String[] { "./examples/testdata/1qcf.cif" }; // ,
+  String[] testFile = new String[] { "./examples/1GAQ.txt",
+      "./test/jalview/ext/jmol/1xyz.pdb",
+      "./test/jalview/ext/jmol/1qcf.pdb" };
 
   //@formatter:off
   // a modified and very cut-down extract of 4UJ4
-  String pdbWithChainBreak =
+  String pastePDBDataWithChainBreak =
      "HEADER    TRANSPORT PROTEIN                       08-APR-15   4UJ4\n" +
      // chain B has missing residues; these should all go in the same sequence:
      "ATOM   1909  CA  VAL B 358      21.329 -19.739 -67.740  1.00201.05           C\n" +
@@ -97,7 +99,7 @@ public class JmolParserTest
     {
       FileLoader fl = new jalview.io.FileLoader(false);
       AlignFrame af = fl
-              .LoadFileWaitTillLoaded(f, AppletFormatAdapter.FILE);
+              .LoadFileWaitTillLoaded(f, DataSourceType.FILE);
       validateSecStrRows(af.getViewport().getAlignment());
     }
   }
@@ -105,12 +107,37 @@ public class JmolParserTest
   @Test(groups = { "Functional" })
   public void testFileParser() throws Exception
   {
+    StructureImportSettings.setProcessHETATMs(false);
     for (String pdbStr : testFile)
     {
       PDBfile mctest = new PDBfile(false, false, false, pdbStr,
-              AppletFormatAdapter.FILE);
-      JmolParser jtest = new JmolParser(pdbStr,
-              jalview.io.AppletFormatAdapter.FILE);
+              DataSourceType.FILE);
+      JmolParser jtest = new JmolParser(false, false, false, pdbStr,
+              jalview.io.DataSourceType.FILE);
+      Vector<SequenceI> seqs = jtest.getSeqs(), mcseqs = mctest.getSeqs();
+
+      assertTrue(
+              "No sequences extracted from testfile\n"
+                      + (jtest.hasWarningMessage() ? jtest.getWarningMessage()
+                              : "(No warnings raised)"), seqs != null
+                      && seqs.size() > 0);
+      for (SequenceI sq : seqs)
+      {
+        assertEquals("JMol didn't process " + pdbStr
+                + " to the same sequence as MCView",
+                sq.getSequenceAsString(), mcseqs.remove(0)
+                        .getSequenceAsString());
+        AlignmentI al = new Alignment(new SequenceI[] { sq });
+        validateSecStrRows(al);
+      }
+    }
+    StructureImportSettings.setProcessHETATMs(true);
+    for (String pdbStr : testFile)
+    {
+      PDBfile mctest = new PDBfile(false, false, false, pdbStr,
+              DataSourceType.FILE);
+      JmolParser jtest = new JmolParser(false, false, false, pdbStr,
+              jalview.io.DataSourceType.FILE);
       Vector<SequenceI> seqs = jtest.getSeqs(), mcseqs = mctest.getSeqs();
 
       assertTrue(
@@ -173,10 +200,16 @@ public class JmolParserTest
   @Test(groups = { "Functional" })
   public void testParse_missingResidues() throws Exception
   {
-    PDBfile mctest = new PDBfile(false, false, false, pdbWithChainBreak,
-            AppletFormatAdapter.PASTE);
-    JmolParser jtest = new JmolParser(pdbWithChainBreak,
-            jalview.io.AppletFormatAdapter.PASTE);
+    PDBfile mctest = new PDBfile(false, false, false,
+            pastePDBDataWithChainBreak,
+            DataSourceType.PASTE);
+    boolean annotFromStructure = false;
+    boolean localSecondaryStruct = false;
+    boolean serviceSecondaryStruct = false;
+    JmolParser jtest = new JmolParser(annotFromStructure,
+            localSecondaryStruct, serviceSecondaryStruct,
+            pastePDBDataWithChainBreak,
+            jalview.io.DataSourceType.PASTE);
     Vector<SequenceI> seqs = jtest.getSeqs();
     Vector<SequenceI> mcseqs = mctest.getSeqs();
 
@@ -197,9 +230,13 @@ public class JmolParserTest
   public void testParse_alternativeResidues() throws Exception
   {
     PDBfile mctest = new PDBfile(false, false, false, pdbWithAltLoc,
-            AppletFormatAdapter.PASTE);
-    JmolParser jtest = new JmolParser(pdbWithAltLoc,
-            jalview.io.AppletFormatAdapter.PASTE);
+            DataSourceType.PASTE);
+    boolean annotFromStructure = false;
+    boolean localSecondaryStruct = false;
+    boolean serviceSecondaryStruct = false;
+    JmolParser jtest = new JmolParser(annotFromStructure,
+            localSecondaryStruct, serviceSecondaryStruct, pdbWithAltLoc,
+            jalview.io.DataSourceType.PASTE);
     Vector<SequenceI> seqs = jtest.getSeqs();
     Vector<SequenceI> mcseqs = mctest.getSeqs();