def test_list_with_model_classes(self): instance = [ mock.MockClassx2(1.0, 2.0), mock.ComplexClass(mock.MockClassx2(1.0, 2.0)), ] model = af.AbstractPriorModel.from_instance( instance, model_classes=(mock.ComplexClass, )) assert model.prior_count == 2 assert model[0].prior_count == 0 assert model[1].prior_count == 2
def test_model_mapper(self): instance = af.ModelInstance() instance.simple = mock.MockClassx2(1.0, 2.0) result = af.AbstractPriorModel.from_instance(instance) assert isinstance(result, af.ModelMapper)
def test_override_with_instance(self, simple_model): simple_instance = mock.MockClassx2(1, 2) simple_model.simple = simple_instance assert len(simple_model) == 1 assert simple_model.simple == simple_instance
def test_dict_with_model_classes(self): instance = { "one": mock.MockClassx2(1.0, 2.0), "two": mock.ComplexClass(mock.MockClassx2(1.0, 2.0)), } model = af.AbstractPriorModel.from_instance( instance, model_classes=(mock.ComplexClass, )) assert model.prior_count == 2 assert model[0].prior_count == 0 assert model[1].prior_count == 2 assert model.one.one == 1.0 assert model.one.two == 2.0 assert isinstance(model.two.simple.one, af.Prior) assert isinstance(model.two.simple.two, af.Prior)
def test_dict(self): instance = {"simple": mock.MockClassx2(1.0, 2.0)} prior_model = af.AbstractPriorModel.from_instance(instance) assert isinstance(prior_model, af.CollectionPriorModel) assert isinstance(prior_model.simple, af.PriorModel) assert prior_model.simple.one == 1.0 new_instance = prior_model.instance_for_arguments({}) assert isinstance(new_instance.simple, mock.MockClassx2) prior_model = af.AbstractPriorModel.from_instance(new_instance) assert isinstance(prior_model, af.CollectionPriorModel) assert isinstance(prior_model.simple, af.PriorModel) assert prior_model.simple.one == 1.0
def test_mix_instances_and_models(self): mapper = af.ModelMapper() mapper.list_object = af.PriorModel( mock.ListClass, ls=[mock.MockClassx2, mock.MockClassx2(1, 2)]) assert mapper.prior_count == 2 instance = mapper.instance_from_unit_vector([0.1, 0.2]) assert len(instance.list_object.ls) == 2 assert instance.list_object.ls[0].one == 0.1 assert instance.list_object.ls[0].two == 0.4 assert instance.list_object.ls[1].one == 1 assert instance.list_object.ls[1].two == 2
def test_keyword_arguments(self): prior_model = af.CollectionPriorModel(one=mock.MockClassx2, two=mock.MockClassx2(1, 2)) assert len(prior_model.direct_prior_model_tuples) == 1 assert len(prior_model) == 2 instance = prior_model.instance_for_arguments({ prior_model.one.one: 0.1, prior_model.one.two: 0.2 }) assert instance.one.one == 0.1 assert instance.one.two == 0.2 assert instance.two.one == 1 assert instance.two.two == 2
def test_mix_instances_in_grouped_list_prior_model(self): prior_model = af.CollectionPriorModel( [mock.MockClassx2, mock.MockClassx2(1, 2)]) assert len(prior_model.direct_prior_model_tuples) == 1 assert prior_model.prior_count == 2 mapper = af.ModelMapper() mapper.ls = prior_model instance = mapper.instance_from_unit_vector([0.1, 0.2]) assert len(instance.ls) == 2 assert instance.ls[0].one == 0.1 assert instance.ls[0].two == 0.4 assert instance.ls[1].one == 1 assert instance.ls[1].two == 2 assert len(prior_model.prior_class_dict) == 2
def make_collection(): collection = af.ResultsCollection() model = af.ModelMapper() model.one = af.PriorModel(mock.MockComponents, component=mock.MockClassx2) instance = af.ModelInstance() instance.one = mock.MockComponents(component=mock.MockClassx2()) result = af.MockResult(model=model, instance=instance) model = af.ModelMapper() instance = af.ModelInstance() model.hyper_galaxy = mock.HyperGalaxy instance.hyper_galaxy = mock.HyperGalaxy() hyper_result = af.MockResult(model=model, instance=instance) result.hyper_result = hyper_result collection.add("search name", result) return collection
def test_with_model_classes(self): instance = mock.ComplexClass(mock.MockClassx2(1.0, 2.0)) model = af.AbstractPriorModel.from_instance( instance, model_classes=(mock.MockClassx2, )) assert model.prior_count == 2
def make_complex_prior_model(): instance = mock.ComplexClass(mock.MockClassx2(1.0, 2.0)) return af.AbstractPriorModel.from_instance(instance)
def make_list_prior_model(): instance = [mock.MockClassx2(1.0, 2.0)] return af.AbstractPriorModel.from_instance(instance)