
    sh                        S SK rS SKrS SKJr  S SKJr  S SKJrJr  S SK	J
r
  S SKJr  \R                  " S5      r\R                  " S5      r\R"                  " S	5      r\SSS
2   r\R)                  S5      R*                  r\R.                  " S\R0                  4S/5      r\R"                  " S\R0                  S9R5                  \5      r\SSS2   r\R:                  " S\R<                  S9r\R                  " S/5      r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r* " S S\5      r+ " S S \5      r,\-S!:X  a  \R\                  " 5         gg)"    N)njit)TypingError)jittypeof)types)TestCase*   @         )      x)yS3    dtypes   XXXX_array_contents_XXXX   c                     [         S   $ N )a0is    t/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_array_constants.pygetitem0r      s    b6M    c                     [         U    $ N)a1r   s    r   getitem1r#   #       a5Lr   c                     [         U    $ r!   )a2r   s    r   getitem2r'   '   r$   r   c                     [         U    $ r!   )a3r   s    r   getitem3r*   +   r$   r   c                     [         U    $ r!   )a4r   s    r   getitem4r-   /   r$   r   c                     [         U    $ r!   )a5r   s    r   getitem5r0   3   r$   r   c                     [         U    $ r!   )a6r   s    r   getitem6r3   7   r$   r   c                      [         $ r!   )s1r   r   r   use_arrayscalar_constr6   ;   s    Ir   c                      S[         S'   g )Nr   r   )myarrayr   r   r   write_to_global_arrayr9   ?   s    GAJr   c                  H    [         R                  " S[         R                  S9$ )Ns   foor   )np
frombufferuint8r   r   r   bytes_as_const_arrayr>   C   s    ==rxx00r   c                   ~    \ 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\R"                  S 5       rSrg)TestConstantArrayG   z
Test array constants.
c                     [        [        R                  45      " U5      nS H/  n[        R                  R                  U" U5      U" U5      5        M1     g )N)r   r   r   )r   r   int32r;   testingassert_array_equal)selfpyfunccfuncr   s       r   check_array_const#TestConstantArray.check_array_constL   s=    ekk^$V,AJJ))&)U1X> r   c                 .    U R                  [        5        g r!   )rI   r   rF   s    r   test_array_const_0d%TestConstantArray.test_array_const_0dQ       x(r   c                 .    U R                  [        5        g r!   )rI   r#   rL   s    r   test_array_const_1d_contig,TestConstantArray.test_array_const_1d_contigT   rO   r   c                 .    U R                  [        5        g r!   )rI   r'   rL   s    r   test_array_const_1d_noncontig/TestConstantArray.test_array_const_1d_noncontigW   rO   r   c                 .    U R                  [        5        g r!   )rI   r*   rL   s    r   test_array_const_2d%TestConstantArray.test_array_const_2dZ   rO   r   c                 .    U R                  [        5        g r!   )rI   r-   rL   s    r   test_record_array_const_contig0TestConstantArray.test_record_array_const_contig]   rO   r   c                 .    U R                  [        5        g r!   )rI   r0   rL   s    r   !test_record_array_const_noncontig3TestConstantArray.test_record_array_const_noncontig`   rO   r   c                    [         R                  4n[        USS9" [        5      nUR	                  U5      nUR                  5        H/  nSU;   d  M  U R                  SU5        U R                  SU5          g   U R                  S5        g)z\
Issue #1933: the array declaration in the LLVM IR must have
the right alignment specified.
T)nopythonXXXX_array_contents_XXXXzconstant [24 x i8]z	, align 4z+could not find array declaration in LLVM IRN)r   intpr   r3   inspect_llvm
splitlinesassertInfail)rF   sigrH   irlines        r   test_array_const_alignment,TestConstantArray.test_array_const_alignmentc   sy    
 zzmC$'1$MMOD)T12D9 k40 $ IICDr   c                 j    [         n[        S5      " U5      nU R                  U" 5       U" 5       5        g r   )r6   r   assertEqualrF   rG   rH   s      r   test_arrayscalar_const(TestConstantArray.test_arrayscalar_constu   s)    &R	&!57+r   c                     [         nU R                  [        5         [        S5      " U5        S S S 5        g ! , (       d  f       g = fr   )r9   assertRaisesr   r   )rF   rG   s     r   test_write_to_global_array,TestConstantArray.test_write_to_global_arrayz   s-    &{+If ,++s	   7
Ac                    ^ [         R                  " S/5      mU4S jn[        S5      " U5      nU" 5       nU R                  US5        g)za
This issue is caused by an unresolved bug in numpy since version 1.6.
See numpy GH issue #3147.
V   c                     > T S   $ )Nr   r   )constarrs   r   rG   1TestConstantArray.test_issue_1850.<locals>.pyfunc   s    A;r   r   N)r;   arrayr   rm   )rF   rG   rH   outrx   s       @r   test_issue_1850!TestConstantArray.test_issue_1850   s@    
 88RD>	 R	&!gb!r   c                   ^  U 4S jnSn[         R                  " U5      R                  U5      n[         R                  " [         R                  R	                  SUS-  45      5      nT R                  [        U5      R                  S5        T R                  [        U5      R                  S5        U" U5        U" U5        g)z
Test issue https://github.com/numba/numba/issues/2188 where freezing
a constant array into the code that's prohibitively long and consumes
too much RAM.
c                   >^  [         R                  " T 5      nTR                  [        T 5      [        U5      5        U 4S jn[	        S5      " U5      nTR                  [        UR                  S5      5      T R                  5        U" 5       nTR                  T U5        AS m U" 5       n[         R                  R                  X5        TR                  [        U5      [        U5      5        g )Nc                     > T $ r!   r   )biggies   r   rG   FTestConstantArray.test_too_big_to_freeze.<locals>.test.<locals>.pyfunc   s    r   r   )r;   copyrm   r   r   
assertLesslenrc   nbytesassertIsrD   assert_equal)r   expectrG   rH   r{   rF   s   `    r   test6TestConstantArray.test_too_big_to_freeze.<locals>.test   s    WWV_FVF^VF^< If%E OOC 2 22 78&--H'CMM&#&F'CJJ##F0VF^VC[9r   i r   CFN)r;   arangereshapeasfortranarrayrandomrm   r   layout)rF   r   nelemc_arrayf_arrays   `    r   test_too_big_to_freeze(TestConstantArray.test_too_big_to_freeze   s    	:, ))E"**51##BII$4$4a!_$EF//5//5WWr   r   N)__name__
__module____qualname____firstlineno____doc__rI   rM   rQ   rT   rW   rZ   r]   rj   ro   rs   r|   r   run_test_in_subprocessr   __static_attributes__r   r   r   r@   r@   G   sY    ?
))))))E$,

" $$% %%r   r@   c                       \ rS rSrS rSrg)TestConstantBytes   c                     [         n[        S5      " U5      n[        R                  R	                  U" 5       U" 5       5        g r   )r>   r   r;   rD   rE   rn   s      r   test_constant_bytes%TestConstantBytes.test_constant_bytes   s-    %R	&!


%%fh8r   r   N)r   r   r   r   r   r   r   r   r   r   r      s    9r   r   __main__)/numpyr;   unittestnumbar   numba.core.errorsr   r   r   
numba.corer   numba.tests.supportr   rz   r   rC   r5   r   r"   r&   r   Tr)   r   int8dtviewr,   r/   r<   float32r2   r8   r   r#   r'   r*   r-   r0   r3   r6   r9   r>   r@   r   r   mainr   r   r   <module>r      s8      )   ( XXb\XXb\YYr]!WZZXXRWW~{+,YYr!&&r*"X ]].bjjA ((A5/1l l^9 9 zMMO r   