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
示例#2
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
示例#3
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