Ë
    èÿæiÜÕ  ã                   óè  — d dl mZ d dlmZ d dlZd dlZd dlmZm	Z	m
Z
mZ d dlmZ d dlmZmZ d dlmZmZ dd	iZd	d	d
œZd„ Ze	d„ «       Ze	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#e	d„ «       Z$e	d„ «       Z%e	d„ «       Z&e	d„ «       Z'd„ Z(d„ Z)d„ Z*d „ Z+d!„ Z,d"„ Z-d#„ Z.e	d0d$„«       Z/d%„ Z0d&„ Z1d1d'„Z2d(„ Z3d)„ Z4d*„ Z5d+„ Z6d,„ Z7 G d-„ d.ee«      Z8e9d/k(  r ejt                  «        yy)2é    )Úpartial)ÚpermutationsN)ÚjitÚnjitÚ
from_dtypeÚtypeof)ÚTypingError)ÚtypesÚerrors)ÚTestCaseÚMemoryLeakMixinÚforceobjT)Ú_nrtÚnopythonc                 ó   ‡ — ˆ fd„}|S )aP  Decorator for generic check functions.
        Iterates over 'pyfuncs_to_use', calling 'func' with the iterated
        item as first argument. Example:

        @from_generic(numpy_array_reshape, array_reshape)
        def check_only_shape(pyfunc, arr, shape, expected_shape):
            # Only check Numba result to avoid Numpy bugs
            self.memory_leak_setup()
            got = generic_run(pyfunc, arr, shape)
            self.assertEqual(got.shape, expected_shape)
            self.assertEqual(got.size, arr.size)
            del got
            self.memory_leak_teardown()
    c                 ó   •‡ — ˆ ˆfd„}|S )Nc                  óB   •— ‰D �cg c]  } ‰|g| ¢­i |¤Ž‘Œ c}S c c}w ©N© )ÚargsÚkwargsÚpyfuncÚfuncÚpyfuncs_to_uses      €€úx/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_array_manipulation.pyÚresultz/from_generic.<locals>.decorator.<locals>.result!   s*   ø€ Ù@NÓOÁ°f‘D˜Ð1 $Ò1¨&Ó1ÀÑOÐOùÒOs   †r   )r   r   r   s   ` €r   Ú	decoratorzfrom_generic.<locals>.decorator    s   ù€ õ	Pàˆó    r   )r   r   s   ` r   Úfrom_genericr      s   ø€ ôð Ðr   c                 ó$   — | j                  |«      S r   )Úreshape©ÚarrÚnewshapes     r   Úarray_reshaper%   '   s   € à�;‰;�xÓ Ð r   c                 ó.   — t        j                  | |«      S r   )Únpr!   r"   s     r   Únumpy_array_reshaper(   +   s   € ä�:‰:�c˜8Ó$Ð$r   c                 ó.   — t        j                  | |«      S r   ©r'   Úbroadcast_to)r#   Úshapes     r   Únumpy_broadcast_tor-   0   s   € Ü�?‰?˜3 Ó&Ð&r   c                  ó&   — t        j                  | Ž S r   )r'   Úbroadcast_shapes©r   s    r   Únumpy_broadcast_shapesr1   4   ó   € Ü×Ñ Ð%Ð%r   c                  ó&   — t        j                  | Ž S r   )r'   Úbroadcast_arraysr0   s    r   Únumpy_broadcast_arraysr5   8   r2   r   c                 ó4   — t        j                  | |«      |   S r   r*   )r#   r,   Úidxs      r   Únumpy_broadcast_to_indexingr8   <   s   € Ü�?‰?˜3 Ó& sÑ+Ð+r   c                 ó"   — | j                  «       S r   )Úflatten©Úas    r   Úflatten_arrayr=   @   ó   € Ø�9‰9‹;Ðr   c                 ó"   — | j                  «       S r   ©Úravelr;   s    r   Úravel_arrayrB   D   s   € Ø�7‰7‹9Ðr   c                 ó6   — | j                  «       j                  S r   )rA   Úsizer;   s    r   Úravel_array_sizerE   H   s   € Ø�7‰7‹9�>‰>Ðr   c                 ó,   — t        j                  | «      S r   )r'   rA   r;   s    r   Únumpy_ravel_arrayrG   L   s   € Ü�8‰8�A‹;Ðr   c                 ó"   — | j                  «       S r   ©Ú	transposer;   s    r   Útranspose_arrayrK   P   s   € Ø�;‰;‹=Ðr   c                 ó,   — t        j                  | «      S r   ©r'   rJ   r;   s    r   Únumpy_transpose_arrayrN   T   s   € Ü�<‰<˜‹?Ðr   c                 ó0   — t        j                  | |¬«      S ©N)ÚaxesrM   ©r#   rQ   s     r   Ú numpy_transpose_array_axes_kwargrS   X   s   € ä�<‰<˜ $Ô'Ð'r   c                 óL   — t        j                  | |¬«      j                  «       S rP   )r'   rJ   ÚcopyrR   s     r   Ú%numpy_transpose_array_axes_kwarg_copyrV   ]   s   € ä�<‰<˜ $Ô'×,Ñ,Ó.Ð.r   c                 ó$   — | j                  |«      S r   rI   rR   s     r   Úarray_transpose_axesrX   b   s   € à�=‰=˜ÓÐr   c                 ó@   — | j                  |«      j                  «       S r   )rJ   rU   rR   s     r   Úarray_transpose_axes_copyrZ   g   s   € à�=‰=˜Ó×#Ñ#Ó%Ð%r   c                 ó.  — t        j                  t        j                  | |z  dz  «      | d|f«      }t        j                  t        j                  |dz  «      |df«      }||j                  z
  j                  }t        j                  |d«      }|dz   }|S )Né   )é   r   é   r^   )r'   r!   ÚarangeÚTrJ   )ÚmÚnÚr1Úr2Úr_difÚzs         r   Útranspose_issue_4708rg   l   sy   € ä	�‰”B—I‘I˜a !™e a™iÓ(¨1¨a°¨)Ó	4€BÜ	�‰”B—I‘I˜a !™eÓ$ q¨! fÓ	-€BØ�"—$‘$‰Y�M‰M€EÜ�L‰L˜ 	Ó*€EØ�‰	€AØ€Hr   c                 ó"   — | j                  «       S r   )Úsqueezer;   s    r   Úsqueeze_arrayrj   v   r>   r   c                 ó.   — t        j                  | |«      S r   )r'   Úexpand_dims)r<   Úaxiss     r   rl   rl   z   s   € Ü�>‰>˜!˜TÓ"Ð"r   c                  ó&   — t        j                  | Ž S r   )r'   Ú
atleast_1dr0   s    r   ro   ro   ~   ó   € Ü�=‰=˜$ÐÐr   c                  ó&   — t        j                  | Ž S r   )r'   Ú
atleast_2dr0   s    r   rr   rr   ‚   rp   r   c                  ó&   — t        j                  | Ž S r   )r'   Ú
atleast_3dr0   s    r   rt   rt   †   rp   r   c                 óž   — | j                   d   dz  f| j                   dd  z   }t        j                  j                  j	                  | |¬«      S )Nr   r]   r^   ©Ústrides)rw   r'   ÚlibÚstride_tricksÚ
as_strided)r<   rw   s     r   Úas_strided1r{   Š   sF   € à�y‰y˜‰|˜qÑ Ð" Q§Y¡Y¨q¨r ]Ñ2€GÜ�6‰6×Ñ×*Ñ*¨1°gÐ*Ó>Ð>r   c                 óæ   — d}| j                   d d | j                   d   |z
  dz   |fz   }| j                  | j                  d   fz   }t        j                  j                  j                  | ||¬«      S )Nr\   éÿÿÿÿr^   )r,   rw   )r,   rw   r'   rx   ry   rz   )r<   Úwindowr,   rw   s       r   Úas_strided2r   �   sm   € à€FØ�G‰G�C�RˆL˜AŸG™G B™K¨&Ñ0°1Ñ4°fÐ=Ñ=€EØ�i‰i˜1Ÿ9™9 R™=Ð*Ñ*€GÜ�6‰6×Ñ×*Ñ*¨1°EÀ7Ð*ÓKÐKr   c                 óZ   — t         j                  j                  j                  | ||¬«      S )N)rm   )r'   rx   ry   Úsliding_window_view)ÚxÚwindow_shaperm   s      r   r�   r�   ˜   s$   € ä�6‰6×Ñ×3Ñ3°A°|È$Ð3ÓOÐOr   c                 óD   — | j                   f}| j                  }d|||f<   y )Nç      ð?)r‚   Úy)r#   Úarr2dr‚   r†   s       r   Ú	bad_indexrˆ   �   s#   € Ø�‰ˆ€AØ�‰€Aà€Eˆ!ˆQˆ$‚Kr   c                 ó   — | d   S )N)r^   g       @r   ©r#   s    r   Úbad_float_indexr‹   ¤   s   € ð ˆv‰;Ðr   c                 ó0   — t        j                  | ||«      S r   )r'   Úfill_diagonal)r#   ÚvalÚwraps      r   Únumpy_fill_diagonalr�   ª   s   € Ü×Ñ˜C  dÓ+Ð+r   c                 ó,   — t        j                  | «      S r   )r'   r,   rŠ   s    r   Únumpy_shaper’   ®   s   € Ü�8‰8�C‹=Ðr   c                 ó,   — t        j                  | «      S r   )r'   rD   rŠ   s    r   Ú
numpy_sizer”   ±   s   € Ü�7‰7�3‹<Ðr   c                 ó,   — t        j                  | «      S r   )r'   Úflatnonzeror;   s    r   Únumpy_flatnonzeror—   µ   s   € Ü�>‰>˜!ÓÐr   c                 ó,   — t        j                  | «      S r   )r'   Úargwherer;   s    r   Únumpy_argwhererš   ¹   s   € Ü�;‰;�q‹>Ðr   c                 ó.   — t        j                  | |«      S r   )r'   Úresize)r<   Ú	new_shapes     r   Únumpy_resizerž   ¼   s   € Ü�9‰9�Q˜	Ó"Ð"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d„ Zd„ Zedfd„Zd„ Zefd„Zefd„Zd„ Zd„ Zefd„Zd„ Ze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,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1e2d0„ «       Z3d1„ Z4d2„ Z5d3„ Z6d4„ Z7d5„ Z8d6„ Z9d7„ Z:d8„ Z;d9„ Z<d:„ Z=d;„ Z>d<„ Z?d=„ Z@d>„ ZAd?„ ZBy@)AÚTestArrayManipulationz4
    Check shape-changing operations on arrays.
    c                 ó  ‡ ‡‡‡‡	— t         t        g}d„ Š	t        |«      ˆ	ˆ fd„«       Št        |«      ˆ	ˆ fd„«       Št        |«      ˆ	ˆ fd„«       }t        |«      ˆ	ˆ fd„«       Št        |«      ˆ	ˆ fd„«       }t        j                  d«      } ‰|d«        ‰|d	«        ‰|d
«        ‰|d«        ‰|d«       t        j                  d«      j                  d«      } ‰|d«        ‰|d	«        ‰|d
«        ‰|d«        ‰|d«        ‰|d«        ‰|d«        ‰|d«       t        j                  d«      j                  d«      } ‰|d«        ‰|d	«        ‰|d
«        ‰|d«       t        j                  d«      j                  d«      j                  } ‰|d«        ‰|d«        ||d«        ||d«        ||d«       t        j                  d«      j                  dd«      } ‰|d«        ‰|d«        ‰|d«        ‰|d«        ‰|d«        ‰|d«        ||d«        ||d«       ˆˆˆfd„}t        j                  g «      } ||«        ||j                  d «      «       ‰ j                  «        y )!Nc                 ó   —  | ||«      S r   r   )r   r#   r,   s      r   Úgeneric_runz=TestArrayManipulation.test_array_reshape.<locals>.generic_runÇ   s   € Ù˜#˜uÓ%Ð%r   c                 ó¤   •— | j                  ||«      }‰j                  «         ‰| ||«      }‰j                  ||«       ~‰j                  «        y r   )Úpy_funcÚmemory_leak_setupÚassertPreciseEqualÚmemory_leak_teardown)r   r#   r,   ÚexpectedÚgotr£   Úselfs        €€r   Úcheckz7TestArrayManipulation.test_array_reshape.<locals>.checkÊ   sL   ø€ à—~‘~ c¨5Ó1ˆHØ×"Ñ"Ô$Ù˜f c¨5Ó1ˆCØ×#Ñ# C¨Ô2ØØ×%Ñ%Õ'r   c                 óà   •— ‰j                  «         ‰| ||«      }‰j                  |j                  |«       ‰j                  |j                  |j                  «       ~‰j	                  «        y r   )r¦   ÚassertEqualr,   rD   r¨   )r   r#   r,   Úexpected_shaperª   r£   r«   s        €€r   Úcheck_only_shapezBTestArrayManipulation.test_array_reshape.<locals>.check_only_shapeÓ   sZ   ø€ ð ×"Ñ"Ô$Ù˜f c¨5Ó1ˆCØ×Ñ˜SŸY™Y¨Ô7Ø×Ñ˜SŸX™X s§x¡xÔ0ØØ×%Ñ%Õ'r   c                 ó¸   •— ‰j                  t        «      5 } ‰| ||«       d d d «       ‰j                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)Nzincompatible shape for array)ÚassertRaisesÚNotImplementedErrorr®   ÚstrÚ	exception©r   r#   r,   Úraisesr£   r«   s       €€r   Úcheck_err_shapezATestArrayManipulation.test_array_reshape.<locals>.check_err_shapeÝ   sL   ø€ à×"Ñ"Ô#6Ô7¸6Ù˜F C¨Ô/÷ 8à×ÑœS ×!1Ñ!1Ó2Ø;õ=÷ 8Ð7úó   —AÁAc                 ó¸   •— ‰j                  t        «      5 } ‰| ||«       d d d «       ‰j                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)Nz)total size of new array must be unchanged©r²   Ú
ValueErrorr®   r´   rµ   r¶   s       €€r   Úcheck_err_sizez@TestArrayManipulation.test_array_reshape.<locals>.check_err_sizeä   sL   ø€ à×"Ñ"¤:Ô.°&Ù˜F C¨Ô/÷ /à×ÑœS ×!1Ñ!1Ó2ØHõJ÷ /Ð.úr¹   c                 ó¸   •— ‰j                  t        «      5 } ‰| ||«       d d d «       ‰j                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)Nzmultiple negative shape valuesr»   r¶   s       €€r   Úcheck_err_multiple_negativezMTestArrayManipulation.test_array_reshape.<locals>.check_err_multiple_negativeë   sK   ø€ à×"Ñ"¤:Ô.°&Ù˜F C¨Ô/÷ /à×ÑœS ×!1Ñ!1Ó2Ø=õ?÷ /Ð.úr¹   é   )rÀ   )é   é   )é   r\   )rÃ   r^   r\   )r^   rÃ   r^   r^   r\   r^   ©r]   r\   rÁ   r   )é   )rÃ   rÁ   )rÁ   r\   r]   )r^   rÁ   r^   r\   r^   r]   r^   ©rÂ   rÁ   )r]   é   rÅ   é   r}   ©r}   )r}   rÈ   )rÈ   r}   rÈ   )rÈ   rÈ   r}   )r}   rÁ   )r}   éþÿÿÿrÈ   rÈ   )rÈ   rÈ   r}   r}   c                 óè   •—  ‰| d«        ‰| d«        ‰| d«        ‰| d«        ‰| dd«        ‰| dd«        ‰| dd«        ‰| d	d
«        ‰| dd«        ‰| d«        ‰| d«        ‰| d«       y )Nr   ©r   )r^   r   r]   )r   é7   r^   r   r]   r}   rÉ   ©r   r}   ©r   r   )rÁ   r}   )rÁ   r   )r}   r   rÁ   )r   r   rÁ   r   r^   ©r^   r]   r   )r#   r¬   r½   r°   s    €€€r   Úcheck_emptyz=TestArrayManipulation.test_array_reshape.<locals>.check_empty  s…   ø€ Ù�#�qŒMÙ�#�tÔÙ�#�yÔ!Ù�#Ð'Ô(á˜S " dÔ+Ù˜S %¨Ô.Ù˜S '¨6Ô2Ù˜S '¨6Ô2Ù˜S *¨iÔ8Ù˜3 Ô#Ù˜3 Ô"Ù˜3 Õ'r   )r\   r]   r   )	r%   r(   r   r'   r_   r!   r`   ÚarrayÚdisable_leak_check)
r«   r   r¸   r¿   r#   rÑ   r¬   r½   r°   r£   s
   `     @@@@r   Útest_array_reshapez(TestArrayManipulation.test_array_reshapeÄ   sw  ü€ Ü'Ô)<Ð=ˆò	&ô 
�nÓ	%ô	(ó 
&ð	(ô 
�nÓ	%ô	(ó 
&ð	(ô 
�nÓ	%ô	=ó 
&ð	=ô 
�nÓ	%ô	Jó 
&ð	Jô 
�nÓ	%ô	?ó 
&ð	?ô �i‰i˜‹mˆÙˆc�5ÔÙˆc�6ÔÙˆc�6ÔÙˆc�9ÔÙˆcÐ%Ô&Ü�i‰i˜‹m×#Ñ# IÓ.ˆÙˆc�5ÔÙˆc�6ÔÙˆc�6ÔÙˆc�9ÔÙˆcÐ%Ô&Ù�s˜BÔÙ�s˜EÔ"Ù�s˜FÔ#Ü�i‰i˜‹m×#Ñ#Ð$6Ó7ˆÙˆc�5ÔÙˆc�6ÔÙˆc�6ÔÙˆc�9Ôô �i‰i˜‹m×#Ñ# IÓ.×0Ñ0ˆÙˆc�9ÔÙˆcÐ(Ô)Ù˜˜YÔ'Ù˜˜VÔ$Ù˜˜WÔ%ô �i‰i˜‹m×#Ñ# A aÓ(ˆÙˆc�2ŒÙˆc�5ÔÙˆc�7ÔÙˆc�:ÔÙˆc�:ÔÙ�s˜GÔ$Ù# C¨Ô8Ù# C¨Ô8ö	(ô �h‰h�r‹lˆÙ�CÔÙ�C—K‘K 	Ó*Ô+ð 	×ÑÕ!r   c           	      ón  ‡ — t         t        t        t        g}t	        |«      ˆ fd„«       }t	        |«      ˆ fd„«       }t	        |«      ˆ fd„«       }t	        |«      ˆ fd„«       }t        j                  d«      t        j                  d«      j                  dd«      t        j                  d«      j                  dd	d«      t        j                  d«      j                  d
dd	d«      t        j                  d«      j                  ddd«      d d d	…d d d…d d …f   g}t        t        |«      «      D ]|  } |||   d «       t        t        t        ||   j                  «      «      «      D ]A  }t        |«      }	t        |D �
cg c]  }
|
|	z
  ‘Œ	 c}
«      } |||   |«        |||   |«       ŒC Œ~ t	        t        g«      d„ «       } |d	d«        |dd	«        |dd«       ‰ j                  «         ||d
   d«        ||d
   d«        ||d
   d«        ||d   d«        ||d
   d«        ||d   d«        ||d	   d«        ||d   d«        ||d   d«        ||d
   d«        ||d
   d«        ||d
   d«        ||d   d«        ||d   d«        ||d	   d«        ||d	   d«       ‰ j                  t         «      5 }  t#        d ¬!«      t$        «      t        j&                  dd
g«      f«       d d d «       ‰ j)                  d"t+        j,                  «      «       y c c}
w # 1 sw Y   Œ4xY w)#Nc                 óH  •— | j                  ||«      } | ||«      }‰j                  ||«       ‰j                  |j                  j                  |j                  j                  «       ‰j                  |j                  j
                  |j                  j
                  «       y r   )r¥   r§   r®   ÚflagsÚf_contiguousÚc_contiguous)r   r#   rQ   r©   rª   r«   s        €r   r¬   z>TestArrayManipulation.test_array_transpose_axes.<locals>.check9  s}   ø€ à—~‘~ c¨4Ó0ˆHÙ˜˜dÓ#ˆCØ×#Ñ# C¨Ô2Ø×Ñ˜SŸY™Y×3Ñ3Ø%Ÿ^™^×8Ñ8ô:à×Ñ˜SŸY™Y×3Ñ3Ø%Ÿ^™^×8Ñ8õ:r   c                 ó¶   •— ‰j                  t        «      5 } | ||«       d d d «       ‰j                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)Nzrepeated axis in transposer»   ©r   r#   rQ   r·   r«   s       €r   Úcheck_err_axis_repeatedzPTestArrayManipulation.test_array_transpose_axes.<locals>.check_err_axis_repeatedC  sI   ø€ à×"Ñ"¤:Ô.°&Ù�s˜DÔ!÷ /à×ÑœS ×!1Ñ!1Ó2Ø9õ;÷ /Ð.úó   —
AÁAc                 ó¶   •— ‰j                  t        «      5 } | ||«       d d d «       ‰j                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)Nz2axis is out of bounds for array of given dimensionr»   rÛ   s       €r   Úcheck_err_axis_oobzKTestArrayManipulation.test_array_transpose_axes.<locals>.check_err_axis_oobJ  sJ   ø€ à×"Ñ"¤:Ô.°&Ù�s˜DÔ!÷ /à×ÑœS ×!1Ñ!1Ó2ØQõS÷ /Ð.úrÝ   c                 óx   •— ‰j                  t        t        f«      5   | ||«       d d d «       y # 1 sw Y   y xY wr   )r²   Ú	TypeErrorr	   )r   r#   rQ   r«   s      €r   Úcheck_err_invalid_argszOTestArrayManipulation.test_array_transpose_axes.<locals>.check_err_invalid_argsQ  s,   ø€ à×"Ñ"¤I¬{Ð#;Õ<Ù�s˜DÔ!÷ =×<Ñ<ús   �
0°9rÀ   rÁ   rÂ   r]   r\   r^   é@   rÃ   c                 óz   — | j                  ||«      } | ||«      }t        j                  j                  ||«       y r   )r¥   r'   ÚtestingÚassert_equal)r   ra   rb   r©   rª   s        r   Úcheck_issue_4708zITestArrayManipulation.test_array_transpose_axes.<locals>.check_issue_4708f  s3   € à—~‘~ a¨Ó+ˆHÙ˜˜A“,ˆCô �J‰J×#Ñ# C¨Õ2r   rÈ   Úfoo)rè   g333333@)ç333333ó?rÈ   rÏ   )r]   r   r   )r\   r]   r^   r^   r   ©r^   )rÊ   ©r   r]   )éýÿÿÿr]   ©r   rì   )r\   r^   r]   )éüÿÿÿr^   r]   )r\   r^   r]   rÈ   )r\   r^   r]   éûÿÿÿT©r   z#np.transpose does not accept tuples)rS   rV   rX   rZ   r   r'   r_   r!   ÚrangeÚlenr   ÚtupleÚndimrg   rÓ   r²   r	   r   rN   rÒ   ÚassertInr´   rµ   )r«   r   r¬   rÜ   rß   râ   ÚarrsÚirQ   rô   r‚   Úneg_axesrç   Úes   `             r   Útest_array_transpose_axesz/TestArrayManipulation.test_array_transpose_axes3  s%  ø€ Ü:Ü?Ü.Ü3ð5ˆô
 
�nÓ	%ó	:ó 
&ð	:ô 
�nÓ	%ó	;ó 
&ð	;ô 
�nÓ	%ó	Só 
&ð	Sô 
�nÓ	%ó	"ó 
&ð	"ô —	‘	˜"“Ü—	‘	˜"“×%Ñ% a¨Ó+Ü—	‘	˜"“×%Ñ% a¨¨AÓ.Ü—	‘	˜"“×%Ñ% a¨¨A¨qÓ1Ü—	‘	˜"“×%Ñ% a¨¨AÓ.©s°¨s±3°Q°3²q¨yÑ9ð	;ˆô ”s˜4“yÖ!ˆAá�$�q‘'˜4Ô ä$¤U¬5°°a±·±Ó+>Ó%?Ö@�Ü˜4“y�Ü ±DÓ!9±D¨q ! d£(°DÑ!9Ó:�Ù�d˜1‘g˜tÔ$Ù�d˜1‘g˜xÕ(ñ	 Að	 "ô 
Ô+Ð,Ó	-ñ	3ó 
.ð	3ñ 	˜˜AÔÙ˜˜AÔÙ˜˜AÔð 	×ÑÔ!á˜t A™w¨Ô.Ù˜t A™w¨Ô1Ù˜t A™w¨Ô,Ù˜t A™w¨Ô1á  Q¡¨Ô0Ù  Q¡¨Ô3Ù  Q¡¨Ô6á˜4 ™7 DÔ)Ù˜4 ™7 EÔ*Ù˜4 ™7 FÔ+Ù˜4 ™7 GÔ,Ù˜4 ™7 GÔ,Ù˜4 ™7 IÔ.Ù˜4 ™7 JÔ/Ù˜4 ™7 LÔ1Ù˜4 ™7 MÔ2à×Ñœ{Ô+¨qØ5ÐŒC˜ÔÔ4Ó5´r·x±xÀÀAÀÓ7GÐ6IÔJ÷ ,à�‰Ð;Ü˜AŸK™KÓ(õ	*ùòQ ":÷L ,Ð+ús   Æ L&Ë3L+Ì+L4c                 óŠ   — t         }t        |«      }d„ } |«       D ]%  \  }}| j                   |||«       |||«      «       Œ' y )Nc               3   óÎ  K  — t        j                  ddgddgg«      df–— t        j                  ddgddgg«      df–— t        j                  ddgddgg«      df–— t        j                  ddgddgg«      df–— t        j                  ddgddgg«      d	f–— t        j                  ddgddgg«      d
f–— t        j                  dt        ¬«      df–— t        j                  ddgddgg«      df–— t        j                  ddgddgg«      df–— t        j                  dt        ¬«      df–— t        j                  g t        ¬«      df–— g d¢df–— d–— y ­w)Nr^   r]   r\   rÁ   )r]   rÁ   )rÁ   r]   )rÁ   r\   rÌ   rë   ©r]   r   r   ©Údtype©r]   r^   ©rÁ   ©r^   r\   )r   r^   r]   r\   ©r]   r\   )rÁ   r  )r'   rÒ   ÚzerosÚfloatÚintr   r   r   Úinputsz=TestArrayManipulation.test_numpy_resize_basic.<locals>.inputs�  s`  è ø€ ä—(‘(˜Q ˜F Q¨ FÐ+Ó,¨fÐ4Ò4Ü—(‘(˜Q ˜F Q¨ FÐ+Ó,¨fÐ4Ò4Ü—(‘(˜Q ˜F Q¨ FÐ+Ó,¨fÐ4Ò4Ü—(‘(˜Q ˜F Q¨ FÐ+Ó,¨dÐ2Ò2Ü—(‘(˜Q ˜F Q¨ FÐ+Ó,¨fÐ4Ò4Ü—(‘(˜Q ˜F Q¨ FÐ+Ó,¨fÐ4Ò4Ü—(‘(˜1¤eÔ,¨fÐ4Ò4ä—(‘(˜Q ˜F Q¨ FÐ+Ó,¨dÐ2Ò2Ü—(‘(˜Q ˜F Q¨ FÐ+Ó,¨aÐ/Ò/Ü—(‘(˜6¬3Ô/°Ð7Ò7Ü—(‘(˜2¤uÔ-¨vÐ5Ò5Ú Ð&Ò&Ø‹Oùs   ‚E#E%)rž   r   r§   )r«   r   Úcfuncr  r<   r�   s         r   Útest_numpy_resize_basicz-TestArrayManipulation.test_numpy_resize_basic�  sE   € ÜˆÜ�V“ˆò	ñ" #žH‰LˆAˆyØ×#Ñ#¡F¨1¨iÓ$8¹%ÀÀ9Ó:MÕNñ %r   c                 óœ  — | j                  «        t        t        «      }| j                  t        «      5 } |dd«       d d d «       | j                  dt        j                  «      «       | j                  t        «      5 } |t        j                  ddgddgg«      d«       d d d «       | j                  dt        |j                  «      «       | j                  t        «      5 } |t        j                  ddgddgg«      d	«       d d d «       | j                  d
t        |j                  «      «       | j                  t        «      5 } |t        j                  ddgddgg«      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   ŒUxY w)NÚabcr  z#The argument "a" must be array-liker   r^   r]   r\   zBThe argument "new_shape" must be an integer or a tuple of integers)rÊ   r\   z0All elements of `new_shape` must be non-negativerî   )rÓ   r   rž   r²   r	   rõ   r´   rµ   r'   rÒ   r¼   )r«   r  r·   s      r   Útest_numpy_resize_exceptionz1TestArrayManipulation.test_numpy_resize_exception¤  ss  € à×ÑÔ!ä”\Ó"ˆà×Ñœ{Ô+¨vÙ�%˜Ô ÷ ,à�‰Ð<Ü˜&×*Ñ*Ó+ô	-ð ×Ñœ{Ô+¨vÙ”"—(‘(˜Q˜q˜E 1 Q %˜=Ó)¨5Ô1÷ ,à�‰ð -ä˜&×*Ñ*Ó+ô	-ð ×ÑœzÔ*¨fÙ”"—(‘(˜Q˜q˜E 1 Q %˜=Ó)¨7Ô3÷ +à�‰ÐIÜ˜&×*Ñ*Ó+ô	-ð ×ÑœzÔ*¨fÙ”"—(‘(˜Q˜q˜E 1 Q %˜=Ó)¨2Ô.÷ +à�‰ÐIÜ˜&×*Ñ*Ó+õ	-÷% ,Ñ+ú÷
 ,Ñ+ú÷ +Ð*ú÷
 +Ð*ús/   µ
FÂ#F)Ã&#F6Å#GÆF&Æ)F3Æ6F?ÇGc                 óR  ‡ ‡‡‡— t         Št        ‰«      Šˆˆˆ fd„Šˆfd„}t        j                  d«      } ||«       t        j                  d«      j	                  d«      } ||«        ||j
                  «        ||d d d…   «       t        j                  d«      } ||«       y )Nc                 ó�   •—  ‰| |«      }‰j                  «         ‰| |«      }‰j                  ||«       ~‰j                  «        y r   )r¦   r§   r¨   )r#   rm   r©   rª   r  r   r«   s       €€€r   r¬   z5TestArrayManipulation.test_expand_dims.<locals>.checkÃ  sF   ø€ Ù˜c 4Ó(ˆHØ×"Ñ"Ô$Ù˜˜TÓ"ˆCØ×#Ñ# C¨Ô2ØØ×%Ñ%Õ'r   c                 óp   •— t        | j                   dz
  | j                  dz   «      D ]  } ‰| |«       Œ y )Nr^   )rñ   rô   )r#   rm   r¬   s     €r   Úcheck_all_axesz>TestArrayManipulation.test_expand_dims.<locals>.check_all_axesË  s0   ø€ Ü˜sŸx™x˜i¨!™m¨S¯X©X¸©\Ö:�Ù�c˜4Õ ñ ;r   rÈ   rÀ   rÄ   r}   é*   )rl   r   r'   r_   r!   r`   rÒ   )r«   r  r#   r  r¬   r   s   `  @@@r   Útest_expand_dimsz&TestArrayManipulation.test_expand_dims¿  sƒ   û€ ÜˆÜ�V“ˆö	(ô	!ô
 �i‰i˜‹lˆÙ�sÔä�i‰i˜‹m×#Ñ# IÓ.ˆÙ�sÔÙ�s—u‘uÔÙ�s™4˜R˜4‘yÔ!ä�h‰h�r‹lˆÙ�sÕr   c                 óª  — t         } t        d¬«      |«      }t        j                  d«      }| j	                  «       5 } |dd«       d d d «       | j                  dt        j                  «      «       | j	                  «       5 } ||d«       d d d «       | j                  dt        |j                  «      «       y # 1 sw Y   ŒvxY w# 1 sw Y   Œ;xY w)NTrð   rÈ   Úhellor\   z#First argument "a" must be an arrayz"Argument "axis" must be an integer)rl   r   r'   r_   ÚassertTypingErrorrõ   r´   rµ   )r«   r   r  r#   r·   s        r   Útest_expand_dims_exceptionsz1TestArrayManipulation.test_expand_dims_exceptionsÛ  s¥   € ÜˆØ"”˜TÔ" 6Ó*ˆÜ�i‰i˜‹lˆà×#Ñ#Ô%¨Ù�'˜1Ô÷ &à�‰Ð;¼SÀ×AQÑAQÓ=RÔSà×#Ñ#Ô%¨Ù�#�wÔ÷ &à�‰Ð:¼CÀ×@PÑ@PÓ<QÕR÷ &Ð%ú÷ &Ð%ús   ¾
B=Â
C	Â=CÃ	Cc                 óÎ  ‡ ‡‡‡— ˆ fd„Šˆˆˆfd„}ˆˆˆˆ fd„}t        j                  d«      }t        j                  d«      } ||«        |||«       t        j                  d«      }t        j                  d«      dz   }|d d d	…   }	 ||«        ||||	«       t        j                  d«      j                  d
«      }
|
j                  }|
d d d	…   } ||
«        ||
||«       t        j                  d«      j                  d«      }|j                  }|d d d	…   } ||«        ||||«       t        j                  d«      j                  d«      } ||«        |||||«       y )Nc                 ó†   •— ‰j                  | |«       ‰j                  | j                  «       |j                  «       «       y r   )ÚassertStridesEqualr§   r:   )rª   r©   r«   s     €r   Úcheck_resultz<TestArrayManipulation.check_atleast_nd.<locals>.check_resultê  s4   ø€ ð ×#Ñ# C¨Ô2Ø×#Ñ# C§K¡K£M°8×3CÑ3CÓ3EÕFr   c                 ó0   •—  ‰ ‰| «       ‰| «      «       y r   r   )Úargr  r  r   s    €€€r   Úcheck_singlez<TestArrayManipulation.check_atleast_nd.<locals>.check_singleñ  s   ø€ Ù™˜s›¡V¨C£[Õ1r   c                  óœ   •—  ‰| Ž } ‰| Ž }‰j                  t        |«      t        |«      «       t        ||«      D ]  \  }} ‰||«       Œ y r   )r®   rò   Úzip)	r   Úexpected_tupleÚ	got_tuplerª   r©   r  r  r   r«   s	        €€€€r   Úcheck_tuplez;TestArrayManipulation.check_atleast_nd.<locals>.check_tupleô  sN   ø€ Ù# T˜]ˆNÙ˜t˜ˆIØ×ÑœS ›^¬S°Ó-@ÔAÜ!$ Y°Ö!?‘��XÙ˜S (Õ+ñ "@r   r  y              @rÈ   rÂ   ù              ð?r}   r  rÀ   rÄ   é   )r]   r]   r]   r]   )r'   rÒ   r_   r!   r`   )r«   r   r  r  r"  Úa1Úa2Úb1Úb2Úb3Úc1Úc2Úc3Úd1Úd2Úd3rù   r  s   ```              @r   Úcheck_atleast_ndz&TestArrayManipulation.check_atleast_ndé  s2  û€ ô	Gö	2÷	,ô �X‰X�b‹\ˆÜ�X‰X�b‹\ˆÙ�RÔÙ�B˜Ôä�Y‰Y�q‹\ˆÜ�Y‰Y�q‹\˜BÑˆØ‘�"�‰XˆÙ�RÔÙ�B˜˜BÔä�Y‰Y�q‹\×!Ñ! &Ó)ˆØ�T‰TˆØ‘�"�‰XˆÙ�RÔÙ�B˜˜BÔä�Y‰Y�r‹]×"Ñ" 9Ó-ˆØ�T‰TˆØ‘�"�‰XˆÙ�RÔÙ�B˜˜BÔä�I‰I�b‹M×!Ñ! ,Ó/ˆÙ�QŒá�B˜˜B Õ#r   c                 óX   — t         } t        d¬«      |«      }| j                  ||«       y ©NTrð   )ro   r   r0  ©r«   r   r  s      r   Útest_atleast_1dz%TestArrayManipulation.test_atleast_1d  ó(   € ÜˆØ"”˜TÔ" 6Ó*ˆØ×Ñ˜f eÕ,r   c                 óX   — t         } t        d¬«      |«      }| j                  ||«       y r2  )rr   r   r0  r3  s      r   Útest_atleast_2dz%TestArrayManipulation.test_atleast_2d  r5  r   c                 óX   — t         } t        d¬«      |«      }| j                  ||«       y r2  )rt   r   r0  r3  s      r   Útest_atleast_3dz%TestArrayManipulation.test_atleast_3d"  r5  r   c                 óÄ   ‡ ‡‡— t        ‰«      Šˆˆˆ fd„}t        j                  d«      } ||«        ||j                  d«      «        ||j                  d«      «       y )Nc                 óJ   •—  ‰| «      } ‰| «      }‰j                  ||«       y r   ©r§   )r#   r©   rª   r  r   r«   s      €€€r   r¬   z5TestArrayManipulation.check_as_strided.<locals>.check*  s%   ø€ Ù˜c“{ˆHÙ˜“*ˆCØ×#Ñ# C¨Õ2r   rÀ   rÆ   )rÁ   r^   rÂ   )r   r'   r_   r!   )r«   r   r¬   r#   r  s   ``  @r   Úcheck_as_stridedz&TestArrayManipulation.check_as_strided'  sI   ú€ Ü�V“ˆö	3ô
 �i‰i˜‹mˆÙˆcŒ
Ùˆc�k‰k˜&Ó!Ô"Ùˆc�k‰k˜)Ó$Õ%r   c                 óX   — | j                  t        «       | j                  t        «       y r   )r=  r{   r   ©r«   s    r   Útest_as_stridedz%TestArrayManipulation.test_as_strided4  s   € Ø×ÑœkÔ*Ø×ÑœkÕ*r   c                 óà   — t         d„ «       }| j                  t        j                  «      5 } |«        d d d «       d}| j	                  |t        j                  «      «       y # 1 sw Y   Œ1xY w)Nc                  ó    — t        j                  d«      j                  d«      } t         j                  j                  j                  | d ¬«      S )NrÀ   rÆ   rv   )r'   r_   r!   rx   ry   rz   rŠ   s    r   rè   z>TestArrayManipulation.test_as_strided_stride_none.<locals>.foo:  s:   € ä—)‘)˜B“-×'Ñ'¨Ó/ˆCÜ—6‘6×'Ñ'×2Ñ2°3ÀÐ2ÓEÐEr   zstrides argument cannot be None)r   r²   r   r	   rõ   r´   rµ   )r«   rè   r·   Úmsgs       r   Útest_as_strided_stride_nonez1TestArrayManipulation.test_as_strided_stride_none8  sa   € ä	ñ	Fó 
ð	Fð ×Ñœv×1Ñ1Ô2°fÙŒE÷ 3ð 0ˆØ�‰�cœ3˜v×/Ñ/Ó0Õ1÷	 3Ð2ús   ¬A$Á$A-c                 ó  ‡ — ˆ fd„}t        j                  d«      }dD ])  }‰ j                  d|› �«      5   ||d|«       d d d «       Œ+ t        j                  d«      j                  dd«      }d	D ])  }‰ j                  d
|› �«      5   ||d|«       d d d «       Œ+ dD ])  }‰ j                  d
|› �«      5   ||d|«       d d d «       Œ+ t        j                  d«      j                  dddd«      }dD ])  }‰ j                  d|› �«      5   ||d|«       d d d «       Œ+ ‰ j                  d«      5   ||dd«       d d d «       y # 1 sw Y   �Œ1xY w# 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   y xY w)Nc                 óž   •— t         j                  j                  j                  | ||d¬«      }t        | ||«      }‰j	                  ||«       y )NT)Ú	writeable)r'   rx   ry   r�   r§   )r#   rƒ   rm   r©   rª   r«   s        €r   r¬   z=TestArrayManipulation.test_sliding_window_view.<locals>.checkF  sL   ø€ ä—v‘v×+Ñ+×?Ñ?Ø�\ 4°4ð @ó ˆHô & c¨<¸Ó>ˆCØ×#Ñ# C¨Õ2r   rÀ   )Nr   r}   rÌ   z1d array, axis=rÈ   éÈ   é
   é   rÎ   z2d array, axis=)N©r   r^   ©r^   r   )r^   rÊ   )rÈ   rÃ   rÁ   r]   )rÐ   )rÊ   rì   z4d array, axis=©r\   r]   z2d array, repeated axes)rÈ   r\   r\   )r   r^   r   )r'   r_   ÚsubTestr!   )r«   r¬   Úarr1rm   Úarr2Úarr4s   `     r   Útest_sliding_window_viewz.TestArrayManipulation.test_sliding_window_viewE  si  ø€ ô	3ô �y‰y˜‹}ˆÛ'ˆDØ—‘ °¨vÐ6Õ7Ù�d˜A˜tÔ$÷ 8Ð7ð (ô
 �y‰y˜‹~×%Ñ% b¨"Ó-ˆÛˆDØ—‘ °¨vÐ6Õ7Ù�d˜A˜tÔ$÷ 8Ð7ð ó
 4ˆDØ—‘ °¨vÐ6Õ7Ù�d˜F DÔ)÷ 8Ð7ð 4ô
 �y‰y˜‹~×%Ñ% a¨¨A¨qÓ1ˆÛ&ˆDØ—‘ °¨vÐ6Õ7Ù�d˜F DÔ)÷ 8Ð7ð 'ð
 �\‰\Ð3Õ4Ù�$˜	 9Ô-÷ 5Ð4÷+ 8Ñ7ú÷ 8Ð7ú÷
 8Ð7ú÷ 8Ð7ú÷ 5Ð4ús;   µEÂEÂ6EÄE*Ä1E6ÅE	ÅE	ÅE'	Å*E3	Å6E?c                 óâ  ‡ — ˆ fd„}ˆ fd„}‰ j                  «        t        j                  d«      }t        j                  d«      j                  dd«      }‰ j	                  d«      5   |d|d	d «       d d d «       ‰ j	                  d
«      5   |d|dd «       d d d «       ‰ j	                  d«      5   |d|dd «       d d d «       ‰ j	                  d«      5   |d|dd «       d d d «       ‰ j	                  d«      5   |d|dd «       d d d «       ‰ j	                  d«      5   |d|dd«       d d d «       ‰ j	                  d«      5   |d|dd«       d d d «       ‰ j	                  d«      5   |d|dd«       d d d «       ‰ j	                  d«      5   |d|dd«       d d d «       ‰ j	                  d«      5   |d|dd «       d d d «       ‰ j	                  d!«      5   |d|dd"«       d d d «       ‰ j	                  d#«      5   |d$|d «       d d d «       ‰ j	                  d%«      5   |d$|d&«       d d d «       ‰ j	                  d'«      5   |d$|d(«       d d d «       ‰ j	                  d)«      5   |d*|dd&«       d d d «       ‰ j	                  d+«      5   |d*|dd(«       d d d «       y # 1 sw Y   �Œ3xY w# 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   �ŒÓxY w# 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   �ŒsxY w# 1 sw Y   �Œ[xY w# 1 sw Y   �ŒCxY w# 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   ŒäxY w# 1 sw Y   y xY w),Nc                 ó´   •— ‰j                  t        «      5 }t        |Ž  d d d «       ‰j                  | t	        j
                  «      «       y # 1 sw Y   Œ/xY wr   )r²   r¼   r�   rõ   r´   rµ   ©rC  r   r·   r«   s      €r   Ú_raiseszFTestArrayManipulation.test_sliding_window_view_errors.<locals>._raisesj  sB   ø€ Ø×"Ñ"¤:Ô.°&Ü# TÑ*÷ /à�M‰M˜#œs 6×#3Ñ#3Ó4Õ5÷ /Ð.ús   —	AÁAc                 óÈ   •— ‰j                  t        j                  «      5 }t        |Ž  d d d «       ‰j	                  | t        j                  «      «       y # 1 sw Y   Œ/xY wr   )r²   r   r	   r�   rõ   r´   rµ   rU  s      €r   Ú_typing_errorzLTestArrayManipulation.test_sliding_window_view_errors.<locals>._typing_erroro  sH   ø€ Ø×"Ñ"¤6×#5Ñ#5Ô6¸&Ü# TÑ*÷ 7à�M‰M˜#œs 6×#3Ñ#3Ó4Õ5÷ 7Ð6ús   ¡	AÁA!rÀ   rH  rI  rJ  z1d window shape too largezwindow_shape cannot be largerrÅ   z2d window shape too large)rÁ   é   z1d window negative sizez&`window_shape` cannot contain negativer}   z2d window with a negative size)rÁ   rì   z1d array, 2d window shapez%matching length window_shape and axis)rI  r]   z$2d window shape, only one axis givenr^   z1d window shape, 2 axes givenrÈ   rÏ   z1d array, second axiszArgument axis out of boundsrÁ   z1d array, axis -2rÊ   z2d array, fourth axis)rÁ   rÁ   ©r   r\   z2d array, axis -3rí   zwindow_shape=Nonez3window_shape must be an integer or tuple of integerzwindow_shape=floatçÍÌÌÌÌÌ@zwindow_shape=tuple(float))r[  z
axis=floatz1axis must be None, an integer or tuple of integerzaxis=tuple(float))rÓ   r'   r_   r!   rN  )r«   rV  rX  rO  rP  s   `    r   Útest_sliding_window_view_errorsz5TestArrayManipulation.test_sliding_window_view_errorsi  sê  ø€ ô	6ô
	6ð 	×ÑÔ!ä�y‰y˜‹}ˆÜ�y‰y˜‹~×%Ñ% b¨"Ó-ˆð �\‰\Ð5Õ6ÙÐ3°T¸2¸tÔD÷ 7à�\‰\Ð5Õ6ÙÐ3°T¸7ÀDÔI÷ 7à�\‰\Ð3Õ4ÙÐ<¸dÀBÈÔM÷ 5à�\‰\Ð:Õ;ÙÐ<¸dÀGÈTÔR÷ <ð �\‰\Ð5Õ6ÙÐ;¸TÀ7ÈDÔQ÷ 7à�\‰\Ð@ÕAÙÐ;¸TÀ7ÈAÔN÷ Bà�\‰\Ð9Õ:ÙÐ;¸TÀ1ÀfÔM÷ ;ð �\‰\Ð1Õ2ÙÐ1°4¸¸AÔ>÷ 3à�\‰\Ð-Õ.ÙÐ1°4¸¸BÔ?÷ /à�\‰\Ð1Õ2ÙÐ1°4¸ÀÔH÷ 3à�\‰\Ð-Õ.ÙÐ1°4¸ÀÔI÷ /ð �\‰\Ð-Õ.ÙØEÀtÈTô÷ /ð �\‰\Ð.Õ/ÙØEÀtÈSô÷ 0ð �\‰\Ð5Õ6ÙØEÀtÈVô÷ 7ð �\‰\˜,Õ'ÙØCÀTÈ1Ècô÷ (ð �\‰\Ð-Õ.ÙØCÀTÈ1Èfô÷ /Ð.÷Y 7Ñ6úç6Ñ6úç4Ñ4úç;Ñ;ú÷ 7Ñ6úçAÑAúç:Ñ:ú÷ 3Ñ2úç.Ñ.úç2Ñ2úç.Ñ.ú÷ /Ñ.ú÷ 0Ñ/ú÷ 7Ð6ú÷ (Ð'ú÷ /Ð.úsÀ   Á'J$ÂJ1Â1J>ÃKÃ;KÄ K%ÅK2Å*K?ÆLÆ4LÇL&Ç>L3È"M ÉMÉ*MÊM%Ê$J.Ê1J;Ê>KËKËK"Ë%K/Ë2K<Ë?L	ÌLÌL#Ì&L0Ì3L=Í M
ÍMÍM"Í%M.ÚCc                 ó~  — t        j                  d«      j                  dd«      }|dk(  r|j                  }t        }t        |«      }|dk(  r|j                  d¬«      }| j                  |j                  |«        t        |ffi |¤Ž|«      } ||«      } ||«      }t         j                  j                  ||«       y )Né	   r\   ÚFÚA)Úlayout)r'   r_   r!   r`   r=   r   rU   r®   rb  r   rå   ræ   )	r«   r×   rb  r<   r   Ú
arraytype1r  r©   rª   s	            r   Útest_flatten_arrayz(TestArrayManipulation.test_flatten_array­  s¥   € Ü�I‰I�a‹L× Ñ   AÓ&ˆØ�SŠ=Ø—‘ˆAäˆÜ˜A“Yˆ
Ø�SŠ=à#Ÿ™°˜Ó4ˆJà×Ñ˜×*Ñ*¨FÔ3Ø+”�Z�MÑ+ UÑ+¨FÓ3ˆá˜!“9ˆÙ�A‹hˆÜ
�
‰
×Ñ ¨#Õ.r   c                 óŒ   — | j                  t        ¬«       | j                  t        d¬«       | j                  t        d¬«       y )N©r×   r`  )r×   rb  ra  )rd  Úno_pyobj_flagsr?  s    r   Útest_flatten_array_npmz,TestArrayManipulation.test_flatten_array_npm¿  s9   € Ø×Ñ¤nÐÔ5Ø×Ñ¤n¸SÐÔAØ×Ñ¤n¸SÐÕAr   c                 óÀ  ‡ ‡‡‡— ˆˆ fd„}t        |t        «      Št        |t        «      Šˆˆfd„} |t        j                  d«      j                  dd«      d¬«        |t        j                  d«      j                  ddd¬«      d¬«        |t        j                  d	«      j                  ddd
«      d d …d d …df   d¬«        |t        j                  d	«      j                  d
dd«      d¬«        |t        j                  d	«      j                  d
ddd¬«      d¬«        |t        j                  d«      j                  d
ddd
«      d d …d d …d d …df   d¬«       y )Nc                 óÜ  •— t        |«      }‰
j                  |j                  |«        t        |ffi ‰	¤Ž| «      } | |«      } ||«      }t        j
                  j                  ||«       |j                  j                  |j                  j                  k7  }|j                  j                  |j                  j                  k7  }‰
j                  ||dk7  «       ‰
j                  ||«       y )Nr]  )	r   r®   rb  r   r'   rå   ræ   ÚctypesÚdata)r   r<   Úassume_layoutrc  r  r©   rª   Ú	py_copiedÚ	nb_copiedr×   r«   s            €€r   Úgeneric_checkz=TestArrayManipulation.test_ravel_array.<locals>.generic_checkÅ  s»   ø€ ä ›ˆJØ×Ñ˜Z×.Ñ.°Ô>Ø/”C˜˜Ñ/¨Ñ/°Ó7ˆEá˜a“yˆHÙ˜“(ˆCä�J‰J×#Ñ# H¨cÔ2àŸ™Ÿ™¨(¯/©/×*>Ñ*>Ñ>ˆIØŸ™Ÿ™¨#¯*©*¯/©/Ñ9ˆIØ×Ñ˜Y¨¸Ñ(<Ô=Ø×Ñ˜Y¨	Õ2r   c                  ó&   •—  ‰| i |¤Ž  ‰| i |¤Ž y r   r   )r   r   Úcheck_functionÚcheck_methods     €€r   r¬   z5TestArrayManipulation.test_ravel_array.<locals>.checkØ  s   ø€ Ù˜$Ð) &Ò)Ù˜DÐ+ FÓ+r   r_  r\   r]  )rm  r`  ©Úorderé   r]   r   ra  é$   )r   rB   rG   r'   r_   r!   )r«   r×   rp  r¬   rr  rs  s   ``  @@r   Útest_ravel_arrayz&TestArrayManipulation.test_ravel_arrayÄ  s  û€ õ	3ô  ˜}¬kÓ:ˆÜ  Ô0AÓBˆõ	,ñ
 	Œb�i‰i˜‹l×"Ñ" 1 aÓ(¸Õ<ÙŒb�i‰i˜‹l×"Ñ" 1 a¨sÐ"Ó3À3ÕGÙŒb�i‰i˜‹m×#Ñ# A q¨!Ó,ªQ²°1¨WÑ5ÀSÕIñ 	Œb�i‰i˜‹m×#Ñ# A q¨!Ó,¸CÕ@ÙŒb�i‰i˜‹m×#Ñ# A q¨!°3Ð#Ó7ÀsÕKÙŒb�i‰i˜‹m×#Ñ# A q¨!¨QÓ/²²1²a¸°
Ñ;È3ÖOr   c                 óö   — t        j                  d«      j                  dd«      }t        }t	        |«      } t        |ffi |¤Ž|«      } ||«      } ||«      }t         j                  j                  ||«       y ©Nr_  r\   )r'   r_   r!   rE   r   r   rå   ræ   ©r«   r×   r<   r   rc  r  r©   rª   s           r   Útest_ravel_array_sizez+TestArrayManipulation.test_ravel_array_sizeæ  sh   € Ü�I‰I�a‹L× Ñ   AÓ&ˆä!ˆÜ˜A“Yˆ
Ø+”�Z�MÑ+ UÑ+¨FÓ3ˆá˜!“9ˆÙ�A‹hˆÜ
�
‰
×Ñ ¨#Õ.r   c                 ó0   — | j                  t        ¬«       y ©Nrf  )rx  rg  r?  s    r   Útest_ravel_array_npmz*TestArrayManipulation.test_ravel_array_npmñ  s   € Ø×Ñ¤NÐÕ3r   c                 ó0   — | j                  t        ¬«       y r~  )r|  rg  r?  s    r   Útest_ravel_array_size_npmz/TestArrayManipulation.test_ravel_array_size_npmô  s   € Ø×"Ñ"¬Ð"Õ8r   c                 óN   ‡— t        t        t        g«      ˆfd„«       } |«        y )Nc                 óì   •— t        j                  d«      j                  dd«      }t        |«      } t	        |ffi ‰¤Ž| «      } | |«      } ||«      }t         j
                  j                  ||«       y rz  )r'   r_   r!   r   r   rå   ræ   )r   r<   rc  r  r©   rª   r×   s         €r   r¬   z9TestArrayManipulation.test_transpose_array.<locals>.checkø  sd   ø€ ä—	‘	˜!“×$Ñ$ Q¨Ó*ˆAä ›ˆJØ/”C˜˜Ñ/¨Ñ/°Ó7ˆEá˜a“yˆHÙ˜“(ˆCÜ�J‰J×#Ñ# H¨cÕ2r   )r   rK   rN   )r«   r×   r¬   s    ` r   Útest_transpose_arrayz*TestArrayManipulation.test_transpose_array÷  s(   ø€ Ü	”Ô(=Ð>Ó	?ó	3ó 
@ð	3ñ 	�r   c                 ó0   — | j                  t        ¬«       y r~  )r„  rg  r?  s    r   Útest_transpose_array_npmz.TestArrayManipulation.test_transpose_array_npm  s   € Ø×!Ñ!¬Ð!Õ7r   c                 óü   — t        j                  d«      j                  ddddd«      }t        }t	        |«      } t        |ffi |¤Ž|«      } ||«      } ||«      }t         j                  j                  ||«       y )NrÀ   r]   r^   r\   rÁ   )r'   r_   r!   rj   r   r   rå   ræ   r{  s           r   Útest_squeeze_arrayz(TestArrayManipulation.test_squeeze_array  sp   € Ü�I‰IÐ'Ó(×0Ñ0°°A°q¸!¸QÓ?ˆäˆÜ˜A“Yˆ
Ø+”�Z�MÑ+ UÑ+¨FÓ3ˆá˜!“9ˆÙ�A‹hˆÜ
�
‰
×Ñ ¨#Õ.r   c                 óâ   — | j                  t        j                  «      5 }| j                  t        ¬«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nrf  ri   )r²   r   r	   rˆ  rg  rõ   r´   rµ   ©r«   r·   s     r   Útest_squeeze_array_npmz,TestArrayManipulation.test_squeeze_array_npm  sR   € Ø×Ñœv×1Ñ1Ô2°fØ×#Ñ#¬.Ð#Ô9÷ 3ð 	�‰�i¤ V×%5Ñ%5Ó!6Õ7÷ 3Ð2ús    A%Á%A.c                 ó  — t         d„ «       }t         d„ «       }t        j                  d«      j                  d«      }t	        d «      t        j
                  ft        j
                  t	        d «      ft	        d«      t        j
                  dft        j
                  dt	        d «      ft	        d«      t        t        j
                  dfdt        j
                  t        ft        j
                  t	        d«      t        j
                  dfdt        d t        j
                  ft        j
                  t	        d«      t        t        j
                  dfdt        j
                  t        j
                  t        ft        j
                  dt        j
                  t        ft	        d«      dt        j
                  d ft        j
                  dt        d fg}|j                  }|}|j                  }|}|D ]ž  }	 |||	«      }
 |||	«      }t        j                  j                  |
|«       t        j                  |«      }||	   } ||j                  «       |	|«      }
 ||j                  «       |	|«      }t        j                  j                  |
|«       Œ  y )Nc                 ó   — | |   S r   r   )r<   r7   s     r   Únp_new_axis_getitemz@TestArrayManipulation.test_add_axis.<locals>.np_new_axis_getitem  s   € à�S‘6ˆMr   c                 ó   — || |<   | S r   r   )r<   r7   Úitems      r   Únp_new_axis_setitemz@TestArrayManipulation.test_add_axis.<locals>.np_new_axis_setitem  s   € àˆAˆc‰FØˆHr   iH  )rÁ   rÈ   rÂ   é   r^   r]   r\   )r   r'   r_   r!   ÚsliceÚnewaxisÚEllipsisr¥   rå   ræ   Ú
zeros_likerU   )r«   rŽ  r‘  r<   Ú	idx_casesÚpyfunc_getitemÚcfunc_getitemÚpyfunc_setitemÚcfunc_setitemr7   r©   rª   Úa_emptyr�  s                 r   Útest_add_axisz#TestArrayManipulation.test_add_axis  sé  € Ü	ñ	ó 
ð	ô 
ñ	ó 
ð	ô �I‰I�mÓ$×,Ñ,¨\Ó:ˆä�4‹[œ"Ÿ*™*Ð%Ü�Z‰Zœ˜t›Ð%Ü�1‹X”r—z‘z 1Ð%Ü�Z‰Z˜œE $›KÐ(Ü�1‹X”x¤§¡¨QÐ/Ø”—
‘
œHÐ%Ü�Z‰Zœ˜q›¤2§:¡:¨qÐ1Ø”˜$¤§
¡
Ð+Ü�Z‰Zœ˜q›¤8¬R¯Z©Z¸Ð;Ø”—
‘
œBŸJ™J¬Ð1Ü�Z‰Z˜œBŸJ™J¬Ð1Ü�1‹X�qœ"Ÿ*™* dÐ+Ü�Z‰Z˜œH dÐ+ð
ˆ	ð -×4Ñ4ˆØ+ˆà,×4Ñ4ˆØ+ˆãˆCÙ% a¨Ó-ˆHÙ  3Ó'ˆCÜ�J‰J×#Ñ# H¨cÔ2ä—m‘m AÓ&ˆGØ�S‘6ˆDá% g§l¡l£n°c¸4Ó@ˆHÙ §¡£°°TÓ:ˆCÜ�J‰J×#Ñ# H¨cÕ2ñ r   c                 ó�  — | j                  «       5 }t        t        j                  dt        j                  fdt        j                  fg«      «      }t        j                  t
        j                  dd«      } t        ||f«      t        «       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nr‚   r†   r]   r]  zUnsupported array index type)r  r   r'   rÿ   Úint32r
   ÚArrayr   rˆ   rõ   r´   rµ   )r«   r·   rc  Ú
arraytype2s       r   Útest_bad_index_npmz(TestArrayManipulation.test_bad_index_npmE  s•   € Ø×#Ñ#Ô%¨Ü#¤B§H¡H¨s´B·H±H¨oØ/2´B·H±H¨oð.?ó %@ó AˆJäŸ™¤U§[¡[°!°SÓ9ˆJØ*ŒD�*˜jÐ)Ó*¬9Ô5÷	 &ð
 	�‰Ð4´c¸&×:JÑ:JÓ6KÕL÷ &Ð%ús   ‘A=B<Â<Cc           	      ó
  — | j                  «       5 } t        t        j                  t        j                  dd«      f«      t
        «       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nr]   r]  z$Unsupported array index type float64)	r  r   r
   r   Úfloat64r‹   rõ   r´   rµ   rŠ  s     r   Útest_bad_float_index_npmz.TestArrayManipulation.test_bad_float_index_npmM  s^   € Ø×#Ñ#Ô%¨Ø7ŒD”%—+‘+œeŸm™m¨Q°Ó4Ð6Ó7¼ÔH÷ &à�‰Ð<Ü˜&×*Ñ*Ó+õ	-÷ &Ð%ús   ‘:A9Á9Bc                 ó¨  ‡ ‡‡‡	— t         Š	 t        d¬«      ‰	«      Šd„ Šd„ }ˆfd„}ˆfd„}ˆˆ	ˆ fd„} |d«      D ]  } |«       D ]  } |||«       Œ Œ  |d«      D ]  } |«       D ]  } |||«       Œ Œ t        j                  dgd	z  «      j	                  dd«      } ||d
«        ||g d¢«        ||t        j                  g d¢«      «       y )NTrð   c              3   óx   K  — | | f–— d| z  | f–— | d| z  f–— d| z  dz   d| z  dz
  f–— | | | | f–— d–— y ­w)Nr]   r^   ©r^   r^   r^   r   )rb   s    r   Ú_shape_variationszITestArrayManipulation.test_fill_diagonal_basic.<locals>._shape_variationsW  sY   è ø€ à�a�&ŠLà�q‘5˜!�*Òà�a˜!‘e�*Òà˜‘E˜A‘I  Q¡¨¡Ð,Ò,à�a˜˜A�,Òà‹Oùs   ‚8:c               3   óÐ  K  — d–— d–— t         j                  –— t         j                   –— d–— t        j                  d«      –— d–— ddg–— t        j                  d«      j	                  dd	d
d«      –— t        j
                  t        j                  d«      j	                  d	d	«      «      –— t        j                  d«      j	                  d	d	«      d d d…   –— y ­w)Nr^   g‰A`åÐ"	@TrÁ   r  rÃ   r_  é6   r\   r]   r}   )r'   ÚnanÚinfr_   r!   Úasfortranarrayr   r   r   Ú_val_variationszGTestArrayManipulation.test_fill_diagonal_basic.<locals>._val_variationse  s®   è ø€ ØŠGØŠKÜ—&‘&ŠLÜ—6‘6�'ŠMØŠJÜ—)‘)˜A“,ÒØŠJØ�a�&ŠLÜ—)‘)˜B“-×'Ñ'¨¨1¨a°Ó3Ò3Ü×#Ñ#¤B§I¡I¨a£L×$8Ñ$8¸¸AÓ$>Ó?Ò?Ü—)‘)˜A“,×&Ñ& q¨!Ó,©T¨r¨TÑ2Ó2ùs   ‚C$C&c              3   óê   •K  —  ‰| «      D ]c  }t        j                  |t         j                  ¬«      –— t        j                  t        j                  |t         j                  ¬«      «      –— Œe y ­w)Nrþ   )r'   r  r¤  r®  Úones)rb   r,   r©  s     €r   Ú#_multi_dimensional_array_variationsz[TestArrayManipulation.test_fill_diagonal_basic.<locals>._multi_dimensional_array_variationss  sK   øè ø€ Ù*¨1Ö-�Ü—h‘h˜u¬B¯J©JÔ7Ò7Ü×'Ñ'¬¯©°¼R¿Z¹ZÔ(HÓIÓIñ .ùs   ƒA0A3c           
   3   óâ   •K  —  ‰| «      D ]Z  }t        j                  t        |D �cg c]  }|dz  ‘Œ	 c}«      t         j                  ¬«      }t        d„ |D «       «      }||   –— Œ\ y c c}w ­w)Nr]   rþ   c              3   ó<   K  — | ]  }t        d |dz  d«      –— Œ y­w)r   r]   N)r“  )Ú.0r‚   s     r   Ú	<genexpr>zvTestArrayManipulation.test_fill_diagonal_basic.<locals>._multi_dimensional_array_variations_strided.<locals>.<genexpr>|  s   è ø€ ÐA¹5°aœu Q¨¨A©¨q×1¹5ùs   ‚)r'   r  ró   r¤  )rb   r,   r‚   ÚtmpÚslicerr©  s        €r   Ú+_multi_dimensional_array_variations_stridedzcTestArrayManipulation.test_fill_diagonal_basic.<locals>._multi_dimensional_array_variations_stridedy  s_   øè ø€ Ù*¨1Ö-�Ü—h‘hœu±UÓ%;±U° a¨!£e°UÑ%;Ó<ÄBÇJÁJÔO�ÜÑA¹5ÓAÓA�Ø˜&‘kÓ!ñ .ùÚ%;ùs   ƒ$A/§A*³<A/c                 ó²   •— dD ]Q  }| j                  «       }| j                  «       }|€i }nd|i} ‰||fi |¤Ž  ‰||fi |¤Ž ‰j                  ||«       ŒS y )N)NTFr�   )rU   r§   )	r#   rŽ   r�   r<   ÚbÚparamsr  r   r«   s	         €€€r   Ú_check_fill_diagonalzLTestArrayManipulation.test_fill_diagonal_basic.<locals>._check_fill_diagonal  sd   ø€ Û)�Ø—H‘H“J�Ø—H‘H“J�à�<Ø‘Fà$ d˜^�Fá�q˜#Ñ( Ò(Ù�a˜Ñ' Ò'Ø×'Ñ'¨¨1Õ-ñ *r   r\   r_  F)FTF©TFT)r�   r   r'   rÒ   r!   )
r«   r¯  r²  r¹  r½  r#   rŽ   r©  r  r   s
   `      @@@r   Útest_fill_diagonal_basicz.TestArrayManipulation.test_fill_diagonal_basicS  sÐ   û€ Ü$ˆØ"”˜TÔ" 6Ó*ˆò	ò	3ô	Jô	"ö	.ñ 7°qÖ9ˆCÙ&Ö(�Ù$ S¨#Õ.ñ )ð :ñ ?¸qÖAˆCÙ&Ö(�Ù$ S¨#Õ.ñ )ð Bô
 �h‰h˜�v ‘zÓ"×*Ñ*¨1¨aÓ0ˆÙ˜S %Ô(Ù˜SÒ"6Ô7Ù˜S¤"§(¡(Ò+>Ó"?Õ@r   c                 ó  ‡ ‡— t         } t        d¬«      |«      Šd}‰ j                  «        t        j                  g «      t        j
                  d«      fD ]B  }‰ j                  t        «      5 } ‰||«       d d d «       dt        j                  «      v rŒBJ ‚ ‰ j                  t        «      5 }t        j                  d«      } ‰||«       ‰ j                  dt        |j                  «      «       d d d «       ˆˆ fd„}t        j                  d	t        j                  ¬
«      }t        j                  } |||«       dt        j                  g} |||«       t        j                  g d¢t        j                   ¬
«      } |||«       t        j                  d	t        j"                  ¬
«      }g d¢} |||«       d} |||«       t        j                  dg«      } |||«       y # 1 sw Y   �ŒrxY w# 1 sw Y   �ŒxY w)NTrð   r^   rÈ   z'The first argument must be at least 2-D)r\   r\   rÁ   z/All dimensions of input must be of equal lengthc                 ó¶   •— ‰j                  t        «      5 } ‰| |«       d d d «       ‰j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nz'Unable to safely conform val to a.dtyper»   )r#   rŽ   r·   r  r«   s      €€r   Ú_assert_raiseszPTestArrayManipulation.test_fill_diagonal_exception_cases.<locals>._assert_raises°  sF   ø€ Ø×"Ñ"¤:Ô.°&Ù�c˜3”÷ /à×ÑÐFÌÈF×L\ÑL\ÓH]Õ^÷ /Ð.úrÝ   ©r\   r\   rþ   çffffff
@)r^   r]   g    _ B)gffffffö?gÍÌÌÌÌÌ@ç}Ã”%­I²Ôgp=½Ø´TrÅ  )r�   r   rÓ   r'   rÒ   r±  r²   r	   r´   rµ   r¼   r  r®   rŸ  r¬  r­  Úint64Úfloat32)r«   r   rŽ   r<   r·   rÂ  r#   r  s   `      @r   Ú"test_fill_diagonal_exception_casesz8TestArrayManipulation.test_fill_diagonal_exception_cases›  s“  ù€ Ü$ˆØ"”˜TÔ" 6Ó*ˆØˆð 	×ÑÔ!ô —‘˜"“œrŸw™w q›zÓ)ˆAØ×"Ñ"¤;Ô/°6Ù�a˜”÷ 0à<ÄÀF×DTÑDTÓ@UÒUÐUÐUð *ð ×ÑœzÔ*¨fÜ—‘˜Ó#ˆAÙ�!�SŒMØ×ÑÐNÔPSÐTZ×TdÑTdÓPeÔf÷ +õ	_ô
 �h‰h�v¤R§X¡XÔ.ˆÜ�f‰fˆÙ�s˜CÔ à”B—F‘FˆmˆÙ�s˜CÔ ä�h‰h’|¬2¯8©8Ô4ˆÙ�s˜CÔ ä�h‰h�v¤R§Z¡ZÔ0ˆÚ ˆÙ�s˜CÔ àˆÙ�s˜CÔ ä�h‰h˜�xÓ ˆÙ�s˜CÕ ÷E 0Ñ/ú÷
 +Ñ*ús   Á/
G)Â1AG6Ç)G3	Ç6H c                 ó4  — t         } t        d¬«      |«      }t        j                  d«      dgt        j                  d«      dgt        j                  d«      dgt        j                  d«      dgt        j                  d«      dgt        j                  d«      d	gt        j
                  d
«      dgt        j
                  d
«      dgt        j
                  d
«      dgt        j                  d«      dgt        j                  d«      dgt        j                  d«      dgt        j                  d«      dgt        j                  d«      dgt        j                  d«      dgddgddgg}|D ])  \  }} |||«      } |||«      }| j                  ||«       Œ+ y )NTrð   r   rÌ   rê   ©r\   r^   ©r]   ©r^   r]   r\   r\   r  r  r]   rÐ   rë   r   rý   ©r]   r]   )r-   r   r'   rÒ   r±  r_   r§   )r«   r   r  rl  Úinput_arrayr,   r©   rª   s           r   Útest_broadcast_toz'TestArrayManipulation.test_broadcast_toÉ  sX  € Ü#ˆØ"”˜TÔ" 6Ó*ˆô
 �X‰X�a‹[˜$ÐÜ�X‰X�a‹[˜$ÐÜ�X‰X�a‹[˜$ÐÜ�W‰W�Q‹Z˜ÐÜ�W‰W�Q‹Z˜ÐÜ�W‰W�Q‹Z˜Ð#Ü�Y‰Y�q‹\˜4Ð Ü�Y‰Y�q‹\˜6Ð"Ü�Y‰Y�q‹\˜6Ð"ä�W‰W�Q‹Z˜ˆOÜ�W‰W�Q‹Z˜ˆOÜ�W‰W�Q‹Z˜ˆOô �W‰W�Q‹Z˜ÐÜ�W‰W�V‹_˜fÐ%Ü�W‰W�V‹_˜fÐ%à�ˆKà�VÐð-
ˆó0 #'ÑˆK˜Ù˜k¨5Ó1ˆHÙ˜ UÓ+ˆCØ×#Ñ# C¨Õ2ñ #'r   c                 óú   — t         } t        d¬«      |«      }t        j                  d«      ddg}d}|D ]D  } |||«      } |||«      }| j	                  ||«       | j                  |j                  d   «       ŒF y )NTrð   é{   r   Ú	WRITEABLE)r-   r   r'   rÒ   r§   ÚassertFalser×   )r«   r   r  r  r,   r#   r©   rª   s           r   Útest_broadcast_to_0d_arrayz0TestArrayManipulation.test_broadcast_to_0d_arrayì  s‚   € Ü#ˆØ"”˜TÔ" 6Ó*ˆô �H‰H�S‹MØØð
ˆð ˆÛˆCÙ˜c 5Ó)ˆHÙ˜˜UÓ#ˆCØ×#Ñ# H¨cÔ2à×Ñ˜SŸY™Y {Ñ3Õ4ñ r   c                 ó8  — t         } t        d¬«      |«      }t        j                  d«      dt        dgt        j                  d«      dt        dgt        j                  d«      dt        dgddt        dgddt        dgt        j                  d«      dt
        d	gt        j                  d«      d
t
        d	gt        j                  d«      dt
        d	gt        j                  d«      dt
        d	gt        j                  d«      dt
        dgt        j                  d«      dt
        dgt        j                  d«      dt
        dgt        j                  d«      dt
        dgt        j                  d«      dt
        dgt        j                  d«      dt        dgddt        dgddt        dgg}| j                  «        |D ]O  \  }}}}| j                  |«      5 } |||«       d d d «       | j                  |t        j                  «      «       ŒQ y # 1 sw Y   Œ1xY w)NTrð   rÌ   r   z/Cannot broadcast a non-scalar to a scalar arrayrê   rÊ  )rÑ  z=operands could not be broadcast together with remapped shapesrË  r  rÐ   r   ©r^   r^   zDinput operand has more dimensions than allowed by the axis remappingrÍ  r}   z4all elements of broadcast shape must be non-negativerÉ   )r}   r]   ©gš™™™™™ñ?gš™™™™™@z7The second argument "shape" must be a tuple of integersr  z-The first argument "array" must be array-liker\   )r]   r<   z*object cannot be interpreted as an integer)r-   r   r'   r  r	   r¼   rÓ   r²   rõ   r´   rµ   )	r«   r   r  rl  r#   Útarget_shapeÚerrrC  r·   s	            r   Útest_broadcast_to_raisesz.TestArrayManipulation.test_broadcast_to_raises  sþ  € Ü#ˆØ"”˜TÔ" 6Ó*ˆô
 �X‰X�d‹^˜R¤Ø>ð@ä�X‰X�d‹^˜R¤Ø>ð@ä�X‰X�d‹^˜R¤Ø>ð@à�”[Ø>ð@à�RœØ>ð@ä�X‰X�d‹^˜T¤:ØLðNä�X‰X�d‹^˜T¤:ØLðNä�X‰X�d‹^˜T¤:ØLðNä�X‰X�fÓ˜v¤zØLðNä�X‰X�fÓ˜t¤ZØSðUä�X‰X�fÓ˜t¤ZØSðUä�X‰X�d‹^˜R¤ØCðEä�X‰X�d‹^˜U¤JØCðEä�X‰X�fÓ˜w¬
ØCðEä�X‰X�fÓ˜z¬;ØFðHà�dœKØ<ð>à�œ+Ø9ð;ðC#
ˆðH 	×ÑÔ!Û+/Ñ'ˆC�˜s CØ×"Ñ" 3Ô'¨6Ù�c˜<Ô(÷ (à�M‰M˜#œs 6×#3Ñ#3Ó4Õ5ñ ,0ß'Ð'ús   Ç
HÈH	c                 ón   — t         d„ «       }|j                  «       } |«       }| j                  ||«       y )Nc                  ó.   — t        j                  dd«      S )Nr<   r  r*   r   r   r   Ú_broadcast_to_1zMTestArrayManipulation.test_broadcast_to_corner_cases.<locals>._broadcast_to_13  s   € ä—?‘? 3¨Ó/Ð/r   )r   r¥   r§   )r«   rÝ  r©   rª   s       r   Útest_broadcast_to_corner_casesz4TestArrayManipulation.test_broadcast_to_corner_cases2  s<   € Ü	ñ	0ó 
ð	0ð #×*Ñ*Ó,ˆÙÓˆØ×Ñ ¨#Õ.r   c                 ó  — t         } t        d¬«      |«      }t        j                  dt        j                  ¬«      }d} |||«      }d|d<   | j                  |j                  «       d«       | j                  |j                  «       d«       y )	NTrð   r]   rþ   rÍ  rI  r   rJ  )r-   r   r'   r  rŸ  r®   Úsum)r«   r   r  rÎ  r,   Úviews         r   Útest_broadcast_to_change_viewz3TestArrayManipulation.test_broadcast_to_change_view;  ss   € Ü#ˆØ"”˜TÔ" 6Ó*ˆÜ—h‘h˜q¬¯©Ô1ˆØˆÙ�[ %Ó(ˆØˆ�A‰à×Ñ˜Ÿ™Ó*¨BÔ/Ø×Ñ˜Ÿ™› RÕ(r   c                 óÈ   — t         } t        d¬«      |«      }t        j                  d«      ddgg}|D ],  \  }}} ||||«      } ||||«      }| j	                  ||«       Œ. y )NTrð   r]   rÍ  rê   )r8   r   r'   r±  r§   )	r«   r   r  rl  rÎ  r,   r7   r©   rª   s	            r   Útest_broadcast_to_indexingz0TestArrayManipulation.test_broadcast_to_indexingF  sp   € Ü,ˆØ"”˜TÔ" 6Ó*ˆä�W‰W�Q‹Z˜ Ð&ð
ˆó (,Ñ#ˆK˜ Ù˜k¨5°#Ó6ˆHÙ˜ U¨CÓ0ˆCØ×#Ñ# C¨Õ2ñ (,r   c                 óœ   — t         d„ «       }t        j                  d«      }|j                  |«      } ||«      }| j	                  ||«       y )Nc                 óv   — t        j                  | d«      }||j                  |j                  |j                  fS )Nr  )r'   r+   rD   r,   rw   )r#   Úrets     r   rè   z@TestArrayManipulation.test_broadcast_to_array_attrs.<locals>.fooT  s-   € ä—/‘/ # vÓ.ˆCØ˜Ÿ™ #§)¡)¨S¯[©[Ð8Ð8r   r\   )r   r'   r_   r¥   r§   )r«   rè   r#   r©   rª   s        r   Útest_broadcast_to_array_attrsz3TestArrayManipulation.test_broadcast_to_array_attrsQ  sL   € ô 
ñ	9ó 
ð	9ô �i‰i˜‹lˆà—;‘;˜sÓ#ˆÙ�#‹hˆØ×Ñ ¨#Õ.r   c                 óB  — t         } t        d¬«      |«      }dgddgdgdgdgddgg d¢d	gd
dgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgg}|D ]4  } ||Ž } ||Ž }| j                  |t        «       | j	                  ||«       Œ6 y )NTrð   r   ©r’  rÐ   rÖ  )r\   rÁ   ))rÂ   r’  ©rÈ   rÂ   r^   rê  )rÈ   r^   r’  rë  r  ©r\   r^   rL  rÏ   rK  rÌ   rê   rÊ  r]   rM  )r1   r   ÚassertIsInstanceró   r§   )r«   r   r  rl  Úinput_shaper©   rª   s          r   Útest_broadcast_shapesz+TestArrayManipulation.test_broadcast_shapes_  s  € Ü'ˆØ"”˜TÔ" 6Ó*ˆð ˆDØ�ˆHØˆFØˆIØˆHØ�VÐÚ0ØˆKØ�VÐØ�VÐØ�VÐØ�VÐØ�VÐØ�VÐØ�VÐØ�ˆJØ�6ˆNØ�6ˆNØ�6ˆNØ�ˆLØ�TˆNØ�6ˆNØ�6ˆNØ�ˆLØ�ˆLØ�4ˆLØ�ˆKð9
ˆó<  ˆKÙ˜{Ð+ˆHÙ˜Ð%ˆCØ×!Ñ! #¤uÔ-Ø×#Ñ# H¨cÕ2ñ	  r   c                 ó2  — t         } t        d¬«      |«      }| j                  «        ddgddgg d¢dd	gg d
¢ddgg}|D ]J  }| j                  t        «      5 } ||Ž  d d d «       | j                  dt        j                  «      «       ŒL y # 1 sw Y   Œ1xY w)NTrð   rÊ  r  r  rË  ©rÊ  rÊ  r  ©r^   r\   rÁ   ©r]   r\   r\   )rÐ   rì  rM  )rI  rÈ   r]   ú=shape mismatch: objects cannot be broadcast to a single shape©r1   r   rÓ   r²   r¼   rõ   r´   rµ   )r«   r   r  rl  rî  r·   s         r   Útest_broadcast_shapes_raisesz2TestArrayManipulation.test_broadcast_shapes_raises‰  sŸ   € Ü'ˆØ"”˜TÔ" 6Ó*ˆà×ÑÔ!ð
 �4ˆLØ�TˆNÚØ˜	Ð"Ú-Ø�ˆKð
ˆó  ˆKØ×"Ñ"¤:Ô.°&Ù�{Ñ#÷ /ð �M‰MÐYÜ˜f×.Ñ.Ó/õ1ñ	  ß.Ð.ús   ÁBÂB	c                 ó  — t         } t        d¬«      |«      }| j                  «        | j                  t        «      5 } |ddd«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NTrð   rÐ   r]   rÊ   z#negative dimensions are not allowedrõ  )r«   r   r  r·   s       r   Ú(test_broadcast_shapes_negative_dimensionz>TestArrayManipulation.test_broadcast_shapes_negative_dimension   sj   € Ü'ˆØ"”˜TÔ" 6Ó*ˆà×ÑÔ!Ø×ÑœzÔ*¨fÙ�&˜1 Ô$÷ +ð 	�‰Ð;¼SÀ×AQÑAQÓ=RÕS÷ +Ð*ús   ¾A7Á7B c                 ó  — t         } t        d¬«      |«      }| j                  «        g d¢}|D ]J  }| j                  t        «      5 } ||Ž  d d d «       | j                  dt        j                  «      «       ŒL y # 1 sw Y   Œ1xY w)NTrð   ))rÐ   )r  )g333333@)Ústring©ré   r<   )r^   rû  z#must be either an int or tuple[int])r1   r   rÓ   r²   r	   rõ   r´   rµ   )r«   r   r  ÚinpsÚinpr·   s         r   Ú"test_broadcast_shapes_invalid_typez8TestArrayManipulation.test_broadcast_shapes_invalid_typeª  sv   € Ü'ˆØ"”˜TÔ" 6Ó*ˆà×ÑÔ!ò
ˆó ˆCØ×"Ñ"¤;Ô/°6Ù�s‘÷ 0ð �M‰MÐ?ÄÀV×EUÑEUÓAVÕWñ	 ß/Ð/ús   ÁA=Á=B	c                 óv  ‡ ‡‡— t         Š t        d¬«      ‰«      Šˆˆˆ fd„}dD ]  }t        j                  |«      } ||«       Œ! dddgddgdd	ggd
dfD ]
  } |«       Œ ‰ j	                  t
        «      5 } ‰d«       d d d «       ‰ j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NTrð   c                 óJ   •—  ‰| «      } ‰| «      }‰j                  ||«       y r   r<  ©r‚   r©   rª   r  r   r«   s      €€€r   r¬   z/TestArrayManipulation.test_shape.<locals>.checkÂ  ó%   ø€ Ù˜a“yˆHÙ˜“(ˆCØ×#Ñ# C¨Õ2r   ©r   rê   r  )rÁ   rÈ   rÂ   r^   Fr]   r\   rÁ   rê   rÌ  r<   z+The argument to np.shape must be array-like)	r’   r   r'   Úemptyr²   r	   rõ   r´   rµ   ©r«   r¬   Útr#   r·   r  r   s   `    @@r   Ú
test_shapez TestArrayManipulation.test_shape¾  s´   ú€ ÜˆØ"”˜TÔ" 6Ó*ˆö	3ó 0ˆAÜ—(‘(˜1“+ˆCÙ�#�Jð 0ð
 �U˜Q˜D A q 7¨A¨q¨6Ð"2°D¸)ÓDˆAÙ�#�Jð Eð ×Ñœ{Ô+¨vÙ�#ŒJ÷ ,ð 	�‰ÐCÜ˜&×*Ñ*Ó+õ	-÷ ,Ð+ús   Á8	B/Â/B8c                 ó²  ‡ ‡‡— t         Š t        d¬«      ‰«      Šˆˆˆ fd„}dD ]  }t        j                  |«      } ||«       Œ! dddt        j                  d«      t        j
                  d	«      fD ]
  } ||«       Œ ‰ j                  t        «      5 } ‰d
«       d d d «       ‰ j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NTrð   c                 óJ   •—  ‰| «      } ‰| «      }‰j                  ||«       y r   r<  r  s      €€€r   r¬   z.TestArrayManipulation.test_size.<locals>.checkÚ  r  r   r  r^   Fg…ëQ¸	@rÁ   gX9´Èv¾@r<   z*The argument to np.size must be array-like)r”   r   r'   r  Úint8rÇ  r²   r	   rõ   r´   rµ   r  s   `    @@r   Ú	test_sizezTestArrayManipulation.test_sizeÖ  s´   ú€ ÜˆØ"”˜TÔ" 6Ó*ˆö	3ó 0ˆAÜ—(‘(˜1“+ˆCÙ�#�Jð 0ð
 �U˜D¤"§'¡'¨!£*¬b¯j©j¸Ó.?Ó@ˆAÙ�!�Hð Að ×Ñœ{Ô+¨vÙ�#ŒJ÷ ,ð 	�‰ÐBÜ˜&×*Ñ*Ó+õ	-÷ ,Ð+ús   Â	CÃCc                 óœ   ‡ — t         } t        d¬«      |«      }ˆ fd„} |«       D ]$  } ||«      } ||«      }‰ j                  ||«       Œ& y )NTrð   c               3   óª  •K  — t        j                  dd«      –— t        j                  dd¬«      –— t        j                  g «      –— ‰j                  j                  d«      } d| t        j                  | «      dkD  <   | –— | j                  ddd«      –— | j                  d	d
d¬«      –— | j                  dd«      dd d
…   –— | dz  –— y ­w)Nrï   rÈ   r   ©Ú
fill_valueéd   ç        çš™™™™™É?rÁ   é2   r]   r`  rt  rÅ   r^   r#  )r'   r_   ÚfullrÒ   ÚrandomÚrandnÚabsr!   ©r<   r«   s    €r   Úa_variationszBTestArrayManipulation.test_flatnonzero_basic.<locals>.a_variationsò  s³   øè ø€ Ü—)‘)˜B Ó"Ò"Ü—'‘'˜!¨Ô*Ò*Ü—(‘(˜2“,ÒØ—‘×!Ñ! #Ó&ˆAØ!$ˆAŒb�f‰f�Q‹i˜#‰oÑØŠGØ—)‘)˜A˜q !Ó$Ò$Ø—)‘)˜B ¨�)Ó-Ò-Ø—)‘)˜B Ó" 1 4 a 4Ñ(Ò(Ø�b‘&‹Lùs   ƒCC)r—   r   r§   ©r«   r   r  r  r<   r©   rª   s   `      r   Útest_flatnonzero_basicz,TestArrayManipulation.test_flatnonzero_basicî  sN   ø€ Ü"ˆØ"”˜TÔ" 6Ó*ˆô
	ñ –ˆAÙ˜a“yˆHÙ˜“(ˆCØ×#Ñ# H¨cÕ2ñ  r   c                 óœ   ‡ — t         } t        d¬«      |«      }ˆ fd„} |«       D ]$  } ||«      } ||«      }‰ j                  ||«       Œ& y )NTrð   c               3   ó  •K  — t        j                  dd«      dkD  –— t        j                  dd¬«      –— t        j                  dd¬«      –— t        j                  g «      –— t        j                  g d¢«      –— ‰j                  j                  d«      } | d	kD  –— | j                  ddd
«      dkD  –— | j                  ddd¬«      dkD  –— | j                  dd
«      dd d…   dkD  –— | | dz
  k(  –— | |  kD  –— y ­w)Nrï   rÈ   r]   r   r  r^   )g      ð¿r  r…   r  r  rÁ   g      à?r  r`  rt  rÅ   )r'   r_   r  rÒ   r  r  r!   r  s    €r   r  z?TestArrayManipulation.test_argwhere_basic.<locals>.a_variations  sæ   øè ø€ Ü—)‘)˜B Ó" QÑ&Ò&Ü—'‘'˜!¨Ô*Ò*Ü—'‘'˜!¨Ô*Ò*Ü—(‘(˜2“,ÒÜ—(‘(Ò+Ó,Ò,Ø—‘×!Ñ! #Ó&ˆAØ�c‘'ŠMØ—)‘)˜A˜q !Ó$ sÑ*Ò*Ø—)‘)˜B ¨�)Ó-°Ñ3Ò3Ø—)‘)˜B Ó" 1 4 a 4Ñ(¨3Ñ.Ò.Ø�q˜1‘u‘*ÒØ�q�b‘&‹Lùs   ƒDD)rš   r   r§   r  s   `      r   Útest_argwhere_basicz)TestArrayManipulation.test_argwhere_basic  sN   ø€ ÜˆØ"”˜TÔ" 6Ó*ˆô	ñ –ˆAÙ˜a“yˆHÙ˜“(ˆCØ×#Ñ# H¨cÕ2ñ  r   c               #   ó¤   K  — d–— d–— ddgddgf–— d–— t         j                  –— d–— d–— d–— d	–— d
–— d–— d –— d–— d–— y ­w)N)r×  )rÄ  gš™™™™™@)g      @gffffff@)r  r…   r  g      Àr   r^   r]   r\   r   FTr¾  y       @      ð?Úa_stringÚ )r'   r¬  r   r   r   Úarray_like_variationsz+TestArrayManipulation.array_like_variations  sb   è ø€ à2Ò2Ø#Ò#Ø�1ˆv˜˜1�vÐÒØŠÜ�f‰fŠØŠØŠØŠØŠ
Ø!Ò!ØŠàŠ
ØÒØ‹ùs   ‚AAc                 ó¢   — t         } t        d¬«      |«      }| j                  «       D ]$  } ||«      } ||«      }| j                  ||«       Œ& y r2  )r—   r   r"  r§   ©r«   r   r  r<   r©   rª   s         r   Útest_flatnonzero_array_likez1TestArrayManipulation.test_flatnonzero_array_like-  sM   € Ü"ˆØ"”˜TÔ" 6Ó*ˆà×+Ñ+Ö-ˆAÙ˜a“yˆHÙ˜“(ˆCØ×#Ñ# H¨cÕ2ñ .r   c                 ó¢   — t         } t        d¬«      |«      }| j                  «       D ]$  } ||«      } ||«      }| j                  ||«       Œ& y r2  )rš   r   r"  r§   r$  s         r   Útest_argwhere_array_likez.TestArrayManipulation.test_argwhere_array_like6  sM   € ÜˆØ"”˜TÔ" 6Ó*ˆØ×+Ñ+Ö-ˆAÙ˜a“yˆHÙ˜“(ˆCØ×#Ñ# H¨cÕ2ñ .r   c                 ó
  — t         } t        d¬«      |«      }|D �cg c]  }t        j                  |«      ‘Œ }} ||Ž }|gt	        |«      z  }|D �	cg c]  }	|	j
                  ‘Œ }
}	| j                  ||
«       y c c}w c c}	w r2  )r5   r   r'   r  rò   r,   r§   )r«   Úinput_shapesr¯   r   r  ÚsÚinarraysÚ	outarraysr©   r<   rª   s              r   Ú%broadcast_arrays_assert_correct_shapez;TestArrayManipulation.broadcast_arrays_assert_correct_shape>  sƒ   € ô (ˆØ"”˜TÔ" 6Ó*ˆá)5Ó6© A”B—H‘H˜Q•K¨ˆÐ6Ù˜8Ð$ˆ	Ø"Ð#¤c¨(£mÑ3ˆÙ )Ó*¡	˜1ˆq�w‹w 	ˆÐ*Ø×Ñ ¨#Õ.ùò	 7ùò +s   �A;ÁB c                 óÎ   — t         } t        d¬«      |«      }g d¢}|D ]D  }|g}| j                  ||«       ||g}| j                  ||«       |||g}| j                  ||«       ŒF y )NTrð   )	rê   rÊ  rK  rZ  rL  )r\   r   r  rì  rÃ  )r5   r   r-  )r«   r   r  rl  r,   r)  Úinput_shapes2Úinput_shapes3s           r   Ú'test_broadcast_arrays_same_input_shapesz=TestArrayManipulation.test_broadcast_arrays_same_input_shapesJ  sy   € ô (ˆØ"”˜TÔ" 6Ó*ˆò
ˆó ˆEØ!˜7ˆLà×6Ñ6°|ÀUÔKà" E˜NˆMØ×6Ñ6°}ÀeÔLà" E¨5Ð1ˆMØ×6Ñ6°}ÀeÕLñ r   c                 óò   — ddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgd	dgdgdd	gdgddgdgddgdgdd	gd	gg}|D ]/  \  }}| j                  ||«       | j                  |d d d
…   |«       Œ1 y )Nrê   rÊ  r  rÃ  rì  rÖ  rL  rÏ   rK  r}   ©r-  ©r«   rl  r)  r¯   s       r   Ú9test_broadcast_arrays_two_compatible_by_ones_input_shapeszOTestArrayManipulation.test_broadcast_arrays_two_compatible_by_ones_input_shapesh  sí   € ð �Dˆ\˜4Ð Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&Ø�fÐ˜vÐ&ð
ˆó -1Ñ(ˆL˜.Ø×6Ñ6°|À^ÔTà×6Ñ6°|ÁDÀbÀDÑ7IÈ>ÕZñ -1r   c                 ó8  — ddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgddgdgdd	gd	gdd
gd	gdd	gd	gdd	gd	gddgdgdd
gd
gddgdgddgdgdd
gd
gg}|D ]/  \  }}| j                  ||«       | j                  |d d d…   |«       Œ1 y )Nr   rÊ  rÃ  rì  rê   rÖ  r  rÌ   rÏ   rK  rL  r}   r3  r4  s       r   ÚDtest_broadcast_arrays_two_compatible_by_prepending_ones_input_shapeszZTestArrayManipulation.test_broadcast_arrays_two_compatible_by_prepending_ones_input_shapes‚  s5  € ð �$ˆZ˜ÐØ�Fˆ^˜VÐ$Ø�Fˆ^˜VÐ$Ø�Fˆ^˜VÐ$Ø�&ˆ\˜6Ð"Ø�dˆ^˜VÐ$Ø�Fˆ^˜VÐ$Ø�Fˆ^˜VÐ$Ø�&ˆ\˜6Ð"Ø�&ˆ\˜6Ð"Ø�$ˆZ˜ÐØ�Fˆ^˜VÐ$Ø�Fˆ^˜VÐ$Ø�Fˆ^˜VÐ$Ø�&ˆ\˜6Ð"Ø�dˆ^˜VÐ$Ø�Fˆ^˜VÐ$Ø�Fˆ^˜VÐ$Ø�&ˆ\˜6Ð"Ø�&ˆ\˜6Ð"ð)
ˆó, -1Ñ(ˆL˜.Ø×6Ñ6°|À^ÔTà×6Ñ6°|ÁDÀbÀDÑ7IÈ>ÕZñ -1r   c                 óò   — t         } t        d¬«      |«      }ddgdgddgdgddgdgg}|D ]D  \  }} ||Ž }|D �cg c]  }|j                  ‘Œ }}|gt        |«      z  }	| j	                  |	|«       ŒF y c c}w )	NTrð   Frê   r^   r]   rÐ   rË  )r5   r   r,   rò   r§   )
r«   r   r  rl  r+  r¯   r,  r<   rª   r©   s
             r   Ú"test_broadcast_arrays_scalar_inputz8TestArrayManipulation.test_broadcast_arrays_scalar_input£  s™   € Ü'ˆØ"”˜TÔ" 6Ó*ˆà�Eˆ]˜DÐ!Ø�ˆV�TˆNØ�aˆ[˜$Ðð
ˆó
 )-Ñ$ˆH�nÙ˜xÐ(ˆIÙ$-Ó.¡I˜q�1—7“7 IˆCÐ.Ø&Ð'¬#¨h«-Ñ7ˆHØ×#Ñ# H¨cÕ2ñ	 )-ùâ.s   »A4c                 ó®   — t         } t        d¬«      |«      } |dd«      }ddg}|D �cg c]  }|j                  ‘Œ }}| j                  ||«       y c c}w )NTrð   )rÑ  iÈ  )i  rË  )r5   r   r,   r§   ©r«   r   r  r,  r©   r<   rª   s          r   Ú!test_broadcast_arrays_tuple_inputz7TestArrayManipulation.test_broadcast_arrays_tuple_input±  sZ   € Ü'ˆØ"”˜TÔ" 6Ó*ˆÙ˜* fÓ-ˆ	Ø˜$�<ˆÙ )Ó*¡	˜1ˆq�w‹w 	ˆÐ*Ø×Ñ ¨#Õ.ùò +s   ªAc                 ó  — t         } t        d¬«      |«      } |t        j                  d«      t        j                  dt        j                  ¬«      «      }ddg}|D �cg c]  }|j
                  ‘Œ }}| j                  ||«       y c c}w )NTrð   r]   r  rþ   )r5   r   r'   Úintpr  r,   r§   r;  s          r   Ú%test_broadcast_arrays_non_array_inputz;TestArrayManipulation.test_broadcast_arrays_non_array_input¹  sr   € Ü'ˆØ"”˜TÔ" 6Ó*ˆÙœ"Ÿ'™' !›*¤b§h¡h¨v¼R¿W¹WÔ&EÓFˆ	Ø˜FÐ#ˆÙ )Ó*¡	˜1ˆq�w‹w 	ˆÐ*Ø×Ñ ¨#Õ.ùò +s   Á Bc                 óP  — t         } t        d¬«      |«      }| j                  «        | j                  t        «      5 }t        j                  d«      j                  d«      }d} |||«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NTrð   rÂ   r  zMismatch of argument types)r5   r   rÓ   r²   r	   r'   r_   r!   rõ   r´   rµ   )r«   r   r  r·   r#   r»  s         r   Ú/test_broadcast_arrays_invalid_mixed_input_typeszETestArrayManipulation.test_broadcast_arrays_invalid_mixed_input_typesÁ  s„   € Ü'ˆØ"”˜TÔ" 6Ó*ˆà×ÑÔ!à×Ñœ{Ô+¨vÜ—)‘)˜A“,×&Ñ& vÓ.ˆCØˆAÙ�#�qŒM÷ ,ð 	�‰Ð2´C¸×8HÑ8HÓ4IÕJ÷	 ,Ð+ús   ¾0BÂB%c                 óR  — t         } t        d¬«      |«      }| j                  «        | j                  t        «      5 }t        j                  dt
        j                  ¬«      }d} |||«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)NTrð   r\   rþ   zhello worldzArgument "1" must be array-like)r5   r   rÓ   r²   r	   r'   r  rÆ  rõ   r´   rµ   )r«   r   r  r·   r#   r*  s         r   Ú#test_broadcast_arrays_invalid_inputz9TestArrayManipulation.test_broadcast_arrays_invalid_inputÍ  s€   € Ü'ˆØ"”˜TÔ" 6Ó*ˆà×ÑÔ!à×Ñœ{Ô+¨vÜ—(‘(˜1¤B§H¡HÔ-ˆCØˆAÙ�#�qŒM÷ ,ð 	�‰Ð7¼¸V×=MÑ=MÓ9NÕO÷	 ,Ð+ús   ¾1BÂB&c           	      ó’  — t         } t        d¬«      |«      }| j                  «        ddgddgg d¢dd	gg}|D ]{  }||d d d
…   fD ]l  }| j                  t        «      5 }|D �cg c]  }t        j                  |«      ‘Œ }} ||Ž  d d d «       | j                  dt        j                  «      «       Œn Œ} y c c}w # 1 sw Y   Œ8xY w)NTrð   rÊ  r  r  rË  rñ  rò  ró  r}   rô  )
r5   r   rÓ   r²   r¼   r'   r  rõ   r´   rµ   )	r«   r   r  rl  r)  r,   r·   r*  r+  s	            r   Ú:test_broadcast_arrays_incompatible_shapes_raise_valueerrorzPTestArrayManipulation.test_broadcast_arrays_incompatible_shapes_raise_valueerrorÙ  sÐ   € ä'ˆØ"”˜TÔ" 6Ó*ˆà×ÑÔ!ð �4ˆLØ�TˆNÚØ˜	Ð"ð	
ˆó !ˆLØ&¨±T°r°TÑ(:Ó;�à×&Ñ&¤zÔ2°fÙ5:Ó;±U°¤§¡¨¥°U�HÐ;Ù˜8Ñ$÷ 3ð —‘Ð]Ü! &×"2Ñ"2Ó3õ5ñ <ñ !ùò  <÷ 3Ð2ús   ÁB=Á#B8
Á?B=Â8B=Â=Cc                 ó  — d„ }|} t        d¬«      |«      } |t        j                  g d¢g d¢g d¢g«      d«      } |t        j                  g d¢g d¢g d¢g«      d«      }t        j                  j	                  ||«       y )Nc                 óü   — | j                   \  }}t        j                  | |||f«      }t        j                  |dd«      }|j	                  «       }t        j
                  |d|f«      }|d d|z
   ||dz
  d …d d …f<   |S ©Nr   r^   r}   )r,   r'   r+   Úswapaxesr:   r!   ©r‚   r†   ÚrÚcr<   r»  ÚccÚds           r   Úunfold_flattenzITestArrayManipulation.test_readonly_after_flatten.<locals>.unfold_flattenñ  sx   € Ø—7‘7‰DˆAˆqÜ—‘  A q¨! 9Ó-ˆAÜ—‘˜A˜q !Ó$ˆAØ—‘“ˆBÜ—
‘
˜2  A˜wÓ'ˆAØ˜W˜q 1™u˜:ˆAˆa�!‰e‰f’aˆi‰LØˆHr   Trð   r¨  ©r]   r]   r]   ©r\   r\   r\   r]   ©r   r'   rÒ   rå   Úassert_array_equal)r«   rO  r   r  Úres_nbÚres_pys         r   Útest_readonly_after_flattenz1TestArrayManipulation.test_readonly_after_flattenï  sm   € ò	ð  ˆØ"”˜TÔ" 6Ó*ˆñ ”r—x‘x¢ªI²yÐ AÓBÀAÓFˆÙœŸ™¢)ªYº	Ð!BÓCÀQÓGˆä
�
‰
×%Ñ% f¨fÕ5r   c                 ó  — d„ }|} t        d¬«      |«      } |t        j                  g d¢g d¢g d¢g«      d«      } |t        j                  g d¢g d¢g d¢g«      d«      }t        j                  j	                  ||«       y )Nc                 óü   — | j                   \  }}t        j                  | |||f«      }t        j                  |dd«      }|j	                  «       }t        j
                  |d|f«      }|d d|z
   ||dz
  d …d d …f<   |S rH  )r,   r'   r+   rI  rA   r!   rJ  s           r   Úunfold_ravelzETestArrayManipulation.test_readonly_after_ravel.<locals>.unfold_ravel  sx   € Ø—7‘7‰DˆAˆqÜ—‘  A q¨! 9Ó-ˆAÜ—‘˜A˜q !Ó$ˆAØ—‘“ˆBÜ—
‘
˜2  A˜wÓ'ˆAØ˜W˜q 1™u˜:ˆAˆa�!‰e‰f’aˆi‰LØˆHr   Trð   r¨  rP  rQ  r]   rR  )r«   rY  r   r  rT  rU  s         r   Útest_readonly_after_ravelz/TestArrayManipulation.test_readonly_after_ravel  sm   € ò	ð ˆØ"”˜TÔ" 6Ó*ˆñ ”r—x‘x¢ªI²yÐ AÓBÀAÓFˆÙœŸ™¢)ªYº	Ð!BÓCÀQÓGˆä
�
‰
×%Ñ% f¨fÕ5r   c                 óà  — | j                  «        t        j                  d«      j                  d«      j	                  «       }|j	                  d¬«      }d|j
                  _        d|j
                  _        d„ }|} t        d¬«      |«      } ||«      } ||«      }d	}| j                  |j
                  j                   |«       d
}| j                  |j
                  j                  |«       y )Nr_  rÃ  r`  rt  Fc                 ó&   — | j                  «       }|S r   r@   )r<   r   s     r   Útry_ravel_w_copyzKTestArrayManipulation.test_mutability_after_ravel.<locals>.try_ravel_w_copy!  s   € Ø—W‘W“YˆFØˆMr   Trð   zCNo copy was performed, so the resulting array must not be writeablez?A copy was performed, yet the resulting array is not modifiable)	rÓ   r'   r_   r!   rU   r×   rG  r   Ú
assertTrue)	r«   Úa_cÚa_fr]  r   r  Úret_cÚret_frC  s	            r   Útest_mutability_after_ravelz1TestArrayManipulation.test_mutability_after_ravel  sÇ   € ð 	×ÑÔ!Ü�i‰i˜‹l×"Ñ" 6Ó*×/Ñ/Ó1ˆØ�h‰h˜SˆhÓ!ˆØ#ˆ�	‰	ÔØ#ˆ�	‰	Ôò	ð "ˆØ"”˜TÔ" 6Ó*ˆá�c“
ˆÙ�c“
ˆð6ˆà�‰˜EŸK™K×1Ñ1Ð1°3Ô7àOˆØ�‰˜Ÿ™×-Ñ-¨sÕ3r   N)CÚ__name__Ú
__module__Ú__qualname__Ú__doc__rÔ   rú   r	  r  r  r  r0  r4  r7  r9  r=  r@  rD  rR  r\  Úenable_pyobj_flagsrd  rh  rx  r|  r  r�  r„  r†  rˆ  r‹  r�  r¢  r¥  r¿  rÈ  rÏ  rÔ  rÚ  rÞ  râ  rä  rè  rï  rö  rø  rþ  r  r  r  r  Ústaticmethodr"  r%  r'  r-  r1  r5  r7  r9  r<  r?  rA  rC  rE  rV  rZ  rc  r   r   r   r    r    À   s€  „ ñòm"ò^X*òtOò.-ò6ò8Sò-$ò^-ò
-ò
-ò
&ò+ò2ò".òHAðH (:À#ó /ò$Bð
 &8ó  PðD +=ó 	/ò4ò9ð *<ó ò8ð (:ó 	/ò8ò*3òXMò-òFAòP,!ò\!3òF5ò,.6ò`/ò	)ò	3ò/ò(3òT1ò.TòXò(-ò0-ò03ò*3ð. ñó ðò$3ò3ò
/òMò<[ò4[òB3ò/ò/ò
Kò
Pò5ò,6ò(6ó(4r   r    Ú__main__r   )F);Ú	functoolsr   Ú	itertoolsr   Únumpyr'   ÚunittestÚnumbar   r   r   r   Únumba.core.errorsr	   Ú
numba.corer
   r   Únumba.tests.supportr   r   rh  rg  r   r%   r(   r-   r1   r5   r8   r=   rB   rE   rG   rK   rN   rS   rV   rX   rZ   rg   rj   rl   ro   rr   rt   r{   r   r�   rˆ   r‹   r�   r’   r”   r—   rš   rž   r    rd  Úmainr   r   r   Ú<module>rt     s…  ðÝ Ý "ã ã ß /Ó /Ý )ß $ß 9à  $Ð'Ð à¨DÑ1€òð, ñ!ó ð!ð ñ%ó ð%ò'ò&ò&ò,òòòòòòð ñ(ó ð(ð ñ/ó ð/ð ñó ðð ñ&ó ð&ð ñó ðòò#ò ò ò ò?òLð òPó ðPòòó,òòòòò#ôp4˜O¨Xô p4ðf+ ˆzÒØ€H‡M�M…Oð r   