Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/networkx/algorithms/assortativity/tests/test_connectivity.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 from itertools import permutations | |
| 2 | |
| 3 import pytest | |
| 4 | |
| 5 import networkx as nx | |
| 6 from networkx.testing import almost_equal | |
| 7 | |
| 8 | |
| 9 class TestNeighborConnectivity: | |
| 10 def test_degree_p4(self): | |
| 11 G = nx.path_graph(4) | |
| 12 answer = {1: 2.0, 2: 1.5} | |
| 13 nd = nx.average_degree_connectivity(G) | |
| 14 assert nd == answer | |
| 15 | |
| 16 D = G.to_directed() | |
| 17 answer = {2: 2.0, 4: 1.5} | |
| 18 nd = nx.average_degree_connectivity(D) | |
| 19 assert nd == answer | |
| 20 | |
| 21 answer = {1: 2.0, 2: 1.5} | |
| 22 D = G.to_directed() | |
| 23 nd = nx.average_degree_connectivity(D, source="in", target="in") | |
| 24 assert nd == answer | |
| 25 | |
| 26 D = G.to_directed() | |
| 27 nd = nx.average_degree_connectivity(D, source="in", target="in") | |
| 28 assert nd == answer | |
| 29 | |
| 30 def test_degree_p4_weighted(self): | |
| 31 G = nx.path_graph(4) | |
| 32 G[1][2]["weight"] = 4 | |
| 33 answer = {1: 2.0, 2: 1.8} | |
| 34 nd = nx.average_degree_connectivity(G, weight="weight") | |
| 35 assert nd == answer | |
| 36 answer = {1: 2.0, 2: 1.5} | |
| 37 nd = nx.average_degree_connectivity(G) | |
| 38 assert nd == answer | |
| 39 | |
| 40 D = G.to_directed() | |
| 41 answer = {2: 2.0, 4: 1.8} | |
| 42 nd = nx.average_degree_connectivity(D, weight="weight") | |
| 43 assert nd == answer | |
| 44 | |
| 45 answer = {1: 2.0, 2: 1.8} | |
| 46 D = G.to_directed() | |
| 47 nd = nx.average_degree_connectivity( | |
| 48 D, weight="weight", source="in", target="in" | |
| 49 ) | |
| 50 assert nd == answer | |
| 51 | |
| 52 D = G.to_directed() | |
| 53 nd = nx.average_degree_connectivity( | |
| 54 D, source="in", target="out", weight="weight" | |
| 55 ) | |
| 56 assert nd == answer | |
| 57 | |
| 58 def test_weight_keyword(self): | |
| 59 G = nx.path_graph(4) | |
| 60 G[1][2]["other"] = 4 | |
| 61 answer = {1: 2.0, 2: 1.8} | |
| 62 nd = nx.average_degree_connectivity(G, weight="other") | |
| 63 assert nd == answer | |
| 64 answer = {1: 2.0, 2: 1.5} | |
| 65 nd = nx.average_degree_connectivity(G, weight=None) | |
| 66 assert nd == answer | |
| 67 | |
| 68 D = G.to_directed() | |
| 69 answer = {2: 2.0, 4: 1.8} | |
| 70 nd = nx.average_degree_connectivity(D, weight="other") | |
| 71 assert nd == answer | |
| 72 | |
| 73 answer = {1: 2.0, 2: 1.8} | |
| 74 D = G.to_directed() | |
| 75 nd = nx.average_degree_connectivity(D, weight="other", source="in", target="in") | |
| 76 assert nd == answer | |
| 77 | |
| 78 D = G.to_directed() | |
| 79 nd = nx.average_degree_connectivity(D, weight="other", source="in", target="in") | |
| 80 assert nd == answer | |
| 81 | |
| 82 def test_degree_barrat(self): | |
| 83 G = nx.star_graph(5) | |
| 84 G.add_edges_from([(5, 6), (5, 7), (5, 8), (5, 9)]) | |
| 85 G[0][5]["weight"] = 5 | |
| 86 nd = nx.average_degree_connectivity(G)[5] | |
| 87 assert nd == 1.8 | |
| 88 nd = nx.average_degree_connectivity(G, weight="weight")[5] | |
| 89 assert almost_equal(nd, 3.222222, places=5) | |
| 90 nd = nx.k_nearest_neighbors(G, weight="weight")[5] | |
| 91 assert almost_equal(nd, 3.222222, places=5) | |
| 92 | |
| 93 def test_zero_deg(self): | |
| 94 G = nx.DiGraph() | |
| 95 G.add_edge(1, 2) | |
| 96 G.add_edge(1, 3) | |
| 97 G.add_edge(1, 4) | |
| 98 c = nx.average_degree_connectivity(G) | |
| 99 assert c == {1: 0, 3: 1} | |
| 100 c = nx.average_degree_connectivity(G, source="in", target="in") | |
| 101 assert c == {0: 0, 1: 0} | |
| 102 c = nx.average_degree_connectivity(G, source="in", target="out") | |
| 103 assert c == {0: 0, 1: 3} | |
| 104 c = nx.average_degree_connectivity(G, source="in", target="in+out") | |
| 105 assert c == {0: 0, 1: 3} | |
| 106 c = nx.average_degree_connectivity(G, source="out", target="out") | |
| 107 assert c == {0: 0, 3: 0} | |
| 108 c = nx.average_degree_connectivity(G, source="out", target="in") | |
| 109 assert c == {0: 0, 3: 1} | |
| 110 c = nx.average_degree_connectivity(G, source="out", target="in+out") | |
| 111 assert c == {0: 0, 3: 1} | |
| 112 | |
| 113 def test_in_out_weight(self): | |
| 114 G = nx.DiGraph() | |
| 115 G.add_edge(1, 2, weight=1) | |
| 116 G.add_edge(1, 3, weight=1) | |
| 117 G.add_edge(3, 1, weight=1) | |
| 118 for s, t in permutations(["in", "out", "in+out"], 2): | |
| 119 c = nx.average_degree_connectivity(G, source=s, target=t) | |
| 120 cw = nx.average_degree_connectivity(G, source=s, target=t, weight="weight") | |
| 121 assert c == cw | |
| 122 | |
| 123 def test_invalid_source(self): | |
| 124 with pytest.raises(ValueError): | |
| 125 G = nx.DiGraph() | |
| 126 nx.average_degree_connectivity(G, source="bogus") | |
| 127 | |
| 128 def test_invalid_target(self): | |
| 129 with pytest.raises(ValueError): | |
| 130 G = nx.DiGraph() | |
| 131 nx.average_degree_connectivity(G, target="bogus") | |
| 132 | |
| 133 def test_single_node(self): | |
| 134 # TODO Is this really the intended behavior for providing a | |
| 135 # single node as the argument `nodes`? Shouldn't the function | |
| 136 # just return the connectivity value itself? | |
| 137 G = nx.trivial_graph() | |
| 138 conn = nx.average_degree_connectivity(G, nodes=0) | |
| 139 assert conn == {0: 0} |
