예제 #1
0
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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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})