§
    fŠtj˜  ã            
       ó(  — d dl mZmZ d dlmZ d dlZd dlZd dlZd dlZd dl	m
Z d dl	mZ d dlmZ dZd!d„Zd	„ Zd
„ Zd„ Zej        ej        ej        ej        dœZd„ d„ d„ d„ d„ d„ d„ d„ d„ dœ	Zd„ d„ d„ d„ dœZeeej        dœZd„ Zd„ Zd„ Zd „ Z dS )"é    )Úassert_equalÚassert_)ÚraisesN)Ú_ccallback_c)Ú_test_ccallback)ÚLowLevelCallableç       @c                 óN   — | t           k    rt          d¦  «        ‚|€| dz   S | |z   S )Nz	bad valueé   )ÚERROR_VALUEÚ
ValueError)ÚaÚ	user_datas     ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/_lib/tests/test_ccallback.pyÚcallback_pythonr      s4   € Ø�KÒÐÝ˜Ñ%Ô%Ð%àÐØ�1‰uˆà�9‰}Ðó    c                 óÎ   — t          j        d¦  «        }t          j        | t          j        ¦  «        }|j        }|                     ¦   «         }|                     ||¦  «        }|S )NÚcffi)ÚpytestÚimportorskipÚctypesÚcastÚc_void_pÚvalueÚFFI)ÚbaseÚ	signaturer   ÚvoidpÚaddressÚffiÚfuncs          r   Ú_get_cffi_funcr"      sU   € ÝÔ˜vÑ&Ô&€Dõ ŒK˜�fœoÑ.Ô.€EØŒk€Gð �(Š(‰*Œ*€CØ�8Š8�I˜wÑ'Ô'€DØ€Kr   c                  óŒ   — t          j        d¦  «        } t          j        t          j        | ¦  «        t           j        ¦  «        S ©Nr	   )r   Úc_doubler   ÚpointerÚc_voidp)r   s    r   Ú_get_ctypes_datar(   &   s/   € ÝŒO˜CÑ Ô €EÝŒ;•v”~ eÑ,Ô,­f¬nÑ=Ô=Ð=r   c                  ó~   — t          j        d¦  «        } |                      ¦   «         }|                     dd¦  «        S )Nr   zdouble *r	   )r   r   r   Únew)r   r    s     r   Ú_get_cffi_datar+   +   s3   € ÝÔ˜vÑ&Ô&€DØ
�(Š(‰*Œ*€CØ�7Š7�:˜sÑ#Ô#Ð#r   )ÚsimpleÚnodataÚnonlocalÚcythonc                  ó   — t           S ©N)r   © r   r   ú<lambda>r3   :   s   € •o€ r   c                  ó(   — t          j        ¦   «         S r1   )r   Útest_get_plus1_capsuler2   r   r   r3   r3   ;   s   € •Ô=Ñ?Ô?€ r   c                  ó6   — t          j        t          d¦  «        S )NÚplus1_cython©r   Úfrom_cythonÚ_test_ccallback_cythonr2   r   r   r3   r3   <   s   € Õ&Ô2Õ3IØ3AñCô C€ r   c                  ó   — t           j        S r1   )r:   Úplus1_ctypesr2   r   r   r3   r3   >   s
   € Õ,Ô9€ r   c                  ó6   — t          t          j        d¦  «        S )Nz!double (*)(double, int *, void *))r"   r:   r<   r2   r   r   r3   r3   ?   s   € •NÕ#9Ô#FØ#FñHô H€ r   c                  ó(   — t          j        ¦   «         S r1   )r   Útest_get_plus1b_capsuler2   r   r   r3   r3   A   s   € �Ô@ÑBÔB€ r   c                  ó6   — t          j        t          d¦  «        S )NÚplus1b_cythonr8   r2   r   r   r3   r3   B   s   € Õ(Ô4Õ5KØ5DñFô F€ r   c                  ó   — t           j        S r1   )r:   Úplus1b_ctypesr2   r   r   r3   r3   D   s
   € Õ.Ô<€ r   c                  ó6   — t          t          j        d¦  «        S )Nz)double (*)(double, double, int *, void *))r"   r:   rC   r2   r   r   r3   r3   E   s   € •nÕ%;Ô%IØ%PñRô R€ r   )	ÚpythonÚcapsuler/   r   r   Ú	capsule_bÚcython_bÚctypes_bÚcffi_bc                  ó(   — t          j        ¦   «         S r1   )r   Útest_get_plus1bc_capsuler2   r   r   r3   r3   K   s   € �/ÔBÑDÔD€ r   c                  ó6   — t          j        t          d¦  «        S )NÚplus1bc_cythonr8   r2   r   r   r3   r3   L   s   € Õ)Ô5Õ6LØ6FñHô H€ r   c                  ó   — t           j        S r1   )r:   Úplus1bc_ctypesr2   r   r   r3   r3   N   s
   € Õ/Ô>€ r   c                  ó6   — t          t          j        d¦  «        S )Nz1double (*)(double, double, double, int *, void *))r"   r:   rP   r2   r   r   r3   r3   O   s   € •~ÝÔ-Ø;ñô € r   )Ú
capsule_bcÚ	cython_bcÚ	ctypes_bcÚcffi_bc)r   r   rF   c                  ó  — d„ } t          t                               ¦   «         ¦  «        D ]a}t          t                               ¦   «         ¦  «        D ]8}t          t                               ¦   «         ¦  «        D ]} | |||¦  «         ŒŒ9Œbd S )Nc                 ón  ‡— t           |          } t          ‰         ¦   «         Št          |         ¦   «         }‰t          u rˆfd„}nt	          ‰|¦  «        }t	          ‰¦  «        Št           | ‰d¦  «        d¦  «         t          t          | ‰t          ¦  «         t           | |d¦  «        d¦  «         d S )Nc                 ó   •—  ‰| d¦  «        S r$   r2   ©Úxr!   s    €r   Úfunc2z,test_callbacks.<locals>.check.<locals>.func2c   ó   ø€ Ø�t˜A˜s‘|”|Ð#r   ç      ð?r	   g      @)	ÚCALLERSÚFUNCSÚ
USER_DATASr   r   r   Úassert_raisesr   r   )Úcallerr!   r   r[   s    `  r   Úcheckztest_callbacks.<locals>.check]   sÈ   ø€ Ý˜”ˆÝ�TŒ{‰}Œ}ˆÝ˜yÔ)Ñ+Ô+ˆ	à•?Ð"Ð"ð$ð $ð $ð $ð $ð $õ % T¨9Ñ5Ô5ˆEÝ# DÑ)Ô)ˆDõ 	�V�V˜D #Ñ&Ô&¨Ñ,Ô,Ð,õ 	•j &¨$µÑ<Ô<Ð<õ 	�V�V˜E 3Ñ'Ô'¨Ñ-Ô-Ð-Ð-Ð-r   )Úsortedr^   Úkeysr_   r`   ©rc   rb   r!   r   s       r   Útest_callbacksrg   \   s�   € ð.ð .ð .õ* �Ÿš™œÑ(Ô(ð /ð /ˆÝ�5Ÿ:š:™<œ<Ñ(Ô(ð 	/ð 	/ˆDÝ#¥J§O¢OÑ$5Ô$5Ñ6Ô6ð /ð /�	Ø��f˜d IÑ.Ô.Ð.Ð.ð/ð	/ð/ð /r   c                  ó  — d„ } t          t                               ¦   «         ¦  «        D ]a}t          t                               ¦   «         ¦  «        D ]8}t          t                               ¦   «         ¦  «        D ]} | |||¦  «         ŒŒ9Œbd S )Nc                 ó  ‡— t           |          } t          |         ¦   «         }t          ‰         ¦   «         Š‰t          u rˆfd„}nt	          ‰|¦  «        }t	          ‰¦  «        Št          t          | t	          ‰¦  «        d¦  «         t          t          | |d¦  «         t	          ‰¦  «        }	  | |d¦  «         d S # t          $ rC}t          |¦  «        }t          |j	        |v |¦  «         t          d|v |¦  «         Y d }~d S d }~ww xY w)Nc                 ó   •—  ‰| d¦  «        S r$   r2   rY   s    €r   r[   z0test_bad_callbacks.<locals>.check.<locals>.func2   r\   r   r]   z&double (double, double, int *, void *))
r^   r`   Ú	BAD_FUNCSr   r   ra   r   Ústrr   r   )rb   r!   r   r[   ÚllfuncÚerrÚmsgs    `     r   rc   z!test_bad_callbacks.<locals>.checky   sB  ø€ Ý˜”ˆÝ˜yÔ)Ñ+Ô+ˆ	Ý˜ŒÑ Ô ˆà•?Ð"Ð"ð$ð $ð $ð $ð $ð $õ % T¨9Ñ5Ô5ˆEÝ# DÑ)Ô)ˆDõ 	•j &Õ*:¸4Ñ*@Ô*@À#ÑFÔFÐFõ 	•j &¨%°Ñ5Ô5Ð5õ " $Ñ'Ô'ˆð	JØˆF�6˜3ÑÔÐÐÐøÝð 	Jð 	Jð 	JÝ�c‘(”(ˆCÝ�FÔ$¨Ð+¨SÑ1Ô1Ð1ÝÐ<ÀÐCÀSÑIÔIÐIÐIÐIÐIÐIÐIÐIøøøøð	Jøøøs   Â0B> Â>
DÃ8DÄD)rd   r^   re   rk   r`   rf   s       r   Útest_bad_callbacksrp   x   s¢   € ðJð Jð Jõ6 �Ÿš™œÑ(Ô(ð /ð /ˆÝ�9Ÿ>š>Ñ+Ô+Ñ,Ô,ð 	/ð 	/ˆDÝ#¥J§O¢OÑ$5Ô$5Ñ6Ô6ð /ð /�	Ø��f˜d IÑ.Ô.Ð.Ð.ð/ð	/ð/ð /r   c                  ó>  — t           j        } t          j        ¦   «         }t          |d¬¦  «        }t	          |j        d¦  «         t          t          | |d¦  «         t          |d¬¦  «        }t	          |j        d¦  «         t	           | |d¦  «        d¦  «         d S )Nzbad signature)r   é   zdouble (double, int *, void *)é   )r   Útest_call_simpler5   r   r   r   ra   r   )rb   r!   Ú
llcallables      r   Útest_signature_overriderv   š   sš   € ÝÔ-€FÝÔ1Ñ3Ô3€Då! $°/ÐBÑBÔB€JÝ�Ô% Ñ7Ô7Ð7Ý•*˜f j°!Ñ4Ô4Ð4å! $Ð2RÐSÑSÔS€JÝ�Ô%Ð'GÑHÔHÐHÝ��˜
 AÑ&Ô&¨Ñ*Ô*Ð*Ð*Ð*r   c                  ój   ‡— ˆfd„Šˆfd„} t                                ¦   «         D ]} | |¦  «         Œd S )Nc                 óF   •‡— | dk    rdS  ‰ˆˆfd„| dz
  ¦  «        }d|z  S )Nr   r   c                 ó   •—  ‰| ‰¦  «        S r1   r2   ©rZ   Úcallbackrb   s    €€r   r3   z5test_threadsafety.<locals>.callback.<locals>.<lambda>¬   s   ø€  8 8¨A¨vÑ#6Ô#6€ r   é   r2   )r   rb   Úresr{   s    ` €r   r{   z#test_threadsafety.<locals>.callback¨   s=   øø€ Ø�Š6ˆ6Ø�1à�&Ð6Ð6Ð6Ð6Ð6¸¸A¹Ñ>Ô>ˆCØ�S‘5ˆLr   c                 ó$  •‡ ‡‡‡— t           ‰          Š g ŠdŠˆˆ ˆˆfd„Šˆfd„t          d¦  «        D ¦   «         }|D ]}|                     ¦   «          Œ|D ]}|                     ¦   «          Œt	          ‰d‰z  gt          |¦  «        z  ¦  «         d S )Né
   c                  óz   •— t          j        d¦  «          ‰ˆˆfd„‰¦  «        } ‰                     | ¦  «         d S )Ng{®Gáz„?c                 ó   •—  ‰| ‰¦  «        S r1   r2   rz   s    €€r   r3   z?test_threadsafety.<locals>.check.<locals>.run.<locals>.<lambda>¸   s   ø€   ¨!¨VÑ!4Ô!4€ r   )ÚtimeÚsleepÚappend)Úrr{   rb   ÚcountÚresultss    €€€€r   Úrunz-test_threadsafety.<locals>.check.<locals>.run¶   sI   ø€ ÝŒJ�tÑÔÐØ�Ð4Ð4Ð4Ð4Ð4°eÑ<Ô<ˆAØ�NŠN˜1ÑÔÐÐÐr   c                 ó:   •— g | ]}t          j        ‰¬ ¦  «        ‘ŒS ))Útarget)Ú	threadingÚThread)Ú.0Újrˆ   s     €r   ú
<listcomp>z4test_threadsafety.<locals>.check.<locals>.<listcomp>»   s'   ø€ ÐCÐCÐC°A•9Ô#¨3Ð/Ñ/Ô/ÐCÐCÐCr   é   r	   )r^   ÚrangeÚstartÚjoinr   Úlen)rb   ÚthreadsÚthreadr†   r‡   rˆ   r{   s   `  @@@€r   rc   z test_threadsafety.<locals>.check¯   sÇ   øøøøø€ Ý˜”ˆàˆàˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð
 DÐCÐCÐC½¸r¹¼ÐCÑCÔCˆØð 	ð 	ˆFØ�LŠL‰NŒNˆNˆNØð 	ð 	ˆFØ�KŠK‰MŒMˆMˆMå�W˜s E™z˜l­3¨w©<¬<Ñ7Ñ8Ô8Ð8Ð8Ð8r   )r^   re   )rc   rb   r{   s     @r   Útest_threadsafetyr—   §   sg   ø€ ðð ð ð ð ð9ð 9ð 9ð 9ð 9õ( —,’,‘.”.ð ð ˆØˆˆf‰Œˆˆðð r   r1   )!Únumpy.testingr   r   r   r   ra   r‚   r   r‹   Ú
scipy._libr   r:   r   Úscipy._lib._ccallbackr   r   r   r"   r(   r+   rt   Útest_call_nodataÚtest_call_nonlocalÚtest_call_cythonr^   r_   rk   Útest_get_data_capsuler`   rg   rp   rv   r—   r2   r   r   ú<module>rŸ      sè  ðØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø *Ð *Ð *Ð *Ð *Ð *à €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ø &Ð &Ð &Ð &Ð &Ð &Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð €ðð ð ð ð
ð 
ð 
ð>ð >ð >ð
$ð $ð $ð Ô.ØÔ.ØÔ2Ø$Ô5ð	ð €ð &Ð%Ø?Ð?ðCð Cà9Ð9ðHð HàBÐBðFð Fà<Ð<ðRð Rð	ð 	€ð$ EÐDðHð Hà>Ð>ðð ð	ð 	€	ð ØØÔ4ðð €
ð/ð /ð /ð8/ð /ð /ðD
+ð 
+ð 
+ðð ð ð ð r   