
    sh                         S SK rS SKJr  S SKJrJrJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKrS rS rS	 rS
 r " S S\\5      r " S S\\5      r " S S\5      r " S S\5      r\S:X  a  \R2                  " 5         gg)    N)SerialMixin)typeofcudanjit)float64)TestCaseMemoryLeakMixin)configc                     U S   $ N
    as    p/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_boundscheck.pybasic_array_accessr      s    R5L    c                     U SS 2S4   $ r   r   r   s    r   slice_array_accessr      s    RS"W:r   c                 :    [         R                  " / SQ5      nX   $ )N         nparrayxr   s     r   fancy_array_accessr       s    
A4Kr   c                 >    [         R                  " / SQ5      nSX'   U $ )Nr   r   r   r   s     r   fancy_array_modifyr"      s    
AADHr   c                       \ rS rSr\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       rSr	g	)
TestBoundsCheckNoError   NUMBA_BOUNDSCHECK envvarsc                 4   U R                  [        R                  5        [        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5      n[        U45      " [        5      nU" U5        g ! , (       d  f       N8= f)N   
assertIsNoner
   BOUNDSCHECKr   arangeassertRaises
IndexErrorr   r   r   )selfr   atnoboundschecks       r   test_basic_array_boundscheck3TestBoundsCheckNoError.test_basic_array_boundscheck!   sm    &,,-IIaLz* q! +
 AYbU$67a +*s   B		
Bc                    U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      n[        S S  n[        U" U5      5      " [        5      n[        U" U5      SS9" [        5      nU" U5        U" U5        U" U5        g ! , (       d  f       N{= fN)r+   r+   )r+      Tboundscheckr-   r
   r.   r   onesr0   r1   r   r   r   r   r2   r   br3   rtr4   r;   s          r   test_slice_array_boundscheck3TestBoundsCheckNoError.test_slice_array_boundscheck2   s    &,,-GGFOGGGz* q! +
 	1AYQZRV%782b6t45GHaa 	A# +*s   !C""
C0c                    U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      nUR                  S S  n[        U" U5      5      " [        5      n[        U" U5      SS9" [        5      nU" U5        U" U5        U" U5        g ! , (       d  f       N= fNr      Tr:   r-   r
   r.   r   r/   r0   r1   r    r   dtyper   r>   s          r   test_fancy_indexing_boundscheck6TestBoundsCheckNoError.test_fancy_indexing_boundscheckK   s    &,,-IIaLIIaL z* q! + 	1AYXXa[RV%782b6t45GHaa 	A! +*s   !C((
C6r   N)
__name__
__module____qualname____firstlineno__r   run_test_in_subprocessr5   rA   rH   __static_attributes__r   r   r   r$   r$      sr    $$.A2-FG H  $$.A2-FG H0 $$.A2-FG Hr   r$   c                       \ rS rSr\R
                  " \R                  " 5       (       + S5      \R                  " SS0S9S 5       5       r
Srg)	TestNoCudaBoundsCheckf   zNO CUDAr&   1r(   c                    U R                  [        R                  5        U R                  [        5         [
        R                  " SS9S 5       nS S S 5        [
        R                  " SS9S 5       n[
        R                  S 5       n[        R                  " S5      n[        R                  " S5      n[        R                  (       d  US   " XT5        g g ! , (       d  f       N= f)	NTr:   c                      g Nr   r   r   r   func<TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.funcl   s    r   Fc                      g rV   r   r   r   r   func3=TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.func3r   s    r   c                     U S   US'   g Nr   r   r   s     r   func2=TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.func2v   s    Q4AaDr   )r   )r   r   )
assertTruer
   r.   r0   NotImplementedErrorr   jitr   r=   zerosENABLE_CUDASIM)r2   rW   rZ   r^   r   r   s         r   test_no_cuda_boundscheck.TestNoCudaBoundsCheck.test_no_cuda_boundscheckg   s     	**+23XX$' ( 4 
e	$	 
%	 
	 
	 GGDMHHTN $$$K %' 43s   C
C$r   N)rJ   rK   rL   rM   unittestskipIfr   is_availabler   rN   re   rO   r   r   r   rQ   rQ   f   sE    __**,,i8$$.A3-GH I 9r   rQ   c                       \ rS rSr\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       r\R
                  " SS0S9S 5       r	S	r
g
)TestBoundsCheckError   r&   r'   r(   c                    U R                  [        R                  5        [        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5      n[        U4SS9" [        5      nU R                  [        5         U" U5        S S S 5        g ! , (       d  f       NU= f! , (       d  f       g = f)Nr+   Tr:   r,   )r2   r   r3   r;   s       r   r5   1TestBoundsCheckError.test_basic_array_boundscheck   s    &,,-IIaLz* q! +
 AYB5d34FGz*N +* +* +*s   B&	B7&
B47
Cc                    U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      n[        S S  n[        U" U5      SS9" [        5      nU R                  [        5         U" U5        S S S 5        g ! , (       d  f       Nn= f! , (       d  f       g = fr8   r<   r2   r   r?   r3   r@   r;   s         r   rA   1TestBoundsCheckError.test_slice_array_boundscheck   s    &,,-GGFOGGGz* q! +
 	1AYQZ2b6t45GHz*N +* +* +*s   !C	C&
C#&
C4c                    U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      nUR                  S S  n[        U" U5      SS9" [        5      nU R                  [        5         U" U5        S S S 5        g ! , (       d  f       Nt= f! , (       d  f       g = frD   rF   rp   s         r   rH   4TestBoundsCheckError.test_fancy_indexing_boundscheck       &,,-IIaLIIaL z* q! + 	1AYXXa[2b6t45GHz*N +* +* +*   !C		C,
C),
C:c                    U R                  [        R                  5        [        R                  " S5      n[        R                  " S5      nU R                  [        5         [        U5        S S S 5        [        U5        [        U5      nUR                  S S  n[        U" U5      SS9" [        5      nU R                  [        5         U" U5        S S S 5        g ! , (       d  f       Nt= f! , (       d  f       g = frD   )r-   r
   r.   r   r/   r0   r1   r"   r   rG   r   rp   s         r   1test_fancy_indexing_with_modification_boundscheckFTestBoundsCheckError.test_fancy_indexing_with_modification_boundscheck   rt   ru   r   N)rJ   rK   rL   rM   r   rN   r5   rA   rH   rw   rO   r   r   r   rk   rk      s    $$.A2-FG H  $$.A2-FG H& $$.A2-FG H( $$.A2-FG Hr   rk   c                       \ rS rSrS r\R                  " SS0S9S 5       r\R                  " SS0S9S 5       r\R                  " SS	0S9S
 5       r	Sr
g)TestBoundsEnvironmentVariable   c                 |    [         S 5       n[        SS9S 5       n[        SS9S 5       nXl        X l        X0l        g )Nc                     U S   $ r]   r   r   s    r   default4TestBoundsEnvironmentVariable.setUp.<locals>.default       Q4Kr   Fr:   c                     U S   $ r]   r   r~   s    r   off0TestBoundsEnvironmentVariable.setUp.<locals>.off   r   r   Tc                     U S   $ r]   r   r~   s    r   on/TestBoundsEnvironmentVariable.setUp.<locals>.on   r   r   )r   r   r   r   )r2   r   r   r   s       r   setUp#TestBoundsEnvironmentVariable.setUp   sW    		 
	 
%	 	 
!	 
$		 
 	 r   r&   r'   r(   c                 4   U R                  [        R                  5        [        R                  " S/5      nU R                  U5        U R                  U5        U R                  [        5         U R                  U5        S S S 5        g ! , (       d  f       g = fr]   )
r-   r
   r.   r   r   r   r   r0   r1   r   r2   r   s     r   test_boundscheck_unset4TestBoundsEnvironmentVariable.test_boundscheck_unset   sb    &,,-HHaSM 	Qz*GGAJ +**s   .B		
BrS   c                 4   U R                  [        R                  5        [        R                  " S/5      nU R                  [        5         U R                  U5        U R                  U5        U R                  U5        S S S 5        g ! , (       d  f       g = fr]   )
r`   r
   r.   r   r   r0   r1   r   r   r   r   s     r   test_boundscheck_enabled6TestBoundsEnvironmentVariable.test_boundscheck_enabled   s^    **+HHaSMz*LLOHHQKGGAJ +**s   4B		
B0c                     U R                  [        R                  5        [        R                  " S/5      nU R                  U5        U R                  U5        U R                  U5        g r]   )assertFalser
   r.   r   r   r   r   r   r   s     r   test_boundscheck_disabled7TestBoundsEnvironmentVariable.test_boundscheck_disabled   sH    ++,HHaSM 	Q
r   )r   r   r   N)rJ   rK   rL   rM   r   r   rN   r   r   r   rO   r   r   r   rz   rz      sy    " $$.A2-FG
 H
 $$.A3-GH I $$.A3-GH Ir   rz   __main__)numpyr   numba.cuda.testingr   numbar   r   r   numba.core.typesr   numba.tests.supportr   r	   
numba.corer
   rg   r   r   r    r"   r$   rQ   rk   rz   rJ   mainr   r   r   <module>r      s     * $ $ $ 9  

D_h DNK <N8 Nb3H 3l zMMO r   