def test_find_noise(): noise = 0.5 s = Sphere(n=prior.Uniform(1.5, 1.7), r=2, center=[1, 2, 3]) data_base = detector_grid(10, spacing=0.5) data_noise = update_metadata(data_base, noise_sd=noise) model_u = AlphaModel(s, alpha=prior.Uniform(0.7, 0.9)) model_g = AlphaModel(s, alpha=prior.Gaussian(0.8, 0.1)) pars = {'n': 1.6, 'alpha': 0.8} assert_equal(model_u._find_noise(pars, data_noise), noise) assert_equal(model_g._find_noise(pars, data_noise), noise) assert_equal(model_u._find_noise(pars, data_base), 1) assert_raises(MissingParameter, model_g._find_noise, pars, data_base) pars.update({'noise_sd': noise}) assert_equal(model_g._find_noise(pars, data_base), noise)
def test_no_noise_if_all_uniform(self): sphere = Sphere(r=prior.Uniform(0, 1), n=prior.Uniform(1, 2)) model = AlphaModel(sphere) schema = detector_grid(2, 2) found_noise = model._find_noise([0.5, 0.5], schema) self.assertEqual(found_noise, 1)
def test_noise_from_schema(self): model = AlphaModel(Sphere(), noise_sd=None) schema = detector_grid(2, 2) schema.attrs['noise_sd'] = 0.5 found_noise = model._find_noise([], schema) self.assertEqual(found_noise, 0.5)
def test_model_noise_takes_precedence(self): model = AlphaModel(Sphere(), noise_sd=0.8) schema = detector_grid(2, 2) schema.attrs['noise_sd'] = 0.5 found_noise = model._find_noise([], schema) self.assertEqual(found_noise, 0.8)
def test_reads_noise_map(self): noise = {'red': 0.5, 'green': prior.Uniform(0, 1)} model = AlphaModel(Sphere(), noise_sd=noise) found_noise = model._find_noise([0.7], None) self.assertEqual(found_noise, {'red': 0.5, 'green': 0.7})