Example #1
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_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_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])