Exemple #1
0
 def test_growth_rates(self):
     test_rates = [
         ([1], [1.001]),
         ([-1.001], [-1]),
         ([1, 2, 3], [2, 3, 4]),
         (np.arange(1, 100), np.arange(1, 100) - 0.001),
     ]
     for rates1, rates2 in test_rates:
         pc_list1 = [
             msprime.PopulationConfiguration(initial_size=1,
                                             growth_rate=rate)
             for rate in rates1
         ]
         pc_list2 = [
             msprime.PopulationConfiguration(initial_size=1,
                                             growth_rate=rate)
             for rate in rates2
         ]
         self.assertFalse(
             models.population_configurations_equal(pc_list1, pc_list2))
         self.assertFalse(
             models.population_configurations_equal(pc_list2, pc_list1))
         self.assertTrue(
             models.population_configurations_equal(pc_list1, pc_list1))
         self.assertTrue(
             models.population_configurations_equal(pc_list2, pc_list2))
         with self.assertRaises(models.UnequalModelsError):
             models.verify_population_configurations_equal(
                 pc_list2, pc_list1)
Exemple #2
0
    def test_initial_sizes(self):
        test_sizes = [
            ([1], [1.001]),
            ([1.001], [1]),
            ([1, 2, 3], [2, 3, 4]),
            (np.arange(1, 100), np.arange(1, 100) - 0.001),
        ]

        for sizes1, sizes2 in test_sizes:
            pc_list1 = [
                msprime.PopulationConfiguration(initial_size=size)
                for size in sizes1
            ]
            pc_list2 = [
                msprime.PopulationConfiguration(initial_size=size)
                for size in sizes2
            ]
            self.assertFalse(
                models.population_configurations_equal(pc_list1, pc_list2))
            self.assertFalse(
                models.population_configurations_equal(pc_list2, pc_list1))
            self.assertTrue(
                models.population_configurations_equal(pc_list1, pc_list1))
            self.assertTrue(
                models.population_configurations_equal(pc_list2, pc_list2))
Exemple #3
0
 def test_different_lengths(self):
     pc = msprime.PopulationConfiguration(initial_size=1)
     self.assertFalse(models.population_configurations_equal([], [pc]))
     self.assertFalse(models.population_configurations_equal([pc], []))
     self.assertFalse(models.population_configurations_equal([pc, pc], [pc]))
     self.assertFalse(models.population_configurations_equal([pc], [pc, pc]))
     self.assertTrue(models.population_configurations_equal([pc], [pc]))
     with self.assertRaises(models.UnequalModelsError):
         models.verify_population_configurations_equal([pc], [pc, pc])
Exemple #4
0
 def test_no_initial_size_error(self):
     pc1 = msprime.PopulationConfiguration()
     pc2 = msprime.PopulationConfiguration(initial_size=1)
     with self.assertRaises(ValueError):
         self.assertTrue(models.population_configurations_equal([pc1], [pc1]))
     with self.assertRaises(ValueError):
         self.assertTrue(models.population_configurations_equal([pc1], [pc2]))
     with self.assertRaises(ValueError):
         self.assertTrue(models.population_configurations_equal([pc2], [pc1]))
Exemple #5
0
 def test_different_lengths(self):
     pc = msprime.PopulationConfiguration(initial_size=1)
     self.assertFalse(models.population_configurations_equal([], [pc]))
     self.assertFalse(models.population_configurations_equal([pc], []))
     self.assertFalse(models.population_configurations_equal([pc, pc],
                                                             [pc]))
     self.assertFalse(models.population_configurations_equal([pc],
                                                             [pc, pc]))
     self.assertTrue(models.population_configurations_equal([pc], [pc]))
Exemple #6
0
 def test_sample_size_error(self):
     pc1 = msprime.PopulationConfiguration(sample_size=2, initial_size=1)
     pc2 = msprime.PopulationConfiguration(initial_size=1)
     with self.assertRaises(ValueError):
         models.population_configurations_equal([pc1], [pc1])
     with self.assertRaises(ValueError):
         models.population_configurations_equal([pc1], [pc2])
     with self.assertRaises(ValueError):
         models.population_configurations_equal([pc2], [pc1])
Exemple #7
0
 def test_empty(self):
     self.assertTrue(models.population_configurations_equal([], []))