From b80b0e08b75f41730a1116aebe34361e5d63d58c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Tue, 2 Jul 2024 08:11:58 +0200 Subject: [PATCH] Fix the comparison in test_compatibility for NumPy 2.0.0 The comparison in `mpmath/tests/test_convert.py::test_compatibility` failed for `np.float16` in NumPy 2.0.0 since `2.0**-53` cannot be represented in half-precision floating point type. Convert the LHS to `np.float64` to ensure that the comparison is done in sufficiently precise type. This fixes the actual test failure from #815 but the deprecation warning remains. --- mpmath/tests/test_convert.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mpmath/tests/test_convert.py b/mpmath/tests/test_convert.py index 5578b245..c6ef2187 100644 --- a/mpmath/tests/test_convert.py +++ b/mpmath/tests/test_convert.py @@ -254,7 +254,9 @@ def test_compatibility(): # Handle the weird types try: diff = np.abs(type(np.sqrt(x))(sqrt(x)) - np.sqrt(x)) except: continue - assert diff < 2.0**-53 + # numpy-2 does the comparison on LHS type, so we need to convert + # it to a type that can actually represent 2.0**-53 + assert np.float64(diff) < 2.0**-53 assert mpf(np.float64('inf')) == inf assert isnan(mp.npconvert(np.float64('nan'))) if hasattr(np, "float128"):