[Debian-astro-maintainers] Bug#1092352: FTBFS: test_oned_collapse_beams[True] fails
Colin Watson
cjwatson at debian.org
Tue Jan 7 15:14:06 GMT 2025
Source: spectral-cube
Version: 0.6.5-6
Severity: serious
Tags: patch
Justification: ftbfs
Forwarded: https://github.com/radio-astro-tools/spectral-cube/issues/935
spectral-cube FTBFS in unstable due to a change somewhere between
python3-dask 2024.5.2+dfsg-1 and 2024.12.1+dfsg-1. (This dask upload
and the associated dask.distributed upload fix four other RC bugs
between them, so I'm keen to get them into testing.) Here's the test
log:
I: pybuild base:311: cd /build/reproducible-path/spectral-cube-0.6.5/.pybuild/cpython3_3.13_spectral-cube/build; python3.13 -m pytest
============================= test session starts ==============================
platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: /build/reproducible-path/spectral-cube-0.6.5
configfile: setup.cfg
plugins: doctestplus-1.3.0, astropy-header-0.2.2, arraydiff-0.6.1, astropy-0.11.0, remotedata-0.4.1, mock-3.14.0, filter-subpackage-0.2.0, typeguard-4.4.1, hypothesis-6.122.1, cov-5.0.0
collected 1719 items
spectral_cube/spectral_axis.py . [ 0%]
spectral_cube/tests/test_analysis_functions.py ................... [ 1%]
spectral_cube/tests/test_casafuncs.py ......sssssssssssssss [ 2%]
spectral_cube/tests/test_cube_utils.py ....... [ 2%]
spectral_cube/tests/test_dask.py .s..s.......s [ 3%]
spectral_cube/tests/test_io.py ....................... [ 4%]
spectral_cube/tests/test_masks.py ...................................... [ 7%]
...............................................XX.... [ 10%]
spectral_cube/tests/test_moments.py .................................... [ 12%]
........................................................................ [ 16%]
........................................................................ [ 20%]
........ [ 21%]
spectral_cube/tests/test_performance.py ...s.. [ 21%]
spectral_cube/tests/test_projection.py .......................x......... [ 23%]
.....xxx.......x........................................................ [ 27%]
.................. [ 28%]
spectral_cube/tests/test_regrid.py ..........ssss....s.................s [ 30%]
ss....sssssssssssss [ 31%]
spectral_cube/tests/test_spectral_axis.py .............................. [ 33%]
...................... [ 34%]
spectral_cube/tests/test_spectral_cube.py .............................. [ 36%]
........................................................................ [ 40%]
........................................................................ [ 45%]
........................................................................ [ 49%]
..............................s.....s...........sssss................... [ 53%]
..............................ssssss......................ss............ [ 57%]
........................................................................ [ 61%]
......................................ssssss......ssssssssssss......ssss [ 65%]
ssssssss......ssssssssssss......ssssssssssss......ssssss................ [ 70%]
........................................................................ [ 74%]
..ssssss......ssssssssssss......ssssssssssss......ssssssssssss......ssss [ 78%]
ssssssss......ssssss.................................s.s.F............xx [ 82%]
xx....................................................................ss [ 86%]
ss............................xxxxxxxx..............sss................. [ 91%]
....... [ 91%]
spectral_cube/tests/test_stokes_spectral_cube.py ....................... [ 92%]
........................................................................ [ 97%]
..... [ 97%]
spectral_cube/tests/test_subcubes.py ..ssssssssssssssssssss [ 98%]
spectral_cube/tests/test_visualization.py ....ssssssss [ 99%]
spectral_cube/tests/test_wcs_utils.py ............ [100%]
=================================== FAILURES ===================================
________________________ test_oned_collapse_beams[True] ________________________
data_sdav_beams = PosixPath('/tmp/pytest-of-cjwatson/pytest-0/test_oned_collapse_beams_True_0/sdav_beams.fits')
use_dask = True
def test_oned_collapse_beams(data_sdav_beams, use_dask):
# Check that an operation along the spatial dims returns an appropriate
# spectrum
cube, data = cube_and_raw(data_sdav_beams, use_dask=use_dask)
cube._meta['BUNIT'] = 'K'
cube._unit = u.K
spec = cube.mean(axis=(1,2))
assert isinstance(spec, VaryingResolutionOneDSpectrum)
# data has a redundant 1st axis
> np.testing.assert_equal(spec.value, data.mean(axis=(1,2,3)))
spectral_cube/tests/test_spectral_cube.py:1531:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = (<built-in function eq>, array([0.49465334, 0.53732362, 0.37316832, 0.35550457]), array([0.49465334, 0.53732362, 0.37316832, 0.35550457]))
kwds = {'err_msg': '', 'header': 'Arrays are not equal', 'strict': False, 'verbose': True}
@wraps(func)
def inner(*args, **kwds):
with self._recreate_cm():
> return func(*args, **kwds)
E AssertionError:
E Arrays are not equal
E
E Mismatched elements: 1 / 4 (25%)
E Max absolute difference: 1.11022302e-16
E Max relative difference: 2.06620925e-16
E x: array([0.494653, 0.537324, 0.373168, 0.355505])
E y: array([0.494653, 0.537324, 0.373168, 0.355505])
/usr/lib/python3.13/contextlib.py:85: AssertionError
----------------------------- Captured stderr call -----------------------------
WARNING: StokesWarning: Cube is a Stokes cube, returning spectral cube for I component [spectral_cube.io.core]
------------------------------ Captured log call -------------------------------
WARNING astropy:logger.py:244 StokesWarning: Cube is a Stokes cube, returning spectral cube for I component
=========================== short test summary info ============================
FAILED spectral_cube/tests/test_spectral_cube.py::test_oned_collapse_beams[True]
= 1 failed, 1487 passed, 212 skipped, 17 xfailed, 2 xpassed in 257.65s (0:04:17) =
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/spectral-cube-0.6.5/.pybuild/cpython3_3.13_spectral-cube/build; python3.13 -m pytest
(3.12 behaves the same way; I've omitted it for brevity.)
This looks like the first issue in
https://github.com/radio-astro-tools/spectral-cube/issues/935. I tried
cherry-picking a couple of patches from there, and that fixed it. Would
you consider doing the same in unstable? I've attached a possible
debdiff.
Thanks,
--
Colin Watson (he/him) [cjwatson at debian.org]
-------------- next part --------------
diff -Nru spectral-cube-0.6.5/debian/changelog spectral-cube-0.6.5/debian/changelog
--- spectral-cube-0.6.5/debian/changelog 2024-12-17 07:12:11.000000000 +0000
+++ spectral-cube-0.6.5/debian/changelog 2025-01-07 14:19:23.000000000 +0000
@@ -1,3 +1,10 @@
+spectral-cube (0.6.5-6.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * mean -> nanmean in failing test (closes: #-1).
+
+ -- Colin Watson <cjwatson at debian.org> Tue, 07 Jan 2025 14:19:23 +0000
+
spectral-cube (0.6.5-6) unstable; urgency=medium
* Remove six dependency (Closes: #1090171)
diff -Nru spectral-cube-0.6.5/debian/patches/series spectral-cube-0.6.5/debian/patches/series
--- spectral-cube-0.6.5/debian/patches/series 2024-12-17 07:11:57.000000000 +0000
+++ spectral-cube-0.6.5/debian/patches/series 2025-01-07 14:19:23.000000000 +0000
@@ -6,3 +6,4 @@
Don-t-run-LMV-test-on-big-endian-archs.patch
Fix-test-for-Astropy-7.patch
Remove-six-dependency.patch
+test-nanmean.patch
diff -Nru spectral-cube-0.6.5/debian/patches/test-nanmean.patch spectral-cube-0.6.5/debian/patches/test-nanmean.patch
--- spectral-cube-0.6.5/debian/patches/test-nanmean.patch 1970-01-01 01:00:00.000000000 +0100
+++ spectral-cube-0.6.5/debian/patches/test-nanmean.patch 2025-01-07 14:19:23.000000000 +0000
@@ -0,0 +1,25 @@
+From: "Adam Ginsburg (keflavich)" <keflavich at gmail.com>
+Date: Mon, 6 Jan 2025 11:13:06 -0500
+Subject: mean -> nanmean in failing test
+
+Origin: other, https://github.com/radio-astro-tools/spectral-cube/pull/929/commits/63d92273e7f423afd1f9080db93a95300a9a5064
+Origin: other, https://github.com/radio-astro-tools/spectral-cube/pull/929/commits/beb1233fb51cbbf8c3199a72512a37971f25b1d2
+Last-Update: 2025-01-07
+---
+ spectral_cube/tests/test_spectral_cube.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/spectral_cube/tests/test_spectral_cube.py b/spectral_cube/tests/test_spectral_cube.py
+index bbc1aaa..4ccd135 100644
+--- a/spectral_cube/tests/test_spectral_cube.py
++++ b/spectral_cube/tests/test_spectral_cube.py
+@@ -1528,7 +1528,8 @@ def test_oned_collapse_beams(data_sdav_beams, use_dask):
+ spec = cube.mean(axis=(1,2))
+ assert isinstance(spec, VaryingResolutionOneDSpectrum)
+ # data has a redundant 1st axis
+- np.testing.assert_equal(spec.value, data.mean(axis=(1,2,3)))
++ # we changed to assert_almost_equal in 2025 because, for no known reason, epsilon-level differences crept in
++ np.testing.assert_almost_equal(spec.value, np.nanmean(data, axis=(1,2,3)))
+ assert cube.unit == spec.unit
+ assert spec.header['BUNIT'] == cube.header['BUNIT']
+
More information about the Debian-astro-maintainers
mailing list