X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FAlignedCodonFrameTest.java;fp=test%2Fjalview%2Fdatamodel%2FAlignedCodonFrameTest.java;h=e3fa027309ffb75aab2d39df8884031afd9d786b;hb=708cc06af06aa2912319ad736bcfecb62081de39;hp=fb4073a0713e52f6a21c73b13142f623b9a3ab15;hpb=e28dd7ed1ec94a76f68ad610fc3ddc0e5fa1f36c;p=jalview.git diff --git a/test/jalview/datamodel/AlignedCodonFrameTest.java b/test/jalview/datamodel/AlignedCodonFrameTest.java index fb4073a..e3fa027 100644 --- a/test/jalview/datamodel/AlignedCodonFrameTest.java +++ b/test/jalview/datamodel/AlignedCodonFrameTest.java @@ -22,20 +22,22 @@ package jalview.datamodel; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; +import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertNull; import static org.testng.AssertJUnit.assertSame; import static org.testng.AssertJUnit.assertTrue; import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals; -import jalview.gui.JvOptionPane; -import jalview.util.MapList; - import java.util.Arrays; import java.util.List; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import jalview.datamodel.AlignedCodonFrame.SequenceToSequenceMapping; +import jalview.gui.JvOptionPane; +import jalview.util.MapList; + public class AlignedCodonFrameTest { @@ -486,4 +488,61 @@ public class AlignedCodonFrameTest assertEquals(1, acf.getMappingsFromSequence(seq1).size()); assertSame(before, acf.getMappingsFromSequence(seq1).get(0)); } + + @Test(groups = { "Functional" }) + public void testGetCoveringMapping() + { + SequenceI dna = new Sequence("dna", "acttcaATGGCGGACtaattt"); + SequenceI cds = new Sequence("cds/7-15", "ATGGCGGAC"); + cds.setDatasetSequence(dna); + SequenceI pep = new Sequence("pep", "MAD"); + + /* + * with null argument or no mappings + */ + AlignedCodonFrame acf = new AlignedCodonFrame(); + assertNull(acf.getCoveringMapping(null, null)); + assertNull(acf.getCoveringMapping(dna, null)); + assertNull(acf.getCoveringMapping(null, pep)); + assertNull(acf.getCoveringMapping(dna, pep)); + + /* + * with a non-covering mapping e.g. overlapping exon + */ + MapList map = new MapList(new int[] { 7, 9 }, new int[] { + 1, 1 }, 3, 1); + acf.addMap(dna, pep, map); + assertNull(acf.getCoveringMapping(dna, pep)); + + acf = new AlignedCodonFrame(); + MapList map2 = new MapList(new int[] { 13, 18 }, new int[] { + 2, 2 }, 3, 1); + acf.addMap(dna, pep, map2); + assertNull(acf.getCoveringMapping(dna, pep)); + + /* + * with a covering mapping from CDS (dataset) to protein + */ + acf = new AlignedCodonFrame(); + MapList map3 = new MapList(new int[] { 7, 15 }, new int[] { + 1, 3 }, 3, 1); + acf.addMap(dna, pep, map3); + assertNull(acf.getCoveringMapping(dna, pep)); + SequenceToSequenceMapping mapping = acf.getCoveringMapping(cds, pep); + assertNotNull(mapping); + + /* + * with a mapping that extends to stop codon + */ + acf = new AlignedCodonFrame(); + MapList map4 = new MapList(new int[] { 7, 18 }, new int[] { + 1, 3 }, 3, 1); + acf.addMap(dna, pep, map4); + assertNull(acf.getCoveringMapping(dna, pep)); + assertNull(acf.getCoveringMapping(cds, pep)); + SequenceI cds2 = new Sequence("cds/7-18", "ATGGCGGACtaa"); + cds2.setDatasetSequence(dna); + mapping = acf.getCoveringMapping(cds2, pep); + assertNotNull(mapping); + } }