Bug#1068647: python-pot: autopkgtest regression on i386 with NumPy 1.26.4

2024-04-12 Thread Gard Spreemann
Control: forwarded -1 https://github.com/PythonOT/POT/issues/618

Thanks for the bug report.

This seems like a simple case of a missing floating point tolerance in
upstream's test. It's easy to patch, but I've sent a reproducible
example upstream [1] as they're likely to have better insight into the
appropriate floating point tolerance level for the test.

[1] https://github.com/PythonOT/POT/issues/618


 Best,
 Gard



Bug#1068647: python-pot: autopkgtest regression on i386 with NumPy 1.26.4

2024-04-08 Thread Timo Röhling
Source: python-pot
Version: 0.9.3+dfsg-1
Severity: serious

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

Dear maintainer,

your package has a autopkgtest regression on i386 with NumPy 1.26.4. 
Hopefully relevant excerpt from test log at
https://ci.debian.net/data/autopkgtest/testing/i386/p/python-pot/45030103/log.gz
follows:


  207s === FAILURES 
===
  207s ___ test_solve_sample_methods[numpy-{'method': 'gaussian'}] 

  207s
  207s nx = 
  207s method_params = {'method': 'gaussian'}
  207s
  207s @pytest.mark.parametrize("method_params", 
lst_method_params_solve_sample)
  207s def test_solve_sample_methods(nx, method_params):
  207s
  207s n_samples_s = 20
  207s n_samples_t = 7
  207s n_features = 2
  207s rng = np.random.RandomState(0)
  207s
  207s x = rng.randn(n_samples_s, n_features)
  207s y = rng.randn(n_samples_t, n_features)
  207s a = ot.utils.unif(n_samples_s)
  207s b = ot.utils.unif(n_samples_t)
  207s
  207s xb, yb, ab, bb = nx.from_numpy(x, y, a, b)
  207s
  207s sol = ot.solve_sample(x, y, **method_params)
  207s solb = ot.solve_sample(xb, yb, ab, bb, **method_params)
  207s
  207s # check some attributes (no need )
  207s assert_allclose_sol(sol, solb)
  207s
  207s sol2 = ot.solve_sample(x, x, **method_params)
  207s if method_params['method'] not in ['factored', 'lowrank']:
  207s >   np.testing.assert_allclose(sol2.value, 0)
  207s
  207s test/test_solvers.py:419:
  207s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _
  207s
  207s args = (.compare at 0xf0b37e88>, 
array(8.8817842e-16), array(0))
  207s kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to 
tolerance rtol=1e-07, atol=0', 'verbose': True}
  207s
  207s @wraps(func)
  207s def inner(*args, **kwds):
  207s with self._recreate_cm():
  207s >   return func(*args, **kwds)
  207s E   AssertionError:
  207s E   Not equal to tolerance rtol=1e-07, atol=0
  207s E
  207s E   Mismatched elements: 1 / 1 (100%)
  207s E   Max absolute difference: 8.8817842e-16
  207s E   Max relative difference: inf
  207s Ex: array(8.881784e-16)
  207s Ey: array(0)
  207s
  207s /usr/lib/python3.12/contextlib.py:81: AssertionError


Cheers
Timo


-BEGIN PGP SIGNATURE-

iQIzBAEBCgAdFiEEmwPruYMA35fCsSO/zIxr3RQD9MoFAmYT6yAACgkQzIxr3RQD
9MoOQQ/+N1NSlnHlih5jhMBGkClnHTDpLmz8UBBdjnYoqEjQnz/SoBazuViOLd6Z
+eLeUJ8N26fsfe67eiNoVqD4ugEfMNItAq74BMQF2XF2vYVqPztLmxUwQpBrGVkD
oUOQTWos/iJCn8ITMLj+8cYl7EW99UYgh/4shhnbIhKvsKui0fnNqN+sri7gfiAX
om6UJddYkTsQmEGCTkqKgqGqZc70N9Se+mpGFngfhQXFEgQblWIn/HkahnBBp3fJ
dGTbjlT401snZ+81E/h2Ltdz3a0pQ05lN7KoJv03hy18UlToYZDcjDZMc4xIwQNG
SetjCn5+Lfm2NeXwrJ+iYNB+yc3Z4/P03VljuMJfo9pZAeNMnkyMJzQxSDLpeluV
3DeI7KQjAs/y5B/LDtvjPCUcDOoKesYcTDOyDAXRgs1Pu3WwUU5Yi7HmPgKJefmz
UXbnvsOdWgB1UQBX9rh5CKK0VHEb8ZhSZK3EuWjbiel467xml8ic2UYhr3iKadYt
a5H3nfjau1wxoGt2lkH6oOUC19A+iJXQYEZXCM9BWIZC12A6SGsBRrfcxS0jrTGs
Dg5ddnoEreJ7hAWyJHZPbbob/ITLsEKh62js7OH5zLhg2nzT/qXQCwKiDla1lhGY
jn9KxRMnV23CDMGjU2JPeImN9ha2ifVZ1zo/RRzXTu2bw3sHrVs=
=ypga
-END PGP SIGNATURE-