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)
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))
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])
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]))
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]))
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])
def test_empty(self): self.assertTrue(models.population_configurations_equal([], []))