
    J/Ph>                         d dl Zd dlmZ d dlmZ d dlmZ d dlmZm	Z	  ej
        dej        fdej        dfg          Z ed	           G d
 de	                      Zedk    r ej                     dS dS )    N)cuda)	transpose)unittest)skip_on_cudasimCUDATestCaseij)      z-Device Array API unsupported in the simulatorc                   *    e Zd Zd ZdZd Zd Zd ZdS )TestTransposec                    ddt           j        fddt           j        fddt           j        ff}|D ] \  }}}|                     |||          5  t          j        ||z  |                              ||          }t          j        ||z  |                              ||          }t          j        |          }t          j	        j
                            |          }t          ||           |                    |           t           j                            |                                |           d d d            n# 1 swxY w Y   "d S )N         i  i   )rowscolsdtyper   )npfloat64
complex128subTestarangereshapezerosr   	to_devicecudadrvdevicearrayfrom_array_liker   copy_to_hosttestingassert_array_equal)	selfvariantsr   r   r   xydxdys	            f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_transpose.pytest_transposezTestTranspose.test_transpose   s   2:&#r}-3
+- "* 	@ 	@D$4d%@@ @ @IdTk777??dKKHTD[666>>tTJJ^A&&\-==a@@"b!!!"""
--akkmmQ???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @	@ 	@s   C*EE	E	))r   r
   )   r,   )r,      )r-   r,   )      )r/   r.   )r.   r.   c                    | j         D ]G\  }}|                     ||          5  t          j        ||ft                    }t          |          D ]r}t          |          D ]`}|dz  |z   |||f         _        t          j        dt          j                  }|	                    dd          |z  |z   |||f         _
        as|j        }t          j        |          }t          j        |          }	t          ||	           |	                                }
t          j                            ||
           d d d            n# 1 swxY w Y   Id S )Nr   r   r   r   r   r
   )small_variantsr   r   recarrayrecordwith2darrayranger   r   float32r   r	   Tr   r   device_array_liker   r!   r"   r#   )r$   r   r   arrr&   r'   r	   
transposedd_arrd_transposedhost_transposeds              r*   test_transpose_recordz#TestTranspose.test_transpose_record!   s   - 	K 	KJD$4d33 K Kk4,6GHHHt > >A"4[[ > >&'1fqjAqD	Ie2:>>>&'ii1oo&9A&=AqD	>
 !U
s++#5jAA%...".";";"="=
--j/JJJK K K K K K K K K K K K K K K	K 	Ks   DEE	E	c                    | j         D ]\  }}|                     ||          5  t          j                            d||ft          j                  }|j        }t          j        |          }t          j	        |          }t          ||           |                                }t          j                            ||           d d d            n# 1 swxY w Y   d S )Nr1   r   )sizer   )r2   r   r   randomrandintbool_r7   r   r   r8   r   r!   r"   r#   )r$   r   r   r9   r:   r;   r<   r=   s           r*   test_transpose_boolz!TestTranspose.test_transpose_bool2   s$   - 
	K 
	KJD$4d33 	K 	Ki''tBH'MM U
s++#5jAA%...".";";"="=
--j/JJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K
	K 
	Ks   B"CC	C	c                    t          j        dt           j                                      d          }|d d dd d df         j        }t          j        |          }|d d dd d df         j        }|                     |j        d           |                     |j	        d           |
                                }t           j                            ||           d S )Nx   r   )
      r   )r   r   )(      )r   r   int64r   r7   r   r   assertEqualshapestridesr!   r"   r#   )r$   aa_view_td_a
d_a_view_t
h_a_view_ts         r*   test_transpose_viewz!TestTranspose.test_transpose_view?   s     Ic***228<<SSqS##A#X;=nQ1ccc]_
)6222+W555,,..


%%h
;;;;;    N)__name__
__module____qualname__r+   r2   r>   rD   rT    rU   r*   r   r      s`        @ @ @ NK K K"K K K< < < < <rU   r   __main__)numpyr   numbar   numba.cuda.kernels.transposer   numba.cuda.testingr   r   r   r   int32r6   r4   r   rV   mainrY   rU   r*   <module>ra      s              2 2 2 2 2 2 ' ' ' ' ' ' < < < < < < < < BHsBHo"BJ79 : :  @AA?< ?< ?< ?< ?<L ?< ?< BA?<D zHMOOOOO rU   