def test_user_pdf(self): pdf = UserPDF() bounds = PDF(pdf) assert_equal(bounds.valid(1.0), 1) bounds.rvs(1) assert_equal(bounds.logp(1.0), 0)
def test_pdf(self): pdf = PDF(norm) # even if it's really far out it's still a valid value assert_equal(pdf.valid(1003), 1003) # logp assert_equal(pdf.logp(0), norm.logpdf(0)) # examine dist with finite support pdf = PDF(truncnorm(-1, 1)) assert_equal(pdf.logp(-2), -np.inf) assert_equal(pdf.logp(-0.5), truncnorm.logpdf(-0.5, -1, 1)) # obtain a random value of a bounds instance vals = pdf.rvs(size=1000) assert_(np.min(vals) >= -1) assert_(np.min(vals) <= 1) # test a uniform distribution pdf = PDF(uniform(1, 9)) assert_equal(pdf.logp(2), np.log(1.0 / 9.0)) assert_equal(pdf.logp(10.0), np.log(1.0 / 9.0)) # test the invcdf rando = np.random.uniform(size=10) pdf = PDF(truncnorm(-1, 1)) assert_equal(pdf.invcdf(rando), truncnorm.ppf(rando, -1, 1))
def test_pdf(self): pdf = PDF(norm) # even if it's really far out it's still a valid value assert_equal(pdf.valid(1003), 1003) # logp assert_equal(pdf.lnprob(0), norm.logpdf(0)) # examine dist with finite support pdf = PDF(truncnorm(-1, 1), seed=1) assert_equal(pdf.lnprob(-2), -np.inf) assert_equal(pdf.lnprob(-0.5), truncnorm.logpdf(-0.5, -1, 1)) # obtain a random value of a bounds instance vals = pdf.rvs(size=1000) assert_(np.min(vals) >= -1) assert_(np.min(vals) <= 1)