+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.schemes;
import static org.junit.Assert.*;
import java.io.IOException;
import java.util.Map;
+import java.util.Vector;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@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<String, String> 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<String, String> 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);
}
}