§
    2@Äj H  ã                   ó*  — d dl Z d dlZd dlmZmZmZ d dlmZ d dl	m
Z
mZ d dl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„ Z G d„ dee
¦  «        Z  G d„ dee
¦  «        Z!e"dk    r ej#        ¦   «          dS dS )é    N)ÚjitÚnjitÚtypeof)Útypes)ÚTestCaseÚMemoryLeakMixinc                 óD   — d}t          | ¦  «        D ]\  }}|||z  z  }Œ|S ©Nr   ©Ú	enumerate)ÚarrÚtotalÚiÚvs       úQC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_array_iterators.pyÚ
array_iterr      s4   € Ø€EÝ˜#‘”ð ð ‰ˆˆ1Ø��Q‘‰ˆˆØ€Ló    c                 ó:   — t          t          | ¦  «        ¦  «        S ©N)ÚlistÚiter©r   s    r   Úarray_iter_itemsr      s   € Ý•�S‘	”	‰?Œ?Ðr   c                 óP   — d}t          | |         ¦  «        D ]\  }}|||z  z  }Œ|S r
   r   )r   Úidxr   r   r   s        r   Úarray_view_iterr      s:   € Ø€EÝ˜#˜cœ(Ñ#Ô#ð ð ‰ˆˆ1Ø��Q‘‰ˆˆØ€Lr   c                 óD   — t          | j        ¦  «        D ]
\  }}|||<   Œd S r   ©r   Úflat)r   Úoutr   r   s       r   Ú
array_flatr!      s4   € Ý˜#œ(Ñ#Ô#ð ð ‰ˆˆ1ØˆˆA‰ˆðð r   c                 ó   — | j         |         S r   ©r   )r   Úinds     r   Úarray_flat_getitemr%      s   € ØŒ8�CŒ=Ðr   c                 ó   — || j         |<   d S r   r#   )r   r$   Úvals      r   Úarray_flat_setitemr(   !   s   € Ø€C„HˆS�M€M€Mr   c                 óT   — d}t          | j        ¦  «        D ]\  }}||dz   |z  z   }Œ|S ©Nr   é   r   )r   Úsr   r   s       r   Úarray_flat_sumr-   $   s<   € Ø	€AÝ˜#œ(Ñ#Ô#ð ð ‰ˆˆ1Ø��Q‘˜!‘‰OˆˆØ€Hr   c                 ó*   — t          | j        ¦  «        S r   )Úlenr   r   s    r   Úarray_flat_lenr0   *   s   € ÝˆsŒx‰=Œ=Ðr   c                 óD   — t          j        | ¦  «        D ]
\  }}||fc S d S r   ©ÚnpÚndenumerate)r   r   r   s      r   Úarray_ndenumerate_zero_dimr5   -   s1   € Ý”˜sÑ#Ô#ð ð ‰ˆˆ1Ø�1ˆvˆˆˆØˆ4r   c                 óf   — d}t          j        | ¦  «        D ]\  \  }}}||dz   |dz   z  |z  z   }Œ|S r*   r2   )r   r,   r   Újr   s        r   Úarray_ndenumerate_sumr8   2   sK   € Ø	€AÝ”^ CÑ(Ô(ð &ð &‰	‰ˆˆA�Ø��Q‘˜1˜q™5Ñ! AÑ%Ñ%ˆˆØ€Hr   c                  óh   — d} t          j        d¦  «        D ]}| | t          |¦  «        z   dz   z  } Œ| S )Nr   © r+   )r3   Úndindexr/   )r,   r$   s     r   Únp_ndindex_emptyr<   8   s>   € Ø	€AÝŒz˜"‰~Œ~ð ð ˆØ	ˆQ•�S‘”‰\˜AÑÑˆˆØ€Hr   c                 ó`   — d}d}t          j        | |¦  «        D ]\  }}||dz   |dz   z  z   }Œ|S r*   )r3   r;   )ÚxÚyr,   Únr   r7   s         r   Ú
np_ndindexrA   >   sI   € Ø	€AØ	€AÝ”
˜1˜aÑ Ô ð "ð "‰ˆˆ1Ø��Q‘˜1˜q™5Ñ!Ñ!ˆˆØ€Hr   c                 óŒ   — d}d}t          j        | j        ¦  «        D ]%}t          |¦  «        D ]\  }}||dz   |dz   z  z   }ŒŒ&|S r*   )r3   r;   Úshaper   )r   r,   r@   Úindicesr   r7   s         r   Únp_ndindex_arrayrE   E   se   € Ø	€AØ	€AÝ”:˜cœiÑ(Ô(ð &ð &ˆÝ˜gÑ&Ô&ð 	&ð 	&‰DˆAˆqØ�Q˜‘U˜q 1™uÑ%Ñ%ˆAˆAð	&à€Hr   c                 ó†   — g }t          j        | ¦  «        D ])}|                     |                     ¦   «         ¦  «         Œ*|S r   ©r3   ÚnditerÚappendÚitem)ÚaÚresÚus      r   Ú
np_nditer1rN   M   s@   € Ø
€CÝŒY�q‰\Œ\ð ð ˆØ�
Š
�1—6’6‘8”8ÑÔÐÐØ€Jr   c                 ó¸   — g }t          j        | |f¦  «        D ]@\  }}|                     |                     ¦   «         |                     ¦   «         f¦  «         ŒA|S r   rG   )rK   ÚbrL   rM   r   s        r   Ú
np_nditer2rQ   S   sW   € Ø
€CÝ”	˜1˜a˜&Ñ!Ô!ð )ð )‰ˆˆ1Ø�
Š
�A—F’F‘H”H˜aŸfšf™hœhÐ'Ñ(Ô(Ð(Ð(Ø€Jr   c                 óâ   — g }t          j        | ||f¦  «        D ]T\  }}}|                     |                     ¦   «         |                     ¦   «         |                     ¦   «         f¦  «         ŒU|S r   rG   )rK   rP   ÚcrL   rM   r   Úws          r   Ú
np_nditer3rU   Y   se   € Ø
€CÝ”9˜a  A˜YÑ'Ô'ð 3ð 3‰ˆˆ1ˆaØ�
Š
�A—F’F‘H”H˜aŸfšf™hœh¨¯ª©¬Ð1Ñ2Ô2Ð2Ð2Ø€Jr   c                 ó–   — t          | ¦  «        }t          | ¦  «        }t          |¦  «        t          |¦  «        t          |¦  «        fS r   )r   Únext)r   ÚitÚit2s      r   Ú	iter_nextrZ   _   s7   € Ý	ˆc‰Œ€BÝ
ˆs‰)Œ)€CÝ�‰8Œ8•T˜"‘X”X�t C™yœyÐ(Ð(r   c                 ó¬   — t          j        | ¦  «        }t          j        |t           j        ¬¦  «        }t	          |j        ¦  «        D ]
\  }}|||<   Œ|S ©N©Údtype)r3   ÚarangeÚ
zeros_likeÚintpr   r   ©Úsizer>   rL   r   r   s        r   Úarray_flat_premature_freerd   n   sR   € Ý
Œ	�$‰Œ€AÝ
Œ-˜¥¤Ð
)Ñ
)Ô
)€CÝ˜!œ&Ñ!Ô!ð ð ‰ˆˆ1ØˆˆA‰ˆØ€Jr   c                 ó¬   — t          j        | ¦  «        }t          j        |t           j        ¬¦  «        }t          j        |¦  «        D ]
\  }}|||<   Œ|S r\   )r3   r_   r`   ra   r4   rb   s        r   Ú array_ndenumerate_premature_freerf   u   sR   € Ý
Œ	�$‰Œ€AÝ
Œ-˜¥¤Ð
)Ñ
)Ô
)€CÝ”˜qÑ!Ô!ð ð ‰ˆˆ1ØˆˆA‰ˆØ€Jr   c                   ó®   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd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„ Zˆ xZS )ÚTestArrayIteratorsz1
    Test array.flat, np.ndenumerate(), etc.
    c                 óV   •— t          t          | ¦  «                             ¦   «          d S r   )Úsuperrh   ÚsetUp)ÚselfÚ	__class__s    €r   rk   zTestArrayIterators.setUp‚   s&   ø€ ÝÕ  $Ñ'Ô'×-Ò-Ñ/Ô/Ð/Ð/Ð/r   c                 ó´   — t           } t          t          |¦  «        f¦  «        |¦  «        } ||¦  «        }|                       ||¦  «        |¦  «         d S r   )r   r   r   ÚassertPreciseEqual©rl   r   ÚpyfuncÚcfuncÚexpecteds        r   Úcheck_array_iter_1dz&TestArrayIterators.check_array_iter_1d…   sW   € ÝˆØ$••f˜S‘k”k�^Ñ$Ô$ VÑ,Ô,ˆØ�6˜#‘;”;ˆØ×Ò   c¡
¤
¨HÑ5Ô5Ð5Ð5Ð5r   c                 ó´   — t           } t          t          |¦  «        f¦  «        |¦  «        } ||¦  «        }|                       ||¦  «        |¦  «         d S r   )r   r   r   ro   rp   s        r   Úcheck_array_iter_itemsz)TestArrayIterators.check_array_iter_items‹   sW   € Ý!ˆØ$••f˜S‘k”k�^Ñ$Ô$ VÑ,Ô,ˆØ�6˜#‘;”;ˆØ×Ò   c¡
¤
¨HÑ5Ô5Ð5Ð5Ð5r   c                 óÔ   — t           } t          t          |¦  «        t          |¦  «        f¦  «        |¦  «        } |||¦  «        }|                       |||¦  «        |¦  «         d S r   )r   r   r   ro   )rl   r   Úindexrq   rr   rs   s         r   Úcheck_array_view_iterz(TestArrayIterators.check_array_view_iter‘   sh   € Ý ˆØ3••f˜S‘k”k¥6¨%¡=¤=Ð2Ñ3Ô3°FÑ;Ô;ˆØ�6˜#˜uÑ%Ô%ˆØ×Ò   c¨5Ñ 1Ô 1°8Ñ<Ô<Ð<Ð<Ð<r   Nc                 óL  — t          j        |j        |j        ¬¦  «        }|                     ¦   «         }|€t          |¦  «        } t          |t          |¦  «        f¦  «        t          ¦  «        }t          ||¦  «          |||¦  «         |                      ||¦  «         d S r\   )	r3   Úzerosrc   r^   Úcopyr   r   r!   ro   )rl   r   Úarrtyr    Únb_outrr   s         r   Úcheck_array_flatz#TestArrayIterators.check_array_flat—   s—   € ÝŒh�s”x s¤yÐ1Ñ1Ô1ˆØ—’‘”ˆØˆ=Ý˜3‘K”KˆEà+•�e�V C™[œ[Ð*Ñ+Ô+­JÑ7Ô7ˆå�3˜ÑÔÐØˆˆc�6ÑÔÐà×Ò  VÑ,Ô,Ð,Ð,Ð,r   c                 óˆ   —  t          |f¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         d S r   )r   ro   )rl   r   r}   Úfuncrr   s        r   Úcheck_array_unaryz$TestArrayIterators.check_array_unary¤   sE   € Ø•�e�X‘”˜tÑ$Ô$ˆØ×Ò   c¡
¤
¨D¨D°©I¬IÑ6Ô6Ð6Ð6Ð6r   c                 ó>   — |                       ||t          ¦  «         d S r   )r‚   r8   ©rl   r   r}   s      r   Úcheck_array_ndenumerate_sumz.TestArrayIterators.check_array_ndenumerate_sum¨   s!   € Ø×Ò˜s EÕ+@ÑAÔAÐAÐAÐAr   c                 ó€  — t          j        d¦  «        }|                      |¦  «         |                      |¦  «         |d d d…         }|                      |j        j        ¦  «         |                      |j        j        ¦  «         |                      |¦  «         |                      |¦  «         t          j        g d¢¦  «        }|                      |¦  «         |                      |¦  «         t          j	        g d¢g d¢g d¢g¦  «        }|                      |¦  «         |                      |j
        ¦  «         d S )Né   é   ©r+   r   r   r+   )r+   rˆ   é   )é   é   r‡   )é   é   é	   )r3   r_   rt   rv   ÚassertFalseÚflagsÚc_contiguousÚf_contiguousÚbool_ÚarrayÚT©rl   r   s     r   Útest_array_iterz"TestArrayIterators.test_array_iter«   s-  € åŒi˜‰lŒlˆØ× Ò  Ñ%Ô%Ð%Ø×#Ò# CÑ(Ô(Ð(Ø�#�#�A�#ŒhˆØ×Ò˜œÔ/Ñ0Ô0Ð0Ø×Ò˜œÔ/Ñ0Ô0Ð0Ø× Ò  Ñ%Ô%Ð%Ø×#Ò# CÑ(Ô(Ð(ÝŒh�|�|�|Ñ$Ô$ˆØ× Ò  Ñ%Ô%Ð%Ø×#Ò# CÑ(Ô(Ð(ÝŒh˜	˜	˜	 9 9 9¨i¨i¨iÐ8Ñ9Ô9ˆØ×#Ò# CÑ(Ô(Ð(Ø×#Ò# C¤EÑ*Ô*Ð*Ð*Ð*r   c                 ó|  — t          d¬¦  «        d„ ¦   «         }t          j        d¦  «                             dd¬¦  «        }|                     |¦  «        } ||¦  «        }|                      ||¦  «         t          j        d¦  «                             d	d¬¦  «        d d d
…d d …d d …f         }|                     |¦  «        } ||¦  «        }|                      ||¦  «         t          j        d¦  «                             d	d¬¦  «        d d …d d d
…d d …f         }|                     |¦  «        } ||¦  «        }|                      ||¦  «         t          j        d¦  «                             d	d¬¦  «        d d …d d …d d d
…f         }|                     |¦  «        } ||¦  «        }|                      ||¦  «         t          d¬¦  «        d„ ¦   «         }t          j        d¦  «                             dd¬¦  «        }|                     |¦  «        } ||¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |d         \  }}}|d         \  }	}
}t          j         	                    ||	¦  «         |                      ||
¦  «         |                      ||¦  «         d S )NT©Únopythonc                 ól   — g }| D ].}|D ])}|                      |                     ¦   «         ¦  «         Œ*Œ/|S r   )rI   Úravel)r   ÚtÚy1Úy2s       r   Úfooz=TestArrayIterators.test_array_iter_yielded_order.<locals>.foo¾   sL   € àˆAØð )ð )�Øð )ð )�BØ—H’H˜RŸXšX™ZœZÑ(Ô(Ð(Ð(ð)àˆHr   é   )rˆ   rŠ   r‹   ÚF©Úorderé@   )r‹   rŽ   rˆ   rˆ   c                 ól   — g }| D ].}|                      ||j        j        |j        j        f¦  «         Œ/|S r   )rI   r‘   r’   r“   )r   r    Úsubs      r   Ú
flag_checkzDTestArrayIterators.test_array_iter_yielded_order.<locals>.flag_checkÞ   sL   € àˆCØð 5ð 5�Ø—
’
˜C ¤Ô!7ØœIÔ2ð4ñ 5ô 5ð 5ð 5àˆJr   é
   )rˆ   rŒ   r   )
r   r3   r_   ÚreshapeÚpy_funcro   ÚassertEqualr/   ÚtestingÚassert_allclose)rl   r¡   r   rs   Úgotr©   Úex_arrÚe_flag_cÚe_flag_fÚgo_arrÚg_flag_cÚg_flag_fs               r   Útest_array_iter_yielded_orderz0TestArrayIterators.test_array_iter_yielded_order¼   s½  € å	�dÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ Œi˜‰mŒm×#Ò# I°SÐ#Ñ9Ô9ˆØ—;’;˜sÑ#Ô#ˆØˆc�#‰hŒhˆØ×Ò ¨#Ñ.Ô.Ð.õ Œi˜‰mŒm×#Ò# I°SÐ#Ñ9Ô9¸#¸#¸A¸#¸q¸q¸qÀ!À!À!¸)ÔDˆØ—;’;˜sÑ#Ô#ˆØˆc�#‰hŒhˆØ×Ò ¨#Ñ.Ô.Ð.õ Œi˜‰mŒm×#Ò# I°SÐ#Ñ9Ô9¸!¸!¸!¸S¸S¸q¸SÀ!À!À!¸)ÔDˆØ—;’;˜sÑ#Ô#ˆØˆc�#‰hŒhˆØ×Ò ¨#Ñ.Ô.Ð.õ Œi˜‰mŒm×#Ò# I°SÐ#Ñ9Ô9¸!¸!¸!¸Q¸Q¸QÀÀÀ!À¸)ÔDˆØ—;’;˜sÑ#Ô#ˆØˆc�#‰hŒhˆØ×Ò ¨#Ñ.Ô.Ð.å	�dÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ Œi˜‰mŒm×#Ò# F°#Ð#Ñ6Ô6ˆØ×%Ò% cÑ*Ô*ˆØˆj˜‰oŒoˆà×Ò�˜X™œ­¨C©¬Ñ1Ô1Ð1Ø%-¨a¤[Ñ"ˆ�˜(Ø%(¨¤VÑ"ˆ�˜(Ý
Œ
×"Ò" 6¨6Ñ2Ô2Ð2Ø×Ò˜ 8Ñ,Ô,Ð,Ø×Ò˜ 8Ñ,Ô,Ð,Ð,Ð,r   c                 óv  — t          j        d¦  «                             d¦  «        }|                      |d¦  «         |                      |j        d¦  «         |d d d…         }|                      |d¦  «         t          j        g d¢¦  «                             d¦  «        }|                      |d¦  «         d S )Né   ©rŠ   r‹   r+   rˆ   r‰   ©rˆ   rˆ   )r3   r_   r«   ry   r–   r”   r—   s     r   Útest_array_view_iterz'TestArrayIterators.test_array_view_iterñ   s­   € åŒi˜‰mŒm×#Ò# FÑ+Ô+ˆØ×"Ò" 3¨Ñ*Ô*Ð*Ø×"Ò" 3¤5¨!Ñ,Ô,Ð,Ø�#�#�A�#ŒhˆØ×"Ò" 3¨Ñ*Ô*Ð*ÝŒh�|�|�|Ñ$Ô$×,Ò,¨VÑ4Ô4ˆØ×"Ò" 3¨Ñ*Ô*Ð*Ð*Ð*r   c                 óö  — t          j        d¦  «                             ddd¦  «        }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         |                      |j        j	        ¦  «         |  
                    |¦  «         |                     ¦   «         }|                      |j        j	        ¦  «         |                      |j        j        ¦  «         |                      t          |¦  «        j        d¦  «         |  
                    |¦  «         |d d d…         }|                      |j        j	        ¦  «         |                      |j        j        ¦  «         |                      t          |¦  «        j        d¦  «         |  
                    |¦  «         t          j        g d¢dz  ¦  «                             d	¦  «        }|  
                    |¦  «         d S )
Nr¢   r‹   rˆ   rŠ   ÚCr£   ÚAr‰   )rˆ   rˆ   rˆ   )r3   r_   r«   r   r­   ÚndimÚlayoutÚ
assertTruer‘   r’   r   Ú	transposer�   r“   r”   r„   s      r   Útest_array_flat_3dz%TestArrayIterators.test_array_flat_3dû   s«  € ÝŒi˜‰mŒm×#Ò# A q¨!Ñ,Ô,ˆå�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+Ø�Š˜œ	Ô.Ñ/Ô/Ð/à×Ò˜cÑ"Ô"Ð"à�mŠm‰oŒoˆØ×Ò˜œÔ/Ñ0Ô0Ð0Ø�Š˜œ	Ô.Ñ/Ô/Ð/Ø×Ò� ™œÔ+¨SÑ1Ô1Ð1Ø×Ò˜cÑ"Ô"Ð"à�#�#�A�#ŒhˆØ×Ò˜œÔ/Ñ0Ô0Ð0Ø×Ò˜œÔ/Ñ0Ô0Ð0Ø×Ò� ™œÔ+¨SÑ1Ô1Ð1Ø×Ò˜cÑ"Ô"Ð"åŒh�|�|�| aÑ'Ñ(Ô(×0Ò0°Ñ;Ô;ˆØ×Ò˜cÑ"Ô"Ð"Ð"Ð"r   c                 óÆ  ‡ — ˆ fd„}t          j        dt           j        ¬¦  «        }|                     dd¦  «        }t	          j        t          j        dd¬¦  «        } |||¦  «         t	          j        t          j        dd¬¦  «        } |||¦  «         t	          j        t          j        dd¬¦  «        } |||¦  «         |                     dd¦  «        }t	          j        t          j        dd¬¦  «        } |||¦  «         t	          j        t          j        dd¬¦  «        } |||¦  «         t	          j        t          j        dd¬¦  «        } |||¦  «         d S )	Nc                 óà   •—  t          |f¦  «        t          ¦  «        }|j        |f         }|                     | ¦  «        }|                     | ¦  «        }‰                     ||¦  «         d S r   )r   r-   Ú	overloadsÚentry_pointr¬   ro   )r   r}   rr   Úcresr°   rs   rl   s         €r   Úcheckz7TestArrayIterators.test_array_flat_empty.<locals>.check  sh   ø€ Ø"•D˜%˜‘N”N¥>Ñ2Ô2ˆEØ”? E 8Ô,ˆDØ×"Ò" 3Ñ'Ô'ˆCØ—}’} SÑ)Ô)ˆHØ×#Ò# H¨cÑ2Ô2Ð2Ð2Ð2r   r   r]   rˆ   r¾   ©rÁ   r£   r¿   ©r3   r{   Úint32r«   r   ÚArray©rl   rÊ   r   r}   s   `   r   Útest_array_flat_emptyz(TestArrayIterators.test_array_flat_empty  s\  ø€ ð	3ð 	3ð 	3ð 	3ð 	3õ Œh�q¥¤Ð)Ñ)Ô)ˆØ�kŠk˜!˜QÑÔˆÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐØ�kŠk˜!˜QÑÔˆÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÐÐr   c                 óò  ‡ ‡‡— t           Št          ‰¦  «        Šˆˆˆ fd„}t          j        d¦  «                             ddd¦  «        }t          |j        ¦  «        D ]} |||¦  «         Œ|j        }t          |j        ¦  «        D ]} |||¦  «         Œ|d d d…         }t          |j        ¦  «        D ]} |||¦  «         Œt          j        dg¦  «                             d¦  «        }t          |j        ¦  «        D ]} |||¦  «         Œt          j	        g d¢¦  «        }t          |j        ¦  «        D ]} |||¦  «         Œ|d d d…         }t          |j        ¦  «        D ]} |||¦  «         Œd S )	Nc                 ó`   •—  ‰| |¦  «        }‰                       ‰| |¦  «        |¦  «         d S r   )r­   )r   r$   rs   rr   rq   rl   s      €€€r   rÊ   z9TestArrayIterators.test_array_flat_getitem.<locals>.check6  s:   ø€ Ø�v˜c 3Ñ'Ô'ˆHØ×Ò˜U˜U 3¨™_œ_¨hÑ7Ô7Ð7Ð7Ð7r   r¢   r‹   rˆ   rŠ   é*   r:   r‰   )
r%   r   r3   r_   r«   Úrangerc   r–   r•   r”   ©rl   rÊ   r   r   rr   rq   s   `   @@r   Útest_array_flat_getitemz*TestArrayIterators.test_array_flat_getitem2  s¨  øøø€ å#ˆÝ�V‘”ˆð	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8õ Œi˜‰mŒm×#Ò# A q¨!Ñ,Ô,ˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMØŒeˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMØ�#�#�A�#ŒhˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMÝŒh˜�t‰nŒn×$Ò$ RÑ(Ô(ˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMåŒh�|�|�|Ñ$Ô$ˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMØ�#�#�A�#ŒhˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMð	ð 	r   c                 óò  ‡ ‡‡— t           Št          ‰¦  «        Šˆˆˆ fd„}t          j        d¦  «                             ddd¦  «        }t          |j        ¦  «        D ]} |||¦  «         Œ|j        }t          |j        ¦  «        D ]} |||¦  «         Œ|d d d…         }t          |j        ¦  «        D ]} |||¦  «         Œt          j        dg¦  «                             d¦  «        }t          |j        ¦  «        D ]} |||¦  «         Œt          j	        g d¢¦  «        }t          |j        ¦  «        D ]} |||¦  «         Œ|d d d…         }t          |j        ¦  «        D ]} |||¦  «         Œd S )	Nc                 ó¸   •— t          j        | ¦  «        }t          j        | ¦  «        } ‰||d¦  «          ‰||d¦  «         ‰                     ||¦  «         d S )Né{   )r3   r|   ro   )r   r$   rs   r°   rr   rq   rl   s       €€€r   rÊ   z9TestArrayIterators.test_array_flat_setitem.<locals>.checkR  sa   ø€ å”w˜s‘|”|ˆHÝ”'˜#‘,”,ˆCØˆF�8˜S #Ñ&Ô&Ð&ØˆE�#�s˜CÑ Ô Ð Ø×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   r¢   r‹   rˆ   rŠ   rÓ   r:   r‰   )
r(   r   r3   r_   r«   rÔ   rc   r–   r•   r”   rÕ   s   `   @@r   Útest_array_flat_setitemz*TestArrayIterators.test_array_flat_setitemN  s¨  øøø€ å#ˆÝ�V‘”ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3õ Œi˜‰mŒm×#Ò# A q¨!Ñ,Ô,ˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMØŒeˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMØ�#�#�A�#ŒhˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMÝŒh˜�t‰nŒn×$Ò$ RÑ(Ô(ˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMåŒh�|�|�|Ñ$Ô$ˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMØ�#�#�A�#ŒhˆÝ�s”x‘”ð 	ð 	ˆAØˆE�#�q‰MŒMˆMˆMð	ð 	r   c                 ón  ‡ ‡‡— t           Št          t           ¦  «        Šˆˆˆ fd„}t          j        d¦  «                             ddd¦  «        } ||¦  «         |j        } ||¦  «         |d d d…         } ||¦  «         t          j        dg¦  «                             d¦  «        } ||¦  «         d S )Nc                 ó\   •—  ‰| ¦  «        }‰                       ‰| ¦  «        |¦  «         d S r   )ro   )r   rs   rr   rq   rl   s     €€€r   rÊ   z5TestArrayIterators.test_array_flat_len.<locals>.checkr  s4   ø€ Ø�v˜c‘{”{ˆHØ×#Ò# E E¨#¡J¤J°Ñ9Ô9Ð9Ð9Ð9r   r¢   r‹   rˆ   rŠ   rÓ   r:   )r0   r   r3   r_   r«   r–   r•   )rl   rÊ   r   rr   rq   s   `  @@r   Útest_array_flat_lenz&TestArrayIterators.test_array_flat_lenn  sÆ   øøø€ åˆÝ•^Ñ$Ô$ˆð	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:õ Œi˜‰mŒm×#Ò# A q¨!Ñ,Ô,ˆØˆˆc‰
Œ
ˆ
ØŒeˆØˆˆc‰
Œ
ˆ
Ø�#�#�A�#ŒhˆØˆˆc‰
Œ
ˆ
ÝŒh˜�t‰nŒn×$Ò$ RÑ(Ô(ˆØˆˆc‰
Œ
ˆ
ˆ
ˆ
r   c                 ó  —  t          t          j        f¦  «        t          ¦  «        }t          d¦  «        } |d¦  «        }|                      |                     ¦   «         ¦  «         |                      ||¦  «         d S ©Nr‡   )r   r   ra   rd   rÂ   Úsumro   ©rl   rr   Úexpectr°   s       r   Útest_array_flat_premature_freez1TestArrayIterators.test_array_flat_premature_free  sn   € Ø#••e”j�]Ñ#Ô#Õ$=Ñ>Ô>ˆÝ*¨1Ñ-Ô-ˆØˆe�A‰hŒhˆØ�Š˜Ÿš™	œ	Ñ"Ô"Ð"Ø×Ò ¨Ñ,Ô,Ð,Ð,Ð,r   c                 ó  — t          j        d¦  «                             dd¦  «        }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         |                      |j        j	        ¦  «         |  
                    ||¦  «         |                     ¦   «         }|                      |j        j	        ¦  «         |                      |j        j        ¦  «         t          |¦  «        }|                      |j        d¦  «         |  
                    ||¦  «         |d d d…         }|                      |j        j	        ¦  «         |                      |j        j        ¦  «         t          |¦  «        }|                      |j        d¦  «         |  
                    ||¦  «         t          j        g d¢¦  «                             d	¦  «        }|  
                    |t          |¦  «        ¦  «         d S )
Nr¹   r‹   rŠ   rˆ   r¾   r£   r¿   r‰   r»   )r3   r_   r«   r   r­   rÀ   rÁ   rÂ   r‘   r’   r…   rÃ   r�   r“   r”   r„   s      r   Útest_array_ndenumerate_2dz,TestArrayIterators.test_array_ndenumerate_2d†  sº  € ÝŒi˜‰mŒm×#Ò# A qÑ)Ô)ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+Ø�Š˜œ	Ô.Ñ/Ô/Ð/à×(Ò(¨¨eÑ4Ô4Ð4à�mŠm‰oŒoˆØ×Ò˜œÔ/Ñ0Ô0Ð0Ø�Š˜œ	Ô.Ñ/Ô/Ð/Ý�s‘”ˆØ×Ò˜œ sÑ+Ô+Ð+Ø×(Ò(¨¨eÑ4Ô4Ð4à�#�#�A�#ŒhˆØ×Ò˜œÔ/Ñ0Ô0Ð0Ø×Ò˜œÔ/Ñ0Ô0Ð0Ý�s‘”ˆØ×Ò˜œ sÑ+Ô+Ð+Ø×(Ò(¨¨eÑ4Ô4Ð4åŒh�|�|�|Ñ$Ô$×,Ò,¨VÑ4Ô4ˆØ×(Ò(¨­f°S©k¬kÑ:Ô:Ð:Ð:Ð:r   c                 óÀ  — d„ }t          j        dt           j        ¬¦  «        }|                     dd¦  «        }t	          j        t          j        dd¬¦  «        } |||¦  «         t	          j        t          j        dd¬¦  «        } |||¦  «         t	          j        t          j        dd¬¦  «        } |||¦  «         |                     dd¦  «        }t	          j        t          j        dd¬¦  «        } |||¦  «         t	          j        t          j        dd¬¦  «        } |||¦  «         t	          j        t          j        dd¬¦  «        } |||¦  «         d S )	Nc                 óò   —  t          |f¦  «        t          ¦  «        }|j        |f         }|                     | ¦  «        }|                     | ¦  «        }t
          j                             ||¦  «         d S r   )r   r8   rÇ   rÈ   r¬   r3   r®   r¯   )r   r}   rr   rÉ   r°   rs   s         r   rÊ   z>TestArrayIterators.test_array_ndenumerate_empty.<locals>.check¤  sj   € Ø"•D˜%˜‘N”NÕ#8Ñ9Ô9ˆEØ”? E 8Ô,ˆDØ×"Ò" 3Ñ'Ô'ˆCØ—}’} SÑ)Ô)ˆHÝŒJ×&Ò& x°Ñ5Ô5Ð5Ð5Ð5r   r   r]   rˆ   r¾   rË   r£   r¿   rÌ   rÏ   s       r   Útest_array_ndenumerate_emptyz/TestArrayIterators.test_array_ndenumerate_empty   sQ  € ð	6ð 	6ð 	6õ Œh�q¥¤Ð)Ñ)Ô)ˆØ�kŠk˜!˜QÑÔˆÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐØ�kŠk˜!˜QÑÔˆÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÝ”�EœK¨°3Ð7Ñ7Ô7ˆØˆˆc�5ÑÔÐÐÐr   c                 ó  —  t          t          j        f¦  «        t          ¦  «        }t          d¦  «        } |d¦  «        }|                      |                     ¦   «         ¦  «         |                      ||¦  «         d S rß   )r   r   ra   rf   rÂ   rà   ro   rá   s       r   Ú%test_array_ndenumerate_premature_freez8TestArrayIterators.test_array_ndenumerate_premature_free»  sn   € Ø#••e”j�]Ñ#Ô#Õ$DÑEÔEˆÝ1°!Ñ4Ô4ˆØˆe�A‰hŒhˆØ�Š˜Ÿš™	œ	Ñ"Ô"Ð"Ø×Ò ¨Ñ,Ô,Ð,Ð,Ð,r   c                 ó"  — t           }t          |¦  «        }t          j        d¦  «        } ||¦  «        } ||¦  «        }|                      ||¦  «         |                      |d         d¦  «         |                      |d         d¦  «         d S )Néa   r   r:   r+   )r5   r   r3   r•   ro   r­   )rl   r�   rr   r   rs   r°   s         r   Útest_array_ndenumerate_zero_dimz2TestArrayIterators.test_array_ndenumerate_zero_dimÂ  s‰   € Ý)ˆÝ�T‘
”
ˆÝŒh�r‰lŒlˆØ�4˜‘9”9ˆØˆe�C‰jŒjˆØ×Ò  XÑ.Ô.Ð.Ø×Ò˜ !œ bÑ)Ô)Ð)Ø×Ò˜ !œ bÑ)Ô)Ð)Ð)Ð)r   c                 óÀ  — t           } t          t          j        t          j        f¦  «        |¦  «        }|                       |dd¦  «         |dd¦  «        ¦  «         |                       |dd¦  «         |dd¦  «        ¦  «         |                       |dd¦  «         |dd¦  «        ¦  «         |                       |dd¦  «         |dd¦  «        ¦  «         d S )NrŠ   r‹   r   )rA   r   r   rÍ   ro   ©rl   r�   rr   s      r   Útest_np_ndindexz"TestArrayIterators.test_np_ndindexÌ  sÕ   € ÝˆØ1••e”k¥5¤;Ð0Ñ1Ô1°$Ñ7Ô7ˆØ×Ò   a¨¡¤¨T¨T°!°Q©Z¬ZÑ8Ô8Ð8Ø×Ò   a¨¡¤¨T¨T°!°Q©Z¬ZÑ8Ô8Ð8Ø×Ò   a¨¡¤¨T¨T°!°Q©Z¬ZÑ8Ô8Ð8Ø×Ò   a¨¡¤¨T¨T°!°Q©Z¬ZÑ8Ô8Ð8Ð8Ð8r   c                 ó†  — t           }t          j        dt          j        ¬¦  «        dz   }|                      |t          |¦  «        |¦  «         |                     d¦  «        }|                      |t          |¦  «        |¦  «         |                     d¦  «        }|                      |t          |¦  «        |¦  «         d S )Nr¹   r]   rª   )r‹   rŠ   )rˆ   rˆ   rŠ   )rE   r3   r_   rÍ   r‚   r   r«   ©rl   r�   r   s      r   Útest_np_ndindex_arrayz(TestArrayIterators.test_np_ndindex_arrayÔ  s¤   € ÝˆÝŒi˜¥"¤(Ð+Ñ+Ô+¨bÑ0ˆØ×Ò˜s¥F¨3¡K¤K°Ñ6Ô6Ð6Ø�kŠk˜&Ñ!Ô!ˆØ×Ò˜s¥F¨3¡K¤K°Ñ6Ô6Ð6Ø�kŠk˜)Ñ$Ô$ˆØ×Ò˜s¥F¨3¡K¤K°Ñ6Ô6Ð6Ð6Ð6r   c                 ó�   — t           } t          d¦  «        |¦  «        }|                       |¦   «          |¦   «         ¦  «         d S )Nr:   )r<   r   ro   rï   s      r   Útest_np_ndindex_emptyz(TestArrayIterators.test_np_ndindex_emptyÝ  sB   € ÝˆØ•�R‘	”	˜$‘”ˆØ×Ò  ¡¤¨¨©¬Ñ0Ô0Ð0Ð0Ð0r   c                 ó¢   — t           }t          j        dt          j        ¬¦  «        dz   }|                      |t          |¦  «        |¦  «         d S )Nr¹   r]   rª   )rZ   r3   r_   rÍ   r‚   r   rò   s      r   Útest_iter_nextz!TestArrayIterators.test_iter_nextâ  sF   € åˆÝŒi˜¥"¤(Ð+Ñ+Ô+¨bÑ0ˆØ×Ò˜s¥F¨3¡K¤K°Ñ6Ô6Ð6Ð6Ð6r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rk   rt   rv   ry   r   r‚   r…   r˜   r·   r¼   rÄ   rÐ   rÖ   rÚ   rÝ   rã   rå   rè   rê   rí   rð   ró   rõ   r÷   Ú__classcell__)rm   s   @r   rh   rh   }   s¥  ø€ € € € € ðð ð0ð 0ð 0ð 0ð 0ð6ð 6ð 6ð6ð 6ð 6ð=ð =ð =ð-ð -ð -ð -ð7ð 7ð 7ðBð Bð Bð+ð +ð +ð"3-ð 3-ð 3-ðj+ð +ð +ð#ð #ð #ð2ð ð ð<ð ð ð8ð ð ð@ð ð ð"-ð -ð -ð;ð ;ð ;ð4ð ð ð6-ð -ð -ð*ð *ð *ð9ð 9ð 9ð7ð 7ð 7ð1ð 1ð 1ð
7ð 7ð 7ð 7ð 7ð 7ð 7r   rh   c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
Ú
TestNdIterz
    Test np.nditer()
    c              #   ó  K  — t          j        d¦  «        V — t          j        dt           j        ¬¦  «        V — t          j        d¦  «                             t           j        ¦  «        V — t          j        d¦  «        d d d…         V — t          j        d¦  «                             d¦  «        }|V — |                     d	¬
¦  «        V — t          j        d¦  «                             d¦  «        d d d…         }|V — d S )Néd   éf   r]   r‹   rŽ   rˆ   r¹   rº   r£   r¤   r¢   )r‡   r‹   )	r3   Úfloat32r•   Úint16r_   ÚastypeÚ	complex64r«   r|   ©rl   rK   s     r   ÚinputszTestNdIter.inputsî  só   è è € õ Œj˜‰oŒoÐÐÐõ Œh�s¥"¤(Ð+Ñ+Ô+Ð+Ð+Ð+õ Œi˜‰lŒl×!Ò!¥"¤,Ñ/Ô/Ð/Ð/Ð/ÝŒi˜‰lŒl˜3˜3˜Q˜3ÔÐÐÐõ ŒI�b‰MŒM×!Ò! &Ñ)Ô)ˆØˆˆˆØ�fŠf˜3ˆfÑÔÐÐÐÝŒI�b‰MŒM×!Ò! &Ñ)Ô)¨#¨#¨A¨#Ô.ˆØˆˆˆˆˆr   c              #   ó4  K  — t          j        d¦  «                             t           j        ¦  «        V — t          j        d¦  «        d d d…         V — t          j        d¦  «                             d¦  «        }|V — |                     d¬¦  «        V — d S )Nr‹   rŽ   rˆ   r¹   rº   r£   r¤   )r3   r_   r  r  r«   r|   r  s     r   Úbasic_inputszTestNdIter.basic_inputs  s�   è è € ÝŒi˜‰lŒl×!Ò!¥"¤,Ñ/Ô/Ð/Ð/Ð/ÝŒi˜‰lŒl˜3˜3˜Q˜3ÔÐÐÐÝŒI�b‰MŒM×!Ò! &Ñ)Ô)ˆØˆˆˆØ�fŠf˜3ˆfÑÔÐÐÐÐÐr   c                 ól   — |                       t          |¦  «        t          |¦  «        ||f¦  «         d S r   )r­   Úset)rl   r°   rs   s      r   Úcheck_resultzTestNdIter.check_result	  s0   € Ø×Ò�˜S™œ¥3 x¡=¤=°3¸°/ÑBÔBÐBÐBÐBr   c                 óÌ   — t           } t          d¬¦  «        |¦  «        }|                      ¦   «         D ].} ||¦  «        } ||¦  «        }|                      ||¦  «         Œ/d S ©NTrš   )rN   r   r  r  )rl   rq   rr   rK   rs   r°   s         r   Útest_nditer1zTestNdIter.test_nditer1  su   € ÝˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆØ—’‘”ð 	-ð 	-ˆAØ�v˜a‘y”yˆHØ�%˜‘(”(ˆCØ×Ò˜c 8Ñ,Ô,Ð,Ð,ð	-ð 	-r   c                 ó   — t           } t          d¬¦  «        |¦  «        }t          j        |                      ¦   «         |                      ¦   «         ¦  «        D ]3\  }} |||¦  «        } |||¦  «        }|                      ||¦  «         Œ4d S r  )rQ   r   Ú	itertoolsÚproductr  r  )rl   rq   rr   rK   rP   rs   r°   s          r   Útest_nditer2zTestNdIter.test_nditer2  s’   € ÝˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝÔ% d§k¢k¡m¤m°T·[²[±]´]ÑCÔCð 	-ð 	-‰DˆAˆqØ�v˜a ‘|”|ˆHØ�%˜˜1‘+”+ˆCØ×Ò˜c 8Ñ,Ô,Ð,Ð,ð	-ð 	-r   c                 ó  — t           } t          d¬¦  «        |¦  «        }| j        }t          j         |¦   «          |¦   «          |¦   «         ¦  «        D ]6\  }}} ||||¦  «        } ||||¦  «        }|                      ||¦  «         Œ7d S r  )rU   r   r	  r  r  r  )	rl   rq   rr   r  rK   rP   rS   rs   r°   s	            r   Útest_nditer3zTestNdIter.test_nditer3  s¤   € ÝˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆàÔ"ˆÝ Ô(¨¨©¬°6°6±8´8¸V¸V¹X¼XÑFÔFð 	-ð 	-‰GˆAˆq�!Ø�v˜a  A‘”ˆHØ�%˜˜1˜a‘.”.ˆCØ×Ò˜c 8Ñ,Ô,Ð,Ð,ð	-ð 	-r   c                 ól  ‡ ‡— t           } t          d¬¦  «        |¦  «        Š‰                      ¦   «          ˆˆ fd„} |t          j        d¦  «        t          j        d¦  «        ¦  «         t          j        d¦  «                             d¦  «        }t          j        d¦  «        } |||¦  «         d S )NTrš   c                 óÔ   •— ‰                      t          ¦  «        5 } ‰| |¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                     dt          |j        ¦  «        ¦  «         d S )Nz(operands could not be broadcast together)ÚassertRaisesÚ
ValueErrorÚassertInÚstrÚ	exception)rK   rP   Úraisesrr   rl   s      €€r   Úcheck_incompatiblez2TestNdIter.test_errors.<locals>.check_incompatible-  s©   ø€ Ø×"Ò"¥:Ñ.Ô.ð °&Ø��a˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�MŠMÐDÝ˜fÔ.Ñ/Ô/ñ1ô 1ð 1ð 1ð 1s   œ5µ9¼9rˆ   rŠ   r¹   rº   )rQ   r   Údisable_leak_checkr3   r_   r«   )rl   rq   r  rK   rP   rr   s   `    @r   Útest_errorszTestNdIter.test_errors&  s¹   øø€ åˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×ÒÑ!Ô!Ð!ð	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	Ð�2œ9 Q™<œ<­¬°1©¬Ñ6Ô6Ð6ÝŒI�b‰MŒM×!Ò! &Ñ)Ô)ˆÝŒI�a‰LŒLˆØÐ˜1˜aÑ Ô Ð Ð Ð r   N)rø   rù   rú   rû   r  r	  r  r  r  r  r   r:   r   r   rþ   rþ   é  sŠ   € € € € € ðð ðð ð ð( ð  ð  ðCð Cð Cð-ð -ð -ð-ð -ð -ð-ð -ð -ð!ð !ð !ð !ð !r   rþ   Ú__main__)$r  Únumpyr3   Únumbar   r   r   Ú
numba.corer   Únumba.tests.supportr   r   Úunittestr   r   r   r!   r%   r(   r-   r0   r5   r8   r<   rA   rE   rN   rQ   rU   rZ   rd   rf   rh   rþ   rø   Úmainr:   r   r   ú<module>r(     s  ðØ Ð Ð Ð à Ð Ð Ð à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø €€€ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð
ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð)ð )ð )ðð ð ðð ð ði7ð i7ð i7ð i7ð i7˜¨(ñ i7ô i7ð i7ðXM!ð M!ð M!ð M!ð M!� (ñ M!ô M!ð M!ð` ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   