import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.Annotation;
+import jalview.datamodel.HiddenMarkovModel;
import jalview.datamodel.ProfileI;
import jalview.datamodel.ProfilesI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.FileParse;
+import jalview.io.HMMFile;
+import java.io.IOException;
+import java.net.MalformedURLException;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AAFrequencyTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testCalculate_noProfile()
{
assertEquals("T 75%", ann.description);
assertEquals("T", ann.displayCharacter);
}
+
+ @Test(groups = { "Functional" })
+ public void testGetHMMProfileFor()
+ throws MalformedURLException, IOException
+ {
+
+ HMMFile hmmFile = new HMMFile(new FileParse(
+ "test/jalview/io/test_MADE1_hmm.txt", DataSourceType.FILE));
+ hmmFile.parse();
+ HiddenMarkovModel hmm = hmmFile.getHMM();
+ AlignmentAnnotation aa = hmm.createAnnotation(80);
+ aa.setHMM(hmm);
+
+ int[] expected = { 0, 4, 100, 'T', 71, 'C', 12, 'G', 9, 'A', 9 };
+ int[] actual = AAFrequency.getHMMProfileFor(aa, 17, false);
+ for (int i = 0; i < actual.length; i++)
+ {
+ if (i == 2)
+ {
+ assertEquals(actual[i], expected[i], 5);
+ }
+ else
+ {
+ assertEquals(actual[i], expected[i], 1);
+ }
+ }
+
+ int[] expected2 = { 0, 4, 85, 'A', 85, 'C', 0, 'G', 0, 'T', 0 };
+ int[] actual2 = AAFrequency.getHMMProfileFor(aa, 2, true);
+ for (int i = 0; i < actual.length; i++)
+ {
+ if (i == 2)
+ {
+ assertEquals(actual[i], expected[i], 5);
+ }
+ else
+ {
+ assertEquals(actual[i], expected[i], 1);
+ }
+ }
+ }
}