Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.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.testing import almost_equal | |
3 | |
4 | |
5 class TestSubsetBetweennessCentrality: | |
6 def test_K5(self): | |
7 """Betweenness Centrality Subset: K5""" | |
8 G = nx.complete_graph(5) | |
9 b = nx.betweenness_centrality_subset( | |
10 G, sources=[0], targets=[1, 3], weight=None | |
11 ) | |
12 b_answer = {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0} | |
13 for n in sorted(G): | |
14 assert almost_equal(b[n], b_answer[n]) | |
15 | |
16 def test_P5_directed(self): | |
17 """Betweenness Centrality Subset: P5 directed""" | |
18 G = nx.DiGraph() | |
19 nx.add_path(G, range(5)) | |
20 b_answer = {0: 0, 1: 1, 2: 1, 3: 0, 4: 0, 5: 0} | |
21 b = nx.betweenness_centrality_subset(G, sources=[0], targets=[3], weight=None) | |
22 for n in sorted(G): | |
23 assert almost_equal(b[n], b_answer[n]) | |
24 | |
25 def test_P5(self): | |
26 """Betweenness Centrality Subset: P5""" | |
27 G = nx.Graph() | |
28 nx.add_path(G, range(5)) | |
29 b_answer = {0: 0, 1: 0.5, 2: 0.5, 3: 0, 4: 0, 5: 0} | |
30 b = nx.betweenness_centrality_subset(G, sources=[0], targets=[3], weight=None) | |
31 for n in sorted(G): | |
32 assert almost_equal(b[n], b_answer[n]) | |
33 | |
34 def test_P5_multiple_target(self): | |
35 """Betweenness Centrality Subset: P5 multiple target""" | |
36 G = nx.Graph() | |
37 nx.add_path(G, range(5)) | |
38 b_answer = {0: 0, 1: 1, 2: 1, 3: 0.5, 4: 0, 5: 0} | |
39 b = nx.betweenness_centrality_subset( | |
40 G, sources=[0], targets=[3, 4], weight=None | |
41 ) | |
42 for n in sorted(G): | |
43 assert almost_equal(b[n], b_answer[n]) | |
44 | |
45 def test_box(self): | |
46 """Betweenness Centrality Subset: box""" | |
47 G = nx.Graph() | |
48 G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) | |
49 b_answer = {0: 0, 1: 0.25, 2: 0.25, 3: 0} | |
50 b = nx.betweenness_centrality_subset(G, sources=[0], targets=[3], weight=None) | |
51 for n in sorted(G): | |
52 assert almost_equal(b[n], b_answer[n]) | |
53 | |
54 def test_box_and_path(self): | |
55 """Betweenness Centrality Subset: box and path""" | |
56 G = nx.Graph() | |
57 G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3), (3, 4), (4, 5)]) | |
58 b_answer = {0: 0, 1: 0.5, 2: 0.5, 3: 0.5, 4: 0, 5: 0} | |
59 b = nx.betweenness_centrality_subset( | |
60 G, sources=[0], targets=[3, 4], weight=None | |
61 ) | |
62 for n in sorted(G): | |
63 assert almost_equal(b[n], b_answer[n]) | |
64 | |
65 def test_box_and_path2(self): | |
66 """Betweenness Centrality Subset: box and path multiple target""" | |
67 G = nx.Graph() | |
68 G.add_edges_from([(0, 1), (1, 2), (2, 3), (1, 20), (20, 3), (3, 4)]) | |
69 b_answer = {0: 0, 1: 1.0, 2: 0.5, 20: 0.5, 3: 0.5, 4: 0} | |
70 b = nx.betweenness_centrality_subset( | |
71 G, sources=[0], targets=[3, 4], weight=None | |
72 ) | |
73 for n in sorted(G): | |
74 assert almost_equal(b[n], b_answer[n]) | |
75 | |
76 def test_diamond_multi_path(self): | |
77 """Betweenness Centrality Subset: Diamond Multi Path""" | |
78 G = nx.Graph() | |
79 G.add_edges_from( | |
80 [ | |
81 (1, 2), | |
82 (1, 3), | |
83 (1, 4), | |
84 (1, 5), | |
85 (1, 10), | |
86 (10, 11), | |
87 (11, 12), | |
88 (12, 9), | |
89 (2, 6), | |
90 (3, 6), | |
91 (4, 6), | |
92 (5, 7), | |
93 (7, 8), | |
94 (6, 8), | |
95 (8, 9), | |
96 ] | |
97 ) | |
98 b = nx.betweenness_centrality_subset(G, sources=[1], targets=[9], weight=None) | |
99 | |
100 expected_b = { | |
101 1: 0, | |
102 2: 1.0 / 10, | |
103 3: 1.0 / 10, | |
104 4: 1.0 / 10, | |
105 5: 1.0 / 10, | |
106 6: 3.0 / 10, | |
107 7: 1.0 / 10, | |
108 8: 4.0 / 10, | |
109 9: 0, | |
110 10: 1.0 / 10, | |
111 11: 1.0 / 10, | |
112 12: 1.0 / 10, | |
113 } | |
114 | |
115 for n in sorted(G): | |
116 assert almost_equal(b[n], expected_b[n]) | |
117 | |
118 | |
119 class TestBetweennessCentralitySources: | |
120 def test_K5(self): | |
121 """Betweenness Centrality Sources: K5""" | |
122 G = nx.complete_graph(5) | |
123 b = nx.betweenness_centrality_source(G, weight=None, normalized=False) | |
124 b_answer = {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0} | |
125 for n in sorted(G): | |
126 assert almost_equal(b[n], b_answer[n]) | |
127 | |
128 def test_P3(self): | |
129 """Betweenness Centrality Sources: P3""" | |
130 G = nx.path_graph(3) | |
131 b_answer = {0: 0.0, 1: 1.0, 2: 0.0} | |
132 b = nx.betweenness_centrality_source(G, weight=None, normalized=True) | |
133 for n in sorted(G): | |
134 assert almost_equal(b[n], b_answer[n]) | |
135 | |
136 | |
137 class TestEdgeSubsetBetweennessCentrality: | |
138 def test_K5(self): | |
139 """Edge betweenness subset centrality: K5""" | |
140 G = nx.complete_graph(5) | |
141 b = nx.edge_betweenness_centrality_subset( | |
142 G, sources=[0], targets=[1, 3], weight=None | |
143 ) | |
144 b_answer = dict.fromkeys(G.edges(), 0) | |
145 b_answer[(0, 3)] = b_answer[(0, 1)] = 0.5 | |
146 for n in sorted(G.edges()): | |
147 assert almost_equal(b[n], b_answer[n]) | |
148 | |
149 def test_P5_directed(self): | |
150 """Edge betweenness subset centrality: P5 directed""" | |
151 G = nx.DiGraph() | |
152 nx.add_path(G, range(5)) | |
153 b_answer = dict.fromkeys(G.edges(), 0) | |
154 b_answer[(0, 1)] = b_answer[(1, 2)] = b_answer[(2, 3)] = 1 | |
155 b = nx.edge_betweenness_centrality_subset( | |
156 G, sources=[0], targets=[3], weight=None | |
157 ) | |
158 for n in sorted(G.edges()): | |
159 assert almost_equal(b[n], b_answer[n]) | |
160 | |
161 def test_P5(self): | |
162 """Edge betweenness subset centrality: P5""" | |
163 G = nx.Graph() | |
164 nx.add_path(G, range(5)) | |
165 b_answer = dict.fromkeys(G.edges(), 0) | |
166 b_answer[(0, 1)] = b_answer[(1, 2)] = b_answer[(2, 3)] = 0.5 | |
167 b = nx.edge_betweenness_centrality_subset( | |
168 G, sources=[0], targets=[3], weight=None | |
169 ) | |
170 for n in sorted(G.edges()): | |
171 assert almost_equal(b[n], b_answer[n]) | |
172 | |
173 def test_P5_multiple_target(self): | |
174 """Edge betweenness subset centrality: P5 multiple target""" | |
175 G = nx.Graph() | |
176 nx.add_path(G, range(5)) | |
177 b_answer = dict.fromkeys(G.edges(), 0) | |
178 b_answer[(0, 1)] = b_answer[(1, 2)] = b_answer[(2, 3)] = 1 | |
179 b_answer[(3, 4)] = 0.5 | |
180 b = nx.edge_betweenness_centrality_subset( | |
181 G, sources=[0], targets=[3, 4], weight=None | |
182 ) | |
183 for n in sorted(G.edges()): | |
184 assert almost_equal(b[n], b_answer[n]) | |
185 | |
186 def test_box(self): | |
187 """Edge betweenness subset centrality: box""" | |
188 G = nx.Graph() | |
189 G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) | |
190 b_answer = dict.fromkeys(G.edges(), 0) | |
191 b_answer[(0, 1)] = b_answer[(0, 2)] = 0.25 | |
192 b_answer[(1, 3)] = b_answer[(2, 3)] = 0.25 | |
193 b = nx.edge_betweenness_centrality_subset( | |
194 G, sources=[0], targets=[3], weight=None | |
195 ) | |
196 for n in sorted(G.edges()): | |
197 assert almost_equal(b[n], b_answer[n]) | |
198 | |
199 def test_box_and_path(self): | |
200 """Edge betweenness subset centrality: box and path""" | |
201 G = nx.Graph() | |
202 G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3), (3, 4), (4, 5)]) | |
203 b_answer = dict.fromkeys(G.edges(), 0) | |
204 b_answer[(0, 1)] = b_answer[(0, 2)] = 0.5 | |
205 b_answer[(1, 3)] = b_answer[(2, 3)] = 0.5 | |
206 b_answer[(3, 4)] = 0.5 | |
207 b = nx.edge_betweenness_centrality_subset( | |
208 G, sources=[0], targets=[3, 4], weight=None | |
209 ) | |
210 for n in sorted(G.edges()): | |
211 assert almost_equal(b[n], b_answer[n]) | |
212 | |
213 def test_box_and_path2(self): | |
214 """Edge betweenness subset centrality: box and path multiple target""" | |
215 G = nx.Graph() | |
216 G.add_edges_from([(0, 1), (1, 2), (2, 3), (1, 20), (20, 3), (3, 4)]) | |
217 b_answer = dict.fromkeys(G.edges(), 0) | |
218 b_answer[(0, 1)] = 1.0 | |
219 b_answer[(1, 20)] = b_answer[(3, 20)] = 0.5 | |
220 b_answer[(1, 2)] = b_answer[(2, 3)] = 0.5 | |
221 b_answer[(3, 4)] = 0.5 | |
222 b = nx.edge_betweenness_centrality_subset( | |
223 G, sources=[0], targets=[3, 4], weight=None | |
224 ) | |
225 for n in sorted(G.edges()): | |
226 assert almost_equal(b[n], b_answer[n]) |