def test_easy_shape(self): n1 = DiscreteNode("Some Node", [True, False]) n2 = DiscreteNode("Second Node" , [True, False]) s = n1.get_cpd().multiplication(n2.get_cpd()) self.assertEqual(s.table.shape, (2,2)); s = n1.get_cpd().multiplication(n1.get_cpd()) self.assertEqual(s.table.shape,(2,))
def test_easy_shape(self): n1 = DiscreteNode("Some Node", [True, False]) n2 = DiscreteNode("Second Node", [True, False]) s = n1.get_cpd().multiplication(n2.get_cpd()) self.assertEqual(s.table.shape, (2, 2)) s = n1.get_cpd().multiplication(n1.get_cpd()) self.assertEqual(s.table.shape, (2, ))
def test_complicated_multi(self): n1 = DiscreteNode("Some Node", [True, False]) n2 = DiscreteNode("Second Node" , [True, False,"noIdea"]) cpt1 = numpy.array([2,3]) cpt2 = numpy.array([5,7,9]) n1.set_probability_table(cpt1,[n1]) n2.set_probability_table(cpt2,[n2]) c3 = n1.get_cpd().multiplication(n2.get_cpd()) c3 = n1.get_cpd().multiplication(c3) cptN = numpy.array([[20, 28, 36],[45, 63, 81]]) numpy.testing.assert_array_equal(c3.table,cptN)
def test_complicated_multi(self): n1 = DiscreteNode("Some Node", [True, False]) n2 = DiscreteNode("Second Node", [True, False, "noIdea"]) cpt1 = numpy.array([2, 3]) cpt2 = numpy.array([5, 7, 9]) n1.set_probability_table(cpt1, [n1]) n2.set_probability_table(cpt2, [n2]) c3 = n1.get_cpd().multiplication(n2.get_cpd()) c3 = n1.get_cpd().multiplication(c3) cptN = numpy.array([[20, 28, 36], [45, 63, 81]]) numpy.testing.assert_array_equal(c3.table, cptN)
def test_easy_values(self): n1 = DiscreteNode("Some Node", [True, False]) n2 = DiscreteNode("Second Node" , [True, False]) cpt1 = numpy.array([2,3]) cpt2 = numpy.array([5,7]) n1.set_probability_table(cpt1,[n1]) n2.set_probability_table(cpt2,[n2]) s = n1.get_cpd().multiplication(n2.get_cpd()) cptN = numpy.array([[10,14],[15,21]]) numpy.testing.assert_array_equal(s.table,cptN) self.assertEqual(s.variables[0],n1)
def test_easy_values(self): n1 = DiscreteNode("Some Node", [True, False]) n2 = DiscreteNode("Second Node", [True, False]) cpt1 = numpy.array([2, 3]) cpt2 = numpy.array([5, 7]) n1.set_probability_table(cpt1, [n1]) n2.set_probability_table(cpt2, [n2]) s = n1.get_cpd().multiplication(n2.get_cpd()) cptN = numpy.array([[10, 14], [15, 21]]) numpy.testing.assert_array_equal(s.table, cptN) self.assertEqual(s.variables[0], n1)
def test_easy_marginalize(self): n1 = DiscreteNode("Some Node", [True, False]) n2 = DiscreteNode("Second Node" , [True, False, "other"]) cpt1 = numpy.array([2,3]) cpt2 = numpy.array([5,7,3]) n1.set_probability_table(cpt1,[n1]) n2.set_probability_table(cpt2,[n2]) s = n1.get_cpd().multiplication(n2.get_cpd()) s =s.marginalization(n2) print s.table cptN = numpy.array([30,45]) numpy.testing.assert_array_equal(s.table,cptN) self.assertEqual(s.variables[0],n1)
def test_easy_marginalize(self): n1 = DiscreteNode("Some Node", [True, False]) n2 = DiscreteNode("Second Node", [True, False, "other"]) cpt1 = numpy.array([2, 3]) cpt2 = numpy.array([5, 7, 3]) n1.set_probability_table(cpt1, [n1]) n2.set_probability_table(cpt2, [n2]) s = n1.get_cpd().multiplication(n2.get_cpd()) s = s.marginalization(n2) print s.table cptN = numpy.array([30, 45]) numpy.testing.assert_array_equal(s.table, cptN) self.assertEqual(s.variables[0], n1)