JAL-1027 check that ResidueProperties.codonHash2 is actually identical to the codon...
authorJim Procter <jprocter@compbio.dundee.ac.uk>
Mon, 17 Jun 2013 16:45:03 +0000 (17:45 +0100)
committerJim Procter <jprocter@compbio.dundee.ac.uk>
Mon, 17 Jun 2013 16:45:03 +0000 (17:45 +0100)
test/jalview/schemes/DnaCodonTests.java

index 1d5343e..3d025a8 100644 (file)
@@ -9,6 +9,7 @@ import jalview.datamodel.SequenceI;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Vector;
 
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -36,4 +37,30 @@ public class DnaCodonTests
       System.out.println("ResidueProperties.codonHash2.set(\""+codon.getKey()+"\", \""+codon.getValue()+"\");");
     }
   }
+  @Test
+  public void checkOldCodonagainstNewCodonTable() {
+    // note - this test will be removed once the old codon table (including Vectors) is removed
+    String additional="",failtrans="",differentTr="";
+    for (Object aa:ResidueProperties.codonHash.keySet())
+    {
+      String amacid=(String) aa;
+      for (Object codons:((Vector)ResidueProperties.codonHash.get(amacid)))
+      {
+        String codon = (String) codons;
+        String trans = ResidueProperties.codonTranslate(codon);
+        String oldtrans = ResidueProperties._codonTranslate(codon);
+        if (trans==null) {
+          additional+="\nOld translation table includes additional codons for "+amacid+" : "+codon;
+        }
+        if (oldtrans==null) {
+          failtrans+=("\nold translation routine failed for old translation entry (aa was "+amacid+" codon was "+codon+")");
+        }
+        if (!oldtrans.equals(trans))
+        {
+          differentTr+=("\nDifferent translation for old and new routines: "+amacid+" "+codon+" => expected "+oldtrans+" and got "+trans);
+        }
+      }
+    }
+    assertTrue(""+additional+"\n"+failtrans+"\n"+differentTr,additional.length()==0 && failtrans.length()==0 && differentTr.length()==0);
+  }
 }