scipy: BUG: 1.10.0 tests fail on i386 and other less common arches

Describe your issue.

Debian has prepared an experimental build of scipy 1.10.0, building with python 3.11 (and 3.10) and numpy 1.24. Also with pythran 0.11. Build logs are found at https://buildd.debian.org/status/package.php?p=scipy&suite=experimental

Build-time tests pass on arm64 and amd64, also on 32-bit armhf. But i386 fails 10 tests. A build log (scipy 1.10.0-1exp1) is https://buildd.debian.org/status/fetch.php?pkg=scipy&arch=i386&ver=1.10.0-1exp1&stamp=1674218904&raw=0

Summary:

  1. TestFindPeaksCwt.test_find_peaks_exact: same qualitative behaviour but different specific peak indices. Test is not robust.
  2. TestFindPeaksCwt.test_find_peaks_withnoise: order of magnitude discrepancy
  3. test_x0_equals_Mb[bicgstab]: fully discrepant
  4. test_roots_gegenbauer: relative tolerance not met (almost met)
  5. test_rv_sample: tolerance not met with large discrepancy
  6. TestLevyStable.test_pdf_nolan_samples[pct_range0-alpha_range0-beta_range0]: relative tolerance not met (almost met)
  7. TestLevyStable.test_cdf_nolan_samples[pct_range0-alpha_range0-beta_range0]: relative tolerance not met (almost met)
  8. TestLevyStable.test_location_scale[pdf-0]: f(a) and f(b) must have different signs
  9. TestLevyStable.test_location_scale[pdf-1]: f(a) and f(b) must have different signs
  10. TestCompareWithStats.test_skewtest_2D_WithMask: relative tolerance not met (almost met)

Reproducing Code Example

runtests.py -n

Error message

____________________ TestFindPeaksCwt.test_find_peaks_exact ____________________
../../.pybuild/cpython3_3.10_scipy/build/scipy/signal/tests/test_peak_finding.py:806: in test_find_peaks_exact
    np.testing.assert_array_equal(found_locs, act_locs,
        act_locs   = array([ 71, 142, 214, 285, 357, 428])
        found_locs = array([ 72, 143, 215, 286, 358, 429], dtype=int32)
        num_points = 500
        self       = <scipy.signal.tests.test_peak_finding.TestFindPeaksCwt object at 0xea594190>
        sigmas     = [5.0, 3.0, 10.0, 20.0, 10.0, 50.0]
        test_data  = array([1.50549685e-32, 2.11937869e-32, 2.98119127e-32, 4.19009319e-32,
       5.88450706e-32, 8.25750906e-32, 1.157818...1.84519524e-01, 1.75099657e-01, 1.66027806e-01,
       1.57300074e-01, 1.48911963e-01, 1.40858421e-01, 1.33133885e-01])
        widths     = array([ 0.1,  1.1,  2.1,  3.1,  4.1,  5.1,  6.1,  7.1,  8.1,  9.1, 10.1,
       11.1, 12.1, 13.1, 14.1, 15.1, 16.1, 17...1,
       33.1, 34.1, 35.1, 36.1, 37.1, 38.1, 39.1, 40.1, 41.1, 42.1, 43.1,
       44.1, 45.1, 46.1, 47.1, 48.1, 49.1])
/usr/lib/python3.10/contextlib.py:79: in inner
    return func(*args, **kwds)
E   AssertionError: 
E   Arrays are not equal
E   Found maximum locations did not equal those expected
E   Mismatched elements: 6 / 6 (100%)
E   Max absolute difference: 1
E   Max relative difference: 0.01408451
E    x: array([ 72, 143, 215, 286, 358, 429], dtype=int32)
E    y: array([ 71, 142, 214, 285, 357, 428])
        args       = (<built-in function eq>, array([ 72, 143, 215, 286, 358, 429], dtype=int32), array([ 71, 142, 214, 285, 357, 428]))
        func       = <function assert_array_compare at 0xf04c96a0>
        kwds       = {'err_msg': 'Found maximum locations did not equal those expected', 'header': 'Arrays are not equal', 'strict': False, 'verbose': True}
        self       = <contextlib._GeneratorContextManager object at 0xf053f508>
__________________ TestFindPeaksCwt.test_find_peaks_withnoise __________________
../../.pybuild/cpython3_3.10_scipy/build/scipy/signal/tests/test_peak_finding.py:828: in test_find_peaks_withnoise
    np.testing.assert_array_less(diffs, max_diffs, 'Maximum location differed' +
        act_locs   = array([ 71, 142, 214, 285, 357, 428])
        diffs      = array([1, 1, 1, 3, 1, 0])
        found_locs = array([ 72, 143, 215, 288, 358, 428], dtype=int32)
        max_diffs  = array([ 1. ,  0.6,  2. ,  4. ,  2. , 10. ])
        noise_amp  = 0.07
        num_points = 500
        self       = <scipy.signal.tests.test_peak_finding.TestFindPeaksCwt object at 0xea5941c0>
        sigmas     = [5.0, 3.0, 10.0, 20.0, 10.0, 50.0]
        test_data  = array([ 6.78864387e-02, -2.00643540e-02, -3.27414303e-02,  1.19094918e-02,
        5.52614013e-02,  6.31457252e-02, -1...9101e-01,  1.28751325e-01,  2.10417219e-01,
        1.06335978e-01,  1.70557941e-01,  1.30800895e-01,  2.02734269e-01])
        widths     = array([ 0.1,  1.1,  2.1,  3.1,  4.1,  5.1,  6.1,  7.1,  8.1,  9.1, 10.1,
       11.1, 12.1, 13.1, 14.1, 15.1, 16.1, 17...1,
       33.1, 34.1, 35.1, 36.1, 37.1, 38.1, 39.1, 40.1, 41.1, 42.1, 43.1,
       44.1, 45.1, 46.1, 47.1, 48.1, 49.1])
/usr/lib/python3.10/contextlib.py:79: in inner
    return func(*args, **kwds)
E   AssertionError: 
E   Arrays are not less-ordered
E   Maximum location differedby more than [ 1.   0.6  2.   4.   2.  10. ]
E   Mismatched elements: 2 / 6 (33.3%)
E   Max absolute difference: 10.
E   Max relative difference: 1.
E    x: array([1, 1, 1, 3, 1, 0])
E    y: array([ 1. ,  0.6,  2. ,  4. ,  2. , 10. ])
        args       = (<built-in function lt>, array([1, 1, 1, 3, 1, 0]), array([ 1. ,  0.6,  2. ,  4. ,  2. , 10. ]))
        func       = <function assert_array_compare at 0xf04c96a0>
        kwds       = {'equal_inf': False, 'err_msg': 'Maximum location differedby more than [ 1.   0.6  2.   4.   2.  10. ]', 'header': 'Arrays are not less-ordered', 'verbose': True}
        self       = <contextlib._GeneratorContextManager object at 0xf053f508>
_________________________ test_x0_equals_Mb[bicgstab] __________________________
../../.pybuild/cpython3_3.10_scipy/build/scipy/sparse/linalg/_isolve/tests/test_iterative.py:531: in test_x0_equals_Mb
    assert_equal(info, 0)
E   AssertionError: 
E   Items are not equal:
E    ACTUAL: -11
E    DESIRED: 0
        A          = <10x10 sparse matrix of type '<class 'numpy.complex64'>'
	with 19 stored elements in Compressed Sparse Row format>
        b          = array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
        case       = <nonsymposdef>
        info       = -11
        solver     = <function bicgstab at 0xefbf1460>
        sup        = <numpy.testing._private.utils.suppress_warnings object at 0xd7ce0e50>
        tol        = 1e-08
        x          = array([0.        +0.j, 0.49999272+0.j, 1.25007169+0.j, 2.12617093+0.j,
       3.06661642+0.j, 4.03650608+0.j, 5.01656828+0.j, 6.00407387+0.j,
       7.        +0.j, 8.        +0.j])
        x0         = 'Mb'
____________________________ test_roots_gegenbauer _____________________________
../../.pybuild/cpython3_3.10_scipy/build/scipy/special/tests/test_orthogonal.py:552: in test_roots_gegenbauer
    vgq(rootf(170.5), evalf(170.5), weightf(170.5), -1., 1., 5, atol=1e-13)
        evalf      = <function test_roots_gegenbauer.<locals>.<lambda> at 0xcf270028>
        rootf      = <function test_roots_gegenbauer.<locals>.<lambda> at 0xcf39ae80>
        vgq        = <function verify_gauss_quad at 0xe607c850>
        weightf    = <function test_roots_gegenbauer.<locals>.<lambda> at 0xcf270070>
../../.pybuild/cpython3_3.10_scipy/build/scipy/special/tests/test_orthogonal.py:288: in verify_gauss_quad
    assert_allclose(vv, np.eye(N), rtol, atol)
        N          = 5
        a          = -1.0
        atol       = 1e-13
        b          = 1.0
        eval_func  = <function test_roots_gegenbauer.<locals>.<lambda>.<locals>.<lambda> at 0xcf270100>
        mu         = 0.13564205082563713
        n          = array([0, 1, 2, 3, 4])
        root_func  = <function test_roots_gegenbauer.<locals>.<lambda>.<locals>.<lambda> at 0xcf2700b8>
        rtol       = 1e-15
        v          = array([[ 1.00000000e+00,  1.00000000e+00,  1.00000000e+00,
         1.00000000e+00,  1.00000000e+00],
       [-5.21053...1.50578333e+04],
       [ 9.71331105e+04, -2.24771433e+04,  1.46203750e+04,
        -2.24771433e+04,  9.71331105e+04]])
        vd         = array([2.71520626e+00, 1.47467225e-01, 1.13099306e-02, 1.06078824e-03,
       1.14716912e-04])
        vv         = array([[ 1.00000000e+00, -1.66701624e-17,  1.12365722e-13,
         0.00000000e+00, -6.40234225e-14],
       [-1.66701...0.00000000e+00],
       [-6.40234225e-14,  1.53859079e-17,  2.31849365e-14,
         0.00000000e+00,  1.00000000e+00]])
        w          = array([0.00159143, 0.03026838, 0.07192244, 0.03026838, 0.00159143])
        weight_func = <function test_roots_gegenbauer.<locals>.<lambda>.<locals>.<lambda> at 0xcf270148>
        x          = array([-0.15280171, -0.07283497,  0.        ,  0.07283497,  0.15280171])
/usr/lib/python3.10/contextlib.py:79: in inner
    return func(*args, **kwds)
E   AssertionError: 
E   Not equal to tolerance rtol=1e-15, atol=1e-13
E   
E   Mismatched elements: 2 / 25 (8%)
E   Max absolute difference: 1.12365722e-13
E   Max relative difference: 2.22044605e-16
E    x: array([[ 1.000000e+00, -1.667016e-17,  1.123657e-13,  0.000000e+00,
E           -6.402342e-14],
E          [-1.667016e-17,  1.000000e+00, -2.370149e-17,  2.134104e-16,...
E    y: array([[1., 0., 0., 0., 0.],
E          [0., 1., 0., 0., 0.],
E          [0., 0., 1., 0., 0.],...
        args       = (<function assert_allclose.<locals>.compare at 0xcf270268>, array([[ 1.00000000e+00, -1.66701624e-17,  1.12365722e-13,...,
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]]))
        func       = <function assert_array_compare at 0xf04c96a0>
        kwds       = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-15, atol=1e-13', 'verbose': True}
        self       = <contextlib._GeneratorContextManager object at 0xf053f508>
________________________________ test_rv_sample ________________________________
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/tests/test_discrete_basic.py:500: in test_rv_sample
    assert_allclose(dist.isf(sf2), xk)
        a          = 0.11258454840231691
        b          = 9.800232436234106
        cdf2       = array([0.05672564, 0.25046343, 0.29197354, 0.30290143, 0.34781006,
       0.55910659, 0.64135275, 0.66907758, 0.9178958 , 1.        ])
        cdf2_left  = array([0.02836282, 0.15359453, 0.27121848, 0.29743748, 0.32535574,
       0.45345832, 0.60022967, 0.65521516, 0.79348669, 0.9589479 ])
        cdf2_right = array([0.15359453, 0.27121848, 0.29743748, 0.32535574, 0.45345832,
       0.60022967, 0.65521516, 0.79348669, 0.9589479 , 1.        ])
        dist       = <scipy.stats._distn_infrastructure.rv_sample object at 0xce907eb0>
        pk         = array([0.05672564, 0.19373779, 0.04151011, 0.01092789, 0.04490863,
       0.21129653, 0.08224617, 0.02772482, 0.24881822, 0.0821042 ])
        rng        = Generator(PCG64) at 0xCEF275A8
        sf2        = array([0.94327436, 0.74953657, 0.70802646, 0.69709857, 0.65218994,
       0.44089341, 0.35864725, 0.33092242, 0.0821042 , 0.        ])
        xk         = array([0.11258455, 1.01812809, 2.54176087, 3.5631045 , 4.19946824,
       6.22114367, 6.93102669, 7.12393351, 9.59875636, 9.80023244])
        xk_left    = array([0.05629227, 0.56535632, 1.77994448, 3.05243268, 3.88128637,
       5.21030596, 6.57608518, 7.0274801 , 8.36134494, 9.6994944 ])
        xk_right   = array([ 0.56535632,  1.77994448,  3.05243268,  3.88128637,  5.21030596,
        6.57608518,  7.0274801 ,  8.36134494,  9.6994944 , 10.30023244])
/usr/lib/python3.10/contextlib.py:79: in inner
    return func(*args, **kwds)
E   AssertionError: 
E   Not equal to tolerance rtol=1e-07, atol=0
E   
E   Mismatched elements: 1 / 10 (10%)
E   Max absolute difference: 1.02134363
E   Max relative difference: 0.40182522
E    x: array([0.112585, 1.018128, 3.563104, 3.563104, 4.199468, 6.221144,
E          6.931027, 7.123934, 9.598756, 9.800232])
E    y: array([0.112585, 1.018128, 2.541761, 3.563104, 4.199468, 6.221144,
E          6.931027, 7.123934, 9.598756, 9.800232])
        args       = (<function assert_allclose.<locals>.compare at 0xce910580>, array([0.11258455, 1.01812809, 3.5631045 , 3.5631045 , 4.1...5, 1.01812809, 2.54176087, 3.5631045 , 4.19946824,
       6.22114367, 6.93102669, 7.12393351, 9.59875636, 9.80023244]))
        func       = <function assert_array_compare at 0xf04c96a0>
        kwds       = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
        self       = <contextlib._GeneratorContextManager object at 0xf053f508>
__ TestLevyStable.test_pdf_nolan_samples[pct_range0-alpha_range0-beta_range0] __
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/tests/test_distributions.py:3996: in test_pdf_nolan_samples
    assert_allclose(
        alpha_range = [0.1, 1, 2]
        beta_range = [-1, 0, 0.8]
        data       = rec.array([(-5.54809272e+19, 1.79355106e-23, 0.1, -1., 0.01),
           (-1.93540945e-07, 2.45039317e+04, 0.1, -1., 0...-02, 2. ,  1., 0.95)],
          dtype=[('x', '<f8'), ('p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8')])
        default_method = 'piecewise'
        failures   = rec.array([(-1.93540945e-07, 24503.93170941, 0.1, -1., 0.99, 24503.93170498, 4.4331864e-06, 1.80917351e-10)],
        ...'p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8'), ('calc', '<f8'), ('abserr', '<f8'), ('relerr', '<f8')])
        filter_func = <function TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda> at 0xcd421028>
        is_linux_32 = True
        ix         = 3
        nolan_pdf_sample_data = rec.array([(-5.54809272e+19, 1.79355106e-23, 0.1, -1., 0.01),
           (-1.93540945e-07, 2.45039317e+04, 0.1, -1., 0...-02, 2. ,  1., 0.95)],
          dtype=[('x', '<f8'), ('p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8')])
        p          = array([1.79355106e-23, 2.45039317e+04, 1.92491224e-20, 1.92491224e-20,
       2.77764536e-13, 5.17066878e-23, 1.15508291e+06, 6.50864173e-03])
        pct_range  = [0.01, 0.5, 0.99]
        platform_desc = 'Linux/i686/'
        rtol       = 5e-11
        self       = <scipy.stats.tests.test_distributions.TestLevyStable object at 0xe5530aa8>
        subdata    = rec.array([(-5.54809272e+19, 1.79355106e-23, 0.1, -1. , 0.01),
           (-1.93540945e-07, 2.45039317e+04, 0.1, -1. ,...03, 0.1,  0.8, 0.5 )],
          dtype=[('x', '<f8'), ('p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8')])
        subdata2   = rec.array([(-5.54809272e+19, 1.79355106e-23, 0.1, -1. , 0.01, 1.79355106e-23, 2.05711511e-38, 1.14695096e-15),
       ...'p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8'), ('calc', '<f8'), ('abserr', '<f8'), ('relerr', '<f8')])
        sup        = <numpy.testing._private.utils.suppress_warnings object at 0xcd42d478>
        tests      = [['dni', 1e-07, <function TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda> at 0xcd421c40>], ['piecewise', 1e-11...0xcd421cd0>], ['fft-simpson', 1e-06, <function TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda> at 0xcd421100>]]
        uname      = uname_result(system='Linux', node='x86-grnet-01', release='5.10.0-20-amd64', version='#1 SMP Debian 5.10.158-2 (2022-12-13)', machine='i686')
/usr/lib/python3.10/contextlib.py:79: in inner
    return func(*args, **kwds)
E   AssertionError: 
E   Not equal to tolerance rtol=5e-11, atol=0
E   pdf test 3 failed with method 'piecewise' [platform: Linux/i686/]
E   ('x', 'p', 'alpha', 'beta', 'pct', 'calc', 'abserr', 'relerr')
E   [(-1.93540945e-07, 24503.93170941, 0.1, -1., 0.99, 24503.93170498, 4.4331864e-06, 1.80917351e-10)]
E   Mismatched elements: 1 / 8 (12.5%)
E   Max absolute difference: 1.00994948e-05
E   Max relative difference: 1.80917351e-10
        args       = (<function assert_allclose.<locals>.compare at 0xcd4214f0>, array([1.79355106e-23, 2.45039317e+04, 1.92491224e-20, 1.9....45039317e+04, 1.92491224e-20, 1.92491224e-20,
       2.77764536e-13, 5.17066878e-23, 1.15508291e+06, 6.50864173e-03]))
        func       = <function assert_array_compare at 0xf04c96a0>
        kwds       = {'equal_nan': True, 'err_msg': "pdf test 3 failed with method 'piecewise' [platform: Linux/i686/]\n('x', 'p', 'alpha',...03.93170498, 4.4331864e-06, 1.80917351e-10)]", 'header': 'Not equal to tolerance rtol=5e-11, atol=0', 'verbose': False}
        self       = <contextlib._GeneratorContextManager object at 0xf053f508>
__ TestLevyStable.test_cdf_nolan_samples[pct_range0-alpha_range0-beta_range0] __
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/tests/test_distributions.py:4142: in test_cdf_nolan_samples
    assert_allclose(
        alpha_range = [0.1, 1, 2]
        beta_range = [-1, 0, 0.8]
        data       = rec.array([(-5.54809272e+19, 0.01, 0.1, -1., 0.01),
           (-1.93540945e-07, 0.99, 0.1, -1., 0.99),
           (-5....95, 2. ,  1., 0.95)],
          dtype=[('x', '<f8'), ('p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8')])
        default_method = 'piecewise'
        failures   = rec.array([(-1.93540945e-07, 0.99, 0.1, -1., 0.99, 0.99, 1.35957912e-12, 1.37331224e-12)],
          dtype=[('x', '<f8...'p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8'), ('calc', '<f8'), ('abserr', '<f8'), ('relerr', '<f8')])
        filter_func = <function TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda> at 0xcd421e38>
        ix         = 0
        nolan_cdf_sample_data = rec.array([(-5.54809272e+19, 0.01, 0.1, -1., 0.01),
           (-1.93540945e-07, 0.99, 0.1, -1., 0.99),
           (-5....95, 2. ,  1., 0.95)],
          dtype=[('x', '<f8'), ('p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8')])
        p          = array([0.01, 0.99, 0.01, 0.99, 0.01, 0.99, 0.01, 0.99, 0.01, 0.99, 0.01,
       0.99, 0.01, 0.99, 0.01, 0.99, 0.01, 0.99, 0.5 , 0.5 , 0.5 , 0.5 ,
       0.5 , 0.5 , 0.5 ])
        pct_range  = [0.01, 0.5, 0.99]
        rtol       = 1e-12
        self       = <scipy.stats.tests.test_distributions.TestLevyStable object at 0xe55309b8>
        subdata    = rec.array([(-5.54809272e+19, 0.01, 0.1, -1. , 0.01),
           (-1.93540945e-07, 0.99, 0.1, -1. , 0.99),
           (...5 , 2. ,  0.8, 0.5 )],
          dtype=[('x', '<f8'), ('p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8')])
        subdata2   = rec.array([(-5.54809272e+19, 0.01, 0.1, -1. , 0.01, 0.01, 3.24393290e-16, 3.24393290e-14),
           (-1.93540945e-07...'p', '<f8'), ('alpha', '<f8'), ('beta', '<f8'), ('pct', '<f8'), ('calc', '<f8'), ('abserr', '<f8'), ('relerr', '<f8')])
        sup        = <numpy.testing._private.utils.suppress_warnings object at 0xcd42dd78>
        tests      = [['piecewise', 1e-12, <function TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda> at 0xcd421e38>], ['piecewise',... 0xcd421778>], ['fft-simpson', 0.01, <function TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda> at 0xcd4217c0>]]
/usr/lib/python3.10/contextlib.py:79: in inner
    return func(*args, **kwds)
E   AssertionError: 
E   Not equal to tolerance rtol=1e-12, atol=0
E   cdf test 0 failed with method 'piecewise'
E   ('x', 'p', 'alpha', 'beta', 'pct', 'calc', 'abserr', 'relerr')
E   [(-1.93540945e-07, 0.99, 0.1, -1., 0.99, 0.99, 1.35957912e-12, 1.37331224e-12)]
E   Mismatched elements: 1 / 25 (4%)
E   Max absolute difference: 1.35957912e-12
E   Max relative difference: 1.37331224e-12
        args       = (<function assert_allclose.<locals>.compare at 0xcd421fa0>, array([0.01, 0.99, 0.01, 0.99, 0.01, 0.99, 0.01, 0.99, 0.0..., 0.01, 0.99, 0.01,
       0.99, 0.01, 0.99, 0.01, 0.99, 0.01, 0.99, 0.5 , 0.5 , 0.5 , 0.5 ,
       0.5 , 0.5 , 0.5 ]))
        func       = <function assert_array_compare at 0xf04c96a0>
        kwds       = {'equal_nan': True, 'err_msg': "cdf test 0 failed with method 'piecewise'\n('x', 'p', 'alpha', 'beta', 'pct', 'calc', ...0.99, 0.99, 1.35957912e-12, 1.37331224e-12)]", 'header': 'Not equal to tolerance rtol=1e-12, atol=0', 'verbose': False}
        self       = <contextlib._GeneratorContextManager object at 0xf053f508>
__________________ TestLevyStable.test_location_scale[pdf-0] ___________________
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/tests/test_distributions.py:4172: in test_location_scale
    v1 = function(
        case       = 'pdf'
        data       = array([(0, -9.83138374e+03, 0.1, -0.5, 2, 3, 0.25, 2.06417044e-06, 0.25),
       (0,  2.68624051e+00, 0.1, -0.5, 2, 3,...('alpha', '<f8'), ('beta', '<f8'), ('gamma', '<i8'), ('delta', '<i8'), ('pct', '<f8'), ('pdf', '<f8'), ('cdf', '<f8')])
        function   = <bound method levy_stable_gen.pdf of <scipy.stats._levy_stable.levy_stable_gen object at 0xed075130>>
        nolan_loc_scale_sample_data = array([(0, -9.83138374e+03, 0.1, -0.5, 2, 3, 0.25, 2.06417044e-06, 0.25),
       (0,  2.68624051e+00, 0.1, -0.5, 2, 3,...('alpha', '<f8'), ('beta', '<f8'), ('gamma', '<i8'), ('delta', '<i8'), ('pct', '<f8'), ('pdf', '<f8'), ('cdf', '<f8')])
        param      = 0
        self       = <scipy.stats.tests.test_distributions.TestLevyStable object at 0xe5530cb8>
        subdata    = array([(0, -9.83138374e+03, 0.1, -0.5, 2, 3, 0.25, 2.06417044e-06, 0.25),
       (0,  2.68624051e+00, 0.1, -0.5, 2, 3,...('alpha', '<f8'), ('beta', '<f8'), ('gamma', '<i8'), ('delta', '<i8'), ('pct', '<f8'), ('pdf', '<f8'), ('cdf', '<f8')])
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:842: in pdf
    return super().pdf(x, *args, **kwds)
        __class__  = <class 'scipy.stats._levy_stable.levy_stable_gen'>
        args       = (array([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1. , 1. , 1. , 1. ,
       1. , 1. , 1. , 1. , 1. , 1.5, 1.5, 1.5... ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. , -0.5, -0.5, -0.5, -0.5,
        0. ,  0. ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. ]))
        kwds       = {'loc': 3, 'scale': 2}
        self       = <scipy.stats._levy_stable.levy_stable_gen object at 0xed075130>
        x          = array([-9.83138374e+03,  2.68624051e+00,  3.15838443e+00, -4.15103774e+01,
        3.00000000e+00,  4.75103774e+01,  2...9802e+00,  4.08140198e+00,  9.10388195e+00, -4.23489332e-01,
        2.47412500e+00,  4.83480608e+00,  1.26484719e+01])
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_distn_infrastructure.py:2102: in pdf
    place(output, cond, self._pdf(*goodargs) / scale)
        args       = (array([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1. , 1. , 1. , 1. ,
       1. , 1. , 1. , 1. , 1. , 1.5, 1.5, 1.5... ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. , -0.5, -0.5, -0.5, -0.5,
        0. ,  0. ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. ]))
        cond       = array([ True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,... True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True])
        cond0      = array([ True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,... True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True])
        cond1      = array([ True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,... True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True])
        dtyp       = dtype('float64')
        goodargs   = [array([-4.91719187e+03, -1.56879743e-01,  7.91922133e-02, -2.22551887e+01,
        0.00000000e+00,  2.22551887e+01, -... ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. , -0.5, -0.5, -0.5, -0.5,
        0. ,  0. ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. ])]
        kwds       = {'loc': 3, 'scale': 2}
        loc        = array(3)
        output     = array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., ...0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
        scale      = array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
        self       = <scipy.stats._levy_stable.levy_stable_gen object at 0xed075130>
        x          = array([-4.91719187e+03, -1.56879743e-01,  7.91922133e-02, -2.22551887e+01,
        0.00000000e+00,  2.22551887e+01, -1...0989e-01,  5.40700989e-01,  3.05194097e+00, -1.71174467e+00,
       -2.62937501e-01,  9.17403038e-01,  4.82423597e+00])
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:921: in _pdf
    [
        _cf        = functools.partial(<function _cf at 0xed13cec8>, <function _Phi_Z0 at 0xed13cc88>)
        _pdf_single_value_cf_integrate = functools.partial(<function _pdf_single_value_cf_integrate at 0xed13cf10>, <function _Phi_Z0 at 0xed13cc88>)
        _pdf_single_value_piecewise = <function _pdf_single_value_piecewise_Z0 at 0xed13cc40>
        alpha      = array([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1. , 1. , 1. , 1. ,
       1. , 1. , 1. , 1. , 1. , 1.5, 1.5, 1.5,..., 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1.5,
       1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5])
        beta       = array([-0.5, -0.5, -0.5,  0. ,  0. ,  0. ,  1. ,  1. ,  1. , -0.5, -0.5,
       -0.5,  0. ,  0. ,  0. ,  1. ,  1. ,  1.... ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. , -0.5, -0.5, -0.5, -0.5,
        0. ,  0. ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. ])
        data_in    = array([[-4.91719187e+03,  1.00000000e-01, -5.00000000e-01],
       [-1.56879743e-01,  1.00000000e-01, -5.00000000e-01]...      [ 9.17403038e-01,  1.50000000e+00,  1.00000000e+00],
       [ 4.82423597e+00,  1.50000000e+00,  1.00000000e+00]])
        data_mask  = array([False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False,...False, False, False, False, False, False, False,
       False, False, False, False, False,  True,  True,  True,  True])
        data_out   = array([[4.12834088e-06],
       [1.16805188e-01],
       [1.36721528e+05],
       [7.76757363e-04],
       [1.15508291... [3.00287426e-02],
       [0.00000000e+00],
       [0.00000000e+00],
       [0.00000000e+00],
       [0.00000000e+00]])
        data_subset = array([[-0.63281241,  1.5       ,  1.        ],
       [ 0.28328931,  1.5       ,  1.        ],
       [ 1.48151211,  ...       ,  1.        ],
       [ 0.91740304,  1.5       ,  1.        ],
       [ 4.82423597,  1.5       ,  1.        ]])
        fft_grid_spacing = 0.001
        fft_interpolation_degree = 3
        fft_interpolation_level = 3
        fft_n_points_two_power = None
        pair       = array([1.5, 1. ])
        pdf_default_method_name = 'piecewise'
        pdf_single_value_kwds = {'piecewise_alpha_tol_near_one': 0.005, 'piecewise_x_tol_near_zeta': 0.005, 'quad_eps': 1.2e-14}
        pdf_single_value_method = <function _pdf_single_value_piecewise_Z0 at 0xed13cc40>
        self       = <scipy.stats._levy_stable.levy_stable_gen object at 0xed075130>
        uniq_param_pairs = array([[ 0.1, -0.5],
       [ 0.1,  0. ],
       [ 0.1,  1. ],
       [ 1. , -0.5],
       [ 1. ,  0. ],
       [ 1. ,  1. ],
       [ 1.5, -0.5],
       [ 1.5,  0. ],
       [ 1.5,  1. ]])
        x          = array([-4.91719187e+03, -1.56879743e-01,  7.91922133e-02, -2.22551887e+01,
        0.00000000e+00,  2.22551887e+01, -1...0989e-01,  5.40700989e-01,  3.05194097e+00, -1.71174467e+00,
       -2.62937501e-01,  9.17403038e-01,  4.82423597e+00])
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:922: in <listcomp>
    pdf_single_value_method(
        .0         = <iterator object at 0xce5629d0>
        _alpha     = 1.5
        _beta      = 1.0
        _x         = -1.711744665823812
        pdf_single_value_kwds = {'piecewise_alpha_tol_near_one': 0.005, 'piecewise_x_tol_near_zeta': 0.005, 'quad_eps': 1.2e-14}
        pdf_single_value_method = <function _pdf_single_value_piecewise_Z0 at 0xed13cc40>
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:214: in _pdf_single_value_piecewise_Z0
    return _pdf_single_value_piecewise_post_rounding_Z0(
        alpha      = 1.5
        alpha_tol_near_one = 0.005
        beta       = 1.0
        kwds       = {'piecewise_alpha_tol_near_one': 0.005, 'piecewise_x_tol_near_zeta': 0.005, 'quad_eps': 1.2e-14}
        quad_eps   = 1.2e-14
        x0         = -1.711744665823812
        x_tol_near_zeta = 0.005
        zeta       = 1.0000000000000002
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:238: in _pdf_single_value_piecewise_post_rounding_Z0
    return _pdf_single_value_piecewise_post_rounding_Z0(
        _nolan     = <scipy.stats._levy_stable.levyst.Nolan object at 0xce445890>
        alpha      = 1.5
        beta       = 1.0
        c2         = -0.3521458604072777
        g          = <built-in method g of scipy.stats._levy_stable.levyst.Nolan object at 0xce445890>
        quad_eps   = 1.2e-14
        x0         = -1.711744665823812
        xi         = -0.5235987755982989
        zeta       = 1.0000000000000002
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:259: in _pdf_single_value_piecewise_post_rounding_Z0
    peak = optimize.bisect(
        _nolan     = <scipy.stats._levy_stable.levyst.Nolan object at 0xce4453f0>
        alpha      = 1.5
        beta       = -1.0
        c2         = 0.3521458604072777
        g          = <built-in method g of scipy.stats._levy_stable.levyst.Nolan object at 0xce4453f0>
        integrand  = <function _pdf_single_value_piecewise_post_rounding_Z0.<locals>.integrand at 0xce548610>
        quad_eps   = 1.2e-14
        x0         = 1.711744665823812
        xi         = 0.5235987755982989
        zeta       = -1.0000000000000002
../../.pybuild/cpython3_3.10_scipy/build/scipy/optimize/_zeros_py.py:557: in bisect
    r = _zeros._bisect(f, a, b, xtol, rtol, maxiter, args, full_output, disp)
E   ValueError: f(a) and f(b) must have different signs
        a          = -0.5235987755982989
        args       = ()
        b          = 1.5707963267948966
        disp       = True
        f          = <function _pdf_single_value_piecewise_post_rounding_Z0.<locals>.<lambda> at 0xce548220>
        full_output = False
        maxiter    = 100
        rtol       = 8.881784197001252e-16
        xtol       = 1.2e-14
__________________ TestLevyStable.test_location_scale[pdf-1] ___________________
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/tests/test_distributions.py:4172: in test_location_scale
    v1 = function(
        case       = 'pdf'
        data       = array([(0, -9.83138374e+03, 0.1, -0.5, 2, 3, 0.25, 2.06417044e-06, 0.25),
       (0,  2.68624051e+00, 0.1, -0.5, 2, 3,...('alpha', '<f8'), ('beta', '<f8'), ('gamma', '<i8'), ('delta', '<i8'), ('pct', '<f8'), ('pdf', '<f8'), ('cdf', '<f8')])
        function   = <bound method levy_stable_gen.pdf of <scipy.stats._levy_stable.levy_stable_gen object at 0xed075130>>
        nolan_loc_scale_sample_data = array([(0, -9.83138374e+03, 0.1, -0.5, 2, 3, 0.25, 2.06417044e-06, 0.25),
       (0,  2.68624051e+00, 0.1, -0.5, 2, 3,...('alpha', '<f8'), ('beta', '<f8'), ('gamma', '<i8'), ('delta', '<i8'), ('pct', '<f8'), ('pdf', '<f8'), ('cdf', '<f8')])
        param      = 1
        self       = <scipy.stats.tests.test_distributions.TestLevyStable object at 0xe5530d00>
        subdata    = array([(1, -9.83154212e+03, 0.1, -0.5, 2, 3, 0.25, 2.06417044e-06, 0.25),
       (1,  2.52785607e+00, 0.1, -0.5, 2, 3,...('alpha', '<f8'), ('beta', '<f8'), ('gamma', '<i8'), ('delta', '<i8'), ('pct', '<f8'), ('pdf', '<f8'), ('cdf', '<f8')])
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:866: in pdf
    super()
        __class__  = <class 'scipy.stats._levy_stable.levy_stable_gen'>
        _alpha     = 1.5
        _beta      = 1.0
        _delta     = 3
        _x         = array([-0.26562482,  1.56657863,  3.96302422, -2.42348933,  0.474125  ,
        2.83480608, 10.64847193])
        alpha      = array([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1. , 1. , 1. , 1. ,
       1. , 1. , 1. , 1. , 1. , 1.5, 1.5, 1.5,..., 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1. , 1.5,
       1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5])
        args       = (array([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1. , 1. , 1. , 1. ,
       1. , 1. , 1. , 1. , 1. , 1.5, 1.5, 1.5... ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. , -0.5, -0.5, -0.5, -0.5,
        0. ,  0. ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. ]))
        beta       = array([-0.5, -0.5, -0.5,  0. ,  0. ,  0. ,  1. ,  1. ,  1. , -0.5, -0.5,
       -0.5,  0. ,  0. ,  0. ,  1. ,  1. ,  1.... ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. , -0.5, -0.5, -0.5, -0.5,
        0. ,  0. ,  0. ,  0. ,  1. ,  1. ,  1. ,  1. ])
        data_in    = array([[-9.83154212e+03,  1.00000000e-01, -5.00000000e-01],
       [ 2.52785607e+00,  1.00000000e-01, -5.00000000e-01]...      [ 2.83480608e+00,  1.50000000e+00,  1.00000000e+00],
       [ 1.06484719e+01,  1.50000000e+00,  1.00000000e+00]])
        data_mask  = array([False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False,...False, False, False, False, False, False, False,
       False, False, False, False, False,  True,  True,  True,  True])
        data_out   = array([[ 2.06417044e-06],
       [ 5.84025941e-02],
       [ 6.83607557e+04],
       [ 3.88378682e-04],
       [ 5.775...50143713e-02],
       [-1.71174467e+00],
       [-2.62937501e-01],
       [ 9.17403038e-01],
       [ 4.82423597e+00]])
        delta      = 3
        gamma      = 2
        kwds       = {'loc': 3, 'scale': 2}
        pair       = array([1.5, 1. ])
        self       = <scipy.stats._levy_stable.levy_stable_gen object at 0xed075130>
        uniq_param_pairs = array([[ 0.1, -0.5],
       [ 0.1,  0. ],
       [ 0.1,  1. ],
       [ 1. , -0.5],
       [ 1. ,  0. ],
       [ 1. ,  1. ],
       [ 1.5, -0.5],
       [ 1.5,  0. ],
       [ 1.5,  1. ]])
        x          = array([-9.83154212e+03,  2.52785607e+00,  2.99999999e+00, -4.15103774e+01,
        3.00000000e+00,  4.75103774e+01,  3...9802e+00,  4.08140198e+00,  9.10388195e+00, -2.42348933e+00,
        4.74124998e-01,  2.83480608e+00,  1.06484719e+01])
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_distn_infrastructure.py:2102: in pdf
    place(output, cond, self._pdf(*goodargs) / scale)
        args       = (array(1.5), array(1.))
        cond       = array([ True,  True,  True,  True,  True,  True,  True])
        cond0      = True
        cond1      = array([ True,  True,  True,  True,  True,  True,  True])
        dtyp       = dtype('float64')
        goodargs   = [array([-1.63281241, -0.71671069,  0.48151211, -2.71174467, -1.2629375 ,
       -0.08259696,  3.82423597]), array([1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5]), array([1., 1., 1., 1., 1., 1., 1.])]
        kwds       = {'loc': 3, 'scale': 2}
        loc        = array(3)
        output     = array([0., 0., 0., 0., 0., 0., 0.])
        scale      = array([2, 2, 2, 2, 2, 2, 2])
        self       = <scipy.stats._levy_stable.levy_stable_gen object at 0xed075130>
        x          = array([-1.63281241, -0.71671069,  0.48151211, -2.71174467, -1.2629375 ,
       -0.08259696,  3.82423597])
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:921: in _pdf
    [
        _cf        = functools.partial(<function _cf at 0xed13cec8>, <function _Phi_Z1 at 0xed13cd18>)
        _pdf_single_value_cf_integrate = functools.partial(<function _pdf_single_value_cf_integrate at 0xed13cf10>, <function _Phi_Z1 at 0xed13cd18>)
        _pdf_single_value_piecewise = <function _pdf_single_value_piecewise_Z1 at 0xed13cda8>
        alpha      = array([1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5])
        beta       = array([1., 1., 1., 1., 1., 1., 1.])
        data_in    = array([[-1.63281241,  1.5       ,  1.        ],
       [-0.71671069,  1.5       ,  1.        ],
       [ 0.48151211,  ...       ,  1.        ],
       [-0.08259696,  1.5       ,  1.        ],
       [ 3.82423597,  1.5       ,  1.        ]])
        data_mask  = array([ True,  True,  True,  True,  True,  True,  True])
        data_out   = array([[0.10312058],
       [0.14367638],
       [0.10312058],
       [0.01501437],
       [0.12916417],
       [0.12916417],
       [0.01501437]])
        data_subset = array([[-1.63281241,  1.5       ,  1.        ],
       [-0.71671069,  1.5       ,  1.        ],
       [ 0.48151211,  ...       ,  1.        ],
       [-0.08259696,  1.5       ,  1.        ],
       [ 3.82423597,  1.5       ,  1.        ]])
        fft_grid_spacing = 0.001
        fft_interpolation_degree = 3
        fft_interpolation_level = 3
        fft_n_points_two_power = None
        pair       = array([1.5, 1. ])
        pdf_default_method_name = 'piecewise'
        pdf_single_value_kwds = {'piecewise_alpha_tol_near_one': 0.005, 'piecewise_x_tol_near_zeta': 0.005, 'quad_eps': 1.2e-14}
        pdf_single_value_method = <function _pdf_single_value_piecewise_Z1 at 0xed13cda8>
        self       = <scipy.stats._levy_stable.levy_stable_gen object at 0xed075130>
        uniq_param_pairs = array([[1.5, 1. ]])
        x          = array([-1.63281241, -0.71671069,  0.48151211, -2.71174467, -1.2629375 ,
       -0.08259696,  3.82423597])
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:922: in <listcomp>
    pdf_single_value_method(
        .0         = <iterator object at 0xcd53a028>
        _alpha     = 1.5
        _beta      = 1.0
        _x         = -2.711744665823815
        pdf_single_value_kwds = {'piecewise_alpha_tol_near_one': 0.005, 'piecewise_x_tol_near_zeta': 0.005, 'quad_eps': 1.2e-14}
        pdf_single_value_method = <function _pdf_single_value_piecewise_Z1 at 0xed13cda8>
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:174: in _pdf_single_value_piecewise_Z1
    return _pdf_single_value_piecewise_Z0(x0, alpha, beta, **kwds)
        alpha      = 1.5
        beta       = 1.0
        kwds       = {'piecewise_alpha_tol_near_one': 0.005, 'piecewise_x_tol_near_zeta': 0.005, 'quad_eps': 1.2e-14}
        x          = -2.711744665823815
        x0         = -1.711744665823815
        zeta       = 1.0000000000000002
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:214: in _pdf_single_value_piecewise_Z0
    return _pdf_single_value_piecewise_post_rounding_Z0(
        alpha      = 1.5
        alpha_tol_near_one = 0.005
        beta       = 1.0
        kwds       = {'piecewise_alpha_tol_near_one': 0.005, 'piecewise_x_tol_near_zeta': 0.005, 'quad_eps': 1.2e-14}
        quad_eps   = 1.2e-14
        x0         = -1.711744665823815
        x_tol_near_zeta = 0.005
        zeta       = 1.0000000000000002
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:238: in _pdf_single_value_piecewise_post_rounding_Z0
    return _pdf_single_value_piecewise_post_rounding_Z0(
        _nolan     = <scipy.stats._levy_stable.levyst.Nolan object at 0xcc89a050>
        alpha      = 1.5
        beta       = 1.0
        c2         = -0.3521458604072773
        g          = <built-in method g of scipy.stats._levy_stable.levyst.Nolan object at 0xcc89a050>
        quad_eps   = 1.2e-14
        x0         = -1.711744665823815
        xi         = -0.5235987755982989
        zeta       = 1.0000000000000002
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/_levy_stable/__init__.py:259: in _pdf_single_value_piecewise_post_rounding_Z0
    peak = optimize.bisect(
        _nolan     = <scipy.stats._levy_stable.levyst.Nolan object at 0xcc89aff0>
        alpha      = 1.5
        beta       = -1.0
        c2         = 0.3521458604072773
        g          = <built-in method g of scipy.stats._levy_stable.levyst.Nolan object at 0xcc89aff0>
        integrand  = <function _pdf_single_value_piecewise_post_rounding_Z0.<locals>.integrand at 0xcd204148>
        quad_eps   = 1.2e-14
        x0         = 1.711744665823815
        xi         = 0.5235987755982989
        zeta       = -1.0000000000000002
../../.pybuild/cpython3_3.10_scipy/build/scipy/optimize/_zeros_py.py:557: in bisect
    r = _zeros._bisect(f, a, b, xtol, rtol, maxiter, args, full_output, disp)
E   ValueError: f(a) and f(b) must have different signs
        a          = -0.5235987755982989
        args       = ()
        b          = 1.5707963267948966
        disp       = True
        f          = <function _pdf_single_value_piecewise_post_rounding_Z0.<locals>.<lambda> at 0xcd204190>
        full_output = False
        maxiter    = 100
        rtol       = 8.881784197001252e-16
        xtol       = 1.2e-14
________________ TestCompareWithStats.test_skewtest_2D_WithMask ________________
../../.pybuild/cpython3_3.10_scipy/build/scipy/stats/tests/test_mstats_basic.py:1771: in test_skewtest_2D_WithMask
    assert_allclose(r[0][0], rm[0][0], rtol=2e-15)
        n          = 1000
        nx         = 2
        r          = SkewtestResult(statistic=array([0.38677411, 0.38677411]), pvalue=array([0.69892345, 0.69892345]))
        rm         = SkewtestResult(statistic=masked_array(data=[0.38677410656235006, 0.38677410656235006],
             mask=[False, False],
       fill_value=1e+20), pvalue=array([0.69892345, 0.69892345]))
        self       = <scipy.stats.tests.test_mstats_basic.TestCompareWithStats object at 0xe500b028>
        x          = array([[-0.51462472, -0.51462472],
       [-0.44955445, -0.44955445],
       [ 1.73462147,  1.73462147],
       ...,
       [ 0.74507609,  0.74507609],
       [-1.39334987, -1.39334987],
       [ 0.33050137,  0.33050137]])
        xm         = masked_array(
  data=[[-0.5146247197260995, -0.5146247197260995],
        [-0.4495544480666782, -0.4495544480666782],
...alse, False],
        ...,
        [ True,  True],
        [ True,  True],
        [ True,  True]],
  fill_value=1e+20)
        y          = array([[-1.57281408, -1.57281408],
       [-0.81643489, -0.81643489],
       [ 1.65563681,  1.65563681],
       ...,
       [ 0.11081703,  0.11081703],
       [-1.05628393, -1.05628393],
       [ 0.08564677,  0.08564677]])
        ym         = masked_array(
  data=[[-1.5728140755908346, -1.5728140755908346],
        [-0.8164348874303458, -0.8164348874303458],
...alse, False],
        ...,
        [ True,  True],
        [ True,  True],
        [ True,  True]],
  fill_value=1e+20)
/usr/lib/python3.10/contextlib.py:79: in inner
    return func(*args, **kwds)
E   AssertionError: 
E   Not equal to tolerance rtol=2e-15, atol=0
E   
E   Mismatched elements: 1 / 1 (100%)
E   Max absolute difference: 2.33146835e-15
E   Max relative difference: 6.02798458e-15
E    x: array(0.386774)
E    y: array(0.386774)
        args       = (<function assert_allclose.<locals>.compare at 0xcd134cd0>, array(0.38677411), array(0.38677411))
        func       = <function assert_array_compare at 0xf04c96a0>
        kwds       = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=2e-15, atol=0', 'verbose': True}
        self       = <contextlib._GeneratorContextManager object at 0xf053f508>

SciPy/NumPy/Python version information

$ python3 -c "import sys, scipy, numpy; print(scipy.__version__, numpy.__version__, sys.version_info)"
1.10.0 1.24.1 sys.version_info(major=3, minor=11, micro=1, releaselevel='final', serial=0)

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 16 (16 by maintainers)

Commits related to this issue

Most upvoted comments

The full testsuite passed locally on the maintenance/1.10.x branch in a recent i386/debian container, so I’ll go ahead and close this and milestone it appropriately for the upcoming 1.10.1 release.

If any of the exotic architectures continue to have issues feel free to open new tickets for them, we usually just accept patches if someone tells us they work on an architecture we don’t have running regularly in CI.

Most of the issues here were with testing tolerances or required skips we already knew about rather than genuine bugs we didn’t know about, but good to have the testsuite updated now. I’d also note that we do have a 32-bit Linux job in CI, not sure why it didn’t detect most of these, but the reasons probably are not super interesting. I don’t think that job has been updated in a while?

Clicking on the links at https://ci.debian.net/packages/s/scipy/ , you get the list of historical test logs, i.e. for armhf, https://ci.debian.net/packages/s/scipy/unstable/armhf/ (debian unstable, which includes tests from experimental) and https://ci.debian.net/packages/s/scipy/testing/armhf/ (debian testing).

The logs are not kept permanently, the current most recent in unstable is 2022-12-02, a bit less than 2 months. The testing logs go back to 2022-11-12. Best to download a copy of the 1.10.0-1exp1 test log and save elsewhere.

The corresponding build logs are kept at https://buildd.debian.org/status/package.php?p=scipy and https://buildd.debian.org/status/package.php?p=scipy&suite=experimental, with the historical build logs found in the “Old” links. For armhf that’s https://buildd.debian.org/status/logs.php?pkg=scipy&arch=armhf Curious that 1.10.0-1exp1 passed build-time tests on armhf, while it failed some run-time tests.