Skip to content

Commit 6eda086

Browse files
committed
Make tests more robust and increment version
1 parent 433c261 commit 6eda086

File tree

6 files changed

+23
-12
lines changed

6 files changed

+23
-12
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
setup(
1111
name='modularitypruning',
12-
version='1.1.3',
12+
version='1.2.0',
1313
package_dir={'modularitypruning': 'utilities'},
1414
packages=['modularitypruning'],
1515
url='https://github.com/ragibson/ModularityPruning',

tests/shared_testing_functions.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import igraph as ig
2+
from math import isnan
23
from modularitypruning.partition_utilities import num_communities
34
from random import randint, random, uniform
45

@@ -87,3 +88,12 @@ def generate_multilayer_intralayer_SBM(copying_probability, p_in, p_out, first_l
8788
G_intralayer = ig.Graph(intralayer_edges, directed=False)
8889

8990
return G_intralayer, layer_membership
91+
92+
93+
def assert_almost_equal_or_both_none_or_nan(self, first, second, places=10):
94+
if first is None:
95+
self.assertIsNone(second) # isnan only accepts floats
96+
elif isnan(first):
97+
self.assertTrue(isnan(second)) # NaN is != NaN according to IEEE-754
98+
else:
99+
self.assertAlmostEqual(first, second, places=places)

tests/test_monolayer_parameter_estimation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .shared_testing_functions import generate_igraph_famous, generate_random_partition
1+
from .shared_testing_functions import assert_almost_equal_or_both_none_or_nan, generate_igraph_famous, generate_random_partition
22
import igraph as ig
33
from math import log
44
from numpy import mean
@@ -45,7 +45,7 @@ def test_directed_consistency_igraph_famous(self):
4545
G.to_directed()
4646
gamma_directed = gamma_estimate(G, random_membership)
4747

48-
self.assertAlmostEqual(gamma_undirected, gamma_directed, places=10)
48+
assert_almost_equal_or_both_none_or_nan(self, gamma_undirected, gamma_directed, places=10)
4949

5050

5151
if __name__ == "__main__":

tests/test_multiplex_parameter_estimation.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from .shared_testing_functions import generate_random_partition, generate_multilayer_intralayer_SBM
1+
from .shared_testing_functions import assert_almost_equal_or_both_none_or_nan, generate_random_partition, \
2+
generate_multilayer_intralayer_SBM
23
import igraph as ig
34
from math import log
45
from numpy import mean
@@ -109,8 +110,8 @@ def test_directed_consistency_multiplex_SBM_louvain(self):
109110
gamma_directed, omega_directed = gamma_omega_estimate(G_intralayer, G_interlayer, layer_membership,
110111
partition, model="multiplex")
111112

112-
self.assertAlmostEqual(gamma_undirected, gamma_directed, places=10)
113-
self.assertAlmostEqual(omega_undirected, omega_directed, places=10)
113+
assert_almost_equal_or_both_none_or_nan(self, gamma_undirected, gamma_directed, places=10)
114+
assert_almost_equal_or_both_none_or_nan(self, omega_undirected, omega_directed, places=10)
114115

115116

116117
if __name__ == "__main__":

tests/test_temporal_multilevel_parameter_estimation.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from .shared_testing_functions import generate_random_partition, generate_multilayer_intralayer_SBM
1+
from .shared_testing_functions import assert_almost_equal_or_both_none_or_nan, generate_random_partition, \
2+
generate_multilayer_intralayer_SBM
23
import igraph as ig
34
from math import log
45
from numpy import mean
@@ -112,8 +113,8 @@ def test_directed_consistency_temporal_SBM_louvain(self):
112113
gamma_directed, omega_directed = gamma_omega_estimate(G_intralayer, G_interlayer, layer_membership,
113114
partition, model="temporal")
114115

115-
self.assertAlmostEqual(gamma_undirected, gamma_directed, places=10)
116-
self.assertAlmostEqual(omega_undirected, omega_directed, places=10)
116+
assert_almost_equal_or_both_none_or_nan(self, gamma_undirected, gamma_directed, places=10)
117+
assert_almost_equal_or_both_none_or_nan(self, omega_undirected, omega_directed, places=10)
117118

118119
# check multilevel parameter estimation as well
119120
gamma_undirected, omega_undirected = gamma_omega_estimate(G_intralayer, G_interlayer, layer_membership,
@@ -123,8 +124,8 @@ def test_directed_consistency_temporal_SBM_louvain(self):
123124
gamma_directed, omega_directed = gamma_omega_estimate(G_intralayer, G_interlayer, layer_membership,
124125
partition, model="multilevel")
125126

126-
self.assertAlmostEqual(gamma_undirected, gamma_directed, places=10)
127-
self.assertAlmostEqual(omega_undirected, omega_directed, places=10)
127+
assert_almost_equal_or_both_none_or_nan(self, gamma_undirected, gamma_directed, places=10)
128+
assert_almost_equal_or_both_none_or_nan(self, omega_undirected, omega_directed, places=10)
128129

129130

130131
if __name__ == "__main__":

utilities/champ_utilities.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
membership_to_layered_communities
33
from collections import defaultdict
44
import numpy as np
5-
from numpy import VisibleDeprecationWarning
65
from numpy.random import choice
76
from math import floor
87
from multiprocessing import Pool, cpu_count

0 commit comments

Comments
 (0)