JAL-1880 handle sequence offsets properly when mapping cDNA to protein
[jalview.git] / test / jalview / datamodel / AlignedCodonFrameTest.java
index 9005656..a0757cc 100644 (file)
@@ -150,4 +150,30 @@ public class AlignedCodonFrameTest
     assertEquals("[C, T, T]", Arrays.toString(acf.getMappedCodon(
             aseq1.getDatasetSequence(), 2)));
   }
+
+  /**
+   * Test for the case where sequences have start > 1
+   */
+  @Test(groups = { "Functional" })
+  public void testGetMappedCodon_forSubSequences()
+  {
+    final Sequence seq1 = new Sequence("Seq1", "c-G-TA-gC-gT-T", 27, 35);
+    seq1.createDatasetSequence();
+
+    final Sequence aseq1 = new Sequence("Seq1", "-P-R", 12, 13);
+    aseq1.createDatasetSequence();
+
+    /*
+     * Set up the mappings for the exons (upper-case bases)
+     */
+    AlignedCodonFrame acf = new AlignedCodonFrame();
+    MapList map = new MapList(new int[] { 28, 30, 32, 32, 34, 35 },
+            new int[] { 12, 13 }, 3, 1);
+    acf.addMap(seq1.getDatasetSequence(), aseq1.getDatasetSequence(), map);
+
+    assertEquals("[G, T, A]", Arrays.toString(acf.getMappedCodon(
+            aseq1.getDatasetSequence(), 12)));
+    assertEquals("[C, T, T]", Arrays.toString(acf.getMappedCodon(
+            aseq1.getDatasetSequence(), 13)));
+  }
 }