§
    2@Äjf6  ã                   óÌ  — 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        úXC:\Projects\Historical\venv\Lib\site-packages\numba/cuda/tests/nocuda/test_dummyarray.pyÚassertSameContigzTestSlicing.assertSameContig   s   € Ø.ˆØð 	8ð 	8ˆDØŒy˜Œ %¤+¨dÔ"3Ò3Ð3Ø”8˜q’=�= U¤Z°1¢_ _ð à—I’I�IØ"œy˜y˜y¨%¬+¨+ð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Í   € Ý”˜‘”ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà×Ò˜c 5Ñ)Ô)Ð)ØˆØð 	:ð 	:ˆAØ˜1˜2˜2”YˆFØ�a�b�b”'ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ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·   € Ý”˜‘”ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆàˆØð 	:ð 	:ˆAØ˜2˜A˜2”YˆFØ�b�q�b”'ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ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È   € Ý”˜‘”ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆàˆÝÔ% b¨"Ñ-Ô-ð 	:ð 	:‰DˆAˆqØ˜1˜Q˜3”ZˆFØ�a˜�c”(ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ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  € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆàˆØð 	:ð 	:ˆAØ˜1˜2˜2”YˆFØ�a�b�b”'ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ5Ô5Ð5Ø×Ò˜Sœ[¨&¬.Ñ9Ô9Ð9Ð9åÔ% b¨"Ñ-Ô-ð 	:ð 	:‰DˆAˆqØ˜1˜2˜2˜q˜r˜r˜6”]ˆFØ�a�b�b˜!˜"˜"�f”+ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ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  € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆàˆØð 	/ð 	/ˆAØ˜2˜A˜2”YˆFØ�b�q�b”'ˆCØ×Ò˜SœY¨¬Ñ5Ô5Ð5Ø×Ò˜Sœ[¨&¬.Ñ9Ô9Ð9Ø×!Ò! # vÑ.Ô.Ð.Ð.åÔ% b¨"Ñ-Ô-ð 	/ð 	/‰DˆAˆqØ˜2˜A˜2˜r ˜r˜6”]ˆFØ�b�q�b˜"˜1˜"�f”+ˆCØ×Ò˜SœY¨¬Ñ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  € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆàˆÝ#Ô+¨B°°B¸Ñ;Ô;ð 	:ð 	:‰JˆAˆq�!�QØ˜1˜Q˜3  ! ˜8”_ˆFØ�a˜�c˜1˜Q˜3�h”-ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ5Ô5Ð5Ø×Ò˜Sœ[¨&¬.Ñ9Ô9Ð9Ð9åÔ% b¨"Ñ-Ô-ð 	:ð 	:‰DˆAˆqØ˜1˜Q˜3  ! ˜8”_ˆFØ�a˜�c˜1˜Q˜3�h”-ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ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»   € Ý”˜‘”ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆàˆØð 	:ð 	:ˆAØ˜3˜3˜Q˜3”ZˆFØ�c�c˜�c”(ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ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â   € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆàˆÝÔ% b¨"Ñ-Ô-ð 	:ð 	:‰DˆAˆqØ˜3˜3˜Q˜3   ! ˜8”_ˆFØ�c�c˜�c˜3˜3˜Q˜3�h”-ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ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ø   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆàˆÝ Ô(¨¨R°Ñ4Ô4ð 	:ð 	:‰GˆAˆq�!Ø˜3˜3˜Q˜3   !  S S q S˜=Ô)ˆFØ�c�c˜�c˜3˜3˜Q˜3   ! �mÔ$ˆCØ×!Ò! # vÑ.Ô.Ð.Ø×Ò˜SœY¨¬Ñ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Ž   € ÝŒH�YÑÔˆÝŒL˜ Ð+Ñ+Ô+ˆÝŒo˜a ¤¨!¬)°Q´ZÑ@Ô@ˆØ×Ò˜œ Ô0°#´)¸NÔ2KÑLÔLÐLØ×Ò˜œ Ô0°#´)¸NÔ2KÑ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™   € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜q !Ñ$Ô$ˆØ�kŠk˜!˜QÑÔ Ô"ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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•   € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜uÑ%Ô%ˆØ�kŠk˜%Ñ Ô  Ô#ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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�   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜q ! QÑ'Ô'ˆØ�kŠk˜!˜Q Ñ"Ô" 1Ô%ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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™   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜u aÑ(Ô(ˆØ�kŠk˜% Ñ#Ô# AÔ&ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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•   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜yÑ)Ô)ˆØ�kŠk˜)Ñ$Ô$ QÔ'ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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™   € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜r 1Ñ%Ô%ˆØ�kŠk˜"˜aÑ Ô  Ô#ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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“   € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜rÑ"Ô"ˆØ�kŠk˜"‰oŒo˜aÔ ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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�   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜q " aÑ(Ô(ˆØ�kŠk˜!˜R Ñ#Ô# AÔ&ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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™   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜q "Ñ%Ô%ˆØ�kŠk˜!˜RÑ Ô  Ô#ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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“   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆà—’˜rÑ"Ô"ˆØ�kŠk˜"‰oŒo˜aÔ ˆØ×Ò˜œ F¤LÑ1Ô1Ð1Ø×Ò˜œ f¤nÑ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ã   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆð ×Ò�zÑ*Ô*ð 	#¨fØ�KŠK˜˜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ß   € Ý”˜Ñ#Ô#ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆð ×Ò�zÑ*Ô*ð 	¨fØ�KŠK˜˜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=   ø€ Ø×Ò˜TœZ¨¬Ñ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Œ{˜EœM¨5¬;Ô+?ñ
ô 
ˆð	9ð 	9ð 	9ð 	9ð 	9ð 	$Ð# C¨Ñ/Ô/Ð/Ø#Ð# C§K¢K¡M¤M°!Ô$4°e·m²m±o´oÑ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Œ{˜EœM¨5¬;Ô+?ñ
ô 
ˆð ×Ò�zÑ*Ô*ð 	 ð 	 Ø�KŠK˜QˆKÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 à×Ò�zÑ*Ô*ð 	%ð 	%Ø�KŠK˜VˆKÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%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   € Ý”˜‘”ˆÝŒo˜a ¤¨e¬mØ#œ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   € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œ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   € Ý”˜‘”ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆå�S×/Ò/Ñ1Ô1Ñ2Ô2‰ˆØ×Ò˜˜cœjÑ)Ô)Ð)Ð)Ð)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©   € Ý”˜Ñ Ô ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆå�S×/Ò/Ñ1Ô1Ñ2Ô2‰ˆØ×Ò˜˜cœjÑ)Ô)Ð)à×Ò��T # c c¨ c¤(×"AÒ"AÑ"CÔ"CÑDÔDÑEÔEÀqÑ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^   € àˆÝ”˜‘”ˆÝŒo˜a ¤¨e¬mØ#œkÔ2ñ4ô 4ˆð ˆàð 	ð 	ˆCØˆAˆAð	ð 	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ÒÐØ€H„M�O„O€O€O€Oð Ðr   