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_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_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])
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])
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])
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])