§
    ƒÛg•  ã                   ó<  — d dl mZmZ d dlZd dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ 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%„ Z/d&„ Z0d'„ Z1d(„ Z2d)„ Z3d*„ Z4d+„ Z5d,„ Z6d-„ Z7d.„ Z8d/„ Z9d0„ Z:d1„ Z;d2„ Z<d3„ Z=d4„ Z>d5„ Z?d6„ Z@ G d7„ d8ee¦  «        ZAeA B                    ¦   «           G d9„ d:ee¦  «        ZCeC D                    ¦   «          eEd;k    r ejF        ¦   «          dS dS )<é    )ÚproductÚcombinations_with_replacementN)ÚjitÚtypeof)Úcompile_isolated)Únumpy_version)ÚTestCaseÚMemoryLeakMixinÚtagc                 ó*   — |                       ¦   «         S ©N)Úall©Úarrs    úW/granary/edev/quantum/lib/python3.11/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_nancumsumr0   '   ó   € ÝŒ<˜ÑÔÐr   c                 ó*   — |                       ¦   «         S r   )Úsumr   s    r   Ú	array_sumr4   *   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   r3   r   s    r   Úarray_sum_globalr6   -   r   r   c                 ó*   — |                       ¦   «         S r   )Úprodr   s    r   Ú
array_prodr9   0   ó   € Ø�8Š8‰:Œ:Ðr   c                 ó*   — t          j        | ¦  «        S r   )r   r8   r   s    r   Úarray_prod_globalr<   3   ó   € ÝŒ7�3‰<Œ<Ðr   c                 ó*   — |                       ¦   «         S r   )Úmeanr   s    r   Ú
array_meanr@   6   r:   r   c                 ó*   — t          j        | ¦  «        S r   )r   r?   r   s    r   Úarray_mean_globalrB   9   r=   r   c                 ó*   — |                       ¦   «         S r   )Úvarr   s    r   Ú	array_varrE   <   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   rD   r   s    r   Úarray_var_globalrG   ?   r   r   c                 ó*   — |                       ¦   «         S r   )Ústdr   s    r   Ú	array_stdrJ   B   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   rI   r   s    r   Úarray_std_globalrL   E   r   r   c                 ó*   — |                       ¦   «         S r   )Úminr   s    r   Ú	array_minrO   H   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   rN   r   s    r   Úarray_min_globalrQ   K   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   Úaminr   s    r   Ú
array_aminrT   N   r=   r   c                 ó*   — |                       ¦   «         S r   )Úmaxr   s    r   Ú	array_maxrW   Q   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   rV   r   s    r   Úarray_max_globalrY   T   r   r   c                 ó*   — t          j        | ¦  «        S r   )r   Úamaxr   s    r   Ú
array_amaxr\   W   r=   r   c                 ó*   — |                       ¦   «         S r   ©Úargminr   s    r   Úarray_argminr`   Z   r*   r   c                 ó*   — t          j        | ¦  «        S r   ©r   r_   r   s    r   Úarray_argmin_globalrc   ]   r-   r   c                 ó*   — |                       ¦   «         S r   ©Úargmaxr   s    r   Úarray_argmaxrg   `   r*   r   c                 ó*   — t          j        | ¦  «        S r   ©r   rf   r   s    r   Úarray_argmax_globalrj   c   r-   r   c                 ó*   — t          j        | ¦  «        S r   )r   Úmedianr   s    r   Úarray_median_globalrm   f   r-   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanminr   s    r   Úarray_nanminrp   i   r-   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanmaxr   s    r   Úarray_nanmaxrs   l   r-   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanmeanr   s    r   Úarray_nanmeanrv   o   r#   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únansumr   s    r   Úarray_nansumry   r   r-   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanprodr   s    r   Úarray_nanprodr|   u   r#   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanstdr   s    r   Úarray_nanstdr   x   r-   r   c                 ó*   — t          j        | ¦  «        S r   )r   Únanvarr   s    r   Úarray_nanvarr‚   {   r-   r   c                 ó*   — t          j        | ¦  «        S r   )r   Ú	nanmedianr   s    r   Úarray_nanmedian_globalr…   ~   r1   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   Ú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          | |g¦  «        } | |¦  «        }|                     |¦  «        }||fS r   )r   r   Úentry_point)Úcompare_funcÚ
test_arrayÚarrtyÚcresÚnumpy_resultÚnumba_results         r   Úrun_comparativerÍ   ¸   sM   € Ý�:ÑÔ€EÝ˜L¨5¨'Ñ2Ô2€DØ�< 
Ñ+Ô+€LØ×#Ò# JÑ/Ô/€Là˜Ð%Ð%r   c                   ó4  ‡ — e Zd ZdZˆ fd„Zd„ Zef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ed„ ¦   «         Zd„ Zd„ ZdVd„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.dWd,„Z/d-„ Z0d.„ Z1d/„ Z2d0„ Z3d1„ Z4d2„ Z5d3„ Z6d4„ Z7d5„ Z8d6„ Z9d7„ Z:d8„ Z;d9„ Z<d:„ Z=d;„ Z>d<„ Z?d=„ Z@d>„ ZAd?„ ZBd@„ ZCdA„ ZDdB„ ZEdC„ ZFdD„ ZGdE„ ZHdF„ ZIdG„ ZJdH„ ZKdI„ ZLdJ„ ZMdK„ ZNdL„ ZOdM„ ZPdN„ ZQdO„ ZRdP„ ZSdQ„ ZTdR„ ZUdS„ ZVdT„ ZWeXdU„ ¦   «         ZYˆ xZZS )XÚ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   ÚcfuncÚkwargsÚpyfuncrÖ   s    €€€€r   Úcheckz8TestArrayReductions.check_reduction_basic.<locals>.checkÍ   s6   ø€ Ø#ˆ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ë   )g      @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                 ó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>.checkæ   ó/   ø€ Ø×#Ò# 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¬¦  «        ‰¦  «        Šˆˆˆ 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>.checkõ   rñ   r   )rä   rå   rä   rä   rê   r�   rè   rò   ró   r©   rô   rö   s   ``  @r   Útest_any_basicz"TestArrayReductions.test_any_basicó   só   øøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=õ ŒjÐ.Ð.Ð.Ñ/Ô/ˆØˆˆc‰
Œ
ˆ
Ý�u‘”ˆˆA‰Øˆˆc‰
Œ
ˆ
Ý�u‘”ˆˆA‰Øˆˆc‰
Œ
ˆ
ØˆˆA‰Øˆˆc‰
Œ
ˆ
Ø�kŠk˜&Ñ!Ô!ˆØˆˆc‰
Œ
ˆ
Øˆˆc�$�$�B�$ŒiÑÔÐÐÐr   c                 ó:   — |                       t          ¦  «         d S r   )rí   r4   ©rÖ   s    r   Útest_sum_basicz"TestArrayReductions.test_sum_basic  ó   € Ø×"Ò"¥9Ñ-Ô-Ð-Ð-Ð-r   c                 ó:   — |                       t          ¦  «         d S r   )rí   r@   rü   s    r   Útest_mean_basicz#TestArrayReductions.test_mean_basic  s   € Ø×"Ò"¥:Ñ.Ô.Ð.Ð.Ð.r   c                 ó>   — |                       t          d¬¦  «         d S ©NÚdouble)Úprec)rí   rE   rü   s    r   Útest_var_basicz"TestArrayReductions.test_var_basic
  s!   € Ø×"Ò"¥9°8Ð"Ñ<Ô<Ð<Ð<Ð<r   c                 ó:   — |                       t          ¦  «         d S r   )rí   rJ   rü   s    r   Útest_std_basicz"TestArrayReductions.test_std_basic  rþ   r   c                 ó:   — |                       t          ¦  «         d S r   )rí   rO   rü   s    r   Útest_min_basicz"TestArrayReductions.test_min_basic  rþ   r   c                 ó:   — |                       t          ¦  «         d S r   )rí   rW   rü   s    r   Útest_max_basicz"TestArrayReductions.test_max_basic  rþ   r   c                 ó:   — |                       t          ¦  «         d S r   )rí   r`   rü   s    r   Útest_argmin_basicz%TestArrayReductions.test_argmin_basic  ó   € Ø×"Ò"¥<Ñ0Ô0Ð0Ð0Ð0r   c                 ó:   — |                       t          ¦  «         d S r   )rí   rg   rü   s    r   Útest_argmax_basicz%TestArrayReductions.test_argmax_basic  r  r   c                 ó:   — |                       t          ¦  «         d S r   )rí   rp   rü   s    r   Útest_nanmin_basicz%TestArrayReductions.test_nanmin_basic  r  r   c                 ó:   — |                       t          ¦  «         d S r   )rí   rs   rü   s    r   Útest_nanmax_basicz%TestArrayReductions.test_nanmax_basic  r  r   c                 ó:   — |                       t          ¦  «         d S r   )rí   rv   rü   s    r   Útest_nanmean_basicz&TestArrayReductions.test_nanmean_basic"  ó   € Ø×"Ò"¥=Ñ1Ô1Ð1Ð1Ð1r   c                 ó:   — |                       t          ¦  «         d S r   )rí   ry   rü   s    r   Útest_nansum_basicz%TestArrayReductions.test_nansum_basic%  r  r   c                 ó:   — |                       t          ¦  «         d S r   )rí   r|   rü   s    r   Útest_nanprod_basicz&TestArrayReductions.test_nanprod_basic(  r  r   c                 ó:   — |                       t          ¦  «         d S r   )rí   r   rü   s    r   Útest_nanstd_basicz%TestArrayReductions.test_nanstd_basic+  r  r   c                 ó>   — |                       t          d¬¦  «         d S r  )rí   r‚   rü   s    r   Útest_nanvar_basicz%TestArrayReductions.test_nanvar_basic.  s!   € Ø×"Ò"¥<°hÐ"Ñ?Ô?Ð?Ð?Ð?r   c                 ó  ‡ ‡‡‡—  t          d¬¦  «        ‰¦  «        Šˆˆˆ fd„Šˆ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   ÚexpectedÚgotrÞ   rà   rÖ   s      €€€r   rá   z5TestArrayReductions.check_median_basic.<locals>.check3  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_odd9  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)  s    €r   Ú
check_evenz:TestArrayReductions.check_median_basic.<locals>.check_evenB  sA   ø€ ØˆE�!‰HŒHˆHØ—	’	˜'Ñ"Ô"ˆAØˆE�!‰HŒHˆHØˆE�!”#‰JŒJˆJˆJˆJr   é@   )r   r   r¥   )rÖ   rà   Úarray_variationsr*  r‘   r/  rÞ   rá   s   ``    @@r   Úcheck_median_basicz&TestArrayReductions.check_median_basic1  sï   øøøø€ Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð	ð 	ð 	ð 	ð 	ð
 "Ð!¥"¤)¨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_variationsJ  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©   r4  r-  rž   )r5  r   rÔ   r6  r�   s    r   Ú
variationsz9TestArrayReductions.test_median_basic.<locals>.variations\  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   )rm   r2  )rÖ   rà   r:  s      r   Útest_median_basicz%TestArrayReductions.test_median_basicY  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>.checkk  óš   ø€ Ø�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-  r§   é   ç      à?rä   r4  g      ü?r¨   r-  )ç      Ð?rI  râ   )g      @ç      @g      &@ih  é   )rJ  rI  ©r�   )rJ  rI  g      è?)rª   rK  )rž   r�   rª   rž   )r�   rª   r-  rž   )r=  )r   rÔ   Úrandnr­   r   Úlinspacerê   rè   ÚchoiceÚflatr6  ÚflattenÚtolistÚtupler¥   ÚtestingÚassert_equalÚarrayÚshapeÚ
assertTrueÚisscalar)	rÖ   rà   Úq_upper_boundrá   r‘   r‰   Ú
not_finiteÚxrÞ   s	   ``      @r   Úcheck_percentile_and_quantilez1TestArrayReductions.check_percentile_and_quantileh  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   éd   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?  rA  rC  s	         €€€r   rá   z>TestArrayReductions.check_percentile_edge_cases.<locals>.check¬  rE  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¦   )Úranger   r   rW  )ÚelementsÚiÚcombs      r   Ú_array_combinationszLTestArrayReductions.check_percentile_edge_cases.<locals>._array_combinations½  s\   è è € Ý˜1˜b‘\”\ð )ð )�Ý9¸(ÀAÑFÔFð )ð )�DÝœ( 4™.œ.Ð(Ð(Ð(Ð(ð)ð)ð )r   r   çš™™™™™¹?gš™™™™™É?rž   r©   r§   r�   )ra  )r   r   rê   rè   rW  )rÖ   rà   r[  rá   re  rk  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]©ÚassertRaisesÚ
ValueErrorÚassertEqualÚ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º   rl  úNot supported for complex dtype©	r   Údisable_leak_checkr   r¥   rê   ÚassertTypingErrorÚassertInrv  rw  ©rÖ   rà   rz  r‘   Úer‰   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]rr  rx  s      €€r   rz  z@TestArrayReductions.check_quantile_exceptions.<locals>.check_errô  s«   ø€ Ø×"Ò"¥:Ñ.Ô.ð °&Ø��a˜‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à×ÒØ7Ý�FÔ$Ñ%Ô%ñô ð ð ð r{  r§   g      à¿)rl  rl  gÍÌÌÌÌÌð?rl  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^  ro  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^  ro  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^  ro  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 r’  )rš   r^  ro  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…   r2  r7  r�  s     r   Útest_nanmedian_basicz(TestArrayReductions.test_nanmedian_basic#  s&   € Ý'ˆØ×Ò ¨Ô(>Ñ?Ô?Ð?Ð?Ð?r   c                 ól  — t          j        dt           j        ¬¦  «        }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         t          t          |g¦  «        }|j	        }|                      t          j
        |¦  «         ||¦  «        ¦  «         d S ©Nr¦   r£   rž   ÚC)r   r¥   Úint32r   ru  ÚndimÚlayoutr   r6   rÆ   r3   ©rÖ   r   rÉ   rÊ   rÞ   s        r   Útest_array_sum_globalz)TestArrayReductions.test_array_sum_global'  s™   € ÝŒi˜¥"¤(Ð+Ñ+Ô+ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+åÕ 0°5°'Ñ:Ô:ˆØÔ ˆà×Ò�œ ™œ e e¨C¡j¤jÑ1Ô1Ð1Ð1Ð1r   c                 ór  — t          j        dt           j        ¬¦  «        dz   }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         t          t          |g¦  «        }|j	        }|                      | 
                    ¦   «          ||¦  «        ¦  «         d S r™  )r   r¥   r›  r   ru  rœ  r�  r   r9   rÆ   r8   rž  s        r   Útest_array_prod_int_1dz*TestArrayReductions.test_array_prod_int_1d2  s�   € ÝŒi˜¥"¤(Ð+Ñ+Ô+¨aÑ/ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+å¥
¨U¨GÑ4Ô4ˆØÔ ˆà×Ò˜Ÿš™œ U U¨3¡Z¤ZÑ0Ô0Ð0Ð0Ð0r   c                 ó†  — t          j        dt           j        ¬¦  «        dz   }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         t          t          |g¦  «        }|j	        }t           j
                             |                     ¦   «          ||¦  «        ¦  «         d S )Nr¦   r£   rl  rž   rš  )r   r¥   r¼   r   ru  rœ  r�  r   r9   rÆ   rU  Úassert_allcloser8   rž  s        r   Útest_array_prod_float_1dz,TestArrayReductions.test_array_prod_float_1d=  sŸ   € ÝŒi˜¥"¤*Ð-Ñ-Ô-°Ñ6ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+å¥
¨U¨GÑ4Ô4ˆØÔ ˆå
Œ
×"Ò" 3§8¢8¡:¤:¨u¨u°S©z¬zÑ:Ô:Ð:Ð:Ð:r   c                 ó€  — t          j        dt           j        ¬¦  «        }t          |¦  «        }|                      |j        d¦  «         |                      |j        d¦  «         t          t          |g¦  «        }|j	        }t           j
                             t          j        |¦  «         ||¦  «        ¦  «         d S r™  )r   r¥   r›  r   ru  rœ  r�  r   r<   rÆ   rU  r£  r8   rž  s        r   Útest_array_prod_globalz*TestArrayReductions.test_array_prod_globalH  s›   € ÝŒi˜¥"¤(Ð+Ñ+Ô+ˆÝ�s‘”ˆØ×Ò˜œ QÑ'Ô'Ð'Ø×Ò˜œ sÑ+Ô+Ð+åÕ 1°E°7Ñ;Ô;ˆØÔ ˆå
Œ
×"Ò"¥2¤7¨3¡<¤<°°°s±´Ñ<Ô<Ð<Ð<Ð<r   c                 ó”  — t          j        ddt           j        ¬¦  «        }t          ||¦  «        \  }}|                      ||¦  «         t          j        ddd¦  «        }t          ||¦  «        \  }}|                      ||¦  «         |                     d¦  «        }t          ||¦  «        \  }}|                      ||¦  «         d S )Nr�   r¦   r£   rH  rL  )rª   r�   )r   r¥   Úint16rÍ   rÝ   rO  r­   )rÖ   rà   r   r"  r#  s        r   Úcheck_cumulativez$TestArrayReductions.check_cumulativeS  s¿   € ÝŒi˜˜2¥R¤XÐ.Ñ.Ô.ˆÝ'¨°Ñ4Ô4‰ˆ�#Ø×Ò  XÑ.Ô.Ð.ÝŒk˜!˜Q Ñ"Ô"ˆÝ'¨°Ñ4Ô4‰ˆ�#Ø×Ò  XÑ.Ô.Ð.Ø�kŠk˜&Ñ!Ô!ˆÝ'¨°Ñ4Ô4‰ˆ�#Ø×Ò  XÑ.Ô.Ð.Ð.Ð.r   c                 ó:   — |                       t          ¦  «         d S r   )r©  r)   rü   s    r   Útest_array_cumsumz%TestArrayReductions.test_array_cumsum^  s   € Ø×Ò�lÑ+Ô+Ð+Ð+Ð+r   c                 ó:   — |                       t          ¦  «         d S r   )r©  r,   rü   s    r   Útest_array_cumsum_globalz,TestArrayReductions.test_array_cumsum_globala  s   € Ø×ÒÕ1Ñ2Ô2Ð2Ð2Ð2r   c                 ó:   — |                       t          ¦  «         d S r   )r©  r    rü   s    r   Útest_array_cumprodz&TestArrayReductions.test_array_cumprodd  s   € Ø×Ò�mÑ,Ô,Ð,Ð,Ð,r   c                 ó:   — |                       t          ¦  «         d S r   )r©  r"   rü   s    r   Útest_array_cumprod_globalz-TestArrayReductions.test_array_cumprod_globalg  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@œ  r¨  l            Úint64Úuint64N)r   r¥   rd  rÍ   rÝ   )rÖ   rà   Úis_prodÚn_itemsr   ÚnprÚnbrs          r   Úcheck_aggregation_magnitudez/TestArrayReductions.check_aggregation_magnitudej  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¹  r4   r6   rü   s    r   Útest_sum_magnitudez&TestArrayReductions.test_sum_magnitude}  ó1   € Ø×(Ò(­Ñ3Ô3Ð3Ø×(Ò(Õ)9Ñ:Ô:Ð:Ð:Ð:r   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r¹  r)   r,   rü   s    r   Útest_cumsum_magnitudez)TestArrayReductions.test_cumsum_magnitude�  s1   € Ø×(Ò(­Ñ6Ô6Ð6Ø×(Ò(Õ)<Ñ=Ô=Ð=Ð=Ð=r   c                 ó>   — |                       t          d¬¦  «         d S ©NT)rµ  )r¹  r0   rü   s    r   Útest_nancumsum_magnitudez,TestArrayReductions.test_nancumsum_magnitude…  s!   € Ø×(Ò(­À$Ð(ÑGÔGÐGÐGÐGr   c                 óv   — |                       t          d¬¦  «         |                       t          d¬¦  «         d S rÀ  )r¹  r9   r<   rü   s    r   Útest_prod_magnitudez'TestArrayReductions.test_prod_magnitudeˆ  s;   € Ø×(Ò(­¸TÐ(ÑBÔBÐBØ×(Ò(Õ):ÀDÐ(ÑIÔIÐIÐIÐIr   c                 óv   — |                       t          d¬¦  «         |                       t          d¬¦  «         d S rÀ  )r¹  r    r"   rü   s    r   Útest_cumprod_magnitudez*TestArrayReductions.test_cumprod_magnitudeŒ  s;   € Ø×(Ò(­ÀÐ(ÑEÔEÐEØ×(Ò(Õ)=ÀtÐ(ÑLÔLÐLÐLÐLr   c                 ó>   — |                       t          d¬¦  «         d S rÀ  )r¹  r&   rü   s    r   Útest_nancumprod_magnitudez-TestArrayReductions.test_nancumprod_magnitude�  s"   € Ø×(Ò(Õ)9À4Ð(ÑHÔHÐHÐHÐHr   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r¹  r@   rB   rü   s    r   Útest_mean_magnitudez'TestArrayReductions.test_mean_magnitude“  s1   € Ø×(Ò(­Ñ4Ô4Ð4Ø×(Ò(Õ):Ñ;Ô;Ð;Ð;Ð;r   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r¹  rE   rG   rü   s    r   Útest_var_magnitudez&TestArrayReductions.test_var_magnitude—  r¼  r   c                 ón   — |                       t          ¦  «         |                       t          ¦  «         d S r   )r¹  rJ   rL   rü   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©   rl   rž   r�   ÚNaT)r   r   rÝ   r5  r   rÔ   r6  Ú__name__rg  Ú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¥   rd  rÓ  ©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£   rÕ  rÖ  s      r   Úcheck_nptimedeltaz%TestArrayReductions.check_nptimedelta½  rØ  r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )r×  rO   rÚ  rü   s    r   Útest_min_npdatetimez'TestArrayReductions.test_min_npdatetimeÁ  ó0   € Ø×Ò�iÑ(Ô(Ð(Ø×Ò�yÑ)Ô)Ð)Ð)Ð)r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )r×  rW   rÚ  rü   s    r   Útest_max_npdatetimez'TestArrayReductions.test_max_npdatetimeÅ  rÝ  r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )r×  r`   rÚ  rü   s    r   Útest_argmin_npdatetimez*TestArrayReductions.test_argmin_npdatetimeÉ  ó0   € Ø×Ò�lÑ+Ô+Ð+Ø×Ò�|Ñ,Ô,Ð,Ð,Ð,r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )r×  rg   rÚ  rü   s    r   Útest_argmax_npdatetimez*TestArrayReductions.test_argmax_npdatetimeÍ  râ  r   c                 ó:   — |                       t          ¦  «         d S r   )rÚ  rm   rü   s    r   Útest_median_npdatetimez*TestArrayReductions.test_median_npdatetimeÑ  s   € Ø×ÒÕ2Ñ3Ô3Ð3Ð3Ð3r   c                 ó:   — |                       t          ¦  «         d S r   )rÚ  r4   rü   s    r   Útest_sum_npdatetimez'TestArrayReductions.test_sum_npdatetimeÔ  s   € Ø×Ò�yÑ)Ô)Ð)Ð)Ð)r   c                 ó:   — |                       t          ¦  «         d S r   )rÚ  r)   rü   s    r   Útest_cumsum_npdatetimez*TestArrayReductions.test_cumsum_npdatetime×  s   € Ø×Ò�|Ñ,Ô,Ð,Ð,Ð,r   c                 ó:   — |                       t          ¦  «         d S r   )rÚ  r@   rü   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Ô   rP  rg  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¦   r0  gfffff¦@@r£   )r   rO  r­   rW  rè   r¥   Úasfortranarrayr¼   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§   rL  r&  rH  r%  rº   r©   rª   )r   rd  r   rì   rW  Ú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   )r©  r&   rý  rü   s    r   Útest_nancumprod_basicz)TestArrayReductions.test_nancumprod_basic   s2   € Ø×ÒÕ.Ñ/Ô/Ð/Ø×!Ò!Õ"2Ñ3Ô3Ð3Ð3Ð3r   c                 ón   — |                       t          ¦  «         |                      t          ¦  «         d S r   )r©  r0   rý  rü   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Àrl  éöÿÿÿr.  r-  r�   r©   r   rL  g      @y      ð?      @))gffffff@rã   gffffffÀ)g333333@gš™™™™™@gÍÌÌÌÌÌ@rž   rº   )r   r¥   rW  rê   rè   rû  rO  r­   rù  rÔ   ÚRandomStater6  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   rO  rê   r­   )Úreal_nanÚimag_nanÚrealÚimags       r   Ú
make_arrayz8TestArrayReductions.test_ptp_complex.<locals>.make_arrayB  su   € Ý”;˜r 1 bÑ)Ô)ˆDØð #ÝœF��Q�q�S‘	Ý”;˜r 1 bÑ)Ô)ˆDØð $ÝœV��Q�r�T‘
Ø˜2 ™9Ñ$×-Ò-¨a°Ñ3Ô3Ð3r   r�   )ÚrepeatrH  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_complex9  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   rW  r‚  rv  rw  rs  rt  )rÖ   rà   rÞ   r„  Úmsgs        r   Útest_ptp_exceptionsz'TestArrayReductions.test_ptp_exceptionsY  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>.checkr  ó9   ø€ Ø!˜6 !™9œ9�Ø�e˜A‘h”h�Ø×'Ò'¨°#Ñ6Ô6Ð6Ð6Ð6r   r  r¦   é(   r©   r-  r�   rº   )rQ   rY   r   r   rO  rg  rÔ   r6  rP  r½   Ú
complex128rd  )
rÖ   Úpyfuncsrá   r  r  r‘   Ú_r¤   rÞ   rà   s
   `       @@r   Útest_min_max_complex_basicz.TestArrayReductions.test_min_max_complex_basicl  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>.check‹  r   r   r  r¦   r!  r©   r-  r§   r%  r�   r&  r¨   rº   )	rp   rs   r   r   rO  rê   rg  rÔ   r6  )	rÖ   r#  rá   r  r  r‘   r$  rÞ   rà   s	   `      @@r   Ú test_nanmin_nanmax_complex_basicz4TestArrayReductions.test_nanmin_nanmax_complex_basic…  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ž   rL  r-  r�   ))r  r-  iôÿÿÿ)r§   éÈ   iâÿÿÿrª   rM  g‰A`åÐ"	@FgÍÌÌÌÌÌÀrë   gš™™™™™ñ?)gš™™™™™Àgffffff!@)r   rW  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Ù   )rp   rs   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-  rL  r�   rª   ©r   rž   r_  éx   r-  r§   r¦   ©r   rž   rž   r�   ©rž   r   r   r   é3   c                 ó   — g | ]}|d z    ‘Œ	S r  r·   ©r¸   ri  s     r   r¹   zATestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<listcomp>Â  ó+   € ð ,ð ,ð ,Ø�!�A‘#�ð,ð ,ð ,r   c                 ó   — g | ]}|fd „‘ŒS )c                 ó.   — t          j        | |¬¦  «        S ©N©Úaxisri   ©r‘   Ú_axiss     r   ú<lambda>zJTestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<listcomp>.<lambda>Æ  ó   € ¥b¤i°¸Ð&>Ñ&>Ô&>€ r   r·   ©r¸   r=  s     r   r¹   zATestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<listcomp>Å  ó1   € ð ð ð àð !%Ð>Ð>Ð>ðð ð r   c                 ó@   — g | ]} t          d ¬¦  «        |¦  «        ‘ŒS ©TrÙ   ©r   ©r¸   rà   s     r   r¹   zATestArrayReductions.test_argmax_axis_1d_2d_4d.<locals>.<listcomp>É  ó;   € ð ð ð Ø/5Ð"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ðð ð r   ©	r   rW  r¥   r­   Úlistrg  rœ  rÝ   Úpy_func©	rÖ   Úarr1dÚarr2dÚarr4dr   ÚaxesÚpy_functionsÚc_functionsrÞ   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 )NrL  r�   rª   TrÙ   c                 ó,   — t          j        | |¦  «        S r   ri   ©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©ÚassertRaisesRegexrt  rK  )r   r=  rX  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ž   éþÿÿÿéýÿÿÿ©r   r¥   r­   r   r€  )rÖ   rM  rN  r^  rX  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 )NrL  TrÙ   c                 ó,   — t          j        | |¦  «        S r   ri   rW  s     r   rX  zGTestArrayReductions.test_argmax_axis_must_be_integer.<locals>.jitargmaxç  rY  r   Úfooúaxis must be an integer©r   r¥   r   r�  r‚  rv  rw  )rÖ   r   rX  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 )NrL  r�   rª   c                 ó0   •— ‰                      d¬¦  «        S ©Nr   r<  re   ©r   rN  s    €r   rf   z;TestArrayReductions.test_argmax_method_axis.<locals>.argmaxò  ó   ø€ Ø—<’< Q�<Ñ'Ô'Ð'r   TrÙ   ©r   r¥   r­   rÝ   r   ©rÖ   rf   rN  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 )NrL  r£   r�   rª   c                 ó0   •— ‰                      d¬¦  «        S ro  re   rp  s    €r   rf   z;TestArrayReductions.test_argmax_return_type.<locals>.argmaxü  rq  r   TrÙ   ©r   r¥   Úuint8r­   rÝ   r   rs  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/  rL  r�   rª   r1  r_  r2  r-  r§   r¦   r3  r4  r5  c                 ó   — g | ]}|d z    ‘Œ	S r  r·   r7  s     r   r¹   zATestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<listcomp>  r8  r   c                 ó   — g | ]}|fd „‘ŒS )c                 ó.   — t          j        | |¬¦  «        S r;  rb   r>  s     r   r@  zJTestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<listcomp>.<lambda>  rA  r   r·   rB  s     r   r¹   zATestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<listcomp>  rC  r   c                 ó@   — g | ]} t          d ¬¦  «        |¦  «        ‘ŒS rE  rF  rG  s     r   r¹   zATestArrayReductions.test_argmin_axis_1d_2d_4d.<locals>.<listcomp>  rH  r   rI  rL  s	            r   Útest_argmin_axis_1d_2d_4dz-TestArrayReductions.test_argmin_axis_1d_2d_4d  rT  r   c                 óH  ‡ ‡— t          j        d¦  «        }t          j        d¦  «                             dd¦  «        }t          d¬¦  «        d„ ¦   «         Šˆˆ fd„} ||d¦  «          ||d	¦  «          ||d
¦  «          ||d¦  «         ‰                      ¦   «          d S )NrL  r�   rª   TrÙ   c                 ó,   — t          j        | |¦  «        S r   rb   rW  s     r   Ú	jitargminzDTestArrayReductions.test_argmin_axis_out_of_range.<locals>.jitargmin  rY  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ž   ra  rb  rc  )rÖ   rM  rN  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 )NrL  TrÙ   c                 ó,   — t          j        | |¦  «        S r   rb   rW  s     r   r„  zGTestArrayReductions.test_argmin_axis_must_be_integer.<locals>.jitargmin2  rY  r   rg  rh  ri  )rÖ   r   r„  r„  s       r   Ú test_argmin_axis_must_be_integerz4TestArrayReductions.test_argmin_axis_must_be_integer/  rk  rl  c                 óà   ‡— t          j        d¦  «                             dd¦  «        Šˆfd„}|                       |‰¦  «          t	          d¬¦  «        |¦  «        ‰¦  «        ¦  «         d S )NrL  r�   rª   c                 ó0   •— ‰                      d¬¦  «        S ro  r^   rp  s    €r   r_   z;TestArrayReductions.test_argmin_method_axis.<locals>.argmin=  rq  r   TrÙ   rr  ©rÖ   r_   rN  s     @r   Útest_argmin_method_axisz+TestArrayReductions.test_argmin_method_axis:  ru  r   c                 óø   ‡— t          j        dt           j        ¬¦  «                             dd¦  «        Šˆfd„}|                       |‰¦  «          t          d¬¦  «        |¦  «        ‰¦  «        ¦  «         d S )NrL  r£   r�   rª   c                 ó0   •— ‰                      d¬¦  «        S ro  r^   rp  s    €r   r_   z;TestArrayReductions.test_argmin_return_type.<locals>.argminG  rq  r   TrÙ   rx  rŒ  s     @r   Útest_argmin_return_typez+TestArrayReductions.test_argmin_return_typeC  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ž   r8   rª   Úsingle)r  r  Úulps)rÐ  r   ÚiscomplexobjrÍ   rÝ   )rÖ   ÚredFuncÚ	testArrayÚtestNamer•  r·  r¸  Úred_funcs          €r   Únew_test_functionz]TestArrayReductions.install_generated_tests.<locals>.install_tests.<locals>.new_test_functionu  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   ÚformatrÐ  r¤   Únamerœ  Úsetattr)	ÚdtypesÚfuncsÚdtÚtest_arraysrÈ   Ú	test_namer›  rš  Úclss	          @€r   Úinstall_testszBTestArrayReductions.install_generated_tests.<locals>.install_testsj  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©   )$r4   r6   r9   r<   r@   rB   rE   rG   rJ   rL   r   r   r   r   rO   rQ   r\   rT   rW   rY   rs   rp   ry   r`   rc   rg   rj   rv   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_testsM  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)[rÐ  Ú
__module__Ú__qualname__Ú__doc__rÓ   rí   r   r÷   r   rú   rý   r   r  r  r	  r  r  r  r  r  r  r  r  r  r  r2  Ústaticmethodr7  r;  r^  ro  r…  r‰  rŽ  r�  r“  r•  r—  rŸ  r¡  r¤  r¦  r©  r«  r­  r¯  r±  r¹  r»  r¾  rÁ  rÃ  rÅ  rÇ  rÉ  rË  rÍ  rÓ  r×  rÚ  rÜ  rß  rá  rä  ræ  rè  rê  rì  rý  rÿ  r  r	  r  r  r  r%  r(  r-  rS  rd  rj  rt  rz  r�  r†  r‰  r�  r�  Úclassmethodr©  Ú__classcell__)r×   s   @r   rÏ   rÏ   Á   sl  ø€ € € € € ðð ðð ð ð ð ðð ð ð4 %.ð ð ð ð ð %.ð ð ð ð ð".ð .ð .ð/ð /ð /ð=ð =ð =ð.ð .ð .ð.ð .ð .ð.ð .ð .ð1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð2ð 2ð 2ð1ð 1ð 1ð2ð 2ð 2ð1ð 1ð 1ð@ð @ð @ðð ð ð2 ðð ñ „\ðð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   rs  ÚBaseExceptionÚ	zero_sizert  r‚  rv  rw  )rÖ   rà   r  rÞ   r„  s        r   Úcheck_exceptionz-TestArrayReductionsExceptions.check_exception”  s5  € Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×Ò�}Ñ-Ô-ð 	#ð 	#ØˆF�4”>Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð ×Ò�zÑ*Ô*ð 	"¨aØˆE�$”.Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�Š�c�3˜qœ{Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,s#   ´AÁAÁAÁ6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   )Údictrg   rj   r`   rc   rW   rO   Úitemsrœ  rÐ  rò  rž  )r¤  Ú	fn_to_msgÚ	empty_seqÚop_no_identr]  Úname_templateÚfnr  r£  Úlmsgr½  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)	rÐ  rª  r«  r   r¥   r´  rµ  r®  rÆ  r·   r   r   r±  r±  �  sO   € € € € € ð �”	˜!‘”€Ið-ð -ð -ð ð-ð -ñ „[ð-ð -ð -r   r±  Ú__main__)GÚ	itertoolsr   r   Únumpyr   Únumbar   r   Únumba.core.compilerr   Únumba.np.numpy_supportr   Únumba.tests.supportr	   r
   r   Úunittestr   r   r   r   r    r"   r&   r)   r,   r0   r4   r6   r9   r<   r@   rB   rE   rG   rJ   rL   rO   rQ   rT   rW   rY   r\   r`   rc   rg   rj   rm   rp   rs   rv   ry   r|   r   r‚   r…   rŠ   r�   r’   r”   r—   rš   r´   rÄ   rÍ   rÏ   r©  r±  rÆ  rÐ  Úmainr·   r   r   ú<module>rÐ     s  ðØ <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø €€€ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð!ð !ð !ð$ð $ð $ðð ð ðð ð ðð ð ð"ð "ð "ðð ð ð"ð ð ð(&ð &ð &ðH7ð H7ð H7ð H7ð H7˜/¨8ñ H7ô H7ð H7ðV × +Ò +Ñ -Ô -Ð -ð%-ð %-ð %-ð %-ð %- O°Xñ %-ô %-ð %-ðN × %Ò %Ñ 'Ô 'Ð 'ð ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   