§
    ¡éUgž?  ã            
       ó¸  — d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlm	Z
 d dlZd dlZd dlmZ d dlmZ d dlmZmZ d dlmZ 	 d dlmZ dZn# e$ r d	ZY nw xY wd
„ Zd„ Z ej        dd¬¦  «        d„ ¦   «         ZdeiZe�r® eee ¦  «        �r¡	 d dl!Z!e "                    de!i¦  «          ej#        e!j$        ¦  «         ej%        d¦  «        k     r e&d¦  «        ‚ e!j'        d¬¦  «         n# e&$ r Y nw xY w	 d dl(Z(e "                    de(i¦  «          e(j)        e¦  «         n# e&$ r Y nw xY w	 d dl*Z*e "                    de*i¦  «         n# e&$ r Y nw xY w	 d dl+Z,e "                    de,j        i¦  «         e,j-         "                    dd¦  «         e,j-         "                    d e,j.        e¦  «        d          ¦  «         n# e&$ r Y nw xY w ej/        ¦   «         dvrN e j0        e¦  «        Z1de1v rn9	 d„ e1D ¦   «         Zn+# e2$ r# de 3                    ¦   «         › �Z4 e5e4¦  «        ‚w xY wdev rdZej6         7                    de 8                    ¦   «         ¦  «        Z9ej6         :                    ed ¬!¦  «        Z;ej        d"„ ¦   «         Z<ej=         >                    ej?         @                     ejA        ¦   «         d#¦  «        ¦  «         ejB         C                    d$dd¬%¦  «         ejB         C                    d&dddd eDejE        ¦  «        ¬'¦  «         ejF         G                    d(d&¦  «        ZHejB         I                    eH¦  «         er‰ed7d)„¦   «         ZJeJe_K         eLg d*¢¦  «        e_M        ej$        d+k     r%ejM         "                     eLg d,¢¦  «        ¦  «         g d-¢e_N        d.d/d/d0d1d2d3œe_O         eLd4g¦  «        e_P        d5d6gie_Q        dS dS )8é    N)Úcontextmanager)Úget_fpu_mode)ÚFPUModeChangeWarning)ÚSCIPY_ARRAY_APIÚSCIPY_DEVICE)Ú_pep440)Ú	dt_configTFc                 ój  — |                       dd¦  «         |                       dd¦  «         |                       dd¦  «         	 dd l}n&# t          $ r |                       dd¦  «         Y nw xY w	 ddlm} n&# t          $ r |                       dd¦  «         Y nw xY w|                       dd	¦  «         d S )
NÚmarkerszslow: Tests that are very slow.zHxslow: mark test as extremely slow (not run unless explicitly requested)z8xfail_on_32bit: mark test as failing on 32-bit platformsr   z.timeout: mark a test for a non-default timeout)Úparse_durationz8fail_slow: mark a test for a non-default timeout failurez‘skip_xp_backends(*backends, reasons=None, np_only=False, cpu_only=False): mark the desired skip configuration for the `skip_xp_backends` fixture.)Úaddinivalue_lineÚpytest_timeoutÚ	ExceptionÚpytest_fail_slowr   )Úconfigr   r   s      úM/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/conftest.pyÚpytest_configurer      sZ  € Ø
×Ò˜IØ)ñ+ô +ð +à
×Ò˜IØRñTô Tð Tà
×Ò˜IØBñDô Dð DðIØÐÐÐÐøÝð Ið Ið IØ×ÒØÐGñ	Iô 	Ið 	Ið 	Ið 	IðIøøøðSð 	4Ð3Ð3Ð3Ð3Ð3Ð3øÝð Sð Sð SØ×ÒØÐQñ	Sô 	Sð 	Sð 	Sð 	SðSøøøð ×Ò˜Ið	RñSô Sð Sð Sð Ss$   ÁA	 Á	 A,Á+A,Á0A7 Á7 BÂBc                 óª  — |                       d¦  «        }|�W	 t          t          j                             dd¦  «        ¦  «        }n# t
          $ r d}Y nw xY w|st          j        d¦  «         |                       d¦  «        }|�?t          j	        d¦  «        j
        dk     r"t          j        d	|j        d         › �¦  «         t          j        ¦   «         5 }|                     t          j        ¦  «         	 dd
lm} d}n# t&          $ r d}Y nw xY w|r¥	 t          t          j        d         ¦  «        }n# t(          $ r Y d d d ¦  «         d S w xY wt          j        d¦  «        sTt          j        ¦   «         dz  }t/          ||z  d¦  «        }	  ||d¬¦  «         n# t&          $ r Y d d d ¦  «         d S w xY wd d d ¦  «         d S # 1 swxY w Y   d S )NÚxslowÚSCIPY_XSLOWÚ0Fz@very slow test; set environment variable SCIPY_XSLOW=1 to run itÚxfail_on_32bitr   é   z&Fails on our 32-bit test platform(s): )Úthreadpool_limitsTÚPYTEST_XDIST_WORKER_COUNTÚOMP_NUM_THREADSé   é   Úblas)Úuser_api)Úget_closest_markerÚintÚosÚenvironÚgetÚ
ValueErrorÚpytestÚskipÚnpÚintpÚitemsizeÚxfailÚargsÚnptÚsuppress_warningsÚfilterÚ PytestUnraisableExceptionWarningÚthreadpoolctlr   r   ÚKeyErrorÚgetenvÚ	cpu_countÚmax)	ÚitemÚmarkÚvÚsupr   ÚHAS_THREADPOOLCTLÚxdist_worker_countÚmax_openmp_threadsÚthreads_per_workers	            r   Úpytest_runtest_setupr?   1   s¸  € Ø×"Ò" 7Ñ+Ô+€DØÐð	Ý•B”J—N’N =°#Ñ6Ô6Ñ7Ô7ˆAˆAøÝð 	ð 	ð 	ØˆAˆAˆAð	øøøàð 	LÝŒKð Kñ Lô Lð Là×"Ò"Ð#3Ñ4Ô4€DØÐ�BœG A™JœJÔ/°!Ò3Ð3ÝŒÐL¸d¼iÈ¼lÐLÐLÑMÔMÐMõ 
Ô	Ñ	 Ô	 ð  CØ�
Š
•6Ô:Ñ;Ô;Ð;ð	&Ø7Ð7Ð7Ð7Ð7Ð7à $ÐÐøÝð 	&ð 	&ð 	&à %ÐÐÐð	&øøøð ð 	ð
Ý%(­¬Ð4OÔ)PÑ%QÔ%QÐ"Ð"øÝð ð ð àð)ð ð ñ ô ð ð ð ð$øøøõ ”9Ð.Ñ/Ô/ð Ý%'¤\¡^¤^°qÑ%8Ð"Ý%(Ð);Ð?QÑ)QÐSTÑ%UÔ%UÐ"ðØ%Ð%Ð&8À6ÐJÑJÔJÐJÐJøÝ ð ð ð ð ð=ð ð ñ ô ð ð ð ð6øøøð7ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s�   ™-A ÁAÁAÃ GÃ9DÄGÄDÄGÄDÄGÄD7Ä6GÄ7
EÅGÅEÅA GÆFÆGÆ
F8Æ)GÆ7F8Æ8GÇGÇGÚfunction)ÚscopeÚautousec              #   ó¤   K  — t          ¦   «         }dV — t          ¦   «         }||k    r't          j        d|d›d|d›d�t          d¬¦  «         dS dS )z9
    Check FPU mode was not changed during the test.
    NzFPU mode changed from z#xz to z during the testr   )ÚcategoryÚ
stacklevel)r   ÚwarningsÚwarnr   )ÚrequestÚold_modeÚnew_modes      r   Úcheck_fpu_moderK   b   sŒ   è è € õ
 ‰~Œ~€HØ	€E€E€EÝ‰~Œ~€Hà�8ÒÐÝŒð !¨xÐUð !ð !ÀÐUð !ð !ð !å3Àð	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð Ðó    ÚnumpyÚarray_api_strictz2.0z'array-api-strict must be >= version 2.0z2023.12)Úapi_versionÚpytorchÚcupyú	jax.numpyÚjax_enable_x64Újax_default_device)Ú1ÚtrueÚallc                 ó*   — i | ]}|t           |         “ŒS © )Úxp_available_backends)Ú.0Úbackends     r   ú
<dictcomp>r]       s0   € ð )ð )ð )àð Õ2°7Ô;ð)ð )ð )rL   z!'--array-api-backend' must be in ÚcudaÚxpzsTest involves masked arrays, object arrays, or other types that are not valid input when `SCIPY_ARRAY_API` is used.©Úreasonc                 ó˜  — d|j         vrdS |j         d         j        }|j         d         j        }|                     dd¦  «        }|                     dd¦  «        }|rA|                     ddg¦  «        }|d         }| j        d	k    rt          j        |¬
¦  «         dS |rÊd}t          rÁt          dk    r¶| j        dk    rt          j        |¬
¦  «         n•| j        dk    r7d|  	                    d¦  «        j
        j        vrt          j        |¬
¦  «         nS| j        dk    rH|  	                    d¦  «                             ¦   «         D ] }d|j        vrt          j        |¬
¦  «         Œ!|�[|                     dd¦  «        }t          |¦  «        D ]7\  }	}
| j        |
k    r%|sd|
› �}n||	         }t          j        |¬
¦  «         Œ6dS dS )aî  
    Skip based on the ``skip_xp_backends`` marker.

    Parameters
    ----------
    *backends : tuple
        Backends to skip, e.g. ``("array_api_strict", "torch")``.
        These are overriden when ``np_only`` is ``True``, and are not
        necessary to provide for non-CPU backends when ``cpu_only`` is ``True``.
    reasons : list, optional
        A list of reasons for each skip. When ``np_only`` is ``True``,
        this should be a singleton list. Otherwise, this should be a list
        of reasons, one for each corresponding backend in ``backends``.
        If unprovided, default reasons are used. Note that it is not possible
        to specify a custom reason with ``cpu_only``. Default: ``None``.
    np_only : bool, optional
        When ``True``, the test is skipped for all backends other
        than the default NumPy backend. There is no need to provide
        any ``backends`` in this case. To specify a reason, pass a
        singleton list to ``reasons``. Default: ``False``.
    cpu_only : bool, optional
        When ``True``, the test is skipped on non-CPU devices.
        There is no need to provide any ``backends`` in this case,
        but any ``backends`` will also be skipped on the CPU.
        Default: ``False``.
    Úskip_xp_backendsNÚnp_onlyFÚcpu_onlyÚreasonsz#do not run with non-NumPy backends.r   rM   r`   z4do not run with `SCIPY_ARRAY_API` set and not on CPUÚcpurQ   ÚtorchrR   z#do not run with array API backend: )Úkeywordsr-   Úkwargsr%   Ú__name__r'   r(   r   r   ÚemptyÚdeviceÚtypeÚdevicesÚdevice_kindÚ	enumerate)r_   rH   Úbackendsrj   rd   re   rf   ra   ÚdÚir\   s              r   rc   rc   ²   s  € ð8  Ô!1Ð1Ð1ØˆØÔÐ 2Ô3Ô8€HØÔÐ0Ô1Ô8€FØ�jŠj˜ EÑ*Ô*€GØ�zŠz˜* eÑ,Ô,€HØð Ø—*’*˜YÐ)NÐ(OÑPÔPˆØ˜”ˆØŒ;˜'Ò!Ð!ÝŒK˜vÐ&Ñ&Ô&Ð&ØˆØð 3ØGˆÝð 		3�|¨uÒ4Ð4ØŒ{˜fÒ$Ð$Ý” 6Ð*Ñ*Ô*Ð*Ð*Ø” Ò'Ð'Ø §¢¨¡¤Ô 2Ô 7Ð7Ð7Ý”K vÐ.Ñ.Ô.Ð.øØ” Ò+Ð+ØŸš !™œ×,Ò,Ñ.Ô.ð 3ð 3�AØ A¤MÐ1Ð1Ýœ¨6Ð2Ñ2Ô2Ð2øàÐØ—*’*˜Y¨Ñ.Ô.ˆÝ# HÑ-Ô-ð 	+ð 	+‰JˆAˆwØŒ{˜gÒ%Ð%Øð (ØLÀ7ÐLÐL�F�Fà$ QœZ�FÝ” 6Ð*Ñ*Ô*Ð*øð Ðð	+ð 	+rL   z.hypothesisÚnondeterministic)ÚnameÚdeadlineÚ
print_blobÚdeterministic)rv   rw   rx   ÚdatabaseÚderandomizeÚsuppress_health_checkÚSCIPY_HYPOTHESIS_PROFILEc              #   ó¢  K  — t          ¦   «         }ddg}|D ]}t          t          d¬¦  «        ||<   Œg d¢}|D ]}t          t          ¬¦  «        ||<   Œddlm} d	d
g}|D ]}t          |j        d¬¦  «        ||<   Œg d¢}|D ]}t          t          ¬¦  «        ||<   Œt          t          d¬¦  «        t          dt          ¬¦  «        t          d|j        ¬¦  «        dœ}|                     |¦  «         t          d¦  «        }	ddl
m}
 ddl} |
¦   «         5  |j                             d¦  «         t          j        ¦   «         5  | r*| j        |v r!t          j        di || j                 ¤Ž dV — n.| r| j        |	v rdV — nt          j        dt(          ¦  «         dV — ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zmTemporarily turn (almost) all warnings to errors.

        Filter out known warnings which we allow.
        zscipy.linalg.normzscipy.ndimage.center_of_masszdivide by zero)rD   Úmessage)zscipy.signal.cwtzscipy.signal.morletzscipy.signal.morlet2zscipy.signal.rickerzscipy.integrate.simpsonzscipy.interpolate.interp2d)rD   r   )Ú	integratezscipy.special.ellip_normalzscipy.special.ellip_harm_2zThe occurrence of roundoff)zscipy.stats.anderson_ksampzscipy.stats.kurtosistestzscipy.stats.normaltestúscipy.sparse.linalg.normzExited at iterationzthe matrix subclass is not)r   rD   z"The maximum number of subdivisions)r�   z
linalg.rstz	stats.rstúscipy.signal.normalize)Ú_fixed_default_rngNÚignoreÚerror)r„   )ÚdictÚRuntimeWarningÚDeprecationWarningÚscipyr€   ÚIntegrationWarningÚUserWarningÚPendingDeprecationWarningÚupdateÚsetÚscipy._lib._utilrƒ   rM   ÚrandomÚseedrF   Úcatch_warningsrv   ÚfilterwarningsÚsimplefilterÚWarning)ÚtestÚknown_warningsÚdivide_by_zerorv   Ú
deprecatedr€   Úintegration_wÚuser_wÚdctÚlegitrƒ   r)   s               r   Úwarnings_errors_and_rngrž     s7  è è € õ ™œˆð  Ð!?ð
ˆð #ð 	Bð 	BˆDÝ#'µØ0@ð$Bñ $Bô $BˆN˜4Ñ Ð ð
ð 
ð 
ˆ
ð ð 	Eð 	EˆDÝ#'Õ1CÐ#DÑ#DÔ#DˆN˜4Ñ Ð à#Ð#Ð#Ð#Ð#Ð#à5Ø5ð
ˆð "ð 	Nð 	NˆDÝ#'°Ô1MØ0Lð$Nñ $Nô $NˆN˜4Ñ Ð ðHð Hð Hˆàð 	>ð 	>ˆDÝ#'µÐ#=Ñ#=Ô#=ˆN˜4Ñ Ð õ
 �kÐ3HÐIÑIÔIõ Ð9Ý7ð9ñ 9ô 9õ ÐAØ'Ô:ð<ñ <ô <ð

ð 

ˆð 	×Ò˜cÑ"Ô"Ð"õ Ð,Ñ-Ô-ˆð 	8Ð7Ð7Ð7Ð7Ð7ØÐÐÐØÐÑ!Ô!ð 	ð 	ØŒI�NŠN˜4Ñ Ô Ð ÝÔ(Ñ*Ô*ð 	ð 	Øð ˜DœI¨Ð7Ð7ÝÔ+ð Ið IØ.<¸T¼YÔ.GðIð Ið Ià�E�E�E�EØð ˜dœi¨5Ð0Ð0Ø�E�E�E�EåÔ)¨'µ7Ñ;Ô;Ð;Ø�E�E�Eð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s7   Ä.GÅAF,Æ GÆ,F0	Æ0GÆ3F0	Æ4GÇGÇG)zscipy.linalg.LinAlgErrorzscipy.fftpack.fftshiftzscipy.fftpack.ifftshiftzscipy.fftpack.fftfreqzscipy.special.sinczscipy.optimize.show_optionsr‚   r�   Ú2)zscipy.io.hb_readzscipy.io.hb_writez)scipy.sparse.csgraph.connected_componentsz&scipy.sparse.csgraph.depth_first_orderz"scipy.sparse.csgraph.shortest_pathz#scipy.sparse.csgraph.floyd_warshallzscipy.sparse.csgraph.dijkstraz!scipy.sparse.csgraph.bellman_fordzscipy.sparse.csgraph.johnsonzscipy.sparse.csgraph.yenz(scipy.sparse.csgraph.breadth_first_orderz*scipy.sparse.csgraph.reverse_cuthill_mckeez$scipy.sparse.csgraph.structural_rankz*scipy.sparse.csgraph.construct_dist_matrixz%scipy.sparse.csgraph.reconstruct_pathzscipy.ndimage.value_indiceszscipy.stats.mstats.describe)zscipy.stats.distributionszscipy.optimize.cython_optimizez
scipy.testzscipy.show_configÚ zReST parser limitationz__cinit__ unexpected argumentznan in scalar_powerzintegration warning)úio.rstzND_regular_grid.rstzextrapolation_examples.rstzsampling_pinv.rstzsampling_srou.rstzprobability_distributions.rstzintegrate.nquad(func,r¡   zoctave_a.mat)N)RÚjsonr#   rF   ÚtempfileÚ
contextlibr   rM   r)   Únumpy.testingÚtestingr.   r'   Ú
hypothesisÚscipy._lib._fpumoder   Úscipy._lib._testutilsr   Úscipy._lib._array_apir   r   Ú
scipy._libr   Úscipy_doctest.conftestr	   Ú
HAVE_SCPDTÚModuleNotFoundErrorr   r?   ÚfixturerK   rZ   Ú
isinstanceÚstrrN   r�   ÚparseÚ__version__ÚVersionÚImportErrorÚset_array_api_strict_flagsrh   Úset_default_devicerQ   Ú	jax.numpyÚjaxr   ro   ÚlowerÚloadsÚSCIPY_ARRAY_API_r3   ÚkeysÚmsgr&   r8   ÚparametrizeÚvaluesÚarray_api_compatibleÚskipifÚskip_xp_invalid_argrc   ÚconfigurationÚset_hypothesis_home_dirÚpathÚjoinÚ
gettempdirÚsettingsÚregister_profileÚlistÚHealthCheckr$   r%   r}   Úload_profilerž   Úuser_context_mgrrŽ   ÚskiplistÚpytest_extra_ignoreÚpytest_extra_xfailÚ
pseudocodeÚlocal_resourcesrY   rL   r   ú<module>rÔ      sk  ðà €€€Ø 	€	€	€	Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø Ð Ð Ð Ð Ð ðØ0Ð0Ð0Ð0Ð0Ð0Ø€J€JøØð ð ð Ø€J€J€JðøøøðSð Sð Sð0.ð .ð .ðb €„�j¨$Ð/Ñ/Ô/ðCð Cñ 0Ô/ðCð ! "˜Ð àñ 2&�z�z /°3Ñ7Ô7ñ 2&ð	ØÐÐÐØ×$Ò$Ð&8Ð:JÐ%KÑLÔLÐLØˆ7Œ=Ð)Ô5Ñ6Ô6¸¸¼ÈÑ9OÔ9OÒOÐOØ�+ÐGÑHÔHÐHØ3ÐÔ3Ø!ð	
ñ 	
ô 	
ð 	
ð 	
øð ð ð ð ØˆðøøøðØˆˆˆØ×$Ò$ i°Ð%7Ñ8Ô8Ð8à ˆÔ  Ñ.Ô.Ð.Ð.øØð ð ð ØˆðøøøðØˆˆˆØ×$Ò$ f¨d ^Ñ4Ô4Ð4Ð4øØð ð ð ØˆðøøøðØÐÐÐØ×$Ò$ k°3´9Ð%=Ñ>Ô>Ð>ØŒ
×ÒÐ*¨DÑ1Ô1Ð1ØŒ
×ÒÐ.°°´¸LÑ0IÔ0IÈ!Ô0LÑMÔMÐMÐMøØð ð ð Øˆðøøøð €ÔÑÔ mÐ3Ð3Ø%˜4œ: oÑ6Ô6ÐàÐ$Ð$Ð$Øð&ð)ð )à#3ð)ñ )ô )Ð%Ð%øð ð &ð &ð &ØXÐ:O×:TÒ:TÑ:VÔ:VÐXÐX�Ø �j ‘o”oÐ%ð&øøøð 
Ð"Ð"Ð"Ø€Là”{×.Ò.¨tÐ5J×5QÒ5QÑ5SÔ5SÑTÔTÐ à”k×(Ò(¨ðIð )ñ Kô KÐ ð
 „ð<+ð <+ñ „ð<+ðD Ô × 0Ò 0Ø„G‡L‚LÐ$�Ô$Ñ&Ô&¨Ñ6Ô6ñô ð ð Ô × $Ò $Ø	 d°tð %ñ ô ð ð Ô × $Ò $Ø	Ø˜d¨T¸tØ˜$˜zÔ5Ñ6Ô6ð %ñ ô ð ð œ:Ÿ>š>Ð*DØ*9ñ;ô ;Ð à 
Ô ×  Ò  Ð!9Ñ :Ô :Ð :ð ð L=ð ðNð Nð Nñ „^ðNðb "9€IÔØ˜ð 	ð 	ð 	ñ 	ô 	€IÔð 
„~˜ÒÐØÔ×!Ò! # #ð 'ð 'ð 'ñ #ô #ñ 	ô 	ð 	ð,%ð %ð %€IÔ!ð Ø7Ø&>Ø<Ø2Ø)>ð$ð $€IÔ ð ˜3Ð 7Ð8Ñ9Ô9€IÔØ!)¨NÐ+;Ð <€IÔÐÐðYL=ð L=sh   ÁA ÁAÁAÂAC/ Ã/C7Ã6C7Ã;+D' Ä'D/Ä.D/Ä3E ÅEÅEÅA*G ÇGÇGÇ8H È(H-