class TestTree(unittest.TestCase): """tests for a single tree-type""" def setUp(self): self.name = 'small tree - ' self.otu_names = ['NineBande', 'Mouse', 'HowlerMon', 'DogFaced'] self.otu_names.sort() self.newick = '(((Human,HowlerMon),Mouse),NineBande,DogFaced);' self.newick_sorted = '(DogFaced,((HowlerMon,Human),Mouse),NineBande);' self.newick_reduced = '((HowlerMon,Mouse),NineBande,DogFaced);' self.tree = LoadTree(treestring=self.newick) def test_sorttree(self): """testing (well, exercising at least) treesort""" new_tree = self.tree.sorted() if hasattr(self, 'newick_sorted'): self.assertEqual(self.newick_sorted, new_tree.getNewick(with_distances=0)) def test_getsubtree(self): """testing getting a subtree""" subtree = self.tree.unrooted().getSubTree(self.otu_names) new_tree = LoadTree(treestring=self.newick_reduced).unrooted() # check we get the same names self.assertEqual(*[len(t.Children) for t in (subtree, new_tree)]) self.assertEqual(str(subtree), str(new_tree)) def test_ascii(self): self.tree.asciiArt() # unlabeled internal node tr = DndParser("(B:0.2,(C:0.3,D:0.4):0.6)F;") tr.asciiArt(show_internal=True, compact=False) tr.asciiArt(show_internal=True, compact=True) tr.asciiArt(show_internal=False, compact=False)
class TestTree(unittest.TestCase): """tests for a single tree-type""" def setUp(self): self.name = 'small tree - ' self.otu_names = ['NineBande', 'Mouse', 'HowlerMon', 'DogFaced'] self.otu_names.sort() self.newick = '(((Human,HowlerMon),Mouse),NineBande,DogFaced);' self.newick_sorted = '(DogFaced,((HowlerMon,Human),Mouse),NineBande);' self.newick_reduced = '((HowlerMon,Mouse),NineBande,DogFaced);' self.tree = LoadTree(treestring = self.newick) def test_sorttree(self): """testing (well, exercising at least) treesort""" new_tree = self.tree.sorted() if hasattr(self, 'newick_sorted'): self.assertEqual( self.newick_sorted, new_tree.getNewick(with_distances=0)) def test_getsubtree(self): """testing getting a subtree""" subtree = self.tree.unrooted().getSubTree(self.otu_names) new_tree = LoadTree(treestring = self.newick_reduced).unrooted() # check we get the same names self.assertEqual(*[len(t.Children) for t in (subtree,new_tree)]) self.assertEqual(str(subtree), str(new_tree)) def test_ascii(self): self.tree.asciiArt() # unlabeled internal node tr = DndParser("(B:0.2,(C:0.3,D:0.4):0.6)F;") tr.asciiArt(show_internal=True, compact=False) tr.asciiArt(show_internal=True, compact=True) tr.asciiArt(show_internal=False, compact=False)
def test_rootswaps(self): """testing (well, exercising at least), unrooted""" new_tree = LoadTree(treestring="((a,b),(c,d))") new_tree = new_tree.unrooted() self.assert_(len(new_tree.Children) > 2, 'not unrooted right')