def test_lnprob_fixed_real(self): real = np.random.rand() imag = Uniform(*(np.random.rand(2) + np.array([0, 1]))) cp = ComplexPrior(real, imag) self.assertEqual(cp.lnprob(1), -np.inf) self.assertEqual(cp.lnprob(1.0j), imag.lnprob(1)) self.assertEqual(cp.lnprob(1 + 1.0j), imag.lnprob(1))
def test_lnprob_2_priors(self): real = Uniform(*np.random.rand(2) + np.array([0, 1])) imag = Uniform(*np.random.rand(2) + np.array([0, 1])) cp = ComplexPrior(real, imag) self.assertEqual(cp.lnprob(1), -np.inf) self.assertEqual(cp.lnprob(1.0j), -np.inf) self.assertEqual(cp.lnprob(1 + 1.0j), real.lnprob(1) + imag.lnprob(1))
def test_uniform(): u = Uniform(0, 1) assert_equal(u.lnprob(.4), 0) assert_equal(u.lnprob(-.1), -np.inf) assert_equal(u.lnprob(4), -np.inf) assert_equal(u.guess, .5)
def test_improper_prob(self): bound = np.random.rand() u = Uniform(-np.inf, bound) self.assertEqual(u.interval, np.inf) self.assertEqual(u.prob(bound - 1), 0) self.assertEqual(u.lnprob(bound - 1), -1e6)
def test_lnprob(self): bounds = np.random.rand(2) + np.array([0, 1]) u = Uniform(*bounds) self.assertEqual(u.lnprob(0), -np.inf) self.assertEqual(u.lnprob(2), -np.inf) self.assertTrue(np.allclose(u.lnprob(1), -np.log(np.diff(bounds))))