Source: symfit
Version: 0.5.6-3
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20240809 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> dh_auto_test
> I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; 
> python3.12 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.12.5, pytest-8.3.2, pluggy-1.5.0
> rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build
> configfile: pytest.ini
> collected 123 items
> 
> tests/test_argument.py ....                                              [  
> 3%]
> tests/test_auto_fit.py ......                                            [  
> 8%]
> tests/test_constrained.py .....s............                             [ 
> 22%]
> tests/test_distributions.py ..                                           [ 
> 24%]
> tests/test_finite_difference.py ........                                 [ 
> 30%]
> tests/test_fit_result.py ..........                                      [ 
> 39%]
> tests/test_general.py .........s.........F....s......                    [ 
> 64%]
> tests/test_global_opt.py ....                                            [ 
> 67%]
> tests/test_minimize.py ......                                            [ 
> 72%]
> tests/test_minimizers.py .......                                         [ 
> 78%]
> tests/test_model.py ............                                         [ 
> 87%]
> tests/test_objectives.py .....                                           [ 
> 91%]
> tests/test_ode.py ........                                               [ 
> 98%]
> tests/test_support.py ..                                                 
> [100%]
> 
> =================================== FAILURES 
> ===================================
> __________________ test_likelihood_fitting_bivariate_gaussian 
> __________________
> 
>     def test_likelihood_fitting_bivariate_gaussian():
>         """
>         Fit using the likelihood method.
>         """
>         # Make variables and parameters
>         x = Variable('x')
>         y = Variable('y')
>         x0 = Parameter('x0', value=0.6, min=0.5, max=0.7)
>         sig_x = Parameter('sig_x', value=0.1, max=1.0)
>         y0 = Parameter('y0', value=0.7, min=0.6, max=0.9)
>         sig_y = Parameter('sig_y', value=0.05, max=1.0)
>         rho = Parameter('rho', value=0.001, min=-1, max=1)
>     
>         pdf = BivariateGaussian(x=x, mu_x=x0, sig_x=sig_x, y=y, mu_y=y0,
>                                 sig_y=sig_y, rho=rho)
>     
>         # Draw 100000 samples from a bivariate distribution
>         mean = [0.59, 0.8]
>         r = 0.6
>         cov = np.array([[0.11 ** 2, 0.11 * 0.23 * r],
>                         [0.11 * 0.23 * r, 0.23 ** 2]])
>         np.random.seed(42)
>         # TODO: Do we really need 100k points?
>         xdata, ydata = np.random.multivariate_normal(mean, cov, 100000).T
>     
>         fit = Fit(pdf, x=xdata, y=ydata, objective=LogLikelihood)
>         fit_result = fit.execute()
>     
>         assert fit_result.value(x0) == pytest.approx(mean[0], 1e-2)
>         assert fit_result.value(y0) == pytest.approx(mean[1], 1e-2)
>         assert fit_result.value(sig_x) == pytest.approx(np.sqrt(cov[0, 0]), 
> 1e-2)
>         assert fit_result.value(sig_y) == pytest.approx(np.sqrt(cov[1, 1]), 
> 1e-2)
>         assert fit_result.value(rho) == pytest.approx(r, 1e-2)
>     
>         marginal = integrate(pdf, (y, -oo, oo), conds='none')
>         fit = Fit(marginal, x=xdata, objective=LogLikelihood)
>     
>         with pytest.raises(NameError):
>             # Should raise a NameError, not a TypeError, see #219
> >           fit.execute()
> 
> tests/test_general.py:615: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> symfit/core/fit.py:573: in execute
>     minimizer_ans = self.minimizer.execute(**minimize_options)
> symfit/core/minimizers.py:400: in execute
>     return super(ScipyGradientMinimize, self).execute(jacobian=jacobian, 
> **minimize_options)
> symfit/core/minimizers.py:419: in execute
>     return super(ScipyBoundedMinimizer, self).execute(bounds=self.bounds,
> symfit/core/minimizers.py:339: in execute
>     ans = minimize(
> /usr/lib/python3/dist-packages/scipy/optimize/_minimize.py:713: in minimize
>     res = _minimize_lbfgsb(fun, x0, args, jac, bounds,
> /usr/lib/python3/dist-packages/scipy/optimize/_lbfgsb_py.py:347: in 
> _minimize_lbfgsb
>     sf = _prepare_scalar_function(fun, x0, jac=jac, args=args, epsilon=eps,
> /usr/lib/python3/dist-packages/scipy/optimize/_optimize.py:288: in 
> _prepare_scalar_function
>     sf = ScalarFunction(fun, x0, args, grad, hess,
> /usr/lib/python3/dist-packages/scipy/optimize/_differentiable_functions.py:166:
>  in __init__
>     self._update_fun()
> /usr/lib/python3/dist-packages/scipy/optimize/_differentiable_functions.py:262:
>  in _update_fun
>     self._update_fun_impl()
> /usr/lib/python3/dist-packages/scipy/optimize/_differentiable_functions.py:163:
>  in update_fun
>     self.f = fun_wrapped(self.x)
> /usr/lib/python3/dist-packages/scipy/optimize/_differentiable_functions.py:145:
>  in fun_wrapped
>     fx = fun(np.copy(x), *args)
> symfit/core/objectives.py:454: in __call__
>     evaluated_func = super(LogLikelihood, self).__call__(
> symfit/core/objectives.py:93: in __call__
>     result = self.model(**key2str(parameters))._asdict()
> symfit/core/models.py:706: in __call__
>     return ModelOutput(self.keys(), self.eval_components(*args, **kwargs))
> symfit/core/models.py:654: in eval_components
>     kwargs[symbol.name] = components[symbol](**dependencies_kwargs)
> <lambdifygenerated-1398>:2: in _lambdifygenerated
>     return (1/2)*exp(-x0**2/(-2*rho**2*sig_x**2 + 
> 2*sig_x**2))*exp(-y0**2/(-2*rho**2*sig_y**2 + 
> 2*sig_y**2))*exp(-x**2/(-2*rho**2*sig_x**2 + 
> 2*sig_x**2))*exp(2*x0*x/(-2*rho**2*sig_x**2 + 
> 2*sig_x**2))*exp(2*rho*x0*y0/(-2*rho**2*sig_x*sig_y + 
> 2*sig_x*sig_y))*exp(-2*rho*y0*x/(-2*rho**2*sig_x*sig_y + 
> 2*sig_x*sig_y))*quad(lambda y: exp(-y**2/(-2*rho**2*sig_y**2 + 
> 2*sig_y**2))*exp(2*y0*y/(-2*rho**2*sig_y**2 + 
> 2*sig_y**2))*exp(-2*rho*x0*y/(-2*rho**2*sig_x*sig_y + 
> 2*sig_x*sig_y))*exp(2*rho*x*y/(-2*rho**2*sig_x*sig_y + 2*sig_x*sig_y)), -inf, 
> inf)[0]/(sig_x*sig_y*pi*sqrt(-(rho - 1)*(rho + 1)))
> /usr/lib/python3/dist-packages/scipy/integrate/_quadpack_py.py:464: in quad
>     retval = _quad(func, a, b, args, full_output, epsabs, epsrel, limit,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> func = <function _lambdifygenerated.<locals>.<lambda> at 0x7ff39297bf60>
> a = -inf, b = inf, args = (), full_output = 0, epsabs = 1.49e-08
> epsrel = 1.49e-08, limit = 50, points = None
> 
>     def _quad(func,a,b,args,full_output,epsabs,epsrel,limit,points):
>         infbounds = 0
>         if (b != np.inf and a != -np.inf):
>             pass   # standard integration
>         elif (b == np.inf and a != -np.inf):
>             infbounds = 1
>             bound = a
>         elif (b == np.inf and a == -np.inf):
>             infbounds = 2
>             bound = 0     # ignored
>         elif (b != np.inf and a == -np.inf):
>             infbounds = -1
>             bound = b
>         else:
>             raise RuntimeError("Infinity comparisons don't work for you.")
>     
>         if points is None:
>             if infbounds == 0:
>                 return 
> _quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit)
>             else:
> >               return _quadpack._qagie(func, bound, infbounds, args, 
> > full_output,
>                                         epsabs, epsrel, limit)
> E               TypeError: only length-1 arrays can be converted to Python 
> scalars
> 
> /usr/lib/python3/dist-packages/scipy/integrate/_quadpack_py.py:613: TypeError
> =============================== warnings summary 
> ===============================
> symfit/core/printing.py:13
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/symfit/core/printing.py:13: 
> DeprecationWarning: pkg_resources is deprecated as an API. See 
> https://setuptools.pypa.io/en/latest/pkg_resources.html
>     import pkg_resources
> 
> tests/test_auto_fit.py: 3 warnings
> tests/test_constrained.py: 14 warnings
> tests/test_finite_difference.py: 1 warning
> tests/test_fit_result.py: 5 warnings
> tests/test_general.py: 16 warnings
> tests/test_minimizers.py: 2 warnings
> tests/test_objectives.py: 1 warning
> tests/test_ode.py: 1 warning
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/symfit/core/fit.py:278: 
> DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be 
> removed in NumPy 2.0. Please use `prod` instead.
>     cov_matrix = self._covariance_matrix(best_fit_params,
> 
> tests/test_auto_fit.py: 2 warnings
> tests/test_constrained.py: 13 warnings
> tests/test_finite_difference.py: 2 warnings
> tests/test_fit_result.py: 1 warning
> tests/test_general.py: 12 warnings
> tests/test_global_opt.py: 3 warnings
> tests/test_ode.py: 7 warnings
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/symfit/core/fit.py:301: 
> DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be 
> removed in NumPy 2.0. Please use `prod` instead.
>     cov_matrix = self._covariance_matrix(best_fit_params,
> 
> tests/test_constrained.py: 196 warnings
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/tests/test_constrained.py:766: 
> DeprecationWarning: 'scipy.integrate.simps' is deprecated in favour of 
> 'scipy.integrate.simpson' and will be removed in SciPy 1.14.0
>     {Y: lambda x, y: simps(y, x) - 1},  # Integrate using simps
> 
> tests/test_general.py::test_likelihood_fitting_exponential
>   /usr/lib/python3/dist-packages/_pytest/python.py:159: DeprecationWarning: 
> `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. 
> Please use `prod` instead.
>     result = testfunction(**testargs)
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED tests/test_general.py::test_likelihood_fitting_bivariate_gaussian - 
> Ty...
> ====== 1 failed, 119 passed, 3 skipped, 281 warnings in 117.77s (0:01:57) 
> ======
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; python3.12 -m pytest tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.12 
> returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2024/08/09/symfit_0.5.6-3_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240809;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240809&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to