JAL-1681 show cDNA consensus on protein alignment - first version
[jalview.git] / test / jalview / analysis / CodingUtilsTest.java
diff --git a/test/jalview/analysis/CodingUtilsTest.java b/test/jalview/analysis/CodingUtilsTest.java
new file mode 100644 (file)
index 0000000..0f235fb
--- /dev/null
@@ -0,0 +1,78 @@
+package jalview.analysis;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+
+import org.junit.Test;
+
+public class CodingUtilsTest
+{
+
+  @Test
+  public void testDecodeCodon()
+  {
+    assertTrue(Arrays.equals(new char[]
+    { 'A', 'A', 'A' }, CodingUtils.decodeCodon(0)));
+    assertTrue(Arrays.equals(new char[]
+    { 'A', 'A', 'C' }, CodingUtils.decodeCodon(1)));
+    assertTrue(Arrays.equals(new char[]
+    { 'A', 'A', 'G' }, CodingUtils.decodeCodon(2)));
+    assertTrue(Arrays.equals(new char[]
+    { 'A', 'A', 'T' }, CodingUtils.decodeCodon(3)));
+    assertTrue(Arrays.equals(new char[]
+    { 'A', 'C', 'A' }, CodingUtils.decodeCodon(4)));
+    assertTrue(Arrays.equals(new char[]
+    { 'C', 'A', 'A' }, CodingUtils.decodeCodon(16)));
+    assertTrue(Arrays.equals(new char[]
+    { 'G', 'G', 'G' }, CodingUtils.decodeCodon(42)));
+    assertTrue(Arrays.equals(new char[]
+    { 'T', 'T', 'T' }, CodingUtils.decodeCodon(63)));
+  }
+
+  @Test
+  public void testDecodeNucleotide()
+  {
+    assertEquals('A', CodingUtils.decodeNucleotide(0));
+    assertEquals('C', CodingUtils.decodeNucleotide(1));
+    assertEquals('G', CodingUtils.decodeNucleotide(2));
+    assertEquals('T', CodingUtils.decodeNucleotide(3));
+    assertEquals('0', CodingUtils.decodeNucleotide(4));
+  }
+
+  @Test
+  public void testEncodeCodon()
+  {
+    assertTrue(CodingUtils.encodeCodon('Z') < 0);
+    assertEquals(0, CodingUtils.encodeCodon('a'));
+    assertEquals(0, CodingUtils.encodeCodon('A'));
+    assertEquals(1, CodingUtils.encodeCodon('c'));
+    assertEquals(1, CodingUtils.encodeCodon('C'));
+    assertEquals(2, CodingUtils.encodeCodon('g'));
+    assertEquals(2, CodingUtils.encodeCodon('G'));
+    assertEquals(3, CodingUtils.encodeCodon('t'));
+    assertEquals(3, CodingUtils.encodeCodon('T'));
+    assertEquals(3, CodingUtils.encodeCodon('u'));
+    assertEquals(3, CodingUtils.encodeCodon('U'));
+    
+    assertEquals(-1, CodingUtils.encodeCodon(null));
+    assertEquals(0, CodingUtils.encodeCodon(new char[]
+    { 'A', 'A', 'A' }));
+    assertEquals(1, CodingUtils.encodeCodon(new char[]
+    { 'A', 'A', 'C' }));
+    assertEquals(2, CodingUtils.encodeCodon(new char[]
+    { 'A', 'A', 'G' }));
+    assertEquals(3, CodingUtils.encodeCodon(new char[]
+    { 'A', 'A', 'T' }));
+    assertEquals(4, CodingUtils.encodeCodon(new char[]
+    { 'A', 'C', 'A' }));
+    assertEquals(16, CodingUtils.encodeCodon(new char[]
+    { 'C', 'A', 'A' }));
+    assertEquals(42, CodingUtils.encodeCodon(new char[]
+    { 'G', 'G', 'G' }));
+    assertEquals(63, CodingUtils.encodeCodon(new char[]
+    { 'T', 'T', 'T' }));
+  }
+
+}