Mercurial > repos > shellac > sam_consensus_v3
view 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 |
line wrap: on
line source
from itertools import permutations import pytest import networkx as nx from networkx.testing import almost_equal class TestNeighborConnectivity: def test_degree_p4(self): G = nx.path_graph(4) answer = {1: 2.0, 2: 1.5} nd = nx.average_degree_connectivity(G) assert nd == answer D = G.to_directed() answer = {2: 2.0, 4: 1.5} nd = nx.average_degree_connectivity(D) assert nd == answer answer = {1: 2.0, 2: 1.5} D = G.to_directed() nd = nx.average_degree_connectivity(D, source="in", target="in") assert nd == answer D = G.to_directed() nd = nx.average_degree_connectivity(D, source="in", target="in") assert nd == answer def test_degree_p4_weighted(self): G = nx.path_graph(4) G[1][2]["weight"] = 4 answer = {1: 2.0, 2: 1.8} nd = nx.average_degree_connectivity(G, weight="weight") assert nd == answer answer = {1: 2.0, 2: 1.5} nd = nx.average_degree_connectivity(G) assert nd == answer D = G.to_directed() answer = {2: 2.0, 4: 1.8} nd = nx.average_degree_connectivity(D, weight="weight") assert nd == answer answer = {1: 2.0, 2: 1.8} D = G.to_directed() nd = nx.average_degree_connectivity( D, weight="weight", source="in", target="in" ) assert nd == answer D = G.to_directed() nd = nx.average_degree_connectivity( D, source="in", target="out", weight="weight" ) assert nd == answer def test_weight_keyword(self): G = nx.path_graph(4) G[1][2]["other"] = 4 answer = {1: 2.0, 2: 1.8} nd = nx.average_degree_connectivity(G, weight="other") assert nd == answer answer = {1: 2.0, 2: 1.5} nd = nx.average_degree_connectivity(G, weight=None) assert nd == answer D = G.to_directed() answer = {2: 2.0, 4: 1.8} nd = nx.average_degree_connectivity(D, weight="other") assert nd == answer answer = {1: 2.0, 2: 1.8} D = G.to_directed() nd = nx.average_degree_connectivity(D, weight="other", source="in", target="in") assert nd == answer D = G.to_directed() nd = nx.average_degree_connectivity(D, weight="other", source="in", target="in") assert nd == answer def test_degree_barrat(self): G = nx.star_graph(5) G.add_edges_from([(5, 6), (5, 7), (5, 8), (5, 9)]) G[0][5]["weight"] = 5 nd = nx.average_degree_connectivity(G)[5] assert nd == 1.8 nd = nx.average_degree_connectivity(G, weight="weight")[5] assert almost_equal(nd, 3.222222, places=5) nd = nx.k_nearest_neighbors(G, weight="weight")[5] assert almost_equal(nd, 3.222222, places=5) def test_zero_deg(self): G = nx.DiGraph() G.add_edge(1, 2) G.add_edge(1, 3) G.add_edge(1, 4) c = nx.average_degree_connectivity(G) assert c == {1: 0, 3: 1} c = nx.average_degree_connectivity(G, source="in", target="in") assert c == {0: 0, 1: 0} c = nx.average_degree_connectivity(G, source="in", target="out") assert c == {0: 0, 1: 3} c = nx.average_degree_connectivity(G, source="in", target="in+out") assert c == {0: 0, 1: 3} c = nx.average_degree_connectivity(G, source="out", target="out") assert c == {0: 0, 3: 0} c = nx.average_degree_connectivity(G, source="out", target="in") assert c == {0: 0, 3: 1} c = nx.average_degree_connectivity(G, source="out", target="in+out") assert c == {0: 0, 3: 1} def test_in_out_weight(self): G = nx.DiGraph() G.add_edge(1, 2, weight=1) G.add_edge(1, 3, weight=1) G.add_edge(3, 1, weight=1) for s, t in permutations(["in", "out", "in+out"], 2): c = nx.average_degree_connectivity(G, source=s, target=t) cw = nx.average_degree_connectivity(G, source=s, target=t, weight="weight") assert c == cw def test_invalid_source(self): with pytest.raises(ValueError): G = nx.DiGraph() nx.average_degree_connectivity(G, source="bogus") def test_invalid_target(self): with pytest.raises(ValueError): G = nx.DiGraph() nx.average_degree_connectivity(G, target="bogus") def test_single_node(self): # TODO Is this really the intended behavior for providing a # single node as the argument `nodes`? Shouldn't the function # just return the connectivity value itself? G = nx.trivial_graph() conn = nx.average_degree_connectivity(G, nodes=0) assert conn == {0: 0}