§
    ƒÛg”š  ã                   ó  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
 d dlmZmZmZ d dlmZmZ d dlmZ d dlmZmZmZmZ  e¦   «         Zde_         e¦   «         Zde_        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„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1e	d„ ¦   «         Z2e	d„ ¦   «         Z3d „ Z4d!„ Z5d"„ Z6 G d#„ d$e¦  «        Z7 G d%„ d&e¦  «        Z8 G d'„ d(e¦  «        Z9e:d)k    r ej;        ¦   «          dS dS )*é    N)Úcompile_isolatedÚFlags)ÚnjitÚtypeof)ÚutilsÚtypesÚerrors)ÚTestCaseÚtag)Ú	arraydecl)ÚintpÚellipsisÚslice2_typeÚslice3_typeTc                 ó   — | |||…         S ©N© )ÚaÚstartÚstopÚsteps       úO/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_indexing.pyÚslicing_1d_usecaser      s   € ØˆU�4˜ˆ_ÔÐó    c                 ó|   — | |||…         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S ©Nr   é   ©ÚrangeÚshape)r   r   r   r   ÚbÚtotalÚis          r   Úslicing_1d_usecase2r$      sQ   € Ø	ˆ%��Tˆ/Ô€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 óz   — | ||…         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S r   r   )r   r   r   r!   r"   r#   s         r   Úslicing_1d_usecase3r&       sN   € Ø	ˆ%�ˆ*Œ€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 óz   — | d d …         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S r   r   )r   r!   r"   r#   s       r   Úslicing_1d_usecase4r(   '   sN   € Ø	ˆ!ˆ!ˆ!Œ€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 óz   — | |d …         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S r   r   ©r   r   r!   r"   r#   s        r   Úslicing_1d_usecase5r+   .   sN   € Ø	ˆ%ˆ&ˆ&Œ	€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 óz   — | d |…         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S r   r   )r   r   r!   r"   r#   s        r   Úslicing_1d_usecase6r-   5   sN   € Ø	ˆ%ˆ4ˆ%Œ€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 ó|   — | |d d…         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S ©Néþÿÿÿr   r   r   r*   s        r   Úslicing_1d_usecase7r1   <   sP   € à	ˆ%ˆ)�ˆ)Œ€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 ó|   — | d d d…         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S r/   r   r*   s        r   Úslicing_1d_usecase8r3   D   sP   € à	ˆ$ˆ$ˆBˆ$Œ€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 ó"   — | |||…|||…f         S r   r   )r   Ústart1Ústop1Ústep1Ústart2Ústop2Ústep2s          r   Úslicing_2d_usecaser;   M   s    € àˆV�E˜%Ð ¨¨eÐ!3Ð3Ô4Ð4r   c                 ó   — | |||…|f         S r   r   )r   r5   r6   r7   Úindexs        r   Úslicing_2d_usecase3r>   Q   s   € àˆV�E˜%Ð Ð&Ô'Ð'r   c                 ó€   — | ||d …|f         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S r   r   )r   Úindex0r5   Úindex2r!   r"   r#   s          r   Úslicing_3d_usecaserB   U   sV   € Ø	ˆ&�&�'�'˜6Ð
!Ô"€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 ó€   — | |d |…|f         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S r   r   )r   r@   r6   rA   r!   r"   r#   s          r   Úslicing_3d_usecase2rD   \   sV   € Ø	ˆ&�&�5�&˜&Ð
 Ô!€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 óv   — | |         }d}t          |j        d         ¦  «        D ]}|||         |dz   z  z  }Œ|S r   r   )r   r=   r!   r"   r#   s        r   Úpartial_1d_usecaserF   c   sJ   € Ø	ˆ%Œ€AØ€EÝ�1”7˜1”:ÑÔð  ð  ˆØ��1”˜˜Q™‘ÑˆˆØ€Lr   c                 ó   — | |         S r   r   )r   r#   s     r   Úinteger_indexing_1d_usecaserH   j   s   € ØˆQŒ4€Kr   c                 ó   — | ||f         S r   r   ©r   Úi1Úi2s      r   Úinteger_indexing_2d_usecaserM   m   s   € ØˆR�ˆUŒ8€Or   c                 ó   — | |         |         S r   r   rJ   s      r   Úinteger_indexing_2d_usecase2rO   p   s   € ØˆRŒ5�Œ9Ðr   c                 ó   — | ||…df         S ©N.r   ©r   r#   Újs      r   Úellipsis_usecase1rT   s   s   € ØˆQˆqˆS�#ˆXŒ;Ðr   c                 ó   — | d||…f         S rQ   r   rR   s      r   Úellipsis_usecase2rV   v   s   € ØˆS�!�A�#ˆXŒ;Ðr   c                 ó   — | |d|f         S rQ   r   rR   s      r   Úellipsis_usecase3rX   y   s   € ØˆQ��QˆYŒ<Ðr   c                 ó   — | d          S r   r   ©r   s    r   Únone_index_usecaser[   |   s   € ØˆTŒ7€Nr   c                 ó   — | d         S )Nr   r   rZ   s    r   Úempty_tuple_usecaser]      s   € ØˆRŒ5€Lr   c                 ó   — || |<   d S r   r   )r   r=   Úvalues      r   Úsetitem_usecaser`   ƒ   s   € à€A€e�H€H€Hr   c                 ó   — || d d …<   d S r   r   )r   r_   s     r   Úsetitem_broadcast_usecaserb   ˆ   s   € à€A€a€a€a�D€D€Dr   c                 ó   — || |||…<   | S r   r   )r   r!   r   r   r   s        r   Úslicing_1d_usecase_setrd   �   s   € Ø€A€eˆD�€oÑØ€Hr   c                 ó*   — | ||…xx         |z  cc<   | S r   r   )r   r!   r   r   s       r   Úslicing_1d_usecase_addrf   ‘   s#   € ð €eˆD€j€M€M„M�QÑ€M€M�MØ€Hr   c                 ó    — || |||…|||…f<   | S r   r   )r   r!   r   r   r   r8   r9   r:   s           r   Úslicing_2d_usecase_setrh   —   s#   € Ø,-€A€eˆD�€o�f˜U 5Ð(Ð(Ñ)Ø€Hr   c                   óœ  — e Zd ZdZefd„Zd„ Zefd„Zd„ Zefd„Z	d„ Z
efd„Zd	„ Zd
„ Zefd„Zd„ Zefd„Zd„ Zefd„Zd„ Zefd„Zd„ Zefd„Zd„ Zefd„Zd„ Zefd„Zd„ Zefd„Zd„ Zefd„Zd„ Zefd„Z d„ Z!efd„Z"d „ Z#ee$fd!„Z%d"„ Z&d#„ Z'd$„ Z(efd%„Z)efd&„Z*d'„ Z+efd(„Z,d)„ Z-efd*„Z.d+„ Z/efd,„Z0d-„ Z1d.„ Z2d/„ Z3efd0„Z4d1„ Z5efd2„Z6d3„ Z7d4S )5ÚTestGetItemz‰
    Test basic indexed load from an array (returning a view or a scalar).
    Note fancy indexing is tested in test_fancy_indexing.
    c                 óP  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «        }dD ](} ||g|¢R Ž }	|                       ||g|¢R Ž |	¦  «         Œ)d S )Nr   ÚC©Úflagsé
   Úi4©Údtype)©r   ro   r   ©é   é   r   ©ro   r   r   ©r   ro   éÿÿÿÿ©r   ro   ru   )é	   r   ry   ©éûÿÿÿr0   r   ©r   ry   r   )	r   r   ÚArrayÚint32r   Úentry_pointÚnpÚarangeÚassertPreciseEqual)
Úselfrn   ÚpyfuncÚ	arraytypeÚargtysÚcrÚcfuncr   ÚindicesÚexpecteds
             r   Útest_1d_slicingzTestGetItem.test_1d_slicing¢   sÂ   € Ý#ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{ÐCˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô%ˆðð 
	Bð 
	BˆGð �v˜aÐ* 'Ð*Ð*Ð*ˆHØ×#Ò# E E¨!Ð$6¨gÐ$6Ð$6Ð$6¸ÑAÔAÐAÐAð
	Bð 
	Br   c                 ó<   — |                       t          ¬¦  «         d S ©Nrm   )r�   ÚNoflags©r…   s    r   Útest_1d_slicing_npmzTestGetItem.test_1d_slicing_npm¶   ó   € Ø×Ò¥7ÐÑ+Ô+Ð+Ð+Ð+r   c                 ó&  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «        }g d¢}|D ]&}	|                       ||g|	¢R Ž  ||g|	¢R Ž ¦  «         Œ't          j        t          j        dd¦  «        }|t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        d	d¬¦  «        d d d
…         }|  	                    |j
        d         ¦  «         |  	                    |j
        d         ¦  «         g d¢}|D ]&}	|                       ||g|	¢R Ž  ||g|	¢R Ž ¦  «         Œ'd S )Nr   rl   rm   ro   rp   rq   ©rs   rt   rw   rx   rz   ÚAé   ru   ÚC_CONTIGUOUSÚF_CONTIGUOUS)r$   r   r   r€   r   r�   r‚   rƒ   ÚassertEqualÚassertFalsern   ©
r…   rn   r†   r‡   rˆ   r‰   rŠ   r   ÚargsÚargs
             r   Útest_1d_slicing2zTestGetItem.test_1d_slicing2¹   s²  € Ý$ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{ÐCˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô%ˆðð ð ˆð ð 	>ð 	>ˆCØ×Ò˜V˜V A˜_¨˜_˜_˜_¨e¨e°A¨n¸¨n¨n¨nÑ=Ô=Ð=Ð=õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{ÐCˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô% c c¨ cÔ*ˆØ×Ò˜œ Ô0Ñ1Ô1Ð1Ø×Ò˜œ Ô0Ñ1Ô1Ð1ðð ð ˆð ð 	>ð 	>ˆCØ×Ò˜V˜V A˜_¨˜_˜_˜_¨e¨e°A¨n¸¨n¨n¨nÑ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rŸ   r�   r‘   s    r   Útest_1d_slicing2_npmz TestGetItem.test_1d_slicing2_npmß   ó   € Ø×Ò¥GÐÑ,Ô,Ð,Ð,Ð,r   c                 óò  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «        }g d¢}|D ]&}	|                       ||g|	¢R Ž  ||g|	¢R Ž ¦  «         Œ't          j        t          j        dd¦  «        }|t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        d	d¬¦  «        d d d
…         }|  	                    |j
        d         ¦  «         |  	                    |j
        d         ¦  «         |D ]&}	|                       ||g|	¢R Ž  ||g|	¢R Ž ¦  «         Œ'd S )Nr   rl   rm   ro   rp   rq   ))rv   ro   )ru   rv   )ro   r   ©r   ro   )é   ro   r–   r—   ru   r˜   r™   )r&   r   r   r€   r   r�   r‚   rƒ   rš   r›   rn   rœ   s
             r   Útest_1d_slicing3zTestGetItem.test_1d_slicing3â   s—  € Ý$ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+Ð6ˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô%ˆðð ð ˆð ð 	>ð 	>ˆCØ×Ò˜V˜V A˜_¨˜_˜_˜_¨e¨e°A¨n¸¨n¨n¨nÑ=Ô=Ð=Ð=õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+Ð6ˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô% c c¨ cÔ*ˆØ×Ò˜œ Ô0Ñ1Ô1Ð1Ø×Ò˜œ Ô0Ñ1Ô1Ð1àð 	>ð 	>ˆCØ×Ò˜V˜V A˜_¨˜_˜_˜_¨e¨e°A¨n¸¨n¨n¨nÑ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r¦   r�   r‘   s    r   Útest_1d_slicing3_npmz TestGetItem.test_1d_slicing3_npm  r¢   r   c                 óŽ  — t           }t          j        t          j        dd¦  «        }|f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «        }|                       ||¦  «         ||¦  «        ¦  «         t          j        t          j        dd¦  «        }|f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «        d d d	…         }|  	                    |j
        d
         ¦  «         |  	                    |j
        d         ¦  «         |                       ||¦  «         ||¦  «        ¦  «         d S )Nr   rl   rm   ro   rp   rq   r–   r—   ru   r˜   r™   )r(   r   r   r€   r   r�   r‚   rƒ   rš   r›   rn   )r…   rn   r†   r‡   rˆ   r‰   rŠ   r   s           r   Útest_1d_slicing4zTestGetItem.test_1d_slicing4  s2  € Ý$ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�ˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô%ˆØ×Ò˜˜ ™œ E E¨!¡H¤HÑ-Ô-Ð-õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�ˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô% c c¨ cÔ*ˆØ×Ò˜œ Ô0Ñ1Ô1Ð1Ø×Ò˜œ Ô0Ñ1Ô1Ð1Ø×Ò˜˜ ™œ E E¨!¡H¤HÑ-Ô-Ð-Ð-Ð-r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rª   r�   r‘   s    r   Útest_1d_slicing4_npmz TestGetItem.test_1d_slicing4_npm  r¢   r   c                 ó  — t          t          dd¦  «        ¦  «        }t          j        t          j        dd¦  «        }|t          j        f}t          |||¬¦  «        }|j        }t          j        dd¬¦  «        }|D ],}	|  	                     |||	¦  «         |||	¦  «        ¦  «         Œ-t          j        t          j        dd¦  «        }|t          j        f}t          |||¬¦  «        }|j        }t          j        d	d¬¦  «        d d d
…         }|  
                    |j        d         ¦  «         |  
                    |j        d         ¦  «         |D ],}	|  	                     |||	¦  «         |||	¦  «        ¦  «         Œ-d S )Ni÷ÿÿÿro   r   rl   rm   rp   rq   r–   r—   ru   r˜   r™   )Úlistr   r   r   r€   r   r�   r‚   rƒ   rš   r›   rn   )
r…   r†   rn   r�   r‡   rˆ   r‰   rŠ   r   rž   s
             r   Úcheck_1d_slicing_with_argz%TestGetItem.check_1d_slicing_with_arg  s|  € Ý•E˜"˜b‘M”MÑ"Ô"ˆå”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[Ð)ˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô%ˆØð 	<ð 	<ˆCØ×Ò˜V˜V A s™^œ^¨U¨U°1°c©]¬]Ñ;Ô;Ð;Ð;õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[Ð)ˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�b Ð%Ñ%Ô% c c¨ cÔ*ˆØ×Ò˜œ Ô0Ñ1Ô1Ð1Ø×Ò˜œ Ô0Ñ1Ô1Ð1Øð 	<ð 	<ˆCØ×Ò˜V˜V A s™^œ^¨U¨U°1°c©]¬]Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó@   — t           }|                      ||¦  «         d S r   )r+   r¯   ©r…   rn   r†   s      r   Útest_1d_slicing5zTestGetItem.test_1d_slicing55  ó#   € Ý$ˆØ×&Ò& v¨uÑ5Ô5Ð5Ð5Ð5r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r²   r�   r‘   s    r   Útest_1d_slicing5_npmz TestGetItem.test_1d_slicing5_npm9  r¢   r   c                 ó@   — t           }|                      ||¦  «         d S r   )r-   r¯   r±   s      r   Útest_1d_slicing6zTestGetItem.test_1d_slicing6<  r³   r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r·   r�   r‘   s    r   Útest_1d_slicing6_npmz TestGetItem.test_1d_slicing6_npm@  r¢   r   c                 ó@   — t           }|                      ||¦  «         d S r   )r1   r¯   r±   s      r   Útest_1d_slicing7zTestGetItem.test_1d_slicing7C  r³   r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r»   r�   r‘   s    r   Útest_1d_slicing7_npmz TestGetItem.test_1d_slicing7_npmG  r¢   r   c                 ó@   — t           }|                      ||¦  «         d S r   )r3   r¯   r±   s      r   Útest_1d_slicing8zTestGetItem.test_1d_slicing8J  r³   r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r¿   r�   r‘   s    r   Útest_1d_slicing8_npmz TestGetItem.test_1d_slicing8_npmN  r¢   r   c                 ó~  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «                             dd¦  «        }dD ]+}|  	                     ||g|¢R Ž  ||g|¢R Ž d	|›�¬
¦  «         Œ,dS )z
        arr_2d[a:b:c]
        ru   rl   rm   éd   rp   rq   ro   r•   z	for args )ÚmsgN)
r   r   r   r€   r   r�   r‚   rƒ   Úreshaper„   )	r…   rn   r†   r‡   rˆ   r‰   rŠ   r   r�   s	            r   Útest_2d_slicingzTestGetItem.test_2d_slicingQ  sä   € õ $ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{ÐCˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6ˆð.ð 	Að 	AˆDà×#Ò# F F¨1Ð$4¨tÐ$4Ð$4Ð$4°e°e¸A°oÀ°o°o°o°oØ9=¸Ð(?ð $ñ Aô Að Að Að	Að 	Ar   c                 ó<   — |                       t          ¬¦  «         d S r�   )rÆ   r�   r‘   s    r   Útest_2d_slicing_npmzTestGetItem.test_2d_slicing_npma  r“   r   c                 óÂ  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «                             dd¦  «        }g d¢}d	„ t          j
        ||¦  «        D ¦   «         }	|	D ](}
 ||g|
¢R Ž }|                       ||g|
¢R Ž |¦  «         Œ)t          j        t          j        dd
¦  «        }|t          j        t          j        t          j        t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «                             dd¦  «        ddd…ddd…f         }|	D ](}
 ||g|
¢R Ž }|                       ||g|
¢R Ž |¦  «         Œ)dS )z&
        arr_2d[a:b:c, d:e:f]
        ru   rl   rm   rÃ   rp   rq   ro   )	rs   rt   rw   rx   rz   )ro   r   ry   )r{   r   r0   r|   r~   c                 ó   — g | ]
\  }}||z   ‘ŒS r   r   )Ú.0Útup1Útup2s      r   ú
<listcomp>z0TestGetItem.test_2d_slicing2.<locals>.<listcomp>|  s6   € ð Ið Ið IÙ �T˜4ð �t‘ð Ið Ið Ir   r–   é�  r—   N)r;   r   r   r€   r   r�   r‚   rƒ   rÅ   Ú	itertoolsÚproductr„   )r…   rn   r†   r‡   rˆ   r‰   rŠ   r   r‹   r�   rž   rŒ   s               r   Útest_2d_slicing2zTestGetItem.test_2d_slicing2d  së  € õ
 $ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{Ý”+�uœ{­E¬Kð9ˆå˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6ˆð	ð 	ð 	ˆðIð IÝ$-Ô$5°g¸wÑ$GÔ$GðIñ Iô Iˆàð 	>ð 	>ˆCØ�v˜a� #���ˆHØ×#Ò# E E¨! N¨c N N N°HÑ=Ô=Ð=Ð=õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{Ý”+�uœ{­E¬Kð9ˆå˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6°s°s¸°s¸C¸C¸a¸C°xÔ@ˆàð 	>ð 	>ˆCØ�v˜a� #���ˆHØ×#Ò# E E¨! N¨c N N N°HÑ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rÒ   r�   r‘   s    r   Útest_2d_slicing2_npmz TestGetItem.test_2d_slicing2_npm�  r¢   r   c                 ó,  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «                             dd¦  «        }g d¢}|D ](}	 ||g|	¢R Ž }
|  	                     ||g|	¢R Ž |
¦  «         Œ)t          j        t          j        dd	¦  «        }|t          j        t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        d
d¬¦  «                             dd¦  «        ddd…ddd…f         }|D ](}	 ||g|	¢R Ž }
|  	                     ||g|	¢R Ž |
¦  «         Œ)dS )z"
        arr_2d[a:b:c, d]
        ru   rl   rm   rÃ   rp   rq   ro   ))r   ro   r   r   )ru   rv   r   r   )ro   r   ry   é   )r{   r   r0   é   )r   ro   ru   rv   )r   ry   rv   r   r–   rÏ   r—   N)
r>   r   r   r€   r   r�   r‚   rƒ   rÅ   r„   )r…   rn   r†   r‡   rˆ   r‰   rŠ   r   r�   rž   rŒ   s              r   Útest_2d_slicing3zTestGetItem.test_2d_slicing3’  s­  € õ
 %ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{Ý”+ðˆå˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6ˆð
ð 
ð 
ˆð ð 	>ð 	>ˆCØ�v˜a� #���ˆHØ×#Ò# E E¨! N¨c N N N°HÑ=Ô=Ð=Ð=õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{Ý”+ðˆå˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6°s°s¸°s¸C¸C¸a¸C°xÔ@ˆàð 	>ð 	>ˆCØ�v˜a� #���ˆHØ×#Ò# E E¨! N¨c N N N°HÑ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rØ   r�   r‘   s    r   Útest_2d_slicing3_npmz TestGetItem.test_2d_slicing3_npm¹  r¢   r   c                 óò  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «                             ddd¦  «        }g d¢}|D ]&}	|  	                     ||g|	¢R Ž  ||g|	¢R Ž ¦  «         Œ't          j        t          j        dd	¦  «        }|t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        d
d¬¦  «        d d d…                              ddd¦  «        }|D ]&}	|  	                     ||g|	¢R Ž  ||g|	¢R Ž ¦  «         Œ'd S ©Nrv   rl   rm   iè  rp   rq   ro   ))r   r{   r   rt   )r{   r   r   )r   r{   ry   )r   r{   ru   r–   iÐ  ru   )
rB   r   r   r€   r   r�   r‚   rƒ   rÅ   rš   rœ   s
             r   Útest_3d_slicingzTestGetItem.test_3d_slicing¼  s�  € å#ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{ÐCˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�d $Ð'Ñ'Ô'×/Ò/°°B¸Ñ;Ô;ˆð
ð 
ð 
ˆð ð 	>ð 	>ˆCØ×Ò˜V˜V A˜_¨˜_˜_˜_¨e¨e°A¨n¸¨n¨n¨nÑ=Ô=Ð=Ð=õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{ÐCˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�d $Ð'Ñ'Ô'¨¨¨!¨Ô,×4Ò4°R¸¸RÑ@Ô@ˆàð 	>ð 	>ˆCØ×Ò˜V˜V A˜_¨˜_˜_˜_¨e¨e°A¨n¸¨n¨n¨nÑ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rÝ   r�   r‘   s    r   Útest_3d_slicing_npmzTestGetItem.test_3d_slicing_npmÛ  r“   r   c                 óò  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «                             ddd¦  «        }g d¢}|D ]&}	|  	                     ||g|	¢R Ž  ||g|	¢R Ž ¦  «         Œ't          j        t          j        dd	¦  «        }|t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        d
d¬¦  «        d d d…                              ddd¦  «        }|D ]&}	|  	                     ||g|	¢R Ž  ||g|	¢R Ž ¦  «         Œ'd S rÜ   )
rD   r   r   r€   r   r�   r‚   rƒ   rÅ   rš   rœ   s
             r   Útest_3d_slicing2zTestGetItem.test_3d_slicing2Þ  s�  € å$ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{ÐCˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�d $Ð'Ñ'Ô'×/Ò/°°B¸Ñ;Ô;ˆð
ð 
ð 
ˆð ð 	>ð 	>ˆCØ×Ò˜V˜V A˜_¨˜_˜_˜_¨e¨e°A¨n¸¨n¨n¨nÑ=Ô=Ð=Ð=õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø�Uœ[­%¬+µu´{ÐCˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒI�d $Ð'Ñ'Ô'¨¨¨!¨Ô,×4Ò4°R¸¸RÑ@Ô@ˆàð 	>ð 	>ˆCØ×Ò˜V˜V A˜_¨˜_˜_˜_¨e¨e°A¨n¸¨n¨n¨nÑ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rá   r�   r‘   s    r   Útest_3d_slicing2_npmz TestGetItem.test_3d_slicing2_npmý  r¢   r   c                 óÜ  — t           }t          j        t          j        dd¦  «        }t	          ||t          j        f|¬¦  «        }|j        }t          j        dd¬¦  «        }|                       ||d¦  «         ||d¦  «        ¦  «         |                       ||d¦  «         ||d¦  «        ¦  «         |                       ||d	¦  «         ||d	¦  «        ¦  «         t          j        t          j        dd
¦  «        }t	          ||t          j        f|¬¦  «        }|j        }t          j        dd¬¦  «        d d d…         }|  	                    |j
        d         ¦  «         |  	                    |j
        d         ¦  «         |                       ||d¦  «         ||d¦  «        ¦  «         |                       ||d¦  «         ||d¦  «        ¦  «         |                       ||d	¦  «         ||d	¦  «        ¦  «         t          j        t          j        dd¦  «        }t          j        t          j        dd¦  «        }t	          |||f|¬¦  «        }|j        }t          j        ddt          j        ¬¦  «        }dD ]j}t          j        |¦  «                             t          j        ¦  «        }	|	j        dk    sJ ‚|                       |||	¦  «         |||	¦  «        ¦  «         Œkd S )Nr   rl   rm   ro   rp   rq   r   r{   ry   r–   ru   r˜   r™   rv   é   )r   r{   r0   )rH   r   r   r€   r   r�   r‚   rƒ   rš   r›   rn   Úint16ÚarrayÚastypeÚndim)
r…   rn   r†   r‡   r‰   rŠ   r   Ú	indextyper#   Úidxs
             r   Útest_1d_integer_indexingz$TestGetItem.test_1d_integer_indexing   s²  € å,ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f yµ%´+Ð&>ÀeÐLÑLÔLˆØ”ˆåŒI�b Ð%Ñ%Ô%ˆØ×Ò˜˜  1™œ u u¨Q°¡{¤{Ñ3Ô3Ð3Ø×Ò˜˜  1™œ u u¨Q°¡{¤{Ñ3Ô3Ð3Ø×Ò˜˜  2™œ¨¨¨a°©¬Ñ5Ô5Ð5õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f yµ%´+Ð&>ÀeÐLÑLÔLˆØ”ˆåŒI�b Ð%Ñ%Ô% c c¨ cÔ*ˆØ×Ò˜œ Ô0Ñ1Ô1Ð1Ø×Ò˜œ Ô0Ñ1Ô1Ð1Ø×Ò˜˜  1™œ u u¨Q°¡{¤{Ñ3Ô3Ð3Ø×Ò˜˜  1™œ u u¨Q°¡{¤{Ñ3Ô3Ð3Ø×Ò˜˜  2™œ¨¨¨a°©¬Ñ5Ô5Ð5õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ý”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f y°)Ð&<ÀEÐJÑJÔJˆØ”ˆåŒI�a˜¥2¤8Ð,Ñ,Ô,ˆØð 	<ð 	<ˆAÝ”(˜1‘+”+×$Ò$¥R¤XÑ.Ô.ˆCØ”8˜q’=�=�=�=Ø×Ò˜V˜V A s™^œ^¨U¨U°1°c©]¬]Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rì   r�   r‘   s    r   Útest_1d_integer_indexing_npmz(TestGetItem.test_1d_integer_indexing_npm$  ó   € Ø×%Ò%­GÐ%Ñ4Ô4Ð4Ð4Ð4r   c                 ó2  — t           }t          j        t          j        dd¦  «        }t	          ||t          j        f|¬¦  «        }|j        }t          j        dd¬¦  «                             dd¦  «        }|  	                     ||d¦  «         ||d¦  «        ¦  «         |  	                     ||d	¦  «         ||d	¦  «        ¦  «         |  	                     ||d
¦  «         ||d
¦  «        ¦  «         t          j        t          j        dd¦  «        }t	          ||t          j        f|¬¦  «        }|j        }t          j        dd¬¦  «                             dd¦  «        d d d…         }|  	                     ||d¦  «         ||d¦  «        ¦  «         d S )Nru   rl   rm   rÃ   rp   rq   ro   r   r{   ry   r–   r—   r¥   r×   )
rH   r   r   r€   r   r�   r‚   rƒ   rÅ   r„   ©r…   rn   r†   r‡   r‰   rŠ   r   s          r   Útest_integer_indexing_1d_for_2dz+TestGetItem.test_integer_indexing_1d_for_2d'  sv  € å,ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f yµ%´+Ð&>ÀeÐLÑLÔLˆØ”ˆåŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6ˆØ×Ò   q¨!¡¤¨e¨e°A°q©k¬kÑ:Ô:Ð:Ø×Ò   q¨!¡¤¨e¨e°A°q©k¬kÑ:Ô:Ð:Ø×Ò   q¨"¡¤¨u¨u°Q¸©|¬|Ñ<Ô<Ð<å”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f yµ%´+Ð&>ÀeÐLÑLÔLˆØ”ˆåŒI�b Ð%Ñ%Ô%×-Ò-¨a°Ñ3Ô3°C°C°a°CÔ8ˆØ×Ò   q¨!¡¤¨e¨e°A°q©k¬kÑ:Ô:Ð:Ð:Ð:r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rò   r�   r‘   s    r   Ú#test_integer_indexing_1d_for_2d_npmz/TestGetItem.test_integer_indexing_1d_for_2d_npm:  s   € Ø×,Ò,µ7Ð,Ñ;Ô;Ð;Ð;Ð;r   c           	      óÒ  — t          j        dd¬¦  «                             dd¦  «        }t          j        t          j        dd¦  «        }t          ||t          j        t          j        f|¬¦  «        }|j        }|                       ||dd	¦  «         ||dd	¦  «        ¦  «         |                       ||d
d
¦  «         ||d
d
¦  «        ¦  «         |                       ||dd¦  «         ||dd¦  «        ¦  «         t          j        dd¬¦  «                             dd¦  «        d d d…d d d…f         }|  	                    |j
        d         ¦  «         |  	                    |j
        d         ¦  «         t          j        t          j        dd¦  «        }t          ||t          j        t          j        f|¬¦  «        }|j        }|                       ||dd¦  «         ||dd¦  «        ¦  «         |                       ||dd¦  «         ||dd¦  «        ¦  «         |                       ||dd¦  «         ||dd¦  «        ¦  «         t          j        dd¬¦  «                             dd¦  «        }t          j        t          j        dd¦  «        }t          j        t          j        dd¦  «        }t          ||||f|¬¦  «        }|j        }dD ]“\  }}	t          j        |¦  «                             t           j        ¦  «        }t          j        |	¦  «                             t           j        ¦  «        }	|                       ||||	¦  «         ||||	¦  «        ¦  «         Œ”d S )NrÃ   rp   rq   ro   ru   rl   rm   r   rv   r{   r0   ry   r˜   r™   r–   r   ))r   rv   )rÖ   r{   )r0   ry   )r‚   rƒ   rÅ   r   r   r€   r   r�   rš   r›   rn   rç   rè   )
r…   rn   r†   r   r‡   r‰   rŠ   rê   r#   rS   s
             r   Útest_2d_integer_indexingz$TestGetItem.test_2d_integer_indexing=  s:  € õ ŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f yµ%´+½u¼{Ð&KØ$)ð+ñ +ô +ˆà”ˆà×Ò˜˜  1 a™œ¨%¨%°°1°a©.¬.Ñ9Ô9Ð9Ø×Ò˜˜  1 a™œ¨%¨%°°1°a©.¬.Ñ9Ô9Ð9Ø×Ò˜˜  2 rÑ*Ô*¨E¨E°!°R¸Ñ,<Ô,<Ñ=Ô=Ð=õ ŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6°s°s¸°s¸C¸C¸a¸C°xÔ@ˆØ×Ò˜œ Ô0Ñ1Ô1Ð1Ø×Ò˜œ Ô0Ñ1Ô1Ð1å”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f yµ%´+½u¼{Ð&KØ$)ð+ñ +ô +ˆà”ˆà×Ò˜˜  1 a™œ¨%¨%°°1°a©.¬.Ñ9Ô9Ð9Ø×Ò˜˜  1 a™œ¨%¨%°°1°a©.¬.Ñ9Ô9Ð9Ø×Ò˜˜  2 rÑ*Ô*¨E¨E°!°R¸Ñ,<Ô,<Ñ=Ô=Ð=õ ŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ý”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f y°)¸YÐ&GØ$)ð+ñ +ô +ˆà”ˆà.ð 	>ð 	>‰DˆAˆqÝ”˜‘”×"Ò"¥2¤8Ñ,Ô,ˆAÝ”˜‘”×"Ò"¥2¤8Ñ,Ô,ˆAØ×Ò˜V˜V A q¨!™_œ_¨e¨e°A°q¸!©n¬nÑ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rö   r�   r‘   s    r   Útest_2d_integer_indexing_npmz(TestGetItem.test_2d_integer_indexing_npme  rï   r   c                 ó~   — |                       t          ¬¦  «         |                       t          t          ¬¦  «         d S )N)r†   )rn   r†   )rö   rO   r�   r‘   s    r   Útest_2d_integer_indexing2z%TestGetItem.test_2d_integer_indexing2h  sK   € Ø×%Ò%Õ-IÐ%ÑJÔJÐJØ×%Ò%­GÝ-Ið 	&ñ 	Kô 	Kð 	Kð 	Kð 	Kr   c                 óª  ‡— t           d„ ¦   «         Št           ˆfd„¦   «         }t          j        d¦  «                             dd¦  «        }|                       ||dd¦  «        |d         d         ¦  «         |                       ||dd¦  «        |d         d         ¦  «         |                       ||dd¦  «        |d         d         ¦  «         d S )	Nc                 ó   — | |         S r   r   )ÚXÚi0s     r   Úindex1z=TestGetItem.test_2d_integer_indexing_via_call.<locals>.index1n  s   € à�R”5ˆLr   c                 ó(   •—  ‰| |         |¦  «        S r   r   )rý   rþ   rK   rÿ   s      €r   rA   z=TestGetItem.test_2d_integer_indexing_via_call.<locals>.index2q  s   ø€ à�6˜!˜Bœ% Ñ$Ô$Ð$r   ro   ru   r¥   r   r   ry   )r   r‚   rƒ   rÅ   rš   )r…   rA   r   rÿ   s      @r   Ú!test_2d_integer_indexing_via_callz-TestGetItem.test_2d_integer_indexing_via_callm  sâ   ø€ Ý	ð	ð 	ñ 
Œð	å	ð	%ð 	%ð 	%ð 	%ñ 
Œð	%åŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆØ×Ò˜˜  1 a™œ¨!¨A¬$¨q¬'Ñ2Ô2Ð2Ø×Ò˜˜  1 a™œ¨!¨A¬$¨q¬'Ñ2Ô2Ð2Ø×Ò˜˜  2 rÑ*Ô*¨A¨b¬E°"¬IÑ6Ô6Ð6Ð6Ð6r   c                 ó  — t          j        dd¬¦  «                             dd¦  «        }t          }t	          j        t          j        dd¦  «        }t          ||t          j        t          j        f|¬¦  «        }|j	        }|  
                     ||dd¦  «         ||dd¦  «        ¦  «         |  
                     ||d	d	¦  «         ||d	d	¦  «        ¦  «         |  
                     ||d
d
¦  «         ||d
d
¦  «        ¦  «         d S )NrÃ   rp   rq   ro   ru   rl   rm   r   r{   ry   )r‚   rƒ   rÅ   rM   r   r   r€   r   Úfloat32r�   rš   )r…   rn   r   r†   r‡   r‰   rŠ   s          r   Útest_2d_float_indexingz"TestGetItem.test_2d_float_indexingy  s  € ÝŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6ˆÝ,ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f yµ%´-ÅÄÐ&MØ$)ð+ñ +ô +ˆà”ˆà×Ò˜˜  1 a™œ¨%¨%°°1°a©.¬.Ñ9Ô9Ð9Ø×Ò˜˜  1 a™œ¨%¨%°°1°a©.¬.Ñ9Ô9Ð9Ø×Ò˜˜  2 rÑ*Ô*¨E¨E°!°R¸Ñ,<Ô,<Ñ=Ô=Ð=Ð=Ð=r   c                 óB  ‡ ‡‡— t           Šˆˆˆ fd„}t          j        dd¬¦  «                             d¦  «        }t	          j        t          j        dd¦  «        } |||¦  «         t          j        dd¬¦  «                             d¦  «        j        }t	          j        t          j        dd	¦  «        } |||¦  «         t          j        dd¬¦  «                             d¦  «        d d d…         }t	          j        t          j        dd
¦  «        } |||¦  «         d S )Nc                 ón  •— t          ‰|t          j        f‰¬¦  «        }|j        }‰                      ‰| d¦  «         || d¦  «        ¦  «         | j        d         dz
  }‰                      ‰| |¦  «         || |¦  «        ¦  «         ‰                      ‰| d¦  «         || d¦  «        ¦  «         d S )Nrm   r   r   ry   )r   r   r€   r�   rš   r    )Úarrr‡   r‰   rŠ   Únrn   r†   r…   s        €€€r   Úcheckz3TestGetItem.test_partial_1d_indexing.<locals>.checkˆ  sÀ   ø€ Ý! &¨9µe´kÐ*BØ(-ð/ñ /ô /ˆBà”NˆEØ×Ò˜V˜V C¨™^œ^¨U¨U°3¸©]¬]Ñ;Ô;Ð;Ø”	˜!”˜qÑ ˆAØ×Ò˜V˜V C¨™^œ^¨U¨U°3¸©]¬]Ñ;Ô;Ð;Ø×Ò˜V˜V C¨™_œ_¨e¨e°C¸©n¬nÑ=Ô=Ð=Ð=Ð=r   é   rp   rq   )r×   rv   ru   rl   )rv   r×   ÚFr–   )rF   r‚   rƒ   rÅ   r   r   r€   ÚT)r…   rn   r	  r   r‡   r†   s   ``   @r   Útest_partial_1d_indexingz$TestGetItem.test_partial_1d_indexing…  s  øøø€ Ý#ˆð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>õ ŒI�b Ð%Ñ%Ô%×-Ò-¨fÑ5Ô5ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Øˆˆa�ÑÔÐåŒI�b Ð%Ñ%Ô%×-Ò-¨fÑ5Ô5Ô7ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Øˆˆa�ÑÔÐåŒI�b Ð%Ñ%Ô%×-Ò-¨fÑ5Ô5°c°c¸°cÔ:ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Øˆˆa�ÑÔÐÐÐr   c                 óò   ‡‡‡— ˆˆfd„Šˆˆfd„} |t          j        dd¬¦  «                             dd¦  «        ¦  «          |t          j        dd¬¦  «                             ddd¦  «        ¦  «         d S )	Nc                 ó~   •— t          ‰t          | ¦  «        t          j        t          j        f‰¬¦  «        }|j        S r�   )r   r   r   r   r�   )r  r‰   rn   r†   s     €€r   Úcompile_funcz0TestGetItem.check_ellipsis.<locals>.compile_funcž  s7   ø€ Ý! &­6°#©;¬;½¼
ÅEÄJÐ*OØ(-ð/ñ /ô /ˆBà”>Ð!r   c           	      óÞ   •— d} ‰| ¦  «        }t          j        ||¦  «        D ]H\  }} || ||¦  «        }t          j                              ‰| ||¦  «         || ||¦  «        ¦  «         ŒId S )N)r   r   ru   ry   r0   )rÐ   rÑ   r‚   ÚtestingÚassert_equal)r   ÚboundsrŠ   r#   rS   Úxr  r†   s         €€r   Úrunz'TestGetItem.check_ellipsis.<locals>.run£  s‡   ø€ Ø&ˆFØ �L ‘O”OˆEÝ!Ô)¨&°&Ñ9Ô9ð Ið I‘��1Ø�E˜!˜Q ‘N”N�Ý”
×'Ò'¨¨¨q°!°Q©¬¸¸¸qÀ!ÀQ¹¼ÑHÔHÐHÐHðIð Ir   é   rp   rq   r×   é   rv   )r‚   rƒ   rÅ   )r…   r†   rn   r  r  s    `` @r   Úcheck_ellipsiszTestGetItem.check_ellipsis�  s¯   øøø€ ð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð
	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	ˆ�BŒI�b Ð%Ñ%Ô%×-Ò-¨a°Ñ3Ô3Ñ4Ô4Ð4Øˆ�BŒI�b Ð%Ñ%Ô%×-Ò-¨a°°AÑ6Ô6Ñ7Ô7Ð7Ð7Ð7r   c                 ó<   — |                       t          |¦  «         d S r   )r  rT   ©r…   rn   s     r   Útest_ellipsis1zTestGetItem.test_ellipsis1­  ó   € Ø×ÒÕ-¨uÑ5Ô5Ð5Ð5Ð5r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r  r�   r‘   s    r   Útest_ellipsis1_npmzTestGetItem.test_ellipsis1_npm°  ó   € Ø×Ò¥'ÐÑ*Ô*Ð*Ð*Ð*r   c                 ó<   — |                       t          |¦  «         d S r   )r  rV   r  s     r   Útest_ellipsis2zTestGetItem.test_ellipsis2³  r  r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r"  r�   r‘   s    r   Útest_ellipsis2_npmzTestGetItem.test_ellipsis2_npm¶  r   r   c                 ó<   — |                       t          |¦  «         d S r   )r  rX   r  s     r   Útest_ellipsis3zTestGetItem.test_ellipsis3¹  r  r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r&  r�   r‘   s    r   Útest_ellipsis3_npmzTestGetItem.test_ellipsis3_npm¼  r   r   c                 óþ   — t           d„ ¦   «         }|j        }d}d}t          j        ||z  ¦  «                             ||¦  «        } ||¦  «        } ||¦  «        }t          j                             ||¦  «         d S )Nc                 óŒ   — t          j        | ¦  «        }d}t          j        | d|f         ¦  «        D ]\  }}|||         |<   Œ|S )Nr   .)r‚   Ú
zeros_likeÚndenumerate)r  Úoutr#   r=   Úvals        r   Úudtz0TestGetItem.test_ellipsis_issue1498.<locals>.udtÂ  sO   € å”- Ñ$Ô$ˆCØˆAÝ œn¨S°°a°¬[Ñ9Ô9ð $ð $‘
��sØ #��E”
˜1‘�àˆJr   r×   )r   Úpy_funcr‚   rƒ   rÅ   r  r  )r…   r/  r0  Ú	outersizeÚ	innersizer  ÚgotrŒ   s           r   Útest_ellipsis_issue1498z#TestGetItem.test_ellipsis_issue1498¿  sŒ   € õ 
ð	ð 	ñ 
Œð	ð ”+ˆàˆ	Øˆ	ÝŒi˜	 IÑ-Ñ.Ô.×6Ò6°yÀ)ÑLÔLˆØˆc�#‰hŒhˆØ�7˜3‘<”<ˆÝ
Œ
×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 óÎ   — t           d„ ¦   «         }t          j        d¦  «        } ||¦  «        }|                     |¦  «        }t          j                             ||¦  «         d S )Nc                 ó   — | d         S )N).r   r   )r  s    r   r/  z0TestGetItem.test_ellipsis_issue1499.<locals>.udt×  s   € à�v”;Ðr   rv   )r   r‚   rƒ   r0  r  r  )r…   r/  r  r3  rŒ   s        r   Útest_ellipsis_issue1499z#TestGetItem.test_ellipsis_issue1499Ô  sh   € õ 
ð	ð 	ñ 
Œð	õ Œi˜‰lŒlˆØˆc�#‰hŒhˆØ—;’;˜sÑ#Ô#ˆÝ
Œ
×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 ó,  — t           }t          j        t          j        dd¦  «        }t	          ||f|¬¦  «        }|j        }t          j        dd¬¦  «                             dd¦  «        }|  	                     ||¦  «         ||¦  «        ¦  «         d S )Nru   rl   rm   rÃ   rp   rq   ro   )
r[   r   r   r€   r   r�   r‚   rƒ   rÅ   r„   rñ   s          r   Útest_none_indexzTestGetItem.test_none_indexà  s‰   € Ý#ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	å˜f y l¸%Ð@Ñ@Ô@ˆØ”ˆåŒI�c Ð&Ñ&Ô&×.Ò.¨r°2Ñ6Ô6ˆØ×Ò   q¡	¤	¨5¨5°©8¬8Ñ4Ô4Ð4Ð4Ð4r   c                 ó–   — |                       ¦   «         5  |                      t          ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r�   )ÚassertTypingErrorr9  r�   r‘   s    r   Útest_none_index_npmzTestGetItem.test_none_index_npmê  s�   € Ø×#Ò#Ñ%Ô%ð 	0ð 	0Ø× Ò ¥wÐ Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s   •>¾AÁAc                 ó*  — t           }t          j        t          j        dd¦  «        }t	          ||f|¬¦  «        }|j        }t          j        dd¬¦  «                             d¦  «        }|  	                     ||¦  «         ||¦  «        ¦  «         d S )Nr   rl   rm   r   rp   rq   r   )
r]   r   r   r€   r   r�   r‚   rƒ   rÅ   r„   rñ   s          r   Útest_empty_tuple_indexingz%TestGetItem.test_empty_tuple_indexingî  s‡   € Ý$ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f y l¸%Ð@Ñ@Ô@ˆØ”ˆåŒI�a˜tÐ$Ñ$Ô$×,Ò,¨RÑ0Ô0ˆØ×Ò   q¡	¤	¨5¨5°©8¬8Ñ4Ô4Ð4Ð4Ð4r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r>  r�   r‘   s    r   Útest_empty_tuple_indexing_npmz)TestGetItem.test_empty_tuple_indexing_npm÷  ó   € Ø×&Ò&­WÐ&Ñ5Ô5Ð5Ð5Ð5r   N)8Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úenable_pyobj_flagsr�   r’   rŸ   r¡   r¦   r¨   rª   r¬   r¯   r²   rµ   r·   r¹   r»   r½   r¿   rÁ   rÆ   rÈ   rÒ   rÔ   rØ   rÚ   rÝ   rß   rá   rã   rì   rî   rò   rô   rM   rö   rø   rú   r  r  r  r  r  r  r"  r$  r&  r(  r4  r7  r9  r<  r>  r@  r   r   r   rj   rj   œ   s  € € € € € ðð ð
 %7ð Bð Bð Bð Bð(,ð ,ð ,ð &8ð $>ð $>ð $>ð $>ðL-ð -ð -ð &8ð >ð >ð >ð >ð@-ð -ð -ð &8ð .ð .ð .ð .ð*-ð -ð -ð<ð <ð <ð0 &8ð 6ð 6ð 6ð 6ð-ð -ð -ð &8ð 6ð 6ð 6ð 6ð-ð -ð -ð &8ð 6ð 6ð 6ð 6ð-ð -ð -ð &8ð 6ð 6ð 6ð 6ð-ð -ð -ð %7ð Að Að Að Að ,ð ,ð ,ð &8ð )>ð )>ð )>ð )>ðV-ð -ð -ð &8ð %>ð %>ð %>ð %>ðN-ð -ð -ð %7ð >ð >ð >ð >ð>,ð ,ð ,ð &8ð >ð >ð >ð >ð>-ð -ð -ð .@ð "<ð "<ð "<ð "<ðH5ð 5ð 5ð 5Gð ;ð ;ð ;ð ;ð&<ð <ð <ð .@Ø(Cð&>ð &>ð &>ð &>ðP5ð 5ð 5ðKð Kð Kð

7ð 
7ð 
7ð ,>ð 
>ð 
>ð 
>ð 
>ð .@ð ð ð ð ð08ð 8ð 8ð  $6ð 6ð 6ð 6ð 6ð+ð +ð +ð $6ð 6ð 6ð 6ð 6ð+ð +ð +ð $6ð 6ð 6ð 6ð 6ð+ð +ð +ð/ð /ð /ð*
/ð 
/ð 
/ð %7ð 5ð 5ð 5ð 5ð0ð 0ð 0ð /Að 5ð 5ð 5ð 5ð6ð 6ð 6ð 6ð 6r   rj   c                   ó°   — e Zd ZdZefd„Zefd„Zd„ Zefd„Zefd„Z	efd„Z
efd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zefd„Zefd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestSetItemzk
    Test basic indexed store into an array.
    Note fancy indexing is tested in test_fancy_indexing.
    c                 óì   — ddl m} d„ }  |d¦  «        |¦  «        }t          j        dd¬¦  «        }|                     ¦   «         } ||¦  «          ||¦  «         |                      ||¦  «         dS )	z9 this used to work, and was used in one of the tutorials r   )Újitc                 óx   — t          t          | ¦  «        ¦  «        D ]}|t          j        d¦  «        z  | |<   Œd S )NrÃ   )r   ÚlenÚdecimalÚDecimal)rç   r=   s     r   r†   z3TestSetItem.test_conversion_setitem.<locals>.pyfunc  sC   € Ý�s 5™zœzÑ*Ô*ð <ð <�Ø$¥w¤°sÑ';Ô';Ñ;��e‘�ð<ð <r   zvoid(i8[:])rÃ   rK   rq   N)ÚnumbarJ  r‚   rƒ   Úcopyr„   )r…   rn   rJ  r†   rŠ   r/  Úcontrols          r   Útest_conversion_setitemz#TestSetItem.test_conversion_setitem  s•   € àÐÐÐÐÐð	<ð 	<ð 	<ð #���MÑ"Ô" 6Ñ*Ô*ˆåŒi˜ 4Ð(Ñ(Ô(ˆØ—(’(‘*”*ˆØˆˆw‰ŒˆØˆˆc‰
Œ
ˆ
Ø×Ò  WÑ-Ô-Ð-Ð-Ð-r   c                 ó@  ‡— t           }t          j        t          j        dd¦  «        }t          j        t          j        dd¦  «        }||t          j        t          j        t          j        f}t          |||¬¦  «        }|j        }d}t          j        |d¬¦  «        dz   Šd	d
|d
z
  ||dz   |dz   d| d
z   | | dz
  | dz
  g}	ˆfd„}
t          j
        |	|	¦  «        D ]^\  }}dD ]V}|||f}t          |Ž } | |
¦   «         ‰|         g|¢R Ž } | |
¦   «         ‰|         g|¢R Ž }|                      ||¦  «         ŒWŒ_|                      t          ¦  «        5   |t          j        ‰t          j        ¬¦  «        ‰d	d	d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z+
        1d to 1d slice assignment
        r   rl   r–   rm   ro   rL   rq   é(   r   ru   rv   r0   c                  ó0   •— t          j        ‰ d¬¦  «        S )Nrp   rq   )r‚   r+  )rž   s   €r   Ú	make_destz2TestSetItem.test_1d_slicing_set.<locals>.make_dest"  s   ø€ Ý”= ¨DÐ1Ñ1Ô1Ð1r   ©r   ru   ry   r0   N)rd   r   r   r€   ræ   r   r�   r‚   rƒ   rÐ   rÑ   Úslicer„   ÚassertRaisesÚ
ValueErrorr+  )r…   rn   r†   Ú	dest_typeÚsrc_typerˆ   r‰   rŠ   ÚNr  rV  r   r   r   r�   r=   ÚpyleftÚcleftrž   s                     @r   Útest_1d_slicing_setzTestSetItem.test_1d_slicing_set  s<  ø€ õ (ˆõ ”K¥¤¨Q°Ñ4Ô4ˆ	Ý”;�uœ{¨A¨sÑ3Ô3ˆØ˜X¥u¤{µE´KÅÄÐMˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆàˆÝŒi˜ Ð&Ñ&Ô&¨Ñ+ˆØ�Q˜˜A™˜q ! a¡%¨¨Q©Ø�q�b˜1‘f˜q˜b 1 " q¡&¨1¨"¨q©&ð2ˆð	2ð 	2ð 	2ð 	2ð 	2å$Ô,¨V°VÑ<Ô<ð 	7ð 	7‰KˆE�4Ø&ð 7ð 7�Ø˜d DÐ(�Ý˜t˜�Ø˜ 	 	¡¤¨S°¬ZÐ?¸$Ð?Ð?Ð?�Ø˜˜i˜i™kœk¨3¨u¬:Ð=¸Ð=Ð=Ð=�Ø×'Ò'¨°Ñ6Ô6Ð6Ð6ð7ð ×Ò�zÑ*Ô*ð 	Dð 	DØˆE•"”- ­2¬8Ð4Ñ4Ô4°c¸1¸aÀÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð 	Dð 	Ds   Å.FÆFÆFc                 ó”  — t           }t          j        t          j        dd¦  «        }||t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }d}	t          |¦  «        }
t          j        |	t          j        ¬¦  «        }|d|	 |
z   dz   df} || 	                    ¦   «         g|¢R Ž } || 	                    ¦   «         g|¢R Ž }|  
                    ||¦  «         |d|	 |
z   df}|                      t          ¦  «        5 } || 	                    ¦   «         g|¢R Ž  ddd¦  «         dS # 1 swxY w Y   dS )z9
        Generic sequence to 1d slice assignment
        r   rl   rm   ro   rq   N)rd   r   r   r€   r   r�   rL  r‚   rƒ   rP  r„   rY  rZ  )r…   rn   ÚseqtyÚseqr†   r[  rˆ   r‰   rŠ   r]  Úkrž   r�   rŒ   r3  Úraisess                   r   Úcheck_1d_slicing_set_sequencez)TestSetItem.check_1d_slicing_set_sequence0  sŠ  € õ (ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø˜U¥E¤Kµ´½e¼kÐJˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆàˆÝ�‰HŒHˆÝŒi˜¥¤Ð*Ñ*Ô*ˆØ�Q˜˜˜Q™ ™
 AÐ&ˆØ�6˜#Ÿ(š(™*œ*Ð, tÐ,Ð,Ð,ˆØˆe�C—H’H‘J”JÐ& Ð&Ð&Ð&ˆØ×Ò ¨#Ñ.Ô.Ð.à�Q˜˜˜Q™ Ð"ˆØ×Ò�zÑ*Ô*ð 	%¨fØˆE�#—(’(‘*”*Ð$˜tÐ$Ð$Ð$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ÄD=Ä=EÅEc                 ón   — |                       |t          j        t          j        d¦  «        d¦  «         dS )z.
        Tuple to 1d slice assignment
        ru   )rÖ   éÖÿÿÿN)rf  r   ÚUniTupleræ   r  s     r   Útest_1d_slicing_set_tuplez%TestSetItem.test_1d_slicing_set_tupleF  s;   € ð 	×*Ò*Ø•5”>¥%¤+¨qÑ1Ô1°8ñ	=ô 	=ð 	=ð 	=ð 	=r   c                 óp   — |                       |t          j        t          j        ¦  «        ddg¦  «         dS )z-
        List to 1d slice assignment
        rÖ   rh  N)rf  r   ÚListræ   r  s     r   Útest_1d_slicing_set_listz$TestSetItem.test_1d_slicing_set_listM  s=   € ð 	×*Ò*Ø•5”:�eœkÑ*Ô*¨Q°¨Hñ	6ô 	6ð 	6ð 	6ð 	6r   c                 óB  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        t          j        f}t          |||¬¦  «        }|j        }d}t          j        |d¬¦  «        }d}	dd	|d	z
  ||dz   |d
z   d| d	z   | | dz
  | d
z
  g}
t          j
        |
|
¦  «        D ]\\  }}dD ]T}|	|||f} ||                     ¦   «         g|¢R Ž } ||                     ¦   «         g|¢R Ž }|                      ||¦  «         ŒUŒ]dS )z/
        scalar to 1d slice assignment
        r   rl   rm   ro   rp   rq   é*   r   ru   rv   r0   rW  N)rd   r   r   r€   ræ   r   r�   r‚   rƒ   rÐ   rÑ   rP  r„   )r…   rn   r†   r‡   rˆ   r‰   rŠ   r]  rž   r.  r  r   r   r   r�   r^  r_  s                    r   Útest_1d_slicing_broadcastz%TestSetItem.test_1d_slicing_broadcastT  sS  € õ (ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	ð �Uœ[­%¬+µu´{ÅEÄKÐPˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆàˆÝŒi˜ Ð&Ñ&Ô&ˆØˆØ�Q˜˜A™˜q ! a¡%¨¨Q©Ø�q�b˜1‘f˜q˜b 1 " q¡&¨1¨"¨q©&ð2ˆå$Ô,¨V°VÑ<Ô<ð 	7ð 	7‰KˆE�4Ø&ð 7ð 7�Ø˜E 4¨Ð-�Ø˜ §¢¡
¤
Ð2¨TÐ2Ð2Ð2�Ø˜˜cŸhšh™jœjÐ0¨4Ð0Ð0Ð0�Ø×'Ò'¨°Ñ6Ô6Ð6Ð6ð	7ð	7ð 	7r   c                 óÀ  — t           }t          j        t          j        dd¦  «        }||t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «        }dD ]j} |t          j        |¦  «        |t          |Ž          g|¢R Ž }	 |t          j        |¦  «        |t          |Ž          g|¢R Ž }
|  
                    |	|
¦  «         Œkd S )Nr   rl   rm   ro   rp   rq   )r¤   )ru   r¥   )rf   r   r   r€   r   r�   r‚   rƒ   r+  rX  r„   )r…   rn   r†   r‡   rˆ   r‰   rŠ   rž   Útestr^  r_  s              r   Útest_1d_slicing_addzTestSetItem.test_1d_slicing_addl  sç   € Ý'ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø˜Y­¬µU´[ÐAˆÝ˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒi˜ $Ð'Ñ'Ô'ˆØ%ð 	3ð 	3ˆDØ�V�BœM¨#Ñ.Ô.°µE¸4°LÔ0AÐIÀDÐIÐIÐIˆFØ�E�"œ-¨Ñ,Ô,¨cµ%¸°,Ô.?ÐGÀ$ÐGÐGÐGˆEØ×#Ò# F¨EÑ2Ô2Ð2Ð2ð	3ð 	3r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r`  r�   r‘   s    r   Útest_1d_slicing_set_npmz#TestSetItem.test_1d_slicing_set_npmy  ó   € Ø× Ò ¥wÐ Ñ/Ô/Ð/Ð/Ð/r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rm  r�   r‘   s    r   Útest_1d_slicing_set_list_npmz(TestSetItem.test_1d_slicing_set_list_npm|  rï   r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rj  r�   r‘   s    r   Útest_1d_slicing_set_tuple_npmz)TestSetItem.test_1d_slicing_set_tuple_npm  rA  r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rp  r�   r‘   s    r   Útest_1d_slicing_broadcast_npmz)TestSetItem.test_1d_slicing_broadcast_npm‚  rA  r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rs  r�   r‘   s    r   Útest_1d_slicing_add_npmz#TestSetItem.test_1d_slicing_add_npm…  rv  r   c                 ó¬  — t           }t          j        t          j        dd¦  «        }||t          j        t          j        t          j        t          j        t          j        t          j        f}t	          |||¬¦  «        }|j        }t          j        dd¬¦  «                             dd¦  «        }g d¢}|D ]œ}	 |t          j	        |¦  «        |t          |	d	d
…         Ž t          |	d
d…         Ž f         g|	¢R Ž }
 |t          j	        |¦  «        |t          |	d	d
…         Ž t          |	d
d…         Ž f         g|	¢R Ž }|                      ||
¦  «         Œ�dS )z+
        2d to 2d slice assignment
        ru   r–   rm   rÃ   rp   rq   ro   ©)r   ro   r   r   ro   r   )ru   rv   r   ru   rv   r   )ro   r   r   ro   r   r   )r   ro   ry   r   ro   ry   )r   ro   ru   r   ro   ru   r   rv   é   N)rh   r   r   r€   r   r�   r‚   rƒ   rÅ   r+  rX  r„   )r…   rn   r†   r‡   rˆ   r‰   rŠ   rž   Útestsrr  r^  r_  s               r   Útest_2d_slicing_setzTestSetItem.test_2d_slicing_setˆ  s]  € õ (ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ø˜Y­¬µU´[Å%Ä+Ý”+�uœ{­E¬Kð9ˆå˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒi˜ TÐ*Ñ*Ô*×2Ò2°2°bÑ9Ô9ˆð
ð 
ð 
ˆð ð 	3ð 	3ˆDØ�V�BœM¨#Ñ.Ô.°µE¸4ÀÀ!À¼9Ð4EÅuÈdÐSTÐUVÐSVÌiÐGXÐ4XÔ0YÐaÐ\`ÐaÐaÐaˆFØ�E�"œ-¨Ñ,Ô,¨cµ%¸¸aÀ¸c¼Ð2CÅUÈDÐQRÐSTÐQTÌIÐEVÐ2VÔ.WÐ_ÐZ^Ð_Ð_Ð_ˆEØ×#Ò# E¨6Ñ2Ô2Ð2Ð2ð	3ð 	3r   c                 ó,  — t           }t          j        t          j        dd¦  «        }|t          j        t          j        t          j        t          j        t          j        t          j        t          j        f}t          |||¬¦  «        }|j        }t          j        dd¬¦  «         	                    dd¦  «        }d}g d	¢}	|	D ]P}
 || 
                    ¦   «         |g|
¢R Ž } || 
                    ¦   «         |g|
¢R Ž }|                      ||¦  «         ŒQd
S )z/
        scalar to 2d slice assignment
        ru   rl   rm   rÃ   rp   rq   ro   ro  r€  N)rh   r   r   r€   ræ   r   r�   r‚   rƒ   rÅ   rP  r„   )r…   rn   r†   r‡   rˆ   r‰   rŠ   rž   r.  r‚  rr  r^  r_  s                r   Útest_2d_slicing_broadcastz%TestSetItem.test_2d_slicing_broadcast   s  € õ (ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	ð �Uœ[­%¬+µu´{ÅEÄKÝ”+�uœ{­E¬Kð9ˆå˜f f°EÐ:Ñ:Ô:ˆØ”ˆåŒi˜ TÐ*Ñ*Ô*×2Ò2°2°bÑ9Ô9ˆØˆð
ð 
ð 
ˆð ð 	3ð 	3ˆDØ�V˜CŸHšH™JœJ¨Ð3¨dÐ3Ð3Ð3ˆFØ�E˜#Ÿ(š(™*œ* cÐ1¨DÐ1Ð1Ð1ˆEØ×#Ò# E¨6Ñ2Ô2Ð2Ð2ð	3ð 	3r   c                 ó<   — |                       t          ¬¦  «         d S r�   )rƒ  r�   r‘   s    r   Útest_2d_slicing_set_npmz#TestSetItem.test_2d_slicing_set_npm»  rv  r   c                 ó<   — |                       t          ¬¦  «         d S r�   )r…  r�   r‘   s    r   Útest_2d_slicing_broadcast_npmz)TestSetItem.test_2d_slicing_broadcast_npm¾  rA  r   c                 óL  — t          j        d¦  «        }t          |dd¦  «         |                      |                     ¦   «         g d¢¦  «         t          |t          j        d¦  «                             t           j        ¦  «        d¦  «         |                      |                     ¦   «         g d¢¦  «         t          j        d¦  «                             dd¦  «        }t          |dd¦  «         |                      |                     ¦   «         g d	¢g d
¢g d¢g¦  «         dS )z+
        scalar indexed assignment
        r¥   r   ro  )r   ro  ru   rv   r×   rv   rÖ   )r   ro  ru   rÖ   r×   r{   )r   r   ru   )ro  ro  ro  )r�  é   rÖ   N)	r‚   rƒ   r`   rš   Útolistrç   rè   Úuint16rÅ   )r…   r  s     r   Útest_setitemzTestSetItem.test_setitemÁ  sý   € õ Œi˜‰lŒlˆÝ˜˜Q Ñ#Ô#Ð#Ø×Ò˜Ÿš™œÐ'7Ð'7Ð'7Ñ8Ô8Ð8å˜�RœX a™[œ[×/Ò/µ´	Ñ:Ô:¸AÑ>Ô>Ð>Ø×Ò˜Ÿš™œÐ'7Ð'7Ð'7Ñ8Ô8Ð8åŒi˜‰lŒl×"Ò" 1 aÑ(Ô(ˆÝ˜˜Q Ñ#Ô#Ð#Ø×Ò˜Ÿš™œ¨	¨	¨	°<°<°<ÀÀÀÐ'KÑLÔLÐLÐLÐLr   c           	      óö  — t          j        d¦  «        }t          |d¦  «         |                      |                     ¦   «         dgdz  ¦  «         t          j        d¦  «                             dd¦  «        }t          |t          j        dd¦  «        ¦  «         |                      |                     ¦   «         g d¢g d¢g¦  «         t          j        d¦  «                             dd¦  «        }t          |t          j        dd¦  «                             dd¦  «        ¦  «         |                      |                     ¦   «         g d¢g d¢g¦  «         t          j        d	¦  «                             dddd¦  «        }t          |t          j        dd¦  «                             dd¦  «        ¦  «         g d¢g d¢g}|                      |                     ¦   «         |ggdz  ¦  «         t          j        d¦  «        }t          |t          j        dd¦  «                             dd¦  «        ¦  «         |                      |                     ¦   «         g d
¢¦  «         t          j        d¦  «                             dd¦  «        }t          |t          j        dd|j        z   ¦  «                             dddd¦  «        ¦  «         |                      |                     ¦   «         g d¢g d¢g¦  «         dS )z.
        broadcasted array assignment
        r¥   ro  r�  ru   rv   r   r×   )r   ru   rv   r
  )r   ru   rv   r×   r¥   )r×   r¥   r�  N)r‚   rƒ   rb   rš   rŒ  rÅ   Úsize)r…   ÚdstÚinner2s      r   Útest_setitem_broadcastz"TestSetItem.test_setitem_broadcastÐ  s{  € õ
 Œi˜‰lŒlˆÝ! # rÑ*Ô*Ð*Ø×Ò˜Ÿš™œ¨ t¨a¡xÑ0Ô0Ð0åŒi˜‰lŒl×"Ò" 1 aÑ(Ô(ˆÝ! #¥r¤y°°A¡¤Ñ7Ô7Ð7Ø×Ò˜Ÿš™œ¨	¨	¨	°9°9°9Ð'=Ñ>Ô>Ð>åŒi˜‰lŒl×"Ò" 1 aÑ(Ô(ˆÝ! #¥r¤y°°A¡¤×'>Ò'>¸qÀ!Ñ'DÔ'DÑEÔEÐEØ×Ò˜Ÿš™œ¨	¨	¨	°9°9°9Ð'=Ñ>Ô>Ð>åŒi˜‰mŒm×#Ò# A q¨!¨QÑ/Ô/ˆÝ! #¥r¤y°°A¡¤×'>Ò'>¸qÀ!Ñ'DÔ'DÑEÔEÐEØ�)�)˜Y˜Y˜YÐ'ˆØ×Ò˜Ÿš™œ¨¨ z°A¡~Ñ6Ô6Ð6åŒi˜‰lŒlˆÝ! #¥r¤y°°A¡¤×'>Ò'>¸qÀ!Ñ'DÔ'DÑEÔEÐEØ×Ò˜Ÿš™œ   Ñ7Ô7Ð7åŒi˜‰lŒl×"Ò" 1 aÑ(Ô(ˆÝ! #¥r¤y°°A¸¼±LÑ'AÔ'A×'IÒ'IÈ!ÈQÐPQÐSTÑ'UÔ'UÑVÔVÐVØ×Ò˜Ÿš™œ¨	¨	¨	°9°9°9Ð'=Ñ>Ô>Ð>Ð>Ð>r   c                 ó   — t          j        d¦  «        }t          j        d¦  «                             dd¦  «        }|                      t          ¦  «        5 }t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             ddd¦  «        }|                      t          ¦  «        5 }t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         t          j        d¦  «                             dd¦  «        }t          j        d¦  «        }|                      t          ¦  «        5 }t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         d S )Nr¥   ro   ru   z,cannot broadcast source array for assignmentr   z0cannot assign slice from input of different sizer×   )	r‚   rƒ   rÅ   rY  rZ  rb   ÚstrÚ	exceptionrš   )r…   r‘  Úsrcre  Úerrmsgs        r   Útest_setitem_broadcast_errorz(TestSetItem.test_setitem_broadcast_errorî  sŽ  € õ Œi˜‰lŒlˆÝŒi˜‰mŒm×#Ò# A qÑ)Ô)ˆØ×Ò�zÑ*Ô*ð 	0¨fÝ% c¨3Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0å�VÔ%Ñ&Ô&ˆØ×ÒÐGØñ	!ô 	!ð 	!õ Œi˜‰lŒl×"Ò" 1 aÑ(Ô(ˆÝŒi˜‰mŒm×#Ò# A q¨!Ñ,Ô,ˆØ×Ò�zÑ*Ô*ð 	0¨fÝ% c¨3Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0å�VÔ%Ñ&Ô&ˆØ×ÒÐKØñ	!ô 	!ð 	!õ Œi˜‰mŒm×#Ò# A qÑ)Ô)ˆÝŒi˜‰lŒlˆØ×Ò�zÑ*Ô*ð 	0¨fÝ% c¨3Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0å�VÔ%Ñ&Ô&ˆØ×ÒÐKØñ	!ô 	!ð 	!ð 	!ð 	!s6   ÁA4Á4A8Á;A8ÄD1Ä1D5Ä8D5Æ<GÇGÇ Gc                 ó4  — t          j        d¦  «                             dd¦  «        }t          j        dd¦  «        }t          ||ddd¦  «         |                      |                     ¦   «         ddgddgddgg¦  «         t          j        d¦  «                             dd¦  «        }t          j        dd¦  «        }t          ||dd d¦  «         |                      |                     ¦   «         ddgddgddgg¦  «         t          j        d¦  «                             dd¦  «        }t          j        dd¦  «                             dd¦  «        }t          ||d dd¦  «         |                      |                     ¦   «         ddgddgddgg¦  «         d S )Nr�  rv   ru   r   r   r×   r¥   )r‚   rƒ   rÅ   rd   rš   rŒ  )r…   r‘  r—  s      r   Útest_slicing_1d_broadcastz%TestSetItem.test_slicing_1d_broadcast
  sq  € åŒi˜‰lŒl×"Ò" 1 aÑ(Ô(ˆÝŒi˜˜1‰oŒoˆÝ˜s C¨¨A¨qÑ1Ô1Ð1Ø×Ò˜Ÿš™œ¨¨A¨°°A°¸¸A¸Ð'?Ñ@Ô@Ð@åŒi˜‰lŒl×"Ò" 1 aÑ(Ô(ˆÝŒi˜˜1‰oŒoˆÝ˜s C¨¨D°!Ñ4Ô4Ð4Ø×Ò˜Ÿš™œ¨¨A¨°°A°¸¸A¸Ð'?Ñ@Ô@Ð@åŒi˜‰lŒl×"Ò" 1 aÑ(Ô(ˆÝŒi˜˜1‰oŒo×%Ò% a¨Ñ+Ô+ˆÝ˜s C¨¨q°!Ñ4Ô4Ð4Ø×Ò˜Ÿš™œ¨¨A¨°°A°¸¸A¸Ð'?Ñ@Ô@Ð@Ð@Ð@r   c                 ó4  — t          j        d¦  «        }d|j        _        |                      t
          t          j        f¦  «        5 }t          |dd¦  «         d d d ¦  «         n# 1 swxY w Y   |  	                    dt          |j        ¦  «        ¦  «         d S )Nr¥   Fr   ro  z%Cannot modify readonly array of type:)r‚   rƒ   rn   Ú	writeablerY  Ú	TypeErrorr	   ÚTypingErrorr`   ÚassertInr•  r–  )r…   r  re  s      r   Útest_setitem_readonlyz!TestSetItem.test_setitem_readonly  sÊ   € ÝŒi˜‰lŒlˆØ#ˆŒ	ÔØ×Ò¥	­6Ô+=Ð>Ñ?Ô?ð 	(À6Ý˜C  BÑ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(à�ŠÐ=Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-s   ÁA%Á%A)Á,A)N)rB  rC  rD  rE  rF  rR  r`  rf  rj  rm  rp  rs  ru  rx  rz  r|  r~  rƒ  r…  r‡  r‰  rŽ  r“  r™  r›  r¡  r   r   r   rH  rH  û  s·  € € € € € ðð ð
 -?ð .ð .ð .ð .ð  );ð Dð Dð Dð Dð>%ð %ð %ð, /Að =ð =ð =ð =ð .@ð 6ð 6ð 6ð 6ð /Að 7ð 7ð 7ð 7ð0 );ð 3ð 3ð 3ð 3ð0ð 0ð 0ð5ð 5ð 5ð6ð 6ð 6ð6ð 6ð 6ð0ð 0ð 0ð );ð 3ð 3ð 3ð 3ð0 /Að 3ð 3ð 3ð 3ð60ð 0ð 0ð6ð 6ð 6ðMð Mð Mð?ð ?ð ?ð<!ð !ð !ð8Að Að Að"-ð -ð -ð -ð -r   rH  c                   ó   — e Zd ZdZd„ ZdS )Ú
TestTypingz3
    Check typing of basic indexing operations
    c                 ó¾  — t           j        }t          j        t          j        dd¦  «        }t          j        t          j        dd¦  «        }t          j        t          j        dd¦  «        }dt
          fddft          fddft          fddft          t          fddft          t          fddft          t          fddft          t          fddft          fddft
          t          fddft
          t          fddft
          t          t          fddft
          t          t          fddft
          t          t          fddft
          t          fddft
          t          t          fddft          t
          t          fddft          t
          t          fddft          t          t          fddft          t
          t          t          fddft          t          t          fddft          t          t
          t          fddft          t          t          fddft          t          t          fddft          t          t          fddfg}|D ]�\  }}}t          j	        |¦  «        }	 |||	¦  «        }
|  
                    t          |
j        ¦  «        |¦  «         |  
                    |
j        j        |rdnd|¦  «         |                      |
j        ¦  «         ŒŽ|D ]�\  }}}t          j	        |¦  «        }	 |||	¦  «        }
|  
                    t          |
j        ¦  «        |¦  «         |  
                    |
j        j        |rdnd|¦  «         |                      |
j        ¦  «         ŒŽ|D ]ˆ\  }}}t          j	        |¦  «        }	 |||	¦  «        }
|  
                    t          |
j        ¦  «        |¦  «         |  
                    |
j        j        d¦  «         |                      |
j        ¦  «         Œ‰dS )	zc
        Check an appropriate layout is inferred for the result of array
        indexing.
        rv   rl   r  r–   )r   TTTFN)r   Úget_array_index_typer   r   Úfloat64r   r   r   r   ÚTuplerš   Útupler=   ÚresultÚlayoutr›   Úadvanced)r…   ÚfuncÚctyÚftyÚatyr‹   Úindex_tupleÚkeep_cÚ_r=   ÚrÚkeep_fs               r   Útest_layoutzTestTyping.test_layout)  sž  € õ Ô-ˆåŒk�%œ-¨¨CÑ0Ô0ˆÝŒk�%œ-¨¨CÑ0Ô0ˆÝŒk�%œ-¨¨CÑ0Ô0ˆð Ýˆ[˜$ Ð%õ ˆW�d˜EÐ"Ýˆ^˜T 5Ð)Ý•KÐ  $¨Ð.Ý�4Ð  %¨Ð/Ý�;Ð'¨°Ð6å•KÐ  %¨Ð/Ýˆ^˜U EÐ*õ �Ð  tÐ,Ý�Ð% u¨dÐ3Ý��kÐ+¨U°EÐ:Ý�¥TÐ+¨U°DÐ9Ý�¥[Ð2°E¸5ÐAå�Ð% u¨eÐ4Ý�¥TÐ+¨U°EÐ:õ •H�dÐ$ e¨UÐ3Ý�8¥[Ð2°E¸5ÐAÝ•D�+Ð'¨¨uÐ5Ý•H�d¥KÐ1°4¸Ð?Ý�4¥Ð'¨°Ð5Ý�4¥­4Ð1°5¸$Ð?Ý•K¥Ð'¨°Ð6å�4¥Ð'¨°Ð6Ý•D�+Ð'¨°Ð6ðG$ˆðL '.ð 	)ð 	)Ñ"ˆK˜ Ý”K Ñ,Ô,ˆEØ��S˜%Ñ Ô ˆAØ×Ò�U 1¤7™^œ^¨[Ñ9Ô9Ð9Ø×Ò˜QœXœ_°VÐ.D¨c¨cÀØ(ñ*ô *ð *à×Ò˜QœZÑ(Ô(Ð(Ð(à&-ð 	)ð 	)Ñ"ˆK˜˜FÝ”K Ñ,Ô,ˆEØ��S˜%Ñ Ô ˆAØ×Ò�U 1¤7™^œ^¨[Ñ9Ô9Ð9Ø×Ò˜QœXœ_°VÐ.D¨c¨cÀØ(ñ*ô *ð *à×Ò˜QœZÑ(Ô(Ð(Ð(à!(ð 	)ð 	)ÑˆK˜˜AÝ”K Ñ,Ô,ˆEØ��S˜%Ñ Ô ˆAØ×Ò�U 1¤7™^œ^¨[Ñ9Ô9Ð9Ø×Ò˜QœXœ_¨cÑ2Ô2Ð2Ø×Ò˜QœZÑ(Ô(Ð(Ð(ð	)ð 	)r   N)rB  rC  rD  rE  rµ  r   r   r   r£  r£  $  s2   € € € € € ðð ðG)ð G)ð G)ð G)ð G)r   r£  Ú__main__)<rM  rÐ   Únumpyr‚   ÚunittestÚnumba.core.compilerr   r   rO  r   r   Ú
numba.corer   r   r	   Únumba.tests.supportr
   r   Únumba.core.typingr   Únumba.core.typesr   r   r   r   rF  Úenable_pyobjectr�   Únrtr   r$   r&   r(   r+   r-   r1   r3   r;   r>   rB   rD   rF   rH   rM   rO   rT   rV   rX   r[   r]   r`   rb   rd   rf   rh   rj   rH  r£  rB  Úmainr   r   r   ú<module>rÁ     sQ  ðØ €€€Ø Ð Ð Ð à Ð Ð Ð à €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø Ð Ð Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ Eð �U‘W”WÐ Ø%)Ð Ô "à
ˆ%‰'Œ'€Ø€„ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð5ð 5ð 5ð(ð (ð (ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ðð ñ „ðð ðð ñ „ððð ð ðð ð ðð ð ð
\	6ð \	6ð \	6ð \	6ð \	6�(ñ \	6ô \	6ð \	6ð~f-ð f-ð f-ð f-ð f-�(ñ f-ô f-ð f-ðR	L)ð L)ð L)ð L)ð L)�ñ L)ô L)ð L)ð^ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   