예제 #1
0
def test_all_edges(graph):
    graph.add_edge(1,2)
    graph.add_edge('a','a')
    graph.add_edge(1,3)
    graph.add_edge(3,1)
    graph.add_edge(4,'b')
    r = ReversedGraph(graph)    
    assert sorted([(s,t) for s,t in r.edges()]) == \
           sorted([(2,1), ('a','a'), (1,3), (3,1), ('b',4)])
    rr = ReversedGraph(r)
    assert sorted([(s,t) for s,t in rr.edges()]) == \
           sorted([(s,t) for s,t in graph.edges()])
예제 #2
0
def test_edges_by_target(graph):
    graph.add_edge(1,2)
    graph.add_edge('a','a')
    graph.add_edge(1,3)
    graph.add_edge(3,1)
    graph.add_edge(4,'b')
    graph.add_edge(4,'b')
    r = ReversedGraph(graph)
    assert sorted([(s,t) for s,t in r.edges(target=1)]) == \
           sorted([(2,1), (3,1)])
    assert [(s,t) for s,t in r.edges(target=3)] == [(1,3)]
    assert [(s,t) for s,t in r.edges(target=4)] == [('b',4), ('b',4)]
    assert [(s,t) for s,t in r.edges(target='a')] == [('a','a')]
    assert [(s,t) for s,t in r.edges(target='b')] == []
예제 #3
0
def test_edges_by_source(graph):
    graph.add_edge(1,2)
    graph.add_edge('a','a')
    graph.add_edge(1,3)
    graph.add_edge(3,1)
    graph.add_edge(4,'b')
    graph.add_edge(4,'b')
    r = ReversedGraph(graph)
    assert [(s,t) for s,t in r.edges(source=1)] == [(1,3)]
    assert [(s,t) for s,t in r.edges(source=2)] == [(2,1)]
    assert [(s,t) for s,t in r.edges(source=3)] == [(3,1)]
    assert [(s,t) for s,t in r.edges(source='a')] == [('a','a')]
    assert [(s,t) for s,t in r.edges(source='b')] == [('b',4), ('b',4)]
    assert [(s,t) for s,t in r.edges(source=4)] == []