Esempio n. 1
0
    def test_from_unary_tree(self):
        tables = tskit.TableCollection(sequence_length=1)
        c = tables.nodes.add_row(flags=tskit.NODE_IS_SAMPLE, time=0)
        p = tables.nodes.add_row(time=1)
        tables.edges.add_row(left=0, right=1, parent=p, child=c)

        t = tables.tree_sequence().first()
        with self.assertRaises(ValueError):
            RankTree.from_tsk_tree(t)
Esempio n. 2
0
 def test_all_shapes_roundtrip(self):
     n = 5
     all_rank_tree_shapes = RankTree.all_unlabelled_trees(n)
     all_tsk_tree_shapes = tskit.all_tree_shapes(n)
     for rank_tree, tsk_tree in zip(all_rank_tree_shapes,
                                    all_tsk_tree_shapes):
         assert rank_tree.shape_equal(RankTree.from_tsk_tree(tsk_tree))
Esempio n. 3
0
 def test_to_from_tsk_tree(self):
     for n in range(5):
         for tree in RankTree.all_labelled_trees(n):
             self.assertTrue(tree.is_canonical())
             tsk_tree = tree.to_tsk_tree()
             reconstructed = RankTree.from_tsk_tree(tsk_tree)
             self.assertTrue(tree.is_canonical())
             self.assertEqual(tree, reconstructed)
Esempio n. 4
0
 def test_all_labellings_roundtrip(self):
     n = 5
     rank_tree = RankTree.unrank((comb.num_shapes(n) - 1, 0), n)
     tsk_tree = rank_tree.to_tsk_tree()
     rank_tree_labellings = RankTree.all_labellings(rank_tree)
     tsk_tree_labellings = tskit.all_tree_labellings(tsk_tree)
     for rank_t, tsk_t in zip(rank_tree_labellings, tsk_tree_labellings):
         self.assertEqual(rank_t, RankTree.from_tsk_tree(tsk_t))
Esempio n. 5
0
 def test_to_from_tsk_tree(self):
     for n in range(5):
         for tree in RankTree.all_labelled_trees(n):
             assert tree.is_canonical()
             tsk_tree = tree.to_tsk_tree()
             reconstructed = RankTree.from_tsk_tree(tsk_tree)
             assert tree.is_canonical()
             assert tree == reconstructed
Esempio n. 6
0
 def test_num_labellings(self):
     for n in range(2, 8):
         for tree in RankTree.all_unlabelled_trees(n):
             tree = tree.label_unrank(0)
             tree2 = tree.to_tsk_tree()
             n_labellings = sum(1 for _ in RankTree.all_labellings(tree))
             assert n_labellings == RankTree.from_tsk_tree(
                 tree2).num_labellings()
Esempio n. 7
0
 def test_unranking_is_canonical(self):
     for n in range(7):
         for shape_rank in range(comb.num_shapes(n)):
             for label_rank in range(comb.num_labellings(shape_rank, n)):
                 t = RankTree.shape_unrank(shape_rank, n)
                 self.assertTrue(t.is_canonical())
                 t = t.label_unrank(label_rank)
                 self.assertTrue(t.is_canonical())
                 t = tskit.Tree.unrank((shape_rank, label_rank), n)
                 self.assertTrue(RankTree.from_tsk_tree(t).is_canonical())
Esempio n. 8
0
 def test_generate_trees_roundtrip(self):
     n = 5
     all_rank_trees = RankTree.all_labelled_trees(n)
     all_tsk_trees = tskit.all_trees(n)
     for rank_tree, tsk_tree in zip(all_rank_trees, all_tsk_trees):
         self.assertEqual(rank_tree, RankTree.from_tsk_tree(tsk_tree))