コード例 #1
0
 def test_different_lengths_error(self):
     ts1 = msprime.simulate(2, length=10, random_seed=1)
     ts2 = msprime.simulate(2, length=11, random_seed=1)
     with pytest.raises(ValueError):
         list(tsinfer.tree_pairs(ts1, ts2))
     with pytest.raises(ValueError):
         list(tsinfer.tree_pairs(ts2, ts1))
コード例 #2
0
 def test_same_ts(self):
     n = 15
     ts = msprime.simulate(n, recombination_rate=10, random_seed=10)
     self.assertGreater(ts.num_trees, 1)
     count = 0
     for (left, right), tree1, tree2 in tsinfer.tree_pairs(ts, ts):
         self.assertEqual((left, right), tree1.interval)
         self.assertEqual(tree1.interval, tree2.interval)
         self.assertEqual(tree1.parent_dict, tree2.parent_dict)
         count += 1
     self.assertEqual(count, ts.num_trees)
コード例 #3
0
 def test_same_ts(self):
     n = 15
     ts = msprime.simulate(n, recombination_rate=10, random_seed=10)
     assert ts.num_trees > 1
     count = 0
     for (left, right), tree1, tree2 in tsinfer.tree_pairs(ts, ts):
         assert (left, right) == tree1.interval
         assert tree1.interval == tree2.interval
         assert tree1.parent_dict == tree2.parent_dict
         count += 1
     assert count == ts.num_trees
コード例 #4
0
 def test_single_tree(self):
     n = 10
     ts1 = msprime.simulate(n, random_seed=10)
     ts2 = msprime.simulate(n, random_seed=10)
     self.assertEqual(ts1.num_trees, 1)
     self.assertEqual(ts2.num_trees, 1)
     count = 0
     for (left, right), tree1, tree2 in tsinfer.tree_pairs(ts1, ts2):
         self.assertEqual((0, 1), tree1.interval)
         self.assertEqual((0, 1), tree2.interval)
         self.assertIs(tree1.tree_sequence, ts1)
         self.assertIs(tree2.tree_sequence, ts2)
         count += 1
     self.assertEqual(count, 1)
コード例 #5
0
 def test_single_tree(self):
     n = 10
     ts1 = msprime.simulate(n, random_seed=10)
     ts2 = msprime.simulate(n, random_seed=10)
     assert ts1.num_trees == 1
     assert ts2.num_trees == 1
     count = 0
     for (_left, _right), tree1, tree2 in tsinfer.tree_pairs(ts1, ts2):
         assert (0, 1) == tree1.interval
         assert (0, 1) == tree2.interval
         assert tree1.tree_sequence is ts1
         assert tree2.tree_sequence is ts2
         count += 1
     assert count == 1
コード例 #6
0
 def test_many_trees(self):
     ts1 = msprime.simulate(20, recombination_rate=20, random_seed=10)
     ts2 = msprime.simulate(30, recombination_rate=10, random_seed=10)
     self.assertGreater(ts1.num_trees, 1)
     self.assertGreater(ts2.num_trees, 1)
     breakpoints = [0]
     for (left, right), tree2, tree1 in tsinfer.tree_pairs(ts2, ts1):
         breakpoints.append(right)
         self.assertGreaterEqual(left, tree1.interval[0])
         self.assertGreaterEqual(left, tree2.interval[0])
         self.assertLessEqual(right, tree1.interval[1])
         self.assertLessEqual(right, tree2.interval[1])
         self.assertIs(tree1.tree_sequence, ts1)
         self.assertIs(tree2.tree_sequence, ts2)
     all_breakpoints = set(ts1.breakpoints()) | set(ts2.breakpoints())
     self.assertEqual(breakpoints, sorted(all_breakpoints))
コード例 #7
0
 def test_many_trees(self):
     ts1 = msprime.simulate(20, recombination_rate=20, random_seed=10)
     ts2 = msprime.simulate(30, recombination_rate=10, random_seed=10)
     assert ts1.num_trees > 1
     assert ts2.num_trees > 1
     breakpoints = [0]
     for (left, right), tree2, tree1 in tsinfer.tree_pairs(ts2, ts1):
         breakpoints.append(right)
         assert left >= tree1.interval[0]
         assert left >= tree2.interval[0]
         assert right <= tree1.interval[1]
         assert right <= tree2.interval[1]
         assert tree1.tree_sequence is ts1
         assert tree2.tree_sequence is ts2
     all_breakpoints = set(ts1.breakpoints()) | set(ts2.breakpoints())
     assert breakpoints == sorted(all_breakpoints)
コード例 #8
0
 def test_many_trees_single_tree(self):
     n = 10
     ts1 = msprime.simulate(n, random_seed=10)
     ts2 = msprime.simulate(n, recombination_rate=10, random_seed=10)
     self.assertEqual(ts1.num_trees, 1)
     self.assertGreater(ts2.num_trees, 1)
     trees2 = ts2.trees()
     count = 0
     for (left, right), tree2, tree1 in tsinfer.tree_pairs(ts2, ts1):
         self.assertEqual((0, 1), tree1.interval)
         self.assertIs(tree1.tree_sequence, ts1)
         self.assertIs(tree2.tree_sequence, ts2)
         tree2p = next(trees2, None)
         if tree2p is not None:
             self.assertEqual(tree2.interval, tree2p.interval)
             self.assertEqual(tree2.parent_dict, tree2p.parent_dict)
         count += 1
     self.assertEqual(count, ts2.num_trees)
コード例 #9
0
 def test_many_trees_single_tree(self):
     n = 10
     ts1 = msprime.simulate(n, random_seed=10)
     ts2 = msprime.simulate(n, recombination_rate=10, random_seed=10)
     assert ts1.num_trees == 1
     assert ts2.num_trees > 1
     trees2 = ts2.trees()
     count = 0
     for (_left, _right), tree2, tree1 in tsinfer.tree_pairs(ts2, ts1):
         assert (0, 1) == tree1.interval
         assert tree1.tree_sequence is ts1
         assert tree2.tree_sequence is ts2
         tree2p = next(trees2, None)
         if tree2p is not None:
             assert tree2.interval == tree2p.interval
             assert tree2.parent_dict == tree2p.parent_dict
         count += 1
     assert count == ts2.num_trees
コード例 #10
0
 def test_different_lengths_error(self):
     ts1 = msprime.simulate(2, length=10, random_seed=1)
     ts2 = msprime.simulate(2, length=11, random_seed=1)
     self.assertRaises(ValueError, list, tsinfer.tree_pairs(ts1, ts2))
     self.assertRaises(ValueError, list, tsinfer.tree_pairs(ts2, ts1))