def test_fit_works_with_scatterer(self): function_result = fit(DATA, SPHERE) function_result.time = None model = make_default_model(SPHERE, None) object_result = model.fit(DATA) object_result.time = None self.assertEqual(function_result, object_result)
def test_fit_works_with_scatterer_and_parameters(self): function_result = fit(DATA, SPHERE, ['n', 'x']) function_result.time = None model = make_default_model(SPHERE, ['n', 'x']) object_result = model.fit(DATA) object_result.time = None self.assertEqual(function_result, object_result)
def test_parameterize_scatterer_spheres(self): sphere = Sphere(r=0.5, n=1, center=[0, 0, 0]) model = make_default_model(Spheres([sphere, sphere], warn=False)) expected = { '0:n', '1:n', '0:r', '1:r', 'alpha', '0:x', '0:y', '0:z', '1:x', '1:y', '1:z' } self.assertEqual(set(model.parameters.keys()), expected)
def test_parameterize_scatterer_spheres_by_given(self): s1 = Sphere(r=0.5, n=1, center=[0, 0, 0]) s2 = Sphere(r=0.5, n=1, center=[1, 1, 1]) model = make_default_model(Spheres([s1, s2]), ['0:r', '1:x']) e1 = Sphere(r=prior.Uniform(0, np.inf, 0.5, '0:r'), n=1, center=[0, 0, 0]) e2 = Sphere(r=0.5, n=1, center=[prior.Uniform(-np.inf, np.inf, 1, '1:x'), 1, 1]) self.assertEqual(model.scatterer, Spheres([e1, e2]))
def test_passing_model_and_parameters_gives_warning(self): model = make_default_model(SPHERE, None) self.assertWarns(UserWarning, fit, DATA, model, ['r', 'y'])
def test_model_takes_precendence_over_parameters(self): model = make_default_model(SPHERE, ['n', 'x']) with warnings.catch_warnings(): warnings.simplefilter('ignore', UserWarning) result = fit(DATA, model, ['r', 'y']) self.assertEqual(result._names, ['n', 'center.0', 'alpha'])
def test_make_default_model_construction(self): model = make_default_model(Sphere(), None) self.assertEqual(model.noise_sd, 1) self.assertTrue(isinstance(model, AlphaModel))
def test_make_default_model_with_parameters(self): model = make_default_model(SPHERE, ['r']) self.assertEqual(set(model.parameters.keys()), {'r', 'alpha'})
def test_make_default_model_with_no_parameters(self): model = make_default_model(SPHERE, None) expected_parameters = SPHERE.parameters expected_parameters['alpha'] = None self.assertEqual(model.parameters.keys(), expected_parameters.keys())
def test_parameterize_scatterer_spheres_minval(self): sphere = Sphere(r=0.5, n=1, center=[0, 0, 0]) model = make_default_model(Spheres([sphere, sphere], warn=False)) self.assertEqual(model.parameters['0:n'].lower_bound, 0) self.assertEqual(model.parameters['1:n'].lower_bound, 0)
def test_make_default_model_with_no_parameters(self): model = make_default_model(SPHERE, None) expected = {'n', 'r', 'alpha', 'x', 'y', 'z'} self.assertEqual(set(model.parameters.keys()), expected)