def test_distributions_normal_robust_json_serialization(): d = NormalDistribution(5, 2) e = from_json(d.to_json()) assert_equal(e.name, "NormalDistribution") assert_array_equal(e.parameters, [5, 2]) assert_array_equal(e.summaries, [0, 0, 0])
def test_distributions_uniform_robust_json_serialization(): d = UniformDistribution(0, 10) e = from_json(d.to_json()) assert_equal(e.name, "UniformDistribution") assert_array_equal(e.parameters, [0, 10]) assert_array_equal(d.summaries, [inf, -inf, 0])
def test_robust_from_json(): model2 = from_json(model.to_json()) logp1 = model.log_probability(X) logp2 = model2.log_probability(X) logp = [ -2.304186, -1.898721, -1.898721, -2.224144, -1.898721, -1.978764, -1.898721, -1.898721, -1.898721, -1.898721, -1.818679, -2.384229, -2.304186, -1.978764, -2.304186, -2.384229, -2.304186, -2.384229, -2.304186, -1.978764, -2.224144, -1.818679, -1.898721, -2.304186, -2.304186, -1.898721, -1.818679, -1.898721, -1.818679, -2.304186, -1.978764, -2.224144, -1.898721, -2.304186, -1.898721, -1.818679, -2.304186, -1.898721, -1.898721, -2.384229, -2.224144, -1.818679, -2.384229, -1.978764, -1.818679, -1.978764, -1.898721, -1.818679, -2.224144, -1.898721 ] assert_array_almost_equal(logp1, logp2) assert_array_almost_equal(logp1, logp) assert_array_almost_equal(logp2, logp) model_dtype = type( list(model.states[0].distribution.parameters[0].keys())[0]) model2_dtype = type( list(model2.states[0].distribution.parameters[0].keys())[0]) assert_equal(model_dtype, model2_dtype)
def test_robust_from_structure(): X = datasets[1] structure = ((1, 2), (4,), (), (), (3,)) model = BayesianNetwork.from_structure(X, structure=structure) assert_equal(model.structure, structure) assert_almost_equal(model.log_probability(X).sum(), -344.38287, 4) model2 = from_json(model.to_json()) assert_equal(model2.structure, structure) assert_almost_equal(model.log_probability(X).sum(), -344.38287, 4)
def test_robust_from_structure(): X = datasets[1] structure = ((1, 2), (4,), (), (), (3,)) model = BayesianNetwork.from_structure(X, structure=structure) assert_equal(model.structure, structure) assert_almost_equal(model.log_probability(X).sum(), -344.38287, 4) model2 = from_json(model.to_json()) assert_equal(model2.structure, structure) assert_almost_equal(model.log_probability(X).sum(), -344.38287, 4) model_dtype = type(model.states[0].distribution.parameters[0][0][0]) model2_dtype = type(model2.states[0].distribution.parameters[0][0][0]) assert_equal(model_dtype, model2_dtype)
def test_robust_from_json(): model2 = from_json(model.to_json()) logp1 = model.log_probability(X) logp2 = model2.log_probability(X) logp = [-2.304186, -1.898721, -1.898721, -2.224144, -1.898721, -1.978764, -1.898721, -1.898721, -1.898721, -1.898721, -1.818679, -2.384229, -2.304186, -1.978764, -2.304186, -2.384229, -2.304186, -2.384229, -2.304186, -1.978764, -2.224144, -1.818679, -1.898721, -2.304186, -2.304186, -1.898721, -1.818679, -1.898721, -1.818679, -2.304186, -1.978764, -2.224144, -1.898721, -2.304186, -1.898721, -1.818679, -2.304186, -1.898721, -1.898721, -2.384229, -2.224144, -1.818679, -2.384229, -1.978764, -1.818679, -1.978764, -1.898721, -1.818679, -2.224144, -1.898721] assert_array_almost_equal(logp1, logp2) assert_array_almost_equal(logp1, logp) assert_array_almost_equal(logp2, logp)
def test_discrete_robust_json_serialization(): d = DiscreteDistribution.from_samples(['A', 'B', 'A', 'A'], pseudocount=6) e = from_json(d.to_json()) assert_equal(e.name, "DiscreteDistribution") assert_equal(e.parameters[0], {'A': 0.5625, 'B': 0.4375})