X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2FPDBSequenceFetcherTest.java;h=cc3dca8473f5243f715bc21c62b0a436983137e5;hb=782db63cc15bc2261c398a87da13fd729da7a18d;hp=0572c85ab0f82fe0099df6e1e8e2763a76f5fc65;hpb=a47d3497273497061faecb889117682d09339675;p=jalview.git diff --git a/test/jalview/ws/PDBSequenceFetcherTest.java b/test/jalview/ws/PDBSequenceFetcherTest.java index 0572c85..cc3dca8 100644 --- a/test/jalview/ws/PDBSequenceFetcherTest.java +++ b/test/jalview/ws/PDBSequenceFetcherTest.java @@ -25,6 +25,7 @@ import static org.testng.AssertJUnit.assertTrue; import jalview.bin.Cache; import jalview.datamodel.AlignmentI; +import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.gui.JvOptionPane; import jalview.structure.StructureImportSettings; @@ -34,6 +35,7 @@ import jalview.ws.seqfetcher.DbSourceProxy; import java.util.Arrays; import java.util.List; +import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -130,6 +132,7 @@ public class PDBSequenceFetcherTest private void testRetrieveProteinSeqFromPDB() throws Exception { List sps = sf.getSourceProxy("PDB"); + StringBuilder errors = new StringBuilder(); for (TestRetrieveObject str : toRetrieve) { AlignmentI response = sps.get(0).getSequenceRecords(str.id); @@ -142,11 +145,41 @@ public class PDBSequenceFetcherTest sq.getAnnotation().length > 0); assertTrue("No PDBEntry on sequence " + sq.getName(), sq.getAllPDBEntries().size() > 0); - org.testng.Assert.assertEquals(sq.getEnd() - sq.getStart() + 1, - sq.getLength(), - "Sequence start/end doesn't match number of residues in sequence for " - + sq.getName()); + // FIXME: should test that all residues extracted as sequences from + // chains in structure have a mapping to data in the structure + List prev = null; + int lastp = -1; + for (int col = 1; col <= sq.getLength(); col++) + { + List sf = sq.findFeatures(col, col, "RESNUM"); + if (sf.size() != 1) + { + errors.append( + str.id + ": " + + "Expected one feature at column (position): " + + (col - 1) + + " (" + sq.findPosition(col - 1) + ")" + + ": saw " + + sf.size()); + errors.append("\n"); + if (prev != null) + { + errors.append("Last Feature was at position " + lastp + ": " + + prev.get(0).toString()); + errors.append("\n"); + } + } + else + { + prev = sf; + lastp = sq.findPosition(col - 1); + } + } } } + if (errors.length() > 0) + { + Assert.fail(errors.toString()); + } } }