def test_binomial_to_normal(): n, p = 10000, 0.1 mu, sd = binomial_to_normal(n, p) binomial = [binom.cdf(x, n, p) for x in range(0, 10000, 500)] normal = [norm(mu, sd).cdf(x) for x in range(0, 10000, 500)] assert np.allclose(binomial, normal, atol=0.01)
def test_normal_neg_log_pvalue(): sds = range(1, 10) neg_log_pvalue = [normal_neg_log_pvalue(0, sd, 0) for sd in sds] assert np.allclose(neg_log_pvalue, [-log(0.5)] * len(sds))
def _check_subst_probs(subst_probs, msg): assert len(subst_probs) == len(A) for i in range(len(A)): correct = [.7 if i == j else .1 for j in range(len(A))] assert np.allclose(M.subst_probs[i], correct), msg