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])
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, [])
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])
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])
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'])
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])
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])
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)])
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')])
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)
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)
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])
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])
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'})
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_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_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)])
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")])
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])
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])
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])
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'])
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_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"])
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_nodes_from_non_string(self): self.G.add_nodes_from([1, 2, 3, 4]) six.assertCountEqual(self, self.G.nodes(), [1, 2, 3, 4])
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])
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])
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])
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])
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"])