12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import networkx as nx
- from networkx.algorithms.tree.decomposition import junction_tree
- def test_junction_tree_directed_confounders():
- B = nx.DiGraph()
- B.add_edges_from([("A", "C"), ("B", "C"), ("C", "D"), ("C", "E")])
- G = junction_tree(B)
- J = nx.Graph()
- J.add_edges_from(
- [
- (("C", "E"), ("C",)),
- (("C",), ("A", "B", "C")),
- (("A", "B", "C"), ("C",)),
- (("C",), ("C", "D")),
- ]
- )
- assert nx.is_isomorphic(G, J)
- def test_junction_tree_directed_unconnected_nodes():
- B = nx.DiGraph()
- B.add_nodes_from([("A", "B", "C", "D")])
- G = junction_tree(B)
- J = nx.Graph()
- J.add_nodes_from([("A", "B", "C", "D")])
- assert nx.is_isomorphic(G, J)
- def test_junction_tree_directed_cascade():
- B = nx.DiGraph()
- B.add_edges_from([("A", "B"), ("B", "C"), ("C", "D")])
- G = junction_tree(B)
- J = nx.Graph()
- J.add_edges_from(
- [
- (("A", "B"), ("B",)),
- (("B",), ("B", "C")),
- (("B", "C"), ("C",)),
- (("C",), ("C", "D")),
- ]
- )
- assert nx.is_isomorphic(G, J)
- def test_junction_tree_directed_unconnected_edges():
- B = nx.DiGraph()
- B.add_edges_from([("A", "B"), ("C", "D"), ("E", "F")])
- G = junction_tree(B)
- J = nx.Graph()
- J.add_nodes_from([("A", "B"), ("C", "D"), ("E", "F")])
- assert nx.is_isomorphic(G, J)
- def test_junction_tree_undirected():
- B = nx.Graph()
- B.add_edges_from([("A", "C"), ("A", "D"), ("B", "C"), ("C", "E")])
- G = junction_tree(B)
- J = nx.Graph()
- J.add_edges_from(
- [
- (("A", "D"), ("A",)),
- (("A",), ("A", "C")),
- (("A", "C"), ("C",)),
- (("C",), ("B", "C")),
- (("B", "C"), ("C",)),
- (("C",), ("C", "E")),
- ]
- )
- assert nx.is_isomorphic(G, J)
|