
    `iO                         d dl Z d dlZd dlmZ d dlmZ d dlmZm	Z	 d dlm
Z
  G d de	          Z G d d	e	          Z G d
 de	          Zedk    r ej                     dS dS )    N)devicearray)cuda)unittestCUDATestCase)skip_on_cudasimc                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Z ed          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z! ed           d!             Z"d" Z# ed#          d$             Z$ ed#          d%             Z% ed#          d&             Z& ed#          d'             Z' ed#          d(             Z( ed#          d)             Z) ed#          d*             Z* ed#          d+             Z+ ed#          d,             Z,d- Z- ed           d.             Z.d/S )0TestCudaNDArrayc                 ~   t          j        d          }t          j        |           t	          j        d          }t          j        |          }t          j        |           t	          j        d          }t          j        |          }|                     |j	        d           t          j        |           d S )Nd   )shapegX9v?r   )
r   device_arrayr   verify_cuda_ndarray_interfacenpempty	to_deviceasarrayassertEqualndim)selfdaryarys      ~/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/numba/cuda/tests/cudadrv/test_cuda_ndarray.pytest_device_array_interfacez+TestCudaNDArray.test_device_array_interface
   s     s+++1$777hsmm~c""1$777j~c""A&&&1$77777    c                 ,   t          j        dt           j                  }d|j        _        |                     |j        j                   t          j        |          }|                                }t           j	        
                    ||           d S )Nr   dtypeF)r   arangefloat32flags	writeableassertFalser   r   copy_to_hosttestingassert_array_equal)r   r   r   retrs       r   test_device_array_from_readonlyz/TestCudaNDArray.test_device_array_from_readonly   sy    i2:...#	,---~c""  ""

%%dC00000r   c                     t          j        dd          }|                     |j        t	          j        d                     d S )N)r   f4)r   r   )r   r   r   r   r   )r   r   s     r   test_devicearray_dtypez&TestCudaNDArray.test_devicearray_dtype!   s=     vT:::RXd^^44444r   c                 r    t          j        dt           j                  }t          j        |d           d S )Nr   r   F)copy)r   r   r   r   r   )r   arrays     r   test_devicearray_no_copyz(TestCudaNDArray.test_devicearray_no_copy%   s3    	#RZ000u5))))))r   c                     t          j        d                              ddd          }t          j        |          }|                     |j        |j                   |                     |j        dd          |j        dd                     d S )N               )r   r   reshaper   r   r   r   r   r   r   s      r   test_devicearray_shapez&TestCudaNDArray.test_devicearray_shape)   s|    i	""**1a33~c""DJ///122
12277777r   c                    t          j        dt           j                  }|                                }t	          j        |          }d|d d <   |                    |           t           j                            ||           d S )Nr   r   r   	r   r   int32r,   r   r   r#   r$   r%   )r   r-   originalgpumems       r   test_devicearrayz TestCudaNDArray.test_devicearray/   ss    	#RX...::<<&&aaaE"""

%%eX66666r   c                 Z   t          j                    }|                                5  t          j        dt          j        |          }|                     |                    |          j        |           |                     |j        |           d d d            d S # 1 swxY w Y   d S )N)r2   r2   )r   stream)r   r?   auto_synchronizer   r   float64r   bind)r   r?   arrs      r   test_stream_bindz TestCudaNDArray.test_stream_bind8   s    $$&& 	1 	1#j  C SXXf--4f===SZ000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   A+B  B$'B$c                     t          j        d          }t          j        d          }|                     t          |          t          |                     d S )N)r2   r2   r   r   r   r   r   lenr6   s      r   test_len_1dzTestCudaNDArray.test_len_1dB   sG    htnn ##S3t99-----r   c                     t          j        d          }t          j        d          }|                     t          |          t          |                     d S )N)r2      rF   r6   s      r   test_len_2dzTestCudaNDArray.test_len_2dG   sI    hv ((S3t99-----r   c                     t          j        d          }t          j        d          }|                     t          |          t          |                     d S )N)r2   rJ      rF   r6   s      r   test_len_3dzTestCudaNDArray.test_len_3dL   sI    hy!! ++S3t99-----r   c                 
   d}t          j        |t           j                  }|                                }t	          j        |          }|                    |dz            \  }}d|d d <   |                     t          j        |dk                         |	                    ||dz  d                     |	                    |d |dz                      |                     t          j        ||k                         d S )Nr   r   r1   r   )
r   r   r:   r,   r   r   split
assertTrueallr#   )r   Nr-   r;   r<   leftrights          r   test_devicearray_partitionz*TestCudaNDArray.test_devicearray_partitionQ   s    	!28,,,::<<&&ll16**eaaauz**+++5a>***%a.)))u01122222r   c                 <   d}t          j        |t           j                  }|                                }t	          j        |          }t	          j        |dz  |           |                    |           t           j                            ||dz             d S )Nr   r   r1   )tor9   )r   rS   r-   r;   r<   s        r   test_devicearray_replacez(TestCudaNDArray.test_devicearray_replacea   s    	!28,,,::<<&&uqyV,,,,E"""

%%eX\:::::r   zThis works in the simulatorc                 |   t          j        t          j        t          j        d                                        ddd                    }|                     t                    5 }t          j        |           d d d            n# 1 swxY w Y   | 	                    dt          |j                             d S )N   r2   r3   r4   z2transposing a non-2D DeviceNDArray isn't supported)r   r   r   r-   r   r5   assertRaisesNotImplementedError	transposer   str	exceptionr   r<   es      r   #test_devicearray_transpose_wrongdimz3TestCudaNDArray.test_devicearray_transpose_wrongdimj   s    2 7 7 ? ?1a H HII233 	!qL   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	@	 	 	 	 	s   (B		BBc                 F   t          j        t          j        d                                        ddd          }t          j        t          j        |          d                                          }|                     t          j	        ||k                         d S )Nr0   r2   r3   r1   )r   r4   r1   axes)
r   r-   r   r5   r^   r   r   r#   rQ   rR   r   r;   r-   s      r   #test_devicearray_transpose_identityz3TestCudaNDArray.test_devicearray_transpose_identityu   s    8BIbMM**221a;;T^H55"+- - --9\^^ 	u01122222r   c                    t          j        t          j        t          j        d                                        dd                    }|                     t                    5 }t          j        |d           d d d            n# 1 swxY w Y   | 	                    t          |j                  ddg           d S )	Nr[   r2   r3   )r   r   re   zinvalid axes list (0, 0)zrepeated axis in transpose	containerr   r   r   r-   r   r5   r\   
ValueErrorr^   assertInr_   r`   ra   s      r   )test_devicearray_transpose_duplicatedaxisz9TestCudaNDArray.test_devicearray_transpose_duplicatedaxis|   s    2 7 7 ? ?1 E EFFz** 	.aLf----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	*, 	 	 	 	 	 	   'B

BBc                    t          j        t          j        t          j        d                                        dd                    }|                     t                    5 }t          j        |d           d d d            n# 1 swxY w Y   | 	                    t          |j                  g d           d S )Nr[   r2   r3   )r   r1   re   )zinvalid axes list (0, 2)zinvalid axis for this arrayz0axis 2 is out of bounds for array of dimension 2rj   rl   ra   s      r   $test_devicearray_transpose_wrongaxisz4TestCudaNDArray.test_devicearray_transpose_wrongaxis   s    2 7 7 ? ?1 E EFFz** 	.aLf----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	   	 	 	 	 	 	rp   c                    t          j        t          j        d          d                              dd          }t	          j        |          }dD ]}|                     |          5  t           j                            |	                    |          
                                |	                    |                     d d d            n# 1 swxY w Y   d S )Nr[   i2r   r2   r3   )i4u4i8f8)r   r-   r   r5   r   r   subTestr$   r%   viewr#   )r   r;   r-   r   s       r   test_devicearray_view_okz(TestCudaNDArray.test_devicearray_view_ok   s   8BIbMM666>>q!DDx((- 	 	EE**  
--JJu%%2244MM%((                	 	s   +ACC	C	c                    t          j        t          j        d          d                              dd          }t	          j        |          d d d d df         }|d d d d df         }t           j                            |                    d          	                                |                    d                     d S )N    rt   r   r3      r1   u2)
r   r-   r   r5   r   r   r$   r%   rz   r#   rg   s      r   %test_devicearray_view_ok_not_c_contigz5TestCudaNDArray.test_devicearray_view_ok_not_c_contig   s    8BIbMM666>>q!DDx((CCaC0AAAsssF#

%%JJt))++MM$	
 	
 	
 	
 	
r   c                    t          j        t          j        d          d                              dd          }t	          j        |          d d d d df         }|                     t                    5 }|                    d           d d d            n# 1 swxY w Y   t          |j
                  }|                     d|           d	|v }d
|v }|                     |p|d           d S )Nr}   rt   r   r3   r~   r1   ru   z)To change to a dtype of a different size,zthe array must be C-contiguousz the last axis must be contiguousz&Expected message to mention contiguity)r   r-   r   r5   r   r   r\   rm   rz   r_   r`   rn   rQ   )r   r;   r-   rb   msgcontiguous_pre_np123contiguous_post_np123s          r   &test_devicearray_view_bad_not_c_contigz6TestCudaNDArray.test_devicearray_view_bad_not_c_contig   s5   8BIbMM666>>q!DDx((CCaC0z** 	aJJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !+A3GGG?3F Bc I,E0E@	B 	B 	B 	B 	Bs   8BB!Bc                    t          j        t          j        d          d                              dd          }t	          j        |          }|                     t                    5 }|                    d           d d d            n# 1 swxY w Y   | 	                    dt          |j                             d S )Nr[   rt   r   r3   r2   ru   zuWhen changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.)r   r-   r   r5   r   r   r\   rm   rz   r   r_   r`   )r   r;   r-   rb   s       r   "test_devicearray_view_bad_itemsizez2TestCudaNDArray.test_devicearray_view_bad_itemsize   s    8BIbMM666>>q!DDx((z** 	aJJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	. 		 	 	 	 	s   +BBBc                 J   t          j        t          j        d                                        dd          }t          j        t          j        |                                                    }|                     t          j	        ||j
        k                         d S Nr[   r2   r3   )r   r-   r   r5   r^   r   r   r#   rQ   rR   Trg   s      r   test_devicearray_transpose_okz-TestCudaNDArray.test_devicearray_transpose_ok   sw    8BIbMM**221a88T^H5566CCEEu
23344444r   c                 0   t          j        t          j        d                                        dd          }t	          j        |          j                                        }|                     t          j	        ||j        k                         d S r   )
r   r-   r   r5   r   r   r   r#   rQ   rR   rg   s      r   test_devicearray_transpose_Tz,TestCudaNDArray.test_devicearray_transpose_T   sp    8BIbMM**221a88x((*7799u
23344444r   c                    t          j        d                              ddd          }t          j        dd          }t	          j        |          }||d<   |                     t                    5 }|d                             |           d d d            n# 1 swxY w Y   | 	                    t          j        t          |j                             d S )N   rJ   Forder)rJ   )
fill_valuer   r1   )r   r   r5   fullr   r   r\   rm   copy_to_devicer   r   errmsg_contiguous_bufferr_   r`   )r   asdrb   s        r   !test_devicearray_contiguous_slicez1TestCudaNDArray.test_devicearray_contiguous_slice   s    IbMM!!!Qc!22Gq---N1! z** 	#aaD"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#0	 	 	 	 	s   4BB #B c                 >   |                      |j        j                   |                      |j        j                   ||f||f||f||ffD ]\  }}|j        j        rdndd|j        j        rdnd}t	          j        |          }|                    |           |                      t          j        |	                                |k              |           |                      t          j        |	                                |k              |           dS )z-
        Checks host->device memcpys
        Cr   z => )r   N)
rQ   r    c_contiguousf_contiguousr   r   r   r   rR   r#   )r   a_ca_fr;   r,   r   r   s          r   &_test_devicearray_contiguous_host_copyz6TestCudaNDArray._test_devicearray_contiguous_host_copy   s-    		.///	./// #J#J#J#J	
 	F 	FNHd  ~2;;;z.7C7C
 x((AT"""OOBF1>>#3#3s#:;;OEEEOOBF1>>#3#3s#:;;OEEEE	F 	Fr   c                     t          j        d                              ddd          }t          j        |d          }|                     ||           d S )N}   rJ   r   r   )r   r   r5   r-   r   r   r   r   s      r   (test_devicearray_contiguous_copy_host_3dz8TestCudaNDArray.test_devicearray_contiguous_copy_host_3d   sS    i	""**1a33hs#&&&33C=====r   c                     t          j        d          }t          j        |d          }|                     ||           d S )NrJ   r   r   )r   r   r-   r   r   s      r   (test_devicearray_contiguous_copy_host_1dz8TestCudaNDArray.test_devicearray_contiguous_copy_host_1d   s?    illhs#&&&33C=====r   c                 \   t          j        d                              ddd          }t          j        |d          }|                     |j        j                   |                     |j        j                   t          j	        |          }| 
                    t                    5 }|                    t          j	        |                     d d d            n# 1 swxY w Y   |                     d                    |j        |j                  t!          |j                             |                    t          j	        |                     |                     t          j        |                                |k                         t          j	        |          }| 
                    t                    5 }|                    t          j	        |                     d d d            n# 1 swxY w Y   |                     d                    |j        |j                  t!          |j                             |                    t          j	        |                     |                     t          j        |                                |k                         d S )Nr   rJ   r   r   zincompatible strides: {} vs. {})r   r   r5   r-   rQ   r    r   r   r   r   r\   rm   r   r   formatstridesr_   r`   rR   r#   )r   r   r   r   rb   s        r   'test_devicearray_contiguous_copy_devicez7TestCudaNDArray.test_devicearray_contiguous_copy_device  s   i	""**1a33hs#&&&	.///	.///N3z** 	2aT^C00111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2-44S[#+NN	 	 	 	
,,---q~~//3677888N3z** 	2aT^C00111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2-44S[#+NN	 	 	 	
,,---q~~//367788888s$   ,(C  C$'C$(G77G;>G;c                 0   d}d}t          j        |          }t          j        |                              |d          }t          j        |                              |d          }t	          t          |                    D ]}t          d           f|z  t           j        fz   }|d |         |fz   ||d          z   }t          j        ||         |          }	t          j        ||         |          }
t          j
        |	          }t          j
        |
          }t           j                            |                                |	           t           j                            |                                |
           |                    |
           |                    |	           t           j                            |                                |
           t           j                            |                                |	           d S )Nr3   )r1   r2   r   r   r   )r   prodr   r5   rangerG   slicenewaxisbroadcast_tor   r   r$   r%   r#   r   )r   	broadsize	coreshapecoresizecore_ccore_fdimnewindex
broadshapebroad_cbroad_fdbroad_cdbroad_fs                r   $test_devicearray_broadcast_host_copyz4TestCudaNDArray.test_devicearray_broadcast_host_copy  s   		79%%8$$,,Yc,BB8$$,,Yc,BBY(( 	L 	LCd~+rzm;H"4C4I<7)CDD/IJofX&6
CCGofX&6
CCG~g..H~g..HJ))(*?*?*A*A7KKKJ))(*?*?*A*A7KKK##G,,,##G,,,J))(*?*?*A*A7KKKJ))(*?*?*A*A7KKKK	L 	Lr   c                    t          j        d          }t          j        |          }t          j        d          d d d         }|                    |           t           j                            |                                |           d S )N
      r1   )r   r   r   r   r   r$   r%   r#   )r   r   r   rC   s       r   (test_devicearray_contiguous_host_stridedz8TestCudaNDArray.test_devicearray_contiguous_host_strided3  sr    immN3immCCaC 	

%%ann&6&6<<<<<r   c                    t          j        t          j        d                    }t          j        d          }|                     t
                    5 }|                    t          j        |          d d d                    d d d            n# 1 swxY w Y   |                     t          j	        t          |j                             d S )Nr   r1   )r   r   r   r   r\   rm   r   r   r   r   r_   r`   )r   r   rC   rb   s       r   *test_devicearray_contiguous_device_stridedz:TestCudaNDArray.test_devicearray_contiguous_device_strided:  s    N29R==))immz** 	7aT^C0015666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	70	 	 	 	 	s   1BBBz,DeviceNDArray class not present in simulatorc                     t          j        ddt          j                  }|                     |j        d                    |                     |j        d                    d S )N)r4   r   )i   r~   C_CONTIGUOUSF_CONTIGUOUS)r   DeviceNDArrayr   rA   rQ   r    )r   rC   s     r    test_devicearray_relaxed_stridesz0TestCudaNDArray.test_devicearray_relaxed_stridesD  sT     '2:FF 		.1222	.122222r   c                 H   d}d}t          j        ||          D ]\  }}t          j        ||          }t	          j        |          }|                     |j        d         |j        d                    |                     |j        d         |j        d                    d S )N))r4   r3   )r3   r4   )r   r   r   r   r   )	itertoolsproductr   ndarrayr   r   r   r    )r   shapesordersr   r   rC   d_arrs          r   !test_c_f_contiguity_matches_numpyz1TestCudaNDArray.test_c_f_contiguity_matches_numpyS  s     "%-ff== 	: 	:LE5*U%000CN3''ESY~6"[8: : :SY~6"[8: : : :	: 	:r   z Typing not done in the simulatorc                     t          j        dd          }t          j        |          }|                     |j        j        d           d S Nr   r   r   r   zerosr   r   r   _numba_type_layoutr   r   r   s      r   &test_devicearray_typing_order_simple_cz6TestCudaNDArray.test_devicearray_typing_order_simple_ca  H     HRs###N1.44444r   c                     t          j        dd          }t          j        |          }|                     |j        j        d           d S )Nr   r   r   r   r   r   s      r   &test_devicearray_typing_order_simple_fz6TestCudaNDArray.test_devicearray_typing_order_simple_fh  r   r   c                     t          j        dd          }t          j        |          }|                     |j        j        d           d S )Nr1   r   r   r   r   r   s      r   "test_devicearray_typing_order_2d_cz2TestCudaNDArray.test_devicearray_typing_order_2d_co  H     HWC(((N1.44444r   c                     t          j        dd          }t          j        |          }|                     |j        j        d           d S )Nr   r   r   r   r   s      r   "test_devicearray_typing_order_2d_fz2TestCudaNDArray.test_devicearray_typing_order_2d_fv  r   r   c                     t          j        dd          }t          j        |          d d df         }|                     |j        j        d           d S )NrJ   rJ   r   r   r1   Ar   r   s      r   /test_devicearray_typing_order_noncontig_slice_cz?TestCudaNDArray.test_devicearray_typing_order_noncontig_slice_c}  sU     HV3'''N1aaac".44444r   c                     t          j        dd          }t          j        |          dd d f         }|                     |j        j        d           d S )Nr   r   r   r1   r   r   r   s      r   /test_devicearray_typing_order_noncontig_slice_fz?TestCudaNDArray.test_devicearray_typing_order_noncontig_slice_f  U     HV3'''N1ac".44444r   c                     t          j        dd          }t          j        |          dd d f         }|                     |j        j        d           d S )Nr   r   r   r1   r   r   s      r   ,test_devicearray_typing_order_contig_slice_cz<TestCudaNDArray.test_devicearray_typing_order_contig_slice_c  r   r   c                     t          j        dd          }t          j        |          d d df         }|                     |j        j        d           d S )Nr   r   r   r1   r   r   r   s      r   ,test_devicearray_typing_order_contig_slice_fz<TestCudaNDArray.test_devicearray_typing_order_contig_slice_f  sU     HV3'''N1aaac".44444r   c                     t          j        t          j        dg          d          }t          j        |          }|                     |j        j        d           d S )Nr4   )r   r   )r   r   r-   r   r   r   r   r   r   s      r   )test_devicearray_typing_order_broadcastedz9TestCudaNDArray.test_devicearray_typing_order_broadcasted  sO     OBHaSMM511N1.44444r   c                     t          j        dt           j                  }t          j        |          }t          j        |          }|                     |j        |j                   d S )Nr   r   )r   r   int16r   r   r   r   r   )r   r   r   gots       r   test_bug6697zTestCudaNDArray.test_bug6697  sV    i"(+++~c""jDJ/////r   c                    t          j        ddt          j                  }t          j        ddt          j                  }|                     |j        d           |                    |           |                    |           t          j
        |          }|                     |j        d           |                     |j        d           |                    |           |                    |           d S )N)r   )r~   )r   r   r   )r   r   r   int8r   r   r   r#   r   r   r   r   )r   	dev_array
host_arraydev_array_from_hosts       r   test_issue_8477zTestCudaNDArray.test_issue_8477  s      -D$46G= = =	 ZdDHHH
 	+T222 	z***  ,,,
 #nZ88,2D999,4d;;;  !4555**955555r   N)/__name__
__module____qualname__r   r'   r*   r.   r7   r=   rD   rH   rK   rN   rV   rY   r   rc   rh   ro   rr   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r	   r	   	   s       8 8 81 1 15 5 5* * *8 8 87 7 71 1 1. . .
. . .
. . .
3 3 3 ; ; ; _233  433 3 3      
 
 
B B B	 	 	5 5 5
5 5 5
  (F F F.> > >
> > >
9 9 98L L L*= = =   _CDD3 3 ED3: : : _7885 5 985 _7885 5 985 _7885 5 985 _7885 5 985 _7885 5 985 _7885 5 985 _7885 5 985 _7885 5 985 _7885 5 9850 0 0 _CDD 6  6 ED 6  6  6r   r	   c                       e Zd Zd ZdS )TestRecarrayc                 ^   t          j        ddt           j        fdt           j        fg          }t          j        |j        t           j                  |_        t          j        |j        t           j                  dz  |_        |j        }|j        }d }t          j        |          }t          j        |          } t          j
        |          d|j        f         |||           t           j                            ||           t           j                            ||           d S )N)   value1value2r   r   c                     t          j        d          }|| j        k     r"| j        |         ||<   | j        |         ||<   d S d S )Nr4   )r   gridsizer  r  )xout1out2is       r   testz(TestRecarray.test_recarray.<locals>.test  sC    	!A16zz(1+Q(1+Q zr   r4   )r   recarrayint64rA   r   r  r  r  
zeros_liker   jitr$   r%   )r   r   expect1expect2r  got1got2s          r   test_recarrayzTestRecarray.test_recarray  s   Krx rz"&
    9QV284449QV2:666<((	& 	& 	& }W%%}W%%!q!&y!!T4000

%%gt444

%%gt44444r   N)r   r   r   r  r   r   r   r   r     s#        5 5 5 5 5r   r   c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestCoreContiguousc                     |                      t          j        |          t          j        |          j        d                    d S )Nr   )r   r   is_contiguous
array_corer    )r   rz   s     r   _test_against_array_corez+TestCoreContiguous._test_against_array_core  sH    %d++"4((.~>	
 	
 	
 	
 	
r   c                 \    t          j        dd          }|                     |           d S r   r   r   r  r   d_as     r   test_device_array_like_1dz,TestCoreContiguous.test_device_array_like_1d  1    #...%%c*****r   c                 \    t          j        dd          }|                     |           d S Nr   r[   r   r   r  r  s     r   test_device_array_like_2dz,TestCoreContiguous.test_device_array_like_2d  1    444%%c*****r   c                 f    t          j        dd          }|                     |j                   d S r"  r   r   r  r   r  s     r   #test_device_array_like_2d_transposez6TestCoreContiguous.test_device_array_like_2d_transpose  3    444%%ce,,,,,r   c                 \    t          j        dd          }|                     |           d S )Nr   r[      r   r   r  r  s     r   test_device_array_like_3dz,TestCoreContiguous.test_device_array_like_3d  1    C888%%c*****r   c                 \    t          j        dd          }|                     |           d S )Nr   r   r   r  r  s     r   test_device_array_like_1d_fz.TestCoreContiguous.test_device_array_like_1d_f  r   r   c                 \    t          j        dd          }|                     |           d S Nr#  r   r   r  r  s     r   test_device_array_like_2d_fz.TestCoreContiguous.test_device_array_like_2d_f  r%  r   c                 f    t          j        dd          }|                     |j                   d S r2  r'  r  s     r   %test_device_array_like_2d_f_transposez8TestCoreContiguous.test_device_array_like_2d_f_transpose  r)  r   c                 \    t          j        dd          }|                     |           d S )Nr+  r   r   r  r  s     r   test_device_array_like_3d_fz.TestCoreContiguous.test_device_array_like_3d_f	  r.  r   c                 n    d}t          j        |          d d d         }|                     |           d S )Nr   r1   r   r   r  r   r   rz   s      r   test_1d_viewzTestCoreContiguous.test_1d_view  s9    xsss#%%d+++++r   c                 r    d}t          j        |d          d d d         }|                     |           d S )Nr   r   r   r1   r9  r:  s      r   test_1d_view_fz!TestCoreContiguous.test_1d_view_f  s@    xS)))##A#.%%d+++++r   c                 x    d}t          j        |          d d dd d df         }|                     |           d S )Nr#  r1   r9  r:  s      r   test_2d_viewzTestCoreContiguous.test_2d_view  sC    xsssCCaCx(%%d+++++r   c                 |    d}t          j        |d          d d dd d df         }|                     |           d S )Nr#  r   r   r1   r9  r:  s      r   test_2d_view_fz!TestCoreContiguous.test_2d_view_f  sJ    xS)))##A#sss(3%%d+++++r   N)r   r   r   r  r  r$  r(  r-  r0  r3  r5  r7  r;  r=  r?  rA  r   r   r   r  r    s        
 
 
+ + ++ + +- - -+ + ++ + ++ + +- - -+ + +, , ,
, , ,
, , ,
, , , , ,r   r  __main__)r   numpyr   numba.cuda.cudadrvr   numbar   numba.cuda.testingr   r   r   r	   r   r  r   mainr   r   r   <module>rH     s           * * * * * *       5 5 5 5 5 5 5 5 . . . . . .6 6 6 6 6l 6 6 6D5 5 5 5 5< 5 5 569, 9, 9, 9, 9, 9, 9, 9,x zHMOOOOO r   