Mercurial > repos > shellac > sam_consensus_v3
view env/lib/python3.9/site-packages/networkx/algorithms/bipartite/tests/test_centrality.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
import networkx as nx from networkx.algorithms import bipartite from networkx.testing import almost_equal class TestBipartiteCentrality: @classmethod def setup_class(cls): cls.P4 = nx.path_graph(4) cls.K3 = nx.complete_bipartite_graph(3, 3) cls.C4 = nx.cycle_graph(4) cls.davis = nx.davis_southern_women_graph() cls.top_nodes = [ n for n, d in cls.davis.nodes(data=True) if d["bipartite"] == 0 ] def test_degree_centrality(self): d = bipartite.degree_centrality(self.P4, [1, 3]) answer = {0: 0.5, 1: 1.0, 2: 1.0, 3: 0.5} assert d == answer d = bipartite.degree_centrality(self.K3, [0, 1, 2]) answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0} assert d == answer d = bipartite.degree_centrality(self.C4, [0, 2]) answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0} assert d == answer def test_betweenness_centrality(self): c = bipartite.betweenness_centrality(self.P4, [1, 3]) answer = {0: 0.0, 1: 1.0, 2: 1.0, 3: 0.0} assert c == answer c = bipartite.betweenness_centrality(self.K3, [0, 1, 2]) answer = {0: 0.125, 1: 0.125, 2: 0.125, 3: 0.125, 4: 0.125, 5: 0.125} assert c == answer c = bipartite.betweenness_centrality(self.C4, [0, 2]) answer = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25} assert c == answer def test_closeness_centrality(self): c = bipartite.closeness_centrality(self.P4, [1, 3]) answer = {0: 2.0 / 3, 1: 1.0, 2: 1.0, 3: 2.0 / 3} assert c == answer c = bipartite.closeness_centrality(self.K3, [0, 1, 2]) answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0} assert c == answer c = bipartite.closeness_centrality(self.C4, [0, 2]) answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0} assert c == answer G = nx.Graph() G.add_node(0) G.add_node(1) c = bipartite.closeness_centrality(G, [0]) assert c == {1: 0.0} c = bipartite.closeness_centrality(G, [1]) assert c == {1: 0.0} def test_davis_degree_centrality(self): G = self.davis deg = bipartite.degree_centrality(G, self.top_nodes) answer = { "E8": 0.78, "E9": 0.67, "E7": 0.56, "Nora Fayette": 0.57, "Evelyn Jefferson": 0.57, "Theresa Anderson": 0.57, "E6": 0.44, "Sylvia Avondale": 0.50, "Laura Mandeville": 0.50, "Brenda Rogers": 0.50, "Katherina Rogers": 0.43, "E5": 0.44, "Helen Lloyd": 0.36, "E3": 0.33, "Ruth DeSand": 0.29, "Verne Sanderson": 0.29, "E12": 0.33, "Myra Liddel": 0.29, "E11": 0.22, "Eleanor Nye": 0.29, "Frances Anderson": 0.29, "Pearl Oglethorpe": 0.21, "E4": 0.22, "Charlotte McDowd": 0.29, "E10": 0.28, "Olivia Carleton": 0.14, "Flora Price": 0.14, "E2": 0.17, "E1": 0.17, "Dorothy Murchison": 0.14, "E13": 0.17, "E14": 0.17, } for node, value in answer.items(): assert almost_equal(value, deg[node], places=2) def test_davis_betweenness_centrality(self): G = self.davis bet = bipartite.betweenness_centrality(G, self.top_nodes) answer = { "E8": 0.24, "E9": 0.23, "E7": 0.13, "Nora Fayette": 0.11, "Evelyn Jefferson": 0.10, "Theresa Anderson": 0.09, "E6": 0.07, "Sylvia Avondale": 0.07, "Laura Mandeville": 0.05, "Brenda Rogers": 0.05, "Katherina Rogers": 0.05, "E5": 0.04, "Helen Lloyd": 0.04, "E3": 0.02, "Ruth DeSand": 0.02, "Verne Sanderson": 0.02, "E12": 0.02, "Myra Liddel": 0.02, "E11": 0.02, "Eleanor Nye": 0.01, "Frances Anderson": 0.01, "Pearl Oglethorpe": 0.01, "E4": 0.01, "Charlotte McDowd": 0.01, "E10": 0.01, "Olivia Carleton": 0.01, "Flora Price": 0.01, "E2": 0.00, "E1": 0.00, "Dorothy Murchison": 0.00, "E13": 0.00, "E14": 0.00, } for node, value in answer.items(): assert almost_equal(value, bet[node], places=2) def test_davis_closeness_centrality(self): G = self.davis clos = bipartite.closeness_centrality(G, self.top_nodes) answer = { "E8": 0.85, "E9": 0.79, "E7": 0.73, "Nora Fayette": 0.80, "Evelyn Jefferson": 0.80, "Theresa Anderson": 0.80, "E6": 0.69, "Sylvia Avondale": 0.77, "Laura Mandeville": 0.73, "Brenda Rogers": 0.73, "Katherina Rogers": 0.73, "E5": 0.59, "Helen Lloyd": 0.73, "E3": 0.56, "Ruth DeSand": 0.71, "Verne Sanderson": 0.71, "E12": 0.56, "Myra Liddel": 0.69, "E11": 0.54, "Eleanor Nye": 0.67, "Frances Anderson": 0.67, "Pearl Oglethorpe": 0.67, "E4": 0.54, "Charlotte McDowd": 0.60, "E10": 0.55, "Olivia Carleton": 0.59, "Flora Price": 0.59, "E2": 0.52, "E1": 0.52, "Dorothy Murchison": 0.65, "E13": 0.52, "E14": 0.52, } for node, value in answer.items(): assert almost_equal(value, clos[node], places=2)