def test_bipartite_perfect_min_weight(): bg = create_graph(directed=False, allowing_self_loops=False, allowing_multiple_edges=False, weighted=True) generators.complete_bipartite_graph(bg, 10, 10) _, part1, part2 = partition.bipartite_partitions(bg) weight, _ = matching.bipartite_perfect_min_weight(bg, part1, part2) assert weight == 10.0
def test_bipartite_perfect_min_weight_with_custom_partitions(): bg = create_graph( directed=False, allowing_self_loops=False, allowing_multiple_edges=False, weighted=True, ) bg.add_vertices_from([0, 1, 2, 3, 4, 5, 6, 7]) part1 = set([0, 1, 2, 3]) part2 = set([4, 5, 6, 7]) for v in part1: for u in part2: bg.add_edge(v, u) weight, _ = matching.bipartite_perfect_min_weight(bg, part1, part2) assert weight == 4.0
def test_anyhashableg_bipartite_perfect_min_weight_with_custom_partitions(): bg = create_graph( directed=False, allowing_self_loops=False, allowing_multiple_edges=False, weighted=True, any_hashable=True, ) bg.add_vertices_from(['0', '1', '2', '3', '4', '5', '6', '7']) part1 = set(['0', '1', '2', '3']) part2 = set(['4', '5', '6', '7']) for v in part1: for u in part2: bg.add_edge(v, u) weight, _ = matching.bipartite_perfect_min_weight(bg, part1, part2) assert weight == 4.0