
    J/Ph4                        d dl Z d dlZd dlZd dlmZ d dlmZ  ed           G d de j                              Z	 ed           G d de j                              Z
 ed           G d	 d
e j                              Z ed           G d de j                              Z ed           G d de j                              Zedk    r e j                     dS dS )    N)Array)skip_on_cudasimz/Tests internals of the CUDA driver device arrayc                   P    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S )TestSlicingc                     d}|D ]Z}|j         |         |j         |         k    r<|j        dk    r|j        dk    r5|                     d|j         d|j                    [d S )N)C_CONTIGUOUSF_CONTIGUOUSr   zcontiguous flag mismatch:
got=z
expect=)flagssizefail)selfarrnparrattrsattrs        g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/nocuda/test_dummyarray.pyassertSameContigzTestSlicing.assertSameContig   s    . 	8 	8Dy%+d"3338q==UZ1__ III"yyy%++7 8 8 8	8 	8    c                    t          j        d          }t          j        d|j        |j        |j        j                  }|                     ||           d}|D ]l}||d          }||d          }|                     ||           | 	                    |j        |j                   | 	                    |j        |j                   md S N   r   )r         
npemptyr   	from_descshapestridesdtypeitemsizer   assertEqualr   r   r   xxxexpectgots          r   test_slice0_1dzTestSlicing.test_slice0_1d   s    oaem#k24 4c5))) 	: 	:A122YFabb'C!!#v...SY555S[&.9999	: 	:r   c                 f   t          j        d          }t          j        d|j        |j        |j        j                  }d}|D ]l}|d |         }|d |         }|                     ||           | 	                    |j        |j                   | 	                    |j        |j                   md S r   r   r%   s          r   test_slice1_1dzTestSlicing.test_slice1_1d&   s    oaem#k24 4 	: 	:A2A2YFbqb'C!!#v...SY555S[&.9999	: 	:r   c                    t          j        d          }t          j        d|j        |j        |j        j                  }d}t          j	        ||          D ]o\  }}|||         }|||         }| 
                    ||           |                     |j        |j                   |                     |j        |j                   pd S r   r   r   r   r   r    r!   r"   r#   	itertoolsproductr   r$   )r   r   r   r&   r'   yr(   r)   s           r   test_slice2_1dzTestSlicing.test_slice2_1d2   s    oaem#k24 4%b"-- 	: 	:DAq1Q3ZFac(C!!#v...SY555S[&.9999	: 	:r   c                    t          j        d          }t          j        d|j        |j        |j        j                  }d}|D ]l}||d          }||d          }|                     ||           | 	                    |j        |j                   | 	                    |j        |j                   mt          j        ||          D ]w\  }}||d |d f         }||d |d f         }|                     ||           | 	                    |j        |j                   | 	                    |j        |j                   xd S )Nr      r   )r   r   r   r   )r   r   r   r   r    r!   r"   r#   r   r$   r/   r0   r   r   r   r&   r'   r(   r)   r1   s           r   test_slice0_2dzTestSlicing.test_slice0_2d@   sP     oaem#k24 4 	: 	:A122YFabb'C!!#v...SY555S[&.9999%b"-- 	: 	:DAq122qrr6]Fabb!""f+C!!#v...SY555S[&.9999	: 	:r   c                    t          j        d          }t          j        d|j        |j        |j        j                  }d}|D ]l}|d |         }|d |         }|                     |j        |j                   |                     |j        |j                   | 	                    ||           mt          j        ||          D ]w\  }}|d |d |f         }|d |d |f         }|                     |j        |j                   |                     |j        |j                   | 	                    ||           xd S Nr4   r   )r   r   r   )r   r   r   r   r    r!   r"   r#   r$   r   r/   r0   r6   s           r   test_slice1_2dzTestSlicing.test_slice1_2dS   sP     oaem#k24 4 	/ 	/A2A2YFbqb'CSY555S[&.999!!#v....%b"-- 	/ 	/DAq2A2rr6]Fbqb"1"f+CSY555S[&.999!!#v....	/ 	/r   c                    t          j        d          }t          j        d|j        |j        |j        j                  }d}t          j	        ||||          D ]y\  }}}}|||||f         }|||||f         }	| 
                    |	|           |                     |	j        |j                   |                     |	j        |j                   zt          j	        ||          D ]w\  }
}|||||f         }|||||f         }	| 
                    |	|           |                     |	j        |j                   |                     |	j        |j                   xd S r9   r.   )r   r   r   r&   stuvr(   r)   r'   r1   s               r   test_slice2_2dzTestSlicing.test_slice2_2df   sy     oaem#k24 4#+BB;; 	: 	:JAq!Q1Q3!8_Fac1Q3h-C!!#v...SY555S[&.9999%b"-- 	: 	:DAq1Q3!8_Fac1Q3h-C!!#v...SY555S[&.9999	: 	:r   c                 j   t          j        d          }t          j        d|j        |j        |j        j                  }d}|D ]n}|d d |         }|d d |         }|                     ||           | 	                    |j        |j                   | 	                    |j        |j                   od S )Nr   r   r   r   r   r   r   r%   s          r   test_strided_1dzTestSlicing.test_strided_1d{   s    oaem#k24 4 	: 	:A33Q3ZFccc(C!!#v...SY555S[&.9999	: 	:r   c                    t          j        d          }t          j        d|j        |j        |j        j                  }d}t          j	        ||          D ]{\  }}|d d |d d |f         }|d d |d d |f         }| 
                    ||           |                     |j        |j                   |                     |j        |j                   |d S )Nr4   r   rB   r.   )r   r   r   r&   abr(   r)   s           r   test_strided_2dzTestSlicing.test_strided_2d   s      oaem#k24 4%b"-- 	: 	:DAq33Q3!8_Fccc33Q3h-C!!#v...SY555S[&.9999	: 	:r   c                    t          j        d          }t          j        d|j        |j        |j        j                  }d}t          j	        |||          D ]\  }}}|d d |d d |d d |f         }|d d |d d |d d |f         }| 
                    ||           |                     |j        |j                   |                     |j        |j                   d S )N)r   r5      r   rB   r.   )	r   r   r   r&   rE   rF   cr(   r)   s	            r   test_strided_3dzTestSlicing.test_strided_3d   s    ##oaem#k24 4 (R44 	: 	:GAq!33Q3!SSqS=)Fccc33Q3!m$C!!#v...SY555S[&.9999	: 	:r   c                 V   t          j        d          }t          j        |d          }t          j        d|j        |j        |j                  }|                     |j	        d         |j	        d                    |                     |j	        d         |j	        d                    d S )N)r   r      )r   r   r   )axesr   r   r	   )
r   r   	transposer   r   r    r!   r#   r$   r
   )r   zr   s      r   test_issue_2766zTestSlicing.test_issue_2766   s    HYL+++oa!)QZ@@0#)N2KLLL0#)N2KLLLLLr   N)__name__
__module____qualname__r   r*   r,   r2   r7   r:   r@   rC   rG   rK   rQ    r   r   r   r      s        
8 
8 
8: : :
: 
: 
:
: 
: 
:: : :&/ / /&: : :*
: 
: 
:
: 
: 
:
: 
: 
:M M M M Mr   r   c                   V    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S )TestReshapec                 h   t          j        d          }t          j        d|j        |j        |j        j                  }|                    dd          }|                    dd          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nr4   r   r5   r   
r   r   r   r   r    r!   r"   r#   reshaper$   r   r   r   r(   r)   s        r   test_reshape_2d2dzTestReshape.test_reshape_2d2d   s      oaem#k24 4q!$$kk!Q"FL111fn55555r   c                 d   t          j        d          }t          j        d|j        |j        |j        j                  }|                    d          }|                    d          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nr4   r      rY   r[   s        r   test_reshape_2d1dzTestReshape.test_reshape_2d1d   s      oaem#k24 4u%%kk%  #FL111fn55555r   c                 l   t          j        d          }t          j        d|j        |j        |j        j                  }|                    ddd          }|                    ddd          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )NrM   r   r5   r   r5   rM   r   rY   r[   s        r   test_reshape_3d3dzTestReshape.test_reshape_3d3d   s    ##oaem#k24 4q!Q''kk!Q""1%FL111fn55555r   c                 h   t          j        d          }t          j        d|j        |j        |j        j                  }|                    dd          }|                    dd          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nra   r      r5   rY   r[   s        r   test_reshape_3d2dzTestReshape.test_reshape_3d2d   s    ##oaem#k24 4ua((kk%##A&FL111fn55555r   c                 d   t          j        d          }t          j        d|j        |j        |j        j                  }|                    d          }|                    d          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nra   r   <   rY   r[   s        r   test_reshape_3d1dzTestReshape.test_reshape_3d1d   s    ##oaem#k24 4y))kk)$$Q'FL111fn55555r   c                 h   t          j        d          }t          j        d|j        |j        |j        j                  }|                    dd          }|                    dd          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nr4   r   r   r   rY   r[   s        r   test_reshape_infer2d2dz"TestReshape.test_reshape_infer2d2d   s      oaem#k24 4r1%%kk"a  #FL111fn55555r   c                 d   t          j        d          }t          j        d|j        |j        |j        j                  }|                    d          }|                    d          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nr4   r   r   rY   r[   s        r   test_reshape_infer2d1dz"TestReshape.test_reshape_infer2d1d   s      oaem#k24 4r""kk"ooa FL111fn55555r   c                 l   t          j        d          }t          j        d|j        |j        |j        j                  }|                    ddd          }|                    ddd          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nra   r   r5   r   r   rY   r[   s        r   test_reshape_infer3d3dz"TestReshape.test_reshape_infer3d3d   s    ##oaem#k24 4q"a((kk!R##A&FL111fn55555r   c                 h   t          j        d          }t          j        d|j        |j        |j        j                  }|                    dd          }|                    dd          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nra   r   rM   r   rY   r[   s        r   test_reshape_infer3d2dz"TestReshape.test_reshape_infer3d2d   s    ##oaem#k24 4q"%%kk!R  #FL111fn55555r   c                 d   t          j        d          }t          j        d|j        |j        |j        j                  }|                    d          }|                    d          d         }| 	                    |j        |j                   | 	                    |j        |j                   d S )Nra   r   r   rY   r[   s        r   test_reshape_infer3d1dz"TestReshape.test_reshape_infer3d1d   s    ##oaem#k24 4r""kk"ooa FL111fn55555r   c                 f   t          j        d          }t          j        d|j        |j        |j        j                  }|                     t                    5 }|
                    ddd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nra   r   r   rM   z&can only specify one unknown dimensionr   r   r   r   r    r!   r"   r#   assertRaises
ValueErrorrZ   assertInstr	exception)r   r   r   raisess       r   test_reshape_infer_two_unknownsz+TestReshape.test_reshape_infer_two_unknowns  s    ##oaem#k24 4 z** 	#fKKB"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#>&*++	- 	- 	- 	- 	-s   A>>BBc                 h   t          j        d          }t          j        d|j        |j        |j        j                  }|                     t                    5 }|
                    dd           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d S )Nra   r   r      z.cannot infer valid shape for unknown dimensionrt   )r   r   r   rz   expected_messages        r    test_reshape_infer_invalid_shapez,TestReshape.test_reshape_infer_invalid_shape  s    ##oaem#k24 4 z** 	fKKA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 L&F,<(=(=>>>>>s   A==BBN)rR   rS   rT   r\   r_   rb   re   rh   rj   rl   rn   rp   rr   r{   r   rU   r   r   rW   rW      s        6 6 66 6 66 6 66 6 66 6 66 6 66 6 66 6 66 6 66 6 6- - -	? 	? 	? 	? 	?r   rW   c                       e Zd Zd Zd ZdS )TestSqueezec                     t          j        d          }t          j        d|j        |j        |j        j                  } fd} |||            ||                                d         |                                           dD ]<} ||                    |          d         |                    |                     =d S )Nr   r   r   r   r   rM   r   c                                          | j        |j                                        | j        |j                   d S )N)r$   r    r!   )arr1arr2r   s     r   _assert_equal_shape_stridesz=TestSqueeze.test_squeeze.<locals>._assert_equal_shape_strides!  s=    TZ444T\4<88888r   )r   r   r   )r   r   )r   r   )r   r   )r   r   r   axis)	r   r   r   r   r    r!   r"   r#   squeeze)r   r   r   r   r   s   `    r   test_squeezezTestSqueeze.test_squeeze  s    +,,ou{EM5;+?
 
	9 	9 	9 	9 	9 	$#C///##CKKMM!$4emmooFFF@ 	 	D''&&q)5==d=+C+C   	 	r   c                    t          j        d          }t          j        d|j        |j        |j        j                  }|                     t                    5  |
                    d           d d d            n# 1 swxY w Y   |                     t                    5  |
                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   )r   rM   )r   r   r   r   r    r!   r"   r#   ru   rv   r   )r   r   r   s      r   test_squeeze_invalid_axisz%TestSqueeze.test_squeeze_invalid_axis+  s@   +,,ou{EM5;+?
 
 z** 	  	 KKQK	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 z** 	% 	%KKVK$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s$   A==BB"CC
C
N)rR   rS   rT   r   r   rU   r   r   r   r     s2           % % % % %r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )
TestExtentc                     t          j        d          }t          j        d|j        |j        |j        j                  }|j        \  }}| 	                    ||z
  |j
        |j        j        z             d S Nr   r   r   r   r   r   r    r!   r"   r#   extentr$   r   r   r   r   r<   es        r   test_extent_1dzTestExtent.test_extent_1d8  si    oaem#k24 4z1Q
U[-A ABBBBBr   c                     t          j        d          }t          j        d|j        |j        |j        j                  }|j        \  }}| 	                    ||z
  |j
        |j        j        z             d S )Nr4   r   r   r   s        r   test_extent_2dzTestExtent.test_extent_2d?  sk      oaem#k24 4z1Q
U[-A ABBBBBr   c                     t          j        d          }t          j        d|j        |j        |j        j                  }t          |	                                          \  }| 
                    ||j                   d S r   )r   r   r   r   r    r!   r"   r#   listiter_contiguous_extentr$   r   r   r   r   exts       r   test_extent_iter_1dzTestExtent.test_extent_iter_1dF  sk    oaem#k24 4S//1122cj)))))r   c           
         t          j        d          }t          j        d|j        |j        |j        j                  }t          |	                                          \  }| 
                    ||j                   | 
                    t          t          |d d d         	                                                    d           d S )Nr4   r   r   )r   r   r   r   r    r!   r"   r#   r   r   r$   r   lenr   s       r   test_extent_iter_2dzTestExtent.test_extent_iter_2dM  s      oaem#k24 4S//1122cj)))T#ccc("A"A"C"CDDEEqIIIIIr   N)rR   rS   rT   r   r   r   r   rU   r   r   r   r   6  s[        C C CC C C* * *J J J J Jr   r   c                       e Zd Zd ZdS )TestIteratec                     d}t          j        |          }t          j        d|j        |j        |j        j                  }d}|D ]}|}d S )Nr5   r   )r   r   r   r   r    r!   r"   r#   )r   Nr   r   r'   vals         r   test_for_loopzTestIterate.test_for_loopY  s^    oaem#k24 4  	 	CAA	 	r   N)rR   rS   rT   r   rU   r   r   r   r   W  s#        
 
 
 
 
r   r   __main__)unittestr/   numpyr   numba.cuda.cudadrv.dummyarrayr   numba.cuda.testingr   TestCaser   rW   r   r   r   rR   mainrU   r   r   <module>r      s            / / / / / / . . . . . . BCC[M [M [M [M [M(# [M [M DC[M| BCCn? n? n? n? n?(# n? n? DCn?b BCC% % % % %(# % % DC%8 BCCJ J J J J" J J DCJ@ BCC    (#   DC zHMOOOOO r   