--- /dev/null
+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);
+
+ }
+
+
+
+
+}