def test_user_pdf(self): pdf = UserPDF() bounds = PDF(pdf) assert_equal(bounds.valid(1.), 1) bounds.rvs(1) assert_equal(bounds.lnprob(1.), 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.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)