diff options
Diffstat (limited to 'lib/python2.7/site-packages/setoolsgui/networkx/algorithms/bipartite/tests/test_project.py')
-rw-r--r-- | lib/python2.7/site-packages/setoolsgui/networkx/algorithms/bipartite/tests/test_project.py | 363 |
1 files changed, 0 insertions, 363 deletions
diff --git a/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/bipartite/tests/test_project.py b/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/bipartite/tests/test_project.py deleted file mode 100644 index 52a93b2..0000000 --- a/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/bipartite/tests/test_project.py +++ /dev/null @@ -1,363 +0,0 @@ -#!/usr/bin/env python -from nose.tools import * -import networkx as nx -from networkx.algorithms import bipartite -from networkx.testing import * - -class TestBipartiteProject: - - def test_path_projected_graph(self): - G=nx.path_graph(4) - P=bipartite.projected_graph(G,[1,3]) - assert_equal(sorted(P.nodes()),[1,3]) - assert_equal(sorted(P.edges()),[(1,3)]) - P=bipartite.projected_graph(G,[0,2]) - assert_equal(sorted(P.nodes()),[0,2]) - assert_equal(sorted(P.edges()),[(0,2)]) - - def test_path_projected_properties_graph(self): - G=nx.path_graph(4) - G.add_node(1,name='one') - G.add_node(2,name='two') - P=bipartite.projected_graph(G,[1,3]) - assert_equal(sorted(P.nodes()),[1,3]) - assert_equal(sorted(P.edges()),[(1,3)]) - assert_equal(P.node[1]['name'],G.node[1]['name']) - P=bipartite.projected_graph(G,[0,2]) - assert_equal(sorted(P.nodes()),[0,2]) - assert_equal(sorted(P.edges()),[(0,2)]) - assert_equal(P.node[2]['name'],G.node[2]['name']) - - def test_path_collaboration_projected_graph(self): - G=nx.path_graph(4) - P=bipartite.collaboration_weighted_projected_graph(G,[1,3]) - assert_equal(sorted(P.nodes()),[1,3]) - assert_equal(sorted(P.edges()),[(1,3)]) - P[1][3]['weight']=1 - P=bipartite.collaboration_weighted_projected_graph(G,[0,2]) - assert_equal(sorted(P.nodes()),[0,2]) - assert_equal(sorted(P.edges()),[(0,2)]) - P[0][2]['weight']=1 - - def test_directed_path_collaboration_projected_graph(self): - G=nx.DiGraph() - G.add_path(list(range(4))) - P=bipartite.collaboration_weighted_projected_graph(G,[1,3]) - assert_equal(sorted(P.nodes()),[1,3]) - assert_equal(sorted(P.edges()),[(1,3)]) - P[1][3]['weight']=1 - P=bipartite.collaboration_weighted_projected_graph(G,[0,2]) - assert_equal(sorted(P.nodes()),[0,2]) - assert_equal(sorted(P.edges()),[(0,2)]) - P[0][2]['weight']=1 - - def test_path_weighted_projected_graph(self): - G=nx.path_graph(4) - P=bipartite.weighted_projected_graph(G,[1,3]) - assert_equal(sorted(P.nodes()),[1,3]) - assert_equal(sorted(P.edges()),[(1,3)]) - P[1][3]['weight']=1 - P=bipartite.weighted_projected_graph(G,[0,2]) - assert_equal(sorted(P.nodes()),[0,2]) - assert_equal(sorted(P.edges()),[(0,2)]) - P[0][2]['weight']=1 - - def test_path_weighted_projected_directed_graph(self): - G=nx.DiGraph() - G.add_path(list(range(4))) - P=bipartite.weighted_projected_graph(G,[1,3]) - assert_equal(sorted(P.nodes()),[1,3]) - assert_equal(sorted(P.edges()),[(1,3)]) - P[1][3]['weight']=1 - P=bipartite.weighted_projected_graph(G,[0,2]) - assert_equal(sorted(P.nodes()),[0,2]) - assert_equal(sorted(P.edges()),[(0,2)]) - P[0][2]['weight']=1 - - - def test_star_projected_graph(self): - G=nx.star_graph(3) - P=bipartite.projected_graph(G,[1,2,3]) - assert_equal(sorted(P.nodes()),[1,2,3]) - assert_equal(sorted(P.edges()),[(1,2),(1,3),(2,3)]) - P=bipartite.weighted_projected_graph(G,[1,2,3]) - assert_equal(sorted(P.nodes()),[1,2,3]) - assert_equal(sorted(P.edges()),[(1,2),(1,3),(2,3)]) - - P=bipartite.projected_graph(G,[0]) - assert_equal(sorted(P.nodes()),[0]) - assert_equal(sorted(P.edges()),[]) - - def test_project_multigraph(self): - G=nx.Graph() - G.add_edge('a',1) - G.add_edge('b',1) - G.add_edge('a',2) - G.add_edge('b',2) - P=bipartite.projected_graph(G,'ab') - assert_edges_equal(P.edges(),[('a','b')]) - P=bipartite.weighted_projected_graph(G,'ab') - assert_edges_equal(P.edges(),[('a','b')]) - P=bipartite.projected_graph(G,'ab',multigraph=True) - assert_edges_equal(P.edges(),[('a','b'),('a','b')]) - - def test_project_collaboration(self): - G=nx.Graph() - G.add_edge('a',1) - G.add_edge('b',1) - G.add_edge('b',2) - G.add_edge('c',2) - G.add_edge('c',3) - G.add_edge('c',4) - G.add_edge('b',4) - P=bipartite.collaboration_weighted_projected_graph(G,'abc') - assert_equal(P['a']['b']['weight'],1) - assert_equal(P['b']['c']['weight'],2) - - def test_directed_projection(self): - G=nx.DiGraph() - G.add_edge('A',1) - G.add_edge(1,'B') - G.add_edge('A',2) - G.add_edge('B',2) - P=bipartite.projected_graph(G,'AB') - assert_equal(sorted(P.edges()),[('A','B')]) - P=bipartite.weighted_projected_graph(G,'AB') - assert_equal(sorted(P.edges()),[('A','B')]) - assert_equal(P['A']['B']['weight'],1) - - P=bipartite.projected_graph(G,'AB',multigraph=True) - assert_equal(sorted(P.edges()),[('A','B')]) - - G=nx.DiGraph() - G.add_edge('A',1) - G.add_edge(1,'B') - G.add_edge('A',2) - G.add_edge(2,'B') - P=bipartite.projected_graph(G,'AB') - assert_equal(sorted(P.edges()),[('A','B')]) - P=bipartite.weighted_projected_graph(G,'AB') - assert_equal(sorted(P.edges()),[('A','B')]) - assert_equal(P['A']['B']['weight'],2) - - P=bipartite.projected_graph(G,'AB',multigraph=True) - assert_equal(sorted(P.edges()),[('A','B'),('A','B')]) - - -class TestBipartiteWeightedProjection: - - def setUp(self): - # Tore Opsahl's example - # http://toreopsahl.com/2009/05/01/projecting-two-mode-networks-onto-weighted-one-mode-networks/ - self.G=nx.Graph() - self.G.add_edge('A',1) - self.G.add_edge('A',2) - self.G.add_edge('B',1) - self.G.add_edge('B',2) - self.G.add_edge('B',3) - self.G.add_edge('B',4) - self.G.add_edge('B',5) - self.G.add_edge('C',1) - self.G.add_edge('D',3) - self.G.add_edge('E',4) - self.G.add_edge('E',5) - self.G.add_edge('E',6) - self.G.add_edge('F',6) - # Graph based on figure 6 from Newman (2001) - self.N=nx.Graph() - self.N.add_edge('A',1) - self.N.add_edge('A',2) - self.N.add_edge('A',3) - self.N.add_edge('B',1) - self.N.add_edge('B',2) - self.N.add_edge('B',3) - self.N.add_edge('C',1) - self.N.add_edge('D',1) - self.N.add_edge('E',3) - - def test_project_weighted_shared(self): - edges=[('A','B',2), - ('A','C',1), - ('B','C',1), - ('B','D',1), - ('B','E',2), - ('E','F',1)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.weighted_projected_graph(self.G,'ABCDEF') - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - edges=[('A','B',3), - ('A','E',1), - ('A','C',1), - ('A','D',1), - ('B','E',1), - ('B','C',1), - ('B','D',1), - ('C','D',1)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.weighted_projected_graph(self.N,'ABCDE') - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - def test_project_weighted_newman(self): - edges=[('A','B',1.5), - ('A','C',0.5), - ('B','C',0.5), - ('B','D',1), - ('B','E',2), - ('E','F',1)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.collaboration_weighted_projected_graph(self.G,'ABCDEF') - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - edges=[('A','B',11/6.0), - ('A','E',1/2.0), - ('A','C',1/3.0), - ('A','D',1/3.0), - ('B','E',1/2.0), - ('B','C',1/3.0), - ('B','D',1/3.0), - ('C','D',1/3.0)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.collaboration_weighted_projected_graph(self.N,'ABCDE') - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - def test_project_weighted_ratio(self): - edges=[('A','B',2/6.0), - ('A','C',1/6.0), - ('B','C',1/6.0), - ('B','D',1/6.0), - ('B','E',2/6.0), - ('E','F',1/6.0)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.weighted_projected_graph(self.G, 'ABCDEF', ratio=True) - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - edges=[('A','B',3/3.0), - ('A','E',1/3.0), - ('A','C',1/3.0), - ('A','D',1/3.0), - ('B','E',1/3.0), - ('B','C',1/3.0), - ('B','D',1/3.0), - ('C','D',1/3.0)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.weighted_projected_graph(self.N, 'ABCDE', ratio=True) - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - def test_project_weighted_overlap(self): - edges=[('A','B',2/2.0), - ('A','C',1/1.0), - ('B','C',1/1.0), - ('B','D',1/1.0), - ('B','E',2/3.0), - ('E','F',1/1.0)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.overlap_weighted_projected_graph(self.G,'ABCDEF', jaccard=False) - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - edges=[('A','B',3/3.0), - ('A','E',1/1.0), - ('A','C',1/1.0), - ('A','D',1/1.0), - ('B','E',1/1.0), - ('B','C',1/1.0), - ('B','D',1/1.0), - ('C','D',1/1.0)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.overlap_weighted_projected_graph(self.N,'ABCDE', jaccard=False) - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - def test_project_weighted_jaccard(self): - edges=[('A','B',2/5.0), - ('A','C',1/2.0), - ('B','C',1/5.0), - ('B','D',1/5.0), - ('B','E',2/6.0), - ('E','F',1/3.0)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.overlap_weighted_projected_graph(self.G,'ABCDEF') - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - edges=[('A','B',3/3.0), - ('A','E',1/3.0), - ('A','C',1/3.0), - ('A','D',1/3.0), - ('B','E',1/3.0), - ('B','C',1/3.0), - ('B','D',1/3.0), - ('C','D',1/1.0)] - Panswer=nx.Graph() - Panswer.add_weighted_edges_from(edges) - P=bipartite.overlap_weighted_projected_graph(self.N,'ABCDE') - assert_equal(P.edges(),Panswer.edges()) - for u,v in P.edges(): - assert_equal(P[u][v]['weight'],Panswer[u][v]['weight']) - - def test_generic_weighted_projected_graph_simple(self): - def shared(G, u, v): - return len(set(G[u]) & set(G[v])) - B = nx.path_graph(5) - G = bipartite.generic_weighted_projected_graph(B, [0, 2, 4], weight_function=shared) - assert_equal(sorted(G.nodes()), [0, 2, 4]) - assert_equal(G.edges(data=True), - [(0, 2, {'weight': 1}), (2, 4, {'weight': 1})] ) - - G = bipartite.generic_weighted_projected_graph(B, [0, 2, 4]) - assert_equal(sorted(G.nodes()), [0, 2, 4]) - assert_equal(G.edges(data=True), - [(0, 2, {'weight': 1}), (2, 4, {'weight': 1})] ) - B = nx.DiGraph() - B.add_path(list(range(5))) - G = bipartite.generic_weighted_projected_graph(B, [0, 2, 4]) - assert_equal(sorted(G.nodes()), [0, 2, 4]) - assert_equal(G.edges(data=True), - [(0, 2, {'weight': 1}), (2, 4, {'weight': 1})] ) - - def test_generic_weighted_projected_graph_custom(self): - def jaccard(G, u, v): - unbrs = set(G[u]) - vnbrs = set(G[v]) - return float(len(unbrs & vnbrs)) / len(unbrs | vnbrs) - def my_weight(G, u, v, weight='weight'): - w = 0 - for nbr in set(G[u]) & set(G[v]): - w += G.edge[u][nbr].get(weight, 1) + G.edge[v][nbr].get(weight, 1) - return w - B = nx.complete_bipartite_graph(2,2) - for i,(u,v) in enumerate(B.edges()): - B.edge[u][v]['weight'] = i + 1 - G = bipartite.generic_weighted_projected_graph(B, [0, 1], - weight_function=jaccard) - assert_equal(G.edges(data=True), [(0, 1, {'weight': 1.0})]) - G = bipartite.generic_weighted_projected_graph(B, [0, 1], - weight_function=my_weight) - assert_equal(G.edges(data=True), [(0, 1, {'weight': 10})]) - G = bipartite.generic_weighted_projected_graph(B, [0, 1]) - assert_equal(G.edges(data=True), [(0, 1, {'weight': 2})]) |