
    xKg                         d dl Zd dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZmZ d dlmZ d dlZd Zd Zd	 Zd
 Z G d dee      Z G d dee      Z G d de      Z G d de      Zedk(  r ej2                          yy)    N)SerialMixin)typeofcudanjit)float64)TestCaseMemoryLeakMixin)configc                     | d   S N
    as    `/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_boundscheck.pybasic_array_accessr      s    R5L    c                     | dd df   S r   r   r   s    r   slice_array_accessr      s    RS"W:r   c                 :    t        j                  g d      }| |   S )N         nparrayxr   s     r   fancy_array_accessr       s    
AQ4Kr   c                 >    t        j                  g d      }d| |<   | S )Nr   r   r   r   s     r   fancy_array_modifyr"      s    
AAaDHr   c                       e Zd Z ej                  ddi      d        Z ej                  ddi      d        Z ej                  ddi      d        Zy)TestBoundsCheckNoErrorNUMBA_BOUNDSCHECK envvarsc                 (   | j                  t        j                         t        j                  d      }| j                  t              5  t        |       d d d        t        |      } t        |f      t              } ||       y # 1 sw Y   3xY w)N   
assertIsNoner
   BOUNDSCHECKr   arangeassertRaises
IndexErrorr   r   r   )selfr   atnoboundschecks       r   test_basic_array_boundscheckz3TestBoundsCheckNoError.test_basic_array_boundscheck!   so    &,,-IIaLz* q! +
 AY#bU$67a +*s   
BBc                    | j                  t        j                         t        j                  d      }t        j                  d      }| j                  t              5  t        |       d d d        t        |       t        |      }t        d d  } t         ||            t              } t         ||      d      t              } ||        ||        ||       y # 1 sw Y   yxY wN)r*   r*   )r*      Tboundscheckr,   r
   r-   r   onesr/   r0   r   r   r   r   r1   r   br2   rtr3   r9   s          r   test_slice_array_boundscheckz3TestBoundsCheckNoError.test_slice_array_boundscheck2   s    &,,-GGFOGGGz* q! +
 	1AYQZ$RV%784d2b6t45GHaa 	A# +*s   C##C,c                    | j                  t        j                         t        j                  d      }t        j                  d      }| j                  t              5  t        |       d d d        t        |       t        |      }|j                  d d  } t         ||            t              } t         ||      d      t              } ||        ||        ||       y # 1 sw Y   xY wNr      Tr8   r,   r
   r-   r   r.   r/   r0   r    r   dtyper   r<   s          r   test_fancy_indexing_boundscheckz6TestBoundsCheckNoError.test_fancy_indexing_boundscheckK   s    &,,-IIaLIIaL z* q! + 	1AYXXa[$RV%784d2b6t45GHaa 	A! +*s   C))C2N)__name__
__module____qualname__r   run_test_in_subprocessr4   r?   rE   r   r   r   r$   r$      sx    $X$$.A2-FG H  %X$$.A2-FG H0 %X$$.A2-FG Hr   r$   c                       e Zd Z ej                   ej                          d       ej                  ddi      d               Z	y)TestNoCudaBoundsCheckzNO CUDAr%   1r'   c                    | j                  t        j                         | j                  t              5  t        j                  d      d        }d d d        t        j                  d      d        }t
        j                  d        }t        j                  d      }t        j                  d      }t        j                  s |d   ||       y y # 1 sw Y   xY w)	NTr8   c                       y Nr   r   r   r   funcz<TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.funcl   s    r   Fc                       y rO   r   r   r   r   func3z=TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.func3r   s    r   c                     | d   |d<   y Nr   r   r   s     r   func2z=TestNoCudaBoundsCheck.test_no_cuda_boundscheck.<locals>.func2v   s    Q4AaDr   )r   )r   r   )
assertTruer
   r-   r/   NotImplementedErrorr   jitr   r;   zerosENABLE_CUDASIM)r1   rP   rR   rU   r   r   s         r   test_no_cuda_boundscheckz.TestNoCudaBoundsCheck.test_no_cuda_boundscheckg   s     	**+23XX$' ( 4 
e	$	 
%	 
	 
	 GGDMHHTN $$E$K1 %' 43s   CCN)
rF   rG   rH   unittestskipIfr   is_availabler   rI   r[   r   r   r   rK   rK   f   sL    X__***,,i8$X$$.A3-GH I 9r   rK   c                       e Zd Z ej                  ddi      d        Z ej                  ddi      d        Z ej                  ddi      d        Z ej                  ddi      d        Zy)	TestBoundsCheckErrorr%   r&   r'   c                    | j                  t        j                         t        j                  d      }| j                  t              5  t        |       d d d        t        |      } t        |fd      t              }| j                  t              5   ||       d d d        y # 1 sw Y   SxY w# 1 sw Y   y xY w)Nr*   Tr8   r+   )r1   r   r2   r9   s       r   r4   z1TestBoundsCheckError.test_basic_array_boundscheck   s    &,,-IIaLz* q! +
 AY3dB5d34FGz*N +* +* +*s   
B(	B4(B14B=c                    | j                  t        j                         t        j                  d      }t        j                  d      }| j                  t              5  t        |       d d d        t        |       t        |      }t        d d  } t         ||      d      t              }| j                  t              5   ||       d d d        y # 1 sw Y   lxY w# 1 sw Y   y xY wr6   r:   r1   r   r=   r2   r>   r9   s         r   r?   z1TestBoundsCheckError.test_slice_array_boundscheck   s    &,,-GGFOGGGz* q! +
 	1AYQZ4d2b6t45GHz*N +* +* +*s   C	C"C"C+c                    | j                  t        j                         t        j                  d      }t        j                  d      }| j                  t              5  t        |       d d d        t        |       t        |      }|j                  d d  } t         ||      d      t              }| j                  t              5   ||       d d d        y # 1 sw Y   rxY w# 1 sw Y   y xY wrA   rC   rc   s         r   rE   z4TestBoundsCheckError.test_fancy_indexing_boundscheck       &,,-IIaLIIaL z* q! + 	1AYXXa[4d2b6t45GHz*N +* +* +*   C
	C(C%(C1c                    | j                  t        j                         t        j                  d      }t        j                  d      }| j                  t              5  t        |       d d d        t        |       t        |      }|j                  d d  } t         ||      d      t              }| j                  t              5   ||       d d d        y # 1 sw Y   rxY w# 1 sw Y   y xY wrA   )r,   r
   r-   r   r.   r/   r0   r"   r   rD   r   rc   s         r   1test_fancy_indexing_with_modification_boundscheckzFTestBoundsCheckError.test_fancy_indexing_with_modification_boundscheck   re   rf   N)	rF   rG   rH   r   rI   r4   r?   rE   rh   r   r   r   r`   r`      s    $X$$.A2-FG H  %X$$.A2-FG H& %X$$.A2-FG H( %X$$.A2-FG Hr   r`   c                       e Zd Zd Z ej
                  ddi      d        Z ej
                  ddi      d        Z ej
                  ddi      d	        Zy
)TestBoundsEnvironmentVariablec                     t         d        }t        d      d        }t        d      d        }|| _        || _        || _        y )Nc                     | d   S rT   r   r   s    r   defaultz4TestBoundsEnvironmentVariable.setUp.<locals>.default       Q4Kr   Fr8   c                     | d   S rT   r   rm   s    r   offz0TestBoundsEnvironmentVariable.setUp.<locals>.off   ro   r   Tc                     | d   S rT   r   rm   s    r   onz/TestBoundsEnvironmentVariable.setUp.<locals>.on   ro   r   )r   rn   rq   rs   )r1   rn   rq   rs   s       r   setUpz#TestBoundsEnvironmentVariable.setUp   s]    		 
	 
%	 	 
!	 
$		 
 	 r   r%   r&   r'   c                 (   | j                  t        j                         t        j                  dg      }| j                  |       | j                  |       | j                  t              5  | j                  |       d d d        y # 1 sw Y   y xY wrT   )
r,   r
   r-   r   r   rn   rq   r/   r0   rs   r1   r   s     r   test_boundscheck_unsetz4TestBoundsEnvironmentVariable.test_boundscheck_unset   sb    &,,-HHaSM 	Qz*GGAJ +**s   -BBrL   c                 (   | j                  t        j                         t        j                  dg      }| j                  t              5  | j                  |       | j                  |       | j                  |       d d d        y # 1 sw Y   y xY wrT   )
rV   r
   r-   r   r   r/   r0   rn   rq   rs   rv   s     r   test_boundscheck_enabledz6TestBoundsEnvironmentVariable.test_boundscheck_enabled   s^    **+HHaSMz*LLOHHQKGGAJ +**s   4BB0c                     | j                  t        j                         t        j                  dg      }| j                  |       | j                  |       | j                  |       y rT   )assertFalser
   r-   r   r   rn   rq   rs   rv   s     r   test_boundscheck_disabledz7TestBoundsEnvironmentVariable.test_boundscheck_disabled   sH    ++,HHaSM 	Q
r   N)	rF   rG   rH   rt   r   rI   rw   ry   r}   r   r   r   rj   rj      s    " %X$$.A2-FG
 H
 %X$$.A3-GH I %X$$.A3-GH Ir   rj   __main__)numpyr   numba.cuda.testingr   numbar   r   r   numba.core.typesr   numba.tests.supportr   r	   
numba.corer
   r\   r   r   r    r"   r$   rK   r`   rj   rF   mainr   r   r   <module>r      s     * $ $ $ 9  

D_h DNK <N8 Nb3H 3l zHMMO r   