Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/networkx/algorithms/bipartite/tests/test_centrality.py @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4f3585e2f14b |
---|---|
1 import networkx as nx | |
2 from networkx.algorithms import bipartite | |
3 from networkx.testing import almost_equal | |
4 | |
5 | |
6 class TestBipartiteCentrality: | |
7 @classmethod | |
8 def setup_class(cls): | |
9 cls.P4 = nx.path_graph(4) | |
10 cls.K3 = nx.complete_bipartite_graph(3, 3) | |
11 cls.C4 = nx.cycle_graph(4) | |
12 cls.davis = nx.davis_southern_women_graph() | |
13 cls.top_nodes = [ | |
14 n for n, d in cls.davis.nodes(data=True) if d["bipartite"] == 0 | |
15 ] | |
16 | |
17 def test_degree_centrality(self): | |
18 d = bipartite.degree_centrality(self.P4, [1, 3]) | |
19 answer = {0: 0.5, 1: 1.0, 2: 1.0, 3: 0.5} | |
20 assert d == answer | |
21 d = bipartite.degree_centrality(self.K3, [0, 1, 2]) | |
22 answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0} | |
23 assert d == answer | |
24 d = bipartite.degree_centrality(self.C4, [0, 2]) | |
25 answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0} | |
26 assert d == answer | |
27 | |
28 def test_betweenness_centrality(self): | |
29 c = bipartite.betweenness_centrality(self.P4, [1, 3]) | |
30 answer = {0: 0.0, 1: 1.0, 2: 1.0, 3: 0.0} | |
31 assert c == answer | |
32 c = bipartite.betweenness_centrality(self.K3, [0, 1, 2]) | |
33 answer = {0: 0.125, 1: 0.125, 2: 0.125, 3: 0.125, 4: 0.125, 5: 0.125} | |
34 assert c == answer | |
35 c = bipartite.betweenness_centrality(self.C4, [0, 2]) | |
36 answer = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25} | |
37 assert c == answer | |
38 | |
39 def test_closeness_centrality(self): | |
40 c = bipartite.closeness_centrality(self.P4, [1, 3]) | |
41 answer = {0: 2.0 / 3, 1: 1.0, 2: 1.0, 3: 2.0 / 3} | |
42 assert c == answer | |
43 c = bipartite.closeness_centrality(self.K3, [0, 1, 2]) | |
44 answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0} | |
45 assert c == answer | |
46 c = bipartite.closeness_centrality(self.C4, [0, 2]) | |
47 answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0} | |
48 assert c == answer | |
49 G = nx.Graph() | |
50 G.add_node(0) | |
51 G.add_node(1) | |
52 c = bipartite.closeness_centrality(G, [0]) | |
53 assert c == {1: 0.0} | |
54 c = bipartite.closeness_centrality(G, [1]) | |
55 assert c == {1: 0.0} | |
56 | |
57 def test_davis_degree_centrality(self): | |
58 G = self.davis | |
59 deg = bipartite.degree_centrality(G, self.top_nodes) | |
60 answer = { | |
61 "E8": 0.78, | |
62 "E9": 0.67, | |
63 "E7": 0.56, | |
64 "Nora Fayette": 0.57, | |
65 "Evelyn Jefferson": 0.57, | |
66 "Theresa Anderson": 0.57, | |
67 "E6": 0.44, | |
68 "Sylvia Avondale": 0.50, | |
69 "Laura Mandeville": 0.50, | |
70 "Brenda Rogers": 0.50, | |
71 "Katherina Rogers": 0.43, | |
72 "E5": 0.44, | |
73 "Helen Lloyd": 0.36, | |
74 "E3": 0.33, | |
75 "Ruth DeSand": 0.29, | |
76 "Verne Sanderson": 0.29, | |
77 "E12": 0.33, | |
78 "Myra Liddel": 0.29, | |
79 "E11": 0.22, | |
80 "Eleanor Nye": 0.29, | |
81 "Frances Anderson": 0.29, | |
82 "Pearl Oglethorpe": 0.21, | |
83 "E4": 0.22, | |
84 "Charlotte McDowd": 0.29, | |
85 "E10": 0.28, | |
86 "Olivia Carleton": 0.14, | |
87 "Flora Price": 0.14, | |
88 "E2": 0.17, | |
89 "E1": 0.17, | |
90 "Dorothy Murchison": 0.14, | |
91 "E13": 0.17, | |
92 "E14": 0.17, | |
93 } | |
94 for node, value in answer.items(): | |
95 assert almost_equal(value, deg[node], places=2) | |
96 | |
97 def test_davis_betweenness_centrality(self): | |
98 G = self.davis | |
99 bet = bipartite.betweenness_centrality(G, self.top_nodes) | |
100 answer = { | |
101 "E8": 0.24, | |
102 "E9": 0.23, | |
103 "E7": 0.13, | |
104 "Nora Fayette": 0.11, | |
105 "Evelyn Jefferson": 0.10, | |
106 "Theresa Anderson": 0.09, | |
107 "E6": 0.07, | |
108 "Sylvia Avondale": 0.07, | |
109 "Laura Mandeville": 0.05, | |
110 "Brenda Rogers": 0.05, | |
111 "Katherina Rogers": 0.05, | |
112 "E5": 0.04, | |
113 "Helen Lloyd": 0.04, | |
114 "E3": 0.02, | |
115 "Ruth DeSand": 0.02, | |
116 "Verne Sanderson": 0.02, | |
117 "E12": 0.02, | |
118 "Myra Liddel": 0.02, | |
119 "E11": 0.02, | |
120 "Eleanor Nye": 0.01, | |
121 "Frances Anderson": 0.01, | |
122 "Pearl Oglethorpe": 0.01, | |
123 "E4": 0.01, | |
124 "Charlotte McDowd": 0.01, | |
125 "E10": 0.01, | |
126 "Olivia Carleton": 0.01, | |
127 "Flora Price": 0.01, | |
128 "E2": 0.00, | |
129 "E1": 0.00, | |
130 "Dorothy Murchison": 0.00, | |
131 "E13": 0.00, | |
132 "E14": 0.00, | |
133 } | |
134 for node, value in answer.items(): | |
135 assert almost_equal(value, bet[node], places=2) | |
136 | |
137 def test_davis_closeness_centrality(self): | |
138 G = self.davis | |
139 clos = bipartite.closeness_centrality(G, self.top_nodes) | |
140 answer = { | |
141 "E8": 0.85, | |
142 "E9": 0.79, | |
143 "E7": 0.73, | |
144 "Nora Fayette": 0.80, | |
145 "Evelyn Jefferson": 0.80, | |
146 "Theresa Anderson": 0.80, | |
147 "E6": 0.69, | |
148 "Sylvia Avondale": 0.77, | |
149 "Laura Mandeville": 0.73, | |
150 "Brenda Rogers": 0.73, | |
151 "Katherina Rogers": 0.73, | |
152 "E5": 0.59, | |
153 "Helen Lloyd": 0.73, | |
154 "E3": 0.56, | |
155 "Ruth DeSand": 0.71, | |
156 "Verne Sanderson": 0.71, | |
157 "E12": 0.56, | |
158 "Myra Liddel": 0.69, | |
159 "E11": 0.54, | |
160 "Eleanor Nye": 0.67, | |
161 "Frances Anderson": 0.67, | |
162 "Pearl Oglethorpe": 0.67, | |
163 "E4": 0.54, | |
164 "Charlotte McDowd": 0.60, | |
165 "E10": 0.55, | |
166 "Olivia Carleton": 0.59, | |
167 "Flora Price": 0.59, | |
168 "E2": 0.52, | |
169 "E1": 0.52, | |
170 "Dorothy Murchison": 0.65, | |
171 "E13": 0.52, | |
172 "E14": 0.52, | |
173 } | |
174 for node, value in answer.items(): | |
175 assert almost_equal(value, clos[node], places=2) |