def test_remove_single_factor(self):
     self.graph.add_nodes_from(['a', 'b', 'c'])
     phi1 = DiscreteFactor(['a', 'b'], [2, 2], range(4))
     phi2 = DiscreteFactor(['b', 'c'], [2, 2], range(4))
     self.graph.add_factors(phi1, phi2)
     self.graph.remove_factors(phi1)
     six.assertCountEqual(self, self.graph.factors, [phi2])
Exemplo n.º 2
0
 def test_remove_multiple_factors(self):
     self.graph.add_nodes_from(['a', 'b', 'c'])
     phi1 = Factor(['a', 'b'], [2, 2], range(4))
     phi2 = Factor(['b', 'c'], [2, 2], range(4))
     self.graph.add_factors(phi1, phi2)
     self.graph.remove_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.factors, [])
Exemplo n.º 3
0
 def test_get_factors(self):
     self.graph.add_nodes_from(['a', 'b', 'c'])
     phi1 = Factor(['a', 'b'], [2, 2], range(4))
     phi2 = Factor(['b', 'c'], [2, 2], range(4))
     six.assertCountEqual(self, self.graph.get_factors(), [])
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.get_factors(), [phi1, phi2])
Exemplo n.º 4
0
 def test_remove_factors(self):
     self.graph.add_edges_from([[('a', 'b'), ('b', 'c')]])
     phi1 = Factor(['a', 'b'], [2, 2], np.random.rand(4))
     phi2 = Factor(['b', 'c'], [2, 2], np.random.rand(4))
     self.graph.add_factors(phi1, phi2)
     self.graph.remove_factors(phi1)
     six.assertCountEqual(self, self.graph.factors, [phi2])
Exemplo n.º 5
0
 def test_get_variable_nodes(self):
     phi1 = Factor(['a', 'b'], [2, 2], np.random.rand(4))
     phi2 = Factor(['b', 'c'], [2, 2], np.random.rand(4))
     self.graph.add_edges_from([('a', phi1), ('b', phi1),
                                ('b', phi2), ('c', phi2)])
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.get_variable_nodes(), ['a', 'b', 'c'])
Exemplo n.º 6
0
 def test_add_multiple_factors(self):
     phi1 = Factor(['a', 'b'], [2, 2], np.random.rand(4))
     phi2 = Factor(['b', 'c'], [2, 2], np.random.rand(4))
     self.graph.add_edges_from([('a', phi1), ('b', phi1),
                                ('b', phi2), ('c', phi2)])
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.factors, [phi1, phi2])
Exemplo n.º 7
0
 def test_get_factors(self):
     self.graph.add_edges_from([[('a', 'b'), ('b', 'c')]])
     phi1 = Factor(['a', 'b'], [2, 2], np.random.rand(4))
     phi2 = Factor(['b', 'c'], [2, 2], np.random.rand(4))
     six.assertCountEqual(self, self.graph.get_factors(), [])
     self.graph.add_factors(phi1, phi2)
     self.assertEqual(self.graph.get_factors(node=('b', 'a')), phi1)
     self.assertEqual(self.graph.get_factors(node=('b', 'c')), phi2)
     six.assertCountEqual(self, self.graph.get_factors(), [phi1, phi2])
Exemplo n.º 8
0
    def test_class_init_with_data_nonstring(self):
        self.g = NaiveBayes([(1, 2), (1, 3)])
        six.assertCountEqual(self, self.g.nodes(), [1, 2, 3])
        six.assertCountEqual(self, self.g.edges(), [(1, 2), (1, 3)])
        self.assertEqual(self.g.parent_node, 1)
        self.assertSetEqual(self.g.children_nodes, {2, 3})

        self.assertRaises(ValueError, NaiveBayes, [(1, 2), (2, 3)])
        self.assertRaises(ValueError, NaiveBayes, [(1, 2), (3, 2)])
        self.assertRaises(ValueError, NaiveBayes, [(1, 2), (3, 4)])
Exemplo n.º 9
0
    def test_class_init_with_data_string(self):
        self.g = NaiveBayes([('a', 'b'), ('a', 'c')])
        six.assertCountEqual(self, self.g.nodes(), ['a', 'b', 'c'])
        six.assertCountEqual(self, self.g.edges(), [('a', 'b'), ('a', 'c')])
        self.assertEqual(self.g.parent_node, 'a')
        self.assertSetEqual(self.g.children_nodes, {'b', 'c'})

        self.assertRaises(ValueError, NaiveBayes, [('a', 'b'), ('b', 'c')])
        self.assertRaises(ValueError, NaiveBayes, [('a', 'b'), ('c', 'b')])
        self.assertRaises(ValueError, NaiveBayes, [('a', 'b'), ('d', 'e')])
Exemplo n.º 10
0
    def test_get_factors(self):
        phi1 = DiscreteFactor(['a', 'b'], [2, 2], np.random.rand(4))
        phi2 = DiscreteFactor(['b', 'c'], [2, 2], np.random.rand(4))
        self.graph.add_edges_from([('a', phi1), ('b', phi1), ('b', phi2),
                                   ('c', phi2)])

        six.assertCountEqual(self, self.graph.get_factors(), [])

        self.graph.add_factors(phi1, phi2)
        self.assertEqual(self.graph.get_factors(node=phi1), phi1)
        self.assertEqual(self.graph.get_factors(node=phi2), phi2)
        six.assertCountEqual(self, self.graph.get_factors(), [phi1, phi2])

        self.graph.remove_factors(phi1)
        self.assertRaises(ValueError, self.graph.get_factors, node=phi1)
Exemplo n.º 11
0
    def test_get_factors(self):
        phi1 = Factor(['a', 'b'], [2, 2], np.random.rand(4))
        phi2 = Factor(['b', 'c'], [2, 2], np.random.rand(4))
        self.graph.add_edges_from([('a', phi1), ('b', phi1),
                                   ('b', phi2), ('c', phi2)])

        six.assertCountEqual(self, self.graph.get_factors(), [])

        self.graph.add_factors(phi1, phi2)
        self.assertEqual(self.graph.get_factors(node=phi1), phi1)
        self.assertEqual(self.graph.get_factors(node=phi2), phi2)
        six.assertCountEqual(self, self.graph.get_factors(), [phi1, phi2])

        self.graph.remove_factors(phi1)
        self.assertRaises(ValueError, self.graph.get_factors, node=phi1)
Exemplo n.º 12
0
 def test_get_factors(self):
     self.graph.add_nodes_from(['a', 'b', 'c'])
     phi1 = DiscreteFactor(['a', 'b'], [2, 2], range(4))
     phi2 = DiscreteFactor(['b', 'c'], [2, 2], range(4))
     six.assertCountEqual(self, self.graph.get_factors(), [])
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.get_factors(), [phi1, phi2])
     six.assertCountEqual(self, self.graph.get_factors('a'), [phi1])
Exemplo n.º 13
0
 def test_get_factors(self):
     self.graph.add_nodes_from(["a", "b", "c"])
     phi1 = DiscreteFactor(["a", "b"], [2, 2], range(4))
     phi2 = DiscreteFactor(["b", "c"], [2, 2], range(4))
     six.assertCountEqual(self, self.graph.get_factors(), [])
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.get_factors(), [phi1, phi2])
     six.assertCountEqual(self, self.graph.get_factors("a"), [phi1])
Exemplo n.º 14
0
    def test_fit_model_creation(self):
        values = pd.DataFrame(np.random.randint(low=0, high=2, size=(1000, 5)),
                                            columns=['A', 'B', 'C', 'D', 'E'])
        
        self.model1.fit(values, 'A')
        six.assertCountEqual(self, self.model1.nodes(), ['A', 'B', 'C', 'D', 'E'])
        six.assertCountEqual(self, self.model1.edges(), [('A', 'B'), ('A', 'C'), ('A', 'D'),
                                                    ('A', 'E')])
        self.assertEqual(self.model1.parent_node, 'A')
        self.assertSetEqual(self.model1.children_nodes, {'B','C','D','E'})

        self.model2.fit(values)
        six.assertCountEqual(self, self.model1.nodes(), ['A', 'B', 'C', 'D', 'E'])
        six.assertCountEqual(self, self.model1.edges(), [('A', 'B'), ('A', 'C'), ('A', 'D'),
                                                    ('A', 'E')])
        self.assertEqual(self.model2.parent_node, 'A')
        self.assertSetEqual(self.model2.children_nodes, {'B','C','D','E'})
Exemplo n.º 15
0
    def test_fit_model_creation(self):
        values = pd.DataFrame(np.random.randint(low=0, high=2, size=(1000, 5)),
                              columns=['A', 'B', 'C', 'D', 'E'])

        self.model1.fit(values, 'A')
        six.assertCountEqual(self, self.model1.nodes(),
                             ['A', 'B', 'C', 'D', 'E'])
        six.assertCountEqual(self, self.model1.edges(),
                             [('A', 'B'), ('A', 'C'), ('A', 'D'), ('A', 'E')])
        self.assertEqual(self.model1.parent_node, 'A')
        self.assertSetEqual(self.model1.children_nodes, {'B', 'C', 'D', 'E'})

        self.model2.fit(values)
        six.assertCountEqual(self, self.model1.nodes(),
                             ['A', 'B', 'C', 'D', 'E'])
        six.assertCountEqual(self, self.model1.edges(),
                             [('A', 'B'), ('A', 'C'), ('A', 'D'), ('A', 'E')])
        self.assertEqual(self.model2.parent_node, 'A')
        self.assertSetEqual(self.model2.children_nodes, {'B', 'C', 'D', 'E'})
    def test_fit_model_creation(self):
        values = pd.DataFrame(
            np.random.randint(low=0, high=2, size=(1000, 5)),
            columns=["A", "B", "C", "D", "E"],
        )

        self.model1.fit(values, "A")
        six.assertCountEqual(self, self.model1.nodes(), ["A", "B", "C", "D", "E"])
        six.assertCountEqual(
            self, self.model1.edges(), [("A", "B"), ("A", "C"), ("A", "D"), ("A", "E")]
        )
        self.assertEqual(self.model1.parent_node, "A")
        self.assertSetEqual(self.model1.children_nodes, {"B", "C", "D", "E"})

        self.model2.fit(values)
        six.assertCountEqual(self, self.model1.nodes(), ["A", "B", "C", "D", "E"])
        six.assertCountEqual(
            self, self.model1.edges(), [("A", "B"), ("A", "C"), ("A", "D"), ("A", "E")]
        )
        self.assertEqual(self.model2.parent_node, "A")
        self.assertSetEqual(self.model2.children_nodes, {"B", "C", "D", "E"})
Exemplo n.º 17
0
    def test_add_edge_string(self):
        self.G.add_edge('a', 'b')
        six.assertCountEqual(self, self.G.nodes(), ['a', 'b'])
        self.assertListEqual(self.G.edges(), [('a', 'b')])
        self.assertEqual(self.G.parent_node, 'a')
        self.assertSetEqual(self.G.children_nodes, {'b'})

        self.G.add_nodes_from(['c', 'd'])
        self.G.add_edge('a', 'c')
        self.G.add_edge('a', 'd')
        six.assertCountEqual(self, self.G.nodes(), ['a', 'b', 'c', 'd'])
        six.assertCountEqual(self, self.G.edges(), [('a', 'b'), ('a', 'c'), ('a', 'd')])
        self.assertEqual(self.G.parent_node, 'a')
        self.assertSetEqual(self.G.children_nodes, {'b', 'c', 'd'})

        self.assertRaises(ValueError, self.G.add_edge, 'b', 'c')
        self.assertRaises(ValueError, self.G.add_edge, 'd', 'f')
        self.assertRaises(ValueError, self.G.add_edge, 'e', 'f')
        self.assertRaises(ValueError, self.G.add_edges_from, [('a', 'e'), ('b', 'f')])
        self.assertRaises(ValueError, self.G.add_edges_from, [('b', 'f')])
Exemplo n.º 18
0
    def test_add_edge_nonstring(self):
        self.G.add_edge(1, 2)
        six.assertCountEqual(self, self.G.nodes(), [1, 2])
        self.assertListEqual(self.G.edges(), [(1, 2)])
        self.assertEqual(self.G.parent_node, 1)
        self.assertSetEqual(self.G.children_nodes, {2})

        self.G.add_nodes_from([3, 4])
        self.G.add_edge(1, 3)
        self.G.add_edge(1, 4)
        six.assertCountEqual(self, self.G.nodes(), [1, 2, 3, 4])
        six.assertCountEqual(self, self.G.edges(), [(1, 2), (1, 3), (1, 4)])
        self.assertEqual(self.G.parent_node, 1)
        self.assertSetEqual(self.G.children_nodes, {2, 3, 4})

        self.assertRaises(ValueError, self.G.add_edge, 2, 3)
        self.assertRaises(ValueError, self.G.add_edge, 3, 6)
        self.assertRaises(ValueError, self.G.add_edge, 5, 6)
        self.assertRaises(ValueError, self.G.add_edges_from, [(1, 5), (2, 6)])
        self.assertRaises(ValueError, self.G.add_edges_from, [(2, 6)])
Exemplo n.º 19
0
    def test_add_edge_nonstring(self):
        self.G.add_edge(1, 2)
        six.assertCountEqual(self, self.G.nodes(), [1, 2])
        self.assertListEqual(self.G.edges(), [(1, 2)])
        self.assertEqual(self.G.parent_node, 1)
        self.assertSetEqual(self.G.children_nodes, {2})

        self.G.add_nodes_from([3, 4])
        self.G.add_edge(1, 3)
        self.G.add_edge(1, 4)
        six.assertCountEqual(self, self.G.nodes(), [1, 2, 3, 4])
        six.assertCountEqual(self, self.G.edges(), [(1, 2), (1, 3), (1, 4)])
        self.assertEqual(self.G.parent_node, 1)
        self.assertSetEqual(self.G.children_nodes, {2, 3, 4})

        self.assertRaises(ValueError, self.G.add_edge, 2, 3)
        self.assertRaises(ValueError, self.G.add_edge, 3, 6)
        self.assertRaises(ValueError, self.G.add_edge, 5, 6)
        self.assertRaises(ValueError, self.G.add_edges_from, [(1, 5), (2, 6)])
        self.assertRaises(ValueError, self.G.add_edges_from, [(2, 6)])
Exemplo n.º 20
0
    def test_add_edge_string(self):
        self.G.add_edge('a', 'b')
        six.assertCountEqual(self, self.G.nodes(), ['a', 'b'])
        self.assertListEqual(self.G.edges(), [('a', 'b')])
        self.assertEqual(self.G.parent_node, 'a')
        self.assertSetEqual(self.G.children_nodes, {'b'})

        self.G.add_nodes_from(['c', 'd'])
        self.G.add_edge('a', 'c')
        self.G.add_edge('a', 'd')
        six.assertCountEqual(self, self.G.nodes(), ['a', 'b', 'c', 'd'])
        six.assertCountEqual(self, self.G.edges(), [('a', 'b'), ('a', 'c'),
                                                    ('a', 'd')])
        self.assertEqual(self.G.parent_node, 'a')
        self.assertSetEqual(self.G.children_nodes, {'b', 'c', 'd'})

        self.assertRaises(ValueError, self.G.add_edge, 'b', 'c')
        self.assertRaises(ValueError, self.G.add_edge, 'd', 'f')
        self.assertRaises(ValueError, self.G.add_edge, 'e', 'f')
        self.assertRaises(ValueError, self.G.add_edges_from, [('a', 'e'),
                                                              ('b', 'f')])
        self.assertRaises(ValueError, self.G.add_edges_from, [('b', 'f')])
    def test_add_edge_string(self):
        self.G.add_edge("a", "b")
        six.assertCountEqual(self, list(self.G.nodes()), ["a", "b"])
        self.assertListEqual(list(self.G.edges()), [("a", "b")])
        self.assertEqual(self.G.parent_node, "a")
        self.assertSetEqual(self.G.children_nodes, {"b"})

        self.G.add_nodes_from(["c", "d"])
        self.G.add_edge("a", "c")
        self.G.add_edge("a", "d")
        six.assertCountEqual(self, list(self.G.nodes()), ["a", "b", "c", "d"])
        six.assertCountEqual(
            self, list(self.G.edges()), [("a", "b"), ("a", "c"), ("a", "d")]
        )
        self.assertEqual(self.G.parent_node, "a")
        self.assertSetEqual(self.G.children_nodes, {"b", "c", "d"})

        self.assertRaises(ValueError, self.G.add_edge, "b", "c")
        self.assertRaises(ValueError, self.G.add_edge, "d", "f")
        self.assertRaises(ValueError, self.G.add_edge, "e", "f")
        self.assertRaises(ValueError, self.G.add_edges_from, [("a", "e"), ("b", "f")])
        self.assertRaises(ValueError, self.G.add_edges_from, [("b", "f")])
Exemplo n.º 22
0
 def test_add_single_factor(self):
     self.graph.add_edges_from([('a', 'phi1'), ('b', 'phi1')])
     phi1 = DiscreteFactor(['a', 'b'], [2, 2], np.random.rand(4))
     self.graph.add_factors(phi1)
     six.assertCountEqual(self, self.graph.factors, [phi1])
 def test_add_multiple_factors(self):
     self.graph.add_edges_from([[("a", "b"), ("b", "c")]])
     phi1 = DiscreteFactor(["a", "b"], [2, 2], np.random.rand(4))
     phi2 = DiscreteFactor(["b", "c"], [2, 2], np.random.rand(4))
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.factors, [phi1, phi2])
Exemplo n.º 24
0
 def test_add_multiple_factors(self):
     self.graph.add_edges_from([[('a', 'b'), ('b', 'c')]])
     phi1 = Factor(['a', 'b'], [2, 2], np.random.rand(4))
     phi2 = Factor(['b', 'c'], [2, 2], np.random.rand(4))
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.factors, [phi1, phi2])
Exemplo n.º 25
0
 def test_add_single_factor(self):
     self.graph.add_node(('a', 'b'))
     phi1 = Factor(['a', 'b'], [2, 2], np.random.rand(4))
     self.graph.add_factors(phi1)
     six.assertCountEqual(self, self.graph.factors, [phi1])
Exemplo n.º 26
0
 def test_add_nodes_from_string(self):
     self.G.add_nodes_from(['a', 'b', 'c', 'd'])
     six.assertCountEqual(self, self.G.nodes(), ['a', 'b', 'c', 'd'])
Exemplo n.º 27
0
 def test_add_single_factor(self):
     self.graph.add_edges_from([("a", "phi1"), ("b", "phi1")])
     phi1 = DiscreteFactor(["a", "b"], [2, 2], np.random.rand(4))
     self.graph.add_factors(phi1)
     six.assertCountEqual(self, self.graph.factors, [phi1])
Exemplo n.º 28
0
 def test_add_single_factor(self):
     self.graph.add_nodes_from(["a", "b", "c"])
     phi = DiscreteFactor(["a", "b"], [2, 2], range(4))
     self.graph.add_factors(phi)
     six.assertCountEqual(self, self.graph.factors, [phi])
 def test_add_nodes_from_string(self):
     self.G.add_nodes_from(["a", "b", "c", "d"])
     six.assertCountEqual(self, list(self.G.nodes()), ["a", "b", "c", "d"])
Exemplo n.º 30
0
 def test_add_nodes_from_string(self):
     self.G.add_nodes_from(['a', 'b', 'c', 'd'])
     six.assertCountEqual(self, self.G.nodes(), ['a', 'b', 'c', 'd'])
Exemplo n.º 31
0
 def test_add_single_factor(self):
     self.graph.add_nodes_from(['a', 'b', 'c'])
     phi = Factor(['a', 'b'], [2, 2], range(4))
     self.graph.add_factors(phi)
     six.assertCountEqual(self, self.graph.factors, [phi])
Exemplo n.º 32
0
 def test_add_nodes_from_non_string(self):
     self.G.add_nodes_from([1, 2, 3, 4])
     six.assertCountEqual(self, self.G.nodes(), [1, 2, 3, 4])
Exemplo n.º 33
0
 def test_add_single_factor(self):
     self.graph.add_nodes_from(['a', 'b', 'c'])
     phi = Factor(['a', 'b'], [2, 2], range(4))
     self.graph.add_factors(phi)
     six.assertCountEqual(self, self.graph.factors, [phi])
 def test_add_single_factor(self):
     self.graph.add_node(("a", "b"))
     phi1 = DiscreteFactor(["a", "b"], [2, 2], np.random.rand(4))
     self.graph.add_factors(phi1)
     six.assertCountEqual(self, self.graph.factors, [phi1])
Exemplo n.º 35
0
 def test_add_multiple_factors(self):
     self.graph.add_nodes_from(["a", "b", "c"])
     phi1 = DiscreteFactor(["a", "b"], [2, 2], range(4))
     phi2 = DiscreteFactor(["b", "c"], [2, 2], range(4))
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.factors, [phi1, phi2])
Exemplo n.º 36
0
 def test_add_single_factor(self):
     self.graph.add_edges_from([('a', 'phi1'), ('b', 'phi1')])
     phi1 = Factor(['a', 'b'], [2, 2], np.random.rand(4))
     self.graph.add_factors(phi1)
     six.assertCountEqual(self, self.graph.factors, [phi1])
Exemplo n.º 37
0
 def test_add_nodes_from_non_string(self):
     self.G.add_nodes_from([1, 2, 3, 4])
     six.assertCountEqual(self, self.G.nodes(), [1, 2, 3, 4])
Exemplo n.º 38
0
 def test_add_multiple_factors(self):
     self.graph.add_nodes_from(['a', 'b', 'c'])
     phi1 = Factor(['a', 'b'], [2, 2], range(4))
     phi2 = Factor(['b', 'c'], [2, 2], range(4))
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.factors, [phi1, phi2])
Exemplo n.º 39
0
 def test_get_variable_nodes(self):
     phi1 = DiscreteFactor(["a", "b"], [2, 2], np.random.rand(4))
     phi2 = DiscreteFactor(["b", "c"], [2, 2], np.random.rand(4))
     self.graph.add_edges_from([("a", phi1), ("b", phi1), ("b", phi2), ("c", phi2)])
     self.graph.add_factors(phi1, phi2)
     six.assertCountEqual(self, self.graph.get_variable_nodes(), ["a", "b", "c"])