|
1 | 1 | #test nodal roles
|
2 | 2 | import unittest
|
3 | 3 | import networkx as nx
|
4 |
| -from .. import nodal_roles as nr |
5 |
| -from .. import weighted_modularity as wm |
| 4 | +import nodal_roles as nr |
| 5 | +import weighted_modularity as wm |
6 | 6 |
|
7 | 7 | class TestNodalRoles(unittest.TestCase):
|
8 | 8 | def test_participation_coefficient_edgeless(self):
|
9 | 9 | graph = nx.Graph([(0,1)])
|
10 | 10 | graph.add_node(2)
|
11 |
| - louvain = wm.LouvainCommunityDetection(graph) |
12 |
| - weighted_partitions = louvain.run() |
13 |
| - weighted_partition = weighted_partitions[0] |
| 11 | + partition = wm.WeightedPartition(graph, communities=[ set([0,1]), set([2])]) |
14 | 12 | with self.assertRaises(ValueError):
|
15 |
| - nr.participation_coefficient(weighted_partition) |
16 |
| - graph = nx.Graph([(0,1),(1,2),(2,0),(3,4),(3,5),(4,5)]) |
17 |
| - louvain = wm.LouvainCommunityDetection(graph) |
18 |
| - partition = louvain.run()[0] |
| 13 | + nr.participation_coefficient(partition) |
19 | 14 | def test_within_community_degree_edgeless(self):
|
20 | 15 | graph = nx.Graph([(0,1)])
|
21 | 16 | graph.add_node(2)
|
22 |
| - louvain = wm.LouvainCommunityDetection(graph) |
23 |
| - weighted_partitions = louvain.run() |
24 |
| - weighted_partition = weighted_partitions[0] |
| 17 | + partition = wm.WeightedPartition(graph, communities=[ set([0,1]), set([2])]) |
25 | 18 | with self.assertRaises(ValueError):
|
26 |
| - nr.within_community_degree(weighted_partition) |
| 19 | + nr.within_community_degree(partition) |
27 | 20 | def test_disconnected_communites(self):
|
28 | 21 | graph = nx.Graph([(0,1),(1,2),(2,0),(3,4),(3,5),(4,5)])
|
29 |
| - louvain = wm.LouvainCommunityDetection(graph) |
30 |
| - partition = louvain.run()[0] |
| 22 | + partition = wm.WeightedPartition(graph, communities=[set([0, 1, 2]), set([3, 4, 5])]) |
31 | 23 | wcd = nr.within_community_degree(partition)
|
32 |
| - self.assertEqual(wcd, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0}) |
| 24 | + self.assertAlmostEqual(wcd, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0}) |
33 | 25 | pc = nr.participation_coefficient(partition)
|
34 | 26 | self.assertEqual(pc, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0})
|
35 | 27 | def test_high_low_pc(self):
|
36 | 28 | graph = nx.Graph([(0,1),(1,2),(2,0),(0,3),(3,4),(3,5),(4,5)])
|
37 |
| - louvain = wm.LouvainCommunityDetection(graph) |
38 |
| - partition = louvain.run()[0] |
| 29 | + partition = wm.WeightedPartition(graph, communities=[set([0, 1, 2]), set([3, 4, 5])]) |
39 | 30 | pc = nr.participation_coefficient(partition)
|
40 |
| - self.assertEqual(pc,{0: 0.8888888888888888, 1: 0.0, 2: 0.0, 3: 0.8888888888888888, 4: 0.0, 5: 0.0}) |
| 31 | + self.assertAlmostEqual(pc,{0: 0.8888888888888888, 1: 0.0, 2: 0.0, 3: 0.8888888888888888, 4: 0.0, 5: 0.0}) |
41 | 32 | def test_high_low_wcd(self):
|
42 | 33 | graph = nx.Graph([(0,1),(0,2),(0,3),(0,4),(0,5),(6,7),(7,8),(8,6)])
|
43 |
| - louvain = wm.LouvainCommunityDetection(graph) |
44 |
| - partition = louvain.run()[0] |
| 34 | + partition = wm.WeightedPartition(graph, communities=[set([0, 1, 2, 3, 4, 5]), set([8, 6, 7])]) |
45 | 35 | wcd = nr.within_community_degree(partition)
|
46 |
| - self.assertEqual(wcd, {0: 3.8819660112501051, 1: -0.11803398874989512, 2: -0.11803398874989512, 3: -0.11803398874989512,4: -0.11803398874989512, 5: -0.11803398874989512, 6: 0.0, 7: 0.0, 8: 0.0}) |
47 |
| - |
48 |
| - |
| 36 | + self.assertAlmostEqual(wcd, {0: 3.8819660112501051, 1: -0.11803398874989512, 2: -0.11803398874989512, 3: -0.11803398874989512,4: -0.11803398874989512, 5: -0.11803398874989512, 6: 0.0, 7: 0.0, 8: 0.0}) |
0 commit comments