def testChurchPairProgram1(): def pairify(K): ripl = loadChurchPairProgram(K) return lambda : ripl.infer(100) timing.assertConstantTime(pairify)
def testReferencesProgram1(): def refify(K): ripl = loadReferencesProgram(K) return lambda : ripl.infer(100) timing.assertConstantTime(refify)
def testMVNAsymptotics(): def particulate(num_obs, epsilon): ripl = get_ripl() ripl.load_prelude() ripl.assume("mu", "(multivariate_normal (zeros 2) (id_matrix 2))") # A slow procedure to compute f(m) = m[0:2] * 1.0 ripl.assume( "f", "(lambda (m) (map (lambda (i) (* 1.0 (lookup m i))) (range 0 2)))") ripl.assume("y", "(lambda () (multivariate_normal (f mu) (id_matrix 2)))") for _ in range(num_obs): ripl.observe("(y)", val.vector(scipy.stats.norm.rvs(0, 1.0, 2))) ripl.infer("(mh default all 1)") def do_infer(): ripl.infer("(subsampled_mh default all 10 3 %f false 0 false 10)" % epsilon) return do_infer timing.assertConstantTime(lambda n: particulate(n, 0.5), verbose=True, acceptable_duration=100, desired_sample_ct=40) timing.assertConstantTime(lambda n: particulate(n, 0.1), verbose=True, acceptable_duration=100, desired_sample_ct=40)
def checkBernoulli(maker): raise SkipTest( "AAA does not actually make proposals constant-time, for some reason.") def test_fun(num_obs): ripl = get_ripl() ripl.assume("coin", maker) for _ in range(num_obs): ripl.observe("(coin)", True) return lambda: ripl.infer("(resimulation_mh default one 10)") timing.assertConstantTime(test_fun)