comparison env/lib/python3.9/site-packages/networkx/algorithms/centrality/tests/test_dispersion.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 import networkx as nx
2
3
4 def small_ego_G():
5 """The sample network from https://arxiv.org/pdf/1310.6753v1.pdf"""
6 edges = [
7 ("a", "b"),
8 ("a", "c"),
9 ("b", "c"),
10 ("b", "d"),
11 ("b", "e"),
12 ("b", "f"),
13 ("c", "d"),
14 ("c", "f"),
15 ("c", "h"),
16 ("d", "f"),
17 ("e", "f"),
18 ("f", "h"),
19 ("h", "j"),
20 ("h", "k"),
21 ("i", "j"),
22 ("i", "k"),
23 ("j", "k"),
24 ("u", "a"),
25 ("u", "b"),
26 ("u", "c"),
27 ("u", "d"),
28 ("u", "e"),
29 ("u", "f"),
30 ("u", "g"),
31 ("u", "h"),
32 ("u", "i"),
33 ("u", "j"),
34 ("u", "k"),
35 ]
36 G = nx.Graph()
37 G.add_edges_from(edges)
38
39 return G
40
41
42 class TestDispersion:
43 def test_article(self):
44 """our algorithm matches article's"""
45 G = small_ego_G()
46 disp_uh = nx.dispersion(G, "u", "h", normalized=False)
47 disp_ub = nx.dispersion(G, "u", "b", normalized=False)
48 assert disp_uh == 4
49 assert disp_ub == 1
50
51 def test_results_length(self):
52 """there is a result for every node"""
53 G = small_ego_G()
54 disp = nx.dispersion(G)
55 disp_Gu = nx.dispersion(G, "u")
56 disp_uv = nx.dispersion(G, "u", "h")
57 assert len(disp) == len(G)
58 assert len(disp_Gu) == len(G) - 1
59 assert type(disp_uv) is float
60
61 def test_impossible_things(self):
62 G = nx.karate_club_graph()
63 disp = nx.dispersion(G)
64 for u in disp:
65 for v in disp[u]:
66 assert disp[u][v] >= 0