X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FAnnotatedPDBFileInputTest.java;h=899a990cd603d675dd7fa5002a9f43a5ca24680e;hb=838e4f91d4a53dd315640dbc9ff6ef7a815ee576;hp=7e994095d406cf72fafb6df23069b34c86555261;hpb=e05ad4f9199d673b327277d1266d97f3a51419ae;p=jalview.git diff --git a/test/jalview/io/AnnotatedPDBFileInputTest.java b/test/jalview/io/AnnotatedPDBFileInputTest.java index 7e99409..899a990 100644 --- a/test/jalview/io/AnnotatedPDBFileInputTest.java +++ b/test/jalview/io/AnnotatedPDBFileInputTest.java @@ -1,44 +1,74 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1) + * Copyright (C) 2015 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.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +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.Vector; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; public class AnnotatedPDBFileInputTest { AlignmentI al; - String pdbStr = "examples/2GIS.pdb"; - String pdbId; - @Before + /** + * Ensure 'process secondary structure from PDB and add annotations' are set + * in preferences, and load PDB example file 1gaq + * + * @throws Exception + */ + @BeforeMethod(alwaysRun = true) public void setup() throws Exception { + Cache.applicationProperties.setProperty("STRUCT_FROM_PDB", + Boolean.TRUE.toString()); + Cache.applicationProperties.setProperty("ADD_SS_ANN", + Boolean.TRUE.toString()); FileLoader loader = new FileLoader(false); - AlignFrame af = loader.LoadFileWaitTillLoaded(pdbStr, + AlignFrame af = loader.LoadFileWaitTillLoaded("examples/1gaq.txt", FormatAdapter.FILE); al = af.getViewport().getAlignment(); - pdbId = ((PDBEntry) al.getSequenceAt(0).getDatasetSequence().getPDBId() - .get(0)).getId(); + pdbId = al.getSequenceAt(0).getDatasetSequence().getAllPDBEntries() + .get(0).getId(); } - @Test + @Test(groups = { "Functional" }) public void checkNoDuplicates() { // not strictly a requirement, but strange things may happen if multiple @@ -51,14 +81,13 @@ public class AnnotatedPDBFileInputTest { for (int q = p + 1; q < avec.length; q++) { - assertNotEquals( - "Found a duplicate annotation row " + avec[p].label, - avec[p], avec[q]); + Assert.assertNotEquals("Found a duplicate annotation row " + + avec[p].label, avec[p], avec[q]); } } } - @Test + @Test(groups = { "Functional" }) public void checkPDBannotationSource() { @@ -68,12 +97,49 @@ public class AnnotatedPDBFileInputTest { System.out.println("CalcId: " + aa.getCalcId()); - assertTrue(MCview.PDBfile.isCalcIdForFile(aa.getCalcId(), pdbId)); + assertTrue(MCview.PDBfile.isCalcIdForFile(aa, pdbId)); } } } - @Test + /** + * Check sequence features have been added + */ + @Test(groups = { "Functional" }) + public void checkPDBSequenceFeatures() + { + /* + * 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()); + + /* + * 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()); + + /* + * 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()); + } + + @Test(groups = { "Functional" }) public void checkAnnotationWiring() { assertTrue(al.getAlignmentAnnotation() != null); @@ -105,11 +171,11 @@ public class AnnotatedPDBFileInputTest /** * @throws java.lang.Exception */ - @BeforeClass + @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { - jalview.bin.Jalview.main(new String[] - { "-props", "test/src/jalview/io/testProps.jvprops" }); + jalview.bin.Jalview.main(new String[] { "-props", + "test/jalview/io/testProps.jvprops" }); } /** @@ -122,11 +188,11 @@ public class AnnotatedPDBFileInputTest } - @Test + @Test(groups = { "Functional" }) public void testJalviewProjectRelocationAnnotation() throws Exception { - String inFile = "examples/2GIS.pdb"; + String inFile = "examples/1gaq.txt"; String tfile = File.createTempFile("JalviewTest", ".jvp") .getAbsolutePath(); AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded( @@ -146,9 +212,10 @@ public class AnnotatedPDBFileInputTest { sq = sq.getDatasetSequence(); } - assertNotNull(sq.getPDBId()); - assertEquals("Expected only one PDB ID", sq.getPDBId().size(), 1); - for (PDBEntry pdbentry : (Vector) sq.getPDBId()) + assertNotNull(sq.getAllPDBEntries()); + assertEquals("Expected only one PDB ID", + sq.getAllPDBEntries().size(), 1); + for (PDBEntry pdbentry : sq.getAllPDBEntries()) { System.err.println("PDB Entry " + pdbentry.getId() + " " + pdbentry.getFile()); @@ -160,8 +227,7 @@ public class AnnotatedPDBFileInputTest && MCview.PDBfile.isCalcIdHandled(ana.getCalcId())) { exists = true; - if (MCview.PDBfile.isCalcIdForFile(ana.getCalcId(), - pdbentry.getId())) + if (MCview.PDBfile.isCalcIdForFile(ana, pdbentry.getId())) { found = true; }