
    sh                     "   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    l/Users/tiagomarins/Projetos/claudeai/copy_bank/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_func5StructureTestCase.compile_function.<locals>.call_func)   sg    ll**,G,,-=	-IJG!!&)228==AD%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     OOK+1FG	&&v B'-&85&@B++B/11&)TWWYO&&&&11':,,{+		  
	  llGX]]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++d1gtAw/CKK & 	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1D;;tAwf(=>D##D"..*DEDd;DD..KK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  pxpXxU
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"q6##Lv>-$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>.Sb   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<DF[[B8DF GFFs   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>.Sm   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)Gz?=
ףp=@r   r   )	r   r   rs   r   r   
DoubleTypery   	FloatTyperz   r   s         r   test_float_fields#StructureTestCase.test_float_fieldsl   sn    	-!! 	- ((>'$[[$7DF[[6DF ?>>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)TestCGContextx   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 ; jj,,-'`7 `7F0H 0> zMMO r   