X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FCodingUtilsTest.java;fp=test%2Fjalview%2Fanalysis%2FCodingUtilsTest.java;h=0f235fb8e0130143127d1f27e1b4dc8381e05c58;hb=bfb4b56a77352694f4bc445ec31851bbdcdce140;hp=0000000000000000000000000000000000000000;hpb=286715d8408510556366a454a748daf8f60444f1;p=jalview.git diff --git a/test/jalview/analysis/CodingUtilsTest.java b/test/jalview/analysis/CodingUtilsTest.java new file mode 100644 index 0000000..0f235fb --- /dev/null +++ b/test/jalview/analysis/CodingUtilsTest.java @@ -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' })); + } + +}