Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/networkx/algorithms/centrality/tests/test_group.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 """ | |
| 2 Tests for Group Centrality Measures | |
| 3 """ | |
| 4 | |
| 5 | |
| 6 import pytest | |
| 7 import networkx as nx | |
| 8 | |
| 9 | |
| 10 class TestGroupBetweennessCentrality: | |
| 11 def test_group_betweenness_single_node(self): | |
| 12 """ | |
| 13 Group betweenness centrality for single node group | |
| 14 """ | |
| 15 G = nx.path_graph(5) | |
| 16 C = [1] | |
| 17 b = nx.group_betweenness_centrality(G, C, weight=None, normalized=False) | |
| 18 b_answer = 3.0 | |
| 19 assert b == b_answer | |
| 20 | |
| 21 def test_group_betweenness_normalized(self): | |
| 22 """ | |
| 23 Group betweenness centrality for group with more than | |
| 24 1 node and normalized | |
| 25 """ | |
| 26 G = nx.path_graph(5) | |
| 27 C = [1, 3] | |
| 28 b = nx.group_betweenness_centrality(G, C, weight=None, normalized=True) | |
| 29 b_answer = 1.0 | |
| 30 assert b == b_answer | |
| 31 | |
| 32 def test_group_betweenness_value_zero(self): | |
| 33 """ | |
| 34 Group betweenness centrality value of 0 | |
| 35 """ | |
| 36 G = nx.cycle_graph(6) | |
| 37 C = [0, 1, 5] | |
| 38 b = nx.group_betweenness_centrality(G, C, weight=None) | |
| 39 b_answer = 0.0 | |
| 40 assert b == b_answer | |
| 41 | |
| 42 def test_group_betweenness_disconnected_graph(self): | |
| 43 """ | |
| 44 Group betweenness centrality in a disconnected graph | |
| 45 """ | |
| 46 G = nx.path_graph(5) | |
| 47 G.remove_edge(0, 1) | |
| 48 C = [1] | |
| 49 b = nx.group_betweenness_centrality(G, C, weight=None) | |
| 50 b_answer = 0.0 | |
| 51 assert b == b_answer | |
| 52 | |
| 53 def test_group_betweenness_node_not_in_graph(self): | |
| 54 """ | |
| 55 Node(s) in C not in graph, raises NodeNotFound exception | |
| 56 """ | |
| 57 with pytest.raises(nx.NodeNotFound): | |
| 58 b = nx.group_betweenness_centrality(nx.path_graph(5), [6, 7, 8]) | |
| 59 | |
| 60 | |
| 61 class TestGroupClosenessCentrality: | |
| 62 def test_group_closeness_single_node(self): | |
| 63 """ | |
| 64 Group closeness centrality for a single node group | |
| 65 """ | |
| 66 G = nx.path_graph(5) | |
| 67 c = nx.group_closeness_centrality(G, [1]) | |
| 68 c_answer = nx.closeness_centrality(G, 1) | |
| 69 assert c == c_answer | |
| 70 | |
| 71 def test_group_closeness_disconnected(self): | |
| 72 """ | |
| 73 Group closeness centrality for a disconnected graph | |
| 74 """ | |
| 75 G = nx.Graph() | |
| 76 G.add_nodes_from([1, 2, 3, 4]) | |
| 77 c = nx.group_closeness_centrality(G, [1, 2]) | |
| 78 c_answer = 0 | |
| 79 assert c == c_answer | |
| 80 | |
| 81 def test_group_closeness_multiple_node(self): | |
| 82 """ | |
| 83 Group closeness centrality for a group with more than | |
| 84 1 node | |
| 85 """ | |
| 86 G = nx.path_graph(4) | |
| 87 c = nx.group_closeness_centrality(G, [1, 2]) | |
| 88 c_answer = 1 | |
| 89 assert c == c_answer | |
| 90 | |
| 91 def test_group_closeness_node_not_in_graph(self): | |
| 92 """ | |
| 93 Node(s) in S not in graph, raises NodeNotFound exception | |
| 94 """ | |
| 95 with pytest.raises(nx.NodeNotFound): | |
| 96 c = nx.group_closeness_centrality(nx.path_graph(5), [6, 7, 8]) | |
| 97 | |
| 98 | |
| 99 class TestGroupDegreeCentrality: | |
| 100 def test_group_degree_centrality_single_node(self): | |
| 101 """ | |
| 102 Group degree centrality for a single node group | |
| 103 """ | |
| 104 G = nx.path_graph(4) | |
| 105 d = nx.group_degree_centrality(G, [1]) | |
| 106 d_answer = nx.degree_centrality(G)[1] | |
| 107 assert d == d_answer | |
| 108 | |
| 109 def test_group_degree_centrality_multiple_node(self): | |
| 110 """ | |
| 111 Group degree centrality for group with more than | |
| 112 1 node | |
| 113 """ | |
| 114 G = nx.Graph() | |
| 115 G.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8]) | |
| 116 G.add_edges_from( | |
| 117 [(1, 2), (1, 3), (1, 6), (1, 7), (1, 8), (2, 3), (2, 4), (2, 5)] | |
| 118 ) | |
| 119 d = nx.group_degree_centrality(G, [1, 2]) | |
| 120 d_answer = 1 | |
| 121 assert d == d_answer | |
| 122 | |
| 123 def test_group_in_degree_centrality(self): | |
| 124 """ | |
| 125 Group in-degree centrality in a DiGraph | |
| 126 """ | |
| 127 G = nx.DiGraph() | |
| 128 G.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8]) | |
| 129 G.add_edges_from( | |
| 130 [(1, 2), (1, 3), (1, 6), (1, 7), (1, 8), (2, 3), (2, 4), (2, 5)] | |
| 131 ) | |
| 132 d = nx.group_in_degree_centrality(G, [1, 2]) | |
| 133 d_answer = 0 | |
| 134 assert d == d_answer | |
| 135 | |
| 136 def test_group_out_degree_centrality(self): | |
| 137 """ | |
| 138 Group out-degree centrality in a DiGraph | |
| 139 """ | |
| 140 G = nx.DiGraph() | |
| 141 G.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8]) | |
| 142 G.add_edges_from( | |
| 143 [(1, 2), (1, 3), (1, 6), (1, 7), (1, 8), (2, 3), (2, 4), (2, 5)] | |
| 144 ) | |
| 145 d = nx.group_out_degree_centrality(G, [1, 2]) | |
| 146 d_answer = 1 | |
| 147 assert d == d_answer | |
| 148 | |
| 149 def test_group_degree_centrality_node_not_in_graph(self): | |
| 150 """ | |
| 151 Node(s) in S not in graph, raises NetworkXError | |
| 152 """ | |
| 153 with pytest.raises(nx.NetworkXError): | |
| 154 b = nx.group_degree_centrality(nx.path_graph(5), [6, 7, 8]) |
