Ë
    èÿæiïÙ  ã                   ó  — 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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«      Z. G d*„ d+e"«      Z/ G d,„ d-e"«      Z0 G d.„ d/e«      Z1 G d0„ d1e"«      Z2 G d2„ d3e«      Z3 G d4„ d5ee"«      Z4 G d6„ d7ee«      Z5 ejl                   e7ed8«      d9«       G d:„ d;ee«      «       Z8d<„ Z9e:d=k(  r ejv                  «        yy)>é    N)ÚTypingError)Únjit)ÚtypesÚutilsÚconfig)ÚMemoryLeakMixinÚTestCaseÚtagÚskip_if_32bit)Ú	PYVERSIONT)Ú_nrtÚnogilc                 ó2   — t        j                  | ||f«      S ©N©ÚnpÚconcatenate©ÚaÚbÚcs      úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_dyn_array.pyÚnp_concatenate1r      s   € Ü�>‰>˜1˜a ˜)Ó$Ð$ó    c                 ó6   — t        j                  | ||f|¬«      S ©N©Úaxisr   ©r   r   r   r   s       r   Únp_concatenate2r       s   € Ü�>‰>˜1˜a ˜)¨$Ô/Ð/r   c                 ó2   — t        j                  | ||f«      S r   ©r   Ústackr   s      r   Ú	np_stack1r$      s   € Ü�8‰8�Q˜˜1�IÓÐr   c                 ó6   — t        j                  | ||f|¬«      S r   r"   r   s       r   Ú	np_stack2r&      s   € Ü�8‰8�Q˜˜1�I DÔ)Ð)r   c                 ó2   — t        j                  | ||f«      S r   )r   Úhstackr   s      r   Ú	np_hstackr)       ó   € Ü�9‰9�a˜˜A�YÓÐr   c                 ó2   — t        j                  | ||f«      S r   )r   Úvstackr   s      r   Ú	np_vstackr-   #   r*   r   c                 ó2   — t        j                  | ||f«      S r   )r   Ú	row_stackr   s      r   Únp_row_stackr0   &   s   € Ü�<‰<˜˜A˜q˜	Ó"Ð"r   c                 ó2   — t        j                  | ||f«      S r   )r   Údstackr   s      r   Ú	np_dstackr3   )   r*   r   c                 ó2   — t        j                  | ||f«      S r   )r   Úcolumn_stackr   s      r   Únp_column_stackr6   ,   s   € Ü�?‰?˜A˜q !˜9Ó%Ð%r   c                   ó   — e Zd Zdd„Zy)ÚBaseTestc                 ó~  — t        |«      }|D ]­  } ||Ž } ||Ž }| j                  |j                  |j                  «       | j                  |j                  |j                  «       | j	                  ||«       |r!t
        j                  j                  ||«       ŒŽt
        j                  j                  ||«       Œ¯ y r   )	ÚnrtjitÚassertEqualÚsizeÚdtypeÚassertStridesEqualr   ÚtestingÚassert_equalÚassert_allclose)ÚselfÚpyfuncÚargslistÚexactÚcfuncÚargsÚexpectedÚrets           r   Úcheck_outputszBaseTest.check_outputs2   s’   € Ü�v“ˆÛˆDÙ˜t�}ˆHÙ˜�,ˆCØ×Ñ˜SŸX™X x§}¡}Ô5Ø×Ñ˜SŸY™Y¨¯©Ô7Ø×#Ñ# C¨Ô2ÙÜ—
‘
×'Ñ'¨°#Õ6ä—
‘
×*Ñ*¨8°SÕ9ñ r   N)T)Ú__name__Ú
__module__Ú__qualname__rJ   © r   r   r8   r8   0   s   „ ô:r   r8   c                   ó   — e Zd Zd„ Zy)ÚNrtRefCtTestc                 óP   — | j                  |j                  j                  |«       y r   )r;   ÚbaseÚrefcount)rB   ÚarrÚexpects      r   Úassert_array_nrt_refctz#NrtRefCtTest.assert_array_nrt_refctA   s   € Ø×Ñ˜Ÿ™×*Ñ*¨FÕ3r   N)rK   rL   rM   rV   rN   r   r   rP   rP   @   s   „ ó4r   rP   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y)ÚTestDynArrayc                 ó  — t         d„ «       } |«       }| j                  |d«       t        j                  j	                  d|«       | j                  |j                  d«       | j                  |j                  d«       | j                  |j                  t        j                  t        j                  «      «       | j                  |j                  d«       |j                  d«       t        j                  j	                  d|«       ~y )Nc                  ó:   — t        j                  d«      } d| d<   | S )NrN   é*   ©r   Úempty©rT   s    r   Úfooz'TestDynArray.test_empty_0d.<locals>.fooH   s   € ä—(‘(˜2“,ˆCØˆC�‰GØˆJr   é   r[   rN   é{   )r:   rV   r   r?   r@   r;   r<   Úshaper=   Úfloat64ÚstridesÚfill)rB   r_   rT   s      r   Útest_empty_0dzTestDynArray.test_empty_0dG   sÀ   € Ü	ñ	ó 
ð	ñ
 ‹eˆØ×#Ñ# C¨Ô+Ü
�
‰
×Ñ  CÔ(Ø×Ñ˜Ÿ™ 1Ô%Ø×Ñ˜Ÿ™ BÔ'Ø×Ñ˜Ÿ™¤B§H¡H¬R¯Z©ZÓ$8Ô9Ø×Ñ˜Ÿ™ bÔ)Ø�‰�ŒÜ
�
‰
×Ñ  SÔ)Ùr   c                 óš  — t         d„ «       }d} ||«      }| j                  |d«       t        j                  j	                  t        j
                  |«      |«       | j                  |j                  |«       | j                  |j                  |f«       | j                  |j                  t        j                  t        j                  «      «       | j                  |j                  t        j                  t        j                  «      j                  f«       |j                  d«       t        j                  j	                  d|«       ~y )Nc                 óZ   — t        j                  | «      }t        | «      D ]  }|||<   Œ	 |S r   )r   r]   Úrange)ÚnrT   Úis      r   r_   z'TestDynArray.test_empty_1d.<locals>.fooZ   s-   € ä—(‘(˜1“+ˆCÜ˜1–X�Ø��A’ð ð ˆJr   é   r`   ra   )r:   rV   r   r?   r@   Úaranger;   r<   rb   r=   rc   rd   Úitemsizere   )rB   r_   rj   rT   s       r   Útest_empty_1dzTestDynArray.test_empty_1dY   sç   € Ü	ñ	ó 
ð	ð ˆÙ�!‹fˆØ×#Ñ# C¨Ô+Ü
�
‰
×Ñ¤§	¡	¨!£¨cÔ2Ø×Ñ˜Ÿ™ 1Ô%Ø×Ñ˜Ÿ™ Q DÔ)Ø×Ñ˜Ÿ™¤B§H¡H¬R¯Z©ZÓ$8Ô9Ø×Ñ˜Ÿ™¤r§x¡x´·
±
Ó';×'DÑ'DÐ&FÔGØ�‰�ŒÜ
�
‰
×Ñ  SÔ)Ùr   c                 ó–  — d„ }t        |«      }d}d} |||«      } |||«      }| j                  |d«       t        j                  j	                  ||«       | j                  |j                  |j                  «       | j                  |j                  |j                  «       | j                  |j                  |j                  «       ~y )Nc                 ó¦   — t        j                  | |ft         j                  «      }t        | «      D ]  }t        |«      D ]  }||z   |||f<   Œ Œ |S r   ©r   r]   Úint32ri   )Úmrj   rT   rk   Újs        r   rC   z*TestDynArray.test_empty_2d.<locals>.pyfunco   sN   € Ü—(‘(˜A˜q˜6¤2§8¡8Ó,ˆCÜ˜1–X�Ü˜qž�AØ ! A¡�C˜˜1˜’Iñ "ð ð ˆJr   é   rl   r`   ©	r:   rV   r   r?   r@   r;   r<   rb   rd   )rB   rC   rF   rt   rj   Úexpected_arrÚgot_arrs          r   Útest_empty_2dzTestDynArray.test_empty_2dn   s§   € ò	ô �v“ˆØˆØˆÙ˜a “|ˆÙ˜˜1“+ˆØ×#Ñ# G¨QÔ/Ü
�
‰
×Ñ ¨gÔ6à×Ñ˜×*Ñ*¨G¯L©LÔ9Ø×Ñ˜×+Ñ+¨W¯]©]Ô;Ø×Ñ˜×-Ñ-¨w¯©Ô?ár   c                 óž  — d„ }t        |«      }d}d}d} ||||«      } ||||«      }| j                  |d«       t        j                  j	                  ||«       | j                  |j                  |j                  «       | j                  |j                  |j                  «       | j                  |j                  |j                  «       ~y )Nc                 óÐ   — t        j                  | ||ft         j                  «      }t        | «      D ]0  }t        |«      D ]   }t        |«      D ]  }||z   |z   ||||f<   Œ Œ" Œ2 |S r   rr   )rt   rj   ÚprT   rk   ru   Úks          r   rC   z*TestDynArray.test_empty_3d.<locals>.pyfunc†   sd   € Ü—(‘(˜A˜q !˜9¤b§h¡hÓ/ˆCÜ˜1–X�Ü˜qž�AÜ" 1žX˜Ø'(¨1¡u¨q¡y˜˜A˜q !˜Gšñ &ñ "ð ð
 ˆJr   rv   rl   é   r`   rw   ©rB   rC   rF   rt   rj   r}   rx   ry   s           r   Útest_empty_3dzTestDynArray.test_empty_3d…   s°   € ò	ô �v“ˆØˆØˆØˆÙ˜a  A“ˆÙ˜˜1˜a“.ˆØ×#Ñ# G¨QÔ/Ü
�
‰
×Ñ ¨gÔ6à×Ñ˜×*Ñ*¨G¯L©LÔ9Ø×Ñ˜×+Ñ+¨W¯]©]Ô;Ø×Ñ˜×-Ñ-¨w¯©Ô?ár   c                 óž  — d„ }t        |«      }d}d}d} ||||«      } ||||«      }| j                  |d«       t        j                  j	                  ||«       | j                  |j                  |j                  «       | j                  |j                  |j                  «       | j                  |j                  |j                  «       ~y )Nc                 ó¬   — t        j                  | |ft         j                  «      }t        | «      D ]  }t        |«      D ]  }||z   |||f<   Œ Œ ||   S r   rr   )rt   rj   r}   rT   rk   ru   s         r   rC   z1TestDynArray.test_empty_2d_sliced.<locals>.pyfuncŸ   sR   € Ü—(‘(˜A˜q˜6¤2§8¡8Ó,ˆCÜ˜1–X�Ü˜qž�AØ ! A¡�C˜˜1˜’Iñ "ð ð �q‘6ˆMr   rv   rl   r   r`   rw   r€   s           r   Útest_empty_2d_slicedz!TestDynArray.test_empty_2d_slicedž   s°   € ò	ô �v“ˆØˆØˆØˆÙ˜a  A“ˆÙ˜˜1˜a“.ˆØ×#Ñ# G¨QÔ/Ü
�
‰
×Ñ ¨gÔ6à×Ñ˜×*Ñ*¨G¯L©LÔ9Ø×Ñ˜×+Ñ+¨W¯]©]Ô;Ø×Ñ˜×-Ñ-¨w¯©Ô?ár   c                 ó2  ‡— t        j                  dt         j                  ¬«      Št        j                  ‰«      }ˆfd„}t        |«      } |«       }| j                  |dz   t        j                  ‰«      «       t         j                  j                  ‰|«       t         j                  j                  ‰t        j                  dt         j                  ¬«      «       t         j                  j                  |t        j                  dt         j                  ¬«      «       ~t        j                  «        | j                  |dz   t        j                  ‰«      «       ~t        j                  «        | j                  |t        j                  ‰«      «       y )Nrv   ©r=   c                  ó   •— ‰ S r   rN   ©Úys   €r   Úreturn_external_arrayzDTestDynArray.test_return_global_array.<locals>.return_external_arrayº   s   ø€ ØˆHr   r`   )r   ÚonesÚfloat32ÚsysÚgetrefcountr:   r;   r?   r@   ÚgcÚcollect)rB   Ú	initrefctrŠ   rF   Úoutr‰   s        @r   Útest_return_global_arrayz%TestDynArray.test_return_global_array¶   s  ø€ Ü�G‰G�AœRŸZ™ZÔ(ˆÜ—O‘O AÓ&ˆ	ô	ô Ð,Ó-ˆÙ‹gˆð 	×Ñ˜ Q™¬¯©¸Ó(:Ô;ä
�
‰
×Ñ  3Ô'Ü
�
‰
×Ñ ¤2§7¡7¨1´B·J±JÔ#?Ô@Ü
�
‰
×Ñ ¤R§W¡W¨Q´b·j±jÔ%AÔBàÜ
�
‰
Œà×Ñ˜ Q™¬¯©¸Ó(:Ô;àÜ
�
‰
Œà×Ñ˜¤C§O¡O°AÓ$6Õ7r   c                 ó
  ‡— t        j                  dt         j                  ¬«      Šˆfd„}t        |«      } |«       }| j	                  |j
                  «       ‰dd  }t         j                  j                  ||«       t         j                  j                  |t        j                  dt         j                  ¬«      «       t         j                  j                  |t        j                  dt         j                  ¬«      «       y )Nrv   r†   c                  ó   •— ‰ dd  S ©Nr   rN   rˆ   s   €r   rŠ   zKTestDynArray.test_return_global_array_sliced.<locals>.return_external_arrayÔ   s   ø€ Ø�Q�R�5ˆLr   r   )r   r‹   rŒ   r:   ÚassertIsNonerR   r?   r@   )rB   rŠ   rF   r’   Úyyr‰   s        @r   Útest_return_global_array_slicedz,TestDynArray.test_return_global_array_slicedÑ   s§   ø€ Ü�G‰G�AœRŸZ™ZÔ(ˆô	ô Ð,Ó-ˆÙ‹gˆØ×Ñ˜#Ÿ(™(Ô#àˆqˆrˆUˆÜ
�
‰
×Ñ  CÔ(Ü
�
‰
×Ñ ¤B§G¡G¨A´R·Z±ZÔ$@ÔAÜ
�
‰
×Ñ ¤R§W¡W¨Q´b·j±jÔ%AÕBr   c                 óR  — d„ }t        j                  dt         j                  ¬«      }t        |«      } ||«      } ||«      }t         j                  j                  ||«       t         j                  j                  ||«       | j                  ||«       | j                  ||«       y )Nc                 ó   — | S r   rN   rˆ   s    r   rC   z4TestDynArray.test_array_pass_through.<locals>.pyfuncá   s   € ØˆHr   rv   r†   )r   r‹   rŒ   r:   r?   r@   ÚassertIs)rB   rC   rT   rF   rH   Úgots         r   Útest_array_pass_throughz$TestDynArray.test_array_pass_throughà   s|   € ò	ô �g‰g�aœrŸz™zÔ*ˆä�v“ˆÙ˜“:ˆÙ�S‹kˆä
�
‰
×Ñ ¨#Ô.Ü
�
‰
×Ñ ¨#Ô.Ø�‰�h Ô$Ø�‰�h Õ$r   c                 ó’  — d„ }t        j                  dt         j                  ¬«      }t        j                  |«      }t        |«      } ||«      }| j                  |dz   t        j                  |«      «        ||«      }| j                  |dz   t        j                  |«      «       t         j                  j                  |||j                  dz     «       t         j                  j                  ||«       ~| j                  |dz   t        j                  |«      «       ~| j                  |t        j                  |«      «       y )Nc                 ó&   — | | j                   dz  d  S r–   )r<   rˆ   s    r   rC   z;TestDynArray.test_array_pass_through_sliced.<locals>.pyfuncð   s   € Ø�Q—V‘V˜q‘[�\�?Ð"r   rv   r†   r`   r   )
r   r‹   rŒ   r�   rŽ   r:   r;   r?   r@   r<   )rB   rC   rT   r‘   rF   r�   rH   s          r   Útest_array_pass_through_slicedz+TestDynArray.test_array_pass_through_slicedï   sñ   € ò	#ô �g‰g�aœrŸz™zÔ*ˆä—O‘O CÓ(ˆ	ä�v“ˆÙ�C‹jˆØ×Ñ˜ Q™¬¯©¸Ó(<Ô=Ù˜#“;ˆØ×Ñ˜ Q™¬¯©¸Ó(<Ô=ä
�
‰
×Ñ ¨#¨c¯h©h¸!©mÑ*<Ô=Ü
�
‰
×Ñ ¨#Ô.àØ×Ñ˜ Q™¬¯©¸Ó(<Ô=ØØ×Ñ˜¤C§O¡O°CÓ$8Õ9r   c                 óÂ  — d„ }t        |«      }t        j                  j                  d«      }t        j                  j                  d«      }t        j                  j	                   |||«       |||«      «       | j                   |||«      d«       t        j                  j                  d«      j                  dd«      }t        j                  j                  d«      j                  dd«      }t        j                  j	                   |||«       |||«      «       | j                   |||«      d«       t        j                  j                  d«      j                  ddd«      }t        j                  j                  d«      j                  ddd«      }t        j                  j	                   |||«       |||«      «       | j                   |||«      d«       y )Nc                 ór   — t        j                  | j                  «      }t        j                  | ||«       |S r   )r   r]   rb   Úadd)r   r   r’   s      r   rC   z=TestDynArray.test_ufunc_with_allocated_output.<locals>.pyfunc  s)   € Ü—(‘(˜1Ÿ7™7Ó#ˆCÜ�F‰F�1�a˜ÔØˆJr   é
   r`   r   é   éF   é   )r:   r   Úrandomr?   r@   rV   Úreshape)rB   rC   rF   Úarr_aÚarr_bs        r   Ú test_ufunc_with_allocated_outputz-TestDynArray.test_ufunc_with_allocated_output  s‚  € ò	ô
 �v“ˆô —	‘	× Ñ  Ó$ˆÜ—	‘	× Ñ  Ó$ˆä
�
‰
×Ñ¡ u¨eÓ 4Ù % e¨UÓ 3ô	5ð 	×#Ñ#¡E¨%°Ó$7¸Ô;ô —	‘	× Ñ  Ó$×,Ñ,¨Q°Ó2ˆÜ—	‘	× Ñ  Ó$×,Ñ,¨Q°Ó2ˆä
�
‰
×Ñ¡ u¨eÓ 4Ù % e¨UÓ 3ô	5ð 	×#Ñ#¡E¨%°Ó$7¸Ô;ô —	‘	× Ñ  Ó$×,Ñ,¨Q°°1Ó5ˆÜ—	‘	× Ñ  Ó$×,Ñ,¨Q°°1Ó5ˆä
�
‰
×Ñ¡ u¨eÓ 4Ù % e¨UÓ 3ô	5ð 	×#Ñ#¡E¨%°Ó$7¸Õ;r   c                 óJ  ‡— d„ }t        |«      Šd}t        j                  j                  dd|«      }|j	                  «       }t        j
                  j                   ||«       ‰|«      «       t        j
                  j                  ||«       g }g }g }ˆfd„}t        d«      D ]”  }	t        j                  j                  dd|«      }t        j                  |«      }
t        j                  |||
fdj                  |	«      ¬«      }|j                  |«       |j                  |«       |j                  |
«       Œ– |D ]  }|j                  «        Œ |D ]  }|j                  «        Œ t        ||«      D ]+  \  }}
t        j
                  j                   ||«      |
«       Œ- y)	z�
        This test exercises the array allocation in multithreaded usecase.
        This stress the freelist inside NRT.
        c                 ó„  — t        j                  | j                  «      }t        |j                  «      D ]  }d||<   Œ	 t        | d   «      D ]p  }t        j                  | j                  «      }t        |j                  «      D ]
  }| |   ||<   Œ t        |j                  «      D ]  }||xx   ||   |z   z  cc<   Œ Œr |S )Nr   ©r   r]   r<   ri   )Úinpr’   rk   Útmpru   s        r   rC   z/TestDynArray.test_allocation_mt.<locals>.pyfunc/  s§   € Ü—(‘(˜3Ÿ8™8Ó$ˆCô ˜3Ÿ8™8–_�Ø��A’ð %ô ˜3˜q™6–]�ä—h‘h˜sŸx™xÓ(�ä˜sŸx™xž�AØ  ™V�C˜’Fð )ô ˜sŸx™xž�AØ˜“F˜c !™f q™jÑ(”Fñ )ð #ð ˆJr   r¥   r`   c                 ó   •—  ‰| «      |d d  y r   rN   )r±   r’   rF   s     €r   Úwrappedz0TestDynArray.test_allocation_mt.<locals>.wrappedP  s   ø€ Ù˜3“ZˆC‘‰Fr   éd   ú	worker{0}©ÚtargetrG   ÚnameN)r:   r   r©   ÚrandintÚcopyr?   r@   ri   Ú
empty_likeÚ	threadingÚThreadÚformatÚappendÚstartÚjoinÚzip)rB   rC   r<   rT   Ú
frozen_arrÚworkersÚinputsÚoutputsr´   rk   r’   Úthreadr±   rF   s                @r   Útest_allocation_mtzTestDynArray.test_allocation_mt)  s\  ø€ ò	ô& �v“ˆØˆÜ�i‰i×Ñ  2 tÓ,ˆØ—X‘X“Zˆ
ä
�
‰
×Ñ¡ s£©U°3«ZÔ8ä
�
‰
×Ñ 
¨CÔ0àˆØˆØˆô	 ô �s–ˆAÜ—)‘)×#Ñ# A r¨4Ó0ˆCÜ—-‘- Ó$ˆCÜ×%Ñ%¨WØ,/°¨:Ø+6×+=Ñ+=¸aÓ+@ôBˆFð �N‰N˜6Ô"Ø�M‰M˜#ÔØ�N‰N˜3Õð ó ˆFØ�L‰L�Nð ó ˆFØ�K‰K�Mð ô ˜F GÖ,‰HˆC�Ü�J‰J×#Ñ#¡F¨3£K°Õ5ñ -r   c                 óÀ  ‡— d„ }t        |«      Šd}t        j                  |t        ¬«      }t	        j
                  |«      }t        j                  d«      } |||«      }t        j                  j                  | ‰||«      «       ~| j                  |t	        j
                  |«      «       g }g }g }	ˆfd„}
t        d«      D ]‰  }t        j                  |«      }t        j                  d«      }t        j                  |
|||fdj                  |«      ¬«      }|j!                  |«       |j!                  |«       |	j!                  |«       Œ‹ |D ]  }|j#                  «        Œ |D ]  }|j%                  «        Œ t'        |	|«      D ],  \  }}t        j                  j                   |||«      |«       Œ. ~~| j                  |t	        j
                  |«      «       y	)
zE
        This test exercises the refct in multithreaded code
        c                 ó¶   — t        j                  |j                  «      }t        |j                  «      D ]  }||   dz   ||<   Œ t        | «      D ]  }||}}Œ |S ©Nr`   r°   )rj   r±   r’   rk   s       r   rC   z*TestDynArray.test_refct_mt.<locals>.pyfunco  sU   € Ü—(‘(˜3Ÿ8™8Ó$ˆCÜ˜3Ÿ8™8–_�Ø˜Q™ !™��A’ð %ô ˜1–X�Ø �S‘ð àˆJr   r¥   r†   iè  c                 ó   •—  ‰| |«      |d d  y r   rN   )rj   Úinputr’   rF   s      €r   r´   z+TestDynArray.test_refct_mt.<locals>.wrappedˆ  s   ø€ Ù˜1˜e“_ˆC‘‰Fr   rµ   r¶   r·   N)r:   r   rm   Úfloatr�   rŽ   r©   Ú	randranger?   r@   r;   ri   r]   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   )rB   rC   r<   rÎ   Úexpected_refctÚswapctrH   rÅ   rÇ   Úswapctsr´   rk   r’   rÈ   rF   s                 @r   Útest_refct_mtzTestDynArray.test_refct_mtj  s—  ø€ ò
	ô �v“ˆØˆÜ—	‘	˜$¤eÔ,ˆÜŸ™¨Ó/ˆÜ×!Ñ! $Ó'ˆÙ˜& %Ó(ˆÜ
�
‰
×Ñ ©%°¸Ó*>Ô?àØ×Ñ˜¬¯©¸Ó)?Ô@àˆØˆØˆô	%ô �s–ˆAÜ—(‘(˜4“.ˆCä×%Ñ% dÓ+ˆFÜ×%Ñ%¨WØ,2°E¸3Ð+?Ø+6×+=Ñ+=¸aÓ+@ôBˆFð �N‰N˜6Ô"Ø�N‰N˜3ÔØ�N‰N˜6Õ"ð ó ˆFØ�L‰L�Nð ó ˆFØ�K‰K�Mð ô ˜w¨Ö0‰KˆF�CÜ�J‰J×#Ñ#¡F¨6°5Ó$9¸3Õ?ð 1ð �Wà×Ñ˜¬¯©¸Ó)?Õ@r   c                 ó&  — t         d„ «       }| j                  «        | j                  t        «      5 } |t        j
                  j                  dz  dz  «       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                 ó.   — t        j                  | «       y r   r\   )Úxs    r   r_   z1TestDynArray.test_invalid_size_array.<locals>.fooª  s   € ä�H‰H�Q�Kr   é   r   zAllocation failed)
r   Údisable_leak_checkÚassertRaisesÚMemoryErrorr   Úsize_tÚmaxvalÚassertInÚstrÚ	exception)rB   r_   Úraisess      r   Útest_invalid_size_arrayz$TestDynArray.test_invalid_size_array§  sz   € ô 
ñ	ó 
ð	ð 	×ÑÔ!à×Ñœ{Ô+¨vÙ”—‘×#Ñ# qÑ(¨AÑ-Ô.÷ ,ð 	�‰Ð)¬3¨v×/?Ñ/?Ó+@ÕA÷ ,Ð+ús   ²'BÂBc                 óL  — d„ }t        |«      }t        j                  j                  d«      }t        j                  j                  d«      }d}t        j                  |«      t        j                  |«      f} ||||«       ||||«      }}| j                  |d   j                  «       | j                  |d   j                  «       t        j                  j                  ||«       ~~| j                  |t        j                  |«      t        j                  |«      f«       y )Nc                 ó2   — t        |«      D ]  }|| }} Œ | |fS )z5Swap array x and y for t number of times
            ©ri   ©r×   r‰   Útrk   s       r   rC   z&TestDynArray.test_swap.<locals>.pyfunc¸  s&   € ô ˜1–X�Ø˜!�1‘ð ð �a�4ˆKr   rµ   r   r`   )
r:   r   r©   r�   rŽ   r—   rR   r?   r@   r;   )	rB   rC   rF   r×   r‰   rç   r‘   rU   r�   s	            r   Ú	test_swapzTestDynArray.test_swap¶  sà   € ò	ô �v“ˆä�I‰I×Ñ˜SÓ!ˆÜ�I‰I×Ñ˜SÓ!ˆàˆä—O‘O AÓ&¬¯©¸Ó(:Ð:ˆ	Ù˜Q  1“o¡u¨Q°°1£~�ˆØ×Ñ˜#˜a™&Ÿ+™+Ô&Ø×Ñ˜#˜a™&Ÿ+™+Ô&Ü
�
‰
×Ñ ¨Ô,Ø�CØ×Ñ˜¤S§_¡_°QÓ%7¼¿¹ÈÓ9KÐ$LÕMr   c                 ó:  — d„ }t        |«      }t        j                  j                  d«      }t        j                  |«      } ||«      \  }} ||«      \  }}| j                  ||«       | j                  ||«       t        j                  j                  ||«       t        j                  j                  ||«       ~~| j                  |t        j                  |«      «       | j                  t        j                  |«      t        j                  |«      «       y )Nc                 ó’   — t        j                  | j                  «      }t        |j                  «      D ]  }| |   dz   ||<   Œ | |fS rÌ   r°   )r×   r‰   rk   s      r   rC   z7TestDynArray.test_return_tuple_of_array.<locals>.pyfuncÒ  s@   € Ü—‘˜Ÿ™Ó ˆAÜ˜1Ÿ6™6–]�Ø˜‘t˜a‘x��!’ð #à�a�4ˆKr   r¦   )	r:   r   r©   r�   rŽ   rœ   r?   r@   r;   )	rB   rC   rF   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‰I×Ñ˜QÓˆÜ—O‘O AÓ&ˆ	Ù!'¨£Ñˆ
�JÙ˜Q“x‰ˆˆuØ�‰�a˜Ô$Ø�‰�a˜ÔÜ
�
‰
×Ñ 
¨EÔ2Ü
�
‰
×Ñ 
¨EÔ2Ø˜Ø×Ñ˜¤C§O¡O°AÓ$6Ô7à×ÑœŸ™¨Ó4´c·o±oÀeÓ6LÕMr   c                 óè  — d„ }t        |«      }t        j                  j                  d«      } ||«      \  }} ||«      \  }}t        j                  j	                  ||«       t        j                  j	                  ||«       t
        dv rd}nt
        dv rd}nt        t
        «      ‚| j                  |t        j                  |«      «       | j                  |t        j                  |«      «       y )Nc                 ó–   — t        j                  | j                  «      }t        |j                  «      D ]  }| |   dz   ||<   Œ ||f}|S rÌ   r°   )r×   r‰   rk   r’   s       r   rC   z?TestDynArray.test_return_tuple_of_array_created.<locals>.pyfuncé  sE   € Ü—‘˜Ÿ™Ó ˆAÜ˜1Ÿ6™6–]�Ø˜‘t˜a‘x��!’ð #à�Q�$ˆCØˆJr   r¦   ©)rl   é   r`   ©)rl   r¥   )rl   é   )rl   é   )rl   é   r   )
r:   r   r©   r?   r@   r   ÚNotImplementedErrorr;   r�   rŽ   )	rB   rC   rF   r×   rë   rì   rí   rî   Úexpected_refcounts	            r   Ú"test_return_tuple_of_array_createdz/TestDynArray.test_return_tuple_of_array_createdç  sÅ   € ò	ô �v“ˆä�I‰I×Ñ˜QÓˆÙ!'¨£Ñˆ
�JÙ˜Q“x‰ˆˆuÜ
�
‰
×Ñ 
¨EÔ2Ü
�
‰
×Ñ 
¨EÔ2ä˜Ñ#Ø !ÑÜÐ>Ñ>Ø !Ñä%¤iÓ0Ð0à×ÑÐ*¬C¯O©O¸EÓ,BÔCØ×ÑÐ*¬C¯O©O¸EÓ,BÕCr   c                 óv  ‡— t         d„ «       Šˆfd„}t        |«      }t        j                  d«      }t        j                  |«      }t
        dv rW| j                  dt        j                   ||«      «      «       | j                  dt        j                   ||«      «      «       nnt
        dv rW| j                  |t        j                   ||«      «      «       | j                  |t        j                   ||«      «      «       nt        t
        «      ‚| j                  |t        j                  |«      «       y)z_
        Dispatcher returns a new reference.
        It need to workaround it for now.
        c                 ó   — | S r   rN   )r’   s    r   Úinnerz7TestDynArray.test_issue_with_return_leak.<locals>.inner  s   € àˆJr   c                 ó   •—  ‰| «      S r   rN   )r×   rý   s    €r   rC   z8TestDynArray.test_issue_with_return_leak.<locals>.pyfunc  s   ø€ Ù˜“8ˆOr   r¥   rò   r   rô   N)r:   r   rm   r�   rŽ   r   r;   rø   )rB   rC   rF   rT   Ú	old_refctrý   s        @r   Útest_issue_with_return_leakz(TestDynArray.test_issue_with_return_leak  së   ø€ ô
 
ñ	ó 
ð	ô	ô �v“ˆä�i‰i˜‹mˆÜ—O‘O CÓ(ˆ	ä˜Ñ#Ø×Ñ˜Q¤§¡±°s³Ó <Ô=Ø×Ñ˜Q¤§¡±°c³
Ó ;Õ<ÜÐ>Ñ>Ø×Ñ˜Y¬¯©¹¸s»Ó(DÔEØ×Ñ˜Y¬¯©¹¸c»
Ó(CÕDä%¤iÓ0Ð0à×Ñ˜¤C§O¡O°CÓ$8Õ9r   N)rK   rL   rM   rf   ro   rz   r�   r„   r“   r™   rž   r¡   r­   rÉ   rÔ   r   râ   rè   rï   rú   r   rN   r   r   rX   rX   E   sp   „ òò$ò*ò.ò2ò08ò6Cò%ò:ò,"<òH?6òB;Aðz ñBó ðBòNò4Nò.Dó6:r   rX   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚConstructorBaseTestc                 ó\  — t        |«      } |«       } |«       }| j                  |d«       | j                  |j                  |j                  «       | j                  |j                  |j                  «       | j                  |j
                  |j
                  «       | j                  |j                  |j                  «       | j                  ||«       t        j                  |«      }|j                  d«       |j                  d«       t        j                  j                  ||«       y )Nr`   ra   )r:   rV   r;   r<   rb   r=   rd   Úcheck_result_valuer   r¼   re   r?   r@   )rB   rC   rF   rH   rI   s        r   Úcheck_0dzConstructorBaseTest.check_0d!  sÔ   € Ü�v“ˆÙ“8ˆÙ‹gˆØ×#Ñ# C¨Ô+Ø×Ñ˜Ÿ™ 8§=¡=Ô1Ø×Ñ˜Ÿ™ H§N¡NÔ3Ø×Ñ˜Ÿ™ H§N¡NÔ3Ø×Ñ˜Ÿ™ h×&6Ñ&6Ô7Ø×Ñ  XÔ.ä—=‘= Ó%ˆØ�‰�cÔØ�‰�ŒÜ
�
‰
×Ñ  XÕ.r   c                 ó  — t        |«      }d} ||«      } ||«      }| j                  |d«       | j                  |j                  |j                  «       | j                  |j                  |j                  «       | j                  |j
                  |j
                  «       | j                  |j                  |j                  «       | j                  ||«       t        j                  |«      }|j                  d«       |j                  d«       t        j                  j                  ||«       | j                  t        «      5 } |d«       d d d «       | j                  t        j                   «      d«       y # 1 sw Y   Œ/xY w)Nrl   r`   ra   éÿÿÿÿúnegative dimensions not allowed©r:   rV   r;   r<   rb   r=   rd   r  r   r¼   re   r?   r@   rÚ   Ú
ValueErrorrß   rà   )rB   rC   rF   rj   rH   rI   Úcms          r   Úcheck_1dzConstructorBaseTest.check_1d1  s  € Ü�v“ˆØˆÙ˜!“9ˆÙ�A‹hˆØ×#Ñ# C¨Ô+Ø×Ñ˜Ÿ™ 8§=¡=Ô1Ø×Ñ˜Ÿ™ H§N¡NÔ3Ø×Ñ˜Ÿ™ H§N¡NÔ3Ø×Ñ˜Ÿ™ h×&6Ñ&6Ô7Ø×Ñ  XÔ.ä—=‘= Ó%ˆØ�‰�cÔØ�‰�ŒÜ
�
‰
×Ñ  XÔ.à×ÑœzÔ*¨bÙ�"ŒI÷ +à×Ñœ˜RŸ\™\Ó*Ð,MÕN÷ +Ð*ús   Å	E=Å=Fc                 ó  — t        |«      }d\  }} |||«      } |||«      }| j                  |d«       | j                  |j                  |j                  «       | j                  |j                  |j                  «       | j                  |j
                  |j
                  «       | j                  |j                  |j                  «       | j                  ||«       t        j                  |«      }|j                  d«       |j                  d«       t        j                  j                  ||«       | j                  t        «      5 } |dd«       d d d «       | j                  t        j                   «      d«       y # 1 sw Y   Œ/xY w)N©r   rl   r`   ra   r   r  r  r	  )rB   rC   rF   rt   rj   rH   rI   r  s           r   Úcheck_2dzConstructorBaseTest.check_2dF  s&  € Ü�v“ˆØ‰ˆˆ1Ù˜!˜Q“<ˆÙ�A�q‹kˆØ×#Ñ# C¨Ô+Ø×Ñ˜Ÿ™ 8§=¡=Ô1Ø×Ñ˜Ÿ™ H§N¡NÔ3Ø×Ñ˜Ÿ™ H§N¡NÔ3Ø×Ñ˜Ÿ™ h×&6Ñ&6Ô7Ø×Ñ  XÔ.ä—=‘= Ó%ˆØ�‰�cÔØ�‰�ŒÜ
�
‰
×Ñ  XÔ.à×ÑœzÔ*¨bÙ�!�RŒL÷ +à×Ñœ˜RŸ\™\Ó*Ð,MÕN÷ +Ð*ús   Å
FÆFc                 óÆ   — t        |«      }| j                  t        «      5 } |«        ddd«       | j                  dt	        j
                  «      «       y# 1 sw Y   Œ/xY w)zAChecks that pyfunc will error, not segfaulting due to array size.Nzarray is too big)r:   rÚ   r
  rÞ   rß   rà   )rB   rC   rF   Úes       r   Úcheck_alloc_sizez$ConstructorBaseTest.check_alloc_size[  sI   € ä�v“ˆØ×ÑœzÔ*¨aÙŒG÷ +à�‰ØÜ�—‘Óõ	
÷ +Ð*ús   ¡AÁA N)rK   rL   rM   r  r  r  r  rN   r   r   r  r    s   „ ò/ò 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                 óT   •— t         t        | �  «        t        j                  | _        y r   )Úsuperr  ÚsetUpr   ÚzerosrC   ©rB   Ú	__class__s    €r   r  zTestNdZeros.setUph  s   ø€ ÜŒk˜4Ñ&Ô(Ü—h‘hˆ�r   c                 óD   — t         j                  j                  ||«       y r   ©r   r?   r@   ©rB   rI   rH   s      r   r  zTestNdZeros.check_result_valuel  ó   € Ü
�
‰
×Ñ  XÕ.r   c                 óJ   ‡— | j                   Šˆfd„}| j                  |«       y )Nc                  ó   •—  ‰ d«      S ©NrN   rN   )rC   s   €r   Úfuncz!TestNdZeros.test_0d.<locals>.funcq  s   ø€ Ù˜"“:Ðr   )rC   r  ©rB   r"  rC   s     @r   Útest_0dzTestNdZeros.test_0do  s   ø€ Ø—‘ˆô	à�‰�dÕr   c                 óJ   ‡— | j                   Šˆfd„}| j                  |«       y )Nc                 ó   •—  ‰| «      S r   rN   ©rj   rC   s    €r   r"  z!TestNdZeros.test_1d.<locals>.funcw  s   ø€ Ù˜!“9Ðr   ©rC   r  r#  s     @r   Útest_1dzTestNdZeros.test_1du  s   ø€ Ø—‘ˆô	à�‰�dÕr   c                 óJ   ‡— | j                   Šˆfd„}| j                  |«       y )Nc                 ó2   •—  ‰| t         j                  «      S r   ©r   rs   r'  s    €r   r"  z'TestNdZeros.test_1d_dtype.<locals>.func}  s   ø€ Ù˜!œRŸX™XÓ&Ð&r   r(  r#  s     @r   Útest_1d_dtypezTestNdZeros.test_1d_dtype{  s   ø€ Ø—‘ˆô	'à�‰�dÕr   c                 óx   ‡‡— | j                   Št        j                  d«      Šˆˆfd„}| j                  |«       y )Nrs   c                 ó   •—  ‰| ‰«      S r   rN   ©rj   Ú_dtyperC   s    €€r   r"  z0TestNdZeros.test_1d_dtype_instance.<locals>.func…  ó   ø€ Ù˜!˜VÓ$Ð$r   )rC   r   r=   r  ©rB   r"  r1  rC   s     @@r   Útest_1d_dtype_instancez"TestNdZeros.test_1d_dtype_instance�  s+   ù€ à—‘ˆÜ—‘˜'Ó"ˆõ	%à�‰�dÕr   c                 ó~   ‡‡— | j                   ŠdŠˆˆfd„}| j                  |«       ˆfd„}| j                  |«       y )Nrs   c                 ó   •—  ‰| ‰«      S r   rN   r0  s    €€r   r"  z+TestNdZeros.test_1d_dtype_str.<locals>.funcŒ  r2  r   c                 ó   •—  ‰| d«      S )NÚ
complex128rN   r'  s    €r   r"  z+TestNdZeros.test_1d_dtype_str.<locals>.func�  s   ø€ Ù˜!˜\Ó*Ð*r   r(  r3  s     @@r   Útest_1d_dtype_strzTestNdZeros.test_1d_dtype_str‰  s3   ù€ Ø—‘ˆØˆõ	%à�‰�dÔô	+à�‰�dÕr   c                 ó~   ‡‡— | j                   ŠdŠˆˆfd„}| j                  |«       ˆfd„}| j                  |«       y )NÚi4c                 ó   •—  ‰| ‰«      S r   rN   r0  s    €€r   r"  z@TestNdZeros.test_1d_dtype_str_alternative_spelling.<locals>.func˜  r2  r   c                 ó   •—  ‰| d«      S )NÚc8rN   r'  s    €r   r"  z@TestNdZeros.test_1d_dtype_str_alternative_spelling.<locals>.funcœ  s   ø€ Ù˜!˜T“?Ð"r   r(  r3  s     @@r   Ú&test_1d_dtype_str_alternative_spellingz2TestNdZeros.test_1d_dtype_str_alternative_spelling”  s3   ù€ à—‘ˆØˆõ	%à�‰�dÔô	#à�‰�dÕr   c                 óR   ‡‡— | j                   ŠdŠˆˆfd„}| j                  |«       y )Nzi4, (2,3)f8c                 ó   •—  ‰| ‰«      S r   rN   r0  s    €€r   r"  z<TestNdZeros.test_1d_dtype_str_structured_dtype.<locals>.func¤  r2  r   r(  r3  s     @@r   Ú"test_1d_dtype_str_structured_dtypez.TestNdZeros.test_1d_dtype_str_structured_dtype   s"   ù€ à—‘ˆØˆõ	%à�‰�dÕr   c                 ó"  ‡— | j                   Št        ˆfd„«       }| j                  t        «      5 } |dd«       d d d «       t	        j
                  «      }d| j                   j                  › d�}| j                  ||«       y # 1 sw Y   ŒKxY w)Nc                 ó   •—  ‰| |«      S r   rN   ©rj   ÚdtrC   s     €r   r"  z5TestNdZeros.test_1d_dtype_non_const_str.<locals>.func«  ó   ø€ á˜!˜R“=Ð r   r¦   rs   úIf np.ú0 dtype is a string it must be a string constant.)rC   r   rÚ   r   rß   rà   rK   rÞ   ©rB   r"  rá   ÚexcstrÚmsgrC   s        @r   Útest_1d_dtype_non_const_strz'TestNdZeros.test_1d_dtype_non_const_str¨  s†   ø€ Ø—‘ˆä	ó	!ó 
ð	!ð ×Ñœ{Ô+¨vÙ��GÔ÷ ,ô �V×%Ñ%Ó&ˆØ˜Ÿ™×,Ñ,Ð-ð ."ð "ˆà�‰�c˜6Õ"÷ ,Ð+ús   ±
BÂBc                 óì   ‡— | j                   Št        ˆfd„«       }| j                  t        «      5 } |d«       d d d «       t	        j
                  «      }| j                  d|«       y # 1 sw Y   Œ1xY w)Nc                 ó   •—  ‰| d«      S ©NÚABCDEFrN   r'  s    €r   r"  z3TestNdZeros.test_1d_dtype_invalid_str.<locals>.funcº  ó   ø€ á˜!˜XÓ&Ð&r   r¦   ú'Invalid NumPy dtype specified: 'ABCDEF')rC   r   rÚ   r   rß   rà   rÞ   ©rB   r"  rá   rK  rC   s       @r   Útest_1d_dtype_invalid_strz%TestNdZeros.test_1d_dtype_invalid_str·  sf   ø€ Ø—‘ˆä	ó	'ó 
ð	'ð ×Ñœ{Ô+¨vÙ�ŒG÷ ,ô �V×%Ñ%Ó&ˆØ�‰Ð?ÀÕH÷	 ,Ð+ús   ±	A*Á*A3c                 óJ   ‡— | j                   Šˆfd„}| j                  |«       y )Nc                 ó   •—  ‰| |f«      S r   rN   ©rt   rj   rC   s     €r   r"  z!TestNdZeros.test_2d.<locals>.funcÆ  s   ø€ Ù˜1˜a˜&“>Ð!r   ©rC   r  r#  s     @r   Útest_2dzTestNdZeros.test_2dÄ  s   ø€ Ø—‘ˆô	"à�‰�dÕr   c                 ó@  ‡— | j                   Šˆfd„}| j                  |«       ˆfd„}| j                  |«       t        j                  rIt	        ˆfd„«      }| j                  t        «      5   |t        j                  d«      d«       d d d «       y y # 1 sw Y   y xY w)Nc                 ód   •—  ‰t        j                  | «      t        j                  |«      f«      S r   )r   Úint16rs   rX  s     €r   Úfunc1z/TestNdZeros.test_2d_shape_dtypes.<locals>.func1Í  s#   ø€ Ùœ2Ÿ8™8 A›;¬¯©°«Ð4Ó5Ð5r   c                 ód   •—  ‰t        j                  | «      t        j                  |«      f«      S r   )r   Úint64Úint8rX  s     €r   Úfunc2z/TestNdZeros.test_2d_shape_dtypes.<locals>.func2Ñ  s#   ø€ Ùœ2Ÿ8™8 A›;¬¯©°«
Ð3Ó4Ð4r   c                 ó   •—  ‰| |f«      S r   rN   rX  s     €r   Ú<lambda>z2TestNdZeros.test_2d_shape_dtypes.<locals>.<lambda>Ö  s   ø€ ©°°1¨v¬r   ì        r`   )	rC   r  r   Ú	IS_32BITSr:   rÚ   r
  r   r`  )rB   r^  rb  rF   rC   s       @r   Útest_2d_shape_dtypesz TestNdZeros.test_2d_shape_dtypesÊ  sw   ø€ à—‘ˆô	6à�‰�eÔô	5à�‰�eÔä×ÒÜÓ6Ó7ˆEØ×"Ñ"¤:Õ.Ù”b—h‘h˜}Ó-¨qÔ1÷ /Ð.ð ç.Ð.ús   Á-BÂBc                 óJ   ‡— | j                   Šˆfd„}| j                  |«       y )Nc                 ó8   •—  ‰| |ft         j                  ¬«      S ©Nr†   )r   Ú	complex64rX  s     €r   r"  z-TestNdZeros.test_2d_dtype_kwarg.<locals>.funcÜ  s   ø€ Ù˜1˜a˜&¬¯©Ô5Ð5r   rY  r#  s     @r   Útest_2d_dtype_kwargzTestNdZeros.test_2d_dtype_kwargÚ  s   ø€ Ø—‘ˆô	6à�‰�dÕr   c                 óJ   ‡— | j                   Šˆfd„}| j                  |«       y )Nc                 ó   •—  ‰| |fd¬«      S )Nrk  r†   rN   rX  s     €r   r"  z1TestNdZeros.test_2d_dtype_str_kwarg.<locals>.funcâ  s   ø€ Ù˜1˜a˜&¨Ô4Ð4r   rY  r#  s     @r   Útest_2d_dtype_str_kwargz#TestNdZeros.test_2d_dtype_str_kwargà  s   ø€ Ø—‘ˆô	5à�‰�dÕr   c                 óJ   ‡— | j                   Šˆfd„}| j                  |«       y )Nc                 ó   •—  ‰| |fd¬«      S )Nr>  r†   rN   rX  s     €r   r"  zFTestNdZeros.test_2d_dtype_str_kwarg_alternative_spelling.<locals>.funcé  s   ø€ Ù˜1˜a˜&¨Ô-Ð-r   rY  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„}| j	                   |d|dz
  z  t
        j                  «      «       | j	                   |d|dz
  z  dft
        j                  «      «       y )Nc                 ó   •‡ ‡— ˆˆˆ fd„S )Nc                  ó   •—  ‰‰‰ «      S r   rN   )r=   rC   rb   s   €€€r   rd  z?TestNdZeros.test_alloc_size.<locals>.gen_func.<locals>.<lambda>ñ  s   ø€ ™F 5¨%Ô0r   rN   )rb   r=   rC   s   ``€r   Úgen_funcz-TestNdZeros.test_alloc_size.<locals>.gen_funcð  s	   ú€ Ý0Ð0r   r`   r   rØ   é@   )rC   r   ÚintpÚbitwidthr  r   )rB   Úwidthrv  rC   s      @r   Útest_alloc_sizezTestNdZeros.test_alloc_sizeí  si   ø€ Ø—‘ˆÜ—
‘
×#Ñ#ˆô	1ð 	×Ñ™h q¨E°A©I¡~´r·w±wÓ?Ô@Ø×Ñ™h¨¨U°Q©Y©¸Ð';¼R¿W¹WÓEÕFr   )rK   rL   rM   r  r  r$  r)  r-  r4  r9  r?  rB  rM  rU  rZ  rg  rl  ro  rr  r{  Ú__classcell__©r  s   @r   r  r  f  sZ   ø„ ôò/òòòòò	ò
òò#òIòò2ò òòöGr   r  c                   óF   ‡ — e Zd Zˆ fd„Zej
                  ˆ fd„«       Zˆ xZS )Ú
TestNdOnesc                 óT   •— t         t        | �  «        t        j                  | _        y r   )r  r  r  r   r‹   rC   r  s    €r   r  zTestNdOnes.setUpù  s   ø€ ÜŒj˜$Ñ%Ô'Ü—g‘gˆ�r   c                 ó"   •— t         ‰| �  «        y r   )r  rB  r  s    €r   rB  z-TestNdOnes.test_1d_dtype_str_structured_dtypeý  s   ø€ ä‰Ñ2Õ4r   )rK   rL   rM   r  ÚunittestÚexpectedFailurerB  r|  r}  s   @r   r  r  ÷  s"   ø„ ôð ×Ñó5ó ô5r   r  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d„ Zd„ Zy)Ú
TestNdFullc                 óD   — t         j                  j                  ||«       y r   r  r  s      r   r  zTestNdFull.check_result_value  r  r   c                 ó,   — d„ }| j                  |«       y )Nc                  ó.   — t        j                  dd«      S )NrN   ç      @©r   ÚfullrN   r   r   r"  z TestNdFull.test_0d.<locals>.func  s   € Ü—7‘7˜2˜sÓ#Ð#r   )r  ©rB   r"  s     r   r$  zTestNdFull.test_0d  s   € ò	$à�‰�dÕr   c                 ó,   — d„ }| j                  |«       y )Nc                 ó.   — t        j                  | d«      S ©Nr‰  rŠ  ©rj   s    r   r"  z TestNdFull.test_1d.<locals>.func  s   € Ü—7‘7˜1˜c“?Ð"r   ©r  rŒ  s     r   r)  zTestNdFull.test_1d  s   € ò	#à�‰�dÕr   c                 ó,   — d„ }| j                  |«       y )Nc                 óL   — t        j                  | dt         j                  «      S r�  )r   r‹  Úbool_r�  s    r   r"  z&TestNdFull.test_1d_dtype.<locals>.func  s   € Ü—7‘7˜1˜c¤2§8¡8Ó,Ð,r   r‘  rŒ  s     r   r-  zTestNdFull.test_1d_dtype  s   € ò	-à�‰�dÕr   c                 ó\   ‡— t        j                  d«      Šˆfd„}| j                  |«       y )NÚboolc                 ó2   •— t        j                  | d‰«      S r�  rŠ  ©rj   r=   s    €r   r"  z/TestNdFull.test_1d_dtype_instance.<locals>.func  s   ø€ Ü—7‘7˜1˜c 5Ó)Ð)r   )r   r=   r  ©rB   r"  r=   s     @r   r4  z!TestNdFull.test_1d_dtype_instance  s"   ø€ Ü—‘˜Ó ˆô	*à�‰�dÕr   c                 ó,   — d„ }| j                  |«       y )Nc                 ó0   — t        j                  | dd«      S ©Nr‰  r”  rŠ  r�  s    r   r"  z*TestNdFull.test_1d_dtype_str.<locals>.func  s   € Ü—7‘7˜1˜c 7Ó+Ð+r   r‘  rŒ  s     r   r9  zTestNdFull.test_1d_dtype_str  s   € ò	,à�‰�dÕr   c                 ó,   — d„ }| j                  |«       y )Nc                 ó0   — t        j                  | dd«      S )Nr‰  Ú?rŠ  r�  s    r   r"  z?TestNdFull.test_1d_dtype_str_alternative_spelling.<locals>.func#  s   € Ü—7‘7˜1˜c 3Ó'Ð'r   r‘  rŒ  s     r   r?  z1TestNdFull.test_1d_dtype_str_alternative_spelling!  s   € ò	(à�‰�dÕr   c                 óÖ   — t         d„ «       }| j                  t        «      5 } |ddd«       d d d «       t        j                  «      }d}| j                  ||«       y # 1 sw Y   Œ3xY w)Nc                 ó0   — t        j                  | ||«      S r   rŠ  )rj   ÚfvrF  s      r   r"  z4TestNdFull.test_1d_dtype_non_const_str.<locals>.func)  s   € ä—7‘7˜1˜b "Ó%Ð%r   ©r¦   r‰  rs   z:If np.full dtype is a string it must be a string constant.©r   rÚ   r   rß   rà   rÞ   ©rB   r"  rá   rK  rL  s        r   rM  z&TestNdFull.test_1d_dtype_non_const_str'  sg   € ä	ñ	&ó 
ð	&ð ×Ñœ{Ô+¨vÙ��s˜GÔ$÷ ,ô �V×%Ñ%Ó&ˆð"ˆà�‰�c˜6Õ"÷ ,Ð+ús   ¢AÁA(c                 óÐ   — t         d„ «       }| j                  t        «      5 } |dd«       d d d «       t        j                  «      }| j                  d|«       y # 1 sw Y   Œ1xY w)Nc                 ó0   — t        j                  | |d«      S rP  rŠ  )rj   r¢  s     r   r"  z2TestNdFull.test_1d_dtype_invalid_str.<locals>.func7  s   € ä—7‘7˜1˜b (Ó+Ð+r   r£  r‰  rS  r¤  ©rB   r"  rá   rK  s       r   rU  z$TestNdFull.test_1d_dtype_invalid_str5  s^   € ä	ñ	,ó 
ð	,ð ×Ñœ{Ô+¨vÙ��sŒO÷ ,ô �V×%Ñ%Ó&ˆØ�‰Ð?ÀÕH÷	 ,Ð+ús   ¢
AÁA%c                 ó,   — d„ }| j                  |«       y )Nc                 ó2   — t        j                  | |fd«      S r�  rŠ  ©rt   rj   s     r   r"  z TestNdFull.test_2d.<locals>.funcB  s   € Ü—7‘7˜A˜q˜6 3Ó'Ð'r   ©r  rŒ  s     r   rZ  zTestNdFull.test_2dA  s   € ò	(à�‰�dÕr   c                 ó,   — d„ }| j                  |«       y )Nc                 óR   — t        j                  | |fdt         j                  ¬«      S )Ny      ð?      @r†   )r   r‹  rk  r«  s     r   r"  z,TestNdFull.test_2d_dtype_kwarg.<locals>.funcG  s   € Ü—7‘7˜A˜q˜6 8´2·<±<Ô@Ð@r   r¬  rŒ  s     r   rl  zTestNdFull.test_2d_dtype_kwargF  s   € ò	Aà�‰�dÕr   c                 ó|   — d„ }| j                  |«       d„ }| j                  |«       d„ }| j                  |«       y )Nc                 óX   — t        j                  | |ft        j                  d«      «      S rÌ   )r   r‹  rs   r«  s     r   r"  z0TestNdFull.test_2d_dtype_from_type.<locals>.funcM  s   € Ü—7‘7˜A˜q˜6¤2§8¡8¨A£;Ó/Ð/r   c                 óX   — t        j                  | |ft        j                  d«      «      S rÌ   )r   r‹  r8  r«  s     r   r"  z0TestNdFull.test_2d_dtype_from_type.<locals>.funcR  s    € Ü—7‘7˜A˜q˜6¤2§=¡=°Ó#3Ó4Ð4r   c                 óR   — t        j                  | |fdt         j                  ¬«      S )Nr`   r†   )r   r‹  ra  r«  s     r   r"  z0TestNdFull.test_2d_dtype_from_type.<locals>.funcW  s   € Ü—7‘7˜A˜q˜6 1¬B¯G©GÔ4Ð4r   r¬  rŒ  s     r   Útest_2d_dtype_from_typez"TestNdFull.test_2d_dtype_from_typeK  s5   € ò	0à�‰�dÔò	5à�‰�dÔò	5à�‰�dÕr   c                 ó  — d„ }| j                  |«       d„ }| j                  |«       t        j                  rGt        d„ «      }| j	                  t
        «      5   |t        j                  d«      d«       d d d «       y y # 1 sw Y   y xY w)Nc                 ó~   — t        j                  t        j                  | «      t        j                  |«      fd«      S r�  )r   r‹  r]  rs   r«  s     r   r^  z.TestNdFull.test_2d_shape_dtypes.<locals>.func1]  s(   € Ü—7‘7œBŸH™H Q›K¬¯©°!«Ð5°sÓ;Ð;r   c                 ó~   — t        j                  t        j                  | «      t        j                  |«      fd«      S r�  )r   r‹  r`  ra  r«  s     r   rb  z.TestNdFull.test_2d_shape_dtypes.<locals>.func2a  s(   € Ü—7‘7œBŸH™H Q›K¬¯©°«Ð4°cÓ:Ð:r   c                 ó2   — t        j                  | |fd«      S r�  rŠ  r«  s     r   rd  z1TestNdFull.test_2d_shape_dtypes.<locals>.<lambda>f  s   € ¬¯©°°A°¸Ô(<r   re  r`   )r  r   rf  r:   rÚ   r
  r   r`  )rB   r^  rb  rF   s       r   rg  zTestNdFull.test_2d_shape_dtypes[  sm   € ò	<à�‰�eÔò	;à�‰�eÔä×ÒÜÑ<Ó=ˆEØ×"Ñ"¤:Õ.Ù”b—h‘h˜}Ó-¨qÔ1÷ /Ð.ð ç.Ð.ús   ÁBÂB
c                 óº   — t         j                  j                  }d„ }| j                   |d|dz
  z  d«      «       | j                   |d|dz
  z  dfd«      «       y )Nc                 ó   ‡ ‡— ˆ ˆfd„S )Nc                  ó0   •— t        j                  ‰ ‰«      S r   rŠ  ©rb   Úvalues   €€r   rd  z>TestNdFull.test_alloc_size.<locals>.gen_func.<locals>.<lambda>m  s   ø€ œBŸG™G E¨5Ô1r   rN   r»  s   ``r   rv  z,TestNdFull.test_alloc_size.<locals>.gen_funcl  s	   ù€ Ü1Ð1r   r`   r   rØ   rw  )r   rx  ry  r  )rB   rz  rv  s      r   r{  zTestNdFull.test_alloc_sizej  sW   € Ü—
‘
×#Ñ#ˆò	2ð 	×Ñ™h q¨E°A©I¡~°qÓ9Ô:Ø×Ñ™h¨¨U°Q©Y©¸Ð';¸QÓ?Õ@r   N)rK   rL   rM   r  r$  r)  r-  r4  r9  r?  rM  rU  rZ  rl  r³  rg  r{  rN   r   r   r…  r…    sJ   „ ò/òò
ò
ò
òò
ò#ò
Iòò
ò
ò 2óAr   r…  c                   ó   — e Zd Zd„ Zd„ Zy)ÚConstructorLikeBaseTestc                 ó¦   — 	 |j                  d«       y # t        t        f$ r- d|j                  j                  z  }|j                  |«       Y y w xY w)Nr[   ó   x)re   Ú	TypeErrorr
  r=   rn   )rB   rT   Ú
fill_values      r   Úmutate_arrayz$ConstructorLikeBaseTest.mutate_arrayu  sF   € ð	!Ø�H‰H�R�LøÜœ:Ð&ò 	!à §	¡	× 2Ñ 2Ñ2ˆJØ�H‰H�ZÖ ð	!ús   ‚ ”9AÁAc                 óÊ  ‡ ‡‡— ˆˆˆ fd„}t        j                  ddd«      j                  |«      }t        ‰«      ŠdD ]Œ  }|dk(  r|dd  j	                  d«      }n|j	                  |«      } ||«       |j
                  dkD  r ||d d d…   «       d	|j                  d
<   ‰ j                  t        «      5  d|d<   d d d «        ||«       ŒŽ  ||d   «       y # 1 sw Y   ŒxY w)Nc                 óŠ  •—  ‰| «      } ‰| «      }‰j                  |j                  |j                  «       ‰j                  |j                  |j                  «       ‰j                  ||«       ‰j	                  ||«       ‰j                  |«       ‰j                  |«       t        j                  j                  ||«       y r   )	r;   r<   r=   r>   r  rÃ  r   r?   r@   )rT   rH   rI   rF   rC   rB   s      €€€r   Ú	check_arrz5ConstructorLikeBaseTest.check_like.<locals>.check_arr~  s•   ø€ Ù˜c“{ˆHÙ˜“*ˆCØ×Ñ˜SŸX™X x§}¡}Ô5Ø×Ñ˜SŸY™Y¨¯©Ô7Ø×#Ñ# C¨Ô2Ø×#Ñ# C¨Ô2à×Ñ˜cÔ"Ø×Ñ˜hÔ'Ü�J‰J×#Ñ# C¨Õ2r   r   r¦   é   )rÇ  r  ©r`   r   rl   )rl   r`   r   rN   rN   r  r   FÚ	WRITEABLEr`   )	r   ÚlinspaceÚastyper:   rª   ÚndimÚflagsrÚ   r
  )rB   rC   r=   rÆ  Úorigrb   rT   rF   s   ``     @r   Ú
check_likez"ConstructorLikeBaseTest.check_like}  sÏ   ú€ ö
	3ô �{‰{˜1˜a Ó#×*Ñ*¨5Ó1ˆÜ�v“ˆã:ˆEØ˜Š{Ø˜2˜3�i×'Ñ'¨Ó+‘à—l‘l 5Ó)�Ù�cŒNà�x‰x˜!Š|Ù˜#™c ˜c™(Ô#à%*ˆC�I‰I�kÑ"à×"Ñ"¤:Õ.Ø��A‘÷ /á�c�Nð ;ñ" 	�$�q‘'Õ÷ /Ð.ús   Â5CÃC"	N)rK   rL   rM   rÃ  rÏ  rN   r   r   r¾  r¾  s  s   „ ò!ó!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                 óT   •— t         t        | �  «        t        j                  | _        y r   )r  rÑ  r  r   r¼   rC   r  s    €r   r  zTestNdEmptyLike.setUp£  ó   ø€ ÜŒo˜tÑ*Ô,Ü—m‘mˆ�r   c                  ó   — y r   rN   r  s      r   r  z"TestNdEmptyLike.check_result_value§  s   € Ør   c                 óh   ‡— | j                   Šˆfd„}| j                  |t        j                  «       y )Nc                 ó   •—  ‰| «      S r   rN   ©rT   rC   s    €r   r"  z'TestNdEmptyLike.test_like.<locals>.func¬  ó   ø€ Ù˜#“;Ðr   ©rC   rÏ  r   rc   r#  s     @r   Ú	test_likezTestNdEmptyLike.test_likeª  s#   ø€ Ø—‘ˆô	à�‰˜œbŸj™jÕ)r   c                 óº   ‡— t        j                  dt         j                  fdt         j                  fg«      }| j                  Šˆfd„}| j                  ||«       y )Nr   r   c                 ó   •—  ‰| «      S r   rN   r×  s    €r   r"  z2TestNdEmptyLike.test_like_structured.<locals>.func³  rØ  r   )r   r=   r]  rŒ   rC   rÏ  )rB   r=   r"  rC   s      @r   Útest_like_structuredz$TestNdEmptyLike.test_like_structured°  sC   ø€ Ü—‘˜3¤§¡˜/¨C´·±Ð+<Ð=Ó>ˆØ—‘ˆô	à�‰˜˜eÕ$r   c                 óh   ‡— | j                   Šˆfd„}| j                  |t        j                  «       y )Nc                 ó2   •—  ‰| t         j                  «      S r   r,  r×  s    €r   r"  z-TestNdEmptyLike.test_like_dtype.<locals>.func¹  s   ø€ Ù˜#œrŸx™xÓ(Ð(r   rÙ  r#  s     @r   Útest_like_dtypezTestNdEmptyLike.test_like_dtype·  s#   ø€ Ø—‘ˆô	)à�‰˜œbŸj™jÕ)r   c                 ó–   ‡‡— t        j                  d«      Š| j                  Šˆˆfd„}| j                  |t         j                  «       y )Nrs   c                 ó   •—  ‰| ‰«      S r   rN   ©rT   r=   rC   s    €€r   r"  z6TestNdEmptyLike.test_like_dtype_instance.<locals>.funcÀ  ó   ø€ Ù˜#˜uÓ%Ð%r   )r   r=   rC   rÏ  rc   ©rB   r"  r=   rC   s     @@r   Útest_like_dtype_instancez(TestNdEmptyLike.test_like_dtype_instance½  s1   ù€ Ü—‘˜Ó!ˆØ—‘ˆõ	&à�‰˜œbŸj™jÕ)r   c                 óÚ   ‡‡— t        j                  dt         j                  fdt         j                  fg«      Š| j                  Šˆˆfd„}| j                  |t         j                  «       y )Nr   r   c                 ó   •—  ‰| ‰«      S r   rN   rã  s    €€r   r"  z8TestNdEmptyLike.test_like_dtype_structured.<locals>.funcÇ  rä  r   )r   r=   r]  rŒ   rC   rÏ  rc   rå  s     @@r   Útest_like_dtype_structuredz*TestNdEmptyLike.test_like_dtype_structuredÄ  sG   ù€ Ü—‘˜3¤§¡˜/¨C´·±Ð+<Ð=Ó>ˆØ—‘ˆõ	&à�‰˜œbŸj™jÕ)r   c                 óh   ‡— | j                   Šˆfd„}| j                  |t        j                  «       y )Nc                 ó4   •—  ‰| t         j                  ¬«      S rj  r,  r×  s    €r   r"  z3TestNdEmptyLike.test_like_dtype_kwarg.<locals>.funcÍ  s   ø€ Ù˜#¤R§X¡XÔ.Ð.r   rÙ  r#  s     @r   Útest_like_dtype_kwargz%TestNdEmptyLike.test_like_dtype_kwargË  s#   ø€ Ø—‘ˆô	/à�‰˜œbŸj™jÕ)r   c                 óh   ‡— | j                   Šˆfd„}| j                  |t        j                  «       y )Nc                 ó   •—  ‰| d¬«      S )Nrs   r†   rN   r×  s    €r   r"  z7TestNdEmptyLike.test_like_dtype_str_kwarg.<locals>.funcÓ  s   ø€ Ù˜# WÔ-Ð-r   rÙ  r#  s     @r   Útest_like_dtype_str_kwargz)TestNdEmptyLike.test_like_dtype_str_kwargÑ  s#   ø€ Ø—‘ˆô	.à�‰˜œbŸj™jÕ)r   c                 óh   ‡— | j                   Šˆfd„}| j                  |t        j                  «       y )Nc                 ó   •—  ‰| d¬«      S )Nr;  r†   rN   r×  s    €r   r"  zLTestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.funcÙ  s   ø€ Ù˜# TÔ*Ð*r   rÙ  r#  s     @r   Ú.test_like_dtype_str_kwarg_alternative_spellingz>TestNdEmptyLike.test_like_dtype_str_kwarg_alternative_spelling×  s#   ø€ Ø—‘ˆô	+à�‰˜œbŸj™jÕ)r   c                 óž  ‡— | j                   Št        ˆfd„«       }| j                  t        «      5 } |t	        j
                  d«      d«       d d d «       t        j                  «      }d| j                   j                  › d�}| j                  ||«       | j                  dj                  ‰j                  «      |«       y # 1 sw Y   ŒvxY w)Nc                 ó   •—  ‰| |«      S r   rN   rE  s     €r   r"  z;TestNdEmptyLike.test_like_dtype_non_const_str.<locals>.funcà  rG  r   rv   rs   rH  rI  z'{}(array(float64, 1d, C), unicode_type))rC   r   rÚ   r   r   r‹   rß   rà   rK   rÞ   r¿   rJ  s        @r   Útest_like_dtype_non_const_strz-TestNdEmptyLike.test_like_dtype_non_const_strÝ  s¯   ø€ Ø—‘ˆä	ó	!ó 
ð	!ð ×Ñœ{Ô+¨vÙ”—‘˜“˜WÔ%÷ ,ô �V×%Ñ%Ó&ˆØ˜Ÿ™×,Ñ,Ð-ð ."ð "ˆà�‰�c˜6Ô"Ø�‰Ø5×<Ñ<¸V¿_¹_ÓMØõ	÷ ,Ð+ús   ±CÃCc                 ó  ‡— | j                   Št        ˆfd„«       }| j                  t        «      5 } |t	        j
                  d«      «       d d d «       t        j                  «      }| j                  d|«       y # 1 sw Y   Œ1xY w)Nc                 ó   •—  ‰| d«      S rP  rN   r'  s    €r   r"  z9TestNdEmptyLike.test_like_dtype_invalid_str.<locals>.funcò  rR  r   rv   rS  )	rC   r   rÚ   r   r   r‹   rß   rà   rÞ   rT  s       @r   Útest_like_dtype_invalid_strz+TestNdEmptyLike.test_like_dtype_invalid_strï  so   ø€ Ø—‘ˆä	ó	'ó 
ð	'ð ×Ñœ{Ô+¨vÙ”—‘˜“Ô÷ ,ô �V×%Ñ%Ó&ˆØ�‰Ð?ÀÕH÷	 ,Ð+ús   ±A=Á=B)rK   rL   rM   r  r  rÚ  rÝ  rà  ræ  ré  rì  rï  rò  rõ  rø  r|  r}  s   @r   rÑ  rÑ  ¡  s@   ø„ ô$òò*ò%ò*ò*ò*ò*ò*ò*òö$Ir   rÑ  c                   ó8   ‡ — e Zd Zˆ fd„Zd„ Zˆ fd„Zˆ fd„Zˆ xZS )ÚTestNdZerosLikec                 óT   •— t         t        | �  «        t        j                  | _        y r   )r  rú  r  r   Ú
zeros_likerC   r  s    €r   r  zTestNdZerosLike.setUpÿ  rÓ  r   c                 óD   — t         j                  j                  ||«       y r   r  r  s      r   r  z"TestNdZerosLike.check_result_value  r  r   c                 ó*   •— t         t        | �  «        y r   )r  rú  rÝ  r  s    €r   rÝ  z$TestNdZerosLike.test_like_structured  s   ø€ ÜŒo˜tÑ9Õ;r   c                 ó*   •— t         t        | �  «        y r   )r  rú  ré  r  s    €r   ré  z*TestNdZerosLike.test_like_dtype_structured	  s   ø€ ÜŒo˜tÑ?ÕAr   )rK   rL   rM   r  r  rÝ  ré  r|  r}  s   @r   rú  rú  ý  s   ø„ ô$ò/ô<÷Bð Br   rú  c                   ón   ‡ — e Zd Zˆ fd„Zej
                  ˆ fd„«       Zej
                  ˆ fd„«       Zˆ xZS )ÚTestNdOnesLikec                 ób   •— t         t        | �  «        t        j                  | _        d| _        y rÌ   )r  r  r  r   Ú	ones_likerC   Úexpected_valuer  s    €r   r  zTestNdOnesLike.setUp  s#   ø€ ÜŒn˜dÑ)Ô+Ü—l‘lˆŒØˆÕr   c                 ó*   •— t         t        | �  «        y r   )r  r  rÝ  r  s    €r   rÝ  z#TestNdOnesLike.test_like_structured  s   ø€ äŒn˜dÑ8Õ:r   c                 ó*   •— t         t        | �  «        y r   )r  r  ré  r  s    €r   ré  z)TestNdOnesLike.test_like_dtype_structured  s   ø€ äŒn˜dÑ>Õ@r   )	rK   rL   rM   r  r‚  rƒ  rÝ  ré  r|  r}  s   @r   r  r    s>   ø„ ô ð ×Ñó;ó ð;ð ×ÑóAó ôAr   r  c                   óf   — 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y)ÚTestNdFullLikec                 óD   — t         j                  j                  ||«       y r   r  r  s      r   r  z!TestNdFullLike.check_result_value!  r  r   c                 óJ   — d„ }| j                  |t        j                  «       y )Nc                 ó.   — t        j                  | d«      S )Nç      @©r   Ú	full_liker^   s    r   r"  z&TestNdFullLike.test_like.<locals>.func%  ó   € Ü—<‘<  SÓ)Ð)r   ©rÏ  r   rc   rŒ  s     r   rÚ  zTestNdFullLike.test_like$  s   € ò	*à�‰˜œbŸj™jÕ)r   c                 óœ   — t        j                  dt         j                  fdt         j                  fg«      }d„ }| j	                  ||«       y )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Ï  )rB   r=   r"  s      r   rÝ  z#TestNdFullLike.test_like_structured*  s9   € ä—‘˜3¤§¡˜/¨C´·±Ð+<Ð=Ó>ˆò	*à�‰˜˜eÕ$r   c                 óJ   — d„ }| j                  |t        j                  «       y )Nc                 óL   — t        j                  | dt         j                  «      S r�  ©r   r  r”  r^   s    r   r"  z,TestNdFullLike.test_like_dtype.<locals>.func2  s   € Ü—<‘<  S¬"¯(©(Ó3Ð3r   r  rŒ  s     r   rà  zTestNdFullLike.test_like_dtype1  s   € ò	4à�‰˜œbŸj™jÕ)r   c                 óz   ‡— t        j                  d«      Šˆfd„}| j                  |t         j                  «       y )Nr–  c                 ó2   •— t        j                  | d‰«      S r�  r  )rT   r=   s    €r   r"  z5TestNdFullLike.test_like_dtype_instance.<locals>.func8  s   ø€ Ü—<‘<  S¨%Ó0Ð0r   )r   r=   rÏ  rc   r™  s     @r   ræ  z'TestNdFullLike.test_like_dtype_instance6  s(   ø€ Ü—‘˜Ó ˆô	1à�‰˜œbŸj™jÕ)r   c                 óJ   — d„ }| j                  |t        j                  «       y )Nc                 óN   — t        j                  | dt         j                  ¬«      S )Nr‰  r†   r  r^   s    r   r"  z2TestNdFullLike.test_like_dtype_kwarg.<locals>.func=  s   € Ü—<‘<  S´·±Ô9Ð9r   r  rŒ  s     r   rì  z$TestNdFullLike.test_like_dtype_kwarg<  s   € ò	:à�‰˜œbŸj™jÕ)r   c                 óJ   — d„ }| j                  |t        j                  «       y )Nc                 ó0   — t        j                  | dd«      S rœ  r  r^   s    r   r"  z6TestNdFullLike.test_like_dtype_str_kwarg.<locals>.funcB  s   € Ü—<‘<  S¨'Ó2Ð2r   r  rŒ  s     r   rï  z(TestNdFullLike.test_like_dtype_str_kwargA  s   € ò	3à�‰˜œbŸj™jÕ)r   c                 óJ   — d„ }| j                  |t        j                  «       y )Nc                 ó2   — t        j                  | dd¬«      S )Nr‰  rŸ  r†   r  r^   s    r   r"  zKTestNdFullLike.test_like_dtype_str_kwarg_alternative_spelling.<locals>.funcG  s   € Ü—<‘<  S°Ô4Ð4r   r  rŒ  s     r   rò  z=TestNdFullLike.test_like_dtype_str_kwarg_alternative_spellingF  s   € ò	5à�‰˜œbŸj™jÕ)r   c                 óü   — t         d„ «       }| j                  t        «      5 } |t        j                  d«      dd«       d d d «       t        j                  «      }d}| j                  ||«       y # 1 sw Y   Œ3xY w)Nc                 ó0   — t        j                  | ||«      S r   r  )rT   r¢  rF  s      r   r"  z@TestNdFullLike.test_like_dtype_non_const_str_kwarg.<locals>.funcM  s   € ä—<‘<  R¨Ó,Ð,r   rl   r‰  rs   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_kwargK  so   € ä	ñ	-ó 
ð	-ð ×Ñœ{Ô+¨vÙ”—‘˜“˜c 7Ô+÷ ,ô �V×%Ñ%Ó&ˆð"ˆà�‰�c˜6Õ"÷ ,Ð+ús   ¢A2Á2A;c                 óö   — t         d„ «       }| j                  t        «      5 } |t        j                  d«      d«       d d d «       t        j                  «      }| j                  d|«       y # 1 sw Y   Œ1xY w)Nc                 ó0   — t        j                  | |d«      S rP  r  )rT   r¢  s     r   r"  z8TestNdFullLike.test_like_dtype_invalid_str.<locals>.func[  s   € ä—<‘<  R¨Ó2Ð2r   rv   g333333@rS  r   r¨  s       r   rø  z*TestNdFullLike.test_like_dtype_invalid_strY  sg   € ä	ñ	3ó 
ð	3ð ×Ñœ{Ô+¨vÙ”—‘˜“˜SÔ!÷ ,ô �V×%Ñ%Ó&ˆØ�‰Ð?ÀÕH÷	 ,Ð+ús   ¢A/Á/A8N)rK   rL   rM   r  rÚ  r‚  rƒ  rÝ  rà  ræ  rì  rï  rò  r!  rø  rN   r   r   r  r    sJ   „ ò/ò*ð ×Ññ%ó ð%ò*ò
*ò*ò
*ò
*ò
#ó
Ir   r  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestNdIdentityc                 ó*   — | j                  |dg«       y )N©rl   ©rJ   ©rB   rC   s     r   Úcheck_identityzTestNdIdentity.check_identityh  s   € Ø×Ñ˜6 D 6Õ*r   c                 ó,   — d„ }| j                  |«       y )Nc                 ó,   — t        j                  | «      S r   ©r   Úidentityr�  s    r   r"  z*TestNdIdentity.test_identity.<locals>.funcl  s   € Ü—;‘;˜q“>Ð!r   )r*  rŒ  s     r   Útest_identityzTestNdIdentity.test_identityk  s   € ò	"à×Ñ˜DÕ!r   c                 óÄ   ‡— t         j                  t         j                  t         j                  t        j                  d«      dfD ]  Šˆfd„}| j                  |«       Œ y )Nr–  r”  c                 ó0   •— t        j                  | ‰«      S r   r-  r˜  s    €r   r"  z0TestNdIdentity.test_identity_dtype.<locals>.funcs  s   ø€ Ü—{‘{ 1 eÓ,Ð,r   )r   rk  r]  r”  r=   r*  r™  s     @r   Útest_identity_dtypez"TestNdIdentity.test_identity_dtypep  sC   ø€ Ü—l‘l¤B§H¡H¬b¯h©h¼¿¹ÀÓ8HØóˆEô-à×Ñ Õ%ñ	r   c                 óÔ   — t         d„ «       }| j                  t        «      5 } |dd«       d d d «       t        j                  «      }d}| j                  ||«       y # 1 sw Y   Œ3xY w)Nc                 ó.   — t        j                  | |«      S r   r-  )rj   rF  s     r   r"  z@TestNdIdentity.test_like_dtype_non_const_str_kwarg.<locals>.funcy  s   € ä—;‘;˜q "Ó%Ð%r   rv   rs   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_kwargw  se   € ä	ñ	&ó 
ð	&ð ×Ñœ{Ô+¨vÙ��GÔ÷ ,ô �V×%Ñ%Ó&ˆð"ˆà�‰�c˜6Õ"÷ ,Ð+úó   ¢
AÁA'N)rK   rL   rM   r*  r/  r2  r!  rN   r   r   r%  r%  f  s   „ ò+ò"ò
&ó#r   r%  c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú	TestNdEyec                 ó2   — d„ }| j                  |ddg«       y )Nc                 ó,   — t        j                  | «      S r   ©r   Úeyer�  s    r   r"  z"TestNdEye.test_eye_n.<locals>.funcŠ  s   € Ü—6‘6˜!“9Ðr   ©r`   r'  r(  rŒ  s     r   Ú
test_eye_nzTestNdEye.test_eye_n‰  s   € ò	à×Ñ˜4 $¨ Õ.r   c                 óŒ   — d t         j                  t        j                  d«      fD ]  }|fd„}| j                  |ddg«       Œ y )Nr`   c                 ó0   — t        j                  | |¬«      S rj  r:  r˜  s     r   r"  z(TestNdEye.test_eye_n_dtype.<locals>.func‘  s   € Ü—v‘v˜a uÔ-Ð-r   r<  r'  )r   r8  rk  rJ   )rB   rF  r"  s      r   Útest_eye_n_dtypezTestNdEye.test_eye_n_dtypeŽ  s;   € àœŸ™¬¯©°Q«Ó8ˆBØ ó .à×Ñ˜t d¨D \Õ2ñ 9r   c                 ó2   — d„ }| j                  |g d¢«       y )Nc                 ó.   — t        j                  | |«      S r   r:  ©rj   rt   s     r   r"  z$TestNdEye.test_eye_n_m.<locals>.func–  s   € Ü—6‘6˜!˜Q“<Ðr   )©r`   r   ©rl   r   )r   rl   r(  rŒ  s     r   Útest_eye_n_mzTestNdEye.test_eye_n_m•  s   € ò	 à×Ñ˜4Ò!9Õ:r   c                 ó,   — | j                  |g d¢«       y )N))r`   r   r   )rl   rv   r`   )rl   rv   r  )rv   rl   éþÿÿÿ)rv   rl   éûÿÿÿ)rv   rl   r¦   r(  rŒ  s     r   Úcheck_eye_n_m_kzTestNdEye.check_eye_n_m_kš  s   € Ø×Ñ˜4ò "-õ 	.r   c                 ó,   — d„ }| j                  |«       y )Nc                 ó0   — t        j                  | ||«      S r   r:  ©rj   rt   r~   s      r   r"  z&TestNdEye.test_eye_n_m_k.<locals>.func£  s   € Ü—6‘6˜!˜Q “?Ð"r   ©rJ  rŒ  s     r   Útest_eye_n_m_kzTestNdEye.test_eye_n_m_k¢  s   € ò	#à×Ñ˜TÕ"r   c                 ó,   — d„ }| j                  |«       y )Nc                 óP   — t        j                  | ||t         j                  ¬«      S ©N)ÚNÚMr~   r=   )r   r;  r]  rM  s      r   r"  z,TestNdEye.test_eye_n_m_k_dtype.<locals>.func¨  s   € Ü—6‘6˜A  a¬r¯x©xÔ8Ð8r   rN  rŒ  s     r   Útest_eye_n_m_k_dtypezTestNdEye.test_eye_n_m_k_dtype§  s   € ò	9à×Ñ˜TÕ"r   c                 ó\   ‡— t        j                  d«      Šˆfd„}| j                  |«       y )Nr]  c                 ó6   •— t        j                  | ||‰¬«      S rR  r:  )rj   rt   r~   r=   s      €r   r"  z5TestNdEye.test_eye_n_m_k_dtype_instance.<locals>.func®  s   ø€ Ü—6‘6˜A  a¨uÔ5Ð5r   )r   r=   rJ  r™  s     @r   Útest_eye_n_m_k_dtype_instancez'TestNdEye.test_eye_n_m_k_dtype_instance¬  s$   ø€ Ü—‘˜Ó!ˆô	6à×Ñ˜TÕ"r   N)
rK   rL   rM   r=  r@  rF  rJ  rO  rU  rX  rN   r   r   r7  r7  ‡  s%   „ ò/ò
3ò;ò
.ò#ò
#ó
#r   r7  c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
Ú
TestNdDiagc                 ó°  — t        j                  g d¢«      }t        j                  g d¢g«      }t        j                  |«      }|||g| _        t        j                  d«      j                  dd«      }t        j                  d«      j                  dd«      }||g| _        d„ }|| _        t        |«      | _	        dd„}|| _
        t        |«      | _        y )NrÈ  rö   rl   rv   c                 ó,   — t        j                  | «      S r   ©r   Údiag)Úqs    r   r"  zTestNdDiag.setUp.<locals>.func½  s   € Ü—7‘7˜1“:Ðr   c                 ó0   — t        j                  | |¬«      S )N©r~   r]  )r_  r~   s     r   Ú
func_kwargz$TestNdDiag.setUp.<locals>.func_kwargÂ  s   € Ü—7‘7˜1 ”?Ð"r   )r   )r   ÚarrayÚ	transposeÚvectorsrm   rª   Ú	matriciesÚpyr:   ÚjitÚpy_kwÚjit_kw)rB   ÚvÚhvÚvvÚa3x4Úa4x3r"  rb  s           r   r  zTestNdDiag.setUpµ  s©   € Ü�H‰H’YÓˆÜ�X‰X’y�kÓ"ˆÜ�\‰\˜"ÓˆØ˜2˜r�{ˆŒÜ�y‰y˜‹}×$Ñ$ Q¨Ó*ˆÜ�y‰y˜‹}×$Ñ$ Q¨Ó*ˆØ ˜ˆŒò	àˆŒÜ˜$“<ˆŒó	#àˆŒ
Ü˜ZÓ(ˆ�r   c                 óü   —  ||i |¤Ž} ||i |¤Ž}| j                  |j                  |j                  «       | j                  |j                  |j                  «       t        j                  j                  ||«       y r   )r;   r<   r=   r   r?   r@   )rB   rC   ÚnrtfuncrG   ÚkwargsrH   Úcomputeds          r   Ú
check_diagzTestNdDiag.check_diagÇ  sd   € Ù˜4Ð* 6Ñ*ˆÙ˜DÐ+ FÑ+ˆØ×Ñ˜Ÿ™¨¯©Ô6Ø×Ñ˜Ÿ™¨¯©Ô8ä
�
‰
×Ñ ¨(Õ3r   c                 ót   — | j                   D ])  }| j                  | j                  | j                  |«       Œ+ y r   )re  rt  rg  rh  ©rB   Úds     r   Útest_diag_vect_createz TestNdDiag.test_diag_vect_createÐ  s(   € Ø—”ˆAØ�O‰O˜DŸG™G T§X¡X¨qÕ1ñ r   c                 óš   — t        dd«      D ]<  }| j                  D ]+  }| j                  | j                  | j                  ||¬«       Œ- Œ> y )Niöÿÿÿr¥   ra  )ri   re  rt  ri  rj  ©rB   r~   rw  s      r   Útest_diag_vect_create_kwargz&TestNdDiag.test_diag_vect_create_kwargÕ  s<   € Ü�s˜B–ˆAØ—\”\�Ø—‘ §
¡
¨D¯K©K¸¸a�Õ@ñ "ñ  r   c                 ót   — | j                   D ])  }| j                  | j                  | j                  |«       Œ+ y r   )rf  rt  rg  rh  rv  s     r   Útest_diag_extractzTestNdDiag.test_diag_extractÛ  s(   € Ø—”ˆAØ�O‰O˜DŸG™G T§X¡X¨qÕ1ñ  r   c                 óš   — t        dd«      D ]<  }| j                  D ]+  }| j                  | j                  | j                  ||¬«       Œ- Œ> y )Néüÿÿÿrv   ra  )ri   rf  rt  ri  rj  rz  s      r   Útest_diag_extract_kwargz"TestNdDiag.test_diag_extract_kwargà  s<   € Ü�r˜1–ˆAØ—^”^�Ø—‘ §
¡
¨D¯K©K¸¸a�Õ@ñ $ñ r   c                 ó¶  — t        j                  dggg«      }t        | j                  «      }| j	                  t
        «      5   |«        d d d «       | j	                  t        «      5   ||«       d d d «       | j	                  t        «      5  t        | j                  «      } ||d¬«       d d d «       y # 1 sw Y   ŒmxY w# 1 sw Y   ŒSxY w# 1 sw Y   y xY w)Nç      ð?rl   ra  )r   rc  r:   rg  rÚ   rÁ  r   ri  )rB   rw  rF   Údfuncs       r   Útest_error_handlingzTestNdDiag.test_error_handlingæ  sŸ   € Ü�H‰H˜�t�f�XÓˆÜ�t—w‘w“ˆð ×ÑœyÕ)ÙŒG÷ *ð ×Ñœ{Õ+Ù�!ŒH÷ ,à×Ñœ{Õ+Ü˜4Ÿ:™:Ó&ˆEÙ�!�q�M÷ ,Ð+÷ *Ð)ú÷ ,Ð+úç+Ð+ús$   ÁB7Á(	CÂ CÂ7C ÃCÃCc                 ó˜   — t        | j                  «      }d}| j                  t        |«      5 } |d «       d d d «       y # 1 sw Y   y xY w)Nz'.*The argument "v" must be array-like.*)r:   rg  ÚassertRaisesRegexr   )rB   rF   rL  rá   s       r   Útest_bad_shapezTestNdDiag.test_bad_shapeõ  s9   € Ü�t—w‘w“ˆØ7ˆØ×#Ñ#¤K°Ô5¸Ù�$ŒK÷ 6×5Ñ5ús   ®	A Á A	N)rK   rL   rM   r  rt  rx  r{  r}  r€  r„  r‡  rN   r   r   rZ  rZ  ³  s,   „ ò)ò$4ò2ò
Aò2ò
Aòór   rZ  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestLinspacec                 ó2   — d„ }| j                  |g d¢«       y )Nc                 ó.   — t        j                  | |«      S r   ©r   rÊ  rC  s     r   rC   z,TestLinspace.test_linspace_2.<locals>.pyfuncþ  s   € Ü—;‘;˜q !Ó$Ð$r   ))r   rv   )r`   rµ   )ç      Àç      @)ù       €      Àù       @      @)r   r`   )ù      ð?      à?ù              ø?r(  r)  s     r   Útest_linspace_2zTestLinspace.test_linspace_2ý  s   € ò	%à×Ñ˜6ò4õ	5r   c                 ó2   — d„ }| j                  |g d¢«       y )Nc                 ó0   — t        j                  | ||«      S r   rŒ  ©rj   rt   r}   s      r   rC   z,TestLinspace.test_linspace_3.<locals>.pyfunc  s   € Ü—;‘;˜q ! QÓ'Ð'r   ))r   rv   é	   )r`   rv   rl   )r�  rŽ  rØ   )r�  r�  r¨   )r   r`   r   )r‘  r’  r¦   )r`   g}Ã”%­I²Tr`   r(  r)  s     r   Útest_linspace_3zTestLinspace.test_linspace_3  s   € ò	(à×Ñ˜6ò>õ	?r   c                 ó~   — t         d„ «       }d\  }}}| j                   ||||«      |j                  |||«      «       y )Nc                 ó0   — 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)rB   r_   rj   rt   r}   s        r   Útest_linspace_accuracyz#TestLinspace.test_linspace_accuracy  sH   € ô 
ñ	(ó 
ð	(ð  ‰ˆˆ1ˆaØ×Ñ¡ A q¨!£¨c¯k©k¸!¸QÀÓ.BÕCr   N)rK   rL   rM   r“  r˜  r�  rN   r   r   r‰  r‰  û  s   „ ò5ò?óDr   r‰  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestNpyEmptyKeywordc                 óô   ‡— ˆfd„}g d¢}t        |«      }|D ]^  } ||«      } ||«      }| j                  |j                  |j                  «       | j                  |j                  |j                  «       Œ` y )Nc                 ó2   •— t        j                  | ‰¬«      S rj  r\   ©rb   r=   s    €r   rC   z7TestNpyEmptyKeyword._test_with_dtype_kw.<locals>.pyfunc  s   ø€ Ü—8‘8˜E¨Ô/Ð/r   ©r`   r¦   r—  ©r:   r;   r=   rb   ©rB   r=   rC   ÚshapesrF   ÚsrH   r�   s    `      r   Ú_test_with_dtype_kwz'TestNpyEmptyKeyword._test_with_dtype_kw  sd   ø€ ô	0ò ˆä�v“ˆÛˆAÙ˜a“yˆHÙ˜“(ˆCØ×Ñ˜XŸ^™^¨S¯Y©YÔ7Ø×Ñ˜XŸ^™^¨S¯Y©YÕ7ñ	 r   c                 ó¶   — t         j                  t         j                  t         j                  t        j                  d«      fD ]  }| j                  |«       Œ y ©Nrk  )r   rs   rŒ   rk  r=   r¨  ©rB   r=   s     r   Útest_with_dtype_kwsz'TestNpyEmptyKeyword.test_with_dtype_kws%  s9   € Ü—h‘h¤§
¡
¬B¯L©L¼"¿(¹(À;Ó:OÓPˆEØ×$Ñ$ UÕ+ñ Qr   c                 óô   ‡— ˆfd„}g d¢}t        |«      }|D ]^  } ||«      } ||«      }| j                  |j                  |j                  «       | j                  |j                  |j                  «       Œ` y )Nc                 ó2   •— t        j                  | ‰¬«      S )Nr¢  r\   r¢  s    €r   rC   zATestNpyEmptyKeyword._test_with_shape_and_dtype_kw.<locals>.pyfunc*  s   ø€ Ü—8‘8 %¨uÔ5Ð5r   r£  r¤  r¥  s    `      r   Ú_test_with_shape_and_dtype_kwz1TestNpyEmptyKeyword._test_with_shape_and_dtype_kw)  sd   ø€ ô	6ò ˆä�v“ˆÛˆAÙ˜a“yˆHÙ˜“(ˆCØ×Ñ˜XŸ^™^¨S¯Y©YÔ7Ø×Ñ˜XŸ^™^¨S¯Y©YÕ7ñ	 r   c                 ó¶   — t         j                  t         j                  t         j                  t        j                  d«      fD ]  }| j                  |«       Œ y rª  )r   rs   rŒ   rk  r=   r¯  r«  s     r   Útest_with_shape_and_dtype_kwsz1TestNpyEmptyKeyword.test_with_shape_and_dtype_kws6  s9   € Ü—h‘h¤§
¡
¬B¯L©L¼"¿(¹(À;Ó:OÓPˆEØ×.Ñ.¨uÕ5ñ Qr   c                 ó‚   — d„ }t        |«      }| j                  t        «      5   |«        d d d «       y # 1 sw Y   y xY w)Nc                  ó*   — t        j                  «       S r   r\   rN   r   r   rC   z6TestNpyEmptyKeyword.test_empty_no_args.<locals>.pyfunc<  s   € Ü—8‘8“:Ðr   )r:   rÚ   r   )rB   rC   rF   s      r   Útest_empty_no_argsz&TestNpyEmptyKeyword.test_empty_no_args:  s3   € ò	ô �v“ˆð ×Ñœ{Õ+ÙŒG÷ ,×+Ñ+ús   ¤5µ>N)rK   rL   rM   r¨  r¬  r¯  r±  r´  rN   r   r   rŸ  rŸ    s   „ ò8ò,ò8ò6ó
r   rŸ  c                   óN   — 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y)ÚTestNpArrayc                 óô   — d„ }t        |«      } |d«      }| j                  |t        j                  dt        j                  ¬«      «        |d«      }| j                  |t        j                  d«      «       y )Nc                 ó,   — t        j                  | «      S r   ©r   rc  ©Úargs    r   rC   z#TestNpArray.test_0d.<locals>.pyfuncJ  ó   € Ü—8‘8˜C“=Ð r   r[   r†   rŽ  )r:   r›  r   rc  rx  ©rB   rC   rF   r�   s       r   r$  zTestNpArray.test_0dI  s[   € ò	!ô �v“ˆÙ�B‹iˆØ×Ñ ¤R§X¡X¨b¼¿¹Ô%@ÔAÙ�C‹jˆØ×Ñ ¤R§X¡X¨c£]Õ3r   c                 ó2   — d„ }| j                  |ddg«       y )Nc                 óL   — t        j                  | t         j                  ¬«      S rj  )r   rc  r]  rº  s    r   rC   z.TestNpArray.test_0d_with_dtype.<locals>.pyfuncT  ó   € Ü—8‘8˜C¤r§x¡xÔ0Ð0r   )r[   )r  r(  r)  s     r   Útest_0d_with_dtypezTestNpArray.test_0d_with_dtypeS  s   € ò	1ð 	×Ñ˜6 E¨6 ?Õ3r   c                 ó:  — d„ }t        |«      } |g d¢«      }| j                  |t        j                  g d¢«      «        |d«      }| j                  |t        j                  g d¢«      «        |d«      }| j                  |t        j
                  d«      «       y )Nc                 ó,   — t        j                  | «      S r   r¹  rº  s    r   rC   z#TestNpArray.test_1d.<locals>.pyfuncZ  r¼  r   )r   rl   r[   )r‚  y              @r[   rN   )r:   r›  r   rx  rc  rc   r½  s       r   r)  zTestNpArray.test_1dY  sy   € ò	!ô �v“ˆá’JÓˆØ×Ñ ¤R§W¡WªZÓ%8Ô9á�OÓ$ˆØ×Ñ ¤R§X¡XªoÓ%>Ô?á�B‹iˆØ×Ñ ¤R§Z¡Z°£^Õ4r   c                 óB   — d„ }| j                  |ddgfddgfddg«       y )Nc                 óL   — t        j                  | t         j                  ¬«      S rj  )r   rc  rŒ   rº  s    r   rC   z.TestNpArray.test_1d_with_dtype.<locals>.pyfunci  s   € Ü—8‘8˜C¤r§z¡zÔ2Ð2r   r   r[   r  r‚  ©)r`   r  r[   ©rN   r(  r)  s     r   Útest_1d_with_dtypezTestNpArray.test_1d_with_dtypeh  s6   € ò	3ð 	×Ñ˜6Ø ˜W˜JØ! 3˜Z˜MØ+Ø!ðõ	r   c                 óB   — d„ }| j                  |ddgfddgfddg«       y )Nc                 ó0   — t        j                  | d¬«      S )NrŒ   r†   r¹  rº  s    r   rC   z2TestNpArray.test_1d_with_str_dtype.<locals>.pyfunct  s   € Ü—8‘8˜C yÔ1Ð1r   r   r[   r  r‚  rÆ  rÇ  r(  r)  s     r   Útest_1d_with_str_dtypez"TestNpArray.test_1d_with_str_dtypes  s6   € ò	2ð 	×Ñ˜6Ø ˜W˜JØ! 3˜Z˜MØ+Ø!ðõ	r   c                 óÔ   — t         d„ «       }| j                  t        «      5 } |dd«       d d d «       t        j                  «      }d}| j                  ||«       y # 1 sw Y   Œ3xY w)Nc                 ó0   — t        j                  | |¬«      S rj  r¹  )r»  rF  s     r   r"  z:TestNpArray.test_1d_with_non_const_str_dtype.<locals>.func€  s   € ä—8‘8˜C rÔ*Ð*r   )r¦   rl   rs   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~  se   € ä	ñ	+ó 
ð	+ð ×Ñœ{Ô+¨vÙ�˜Ô!÷ ,ô �V×%Ñ%Ó&ˆð"ˆà�‰�c˜6Õ"÷ ,Ð+úr5  c                 ó˜  — d„ }t        |«      } |ddg«      }| j                  |t        j                  ddgddgg«      «        |dd	g«      }| j                  |t        j                  dd
gddgg«      «        |ddgddgf«      }| j                  |t        j                  ddgddgg«      «        |ddgddgf«      }| j                  |t        j                  ddgddgg«      «        |d«      }| j                  |t        j                  ddgddgg«      «        |d«      }| j                  |t        j                  d«      «       y )Nc                 ó,   — t        j                  | «      S r   r¹  rº  s    r   rC   z#TestNpArray.test_2d.<locals>.pyfunc�  r¼  r   rD  ©rl   rv   r`   r   rl   rv   ©r`   rŽ  ©rl   r‰  rŽ  r‰  r  ))ç      ø?r   )r  r‰  rÔ  )rN   rN   )r:   r›  r   rx  rc   r½  s       r   rZ  zTestNpArray.test_2dŒ  sI  € ò	!ô �v“ˆá�V˜VÐ$Ó%ˆØ×Ñ ¤R§W¡W¨q°!¨f°q¸!°fÐ-=Ó%>Ô?Ù�X˜xÐ(Ó)ˆØ×Ñ ¤R§Z¡Z°!°S°¸A¸s¸8Ð0DÓ%EÔFá�a˜�V˜a ˜VÐ$Ó%ˆØ×Ñ ¤R§W¡W¨q°!¨f°q¸!°fÐ-=Ó%>Ô?Ù�a˜�V˜c 3˜ZÐ(Ó)ˆØ×Ñ ¤R§Z¡Z°!°Q°¸#¸s¸Ð0DÓ%EÔFáÐ*Ó+ˆØ×Ñ ¤R§Z¡Z°#°q°¸CÀ¸:Ð0FÓ%GÔHÙ�H‹oˆØ×Ñ ¤R§Z¡Z°Ó%9Õ:r   c                 óŠ   — d„ }t        |«      } |ddg«      }| j                  |t        j                  ddgddgg«      «       y )Nc                 óL   — t        j                  | t         j                  ¬«      S rj  )r   rc  rs   rº  s    r   rC   z.TestNpArray.test_2d_with_dtype.<locals>.pyfunc¢  rÀ  r   rÒ  rÓ  r`   r   rl   rv   )r:   r›  r   rs   r½  s       r   Útest_2d_with_dtypezTestNpArray.test_2d_with_dtype¡  sG   € ò	1ô �v“ˆÙ�X˜xÐ(Ó)ˆØ×Ñ ¤R§X¡X°°1¨v¸¸1°vÐ.>Ó%?Õ@r   c                 ó:  ‡ — d„ }t        |«      }t        j                  ˆ fd„«       } |d«      5   |t        j                  dg«      «       d d d «        |d«      5   |t        j
                  d«      t        j
                  d«      gf«       d d d «        |d«      5  t        j                  d	d
g«      }t        j                  d|¬«      d   } |dt        j
                  d«      |ff«       d d d «       y # 1 sw Y   Œ­xY w# 1 sw Y   ŒwxY w# 1 sw Y   y xY w)Nc                 ó,   — t        j                  | «      S r   r¹  rº  s    r   rC   z'TestNpArray.test_raises.<locals>.pyfunc«  r¼  r   c              3   ó´   •K  — ‰j                  t        «      5 }d –— d d d «       ‰j                  | t        j                  «      «       y # 1 sw Y   Œ/xY w­wr   )rÚ   r   rÞ   rß   rà   )rL  rá   rB   s     €r   Úcheck_raisesz-TestNpArray.test_raises.<locals>.check_raises°  s@   øè ø€ à×"Ñ"¤;Ô/°6Û÷ 0à�M‰M˜#œs 6×#3Ñ#3Ó4Õ5÷ 0Ð/üs   ƒA™Až.AÁAÁAz;array(float64, 1d, C) not allowed in a homogeneous sequencer‚  zOtype Tuple(int64, reflected list(int64)<iv=None>) does not have a regular shaper`   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   rD  )r:   Ú
contextlibÚcontextmanagerr   rc  r`  r=   r  )rB   rC   rF   rÛ  ÚstÚvals   `     r   Útest_raiseszTestNpArray.test_raises©  s  ø€ ò	!ô �v“ˆä	×	"Ñ	"ó	6ó 
#ð	6ñ
 ð 2õ 4á”"—(‘(˜B˜4“.Ô!÷4ñ ð :õ <á”2—8‘8˜A“;¤§¡¨!£ Ð.Ô/÷<ñ ðKõô —‘˜;¨Ð4Ó5ˆBÜ—(‘(˜1 BÔ'¨Ñ*ˆCÙ�6œBŸH™H Q›K¨Ð-Ð.Ô/÷ð ÷4ð 4ú÷<ð <ú÷ð ús$   °C9Á2DÂADÃ9DÄDÄDc                 ó†   — t         d„ «       }d}| j                  t        |«      5 } |d «       d d d «       y # 1 sw Y   y xY w)Nc                 ó,   — t        j                  | «      S r   r¹  )Úobjs    r   r"  z(TestNpArray.test_bad_array.<locals>.funcÇ  s   € ä—8‘8˜C“=Ð r   z,.*The argument "object" must be array-like.*©r   r†  r   ©rB   r"  rL  rá   s       r   Útest_bad_arrayzTestNpArray.test_bad_arrayÆ  s@   € Ü	ñ	!ó 
ð	!ð =ˆØ×#Ñ#¤K°Ô5¸Ù�ŒJ÷ 6×5Ñ5ús	   ¥	7·A c                 óˆ   — t         d„ «       }d}| j                  t        |«      5 } |dd«       d d d «       y # 1 sw Y   y xY w)Nc                 ó.   — t        j                  | |«      S r   r¹  )rä  rF  s     r   r"  z(TestNpArray.test_bad_dtype.<locals>.funcÐ  s   € ä—8‘8˜C Ó$Ð$r   z>.*The argument "dtype" must be a data-type if it is provided.*r¦   rv   rå  ræ  s       r   Útest_bad_dtypezTestNpArray.test_bad_dtypeÏ  sC   € Ü	ñ	%ó 
ð	%ð OˆØ×#Ñ#¤K°Ô5¸Ù��AŒJ÷ 6×5Ñ5ús	   ¥
8¸AN)rK   rL   rM   r$  rÁ  r)  rÈ  rË  rÎ  rZ  r×  rá  rç  rê  rN   r   r   r¶  r¶  G  s:   „ ò4ò4ò5ò	ò	ò#ò;ò*Aò0ò:ór   r¶  c                   óL   — e Zd ZdZd„ Zej                  d„ «       Zd„ Zd„ Z	d„ Z
y)ÚTestNpConcatenatez%
    Tests for np.concatenate().
    c                 ó¼   — t        j                  d«      j                  d«      }|dz   }|dz   j                  d¬«      }|dz   d d d…   }|dz   dd d d…f   }|||||fS ©Né   )rv   rl   r   r¥   ÚF)Úorderr  .©r   rm   rª   r»   ©rB   r   r   r   rw  r  s         r   Ú
_3d_arrayszTestNpConcatenate._3d_arraysÞ  ón   € Ü�I‰I�b‹M×!Ñ! )Ó,ˆØ�‰FˆØ�‰V�M‰M ˆMÓ$ˆØ�‰V‘T�r�T‰NˆØ�‰V�S™˜2˜�XÑˆØ�!�Q˜˜1ˆ}Ðr   c              #   ó¸   K  — | j                  t        «      5 }d –— d d d «       | j                  d|z  t        j                  «      «       y # 1 sw Y   Œ2xY w­w)Nz*input sizes over dimension %d do not match©rÚ   r
  rÞ   rß   rà   )rB   r   rá   s      r   Úassert_invalid_sizes_over_dimz/TestNpConcatenate.assert_invalid_sizes_over_dimæ  sH   è ø€ à×ÑœzÔ*¨fÛ÷ +à�‰ÐBÀTÑIÜ˜&×*Ñ*Ó+õ	-÷ +Ð*üs   ‚A˜A�1AÁAÁAc           	      óÄ  ‡ ‡‡	‡
— t         Š
t        ‰
«      Šˆˆ
ˆ fd„Š	ˆ	fd„}‰ j                  «       \  }}}}} ||||«        ||||«        ||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¬«        |||j	                  t
        j                  «      |«       ‰ j                  «        dD ]*  }‰ j                  d«      5   ‰|dd  |||«       d d d «       Œ, d	D ]0  }‰ j                  d«      5   ‰||d d …dd …f   ||«       d d d «       Œ2 y # 1 sw Y   ŒlxY w# 1 sw Y   ŒIxY w)
Nc                 ór   •— |d|z   fD ],  } ‰| |||¬«      } ‰| |||¬«      }‰	j                  ||«       Œ. y )Néýÿÿÿr   ©r›  )
r   r   r   r   ÚaxrH   r�   rF   rC   rB   s
          €€€r   Úcheckz(TestNpConcatenate.test_3d.<locals>.checkñ  sF   ø€ Ø˜R $™YÓ'�Ù! ! Q¨°Ô3�Ù˜A˜q !¨"Ô-�Ø×'Ñ'¨¨XÕ6ñ (r   c                 ó<   •— t        d«      D ]  } ‰| |||«       Œ y )Nrl   rå   )r   r   r   r   rþ  s       €r   Úcheck_all_axesz1TestNpConcatenate.test_3d.<locals>.check_all_axes÷  s   ø€ Ü˜až�Ù�a˜˜A˜tÕ$ñ !r   r`   r  r   r   r   )r`   r   rH  r  )r   r   rû  r  )	r    r:   rô  ÚTrË  r   rc   rÙ   rø  )rB   r   r   r   r   rw  r  r   rF   rþ  rC   s   `       @@@r   Útest_3dzTestNpConcatenate.test_3dí  sª  û€ Ü ˆÜ�v“ˆö	7ô	%ð Ÿ™Ó)‰ˆˆ1ˆa��Añ 	�q˜!˜QÔá�q˜!˜QÔá�q—s‘s˜AŸC™C §¡Ô%á�q—s‘s˜AŸC™C §¡Ô%á�q—s‘s˜AŸC™C §¡Ô%ñ 	�q—s‘s˜AŸC™C §¡Ô%ñ 	ˆa��ˆe�Q˜™$˜B˜$™ aÕ(Ùˆa�’1�Q‘R�4‘˜! !Õ$Ùˆa��A’aš˜!™"�f‘I AÕ&ñ 	�q˜!Ÿ(™(¤2§:¡:Ó.°Ô2ð 	×ÑÔ!ó #ˆDØ×3Ñ3°AÕ6Ù�a˜˜�e˜Q  4Ô(÷ 7Ð6ð #ó #ˆDØ×3Ñ3°AÕ6Ù�a˜š1˜Q™R˜4™ ! TÔ*÷ 7Ð6ñ #÷ 7Ð6ú÷ 7Ð6ús   Å;G
Æ*GÇ
G	ÇG	c                 ó†  ‡ ‡‡— t         Št        ‰«      Šˆˆˆ fd„}‰ j                  «       \  }}}}} ||||«        ||||«        ||j                  |j                  |j                  «        ||j                  |j                  |j                  «        ||j                  |j                  |j                  «        ||j                  |j                  |j                  «        ||dd  ||d d d…   «       ‰ j	                  «        ‰ j                  d«      5   ‰||d d …dd …f   |«       d d d «       y # 1 sw Y   y xY w)Nc                 óR   •—  ‰| ||«      } ‰| ||«      }‰j                  ||«       y r   rü  )r   r   r   rH   r�   rF   rC   rB   s        €€€r   rþ  z0TestNpConcatenate.test_3d_no_axis.<locals>.check#  s-   ø€ Ù˜a  A“ˆHÙ˜˜1˜a“.ˆCØ×#Ñ# C¨Õ2r   r`   r  )r   r:   rô  r  rÙ   rø  )	rB   rþ  r   r   r   rw  r  rF   rC   s	   `      @@r   Útest_3d_no_axisz!TestNpConcatenate.test_3d_no_axis  s  ú€ Ü ˆÜ�v“ˆö	3ð
 Ÿ™Ó)‰ˆˆ1ˆa��Añ 	ˆa��AŒáˆa��AŒáˆa�c‰c�1—3‘3˜Ÿ™Ôáˆa�c‰c�1—3‘3˜Ÿ™Ôáˆa�c‰c�1—3‘3˜Ÿ™Ôñ 	ˆa�c‰c�1—3‘3˜Ÿ™Ôñ 	ˆa��ˆe�Q˜™$˜B˜$™Ô ð 	×ÑÔ!ð ×/Ñ/°Õ2Ù�!�Q’q˜™�t‘W˜aÔ ÷ 3×2Ñ2ús   ÄD7Ä7E c                 ó¨  — t         }t        |«      }t        j                  d«      }|j	                  d«      }|j                  t        j                  dt        j                  fg«      «      }t        j                  d«      }| j                  «       5 } ||||«       d d d «       | j                  dt        j                  «      «       | j                  «       5 } ||||«       d d d «       | j                  dt        |j                  «      «       | j                  «       5 } ||||«       d d d «       | j                  dt        |j                  «      «       | j                  «       5 } ||d|«       d d d «       | j                  d	t        |j                  «      «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒÌxY w# 1 sw Y   Œ�xY w# 1 sw Y   ŒTxY w)
Né   )rl   r¦   r×   r[   z8all the input arrays must have same number of dimensionsz(input arrays must have compatible dtypesz.zero-dimensional arrays cannot be concatenatedr`   ú%expecting a non-empty tuple of arrays)r   r:   r   rm   rª   rË  r=   ra  rc  ÚassertTypingErrorrÞ   rß   rà   )rB   rC   rF   r   r   r   rw  rá   s           r   Útest_typing_errorsz$TestNpConcatenate.test_typing_errorsC  so  € Ü ˆÜ�v“ˆä�I‰I�b‹MˆØ�I‰I�fÓˆØ�H‰H”R—X‘X ¤R§W¡W˜~Ð.Ó/Ó0ˆÜ�H‰H�R‹Lˆð ×#Ñ#Ô%¨Ù�!�Q˜ŒN÷ &à�‰ÐPÜ˜&×*Ñ*Ó+ô	-ð ×#Ñ#Ô%¨Ù�!�Q˜ŒN÷ &à�‰Ð@Ü˜&×*Ñ*Ó+ô	-ð ×#Ñ#Ô%¨Ù�!�Q˜ŒN÷ &à�‰ÐFÜ˜&×*Ñ*Ó+ô	-ð ×#Ñ#Ô%¨Ù�!�Q˜ŒN÷ &à�‰Ð=¼sÀ6×CSÑCSÓ?TÕU÷) &Ñ%ú÷ &Ð%ú÷ &Ð%ú÷ &Ð%ús0   ÂF#ÃF0Ä"F<Å*GÆ#F-Æ0F9Æ<GÇGN)rK   rL   rM   Ú__doc__rô  rÝ  rÞ  rø  r  r  r
  rN   r   r   rì  rì  Ù  s8   „ ñòð ×Ññ-ó ð-ò0+òd"!óH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y)ÚTestNpStackz
    Tests for np.stack().
    c                 ó¼   — t        j                  d«      j                  d«      }|dz   }|dz   j                  d¬«      }|dz   d d d…   }|dz   dd d d…f   }|||||fS rî  rò  ró  s         r   rô  zTestNpStack._3d_arraysj  rõ  r   c              #   ó²   K  — | j                  t        «      5 }d –— d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w­w)Nz)all input arrays must have the same shaper÷  )rB   rá   s     r   Úassert_invalid_sizesz TestNpStack.assert_invalid_sizesr  sC   è ø€ à×ÑœzÔ*¨fÛ÷ +à�‰ÐAÜ˜&×*Ñ*Ó+õ	-÷ +Ð*üs   ‚A˜A�.AÁAÁAc                 óÀ   —  ||Ž } ||Ž }| j                  |j                  |j                  «       | j                  |j                  «       |j                  «       «       y r   )r;   rb   r›  Úflatten)rB   rC   rF   rG   rH   r�   s         r   Úcheck_stackzTestNpStack.check_stacky  sM   € Ù˜4�=ˆÙ�Tˆlˆð
 	×Ñ˜Ÿ™ H§N¡NÔ3Ø×Ñ §¡£¨x×/?Ñ/?Ó/AÕBr   c                 ó
  ‡ ‡‡‡‡
— ˆˆˆ fd„Š
ˆ
ˆfd„}‰ j                  «       \  }}}}}	 ||||«        ||||«        ||j                  |j                  |j                  «        ||j                  |j                  |j                  «        ||j                  |j                  |j                  «        ||j                  |	j                  |j                  «        |||j                  t        j                  «      |«       y )Nc                 ó8   •— ‰j                  ‰‰| ||f|z   «       y r   )r  )r   r   r   rG   rF   rC   rB   s       €€€r   rþ  z#TestNpStack.check_3d.<locals>.check„  s    ø€ Ø×Ñ˜V U¨Q°°1¨I¸Ñ,<Õ=r   c                 ó4   •—  ‰«       D ]  } ‰| |||«       Œ y r   rN   )r   r   r   rG   rþ  Úgenerate_starargss       €€r   r   z,TestNpStack.check_3d.<locals>.check_all_axes‡  s   ø€ Ù)Ö+�Ù�a˜˜A˜tÕ$ñ ,r   )rô  r  rË  r   rc   )rB   rC   rF   r  r   r   r   r   rw  r  rþ  s   ````      @r   Úcheck_3dzTestNpStack.check_3dƒ  sº   ü€ ö	>õ	%ð Ÿ™Ó)‰ˆˆ1ˆa��Añ 	�q˜!˜QÔá�q˜!˜QÔá�q—s‘s˜AŸC™C §¡Ô%á�q—s‘s˜AŸC™C §¡Ô%á�q—s‘s˜AŸC™C §¡Ô%á�q—s‘s˜AŸC™C §¡Ô%ñ 	�q˜!Ÿ(™(¤2§:¡:Ó.°Õ2r   c                 óö   — | j                  «        | j                  «        | j                  «       \  }}}}}| j                  «       5  t	         |«       «      } ||d d ||g|¢­Ž  d d d «       y # 1 sw Y   y xY w)Nr  )Úassert_no_memory_leakrÙ   rô  r  Únext)	rB   rF   r  r   r   r   rw  r  rG   s	            r   Úcheck_runtime_errorsz TestNpStack.check_runtime_errors�  so   € à×"Ñ"Ô$Ø×ÑÔ!ð Ÿ™Ó)‰ˆˆ1ˆa��AØ×&Ñ&Õ(ÜÑ)Ó+Ó,ˆDÙ�!�C�R�&˜!˜QÐ& Ó&÷ )×(Ñ(ús   ÁA/Á/A8c                 óv   — t         }t        |«      }d„ }| j                  |||«       | j                  ||«       y)z(
        stack(3d arrays, axis)
        c               3   óF   K  — t        d«      D ]  } | f–— d| z   f–— Œ y ­w)Nrl   rû  rå   r   s    r   r  z.TestNpStack.test_3d.<locals>.generate_starargs¯  s'   è ø€ Ü˜až�Ø�g’Ø˜D‘y�lÓ"ñ !ùs   ‚!N)r&   r:   r  r  ©rB   rC   rF   r  s       r   r  zTestNpStack.test_3d¨  s;   € ô ˆÜ�v“ˆò	#ð
 	�‰�f˜eÐ%6Ô7Ø×!Ñ! %Ð):Õ;r   c                 óv   — t         }t        |«      }d„ }| j                  |||«       | j                  ||«       y)z"
        stack(3d arrays)
        c               3   ó   K  — d–— y ­wr!  rN   rN   r   r   r  z6TestNpStack.test_3d_no_axis.<locals>.generate_starargs¾  ó   è ø€ Ø‹Gùó   ‚N)r$   r:   r  r  r  s       r   r  zTestNpStack.test_3d_no_axis·  s;   € ô ˆÜ�v“ˆò	ð 	�‰�f˜eÐ%6Ô7Ø×!Ñ! %Ð):Õ;r   c                 óÐ   — t         }t        |«      }t        j                  d«      }t        j                  d«      }t        j                  d«      }| j	                  |||||f«       y)z"
        stack(0d arrays)
        r[   ù       €      ÀTN)r$   r:   r   rc  r  ©rB   rC   rF   r   r   r   s         r   r$  zTestNpStack.test_0dÄ  sQ   € ô ˆÜ�v“ˆä�H‰H�R‹LˆÜ�H‰H�S‹MˆÜ�H‰H�T‹Nˆà×Ñ˜ ¨¨A¨q¨	Õ2r   c                 óÚ   — d„ }| j                  |||«       t        j                  d«      }t        j                  d«      }t        j                  d«      }| j                  |||||f«       y)zC
        3d and 0d tests for hstack(), vstack(), dstack().
        c               3   ó   K  — d–— y ­wr!  rN   rN   r   r   r  z4TestNpStack.check_xxstack.<locals>.generate_starargsÕ  r"  r#  r[   r%  TN)r  r   rc  r  )rB   rC   rF   r  r   r   r   s          r   Úcheck_xxstackzTestNpStack.check_xxstackÑ  sY   € ò	ð 	�‰�f˜eÐ%6Ô7ä�H‰H�R‹LˆÜ�H‰H�S‹MˆÜ�H‰H�T‹NˆØ×Ñ˜ ¨¨A¨q¨	Õ2r   c                 ó’  — t         }t        |«      }| j                  ||«       t        j                  d«      }t        j                  d«      dz   }| j                  |||||f«       t        j                  d«      j                  d«      }t        j                  d«      j                  d«      dz   }| j                  |||||f«       y )Nr¦   rÇ  r¥   r  rØ   )r   rv   rµ   )r)   r:   r)  r   rm   r  rª   ©rB   rC   rF   r   r   s        r   Útest_hstackzTestNpStack.test_hstackß  s¤   € ÜˆÜ�v“ˆà×Ñ˜6 5Ô)ä�I‰I�a‹LˆÜ�I‰I�a‹L˜2ÑˆØ×Ñ˜ ¨¨A¨q¨	Ô2ä�I‰I�a‹L× Ñ  Ó(ˆÜ�I‰I�a‹L× Ñ  Ó(¨3Ñ.ˆØ×Ñ˜ ¨¨A¨q¨	Õ2r   c                 ó†  — t         t        g}|D ]°  }t        |«      }| j                  ||«       t	        j
                  d«      }|dz   }| j                  |||||f«       t	        j
                  d«      j                  d«      }t	        j
                  d«      j                  d«      dz   }| j                  |||||f«       Œ² y )Nr¦   r¥   rÇ  rE  rØ   )rv   r   rµ   )r-   r0   r:   r)  r   rm   r  rª   )rB   Ú	functionsrC   rF   r   r   s         r   Útest_vstackzTestNpStack.test_vstackí  s¬   € ô ¤Ð-ˆ	ÛˆFÜ˜6“NˆEà×Ñ˜v uÔ-ä—	‘	˜!“ˆAØ�B‘ˆAØ×Ñ˜V U¨Q°°1¨IÔ6ä—	‘	˜!“×$Ñ$ VÓ,ˆAÜ—	‘	˜!“×$Ñ$ VÓ,¨sÑ2ˆAØ×Ñ˜V U¨Q°°1¨IÕ6ñ  r   c                 ó(  — t         }t        |«      }| j                  ||«       t        j                  d«      }|dz   }| j                  |||||f«       t        j                  d«      j                  d«      }|dz   }| j                  |||||f«       y )Nr¦   r¥   rö   rÑ  rµ   )r3   r:   r)  r   rm   r  rª   r+  s        r   Útest_dstackzTestNpStack.test_dstackÿ  s‡   € ÜˆÜ�v“ˆà×Ñ˜6 5Ô)ä�I‰I�a‹LˆØ�‰FˆØ×Ñ˜ ¨¨A¨q¨	Ô2ä�I‰I�b‹M×!Ñ! &Ó)ˆØ�‰GˆØ×Ñ˜ ¨¨A¨q¨	Õ2r   c                 ó  — t         }t        |«      }t        j                  d«      }|dz   }t        j                  d«      j	                  d«      }| j                  |||||f«       | j                  «        | j                  «        t        j                  d«      }| j                  «       5   ||||f«       d d d «       |j	                  d«      }| j                  «       5   ||||f«       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)Nrv   r¥   rö   ©rv   rl   r[   )r`   r`   r`   )
r6   r:   r   rm   rª   r  r  rÙ   rc  r	  r&  s         r   Útest_column_stackzTestNpStack.test_column_stack  sà   € Ü ˆÜ�v“ˆä�I‰I�a‹LˆØ�‰FˆÜ�I‰I�b‹M×!Ñ! &Ó)ˆØ×Ñ˜ ¨¨A¨q¨	Ô2ð 	×"Ñ"Ô$Ø×ÑÔ!ô �H‰H�R‹LˆØ×#Ñ#Õ%Ù�1�a˜�)Ô÷ &à�I‰I�iÓ ˆØ×#Ñ#Õ%Ù�1�a˜�)Ô÷ &Ð%÷ &Ð%ú÷ &Ð%ús   Â+C5Ã DÃ5C>ÄD
c                 óJ  — t         t        t        t        t        fD ]y  }t        |«      }t        j                  d«      j                  d«      }| j                  «       5 } ||d|«       d d d «       | j                  dt        j                  «      «       Œ{ y # 1 sw Y   Œ1xY w)Nrö   r3  r`   r  )r$   r)   r-   r3   r6   r:   r   rm   rª   r	  rÞ   rß   rà   )rB   rC   rF   r   rá   s        r   Útest_bad_arrayszTestNpStack.test_bad_arrays"  s|   € Ü ¤)¬Y¼	Ä?ÓSˆFÜ˜6“NˆEÜ—	‘	˜"“×%Ñ% fÓ-ˆAð ×'Ñ'Ô)¨VÙ�a˜˜A”÷ *à�M‰MÐAÄ3Àv×GWÑGWÓCXÕYñ T÷
 *Ð)ús   ÁBÂB"	N)rK   rL   rM   r  rô  rÝ  rÞ  r  r  r  r  r  r  r$  r)  r,  r/  r1  r4  r6  rN   r   r   r  r  d  sd   „ ñòð ×Ññ-ó ð-òCò3ò4	'ò<ò<ò3ò3ò3ò7ò$3òó*Zr   r  c                  óJ  ‡‡‡‡‡— d„ Št        ‰«      Št        j                  j                  d«      Št        j                  j                  d«      ŠdŠˆˆˆˆfd„} ˆˆˆˆfd„}t        j                  | «      }t        j                  |«      }t        |«       t        |«       y )Nc                 ó2   — t        |«      D ]  }|| }} Œ | |fS )z1Swap array x and y for t number of times
        rå   ræ   s       r   rC   z%benchmark_refct_speed.<locals>.pyfunc.  s$   € ô �q–ˆAØ�aˆq‰Að à�!ˆtˆr   rµ   i'  c                  ó   •—  ‰ ‰‰‰«       y r   rN   )rC   rç   r×   r‰   s   €€€€r   Úbench_pyfuncz+benchmark_refct_speed.<locals>.bench_pyfunc;  s   ø€ Ùˆq�!�Q�r   c                  ó   •—  ‰ ‰‰‰«       y r   rN   )rF   rç   r×   r‰   s   €€€€r   Úbench_cfuncz*benchmark_refct_speed.<locals>.bench_cfunc>  s   ø€ Ùˆa��A�r   )r:   r   r©   r   Ú	benchmarkÚprint)	r:  r<  Úpython_timeÚ
numba_timerF   rC   rç   r×   r‰   s	       @@@@@r   Úbenchmark_refct_speedrA  -  sx   ü€ òô �6‹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   r‚  r:   r   r    r$   r&   r)   r-   r0   r3   r6   r8   rP   rX   r  r  r  r…  Úobjectr¾  rÑ  rú  r  r  r%  r7  rZ  r‰  rŸ  r¶  rì  Ú
skipUnlessÚhasattrr  rA  rK   ÚmainrN   r   r   Ú<module>rN     sí  ðÛ Û 
Û Û Û 	Û Û 	å )Ý ß +Ñ +ß MÓ MÝ &Û ñ 
�4˜tÔ	$€ò%ò0òò*ò ò ò#ò ò&ô:ˆxô :ô 4�?ô 4ô
W:�< ô W:ôtD
˜,ô D
ôNNGÐ% xô NGôb5�ô 5ônAÐ$ hô nAôb+˜fô +ô\YIÐ-¨xô YIôxB�oô Bô A�_ô Aô$DIÐ,¨hô DIôN#�Xô #ôB)#�ô )#ôXF�ô FôPD�8ô Dô8-˜(ô -ô`O�/ 8ô OôdHV˜¨ô HVðV €×Ñ‘W˜R Ó)Ð+OÓPôEZ�/ 8ó EZó QðEZòPð4 ˆzÒØ€H‡M�M…Oð r   