--- /dev/null
+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' }));
+ }
+
+}