diff options
Diffstat (limited to 'lib/python2.7/site-packages/setoolsgui/networkx/algorithms/operators/tests/test_all.py')
-rw-r--r-- | lib/python2.7/site-packages/setoolsgui/networkx/algorithms/operators/tests/test_all.py | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/operators/tests/test_all.py b/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/operators/tests/test_all.py new file mode 100644 index 0000000..fc4fa4a --- /dev/null +++ b/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/operators/tests/test_all.py @@ -0,0 +1,167 @@ +from nose.tools import * +import networkx as nx +from networkx.testing import * + +def test_union_all_attributes(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_edge(0, 1, size=5) + g.graph['name'] = 'g' + + h = g.copy() + h.graph['name'] = 'h' + h.graph['attr'] = 'attr' + h.node[0]['x'] = 7 + + j = g.copy() + j.graph['name'] = 'j' + j.graph['attr'] = 'attr' + j.node[0]['x'] = 7 + + ghj = nx.union_all([g, h, j], rename=('g', 'h', 'j')) + assert_equal( set(ghj.nodes()) , set(['h0', 'h1', 'g0', 'g1', 'j0', 'j1']) ) + for n in ghj: + graph, node = n + assert_equal( ghj.node[n], eval(graph).node[int(node)] ) + + assert_equal(ghj.graph['attr'],'attr') + assert_equal(ghj.graph['name'],'j') # j graph attributes take precendent + + + +def test_intersection_all(): + G=nx.Graph() + H=nx.Graph() + R=nx.Graph() + G.add_nodes_from([1,2,3,4]) + G.add_edge(1,2) + G.add_edge(2,3) + H.add_nodes_from([1,2,3,4]) + H.add_edge(2,3) + H.add_edge(3,4) + R.add_nodes_from([1,2,3,4]) + R.add_edge(2,3) + R.add_edge(4,1) + I=nx.intersection_all([G,H,R]) + assert_equal( set(I.nodes()) , set([1,2,3,4]) ) + assert_equal( sorted(I.edges()) , [(2,3)] ) + + +def test_intersection_all_attributes(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_edge(0, 1, size=5) + g.graph['name'] = 'g' + + h = g.copy() + h.graph['name'] = 'h' + h.graph['attr'] = 'attr' + h.node[0]['x'] = 7 + + gh = nx.intersection_all([g, h]) + assert_equal( set(gh.nodes()) , set(g.nodes()) ) + assert_equal( set(gh.nodes()) , set(h.nodes()) ) + assert_equal( sorted(gh.edges()) , sorted(g.edges()) ) + + h.remove_node(0) + assert_raises(nx.NetworkXError, nx.intersection, g, h) + +def test_intersection_all_multigraph_attributes(): + g = nx.MultiGraph() + g.add_edge(0, 1, key=0) + g.add_edge(0, 1, key=1) + g.add_edge(0, 1, key=2) + h = nx.MultiGraph() + h.add_edge(0, 1, key=0) + h.add_edge(0, 1, key=3) + gh = nx.intersection_all([g, h]) + assert_equal( set(gh.nodes()) , set(g.nodes()) ) + assert_equal( set(gh.nodes()) , set(h.nodes()) ) + assert_equal( sorted(gh.edges()) , [(0,1)] ) + assert_equal( sorted(gh.edges(keys=True)) , [(0,1,0)] ) + +def test_union_all_and_compose_all(): + K3=nx.complete_graph(3) + P3=nx.path_graph(3) + + G1=nx.DiGraph() + G1.add_edge('A','B') + G1.add_edge('A','C') + G1.add_edge('A','D') + G2=nx.DiGraph() + G2.add_edge('1','2') + G2.add_edge('1','3') + G2.add_edge('1','4') + + G=nx.union_all([G1,G2]) + H=nx.compose_all([G1,G2]) + assert_edges_equal(G.edges(),H.edges()) + assert_false(G.has_edge('A','1')) + assert_raises(nx.NetworkXError, nx.union, K3, P3) + H1=nx.union_all([H,G1],rename=('H','G1')) + assert_equal(sorted(H1.nodes()), + ['G1A', 'G1B', 'G1C', 'G1D', + 'H1', 'H2', 'H3', 'H4', 'HA', 'HB', 'HC', 'HD']) + + H2=nx.union_all([H,G2],rename=("H","")) + assert_equal(sorted(H2.nodes()), + ['1', '2', '3', '4', + 'H1', 'H2', 'H3', 'H4', 'HA', 'HB', 'HC', 'HD']) + + assert_false(H1.has_edge('NB','NA')) + + G=nx.compose_all([G,G]) + assert_edges_equal(G.edges(),H.edges()) + + G2=nx.union_all([G2,G2],rename=('','copy')) + assert_equal(sorted(G2.nodes()), + ['1', '2', '3', '4', 'copy1', 'copy2', 'copy3', 'copy4']) + + assert_equal(G2.neighbors('copy4'),[]) + assert_equal(sorted(G2.neighbors('copy1')),['copy2', 'copy3', 'copy4']) + assert_equal(len(G),8) + assert_equal(nx.number_of_edges(G),6) + + E=nx.disjoint_union_all([G,G]) + assert_equal(len(E),16) + assert_equal(nx.number_of_edges(E),12) + + E=nx.disjoint_union_all([G1,G2]) + assert_equal(sorted(E.nodes()),[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) + + G1=nx.DiGraph() + G1.add_edge('A','B') + G2=nx.DiGraph() + G2.add_edge(1,2) + G3=nx.DiGraph() + G3.add_edge(11,22) + G4=nx.union_all([G1,G2,G3],rename=("G1","G2","G3")) + assert_equal(sorted(G4.nodes()), + ['G1A', 'G1B', 'G21', 'G22', + 'G311', 'G322']) + + +def test_union_all_multigraph(): + G=nx.MultiGraph() + G.add_edge(1,2,key=0) + G.add_edge(1,2,key=1) + H=nx.MultiGraph() + H.add_edge(3,4,key=0) + H.add_edge(3,4,key=1) + GH=nx.union_all([G,H]) + assert_equal( set(GH) , set(G)|set(H)) + assert_equal( set(GH.edges(keys=True)) , + set(G.edges(keys=True))|set(H.edges(keys=True))) + + +def test_input_output(): + l = [nx.Graph([(1,2)]),nx.Graph([(3,4)])] + U = nx.disjoint_union_all(l) + assert_equal(len(l),2) + C = nx.compose_all(l) + assert_equal(len(l),2) + l = [nx.Graph([(1,2)]),nx.Graph([(1,2)])] + R = nx.intersection_all(l) + assert_equal(len(l),2) |