X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fext%2Fjmol%2FPDBFileWithJmolTest.java;h=fa3922b3c78c7d7be3bddc37a3a9dabd0d95e90b;hb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;hp=2410e4f078e1e744b7de58cfa99ad7c7cacaf602;hpb=47168f025aefdaa044802bd5f8f510ffe43a4808;p=jalview.git diff --git a/test/jalview/ext/jmol/PDBFileWithJmolTest.java b/test/jalview/ext/jmol/PDBFileWithJmolTest.java index 2410e4f..fa3922b 100644 --- a/test/jalview/ext/jmol/PDBFileWithJmolTest.java +++ b/test/jalview/ext/jmol/PDBFileWithJmolTest.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -20,38 +20,117 @@ */ package jalview.ext.jmol; -import static org.junit.Assert.*; - -import java.util.Vector; +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertTrue; +import jalview.bin.Cache; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.SequenceI; +import jalview.gui.AlignFrame; +import jalview.io.AppletFormatAdapter; +import jalview.io.FileLoader; + +import java.util.Vector; -import org.junit.Test; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import MCview.PDBfile; /** * @author jimp - * + * */ public class PDBFileWithJmolTest { + String[] testFile = new String[] { "./examples/1GAQ.txt", + "./test/jalview/ext/jmol/1QCF.pdb" }; // , + + // "./examples/DNMT1_MOUSE.pdb" + // }; - @Test - public void test() throws Exception + @BeforeMethod(alwaysRun = true) + public void setUp() { - PDBFileWithJmol jtest=new PDBFileWithJmol("./examples/1GAQ.txt", jalview.io.AppletFormatAdapter.FILE); - Vector seqs=jtest.getSeqs(); - - assertTrue("No sequences extracted from testfile\n"+(jtest.hasWarningMessage() ? jtest.getWarningMessage(): "(No warnings raised)"), seqs!=null && seqs.size()>0); - for (SequenceI sq:seqs) + Cache.applicationProperties.setProperty("STRUCT_FROM_PDB", + Boolean.TRUE.toString()); + Cache.applicationProperties.setProperty("ADD_SS_ANN", + Boolean.TRUE.toString()); + } + + @Test(groups = { "Functional" }) + public void testAlignmentLoader() throws Exception + { + for (String f : testFile) { - AlignmentI al = new Alignment(new SequenceI[] { sq}); - if (!al.isNucleotide()) + FileLoader fl = new jalview.io.FileLoader(false); + AlignFrame af = fl + .LoadFileWaitTillLoaded(f, AppletFormatAdapter.FILE); + validateSecStrRows(af.getViewport().getAlignment()); + } + } + + @Test(groups = { "Functional" }) + public void testFileParser() throws Exception + { + for (String pdbStr : testFile) + { + PDBfile mctest = new PDBfile(false, false, false, pdbStr, + AppletFormatAdapter.FILE); + PDBFileWithJmol jtest = new PDBFileWithJmol(pdbStr, + jalview.io.AppletFormatAdapter.FILE); + Vector 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); + } + } + } + + private void validateSecStrRows(AlignmentI al) + { + if (!al.isNucleotide()) + { + for (SequenceI asq : al.getSequences()) { - assertTrue("No secondary structure assigned for protein sequence.",sq.getAnnotation()!=null && sq.getAnnotation().length>=1 && sq.getAnnotation()[0].hasIcons); + SequenceI sq = asq; + boolean hasDs = false; + while (sq.getDatasetSequence() != null + && sq.getAnnotation() == null) + { + sq = sq.getDatasetSequence(); + hasDs = true; + } + checkFirstAAIsAssoc(sq); + if (hasDs) + { + // also verify if alignment sequence has annotation on it + // that is correctly mapped + checkFirstAAIsAssoc(asq); + } } } } + private void checkFirstAAIsAssoc(SequenceI sq) + { + assertTrue("No secondary structure assigned for protein sequence.", + sq.getAnnotation() != null && sq.getAnnotation().length >= 1 + && sq.getAnnotation()[0].hasIcons); + assertTrue( + "Secondary structure not associated for sequence " + + sq.getName(), sq.getAnnotation()[0].sequenceRef == sq); + } }