/usr/lib/python3/dist-packages/astroML/density_estimation/tests/test_bayesian_blocks.py is in python3-astroml 0.3-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | import numpy as np
from numpy.testing import assert_allclose, assert_
from astroML.density_estimation import bayesian_blocks
def test_single_change_point():
np.random.seed(0)
x = np.concatenate([np.random.random(100),
1 + np.random.random(200)])
bins = bayesian_blocks(x)
assert_(len(bins) == 3)
assert_allclose(bins[1], 1, rtol=0.02)
def test_duplicate_events():
t = np.random.random(100)
t[80:] = t[:20]
x = np.ones_like(t)
x[:20] += 1
bins1 = bayesian_blocks(t)
bins2 = bayesian_blocks(t[:80], x[:80])
assert_allclose(bins1, bins2)
def test_measures_fitness_homoscedastic():
np.random.seed(0)
t = np.linspace(0, 1, 11)
x = np.exp(-0.5 * (t - 0.5) ** 2 / 0.01 ** 2)
sigma = 0.05
x = np.random.normal(x, sigma)
bins = bayesian_blocks(t, x, sigma, fitness='measures')
assert_allclose(bins, [0, 0.45, 0.55, 1])
def test_measures_fitness_heteroscedastic():
np.random.seed(1)
t = np.linspace(0, 1, 11)
x = np.exp(-0.5 * (t - 0.5) ** 2 / 0.01 ** 2)
sigma = 0.02 + 0.02 * np.random.random(len(x))
x = np.random.normal(x, sigma)
bins = bayesian_blocks(t, x, sigma, fitness='measures')
assert_allclose(bins, [0, 0.45, 0.55, 1])
def test_regular_events():
np.random.seed(0)
dt = 0.01
steps = np.concatenate([np.unique(np.random.randint(0, 500, 100)),
np.unique(np.random.randint(500, 1000, 200))])
t = dt * steps
bins = bayesian_blocks(t, fitness='regular_events', dt=dt)
assert_(len(bins) == 3)
assert_allclose(bins[1], 5, rtol=0.05)
|