示例#1
0
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)
示例#2
0
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)
示例#3
0
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)