Added abstract class for tree viewer testing, rearranged existing tests
[jalview.git] / test / jalview / ext / archaeopteryx / AptxPhylogenyTreeTest.java
1 package jalview.ext.archaeopteryx;
2
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertTrue;
5
6 import jalview.gui.JvOptionPane;
7
8 import org.forester.archaeopteryx.MainFrame;
9 import org.forester.archaeopteryx.TreePanel;
10 import org.forester.phylogeny.Phylogeny;
11 import org.forester.phylogeny.PhylogenyNode;
12 import org.testng.annotations.BeforeClass;
13 import org.testng.annotations.Test;
14
15 public class AptxPhylogenyTreeTest extends TreeViewTest
16 {
17   final Phylogeny inputTree = new Phylogeny();
18
19   final PhylogenyNode rootNode = new PhylogenyNode("root");
20
21   final PhylogenyNode ancestor1Node = new PhylogenyNode("ancestor 1");
22
23   final PhylogenyNode ancestor2Node = new PhylogenyNode("leaf 2");
24
25   final PhylogenyNode leaf1aNode = new PhylogenyNode("leaf 1a");
26
27   final PhylogenyNode leaf1bNode = new PhylogenyNode("leaf 1b");
28
29   final PhylogenyNode leaf1cNode = new PhylogenyNode("leaf 1c");
30
31   Phylogeny tree;
32
33   TreePanel treePanel;
34
35   MainFrame aptx;
36
37
38   @Override
39   @BeforeClass(alwaysRun = true)
40   public void setUpTree()
41   {
42     ancestor1Node.addAsChild(leaf1aNode);
43     ancestor1Node.addAsChild(leaf1bNode);
44     ancestor1Node.addAsChild(leaf1cNode);
45
46     rootNode.addAsChild(ancestor1Node);
47     rootNode.addAsChild(ancestor2Node);
48
49     leaf1aNode.setDistanceToParent(2);
50     leaf1bNode.setDistanceToParent(3);
51     leaf1cNode.setDistanceToParent(4);
52
53     ancestor1Node.setDistanceToParent(36);
54     ancestor2Node.setDistanceToParent(42);
55
56     inputTree.setRoot(rootNode);
57     inputTree.setRooted(true);
58
59   }
60
61   @BeforeClass(dependsOnMethods = { "setUpJalview", "setUpTree" })
62   public void createTreeView()
63   {
64
65     treeView = ArchaeopteryxInit.createInstance(inputTree);
66     aptx = (MainFrame) treeView; // pretty ugly
67     treePanel = aptx.getMainPanel().getCurrentTreePanel();
68     tree = treePanel.getPhylogeny();
69   }
70
71
72   @BeforeClass(alwaysRun = true)
73   public void setUpJvOptionPane()
74   {
75     JvOptionPane.setInteractiveMode(false);
76     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
77   }
78
79   @Test(groups = "Functional")
80   public void testMainPanelExists()
81   {
82     assertTrue(aptx.getMainPanel() != null);
83   }
84
85   @Test(groups = "Functional")
86   public void testTreePanelExists()
87   {
88     assertTrue(aptx.getMainPanel().getCurrentTreePanel() != null);
89   }
90
91   @Override
92   @Test(groups = "Functional")
93   public void testTreeLoaded()
94   {
95     assertTrue(aptx.getMainPanel().getCurrentTreePanel()
96             .getPhylogeny() != null);
97   }
98
99   @Override
100   @Test(groups = "Functional")
101   public void testChildNodesCount()
102   {
103     assertEquals(tree.getNode("ancestor 1").getNumberOfExternalNodes(), 3);
104
105   }
106
107   @Override
108   @Test(groups = "Functional")
109   public void testChildToParentBranchLength()
110   {
111     assertEquals(tree.getNode("leaf 1a").getDistanceToParent(), 2.0);
112
113   }
114
115   @Override
116   @Test(groups = "Functional")
117   public void testNodeToRootBranchLength()
118   {
119     assertEquals(tree.getNode("leaf 2").getDistanceToParent(), 42.0);
120
121   }
122
123   @Override
124   @Test(groups = "Functional")
125   public void testDistantNodeToRootBranchLength()
126   {
127     assertEquals(tree.getNode("leaf 1c").calculateDistanceToRoot(),
128             4.0 + 36.0);
129
130   }
131
132
133
134
135
136 }