
    %YHhT                         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                          yy)	    N)cudaerrors)unittestCUDATestCaseskip_on_cudasimc                 N    t        |j                  d         D ]
  }| |   ||<    y Nr   )rangeshapeinpoutis      ]/var/www/html/planif/env/lib/python3.12/site-packages/numba/cuda/tests/cudapy/test_slicing.pyfoor      s+    399Q<  QA    c                 b    t        j                  d      }t        | |d d f   ||d d f          y )N   )r   gridcufoor   s      r   copyr      s)    		!A	#ad)SAYr   c                   :    e Zd Zd Zd Zd Z ed      d        Zy)TestCudaSlicingc                 0    t        j                  dd      t              a t        j                  d      t              }t        j                  dt
        j                        j                  dd      }t        j                  |      } |d   ||       y )	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   so    A3DA#F989$?ii288,44R<mmC uc3r   c                     d}t        |      }t        j                  t        |            }t        j                  |      |d d  y r	   )r
   r   device_arraylen	to_device)r%   Naarrs       r   test_assign_empty_slicez'TestCudaSlicing.test_assign_empty_slice   s8     !HA'"Ar   c                 :    t        j                  d      d        }y )Nzvoid(f4[:, :, :], i4, i4)c                     d| ||f<   y )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Ir   )r   r   )r%   r5   s     r   @test_array_slice_assignment_from_sequence_error_handling_codegenzPTestCudaSlicing.test_array_slice_assignment_from_sequence_error_handling_codegen7   s      
-	.	  
/	 r   z$No NRT codegen in the CUDA simulatorc                     | j                  t        j                        5 }t        j                  d      d        }d d d        d}| j                  |t        j                               y # 1 sw Y   1xY w)Nz void(f4[:, :, :], f4[:], i4, i4)c                     || ||f<   y )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?   sk     v778 	"FXX89" :"	"
 -c3v//01	" 	"s   A,,A5N)__name__
__module____qualname__r'   r/   r6   r   rB   r2   r   r   r   r      s+     #8  ;<	2 =	2r   r   __main__)numpyr    numbar   r   numba.cuda.testingr   r   r   r   r   r   rC   mainr2   r   r   <module>rK      sB      F F
 
92l 92x zHMMO r   