/*
* 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.*;
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 java.util.Vector;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class DnaCodonTests
{
@Test
public void testAmbiguityCodeGeneration()
{
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 regenerateCodonTable()
{
for (Map.Entry codon : ResidueProperties.codonHash2
.entrySet())
{
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);
}
}