def test_source_sink_scale_free(n):
    seed_number = randint(1, 1000)
    generator = ScaleFree(n, directed=True, seed_number=seed_number)
    graph, source, sink = generator.generate()
    count_source, src = has_unique_source(graph)
    count_sink, snk = has_unique_sink(graph)
    assert count_source == 1
    assert count_sink == 1
    assert source == src
    assert sink == snk
def get_graph(graph_type, n, m, directed, seed_number):
    if graph_type == 'random':
        graph = Random(n, m, seed_number=seed_number, directed=directed)
    elif graph_type == 'scale-free':
        graph = ScaleFree(n, seed_number=seed_number, directed=directed)
    else:
        graph = Triangulation(n,
                              type=graph_type,
                              seed_number=seed_number,
                              directed=directed)
    return graph
Esempio n. 3
0
def test_max_flow_scale_free_directed(n):
    seed_number = randint(1, 1000)
    generator = ScaleFree(n, directed=True, seed_number=seed_number)
    graph, source, target = generator.generate()
    solver = GoldbergWave(graph)
    max_flow = solver.get_max_flow(source, target)

    generator = ScaleFree(n, directed=True, seed_number=seed_number)
    graph, source, target = generator.generate()
    res = gt.push_relabel_max_flow(graph, source, target, graph.ep.cap)
    res.a = graph.ep.cap.a - res.a  # the actual flow
    gt_max_flow = sum(res[e] for e in target.in_edges())
    assert max_flow == gt_max_flow