package test.beast.evolution.tree; import beast.evolution.tree.Node; import beast.util.TreeParser; import junit.framework.TestCase; import org.junit.Test; /** * Test class for Node methods */ public class NodeTest extends TestCase { String[] trees = new String[]{ "((A:1.5,B:0.5):1.1,C:3.0):0.0;", "((2:1.5,1:0.5):1.1,3:3.0):0.0;" }; Node[] roots = new Node[trees.length]; @Override public void setUp() throws Exception { for (int i = 0; i < trees.length; i++) { TreeParser newickTree = new TreeParser(trees[i], false, false, true, 1); roots[i] = newickTree.getRoot(); } } @Test public void testToNewick() { String newick = roots[0].toNewick(); assertEquals("((A:1.5,B:0.5):1.1,C:3.0):0.0", newick); newick = roots[0].getChild(0).toNewick(); assertEquals("(A:1.5,B:0.5):1.1", newick); newick = roots[0].getChild(1).toNewick(); assertEquals("C:3.0", newick); newick = roots[1].toNewick(); assertEquals("((2:1.5,1:0.5):1.1,3:3.0):0.0", newick); } @Test public void testRootToString() { // printInternalNodeNumbers=true String newick = roots[0].toString(); assertEquals("((0:1.5,1:0.5)3:1.1,2:3.0)4:0.0", newick); newick = roots[0].getChild(0).toString(); assertEquals("(0:1.5,1:0.5)3:1.1", newick); newick = roots[0].getChild(1).toString(); assertEquals("2:3.0", newick); newick = roots[1].toString(); assertEquals("((1:1.5,0:0.5)3:1.1,2:3.0)4:0.0", newick); } @Test public void testBinarySortedNewickTest() { String newick = "((D:5.0,C:4.0):6.0,(A:1.0,B:2.0):3.0):0.0;"; TreeParser treeParser = new TreeParser(); treeParser.initByName("IsLabelledNewick", true, "newick", newick, "adjustTipHeights", false); String sortedNewick = treeParser.getRoot().toSortedNewick(new int[1], false); String goal = "((1:1.0,2:2.0):3.0,(3:4.0,4:5.0):6.0):0.0"; assertEquals(goal.split(";")[0], sortedNewick); } @Test public void testNonBinarySortedNewickTest() { String newick = "((A:1.0,B:1.0,C:1.0):1.0,(D:1.0,E:1.0,F:1.0,G:1.0):1.0):0.0;"; TreeParser treeParser = new TreeParser(); treeParser.initByName("IsLabelledNewick", true, "newick", newick, "adjustTipHeights", false, "binarizeMultifurcations", false); String sortedNewick = treeParser.getRoot().toSortedNewick(new int[1], false); String goal = "((1:1.0,2:1.0,3:1.0):1.0,(4:1.0,5:1.0,6:1.0,7:1.0):1.0):0.0"; assertEquals(goal.split(";")[0], sortedNewick); } }