X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fschemes%2FDnaCodonTests.java;h=d8529f8178f2397ee434ccf46c92c49e60fc6008;hb=2fec1f5de1ec639826d84b7e20c19b37c2a98d55;hp=1d5343ec492ca9557f1732a5462aeb859b53d11a;hpb=1aee68dc9e52c860544b62d9c4933ac11a0e5715;p=jalview.git diff --git a/test/jalview/schemes/DnaCodonTests.java b/test/jalview/schemes/DnaCodonTests.java index 1d5343e..d8529f8 100644 --- a/test/jalview/schemes/DnaCodonTests.java +++ b/test/jalview/schemes/DnaCodonTests.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) + * Copyright (C) 2014 The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.schemes; import static org.junit.Assert.*; @@ -9,6 +29,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; @@ -20,20 +41,69 @@ public class DnaCodonTests @Test public void testAmbiguityCodeGeneration() { - assertTrue(ResidueProperties.ambiguityCodes.size()>0); + assertTrue(ResidueProperties.ambiguityCodes.size() > 0); } + + @Test + public void testAmbiguityCodon() + { + for (String ac : ResidueProperties.ambiguityCodes.keySet()) + { + assertTrue("Couldn't resolve GGN as glycine codon", + ResidueProperties.codonHash2.get("GG" + ac).equals("G")); + } + } + @Test - public void testAmbiguityCodon() { - for (String ac:ResidueProperties.ambiguityCodes.keySet()) + public void regenerateCodonTable() + { + for (Map.Entry codon : ResidueProperties.codonHash2 + .entrySet()) { - assertTrue("Couldn't resolve GGN as glycine codon",ResidueProperties.codonHash2.get("GG"+ac).equals("G")); + System.out.println("ResidueProperties.codonHash2.set(\"" + + codon.getKey() + "\", \"" + codon.getValue() + "\");"); } } + @Test - public void regenerateCodonTable() { - for (Map.Entry codon:ResidueProperties.codonHash2.entrySet()) + 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()) { - System.out.println("ResidueProperties.codonHash2.set(\""+codon.getKey()+"\", \""+codon.getValue()+"\");"); + 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); } }