e7324eb4c871d681691204c99d92293f57f353ea
[jalview.git] / test / jalview / ext / archaeopteryx / AptxJalviewSequenceTreeTest.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.analysis.NJTree;
7 import jalview.analysis.TreeBuilder;
8 import jalview.analysis.scoremodels.ScoreModels;
9 import jalview.analysis.scoremodels.SimilarityParams;
10 import jalview.api.analysis.ScoreModelI;
11 import jalview.api.analysis.SimilarityParamsI;
12 import jalview.bin.Jalview;
13 import jalview.datamodel.Alignment;
14 import jalview.datamodel.AlignmentI;
15 import jalview.datamodel.Sequence;
16 import jalview.datamodel.SequenceI;
17 import jalview.gui.AlignViewport;
18
19 import org.forester.archaeopteryx.MainFrame;
20 import org.forester.archaeopteryx.TreePanel;
21 import org.forester.phylogeny.Phylogeny;
22 import org.testng.annotations.BeforeClass;
23 import org.testng.annotations.Test;
24
25 public class AptxJalviewSequenceTreeTest extends TreeViewTest
26 {
27   TreeBuilder jalviewTree;
28
29   TreePanel treePanel;
30
31   Phylogeny tree;
32
33   MainFrame aptx;
34
35   Jalview jalview;
36   
37   @Override
38   @BeforeClass(alwaysRun = true)
39   public void setUpTree()
40   {
41     SequenceI seq1 = new Sequence("Seq1", "ABCDEFGHIJ");
42     SequenceI seq2 = new Sequence("Seq2", "ABCDEFTHIJ");
43     SequenceI seq3 = new Sequence("Seq3", "BCFWDHIJ");
44     SequenceI seq4 = new Sequence("Seq4", "WTHISTHIS");
45
46     AlignmentI al = new Alignment(
47             new SequenceI[]
48             { seq1, seq2, seq3, seq4 });
49     AlignViewport alignViewport = new AlignViewport(al);
50
51     ScoreModelI scoreModel = ScoreModels.getInstance().getBlosum62();
52     SimilarityParamsI similarityParams = new SimilarityParams(true, true,
53             true, false);
54
55     jalviewTree = new NJTree(alignViewport, scoreModel,
56             similarityParams);
57   }
58
59   @Override
60   @BeforeClass(dependsOnMethods = { "setUpTree" })
61   public void createTreeView()
62   {
63     treeView = AptxInit.createInstance(jalviewTree);
64     aptx = (MainFrame) treeView; // still pretty ugly
65
66     treePanel = aptx.getMainPanel().getCurrentTreePanel();
67     tree = treePanel.getPhylogeny();
68
69   }
70
71   @Override
72   public void testTreeLoaded()
73   {
74     assertTrue(tree != null);
75
76   }
77
78   @Override
79   public void testTreeTitle()
80   {
81     assertTrue(tree.getName().contains("Neighbour Joining Using BLOSUM62"));
82
83   }
84
85   @Override
86   public void testChildNodesCount()
87   {
88     assertEquals(
89             tree.getNode("Seq2").getParent().getNumberOfExternalNodes(), 2);
90
91   }
92
93   @Override
94   public void testExistingBranchName()
95   {
96     tree.getNode("Seq4");
97
98   }
99
100   @Override
101   public void testChildToParentBranchLength()
102   {
103     assertEquals(tree.getNode("Seq1").getDistanceToParent(), 5.25);
104
105   }
106
107   @Test(
108     groups = "Functional",
109     expectedExceptions = IllegalArgumentException.class)
110   public void testInvalidBranchName()
111   {
112     tree.getNode("I shouldn't exist");
113
114   }
115
116   @Override
117   public void testNodeToRootBranchLength()
118   {
119     assertEquals(tree.getNode("Seq3").calculateDistanceToRoot(), 19.13);
120
121   }
122
123   @Override
124   public void testDistantNodeToRootBranchLength()
125   {
126     assertEquals(tree.getNode("Seq2").calculateDistanceToRoot(),
127             3.75 + 35.75 + 19.13);
128
129   }
130
131
132
133
134 }