+
    Y°³j˜  ã                   ó|  € ^ RI HtHt ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	H
t ^ RI	Ht ^ RIHt RtR-R ltR	 tR
 tR tR]P(                  R]P*                  R]P,                  R]P.                  /tRR RR RR RR RR RR RR RR RR  /	tR!R" R#R$ R%R& R'R( /tR]R]R]P6                  /tR) tR* tR+ tR, t R# ).é    )Úassert_equalÚassert_)ÚraisesN)Ú_ccallback_c)Ú_test_ccallback)ÚLowLevelCallableç       @c                 óX   € V \         8X  d   \        R 4      hVf
   V ^,           # W,           # )z	bad value)ÚERROR_VALUEÚ
ValueError)ÚaÚ	user_datas   &&Ú`/home/luca/screen-checking/.venv/lib/python3.14/site-packages/scipy/_lib/tests/test_ccallback.pyÚcallback_pythonr      s,   € ØŒKÔÜ˜Ó%Ð%àÒØ�1�uˆà�}Ðó    c                 óÖ   € \         P                  ! R 4      p\        P                  ! V \        P                  4      pVP
                  pVP                  4       pVP                  W4      pV# )Úcffi)ÚpytestÚimportorskipÚctypesÚcastÚc_void_pÚvalueÚFFI)ÚbaseÚ	signaturer   ÚvoidpÚaddressÚffiÚfuncs   &&     r   Ú_get_cffi_funcr!      sQ   € Ü×Ò˜vÓ&€Dô �KŠK˜œfŸo™oÓ.€EØ�k‰k€Gð �(‰(‹*€CØ�8‰8�IÓ'€DØ€Kr   c                  ó    € \         P                  ! R 4      p \         P                  ! \         P                  ! V 4      \         P                  4      # ©r	   )r   Úc_doubler   ÚpointerÚc_voidp)r   s    r   Ú_get_ctypes_datar'   &   s.   € Ü�OŠO˜CÓ €EÜ�;Š;”v—~’~ eÓ,¬f¯n©nÓ=Ð=r   c                  ór   € \         P                  ! R 4      p V P                  4       pVP                  RR4      # )r   zdouble *r	   )r   r   r   Únew)r   r   s     r   Ú_get_cffi_datar*   +   s.   € Ü×Ò˜vÓ&€DØ
�(‰(‹*€CØ�7‰7�:˜sÓ#Ð#r   ÚsimpleÚnodataÚnonlocalÚcythonÚpythonc                  ó   € \         # ©N)r   © r   r   Ú<lambda>r3   :   s   € •or   Úcapsulec                  ó,   € \         P                  ! 4       # r1   )r   Útest_get_plus1_capsuler2   r   r   r3   r3   ;   s   € ”×=Ò=Ô?r   c                  ó8   € \         P                  ! \        R 4      # )Úplus1_cython©r   Úfrom_cythonÚ_test_ccallback_cythonr2   r   r   r3   r3   <   s   € Ô&×2Ò2Ô3IØ3AôCr   r   c                  ó"   € \         P                  # r1   )r;   Úplus1_ctypesr2   r   r   r3   r3   >   s   € Ô,×9Ò9r   r   c                  ó6   € \        \        P                  R 4      # )z!double (*)(double, int *, void *))r!   r;   r=   r2   r   r   r3   r3   ?   s   € ”NÔ#9×#FÑ#FØ#FôHr   Ú	capsule_bc                  ó,   € \         P                  ! 4       # r1   )r   Útest_get_plus1b_capsuler2   r   r   r3   r3   A   s   € œ×@Ò@ÔBr   Úcython_bc                  ó8   € \         P                  ! \        R 4      # )Úplus1b_cythonr9   r2   r   r   r3   r3   B   s   € Ô(×4Ò4Ô5KØ5DôFr   Úctypes_bc                  ó"   € \         P                  # r1   )r;   Úplus1b_ctypesr2   r   r   r3   r3   D   s   € Ô.×<Ò<r   Úcffi_bc                  ó6   € \        \        P                  R 4      # )z)double (*)(double, double, int *, void *))r!   r;   rG   r2   r   r   r3   r3   E   s   € ”nÔ%;×%IÑ%IØ%PôRr   Ú
capsule_bcc                  ó,   € \         P                  ! 4       # r1   )r   Útest_get_plus1bc_capsuler2   r   r   r3   r3   K   s   € œ/×BÒBÔDr   Ú	cython_bcc                  ó8   € \         P                  ! \        R 4      # )Úplus1bc_cythonr9   r2   r   r   r3   r3   L   s   € Ô)×5Ò5Ô6LØ6FôHr   Ú	ctypes_bcc                  ó"   € \         P                  # r1   )r;   Úplus1bc_ctypesr2   r   r   r3   r3   N   s   € Ô/×>Ò>r   Úcffi_bcc                  ó6   € \        \        P                  R 4      # )z1double (*)(double, double, double, int *, void *))r!   r;   rR   r2   r   r   r3   r3   O   s   € ”~Ü×-Ñ-Ø;ôr   c                  óö   € R  p \        \        P                  4       4       FT  p\        \        P                  4       4       F0  p\        \        P                  4       4       F  pV ! WV4       K  	  K2  	  KV  	  R# )c                 ó2  a€ \         V ,          p \        S,          ! 4       o\        V,          ! 4       pS\        J d   V3R  lpM\	        SV4      p\	        S4      o\        V ! SR4      R4       \        \        V S\        4       \        V ! VR4      R4       R# )c                 ó   <€ S! V R 4      # r#   r2   ©Úxr    s   &€r   Úfunc2Ú,test_callbacks.<locals>.check.<locals>.func2c   ó   ø€ Ù˜A˜s“|Ð#r   ç      ð?r	   g      @N)	ÚCALLERSÚFUNCSÚ
USER_DATASr   r   r   Úassert_raisesr   r   )Úcallerr    r   rZ   s   &f& r   ÚcheckÚtest_callbacks.<locals>.check]   s   ø€ Ü˜•ˆÜ�TŽ{‹}ˆÜ˜yÖ)Ó+ˆ	à”?Ó"ö$ô % T¨9Ó5ˆEÜ# DÓ)ˆDô 	‘V˜D #Ó&¨Ô,ô 	”j &¨$´Ô<ô 	‘V˜E 3Ó'¨Ö-r   N)Úsortedr^   Úkeysr_   r`   ©rc   rb   r    r   s       r   Útest_callbacksrh   \   sS   € ò.ô* œŸ™›Ö(ˆÜœ5Ÿ:™:›<Ö(ˆDÜ#¤J§O¡OÓ$5Ö6�	Ù�f IÖ.ó 7ó )ó )r   c                  óö   € R  p \        \        P                  4       4       FT  p\        \        P                  4       4       F0  p\        \        P                  4       4       F  pV ! WV4       K  	  K2  	  KV  	  R# )c                 óÔ  a€ \         V ,          p \        V,          ! 4       p\        S,          ! 4       oS\        J d   V3R  lpM\	        SV4      p\	        S4      o\        \        V \	        S4      R4       \        \        WR4       \	        S4      p V ! VR4       R#   \         d?   p\        T4      p\        TP                  T9   T4       \        RT9   T4        Rp?R# Rp?ii ; i)c                 ó   <€ S! V R 4      # r#   r2   rX   s   &€r   rZ   Ú0test_bad_callbacks.<locals>.check.<locals>.func2   r\   r   r]   z&double (double, double, int *, void *)N)
r^   r`   Ú	BAD_FUNCSr   r   ra   r   Ústrr   r   )rb   r    r   rZ   ÚllfuncÚerrÚmsgs   &f&    r   rc   Ú!test_bad_callbacks.<locals>.checky   sÍ   ø€ Ü˜•ˆÜ˜yÖ)Ó+ˆ	Ü˜ŽÓ ˆà”?Ó"ö$ô % T¨9Ó5ˆEÜ# DÓ)ˆDô 	”j &Ô*:¸4Ó*@À#ÔFô 	”j &°Ô5ô " $Ó'ˆð	JÙ�6˜3ÖøÜô 	JÜ�c“(ˆCÜ�F×$Ñ$¨Ñ+¨SÔ1ÜÐ<ÀÑCÀS×IÒIûð	Jús   Â	B ÂC'Â)3C"Ã"C'N)re   r^   rf   rm   r`   rg   s       r   Útest_bad_callbacksrs   x   sU   € òJô6 œŸ™›Ö(ˆÜœ9Ÿ>™>Ó+Ö,ˆDÜ#¤J§O¡OÓ$5Ö6�	Ù�f IÖ.ó 7ó -ó )r   c                  ó$  € \         P                  p \         P                  ! 4       p\        VR R7      p\	        VP
                  R 4       \        \        W^4       \        VRR7      p\	        VP
                  R4       \	        V ! V^4      ^4       R# )zbad signature)r   zdouble (double, int *, void *)N)r   Útest_call_simpler6   r   r   r   ra   r   )rb   r    Ú
llcallables      r   Útest_signature_overriderw   š   sr   € Ü×-Ñ-€FÜ×1Ò1Ó3€Dä! $°/ÔB€JÜ�×%Ñ% Ô7Ü”*˜f°!Ô4ä! $Ð2RÔS€JÜ�×%Ñ%Ð'GÔHÜ‘˜
 AÓ&¨Ö*r   c                  óf   a€ V3R  loV3R lp \         P                  4        F  pV ! V4       K  	  R# )c                 óT   <a€ V ^ 8:  d   ^# S! VV3R lV ^,
          4      p^V,          # )r   c                 ó   <€ S! V S4      # r1   r2   ©rY   Úcallbackrb   s   &€€r   r3   Ú5test_threadsafety.<locals>.callback.<locals>.<lambda>¬   s   ø€ ¡8¨A¨vÔ#6r   r2   )r   rb   Úresr|   s   &f €r   r|   Ú#test_threadsafety.<locals>.callback¨   s'   ù€ Ø�Œ6ÙáÕ6¸¸A½Ó>ˆCØ�S•5ˆLr   c                 óV  <a aa€ \         S ,          o . o^
oVV VV3R lp\        ^4       Uu. uF  p\        P                  ! VR7      NK  	  ppV F  pVP	                  4        K  	  V F  pVP                  4        K  	  \        SRS,          .\        V4      ,          4       R# u upi )é
   c                  ór   <€ \         P                  ! R 4       S! VV3R lS4      p SP                  V 4       R# )g{®Gáz„?c                 ó   <€ S! V S4      # r1   r2   r{   s   &€€r   r3   Ú?test_threadsafety.<locals>.check.<locals>.run.<locals>.<lambda>¸   s   ø€ ¡¨!¨VÔ!4r   N)ÚtimeÚsleepÚappend)Úrr|   rb   ÚcountÚresultss    €€€€r   ÚrunÚ-test_threadsafety.<locals>.check.<locals>.run¶   s(   ø€ Ü�JŠJ�tÔÙÕ4°eÓ<ˆAØ�N‰N˜1Ör   )Útargetr	   N)r^   ÚrangeÚ	threadingÚThreadÚstartÚjoinr   Úlen)rb   r‹   ÚjÚthreadsÚthreadr‰   rŠ   r|   s   f    @@€r   rc   Ú test_threadsafety.<locals>.check¯   sŒ   û€ Ü˜•ˆàˆàˆ÷	ð 	ô
 :?¸r¼ÓC¹°A”9×#Ò#¨3×/¹ˆÐCÛˆFØ�L‰LŽNñ ãˆFØ�K‰KŽMñ ô 	�W˜s E�z˜l¬3¨w«<Õ7Ö8ùò Ds   ¬ B&N)r^   rf   )rc   rb   r|   s     @r   Útest_threadsafetyr˜   §   s&   ø€ õõ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*   ru   Útest_call_nodataÚtest_call_nonlocalÚtest_call_cythonr^   r_   rm   Útest_get_data_capsuler`   rh   rs   rw   r˜   r2   r   r   Ú<module>r       s  ðß /Ý *ã Û Û Û Ý =Ý &Ý 2ð €ôò
ò>ò
$ð ˆo×.Ñ.Øˆo×.Ñ.Ø�×2Ñ2ØÐ$×5Ñ5ð	€ð Ñ%ØÑ?Øñ CàÑ9Ø
ñ HàÑBØñ FàÑ<Øñ Rð	€ð$ ÑDØñ HàÑ>Øñ ð	€	ð ÐØ
ˆNØˆ×4Ñ4ð€
ò/ò8/òD
+ôr   