from nose.tools import * import networkx as nx from networkx import * def test_complement(): null=null_graph() empty1=empty_graph(1) empty10=empty_graph(10) K3=complete_graph(3) K5=complete_graph(5) K10=complete_graph(10) P2=path_graph(2) P3=path_graph(3) P5=path_graph(5) P10=path_graph(10) #complement of the complete graph is empty G=complement(K3) assert_true(is_isomorphic(G,empty_graph(3))) G=complement(K5) assert_true(is_isomorphic(G,empty_graph(5))) # for any G, G=complement(complement(G)) P3cc=complement(complement(P3)) assert_true(is_isomorphic(P3,P3cc)) nullcc=complement(complement(null)) assert_true(is_isomorphic(null,nullcc)) b=bull_graph() bcc=complement(complement(b)) assert_true(is_isomorphic(b,bcc)) def test_complement_2(): G1=nx.DiGraph() G1.add_edge('A','B') G1.add_edge('A','C') G1.add_edge('A','D') G1C=complement(G1) assert_equal(sorted(G1C.edges()), [('B', 'A'), ('B', 'C'), ('B', 'D'), ('C', 'A'), ('C', 'B'), ('C', 'D'), ('D', 'A'), ('D', 'B'), ('D', 'C')]) def test_reverse1(): # Other tests for reverse are done by the DiGraph and MultiDigraph. G1=nx.Graph() assert_raises(nx.NetworkXError, nx.reverse, G1)