예제 #1
0
파일: test_bounds.py 프로젝트: igresh/refnx
    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)
예제 #2
0
파일: test_bounds.py 프로젝트: igresh/refnx
    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))
예제 #3
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)