
    sh                     v    S r SSKrSSKJrJr  SSKJrJr   " S S\5      r	\
S:X  a  \R                  " 5         gg)z
Test basic language features

    N)cudafloat64)unittestCUDATestCasec                   &    \ rS rSrS rS rS rSrg)TestLang   c                    ^ Sm[         R                  " S5      U4S j5       n[        R                  " [	        T5      5      nUS   " U5        U R                  [        R                  " UT:H  5      5        g )N)      ?g      @g      @void(float64[:])c                 6   > [        T5       H	  u  pX U'   M     g )N)	enumerate)aivtups      u/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_lang.pyfoo$TestLang.test_enumerate.<locals>.foo   s    !#! '       r   )r   jitnpzeroslen
assertTrueall)selfr   r   r   s      @r   test_enumerateTestLang.test_enumerate   s\    	$	%	 
&	 HHSXD	!qCx()r   c                 Z  ^^ SmSm[         R                  " S5      UU4S j5       n[        R                  " S5      nUS   " U5        [        R                  " T5      n[        R                  " T5      nU R                  [        R                  " X#U-   R                  5       :H  5      5        g )N)r         )g      @gffffff@g@r   c                 J   > Sn[        TT5       H  u  p#XU-   -  nM     XS'   g )Nr   )zip)r   cr   jt1t2s       r   r   TestLang.test_zip.<locals>.foo   s,    ABU
 $aDr   r   r   )r   r   r   r   arrayr   r   sum)r   r   r   br'   r)   r*   s        @@r   test_zipTestLang.test_zip   s    	$	%	 
&	 HHQKD	!HHRLHHRLqUKKM123r   c                 ~    [         R                  " S5      S 5       n[        R                  " S5      nUS   " U5        g)a  
Ensure that typing and lowering of CUDA kernel API primitives works in
more than one block. Was originally to ensure that macro expansion works
for more than one block (issue #872), but macro expansion has been
replaced by a "proper" implementation of all kernel API functions.
zvoid(float64[:,:])c                    [        S5       H  n[        R                  R                  nM     [        S5       H  n[        R                  R                  nM     [        R
                  R                  S[        5      nSUWW4'   XRU4   XU4'   g )Nr#   r$   r#   r$   r   )ranger   	threadIdxxysharedr,   r   )aryr   txr(   tysms         r   "cuda_kernel_api_in_multiple_blocksCTestLang.test_issue_872.<locals>.cuda_kernel_api_in_multiple_blocks1   sp    1X^^%% 1X^^%% ""673BBr2vJV*CBKr   r3   )r   r3   N)r   r   r   r   )r   r=   r   s      r   test_issue_872TestLang.test_issue_872)   s=     
&	'	% 
(	% HHV*95a8r    N)__name__
__module____qualname____firstlineno__r    r/   r?   __static_attributes__rA   r   r   r   r      s    
*4"9r   r   __main__)__doc__numpyr   numbar   r   numba.cuda.testingr   r   r   rB   mainrA   r   r   <module>rM      s:   
   519| 19h zMMO r   