§
    2@ÄjFâ  ã                   óT  — d dl mZm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mZmZ d dlZd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d „ Z,d!„ Z-d"„ Z.d#„ Z/d$„ Z0d%„ Z1d&„ Z2d'„ Z3d(„ Z4d)„ Z5d*„ Z6d+„ Z7d,„ Z8d-„ Z9d.„ Z:d/„ Z;d0„ Z<d1„ Z=d2„ Z>d3„ Z?d4„ Z@d5„ ZAd6„ ZBd7„ ZCd8„ ZDd9„ ZE G d:„ d;ee¦  «        ZFeF G                    ¦   «           G d<„ d=ee¦  «        ZHeH I                    ¦   «          eJd>k    r ejK        ¦   «          dS dS )?é    )ÚproductÚcombinations_with_replacementN)ÚjitÚnjitÚtypeofÚtypes)Únumpy_version)ÚTestCaseÚMemoryLeakMixinÚtagÚskip_if_numpy_2c                 ó*   — |                       ¦   «         S ©N)Úall©Úarrs    úRC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_array_reductions.pyÚ	array_allr      ó   € Ø�7Š7‰9Œ9Ðó    c                 ó*   — t          j        | ¦  «        S r   )Únpr   r   s    r   Úarray_all_globalr      ó   € ÝŒ6�#‰;Œ;Ðr   c                 ó*   — |                       ¦   «         S r   )Úanyr   s    r   Ú	array_anyr      r   r   c                 ó*   — t          j        | ¦  «        S r   )r   r   r   s    r   Úarray_any_globalr      r   r   c                 ó*   — |                       ¦   «         S r   )Úcumprodr   s    r   Úarray_cumprodr"      s   € Ø�;Š;‰=Œ=Ðr   c                 ó*   — t          j        | ¦  «        S r   )r   r!   r   s    r   Úarray_cumprod_globalr$      ó   € ÝŒ:�c‰?Œ?Ðr   c                 ó*   — t          j        | ¦  «        S r   )r   Ú
nancumprodr   s    r   Úarray_nancumprodr(      s   € ÝŒ=˜ÑÔÐr   c                 ó*   — |                       ¦   «         S r   )Úcumsumr   s    r   Úarray_cumsumr+       ó   € Ø�:Š:‰<Œ<Ðr   c                 ó*   — t          j        | ¦  «        S r   )r   r*   r   s    r   Úarray_cumsum_globalr.   #   ó   € ÝŒ9�S‰>Œ>Ðr   c                 ó*   — t          j        | ¦  «        S r   )r   Ú	nancumsumr   s    r   Úarray_nancumsumr2   &   ó   € ÝŒ<˜ÑÔÐr   c                 ó*   — |                       ¦   «         S r   )Úsumr   s    r   Ú	array_sumr6   )   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   r5   r   s    r   Úarray_sum_globalr8   ,   r   r   c                 ó*   — |                       ¦   «         S r   )Úprodr   s    r   Ú
array_prodr;   /   ó   € Ø�8Š8‰:Œ:Ðr   c                 ó*   — t          j        | ¦  «        S r   )r   r:   r   s    r   Úarray_prod_globalr>   2   ó   € ÝŒ7�3‰<Œ<Ðr   c                 ó*   — |                       ¦   «         S r   )Úmeanr   s    r   Ú
array_meanrB   5   r<   r   c                 ó*   — t          j        | ¦  «        S r   )r   rA   r   s    r   Úarray_mean_globalrD   8   r?   r   c                 ó*   — |                       ¦   «         S r   )Úvarr   s    r   Ú	array_varrG   ;   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   rF   r   s    r   Úarray_var_globalrI   >   r   r   c                 ó*   — |                       ¦   «         S r   )Ústdr   s    r   Ú	array_stdrL   A   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   rK   r   s    r   Úarray_std_globalrN   D   r   r   c                 ó*   — |                       ¦   «         S r   )Úminr   s    r   Ú	array_minrQ   G   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   rP   r   s    r   Úarray_min_globalrS   J   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   Úaminr   s    r   Ú
array_aminrV   M   r?   r   c                 ó*   — |                       ¦   «         S r   )Úmaxr   s    r   Ú	array_maxrY   P   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   rX   r   s    r   Úarray_max_globalr[   S   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   Úamaxr   s    r   Ú
array_amaxr^   V   r?   r   c                 ó*   — |                       ¦   «         S r   ©Úargminr   s    r   Úarray_argminrb   Y   r,   r   c                 ó*   — t          j        | ¦  «        S r   ©r   ra   r   s    r   Úarray_argmin_globalre   \   r/   r   c                 ó*   — |                       ¦   «         S r   ©Úargmaxr   s    r   Úarray_argmaxri   _   r,   r   c                 ó*   — t          j        | ¦  «        S r   ©r   rh   r   s    r   Úarray_argmax_globalrl   b   r/   r   c                 ó*   — t          j        | ¦  «        S r   )r   Úmedianr   s    r   Úarray_median_globalro   e   r/   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanminr   s    r   Úarray_nanminrr   h   r/   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanmaxr   s    r   Úarray_nanmaxru   k   r/   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanmeanr   s    r   Úarray_nanmeanrx   n   r%   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únansumr   s    r   Úarray_nansumr{   q   r/   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanprodr   s    r   Úarray_nanprodr~   t   r%   r   c                 ó*   — t          j        | ¦  «        S r   ©r   Únanstdr   s    r   Úarray_nanstdr‚   w   r/   r   c                 ó.   — t          j        | d¬¦  «        S ©Nr   ©Úddofr€   r   s    r   Úarray_nanstd_ddof0r‡   z   ó   € ÝŒ9�S˜qÐ!Ñ!Ô!Ð!r   c                 ó.   — t          j        | d¬¦  «        S ©Né   r…   r€   r   s    r   Úarray_nanstd_ddof1rŒ   }   rˆ   r   c                 ó.   — t          j        | d¬¦  «        S r„   ©r   Únanvarr   s    r   Úarray_nanvar_ddof0r�   €   rˆ   r   c                 ó.   — t          j        | d¬¦  «        S rŠ   rŽ   r   s    r   Úarray_nanvar_ddof1r’   ƒ   rˆ   r   c                 ó*   — t          j        | ¦  «        S r   rŽ   r   s    r   Úarray_nanvarr”   †   r/   r   c                 ó*   — t          j        | ¦  «        S r   )r   Ú	nanmedianr   s    r   Úarray_nanmedian_globalr—   ‰   r3   r   c                 ó,   — t          j        | |¦  «        S r   )r   Ú
percentile©r   Úqs     r   Úarray_percentile_globalrœ   Œ   s   € ÝŒ=˜˜aÑ Ô Ð r   c                 ó,   — t          j        | |¦  «        S r   )r   Únanpercentilerš   s     r   Úarray_nanpercentile_globalrŸ   �   s   € ÝÔ˜C Ñ#Ô#Ð#r   c                 ó*   — t          j        | ¦  «        S r   )r   Úptp©Úas    r   Úarray_ptp_globalr¤   ’   s   € ÝŒ6�!‰9Œ9Ðr   c                 ó*   — |                       ¦   «         S r   )r¡   r¢   s    r   Ú	array_ptpr¦   •   s   € Ø�5Š5‰7Œ7€Nr   c                 ó,   — t          j        | |¦  «        S r   )r   Úquantilerš   s     r   Úarray_quantile_globalr©   ˜   s   € ÝŒ;�s˜AÑÔÐr   c                 ó,   — t          j        | |¦  «        S r   )r   Únanquantilerš   s     r   Úarray_nanquantile_globalr¬   ›   s   € ÝŒ>˜#˜qÑ!Ô!Ð!r   c                 ó  ‡ — ‰ t           j        k    rd„ }nˆ fd„} |d¦  «        } |d¦  «                             dd¦  «        } |d¦  «        d d d…                              dd	¬
¦  «        }|j        j        s|j        j        rJ ‚|||gS )Nc                 óP   — | dz  dk    sJ ‚t          j        ddg| dz  z  ¦  «        S )Né   r   r‹   )r   Úbool_)Úns    r   Úfactoryz!base_test_arrays.<locals>.factory    s0   € Ø�q‘5˜A’:�:�:�:Ý”8˜Q ˜F a¨1¡fÑ-Ñ.Ô.Ð.r   c                 ó6   •— t          j        | ‰¬¦  «        dz   S )N©Údtyper‹   )r   Úarange)r±   rµ   s    €r   r²   z!base_test_arrays.<locals>.factory¤   s   ø€ Ý”9˜Q eÐ,Ñ,Ô,¨qÑ0Ð0r   é
   r¯   é   é   éÿÿÿÿ)r¯   é   r¯   ÚA)Úorder)r   r°   ÚreshapeÚflagsÚc_contiguousÚf_contiguous)rµ   r²   Úa1Úa2Úa3s   `    r   Úbase_test_arraysrÅ   ž   s»   ø€ Ø•”ÒÐð	/ð 	/ð 	/ð 	/ð	1ð 	1ð 	1ð 	1ð 	1ð 
ˆ�‰Œ€BØ	ˆ�‰Œ×	Ò	˜Q Ñ	"Ô	"€Bà
ˆ'�"‰+Œ+�t�t˜�tÔ	×	$Ò	$ Y°cÐ	$Ñ	:Ô	:€BØ”Ô%Ð?¨¬Ô)>Ð?Ð?Ð?à��Bˆ<Ðr   c                 óŽ  — t          | ¦  «        }| t          j        k    r|d„ |D ¦   «         z  }| t          j        k    rbg }|D ]H}|dz  d|z  dz  z   }t          j        |d d d…         ¦  «        |d d d…<   |                     |¦  «         ŒI|                     |¦  «         |D ]!}|j        t          j        | ¦  «        k    sJ ‚Œ"|S )Nc                 ó   — g | ]}|d z  ‘ŒS )r·   © )Ú.0r£   s     r   ú
<listcomp>z$full_test_arrays.<locals>.<listcomp>´   s   € Ð2Ð2Ð2 !�q˜2‘vÐ2Ð2Ð2r   r·   ù              ð?é   r¯   )rÅ   r   Úfloat32Ú	complex64ÚconjÚappendÚextendrµ   )rµ   Ú
array_listÚaccr£   Útmps        r   Úfull_test_arraysrÕ   ¯   së   € Ý! %Ñ(Ô(€Jð •”
ÒÐØÐ2Ð2 zÐ2Ñ2Ô2Ñ2ˆ
ð •”ÒÐØˆØð 	ð 	ˆAØ�b‘&˜2 ™6 B™;Ñ&ˆCÝ”w˜s 3 3 Q 3œxÑ(Ô(ˆC���!�‰HØ�JŠJ�s‰OŒOˆOˆOØ×Ò˜#ÑÔÐàð *ð *ˆØŒw�"œ( 5™/œ/Ò)Ð)Ð)Ð)Ð)ØÐr   c                 óT   — t          | ¦  «        } | |¦  «        } ||¦  «        }||fS r   )r   )Úcompare_funcÚ
test_arrayÚcfuncÚnumpy_resultÚnumba_results        r   Úrun_comparativerÜ   Ã   s8   € Ý�ÑÔ€EØ�< 
Ñ+Ô+€LØ�5˜Ñ$Ô$€Là˜Ð%Ð%r   c                   óª  ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zefd„Z	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„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'd$„ Z(d%„ Z)e*d&„ ¦   «         Z+d'„ Z,d(„ Z-dgd*„Z.d+„ Z/d,„ Z0d-„ Z1d.„ Z2d/„ Z3d0„ Z4d1„ Z5d2„ Z6d3„ Z7d4„ Z8d5„ Z9d6„ Z:d7„ Z;d8„ Z<d9„ Z=d:„ Z>d;„ Z?dhd=„Z@d>„ ZAd?„ ZBd@„ ZCdA„ ZDdB„ ZEdC„ ZFdD„ ZGdE„ ZHdF„ ZIdG„ ZJdH„ ZKdI„ ZLdJ„ ZMdK„ ZNdL„ ZOdM„ ZPdN„ ZQdO„ ZRdP„ ZSdQ„ ZTdR„ ZUdS„ ZVdT„ ZWdU„ ZXeYdV„ ¦   «         ZZdW„ Z[dX„ Z\dY„ Z]dZ„ Z^d[„ Z_d\„ Z`d]„ Zad^„ Zbd_„ Zcd`„ Zdda„ Zedb„ Zfdc„ Zgdd„ Zhde„ Ziejdf„ ¦   «         Zkˆ xZlS )iÚTestArrayReductionszQ
    Test array reduction methods and functions such as .sum(), .max(), etc.
    c                 ó”   •— t          t          | ¦  «                             ¦   «          t          j                             d¦  «         d S )Né*   )ÚsuperrÞ   ÚsetUpr   ÚrandomÚseed)ÚselfÚ	__class__s    €r   râ   zTestArrayReductions.setUpÐ   s:   ø€ ÝÕ! 4Ñ(Ô(×.Ò.Ñ0Ô0Ð0Ý
Œ	�Š�rÑÔÐÐÐr   c                 ó¢  ‡ ‡‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆˆ fd„}t          j        g d¢¦  «        } ||¦  «         t          j        ddg¦  «        } ||¦  «         t          j        g d¢¦  «        } ||¦  «         t          j        g d¢¦  «        } ||¦  «         t          j        g d	¢¦  «        } ||¦  «         t          j        g d
¢¦  «        } ||¦  «         t          j        g d¢¦  «        } ||¦  «         t          j        g d¢¦  «        } ||¦  «         t          j        ddg¦  «        } ||¦  «         d S )NT©Únopythonc                 óJ   •—  ‰j          ‰| ¦  «         ‰| ¦  «        fi ‰¤Ž d S r   ©ÚassertPreciseEqual©r   rÙ   ÚkwargsÚpyfuncrå   s    €€€€r   Úcheckz8TestArrayReductions.check_reduction_basic.<locals>.check×   ó6   ø€ Ø#ˆDÔ# F F¨3¡K¤K°°°s±´ÐFÐF¸vÐFÐFÐFÐFÐFr   )ç      ð?ç       @ç        ç       €rò   ç      ø¿rõ   rö   )rö   ç      @Úinf)rö   r÷   ú-inf)rö   r÷   rø   rù   )Únanrö   r÷   rú   ç      @)rú   rö   r÷   rú   rø   rù   rû   )ç      @rú   rö   rú   rú   )r   r   Úfloat64©rå   rï   rî   rð   r   rÙ   s   ```  @r   Úcheck_reduction_basicz)TestArrayReductions.check_reduction_basicÔ   s‹  øøøø€ à"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gõ ŒjÐ9Ð9Ð9Ñ:Ô:ˆØˆˆc‰
Œ
ˆ
ÝŒj˜$ ˜Ñ&Ô&ˆØˆˆc‰
Œ
ˆ
ÝŒjÐ+Ð+Ð+Ñ,Ô,ˆØˆˆc‰
Œ
ˆ
ÝŒjÐ,Ð,Ð,Ñ-Ô-ˆØˆˆc‰
Œ
ˆ
ÝŒjÐ3Ð3Ð3Ñ4Ô4ˆØˆˆc‰
Œ
ˆ
ÝŒjÐ7Ð7Ð7Ñ8Ô8ˆØˆˆc‰
Œ
ˆ
ÝŒjÐFÐFÐFÑGÔGˆØˆˆc‰
Œ
ˆ
ÝŒjÐ2Ð2Ð2Ñ3Ô3ˆØˆˆc‰
Œ
ˆ
åŒj˜% ˜Ñ(Ô(ˆØˆˆc‰
Œ
ˆ
ˆ
ˆ
r   c                 ó”  ‡ ‡‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆˆ fd„}t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d	¦  «        } ||¦  «         t          j        t          j        ¦  «        } ||¦  «         t          j        t          j         ¦  «        } ||¦  «         t          j        d
¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         ‰                      ¦   «         5 } ‰d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTrè   c                 óJ   •—  ‰j          ‰| ¦  «         ‰| ¦  «        fi ‰¤Ž d S r   rë   rí   s    €€€€r   rð   z5TestArrayReductions.check_scalar_basic.<locals>.checkð   rñ   r   rô   rõ   g      5@g      5Àé   iëÿÿÿrú   FÚstring)r   r   rý   rÍ   Úint32rø   r°   ÚassertTypingError)rå   rï   rî   rð   r   ÚerÙ   s   ```   @r   Úcheck_scalar_basicz&TestArrayReductions.check_scalar_basicî   s  øøøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gõ Œj˜‰oŒoˆØˆˆc‰
Œ
ˆ
ÝŒj˜ÑÔˆØˆˆc‰
Œ
ˆ
ÝŒj˜ÑÔˆØˆˆc‰
Œ
ˆ
ÝŒj˜ÑÔˆØˆˆc‰
Œ
ˆ
ÝŒh�r‰lŒlˆØˆˆc‰
Œ
ˆ
ÝŒh�s‰mŒmˆØˆˆc‰
Œ
ˆ
õ Œj�œÑ Ô ˆØˆˆc‰
Œ
ˆ
ÝŒj�"œ&˜Ñ!Ô!ˆØˆˆc‰
Œ
ˆ
ÝŒj˜ÑÔˆØˆˆc‰
Œ
ˆ
õ Œh�t‰nŒnˆØˆˆc‰
Œ
ˆ
ÝŒh�u‰oŒoˆØˆˆc‰
Œ
ˆ
ð ×#Ò#Ñ%Ô%ð 	¨ØˆE�(‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Æ$F=Æ=GÇGc                 óÆ  ‡ ‡‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆˆ fd„}t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d¦  «        } ||¦  «         t          j        d	d
¦  «        } ||¦  «         t          j        d	d¦  «        } ||¦  «         t          j        d	d¦  «        } ||¦  «         t          j        d	d¦  «        } ||¦  «         t          j        dd¦  «        } ||¦  «         d S )NTrè   c                 óJ   •—  ‰j          ‰| ¦  «         ‰| ¦  «        fi ‰¤Ž d S r   rë   rí   s    €€€€r   rð   z8TestArrayReductions.check_scalar_temporal.<locals>.check  rñ   r   ú
2020-01-01ú2020-01-01T12:00ú2020-01-01T12:00:00.000000z2020-01-01T12:00:00.000000000ÚNaTr¸   ÚDÚmÚsÚusr   Úns)r   r   Ú
datetime64Útimedelta64rþ   s   ```  @r   Úcheck_scalar_temporalz)TestArrayReductions.check_scalar_temporal  s}  øøøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gõ Œm˜LÑ)Ô)ˆØˆˆc‰
Œ
ˆ
ÝŒmÐ.Ñ/Ô/ˆØˆˆc‰
Œ
ˆ
ÝŒmÐ8Ñ9Ô9ˆØˆˆc‰
Œ
ˆ
ÝŒmÐ;Ñ<Ô<ˆØˆˆc‰
Œ
ˆ
ÝŒm˜EÑ"Ô"ˆØˆˆc‰
Œ
ˆ
õ Œn˜Q Ñ$Ô$ˆØˆˆc‰
Œ
ˆ
ÝŒn˜Q Ñ$Ô$ˆØˆˆc‰
Œ
ˆ
ÝŒn˜Q Ñ$Ô$ˆØˆˆc‰
Œ
ˆ
ÝŒn˜Q Ñ%Ô%ˆØˆˆc‰
Œ
ˆ
ÝŒn˜Q Ñ%Ô%ˆØˆˆc‰
Œ
ˆ
ˆ
ˆ
r   c                 ón  ‡ ‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}t          j        ddt          d¦  «        t          d¦  «        g¦  «        } ||¦  «         d|d	<    ||¦  «         d
|d	<    ||¦  «         |                     d¦  «        } ||¦  «          ||d d d…         ¦  «         d S )NTrè   c                 óX   •— ‰                       ‰| ¦  «         ‰| ¦  «        ¦  «         d S r   rë   ©r   rÙ   rï   rå   s    €€€r   rð   z1TestArrayReductions.test_all_basic.<locals>.check1  ó/   ø€ Ø×#Ò# F F¨3¡K¤K°°°s±´Ñ<Ô<Ð<Ð<Ð<r   rò   rô   rø   rú   rõ   r‹   ç      ø?©r¯   r¯   rº   ©r   r   rý   Úfloatr¾   ©rå   rï   rð   r   rÙ   s   ``  @r   Útest_all_basicz"TestArrayReductions.test_all_basic/  sß   øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=õ Œj˜#˜s¥E¨%¡L¤Lµ%¸±,´,Ð?Ñ@Ô@ˆØˆˆc‰
Œ
ˆ
ØˆˆA‰Øˆˆc‰
Œ
ˆ
ØˆˆA‰Øˆˆc‰
Œ
ˆ
Ø�kŠk˜&Ñ!Ô!ˆØˆˆc‰
Œ
ˆ
Øˆˆc�$�$�B�$ŒiÑÔÐÐÐr   c                 óº  ‡ ‡—  t          d¬¦  «        t          ¦  «        Šˆˆ fd„} |t          j        g d¢¦  «        ¦  «          |t          j        g d¢¦  «        ¦  «          |t          j        g d¢¦  «        ¦  «          |t          j        g d¢¦  «        ¦  «         ‰                      ¦   «         5 } ‰d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NTrè   c                 óh   •— t          | ¦  «        } ‰| ¦  «        }‰                     ||¦  «         d S r   )r   rì   ©ÚargÚexpectedÚgotrÙ   rå   s      €€r   rð   z1TestArrayReductions.test_array_all.<locals>.checkA  ó7   ø€ Ý  ‘~”~ˆHØ�%˜‘*”*ˆCØ×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   ©TTT©TFT©rò   ró   rû   ©rô   rò   ró   Úhello)r   r   r   Úarrayr  ©rå   rð   r  rÙ   s   `  @r   Útest_array_allz"TestArrayReductions.test_array_all>  s<  øø€ Ø"•˜TÐ"Ñ"Ô"¥9Ñ-Ô-ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	ˆ�bŒhÐ)Ð)Ð)Ñ*Ô*Ñ+Ô+Ð+Øˆ�bŒhÐ*Ð*Ð*Ñ+Ô+Ñ,Ô,Ð,Øˆ�bŒh���Ñ'Ô'Ñ(Ô(Ð(Øˆ�bŒh���Ñ'Ô'Ñ(Ô(Ð(à×#Ò#Ñ%Ô%ð 	¨ØˆE�'‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó   Â7CÃCÃCc                 óŠ  ‡ ‡—  t          d¬¦  «        t          ¦  «        Šˆˆ fd„} |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d	¦  «        ¦  «          |t          j        d
¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        ¦  «          |t          j        ¦  «          |t          j         ¦  «          |d¦  «          |t          j	        g d¢¦  «        ¦  «          |t          j	        g d¢¦  «        ¦  «          |t          j	        g d¢¦  «        ¦  «          |t          j	        g d¢¦  «        ¦  «         ‰  
                    ¦   «         5 } ‰g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTrè   c                 óh   •— t          | ¦  «        } ‰| ¦  «        }‰                     ||¦  «         d S r   )r   rì   r"  s      €€r   rð   z.TestArrayReductions.test_np_all.<locals>.checkR  ó9   ø€ Ý'¨Ñ,Ô,ˆHØ�%˜‘*”*ˆCØ×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   rô   çš™™™™™É?Fr
  r  r  ú
1970-01-01r  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   Útest_np_allzTestArrayReductions.test_np_allO  óó  øø€ Ø"•˜TÐ"Ñ"Ô"Õ#3Ñ4Ô4ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	ˆ�bŒj˜‰oŒoÑÔÐØˆ�bŒj˜‰oŒoÑÔÐØˆ�bŒh�t‰nŒnÑÔÐØˆ�bŒh�u‰oŒoÑÔÐð 	ˆ�bŒm˜LÑ)Ô)Ñ*Ô*Ð*Øˆ�bŒmÐ.Ñ/Ô/Ñ0Ô0Ð0Øˆ�bŒmÐ8Ñ9Ô9Ñ:Ô:Ð:Øˆ�bŒm˜LÑ)Ô)Ñ*Ô*Ð*Øˆ�bŒm˜EÑ"Ô"Ñ#Ô#Ð#Øˆ�bŒn˜Q Ñ$Ô$Ñ%Ô%Ð%Øˆ�bŒn˜Q Ñ$Ô$Ñ%Ô%Ð%Øˆ�bŒn˜Q Ñ$Ô$Ñ%Ô%Ð%Øˆ�bŒn˜Q Ñ%Ô%Ñ&Ô&Ð&Øˆ�bŒn˜Q Ñ%Ô%Ñ&Ô&Ð&ð 	ˆ�bŒf‰ŒˆØˆ�bŒf‰ŒˆØˆ�rŒvˆg‰ŒˆØˆˆd‰Œˆð 	ˆ�bŒhÐ)Ð)Ð)Ñ*Ô*Ñ+Ô+Ð+Øˆ�bŒhÐ*Ð*Ð*Ñ+Ô+Ñ,Ô,Ð,Øˆ�bŒh���Ñ'Ô'Ñ(Ô(Ð(Øˆ�bŒh���Ñ'Ô'Ñ(Ô(Ð(à×#Ò#Ñ%Ô%ð 	¨ØˆE�'�'�'‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó   ÊJ8Ê8J<Ê?J<c                 óŠ  ‡ ‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}t          j        g d¢¦  «        } ||¦  «         t          d¦  «        |d<    ||¦  «         t          d¦  «        |d<    ||¦  «         d|d<    ||¦  «         |                     d	¦  «        } ||¦  «          ||d d d
…         ¦  «         d S )NTrè   c                 óX   •— ‰                       ‰| ¦  «         ‰| ¦  «        ¦  «         d S r   rë   r  s    €€€r   rð   z1TestArrayReductions.test_any_basic.<locals>.checkz  r  r   )rô   rõ   rô   rô   rú   r¯   rø   r  r  rº   r  r  s   ``  @r   Útest_any_basicz"TestArrayReductions.test_any_basicx  só   øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=õ ŒjÐ.Ð.Ð.Ñ/Ô/ˆØˆˆc‰
Œ
ˆ
Ý�u‘”ˆˆA‰Øˆˆc‰
Œ
ˆ
Ý�u‘”ˆˆA‰Øˆˆc‰
Œ
ˆ
ØˆˆA‰Øˆˆc‰
Œ
ˆ
Ø�kŠk˜&Ñ!Ô!ˆØˆˆc‰
Œ
ˆ
Øˆˆc�$�$�B�$ŒiÑÔÐÐÐr   c                 óº  ‡ ‡—  t          d¬¦  «        t          ¦  «        Šˆˆ fd„} |t          j        g d¢¦  «        ¦  «          |t          j        g d¢¦  «        ¦  «          |t          j        g d¢¦  «        ¦  «          |t          j        g d¢¦  «        ¦  «         ‰                      ¦   «         5 } ‰d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NTrè   c                 óh   •— t          | ¦  «        } ‰| ¦  «        }‰                     ||¦  «         d S r   )r   rì   r"  s      €€r   rð   z1TestArrayReductions.test_array_any.<locals>.check‹  r&  r   r'  r(  r)  r*  r+  )r   r   r   r,  r  r-  s   `  @r   Útest_array_anyz"TestArrayReductions.test_array_any‰  s<  øø€ Ø"•˜TÐ"Ñ"Ô"¥9Ñ-Ô-ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	ˆ�bŒhÐ)Ð)Ð)Ñ*Ô*Ñ+Ô+Ð+Øˆ�bŒhÐ*Ð*Ð*Ñ+Ô+Ñ,Ô,Ð,Øˆ�bŒh���Ñ'Ô'Ñ(Ô(Ð(Øˆ�bŒh���Ñ'Ô'Ñ(Ô(Ð(à×#Ò#Ñ%Ô%ð 	¨ØˆE�'‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	r/  c                 óŠ  ‡ ‡—  t          d¬¦  «        t          ¦  «        Šˆˆ fd„} |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d	¦  «        ¦  «          |t          j        d
¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        ¦  «          |t          j        ¦  «          |t          j         ¦  «          |d¦  «          |t          j	        g d¢¦  «        ¦  «          |t          j	        g d¢¦  «        ¦  «          |t          j	        g d¢¦  «        ¦  «          |t          j	        g d¢¦  «        ¦  «         ‰  
                    ¦   «         5 } ‰g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTrè   c                 óh   •— t          | ¦  «        } ‰| ¦  «        }‰                     ||¦  «         d S r   )r   rì   r"  s      €€r   rð   z.TestArrayReductions.test_np_any.<locals>.checkœ  r2  r   rô   r3  Fr
  r  r  r4  r  r¸   r  r  r  r  r   r  rõ   r'  r(  r)  r*  r5  )r   r   r   rý   r°   r  r  rú   rø   r,  r  r-  s   `  @r   Útest_np_anyzTestArrayReductions.test_np_any™  r7  r8  c                 ó:   — |                       t          ¦  «         d S r   )rÿ   r6   ©rå   s    r   Útest_sum_basicz"TestArrayReductions.test_sum_basicÂ  s   € Ø×"Ò"¥9Ñ-Ô-Ð-Ð-Ð-r   c                 ó:   — |                       t          ¦  «         d S r   )rÿ   rB   rC  s    r   Útest_mean_basicz#TestArrayReductions.test_mean_basicÅ  s   € Ø×"Ò"¥:Ñ.Ô.Ð.Ð.Ð.r   c                 óæ  ‡ ‡—  t          d¬¦  «        t          ¦  «        Šˆˆ fd„} |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d	¦  «        ¦  «          |t          j	        d
¦  «        ¦  «          |t          j
        d¦  «        ¦  «          |t          j        ¦  «          |t          j        ¦  «          |t          j         ¦  «          |d¦  «          |d¦  «          |d¦  «          |d¦  «          |d¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «          |t          j        dd¦  «        ¦  «         ‰                      ¦   «         5   ‰d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTrè   c                 óh   •— t          | ¦  «        } ‰| ¦  «        }‰                     ||¦  «         d S r   )rD   rì   r"  s      €€r   rð   z6TestArrayReductions.test_np_mean_scalar.<locals>.checkË  ó9   ø€ Ý(¨Ñ-Ô-ˆHØ�%˜‘*”*ˆCØ×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   r¯   éýÿÿÿr¸   Fg      ô?g      Ày      @        y     €N@     €R@rõ   rô   r   gÓ‹5·�Ñ>g>íð×d�Ð¿r  r  r  r  r  ztest String)r   rD   r   r  Úint64Úuint32r°   rÍ   rý   rÎ   Ú
complex128rú   rø   r  r  ©rå   rð   rÙ   s   ` @r   Útest_np_mean_scalarz'TestArrayReductions.test_np_mean_scalarÈ  s®  øø€ Ø"•˜TÐ"Ñ"Ô"Õ#4Ñ5Ô5ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	ˆ�bŒh�q‰kŒkÑÔÐØˆ�bŒh�r‰lŒlÑÔÐØˆ�bŒi˜‰lŒlÑÔÐØˆ�bŒh�t‰nŒnÑÔÐØˆ�bŒh�u‰oŒoÑÔÐð 	ˆ�bŒj˜ÑÔÑÔÐØˆ�bŒj˜ÑÔÑÔÐð 	ˆ�bŒl˜4Ñ Ô Ñ!Ô!Ð!Øˆ�bŒm˜FÑ#Ô#Ñ$Ô$Ð$ð 	ˆ�bŒf‰ŒˆØˆ�bŒf‰ŒˆØˆ�rŒvˆg‰ŒˆØˆˆd‰ŒˆØˆˆc‰
Œ
ˆ
Øˆˆa‰ŒˆØˆˆiÑÔÐØˆˆh‰Œˆð 	ˆ�bŒn˜Q Ñ$Ô$Ñ%Ô%Ð%Øˆ�bŒn˜Q Ñ$Ô$Ñ%Ô%Ð%Øˆ�bŒn˜Q Ñ$Ô$Ñ%Ô%Ð%Øˆ�bŒn˜Q Ñ%Ô%Ñ&Ô&Ð&Øˆ�bŒn˜Q Ñ%Ô%Ñ&Ô&Ð&ð ×#Ò#Ñ%Ô%ð 	!ð 	!ØˆE�-Ñ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ÉI&É&I*É-I*c                 ó¾  —  t          d¬¦  «        t          ¦  «        }t          j        t          j        ft          j        t          j        ft          j        t          j        ft          j        t          j        ffD ]˜\  }}|                      ||¬¦  «        5   |g ¦  «        }t          j	        |¦  «        }|  
                     ||¦  «        |¦  «         |                      |j        d         j        |¦  «         ddd¦  «         n# 1 swxY w Y   Œ™t          j        g ¦  «        }t          j	        |¦  «        }|  
                     ||¦  «        |¦  «         dS )z7Test that mean of empty array returns nan (issue #5502)Trè   )Únp_typeÚnb_typerº   N)r   rB   r   rÍ   r   rý   rÎ   rM  ÚsubTestrA   rì   ÚassertEqualÚnopython_signaturesÚreturn_typerK  )rå   rÙ   rQ  rR  r   r$  s         r   Útest_mean_empty_arrayz)TestArrayReductions.test_mean_empty_arrayô  s€  € à"•˜TÐ"Ñ"Ô"¥:Ñ.Ô.ˆõ #%¤*­e¬mÐ!<Ý"$¤*­e¬mÐ!<Ý"$¤,µ´Ð!@Ý"$¤-µÔ1AÐ!Bð!Dð 	Uð 	UÑˆG�Wð —’ g°w�Ñ?Ô?ð Uð UØ�g˜b‘k”k�Ýœ7 3™<œ<�Ø×'Ò'¨¨¨c©
¬
°HÑ=Ô=Ð=Ø× Ò  Ô!:¸2Ô!>Ô!JÈGÑTÔTÐTð	Uð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uøõ Œh�r‰lŒlˆÝ”7˜3‘<”<ˆØ×Ò   c¡
¤
¨HÑ5Ô5Ð5Ð5Ð5s   ÂA%D
Ä
D	ÄD	c                 óä   — d}t           j        t           j        fD ]T}t          j        ||¬¦  «        } |d¦  «        |d<   t	          t
          |¦  «        \  }}|                      ||¦  «         ŒUd S )Ni  r´   iÿÿÿ r   )r   rÍ   rÎ   ÚzerosrÜ   rB   rì   )rå   r±   rµ   r   ÚnprÚnbrs         r   Útest_mean_count_roundingz,TestArrayReductions.test_mean_count_rounding  s~   € ð ˆÝ”j¥"¤,Ð/ð 	.ð 	.ˆEÝ”(˜1 EÐ*Ñ*Ô*ˆCØ�U˜9Ñ%Ô%ˆC�‰FÝ&¥z°3Ñ7Ô7‰HˆC�Ø×#Ò# C¨Ñ-Ô-Ð-Ð-ð		.ð 	.r   c                 óÔ   —  t          d¬¦  «        t          ¦  «        }t          j        g d¬¦  «        }t          j        |¦  «        }|                       ||¦  «        |¦  «         dS )z3Test that mean of empty timedelta array returns NaTTrè   ztimedelta64[D]r´   N)r   rB   r   r,  rA   rì   )rå   rÙ   r   r$  s       r   Útest_mean_empty_timedeltaz-TestArrayReductions.test_mean_empty_timedelta  sd   € à"•˜TÐ"Ñ"Ô"¥:Ñ.Ô.ˆõ Œh�rÐ!1Ð2Ñ2Ô2ˆÝ”7˜3‘<”<ˆà×Ò   c¡
¤
¨HÑ5Ô5Ð5Ð5Ð5r   c                 óž  —  t          d¬¦  «        t          ¦  «        }t          j        g d¬¦  «        }|                      ¦   «          |                      t          ¦  «        5  t          j        |¦  «         ddd¦  «         n# 1 swxY w Y   |                      t          ¦  «        5   ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zLTest that mean of empty datetime array raises error (matches NumPy behavior)Trè   zdatetime64[D]r´   N)r   rB   r   r,  Údisable_leak_checkÚassertRaisesÚ	ExceptionrA   )rå   rÙ   r   s      r   Útest_mean_empty_datetimez,TestArrayReductions.test_mean_empty_datetime  sC  € à"•˜TÐ"Ñ"Ô"¥:Ñ.Ô.ˆõ Œh�r Ð1Ñ1Ô1ˆà×ÒÑ!Ô!Ð!ð ×Ò�yÑ)Ô)ð 	ð 	ÝŒG�C‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×Ò�yÑ)Ô)ð 	ð 	ØˆE�#‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s$   Á#BÂBÂBÂ)CÃCÃ	Cc                 ó>   — |                       t          d¬¦  «         d S ©NÚdouble©Úprec)rÿ   rG   rC  s    r   Útest_var_basicz"TestArrayReductions.test_var_basic-  s!   € Ø×"Ò"¥9°8Ð"Ñ<Ô<Ð<Ð<Ð<r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )r  rN   rÿ   rL   rC  s    r   Útest_std_basicz"TestArrayReductions.test_std_basic0  s1   € à×ÒÕ 0Ñ1Ô1Ð1à×"Ò"¥9Ñ-Ô-Ð-Ð-Ð-r   c                 ó¢   — |                       t          ¦  «         |                      t          ¦  «         |                      t          ¦  «         d S r   )r  rS   rÿ   rQ   r  rC  s    r   Útest_min_basicz"TestArrayReductions.test_min_basic6  sF   € à×ÒÕ 0Ñ1Ô1Ð1à×"Ò"¥9Ñ-Ô-Ð-à×"Ò"Õ#3Ñ4Ô4Ð4Ð4Ð4r   c                 ó¢   — |                       t          ¦  «         |                      t          ¦  «         |                      t          ¦  «         d S r   )r  rV   rÿ   r  rC  s    r   Útest_amin_basicz#TestArrayReductions.test_amin_basic>  sD   € à×Ò¥
Ñ+Ô+Ð+à×"Ò"¥:Ñ.Ô.Ð.à×"Ò"¥:Ñ.Ô.Ð.Ð.Ð.r   c                 ó¢   — |                       t          ¦  «         |                      t          ¦  «         |                      t          ¦  «         d S r   )rÿ   rY   r  r[   r  rC  s    r   Útest_max_basicz"TestArrayReductions.test_max_basicF  sF   € à×"Ò"¥9Ñ-Ô-Ð-à×ÒÕ 0Ñ1Ô1Ð1à×"Ò"Õ#3Ñ4Ô4Ð4Ð4Ð4r   c                 ó¢   — |                       t          ¦  «         |                      t          ¦  «         |                      t          ¦  «         d S r   )rÿ   r^   r  r  rC  s    r   Útest_amax_basicz#TestArrayReductions.test_amax_basicN  sD   € à×"Ò"¥:Ñ.Ô.Ð.à×Ò¥
Ñ+Ô+Ð+à×"Ò"¥:Ñ.Ô.Ð.Ð.Ð.r   c                 ó:   — |                       t          ¦  «         d S r   )rÿ   rb   rC  s    r   Útest_argmin_basicz%TestArrayReductions.test_argmin_basicV  ó   € Ø×"Ò"¥<Ñ0Ô0Ð0Ð0Ð0r   c                 ó:   — |                       t          ¦  «         d S r   )rÿ   ri   rC  s    r   Útest_argmax_basicz%TestArrayReductions.test_argmax_basicY  rv  r   c                 ó:   — |                       t          ¦  «         d S r   )rÿ   rr   rC  s    r   Útest_nanmin_basicz%TestArrayReductions.test_nanmin_basic\  rv  r   c                 ó:   — |                       t          ¦  «         d S r   )rÿ   ru   rC  s    r   Útest_nanmax_basicz%TestArrayReductions.test_nanmax_basic_  rv  r   c                 ó:  — d d„d d„g}t          j        g d¢¦  «        t          j        t           j        ddg¦  «        t          j        ddt           j        g¦  «        t          j        dt           j        ddg¦  «        t          j        dt           j        ddg¦  «        t          j        dt           j        dgddt           j        gg¦  «        t          j        g d¢¦  «        t          j        g d¢t           j        ¬	¦  «        t          j        ddt           j        dd
g¦  «        d d d…         t          j        t          j        dt           j        gddgg¦  «        ¦  «        t          j        d¦  «        t          j        t           j        t           j         g¦  «        t          j        t           j        t           j        g¦  «        t          j        t           j         t           j         g¦  «        t          j        t           j        t           j         g¦  «        t          j        t           j        t           j        g¦  «        g}|D ]H} t          d¬¦  «        |¦  «        }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+ŒI|D ]Å}  t          d¬¦  «        |¦  «        t          j        ddg¦  «        ¦  «        }|                      |t          ¦  «           t          d¬¦  «        |¦  «        t          j        ddgddgg¦  «        d¦  «        }|  
                    |j        t          j        t           j        ¦  «        ¦  «         ŒÆt          j        dt           j        dgddt           j        gg¦  «        }t          j        d¦  «                             dddd¦  «        }t           j        |d<   |dxx         dz  cc<   |t          j        |¦  «        |fD ]­}t          t!          |j        ¦  «        ¦  «        d„ t!          |j        ¦  «        D ¦   «         z   }	d„ d g|	z   D ¦   «         d„ d g|	z   D ¦   «         z   }
d„ |
D ¦   «         }t%          |
|¦  «        D ]-\  }}|                       ||¦  «         ||¦  «        ¦  «         Œ.Œ®|                      ¦   «          |d         df|d         dffD ]Ê\  }} t          d¬¦  «        |¦  «        }t          j        g t           j        ¬	¦  «        }t*          dk     rd}n|}|                      t.          |¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t.          |¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒË|D �]} t          d¬¦  «        |¦  «        }t          j        t           j        t           j        g¦  «        }|                      t.          d¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t.          d¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t           j        ¦  «        }|                      t.          d¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t.          d¦  «        5   ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        dt           j        gdt           j        gg¦  «        }|                      t.          d¦  «        5   ||d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t.          d¦  «        5   ||d¦  «         d d d ¦  «         n# 1 swxY w Y   �Œ
d S )!Nc                 ó,   — t          j        | |¦  «        S r   ©r   Ú	nanargmax©r£   Úaxiss     r   ú<lambda>z>TestArrayReductions.test_nanargmax_nanargmin.<locals>.<lambda>f  ó   € ¥¤¨a°Ñ!6Ô!6€ r   c                 ó,   — t          j        | |¦  «        S r   ©r   Ú	nanargminr�  s     r   rƒ  z>TestArrayReductions.test_nanargmax_nanargmin.<locals>.<lambda>g  r„  r   )rò   rû   ró   rò   rû   ró   rü   )r‹   r»   r¯   r´   g      @r¯   g      @Trè   r‹   g      ^@r»   é   r¸   ©r   r‹   r‹   r¯   ©r‹   r¯   r»   rˆ  éd   c                 ó   — g | ]}|d z    ‘Œ	S ©r‹   rÈ   ©rÉ   Úis     r   rÊ   z@TestArrayReductions.test_nanargmax_nanargmin.<locals>.<listcomp>ž  s   € Ð+NÐ+NÐ+N¸¨a°!©e¨HÐ+NÐ+NÐ+Nr   c                 ó   — g | ]}|fd „‘ŒS )c                 ó.   — t          j        | |¬¦  «        S ©N©r‚  r  ©r£   Ú_axiss     r   rƒ  zITestArrayReductions.test_nanargmax_nanargmin.<locals>.<listcomp>.<lambda>   ó   € ¥b¤l°1¸5Ð&AÑ&AÔ&A€ r   rÈ   ©rÉ   r‚  s     r   rÊ   z@TestArrayReductions.test_nanargmax_nanargmin.<locals>.<listcomp>Ÿ  s1   € ð ð ð àð !%ÐAÐAÐAðð ð r   c                 ó   — g | ]}|fd „‘ŒS )c                 ó.   — t          j        | |¬¦  «        S r’  r†  r”  s     r   rƒ  zITestArrayReductions.test_nanargmax_nanargmin.<locals>.<listcomp>.<lambda>£  r–  r   rÈ   r—  s     r   rÊ   z@TestArrayReductions.test_nanargmax_nanargmin.<locals>.<listcomp>¢  s1   € ð ð ð àð !%ÐAÐAÐAðð ð r   c                 ó@   — g | ]} t          d ¬¦  «        |¦  «        ‘ŒS ©Trè   ©r   ©rÉ   rï   s     r   rÊ   z@TestArrayReductions.test_nanargmax_nanargmin.<locals>.<listcomp>¦  ó;   € ð ð ð Ø/5Ð"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ðð ð r   r   z*attempt to get argmax of an empty sequencez*attempt to get argmin of an empty sequence)r¯   r   zAll-NaN slice encounteredr   )r   r,  rú   r  Úasfortranarrayrø   r   rì   ÚassertIsInstanceÚintrT  rµ   Úintpr¶   r¾   ÚlistÚrangeÚndimÚzipr`  rý   r	   ÚassertRaisesRegexÚ
ValueError)rå   ÚpyfuncsÚcasesrï   rÙ   r   r%  Úarr2dÚarr4dÚaxesÚpy_functionsÚc_functionsÚ	empty_msgÚemptyÚ
pyfunc_msgÚallnanÚ	allnan_0dÚnan_cols                     r   Útest_nanargmax_nanargminz,TestArrayReductions.test_nanargmax_nanargminb  su	  € ð 7Ð6Ð6Ø6Ð6Ð6ð
ˆõ ŒH�_�_�_Ñ%Ô%ÝŒH•b”f˜c 3Ð'Ñ(Ô(ÝŒH�c˜3¥¤Ð'Ñ(Ô(ÝŒH�c�2œ6 3¨Ð,Ñ-Ô-ÝŒH�c�2œ6 3¨Ð,Ñ-Ô-ÝŒH�s�BœF CÐ(¨3°µR´VÐ*<Ð=Ñ>Ô>ÝŒH�Y�Y�YÑÔÝŒH�Y�Y�Y¥b¤hÐ/Ñ/Ô/õ ŒH�c˜3¥¤¨¨SÐ1Ñ2Ô2°3°3°Q°3Ô7ÝÔ�bœh¨­b¬f¨¸¸S°zÐ'BÑCÔCÑDÔDÝŒH�S‰MŒMÝŒH•b”f�rœv˜gÐ&Ñ'Ô'ÝŒH•b”f�bœfÐ%Ñ&Ô&ÝŒH•r”v�g¥¤˜wÐ'Ñ(Ô(õ ŒH•b”f�rœv˜gÐ&Ñ'Ô'ÝŒH•b”f�bœfÐ%Ñ&Ô&ð)
ˆð. ð 	Að 	AˆFØ&•C Ð&Ñ&Ô& vÑ.Ô.ˆEØð Að A�Ø×'Ò'¨¨¨s©¬°U°U¸3±Z´ZÑ@Ô@Ð@Ð@ðAð ð 	;ð 	;ˆFØ,Ð$•#˜tÐ$Ñ$Ô$ VÑ,Ô,­R¬X°s¸C°jÑ-AÔ-AÑBÔBˆCØ×!Ò! #¥sÑ+Ô+Ð+Ø,Ð$•#˜tÐ$Ñ$Ô$ VÑ,Ô,Ý”˜3 ˜* s¨C jÐ1Ñ2Ô2°Añ7ô 7ˆCà×Ò˜SœY­¬µ´Ñ(9Ô(9Ñ:Ô:Ð:Ð:õ ”˜3¥¤¨Ð,¨s°C½¼Ð.@ÐAÑBÔBˆÝ”	˜$‘”×'Ò'¨¨1¨a°Ñ3Ô3ˆÝœFˆˆjÑØˆjÐÐÔ˜SÑ ÐÐÑà�2Ô,¨UÑ3Ô3°UÐ;ð 	Að 	AˆCÝ�˜cœh™œÑ(Ô(Ð+NÐ+N½eÀCÄH¹o¼oÐ+NÑ+NÔ+NÑNˆDðð à!˜F T™Mðñ ô ðð à!˜F T™Mðñ ô ñˆLðð Ø9Eðñ ô ˆKõ "% \°;Ñ!?Ô!?ð Að A‘�˜Ø×'Ò'¨¨¨s©¬°U°U¸3±Z´ZÑ@Ô@Ð@Ð@ðAð 	×ÒÑ!Ô!Ð!ð �QŒZÐEÐFØ�QŒZÐEÐFð"
ð 	ð 	ÑˆF�Ið '•C Ð&Ñ&Ô& vÑ.Ô.ˆEÝ”H˜R¥r¤zÐ2Ñ2Ô2ˆEõ
 ˜vÒ%Ð%Ø8�
�
à&�
Ø×'Ò'­
°JÑ?Ô?ð ð Ø��u‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à×'Ò'­
°IÑ>Ô>ð ð Ø��e‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øð ð 	"ñ 	"ˆFØ&•C Ð&Ñ&Ô& vÑ.Ô.ˆEÝ”X�rœv¥r¤vÐ.Ñ/Ô/ˆFØ×'Ò'­
Ø)DñFô Fð ð à��v‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×'Ò'­
Ø)DñFô Fð ð à��f‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ œ¥¤Ñ(Ô(ˆIØ×'Ò'­
Ø)DñFô Fð "ð "à��yÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð ×'Ò'­
Ø)DñFô Fð !ð !à��iÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ
 ”h ¥b¤f °µR´V¨}Ð=Ñ>Ô>ˆGØ×'Ò'­
Ø)DñFô Fð #ð #à��w Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð ×'Ò'­
Ø)DñFô Fð "ð "à��g˜qÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ùð/	"ð 	"s�   Ô-UÕU		ÕU		Õ+VÖV	Ö
V	×2X
Ø
X	ØX	Ø0YÙY	ÙY	ÚZ$Ú$Z(	Ú+Z(	Û
["Û"[&	Û)[&	Ü6]Ý]	Ý]	Ý5^Þ^	Þ^	c                 ó:   — |                       t          ¦  «         d S r   )rÿ   rx   rC  s    r   Útest_nanmean_basicz&TestArrayReductions.test_nanmean_basicß  ó   € Ø×"Ò"¥=Ñ1Ô1Ð1Ð1Ð1r   c                 ó:   — |                       t          ¦  «         d S r   )rÿ   r{   rC  s    r   Útest_nansum_basicz%TestArrayReductions.test_nansum_basicâ  rv  r   c                 ó:   — |                       t          ¦  «         d S r   )rÿ   r~   rC  s    r   Útest_nanprod_basicz&TestArrayReductions.test_nanprod_basicå  r¹  r   c                 ó:   — |                       t          ¦  «         d S r   )rÿ   r‚   rC  s    r   Útest_nanstd_basicz%TestArrayReductions.test_nanstd_basicè  rv  r   c                 ó0  — |                       t          ¦  «         |                       t          ¦  «         t          t          j        ¦  «        D ]Q}t          t          fD ]@}t          ||                     ¦   «         ¦  «        \  }}|                      ||dd¬¦  «         ŒAŒRt	          j	        dt          j
        dt          j
        dgt          j        ¬¦  «        }t          t          fD ].}t          ||¦  «        \  }}|                      ||dd¬¦  «         Œ/d S )NÚsingler¯   ©rh  Úulpsù      ð?       @ù      @      ð¿ù      @        r´   )rÿ   r‡   rŒ   rÕ   r   rÎ   rÜ   Úravelrì   r,  rú   ©rå   r   rï   rZ  r[  s        r   Útest_nanstd_ddofz$TestArrayReductions.test_nanstd_ddofë  s  € Ø×"Ò"Õ#5Ñ6Ô6Ð6Ø×"Ò"Õ#5Ñ6Ô6Ð6å#¥B¤LÑ1Ô1ð 	Ið 	IˆCÝ-Õ/AÐBð Ið I�Ý*¨6°3·9²9±;´;Ñ?Ô?‘��SØ×'Ò'¨¨S°xÀaÐ'ÑHÔHÐHÐHðIõ Œh˜�bœf d­B¬F°DÐ9ÅÄÐNÑNÔNˆÝ)Õ+=Ð>ð 	Eð 	EˆFÝ& v¨sÑ3Ô3‰HˆC�Ø×#Ò# C¨°8À!Ð#ÑDÔDÐDÐDð	Eð 	Er   c                 ó8  — |                       t          d¬¦  «         |                       t          d¬¦  «         t          t          j        ¦  «        D ]Q}t          t          fD ]@}t          ||                     ¦   «         ¦  «        \  }}|                      ||dd¬¦  «         ŒAŒRt	          j	        dt          j
        dt          j
        dgt          j        ¬	¦  «        }t          t          fD ].}t          ||¦  «        \  }}|                      ||dd¬¦  «         Œ/d S )
Nrf  rg  rÁ  r¯   rÂ  rÄ  rÅ  rÆ  r´   )rÿ   r�   r’   rÕ   r   rÎ   rÜ   rÇ  rì   r,  rú   rÈ  s        r   Útest_nanvar_ddofz$TestArrayReductions.test_nanvar_ddofù  s&  € Ø×"Ò"Õ#5¸HÐ"ÑEÔEÐEØ×"Ò"Õ#5¸HÐ"ÑEÔEÐEå#¥B¤LÑ1Ô1ð 	Ið 	IˆCÝ-Õ/AÐBð Ið I�Ý*¨6°3·9²9±;´;Ñ?Ô?‘��SØ×'Ò'¨¨S°xÀaÐ'ÑHÔHÐHÐHðIõ Œh˜�bœf d­B¬F°DÐ9ÅÄÐNÑNÔNˆÝ)Õ+=Ð>ð 	Eð 	EˆFÝ& v¨sÑ3Ô3‰HˆC�Ø×#Ò# C¨°8À!Ð#ÑDÔDÐDÐDð	Eð 	Er   c                 ó>   — |                       t          d¬¦  «         d S re  )rÿ   r”   rC  s    r   Útest_nanvar_basicz%TestArrayReductions.test_nanvar_basic  s!   € Ø×"Ò"¥<°hÐ"Ñ?Ô?Ð?Ð?Ð?r   c                 óT  ‡ ‡‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„Š ‰t          j        g ¦  «        ¦  «         ˆfd„} |t          j        d¦  «        dz   ¦  «        D ]} ||¦  «         Œˆfd„} |t          j        d¦  «        dz   ¦  «        D ]} ||¦  «         Œd S )	NTrè   c                 ó`   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      ||¦  «         d S r   rë   )r   r$  r%  rÙ   rï   rå   s      €€€r   rð   z5TestArrayReductions.check_median_basic.<locals>.check  s9   ø€ Ø�v˜c‘{”{ˆHØ�%˜‘*”*ˆCØ×#Ò# C¨Ñ2Ô2Ð2Ð2Ð2r   c                 ó~   •—  ‰| ¦  «         |                       d¦  «        }  ‰| ¦  «          ‰| j        ¦  «         d S )N)é	   é   ©r¾   ÚT©r£   rð   s    €r   Ú	check_oddz9TestArrayReductions.check_median_basic.<locals>.check_odd  sA   ø€ ØˆE�!‰HŒHˆHØ—	’	˜&Ñ!Ô!ˆAØˆE�!‰HŒHˆHØˆE�!”#‰JŒJˆJˆJˆJr   é?   g      %@c                 ó~   •—  ‰| ¦  «         |                       d¦  «        }  ‰| ¦  «          ‰| j        ¦  «         d S )N)rˆ  é   rÓ  rÕ  s    €r   Ú
check_evenz:TestArrayReductions.check_median_basic.<locals>.check_even  sA   ø€ ØˆE�!‰HŒHˆHØ—	’	˜'Ñ"Ô"ˆAØˆE�!‰HŒHˆHØˆE�!”#‰JŒJˆJˆJˆJr   é@   )r   r   r,  r¶   )rå   rï   Úarray_variationsrÖ  r£   rÚ  rÙ   rð   s   ``    @@r   Úcheck_median_basicz&TestArrayReductions.check_median_basic
  s	  øøøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	ˆ�bŒh�r‰lŒlÑÔÐð	ð 	ð 	ð 	ð 	ð
 "Ð!¥"¤)¨B¡-¤-°$Ñ"6Ñ7Ô7ð 	ð 	ˆAØˆI�a‰LŒLˆLˆLð	ð 	ð 	ð 	ð 	ð
 "Ð!¥"¤)¨B¡-¤-°$Ñ"6Ñ7Ô7ð 	ð 	ˆAØˆJ�q‰MŒMˆMˆMð	ð 	r   c              #   ó  K  — | V — | d d d…                               ¦   «         } | V — t          j                             | ¦  «         | V — d| | dz  dk    <   | V — t          j        | | dz  dk    <   | V — t          j        | d d …<   | V — d S )Nrº   ç      @rˆ  r‹   r¯   )Úcopyr   rã   Úshufflerú   r¢   s    r   Ú_array_variationsz%TestArrayReductions._array_variations&  s¢   è è € ð ˆˆˆØˆdˆd�ˆdŒG�LŠL‰NŒNˆØˆˆˆÝ
Œ	×Ò˜!ÑÔÐØˆˆˆØˆˆ!ˆa‰%�1Š*‰ØˆˆˆÝœˆˆ!ˆa‰%�1Š*‰ØˆˆˆÝŒvˆˆ!ˆ!ˆ!‰Øˆˆˆˆˆr   c                 óF   — t           }d„ }|                      ||¦  «         d S )Nc              3   óº   K  — | V — | d d d…                               ¦   «         } | V — t          j                             | ¦  «         | V — d| | dz  dk    <   | V — d S )Nrº   rß  rˆ  r‹   )rà  r   rã   rá  r¢   s    r   Ú
variationsz9TestArrayReductions.test_median_basic.<locals>.variations8  sl   è è € àˆGˆGˆGØ�$�$�B�$”—’‘”ˆAØˆGˆGˆGÝŒI×Ò˜aÑ Ô Ð ØˆGˆGˆGØˆAˆa�!‰e�qŠj‰MØˆGˆGˆGˆGˆGr   )ro   rÝ  )rå   rï   rå  s      r   Útest_median_basicz%TestArrayReductions.test_median_basic5  s4   € Ý$ˆð	ð 	ð 	ð 	×Ò ¨
Ñ3Ô3Ð3Ð3Ð3r   c           	      ól	  ‡ ‡‡—  t          d¬¦  «        ‰¦  «        Šd!ˆˆˆ fd„	}‰ j                             d¦  «                             ddd¦  «        }t	          j        d|d¦  «        d d d	…         } |||¦  «          ||d¦  «          |||d
z  ¦  «          |||¦  «         t          j        t          j         t          j        g}‰ j                             |d¦  «        |j	        d d…<   ‰ j         
                    |¦  «         ‰ j         
                    |¦  «          |||¦  «         |                     ¦   «                              ¦   «         }|                     ¦   «                              ¦   «         } |||¦  «          |t          |¦  «        t          |¦  «        ¦  «         ‰ j                             g d¢d¦  «        }t	          j        d|d¦  «        } |||¦  «         t	          j        d¦  «        dz  }t          j                              ‰|d¦  «        d¦  «         t          j                              ‰||¦  «        d¦  «         t          j                              ‰||d
z  ¦  «        d¦  «         t	          j        d¦  «                             dd¦  «        }t	          j        d¦  «        |z  }t          j                              ‰||¦  «        g d¢¦  «         t	          j        d¦  «                             dddd¦  «        }t	          j        d¦  «        |z  }t          j                              ‰||¦  «        j        d¦  «         t	          j        d¦  «        |z  }t          j                              ‰||¦  «        j        d¦  «         t	          j        d¦  «                             dd¦  «        }t          j                              ‰||d
z  ¦  «        d¦  «         ‰                      t	          j         ‰||d
z  ¦  «        ¦  «        ¦  «         t          j                              ‰g d¢d¦  «        d¦  «         t	          j        g d ¢¦  «        } ‰||d
z  g¦  «         t          j                             |t	          j        g d ¢¦  «        ¦  «         d S )"NTrè   çê-�™—q=c                 ó  •—  ‰| |¦  «        } ‰| |¦  «        }t          j        |¦  «        }t          j        |¦  «        r‰                     |||¬¦  «         d S ‰                     ||         ||         |¬¦  «         d S ©N)Úabs_tol©r   Úisfiniter   rì   ©	r£   r›   rë  r$  r%  ÚfiniterÙ   rï   rå   s	         €€€r   rð   z@TestArrayReductions.check_percentile_and_quantile.<locals>.checkG  óš   ø€ Ø�v˜a ‘|”|ˆHØ�%˜˜1‘+”+ˆCõ ”[ Ñ*Ô*ˆFÝŒv�f‰~Œ~ð 9Ø×'Ò'¨¨X¸wÐ'ÑGÔGÐGÐGÐGà×'Ò'¨¨F¬°X¸fÔ5EØ07ð (ñ 9ô 9ð 9ð 9ð 9r   é   r»   r   é   rº   r¯   r·   rŠ  r¸   é   ç      à?rô   rß  g      ü?r¹   rˆ  )ç      Ð?rô  rò   )g      @ç      @g      &@ih  é   )rõ  rô  ©r¯   )rõ  rô  g      è?)r»   rö  r5  r‹   )r¯   r»   rˆ  r‹   )rè  )r   rã   Úrandnr¾   r   Úlinspacerú   rø   ÚchoiceÚflatrá  ÚflattenÚtolistÚtupler¶   ÚtestingÚassert_equalr,  ÚshapeÚ
assertTrueÚisscalar)	rå   rï   Úq_upper_boundrð   r£   r›   Ú
not_finiteÚxrÙ   s	   ``      @r   Úcheck_percentile_and_quantilez1TestArrayReductions.check_percentile_and_quantileD  sI  øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð
	9ð 
	9ð 
	9ð 
	9ð 
	9ð 
	9ð 
	9ð 
	9ð ŒK×Ò˜bÑ!Ô!×)Ò)¨!¨Q°Ñ2Ô2ˆÝŒK˜˜=¨"Ñ-Ô-¨d¨d°¨dÔ3ˆØˆˆa�‰ŒˆØˆˆa�‰ŒˆØˆˆa� Ñ"Ñ#Ô#Ð#Øˆˆa�ÑÔÐå”f�rœv˜g¥r¤vÐ.ˆ
Ø”k×(Ò(¨°RÑ8Ô8ˆŒˆs�ˆs‰ØŒ×Ò˜AÑÔÐØŒ×Ò˜AÑÔÐØˆˆa�‰Œˆà�IŠI‰KŒK×ÒÑ Ô ˆØ�IŠI‰KŒK×ÒÑ Ô ˆØˆˆa�‰ŒˆØˆ�e�A‰hŒh�˜a™œÑ!Ô!Ð!àŒK×Ò˜|˜|˜|¨RÑ0Ô0ˆÝŒK˜˜=¨!Ñ,Ô,ˆØˆˆa�‰Œˆõ ŒI�a‰LŒL˜3ÑˆÝ
Œ
×Ò   a¨¡¤¨RÑ0Ô0Ð0Ý
Œ
×Ò   a¨Ñ 7Ô 7¸Ñ=Ô=Ð=Ý
Œ
×Ò   a¨¸Ñ):Ñ ;Ô ;¸TÑBÔBÐBåŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆÝŒHÐ%Ñ&Ô&¨Ñ6ˆÝ
Œ
×Ò   a¨¡¤Ð->Ð->Ð->Ñ?Ô?Ð?åŒI�mÑ$Ô$×,Ò,¨Q°°1°aÑ8Ô8ˆÝŒH�\Ñ"Ô" ]Ñ2ˆÝ
Œ
×Ò   a¨¡¤Ô 1°4Ñ8Ô8Ð8åŒHÐ'Ñ(Ô(¨=Ñ8ˆÝ
Œ
×Ò   a¨¡¤Ô 1°4Ñ8Ô8Ð8åŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆÝ
Œ
×Ò   a¨¸Ñ):Ñ ;Ô ;¸SÑAÔAÐAØ�Š�œ E E¨!¨]¸QÑ->Ñ$?Ô$?Ñ@Ô@ÑAÔAÐAå
Œ
×Ò   i i i°Ñ 3Ô 3°QÑ7Ô7Ð7åŒH�\�\�\Ñ"Ô"ˆØˆˆa�- !Ñ#Ð$Ñ%Ô%Ð%Ý
Œ
×Ò ¥2¤8¨L¨L¨LÑ#9Ô#9Ñ:Ô:Ð:Ð:Ð:r   r‹  c                 ó   ‡ ‡‡
—  t          d¬¦  «        ‰¦  «        Š
dˆ
ˆˆ fd„	}dˆ
ˆˆ fd„	}d„ }dd|z  d	|z  |f}d
dt          j        t          j        t          j         f} ||¦  «        D ]} |||¦  «         Œ|d
k    r|}	n|}	t          j        d¦  «        }t          j        d
¦  «        } |	||¦  «         d}|dz  } |	||¦  «         d S )NTrè   ç›+¡†›„=c                 ó  •—  ‰| |¦  «        } ‰| |¦  «        }t          j        |¦  «        }t          j        |¦  «        r‰                     |||¬¦  «         d S ‰                     ||         ||         |¬¦  «         d S rê  rì  rî  s	         €€€r   rð   z>TestArrayReductions.check_percentile_edge_cases.<locals>.checkˆ  rð  r   c                 ó¢   •—  ‰| |¦  «                              t          j        ¦  «        } ‰| |¦  «        }‰                     |||¬¦  «         d S rê  )Úastyper   rý   rì   )r£   r›   rë  r$  r%  rÙ   rï   rå   s        €€€r   Úconvert_to_float_and_checkzSTestArrayReductions.check_percentile_edge_cases.<locals>.convert_to_float_and_check”  sR   ø€ Ø�v˜a ‘|”|×*Ò*­2¬:Ñ6Ô6ˆHØ�%˜˜1‘+”+ˆCØ×#Ò# C¨¸7Ð#ÑCÔCÐCÐCÐCr   c              3   ó‚   K  — t          dd¦  «        D ]+}t          | |¦  «        D ]}t          j        |¦  «        V — ŒŒ,d S )Nr‹   r·   )r¤  r   r   r,  )Úelementsr�  Úcombs      r   Ú_array_combinationszLTestArrayReductions.check_percentile_edge_cases.<locals>._array_combinations™  s\   è è € Ý˜1˜b‘\”\ð )ð )�Ý9¸(ÀAÑFÔFð )ð )�DÝœ( 4™.œ.Ð(Ð(Ð(Ð(ð)ð)ð )r   r   çš™™™™™¹?r3  r‹   rº   r¸   r¯   )r
  )r   r   rú   rø   r,  )rå   rï   r  rð   r  r  r›   Úelement_poolr£   Ú_checkrÙ   s   ``        @r   Úcheck_percentile_edge_casesz/TestArrayReductions.check_percentile_edge_cases…  sG  øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð
	9ð 
	9ð 
	9ð 
	9ð 
	9ð 
	9ð 
	9ð 
	9ð	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð
	)ð 	)ð 	)ð ��mÑ# S¨=Ñ%8¸-ÐHˆØ˜2�rœv¥r¤vµ´¨wÐ7ˆØ$Ð$ \Ñ2Ô2ð 	ð 	ˆAØˆE�!�Q‰KŒKˆKˆKð ˜AÒÐØ/ˆFˆFàˆFåŒH�Q‰KŒKˆÝŒH�Q‰KŒKˆØˆˆq�!‰ŒˆàˆØ˜AÑˆØˆˆq�!‰Œˆˆˆr   c                 óì  ‡ ‡—  t          d¬¦  «        |¦  «        Šˆˆ fd„}‰                      ¦   «          t          j        d¦  «        } ||d¦  «          ||d¦  «          ||ddt          j        f¦  «         ‰                      ¦   «         5 }t          j        d¦  «        d	z  }d
} ‰||¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      dt          |j        ¦  «        ¦  «         d S )NTrè   c                 óÔ   •— ‰                      t          ¦  «        5 } ‰| |¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                     dt          |j        ¦  «        ¦  «         d S )Nz)Percentiles must be in the range [0, 100]©ra  r¨  rT  ÚstrÚ	exception©r£   r›   ÚraisesrÙ   rå   s      €€r   Ú	check_errzBTestArrayReductions.check_percentile_exceptions.<locals>.check_err¶  s«   ø€ Ø×"Ò"¥:Ñ.Ô.ð °&Ø��a˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à×ÒØ;Ý�FÔ$Ñ%Ô%ñô ð ð ð ó   œ5µ9¼9r¸   éûÿÿÿ)r‹   r·   éi   r‹   r·   rË   r  úNot supported for complex dtype©	r   r`  r   r¶   rú   r  ÚassertInr  r  ©rå   rï   r  r£   r  r›   rÙ   s   `     @r   Úcheck_percentile_exceptionsz/TestArrayReductions.check_percentile_exceptions³  sL  øø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	ð 	ð 	ð 	ð 	ð 	ð 	×ÒÑ!Ô!Ð!åŒI�a‰LŒLˆØˆ	�!�RÑÔÐØˆ	�!�\Ñ"Ô"Ð"Øˆ	�!�a˜�RœV�_Ñ%Ô%Ð%à×#Ò#Ñ%Ô%ð 	¨Ý”	˜!‘”˜rÑ!ˆAØˆAØˆE�!�Q‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 	�ŠÐ7½¸Q¼[Ñ9IÔ9IÑJÔJÐJÐJÐJó   Â&CÃCÃCc                 óì  ‡ ‡—  t          d¬¦  «        |¦  «        Šˆˆ fd„}‰                      ¦   «          t          j        d¦  «        } ||d¦  «          ||d¦  «          ||ddt          j        f¦  «         ‰                      ¦   «         5 }t          j        d¦  «        dz  }d} ‰||¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      d	t          |j        ¦  «        ¦  «         d S )
NTrè   c                 óÔ   •— ‰                      t          ¦  «        5 } ‰| |¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                     dt          |j        ¦  «        ¦  «         d S )Nz%Quantiles must be in the range [0, 1]r  r  s      €€r   r  z@TestArrayReductions.check_quantile_exceptions.<locals>.check_errÐ  s«   ø€ Ø×"Ò"¥:Ñ.Ô.ð °&Ø��a˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à×ÒØ7Ý�FÔ$Ñ%Ô%ñô ð ð ð r  r¸   g      à¿)r  r  gÍÌÌÌÌÌð?r  rË   r"  r#  r%  s   `     @r   Úcheck_quantile_exceptionsz-TestArrayReductions.check_quantile_exceptionsÍ  sN  øø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	ð 	ð 	ð 	ð 	ð 	ð 	×ÒÑ!Ô!Ð!åŒI�a‰LŒLˆØˆ	�!�TÑÔÐØˆ	�!Ð&Ñ'Ô'Ð'Øˆ	�!�c˜4¥¤Ð(Ñ)Ô)Ð)à×#Ò#Ñ%Ô%ð 	¨Ý”	˜!‘”˜rÑ!ˆAØˆAØˆE�!�Q‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 	�ŠÐ7½¸Q¼[Ñ9IÔ9IÑJÔJÐJÐJÐJr'  c                 óš   — t           }|                      |d¬¦  «         |                      |d¬¦  «         |                      |¦  «         d S ©Nr‹  ©r  )rœ   r  r  r&  ©rå   rï   s     r   Útest_percentile_basicz)TestArrayReductions.test_percentile_basicç  sS   € Ý(ˆØ×*Ò*¨6ÀÐ*ÑEÔEÐEØ×(Ò(¨¸sÐ(ÑCÔCÐCØ×(Ò(¨Ñ0Ô0Ð0Ð0Ð0r   c                 óš   — t           }|                      |d¬¦  «         |                      |d¬¦  «         |                      |¦  «         d S r,  )rŸ   r  r  r&  r.  s     r   Útest_nanpercentile_basicz,TestArrayReductions.test_nanpercentile_basicí  sS   € Ý+ˆØ×*Ò*¨6ÀÐ*ÑEÔEÐEØ×(Ò(¨¸sÐ(ÑCÔCÐCØ×(Ò(¨Ñ0Ô0Ð0Ð0Ð0r   c                 óš   — t           }|                      |d¬¦  «         |                      |d¬¦  «         |                      |¦  «         d S ©Nr‹   r-  )r©   r  r  r*  r.  s     r   Útest_quantile_basicz'TestArrayReductions.test_quantile_basicó  sS   € Ý&ˆØ×*Ò*¨6ÀÐ*ÑCÔCÐCØ×(Ò(¨¸qÐ(ÑAÔAÐAØ×&Ò& vÑ.Ô.Ð.Ð.Ð.r   c                 óš   — t           }|                      |d¬¦  «         |                      |d¬¦  «         |                      |¦  «         d S r3  )r¬   r  r  r*  r.  s     r   Útest_nanquantile_basicz*TestArrayReductions.test_nanquantile_basicù  sS   € Ý)ˆØ×*Ò*¨6ÀÐ*ÑCÔCÐCØ×(Ò(¨¸qÐ(ÑAÔAÐAØ×&Ò& vÑ.Ô.Ð.Ð.Ð.r   c                 óJ   — t           }|                      || j        ¦  «         d S r   )r—   rÝ  râ  r.  s     r   Útest_nanmedian_basicz(TestArrayReductions.test_nanmedian_basicÿ  s&   € Ý'ˆØ×Ò ¨Ô(>Ñ?Ô?Ð?Ð?Ð?r   c                 ón  — t          j        dt           j        ¬¦  «        }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «          t          |f¦  «        t          ¦  «        }|                      t          j	        |¦  «         ||¦  «        ¦  «         d S ©Nr·   r´   r‹   ÚC)
r   r¶   r  r   rT  r¥  Úlayoutr   r8   r5   ©rå   r   ÚarrtyrÙ   s       r   Útest_array_sum_globalz)TestArrayReductions.test_array_sum_global  s—   € ÝŒi˜¥"¤(Ð+Ñ+Ô+ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+à•�e�X‘”Õ 0Ñ1Ô1ˆØ×Ò�œ ™œ e e¨C¡j¤jÑ1Ô1Ð1Ð1Ð1r   c                 ót  — t          j        dt           j        ¬¦  «        dz   }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «          t          |f¦  «        t          ¦  «        }|                      | 	                    ¦   «          ||¦  «        ¦  «         d S r:  )
r   r¶   r  r   rT  r¥  r<  r   r;   r:   r=  s       r   Útest_array_prod_int_1dz*TestArrayReductions.test_array_prod_int_1d  s›   € ÝŒi˜¥"¤(Ð+Ñ+Ô+¨aÑ/ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+à•�e�X‘”�zÑ*Ô*ˆØ×Ò˜Ÿš™œ U U¨3¡Z¤ZÑ0Ô0Ð0Ð0Ð0r   c                 óˆ  — t          j        dt           j        ¬¦  «        dz   }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «          t          |f¦  «        t          ¦  «        }t           j	         
                    |                     ¦   «          ||¦  «        ¦  «         d S )Nr·   r´   r  r‹   r;  )r   r¶   rÍ   r   rT  r¥  r<  r   r;   r   Úassert_allcloser:   r=  s       r   Útest_array_prod_float_1dz,TestArrayReductions.test_array_prod_float_1d  s�   € ÝŒi˜¥"¤*Ð-Ñ-Ô-°Ñ6ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+à•�e�X‘”�zÑ*Ô*ˆÝ
Œ
×"Ò" 3§8¢8¡:¤:¨u¨u°S©z¬zÑ:Ô:Ð:Ð:Ð:r   c                 ó‚  — t          j        dt           j        ¬¦  «        }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «          t          |f¦  «        t          ¦  «        }t           j	         
                    t          j        |¦  «         ||¦  «        ¦  «         d S r:  )r   r¶   r  r   rT  r¥  r<  r   r>   r   rC  r:   r=  s       r   Útest_array_prod_globalz*TestArrayReductions.test_array_prod_global  s™   € ÝŒi˜¥"¤(Ð+Ñ+Ô+ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+à•�e�X‘”Õ0Ñ1Ô1ˆÝ
Œ
×"Ò"¥2¤7¨3¡<¤<°°°s±´Ñ<Ô<Ð<Ð<Ð<r   c                 óV  ‡ ‡— ‰                       t          ¦  «          t          d¬¦  «        t          ¦  «        Šˆˆ fd„} |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j        d¦  «        ¦  «          |t          j	        d¦  «        ¦  «          |t          j
        d¦  «        ¦  «          |t          j        d¦  «        ¦  «         d S )	NTrè   c                 óh   •— t          | ¦  «        } ‰| ¦  «        }‰                     ||¦  «         d S r   )r>   rì   r"  s      €€r   rð   z6TestArrayReductions.test_np_prod_scalar.<locals>.check,  rI  r   r¯   r»   rˆ  rË   y                )r  r>   r   r   Úint8Úuint8Úint16Úuint16r  rL  rÎ   rM  rN  s   ` @r   Útest_np_prod_scalarz'TestArrayReductions.test_np_prod_scalar'  s   øø€ Ø×ÒÕ 1Ñ2Ô2Ð2à"•˜TÐ"Ñ"Ô"Õ#4Ñ5Ô5ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	ˆ�bŒg�a‰jŒjÑÔÐØˆ�bŒh�q‰kŒkÑÔÐØˆ�bŒh�q‰kŒkÑÔÐØˆ�bŒi˜‰lŒlÑÔÐØˆ�bŒh�q‰kŒkÑÔÐØˆ�bŒi˜‰lŒlÑÔÐð 	ˆ�bŒl˜2ÑÔÑÔÐØˆ�bŒm˜BÑÔÑ Ô Ð Ð Ð r   c                 ó”  — t          j        ddt           j        ¬¦  «        }t          ||¦  «        \  }}|                      ||¦  «         t          j        ddd¦  «        }t          ||¦  «        \  }}|                      ||¦  «         |                     d¦  «        }t          ||¦  «        \  }}|                      ||¦  «         d S )Nr¯   r·   r´   ró  r÷  )r»   r¯   )r   r¶   rK  rÜ   rì   rú  r¾   )rå   rï   r   r$  r%  s        r   Úcheck_cumulativez$TestArrayReductions.check_cumulative=  s¿   € ÝŒi˜˜2¥R¤XÐ.Ñ.Ô.ˆÝ'¨°Ñ4Ô4‰ˆ�#Ø×Ò  XÑ.Ô.Ð.ÝŒk˜!˜Q Ñ"Ô"ˆÝ'¨°Ñ4Ô4‰ˆ�#Ø×Ò  XÑ.Ô.Ð.Ø�kŠk˜&Ñ!Ô!ˆÝ'¨°Ñ4Ô4‰ˆ�#Ø×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 ó:   — |                       t          ¦  «         d S r   )rO  r+   rC  s    r   Útest_array_cumsumz%TestArrayReductions.test_array_cumsumH  s   € Ø×Ò�lÑ+Ô+Ð+Ð+Ð+r   c                 ó:   — |                       t          ¦  «         d S r   )rO  r.   rC  s    r   Útest_array_cumsum_globalz,TestArrayReductions.test_array_cumsum_globalK  s   € Ø×ÒÕ1Ñ2Ô2Ð2Ð2Ð2r   c                 ó:   — |                       t          ¦  «         d S r   )rO  r"   rC  s    r   Útest_array_cumprodz&TestArrayReductions.test_array_cumprodN  s   € Ø×Ò�mÑ,Ô,Ð,Ð,Ð,r   c                 ó:   — |                       t          ¦  «         d S r   )rO  r$   rC  s    r   Útest_array_cumprod_globalz-TestArrayReductions.test_array_cumprod_globalQ  s   € Ø×ÒÕ2Ñ3Ô3Ð3Ð3Ð3r   Fc                 óÚ  — |rdnd}t          j        |¦  «        dz                        d¦  «        }t          ||¦  «        \  }}|                      ||¦  «         t          j        d¦  «        dz                        d¦  «        }t          ||¦  «        \  }}|                      ||¦  «         |                     d¦  «        }t          ||¦  «        \  }}|                      ||¦  «         dS )	zH
        Check that integer overflows are avoided (issue #931).
        r¯   r·   i@œ  rK  l            rK  Úuint64N)r   r¶   r  rÜ   rì   )rå   rï   Úis_prodÚn_itemsr   rZ  r[  s          r   Úcheck_aggregation_magnitudez/TestArrayReductions.check_aggregation_magnitudeT  sè   € ð Ð&�!�! BˆÝŒy˜Ñ!Ô! EÑ)×1Ò1°'Ñ:Ô:ˆÝ" 6¨3Ñ/Ô/‰ˆˆSØ×Ò  SÑ)Ô)Ð)õ Œy˜‰}Œ}˜uÑ$×,Ò,¨WÑ5Ô5ˆÝ" 6¨3Ñ/Ô/‰ˆˆSØ×Ò  SÑ)Ô)Ð)Ø�jŠj˜Ñ"Ô"ˆÝ" 6¨3Ñ/Ô/‰ˆˆSØ×Ò  SÑ)Ô)Ð)Ð)Ð)r   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r\  r6   r8   rC  s    r   Útest_sum_magnitudez&TestArrayReductions.test_sum_magnitudeg  ó1   € Ø×(Ò(­Ñ3Ô3Ð3Ø×(Ò(Õ)9Ñ:Ô:Ð:Ð:Ð:r   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r\  r+   r.   rC  s    r   Útest_cumsum_magnitudez)TestArrayReductions.test_cumsum_magnitudek  s1   € Ø×(Ò(­Ñ6Ô6Ð6Ø×(Ò(Õ)<Ñ=Ô=Ð=Ð=Ð=r   c                 ó>   — |                       t          d¬¦  «         d S ©NT)rZ  )r\  r2   rC  s    r   Útest_nancumsum_magnitudez,TestArrayReductions.test_nancumsum_magnitudeo  s!   € Ø×(Ò(­À$Ð(ÑGÔGÐGÐGÐGr   c                 óv   — |                       t          d¬¦  «         |                       t          d¬¦  «         d S rc  )r\  r;   r>   rC  s    r   Útest_prod_magnitudez'TestArrayReductions.test_prod_magnituder  s;   € Ø×(Ò(­¸TÐ(ÑBÔBÐBØ×(Ò(Õ):ÀDÐ(ÑIÔIÐIÐIÐIr   c                 óv   — |                       t          d¬¦  «         |                       t          d¬¦  «         d S rc  )r\  r"   r$   rC  s    r   Útest_cumprod_magnitudez*TestArrayReductions.test_cumprod_magnitudev  s;   € Ø×(Ò(­ÀÐ(ÑEÔEÐEØ×(Ò(Õ)=ÀtÐ(ÑLÔLÐLÐLÐLr   c                 ó>   — |                       t          d¬¦  «         d S rc  )r\  r(   rC  s    r   Útest_nancumprod_magnitudez-TestArrayReductions.test_nancumprod_magnitudez  s"   € Ø×(Ò(Õ)9À4Ð(ÑHÔHÐHÐHÐHr   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r\  rB   rD   rC  s    r   Útest_mean_magnitudez'TestArrayReductions.test_mean_magnitude}  s1   € Ø×(Ò(­Ñ4Ô4Ð4Ø×(Ò(Õ):Ñ;Ô;Ð;Ð;Ð;r   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r\  rG   rI   rC  s    r   Útest_var_magnitudez&TestArrayReductions.test_var_magnitude�  r_  r   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r\  rL   rN   rC  s    r   Útest_std_magnitudez&TestArrayReductions.test_std_magnitude…  r_  r   c                 ó|  — t          |¦  «        } t          d¬¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         |                       ||d d…         ¦  «         ||d d…         ¦  «        ¦  «         |d d d…                              ¦   «         }|                       ||¦  «         ||¦  «        ¦  «         t          j                             |¦  «         |                       ||¦  «         ||¦  «        ¦  «         d|j        vrNt          dt          |¦  «        d¦  «        D ]}d||<   Œ|                       ||¦  «         ||¦  «        ¦  «         | 
                    |                     d¦  «        ¦  «         |                       ||¦  «         ||¦  «        ¦  «         d S )NTrè   rº   rn   r‹   r¯   r  )r   r   rì   rà  r   rã   rá  Ú__name__r¤  ÚlenÚfillrµ   )rå   rï   r   r>  rÙ   r  s         r   Ú_do_check_nptimedeltaz)TestArrayReductions._do_check_nptimedelta‰  s«  € Ý�s‘”ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×Ò   c¡
¤
¨F¨F°3©K¬KÑ8Ô8Ð8à×Ò   c¨#¨2¨#¤h¡¤°°¸¸C¸R¸C¼Ñ1AÔ1AÑBÔBÐBà�$�$�B�$Œi�nŠnÑÔˆØ×Ò   c¡
¤
¨F¨F°3©K¬KÑ8Ô8Ð8Ý
Œ	×Ò˜#ÑÔÐØ×Ò   c¡
¤
¨F¨F°3©K¬KÑ8Ô8Ð8à˜6œ?Ð*Ð*õ ˜1�c #™hœh¨Ñ*Ô*ð ð �Ø��A‘�Ø×#Ò# E E¨#¡J¤J°°°s±´Ñ<Ô<Ð<à�Š�—’˜UÑ#Ô#Ñ$Ô$Ð$Ø×Ò   c¡
¤
¨F¨F°3©K¬KÑ8Ô8Ð8Ð8Ð8r   c                 ó‚   — t          j        d¦  «                             d¬¦  «        }|                      ||¦  «         d S )Nr·   zM8[Y]r´   ©r   r¶   r  ru  ©rå   rï   r   s      r   Úcheck_npdatetimez$TestArrayReductions.check_npdatetime£  ó<   € ÝŒi˜‰mŒm×"Ò"¨Ð"Ñ1Ô1ˆØ×"Ò" 6¨3Ñ/Ô/Ð/Ð/Ð/r   c                 ó‚   — t          j        d¦  «                             d¬¦  «        }|                      ||¦  «         d S )Nr·   zm8[s]r´   rw  rx  s      r   Úcheck_nptimedeltaz%TestArrayReductions.check_nptimedelta§  rz  r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )ry  rQ   r|  rC  s    r   Útest_min_npdatetimez'TestArrayReductions.test_min_npdatetime«  ó0   € Ø×Ò�iÑ(Ô(Ð(Ø×Ò�yÑ)Ô)Ð)Ð)Ð)r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )ry  rY   r|  rC  s    r   Útest_max_npdatetimez'TestArrayReductions.test_max_npdatetime¯  r  r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )ry  rb   r|  rC  s    r   Útest_argmin_npdatetimez*TestArrayReductions.test_argmin_npdatetime³  ó0   € Ø×Ò�lÑ+Ô+Ð+Ø×Ò�|Ñ,Ô,Ð,Ð,Ð,r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )ry  ri   r|  rC  s    r   Útest_argmax_npdatetimez*TestArrayReductions.test_argmax_npdatetime·  r„  r   c                 ó:   — |                       t          ¦  «         d S r   )r|  ro   rC  s    r   Útest_median_npdatetimez*TestArrayReductions.test_median_npdatetime»  s   € Ø×ÒÕ2Ñ3Ô3Ð3Ð3Ð3r   c                 ó:   — |                       t          ¦  «         d S r   )r|  r6   rC  s    r   Útest_sum_npdatetimez'TestArrayReductions.test_sum_npdatetime¾  s   € Ø×Ò�yÑ)Ô)Ð)Ð)Ð)r   c                 ó:   — |                       t          ¦  «         d S r   )r|  r+   rC  s    r   Útest_cumsum_npdatetimez*TestArrayReductions.test_cumsum_npdatetimeÁ  s   € Ø×Ò�|Ñ,Ô,Ð,Ð,Ð,r   c                 ó:   — |                       t          ¦  «         d S r   )r|  rB   rC  s    r   Útest_mean_npdatetimez(TestArrayReductions.test_mean_npdatetimeÄ  s   € Ø×Ò�zÑ*Ô*Ð*Ð*Ð*r   c                 ó:  ‡ ‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}d„ }d„ } |¦   «         D ]>} ||¦  «          | ||                     t          j        ¦  «        ¦  «        ¦  «         Œ? |t          j        g ¦  «        ¦  «          |t          j        dt          j        ¦  «        ¦  «         t          j        t          j        dt          j        dd	d
dddg	¦  «        }|d|d d d…         z  z   }|                     dd¦  «        } ||¦  «         d S )NTrè   c                 ó`   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      ||¦  «         d S r   rë   ©r£   r$  r%  rÙ   rï   rå   s      €€€r   rð   z7TestArrayReductions.check_nan_cumulative.<locals>.checkÊ  ó9   ø€ Ø�v˜a‘y”yˆHØ�%˜‘(”(ˆCØ×#Ò# H¨cÑ2Ô2Ð2Ð2Ð2r   c                 ó¾   — | j         dz  }t          j        | t          j                             t          | j         ¦  «        |d¬¦  «        t          j        ¦  «         | S )Nr¯   F)Úreplace)Úsizer   Úputrã   rû  r¤  rú   )r£   Úps     r   Ú_set_some_values_to_nanzITestArrayReductions.check_nan_cumulative.<locals>._set_some_values_to_nanÏ  sG   € Ø”˜!‘ˆAÝŒF�1•b”i×&Ò&¥u¨Q¬V¡}¤}°aÀÐ&ÑGÔGÍÌÑPÔPÐPØˆHr   c               3   ó¸  K  — t          j        ddd¦  «                             ddd¦  «        V — t          j        t           j        ddg¦  «        V — t          j        g d¢¦  «        V — t          j        dd¦  «        V — t          j        t          j        dd	¦  «        d
z
  ¦  «        V — t          j        ddt           j        ¬¦  «        d d d…         V — d S )Nrº   r»   é<   rˆ  r¸   )TTTFr‹   r·   rÛ  gfffff¦@@r´   )r   rú  r¾   r,  rø   r¶   rŸ  rÍ   rÈ   r   r   Úa_variationsz>TestArrayReductions.check_nan_cumulative.<locals>.a_variationsÔ  sÝ   è è € Ý”+˜b ! RÑ(Ô(×0Ò0°°A°qÑ9Ô9Ð9Ð9Ð9Ý”(�BœF A q˜>Ñ*Ô*Ð*Ð*Ð*Ý”(Ð4Ð4Ð4Ñ5Ô5Ð5Ð5Ð5Ý”)˜A˜rÑ"Ô"Ð"Ð"Ð"ÝÔ#¥B¤I¨a°Ñ$4Ô$4°tÑ$;Ñ<Ô<Ð<Ð<Ð<Ý”)˜A˜r­¬Ð4Ñ4Ô4°T°T°r°TÔ:Ð:Ð:Ð:Ð:Ð:r   r·   r¯   rˆ  r¸   r÷  rÒ  ró  rÑ  rË   rº   r»   )r   r  r   rý   r,  Úfullrú   r¾   )rå   rï   rð   r˜  r›  r£   ÚpartsrÙ   s   ``     @r   Úcheck_nan_cumulativez(TestArrayReductions.check_nan_cumulativeÇ  sL  øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð
	ð 	ð 	ð
	;ð 	;ð 	;ð �‘”ð 	Að 	AˆAØˆE�!‰HŒHˆHØˆEÐ)Ð)¨!¯(ª(µ2´:Ñ*>Ô*>Ñ?Ô?Ñ@Ô@Ð@Ð@ð 	ˆ�bŒh�r‰lŒlÑÔÐØˆ�bŒg�b�"œ&Ñ!Ô!Ñ"Ô"Ð"å”�"œ& !¥R¤V¨Q°°1°a¸¸AÐ>Ñ?Ô?ˆà�B˜˜t˜t ˜tœÑ$Ñ$ˆØ�IŠI�a˜‰OŒOˆØˆˆa‰Œˆˆˆr   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )rO  r(   rž  rC  s    r   Útest_nancumprod_basicz)TestArrayReductions.test_nancumprod_basicê  s2   € Ø×ÒÕ.Ñ/Ô/Ð/Ø×!Ò!Õ"2Ñ3Ô3Ð3Ð3Ð3r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )rO  r2   rž  rC  s    r   Útest_nancumsum_basicz(TestArrayReductions.test_nancumsum_basicî  s0   € Ø×Ò�oÑ.Ô.Ð.Ø×!Ò!¥/Ñ2Ô2Ð2Ð2Ð2r   c                 ó�   ‡ ‡‡— t           Š t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}d„ } |¦   «         D ]} ||¦  «         Œd S )NTrè   c                 ó`   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      ||¦  «         d S r   rë   r‘  s      €€€r   rð   z1TestArrayReductions.test_ptp_basic.<locals>.checkö  r’  r   c               3   ó\  K  — t          j        d¦  «        V — t          j        dt           j        dg¦  «        V — t          j        t           j         dg¦  «        V — dV — dV — t          j        dd¦  «        V — g d¢V — t          j        ddd	¦  «                             d
dd¦  «        } | V — t          j        | ¦  «        V — | d d d…         V — t           j	         
                    d¦  «                             | ¦  «         | V — dV — dV — t           j         V — dV — dt           j        gV — dt           j        gV — dV — t          j        dt           j        ¦  «        V — dt           j        dz  z   V — t           j        t           j        dz  z   V — t           j        V — d S )Nr·   gš™™™™™ñ¿çš™™™™™@r¸   )rˆ  r¯   r¸   r�  )r¦  gffffffÀr  éöÿÿÿrÙ  rˆ  r¯   rº   r   r÷  g      @y      ð?      @))gffffff@ró   gffffffÀ)g333333@gš™™™™™@gÍÌÌÌÌÌ@r‹   rË   )r   r¶   r,  rú   rø   rœ  rú  r¾   rŸ  rã   ÚRandomStaterá  r¢   s    r   r›  z8TestArrayReductions.test_ptp_basic.<locals>.a_variationsû  sÆ  è è € Ý”)˜B‘-”-ÐÐÐÝ”(˜D¥"¤&¨#Ð.Ñ/Ô/Ð/Ð/Ð/Ý”(�RœV˜G Q˜<Ñ(Ô(Ð(Ð(Ð(ØˆOˆOˆOØˆJˆJˆJÝ”'˜!˜Q‘-”-ÐÐÐØ"Ð"Ð"Ð"Ð"Ð"Ý”˜C  RÑ(Ô(×0Ò0°°A°qÑ9Ô9ˆAØˆGˆGˆGÝÔ# AÑ&Ô&Ð&Ð&Ð&Ø�D�D�b�D”'ˆMˆMˆMÝŒI×!Ò! !Ñ$Ô$×,Ò,¨QÑ/Ô/Ð/ØˆGˆGˆGØˆGˆGˆGØˆIˆIˆIÝ”6�'ˆMˆMˆMØˆLˆLˆLØ�œ�-ÐÐÐØ�œ�-ÐÐÐØ5Ð5Ð5Ð5Ý”'˜!�RœVÑ$Ô$Ð$Ð$Ð$Ø•b”f˜r‘k‘/Ð!Ð!Ð!Ý”&�2œ6 B™;Ñ&Ð&Ð&Ð&Ý”&ˆLˆLˆLˆLˆLr   )r¤   r   )rå   rð   r›  r£   rÙ   rï   s   `   @@r   Útest_ptp_basicz"TestArrayReductions.test_ptp_basicò  s†   øøø€ Ý!ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð
	ð 	ð 	ð4 �‘”ð 	ð 	ˆAØˆE�!‰HŒHˆHˆHð	ð 	r   c                 óÆ   — t           } t          d¬¦  «        |¦  «        }t          j        d¦  «        } ||¦  «        } ||¦  «        }|                      ||¦  «         d S )NTrè   r·   )r¦   r   r   r¶   rì   )rå   rï   rÙ   r£   r$  r%  s         r   Útest_ptp_methodz#TestArrayReductions.test_ptp_method  sf   € õ ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆåŒI�b‰MŒMˆØ�6˜!‘9”9ˆØˆe�A‰hŒhˆØ×Ò ¨#Ñ.Ô.Ð.Ð.Ð.r   c                 ó¢  ‡ ‡‡	— t           Š	 t          d¬¦  «        ‰	¦  «        Šˆˆ	ˆ fd„}dd„}t          ddgd¬¦  «        D ]\  }} |||¦  «        } ||¦  «         Œt          j        d¦  «        }t          j        d	d
¦  «        }|d|z  z   } ||¦  «         |d|z  z
  } ||¦  «         t          j        dd¬¦  «        } ||¦  «         d S )NTrè   c                 ó`   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      ||¦  «         d S r   rë   r‘  s      €€€r   rð   z3TestArrayReductions.test_ptp_complex.<locals>.check(  r’  r   Fc                 óÞ   — t          j        ddd¦  «        }| rt           j        |dd…<   t          j        ddd¦  «        }|rt           j        |dd…<   |d	|z  z                        dd¦  «        S )
Néüÿÿÿrˆ  é   rÑ  r   r¸   rÒ  r¹   rË   )r   rú  rú   r¾   )Úreal_nanÚimag_nanÚrealÚimags       r   Ú
make_arrayz8TestArrayReductions.test_ptp_complex.<locals>.make_array-  su   € Ý”;˜r 1 bÑ)Ô)ˆDØð #ÝœF��Q�q�S‘	Ý”;˜r 1 bÑ)Ô)ˆDØð $ÝœV��Q�r�T‘
Ø˜2 ™9Ñ$×-Ò-¨a°Ñ3Ô3Ð3r   r¯   )Úrepeatró  r¯  rˆ  rË   )rˆ  rˆ  y      ð?      ð¿)Ú
fill_value)FF)r¤   r   r   r   Úonesr¶   rœ  )
rå   rð   rµ  r±  r²  Úcompr³  r´  rÙ   rï   s
   `       @@r   Útest_ptp_complexz$TestArrayReductions.test_ptp_complex$  s  øøø€ Ý!ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð
	4ð 	4ð 	4ð 	4õ #*¨4°¨-ÀÐ"BÑ"BÔ"Bð 	ð 	ÑˆH�hØ�:˜h¨Ñ1Ô1ˆDØˆE�$‰KŒKˆKˆKåŒw�q‰zŒzˆÝŒy˜˜QÑÔˆØ�b˜4‘iÑˆØˆˆd‰ŒˆØ�b˜4‘iÑˆØˆˆd‰ŒˆåŒw�v¨6Ð3Ñ3Ô3ˆØˆˆd‰Œˆˆˆr   c                 óF  — t           } t          d¬¦  «        |¦  «        }|                      ¦   «          |                      ¦   «         5 } |t	          j        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         |  	                    t          ¦  «        5 } |t	          j        g ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         d S )NTrè   )TTFz+Boolean dtype is unsupported (as per NumPy)z&zero-size array reduction not possible)r¤   r   r`  r  r   r,  r$  r  r  ra  r¨  )rå   rï   rÙ   r  Úmsgs        r   Útest_ptp_exceptionsz'TestArrayReductions.test_ptp_exceptionsD  s‚  € Ý!ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð 	×ÒÑ!Ô!Ð!à×#Ò#Ñ%Ô%ð 	1¨ØˆE•"”(Ð.Ñ/Ô/Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð <ˆØ�Š�c�3˜qœ{Ñ+Ô+Ñ,Ô,Ð,à×Ò�zÑ*Ô*ð 	 ¨aØˆE•"”(˜2‘,”,ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 7ˆØ�Š�c�3˜qœ{Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,s$   Á	A3Á3A7Á:A7ÃC,Ã,C0Ã3C0c                 ó>  ‡ ‡‡	— t           t          f}|D �]Š	 t          d¬¦  «        ‰	¦  «        Šˆˆ	ˆ fd„}t          j        ddd¦  «        }|d         |d d…<   |d	z  }||d
z  z
  } ||¦  «         t          d¦  «        D ]™}‰ j                             |¦  «         ‰ j                             |¦  «         ‰ j                             t          j	        t          j
        g¦  «        }||d
z  z
  }|d         |d d…<    ||                     |¦  «        ¦  «         Œš�Œ	d S )NTrè   c                 ó`   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      ||¦  «         d S r   rë   r‘  s      €€€r   rð   z=TestArrayReductions.test_min_max_complex_basic.<locals>.check]  ó9   ø€ Ø!˜6 !™9œ9�Ø�e˜A‘h”h�Ø×'Ò'¨°#Ñ6Ô6Ð6Ð6Ð6r   r§  r·   é(   rº   rˆ  r¯   rË   )rS   r[   r   r   rú  r¤  rã   rá  rû  rÎ   rM  r  )
rå   r©  rð   r³  r´  r£   Ú_rµ   rÙ   rï   s
   `       @@r   Útest_min_max_complex_basicz.TestArrayReductions.test_min_max_complex_basicW  sP  øøø€ Ý"Õ$4Ð4ˆàð 	'ñ 	'ˆFØ&•C Ð&Ñ&Ô& vÑ.Ô.ˆEð7ð 7ð 7ð 7ð 7ð 7ð 7õ
 ”;˜s B¨Ñ+Ô+ˆDØ˜B”xˆD��!�‰HØ˜!‘8ˆDØ�t˜b‘yÑ ˆAØˆE�!‰HŒHˆHå˜2‘Y”Yð 'ð '�Ø”×#Ò# DÑ)Ô)Ð)Ø”×#Ò# DÑ)Ô)Ð)Øœ×*Ò*­B¬L½"¼-Ð+HÑIÔI�Ø˜4 "™9Ñ$�Ø˜"œ��"�1�"‘Ø��a—h’h˜u‘o”oÑ&Ô&Ð&Ð&ñ'ð	'ð 	'r   c                 óø  ‡ ‡‡— t           t          f}|D ]åŠ t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„}t          j        ddd¦  «        }|d         |d d…<   t          j        |d	d
…<   |dz  }t          j        |dd…<   ||dz  z
  } ||¦  «         t          d¦  «        D ]V}‰ j                             |¦  «         ‰ j                             |¦  «         ||dz  z
  }|d         |d d…<    ||¦  «         ŒWŒæd S )NTrè   c                 ó`   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      ||¦  «         d S r   rë   r‘  s      €€€r   rð   zCTestArrayReductions.test_nanmin_nanmax_complex_basic.<locals>.checkv  rÀ  r   r§  r·   rÁ  rº   rˆ  r¸   rÑ  r¯   rÒ  r¹   rË   )	rr   ru   r   r   rú  rú   r¤  rã   rá  )	rå   r©  rð   r³  r´  r£   rÂ  rÙ   rï   s	   `      @@r   Ú test_nanmin_nanmax_complex_basicz4TestArrayReductions.test_nanmin_nanmax_complex_basicp  sA  øøø€ Ý¥Ð,ˆàð 	ð 	ˆFØ&•C Ð&Ñ&Ô& vÑ.Ô.ˆEð7ð 7ð 7ð 7ð 7ð 7ð 7õ
 ”;˜s B¨Ñ+Ô+ˆDØ˜B”xˆD��!�‰HÝœˆD��1�‰IØ˜!‘8ˆDÝœˆD��2�‰JØ�t˜b‘yÑ ˆAØˆE�!‰HŒHˆHå˜2‘Y”Yð ð �Ø”×#Ò# DÑ)Ô)Ð)Ø”×#Ò# DÑ)Ô)Ð)Ø˜4 "™9Ñ$�Ø˜"œ��"�1�"‘Ø��a‘”��ðð!	ð 	r   c                 ó¨   ‡ ‡‡— t           t          f}ˆˆˆ fd„}d„ }|D ]3Š t          d¬¦  «        ‰¦  «        Š |¦   «         D ]} ||¦  «         ŒŒ4d S )Nc                 ó`   •—  ‰| ¦  «        } ‰| ¦  «        }‰                      ||¦  «         d S r   rë   r‘  s      €€€r   rð   zFTestArrayReductions.test_nanmin_nanmax_non_array_inputs.<locals>.check�  r’  r   c               3   óö   K  — g d¢V — dV — t          j        d¦  «        V — dV — dV — dV — t           j        dddfV — t           j        t           j        t           j         gV — t           j        d	fd
gV — d S )N)r‹   r÷  rˆ  r¯   ))r§  rˆ  iôÿÿÿ)r¸   éÈ   iâÿÿÿr»   rø  g‰A`åÐ"	@FgÍÌÌÌÌÌÀrû   gš™™™™™ñ?)gš™™™™™Àgffffff!@)r   r,  rú   rø   rÈ   r   r   r›  zMTestArrayReductions.test_nanmin_nanmax_non_array_inputs.<locals>.a_variations’  s    è è € Ø�,�,ÐÐÐØ0Ð0Ð0Ð0Ý”(˜1‘+”+ÐÐÐØˆJˆJˆJØˆKˆKˆKØˆKˆKˆKÝ”6˜5 $¨Ð,Ð,Ð,Ð,Ý”6�2œ6¥B¤F 7Ð+Ð+Ð+Ð+Ý”F˜C�= +Ð.Ð.Ð.Ð.Ð.Ð.r   Trè   )rr   ru   r   )rå   r©  rð   r›  r£   rÙ   rï   s   `    @@r   Ú#test_nanmin_nanmax_non_array_inputsz7TestArrayReductions.test_nanmin_nanmax_non_array_inputsŠ  sŸ   øøø€ Ý¥Ð,ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð
		/ð 		/ð 		/ð ð 	ð 	ˆFØ&•C Ð&Ñ&Ô& vÑ.Ô.ˆEà!�\‘^”^ð ð �Ø��a‘”��ðð	ð 	r   c                 ój  — t          j        g d¢¦  «        }t          j        d¦  «                             dd¦  «        }|dxx         dz  cc<   t          j        d¦  «                             dddd	¦  «        d
z   }|dxx         dz  cc<   |dxx         dz  cc<   |||fD ]‘}t	          t          |j        ¦  «        ¦  «        d„ t          |j        ¦  «        D ¦   «         z   }d„ |D ¦   «         }d„ |D ¦   «         }|D ]4}|                      |                     |¦  «         ||¦  «        ¦  «         Œ5Œ’d S )N©r   é   r»   rˆ  r÷  r¯   r»   ©r   r‹   r‹  éx   rˆ  r¸   r·   r‰  ©r‹   r   r   r   é3   c                 ó   — g | ]}|d z    ‘Œ	S r�  rÈ   rŽ  s     r   rÊ   zATestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<listcomp>­  ó+   € ð ,ð ,ð ,Ø�!�A‘#�ð,ð ,ð ,r   c                 ó   — g | ]}|fd „‘ŒS )c                 ó.   — t          j        | |¬¦  «        S r’  rk   r”  s     r   rƒ  zJTestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<listcomp>.<lambda>±  ó   € ¥b¤i°¸Ð&>Ñ&>Ô&>€ r   rÈ   r—  s     r   rÊ   zATestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<listcomp>°  ó1   € ð ð ð àð !%Ð>Ð>Ð>ðð ð r   c                 ó@   — g | ]} t          d ¬¦  «        |¦  «        ‘ŒS r›  rœ  r�  s     r   rÊ   zATestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<listcomp>´  rž  r   ©	r   r,  r¶   r¾   r£  r¤  r¥  rì   Úpy_func©	rå   Úarr1dr«  r¬  r   r­  r®  r¯  rÙ   s	            r   Útest_argmax_axis_1d_2d_4dz-TestArrayReductions.test_argmax_axis_1d_2d_4d£  óŠ  € Ý”˜˜˜Ñ'Ô'ˆÝ”	˜!‘”×$Ò$ Q¨Ñ*Ô*ˆØˆcˆ
ˆ
Œ
�cÑˆ
ˆ
‰
å”	˜#‘”×&Ò& q¨!¨Q°Ñ2Ô2°RÑ7ˆØˆjÐÐÔ˜SÑ ÐÐÑØˆjÐÐÔ˜RÑÐÐÑà˜5 %Ð(ð 	Hð 	HˆCÝ�˜cœh™œÑ(Ô(ð ,ð ,Ý % c¤h¡¤ð,ñ ,ô ,ñ ˆDðð à ðñ ô ˆLðð Ø9Eðñ ô ˆKð %ð Hð H�Ø×'Ò'¨¯ª°cÑ(:Ô(:¸E¸EÀ#¹J¼JÑGÔGÐGÐGðHð	Hð 	Hr   c                 óH  ‡ ‡— t          j        d¦  «        }t          j        d¦  «                             dd¦  «        }t          d¬¦  «        d„ ¦   «         Šˆˆ fd„} ||d¦  «          ||d	¦  «          ||d
¦  «          ||d¦  «         ‰                      ¦   «          d S )Nr÷  r¯   r»   Trè   c                 ó,   — t          j        | |¦  «        S r   rk   ©r   r‚  s     r   Ú	jitargmaxzDTestArrayReductions.test_argmax_axis_out_of_range.<locals>.jitargmax¾  ó   € å”9˜S $Ñ'Ô'Ð'r   c                 ó  •— ‰                      t          d¦  «        5  ‰                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      t          d¦  «        5   ‰| |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nzaxis.*out of bounds©r§  r¨  rÛ  )r   r‚  rã  rå   s     €€r   Úassert_raiseszHTestArrayReductions.test_argmax_axis_out_of_range.<locals>.assert_raisesÂ  ó  ø€ Ø×'Ò'­
Ð4IÑJÔJð -ð -Ø×!Ò! # tÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -à×'Ò'­
Ð4IÑJÔJð %ð %Ø�	˜#˜tÑ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %ó#   �A Á AÁAÁ&B Â BÂBr‹   éþÿÿÿrJ  ©r   r¶   r¾   r   r`  )rå   rÝ  r«  rè  rã  s   `   @r   Útest_argmax_axis_out_of_rangez1TestArrayReductions.test_argmax_axis_out_of_rangeº  sÓ   øø€ Ý”	˜!‘”ˆÝ”	˜!‘”×$Ò$ Q¨Ñ*Ô*ˆå	�dÐ	Ñ	Ô	ð	(ð 	(ñ 
Ô	ð	(ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	ˆ�e˜QÑÔÐØˆ�e˜RÑ Ô Ð Øˆ�e˜RÑ Ô Ð Øˆ�e˜QÑÔÐà×ÒÑ!Ô!Ð!Ð!Ð!r   c                 ó   — t          j        d¦  «        }t          d¬¦  «        d„ ¦   «         }|                      ¦   «         5 } ||d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr÷  Trè   c                 ó,   — t          j        | |¦  «        S r   rk   râ  s     r   rã  zGTestArrayReductions.test_argmax_axis_must_be_integer.<locals>.jitargmaxÒ  rä  r   Úfooúaxis must be an integer©r   r¶   r   r  r$  r  r  )rå   r   rã  r  s       r   Ú test_argmax_axis_must_be_integerz4TestArrayReductions.test_argmax_axis_must_be_integerÏ  óÑ   € ÝŒi˜‰lŒlˆå	�dÐ	Ñ	Ô	ð	(ð 	(ñ 
Ô	ð	(ð ×#Ò#Ñ%Ô%ð 	"¨ØˆI�c˜5Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�ŠÐ/µ°Q´[Ñ1AÔ1AÑBÔBÐBÐBÐBó   ÁAÁAÁ"Ac                 óà   ‡— t          j        d¦  «                             dd¦  «        Šˆfd„}|                       |‰¦  «          t	          d¬¦  «        |¦  «        ‰¦  «        ¦  «         d S )Nr÷  r¯   r»   c                 ó0   •— ‰                      d¬¦  «        S ©Nr   r“  rg   ©r   r«  s    €r   rh   z;TestArrayReductions.test_argmax_method_axis.<locals>.argmaxÝ  ó   ø€ Ø—<’< Q�<Ñ'Ô'Ð'r   Trè   ©r   r¶   r¾   rì   r   ©rå   rh   r«  s     @r   Útest_argmax_method_axisz+TestArrayReductions.test_argmax_method_axisÚ  ó�   ø€ Ý”	˜!‘”×$Ò$ Q¨Ñ*Ô*ˆð	(ð 	(ð 	(ð 	(ð 	(ð 	×Ò   u¡¤Ø :Ð 2¥¨TÐ 2Ñ 2Ô 2°6Ñ :Ô :¸5Ñ AÔ Añ	Cô 	Cð 	Cð 	Cð 	Cr   c                 óø   ‡— t          j        dt           j        ¬¦  «                             dd¦  «        Šˆfd„}|                       |‰¦  «          t          d¬¦  «        |¦  «        ‰¦  «        ¦  «         d S )Nr÷  r´   r¯   r»   c                 ó0   •— ‰                      d¬¦  «        S rø  rg   rù  s    €r   rh   z;TestArrayReductions.test_argmax_return_type.<locals>.argmaxç  rú  r   Trè   ©r   r¶   rJ  r¾   rì   r   rü  s     @r   Útest_argmax_return_typez+TestArrayReductions.test_argmax_return_typeã  ó˜   ø€ å”	˜!¥2¤8Ð,Ñ,Ô,×4Ò4°Q¸Ñ:Ô:ˆð	(ð 	(ð 	(ð 	(ð 	(ð 	×Ò   u¡¤Ø :Ð 2¥¨TÐ 2Ñ 2Ô 2°6Ñ :Ô :¸5Ñ AÔ Añ	Cô 	Cð 	Cð 	Cð 	Cr   c                 ój  — t          j        g d¢¦  «        }t          j        d¦  «                             dd¦  «        }|dxx         dz  cc<   t          j        d¦  «                             dddd	¦  «        d
z   }|dxx         dz  cc<   |dxx         dz  cc<   |||fD ]‘}t	          t          |j        ¦  «        ¦  «        d„ t          |j        ¦  «        D ¦   «         z   }d„ |D ¦   «         }d„ |D ¦   «         }|D ]4}|                      |                     |¦  «         ||¦  «        ¦  «         Œ5Œ’d S )NrÍ  r÷  r¯   r»   rÏ  r‹  rÐ  rˆ  r¸   r·   r‰  rÑ  rÒ  c                 ó   — g | ]}|d z    ‘Œ	S r�  rÈ   rŽ  s     r   rÊ   zATestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<listcomp>÷  rÔ  r   c                 ó   — g | ]}|fd „‘ŒS )c                 ó.   — t          j        | |¬¦  «        S r’  rd   r”  s     r   rƒ  zJTestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<listcomp>.<lambda>û  r×  r   rÈ   r—  s     r   rÊ   zATestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<listcomp>ú  rØ  r   c                 ó@   — g | ]} t          d ¬¦  «        |¦  «        ‘ŒS r›  rœ  r�  s     r   rÊ   zATestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<listcomp>þ  rž  r   rÚ  rÜ  s	            r   Útest_argmin_axis_1d_2d_4dz-TestArrayReductions.test_argmin_axis_1d_2d_4dí  rß  r   c                 óH  ‡ ‡— t          j        d¦  «        }t          j        d¦  «                             dd¦  «        }t          d¬¦  «        d„ ¦   «         Šˆˆ fd„} ||d¦  «          ||d	¦  «          ||d
¦  «          ||d¦  «         ‰                      ¦   «          d S )Nr÷  r¯   r»   Trè   c                 ó,   — t          j        | |¦  «        S r   rd   râ  s     r   Ú	jitargminzDTestArrayReductions.test_argmin_axis_out_of_range.<locals>.jitargmin  rä  r   c                 ó  •— ‰                      t          d¦  «        5  ‰                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      t          d¦  «        5   ‰| |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ræ  rç  )r   r‚  r  rå   s     €€r   rè  zHTestArrayReductions.test_argmin_axis_out_of_range.<locals>.assert_raises  ré  rê  r‹   rë  rJ  rì  )rå   rÝ  r«  rè  r  s   `   @r   Útest_argmin_axis_out_of_rangez1TestArrayReductions.test_argmin_axis_out_of_range  sÕ   øø€ Ý”	˜!‘”ˆÝ”	˜!‘”×$Ò$ Q¨Ñ*Ô*ˆå	�dÐ	Ñ	Ô	ð	(ð 	(ñ 
Ô	ð	(ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	ˆ�e˜QÑÔÐØˆ�e˜RÑ Ô Ð Øˆ�e˜RÑ Ô Ð Øˆ�e˜QÑÔÐð 	×ÒÑ!Ô!Ð!Ð!Ð!r   c                 ó   — t          j        d¦  «        }t          d¬¦  «        d„ ¦   «         }|                      ¦   «         5 } ||d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr÷  Trè   c                 ó,   — t          j        | |¦  «        S r   rd   râ  s     r   r  zGTestArrayReductions.test_argmin_axis_must_be_integer.<locals>.jitargmin  rä  r   rð  rñ  rò  )rå   r   r  r  s       r   Ú test_argmin_axis_must_be_integerz4TestArrayReductions.test_argmin_axis_must_be_integer  rô  rõ  c                 óà   ‡— t          j        d¦  «                             dd¦  «        Šˆfd„}|                       |‰¦  «          t	          d¬¦  «        |¦  «        ‰¦  «        ¦  «         d S )Nr÷  r¯   r»   c                 ó0   •— ‰                      d¬¦  «        S rø  r`   rù  s    €r   ra   z;TestArrayReductions.test_argmin_method_axis.<locals>.argmin(  rú  r   Trè   rû  ©rå   ra   r«  s     @r   Útest_argmin_method_axisz+TestArrayReductions.test_argmin_method_axis%  rþ  r   c                 óø   ‡— t          j        dt           j        ¬¦  «                             dd¦  «        Šˆfd„}|                       |‰¦  «          t          d¬¦  «        |¦  «        ‰¦  «        ¦  «         d S )Nr÷  r´   r¯   r»   c                 ó0   •— ‰                      d¬¦  «        S rø  r`   rù  s    €r   ra   z;TestArrayReductions.test_argmin_return_type.<locals>.argmin2  rú  r   Trè   r  r  s     @r   Útest_argmin_return_typez+TestArrayReductions.test_argmin_return_type.  r  r   c                 ó>  ‡ — t           t          t          t          t          t
          t          t          t          t          t          t          t          t          t          t          t           t"          t$          t&          t(          t*          t,          g}t.          t0          t2          t4          g}|t6          t8          t:          gz  }|t<          gz  }t>          j         t>          j!        t>          j"        t>          j#        g}ˆ fd„} ||d d…         |¦  «          |||¦  «         d S )Nc                 óì   •‡— | D ]n}t          |¦  «        }t          ||¦  «        D ]L\  Š}d}|                     ‰j        |j        j        |j        ¦  «        }‰||fˆfd„	}t          ‰||¦  «         ŒMŒod S )Nztest_{0}_{1}_{2}dc                 ó¤   •— d}d‰j         v rt          j        |¦  «        rd}t          ||¦  «        \  }}|                      |||d|¬¦  «         d S )Nr‹   r:   r»   rÁ  )r¼  rh  rÃ  )rr  r   ÚiscomplexobjrÜ   rì   )rå   ÚredFuncÚ	testArrayÚtestNamerÃ  rZ  r[  Úred_funcs          €r   Únew_test_functionz]TestArrayReductions.install_generated_tests.<locals>.install_tests.<locals>.new_test_function`  s{   ø€ ð  !˜Ø! XÔ%6Ð6Ð6ÝœO¨IÑ6Ô6ð 7ð $%˜DÝ#2°7¸IÑ#FÔ#F™˜˜SØ×/Ò/°°S¸hØ5=ÀDð 0ñ Jô Jð Jð Jð Jr   )rÕ   r   Úformatrr  rµ   Únamer¥  Úsetattr)	ÚdtypesÚfuncsÚdtÚtest_arraysrØ   Ú	test_namer!  r   Úclss	          @€r   Úinstall_testszBTestArrayReductions.install_generated_tests.<locals>.install_testsU  sÄ   øø€ àð ?ð ?�Ý.¨rÑ2Ô2�Ý,3°E¸;Ñ,GÔ,Gð ?ð ?Ñ(�H˜jà 3�IØ )× 0Ò 0°Ô1BØ1;Ô1AÔ1FØ1;´ñ!Bô !B�Ið 9AØ4>Ø3<ðJð Jð Jð Jð Jð Jõ ˜C Ð,=Ñ>Ô>Ð>Ð>ð+?ð?ð ?r   rº   )$r6   r8   r;   r>   rB   rD   rG   rI   rL   rN   r   r   r   r   rQ   rS   r^   rV   rY   r[   ru   rr   r{   rb   re   ri   rl   rx   r‚   r”   r~   r   r  rÍ   r°   rÎ   )r*  Úreduction_funcsÚreduction_funcs_rspaceÚdtypes_to_testr+  s   `    r   Úinstall_generated_testsz+TestArrayReductions.install_generated_tests8  sì   ø€ õ
 %Õ&6Ý%Õ'8Ý%Õ'8Ý$Õ&6Ý$Õ&6Ý$Õ&6Ý$Õ&6Ý$Õ&6Ý%¥zÝ$Õ&6Ý'­Ý'ðˆõ  #/Õ0CÝ".Õ0Cð"EÐð 	�M­<½ÐFÑFˆØ�M˜?Ñ*ˆåœ(¥B¤Jµ´½"¼,ÐGˆð	?ð 	?ð 	?ð 	?ð 	?ð8 	ˆ�n S b SÔ)Ð+AÑBÔBÐBð 	ˆ�n oÑ6Ô6Ð6Ð6Ð6r   )r‹  )F)mrr  Ú
__module__Ú__qualname__Ú__doc__râ   rÿ   r  r  r   r  r.  r6  r   r;  r>  rA  rD  rF  rO  rW  r\  r^  rc  ri  rk  rm  ro  rq  rs  ru  rx  rz  r|  r¶  r¸  r»  r½  r¿  rÉ  rË  rÍ  rÝ  Ústaticmethodrâ  ræ  r  r  r&  r*  r/  r1  r4  r6  r8  r?  rA  rD  rF  rM  rO  rQ  rS  rU  rW  r\  r^  ra  rd  rf  rh  rj  rl  rn  rp  ru  ry  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  Úclassmethodr/  Ú__classcell__)ræ   s   @r   rÞ   rÞ   Ë   s…  ø€ € € € € ðð ðð ð ð ð ðð ð ð4"ð "ð "ðHð ð ð: %.ð ð ð ð ðð ð ð"'ð 'ð 'ðR %.ð ð ð ð ð"ð ð ð 'ð 'ð 'ðR.ð .ð .ð/ð /ð /ð*!ð *!ð *!ðX6ð 6ð 6ð(	.ð 	.ð 	.ð6ð 6ð 6ðð ð ð =ð =ð =ð.ð .ð .ð5ð 5ð 5ð/ð /ð /ð5ð 5ð 5ð/ð /ð /ð1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð{"ð {"ð {"ðz2ð 2ð 2ð1ð 1ð 1ð2ð 2ð 2ð1ð 1ð 1ðEð Eð EðEð Eð Eð@ð @ð @ðð ð ð8 ðð ñ „\ðð4ð 4ð 4ð?;ð ?;ð ?;ðB,ð ,ð ,ð ,ð\Kð Kð Kð4Kð Kð Kð41ð 1ð 1ð1ð 1ð 1ð/ð /ð /ð/ð /ð /ð@ð @ð @ð2ð 2ð 2ð1ð 1ð 1ð;ð ;ð ;ð=ð =ð =ð!ð !ð !ð,	/ð 	/ð 	/ð,ð ,ð ,ð3ð 3ð 3ð-ð -ð -ð4ð 4ð 4ð*ð *ð *ð *ð&;ð ;ð ;ð>ð >ð >ðHð Hð HðJð Jð JðMð Mð MðIð Ið Ið<ð <ð <ð;ð ;ð ;ð;ð ;ð ;ð9ð 9ð 9ð40ð 0ð 0ð0ð 0ð 0ð*ð *ð *ð*ð *ð *ð-ð -ð -ð-ð -ð -ð4ð 4ð 4ð*ð *ð *ð-ð -ð -ð+ð +ð +ð!ð !ð !ðF4ð 4ð 4ð3ð 3ð 3ð$ð $ð $ðL ð	/ð 	/ñ „_ð	/ðð ð ð@-ð -ð -ð&'ð 'ð 'ð2ð ð ð4ð ð ð2Hð Hð Hð."ð "ð "ð*	Cð 	Cð 	CðCð Cð CðCð Cð CðHð Hð Hð."ð "ð "ð,	Cð 	Cð 	CðCð Cð CðCð Cð Cð ð;7ð ;7ñ „[ð;7ð ;7ð ;7ð ;7ð ;7r   rÞ   c                   óJ   — e Zd Z ej        d¦  «        Zd„ Zed„ ¦   «         ZdS )ÚTestArrayReductionsExceptionsr   c                 ó¸  — |                       ¦   «           t          d¬¦  «        |¦  «        }|                      t          ¦  «        5   || j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t
          ¦  «        5 } || j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |t          |j        ¦  «        ¦  «         d S )NTrè   )	r`  r   ra  ÚBaseExceptionÚ	zero_sizer¨  r$  r  r  )rå   rï   r¼  rÙ   r  s        r   Úcheck_exceptionz-TestArrayReductionsExceptions.check_exception  sG  € à×ÒÑ!Ô!Ð!à"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×Ò�}Ñ-Ô-ð 	#ð 	#ØˆF�4”>Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð ×Ò�zÑ*Ô*ð 	"¨aØˆE�$”.Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�Š�c�3˜qœ{Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,s$   ÁA%Á%A)Á,A)Â
B'Â'B+Â.B+c                 óÔ  — t          ¦   «         }d}d}t          t          t          t          fD ]}|||<   Œt
          t
          t          t          fD ]}|||<   Œd}|                     ¦   «         D ]z\  }}|                     |j	        ¦  «        }|                     |j	        ¦  «        }	|	 
                    dd¦  «         
                    dd¦  «        }	||	fd„}
t          | ||
¦  «         Œ{d S )Nz'attempt to get {0} of an empty sequencez*zero-size array to reduction operation {0}ztest_zero_size_array_{0}Úarray_Ú Ú_globalc                 ó2   — |                       ||¦  «         d S r   )r;  )rå   ÚfuncÚmessages      r   Útest_fnz6TestArrayReductionsExceptions.install.<locals>.test_fnŸ  s   € Ø×$Ò$ T¨7Ñ3Ô3Ð3Ð3Ð3r   )Údictri   rl   rb   re   rY   rQ   Úitemsr"  rr  r”  r$  )r*  Ú	fn_to_msgÚ	empty_seqÚop_no_identr  Úname_templateÚfnr¼  r)  ÚlmsgrC  s              r   Úinstallz%TestArrayReductionsExceptions.installŒ  s
  € õ ‘F”Fˆ	Ø=ˆ	ðˆåÕ 3µ\Ý%ð'ð 	%ð 	%ˆAà$ˆI�a‰LˆLÝ�Y­	µ9Ð=ð 	'ð 	'ˆAØ&ˆI�a‰LˆLà2ˆØ —’Ñ(Ô(ð 	-ð 	-‰GˆB�Ø%×,Ò,¨R¬[Ñ9Ô9ˆIà—:’:˜bœkÑ*Ô*ˆDØ—<’< ¨Ñ,Ô,×4Ò4°Y¸rÑBÔBˆDØ#%¨tð 4ð 4ð 4ð 4õ �C˜ GÑ,Ô,Ð,Ð,ð	-ð 	-r   N)	rr  r0  r1  r   r¶   r:  r;  r4  rL  rÈ   r   r   r7  r7  z  sO   € € € € € ð �”	˜!‘”€Ið-ð -ð -ð ð-ð -ñ „[ð-ð -ð -r   r7  Ú__main__)LÚ	itertoolsr   r   Únumpyr   Únumbar   r   r   r   Únumba.np.numpy_supportr	   Únumba.tests.supportr
   r   r   r   Úunittestr   r   r   r   r"   r$   r(   r+   r.   r2   r6   r8   r;   r>   rB   rD   rG   rI   rL   rN   rQ   rS   rV   rY   r[   r^   rb   re   ri   rl   ro   rr   ru   rx   r{   r~   r‚   r‡   rŒ   r�   r’   r”   r—   rœ   rŸ   r¤   r¦   r©   r¬   rÅ   rÕ   rÜ   rÞ   r/  r7  rL  rr  ÚmainrÈ   r   r   ú<module>rU     sH  ðØ <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ €€€ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð"ð "ð "ð"ð "ð "ð"ð "ð "ð"ð "ð "ðð ð ðð ð ð!ð !ð !ð$ð $ð $ðð ð ðð ð ðð ð ð"ð "ð "ðð ð ð"ð ð ð(&ð &ð &ði7ð i7ð i7ð i7ð i7˜/¨8ñ i7ô i7ð i7ðX- × +Ò +Ñ -Ô -Ð -ð(-ð (-ð (-ð (-ð (- O°Xñ (-ô (-ð (-ðT × %Ò %Ñ 'Ô 'Ð 'ð ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   