예제 #1
0
 def test_named_model_variants(self):
     simulation_models = [
         ("hudson", msprime.StandardCoalescent),
         ("smc", msprime.SmcApproxCoalescent),
         ("smc_prime", msprime.SmcPrimeApproxCoalescent),
         ("dtwf", msprime.DiscreteTimeWrightFisher),
         ("wf_ped", msprime.WrightFisherPedigree),
     ]
     for name, model_class in simulation_models:
         model = ancestry._model_factory(model=name.upper())
         assert isinstance(model, model_class)
         model = ancestry._model_factory(model=name.title())
         assert isinstance(model, model_class)
         model = ancestry._model_factory(model=name)
         assert isinstance(model, model_class)
예제 #2
0
 def test_model_instances(self):
     models = [
         msprime.StandardCoalescent(),
         msprime.SmcApproxCoalescent(),
         msprime.SmcPrimeApproxCoalescent(),
         msprime.DiscreteTimeWrightFisher(),
         msprime.WrightFisherPedigree(),
         msprime.SweepGenicSelection(
             position=0.5,
             start_frequency=0.1,
             end_frequency=0.9,
             s=0.01,
             dt=0.01,
         ),
         msprime.BetaCoalescent(alpha=2),
         msprime.DiracCoalescent(psi=1, c=1),
     ]
     for model in models:
         new_model = ancestry._model_factory(model=model)
         assert new_model is model
         assert new_model.__dict__ == model.__dict__
예제 #3
0
 def test_bad_model_names(self):
     for bad_model in ["NOT", "", "MODEL"]:
         with pytest.raises(ValueError):
             ancestry._model_factory(model=bad_model)
예제 #4
0
 def test_bad_models(self):
     for bad_type in [1234, {}]:
         with pytest.raises(TypeError):
             ancestry._model_factory(model=bad_type)
예제 #5
0
 def test_named_parametric_models_fail(self):
     parametric_models = ["beta", "dirac"]
     for name in parametric_models:
         with pytest.raises(ValueError):
             ancestry._model_factory(model=name)