JAL-1681 show cDNA consensus on protein alignment - first version
[jalview.git] / test / jalview / datamodel / AlignedCodonFrameTest.java
index 9694a3e..0e24bf6 100644 (file)
@@ -65,7 +65,7 @@ public class AlignedCodonFrameTest
     @Test
   public void testGetMappedRegion()
   {
-    // introns lower case
+    // introns lower case, exons upper case
     final Sequence seq1 = new Sequence("Seq1", "c-G-TA-gC-gT-T");
     seq1.createDatasetSequence();
     final Sequence seq2 = new Sequence("Seq2", "-TA-gG-Gg-CG-a");
@@ -109,4 +109,33 @@ public class AlignedCodonFrameTest
      */
     assertNull(acf.getMappedRegion(seq1, aseq2, 1));
   }
+
+  @Test
+  public void testGetMappedCodon()
+  {
+    final Sequence seq1 = new Sequence("Seq1", "c-G-TA-gC-gT-T");
+    seq1.createDatasetSequence();
+    final Sequence aseq1 = new Sequence("Seq1", "-P-R");
+    aseq1.createDatasetSequence();
+
+    /*
+     * First with no mappings
+     */
+    AlignedCodonFrame acf = new AlignedCodonFrame();
+
+    assertNull(acf.getMappedCodon(seq1.getDatasetSequence(), 0));
+
+    /*
+     * Set up the mappings for the exons (upper-case bases)
+     */
+    MapList map = new MapList(new int[]
+    { 2, 4, 6, 6, 8, 9 }, new int[]
+    { 1, 2 }, 3, 1);
+    acf.addMap(seq1.getDatasetSequence(), aseq1.getDatasetSequence(), map);
+    
+    assertEquals("[G, T, A]", Arrays.toString(acf.getMappedCodon(
+            aseq1.getDatasetSequence(), 1)));
+    assertEquals("[C, T, T]", Arrays.toString(acf.getMappedCodon(
+            aseq1.getDatasetSequence(), 2)));
+  }
 }