ó
    „ñ:iÿ  ã                   ó"  • S SK r S SKrS SKrS SKrS SKJr  S SKrS SKrS SK	J
r
JrJrJr  S SKJr  S SKJrJr  \R&                  " \
R(                  R*                  5      rS r " S S\5      r " S S	\5      r\S
:X  a  \R6                  " 5         gg)é    N)ÚtypesÚtypingÚcgutilsÚcpu)Úglobal_compiler_lock)ÚTestCaseÚrun_in_subprocessc                 ó8   • [         R                  " [        U 5      $ ©N)ÚirÚConstantÚmachine_int)Úns    Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_cgutils.pyÚmachine_constr      s   € Ü�;Š;”{ AÓ&Ð&ó    c                   ó¢   • \ rS rSrS r\R                  S 5       rS rS r	\R                  SS j5       r
\R                  S 5       rS rS	 rS
rg)ÚStructureTestCaseé   c                 ód   • [         R                  " 5       n[        R                  " U5      U l        g r   )r   ÚContextr   Ú
CPUContextÚcontext)ÚselfÚtyping_contexts     r   ÚsetUpÚStructureTestCase.setUp   s   € ÜŸšÓ)ˆÜ—~’~ nÓ5ˆ�r   c              #   ó   ^ ^^^	#   • [         R                  " [        [        /U-  5      n[        R                  " [        R
                  /[        R
                  4U-  Q76 mT R                  R                  S5      m	[        R                  " T	UT R                  5       5      mTR                  (       d   eTR                  S5      n[         R                  " U5      nS/n[        UUU	U 4S j5       nT R                  UTR                  U4v •  g 7f)NÚ ÚentryTc                  óî   >• TR                   R                  5       nUR                  STR                  5       -  5      nUR	                  T5        UR                  TR                  5      nT" U5      nU" U 6 $ )Nztest_module.%s)r   ÚcodegenÚcreate_libraryÚidÚadd_ir_moduleÚget_pointer_to_functionÚname)	Úargsr"   ÚlibraryÚcptrÚcfuncÚctypes_fntyÚfunctionÚmoduler   s	        €€€€r   Ú	call_funcÚ5StructureTestCase.compile_function.<locals>.call_func)   sg   ø€ à—l‘l×*Ñ*Ó,ˆGØ×,Ñ,Ð-=ÀÇÁÃ	Ñ-IÓJˆGØ×!Ñ! &Ô)Ø×2Ñ2°8·=±=ÓAˆDÙ Ó%ˆEÙ˜$�<Ðr   )r   ÚFunctionTyper   ÚctypesÚ	CFUNCTYPEÚc_size_tr   Úcreate_moduler   Úget_or_insert_functionr$   Úis_declarationÚappend_basic_blockÚ	IRBuilderr   r(   )
r   ÚnargsÚ	llvm_fntyÚentry_blockÚbuilderÚfirstr/   r,   r-   r.   s
   `      @@@r   Úcompile_functionÚ"StructureTestCase.compile_function   sÖ   ûé € ä—O’O¤K´+°ÀÑ1FÓGˆ	Ü×&Ò&¤v§¡ð BÜ'-§¡Ð&8¸5Ñ&@òBˆà—‘×+Ñ+¨BÓ/ˆä×1Ò1°&¸)ÀTÇWÁWÃYÓOˆØ×&×&Ð&Ð&Ø×1Ñ1°'Ó:ˆÜ—,’,˜{Ó+ˆà�ˆä	÷	 ó 
ð	 ð �l‰l˜G X§]¡]°IÐ=Ó=ùs   †DDc                 óÊ   • [        U[        5      (       d   e[        R                  R                  n[        R
                  /Ul        [        R                  Ul        U" U5      $ r   )	Ú
isinstanceÚ	bytearrayr2   Ú	pythonapiÚPyByteArray_AsStringÚ	py_objectÚargtypesÚc_void_pÚrestype)r   ÚbaÚba_as_strings      r   Úget_bytearray_addrÚ$StructureTestCase.get_bytearray_addr5   sN   € Ü˜"œi×(Ñ(Ð(Ð(Ü×'Ñ'×<Ñ<ˆÜ!'×!1Ñ!1Ð 2ˆÔÜ%Ÿ™ˆÔÙ˜BÓÐr   c                 ó  • U R                  S5       u  pp4UR                  US   US   5      nUR                  U5        S S S 5        U R                  W" SS5      S5        U R                  U" SS5      S5        g ! , (       d  f       NA= f)	Né   r   é   é   éþÿÿÿé   é   é   )r?   ÚaddÚretÚassertEqual)r   r   r=   r(   ÚcallÚress         r   Útest_compile_functionÚ'StructureTestCase.test_compile_function<   sw   € à×"Ñ" 1Ô%Ñ)G¨'¸DØ—+‘+˜d 1™g t¨A¡wÓ/ˆCØ�K‰K˜Ô÷ &ð 	×Ñ™˜a › aÔ(Ø×Ñ™˜a › QÕ'÷	 &Õ%ús   ’-A:Á:
Bc              #   ó°  #   • U R                  S5       u  pEpgU" XE5      nUR                  US   [        U5      5      n	UR                  U	[        R
                  " UR                  5      5      n	U" XEU	S9nXEXh4v •  UR                  [        R                  " [        S5      5        S S S 5        W" U R                  U5      5        g ! , (       d  f       N&= f7f)NrP   r   )Úref)r?   rV   r   Úinttoptrr   ÚPointerTypeÚ_typerW   r   r   rL   )
r   Ústruct_classÚbufÚoffsetr   r=   r(   rY   ÚinstÚsptrs
             r   Úrun_struct_accessÚ#StructureTestCase.run_struct_accessD   s¬   é € à×"Ñ" 1Ô%Ñ)G¨'¸DÙ Ó1ˆDØ—;‘;˜t A™w¬°fÓ(=Ó>ˆDØ×#Ñ# D¬"¯.ª.¸¿¹Ó*DÓEˆDÙ °dÑ;ˆDà DÐ.Ò.à�K‰KœŸš¤K°Ó3Ô4÷ &ñ 	ˆT×$Ñ$ SÓ)Õ*÷ &Õ%üs   ‚C”BCÂ% CÃ
CÃCc              #   ó  #   • [        S5      S-  nUS S  nSnU R                  XU5       u  pxpšXxU
4v •  S S S 5        U R                  XE5        [        R                  " X%U/UQ76   U R                  XE5        g ! , (       d  f       NI= f7f)Nó   !é(   é   )rC   rg   ÚassertNotEqualÚstructÚ	pack_intorX   )r   rb   Ú
struct_fmtÚstruct_argsrc   Úexpectedrd   r   r=   r(   re   s              r   Úrun_simple_struct_testÚ(StructureTestCase.run_simple_struct_testQ   s…   é € ô ˜‹o Ñ"ˆØ‘q�6ˆØˆà×#Ñ# L°vÔ>Ù-� $Ø DÐ(Ò(÷ ?ð 	×Ñ˜CÔ*Ü×Ò˜¨vÐD¸ÓDØ×Ñ˜Õ'÷ ?Õ>üs   ‚(Bª
A7´ABÁ7
BÂBc                 óX  •  " S S[         R                  5      nSnU R                  XS5       u  p4n[        R                  " [        R
                  " S5      S5      Ul        [        R                  " [        R
                  " S5      S5      Ul        S S S 5        g ! , (       d  f       g = f)	Nc                   óL   • \ rS rSrS\R
                  4S\R                  4/rSrg)Ú,StructureTestCase.test_int_fields.<locals>.Séb   ÚaÚb© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úint32Úuint16Ú_fieldsÚ__static_attributes__r{   r   r   ÚSrw   b   s!   † Ø˜UŸ[™[Ð)Ø˜UŸ\™\Ð*ð,‹Gr   r„   z=iH)éxV4éÍ«  é    r…   é   r†   )r   Ú	Structurers   r   r   ÚIntTypery   rz   ©r   r„   Úfmtr   r=   re   s         r   Útest_int_fieldsÚ!StructureTestCase.test_int_fieldsa   st   € ô	,”×!Ñ!ô 	,ð ˆØ×(Ñ(¨Ð1EÔFÙ'� $Ü—[’[¤§¢¨B£°Ó<ˆDŒFÜ—[’[¤§¢¨B£°Ó8ˆDŒF÷ G×FÖFús   ®A$BÂ
B)c                 óT  •  " S S[         R                  5      nSnU R                  XS5       u  p4n[        R                  " [        R
                  " 5       S5      Ul        [        R                  " [        R                  " 5       S5      Ul        S S S 5        g ! , (       d  f       g = f)Nc                   óL   • \ rS rSrS\R
                  4S\R                  4/rSrg)Ú.StructureTestCase.test_float_fields.<locals>.Sém   ry   rz   r{   N)	r|   r}   r~   r   r   Úfloat64Úfloat32r‚   rƒ   r{   r   r   r„   r‘   m   s!   † Ø˜UŸ]™]Ð+Ø˜UŸ]™]Ð+ð-‹Gr   r„   z=df)ç®Gáz®ó?ç=
×£p=@r•   r–   )	r   r‰   rs   r   r   Ú
DoubleTypery   Ú	FloatTyperz   r‹   s         r   Útest_float_fieldsÚ#StructureTestCase.test_float_fieldsl   sn   € ô	-”×!Ñ!ô 	-ð ˆØ×(Ñ(¨°Ô>Ù'� $Ü—[’[¤§¢£°$Ó7ˆDŒFÜ—[’[¤§¢£°Ó6ˆDŒF÷ ?×>Ö>ús   ®A"BÂ
B')r   N)r   )r|   r}   r~   r   r   Ú
contextlibÚcontextmanagerr?   rL   r[   rg   rs   r�   r™   rƒ   r{   r   r   r   r      si   † ò6ð ×Ññ>ó ð>ò2 ò(ð ×Ñó
+ó ð
+ð ×Ññ(ó ð(ò	9õ	7r   r   c                   ó   • \ rS rSrSrS rSrg)ÚTestCGContextéx   z/Tests for code generation context functionalityc                 ó€   • SnSU S3n[        U5      u  p4U R                  [        U5      UR                  5       5        g )Ni@â az  if 1:
        from numba import njit, types
        from numba.extending import intrinsic

        @intrinsic
        def printf(tyctx, int_arg):
            sig = types.void(int_arg)
            def codegen(cgctx, builder, sig, llargs):
                cgctx.printf(builder, "%d\n", *llargs)
            return sig, codegen

        @njit
        def foo():
            printf(z)

        foo()
        )r	   ÚassertInÚstrÚdecode)r   ÚvalueÚcodeÚoutÚ_s        r   Útest_printfÚTestCGContext.test_printf{   sG   € ð ˆðð �7ð 	ðˆô$ # 4Ó(‰ˆØ�‰”c˜%“j #§*¡*£,Õ/r   r{   N)r|   r}   r~   r   Ú__doc__r¨   rƒ   r{   r   r   rž   rž   x   s
   † Ù9õ0r   rž   Ú__main__)r›   r2   rn   ÚsysÚllvmlite.irr   ÚnumpyÚnpÚunittestÚ
numba.corer   r   r   r   Únumba.core.compiler_lockr   Únumba.tests.supportr   r	   rŠ   ÚintpÚbitwidthr   r   r   rž   r|   Úmainr{   r   r   Ú<module>r·      sx   ðÛ Û Û Û 
å Û ã ß 2Ó 2Ý 9ß ;ð �jŠj˜Ÿ™×,Ñ,Ó-€ò'ô`7˜ô `7ôF0�Hô 0ð> ˆzÓØ‡M‚M…Oð r   