JAL-1919 Fixed failing tests, enabled HETATM processing from structure file to be...
[jalview.git] / test / jalview / ext / jmol / JmolParserTest.java
index 7ac1579..0627a4a 100644 (file)
@@ -30,6 +30,7 @@ import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.io.AppletFormatAdapter;
 import jalview.io.FileLoader;
+import jalview.structure.StructureImportSettings;
 
 import java.util.Vector;
 
@@ -55,7 +56,7 @@ public class JmolParserTest
 
   //@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" +
@@ -105,6 +106,31 @@ 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(false, false, false, pdbStr,
+              jalview.io.AppletFormatAdapter.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,
@@ -173,14 +199,15 @@ public class JmolParserTest
   @Test(groups = { "Functional" })
   public void testParse_missingResidues() throws Exception
   {
-    PDBfile mctest = new PDBfile(false, false, false, pdbWithChainBreak,
+    PDBfile mctest = new PDBfile(false, false, false,
+            pastePDBDataWithChainBreak,
             AppletFormatAdapter.PASTE);
     boolean annotFromStructure = false;
     boolean localSecondaryStruct = false;
     boolean serviceSecondaryStruct = false;
     JmolParser jtest = new JmolParser(annotFromStructure,
             localSecondaryStruct, serviceSecondaryStruct,
-            pdbWithChainBreak,
+            pastePDBDataWithChainBreak,
             jalview.io.AppletFormatAdapter.PASTE);
     Vector<SequenceI> seqs = jtest.getSeqs();
     Vector<SequenceI> mcseqs = mctest.getSeqs();