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
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