Esempio n. 1
0
    def test_shape_unrank(self):
        for n in range(6):
            for rank, tree in enumerate(RankTree.all_unlabelled_trees(n)):
                t = RankTree.shape_unrank(rank, n)
                self.assertTrue(tree.shape_equal(t))

        for n in range(2, 9):
            for shape_rank, tree in enumerate(RankTree.all_unlabelled_trees(n)):
                tsk_tree = tskit.Tree.unrank((shape_rank, 0), n)
                self.assertEqual(shape_rank, tree.shape_rank())
                shape_rank, _ = tsk_tree.rank()
                self.assertEqual(shape_rank, tree.shape_rank())
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_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. 4
0
 def test_label_unrank(self):
     for n in range(7):
         for shape_rank, tree in enumerate(RankTree.all_unlabelled_trees(n)):
             for label_rank, labelled_tree in enumerate(
                 RankTree.all_labellings(tree)
             ):
                 rank = (shape_rank, label_rank)
                 unranked = tree.label_unrank(label_rank)
                 self.assertEqual(labelled_tree.rank(), rank)
                 self.assertEqual(unranked.rank(), rank)
Esempio n. 5
0
    def test_unrank(self):
        for n in range(6):
            for shape_rank, t in enumerate(RankTree.all_unlabelled_trees(n)):
                for label_rank, labelled_tree in enumerate(RankTree.all_labellings(t)):
                    unranked = RankTree.unrank((shape_rank, label_rank), n)
                    self.assertTrue(labelled_tree == unranked)

        # The number of labelled trees gets very big quickly
        for n in range(6, 10):
            for shape_rank in range(comb.num_shapes(n)):
                rank = (shape_rank, 0)
                unranked = RankTree.unrank(rank, n)
                self.assertTrue(rank, unranked.rank())

                rank = (shape_rank, comb.num_labellings(shape_rank, n) - 1)
                unranked = RankTree.unrank(rank, n)
                self.assertTrue(rank, unranked.rank())
Esempio n. 6
0
 def test_label_rank(self):
     for n in range(7):
         for tree in RankTree.all_unlabelled_trees(n):
             for rank, labelled_tree in enumerate(RankTree.all_labellings(tree)):
                 self.assertEqual(labelled_tree.label_rank(), rank)
Esempio n. 7
0
 def test_shape_rank(self):
     for n in range(10):
         for rank, tree in enumerate(RankTree.all_unlabelled_trees(n)):
             self.assertEqual(tree.shape_rank(), rank)
Esempio n. 8
0
 def test_num_shapes(self):
     for i in range(11):
         all_trees = RankTree.all_unlabelled_trees(i)
         self.assertEqual(len(list(all_trees)), comb.num_shapes(i))
Esempio n. 9
0
 def test_shape_rank(self):
     for n in range(10):
         for rank, tree in enumerate(RankTree.all_unlabelled_trees(n)):
             assert tree.shape_rank() == rank
Esempio n. 10
0
 def test_num_shapes(self):
     for i in range(11):
         all_trees = RankTree.all_unlabelled_trees(i)
         assert len(list(all_trees)) == comb.num_shapes(i)