ó
    „ñ:i'  ã                   óÖ   • S SK r S SKrS SKJrJr  S SKJs  Js  J	r
  S SKJrJr  S SKJrJr  S SKJs  Jr  S SKrSS0rSS0r\ " S S	\5      5       r\S
:X  a  \R4                  " 5         gg)é    N)ÚjitÚnjit)ÚtypesÚerrors)ÚTestCaseÚskip_unless_cffiÚforceobjTÚnopythonc                   ó¢   • \ rS rSrSrS rS r\4S jrS r	S r
S r\4S	 jrS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)ÚTestCFFIé   Fc                 óX   • [         R                  " 5         [         R                  " 5         g ©N)ÚmodÚinitÚinit_ool©Úselfs    ÚX/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_cffi.pyÚsetUpÚTestCFFI.setUp   s   € Ü�ŠŒ
Ü�Š�ó    c                 ó*  • [         R                  " [        R                  R	                  [        R
                  5      5      nU R                  [        UR                  5      S5        U R                  UR                  S   [        R                  5        g )Né   r   )Úcffi_supportÚmap_typer   ÚffiÚtypeofÚcffi_sinÚassertEqualÚlenÚargsr   Údouble)r   Ú	signatures     r   Útest_type_mapÚTestCFFI.test_type_map   sY   € Ü ×)Ò)¬#¯'©'¯.©.¼¿¹Ó*FÓGˆ	Ø×Ñœ˜YŸ^™^Ó,¨aÔ0Ø×Ñ˜Ÿ™¨Ñ*¬E¯L©LÕ9r   c                 ó”   • [        [        R                  440 UD6" U5      nS H!  nU R                  U" U5      U" U5      5        M#     g )N)g333333ó¿éÿÿÿÿr   gš™™™™™¹?g…ëQ¸	@)r   r   r#   ÚassertPreciseEqual)r   ÚpyfuncÚflagsÚcfuncÚxs        r   Ú_test_functionÚTestCFFI._test_function"   s>   € Ü”U—\‘\�OÑ- uÒ-¨fÓ5ˆã)ˆAØ×#Ñ#¡F¨1£I©u°Q«xÖ8ò *r   c                 óB   • U R                  [        R                  5        g r   )r.   r   Úuse_cffi_sinr   s    r   Útest_sin_functionÚTestCFFI.test_sin_function(   s   € Ø×ÑœC×,Ñ,Õ-r   c                 ó¢   • [         R                  n[        S5      " U5      nU R                  U" 5       S5        U R                  U" 5       S5        g )N© T)r   Úuse_cffi_boolean_truer   r    ©r   r*   r,   s      r   Útest_bool_function_oolÚTestCFFI.test_bool_function_ool+   s?   € Ü×*Ñ*ˆÜ�R”	˜&Ó!ˆØ×Ñ™› 4Ô(Ø×Ñ™› $Õ'r   c                 óH   • U R                  [        R                  [        S9  g ©N)r+   )r.   r   r1   Úno_pyobj_flagsr   s    r   Útest_sin_function_npmÚTestCFFI.test_sin_function_npm1   s   € Ø×ÑœC×,Ñ,´NÐÒCr   c                 óB   • U R                  [        R                  5        g r   )r.   r   Úuse_cffi_sin_ool)r   r+   s     r   Útest_sin_function_oolÚTestCFFI.test_sin_function_ool4   s   € Ø×ÑœC×0Ñ0Õ1r   c                 óH   • U R                  [        R                  [        S9  g r;   )r.   r   r@   r<   r   s    r   Útest_sin_function_npm_oolÚ"TestCFFI.test_sin_function_npm_ool7   s   € Ø×ÑœC×0Ñ0¼ÐÒGr   c                 óB   • U R                  [        R                  5        g r   )r.   r   Úuse_two_funcsr   s    r   Útest_two_funcsÚTestCFFI.test_two_funcs:   s   € à×ÑœC×-Ñ-Õ.r   c                 óB   • U R                  [        R                  5        g r   )r.   r   Úuse_two_funcs_oolr   s    r   Útest_two_funcs_oolÚTestCFFI.test_two_funcs_ool>   s   € Ø×ÑœC×1Ñ1Õ2r   c                 ó   • [         R                  n[        SS9" U5      n[         R                  [         R                  S4[         R                  [         R                  S4[         R                  [         R                  S4[         R                  [         R                  S4[         R
                  [         R                  S4[         R
                  [         R                  S4[         R                  [         R
                  S4[         R                  [         R
                  S4[         R                  [         R                  S4[         R                  [         R                  S4[         R                  [         R
                  S4[         R                  [         R
                  S44 H)  u  p4nU" X4U5      nU" X4U5      nU R                  Xv5        M+     U R                  [        UR                  5      SUR                  5        g )NT©r
   g      ð?g      ð¿r   )
r   Úuse_func_pointerr   r   Úcffi_cosÚcffi_sin_oolÚcffi_cos_oolr    r!   Ú	overloads)r   r*   r,   ÚfaÚfbr-   ÚexpectedÚgots           r   Útest_function_pointerÚTestCFFI.test_function_pointerA   se  € Ü×%Ñ%ˆÜ˜TÒ" 6Ó*ˆä�\‰\œ3Ÿ<™<¨Ð-Ü�\‰\œ3Ÿ<™<¨Ð.Ü�\‰\œ3Ÿ<™<¨Ð-Ü�\‰\œ3Ÿ<™<¨Ð.Ü×Ñœs×/Ñ/°Ð5Ü×Ñœs×/Ñ/°Ð6Ü×Ñœs×/Ñ/°Ð5Ü×Ñœs×/Ñ/°Ð6Ü�\‰\œ3×+Ñ+¨SÐ1Ü�\‰\œ3×+Ñ+¨TÐ2Ü�\‰\œ3×+Ñ+¨SÐ1Ü�\‰\œ3×+Ñ+¨TÐ2ó4‰KˆR�Qñ ˜b aÓ(ˆHÙ˜ Ó"ˆCØ×Ñ˜SÖ+ñ4ð" 	×Ñœ˜UŸ_™_Ó-¨q°%·/±/ÕBr   c                 óz   • [         R                  n[        SS9" U5      nU R                  U" 5       U" 5       5        g )NTrO   )r   Úuse_user_defined_symbolsr   r    r7   s      r   Útest_user_defined_symbolsÚ"TestCFFI.test_user_defined_symbolsW   s0   € Ü×-Ñ-ˆÜ˜TÒ" 6Ó*ˆØ×Ñ™›¡5£7Õ+r   c                 ó|   • U" X#5        [         R                  R                  U[         R                  " U5      5        g r   )ÚnpÚtestingÚassert_allcloseÚsin)r   r,   r-   Úys       r   Úcheck_vector_sinÚTestCFFI.check_vector_sin\   s%   € ÙˆaŒÜ
�
‰
×"Ñ" 1¤b§f¢f¨Q£iÕ0r   c                 ó¼   • [         R                  " S5      R                  U5      n[         R                  " U5      n[	        SS9" U5      nU R                  XSU5        g )Né
   TrO   )r`   ÚarangeÚastypeÚ
zeros_liker   re   )r   r*   Údtyper-   rd   r,   s         r   Ú_test_from_buffer_numpy_arrayÚ&TestCFFI._test_from_buffer_numpy_array`   sG   € Ü�IŠI�b‹M× Ñ  Ó'ˆÜ�MŠM˜!ÓˆÜ˜TÒ" 6Ó*ˆØ×Ñ˜e¨Õ*r   c                 ó`   • U R                  [        R                  [        R                  5        g r   )rm   r   Úvector_sin_float32r`   Úfloat32r   s    r   Útest_from_buffer_float32Ú!TestCFFI.test_from_buffer_float32f   ó   € Ø×*Ñ*¬3×+AÑ+AÄ2Ç:Á:ÕNr   c                 ó`   • U R                  [        R                  [        R                  5        g r   )rm   r   Úvector_sin_float64r`   Úfloat64r   s    r   Útest_from_buffer_float64Ú!TestCFFI.test_from_buffer_float64i   rt   r   c                 óÞ  • Sn[         R                  " U5      [         R                  " US-  US-  5      S-  -   n[         R                  " U5      n[        SS9" [        R
                  5      nU" X#5        [         R                  R                  UR                  U5        [        SS9" [        R                  5      nU" X#5        [         R                  R                  UR                  U5        g )Nrh   é   é   y              ð?TrO   )r`   ri   Úzerosr   r   Úvector_extract_realra   Úassert_equalÚrealÚvector_extract_imagÚimag)r   Únr-   rd   Ú
real_cfuncÚ
imag_cfuncs         r   Útest_from_buffer_structÚ TestCFFI.test_from_buffer_structl   s¨   € ØˆÜ�IŠI�a‹Lœ2Ÿ9š9 Q¨¡U¨A°©EÓ2°RÑ7Ñ7ˆÜ�HŠH�Q‹KˆÜ $Ò'¬×(?Ñ(?Ó@ˆ
Ù�1ÔÜ
�
‰
×Ñ §¡¨Ô*Ü $Ò'¬×(?Ñ(?Ó@ˆ
Ù�1ÔÜ
�
‰
×Ñ §¡¨Õ*r   c                 óî   • [         R                  n[        SS9" U5      n[        R                  " S[	        S5      5      n[        R                  " SS/[        U5      -  5      nU R                  X#U5        g )NTrO   Úfrh   r   )r   rp   r   ÚarrayÚranger!   re   )r   r*   r,   r-   rd   s        r   Útest_from_buffer_pyarrayÚ!TestCFFI.test_from_buffer_pyarrayw   sZ   € Ü×'Ñ'ˆÜ˜TÒ" 6Ó*ˆÜ�KŠK˜œU 2›YÓ'ˆÜ�KŠK˜˜a˜S¤3 q£6™\Ó*ˆØ×Ñ˜e¨Õ*r   c                 ó¬  • [         R                  n[        SS9" U5      n[        R                  " S5      R                  [        R                  5      S S S2   n[        R                  " U5      nU R                  [        R                  5       nU" X45        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)NTrO   rh   r{   z3from_buffer() unsupported on non-contiguous buffers)r   rp   r   r`   ri   rj   rq   rk   ÚassertRaisesr   ÚTypingErrorÚassertInÚstrÚ	exception)r   r*   r,   r-   rd   Úraisess         r   Útest_from_buffer_errorÚTestCFFI.test_from_buffer_error~   s—   € Ü×'Ñ'ˆÜ˜TÒ" 6Ó*ˆä�IŠI�b‹M× Ñ ¤§¡Ó,©S¨q¨SÑ1ˆÜ�MŠM˜!ÓˆØ×Ñœv×1Ñ1Ô2°fÙ�!ŒK÷ 3à�‰ÐKÜ˜&×*Ñ*Ó+õ	-÷ 3Õ2ús   Â	CÃ
Cc                 ó.  • [         R                  " SS/S[         R                  S9n[         R                  " U5      n[         R                  " SS/SS//S[         R                  S9n[         R                  " U5      n[         R                  " SS/S[         R                  S9n[         R                  " U5      n[         R                  " SS/SS//S[         R                  S9n[         R                  " U5      nUR	                  S5      n	[
        R                  n
[        S	S
9" U
5      nU R                  X±U5        U" X45        [         R                  " U5      nSS/US'   [         R                  R                  XL5        U R                  XµU5        U R                  [        R                  5       nU" Xx5        S S S 5        [         R                  R                  Xy5        U R                  S[!        WR"                  5      5        g ! , (       d  f       NS= f)Nr   r{   ÚC)Úorderrl   r|   é   ÚFÚKTrO   r   zAfrom_buffer() only supports multidimensional arrays with C layout)r`   rŠ   rq   rk   Úcopyr   rp   r   re   rc   ra   rb   r�   r   r�   r‘   r’   r“   )r   Úc1Úc1_zerosÚc2Úc2_zerosÚf1Úf1_zerosÚf2Úf2_zerosÚf2_copyr*   r,   Úsin_c2r”   s                 r   Ú"test_from_buffer_numpy_multi_arrayÚ+TestCFFI.test_from_buffer_numpy_multi_array‰   sŠ  € Ü�XŠX�q˜!�f C¬r¯z©zÑ:ˆÜ—=’= Ó$ˆÜ�XŠX˜˜1�v  1˜vÐ&¨c¼¿¹ÑDˆÜ—=’= Ó$ˆÜ�XŠX�q˜!�f C¬r¯z©zÑ:ˆÜ—=’= Ó$ˆÜ�XŠX˜˜1�v  1˜vÐ&¨c¼¿¹ÑDˆÜ—=’= Ó$ˆØ—'‘'˜#“,ˆÜ×'Ñ'ˆÜ˜TÒ" 6Ó*ˆà×Ñ˜e¨Ô2áˆbÔÜ—’˜“ˆØ˜�Fˆˆq‰	Ü
�
‰
×"Ñ" 8Ô4à×Ñ˜e¨Ô2à×Ñœv×1Ñ1Ô2°fÙ�"Ô÷ 3ä
�
‰
×"Ñ" 2Ô/Ø�‰ÐYÜ˜&×*Ñ*Ó+õ	-÷ 3Õ2ús   Æ0	HÈ
Hc                 óÊ   ^^• [         R                  m[        SS9U4S j5       m[        SS9UU4S j5       nSnU R                  U" U5      T" U5      T" US-   5      -   5        g)zR
Issue #2263

Linkage error due to multiple definition of global tracking symbol.
TrO   c                 ó   >• T" U 5      $ r   r5   )r-   Úmy_sins    €r   ÚinnerÚ2TestCFFI.test_indirect_multiple_use.<locals>.inner¯   s   ø€ á˜!“9Ðr   c                 ó,   >• T" U 5      T" U S-   5      -   $ )Nr   r5   )r-   r­   r¬   s    €€r   ÚfooÚ0TestCFFI.test_indirect_multiple_use.<locals>.foo³   s   ø€ á˜“8™f Q¨¡U›mÑ+Ð+r   g+‡ÙÎ÷ñ?r   N)r   r   r   r    )r   r°   r-   r­   r¬   s      @@r   Útest_indirect_multiple_useÚ#TestCFFI.test_indirect_multiple_use¥   sl   ù€ ô —‘ˆô 
�dÑ	ô	ó 
ð	ô 
�dÑ	õ	,ó 
ð	,ð ˆØ×Ñ™˜Q›¡¨£©V°A¸±E«]Ñ!:Õ;r   r5   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú_numba_parallel_test_r   r%   Úenable_pyobj_flagsr.   r2   r8   r=   rA   rD   rH   rL   rY   r]   re   rm   rr   rx   r†   rŒ   r•   r¨   r²   Ú__static_attributes__r5   r   r   r   r      s‚   † ð
 "Ðòò:ð
 ,>ô 9ò.ò(òDð +=ô 2òHò/ò3òCò,,ò
1ò+òOòOò	+ò+ò	-ò-õ8<r   r   Ú__main__)rŠ   Únumpyr`   Únumbar   r   Únumba.core.typing.cffi_utilsÚcoreÚtypingÚ
cffi_utilsr   Ú
numba.corer   r   Únumba.tests.supportr   r   Únumba.tests.cffi_usecasesÚtestsÚcffi_usecasesr   Úunittestr¹   r<   r   r´   Úmainr5   r   r   Ú<module>rÉ      ss   ðÛ Û ç ß 3Ó 3ß $ß :÷ (Ð 'Û ð ! $Ð'Ð Ø˜dÐ#€ð ôf<ˆxó f<ó ðf<ðR ˆzÓØ‡M‚M…Oð r   