Merge branch 'kjvdh/features/PhylogenyViewer_tabbedsupport' into merge/2_11_2/kjvdh...
[jalview.git] / test / jalview / ext / archaeopteryx / AptxJalviewSequenceTreeTest.java
diff --git a/test/jalview/ext/archaeopteryx/AptxJalviewSequenceTreeTest.java b/test/jalview/ext/archaeopteryx/AptxJalviewSequenceTreeTest.java
new file mode 100644 (file)
index 0000000..e7324eb
--- /dev/null
@@ -0,0 +1,134 @@
+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);
+
+  }
+
+
+
+
+}