summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/bipartite/tests/test_project.py
diff options
context:
space:
mode:
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.py363
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})])