39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
#!/usr/bin/env python
|
|
import pytest
|
|
np = pytest.importorskip('numpy')
|
|
scipy = pytest.importorskip('scipy')
|
|
|
|
import networkx as nx
|
|
from networkx.testing import almost_equal
|
|
|
|
class TestFlowClosenessCentrality(object):
|
|
|
|
def test_K4(self):
|
|
"""Closeness centrality: K4"""
|
|
G = nx.complete_graph(4)
|
|
b = nx.current_flow_closeness_centrality(G)
|
|
b_answer = {0: 2.0 / 3, 1: 2.0 / 3, 2: 2.0 / 3, 3: 2.0 / 3}
|
|
for n in sorted(G):
|
|
assert almost_equal(b[n], b_answer[n])
|
|
|
|
def test_P4(self):
|
|
"""Closeness centrality: P4"""
|
|
G = nx.path_graph(4)
|
|
b = nx.current_flow_closeness_centrality(G)
|
|
b_answer = {0: 1.0 / 6, 1: 1.0 / 4, 2: 1.0 / 4, 3: 1.0 / 6}
|
|
for n in sorted(G):
|
|
assert almost_equal(b[n], b_answer[n])
|
|
|
|
def test_star(self):
|
|
"""Closeness centrality: star """
|
|
G = nx.Graph()
|
|
nx.add_star(G, ['a', 'b', 'c', 'd'])
|
|
b = nx.current_flow_closeness_centrality(G)
|
|
b_answer = {'a': 1.0 / 3, 'b': 0.6 / 3, 'c': 0.6 / 3, 'd': 0.6 / 3}
|
|
for n in sorted(G):
|
|
assert almost_equal(b[n], b_answer[n])
|
|
|
|
|
|
class TestWeightedFlowClosenessCentrality(object):
|
|
pass
|