Statistics
| Branch: | Revision:

## iof-tools / networkxMiCe / networkx-master / networkx / algorithms / bipartite / tests / test_centrality.py @ 5cef0f13

 1 ```from nose.tools import * ``` ```import networkx as nx ``` ```from networkx.algorithms import bipartite ``` ```class TestBipartiteCentrality(object): ``` ``` def setUp(self): ``` ``` self.P4 = nx.path_graph(4) ``` ``` self.K3 = nx.complete_bipartite_graph(3, 3) ``` ``` self.C4 = nx.cycle_graph(4) ``` ``` self.davis = nx.davis_southern_women_graph() ``` ``` self.top_nodes = [n for n, d in self.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_equal(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_equal(d, answer) ``` ``` d = bipartite.degree_centrality(self.C4, [0, 2]) ``` ``` answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0} ``` ``` assert_equal(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_equal(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_equal(c, answer) ``` ``` c = bipartite.betweenness_centrality(self.C4, [0, 2]) ``` ``` answer = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25} ``` ``` assert_equal(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_equal(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_equal(c, answer) ``` ``` c = bipartite.closeness_centrality(self.C4, [0, 2]) ``` ``` answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0} ``` ``` assert_equal(c, answer) ``` ``` G = nx.Graph() ``` ``` G.add_node(0) ``` ``` G.add_node(1) ``` ``` c = bipartite.closeness_centrality(G, [0]) ``` ``` assert_equal(c, {1: 0.0}) ``` ``` c = bipartite.closeness_centrality(G, [1]) ``` ``` assert_equal(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) ```