package jalview.ext.archaeopteryx; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import jalview.analysis.NJTree; import jalview.analysis.TreeBuilder; import jalview.analysis.scoremodels.ScoreModels; import jalview.analysis.scoremodels.SimilarityParams; import jalview.api.analysis.ScoreModelI; import jalview.api.analysis.SimilarityParamsI; import jalview.bin.Jalview; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; import jalview.gui.AlignViewport; import org.forester.archaeopteryx.MainFrame; import org.forester.archaeopteryx.TreePanel; import org.forester.phylogeny.Phylogeny; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class AptxJalviewSequenceTreeTest extends TreeViewTest { TreeBuilder jalviewTree; TreePanel treePanel; Phylogeny tree; MainFrame aptx; Jalview jalview; @Override @BeforeClass(alwaysRun = true) public void setUpTree() { SequenceI seq1 = new Sequence("Seq1", "ABCDEFGHIJ"); SequenceI seq2 = new Sequence("Seq2", "ABCDEFTHIJ"); SequenceI seq3 = new Sequence("Seq3", "BCFWDHIJ"); SequenceI seq4 = new Sequence("Seq4", "WTHISTHIS"); AlignmentI al = new Alignment( new SequenceI[] { seq1, seq2, seq3, seq4 }); AlignViewport alignViewport = new AlignViewport(al); ScoreModelI scoreModel = ScoreModels.getInstance().getBlosum62(); SimilarityParamsI similarityParams = new SimilarityParams(true, true, true, false); jalviewTree = new NJTree(alignViewport, scoreModel, similarityParams); } @Override @BeforeClass(dependsOnMethods = { "setUpTree" }) public void createTreeView() { treeView = AptxInit.createInstance(jalviewTree); aptx = (MainFrame) treeView; // still pretty ugly treePanel = aptx.getMainPanel().getCurrentTreePanel(); tree = treePanel.getPhylogeny(); } @Override public void testTreeLoaded() { assertTrue(tree != null); } @Override public void testTreeTitle() { assertTrue(tree.getName().contains("Neighbour Joining Using BLOSUM62")); } @Override public void testChildNodesCount() { assertEquals( tree.getNode("Seq2").getParent().getNumberOfExternalNodes(), 2); } @Override public void testExistingBranchName() { tree.getNode("Seq4"); } @Override public void testChildToParentBranchLength() { assertEquals(tree.getNode("Seq1").getDistanceToParent(), 5.25); } @Test( groups = "Functional", expectedExceptions = IllegalArgumentException.class) public void testInvalidBranchName() { tree.getNode("I shouldn't exist"); } @Override public void testNodeToRootBranchLength() { assertEquals(tree.getNode("Seq3").calculateDistanceToRoot(), 19.13); } @Override public void testDistantNodeToRootBranchLength() { assertEquals(tree.getNode("Seq2").calculateDistanceToRoot(), 3.75 + 35.75 + 19.13); } }