[Debian-med-packaging] Bug#1029593: nibabel: (armel autopkgtest) needs update for NumPy 1.24
Graham Inggs
ginggs at debian.org
Wed Jan 25 07:12:07 GMT 2023
Source: nibabel
Version: 4.0.2-1
Severity: serious
User: debian-ci at lists.debian.org
Usertags: needs-update
Hi Maintainer
The autopkgtests of nibabel fail with NumPy 1.24 on armel [1]. I've
copied what I hope is the relevant part of the log below.
Regards
Graham
[1] https://ci.debian.net/packages/n/nibabel/testing/armel/
=================================== FAILURES ===================================
___________________________ test_a2f_nan2zero_range ____________________________
def test_a2f_nan2zero_range():
# array_to_file should check if nan can be represented as zero
# This comes about when the writer can't write the value (-intercept /
# divslope) because it does not fit in the output range. Input clipping
# should not affect this
fobj = BytesIO()
# No problem for input integer types - they don't have NaNs
for dt in INT_TYPES:
arr_no_nan = np.array([-1, 0, 1, 2], dtype=dt)
# No errors from explicit thresholding (nor for input float types)
back_arr = write_return(arr_no_nan, fobj, np.int8, mn=1,
nan2zero=True)
assert_array_equal([1, 1, 1, 2], back_arr)
back_arr = write_return(arr_no_nan, fobj, np.int8, mx=-1,
nan2zero=True)
assert_array_equal([-1, -1, -1, -1], back_arr)
# Pushing zero outside the output data range does not generate error
back_arr = write_return(arr_no_nan, fobj, np.int8,
intercept=129, nan2zero=True)
assert_array_equal([-128, -128, -128, -127], back_arr)
back_arr = write_return(arr_no_nan, fobj, np.int8,
intercept=257.1, divslope=2, nan2zero=True)
assert_array_equal([-128, -128, -128, -128], back_arr)
for dt in CFLOAT_TYPES:
arr = np.array([-1, 0, 1, np.nan], dtype=dt)
# Error occurs for arrays without nans too
arr_no_nan = np.array([-1, 0, 1, 2], dtype=dt)
complex_warn = (np.ComplexWarning,) if np.issubdtype(dt,
np.complexfloating) else ()
# Casting nan to int will produce a RuntimeWarning in numpy 1.24
nan_warn = (RuntimeWarning,) if FP_RUNTIME_WARN else ()
c_and_n_warn = complex_warn + nan_warn
# No errors from explicit thresholding
# mn thresholding excluding zero
with pytest.warns(complex_warn) if complex_warn else
error_warnings():
assert_array_equal([1, 1, 1, 0],
write_return(arr, fobj, np.int8, mn=1))
# mx thresholding excluding zero
with pytest.warns(complex_warn) if complex_warn else
error_warnings():
assert_array_equal([-1, -1, -1, 0],
write_return(arr, fobj, np.int8, mx=-1))
# Errors from datatype threshold after scaling
with pytest.warns(complex_warn) if complex_warn else
error_warnings():
back_arr = write_return(arr, fobj, np.int8, intercept=128)
assert_array_equal([-128, -128, -127, -128], back_arr)
with pytest.raises(ValueError):
write_return(arr, fobj, np.int8, intercept=129)
with pytest.raises(ValueError):
write_return(arr_no_nan, fobj, np.int8, intercept=129)
# OK with nan2zero false, but we get whatever nan casts to
> with pytest.warns(c_and_n_warn) if c_and_n_warn else error_warnings():
E Failed: DID NOT WARN. No warnings of type (<class
'RuntimeWarning'>,) were emitted.
E The list of emitted warnings is: [].
nibabel/tests/test_volumeutils.py:700: Failed
More information about the Debian-med-packaging
mailing list