83 lines
2.5 KiB
Python
83 lines
2.5 KiB
Python
import pytest
|
|
import networkx as nx
|
|
|
|
|
|
def test_richclub():
|
|
G = nx.Graph([(0, 1), (0, 2), (1, 2), (1, 3), (1, 4), (4, 5)])
|
|
rc = nx.richclub.rich_club_coefficient(G, normalized=False)
|
|
assert rc == {0: 12.0 / 30, 1: 8.0 / 12}
|
|
|
|
# test single value
|
|
rc0 = nx.richclub.rich_club_coefficient(G, normalized=False)[0]
|
|
assert rc0 == 12.0 / 30.0
|
|
|
|
|
|
def test_richclub_seed():
|
|
G = nx.Graph([(0, 1), (0, 2), (1, 2), (1, 3), (1, 4), (4, 5)])
|
|
rcNorm = nx.richclub.rich_club_coefficient(G, Q=2, seed=1)
|
|
assert rcNorm == {0: 1.0, 1: 1.0}
|
|
|
|
|
|
def test_richclub_normalized():
|
|
G = nx.Graph([(0, 1), (0, 2), (1, 2), (1, 3), (1, 4), (4, 5)])
|
|
rcNorm = nx.richclub.rich_club_coefficient(G, Q=2)
|
|
assert rcNorm == {0: 1.0, 1: 1.0}
|
|
|
|
|
|
def test_richclub2():
|
|
T = nx.balanced_tree(2, 10)
|
|
rc = nx.richclub.rich_club_coefficient(T, normalized=False)
|
|
assert rc == {0: 4092 / (2047 * 2046.0),
|
|
1: (2044.0 / (1023 * 1022)),
|
|
2: (2040.0 / (1022 * 1021))}
|
|
|
|
|
|
def test_richclub3():
|
|
# tests edgecase
|
|
G = nx.karate_club_graph()
|
|
rc = nx.rich_club_coefficient(G, normalized=False)
|
|
assert rc == {0: 156.0 / 1122,
|
|
1: 154.0 / 1056,
|
|
2: 110.0 / 462,
|
|
3: 78.0 / 240,
|
|
4: 44.0 / 90,
|
|
5: 22.0 / 42,
|
|
6: 10.0 / 20,
|
|
7: 10.0 / 20,
|
|
8: 10.0 / 20,
|
|
9: 6.0 / 12,
|
|
10: 2.0 / 6,
|
|
11: 2.0 / 6,
|
|
12: 0.0,
|
|
13: 0.0,
|
|
14: 0.0,
|
|
15: 0.0, }
|
|
|
|
|
|
def test_richclub4():
|
|
G = nx.Graph()
|
|
G.add_edges_from([(0, 1), (0, 2), (0, 3), (0, 4), (4, 5), (5, 9), (6, 9), (7, 9), (8, 9)])
|
|
rc = nx.rich_club_coefficient(G, normalized=False)
|
|
assert rc == {0: 18 / 90.0,
|
|
1: 6 / 12.0,
|
|
2: 0.0,
|
|
3: 0.0}
|
|
|
|
|
|
def test_richclub_exception():
|
|
with pytest.raises(nx.NetworkXNotImplemented):
|
|
G = nx.DiGraph()
|
|
nx.rich_club_coefficient(G)
|
|
|
|
|
|
def test_rich_club_exception2():
|
|
with pytest.raises(nx.NetworkXNotImplemented):
|
|
G = nx.MultiGraph()
|
|
nx.rich_club_coefficient(G)
|
|
|
|
|
|
# def test_richclub2_normalized():
|
|
# T = nx.balanced_tree(2,10)
|
|
# rcNorm = nx.richclub.rich_club_coefficient(T,Q=2)
|
|
# assert_true(rcNorm[0] ==1.0 and rcNorm[1] < 0.9 and rcNorm[2] < 0.9)
|