X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fdatamodel%2FAlignedCodonIteratorTest.java;h=cc87f291a303a4daa8bd222820dab0584c2dec6f;hb=d82ec00f14199ef0ce21bd5bc70a59142b7c4b07;hp=abb06ad4e660a882ec1910d123ccedec339c867f;hpb=8f118c154e74caaef6bec19acd0466904ac424d4;p=jalview.git diff --git a/test/jalview/datamodel/AlignedCodonIteratorTest.java b/test/jalview/datamodel/AlignedCodonIteratorTest.java index abb06ad..cc87f29 100644 --- a/test/jalview/datamodel/AlignedCodonIteratorTest.java +++ b/test/jalview/datamodel/AlignedCodonIteratorTest.java @@ -150,4 +150,31 @@ public class AlignedCodonIteratorTest assertEquals("Q", codon.product); assertFalse(codons.hasNext()); } + + /** + * Test for a case with sequence (and mappings) not starting at 1 + */ + @Test(groups = { "Functional" }) + public void testNext_withOffset() + { + SequenceI from = new Sequence("Seq1", "-CgC-C-cCtAG-AtG-Gc", 7, 20); + from.createDatasetSequence(); + SequenceI to = new Sequence("Seq1/10-12", "-PQ-R-"); + to.createDatasetSequence(); + MapList map = new MapList(new int[] { 7, 7, 9, 10, 12, 12, 14, 16, 18, + 19 }, new int[] { 10, 12 }, 3, 1); + Mapping m = new Mapping(to.getDatasetSequence(), map); + + Iterator codons = m.getCodonIterator(from, '-'); + AlignedCodon codon = codons.next(); + assertEquals("[1, 3, 5]", codon.toString()); + assertEquals("P", codon.product); + codon = codons.next(); + assertEquals("[8, 10, 11]", codon.toString()); + assertEquals("Q", codon.product); + codon = codons.next(); + assertEquals("[13, 15, 17]", codon.toString()); + assertEquals("R", codon.product); + assertFalse(codons.hasNext()); + } }