Exemplo n.º 1
0
def test_maximum_flow_not_directed_or_multi():
    exp = None
    G = nx.Graph()
    G.add_edge('a', 'b', capacity = 2)
    G.add_edge('b', 'c', capacity = 5)

    with pytest.raises(TypeError) as excinfo:
        (obs_path, obs) = pa.find_maximum_flow(G, 'a', 'c')
        assert 'Graph must be DiGraph type' in str(excinfo)
Exemplo n.º 2
0
def test_maximum_flow_simple():
    exp = 3
    G = nx.DiGraph()
    G.add_edge('a', 'b', capacity=3)
    G.add_edge('b', 'c', capacity=4)
    G.add_edge('c', 'd', capacity=3)
    G.add_edge('b', 'd', capacity=10)
    (obs_path, obs) = pa.find_maximum_flow(G, 'a', 'd')

    assert obs == exp
Exemplo n.º 3
0
def test_maximum_flow_several_paths():
    exp = 3
    G = nx.DiGraph()
    G.add_edge('a', 'd', capacity=1)
    G.add_edge('a', 'b', capacity=1)
    G.add_edge('a', 'c', capacity=1)
    G.add_edge('b', 'd', capacity=2)
    G.add_edge('c', 'd', capacity=5)
    (obs_path, obs) = pa.find_maximum_flow(G, 'a', 'd')

    assert obs == exp
Exemplo n.º 4
0
def test_maximum_flow_multigraph_order_flipped():
    '''NetworkX retains only the most recently added edge if multiple edges 
    exit and a MultiGraph is converted into a DiGraph'''
    exp = 2
    G = nx.DiGraph()
    G.add_edge('a', 'b', capacity=1)
    G.add_edge('a', 'b', capacity=2)
    G.add_edge('b', 'c', capacity=5)

    (obs_path, obs) = pa.find_maximum_flow(G, 'a', 'c')

    assert obs == exp
Exemplo n.º 5
0
def test_maximum_flow_directed_only():
    exp = 5
    G = nx.DiGraph()
    G.add_edge('a', 'b', capacity=4)
    G.add_edge('a', 'c', capacity=4)
    G.add_edge('b', 'd', capacity=2)
    G.add_edge('b', 'e', capacity=1)
    G.add_edge('c', 'd', capacity=3)
    G.add_edge('d', 'e', capacity=4)

    (obs_path, obs) = pa.find_maximum_flow(G, 'a', 'e')

    assert obs == exp