§
    ƒÛg„D  ã                   ó4  — d dl Z d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZ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! G d„ dee¦  «        Z" G d„ dee¦  «        Z#e$dk    r ej%        ¦   «          dS dS )é    N)ÚjitÚtypeof)Útypes)Úcompile_isolated)ÚTestCaseÚCompilationCacheÚMemoryLeakMixinÚtagc                 óD   — d}t          | ¦  «        D ]\  }}|||z  z  }Œ|S ©Nr   ©Ú	enumerate)ÚarrÚtotalÚiÚvs       úV/granary/edev/quantum/lib/python3.11/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_lenr2   +   s   € ÝˆsŒx‰=Œ=Ðr   c                 óf   — d}t          j        | ¦  «        D ]\  \  }}}||dz   |dz   z  |z  z   }Œ|S r,   )ÚnpÚndenumerate)r   r.   r   Újr   s        r   Úarray_ndenumerate_sumr7   .   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-   )r4   Úndindexr1   )r.   r&   s     r   Únp_ndindex_emptyr;   4   s>   € Ø	€AÝŒz˜"‰~Œ~ð ð ˆØ	ˆQ•�S‘”‰\˜AÑÑˆˆØ€Hr   c                 ó`   — d}d}t          j        | |¦  «        D ]\  }}||dz   |dz   z  z   }Œ|S r,   )r4   r:   )ÚxÚyr.   Únr   r6   s         r   Ú
np_ndindexr@   :   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,   )r4   r:   Úshaper   )r   r.   r?   Úindicesr   r6   s         r   Únp_ndindex_arrayrD   A   se   € Ø	€AØ	€AÝ”:˜cœiÑ(Ô(ð &ð &ˆÝ˜gÑ&Ô&ð 	&ð 	&‰DˆAˆqØ�Q˜‘U˜q 1™uÑ%Ñ%ˆAˆAð	&à€Hr   c                 ó†   — g }t          j        | ¦  «        D ])}|                     |                     ¦   «         ¦  «         Œ*|S r   ©r4   ÚnditerÚappendÚitem)ÚaÚresÚus      r   Ú
np_nditer1rM   I   s@   € Ø
€CÝŒY�q‰\Œ\ð ð ˆØ�
Š
�1—6’6‘8”8ÑÔÐÐØ€Jr   c                 ó¸   — g }t          j        | |f¦  «        D ]@\  }}|                     |                     ¦   «         |                     ¦   «         f¦  «         ŒA|S r   rF   )rJ   ÚbrK   rL   r   s        r   Ú
np_nditer2rP   O   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   rF   )rJ   rO   ÚcrK   rL   r   Úws          r   Ú
np_nditer3rT   U   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_nextrY   [   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)r4   ÚarangeÚ
zeros_likeÚintpr   r!   ©Úsizer=   rK   r   r   s        r   Úarray_flat_premature_freerc   j   sR   € Ý
Œ	�$‰Œ€AÝ
Œ-˜¥¤Ð
)Ñ
)Ô
)€CÝ˜!œ&Ñ!Ô!ð ð ‰ˆˆ1ØˆˆA‰ˆØ€Jr   c                 ó¬   — t          j        | ¦  «        }t          j        |t           j        ¬¦  «        }t          j        |¦  «        D ]
\  }}|||<   Œ|S r[   )r4   r^   r_   r`   r5   ra   s        r   Ú array_ndenumerate_premature_freere   q   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                 ó|   •— t          t          | ¦  «                             ¦   «          t          ¦   «         | _        d S r   )Úsuperrg   ÚsetUpr   Úccache)ÚselfÚ	__class__s    €r   rj   zTestArrayIterators.setUp~   s1   ø€ ÝÕ  $Ñ'Ô'×-Ò-Ñ/Ô/Ð/Ý&Ñ(Ô(ˆŒˆˆr   c                 ó²   — t           }t          |t          |¦  «        g¦  «        }|j        } ||¦  «        }|                       ||¦  «        |¦  «         d S r   )r   r   r   Úentry_pointÚassertPreciseEqual©rl   r   ÚpyfuncÚcresÚcfuncÚexpecteds         r   Úcheck_array_iter_1dz&TestArrayIterators.check_array_iter_1d‚   sW   € ÝˆÝ ­°©¬¨Ñ6Ô6ˆØÔ ˆØ�6˜#‘;”;ˆØ×Ò   c¡
¤
¨HÑ5Ô5Ð5Ð5Ð5r   c                 ó²   — t           }t          |t          |¦  «        g¦  «        }|j        } ||¦  «        }|                       ||¦  «        |¦  «         d S r   )r   r   r   ro   rp   rq   s         r   Úcheck_array_iter_itemsz)TestArrayIterators.check_array_iter_items‰   sW   € Ý!ˆÝ ­°©¬¨Ñ6Ô6ˆØÔ ˆØ�6˜#‘;”;ˆØ×Ò   c¡
¤
¨HÑ5Ô5Ð5Ð5Ð5r   c                 óÒ   — t           }t          |t          |¦  «        t          |¦  «        g¦  «        }|j        } |||¦  «        }|                       |||¦  «        |¦  «         d S r   )r   r   r   ro   rp   )rl   r   Úindexrr   rs   rt   ru   s          r   Úcheck_array_view_iterz(TestArrayIterators.check_array_view_iter�   sh   € Ý ˆÝ ­°©¬µf¸U±m´mÐ(DÑEÔEˆØÔ ˆØ�6˜#˜uÑ%Ô%ˆØ×Ò   c¨5Ñ 1Ô 1°8Ñ<Ô<Ð<Ð<Ð<r   Nc                 óJ  — t          j        |j        |j        ¬¦  «        }|                     ¦   «         }|€t          |¦  «        }t          t          |t          |¦  «        g¦  «        }|j        }t          ||¦  «          |||¦  «         |  	                    ||¦  «         d S r[   )
r4   Úzerosrb   r]   Úcopyr   r   r#   ro   rp   )rl   r   Úarrtyr"   Únb_outrs   rt   s          r   Úcheck_array_flatz#TestArrayIterators.check_array_flat—   s—   € ÝŒh�s”x s¤yÐ1Ñ1Ô1ˆØ—’‘”ˆØˆ=Ý˜3‘K”KˆEå¥
¨UµF¸3±K´KÐ,@ÑAÔAˆØÔ ˆå�3˜ÑÔÐØˆˆc�6ÑÔÐà×Ò  VÑ,Ô,Ð,Ð,Ð,r   c                 ó†   — t          ||g¦  «        }|j        }|                       ||¦  «         ||¦  «        ¦  «         d S r   )r   ro   rp   )rl   r   r   Úfuncrs   rt   s         r   Úcheck_array_unaryz$TestArrayIterators.check_array_unary¥   sG   € Ý  u gÑ.Ô.ˆØÔ ˆØ×Ò   c¡
¤
¨D¨D°©I¬IÑ6Ô6Ð6Ð6Ð6r   c                 ó>   — |                       ||t          ¦  «         d S r   )r„   r/   ©rl   r   r   s      r   Úcheck_array_flat_sumz'TestArrayIterators.check_array_flat_sumª   s    € Ø×Ò˜s E­>Ñ:Ô:Ð:Ð:Ð:r   c                 ó>   — |                       ||t          ¦  «         d S r   )r„   r7   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‹   )é   é   é	   )r4   r^   rv   rx   Ú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   )rH   Ú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   )rH   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   r4   r^   ÚreshapeÚpy_funcrp   ÚassertEqualr1   ÚtestingÚassert_allclose)rl   r¥   r   ru   Ú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Œ   )r4   r^   r¯   r{   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Œ   )r4   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                 ó2  — 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 ©Nr   r\   rŒ   rÂ   )rÅ   r§   rÃ   )r4   r}   Úint32r¯   r   ÚArrayr‡   r†   s      r   Útest_array_flat_emptyz(TestArrayIterators.test_array_flat_empty  sZ  € õ Œh�q¥¤Ð)Ñ)Ô)ˆØ�kŠk˜!˜QÑÔˆÝ”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ý”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ý”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ø�kŠk˜!˜QÑÔˆÝ”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ý”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ý”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ð-Ð-r   c                 óÐ  ‡ ‡— 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                 óâ   •— ‰j                              ‰t          | ¦  «        t          |¦  «        f¦  «        } ‰| |¦  «        }‰                     |                     | |¦  «        |¦  «         d S r   )rk   Úcompiler   r±   ro   )r   r&   Úcrru   rr   rl   s       €€r   Úcheckz9TestArrayIterators.test_array_flat_getitem.<locals>.check/  sf   ø€ Ø”×$Ò$ V­f°S©k¬k½6À#¹;¼;Ð-GÑHÔHˆBØ�v˜c 3Ñ'Ô'ˆHØ×Ò˜RŸ^š^¨C°Ñ5Ô5°xÑ@Ô@Ð@Ð@Ð@r   r¦   r�   rŒ   rŽ   é*   r9   r�   )	r'   r4   r^   r¯   Úrangerb   rš   r™   r˜   ©rl   rÒ   r   r   rr   s   `   @r   Útest_array_flat_getitemz*TestArrayIterators.test_array_flat_getitem,  s�  øø€ å#ˆð	Að 	Að 	Að 	Að 	Að 	Aõ
 Œ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           Šˆˆ 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                 óJ  •— t          | ¦  «        }‰j                             ‰|t          |¦  «        |j        f¦  «        }t	          j        | ¦  «        }t	          j        | ¦  «        } ‰||d¦  «         |                     ||d¦  «         ‰                     ||¦  «         d S )Né{   )r   rk   rÐ   r]   r4   r~   ro   rp   )r   r&   r   rÑ   ru   r´   rr   rl   s         €€r   rÒ   z9TestArrayIterators.test_array_flat_setitem.<locals>.checkK  s”   ø€ Ý˜3‘K”KˆEØ”×$Ò$ V¨eµV¸C±[´[À%Ä+Ð-NÑOÔOˆBå”w˜s‘|”|ˆHÝ”'˜#‘,”,ˆCØˆF�8˜S #Ñ&Ô&Ð&Ø�NŠN˜3  SÑ)Ô)Ð)Ø×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   r¦   r�   rŒ   rŽ   rÓ   r9   r�   )	r*   r4   r^   r¯   rÔ   rb   rš   r™   r˜   rÕ   s   `   @r   Útest_array_flat_setitemz*TestArrayIterators.test_array_flat_setitemH  s—  øø€ å#ˆð	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                 óB  ‡ ‡— t           Šˆˆ fd„}t          j        d¦  «                             ddd¦  «        } ||¦  «         |j        } ||¦  «         |d d d…         } ||¦  «         t          j        dg¦  «                             d¦  «        } ||¦  «         d S )Nc                 óÂ   •— ‰j                              ‰t          | ¦  «        f¦  «        } ‰| ¦  «        }‰                     |                     | ¦  «        |¦  «         d S r   )rk   rÐ   r   rp   ro   )r   rÑ   ru   rr   rl   s      €€r   rÒ   z5TestArrayIterators.test_array_flat_len.<locals>.checkl  sW   ø€ Ø”×$Ò$ V­f°S©k¬k¨^Ñ<Ô<ˆBØ�v˜c‘{”{ˆHØ×#Ò# B§N¢N°3Ñ$7Ô$7¸ÑBÔBÐBÐBÐBr   r¦   r�   rŒ   rŽ   rÓ   r9   )r2   r4   r^   r¯   rš   r™   )rl   rÒ   r   rr   s   `  @r   Útest_array_flat_lenz&TestArrayIterators.test_array_flat_leni  s¹   øø€ åˆð	Cð 	Cð 	Cð 	Cð 	Cð 	Cõ
 Œi˜‰mŒm×#Ò# A q¨!Ñ,Ô,ˆØˆˆc‰
Œ
ˆ
ØŒeˆØˆˆc‰
Œ
ˆ
Ø�#�#�A�#ŒhˆØˆˆc‰
Œ
ˆ
ÝŒh˜�t‰nŒn×$Ò$ RÑ(Ô(ˆØˆˆc‰
Œ
ˆ
ˆ
ˆ
r   c                 ó  — t          t          t          j        g¦  «        }|j        }t          d¦  «        } |d¦  «        }|                      |                     ¦   «         ¦  «         |                      ||¦  «         d S ©Nr‹   )r   rc   r   r`   ro   rÆ   Úsumrp   ©rl   rs   rt   Úexpectr´   s        r   Útest_array_flat_premature_freez1TestArrayIterators.test_array_flat_premature_freez  sn   € ÝÕ 9½E¼J¸<ÑHÔHˆØÔ ˆÝ*¨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¿   )r4   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                 ó2  — 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 rÊ   )r4   r}   rË   r¯   r   rÌ   r‰   r‡   r†   s      r   Útest_array_ndenumerate_emptyz/TestArrayIterators.test_array_ndenumerate_emptyœ  sX  € ÝŒh�q¥¤Ð)Ñ)Ô)ˆØ�kŠk˜!˜QÑÔˆÝ”�EœK¨°3Ð7Ñ7Ô7ˆØ×(Ò(¨¨eÑ4Ô4Ð4Ý”�EœK¨°3Ð7Ñ7Ô7ˆØ×(Ò(¨¨eÑ4Ô4Ð4Ý”�EœK¨°3Ð7Ñ7Ô7ˆØ×(Ò(¨¨eÑ4Ô4Ð4Ø�kŠk˜!˜QÑÔˆÝ”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ý”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ý”�EœK¨°3Ð7Ñ7Ô7ˆØ×!Ò! # uÑ-Ô-Ð-Ð-Ð-r   c                 ó  — t          t          t          j        g¦  «        }|j        }t          d¦  «        } |d¦  «        }|                      |                     ¦   «         ¦  «         |                      ||¦  «         d S rß   )r   re   r   r`   ro   rÆ   rà   rp   rá   s        r   Ú%test_array_ndenumerate_premature_freez8TestArrayIterators.test_array_ndenumerate_premature_free­  sn   € ÝÕ @Å5Ä:À,ÑOÔOˆØÔ ˆÝ1°!Ñ4Ô4ˆØˆe�A‰hŒhˆØ�Š˜Ÿš™	œ	Ñ"Ô"Ð"Ø×Ò ¨Ñ,Ô,Ð,Ð,Ð,r   c                 ó¾  — t           }t          |t          j        t          j        g¦  «        }|j        }|                       |dd¦  «         |dd¦  «        ¦  «         |                       |dd¦  «         |dd¦  «        ¦  «         |                       |dd¦  «         |dd¦  «        ¦  «         |                       |dd¦  «         |dd¦  «        ¦  «         d S )NrŽ   r�   r   )r@   r   r   rË   ro   rp   ©rl   rƒ   rs   rt   s       r   Útest_np_ndindexz"TestArrayIterators.test_np_ndindexµ  sÕ   € ÝˆÝ ¥u¤{µE´KÐ&@ÑAÔAˆØÔ ˆØ×Ò   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Ž   )rD   r4   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          |g ¦  «        }|j        }|                       |¦   «          |¦   «         ¦  «         d S r   )r;   r   ro   rp   rë   s       r   Útest_np_ndindex_emptyz(TestArrayIterators.test_np_ndindex_emptyÇ  sF   € ÝˆÝ  bÑ)Ô)ˆØÔ ˆØ×Ò  ¡¤¨¨©¬Ñ0Ô0Ð0Ð0Ð0r   c                 ó¢   — t           }t          j        dt          j        ¬¦  «        dz   }|                      |t          |¦  «        |¦  «         d S )Nr½   r\   r®   )rY   r4   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__rj   rv   rx   r{   r�   r„   r‡   r‰   rœ   r»   rÀ   rÈ   rÍ   rÖ   rÚ   rÝ   rã   rå   rç   ré   rì   rï   rñ   ró   Ú__classcell__)rm   s   @r   rg   rg   y   s¥  ø€ € € € € ðð ð)ð )ð )ð )ð )ð6ð 6ð 6ð6ð 6ð 6ð=ð =ð =ð-ð -ð -ð -ð7ð 7ð 7ð
;ð ;ð ;ðBð Bð Bð+ð +ð +ð"3-ð 3-ð 3-ðj+ð +ð +ð#ð #ð #ð2.ð .ð .ð&ð ð ð8ð ð ðBð ð ð"-ð -ð -ð;ð ;ð ;ð4.ð .ð .ð"-ð -ð -ð9ð 9ð 9ð7ð 7ð 7ð1ð 1ð 1ð7ð 7ð 7ð 7ð 7ð 7ð 7r   rg   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�   )	r4   Úfloat32r™   Úint16r^   ÚastypeÚ	complex64r¯   r~   ©rl   rJ   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¨   )r4   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´   ru   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ž   )rM   r   r  r  )rl   rr   rt   rJ   ru   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
  )rP   r   Ú	itertoolsÚproductr  r  )rl   rr   rt   rJ   rO   ru   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
  )rT   r   r  r  r  r  )	rl   rr   rt   r  rJ   rO   rR   ru   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)rJ   rO   Úraisesrt   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¾   )rP   r   Údisable_leak_checkr4   r^   r¯   )rl   rr   r  rJ   rO   rt   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  r9   r   r   rú   rú   Ô  sŠ   € € € € € ðð ðð ð ð( ð  ð  ðCð Cð Cð-ð -ð -ð-ð -ð -ð-ð -ð -ð!ð !ð !ð !ð !r   rú   Ú__main__)&r  Únumpyr4   Únumbar   r   Ú
numba.corer   Únumba.core.compilerr   Únumba.tests.supportr   r   r	   r
   Úunittestr   r   r   r#   r'   r*   r/   r2   r7   r;   r@   rD   rM   rP   rT   rY   rc   re   rg   rú   rô   Úmainr9   r   r   ú<module>r%     s$  ðØ Ð Ð Ð à Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ €€€ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð)ð )ð )ðð ð ðð ð ðX7ð X7ð X7ð X7ð X7˜¨(ñ X7ô X7ð X7ðv
M!ð M!ð M!ð M!ð M!� (ñ M!ô M!ð M!ð` ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   