Source: nibabel Version: 4.0.2-1 Severity: serious User: debian...@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