§
    2@Äj	â  ã                   ó¨  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZmZmZ d dlmZ d dlmZ d dlZ edd¬	¦  «        Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z# G d„ de¦  «        Z$ G d„ de¦  «        Z% G d„ de%e¦  «        Z& G d„ de%¦  «        Z' G d„ de'e¦  «        Z( G d„ de(¦  «        Z) G d„ d e'e¦  «        Z* G d!„ d"e+¦  «        Z, G d#„ d$e,e¦  «        Z- G d%„ d&e-¦  «        Z. G d'„ d(e.¦  «        Z/ G d)„ d*e,e¦  «        Z0 G d+„ d,e$¦  «        Z1 G d-„ d.e$¦  «        Z2 G d/„ d0e¦  «        Z3 G d1„ d2e$¦  «        Z4 G d3„ d4e¦  «        Z5 G d5„ d6ee$¦  «        Z6 G d7„ d8ee¦  «        Z7 ej8         e9ed9¦  «        d:¦  «         G d;„ d<ee¦  «        ¦   «         Z:d=„ Z;e<d>k    r ej=        ¦   «          dS dS )?é    N)ÚTypingError)Únjit)ÚtypesÚutilsÚconfig)ÚMemoryLeakMixinÚTestCaseÚtagÚskip_if_32bit)Ú	PYVERSION)Únumpy_versionT)Ú_nrtÚnogilc                 ó0   — t          j        | ||f¦  «        S ©N©ÚnpÚconcatenate©ÚaÚbÚcs      úKC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_dyn_array.pyÚnp_concatenate1r      s   € ÝŒ>˜1˜a ˜)Ñ$Ô$Ð$ó    c                 ó4   — t          j        | ||f|¬¦  «        S ©N©Úaxisr   ©r   r   r   r   s       r   Únp_concatenate2r!      s   € ÝŒ>˜1˜a ˜)¨$Ð/Ñ/Ô/Ð/r   c                 ó0   — t          j        | ||f¦  «        S r   ©r   Ústackr   s      r   Ú	np_stack1r%      s   € ÝŒ8�Q˜˜1�IÑÔÐr   c                 ó4   — t          j        | ||f|¬¦  «        S r   r#   r    s       r   Ú	np_stack2r'      s   € ÝŒ8�Q˜˜1�I DÐ)Ñ)Ô)Ð)r   c                 ó0   — t          j        | ||f¦  «        S r   )r   Úhstackr   s      r   Ú	np_hstackr*   !   ó   € ÝŒ9�a˜˜A�YÑÔÐr   c                 ó0   — t          j        | ||f¦  «        S r   )r   Úvstackr   s      r   Ú	np_vstackr.   $   r+   r   c                 ó0   — t          j        | ||f¦  «        S r   )r   Ú	row_stackr   s      r   Únp_row_stackr1   '   s   € ÝŒ<˜˜A˜q˜	Ñ"Ô"Ð"r   c                 ó0   — t          j        | ||f¦  «        S r   )r   Údstackr   s      r   Ú	np_dstackr4   *   r+   r   c                 ó0   — t          j        | ||f¦  «        S r   )r   Úcolumn_stackr   s      r   Únp_column_stackr7   -   s   € ÝŒ?˜A˜q !˜9Ñ%Ô%Ð%r   c                   ó   — e Zd Zdd„ZdS )ÚBaseTestTc                 ót  — t          |¦  «        }|D ]¥} ||Ž } ||Ž }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      ||¦  «         |r!t
          j                             ||¦  «         Œ…t
          j                             ||¦  «         Œ¦d S r   )	ÚnrtjitÚassertEqualÚsizeÚdtypeÚassertStridesEqualr   ÚtestingÚassert_equalÚassert_allclose)ÚselfÚpyfuncÚargslistÚexactÚcfuncÚargsÚexpectedÚrets           r   Úcheck_outputszBaseTest.check_outputs3   sÄ   € Ý�v‘”ˆØð 		:ð 		:ˆDØ�v˜t�}ˆHØ�%˜�,ˆCØ×Ò˜SœX x¤}Ñ5Ô5Ð5Ø×Ò˜SœY¨¬Ñ7Ô7Ð7Ø×#Ò# C¨Ñ2Ô2Ð2Øð :Ý”
×'Ò'¨°#Ñ6Ô6Ð6Ð6å”
×*Ò*¨8°SÑ9Ô9Ð9Ð9ð		:ð 		:r   N)T)Ú__name__Ú
__module__Ú__qualname__rK   © r   r   r9   r9   1   s(   € € € € € ð:ð :ð :ð :ð :ð :r   r9   c                   ó   — e Zd Zd„ ZdS )ÚNrtRefCtTestc                 óF   — |                       |j        j        |¦  «         d S r   )r<   ÚbaseÚrefcount)rC   ÚarrÚexpects      r   Úassert_array_nrt_refctz#NrtRefCtTest.assert_array_nrt_refctB   s#   € Ø×Ò˜œÔ*¨FÑ3Ô3Ð3Ð3Ð3r   N)rL   rM   rN   rW   rO   r   r   rQ   rQ   A   s#   € € € € € ð4ð 4ð 4ð 4ð 4r   rQ   c                   ó„   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestDynArrayc                 ó"  — t           d„ ¦   «         } |¦   «         }|                      |d¦  «         t          j                             d|¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        t          j        t          j	        ¦  «        ¦  «         |                      |j
        d¦  «         |                     d¦  «         t          j                             d|¦  «         ~d S )Nc                  ó8   — t          j        d¦  «        } d| d<   | S )NrO   é*   ©r   Úempty©rU   s    r   Úfooz'TestDynArray.test_empty_0d.<locals>.fooI   s   € å”(˜2‘,”,ˆCØˆC�‰GØˆJr   é   r\   rO   é{   )r;   rW   r   r@   rA   r<   r=   Úshaper>   Úfloat64ÚstridesÚfill)rC   r`   rU   s      r   Útest_empty_0dzTestDynArray.test_empty_0dH   sð   € Ý	ð	ð 	ñ 
Œð	ð
 ˆc‰eŒeˆØ×#Ò# C¨Ñ+Ô+Ð+Ý
Œ
×Ò  CÑ(Ô(Ð(Ø×Ò˜œ 1Ñ%Ô%Ð%Ø×Ò˜œ BÑ'Ô'Ð'Ø×Ò˜œ¥B¤H­R¬ZÑ$8Ô$8Ñ9Ô9Ð9Ø×Ò˜œ bÑ)Ô)Ð)Ø�Š�‰ŒˆÝ
Œ
×Ò  SÑ)Ô)Ð)ØˆCˆCr   c                 ó’  — t           d„ ¦   «         }d} ||¦  «        }|                      |d¦  «         t          j                             t          j        |¦  «        |¦  «         |                      |j        |¦  «         |                      |j        |f¦  «         |                      |j	        t          j	        t          j
        ¦  «        ¦  «         |                      |j        t          j	        t          j
        ¦  «        j        f¦  «         |                     d¦  «         t          j                             d|¦  «         ~d S )Nc                 ó\   — t          j        | ¦  «        }t          | ¦  «        D ]}|||<   Œ|S r   )r   r^   Úrange)ÚnrU   Úis      r   r`   z'TestDynArray.test_empty_1d.<locals>.foo[   s4   € å”(˜1‘+”+ˆCÝ˜1‘X”Xð ð �Ø��A‘�àˆJr   é   ra   rb   )r;   rW   r   r@   rA   Úaranger<   r=   rc   r>   rd   re   Úitemsizerf   )rC   r`   rk   rU   s       r   Útest_empty_1dzTestDynArray.test_empty_1dZ   s  € Ý	ð	ð 	ñ 
Œð	ð ˆØˆc�!‰fŒfˆØ×#Ò# C¨Ñ+Ô+Ð+Ý
Œ
×Ò¥¤	¨!¡¤¨cÑ2Ô2Ð2Ø×Ò˜œ 1Ñ%Ô%Ð%Ø×Ò˜œ Q DÑ)Ô)Ð)Ø×Ò˜œ¥B¤H­R¬ZÑ$8Ô$8Ñ9Ô9Ð9Ø×Ò˜œ¥r¤xµ´
Ñ';Ô';Ô'DÐ&FÑGÔGÐGØ�Š�‰ŒˆÝ
Œ
×Ò  SÑ)Ô)Ð)ØˆCˆCr   c                 ó�  — d„ }t          |¦  «        }d}d} |||¦  «        } |||¦  «        }|                      |d¦  «         t          j                             ||¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         ~d S )Nc                 ó¤   — t          j        | |ft           j        ¦  «        }t          | ¦  «        D ]}t          |¦  «        D ]}||z   |||f<   ŒŒ|S r   ©r   r^   Úint32rj   )Úmrk   rU   rl   Újs        r   rD   z*TestDynArray.test_empty_2d.<locals>.pyfuncp   sb   € Ý”(˜A˜q˜6¥2¤8Ñ,Ô,ˆCÝ˜1‘X”Xð &ð &�Ý˜q™œð &ð &�AØ ! A¡�C˜˜1˜‘I�Ið&ð ˆJr   é   rm   ra   ©	r;   rW   r   r@   rA   r<   r=   rc   re   )rC   rD   rG   ru   rk   Úexpected_arrÚgot_arrs          r   Útest_empty_2dzTestDynArray.test_empty_2do   sÌ   € ð	ð 	ð 	õ �v‘”ˆØˆØˆØ�v˜a ‘|”|ˆØ�%˜˜1‘+”+ˆØ×#Ò# G¨QÑ/Ô/Ð/Ý
Œ
×Ò ¨gÑ6Ô6Ð6à×Ò˜Ô*¨G¬LÑ9Ô9Ð9Ø×Ò˜Ô+¨W¬]Ñ;Ô;Ð;Ø×Ò˜Ô-¨w¬Ñ?Ô?Ð?àˆGˆGr   c                 ó˜  — d„ }t          |¦  «        }d}d}d} ||||¦  «        } ||||¦  «        }|                      |d¦  «         t          j                             ||¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         ~d S )Nc                 óÒ   — t          j        | ||ft           j        ¦  «        }t          | ¦  «        D ]4}t          |¦  «        D ]"}t          |¦  «        D ]}||z   |z   ||||f<   ŒŒ#Œ5|S r   rs   )ru   rk   ÚprU   rl   rv   Úks          r   rD   z*TestDynArray.test_empty_3d.<locals>.pyfunc‡   s„   € Ý”(˜A˜q !˜9¥b¤hÑ/Ô/ˆCÝ˜1‘X”Xð 1ð 1�Ý˜q™œð 1ð 1�AÝ" 1™XœXð 1ð 1˜Ø'(¨1¡u¨q¡y˜˜A˜q !˜G™˜ð1ð1ð ˆJr   rw   rm   é   ra   rx   ©rC   rD   rG   ru   rk   r~   ry   rz   s           r   Útest_empty_3dzTestDynArray.test_empty_3d†   sÕ   € ð	ð 	ð 	õ �v‘”ˆØˆØˆØˆØ�v˜a  A‘”ˆØ�%˜˜1˜a‘.”.ˆØ×#Ò# G¨QÑ/Ô/Ð/Ý
Œ
×Ò ¨gÑ6Ô6Ð6à×Ò˜Ô*¨G¬LÑ9Ô9Ð9Ø×Ò˜Ô+¨W¬]Ñ;Ô;Ð;Ø×Ò˜Ô-¨w¬Ñ?Ô?Ð?àˆGˆGr   c                 ó˜  — d„ }t          |¦  «        }d}d}d} ||||¦  «        } ||||¦  «        }|                      |d¦  «         t          j                             ||¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         ~d S )Nc                 ó°   — t          j        | |ft           j        ¦  «        }t          | ¦  «        D ]}t          |¦  «        D ]}||z   |||f<   ŒŒ||         S r   rs   )ru   rk   r~   rU   rl   rv   s         r   rD   z1TestDynArray.test_empty_2d_sliced.<locals>.pyfunc    sf   € Ý”(˜A˜q˜6¥2¤8Ñ,Ô,ˆCÝ˜1‘X”Xð &ð &�Ý˜q™œð &ð &�AØ ! A¡�C˜˜1˜‘I�Ið&ð �q”6ˆMr   rw   rm   r€   ra   rx   r�   s           r   Útest_empty_2d_slicedz!TestDynArray.test_empty_2d_slicedŸ   sÕ   € ð	ð 	ð 	õ �v‘”ˆØˆØˆØˆØ�v˜a  A‘”ˆØ�%˜˜1˜a‘.”.ˆØ×#Ò# G¨QÑ/Ô/Ð/Ý
Œ
×Ò ¨gÑ6Ô6Ð6à×Ò˜Ô*¨G¬LÑ9Ô9Ð9Ø×Ò˜Ô+¨W¬]Ñ;Ô;Ð;Ø×Ò˜Ô-¨w¬Ñ?Ô?Ð?àˆGˆGr   c                 ó0  ‡— t          j        dt           j        ¬¦  «        Št          j        ‰¦  «        }ˆfd„}t          |¦  «        } |¦   «         }|                      |dz   t          j        ‰¦  «        ¦  «         t           j                             ‰|¦  «         t           j                             ‰t          j        dt           j        ¬¦  «        ¦  «         t           j                             |t          j        dt           j        ¬¦  «        ¦  «         ~t          j
        ¦   «          |                      |dz   t          j        ‰¦  «        ¦  «         ~t          j
        ¦   «          |                      |t          j        ‰¦  «        ¦  «         d S )Nrw   ©r>   c                  ó   •— ‰ S r   rO   ©Úys   €r   Úreturn_external_arrayzDTestDynArray.test_return_global_array.<locals>.return_external_array»   s   ø€ ØˆHr   ra   )r   ÚonesÚfloat32ÚsysÚgetrefcountr;   r<   r@   rA   ÚgcÚcollect)rC   Ú	initrefctr‹   rG   ÚoutrŠ   s        @r   Útest_return_global_arrayz%TestDynArray.test_return_global_array·   sR  ø€ ÝŒG�A�RœZÐ(Ñ(Ô(ˆÝ”O AÑ&Ô&ˆ	ð	ð 	ð 	ð 	ð 	õ Ð,Ñ-Ô-ˆØˆe‰gŒgˆð 	×Ò˜ Q™­¬¸Ñ(:Ô(:Ñ;Ô;Ð;å
Œ
×Ò  3Ñ'Ô'Ð'Ý
Œ
×Ò ¥2¤7¨1µB´JÐ#?Ñ#?Ô#?Ñ@Ô@Ð@Ý
Œ
×Ò ¥R¤W¨Qµb´jÐ%AÑ%AÔ%AÑBÔBÐBàÝ
Œ
‰Œˆà×Ò˜ Q™­¬¸Ñ(:Ô(:Ñ;Ô;Ð;àÝ
Œ
‰Œˆà×Ò˜¥C¤O°AÑ$6Ô$6Ñ7Ô7Ð7Ð7Ð7r   c                 ó  ‡— t          j        dt           j        ¬¦  «        Šˆfd„}t          |¦  «        } |¦   «         }|                      |j        ¦  «         ‰dd …         }t           j                             ||¦  «         t           j                             |t          j        dt           j        ¬¦  «        ¦  «         t           j                             |t          j        dt           j        ¬¦  «        ¦  «         d S )Nrw   r‡   c                  ó   •— ‰ dd …         S ©Nr€   rO   r‰   s   €r   r‹   zKTestDynArray.test_return_global_array_sliced.<locals>.return_external_arrayÕ   s   ø€ Ø�Q�R�R”5ˆLr   r€   )r   rŒ   r�   r;   ÚassertIsNonerS   r@   rA   )rC   r‹   rG   r“   ÚyyrŠ   s        @r   Útest_return_global_array_slicedz,TestDynArray.test_return_global_array_slicedÒ   sà   ø€ ÝŒG�A�RœZÐ(Ñ(Ô(ˆð	ð 	ð 	ð 	ð 	õ Ð,Ñ-Ô-ˆØˆe‰gŒgˆØ×Ò˜#œ(Ñ#Ô#Ð#àˆqˆrˆrŒUˆÝ
Œ
×Ò  CÑ(Ô(Ð(Ý
Œ
×Ò ¥B¤G¨AµR´ZÐ$@Ñ$@Ô$@ÑAÔAÐAÝ
Œ
×Ò ¥R¤W¨Qµb´jÐ%AÑ%AÔ%AÑBÔBÐBÐBÐBr   c                 ón  — d„ }t          j        dt           j        ¬¦  «        }t          |¦  «        } ||¦  «        } ||¦  «        }t           j                             ||¦  «         t           j                             ||¦  «         |                      ||¦  «         |                      ||¦  «         d S )Nc                 ó   — | S r   rO   r‰   s    r   rD   z4TestDynArray.test_array_pass_through.<locals>.pyfuncâ   s   € ØˆHr   rw   r‡   )r   rŒ   r�   r;   r@   rA   ÚassertIs)rC   rD   rU   rG   rI   Úgots         r   Útest_array_pass_throughz$TestDynArray.test_array_pass_throughá   s¬   € ð	ð 	ð 	õ Œg�a�rœzÐ*Ñ*Ô*ˆå�v‘”ˆØ�5˜‘:”:ˆØˆf�S‰kŒkˆå
Œ
×Ò ¨#Ñ.Ô.Ð.Ý
Œ
×Ò ¨#Ñ.Ô.Ð.Ø�Š�h Ñ$Ô$Ð$Ø�Š�h Ñ$Ô$Ð$Ð$Ð$r   c                 ó°  — d„ }t          j        dt           j        ¬¦  «        }t          j        |¦  «        }t          |¦  «        } ||¦  «        }|                      |dz   t          j        |¦  «        ¦  «          ||¦  «        }|                      |dz   t          j        |¦  «        ¦  «         t           j                             |||j	        dz           ¦  «         t           j                             ||¦  «         ~|                      |dz   t          j        |¦  «        ¦  «         ~|                      |t          j        |¦  «        ¦  «         d S )Nc                 ó&   — | | j         dz  d …         S r—   )r=   r‰   s    r   rD   z;TestDynArray.test_array_pass_through_sliced.<locals>.pyfuncñ   s   € Ø�Q”V˜q‘[�\�\”?Ð"r   rw   r‡   ra   r€   )
r   rŒ   r�   rŽ   r�   r;   r<   r@   rA   r=   )rC   rD   rU   r’   rG   rž   rI   s          r   Útest_array_pass_through_slicedz+TestDynArray.test_array_pass_through_slicedð   s0  € ð	#ð 	#ð 	#õ Œg�a�rœzÐ*Ñ*Ô*ˆå”O CÑ(Ô(ˆ	å�v‘”ˆØˆe�C‰jŒjˆØ×Ò˜ Q™­¬¸Ñ(<Ô(<Ñ=Ô=Ð=Ø�6˜#‘;”;ˆØ×Ò˜ Q™­¬¸Ñ(<Ô(<Ñ=Ô=Ð=å
Œ
×Ò ¨#¨c¬h¸!©mÔ*<Ñ=Ô=Ð=Ý
Œ
×Ò ¨#Ñ.Ô.Ð.àØ×Ò˜ Q™­¬¸Ñ(<Ô(<Ñ=Ô=Ð=ØØ×Ò˜¥C¤O°CÑ$8Ô$8Ñ9Ô9Ð9Ð9Ð9r   c                 ó:  — d„ }t          |¦  «        }t          j                             d¦  «        }t          j                             d¦  «        }t          j                              |||¦  «         |||¦  «        ¦  «         |                       |||¦  «        d¦  «         t          j                             d¦  «                             dd¦  «        }t          j                             d¦  «                             dd¦  «        }t          j                              |||¦  «         |||¦  «        ¦  «         |                       |||¦  «        d¦  «         t          j                             d¦  «                             ddd¦  «        }t          j                             d¦  «                             ddd¦  «        }t          j                              |||¦  «         |||¦  «        ¦  «         |                       |||¦  «        d¦  «         d S )Nc                 ód   — t          j        | j        ¦  «        }t          j        | ||¦  «         |S r   )r   r^   rc   Úadd)r   r   r“   s      r   rD   z=TestDynArray.test_ufunc_with_allocated_output.<locals>.pyfunc  s,   € Ý”(˜1œ7Ñ#Ô#ˆCÝŒF�1�a˜ÑÔÐØˆJr   é
   ra   r€   é   éF   é   )r;   r   Úrandomr@   rA   rW   Úreshape)rC   rD   rG   Úarr_aÚarr_bs        r   Ú test_ufunc_with_allocated_outputz-TestDynArray.test_ufunc_with_allocated_output  sý  € ð	ð 	ð 	õ
 �v‘”ˆõ ”	× Ò  Ñ$Ô$ˆÝ”	× Ò  Ñ$Ô$ˆå
Œ
×Ò   u¨eÑ 4Ô 4Ø %  e¨UÑ 3Ô 3ñ	5ô 	5ð 	5ð 	×#Ò# E E¨%°Ñ$7Ô$7¸Ñ;Ô;Ð;õ ”	× Ò  Ñ$Ô$×,Ò,¨Q°Ñ2Ô2ˆÝ”	× Ò  Ñ$Ô$×,Ò,¨Q°Ñ2Ô2ˆå
Œ
×Ò   u¨eÑ 4Ô 4Ø %  e¨UÑ 3Ô 3ñ	5ô 	5ð 	5ð 	×#Ò# E E¨%°Ñ$7Ô$7¸Ñ;Ô;Ð;õ ”	× Ò  Ñ$Ô$×,Ò,¨Q°°1Ñ5Ô5ˆÝ”	× Ò  Ñ$Ô$×,Ò,¨Q°°1Ñ5Ô5ˆå
Œ
×Ò   u¨eÑ 4Ô 4Ø %  e¨UÑ 3Ô 3ñ	5ô 	5ð 	5ð 	×#Ò# E E¨%°Ñ$7Ô$7¸Ñ;Ô;Ð;Ð;Ð;r   c                 óš  ‡— d„ }t          |¦  «        Šd}t          j                             dd|¦  «        }|                     ¦   «         }t          j                              ||¦  «         ‰|¦  «        ¦  «         t          j                             ||¦  «         g }g }g }ˆfd„}t          d¦  «        D ]¢}	t          j                             dd|¦  «        }t          j        |¦  «        }
t          j
        |||
fd                     |	¦  «        ¬¦  «        }|                     |¦  «         |                     |¦  «         |                     |
¦  «         Œ£|D ]}|                     ¦   «          Œ|D ]}|                     ¦   «          Œt          ||¦  «        D ].\  }}
t          j                              ||¦  «        |
¦  «         Œ/dS )	z�
        This test exercises the array allocation in multithreaded usecase.
        This stress the freelist inside NRT.
        c                 óv  — t          j        | j        ¦  «        }t          |j        ¦  «        D ]}d||<   Œt          | d         ¦  «        D ]m}t          j        | j        ¦  «        }t          |j        ¦  «        D ]}| |         ||<   Œt          |j        ¦  «        D ]}||xx         ||         |z   z  cc<   ŒŒn|S )Nr   ©r   r^   r=   rj   )Úinpr“   rl   Útmprv   s        r   rD   z/TestDynArray.test_allocation_mt.<locals>.pyfunc0  sÊ   € Ý”(˜3œ8Ñ$Ô$ˆCõ ˜3œ8‘_”_ð ð �Ø��A‘�å˜3˜qœ6‘]”]ð )ð )�å”h˜sœxÑ(Ô(�å˜sœx™œð $ð $�AØ  œV�C˜‘F�Få˜sœx™œð )ð )�AØ˜�F�F”F˜c !œf q™jÑ(�F�F‘F�Fð)ð ˆJr   r¦   ra   c                 ó(   •—  ‰| ¦  «        |d d …<   d S r   rO   )r²   r“   rG   s     €r   Úwrappedz0TestDynArray.test_allocation_mt.<locals>.wrappedQ  s   ø€ Ø�U˜3‘Z”ZˆC���‰FˆFˆFr   éd   ú	worker{0}©ÚtargetrH   ÚnameN)r;   r   rª   ÚrandintÚcopyr@   rA   rj   Ú
empty_likeÚ	threadingÚThreadÚformatÚappendÚstartÚjoinÚzip)rC   rD   r=   rU   Ú
frozen_arrÚworkersÚinputsÚoutputsrµ   rl   r“   Úthreadr²   rG   s                @r   Útest_allocation_mtzTestDynArray.test_allocation_mt*  sì  ø€ ð	ð 	ð 	õ& �v‘”ˆØˆÝŒi×Ò  2 tÑ,Ô,ˆØ—X’X‘Z”Zˆ
å
Œ
×Ò   s¡¤¨U¨U°3©Z¬ZÑ8Ô8Ð8å
Œ
×Ò 
¨CÑ0Ô0Ð0àˆØˆØˆð	 ð 	 ð 	 ð 	 ð 	 õ �s‘”ð 	 ð 	 ˆAÝ”)×#Ò# A r¨4Ñ0Ô0ˆCÝ”- Ñ$Ô$ˆCÝÔ%¨WØ,/°¨:Ø+6×+=Ò+=¸aÑ+@Ô+@ðBñ Bô BˆFð �NŠN˜6Ñ"Ô"Ð"Ø�MŠM˜#ÑÔÐØ�NŠN˜3ÑÔÐÐð ð 	ð 	ˆFØ�LŠL‰NŒNˆNˆNð ð 	ð 	ˆFØ�KŠK‰MŒMˆMˆMõ ˜F GÑ,Ô,ð 	6ð 	6‰HˆC�ÝŒJ×#Ò# F F¨3¡K¤K°Ñ5Ô5Ð5Ð5ð	6ð 	6r   c                 ó  ‡— d„ }t          |¦  «        Šd}t          j        |t          ¬¦  «        }t	          j        |¦  «        }t          j        d¦  «        } |||¦  «        }t          j         	                    | ‰||¦  «        ¦  «         ~|  
                    |t	          j        |¦  «        ¦  «         g }g }g }	ˆfd„}
t          d¦  «        D ]–}t          j        |¦  «        }t          j        d¦  «        }t          j        |
|||fd                     |¦  «        ¬¦  «        }|                     |¦  «         |                     |¦  «         |	                     |¦  «         Œ—|D ]}|                     ¦   «          Œ|D ]}|                     ¦   «          Œt'          |	|¦  «        D ]/\  }}t          j         	                     |||¦  «        |¦  «         Œ0~~|  
                    |t	          j        |¦  «        ¦  «         d	S )
zE
        This test exercises the refct in multithreaded code
        c                 ó®   — t          j        |j        ¦  «        }t          |j        ¦  «        D ]}||         dz   ||<   Œt          | ¦  «        D ]}||}}Œ|S ©Nra   r±   )rk   r²   r“   rl   s       r   rD   z*TestDynArray.test_refct_mt.<locals>.pyfuncp  sb   € Ý”(˜3œ8Ñ$Ô$ˆCÝ˜3œ8‘_”_ð $ð $�Ø˜Qœ !™��A‘�å˜1‘X”Xð $ð $�Ø �S��ØˆJr   r¦   r‡   iè  c                 ó*   •—  ‰| |¦  «        |d d …<   d S r   rO   )rk   Úinputr“   rG   s      €r   rµ   z+TestDynArray.test_refct_mt.<locals>.wrapped‰  s   ø€ Ø�U˜1˜e‘_”_ˆC���‰FˆFˆFr   r¶   r·   r¸   N)r;   r   rn   ÚfloatrŽ   r�   rª   Ú	randranger@   rA   r<   rj   r^   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   )rC   rD   r=   rÏ   Úexpected_refctÚswapctrI   rÆ   rÈ   Úswapctsrµ   rl   r“   rÉ   rG   s                 @r   Útest_refct_mtzTestDynArray.test_refct_mtk  s0  ø€ ð
	ð 	ð 	õ �v‘”ˆØˆÝ”	˜$¥eÐ,Ñ,Ô,ˆÝœ¨Ñ/Ô/ˆÝÔ! $Ñ'Ô'ˆØ�6˜& %Ñ(Ô(ˆÝ
Œ
×Ò ¨%¨%°¸Ñ*>Ô*>Ñ?Ô?Ð?àØ×Ò˜­¬¸Ñ)?Ô)?Ñ@Ô@Ð@àˆØˆØˆð	%ð 	%ð 	%ð 	%ð 	%õ �s‘”ð 		#ð 		#ˆAÝ”(˜4‘.”.ˆCåÔ% dÑ+Ô+ˆFÝÔ%¨WØ,2°E¸3Ð+?Ø+6×+=Ò+=¸aÑ+@Ô+@ðBñ Bô BˆFð �NŠN˜6Ñ"Ô"Ð"Ø�NŠN˜3ÑÔÐØ�NŠN˜6Ñ"Ô"Ð"Ð"ð ð 	ð 	ˆFØ�LŠL‰NŒNˆNˆNð ð 	ð 	ˆFØ�KŠK‰MŒMˆMˆMõ ˜w¨Ñ0Ô0ð 	@ð 	@‰KˆF�CÝŒJ×#Ò# F F¨6°5Ñ$9Ô$9¸3Ñ?Ô?Ð?Ð?à�Wà×Ò˜­¬¸Ñ)?Ô)?Ñ@Ô@Ð@Ð@Ð@r   c                 óB  — t           d„ ¦   «         }|                      ¦   «          |                      t          ¦  «        5 } |t          j        j        dz  dz  ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j	        ¦  «        ¦  «         d S )Nc                 ó.   — t          j        | ¦  «         d S r   r]   )Úxs    r   r`   z1TestDynArray.test_invalid_size_array.<locals>.foo«  s   € åŒH�Q‰KŒKˆKˆKˆKr   é   r€   zAllocation failed)
r   Údisable_leak_checkÚassertRaisesÚMemoryErrorr   Úsize_tÚmaxvalÚassertInÚstrÚ	exception)rC   r`   Úraisess      r   Útest_invalid_size_arrayz$TestDynArray.test_invalid_size_array¨  sÞ   € õ 
ð	ð 	ñ 
Œð	ð 	×ÒÑ!Ô!Ð!à×Ò�{Ñ+Ô+ð 	/¨vØˆC•”Ô# qÑ(¨AÑ-Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	�ŠÐ)­3¨vÔ/?Ñ+@Ô+@ÑAÔAÐAÐAÐAs   ¿!A,Á,A0Á3A0c                 ój  — d„ }t          |¦  «        }t          j                             d¦  «        }t          j                             d¦  «        }d}t          j        |¦  «        t          j        |¦  «        f} ||||¦  «         ||||¦  «        }}|                      |d         j        ¦  «         |                      |d         j        ¦  «         t          j                             ||¦  «         ~~|  	                    |t          j        |¦  «        t          j        |¦  «        f¦  «         d S )Nc                 ó6   — t          |¦  «        D ]}|| }} Œ| |fS )z5Swap array x and y for t number of times
            ©rj   ©rØ   rŠ   Útrl   s       r   rD   z&TestDynArray.test_swap.<locals>.pyfunc¹  s-   € õ ˜1‘X”Xð ð �Ø˜!�1��à�a�4ˆKr   r¶   r   ra   )
r;   r   rª   rŽ   r�   r˜   rS   r@   rA   r<   )	rC   rD   rG   rØ   rŠ   rè   r’   rV   rž   s	            r   Ú	test_swapzTestDynArray.test_swap·  s  € ð	ð 	ð 	õ �v‘”ˆåŒI×Ò˜SÑ!Ô!ˆÝŒI×Ò˜SÑ!Ô!ˆàˆå”O AÑ&Ô&­¬¸Ñ(:Ô(:Ð:ˆ	Ø�f˜Q  1‘o”o u u¨Q°°1¡~¤~�ˆØ×Ò˜#˜aœ&œ+Ñ&Ô&Ð&Ø×Ò˜#˜aœ&œ+Ñ&Ô&Ð&Ý
Œ
×Ò ¨Ñ,Ô,Ð,Ø�CØ×Ò˜¥S¤_°QÑ%7Ô%7½¼ÈÑ9KÔ9KÐ$LÑMÔMÐMÐMÐMr   c                 óh  — d„ }t          |¦  «        }t          j                             d¦  «        }t          j        |¦  «        } ||¦  «        \  }} ||¦  «        \  }}|                      ||¦  «         |                      ||¦  «         t          j                             ||¦  «         t          j                             ||¦  «         ~~|                      |t          j        |¦  «        ¦  «         |                      t          j        |¦  «        t          j        |¦  «        ¦  «         d S )Nc                 ó†   — t          j        | j        ¦  «        }t          |j        ¦  «        D ]}| |         dz   ||<   Œ| |fS rÍ   r±   )rØ   rŠ   rl   s      r   rD   z7TestDynArray.test_return_tuple_of_array.<locals>.pyfuncÓ  sF   € Ý”˜œÑ Ô ˆAÝ˜1œ6‘]”]ð  ð  �Ø˜”t˜a‘x��!‘�Ø�a�4ˆKr   r§   )	r;   r   rª   rŽ   r�   r�   r@   rA   r<   )	rC   rD   rG   rØ   r’   Ú
expected_xÚ
expected_yÚgot_xÚgot_ys	            r   Útest_return_tuple_of_arrayz'TestDynArray.test_return_tuple_of_arrayÑ  s  € ð	ð 	ð 	õ �v‘”ˆåŒI×Ò˜QÑÔˆÝ”O AÑ&Ô&ˆ	Ø!' ¨¡¤Ñˆ
�JØ�u˜Q‘x”x‰ˆˆuØ�Š�a˜Ñ$Ô$Ð$Ø�Š�a˜ÑÔÐÝ
Œ
×Ò 
¨EÑ2Ô2Ð2Ý
Œ
×Ò 
¨EÑ2Ô2Ð2Ø˜Ø×Ò˜¥C¤O°AÑ$6Ô$6Ñ7Ô7Ð7à×Ò�œ¨Ñ4Ô4µc´oÀeÑ6LÔ6LÑMÔMÐMÐMÐMr   c                 ó  — d„ }t          |¦  «        }t          j                             d¦  «        } ||¦  «        \  }} ||¦  «        \  }}t          j                             ||¦  «         t          j                             ||¦  «         t
          dv rd}n t
          dv rd}nt          t
          ¦  «        ‚|                      |t          j	        |¦  «        ¦  «         |                      |t          j	        |¦  «        ¦  «         d S )Nc                 óŠ   — t          j        | j        ¦  «        }t          |j        ¦  «        D ]}| |         dz   ||<   Œ||f}|S rÍ   r±   )rØ   rŠ   rl   r“   s       r   rD   z?TestDynArray.test_return_tuple_of_array_created.<locals>.pyfuncê  sK   € Ý”˜œÑ Ô ˆAÝ˜1œ6‘]”]ð  ð  �Ø˜”t˜a‘x��!‘�Ø�Q�$ˆCØˆJr   r§   ©)rm   é   )rm   é   ra   ©)rm   r¦   )rm   é   )rm   é   )rm   é   r€   )
r;   r   rª   r@   rA   r   ÚNotImplementedErrorr<   rŽ   r�   )	rC   rD   rG   rØ   rì   rí   rî   rï   Úexpected_refcounts	            r   Ú"test_return_tuple_of_array_createdz/TestDynArray.test_return_tuple_of_array_createdè  s  € ð	ð 	ð 	õ �v‘”ˆåŒI×Ò˜QÑÔˆØ!' ¨¡¤Ñˆ
�JØ�u˜Q‘x”x‰ˆˆuÝ
Œ
×Ò 
¨EÑ2Ô2Ð2Ý
Œ
×Ò 
¨EÑ2Ô2Ð2åÐ*Ð*Ð*Ø !ÐÐÝÐ>Ð>Ð>Ø !ÐÐå%¥iÑ0Ô0Ð0à×ÒÐ*­C¬O¸EÑ,BÔ,BÑCÔCÐCØ×ÒÐ*­C¬O¸EÑ,BÔ,BÑCÔCÐCÐCÐCr   c                 óÈ  ‡— t           d„ ¦   «         Šˆfd„}t          |¦  «        }t          j        d¦  «        }t          j        |¦  «        }t
          dv rc|                      dt          j         ||¦  «        ¦  «        ¦  «         |                      dt          j         ||¦  «        ¦  «        ¦  «         n€t
          dv rc|                      |t          j         ||¦  «        ¦  «        ¦  «         |                      |t          j         ||¦  «        ¦  «        ¦  «         nt          t
          ¦  «        ‚|                      |t          j        |¦  «        ¦  «         dS )z_
        Dispatcher returns a new reference.
        It need to workaround it for now.
        c                 ó   — | S r   rO   )r“   s    r   Úinnerz7TestDynArray.test_issue_with_return_leak.<locals>.inner  s   € àˆJr   c                 ó   •—  ‰| ¦  «        S r   rO   )rØ   rÿ   s    €r   rD   z8TestDynArray.test_issue_with_return_leak.<locals>.pyfunc  s   ø€ Ø�5˜‘8”8ˆOr   r¦   ró   r€   rö   N)r;   r   rn   rŽ   r�   r   r<   rú   )rC   rD   rG   rU   Ú	old_refctrÿ   s        @r   Útest_issue_with_return_leakz(TestDynArray.test_issue_with_return_leak  sR  ø€ õ
 
ð	ð 	ñ 
Œð	ð	ð 	ð 	ð 	ð 	õ �v‘”ˆåŒi˜‰mŒmˆÝ”O CÑ(Ô(ˆ	åÐ*Ð*Ð*Ø×Ò˜Q¥¤°°°s±´Ñ <Ô <Ñ=Ô=Ð=Ø×Ò˜Q¥¤°°°c±
´
Ñ ;Ô ;Ñ<Ô<Ð<Ð<ÝÐ>Ð>Ð>Ø×Ò˜Y­¬¸¸¸s¹¼Ñ(DÔ(DÑEÔEÐEØ×Ò˜Y­¬¸¸¸c¹
¼
Ñ(CÔ(CÑDÔDÐDÐDå%¥iÑ0Ô0Ð0à×Ò˜¥C¤O°CÑ$8Ô$8Ñ9Ô9Ð9Ð9Ð9r   N)rL   rM   rN   rg   rp   r{   r‚   r…   r”   rš   rŸ   r¢   r®   rÊ   rÕ   r   rã   ré   rð   rü   r  rO   r   r   rY   rY   F   s4  € € € € € ðð ð ð$ð ð ð*ð ð ð.ð ð ð2ð ð ð08ð 8ð 8ð6Cð Cð Cð%ð %ð %ð:ð :ð :ð,"<ð "<ð "<ðH?6ð ?6ð ?6ðB;Að ;Að ;Aðz ðBð Bñ „]ðBðNð Nð Nð4Nð Nð Nð.Dð Dð Dð6:ð :ð :ð :ð :r   rY   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚConstructorBaseTestc                 ó`  — t          |¦  «        } |¦   «         } |¦   «         }|                      |d¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      ||¦  «         t          j	        |¦  «        }| 
                    d¦  «         | 
                    d¦  «         t          j                             ||¦  «         d S )Nra   rb   )r;   rW   r<   r=   rc   r>   re   Úcheck_result_valuer   r½   rf   r@   rA   )rC   rD   rG   rI   rJ   s        r   Úcheck_0dzConstructorBaseTest.check_0d"  s  € Ý�v‘”ˆØ�6‘8”8ˆØˆe‰gŒgˆØ×#Ò# C¨Ñ+Ô+Ð+Ø×Ò˜œ 8¤=Ñ1Ô1Ð1Ø×Ò˜œ H¤NÑ3Ô3Ð3Ø×Ò˜œ H¤NÑ3Ô3Ð3Ø×Ò˜œ hÔ&6Ñ7Ô7Ð7Ø×Ò  XÑ.Ô.Ð.å”= Ñ%Ô%ˆØ�Š�cÑÔÐØ�Š�‰ŒˆÝ
Œ
×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 ó2  — t          |¦  «        }d} ||¦  «        } ||¦  «        }|                      |d¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      ||¦  «         t          j	        |¦  «        }| 
                    d¦  «         | 
                    d¦  «         t          j                             ||¦  «         |                      t          ¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )Nrm   ra   rb   éÿÿÿÿúnegative dimensions not allowed©r;   rW   r<   r=   rc   r>   re   r  r   r½   rf   r@   rA   rÛ   Ú
ValueErrorrà   rá   )rC   rD   rG   rk   rI   rJ   Úcms          r   Úcheck_1dzConstructorBaseTest.check_1d2  s£  € Ý�v‘”ˆØˆØ�6˜!‘9”9ˆØˆe�A‰hŒhˆØ×#Ò# C¨Ñ+Ô+Ð+Ø×Ò˜œ 8¤=Ñ1Ô1Ð1Ø×Ò˜œ H¤NÑ3Ô3Ð3Ø×Ò˜œ H¤NÑ3Ô3Ð3Ø×Ò˜œ hÔ&6Ñ7Ô7Ð7Ø×Ò  XÑ.Ô.Ð.å”= Ñ%Ô%ˆØ�Š�cÑÔÐØ�Š�‰ŒˆÝ
Œ
×Ò  XÑ.Ô.Ð.à×Ò�zÑ*Ô*ð 	¨bØˆE�"‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�˜Rœ\Ñ*Ô*Ð,MÑNÔNÐNÐNÐNs   ÅE$Å$E(Å+E(c                 ó>  — t          |¦  «        }d\  }} |||¦  «        } |||¦  «        }|                      |d¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      ||¦  «         t          j	        |¦  «        }| 
                    d¦  «         | 
                    d¦  «         t          j                             ||¦  «         |                      t          ¦  «        5 } |dd¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d S )N©r€   rm   ra   rb   r€   r	  r
  r  )rC   rD   rG   ru   rk   rI   rJ   r  s           r   Úcheck_2dzConstructorBaseTest.check_2dG  s­  € Ý�v‘”ˆØ‰ˆˆ1Ø�6˜!˜Q‘<”<ˆØˆe�A�q‰kŒkˆØ×#Ò# C¨Ñ+Ô+Ð+Ø×Ò˜œ 8¤=Ñ1Ô1Ð1Ø×Ò˜œ H¤NÑ3Ô3Ð3Ø×Ò˜œ H¤NÑ3Ô3Ð3Ø×Ò˜œ hÔ&6Ñ7Ô7Ð7Ø×Ò  XÑ.Ô.Ð.å”= Ñ%Ô%ˆØ�Š�cÑÔÐØ�Š�‰ŒˆÝ
Œ
×Ò  XÑ.Ô.Ð.à×Ò�zÑ*Ô*ð 	¨bØˆE�!�R‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�˜Rœ\Ñ*Ô*Ð,MÑNÔNÐNÐNÐNs   ÅE*Å*E.Å1E.c                 óì   — t          |¦  «        }|                      t          ¦  «        5 } |¦   «          ddd¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         dS )zAChecks that pyfunc will error, not segfaulting due to array size.Nzarray is too big)r;   rÛ   r  rß   rà   rá   )rC   rD   rG   Úes       r   Úcheck_alloc_sizez$ConstructorBaseTest.check_alloc_size\  s®   € å�v‘”ˆØ×Ò�zÑ*Ô*ð 	¨aØˆE‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠØÝ�”ÑÔñ	
ô 	
ð 	
ð 	
ð 	
s   ªAÁAÁAN)rL   rM   rN   r  r  r  r  rO   r   r   r  r     sV   € € € € € ð/ð /ð /ð Oð Oð Oð*Oð Oð Oð*
ð 
ð 
ð 
ð 
r   r  c                   ó~   ‡ — e Zd Zˆ f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 )ÚTestNdZerosc                 óx   •— t          t          | ¦  «                             ¦   «          t          j        | _        d S r   )Úsuperr  ÚsetUpr   ÚzerosrD   ©rC   Ú	__class__s    €r   r  zTestNdZeros.setUpi  s,   ø€ Ý�k˜4Ñ Ô ×&Ò&Ñ(Ô(Ð(Ý”hˆŒˆˆr   c                 óF   — t           j                             ||¦  «         d S r   ©r   r@   rA   ©rC   rJ   rI   s      r   r  zTestNdZeros.check_result_valuem  ó    € Ý
Œ
×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 óJ   ‡— | j         Šˆfd„}|                      |¦  «         d S )Nc                  ó   •—  ‰ d¦  «        S ©NrO   rO   )rD   s   €r   Úfuncz!TestNdZeros.test_0d.<locals>.funcr  s   ø€ Ø�6˜"‘:”:Ðr   )rD   r  ©rC   r$  rD   s     @r   Útest_0dzTestNdZeros.test_0dp  s;   ø€ Ø”ˆð	ð 	ð 	ð 	ð 	à�Š�dÑÔÐÐÐr   c                 óJ   ‡— | j         Šˆfd„}|                      |¦  «         d S )Nc                 ó   •—  ‰| ¦  «        S r   rO   ©rk   rD   s    €r   r$  z!TestNdZeros.test_1d.<locals>.funcx  s   ø€ Ø�6˜!‘9”9Ðr   ©rD   r  r%  s     @r   Útest_1dzTestNdZeros.test_1dv  s;   ø€ Ø”ˆð	ð 	ð 	ð 	ð 	à�Š�dÑÔÐÐÐr   c                 óJ   ‡— | j         Šˆfd„}|                      |¦  «         d S )Nc                 ó0   •—  ‰| t           j        ¦  «        S r   ©r   rt   r)  s    €r   r$  z'TestNdZeros.test_1d_dtype.<locals>.func~  s   ø€ Ø�6˜!�RœXÑ&Ô&Ð&r   r*  r%  s     @r   Útest_1d_dtypezTestNdZeros.test_1d_dtype|  s;   ø€ Ø”ˆð	'ð 	'ð 	'ð 	'ð 	'à�Š�dÑÔÐÐÐr   c                 óv   ‡‡— | j         Št          j        d¦  «        Šˆˆfd„}|                      |¦  «         d S )Nrt   c                 ó   •—  ‰| ‰¦  «        S r   rO   ©rk   Ú_dtyperD   s    €€r   r$  z0TestNdZeros.test_1d_dtype_instance.<locals>.func†  ó   ø€ Ø�6˜!˜VÑ$Ô$Ð$r   )rD   r   r>   r  ©rC   r$  r3  rD   s     @@r   Útest_1d_dtype_instancez"TestNdZeros.test_1d_dtype_instance‚  sP   øø€ à”ˆÝ”˜'Ñ"Ô"ˆð	%ð 	%ð 	%ð 	%ð 	%ð 	%à�Š�dÑÔÐÐÐr   c                 ó†   ‡‡— | j         ŠdŠˆˆfd„}|                      |¦  «         ˆfd„}|                      |¦  «         d S )Nrt   c                 ó   •—  ‰| ‰¦  «        S r   rO   r2  s    €€r   r$  z+TestNdZeros.test_1d_dtype_str.<locals>.func�  r4  r   c                 ó   •—  ‰| d¦  «        S )NÚ
complex128rO   r)  s    €r   r$  z+TestNdZeros.test_1d_dtype_str.<locals>.func‘  s   ø€ Ø�6˜!˜\Ñ*Ô*Ð*r   r*  r5  s     @@r   Útest_1d_dtype_strzTestNdZeros.test_1d_dtype_strŠ  sq   øø€ Ø”ˆØˆð	%ð 	%ð 	%ð 	%ð 	%ð 	%à�Š�dÑÔÐð	+ð 	+ð 	+ð 	+ð 	+à�Š�dÑÔÐÐÐr   c                 ó†   ‡‡— | j         ŠdŠˆˆfd„}|                      |¦  «         ˆfd„}|                      |¦  «         d S )NÚi4c                 ó   •—  ‰| ‰¦  «        S r   rO   r2  s    €€r   r$  z@TestNdZeros.test_1d_dtype_str_alternative_spelling.<locals>.func™  r4  r   c                 ó   •—  ‰| d¦  «        S )NÚc8rO   r)  s    €r   r$  z@TestNdZeros.test_1d_dtype_str_alternative_spelling.<locals>.func�  s   ø€ Ø�6˜!˜T‘?”?Ð"r   r*  r5  s     @@r   Ú&test_1d_dtype_str_alternative_spellingz2TestNdZeros.test_1d_dtype_str_alternative_spelling•  sq   øø€ à”ˆØˆð	%ð 	%ð 	%ð 	%ð 	%ð 	%à�Š�dÑÔÐð	#ð 	#ð 	#ð 	#ð 	#à�Š�dÑÔÐÐÐr   c                 óR   ‡‡— | j         ŠdŠˆˆfd„}|                      |¦  «         d S )Nzi4, (2,3)f8c                 ó   •—  ‰| ‰¦  «        S r   rO   r2  s    €€r   r$  z<TestNdZeros.test_1d_dtype_str_structured_dtype.<locals>.func¥  r4  r   r*  r5  s     @@r   Ú"test_1d_dtype_str_structured_dtypez.TestNdZeros.test_1d_dtype_str_structured_dtype¡  sF   øø€ à”ˆØˆð	%ð 	%ð 	%ð 	%ð 	%ð 	%à�Š�dÑÔÐÐÐr   c                 ó*  ‡— | j         Št          ˆfd„¦   «         }|                      t          ¦  «        5 } |dd¦  «         d d d ¦  «         n# 1 swxY w Y   t	          |j        ¦  «        }d| j         j        › d�}|                      ||¦  «         d S )Nc                 ó   •—  ‰| |¦  «        S r   rO   ©rk   ÚdtrD   s     €r   r$  z5TestNdZeros.test_1d_dtype_non_const_str.<locals>.func¬  ó   ø€ à�6˜!˜R‘=”=Ð r   r§   rt   úIf np.ú0 dtype is a string it must be a string constant.)rD   r   rÛ   r   rà   rá   rL   rß   ©rC   r$  râ   ÚexcstrÚmsgrD   s        @r   Útest_1d_dtype_non_const_strz'TestNdZeros.test_1d_dtype_non_const_str©  sð   ø€ Ø”ˆå	ð	!ð 	!ð 	!ð 	!ñ 
Œð	!ð ×Ò�{Ñ+Ô+ð 	¨vØˆD��GÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �VÔ%Ñ&Ô&ˆð"˜œÔ,ð "ð "ð "ˆà�Š�c˜6Ñ"Ô"Ð"Ð"Ð"s   µAÁAÁAc                 ó  ‡— | j         Št          ˆfd„¦   «         }|                      t          ¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   t	          |j        ¦  «        }|                      d|¦  «         d S )Nc                 ó   •—  ‰| d¦  «        S ©NÚABCDEFrO   r)  s    €r   r$  z3TestNdZeros.test_1d_dtype_invalid_str.<locals>.func»  ó   ø€ à�6˜!˜XÑ&Ô&Ð&r   r§   ú'Invalid NumPy dtype specified: 'ABCDEF')rD   r   rÛ   r   rà   rá   rß   ©rC   r$  râ   rM  rD   s       @r   Útest_1d_dtype_invalid_strz%TestNdZeros.test_1d_dtype_invalid_str¸  sÏ   ø€ Ø”ˆå	ð	'ð 	'ð 	'ð 	'ñ 
Œð	'ð ×Ò�{Ñ+Ô+ð 	¨vØˆD�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �VÔ%Ñ&Ô&ˆØ�ŠÐ?ÀÑHÔHÐHÐHÐHs   µAÁAÁAc                 óJ   ‡— | j         Šˆfd„}|                      |¦  «         d S )Nc                 ó   •—  ‰| |f¦  «        S r   rO   ©ru   rk   rD   s     €r   r$  z!TestNdZeros.test_2d.<locals>.funcÇ  s   ø€ Ø�6˜1˜a˜&‘>”>Ð!r   ©rD   r  r%  s     @r   Útest_2dzTestNdZeros.test_2dÅ  s;   ø€ Ø”ˆð	"ð 	"ð 	"ð 	"ð 	"à�Š�dÑÔÐÐÐr   c                 ó`  ‡— | j         Šˆfd„}|                      |¦  «         ˆfd„}|                      |¦  «         t          j        ret	          ˆfd„¦  «        }|                      t          ¦  «        5   |t          j        d¦  «        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )Nc                 óf   •—  ‰t          j        | ¦  «        t          j        |¦  «        f¦  «        S r   )r   Úint16rt   rZ  s     €r   Úfunc1z/TestNdZeros.test_2d_shape_dtypes.<locals>.func1Î  s(   ø€ Ø�6�2œ8 A™;œ;­¬°©¬Ð4Ñ5Ô5Ð5r   c                 óf   •—  ‰t          j        | ¦  «        t          j        |¦  «        f¦  «        S r   )r   Úint64Úint8rZ  s     €r   Úfunc2z/TestNdZeros.test_2d_shape_dtypes.<locals>.func2Ò  s(   ø€ Ø�6�2œ8 A™;œ;­¬°©
¬
Ð3Ñ4Ô4Ð4r   c                 ó   •—  ‰| |f¦  «        S r   rO   rZ  s     €r   ú<lambda>z2TestNdZeros.test_2d_shape_dtypes.<locals>.<lambda>×  s   ø€ ¨¨°°1¨v©¬€ r   ì        ra   )	rD   r  r   Ú	IS_32BITSr;   rÛ   r  r   rb  )rC   r`  rd  rG   rD   s       @r   Útest_2d_shape_dtypesz TestNdZeros.test_2d_shape_dtypesË  s   ø€ à”ˆð	6ð 	6ð 	6ð 	6ð 	6à�Š�eÑÔÐð	5ð 	5ð 	5ð 	5ð 	5à�Š�eÑÔÐåÔð 	2ÝÐ6Ð6Ð6Ð6Ñ7Ô7ˆEØ×"Ò"¥:Ñ.Ô.ð 2ð 2Ø�•b”h˜}Ñ-Ô-¨qÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2ð	2ð 	2s   Á5B!Â!B%Â(B%c                 óJ   ‡— | j         Šˆfd„}|                      |¦  «         d S )Nc                 ó6   •—  ‰| |ft           j        ¬¦  «        S ©Nr‡   )r   Ú	complex64rZ  s     €r   r$  z-TestNdZeros.test_2d_dtype_kwarg.<locals>.funcÝ  s   ø€ Ø�6˜1˜a˜&­¬Ð5Ñ5Ô5Ð5r   r[  r%  s     @r   Útest_2d_dtype_kwargzTestNdZeros.test_2d_dtype_kwargÛ  s;   ø€ Ø”ˆð	6ð 	6ð 	6ð 	6ð 	6à�Š�dÑÔÐÐÐr   c                 óJ   ‡— | j         Šˆfd„}|                      |¦  «         d S )Nc                 ó"   •—  ‰| |fd¬¦  «        S )Nrm  r‡   rO   rZ  s     €r   r$  z1TestNdZeros.test_2d_dtype_str_kwarg.<locals>.funcã  s   ø€ Ø�6˜1˜a˜&¨Ð4Ñ4Ô4Ð4r   r[  r%  s     @r   Útest_2d_dtype_str_kwargz#TestNdZeros.test_2d_dtype_str_kwargá  s;   ø€ Ø”ˆð	5ð 	5ð 	5ð 	5ð 	5à�Š�dÑÔÐÐÐr   c                 óJ   ‡— | j         Šˆfd„}|                      |¦  «         d S )Nc                 ó"   •—  ‰| |fd¬¦  «        S )Nr@  r‡   rO   rZ  s     €r   r$  zFTestNdZeros.test_2d_dtype_str_kwarg_alternative_spelling.<locals>.funcê  s   ø€ Ø�6˜1˜a˜&¨Ð-Ñ-Ô-Ð-r   r[  r%  s     @r   Ú,test_2d_dtype_str_kwarg_alternative_spellingz8TestNdZeros.test_2d_dtype_str_kwarg_alternative_spellingç  s;   ø€ à”ˆð	.ð 	.ð 	.ð 	.ð 	.à�Š�dÑÔÐÐÐr   c                 ó  ‡— | j         Št          j        j        }ˆfd„}|                       |d|dz
  z  t
          j        ¦  «        ¦  «         |                       |d|dz
  z  dft
          j        ¦  «        ¦  «         d S )Nc                 ó   •‡ ‡— ˆˆˆ fd„S )Nc                  ó   •—  ‰‰‰ ¦  «        S r   rO   )r>   rD   rc   s   €€€r   rf  z?TestNdZeros.test_alloc_size.<locals>.gen_func.<locals>.<lambda>ò  s   ø€ ˜F˜F 5¨%Ñ0Ô0€ r   rO   )rc   r>   rD   s   ``€r   Úgen_funcz-TestNdZeros.test_alloc_size.<locals>.gen_funcñ  s   øøø€ Ø0Ð0Ð0Ð0Ð0Ð0Ð0r   ra   r€   rÙ   é@   )rD   r   ÚintpÚbitwidthr  r   )rC   Úwidthrx  rD   s      @r   Útest_alloc_sizezTestNdZeros.test_alloc_sizeî  sŽ   ø€ Ø”ˆÝ”
Ô#ˆð	1ð 	1ð 	1ð 	1ð 	1ð 	×Ò˜h˜h q¨E°A©I¡~µr´wÑ?Ô?Ñ@Ô@Ð@Ø×Ò˜h˜h¨¨U°Q©Y©¸Ð';½R¼WÑEÔEÑFÔFÐFÐFÐFr   )rL   rM   rN   r  r  r&  r+  r/  r6  r;  rA  rD  rO  rW  r\  ri  rn  rq  rt  r}  Ú__classcell__©r  s   @r   r  r  g  s2  ø€ € € € € ðð ð ð ð ð/ð /ð /ðð ð ðð ð ðð ð ðð ð ð	ð 	ð 	ð
ð 
ð 
ðð ð ð#ð #ð #ðIð Ið Iðð ð ð2ð 2ð 2ð ð ð ðð ð ðð ð ðGð Gð Gð Gð Gð Gð Gr   r  c                   óB   ‡ — e Zd Zˆ fd„Zej        ˆ fd„¦   «         Zˆ xZS )Ú
TestNdOnesc                 óx   •— t          t          | ¦  «                             ¦   «          t          j        | _        d S r   )r  r�  r  r   rŒ   rD   r  s    €r   r  zTestNdOnes.setUpú  s,   ø€ Ý�j˜$ÑÔ×%Ò%Ñ'Ô'Ð'Ý”gˆŒˆˆr   c                 óH   •— t          ¦   «                              ¦   «          d S r   )r  rD  r  s    €r   rD  z-TestNdOnes.test_1d_dtype_str_structured_dtypeþ  s   ø€ å‰Œ×2Ò2Ñ4Ô4Ð4Ð4Ð4r   )rL   rM   rN   r  ÚunittestÚexpectedFailurerD  r~  r  s   @r   r�  r�  ø  sa   ø€ € € € € ðð ð ð ð ð Ôð5ð 5ð 5ð 5ñ Ôð5ð 5ð 5ð 5ð 5r   r�  c                   ób   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú
TestNdFullc                 óF   — t           j                             ||¦  «         d S r   r  r  s      r   r  zTestNdFull.check_result_value  r   r   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó,   — t          j        dd¦  «        S )NrO   ç      @©r   ÚfullrO   r   r   r$  z TestNdFull.test_0d.<locals>.func	  s   € Ý”7˜2˜sÑ#Ô#Ð#r   )r  ©rC   r$  s     r   r&  zTestNdFull.test_0d  s)   € ð	$ð 	$ð 	$à�Š�dÑÔÐÐÐr   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó,   — t          j        | d¦  «        S ©Nr‹  rŒ  ©rk   s    r   r$  z TestNdFull.test_1d.<locals>.func  s   € Ý”7˜1˜c‘?”?Ð"r   ©r  rŽ  s     r   r+  zTestNdFull.test_1d  s)   € ð	#ð 	#ð 	#à�Š�dÑÔÐÐÐr   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 óB   — t          j        | dt           j        ¦  «        S r‘  )r   r�  Úbool_r’  s    r   r$  z&TestNdFull.test_1d_dtype.<locals>.func  s   € Ý”7˜1˜c¥2¤8Ñ,Ô,Ð,r   r“  rŽ  s     r   r/  zTestNdFull.test_1d_dtype  s)   € ð	-ð 	-ð 	-à�Š�dÑÔÐÐÐr   c                 ód   ‡— t          j        d¦  «        Šˆfd„}|                      |¦  «         d S )NÚboolc                 ó0   •— t          j        | d‰¦  «        S r‘  rŒ  ©rk   r>   s    €r   r$  z/TestNdFull.test_1d_dtype_instance.<locals>.func  s   ø€ Ý”7˜1˜c 5Ñ)Ô)Ð)r   )r   r>   r  ©rC   r$  r>   s     @r   r6  z!TestNdFull.test_1d_dtype_instance  sC   ø€ Ý”˜Ñ Ô ˆð	*ð 	*ð 	*ð 	*ð 	*à�Š�dÑÔÐÐÐr   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó.   — t          j        | dd¦  «        S ©Nr‹  r–  rŒ  r’  s    r   r$  z*TestNdFull.test_1d_dtype_str.<locals>.func  s   € Ý”7˜1˜c 7Ñ+Ô+Ð+r   r“  rŽ  s     r   r;  zTestNdFull.test_1d_dtype_str  s)   € ð	,ð 	,ð 	,à�Š�dÑÔÐÐÐr   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó.   — t          j        | dd¦  «        S )Nr‹  ú?rŒ  r’  s    r   r$  z?TestNdFull.test_1d_dtype_str_alternative_spelling.<locals>.func$  s   € Ý”7˜1˜c 3Ñ'Ô'Ð'r   r“  rŽ  s     r   rA  z1TestNdFull.test_1d_dtype_str_alternative_spelling"  s)   € ð	(ð 	(ð 	(à�Š�dÑÔÐÐÐr   c                 óü   — t           d„ ¦   «         }|                      t          ¦  «        5 } |ddd¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d}|                      ||¦  «         d S )Nc                 ó.   — t          j        | ||¦  «        S r   rŒ  )rk   ÚfvrH  s      r   r$  z4TestNdFull.test_1d_dtype_non_const_str.<locals>.func*  s   € å”7˜1˜b "Ñ%Ô%Ð%r   ©r§   r‹  rt   z:If np.full dtype is a string it must be a string constant.©r   rÛ   r   rà   rá   rß   ©rC   r$  râ   rM  rN  s        r   rO  z&TestNdFull.test_1d_dtype_non_const_str(  sÊ   € å	ð	&ð 	&ñ 
Œð	&ð ×Ò�{Ñ+Ô+ð 	%¨vØˆD��s˜GÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ �VÔ%Ñ&Ô&ˆð"ˆà�Š�c˜6Ñ"Ô"Ð"Ð"Ð"s   «AÁA	ÁA	c                 óö   — t           d„ ¦   «         }|                      t          ¦  «        5 } |dd¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         d S )Nc                 ó.   — t          j        | |d¦  «        S rR  rŒ  )rk   r¤  s     r   r$  z2TestNdFull.test_1d_dtype_invalid_str.<locals>.func8  s   € å”7˜1˜b (Ñ+Ô+Ð+r   r¥  r‹  rU  r¦  ©rC   r$  râ   rM  s       r   rW  z$TestNdFull.test_1d_dtype_invalid_str6  s¿   € å	ð	,ð 	,ñ 
Œð	,ð ×Ò�{Ñ+Ô+ð 	¨vØˆD��s‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �VÔ%Ñ&Ô&ˆØ�ŠÐ?ÀÑHÔHÐHÐHÐHó   «AÁAÁAc                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó0   — t          j        | |fd¦  «        S r‘  rŒ  ©ru   rk   s     r   r$  z TestNdFull.test_2d.<locals>.funcC  s   € Ý”7˜A˜q˜6 3Ñ'Ô'Ð'r   ©r  rŽ  s     r   r\  zTestNdFull.test_2dB  s)   € ð	(ð 	(ð 	(à�Š�dÑÔÐÐÐr   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 óH   — t          j        | |fdt           j        ¬¦  «        S )Ny      ð?      @r‡   )r   r�  rm  r®  s     r   r$  z,TestNdFull.test_2d_dtype_kwarg.<locals>.funcH  s   € Ý”7˜A˜q˜6 8µ2´<Ð@Ñ@Ô@Ð@r   r¯  rŽ  s     r   rn  zTestNdFull.test_2d_dtype_kwargG  s,   € ð	Að 	Að 	Aà�Š�dÑÔÐÐÐr   c                 ó–   — d„ }|                       |¦  «         d„ }|                       |¦  «         d„ }|                       |¦  «         d S )Nc                 óT   — t          j        | |ft          j        d¦  «        ¦  «        S rÍ   )r   r�  rt   r®  s     r   r$  z0TestNdFull.test_2d_dtype_from_type.<locals>.funcN  s    € Ý”7˜A˜q˜6¥2¤8¨A¡;¤;Ñ/Ô/Ð/r   c                 óT   — t          j        | |ft          j        d¦  «        ¦  «        S rÍ   )r   r�  r:  r®  s     r   r$  z0TestNdFull.test_2d_dtype_from_type.<locals>.funcS  s"   € Ý”7˜A˜q˜6¥2¤=°Ñ#3Ô#3Ñ4Ô4Ð4r   c                 óH   — t          j        | |fdt           j        ¬¦  «        S )Nra   r‡   )r   r�  rc  r®  s     r   r$  z0TestNdFull.test_2d_dtype_from_type.<locals>.funcX  s   € Ý”7˜A˜q˜6 1­B¬GÐ4Ñ4Ô4Ð4r   r¯  rŽ  s     r   Útest_2d_dtype_from_typez"TestNdFull.test_2d_dtype_from_typeL  sk   € ð	0ð 	0ð 	0à�Š�dÑÔÐð	5ð 	5ð 	5à�Š�dÑÔÐð	5ð 	5ð 	5à�Š�dÑÔÐÐÐr   c                 óD  — d„ }|                       |¦  «         d„ }|                       |¦  «         t          j        rct          d„ ¦  «        }|                      t
          ¦  «        5   |t          j        d¦  «        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )Nc                 óx   — t          j        t          j        | ¦  «        t          j        |¦  «        fd¦  «        S r‘  )r   r�  r_  rt   r®  s     r   r`  z.TestNdFull.test_2d_shape_dtypes.<locals>.func1^  s)   € Ý”7�BœH Q™KœK­¬°!©¬Ð5°sÑ;Ô;Ð;r   c                 óx   — t          j        t          j        | ¦  «        t          j        |¦  «        fd¦  «        S r‘  )r   r�  rb  rc  r®  s     r   rd  z.TestNdFull.test_2d_shape_dtypes.<locals>.func2b  s)   € Ý”7�BœH Q™KœK­¬°©¬Ð4°cÑ:Ô:Ð:r   c                 ó0   — t          j        | |fd¦  «        S r‘  rŒ  r®  s     r   rf  z1TestNdFull.test_2d_shape_dtypes.<locals>.<lambda>g  s   € ­¬°°A°¸Ñ(<Ô(<€ r   rg  ra   )r  r   rh  r;   rÛ   r  r   rb  )rC   r`  rd  rG   s       r   ri  zTestNdFull.test_2d_shape_dtypes\  sþ   € ð	<ð 	<ð 	<à�Š�eÑÔÐð	;ð 	;ð 	;à�Š�eÑÔÐåÔð 	2ÝÐ<Ð<Ñ=Ô=ˆEØ×"Ò"¥:Ñ.Ô.ð 2ð 2Ø�•b”h˜}Ñ-Ô-¨qÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2ð	2ð 	2s   Á'BÂBÂBc                 óÆ   — t           j        j        }d„ }|                       |d|dz
  z  d¦  «        ¦  «         |                       |d|dz
  z  dfd¦  «        ¦  «         d S )Nc                 ó   ‡ ‡— ˆ ˆfd„S )Nc                  ó.   •— t          j        ‰ ‰¦  «        S r   rŒ  ©rc   Úvalues   €€r   rf  z>TestNdFull.test_alloc_size.<locals>.gen_func.<locals>.<lambda>n  s   ø€ �BœG E¨5Ñ1Ô1€ r   rO   r¾  s   ``r   rx  z,TestNdFull.test_alloc_size.<locals>.gen_funcm  s   øø€ Ø1Ð1Ð1Ð1Ð1Ð1r   ra   r€   rÙ   ry  )r   rz  r{  r  )rC   r|  rx  s      r   r}  zTestNdFull.test_alloc_sizek  sx   € Ý”
Ô#ˆð	2ð 	2ð 	2ð 	×Ò˜h˜h q¨E°A©I¡~°qÑ9Ô9Ñ:Ô:Ð:Ø×Ò˜h˜h¨¨U°Q©Y©¸Ð';¸QÑ?Ô?Ñ@Ô@Ð@Ð@Ð@r   N)rL   rM   rN   r  r&  r+  r/  r6  r;  rA  rO  rW  r\  rn  r¶  ri  r}  rO   r   r   r‡  r‡    sî   € € € € € ð/ð /ð /ðð ð ð
ð ð ð
ð ð ð
ð ð ðð ð ð
ð ð ð#ð #ð #ð
Ið 
Ið 
Iðð ð ð
ð ð ð
ð ð ð 2ð 2ð 2ðAð Að Að Að Ar   r‡  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚConstructorLikeBaseTestc                 óª   — 	 |                      d¦  «         d S # t          t          f$ r( d|j        j        z  }|                      |¦  «         Y d S w xY w)Nr\   ó   x)rf   Ú	TypeErrorr  r>   ro   )rC   rU   Ú
fill_values      r   Úmutate_arrayz$ConstructorLikeBaseTest.mutate_arrayv  sd   € ð	!Ø�HŠH�R‰LŒLˆLˆLˆLøÝ�:Ð&ð 	!ð 	!ð 	!à ¤	Ô 2Ñ2ˆJØ�HŠH�ZÑ Ô Ð Ð Ð Ð ð	!øøøs   ‚ ™5AÁAc                 ó  ‡ ‡‡— ˆˆˆ fd„}t          j        ddd¦  «                             |¦  «        }t          ‰¦  «        ŠdD ]±}|dk    r|dd …                              d¦  «        }n|                     |¦  «        } ||¦  «         |j        dk    r ||d d d…         ¦  «         d	|j        d
<   ‰                      t          ¦  «        5  d|d<   d d d ¦  «         n# 1 swxY w Y    ||¦  «         Œ² ||d         ¦  «         d S )Nc                 ó   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      |j        |j        ¦  «         ‰                      |j        |j        ¦  «         ‰                     ||¦  «         ‰                     ||¦  «         ‰                     |¦  «         ‰                     |¦  «         t          j                             ||¦  «         d S r   )	r<   r=   r>   r?   r  rÆ  r   r@   rA   )rU   rI   rJ   rG   rD   rC   s      €€€r   Ú	check_arrz5ConstructorLikeBaseTest.check_like.<locals>.check_arr  sÃ   ø€ Ø�v˜c‘{”{ˆHØ�%˜‘*”*ˆCØ×Ò˜SœX x¤}Ñ5Ô5Ð5Ø×Ò˜SœY¨¬Ñ7Ô7Ð7Ø×#Ò# C¨Ñ2Ô2Ð2Ø×#Ò# C¨Ñ2Ô2Ð2à×Ò˜cÑ"Ô"Ð"Ø×Ò˜hÑ'Ô'Ð'ÝŒJ×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   r   r§   é   )rÊ  r  ©ra   r€   rm   )rm   ra   r€   rO   rO   r	  r€   FÚ	WRITEABLEra   )	r   ÚlinspaceÚastyper;   r«   ÚndimÚflagsrÛ   r  )rC   rD   r>   rÉ  Úorigrc   rU   rG   s   ``     @r   Ú
check_likez"ConstructorLikeBaseTest.check_like~  sw  øøø€ ð
	3ð 
	3ð 
	3ð 
	3ð 
	3ð 
	3ð 
	3õ Œ{˜1˜a Ñ#Ô#×*Ò*¨5Ñ1Ô1ˆÝ�v‘”ˆà:ð 	ð 	ˆEØ˜Š{ˆ{Ø˜2˜3˜3”i×'Ò'¨Ñ+Ô+��à—l’l 5Ñ)Ô)�ØˆI�c‰NŒNˆNàŒx˜!Š|ˆ|Ø�	˜#˜c˜c ˜cœ(Ñ#Ô#Ð#à%*ˆCŒI�kÑ"à×"Ò"¥:Ñ.Ô.ð ð Ø��A‘ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àˆI�c‰NŒNˆNˆNð 	ˆ	�$�q”'ÑÔÐÐÐs   ÃC Ã C$	Ã'C$	N)rL   rM   rN   rÆ  rÒ  rO   r   r   rÁ  rÁ  t  s2   € € € € € ð!ð !ð !ð!ð !ð !ð !ð !r   rÁ  c                   ó`   ‡ — e Zd Zˆ f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 )ÚTestNdEmptyLikec                 óx   •— t          t          | ¦  «                             ¦   «          t          j        | _        d S r   )r  rÔ  r  r   r½   rD   r  s    €r   r  zTestNdEmptyLike.setUp¤  ó,   ø€ Ý�o˜tÑ$Ô$×*Ò*Ñ,Ô,Ð,Ý”mˆŒˆˆr   c                 ó   — d S r   rO   r  s      r   r  z"TestNdEmptyLike.check_result_value¨  s   € Øˆr   c                 ó`   ‡— | j         Šˆfd„}|                      |t          j        ¦  «         d S )Nc                 ó   •—  ‰| ¦  «        S r   rO   ©rU   rD   s    €r   r$  z'TestNdEmptyLike.test_like.<locals>.func­  ó   ø€ Ø�6˜#‘;”;Ðr   ©rD   rÒ  r   rd   r%  s     @r   Ú	test_likezTestNdEmptyLike.test_like«  s?   ø€ Ø”ˆð	ð 	ð 	ð 	ð 	à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 ó¨   ‡— t          j        dt           j        fdt           j        fg¦  «        }| j        Šˆfd„}|                      ||¦  «         d S )Nr   r   c                 ó   •—  ‰| ¦  «        S r   rO   rÚ  s    €r   r$  z2TestNdEmptyLike.test_like_structured.<locals>.func´  rÛ  r   )r   r>   r_  r�   rD   rÒ  )rC   r>   r$  rD   s      @r   Útest_like_structuredz$TestNdEmptyLike.test_like_structured±  s^   ø€ Ý”˜3¥¤˜/¨Cµ´Ð+<Ð=Ñ>Ô>ˆØ”ˆð	ð 	ð 	ð 	ð 	à�Š˜˜eÑ$Ô$Ð$Ð$Ð$r   c                 ó`   ‡— | j         Šˆfd„}|                      |t          j        ¦  «         d S )Nc                 ó0   •—  ‰| t           j        ¦  «        S r   r.  rÚ  s    €r   r$  z-TestNdEmptyLike.test_like_dtype.<locals>.funcº  s   ø€ Ø�6˜#�rœxÑ(Ô(Ð(r   rÜ  r%  s     @r   Útest_like_dtypezTestNdEmptyLike.test_like_dtype¸  s?   ø€ Ø”ˆð	)ð 	)ð 	)ð 	)ð 	)à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 óŒ   ‡‡— t          j        d¦  «        Š| j        Šˆˆfd„}|                      |t           j        ¦  «         d S )Nrt   c                 ó   •—  ‰| ‰¦  «        S r   rO   ©rU   r>   rD   s    €€r   r$  z6TestNdEmptyLike.test_like_dtype_instance.<locals>.funcÁ  ó   ø€ Ø�6˜#˜uÑ%Ô%Ð%r   )r   r>   rD   rÒ  rd   ©rC   r$  r>   rD   s     @@r   Útest_like_dtype_instancez(TestNdEmptyLike.test_like_dtype_instance¾  sT   øø€ Ý”˜Ñ!Ô!ˆØ”ˆð	&ð 	&ð 	&ð 	&ð 	&ð 	&à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 óÀ   ‡‡— t          j        dt           j        fdt           j        fg¦  «        Š| j        Šˆˆfd„}|                      |t           j        ¦  «         d S )Nr   r   c                 ó   •—  ‰| ‰¦  «        S r   rO   ræ  s    €€r   r$  z8TestNdEmptyLike.test_like_dtype_structured.<locals>.funcÈ  rç  r   )r   r>   r_  r�   rD   rÒ  rd   rè  s     @@r   Útest_like_dtype_structuredz*TestNdEmptyLike.test_like_dtype_structuredÅ  sf   øø€ Ý”˜3¥¤˜/¨Cµ´Ð+<Ð=Ñ>Ô>ˆØ”ˆð	&ð 	&ð 	&ð 	&ð 	&ð 	&à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 ó`   ‡— | j         Šˆfd„}|                      |t          j        ¦  «         d S )Nc                 ó2   •—  ‰| t           j        ¬¦  «        S rl  r.  rÚ  s    €r   r$  z3TestNdEmptyLike.test_like_dtype_kwarg.<locals>.funcÎ  s   ø€ Ø�6˜#¥R¤XÐ.Ñ.Ô.Ð.r   rÜ  r%  s     @r   Útest_like_dtype_kwargz%TestNdEmptyLike.test_like_dtype_kwargÌ  s?   ø€ Ø”ˆð	/ð 	/ð 	/ð 	/ð 	/à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 ó`   ‡— | j         Šˆfd„}|                      |t          j        ¦  «         d S )Nc                 ó   •—  ‰| d¬¦  «        S )Nrt   r‡   rO   rÚ  s    €r   r$  z7TestNdEmptyLike.test_like_dtype_str_kwarg.<locals>.funcÔ  s   ø€ Ø�6˜# WÐ-Ñ-Ô-Ð-r   rÜ  r%  s     @r   Útest_like_dtype_str_kwargz)TestNdEmptyLike.test_like_dtype_str_kwargÒ  s?   ø€ Ø”ˆð	.ð 	.ð 	.ð 	.ð 	.à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 ó`   ‡— | j         Šˆfd„}|                      |t          j        ¦  «         d S )Nc                 ó   •—  ‰| d¬¦  «        S )Nr=  r‡   rO   rÚ  s    €r   r$  zLTestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.funcÚ  s   ø€ Ø�6˜# TÐ*Ñ*Ô*Ð*r   rÜ  r%  s     @r   Ú.test_like_dtype_str_kwarg_alternative_spellingz>TestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spellingØ  s?   ø€ Ø”ˆð	+ð 	+ð 	+ð 	+ð 	+à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 óª  ‡— | j         Št          ˆfd„¦   «         }|                      t          ¦  «        5 } |t	          j        d¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d| j         j        › d�}|  	                    ||¦  «         |  	                    d 
                    ‰j        ¦  «        |¦  «         d S )Nc                 ó   •—  ‰| |¦  «        S r   rO   rG  s     €r   r$  z;TestNdEmptyLike.test_like_dtype_non_const_str.<locals>.funcá  rI  r   rw   rt   rJ  rK  z'{}(array(float64, 1d, C), unicode_type))rD   r   rÛ   r   r   rŒ   rà   rá   rL   rß   rÀ   rL  s        @r   Útest_like_dtype_non_const_strz-TestNdEmptyLike.test_like_dtype_non_const_strÞ  s(  ø€ Ø”ˆå	ð	!ð 	!ð 	!ð 	!ñ 
Œð	!ð ×Ò�{Ñ+Ô+ð 	&¨vØˆD•”˜‘”˜WÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&õ �VÔ%Ñ&Ô&ˆð"˜œÔ,ð "ð "ð "ˆà�Š�c˜6Ñ"Ô"Ð"Ø�ŠØ5×<Ò<¸V¼_ÑMÔMØñ	ô 	ð 	ð 	ð 	s   µA Á A$Á'A$c                 ó,  ‡— | j         Št          ˆfd„¦   «         }|                      t          ¦  «        5 } |t	          j        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         d S )Nc                 ó   •—  ‰| d¦  «        S rR  rO   r)  s    €r   r$  z9TestNdEmptyLike.test_like_dtype_invalid_str.<locals>.funcó  rT  r   rw   rU  )	rD   r   rÛ   r   r   rŒ   rà   rá   rß   rV  s       @r   Útest_like_dtype_invalid_strz+TestNdEmptyLike.test_like_dtype_invalid_strð  sÚ   ø€ Ø”ˆå	ð	'ð 	'ð 	'ð 	'ñ 
Œð	'ð ×Ò�{Ñ+Ô+ð 	¨vØˆD•”˜‘”ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �VÔ%Ñ&Ô&ˆØ�ŠÐ?ÀÑHÔHÐHÐHÐHs   µAÁA#Á&A#)rL   rM   rN   r  r  rÝ  rà  rã  ré  rì  rï  rò  rõ  rø  rû  r~  r  s   @r   rÔ  rÔ  ¢  sä   ø€ € € € € ð$ð $ð $ð $ð $ðð ð ð*ð *ð *ð%ð %ð %ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ð*ð *ð *ðð ð ð$Ið Ið Ið Ið Ið Ið Ir   rÔ  c                   ó8   ‡ — e Zd Zˆ fd„Zd„ Zˆ fd„Zˆ fd„Zˆ xZS )ÚTestNdZerosLikec                 óx   •— t          t          | ¦  «                             ¦   «          t          j        | _        d S r   )r  rý  r  r   Ú
zeros_likerD   r  s    €r   r  zTestNdZerosLike.setUp   rÖ  r   c                 óF   — t           j                             ||¦  «         d S r   r  r  s      r   r  z"TestNdZerosLike.check_result_value  r   r   c                 óV   •— t          t          | ¦  «                             ¦   «          d S r   )r  rý  rà  r  s    €r   rà  z$TestNdZerosLike.test_like_structured  s%   ø€ Ý�o˜tÑ$Ô$×9Ò9Ñ;Ô;Ð;Ð;Ð;r   c                 óV   •— t          t          | ¦  «                             ¦   «          d S r   )r  rý  rì  r  s    €r   rì  z*TestNdZerosLike.test_like_dtype_structured
  s%   ø€ Ý�o˜tÑ$Ô$×?Ò?ÑAÔAÐAÐAÐAr   )rL   rM   rN   r  r  rà  rì  r~  r  s   @r   rý  rý  þ  s‚   ø€ € € € € ð$ð $ð $ð $ð $ð/ð /ð /ð<ð <ð <ð <ð <ðBð Bð Bð Bð Bð Bð Bð Bð Br   rý  c                   óf   ‡ — e Zd Zˆ fd„Zej        ˆ fd„¦   «         Zej        ˆ fd„¦   «         Zˆ xZS )ÚTestNdOnesLikec                 ó†   •— t          t          | ¦  «                             ¦   «          t          j        | _        d| _        d S rÍ   )r  r  r  r   Ú	ones_likerD   Úexpected_valuer  s    €r   r  zTestNdOnesLike.setUp  s6   ø€ Ý�n˜dÑ#Ô#×)Ò)Ñ+Ô+Ð+Ý”lˆŒØˆÔÐÐr   c                 óV   •— t          t          | ¦  «                             ¦   «          d S r   )r  r  rà  r  s    €r   rà  z#TestNdOnesLike.test_like_structured  s%   ø€ å�n˜dÑ#Ô#×8Ò8Ñ:Ô:Ð:Ð:Ð:r   c                 óV   •— t          t          | ¦  «                             ¦   «          d S r   )r  r  rì  r  s    €r   rì  z)TestNdOnesLike.test_like_dtype_structured  s%   ø€ å�n˜dÑ#Ô#×>Ò>Ñ@Ô@Ð@Ð@Ð@r   )	rL   rM   rN   r  r„  r…  rà  rì  r~  r  s   @r   r  r    s“   ø€ € € € € ð ð  ð  ð  ð  ð Ôð;ð ;ð ;ð ;ñ Ôð;ð ÔðAð Að Að Añ ÔðAð Að Að Að Ar   r  c                   ód   — e Zd Zd„ Zd„ Zej        d„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ ZdS )ÚTestNdFullLikec                 óF   — t           j                             ||¦  «         d S r   r  r  s      r   r  z!TestNdFullLike.check_result_value"  r   r   c                 óL   — d„ }|                       |t          j        ¦  «         d S )Nc                 ó,   — t          j        | d¦  «        S )Nç      @©r   Ú	full_liker_   s    r   r$  z&TestNdFullLike.test_like.<locals>.func&  ó   € Ý”<  SÑ)Ô)Ð)r   ©rÒ  r   rd   rŽ  s     r   rÝ  zTestNdFullLike.test_like%  s-   € ð	*ð 	*ð 	*à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 ó”   — t          j        dt           j        fdt           j        fg¦  «        }d„ }|                      ||¦  «         d S )Nr   r   c                 ó,   — t          j        | d¦  «        S r‘  r  r_   s    r   r$  z1TestNdFullLike.test_like_structured.<locals>.func.  r  r   )r   r>   r_  r�   rÒ  )rC   r>   r$  s      r   rà  z#TestNdFullLike.test_like_structured+  sL   € å”˜3¥¤˜/¨Cµ´Ð+<Ð=Ñ>Ô>ˆð	*ð 	*ð 	*à�Š˜˜eÑ$Ô$Ð$Ð$Ð$r   c                 óL   — d„ }|                       |t          j        ¦  «         d S )Nc                 óB   — t          j        | dt           j        ¦  «        S r‘  ©r   r  r–  r_   s    r   r$  z,TestNdFullLike.test_like_dtype.<locals>.func3  s   € Ý”<  S­"¬(Ñ3Ô3Ð3r   r  rŽ  s     r   rã  zTestNdFullLike.test_like_dtype2  s-   € ð	4ð 	4ð 	4à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 óz   ‡— t          j        d¦  «        Šˆfd„}|                      |t           j        ¦  «         d S )Nr˜  c                 ó0   •— t          j        | d‰¦  «        S r‘  r  )rU   r>   s    €r   r$  z5TestNdFullLike.test_like_dtype_instance.<locals>.func9  s   ø€ Ý”<  S¨%Ñ0Ô0Ð0r   )r   r>   rÒ  rd   r›  s     @r   ré  z'TestNdFullLike.test_like_dtype_instance7  sG   ø€ Ý”˜Ñ Ô ˆð	1ð 	1ð 	1ð 	1ð 	1à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 óL   — d„ }|                       |t          j        ¦  «         d S )Nc                 óD   — t          j        | dt           j        ¬¦  «        S )Nr‹  r‡   r  r_   s    r   r$  z2TestNdFullLike.test_like_dtype_kwarg.<locals>.func>  s   € Ý”<  Sµ´Ð9Ñ9Ô9Ð9r   r  rŽ  s     r   rï  z$TestNdFullLike.test_like_dtype_kwarg=  s-   € ð	:ð 	:ð 	:à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 óL   — d„ }|                       |t          j        ¦  «         d S )Nc                 ó.   — t          j        | dd¦  «        S rž  r  r_   s    r   r$  z6TestNdFullLike.test_like_dtype_str_kwarg.<locals>.funcC  s   € Ý”<  S¨'Ñ2Ô2Ð2r   r  rŽ  s     r   rò  z(TestNdFullLike.test_like_dtype_str_kwargB  s-   € ð	3ð 	3ð 	3à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 óL   — d„ }|                       |t          j        ¦  «         d S )Nc                 ó0   — t          j        | dd¬¦  «        S )Nr‹  r¡  r‡   r  r_   s    r   r$  zKTestNdFullLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.funcH  s   € Ý”<  S°Ð4Ñ4Ô4Ð4r   r  rŽ  s     r   rõ  z=TestNdFullLike.test_like_dtype_str_kwarg_alternative_spellingG  s-   € ð	5ð 	5ð 	5à�Š˜�bœjÑ)Ô)Ð)Ð)Ð)r   c                 ó   — t           d„ ¦   «         }|                      t          ¦  «        5 } |t          j        d¦  «        dd¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d}|                      ||¦  «         d S )Nc                 ó.   — t          j        | ||¦  «        S r   r  )rU   r¤  rH  s      r   r$  z@TestNdFullLike.test_like_dtype_non_const_str_kwarg.<locals>.funcN  s   € å”<  R¨Ñ,Ô,Ð,r   rm   r‹  rt   z?If np.full_like dtype is a string it must be a string constant.©r   rÛ   r   r   rŒ   rà   rá   rß   r§  s        r   Ú#test_like_dtype_non_const_str_kwargz2TestNdFullLike.test_like_dtype_non_const_str_kwargL  sÒ   € å	ð	-ð 	-ñ 
Œð	-ð ×Ò�{Ñ+Ô+ð 	,¨vØˆD•”˜‘”˜c 7Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,õ �VÔ%Ñ&Ô&ˆð"ˆà�Š�c˜6Ñ"Ô"Ð"Ð"Ð"s   « AÁAÁAc                 ó  — t           d„ ¦   «         }|                      t          ¦  «        5 } |t          j        d¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         d S )Nc                 ó.   — t          j        | |d¦  «        S rR  r  )rU   r¤  s     r   r$  z8TestNdFullLike.test_like_dtype_invalid_str.<locals>.func\  s   € å”<  R¨Ñ2Ô2Ð2r   rw   g333333@rU  r#  rª  s       r   rû  z*TestNdFullLike.test_like_dtype_invalid_strZ  sÊ   € å	ð	3ð 	3ñ 
Œð	3ð ×Ò�{Ñ+Ô+ð 	"¨vØˆD•”˜‘”˜SÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ �VÔ%Ñ&Ô&ˆØ�ŠÐ?ÀÑHÔHÐHÐHÐHs   «AÁAÁAN)rL   rM   rN   r  rÝ  r„  r…  rà  rã  ré  rï  rò  rõ  r$  rû  rO   r   r   r  r     s¿   € € € € € ð/ð /ð /ð*ð *ð *ð Ôð%ð %ñ Ôð%ð*ð *ð *ð
*ð *ð *ð*ð *ð *ð
*ð *ð *ð
*ð *ð *ð
#ð #ð #ð
Ið 
Ið 
Ið 
Ið 
Ir   r  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestNdIdentityc                 ó4   — |                       |dg¦  «         d S )N©rm   ©rK   ©rC   rD   s     r   Úcheck_identityzTestNdIdentity.check_identityi  s    € Ø×Ò˜6 D 6Ñ*Ô*Ð*Ð*Ð*r   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó*   — t          j        | ¦  «        S r   ©r   Úidentityr’  s    r   r$  z*TestNdIdentity.test_identity.<locals>.funcm  s   € Ý”;˜q‘>”>Ð!r   )r-  rŽ  s     r   Útest_identityzTestNdIdentity.test_identityl  s+   € ð	"ð 	"ð 	"à×Ò˜DÑ!Ô!Ð!Ð!Ð!r   c                 ó°   ‡— t           j        t           j        t           j        t          j        d¦  «        dfD ]Šˆfd„}|                      |¦  «         Œd S )Nr˜  r–  c                 ó.   •— t          j        | ‰¦  «        S r   r0  rš  s    €r   r$  z0TestNdIdentity.test_identity_dtype.<locals>.funct  s   ø€ Ý”{ 1 eÑ,Ô,Ð,r   )r   rm  r_  r–  r>   r-  r›  s     @r   Útest_identity_dtypez"TestNdIdentity.test_identity_dtypeq  sj   ø€ Ý”l¥B¤H­b¬h½¼ÀÑ8HÔ8HØðð 	&ð 	&ˆEð-ð -ð -ð -ð -à×Ò Ñ%Ô%Ð%Ð%ð		&ð 	&r   c                 óú   — t           d„ ¦   «         }|                      t          ¦  «        5 } |dd¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d}|                      ||¦  «         d S )Nc                 ó,   — t          j        | |¦  «        S r   r0  )rk   rH  s     r   r$  z@TestNdIdentity.test_like_dtype_non_const_str_kwarg.<locals>.funcz  s   € å”;˜q "Ñ%Ô%Ð%r   rw   rt   z>If np.identity dtype is a string it must be a string constant.r¦  r§  s        r   r$  z2TestNdIdentity.test_like_dtype_non_const_str_kwargx  sÈ   € å	ð	&ð 	&ñ 
Œð	&ð ×Ò�{Ñ+Ô+ð 	¨vØˆD��GÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ �VÔ%Ñ&Ô&ˆð"ˆà�Š�c˜6Ñ"Ô"Ð"Ð"Ð"r«  N)rL   rM   rN   r-  r2  r5  r$  rO   r   r   r(  r(  g  sP   € € € € € ð+ð +ð +ð"ð "ð "ð
&ð &ð &ð#ð #ð #ð #ð #r   r(  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú	TestNdEyec                 ó<   — d„ }|                       |ddg¦  «         d S )Nc                 ó*   — t          j        | ¦  «        S r   ©r   Úeyer’  s    r   r$  z"TestNdEye.test_eye_n.<locals>.func‹  s   € Ý”6˜!‘9”9Ðr   ©ra   r*  r+  rŽ  s     r   Ú
test_eye_nzTestNdEye.test_eye_nŠ  s1   € ð	ð 	ð 	à×Ò˜4 $¨ Ñ.Ô.Ð.Ð.Ð.r   c                 óˆ   — d t           j        t          j        d¦  «        fD ]}|fd„}|                      |ddg¦  «         Œ d S )Nra   c                 ó.   — t          j        | |¬¦  «        S rl  r<  rš  s     r   r$  z(TestNdEye.test_eye_n_dtype.<locals>.func’  s   € Ý”v˜a uÐ-Ñ-Ô-Ð-r   r>  r*  )r   r:  rm  rK   )rC   rH  r$  s      r   Útest_eye_n_dtypezTestNdEye.test_eye_n_dtype�  s`   € à�œ­¬°Q©¬Ð8ð 	3ð 	3ˆBØ ð .ð .ð .ð .à×Ò˜t d¨D \Ñ2Ô2Ð2Ð2ð	3ð 	3r   c                 ó<   — d„ }|                       |g d¢¦  «         d S )Nc                 ó,   — t          j        | |¦  «        S r   r<  ©rk   ru   s     r   r$  z$TestNdEye.test_eye_n_m.<locals>.func—  s   € Ý”6˜!˜Q‘<”<Ðr   )©ra   r€   ©rm   r€   )r   rm   r+  rŽ  s     r   Útest_eye_n_mzTestNdEye.test_eye_n_m–  s4   € ð	 ð 	 ð 	 à×Ò˜4Ð!9Ð!9Ð!9Ñ:Ô:Ð:Ð:Ð:r   c                 ó6   — |                       |g d¢¦  «         d S )N))ra   r€   r   )rm   rw   ra   )rm   rw   r	  )rw   rm   éþÿÿÿ)rw   rm   éûÿÿÿ)rw   rm   r§   r+  rŽ  s     r   Úcheck_eye_n_m_kzTestNdEye.check_eye_n_m_k›  s5   € Ø×Ò˜4ð "-ð "-ð "-ñ 	.ô 	.ð 	.ð 	.ð 	.r   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 ó.   — t          j        | ||¦  «        S r   r<  ©rk   ru   r   s      r   r$  z&TestNdEye.test_eye_n_m_k.<locals>.func¤  s   € Ý”6˜!˜Q ‘?”?Ð"r   ©rL  rŽ  s     r   Útest_eye_n_m_kzTestNdEye.test_eye_n_m_k£  s+   € ð	#ð 	#ð 	#à×Ò˜TÑ"Ô"Ð"Ð"Ð"r   c                 ó6   — d„ }|                       |¦  «         d S )Nc                 óF   — t          j        | ||t           j        ¬¦  «        S ©N)ÚNÚMr   r>   )r   r=  r_  rO  s      r   r$  z,TestNdEye.test_eye_n_m_k_dtype.<locals>.func©  s   € Ý”6˜A  a­r¬xÐ8Ñ8Ô8Ð8r   rP  rŽ  s     r   Útest_eye_n_m_k_dtypezTestNdEye.test_eye_n_m_k_dtype¨  s+   € ð	9ð 	9ð 	9à×Ò˜TÑ"Ô"Ð"Ð"Ð"r   c                 ód   ‡— t          j        d¦  «        Šˆfd„}|                      |¦  «         d S )Nr_  c                 ó4   •— t          j        | ||‰¬¦  «        S rT  r<  )rk   ru   r   r>   s      €r   r$  z5TestNdEye.test_eye_n_m_k_dtype_instance.<locals>.func¯  s   ø€ Ý”6˜A  a¨uÐ5Ñ5Ô5Ð5r   )r   r>   rL  r›  s     @r   Útest_eye_n_m_k_dtype_instancez'TestNdEye.test_eye_n_m_k_dtype_instance­  sE   ø€ Ý”˜Ñ!Ô!ˆð	6ð 	6ð 	6ð 	6ð 	6à×Ò˜TÑ"Ô"Ð"Ð"Ð"r   N)
rL   rM   rN   r?  rB  rH  rL  rQ  rW  rZ  rO   r   r   r9  r9  ˆ  s}   € € € € € ð/ð /ð /ð
3ð 3ð 3ð;ð ;ð ;ð
.ð .ð .ð#ð #ð #ð
#ð #ð #ð
#ð #ð #ð #ð #r   r9  c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
Ú
TestNdDiagc                 óÈ  — t          j        g d¢¦  «        }t          j        g d¢g¦  «        }t          j        |¦  «        }|||g| _        t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }||g| _        d„ }|| _        t          |¦  «        | _	        dd„}|| _
        t          |¦  «        | _        d S )	NrË  rø   rm   rw   c                 ó*   — t          j        | ¦  «        S r   ©r   Údiag)Úqs    r   r$  zTestNdDiag.setUp.<locals>.func¾  s   € Ý”7˜1‘:”:Ðr   r   c                 ó.   — t          j        | |¬¦  «        S )N©r   r_  )ra  r   s     r   Ú
func_kwargz$TestNdDiag.setUp.<locals>.func_kwargÃ  s   € Ý”7˜1 �?‘?”?Ð"r   )r   )r   ÚarrayÚ	transposeÚvectorsrn   r«   Ú	matriciesÚpyr;   ÚjitÚpy_kwÚjit_kw)rC   ÚvÚhvÚvvÚa3x4Úa4x3r$  rd  s           r   r  zTestNdDiag.setUp¶  sÜ   € ÝŒH�Y�Y�YÑÔˆÝŒX�y�y�y�kÑ"Ô"ˆÝŒ\˜"ÑÔˆØ˜2˜r�{ˆŒÝŒy˜‰}Œ}×$Ò$ Q¨Ñ*Ô*ˆÝŒy˜‰}Œ}×$Ò$ Q¨Ñ*Ô*ˆØ ˜ˆŒð	ð 	ð 	àˆŒÝ˜$‘<”<ˆŒð	#ð 	#ð 	#ð 	#àˆŒ
Ý˜ZÑ(Ô(ˆŒˆˆr   c                 óæ   —  ||i |¤Ž} ||i |¤Ž}|                       |j        |j        ¦  «         |                       |j        |j        ¦  «         t          j                             ||¦  «         d S r   )r<   r=   r>   r   r@   rA   )rC   rD   ÚnrtfuncrH   ÚkwargsrI   Úcomputeds          r   Ú
check_diagzTestNdDiag.check_diagÈ  s|   € Ø�6˜4Ð* 6Ð*Ð*ˆØ�7˜DÐ+ FÐ+Ð+ˆØ×Ò˜œ¨¬Ñ6Ô6Ð6Ø×Ò˜œ¨¬Ñ8Ô8Ð8å
Œ
×Ò ¨(Ñ3Ô3Ð3Ð3Ð3r   c                 ó\   — | j         D ]#}|                      | j        | j        |¦  «         Œ$d S r   )rg  rv  ri  rj  ©rC   Úds     r   Útest_diag_vect_createz TestNdDiag.test_diag_vect_createÑ  s:   € Ø”ð 	2ð 	2ˆAØ�OŠO˜DœG T¤X¨qÑ1Ô1Ð1Ð1ð	2ð 	2r   c                 ó†   — t          dd¦  «        D ]/}| j        D ]%}|                      | j        | j        ||¬¦  «         Œ&Œ0d S )Niöÿÿÿr¦   rc  )rj   rg  rv  rk  rl  ©rC   r   ry  s      r   Útest_diag_vect_create_kwargz&TestNdDiag.test_diag_vect_create_kwargÖ  sa   € Ý�s˜B‘”ð 	Að 	AˆAØ”\ð Að A�Ø—’ ¤
¨D¬K¸¸a�Ñ@Ô@Ð@Ð@ðAð	Að 	Ar   c                 ó\   — | j         D ]#}|                      | j        | j        |¦  «         Œ$d S r   )rh  rv  ri  rj  rx  s     r   Útest_diag_extractzTestNdDiag.test_diag_extractÜ  s:   € Ø”ð 	2ð 	2ˆAØ�OŠO˜DœG T¤X¨qÑ1Ô1Ð1Ð1ð	2ð 	2r   c                 ó†   — t          dd¦  «        D ]/}| j        D ]%}|                      | j        | j        ||¬¦  «         Œ&Œ0d S )Néüÿÿÿrw   rc  )rj   rh  rv  rk  rl  r|  s      r   Útest_diag_extract_kwargz"TestNdDiag.test_diag_extract_kwargá  sa   € Ý�r˜1‘”ð 	Að 	AˆAØ”^ð Að A�Ø—’ ¤
¨D¬K¸¸a�Ñ@Ô@Ð@Ð@ðAð	Að 	Ar   c                 óö  — t          j        dggg¦  «        }t          | j        ¦  «        }|                      t
          ¦  «        5   |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  t          | j        ¦  «        } ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nç      ð?rm   rc  )r   re  r;   ri  rÛ   rÄ  r   rk  )rC   ry  rG   Údfuncs       r   Útest_error_handlingzTestNdDiag.test_error_handlingç  sª  € ÝŒH˜�t�f�XÑÔˆÝ�t”w‘”ˆð ×Ò�yÑ)Ô)ð 	ð 	ØˆE‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×Ò�{Ñ+Ô+ð 	ð 	ØˆE�!‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò�{Ñ+Ô+ð 	ð 	Ý˜4œ:Ñ&Ô&ˆEØˆE�!�qˆM‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s6   ÁAÁA!Á$A!ÂBÂBÂ!BÂ?"C.Ã.C2Ã5C2c                 ó°   — t          | j        ¦  «        }d}|                      t          |¦  «        5 } |d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz'.*The argument "v" must be array-like.*)r;   ri  ÚassertRaisesRegexr   )rC   rG   rN  râ   s       r   Útest_bad_shapezTestNdDiag.test_bad_shapeö  s˜   € Ý�t”w‘”ˆØ7ˆØ×#Ò#¥K°Ñ5Ô5ð 	¸ØˆE�$‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ²AÁAÁAN)rL   rM   rN   r  rv  rz  r}  r  r‚  r†  r‰  rO   r   r   r\  r\  ´  s’   € € € € € ð)ð )ð )ð$4ð 4ð 4ð2ð 2ð 2ð
Að Að Að2ð 2ð 2ð
Að Að Aðð ð ðð ð ð ð r   r\  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestLinspacec                 ó<   — d„ }|                       |g d¢¦  «         d S )Nc                 ó,   — t          j        | |¦  «        S r   ©r   rÍ  rE  s     r   rD   z,TestLinspace.test_linspace_2.<locals>.pyfuncÿ  s   € Ý”;˜q !Ñ$Ô$Ð$r   ))r   rw   )ra   r¶   )ç      Àç      @)ù       €      Àù       @      @)r€   ra   )ù      ð?      à?ù              ø?r+  r,  s     r   Útest_linspace_2zTestLinspace.test_linspace_2þ  sD   € ð	%ð 	%ð 	%à×Ò˜6ð4ð 4ð 4ñ	5ô 	5ð 	5ð 	5ð 	5r   c                 ó<   — d„ }|                       |g d¢¦  «         d S )Nc                 ó.   — t          j        | ||¦  «        S r   rŽ  ©rk   ru   r~   s      r   rD   z,TestLinspace.test_linspace_3.<locals>.pyfunc  s   € Ý”;˜q ! QÑ'Ô'Ð'r   ))r   rw   é	   )ra   rw   rm   )r�  r�  rÙ   )r‘  r’  r©   )r€   ra   r   )r“  r”  r§   )ra   g}Ã”%­I²Tra   r+  r,  s     r   Útest_linspace_3zTestLinspace.test_linspace_3  sD   € ð	(ð 	(ð 	(à×Ò˜6ð>ð >ð >ñ	?ô 	?ð 	?ð 	?ð 	?r   c                 óž   — t           d„ ¦   «         }d\  }}}|                       ||||¦  «        |                     |||¦  «        ¦  «         d S )Nc                 ó.   — t          j        | ||¦  «        S r   rŽ  r˜  s      r   r`   z0TestLinspace.test_linspace_accuracy.<locals>.foo  s   € å”;˜q ! QÑ'Ô'Ð'r   )g        r„  r¶   )r;   ÚassertPreciseEqualÚpy_func)rC   r`   rk   ru   r~   s        r   Útest_linspace_accuracyz#TestLinspace.test_linspace_accuracy  sb   € õ 
ð	(ð 	(ñ 
Œð	(ð  ‰ˆˆ1ˆaØ×Ò   A q¨!¡¤¨c¯kªk¸!¸QÀÑ.BÔ.BÑCÔCÐCÐCÐCr   N)rL   rM   rN   r•  rš  rŸ  rO   r   r   r‹  r‹  ü  sF   € € € € € ð5ð 5ð 5ð?ð ?ð ?ðDð Dð Dð Dð Dr   r‹  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestNpyEmptyKeywordc                 óî   ‡— ˆfd„}g d¢}t          |¦  «        }|D ]X} ||¦  «        } ||¦  «        }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         ŒYd S )Nc                 ó0   •— t          j        | ‰¬¦  «        S rl  r]   ©rc   r>   s    €r   rD   z7TestNpyEmptyKeyword._test_with_dtype_kw.<locals>.pyfunc  s   ø€ Ý”8˜E¨Ð/Ñ/Ô/Ð/r   ©ra   r§   r™  ©r;   r<   r>   rc   ©rC   r>   rD   ÚshapesrG   ÚsrI   rž   s    `      r   Ú_test_with_dtype_kwz'TestNpyEmptyKeyword._test_with_dtype_kw  sœ   ø€ ð	0ð 	0ð 	0ð 	0ð 	0ð ��ˆå�v‘”ˆØð 	8ð 	8ˆAØ�v˜a‘y”yˆHØ�%˜‘(”(ˆCØ×Ò˜Xœ^¨S¬YÑ7Ô7Ð7Ø×Ò˜Xœ^¨S¬YÑ7Ô7Ð7Ð7ð		8ð 	8r   c                 ó¢   — t           j        t           j        t           j        t          j        d¦  «        fD ]}|                      |¦  «         Œd S ©Nrm  )r   rt   r�   rm  r>   rª  ©rC   r>   s     r   Útest_with_dtype_kwsz'TestNpyEmptyKeyword.test_with_dtype_kws&  sK   € Ý”h¥¤
­B¬L½"¼(À;Ñ:OÔ:OÐPð 	,ð 	,ˆEØ×$Ò$ UÑ+Ô+Ð+Ð+ð	,ð 	,r   c                 óî   ‡— ˆfd„}g d¢}t          |¦  «        }|D ]X} ||¦  «        } ||¦  «        }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         ŒYd S )Nc                 ó0   •— t          j        | ‰¬¦  «        S )Nr¤  r]   r¤  s    €r   rD   zATestNpyEmptyKeyword._test_with_shape_and_dtype_kw.<locals>.pyfunc+  s   ø€ Ý”8 %¨uÐ5Ñ5Ô5Ð5r   r¥  r¦  r§  s    `      r   Ú_test_with_shape_and_dtype_kwz1TestNpyEmptyKeyword._test_with_shape_and_dtype_kw*  sœ   ø€ ð	6ð 	6ð 	6ð 	6ð 	6ð ��ˆå�v‘”ˆØð 	8ð 	8ˆAØ�v˜a‘y”yˆHØ�%˜‘(”(ˆCØ×Ò˜Xœ^¨S¬YÑ7Ô7Ð7Ø×Ò˜Xœ^¨S¬YÑ7Ô7Ð7Ð7ð		8ð 	8r   c                 ó¢   — t           j        t           j        t           j        t          j        d¦  «        fD ]}|                      |¦  «         Œd S r¬  )r   rt   r�   rm  r>   r±  r­  s     r   Útest_with_shape_and_dtype_kwsz1TestNpyEmptyKeyword.test_with_shape_and_dtype_kws7  sK   € Ý”h¥¤
­B¬L½"¼(À;Ñ:OÔ:OÐPð 	6ð 	6ˆEØ×.Ò.¨uÑ5Ô5Ð5Ð5ð	6ð 	6r   c                 ó¤   — d„ }t          |¦  «        }|                      t          ¦  «        5   |¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó(   — t          j        ¦   «         S r   r]   rO   r   r   rD   z6TestNpyEmptyKeyword.test_empty_no_args.<locals>.pyfunc=  s   € Ý”8‘:”:Ðr   )r;   rÛ   r   )rC   rD   rG   s      r   Útest_empty_no_argsz&TestNpyEmptyKeyword.test_empty_no_args;  s£   € ð	ð 	ð 	õ �v‘”ˆð ×Ò�{Ñ+Ô+ð 	ð 	ØˆE‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ­AÁA	ÁA	N)rL   rM   rN   rª  r®  r±  r³  r¶  rO   r   r   r¡  r¡    s_   € € € € € ð8ð 8ð 8ð,ð ,ð ,ð8ð 8ð 8ð6ð 6ð 6ð
ð 
ð 
ð 
ð 
r   r¡  c                   óP   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )ÚTestNpArrayc                 ó  — d„ }t          |¦  «        } |d¦  «        }|                      |t          j        dt          j        ¬¦  «        ¦  «          |d¦  «        }|                      |t          j        d¦  «        ¦  «         d S )Nc                 ó*   — t          j        | ¦  «        S r   ©r   re  ©Úargs    r   rD   z#TestNpArray.test_0d.<locals>.pyfuncK  ó   € Ý”8˜C‘=”=Ð r   r\   r‡   r�  )r;   r�  r   re  rz  ©rC   rD   rG   rž   s       r   r&  zTestNpArray.test_0dJ  sƒ   € ð	!ð 	!ð 	!õ �v‘”ˆØˆe�B‰iŒiˆØ×Ò ¥R¤X¨b½¼Ð%@Ñ%@Ô%@ÑAÔAÐAØˆe�C‰jŒjˆØ×Ò ¥R¤X¨c¡]¤]Ñ3Ô3Ð3Ð3Ð3r   c                 ó<   — d„ }|                       |ddg¦  «         d S )Nc                 óB   — t          j        | t           j        ¬¦  «        S rl  )r   re  r_  r¼  s    r   rD   z.TestNpArray.test_0d_with_dtype.<locals>.pyfuncU  ó   € Ý”8˜C¥r¤xÐ0Ñ0Ô0Ð0r   )r\   )r  r+  r,  s     r   Útest_0d_with_dtypezTestNpArray.test_0d_with_dtypeT  s3   € ð	1ð 	1ð 	1ð 	×Ò˜6 E¨6 ?Ñ3Ô3Ð3Ð3Ð3r   c                 óh  — d„ }t          |¦  «        } |g d¢¦  «        }|                      |t          j        g d¢¦  «        ¦  «          |d¦  «        }|                      |t          j        g d¢¦  «        ¦  «          |d¦  «        }|                      |t          j        d¦  «        ¦  «         d S )Nc                 ó*   — t          j        | ¦  «        S r   r»  r¼  s    r   rD   z#TestNpArray.test_1d.<locals>.pyfunc[  r¾  r   )r€   rm   r\   )r„  y              @r\   rO   )r;   r�  r   rz  re  rd   r¿  s       r   r+  zTestNpArray.test_1dZ  s¹   € ð	!ð 	!ð 	!õ �v‘”ˆàˆe�J�J�JÑÔˆØ×Ò ¥R¤W¨Z¨Z¨ZÑ%8Ô%8Ñ9Ô9Ð9àˆe�OÑ$Ô$ˆØ×Ò ¥R¤X¨o¨o¨oÑ%>Ô%>Ñ?Ô?Ð?àˆe�B‰iŒiˆØ×Ò ¥R¤Z°¡^¤^Ñ4Ô4Ð4Ð4Ð4r   c                 óL   — d„ }|                       |ddgfddgfddg¦  «         d S )Nc                 óB   — t          j        | t           j        ¬¦  «        S rl  )r   re  r�   r¼  s    r   rD   z.TestNpArray.test_1d_with_dtype.<locals>.pyfuncj  s   € Ý”8˜C¥r¤zÐ2Ñ2Ô2Ð2r   r€   r\   r  r„  ©)ra   r  r\   ©rO   r+  r,  s     r   Útest_1d_with_dtypezTestNpArray.test_1d_with_dtypei  sT   € ð	3ð 	3ð 	3ð 	×Ò˜6Ø ˜W˜JØ! 3˜Z˜MØ+Ø!ðñ	ô 	ð 	ð 	ð 	r   c                 óL   — d„ }|                       |ddgfddgfddg¦  «         d S )Nc                 ó.   — t          j        | d¬¦  «        S )Nr�   r‡   r»  r¼  s    r   rD   z2TestNpArray.test_1d_with_str_dtype.<locals>.pyfuncu  s   € Ý”8˜C yÐ1Ñ1Ô1Ð1r   r€   r\   r  r„  rÈ  rÉ  r+  r,  s     r   Útest_1d_with_str_dtypez"TestNpArray.test_1d_with_str_dtypet  sT   € ð	2ð 	2ð 	2ð 	×Ò˜6Ø ˜W˜JØ! 3˜Z˜MØ+Ø!ðñ	ô 	ð 	ð 	ð 	r   c                 óú   — t           d„ ¦   «         }|                      t          ¦  «        5 } |dd¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d}|                      ||¦  «         d S )Nc                 ó.   — t          j        | |¬¦  «        S rl  r»  )r½  rH  s     r   r$  z:TestNpArray.test_1d_with_non_const_str_dtype.<locals>.func�  s   € å”8˜C rÐ*Ñ*Ô*Ð*r   )r§   rm   rt   z;If np.array dtype is a string it must be a string constant.r¦  r§  s        r   Ú test_1d_with_non_const_str_dtypez,TestNpArray.test_1d_with_non_const_str_dtype  sÈ   € å	ð	+ð 	+ñ 
Œð	+ð ×Ò�{Ñ+Ô+ð 	"¨vØˆD�˜Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ �VÔ%Ñ&Ô&ˆð"ˆà�Š�c˜6Ñ"Ô"Ð"Ð"Ð"r«  c                 óê  — d„ }t          |¦  «        } |ddg¦  «        }|                      |t          j        ddgddgg¦  «        ¦  «          |dd	g¦  «        }|                      |t          j        dd
gddgg¦  «        ¦  «          |ddgddgf¦  «        }|                      |t          j        ddgddgg¦  «        ¦  «          |ddgddgf¦  «        }|                      |t          j        ddgddgg¦  «        ¦  «          |d¦  «        }|                      |t          j        ddgddgg¦  «        ¦  «          |d¦  «        }|                      |t          j        d¦  «        ¦  «         d S )Nc                 ó*   — t          j        | ¦  «        S r   r»  r¼  s    r   rD   z#TestNpArray.test_2d.<locals>.pyfuncŽ  r¾  r   rF  ©rm   rw   ra   r€   rm   rw   ©ra   r�  ©rm   r‹  r�  r‹  r  ))ç      ø?r€   )r  r‹  rÖ  )rO   rO   )r;   r�  r   rz  rd   r¿  s       r   r\  zTestNpArray.test_2d�  s¢  € ð	!ð 	!ð 	!õ �v‘”ˆàˆe�V˜VÐ$Ñ%Ô%ˆØ×Ò ¥R¤W¨q°!¨f°q¸!°fÐ-=Ñ%>Ô%>Ñ?Ô?Ð?Øˆe�X˜xÐ(Ñ)Ô)ˆØ×Ò ¥R¤Z°!°S°¸A¸s¸8Ð0DÑ%EÔ%EÑFÔFÐFàˆe�a˜�V˜a ˜VÐ$Ñ%Ô%ˆØ×Ò ¥R¤W¨q°!¨f°q¸!°fÐ-=Ñ%>Ô%>Ñ?Ô?Ð?Øˆe�a˜�V˜c 3˜ZÐ(Ñ)Ô)ˆØ×Ò ¥R¤Z°!°Q°¸#¸s¸Ð0DÑ%EÔ%EÑFÔFÐFàˆeÐ*Ñ+Ô+ˆØ×Ò ¥R¤Z°#°q°¸CÀ¸:Ð0FÑ%GÔ%GÑHÔHÐHØˆe�H‰oŒoˆØ×Ò ¥R¤Z°Ñ%9Ô%9Ñ:Ô:Ð:Ð:Ð:r   c                 ó    — d„ }t          |¦  «        } |ddg¦  «        }|                      |t          j        ddgddgg¦  «        ¦  «         d S )Nc                 óB   — t          j        | t           j        ¬¦  «        S rl  )r   re  rt   r¼  s    r   rD   z.TestNpArray.test_2d_with_dtype.<locals>.pyfunc£  rÂ  r   rÔ  rÕ  ra   r€   rm   rw   )r;   r�  r   rt   r¿  s       r   Útest_2d_with_dtypezTestNpArray.test_2d_with_dtype¢  se   € ð	1ð 	1ð 	1õ �v‘”ˆØˆe�X˜xÐ(Ñ)Ô)ˆØ×Ò ¥R¤X°°1¨v¸¸1°vÐ.>Ñ%?Ô%?Ñ@Ô@Ð@Ð@Ð@r   c                 ót  ‡ — d„ }t          |¦  «        }t          j        ˆ fd„¦   «         } |d¦  «        5   |t          j        dg¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y    |d¦  «        5   |t          j        d¦  «        t          j        d¦  «        gf¦  «         d d d ¦  «         n# 1 swxY w Y    |d¦  «        5  t          j        d	d
g¦  «        }t          j        d|¬¦  «        d         } |dt          j        d¦  «        |ff¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó*   — t          j        | ¦  «        S r   r»  r¼  s    r   rD   z'TestNpArray.test_raises.<locals>.pyfunc¬  r¾  r   c              3   óÈ   •K  — ‰                      t          ¦  «        5 }d V — d d d ¦  «         n# 1 swxY w Y   ‰                     | t          |j        ¦  «        ¦  «         d S r   )rÛ   r   rß   rà   rá   )rN  râ   rC   s     €r   Úcheck_raisesz-TestNpArray.test_raises.<locals>.check_raises±  s›   øè è € à×"Ò"¥;Ñ/Ô/ð °6Ø���ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�MŠM˜#�s 6Ô#3Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5s   ž/¯3¶3z;array(float64, 1d, C) not allowed in a homogeneous sequencer„  zOtype Tuple(int64, reflected list(int64)<iv=None>) does not have a regular shapera   r€   zrcannot convert Tuple(int64, Record(a[type=int32;offset=0],b[type=float32;offset=4];8;False)) to a homogeneous type)r   r=  )r   Úf4r‡   r   rF  )r;   Ú
contextlibÚcontextmanagerr   re  rb  r>   r  )rC   rD   rG   rÝ  ÚstÚvals   `     r   Útest_raiseszTestNpArray.test_raisesª  s2  ø€ ð	!ð 	!ð 	!õ �v‘”ˆå	Ô	"ð	6ð 	6ð 	6ð 	6ñ 
#Ô	"ð	6ð
 ˆ\ð 2ñ 4ô 4ð 	"ð 	"àˆE•"”(˜B˜4‘.”.Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð ˆ\ð :ñ <ô <ð 	0ð 	0àˆE•2”8˜A‘;”;¥¤¨!¡¤ Ð.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð ˆ\ðKñô ð 	0ð 	0õ ”˜;¨Ð4Ñ5Ô5ˆBÝ”(˜1 BÐ'Ñ'Ô'¨Ô*ˆCØˆE�6�BœH Q™KœK¨Ð-Ð.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s6   ¶A!Á!A%Á(A%Á73B6Â6B:Â=B:ÃAD-Ä-D1Ä4D1c                 ó¨   — t           d„ ¦   «         }d}|                      t          |¦  «        5 } |d ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó*   — t          j        | ¦  «        S r   r»  )Úobjs    r   r$  z(TestNpArray.test_bad_array.<locals>.funcÈ  s   € å”8˜C‘=”=Ð r   z,.*The argument "object" must be array-like.*©r   rˆ  r   ©rC   r$  rN  râ   s       r   Útest_bad_arrayzTestNpArray.test_bad_arrayÇ  s¦   € Ý	ð	!ð 	!ñ 
Œð	!ð =ˆØ×#Ò#¥K°Ñ5Ô5ð 	¸ØˆD�‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ®AÁAÁAc                 óª   — t           d„ ¦   «         }d}|                      t          |¦  «        5 } |dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó,   — t          j        | |¦  «        S r   r»  )ræ  rH  s     r   r$  z(TestNpArray.test_bad_dtype.<locals>.funcÑ  s   € å”8˜C Ñ$Ô$Ð$r   z>.*The argument "dtype" must be a data-type if it is provided.*r§   rw   rç  rè  s       r   Útest_bad_dtypezTestNpArray.test_bad_dtypeÐ  s©   € Ý	ð	%ð 	%ñ 
Œð	%ð OˆØ×#Ò#¥K°Ñ5Ô5ð 	¸ØˆD��A‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ®AÁAÁAN)rL   rM   rN   r&  rÃ  r+  rÊ  rÍ  rÐ  r\  rÙ  rã  ré  rì  rO   r   r   r¸  r¸  H  s¼   € € € € € ð4ð 4ð 4ð4ð 4ð 4ð5ð 5ð 5ð	ð 	ð 	ð	ð 	ð 	ð#ð #ð #ð;ð ;ð ;ð*Að Að Að0ð 0ð 0ð:ð ð ðð ð ð ð r   r¸  c                   óJ   — e Zd ZdZd„ Zej        d„ ¦   «         Zd„ Zd„ Z	d„ Z
dS )ÚTestNpConcatenatez%
    Tests for np.concatenate().
    c                 óÖ   — t          j        d¦  «                             d¦  «        }|dz   }|dz                        d¬¦  «        }|dz   d d d…         }|dz   dd d d…f         }|||||fS ©Né   )rw   rm   r€   r¦   ÚF)Úorderr	  .©r   rn   r«   r¼   ©rC   r   r   r   ry  r  s         r   Ú
_3d_arrayszTestNpConcatenate._3d_arraysß  óx   € ÝŒI�b‰MŒM×!Ò! )Ñ,Ô,ˆØ�‰FˆØ�‰V�MŠM ˆMÑ$Ô$ˆØ�‰V�T�T�r�TŒNˆØ�‰V�S˜˜˜2˜�XÔˆØ�!�Q˜˜1ˆ}Ðr   c              #   óÌ   K  — |                       t          ¦  «        5 }d V — d d d ¦  «         n# 1 swxY w Y   |                      d|z  t          |j        ¦  «        ¦  «         d S )Nz*input sizes over dimension %d do not match©rÛ   r  rß   rà   rá   )rC   r   râ   s      r   Úassert_invalid_sizes_over_dimz/TestNpConcatenate.assert_invalid_sizes_over_dimç  s«   è è € à×Ò�zÑ*Ô*ð 	¨fØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐBÀTÑIÝ˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-ó   �.®2µ2c           	      óð  ‡ ‡‡	‡
— t           Š
t          ‰
¦  «        Šˆˆ
ˆ fd„Š	ˆ	fd„}‰                      ¦   «         \  }}}}} ||||¦  «          ||||¦  «          ||j        |j        |j        ¦  «          ||j        |j        |j        ¦  «          ||j        |j        |j        ¦  «          ||j        |j        |j        ¦  «          ‰	|dd …         ||d d d…         d¬¦  «          ‰	||d d …dd …f         |d¬¦  «          ‰	|||d d …d d …dd …f         d¬¦  «          |||                     t
          j        ¦  «        |¦  «         ‰                      ¦   «          dD ]E}‰                      d¦  «        5   ‰|dd …         |||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒFd	D ]I}‰                      d¦  «        5   ‰||d d …dd …f         ||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒJd S )
Nc                 ó„   •— |d|z   fD ]6} ‰| |||¬¦  «        } ‰| |||¬¦  «        }‰	                      ||¦  «         Œ7d S )Néýÿÿÿr   ©r�  )
r   r   r   r   ÚaxrI   rž   rG   rD   rC   s
          €€€r   Úcheckz(TestNpConcatenate.test_3d.<locals>.checkò  sn   ø€ Ø˜R $™YÐ'ð 7ð 7�Ø!˜6 ! Q¨°Ð3Ñ3Ô3�Ø�e˜A˜q !¨"Ð-Ñ-Ô-�Ø×'Ò'¨¨XÑ6Ô6Ð6Ð6ð7ð 7r   c                 óH   •— t          d¦  «        D ]} ‰| |||¦  «         Œd S )Nrm   ræ   )r   r   r   r   r  s       €r   Úcheck_all_axesz1TestNpConcatenate.test_3d.<locals>.check_all_axesø  s;   ø€ Ý˜a™œð %ð %�Ø��a˜˜A˜tÑ$Ô$Ð$Ð$ð%ð %r   ra   r	  r   r   r€   )ra   r€   rJ  r	  )r   r€   rþ  r	  )	r!   r;   rö  ÚTrÎ  r   rd   rÚ   rú  )rC   r  r   r   r   ry  r  r   rG   r  rD   s   `       @@@r   Útest_3dzTestNpConcatenate.test_3dî  s   øøøø€ Ý ˆÝ�v‘”ˆð	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð	%ð 	%ð 	%ð 	%ð 	%ð ŸšÑ)Ô)‰ˆˆ1ˆa��Að 	ˆ�q˜!˜QÑÔÐàˆ�q˜!˜QÑÔÐàˆ�q”s˜AœC ¤Ñ%Ô%Ð%àˆ�q”s˜AœC ¤Ñ%Ô%Ð%àˆ�q”s˜AœC ¤Ñ%Ô%Ð%ð 	ˆ�q”s˜AœC ¤Ñ%Ô%Ð%ð 	ˆˆa���Œe�Q˜˜$˜$˜B˜$œ aÐ(Ñ(Ô(Ð(Øˆˆa��1�1�1�Q�R�R�4”˜! !Ð$Ñ$Ô$Ð$Øˆˆa��A�a�a�a˜˜˜˜!˜"˜"�f”I AÐ&Ñ&Ô&Ð&ð 	ˆ�q˜!Ÿ(š(¥2¤:Ñ.Ô.°Ñ2Ô2Ð2ð 	×ÒÑ!Ô!Ð!ð #ð 	)ð 	)ˆDØ×3Ò3°AÑ6Ô6ð )ð )Ø��a˜˜˜”e˜Q  4Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )øà"ð 	+ð 	+ˆDØ×3Ò3°AÑ6Ô6ð +ð +Ø��a˜˜1˜1˜1˜Q˜R˜R˜4œ ! TÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øð	+ð 	+s$   Å;FÆF"	Æ%F"	ÇG*Ç*G.	Ç1G.	c                 ó€  ‡ ‡‡— t           Št          ‰¦  «        Šˆˆˆ fd„}‰                      ¦   «         \  }}}}} ||||¦  «          ||||¦  «          ||j        |j        |j        ¦  «          ||j        |j        |j        ¦  «          ||j        |j        |j        ¦  «          ||j        |j        |j        ¦  «          ||dd …         ||d d d…         ¦  «         ‰                      ¦   «          ‰                      d¦  «        5   ‰||d d …dd …f         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 óh   •—  ‰| ||¦  «        } ‰| ||¦  «        }‰                      ||¦  «         d S r   rÿ  )r   r   r   rI   rž   rG   rD   rC   s        €€€r   r  z0TestNpConcatenate.test_3d_no_axis.<locals>.check$  sA   ø€ Ø�v˜a  A‘”ˆHØ�%˜˜1˜a‘.”.ˆCØ×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   ra   r	  )r   r;   rö  r  rÚ   rú  )	rC   r  r   r   r   ry  r  rG   rD   s	   `      @@r   Útest_3d_no_axisz!TestNpConcatenate.test_3d_no_axis   s»  øøø€ Ý ˆÝ�v‘”ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð
 ŸšÑ)Ô)‰ˆˆ1ˆa��Að 	ˆˆa��A‰Œˆàˆˆa��A‰ŒˆàˆˆaŒc�1”3˜œÑÔÐàˆˆaŒc�1”3˜œÑÔÐàˆˆaŒc�1”3˜œÑÔÐð 	ˆˆaŒc�1”3˜œÑÔÐð 	ˆˆa���Œe�Q˜˜$˜$˜B˜$œÑ Ô Ð ð 	×ÒÑ!Ô!Ð!ð ×/Ò/°Ñ2Ô2ð 	!ð 	!ØˆE�!�Q�q�q�q˜˜˜�t”W˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ÄD3Ä3D7Ä:D7c                 ó  — t           }t          |¦  «        }t          j        d¦  «        }|                     d¦  «        }|                     t          j        dt          j        fg¦  «        ¦  «        }t          j        d¦  «        }|  	                    ¦   «         5 } ||||¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    dt          |j        ¦  «        ¦  «         |  	                    ¦   «         5 } ||||¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    dt          |j        ¦  «        ¦  «         |  	                    ¦   «         5 } ||||¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    dt          |j        ¦  «        ¦  «         |  	                    ¦   «         5 } ||d|¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    d	t          |j        ¦  «        ¦  «         d S )
Nrõ   )rm   r§   rØ   r\   z8all the input arrays must have same number of dimensionsz(input arrays must have compatible dtypesz.zero-dimensional arrays cannot be concatenatedra   ú%expecting a non-empty tuple of arrays)r   r;   r   rn   r«   rÎ  r>   rc  re  ÚassertTypingErrorrß   rà   rá   )rC   rD   rG   r   r   r   ry  râ   s           r   Útest_typing_errorsz$TestNpConcatenate.test_typing_errorsD  sØ  € Ý ˆÝ�v‘”ˆåŒI�b‰MŒMˆØ�IŠI�fÑÔˆØ�HŠH•R”X ¥R¤W˜~Ð.Ñ/Ô/Ñ0Ô0ˆÝŒH�R‰LŒLˆð ×#Ò#Ñ%Ô%ð 	¨ØˆE�!�Q˜‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐPÝ˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð ×#Ò#Ñ%Ô%ð 	¨ØˆE�!�Q˜‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐ@Ý˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð ×#Ò#Ñ%Ô%ð 	¨ØˆE�!�Q˜‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐFÝ˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð ×#Ò#Ñ%Ô%ð 	¨ØˆE�!�Q˜‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐ=½sÀ6ÔCSÑ?TÔ?TÑUÔUÐUÐUÐUsH   ÂB6Â6B:Â=B:Ã=DÄDÄDÅE8Å8E<Å?E<Æ?GÇGÇ GN)rL   rM   rN   Ú__doc__rö  rß  rà  rú  r  r  r  rO   r   r   rî  rî  Ú  s€   € € € € € ðð ðð ð ð Ôð-ð -ñ Ôð-ð0+ð 0+ð 0+ðd"!ð "!ð "!ðHVð Vð Vð Vð Vr   rî  r$   z"this Numpy doesn't have np.stack()c                   ó€   — e Zd ZdZd„ Zej        d„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestNpStackz
    Tests for np.stack().
    c                 óÖ   — t          j        d¦  «                             d¦  «        }|dz   }|dz                        d¬¦  «        }|dz   d d d…         }|dz   dd d d…f         }|||||fS rð  rô  rõ  s         r   rö  zTestNpStack._3d_arraysk  r÷  r   c              #   óÆ   K  — |                       t          ¦  «        5 }d V — d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nz)all input arrays must have the same shaperù  )rC   râ   s     r   Úassert_invalid_sizesz TestNpStack.assert_invalid_sizess  s¦   è è € à×Ò�zÑ*Ô*ð 	¨fØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐAÝ˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-rû  c                 óÎ   —  ||Ž } ||Ž }|                       |j        |j        ¦  «         |                      |                     ¦   «         |                     ¦   «         ¦  «         d S r   )r<   rc   r�  Úflatten)rC   rD   rG   rH   rI   rž   s         r   Úcheck_stackzTestNpStack.check_stackz  sd   € Ø�6˜4�=ˆØˆe�Tˆlˆð
 	×Ò˜œ H¤NÑ3Ô3Ð3Ø×Ò §¢¡¤¨x×/?Ò/?Ñ/AÔ/AÑBÔBÐBÐBÐBr   c                 óÆ  ‡ ‡‡‡‡
— ˆˆˆ fd„Š
ˆ
ˆfd„}‰                       ¦   «         \  }}}}}	 ||||¦  «          ||||¦  «          ||j        |j        |j        ¦  «          ||j        |j        |j        ¦  «          ||j        |j        |j        ¦  «          ||j        |	j        |j        ¦  «          |||                     t          j        ¦  «        |¦  «         d S )Nc                 óB   •— ‰                      ‰‰| ||f|z   ¦  «         d S r   )r  )r   r   r   rH   rG   rD   rC   s       €€€r   r  z#TestNpStack.check_3d.<locals>.check…  s,   ø€ Ø×Ò˜V U¨Q°°1¨I¸Ñ,<Ñ=Ô=Ð=Ð=Ð=r   c                 ó>   •—  ‰¦   «         D ]} ‰| |||¦  «         Œd S r   rO   )r   r   r   rH   r  Úgenerate_starargss       €€r   r  z,TestNpStack.check_3d.<locals>.check_all_axesˆ  s>   ø€ Ø)Ð)Ñ+Ô+ð %ð %�Ø��a˜˜A˜tÑ$Ô$Ð$Ð$ð%ð %r   )rö  r  rÎ  r   rd   )rC   rD   rG   r  r  r   r   r   ry  r  r  s   ````      @r   Úcheck_3dzTestNpStack.check_3d„  s  øøøøø€ ð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ð ŸšÑ)Ô)‰ˆˆ1ˆa��Að 	ˆ�q˜!˜QÑÔÐàˆ�q˜!˜QÑÔÐàˆ�q”s˜AœC ¤Ñ%Ô%Ð%àˆ�q”s˜AœC ¤Ñ%Ô%Ð%àˆ�q”s˜AœC ¤Ñ%Ô%Ð%àˆ�q”s˜AœC ¤Ñ%Ô%Ð%ð 	ˆ�q˜!Ÿ(š(¥2¤:Ñ.Ô.°Ñ2Ô2Ð2Ð2Ð2r   c                 ó8  — |                       ¦   «          |                      ¦   «          |                      ¦   «         \  }}}}}|                      ¦   «         5  t	           |¦   «         ¦  «        } ||d d…         ||g|¢R Ž  d d d ¦  «         d S # 1 swxY w Y   d S )Nr	  )Úassert_no_memory_leakrÚ   rö  r  Únext)	rC   rG   r  r   r   r   ry  r  rH   s	            r   Úcheck_runtime_errorsz TestNpStack.check_runtime_errorsž  sò   € à×"Ò"Ñ$Ô$Ð$Ø×ÒÑ!Ô!Ð!ð ŸšÑ)Ô)‰ˆˆ1ˆa��AØ×&Ò&Ñ(Ô(ð 	'ð 	'ÝÐ)Ð)Ñ+Ô+Ñ,Ô,ˆDØˆE�!�C�R�C”&˜!˜QÐ& Ð&Ð&Ð&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   Á+BÂBÂBc                 ó’   — t           }t          |¦  «        }d„ }|                      |||¦  «         |                      ||¦  «         dS )z(
        stack(3d arrays, axis)
        c               3   óH   K  — t          d¦  «        D ]} | fV — d| z   fV — Œd S )Nrm   rþ  ræ   r   s    r   r  z.TestNpStack.test_3d.<locals>.generate_starargs°  sE   è è € Ý˜a™œð #ð #�Ø�g���Ø˜D‘y�lÐ"Ð"Ð"Ð"ð#ð #r   N)r'   r;   r  r  ©rC   rD   rG   r  s       r   r  zTestNpStack.test_3d©  sY   € õ ˆÝ�v‘”ˆð	#ð 	#ð 	#ð
 	�Š�f˜eÐ%6Ñ7Ô7Ð7Ø×!Ò! %Ð):Ñ;Ô;Ð;Ð;Ð;r   c                 ó’   — t           }t          |¦  «        }d„ }|                      |||¦  «         |                      ||¦  «         dS )z"
        stack(3d arrays)
        c               3   ó   K  — dV — d S r#  rO   rO   r   r   r  z6TestNpStack.test_3d_no_axis.<locals>.generate_starargs¿  ó   è è € ØˆGˆGˆGˆGˆGr   N)r%   r;   r  r  r!  s       r   r  zTestNpStack.test_3d_no_axis¸  sY   € õ ˆÝ�v‘”ˆð	ð 	ð 	ð 	�Š�f˜eÐ%6Ñ7Ô7Ð7Ø×!Ò! %Ð):Ñ;Ô;Ð;Ð;Ð;r   c                 óÞ   — t           }t          |¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }|                      |||||f¦  «         dS )z"
        stack(0d arrays)
        r\   ù       €      ÀTN)r%   r;   r   re  r  ©rC   rD   rG   r   r   r   s         r   r&  zTestNpStack.test_0dÅ  s_   € õ ˆÝ�v‘”ˆåŒH�R‰LŒLˆÝŒH�S‰MŒMˆÝŒH�T‰NŒNˆà×Ò˜ ¨¨A¨q¨	Ñ2Ô2Ð2Ð2Ð2r   c                 óæ   — d„ }|                       |||¦  «         t          j        d¦  «        }t          j        d¦  «        }t          j        d¦  «        }|                      |||||f¦  «         dS )zC
        3d and 0d tests for hstack(), vstack(), dstack().
        c               3   ó   K  — dV — d S r#  rO   rO   r   r   r  z4TestNpStack.check_xxstack.<locals>.generate_starargsÖ  r$  r   r\   r&  TN)r  r   re  r  )rC   rD   rG   r  r   r   r   s          r   Úcheck_xxstackzTestNpStack.check_xxstackÒ  su   € ð	ð 	ð 	ð 	�Š�f˜eÐ%6Ñ7Ô7Ð7åŒH�R‰LŒLˆÝŒH�S‰MŒMˆÝŒH�T‰NŒNˆØ×Ò˜ ¨¨A¨q¨	Ñ2Ô2Ð2Ð2Ð2r   c                 ó¾  — t           }t          |¦  «        }|                      ||¦  «         t          j        d¦  «        }t          j        d¦  «        dz   }|                      |||||f¦  «         t          j        d¦  «                             d¦  «        }t          j        d¦  «                             d¦  «        dz   }|                      |||||f¦  «         d S )Nr§   rÊ  r¦   r  rÙ   )r€   rw   r¶   )r*   r;   r*  r   rn   r  r«   ©rC   rD   rG   r   r   s        r   Útest_hstackzTestNpStack.test_hstackà  sÄ   € ÝˆÝ�v‘”ˆà×Ò˜6 5Ñ)Ô)Ð)åŒI�a‰LŒLˆÝŒI�a‰LŒL˜2ÑˆØ×Ò˜ ¨¨A¨q¨	Ñ2Ô2Ð2åŒI�a‰LŒL× Ò  Ñ(Ô(ˆÝŒI�a‰LŒL× Ò  Ñ(Ô(¨3Ñ.ˆØ×Ò˜ ¨¨A¨q¨	Ñ2Ô2Ð2Ð2Ð2r   c                 óð  — t           g}t          dk     r|                     t          ¦  «         |D ]Å}t	          |¦  «        }|                      ||¦  «         t          j        d¦  «        }|dz   }|                      |||||f¦  «         t          j        d¦  «         	                    d¦  «        }t          j        d¦  «         	                    d¦  «        dz   }|                      |||||f¦  «         ŒÆd S )	N)r€   r§   r§   r¦   rÊ  rG  rÙ   )rw   r€   r¶   )
r.   r   rÁ   r1   r;   r*  r   rn   r  r«   )rC   Ú	functionsrD   rG   r   r   s         r   Útest_vstackzTestNpStack.test_vstackî  sô   € õ �Kˆ	Ý˜6Ò!Ð!à×Ò�\Ñ*Ô*Ð*Øð 	7ð 	7ˆFÝ˜6‘N”NˆEà×Ò˜v uÑ-Ô-Ð-å”	˜!‘”ˆAØ�B‘ˆAØ×Ò˜V U¨Q°°1¨IÑ6Ô6Ð6å”	˜!‘”×$Ò$ VÑ,Ô,ˆAÝ”	˜!‘”×$Ò$ VÑ,Ô,¨sÑ2ˆAØ×Ò˜V U¨Q°°1¨IÑ6Ô6Ð6Ð6ð	7ð 	7r   c                 óP  — t           }t          |¦  «        }|                      ||¦  «         t          j        d¦  «        }|dz   }|                      |||||f¦  «         t          j        d¦  «                             d¦  «        }|dz   }|                      |||||f¦  «         d S )Nr§   r¦   rø   rÓ  r¶   )r4   r;   r*  r   rn   r  r«   r,  s        r   Útest_dstackzTestNpStack.test_dstack  s¤   € ÝˆÝ�v‘”ˆà×Ò˜6 5Ñ)Ô)Ð)åŒI�a‰LŒLˆØ�‰FˆØ×Ò˜ ¨¨A¨q¨	Ñ2Ô2Ð2åŒI�b‰MŒM×!Ò! &Ñ)Ô)ˆØ�‰GˆØ×Ò˜ ¨¨A¨q¨	Ñ2Ô2Ð2Ð2Ð2r   c                 ór  — t           }t          |¦  «        }t          j        d¦  «        }|dz   }t          j        d¦  «                             d¦  «        }|                      |||||f¦  «         |                      ¦   «          |                      ¦   «          t          j        d¦  «        }|  	                    ¦   «         5   ||||f¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «        }|  	                    ¦   «         5   ||||f¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrw   r¦   rø   ©rw   rm   r\   )ra   ra   ra   )
r7   r;   r   rn   r«   r  r  rÚ   re  r  r'  s         r   Útest_column_stackzTestNpStack.test_column_stack  s°  € Ý ˆÝ�v‘”ˆåŒI�a‰LŒLˆØ�‰FˆÝŒI�b‰MŒM×!Ò! &Ñ)Ô)ˆØ×Ò˜ ¨¨A¨q¨	Ñ2Ô2Ð2ð 	×"Ò"Ñ$Ô$Ð$Ø×ÒÑ!Ô!Ð!õ ŒH�R‰LŒLˆØ×#Ò#Ñ%Ô%ð 	ð 	ØˆE�1�a˜�)ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�IŠI�iÑ Ô ˆØ×#Ò#Ñ%Ô%ð 	ð 	ØˆE�1�a˜�)ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s$   ÃCÃC Ã#C ÄD,Ä,D0Ä3D0c                 óz  — t           t          t          t          t          fD ]™}t          |¦  «        }t          j        d¦  «                             d¦  «        }|  	                    ¦   «         5 } ||d|¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    dt          |j        ¦  «        ¦  «         Œšd S )Nrø   r4  ra   r
  )r%   r*   r.   r4   r7   r;   r   rn   r«   r  rß   rà   rá   )rC   rD   rG   r   râ   s        r   Útest_bad_arrayszTestNpStack.test_bad_arrays&  sê   € Ý ¥)­Y½	Å?ÐSð 	Zð 	ZˆFÝ˜6‘N”NˆEÝ”	˜"‘”×%Ò% fÑ-Ô-ˆAð ×'Ò'Ñ)Ô)ð ¨VØ��a˜˜A‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�MŠMÐAÅ3ÀvÔGWÑCXÔCXÑYÔYÐYÐYð	Zð 	Zs   Á-BÂB	ÂB	N)rL   rM   rN   r  rö  rß  rà  r  r  r  r  r  r  r&  r*  r-  r0  r2  r5  r7  rO   r   r   r  r  e  s  € € € € € ðð ðð ð ð Ôð-ð -ñ Ôð-ðCð Cð Cð3ð 3ð 3ð4	'ð 	'ð 	'ð<ð <ð <ð<ð <ð <ð3ð 3ð 3ð3ð 3ð 3ð3ð 3ð 3ð7ð 7ð 7ð*3ð 3ð 3ðð ð ð*Zð Zð Zð Zð Zr   r  c                  ó`  ‡‡‡‡‡— d„ Št          ‰¦  «        Št          j                             d¦  «        Št          j                             d¦  «        ŠdŠˆˆˆˆfd„} ˆˆˆˆfd„}t          j        | ¦  «        }t          j        |¦  «        }t          |¦  «         t          |¦  «         d S )Nc                 ó6   — t          |¦  «        D ]}|| }} Œ| |fS )z1Swap array x and y for t number of times
        ræ   rç   s       r   rD   z%benchmark_refct_speed.<locals>.pyfunc2  s-   € õ �q‘”ð 	ð 	ˆAØ�aˆqˆAˆAØ�!ˆtˆr   r¶   i'  c                  ó"   •—  ‰ ‰‰‰¦  «         d S r   rO   )rD   rè   rØ   rŠ   s   €€€€r   Úbench_pyfuncz+benchmark_refct_speed.<locals>.bench_pyfunc?  s   ø€ Øˆˆq�!�Q‰Œˆˆˆr   c                  ó"   •—  ‰ ‰‰‰¦  «         d S r   rO   )rG   rè   rØ   rŠ   s   €€€€r   Úbench_cfuncz*benchmark_refct_speed.<locals>.bench_cfuncB  s   ø€ Øˆˆa��A‰Œˆˆˆr   )r;   r   rª   r   Ú	benchmarkÚprint)	r;  r=  Úpython_timeÚ
numba_timerG   rD   rè   rØ   rŠ   s	       @@@@@r   Úbenchmark_refct_speedrB  1  sä   øøøøø€ ðð ð õ �6‰NŒN€Eå
Œ	×Ò˜ÑÔ€AÝ
Œ	×Ò˜ÑÔ€AØ€Aðð ð ð ð ð ð ð ðð ð ð ð ð ð ð õ ”/ ,Ñ/Ô/€KÝ” Ñ-Ô-€JÝ	ˆ+ÑÔÐÝ	ˆ*ÑÔÐÐÐr   Ú__main__)>rß  rŽ   Únumpyr   rª   Úrer¾   r�   Únumba.core.errorsr   Únumbar   Ú
numba.corer   r   r   Únumba.tests.supportr   r	   r
   r   Únumba.core.utilsr   Únumba.np.numpy_supportr   r„  r;   r   r!   r%   r'   r*   r.   r1   r4   r7   r9   rQ   rY   r  r  r�  r‡  ÚobjectrÁ  rÔ  rý  r  r  r(  r9  r\  r‹  r¡  r¸  rî  Ú
skipUnlessÚhasattrr  rB  rL   ÚmainrO   r   r   ú<module>rP     sÞ  ðØ Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 	€	€	€	à )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ &Ð &Ð &Ð &Ð &Ð &Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø €€€ð 
ˆ�4˜tÐ	$Ñ	$Ô	$€ð%ð %ð %ð0ð 0ð 0ðð ð ð*ð *ð *ð ð  ð  ð ð  ð  ð#ð #ð #ð ð  ð  ð&ð &ð &ð:ð :ð :ð :ð :ˆxñ :ô :ð :ð 4ð 4ð 4ð 4ð 4�?ñ 4ô 4ð 4ð
W:ð W:ð W:ð W:ð W:�< ñ W:ô W:ð W:ðtD
ð D
ð D
ð D
ð D
˜,ñ D
ô D
ð D
ðNNGð NGð NGð NGð NGÐ% xñ NGô NGð NGðb5ð 5ð 5ð 5ð 5�ñ 5ô 5ð 5ðnAð nAð nAð nAð nAÐ$ hñ nAô nAð nAðb+ð +ð +ð +ð +˜fñ +ô +ð +ð\YIð YIð YIð YIð YIÐ-¨xñ YIô YIð YIðxBð Bð Bð Bð B�oñ Bô Bð Bð Að Að Að Að A�_ñ Aô Að Að$DIð DIð DIð DIð DIÐ,¨hñ DIô DIð DIðN#ð #ð #ð #ð #�Xñ #ô #ð #ðB)#ð )#ð )#ð )#ð )#�ñ )#ô )#ð )#ðXFð Fð Fð Fð F�ñ Fô Fð FðPDð Dð Dð Dð D�8ñ Dô Dð Dð8-ð -ð -ð -ð -˜(ñ -ô -ð -ð`Oð Oð Oð Oð O�/ 8ñ Oô Oð OðdHVð HVð HVð HVð HV˜¨ñ HVô HVð HVðV €Ô�W�W˜R Ñ)Ô)Ð+OÑPÔPðHZð HZð HZð HZð HZ�/ 8ñ HZô HZñ QÔPðHZðVð ð ð4 ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   