Skip to content

Random fail in iterative_solvers test #41

@ahoarau

Description

@ahoarau

Log is here: https://github.com/Simple-Robotics/nanoeigenpy/actions/runs/20750714952/job/59579072980?pr=40

It's on windows, but it might appear on other platforms.
@ManifoldFR We should probably make the test run 1000 times in a row to trigger it more frequently.

26-01-06T14:11:05.4212390Z 13/29 Test #13: nanoeigenpy: iterative_solvers .......................***Failed    0.88 sec
2026-01-06T14:11:05.4212938Z ============================= test session starts =============================
2026-01-06T14:11:05.4213372Z platform win32 -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0
2026-01-06T14:11:05.4213751Z rootdir: D:\a\nanoeigenpy\nanoeigenpy
2026-01-06T14:11:05.4214054Z collected 10 items
2026-01-06T14:11:05.4214185Z 
2026-01-06T14:11:05.4214388Z ..\..\tests\test_iterative_solvers.py ....F.....                         [100%]
2026-01-06T14:11:05.4214707Z 
2026-01-06T14:11:05.4214819Z ================================== FAILURES ===================================
2026-01-06T14:11:05.4215258Z _____________ test_solver[DiagonalLeastSquaresConjugateGradient] ______________
2026-01-06T14:11:05.4216672Z 
2026-01-06T14:11:05.4217765Z cls = <class 'nanoeigenpy.solvers.DiagonalLeastSquaresConjugateGradient'>
2026-01-06T14:11:05.4218422Z 
2026-01-06T14:11:05.4218611Z     @pytest.mark.parametrize("cls", _classes)
2026-01-06T14:11:05.4218999Z     def test_solver(cls):
2026-01-06T14:11:05.4219256Z         Q = rng.standard_normal((dim, dim))
2026-01-06T14:11:05.4219553Z         A = 0.5 * (Q.T + Q)
2026-01-06T14:11:05.4219783Z         solver = cls(A)
2026-01-06T14:11:05.4220024Z         solver.setMaxIterations(MAX_ITER)
2026-01-06T14:11:05.4220288Z     
2026-01-06T14:11:05.4220448Z         x = rng.random(dim)
2026-01-06T14:11:05.4220656Z         b = A.dot(x)
2026-01-06T14:11:05.4220837Z         x_est = solver.solve(b)
2026-01-06T14:11:05.4221033Z     
2026-01-06T14:11:05.4221275Z >       assert solver.info() == nanoeigenpy.ComputationInfo.Success
2026-01-06T14:11:05.4221924Z E       AssertionError: assert ComputationInfo.NoConvergence == ComputationInfo.Success
2026-01-06T14:11:05.4222502Z E        +  where ComputationInfo.NoConvergence = <nanobind.nb_bound_method object at 0x0000017979741300>()
2026-01-06T14:11:05.4223326Z E        +    where <nanobind.nb_bound_method object at 0x0000017979741300> = <nanoeigenpy.solvers.DiagonalLeastSquaresConjugateGradient object at 0x0000017979507570>.info
2026-01-06T14:11:05.4224042Z E        +  and   ComputationInfo.Success = <enum 'ComputationInfo'>.Success
2026-01-06T14:11:05.4224434Z E        +    where <enum 'ComputationInfo'> = nanoeigenpy.ComputationInfo
2026-01-06T14:11:05.4224672Z 
2026-01-06T14:11:05.4225074Z ..\..\tests\test_iterative_solvers.py:29: AssertionError
2026-01-06T14:11:05.4225387Z =========================== short test summary info ===========================
2026-01-06T14:11:05.4226174Z FAILED ..\..\tests\test_iterative_solvers.py::test_solver[DiagonalLeastSquaresConjugateGradient] - AssertionError: assert ComputationInfo.NoConvergence == ComputationInfo.Success
2026-01-06T14:11:05.4227034Z  +  where ComputationInfo.NoConvergence = <nanobind.nb_bound_method object at 0x0000017979741300>()
2026-01-06T14:11:05.4228027Z  +    where <nanobind.nb_bound_method object at 0x0000017979741300> = <nanoeigenpy.solvers.DiagonalLeastSquaresConjugateGradient object at 0x0000017979507570>.info
2026-01-06T14:11:05.4228736Z  +  and   ComputationInfo.Success = <enum 'ComputationInfo'>.Success
2026-01-06T14:11:05.4229128Z  +    where <enum 'ComputationInfo'> = nanoeigenpy.ComputationInfo
2026-01-06T14:11:05.4229470Z ========================= 1 failed, 9 passed in 0.52s =========================

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions