
    xKg>                         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                           yy)    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y)TestTransposec                    ddt         j                  fddt         j                  fddt         j                  ff}|D ]  \  }}}| j                  |||      5  t        j                  ||z  |      j                  ||      }t        j                  ||z  |      j                  ||      }t        j                  |      }t        j                  j                  j                  |      }t        ||       |j                  |       t         j                  j                  |j                         |       d d d         y # 1 sw Y   xY w)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	            j/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cuda/tests/cudapy/test_transpose.pytest_transposezTestTranspose.test_transpose   s   2::&#r}}-3

+- "*D$4d%@IIdTk7??dKHHTD[6>>tTJ^^A&\\--==a@"b!"

--akkmQ? A@ "*@@s   CEE	))r   r
   )   r,   )r,      )r-   r,   )      )r/   r.   )r.   r.   c                    | j                   D ]*  \  }}| j                  ||      5  t        j                  ||ft              }t        |      D ]k  }t        |      D ][  }|dz  |z   |||f   _        t        j                  dt        j                        }|j                  dd      |z  |z   |||f   _
        ] m |j                  }t        j                  |      }t        j                  |      }	t        ||	       |	j!                         }
t        j"                  j%                  ||
       d d d        - y # 1 sw Y   9xY w)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	   --JD$4d3kk4,6GHtA"4[&'1fqjAqD	IIe2::>&'ii1o&9A&=AqD	 ) % !UU
s+#55jA%.".";";"=

--j/J 43 .33s   D	D<<E	c                    | j                   D ]  \  }}| j                  ||      5  t        j                  j	                  d||ft        j
                        }|j                  }t        j                  |      }t        j                  |      }t        ||       |j                         }t        j                  j                  ||       d d d         y # 1 sw Y   xY w)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    --JD$4d3ii''tBHH'M UU
s+#55jA%.".";";"=

--j/J 43 .33s   B%CC	c                    t        j                  dt         j                        j                  d      }|d d dd d df   j                  }t        j                  |      }|d d dd d df   j                  }| j                  |j                  d       | j                  |j                  d       |j                         }t         j                  j                  ||       y )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     IIc*228<SqS#A#X;==nnQ1cc]__
))62++W5,,.



%%h
;    N)__name__
__module____qualname__r+   r2   r>   rD   rT    rU   r*   r   r      s     @ N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 ' < BHHsBHHo"BJJ79 :  @A?<L ?< B?<D zHMMO rU   