X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FAnnotatedPDBFileInputTest.java;h=e369a0249b33a70c96d4d47f7f373bfc7f55a982;hb=8337a127bde90beb39c52fb971d0facf6f5b2362;hp=f02226e8d7bf271f539fac623ac1a1b7dd5bb6fa;hpb=52288466dd1e71946a06fd1e6ea15fa8e652c693;p=jalview.git diff --git a/test/jalview/io/AnnotatedPDBFileInputTest.java b/test/jalview/io/AnnotatedPDBFileInputTest.java index f02226e..e369a02 100644 --- a/test/jalview/io/AnnotatedPDBFileInputTest.java +++ b/test/jalview/io/AnnotatedPDBFileInputTest.java @@ -1,18 +1,31 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.io; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertTrue; -import jalview.bin.Cache; -import jalview.datamodel.AlignmentAnnotation; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.PDBEntry; -import jalview.datamodel.SequenceFeature; -import jalview.datamodel.SequenceI; -import jalview.gui.AlignFrame; - import java.io.File; +import java.util.List; import org.junit.Assert; import org.testng.annotations.AfterClass; @@ -20,9 +33,29 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import jalview.bin.Cache; +import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.SequenceFeature; +import jalview.datamodel.SequenceI; +import jalview.datamodel.features.SequenceFeatures; +import jalview.gui.AlignFrame; +import jalview.gui.Desktop; +import jalview.gui.JvOptionPane; +import jalview.structure.StructureImportSettings; +import jalview.structure.StructureImportSettings.StructureParser; + public class AnnotatedPDBFileInputTest { + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + AlignmentI al; String pdbId; @@ -42,10 +75,13 @@ public class AnnotatedPDBFileInputTest Boolean.TRUE.toString()); FileLoader loader = new FileLoader(false); AlignFrame af = loader.LoadFileWaitTillLoaded("examples/1gaq.txt", - FormatAdapter.FILE); + DataSourceType.FILE); al = af.getViewport().getAlignment(); pdbId = al.getSequenceAt(0).getDatasetSequence().getAllPDBEntries() .get(0).getId(); + StructureImportSettings.setDefaultStructureFileFormat("PDB"); + // StructureImportSettings + // .setDefaultPDBFileParser(StructureParser.JALVIEW_PARSER); } @Test(groups = { "Functional" }) @@ -61,23 +97,28 @@ public class AnnotatedPDBFileInputTest { for (int q = p + 1; q < avec.length; q++) { - Assert.assertNotEquals("Found a duplicate annotation row " - + avec[p].label, avec[p], avec[q]); + assertTrue("Found a duplicate annotation row " + avec[p].label, + avec[p] != avec[q]); } } } - @Test(groups = { "Functional" }) + @Test(groups = { "Functional" }, enabled = false) public void checkPDBannotationSource() { - + Assert.fail( + "This test is incorrect - does not verify that JmolParser's annotation rows can be recognised as generated by the Jmol parser."); for (SequenceI asq : al.getSequences()) { for (AlignmentAnnotation aa : asq.getAnnotation()) { System.out.println("CalcId: " + aa.getCalcId()); - assertTrue(MCview.PDBfile.isCalcIdForFile(aa, pdbId)); + if (StructureImportSettings.getDefaultPDBFileParser() + .equals(StructureParser.JALVIEW_PARSER)) + { + assertTrue(mc_view.PDBfile.isCalcIdForFile(aa, pdbId)); + } } } } @@ -91,32 +132,35 @@ public class AnnotatedPDBFileInputTest /* * 1GAQ/A */ - SequenceFeature[] sf = al.getSequenceAt(0).getSequenceFeatures(); - assertEquals(296, sf.length); - assertEquals("RESNUM", sf[0].getType()); - assertEquals("GLU: 19 1gaqA", sf[0].getDescription()); - assertEquals("RESNUM", sf[295].getType()); - assertEquals("TYR: 314 1gaqA", sf[295].getDescription()); + List sf = al.getSequenceAt(0).getSequenceFeatures(); + SequenceFeatures.sortFeatures(sf, true); + assertEquals(296, sf.size()); + assertEquals("RESNUM", sf.get(0).getType()); + assertEquals("GLU: 19 1gaqA", sf.get(0).getDescription()); + assertEquals("RESNUM", sf.get(295).getType()); + assertEquals("TYR: 314 1gaqA", sf.get(295).getDescription()); /* * 1GAQ/B */ sf = al.getSequenceAt(1).getSequenceFeatures(); - assertEquals(98, sf.length); - assertEquals("RESNUM", sf[0].getType()); - assertEquals("ALA: 1 1gaqB", sf[0].getDescription()); - assertEquals("RESNUM", sf[97].getType()); - assertEquals("ALA: 98 1gaqB", sf[97].getDescription()); + SequenceFeatures.sortFeatures(sf, true); + assertEquals(98, sf.size()); + assertEquals("RESNUM", sf.get(0).getType()); + assertEquals("ALA: 1 1gaqB", sf.get(0).getDescription()); + assertEquals("RESNUM", sf.get(97).getType()); + assertEquals("ALA: 98 1gaqB", sf.get(97).getDescription()); /* * 1GAQ/C */ sf = al.getSequenceAt(2).getSequenceFeatures(); - assertEquals(296, sf.length); - assertEquals("RESNUM", sf[0].getType()); - assertEquals("GLU: 19 1gaqC", sf[0].getDescription()); - assertEquals("RESNUM", sf[295].getType()); - assertEquals("TYR: 314 1gaqC", sf[295].getDescription()); + SequenceFeatures.sortFeatures(sf, true); + assertEquals(296, sf.size()); + assertEquals("RESNUM", sf.get(0).getType()); + assertEquals("GLU: 19 1gaqC", sf.get(0).getDescription()); + assertEquals("RESNUM", sf.get(295).getType()); + assertEquals("TYR: 314 1gaqC", sf.get(295).getDescription()); } @Test(groups = { "Functional" }) @@ -139,10 +183,9 @@ public class AnnotatedPDBFileInputTest break; } } - assertTrue( - "Couldn't find sequence associated annotation " - + aa.label - + " on the sequence it is associated with.\nSequence associated editing will fail.", + assertTrue("Couldn't find sequence associated annotation " + + aa.label + + " on the sequence it is associated with.\nSequence associated editing will fail.", found); } } @@ -154,18 +197,19 @@ public class AnnotatedPDBFileInputTest @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { - jalview.bin.Jalview.main(new String[] { "-props", - "test/jalview/io/testProps.jvprops" }); + jalview.bin.Jalview + .main(new String[] + { "--props", "test/jalview/io/testProps.jvprops" }); } /** * @throws java.lang.Exception */ - @AfterClass + @AfterClass(alwaysRun = true) public static void tearDownAfterClass() throws Exception { - jalview.gui.Desktop.instance.closeAll_actionPerformed(null); - + if (Desktop.instance != null) + Desktop.instance.closeAll_actionPerformed(null); } @Test(groups = { "Functional" }) @@ -175,15 +219,16 @@ public class AnnotatedPDBFileInputTest String inFile = "examples/1gaq.txt"; String tfile = File.createTempFile("JalviewTest", ".jvp") .getAbsolutePath(); - AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded( - inFile, FormatAdapter.FILE); + AlignFrame af = new jalview.io.FileLoader() + .LoadFileWaitTillLoaded(inFile, DataSourceType.FILE); assertTrue("Didn't read input file " + inFile, af != null); + af.saveAlignment(tfile, FileFormat.Jalview); assertTrue("Failed to store as a project.", - af.saveAlignment(tfile, "Jalview")); + af.isSaveAlignmentSuccessful()); af.closeMenuItem_actionPerformed(true); af = null; af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(tfile, - FormatAdapter.FILE); + DataSourceType.FILE); assertTrue("Failed to import new project", af != null); for (SequenceI asq : af.getViewport().getAlignment().getSequences()) { @@ -193,21 +238,21 @@ public class AnnotatedPDBFileInputTest sq = sq.getDatasetSequence(); } assertNotNull(sq.getAllPDBEntries()); - assertEquals("Expected only one PDB ID", - sq.getAllPDBEntries().size(), 1); + assertEquals("Expected only one PDB ID", 1, + sq.getAllPDBEntries().size()); for (PDBEntry pdbentry : sq.getAllPDBEntries()) { - System.err.println("PDB Entry " + pdbentry.getId() + " " - + pdbentry.getFile()); + System.err.println( + "PDB Entry " + pdbentry.getId() + " " + pdbentry.getFile()); boolean exists = false, found = false; for (AlignmentAnnotation ana : sq.getAnnotation()) { System.err.println("CalcId " + ana.getCalcId()); if (ana.getCalcId() != null - && MCview.PDBfile.isCalcIdHandled(ana.getCalcId())) + && mc_view.PDBfile.isCalcIdHandled(ana.getCalcId())) { exists = true; - if (MCview.PDBfile.isCalcIdForFile(ana, pdbentry.getId())) + if (mc_view.PDBfile.isCalcIdForFile(ana, pdbentry.getId())) { found = true; } @@ -215,8 +260,10 @@ public class AnnotatedPDBFileInputTest } if (exists) { - assertTrue("Couldn't find any annotation for " + pdbentry.getId() - + " (file handle " + pdbentry.getFile() + ")", found); + assertTrue( + "Couldn't find any annotation for " + pdbentry.getId() + + " (file handle " + pdbentry.getFile() + ")", + found); } } }