
    `iT                         d dl Zd dlmZmZ d dlmZmZmZ d Z	d Z
 G d de          Zedk    r ej                     dS dS )	    N)cudaerrors)unittestCUDATestCaseskip_on_cudasimc                 V    t          |j        d                   D ]}| |         ||<   d S Nr   )rangeshapeinpoutis      x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_slicing.pyfoor      s8    39Q<    QA     c                 v    t          j        d          }t          | |d d f         ||d d f                    d S )N   )r   gridcufoor   s      r   copyr      s=    	!A	#ad)SAAAYr   c                   H    e Zd Zd Zd Zd Z ed          d             ZdS )TestCudaSlicingc                 F    t          j        dd          t                    a t          j        d          t                    }t          j        dt
          j                                      dd          }t          j	        |          } |d         ||           d S )	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_argz!TestCudaSlicing.test_slice_as_arg   s    A3DAAA#FF9899$??i28,,,44R<<mC  uc3r   c                     d}t          |          }t          j        t          |                    }t          j        |          |d d <   d S r	   )r
   r   device_arraylen	to_device)r%   Naarrs       r   test_assign_empty_slicez'TestCudaSlicing.test_assign_empty_slice   sE     !HHA''""AAAr   c                 @    t          j        d          d             }d S )Nzvoid(f4[:, :, :], i4, i4)c                     d| ||f<   d S )N)r   r   r    )tmpr-   bs      r   check_sequence_setslicezqTestCudaSlicing.test_array_slice_assignment_from_sequence_error_handling_codegen.<locals>.check_sequence_setslice;   s    C1IIIr   )r   r   )r%   r5   s     r   @test_array_slice_assignment_from_sequence_error_handling_codegenzPTestCudaSlicing.test_array_slice_assignment_from_sequence_error_handling_codegen7   s3     
-	.	.	  	  
/	.	  	  	 r   z$No NRT codegen in the CUDA simulatorc                    |                      t          j                  5 }t          j        d          d             }d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )Nz void(f4[:, :, :], f4[:], i4, i4)c                     || ||f<   d S )Nr2   )r3   valuer-   r4   s       r   check_array_setslicezkTestCudaSlicing.test_array_slice_assignment_from_array_error_handling_codegen.<locals>.check_array_setsliceD   s    !AqD			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_codegenzMTestCudaSlicing.test_array_slice_assignment_from_array_error_handling_codegen?   s     v788 	"FX899" " :9"	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
 -c3v/0011111s   A

AAN)__name__
__module____qualname__r'   r/   r6   r   rB   r2   r   r   r   r      sh             # # #8      _;<<	2 	2 =<	2 	2 	2r   r   __main__)numpyr    numbar   r   numba.cuda.testingr   r   r   r   r   r   rC   mainr2   r   r   <module>rK      s                F F F F F F F F F F  
     
92 92 92 92 92l 92 92 92x zHMOOOOO r   