Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/networkx/algorithms/centrality/tests/test_current_flow_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 pytest | |
2 | |
3 np = pytest.importorskip("numpy") | |
4 scipy = pytest.importorskip("scipy") | |
5 | |
6 import networkx as nx | |
7 from networkx.testing import almost_equal | |
8 | |
9 from networkx import edge_current_flow_betweenness_centrality as edge_current_flow | |
10 | |
11 from networkx import ( | |
12 edge_current_flow_betweenness_centrality_subset as edge_current_flow_subset, | |
13 ) | |
14 | |
15 | |
16 class TestFlowBetweennessCentrality: | |
17 def test_K4_normalized(self): | |
18 """Betweenness centrality: K4""" | |
19 G = nx.complete_graph(4) | |
20 b = nx.current_flow_betweenness_centrality_subset( | |
21 G, list(G), list(G), normalized=True | |
22 ) | |
23 b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) | |
24 for n in sorted(G): | |
25 assert almost_equal(b[n], b_answer[n]) | |
26 | |
27 def test_K4(self): | |
28 """Betweenness centrality: K4""" | |
29 G = nx.complete_graph(4) | |
30 b = nx.current_flow_betweenness_centrality_subset( | |
31 G, list(G), list(G), normalized=True | |
32 ) | |
33 b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) | |
34 for n in sorted(G): | |
35 assert almost_equal(b[n], b_answer[n]) | |
36 # test weighted network | |
37 G.add_edge(0, 1, weight=0.5, other=0.3) | |
38 b = nx.current_flow_betweenness_centrality_subset( | |
39 G, list(G), list(G), normalized=True, weight=None | |
40 ) | |
41 for n in sorted(G): | |
42 assert almost_equal(b[n], b_answer[n]) | |
43 b = nx.current_flow_betweenness_centrality_subset( | |
44 G, list(G), list(G), normalized=True | |
45 ) | |
46 b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) | |
47 for n in sorted(G): | |
48 assert almost_equal(b[n], b_answer[n]) | |
49 b = nx.current_flow_betweenness_centrality_subset( | |
50 G, list(G), list(G), normalized=True, weight="other" | |
51 ) | |
52 b_answer = nx.current_flow_betweenness_centrality( | |
53 G, normalized=True, weight="other" | |
54 ) | |
55 for n in sorted(G): | |
56 assert almost_equal(b[n], b_answer[n]) | |
57 | |
58 def test_P4_normalized(self): | |
59 """Betweenness centrality: P4 normalized""" | |
60 G = nx.path_graph(4) | |
61 b = nx.current_flow_betweenness_centrality_subset( | |
62 G, list(G), list(G), normalized=True | |
63 ) | |
64 b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) | |
65 for n in sorted(G): | |
66 assert almost_equal(b[n], b_answer[n]) | |
67 | |
68 def test_P4(self): | |
69 """Betweenness centrality: P4""" | |
70 G = nx.path_graph(4) | |
71 b = nx.current_flow_betweenness_centrality_subset( | |
72 G, list(G), list(G), normalized=True | |
73 ) | |
74 b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) | |
75 for n in sorted(G): | |
76 assert almost_equal(b[n], b_answer[n]) | |
77 | |
78 def test_star(self): | |
79 """Betweenness centrality: star """ | |
80 G = nx.Graph() | |
81 nx.add_star(G, ["a", "b", "c", "d"]) | |
82 b = nx.current_flow_betweenness_centrality_subset( | |
83 G, list(G), list(G), normalized=True | |
84 ) | |
85 b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) | |
86 for n in sorted(G): | |
87 assert almost_equal(b[n], b_answer[n]) | |
88 | |
89 | |
90 # class TestWeightedFlowBetweennessCentrality(): | |
91 # pass | |
92 | |
93 | |
94 class TestEdgeFlowBetweennessCentrality: | |
95 def test_K4_normalized(self): | |
96 """Betweenness centrality: K4""" | |
97 G = nx.complete_graph(4) | |
98 b = edge_current_flow_subset(G, list(G), list(G), normalized=True) | |
99 b_answer = edge_current_flow(G, normalized=True) | |
100 for (s, t), v1 in b_answer.items(): | |
101 v2 = b.get((s, t), b.get((t, s))) | |
102 assert almost_equal(v1, v2) | |
103 | |
104 def test_K4(self): | |
105 """Betweenness centrality: K4""" | |
106 G = nx.complete_graph(4) | |
107 b = edge_current_flow_subset(G, list(G), list(G), normalized=False) | |
108 b_answer = edge_current_flow(G, normalized=False) | |
109 for (s, t), v1 in b_answer.items(): | |
110 v2 = b.get((s, t), b.get((t, s))) | |
111 assert almost_equal(v1, v2) | |
112 # test weighted network | |
113 G.add_edge(0, 1, weight=0.5, other=0.3) | |
114 b = edge_current_flow_subset(G, list(G), list(G), normalized=False, weight=None) | |
115 # weight is None => same as unweighted network | |
116 for (s, t), v1 in b_answer.items(): | |
117 v2 = b.get((s, t), b.get((t, s))) | |
118 assert almost_equal(v1, v2) | |
119 | |
120 b = edge_current_flow_subset(G, list(G), list(G), normalized=False) | |
121 b_answer = edge_current_flow(G, normalized=False) | |
122 for (s, t), v1 in b_answer.items(): | |
123 v2 = b.get((s, t), b.get((t, s))) | |
124 assert almost_equal(v1, v2) | |
125 | |
126 b = edge_current_flow_subset( | |
127 G, list(G), list(G), normalized=False, weight="other" | |
128 ) | |
129 b_answer = edge_current_flow(G, normalized=False, weight="other") | |
130 for (s, t), v1 in b_answer.items(): | |
131 v2 = b.get((s, t), b.get((t, s))) | |
132 assert almost_equal(v1, v2) | |
133 | |
134 def test_C4(self): | |
135 """Edge betweenness centrality: C4""" | |
136 G = nx.cycle_graph(4) | |
137 b = edge_current_flow_subset(G, list(G), list(G), normalized=True) | |
138 b_answer = edge_current_flow(G, normalized=True) | |
139 for (s, t), v1 in b_answer.items(): | |
140 v2 = b.get((s, t), b.get((t, s))) | |
141 assert almost_equal(v1, v2) | |
142 | |
143 def test_P4(self): | |
144 """Edge betweenness centrality: P4""" | |
145 G = nx.path_graph(4) | |
146 b = edge_current_flow_subset(G, list(G), list(G), normalized=True) | |
147 b_answer = edge_current_flow(G, normalized=True) | |
148 for (s, t), v1 in b_answer.items(): | |
149 v2 = b.get((s, t), b.get((t, s))) | |
150 assert almost_equal(v1, v2) |