JAL-1636 translate stop codon as '*', mouseover * as STOP
[jalview.git] / test / jalview / analysis / AlignmentUtilsTests.java
index 61b2487..9c8e28c 100644 (file)
@@ -579,27 +579,38 @@ public class AlignmentUtilsTests
   {
     assertTrue(AlignmentUtils.translatesAs("tttcccaaaggg".toCharArray(), 0,
             "FPKG".toCharArray()));
-    // with start codon
+    // with start codon (not in protein)
     assertTrue(AlignmentUtils.translatesAs("atgtttcccaaaggg".toCharArray(),
             3, "FPKG".toCharArray()));
-    // with stop codon1
+    // with stop codon1 (not in protein)
     assertTrue(AlignmentUtils.translatesAs("tttcccaaagggtaa".toCharArray(),
             0, "FPKG".toCharArray()));
-    // with stop codon2
+    // with stop codon1 (in protein as *)
+    assertTrue(AlignmentUtils.translatesAs("tttcccaaagggtaa".toCharArray(),
+            0, "FPKG*".toCharArray()));
+    // with stop codon2 (not in protein)
     assertTrue(AlignmentUtils.translatesAs("tttcccaaagggtag".toCharArray(),
             0, "FPKG".toCharArray()));
-    // with stop codon3
+    // with stop codon3 (not in protein)
     assertTrue(AlignmentUtils.translatesAs("tttcccaaagggtga".toCharArray(),
             0, "FPKG".toCharArray()));
     // with start and stop codon1
     assertTrue(AlignmentUtils.translatesAs(
-            "atgtttcccaaaggtaa".toCharArray(), 3, "FPKG".toCharArray()));
+            "atgtttcccaaagggtaa".toCharArray(), 3, "FPKG".toCharArray()));
+    // with start and stop codon1 (in protein as *)
+    assertTrue(AlignmentUtils.translatesAs(
+            "atgtttcccaaagggtaa".toCharArray(), 3, "FPKG*".toCharArray()));
     // with start and stop codon2
     assertTrue(AlignmentUtils.translatesAs(
-            "atgtttcccaaaggtag".toCharArray(), 3, "FPKG".toCharArray()));
+            "atgtttcccaaagggtag".toCharArray(), 3, "FPKG".toCharArray()));
     // with start and stop codon3
     assertTrue(AlignmentUtils.translatesAs(
-            "atgtttcccaaaggtga".toCharArray(), 3, "FPKG".toCharArray()));
+            "atgtttcccaaagggtga".toCharArray(), 3, "FPKG".toCharArray()));
+
+    // with embedded stop codon
+    assertTrue(AlignmentUtils.translatesAs(
+            "atgtttTAGcccaaaTAAgggtga".toCharArray(), 3,
+            "F*PK*G".toCharArray()));
 
     // wrong protein
     assertFalse(AlignmentUtils.translatesAs("tttcccaaaggg".toCharArray(),
@@ -1267,4 +1278,22 @@ public class AlignmentUtilsTests
     assertEquals(1, peptideMappings.size());
     assertSame(pep3.getDatasetSequence(), peptideMappings.get(0).getTo());
   }
+
+  @Test(groups = { "Functional" })
+  public void testIsMappable()
+  {
+    SequenceI dna1 = new Sequence("dna1", "cgCAGtgGT");
+    SequenceI aa1 = new Sequence("aa1", "RSG");
+    AlignmentI al1 = new Alignment(new SequenceI[] { dna1 });
+    AlignmentI al2 = new Alignment(new SequenceI[] { aa1 });
+
+    assertFalse(AlignmentUtils.isMappable(null, null));
+    assertFalse(AlignmentUtils.isMappable(al1, null));
+    assertFalse(AlignmentUtils.isMappable(null, al1));
+    assertFalse(AlignmentUtils.isMappable(al1, al1));
+    assertFalse(AlignmentUtils.isMappable(al2, al2));
+
+    assertTrue(AlignmentUtils.isMappable(al1, al2));
+    assertTrue(AlignmentUtils.isMappable(al2, al1));
+  }
 }