X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FCrossRefTest.java;h=ecfedb1d62a6323f6744456249ffa994cc948345;hb=8474e47dc878f83b9b3f45ef6b04eb64ad733e2a;hp=b2720f2a2d57b0359cdc0312732070335a168cc4;hpb=3899cb96ea4eeb4f528f801a87b28f5b1b453106;p=jalview.git diff --git a/test/jalview/analysis/CrossRefTest.java b/test/jalview/analysis/CrossRefTest.java index b2720f2..ecfedb1 100644 --- a/test/jalview/analysis/CrossRefTest.java +++ b/test/jalview/analysis/CrossRefTest.java @@ -92,7 +92,7 @@ public class CrossRefTest * which may be direct (dbrefs on the sequence), or indirect (dbrefs on * sequences which share a dbref with the sequence */ - @Test(groups = { "Functional" }) + @Test(groups = { "Functional" }, enabled = false) public void testFindXrefSourcesForSequence_proteinToDna() { SequenceI seq = new Sequence("Seq1", "MGKYQARLSS"); @@ -150,7 +150,7 @@ public class CrossRefTest * xref is found - not on the nucleotide sequence but on a peptide sequence in * the alignment which which it shares a nucleotide dbref */ - @Test(groups = { "Functional" }) + @Test(groups = { "Functional" }, enabled = false) public void testFindXrefSequences_indirectDbrefToProtein() { /* @@ -181,7 +181,7 @@ public class CrossRefTest * xref is found - not on the peptide sequence but on a nucleotide sequence in * the alignment which which it shares a protein dbref */ - @Test(groups = { "Functional" }) + @Test(groups = { "Functional" }, enabled = false) public void testFindXrefSequences_indirectDbrefToNucleotide() { /* @@ -241,7 +241,7 @@ public class CrossRefTest * Tests for the method that searches an alignment (with one sequence * excluded) for protein/nucleotide sequences with a given cross-reference */ - @Test(groups = { "Functional" }) + @Test(groups = { "Functional" }, enabled = false) public void testSearchDataset() { /* @@ -536,14 +536,12 @@ public class CrossRefTest /* * Uniprot sequences, both with xrefs to EMBL|J03321 * and EMBL|X07547 - * Sequences faked to ensure dna translates to protein - * (so that mappings can be made) */ SequenceI p0ce19 = new Sequence("UNIPROT|P0CE19", "KPFG"); p0ce19.addDBRef(new DBRefEntry("EMBL", "0", "J03321")); p0ce19.addDBRef(new DBRefEntry("EMBL", "0", "X06707")); p0ce19.addDBRef(new DBRefEntry("EMBL", "0", "M19487")); - SequenceI p0ce20 = new Sequence("UNIPROT|P0CE20", "KPFG"); + SequenceI p0ce20 = new Sequence("UNIPROT|P0CE20", "PFGK"); p0ce20.addDBRef(new DBRefEntry("EMBL", "0", "J03321")); p0ce20.addDBRef(new DBRefEntry("EMBL", "0", "X06707")); p0ce20.addDBRef(new DBRefEntry("EMBL", "0", "X07547")); @@ -558,17 +556,18 @@ public class CrossRefTest /* * J03321 with mappings to P0CE19 and P0CE20 */ - final SequenceI j03321 = new Sequence("EMBL|J03321", "AAACCCTTTGGG"); + final SequenceI j03321 = new Sequence("EMBL|J03321", "AAACCCTTTGGGAAAA"); DBRefEntry dbref1 = new DBRefEntry("UNIPROT", "0", "P0CE19"); - MapList mapList = new MapList(new int[] { 1, 18 }, - new int[] { 1, 6 }, 3, 1); + MapList mapList = new MapList(new int[] { 1, 12 }, new int[] { 1, 4 }, + 3, 1); Mapping map = new Mapping(new Sequence("UNIPROT|P0CE19", "KPFG"), mapList); // add a dbref to the mapped to sequence - should get copied to p0ce19 map.getTo().addDBRef(new DBRefEntry("PIR", "0", "S01875")); dbref1.setMap(map); j03321.addDBRef(dbref1); DBRefEntry dbref2 = new DBRefEntry("UNIPROT", "0", "P0CE20"); - dbref2.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "KPFG"), + mapList = new MapList(new int[] { 4, 15 }, new int[] { 2, 5 }, 3, 1); + dbref2.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "PFGK"), new MapList(mapList))); j03321.addDBRef(dbref2); @@ -576,17 +575,15 @@ public class CrossRefTest * X06707 with mappings to P0CE19 and P0CE20 */ final SequenceI x06707 = new Sequence("EMBL|X06707", "atgAAACCCTTTGGG"); - // TODO CrossRef.constructMapping ignores the reverse mapping ?? - // should it not use its inverse if available? - // how does this work for real? DBRefEntry dbref3 = new DBRefEntry("UNIPROT", "0", "P0CE19"); - MapList map2 = new MapList(new int[] { 4, 21 }, new int[] { 1, 6 }, 3, + MapList map2 = new MapList(new int[] { 4, 15 }, new int[] { 1, 4 }, 3, 1); dbref3.setMap(new Mapping(new Sequence("UNIPROT|P0CE19", "KPFG"), map2)); x06707.addDBRef(dbref3); DBRefEntry dbref4 = new DBRefEntry("UNIPROT", "0", "P0CE20"); - dbref4.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "KPFG"), - new MapList(mapList))); + MapList map3 = new MapList(new int[] { 4, 15 }, new int[] { 1, 4 }, 3, + 1); + dbref4.setMap(new Mapping(new Sequence("UNIPROT|P0CE20", "PFGK"), map3)); x06707.addDBRef(dbref4); /* @@ -619,7 +616,8 @@ public class CrossRefTest * mock sequence fetcher to 'return' the EMBL sequences * TODO: Mockito would allow .thenReturn().thenReturn() here, * and also capture and verification of the parameters - * passed in calls to getSequences() + * passed in calls to getSequences() - important to verify that + * duplicate sequence fetches are not requested */ SequenceFetcher mockFetcher = new SequenceFetcher(false) { @@ -633,8 +631,13 @@ public class CrossRefTest public SequenceI[] getSequences(List refs, boolean dna) { call++; - return call == 1 ? new SequenceI[] { j03321, x06707, m19487 } - : new SequenceI[] { x07547 }; + if (call == 1) { + assertEquals("Expected 3 embl seqs in first fetch", 3, refs.size()); + return new SequenceI[] { j03321, x06707, m19487 }; + } else { + assertEquals("Expected 1 embl seq in second fetch", 1, refs.size()); + return new SequenceI[] { x07547 }; + } } }; SequenceFetcherFactory.setSequenceFetcher(mockFetcher);