--- /dev/null
+package jalview.ext.archaeopteryx;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.forester.archaeopteryx.MainFrame;
+import org.forester.archaeopteryx.TreePanel;
+import org.forester.phylogeny.Phylogeny;
+import org.forester.phylogeny.PhylogenyNode;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+public class AptxPhylogenyTreeTest extends TreeViewTest
+{
+ final Phylogeny inputTree = new Phylogeny();
+
+ final PhylogenyNode rootNode = new PhylogenyNode("root");
+
+ final PhylogenyNode ancestor1Node = new PhylogenyNode("ancestor 1");
+
+ final PhylogenyNode ancestor2Node = new PhylogenyNode("leaf 2");
+
+ final PhylogenyNode leaf1aNode = new PhylogenyNode("leaf 1a");
+
+ final PhylogenyNode leaf1bNode = new PhylogenyNode("leaf 1b");
+
+ final PhylogenyNode leaf1cNode = new PhylogenyNode("leaf 1c");
+
+ Phylogeny tree;
+
+ TreePanel treePanel;
+
+ MainFrame aptx;
+
+
+ @Override
+ @BeforeClass(alwaysRun = true)
+ public void setUpTree()
+ {
+ ancestor1Node.addAsChild(leaf1aNode);
+ ancestor1Node.addAsChild(leaf1bNode);
+ ancestor1Node.addAsChild(leaf1cNode);
+
+ rootNode.addAsChild(ancestor1Node);
+ rootNode.addAsChild(ancestor2Node);
+
+ leaf1aNode.setDistanceToParent(2);
+ leaf1bNode.setDistanceToParent(3);
+ leaf1cNode.setDistanceToParent(4);
+
+ ancestor1Node.setDistanceToParent(36);
+ ancestor2Node.setDistanceToParent(42);
+
+ inputTree.setName("test");
+ inputTree.setRoot(rootNode);
+ inputTree.setRooted(true);
+
+ }
+
+ @Override
+ @BeforeClass(dependsOnMethods = { "setUpJalview", "setUpTree" })
+ public void createTreeView()
+ {
+ treeView = AptxInit.createUnboundInstance(inputTree);
+ aptx = (MainFrame) treeView; // pretty ugly
+ treePanel = aptx.getMainPanel().getCurrentTreePanel();
+ tree = treePanel.getPhylogeny();
+ }
+
+
+
+ @Test(groups = "Functional")
+ public void testMainPanelExists()
+ {
+ assertTrue(aptx.getMainPanel() != null);
+ }
+
+ @Test(groups = "Functional")
+ public void testTreePanelExists()
+ {
+ assertTrue(treePanel != null);
+ }
+
+ @Override
+ public void testTreeTitle()
+ {
+ assertTrue(tree.getName().equals("test"));
+
+ }
+
+ @Test(
+ groups = "Functional",
+ expectedExceptions = IllegalArgumentException.class)
+ public void testInvalidBranchName()
+ {
+ tree.getNode("I shouldn't exist");
+
+ }
+
+ @Override
+ public void testExistingBranchName()
+ {
+ tree.getNode("leaf 2");
+
+ }
+
+ @Override
+ public void testTreeLoaded()
+ {
+ assertTrue(tree != null);
+ }
+
+ @Override
+ public void testChildNodesCount()
+ {
+ assertEquals(tree.getNode("ancestor 1").getNumberOfExternalNodes(), 3);
+
+ }
+
+ @Override
+ public void testChildToParentBranchLength()
+ {
+ assertEquals(tree.getNode("leaf 1a").getDistanceToParent(), 2.0);
+
+ }
+
+ @Override
+ public void testNodeToRootBranchLength()
+ {
+ assertEquals(tree.getNode("leaf 2").getDistanceToParent(), 42.0);
+
+ }
+
+ @Override
+ public void testDistantNodeToRootBranchLength()
+ {
+ assertEquals(tree.getNode("leaf 1c").calculateDistanceToRoot(),
+ 4.0 + 36.0);
+
+ }
+
+
+
+
+
+
+
+}