Skip to content

Commit 3deb42b

Browse files
authored
Merge pull request #285 from cseptesting/284-issue-with-scipy-update
Removed scipy.repeats due to function deprecation
2 parents beb65be + 1ac49a1 commit 3deb42b

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

csep/core/poisson_evaluations.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,9 @@ def _w_test_ndarray(x, m=0):
555555
mn = count * (count + 1.) * 0.25
556556
se = count * (count + 1.) * (2. * count + 1.)
557557

558-
replist, repnum = scipy.stats.find_repeats(r)
558+
_, repnum = numpy.unique(r, return_counts=True)
559+
repnum = repnum[repnum > 1]
560+
559561
if repnum.size != 0:
560562
# Correction for repeated elements.
561563
se -= 0.5 * (repnum * (repnum * repnum - 1)).sum()

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "pycsep"
7-
dynamic = ["version"] # <— version comes from SCM
7+
dynamic = ["version"]
88
description = "Python tools from the Collaboratory for the Study of Earthquake Predictability"
99
readme = "README.md"
1010
requires-python = ">=3.9"

tests/test_csep1_evaluations.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,25 @@ def test_w_test(self):
109109
print('W Test: Running Unit Test')
110110
self.assertEqual(_w_test_ndarray(x, median), expected_output, 'Failed W Test')
111111

112+
out_rev = _w_test_ndarray(x[::-1], median)
113+
self.assertAlmostEqual(out_rev['z_statistic'], expected_output['z_statistic'], places=15)
114+
self.assertAlmostEqual(out_rev['probability'], expected_output['probability'], places=15)
115+
116+
x_with_zeros = numpy.concatenate([x, numpy.array([median, median, median])])
117+
out_with_zeros = _w_test_ndarray(x_with_zeros, median)
118+
self.assertAlmostEqual(out_with_zeros['z_statistic'], expected_output['z_statistic'], places=15)
119+
self.assertAlmostEqual(out_with_zeros['probability'], expected_output['probability'], places=15)
120+
121+
x_ties = numpy.array([median + 1, median - 1,
122+
median + 2, median - 2,
123+
median + 2, median - 2,
124+
median + 5, median - 5,
125+
median + 10, median - 10], dtype=float)
126+
out_ties = _w_test_ndarray(x_ties, median)
127+
self.assertTrue(numpy.isfinite(out_ties['z_statistic']))
128+
self.assertTrue(0.0 <= out_ties['probability'] <= 1.0)
129+
130+
112131
def test_t_test(self):
113132
pass
114133
"""

0 commit comments

Comments
 (0)