def test_ns_output(): np.random.seed(3) pc = NestedSamples(root='./tests/example_data/pc') for beta in [1., 0., 0.5]: pc.beta = beta n = 1000 PC = pc.ns_output(n) assert abs(pc.logZ() - PC['logZ'].mean()) < PC['logZ'].std() assert PC['d'].mean() < 5 assert PC.cov()['D']['logZ'] < 0 assert(abs(PC.logZ.mean() - pc.logZ()) < PC.logZ.std() * n**0.5 * 2) assert(abs(PC.D.mean() - pc.D()) < PC.D.std() * n**0.5 * 2) assert(abs(PC.d.mean() - pc.d()) < PC.d.std() * n**0.5 * 2) n = 100 assert(ks_2samp(pc.logZ(n), PC.logZ).pvalue > 0.05) assert(ks_2samp(pc.D(n), PC.D).pvalue > 0.05) assert(ks_2samp(pc.d(n), PC.d).pvalue > 0.05) assert abs(pc.set_beta(0.0).logZ()) < 1e-2 assert pc.set_beta(0.9).logZ() < pc.set_beta(1.0).logZ() assert_array_almost_equal(pc.set_beta(1).weights, pc.set_beta(1).weights) assert_array_almost_equal(pc.set_beta(.5).weights, pc.set_beta(.5).weights) assert_array_equal(pc.set_beta(0).weights, pc.set_beta(0).weights)
def test_beta(): pc = NestedSamples(root="./tests/example_data/pc") weights = pc.weights assert_array_equal(weights, pc.weights) assert_array_equal(pc.index.get_level_values('weights'), pc.weights) assert pc.beta == 1 prior = pc.set_beta(0) assert prior.beta == 0 assert_array_equal(prior.index.get_level_values('weights'), prior.weights) assert pc.beta == 1 assert_array_equal(pc.index.get_level_values('weights'), pc.weights) assert_array_almost_equal(sorted(prior.weights, reverse=True), prior.weights) for beta in np.linspace(0, 2, 10): pc.set_beta(beta, inplace=True) assert pc.beta == beta assert_array_equal(pc.index.get_level_values('weights'), pc.weights) assert not np.array_equal(pc.index.get_level_values('weights'), weights) for beta in np.linspace(0, 2, 10): pc.beta = beta assert pc.beta == beta assert_array_equal(pc.index.get_level_values('weights'), pc.weights) assert not np.array_equal(pc.index.get_level_values('weights'), weights)
def test_beta(): pc = NestedSamples(root="./tests/example_data/pc") weight = pc.weight assert_array_equal(pc['weight'], pc.weight) assert pc.beta == 1 prior = pc.set_beta(0) assert prior.beta == 0 assert_array_equal(prior['weight'], prior.weight) assert pc.beta == 1 assert_array_equal(pc['weight'], pc.weight) assert_array_almost_equal(sorted(prior.weight, reverse=True), prior.weight) for beta in numpy.linspace(0, 2, 10): pc.set_beta(beta, inplace=True) assert pc.beta == beta assert_array_equal(pc['weight'], pc.weight) assert not numpy.array_equal(pc['weight'], weight) for beta in numpy.linspace(0, 2, 10): pc.beta = beta assert pc.beta == beta assert_array_equal(pc['weight'], pc.weight) assert not numpy.array_equal(pc['weight'], weight)