
    shT                         S SK rS SKJrJr  S SKJrJrJr  S r	S r
 " S S\5      r\S:X  a  \R                  " 5         gg)	    N)cudaerrors)unittestCUDATestCaseskip_on_cudasimc                 N    [        UR                  S   5       H	  nX   X'   M     g Nr   )rangeshapeinpoutis      x/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_slicing.pyfoor      s"    399Q<  !    c                 `    [         R                  " S5      n[        XS S 24   XS S 24   5        g )N   )r   gridcufoor   s      r   copyr      s%    		!A	#d)SAYr   c                   B    \ rS rSrS rS rS r\" S5      S 5       rSr	g)	TestCudaSlicing   c                 *   [         R                  " SSS9" [        5      q[         R                  " S5      " [        5      n[
        R                  " S[
        R                  S9R                  SS5      n[
        R                  " U5      nUS   " X#5        g )	Nzvoid(int32[:], int32[:])T)devicezvoid(int32[:,:], int32[:,:])d   )dtype
   )r   r   )
r   jitr   r   r   nparangeint32reshape
zeros_like)selfcucopyr   r   s       r   test_slice_as_arg!TestCudaSlicing.test_slice_as_arg   sg    3DA#F89$?ii288,44R<mmC ucr   c                     Sn[        U5      n[        R                  " [        U5      5      n[        R                  " U5      US S & g r	   )r
   r   device_arraylen	to_device)r&   Naarrs       r   test_assign_empty_slice'TestCudaSlicing.test_assign_empty_slice   s8     !HA'"Ar   c                 <    [         R                  " S5      S 5       ng )Nzvoid(f4[:, :, :], i4, i4)c                     SXU4'   g )N)r   r   r    )tmpr/   bs      r   check_sequence_setsliceqTestCudaSlicing.test_array_slice_assignment_from_sequence_error_handling_codegen.<locals>.check_sequence_setslice;   s    C1Ir   )r   r    )r&   r8   s     r   @test_array_slice_assignment_from_sequence_error_handling_codegenPTestCudaSlicing.test_array_slice_assignment_from_sequence_error_handling_codegen7   s      
-	.	  
/	 r   z$No NRT codegen in the CUDA simulatorc                     U R                  [        R                  5       n[        R                  " S5      S 5       nS S S 5        SnU R                  U[        WR                  5      5        g ! , (       d  f       N6= f)Nz void(f4[:, :, :], f4[:], i4, i4)c                     XX#4'   g )Nr5   )r6   valuer/   r7   s       r   check_array_setslicekTestCudaSlicing.test_array_slice_assignment_from_array_error_handling_codegen.<locals>.check_array_setsliceD   s    !AD	r   zNRT required but not enabled)assertRaisesr   NumbaRuntimeErrorr   r    assertInstr	exception)r&   raisesr?   msgs       r   =test_array_slice_assignment_from_array_error_handling_codegenMTestCudaSlicing.test_array_slice_assignment_from_array_error_handling_codegen?   sd     v778FXX89" :" 9
 -c3v//01 98s   A--
A;r5   N)
__name__
__module____qualname____firstlineno__r(   r1   r:   r   rH   __static_attributes__r5   r   r   r   r      s+     #8  ;<	2 =	2r   r   __main__)numpyr!   numbar   r   numba.cuda.testingr   r   r   r   r   r   rJ   mainr5   r   r   <module>rT      s@      F F
 
92l 92x zMMO r   