Exemple #1
0
def test_distributions_uniform_freeze_fit():
	d = UniformDistribution(0, 10)
	d.freeze()
	d.fit([0, 1, 1, 2, 3, 2, 1, 2, 2])

	assert_array_almost_equal(d.parameters, [0, 10])
	assert_array_equal(d.summaries, [inf, -inf, 0])
Exemple #2
0
def test_distributions_uniform_freeze_thaw_fit():
	d = UniformDistribution(0, 10)
	d.freeze()
	d.thaw()

	d.fit([5, 4, 5, 4, 6, 5, 6, 5, 4, 6, 5, 4])
	assert_array_equal(d.parameters, [4, 6])
Exemple #3
0
def test_distributions_uniform_weighted_fit():
	d = UniformDistribution(0, 10)

	d.fit([0, 2, 3, 2, 100], weights=[0, 5, 2, 3, 200])
	assert_array_equal(d.parameters, [2, 100])
	assert_almost_equal(d.log_probability(50), -4.58496747867)
	assert_array_equal(d.summaries, [inf, -inf, 0])
Exemple #4
0
def test_distributions_uniform_inertia_fit():
	d = UniformDistribution(0, 10)

	d.fit([0, 5, 3, 5, 7, 3, 4, 5, 2], inertia=0.5)

	assert_array_equal(d.parameters, [0, 8.5])
	assert_array_equal(d.summaries, [inf, -inf, 0])
def test_distributions_uniform_freeze_thaw_fit():
	d = UniformDistribution(0, 10)
	d.freeze()
	d.thaw()

	d.fit([5, 4, 5, 4, 6, 5, 6, 5, 4, 6, 5, 4])
	assert_array_equal(d.parameters, [4, 6])
def test_distributions_uniform_freeze_fit():
	d = UniformDistribution(0, 10)
	d.freeze()
	d.fit([0, 1, 1, 2, 3, 2, 1, 2, 2])

	assert_array_almost_equal(d.parameters, [0, 10])
	assert_array_equal(d.summaries, [inf, -inf, 0])
def test_distributions_uniform_inertia_fit():
	d = UniformDistribution(0, 10)

	d.fit([0, 5, 3, 5, 7, 3, 4, 5, 2], inertia=0.5)

	assert_array_equal(d.parameters, [0, 8.5])
	assert_array_equal(d.summaries, [inf, -inf, 0])
def test_distributions_uniform_weighted_fit():
	d = UniformDistribution(0, 10)

	d.fit([0, 2, 3, 2, 100], weights=[0, 5, 2, 3, 200])
	assert_array_equal(d.parameters, [2, 100])
	assert_almost_equal(d.log_probability(50), -4.58496747867)
	assert_array_equal(d.summaries, [inf, -inf, 0])
Exemple #9
0
def test_distributions_uniform_exclusive_nan_fit():
	d = UniformDistribution(0, 10)
	e = UniformDistribution(0, 10)

	d.fit([nan, nan, nan, nan, nan])

	assert_array_equal(d.parameters, [0, 10])
	assert_almost_equal(d.log_probability(4), e.log_probability(4.))
	assert_array_equal(d.summaries, [inf, -inf, 0])
def test_distributions_uniform_exclusive_nan_fit():
	d = UniformDistribution(0, 10)
	e = UniformDistribution(0, 10)

	d.fit([nan, nan, nan, nan, nan])

	assert_array_equal(d.parameters, [0, 10])
	assert_almost_equal(d.log_probability(4), e.log_probability(4.))
	assert_array_equal(d.summaries, [inf, -inf, 0])
Exemple #11
0
def test_distributions_uniform_nan_fit():
	d = UniformDistribution(5, 2)
	e = UniformDistribution(5, 2)

	d.fit([5, 4, nan, 5, 4, nan, 6, 5, 6, nan, nan, 5, 4, 6, nan, 5, 4, nan])

	assert_array_equal(d.parameters, [4, 6])
	assert_not_equal(d.log_probability(4), e.log_probability(4))
	assert_almost_equal(d.log_probability(4), -0.69314718055994529)
	assert_equal(d.log_probability(18), -inf)
	assert_equal(d.log_probability(1e8), -inf)
	assert_array_equal(d.summaries, [inf, -inf, 0])
def test_distributions_uniform_nan_fit():
	d = UniformDistribution(5, 2)
	e = UniformDistribution(5, 2)

	d.fit([5, 4, nan, 5, 4, nan, 6, 5, 6, nan, nan, 5, 4, 6, nan, 5, 4, nan])

	assert_array_equal(d.parameters, [4, 6])
	assert_not_equal(d.log_probability(4), e.log_probability(4))
	assert_almost_equal(d.log_probability(4), -0.69314718055994529)
	assert_equal(d.log_probability(18), -inf)
	assert_equal(d.log_probability(1e8), -inf)
	assert_array_equal(d.summaries, [inf, -inf, 0])
def test_uniform():
    d = UniformDistribution(0, 10)

    assert_almost_equal(d.log_probability(2.34), -2.3025850929940455, 8)
    assert_equal(d.log_probability(2), d.log_probability(8))
    assert_equal(d.log_probability(10), d.log_probability(3.4))
    assert_equal(d.log_probability(1.7), d.log_probability(9.7))
    assert_equal(d.log_probability(10.0001), float("-inf"))
    assert_equal(d.log_probability(-0.0001), float("-inf"))

    for i in range(10):
        data = numpy.random.randn(100) * 100
        d.fit(data)
        assert_equal(d.parameters[0], data.min())
        assert_equal(d.parameters[1], data.max())

    minimum, maximum = data.min(), data.max()
    for i in range(100):
        sample = d.sample()
        assert_less_equal(minimum, sample)
        assert_less_equal(sample, maximum)

    d = UniformDistribution(0, 10)
    d.fit([-5, 20], inertia=0.5)

    assert_equal(d.parameters[0], -2.5)
    assert_equal(d.parameters[1], 15)

    d.fit([-100, 100], inertia=1.0)

    assert_equal(d.parameters[0], -2.5)
    assert_equal(d.parameters[1], 15)

    d.summarize([0, 50, 2, 24, 28])
    d.summarize([-20, 7, 8, 4])
    d.from_summaries(inertia=0.75)

    assert_equal(d.parameters[0], -6.875)
    assert_equal(d.parameters[1], 23.75)

    d.summarize([0, 100])
    d.summarize([100, 200])
    d.from_summaries()

    assert_equal(d.parameters[0], 0)
    assert_equal(d.parameters[1], 200)

    d.freeze()
    d.fit([0, 1, 6, 7, 8, 3, 4, 5, 2])
    assert_equal(d.parameters, [0, 200])

    d.thaw()
    d.fit([0, 1, 6, 7, 8, 3, 4, 5, 2])
    assert_equal(d.parameters, [0, 8])

    e = Distribution.from_json(d.to_json())
    assert_equal(e.name, "UniformDistribution")
    assert_equal(e.parameters, [0, 8])

    f = pickle.loads(pickle.dumps(e))
    assert_equal(f.name, "UniformDistribution")
    assert_equal(f.parameters, [0, 8])
def test_uniform():
	d = UniformDistribution(0, 10)

	assert_almost_equal(d.log_probability(2.34), -2.3025850929940455, 8)
	assert_equal(d.log_probability(2), d.log_probability(8))
	assert_equal(d.log_probability(10), d.log_probability(3.4))
	assert_equal(d.log_probability(1.7), d.log_probability(9.7))
	assert_equal(d.log_probability(10.0001), float("-inf"))
	assert_equal(d.log_probability(-0.0001), float("-inf"))

	for i in range(10):
		data = numpy.random.randn(100) * 100
		d.fit(data)
		assert_equal(d.parameters[0], data.min())
		assert_equal(d.parameters[1], data.max())

	minimum, maximum = data.min(), data.max()
	for i in range(100):
		sample = d.sample()
		assert_less_equal(minimum, sample)
		assert_less_equal(sample,  maximum)

	d = UniformDistribution(0, 10)
	d.fit([-5, 20], inertia=0.5)

	assert_equal(d.parameters[0], -2.5)
	assert_equal(d.parameters[1], 15)

	d.fit([-100, 100], inertia=1.0)

	assert_equal(d.parameters[0], -2.5)
	assert_equal(d.parameters[1], 15)

	d.summarize([0, 50, 2, 24, 28])
	d.summarize([-20, 7, 8, 4])
	d.from_summaries(inertia=0.75)

	assert_equal(d.parameters[0], -6.875)
	assert_equal(d.parameters[1], 23.75)

	d.summarize([0, 100])
	d.summarize([100, 200])
	d.from_summaries()

	assert_equal(d.parameters[0], 0)
	assert_equal(d.parameters[1], 200)

	d.freeze()
	d.fit([0, 1, 6, 7, 8, 3, 4, 5, 2])
	assert_equal(d.parameters, [0, 200])

	d.thaw()
	d.fit([0, 1, 6, 7, 8, 3, 4, 5, 2])
	assert_equal(d.parameters, [0, 8])

	e = Distribution.from_json(d.to_json())
	assert_equal(e.name, "UniformDistribution")
	assert_equal(e.parameters, [0, 8])

	f = pickle.loads(pickle.dumps(e))
	assert_equal(f.name, "UniformDistribution")
	assert_equal(f.parameters, [0, 8])