
    wg                     p    d dl Zd dlmZ d dlmZmZmZ  G d de      Ze	dk(  r ej                          yy)    N)cuda)unittestCUDATestCaseskip_on_cudasimc                       e Zd Zd Zd Zd Zd Z ed      d        Zd Z	 ed      d        Z
d	 Z ed      d
        Zd Zd Zy)TestArrayAttrc                    t        j                  d      }|j                  dd      }t        j                  |      }t	        j
                  |      }t	        j
                  |      }| j                  |j                                | j                  |j                                 | j                  |j                                 | j                  |j                                y N
         	nparangereshapeasfortranarrayr   	to_device
assertTrueis_c_contiguousis_f_contiguousselfarycaryfarydcarydfarys         m/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/cuda/tests/cudadrv/test_array_attr.pytest_contigous_2dzTestArrayAttr.test_contigous_2d   s    iim{{1a   &t$t$--/0E11334E11334--/0    c                    t        j                  d      }|j                  ddd      }t        j                  |      }t	        j
                  |      }t	        j
                  |      }| j                  |j                                | j                  |j                                 | j                  |j                                 | j                  |j                                y )N   r   r   r   r   s         r   test_contigous_3dzTestArrayAttr.test_contigous_3d   s    iim{{1a#  &t$t$--/0E11334E11334--/0r    c                    t        j                  d      }|j                  dddd      }t        j                  |      }t	        j
                  |      }t	        j
                  |      }| j                  |j                                | j                  |j                                 | j                  |j                                 | j                  |j                                y )N<   r   r      r   r   s         r   test_contigous_4dzTestArrayAttr.test_contigous_4d    s    iim{{1aA&  &t$t$--/0E11334E11334--/0r    c                 P   t        j                  d      }t        j                  |      }dD ]w  }|j	                  |      }|j	                  |      }|j                         }| j                  ||u       | j                  |j                  d       | j                  ||       y y )Nr%   CFAorder   )
r   r   r   r   ravelcopy_to_hostr   assertEqualndimassertPreciseEqual)r   r   daryr+   expectdflatflats          r   test_ravel_1dzTestArrayAttr.test_ravel_1d,   s    iim~~c" 	2EYYUY+FJJUJ+E%%'DOOD-.TYY*##FD1	2r    z6CUDA Array Interface is not supported in the simulatorc                 H   t        j                  d      }t        j                  |      }|d d d   }|j                  d   d   }|j                  d   d   }| j                  ||       | j                  t              5  |j                          d d d        y # 1 sw Y   y xY w)Nr%   r   datar   )	r   r   r   r   __cuda_array_interface__r/   assertRaisesNotImplementedErrorr-   )r   r   r2   
darystride	dary_dataddarystride_datas         r   test_ravel_stride_1dz"TestArrayAttr.test_ravel_stride_1d7   s    iim~~c"#A#Y
11&9!<	%>>vFqI$4523 		 	 	s   >BB!c                    t        j                  d      }|j                  dddd      }|j                  d      }t	        j
                  |      }|j                         }|j                         }| j                  ||u       | j                  |j                  d       | j                  ||       dD ]  }|j                  |      }t	        j
                  |      }|j                  |      }|j                         }| j                  ||u       | j                  |j                  d       | j                  ||        y )	Nr%   r   r   r&   Cr*   r,   CA)r   r   r   r-   r   r   r.   r   r/   r0   r1   )r   r   reshapedr3   r2   r4   r5   r+   s           r   test_ravel_czTestArrayAttr.test_ravel_cD   s   iim;;q!Q*c*~~h'

!!#E)*A&-  	2E^^%^0F>>(+DJJUJ+E%%'DOOD-.TYY*##FD1	2r    c                    t        j                  d      }|j                  dddd      }t        j                  |      }|d d dd d dd d dd d df   }|j
                  d   d   }|j
                  d   d   }| j                  ||       | j                  t              5  |j                          d d d        y # 1 sw Y   y xY wNr%   r   r   r&   r8   r   )
r   r   r   r   r   r9   r/   r:   r;   r-   r   r   rC   r2   r<   r=   r>   s          r   test_ravel_stride_cz!TestArrayAttr.test_ravel_stride_cZ   s    iim;;q!Q*~~h'#A#ssCaC1,-
11&9!<	%>>vFqI$4523 		 	 	s   B99Cc                    t        j                  d      }t        j                  |j                  dddd            }dD ]  }|j	                  |      }t        j                  |      }|j	                  |      }|j                         }| j                  ||u       | j                  |j                  d       | j                  ||        y )Nr%   r   r   r&   FAr*   r,   )r   r   r   r   r-   r   r   r.   r   r/   r0   r1   )r   r   rC   r+   r3   r2   r4   r5   s           r   test_ravel_fzTestArrayAttr.test_ravel_fg   s    iim$$S[[Aq!%<= 	2E^^%^0F>>(+DJJUJ+E%%'DOOD-.TYY*##FD1	2r    c                    t        j                  d      }t        j                  |j                  dddd            }t	        j
                  |      }|d d dd d dd d dd d df   }|j                  d   d   }|j                  d   d   }| j                  ||       | j                  t              5  |j                          d d d        y # 1 sw Y   y xY wrF   )r   r   r   r   r   r   r9   r/   r:   r;   r-   rG   s          r   test_ravel_stride_fz!TestArrayAttr.test_ravel_stride_fs   s    iim$$S[[Aq!%<=~~h'#A#ssCaC1,-
11&9!<	%>>vFqI$4523 		 	 	s   2CCc                     t        j                  d      }|j                  dd      }t        j                  |      }|j                  dd      }|j                         }| j                  ||       y r
   r   r   r   r   r   r.   r1   r   r   r3   r2   dary_reshapedgots         r   test_reshape_czTestArrayAttr.test_reshape_c   s[    iimQ"~~c"Q*((*,r    c                     t        j                  d      }|j                  ddd      }t        j                  |      }|j                  ddd      }|j                         }| j                  ||       y )Nr   r   r   Fr*   rO   rP   s         r   test_reshape_fzTestArrayAttr.test_reshape_f   sc    iimQ-~~c"Q5((*,r    N)__name__
__module____qualname__r   r#   r'   r6   r   r?   rD   rH   rK   rM   rS   rV    r    r   r   r      s{    
1
1
1	2 MN
 O
2, MN
 O

2 MN	 O	--r    r   __main__)numpyr   numbar   numba.cuda.testingr   r   r   r   rW   mainrZ   r    r   <module>r`      s:      F FG-L G-T zHMMO r    