def test_partition(test_graph):
logger = logging.getLogger('partition')
g = test_graph
i = 0
for partition, acyclic in partition_graph(g):
if i == 0:
expected_nodes = {'5', '4', '3', '2', 'r_', 're_'}
expected_edges = {
("5", "2"),
("5", "re_"),
("4", "5"),
("2", "3"),
("2", "re_"),
("3", "4"),
("3", "5"),
("r_", "2")
}
assert set(partition.nodes()) == expected_nodes
assert set(partition.edges()) == expected_edges
elif i == 1:
expected_nodes = {'8', '7', '6', '1', 'r_', 're_'}
expected_edges = {
("7", "8"),
("6", "7"),
("1", "6"),
("1", "re_"),
("r_", "7"),
("r_", "6"),
("r_", "1"),
("8", "re_")
}
assert set(partition.nodes()) == expected_nodes
assert set(partition.edges()) == expected_edges
else:
raise ValueError("Unexpected partition, got more than 2")
logger.debug("%s", partition.nodes())
logger.debug("%s", partition.edges())
assert networkx.is_directed_acyclic_graph(partition) == acyclic
i += 1
评论列表
文章目录