Skip to content

Commit 0388ad2

Browse files
authored
lint/format/pytest - test_adbscan.py (#343)
1 parent 309c5b8 commit 0388ad2

File tree

1 file changed

+29
-34
lines changed

1 file changed

+29
-34
lines changed

esda/tests/test_adbscan.py

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
import unittest
2-
31
import numpy as np
42
import pandas
5-
import sklearn
63
import pytest
4+
import sklearn
5+
76
from .. import adbscan
87

98

10-
class ADBSCAN_Tester(unittest.TestCase):
11-
def setUp(self):
9+
class TestADBSCAN:
10+
def setup_method(self):
1211
np.random.seed(10)
1312
self.db = pandas.DataFrame(
1413
{"x": np.random.random(25), "y": np.random.random(25)}
@@ -82,14 +81,14 @@ def test_adbscan(self):
8281
ads = adbscan.ADBSCAN(0.03, 3, reps=10, keep_solus=True)
8382
_ = ads.fit(self.db, xy=["x", "y"])
8483
# Params
85-
self.assertAlmostEqual(ads.eps, 0.03)
86-
self.assertEqual(ads.min_samples, 3)
87-
self.assertEqual(ads.algorithm, "auto")
88-
self.assertEqual(ads.n_jobs, 1)
89-
self.assertEqual(ads.pct_exact, 0.1)
90-
self.assertEqual(ads.reps, 10)
91-
self.assertEqual(ads.keep_solus, True)
92-
self.assertEqual(ads.pct_thr, 0.9)
84+
assert pytest.approx(ads.eps) == 0.03
85+
assert ads.min_samples == 3
86+
assert ads.algorithm == "auto"
87+
assert ads.n_jobs == 1
88+
assert ads.pct_exact == 0.1
89+
assert ads.reps == 10
90+
assert ads.keep_solus is True
91+
assert ads.pct_thr == 0.9
9392
# Labels
9493
np.testing.assert_equal(ads.labels_, self.lbls)
9594
# Votes
@@ -109,9 +108,16 @@ def test_adbscan(self):
109108
# ------------------------#
110109
np.random.seed(10)
111110
ads = adbscan.ADBSCAN(0.03, 3, reps=10, keep_solus=True, n_jobs=-1)
112-
_ = ads.fit(self.db, xy=["x", "y"])
111+
with pytest.warns(
112+
UserWarning,
113+
match=(
114+
"Multi-core implementation only works on relabelling solutions. "
115+
"Execution of draws is still sequential."
116+
),
117+
):
118+
_ = ads.fit(self.db, xy=["x", "y"])
113119
# Params
114-
self.assertEqual(ads.n_jobs, -1)
120+
assert ads.n_jobs == -1
115121
# Labels
116122
np.testing.assert_equal(ads.labels_, self.lbls)
117123
# Votes
@@ -128,8 +134,8 @@ def test_adbscan(self):
128134
np.testing.assert_equal(ads.solus.astype(int).sum(axis=1).values, i_sum)
129135

130136

131-
class Remap_lbls_Tester(unittest.TestCase):
132-
def setUp(self):
137+
class TestRemapLBLS:
138+
def setup_method(self):
133139
self.db = pandas.DataFrame({"X": [0, 0.1, 4, 6, 5], "Y": [0, 0.2, 5, 7, 5]})
134140
self.solus = pandas.DataFrame(
135141
{
@@ -159,8 +165,8 @@ def test_remap_lbls(self):
159165
np.testing.assert_equal(lbls.values, vals)
160166

161167

162-
class Ensemble_Tester(unittest.TestCase):
163-
def setUp(self):
168+
class TestEnsemble:
169+
def setup_method(self):
164170
self.db = pandas.DataFrame(
165171
{"X": [0, 0.1, 4, 6, 5], "Y": [0, 0.2, 5, 7, 5]}
166172
).rename(lambda i: "i_" + str(i))
@@ -192,8 +198,8 @@ def test_ensemble(self):
192198
np.testing.assert_almost_equal(ensemble_solu.values, vals)
193199

194200

195-
class Get_Cluster_Boundary_Tester(unittest.TestCase):
196-
def setUp(self):
201+
class TestGetClusterBoundary:
202+
def setup_method(self):
197203
np.random.seed(10)
198204
self.db = pandas.DataFrame(
199205
{"x": np.random.random(25), "y": np.random.random(25)}
@@ -275,7 +281,7 @@ def test_get_cluster_boundary(self):
275281
"0.5475861559192435, 0.5425443680112613 0.7546476915298572, "
276282
"0.7217553174317995 0.8192869956700687))"
277283
)
278-
self.assertEqual(polys[0].wkt, wkt)
284+
assert polys.iloc[0].wkt == wkt
279285

280286
# ------------------------#
281287
# # Multi Core #
@@ -290,15 +296,4 @@ def test_get_cluster_boundary(self):
290296
"0.5475861559192435, 0.5425443680112613 0.7546476915298572, "
291297
"0.7217553174317995 0.8192869956700687))"
292298
)
293-
self.assertEqual(polys[0].wkt, wkt)
294-
295-
296-
suite = unittest.TestSuite()
297-
test_classes = [ADBSCAN_Tester, Remap_lbls_Tester, Ensemble_Tester]
298-
for i in test_classes:
299-
a = unittest.TestLoader().loadTestsFromTestCase(i)
300-
suite.addTest(a)
301-
302-
if __name__ == "__main__":
303-
runner = unittest.TextTestRunner()
304-
runner.run(suite)
299+
assert polys.iloc[0].wkt == wkt

0 commit comments

Comments
 (0)