3d025a8455091cf532f229a29057a1fd5325ffcf
[jalview.git] / test / jalview / schemes / DnaCodonTests.java
1 package jalview.schemes;
2
3 import static org.junit.Assert.*;
4
5 import jalview.datamodel.AlignmentI;
6 import jalview.datamodel.ColumnSelection;
7 import jalview.datamodel.Sequence;
8 import jalview.datamodel.SequenceI;
9
10 import java.io.IOException;
11 import java.util.Map;
12 import java.util.Vector;
13
14 import org.junit.AfterClass;
15 import org.junit.BeforeClass;
16 import org.junit.Test;
17
18 public class DnaCodonTests
19 {
20
21   @Test
22   public void testAmbiguityCodeGeneration()
23   {
24     assertTrue(ResidueProperties.ambiguityCodes.size()>0);
25   }
26   @Test
27   public void testAmbiguityCodon() {
28     for (String ac:ResidueProperties.ambiguityCodes.keySet())
29     {
30       assertTrue("Couldn't resolve GGN as glycine codon",ResidueProperties.codonHash2.get("GG"+ac).equals("G"));
31     }
32   }
33   @Test
34   public void regenerateCodonTable() {
35     for (Map.Entry<String, String> codon:ResidueProperties.codonHash2.entrySet())
36     {
37       System.out.println("ResidueProperties.codonHash2.set(\""+codon.getKey()+"\", \""+codon.getValue()+"\");");
38     }
39   }
40   @Test
41   public void checkOldCodonagainstNewCodonTable() {
42     // note - this test will be removed once the old codon table (including Vectors) is removed
43     String additional="",failtrans="",differentTr="";
44     for (Object aa:ResidueProperties.codonHash.keySet())
45     {
46       String amacid=(String) aa;
47       for (Object codons:((Vector)ResidueProperties.codonHash.get(amacid)))
48       {
49         String codon = (String) codons;
50         String trans = ResidueProperties.codonTranslate(codon);
51         String oldtrans = ResidueProperties._codonTranslate(codon);
52         if (trans==null) {
53           additional+="\nOld translation table includes additional codons for "+amacid+" : "+codon;
54         }
55         if (oldtrans==null) {
56           failtrans+=("\nold translation routine failed for old translation entry (aa was "+amacid+" codon was "+codon+")");
57         }
58         if (!oldtrans.equals(trans))
59         {
60           differentTr+=("\nDifferent translation for old and new routines: "+amacid+" "+codon+" => expected "+oldtrans+" and got "+trans);
61         }
62       }
63     }
64     assertTrue(""+additional+"\n"+failtrans+"\n"+differentTr,additional.length()==0 && failtrans.length()==0 && differentTr.length()==0);
65   }
66 }