+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1)
+ * Copyright (C) 2015 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 static org.testng.AssertJUnit.assertTrue;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.Sequence;
-import jalview.datamodel.SequenceI;
-
-import java.io.IOException;
import java.util.Map;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.testng.annotations.Test;
public class DnaCodonTests
{
- @BeforeClass
- public static void setUpBeforeClass() throws Exception
+ @Test(groups = { "Functional" })
+ public void testAmbiguityCodeGeneration()
{
+ assertTrue(ResidueProperties.ambiguityCodes.size() > 0);
}
- @AfterClass
- public static void tearDownAfterClass() throws Exception
+ @Test(groups = { "Functional" })
+ 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 testAmbiguityCodeGeneration()
+ @Test(groups = { "Functional" })
+ public void regenerateCodonTable()
{
- assertTrue(ResidueProperties.ambiguityCodes.size()>0);
- }
- @Test
- public void testAmbiguityCodon() {
- for (String ac:ResidueProperties.ambiguityCodes.keySet())
+ 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())
+
+ @Test(groups = { "Functional" })
+ public void checkOldCodonagainstNewCodonTable()
+ {
+ // note - this test will be removed once the old codon table (including
+ // Vectors) is removed
+ String additional = "", failtrans = "", differentTr = "";
+ for (String amacid : ResidueProperties.codonHash.keySet())
{
- System.out.println("ResidueProperties.codonHash2.set(\""+codon.getKey()+"\", \""+codon.getValue()+"\");");
+ for (String codon : ResidueProperties.codonHash.get(amacid))
+ {
+ 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);
}
}