This repository has been archived on 2023-03-25. You can view files and clone it, but cannot push or open issues or pull requests.
mightyscape-1.1-deprecated/extensions/networkx/algorithms/centrality/tests/test_subgraph.py
2020-07-30 01:16:18 +02:00

66 lines
2.6 KiB
Python

from collections import defaultdict
import pytest
numpy = pytest.importorskip('numpy')
scipy = pytest.importorskip('scipy')
import networkx as nx
from networkx.algorithms.centrality.subgraph_alg import *
from networkx.testing import almost_equal
class TestSubgraph:
def test_subgraph_centrality(self):
answer = {0: 1.5430806348152433, 1: 1.5430806348152433}
result = subgraph_centrality(nx.path_graph(2))
for k, v in result.items():
assert almost_equal(answer[k], result[k], places=7)
answer1 = {'1': 1.6445956054135658,
'Albert': 2.4368257358712189,
'Aric': 2.4368257358712193,
'Dan': 3.1306328496328168,
'Franck': 2.3876142275231915}
G1 = nx.Graph([('Franck', 'Aric'), ('Aric', 'Dan'), ('Dan', 'Albert'),
('Albert', 'Franck'), ('Dan', '1'), ('Franck', 'Albert')])
result1 = subgraph_centrality(G1)
for k, v in result1.items():
assert almost_equal(answer1[k], result1[k], places=7)
result1 = subgraph_centrality_exp(G1)
for k, v in result1.items():
assert almost_equal(answer1[k], result1[k], places=7)
def test_subgraph_centrality_big_graph(self):
g199 = nx.complete_graph(199)
g200 = nx.complete_graph(200)
comm199 = nx.subgraph_centrality(g199)
comm199_exp = nx.subgraph_centrality_exp(g199)
comm200 = nx.subgraph_centrality(g200)
comm200_exp = nx.subgraph_centrality_exp(g200)
def test_communicability_betweenness_centrality(self):
answer = {0: 0.07017447951484615, 1: 0.71565598701107991,
2: 0.71565598701107991, 3: 0.07017447951484615}
result = communicability_betweenness_centrality(nx.path_graph(4))
for k, v in result.items():
assert almost_equal(answer[k], result[k], places=7)
answer1 = {'1': 0.060039074193949521,
'Albert': 0.315470761661372,
'Aric': 0.31547076166137211,
'Dan': 0.68297778678316201,
'Franck': 0.21977926617449497}
G1 = nx.Graph([('Franck', 'Aric'),
('Aric', 'Dan'), ('Dan', 'Albert'), ('Albert', 'Franck'),
('Dan', '1'), ('Franck', 'Albert')])
result1 = communicability_betweenness_centrality(G1)
for k, v in result1.items():
assert almost_equal(answer1[k], result1[k], places=7)
def test_estrada_index(self):
answer = 1041.2470334195475
result = estrada_index(nx.karate_club_graph())
assert almost_equal(answer, result, places=7)