Ë
    üÇ:j€¤  ã                   óš  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZmZ d dlmZmZmZ d dlZd dlmZ d dlmZ d„ Zd„ Zd	„ Zd
„ Zd„ Z G d„ deej                  «      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z  G d„ deej                  «      Z!e"dk(  r ejF                  «        yy)é    N)ÚnjitÚ	vectorize)ÚMemoryLeakMixinÚTestCase)ÚTypingErrorÚNumbaNotImplementedErrorÚNumbaExperimentalFeatureWarning)Údufunc)Ú
from_dtypec                 ó   — | |z   S ©N© ©Úa0Úa1s     úu/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/numba/tests/npyufunc/test_dufunc.pyÚpyuaddr      ó   € Ø�‰7€Nó    c                 ó   — | |z
  S r   r   r   s     r   Úpysubr      r   r   c                 ó   — | |z  S r   r   r   s     r   Úpymultr      r   r   c                 ó   — | |z  S r   r   r   s     r   Úpydivr      s   € Ø�‰8€Or   c                 ó   — | |k  r| S |S r   r   r   s     r   Úpyminr   "   s   € Ø�b’ˆ2Ð ˜bÐ r   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú
TestDUFuncc                 óD   — t        j                  |t        d¬«      ¬«      S )NT)Únopython)Útargetoptions)r
   ÚDUFuncÚdict)ÚselfÚpyfuncs     r   Únopython_dufunczTestDUFunc.nopython_dufunc(   s   € Ü�}‰}˜V´4ÀÔ3FÔGÐGr   c           	      óÄ  — | j                  t        «      }| j                  |j                  «       d|_        | j	                  |j                  «       | j                  t        «      5  d|_        d d d «       | j                  t        «      5   |t        j                  ddd«      t        j                  ddd«      «       d d d «       y # 1 sw Y   Œ[xY w# 1 sw Y   y xY w)NTFr   é   é
   é   )
r'   r   ÚassertFalseÚ_frozenÚ
assertTrueÚassertRaisesÚ
ValueErrorÚ	TypeErrorÚnpÚlinspace©r%   Úduadds     r   Útest_frozenzTestDUFunc.test_frozen+   s±   € Ø×$Ñ$¤VÓ,ˆØ×Ñ˜Ÿ™Ô'ØˆŒØ�‰˜Ÿ™Ô&Ø×ÑœzÓ*ñ 	"Ø!ˆEŒM÷	"à×ÑœyÓ)ñ 	<Ù”"—+‘+˜a  "Ó%¤r§{¡{°1°Q°rÓ':Ô;÷	<ð 	<÷	"ð 	"ú÷	<ð 	<ús   Á(C
Â4CÃ
CÃCc                 ót   — | j                  t        «      }| j                  t        dd«       |dd«      «       y )Nr)   r+   )r'   r   ÚassertEqualr4   s     r   Útest_scalarzTestDUFunc.test_scalar5   s.   € Ø×$Ñ$¤VÓ,ˆØ×Ñœ  !›¡e¨A¨a£jÕ1r   c                 óh  ‡— | j                  t        «      Št        ˆfd„«       }t        j                  ddd«      }|d d }|dd  }t        j
                  d«      } ||||«       t        j                  j                  ||z   |«       |j                  d«      }|j                  d«      }t        j
                  d«      } ||||«       t        j                  j                  ||z   |«       |d d }	t        j
                  d«      }
 |||	|
«       t        j                  j                  ||	z   |
«       y )Nc                 ó   •—  ‰| ||«       y r   r   )r   r   Úo0r5   s      €r   Únpmaddz(TestDUFunc.test_npm_call.<locals>.npmadd<   s   ø€ á�"�b˜"Õr   r   çffffffþ?é   r*   ©r+   é   rA   )	r'   r   r   r2   r3   ÚzerosÚtestingÚassert_array_equalÚreshape)r%   r=   ÚXÚX0ÚX1Úout0ÚY0ÚY1Úout1ÚY2Úout2r5   s              @r   Útest_npm_callzTestDUFunc.test_npm_call9   s  ø€ Ø×$Ñ$¤VÓ,ˆä	ó	ó 
ð	ä�K‰K˜˜#˜bÓ!ˆØˆs�ˆVˆØˆrˆsˆVˆÜ�x‰x˜‹|ˆÙˆr�2�tÔÜ
�
‰
×%Ñ% b¨2¡g¨tÔ4Ø�Z‰Z˜ÓˆØ�Z‰Z˜ÓˆÜ�x‰x˜‹ˆÙˆr�2�tÔÜ
�
‰
×%Ñ% b¨2¡g¨tÔ4Ø��ˆVˆÜ�x‰x˜‹ˆÙˆr�2�tÔÜ
�
‰
×%Ñ% b¨2¡g¨tÕ4r   c                 ó  ‡— | j                  t        «      Št        ˆfd„«       }t        j                  ddd«      }|d d }|dd  } |||«      }t        j
                  j                  ||z   |«       |j                  d«      }|j                  d«      } |||«      }t        j
                  j                  ||z   |«       |d d }	 |||	«      }
t        j
                  j                  ||	z   |
«        |dd	«      }| j                  |d
«       y )Nc                 ó   •—  ‰| |«      S r   r   )r   r   r5   s     €r   r=   z8TestDUFunc.test_npm_call_implicit_output.<locals>.npmaddR   s   ø€ á˜˜R“=Ð r   r   r>   r?   r*   r@   rA   ç      ð?ç       @g      @)	r'   r   r   r2   r3   rC   rD   rE   r8   )r%   r=   rF   rG   rH   rI   rJ   rK   rL   rM   rN   Úout3r5   s               @r   Útest_npm_call_implicit_outputz(TestDUFunc.test_npm_call_implicit_outputO   sø   ø€ Ø×$Ñ$¤VÓ,ˆä	ó	!ó 
ð	!ä�K‰K˜˜#˜bÓ!ˆØˆs�ˆVˆØˆrˆsˆVˆÙ�b˜"‹~ˆÜ
�
‰
×%Ñ% b¨2¡g¨tÔ4Ø�Z‰Z˜ÓˆØ�Z‰Z˜ÓˆÙ�b˜"‹~ˆÜ
�
‰
×%Ñ% b¨2¡g¨tÔ4Ø��ˆVˆÙ�b˜"‹~ˆÜ
�
‰
×%Ñ% b¨2¡g¨tÔ4Ù�b˜‹}ˆØ×Ñ˜˜rÕ"r   c                 óŠ  — | j                  t        «      }| j                  |j                  d«       | j                  |j                  d«       | j                  |j
                  |j                  |j                  z   «       | j                  |j                  d«       | j                  |j                  g «       | j                  |j                  d «        |dd«       | j                  |j                  d«       | j                  |j                  t        |j                  «      «       | j                  |j                  «       y )Nr+   r)   r   )r'   r   r8   ÚninÚnoutÚnargsÚntypesÚtypesÚidentityÚlenÚassertIsNoneÚ	signaturer4   s     r   Útest_ufunc_propszTestDUFunc.test_ufunc_propsd   sã   € Ø×$Ñ$¤VÓ,ˆØ×Ñ˜Ÿ™ AÔ&Ø×Ñ˜Ÿ™ QÔ'Ø×Ñ˜Ÿ™ e§i¡i°%·*±*Ñ&<Ô=Ø×Ñ˜Ÿ™ qÔ)Ø×Ñ˜Ÿ™ bÔ)Ø×Ñ˜Ÿ™¨Ô.Ùˆa�ŒØ×Ñ˜Ÿ™ qÔ)Ø×Ñ˜Ÿ™¤s¨5¯;©;Ó'7Ô8Ø×Ñ˜%Ÿ/™/Õ*r   c                 óH  ‡— | j                  t        «      Š ‰dd«       ‰j                  ‰j                  ‰j                  ‰j
                  ‰j                  dœ}ˆfd„}|j                  «       D ]1  \  }}t         ||«      «      }| j                  | |«       d|› �«       Œ3 y )Nr)   r+   )rW   rX   rY   r\   r_   c                 ób   •— d| › d�}i }t        t        j                  |«      d‰i|«       |d   S )Nz>
                def impl():
                    return duadd.z
            r5   Úimpl)ÚexecÚtextwrapÚdedent)ÚattrÚfnÚlr5   s      €r   Úget_attr_fnz4TestDUFunc.test_ufunc_props_jit.<locals>.get_attr_fn}   sD   ø€ ð"à"& ð (ðˆBð ˆAÜ”—‘ Ó$ w°Ð&6¸Ô:Ø�V‘9Ðr   z!Attribute differs from original: )
r'   r   rW   rX   rY   r\   r_   Úitemsr   r8   )r%   Ú
attributesrj   rg   ÚvalÚcfuncr5   s         @r   Útest_ufunc_props_jitzTestDUFunc.test_ufunc_props_jitq   s›   ø€ Ø×$Ñ$¤VÓ,ˆÙˆa�Œà"ŸY™YØ#Ÿj™jØ$Ÿ{™{ð #(§.¡.Ø#(§?¡?ñ4ˆ
ô	ð $×)Ñ)Ó+ò 	I‰IˆD�#Ü™ TÓ*Ó+ˆEØ×Ñ˜S¡%£'Ø@ÀÀÐGõIñ	Ir   N)
Ú__name__Ú
__module__Ú__qualname__r'   r6   r9   rO   rU   r`   ro   r   r   r   r   r   &   s'   „ òHò<ò2ò5ò,#ò*+óIr   r   c                   óD   — e Zd Zej                  dd„«       Zd„ Zd„ Zd„ Zy)ÚTestDUFuncMethodsBaseNc                 óÐ  ‡‡— |dv sJ ‚|dk(  rK‰j                   dk(  r t        |¬«      ˆfd„«      Šn t        |¬«      ˆfd„«      Št        dˆfd„	«       }|S |dk(  r@‰j                   dk7  rt        d	«      ‚ t        |¬«      ˆfd
„«      Št        dˆfd„	«       }|S ‰j                   dk(  r t        |¬«      ˆfd„«      Šn t        |¬«      ˆfd„«      Št        ˆfd„«       }|S )N)ÚreduceÚreduceatÚatrv   r+   ©r\   c                 ó   •—  ‰| |«      S r   r   ©ÚaÚbÚufuncs     €r   ú<lambda>z5TestDUFuncMethodsBase._generate_jit.<locals>.<lambda>š   ó   ø€ ÁÀaÈÃ€ r   c                 ó   •—  ‰| «      S r   r   ©r|   r~   s    €r   r   z5TestDUFuncMethodsBase._generate_jit.<locals>.<lambda>œ   ó   ø€ ¹UÀ1»X€ r   c                 ó,   •— ‰j                  | ||¬«      S ©N©ÚaxisÚinitial©rv   ©Úarrayr‡   rˆ   Úvecs      €r   rh   z/TestDUFuncMethodsBase._generate_jit.<locals>.fnž   s   ø€ à—z‘z %¨d¸G�zÓDÐDr   rw   ú,reduceat only supported for binary functionsc                 ó   •—  ‰| |«      S r   r   r{   s     €r   r   z5TestDUFuncMethodsBase._generate_jit.<locals>.<lambda>¥   ó   ø€ ¹EÀ!ÀQ»K€ r   c                 ó.   •— ‰j                  | ||||«      S r   ©rw   )r‹   Úindicesr‡   ÚdtypeÚoutrŒ   s        €r   rh   z/TestDUFuncMethodsBase._generate_jit.<locals>.fn§   s   ø€ à—|‘| E¨7°D¸%ÀÓEÐEr   c                 ó   •—  ‰| |«      S r   r   r{   s     €r   r   z5TestDUFuncMethodsBase._generate_jit.<locals>.<lambda>­   r€   r   c                 ó   •—  ‰| «      S r   r   r‚   s    €r   r   z5TestDUFuncMethodsBase._generate_jit.<locals>.<lambda>¯   rƒ   r   c                  ó"   •—  ‰j                   | Ž S r   ©rx   )ÚargsrŒ   s    €r   rh   z/TestDUFuncMethodsBase._generate_jit.<locals>.fn±   s   ø€ à�s—v‘v˜t�}Ð$r   ©r   N)r   NN)rW   r   r   r0   )r%   r~   Úkindr\   rh   rŒ   s    `   @r   Ú_generate_jitz#TestDUFuncMethodsBase._generate_jit•   sò   ù€ àÐ3Ñ3Ð3Ð3Ø�8ÒØ�y‰y˜AŠ~Ø2”i¨Ô2Ó3KÓL‘à2”i¨Ô2Ó3EÓF�äôEó ðEàˆIØ�ZÒØ�y‰y˜AŠ~Ü Ð!OÓPÐPØ.”) XÔ.Ó/GÓHˆCäôFó ðFàˆIà�y‰y˜AŠ~Ø2”i¨Ô2Ó3KÓL‘à2”i¨Ô2Ó3EÓF�äó%ó ð%àˆIr   c                 ó*   — | j                  |d|¬«      S )Nrv   ry   ©rœ   ©r%   r~   r\   s      r   Ú_reducezTestDUFuncMethodsBase._reduce¶   s   € Ø×!Ñ! %¨¸HÐ!ÓEÐEr   c                 ó*   — | j                  |d|¬«      S )Nrw   ry   rž   rŸ   s      r   Ú	_reduceatzTestDUFuncMethodsBase._reduceat¹   s   € Ø×!Ñ! %¨¸hÐ!ÓGÐGr   c                 ó&   — | j                  |d«      S )Nrx   rž   )r%   r~   s     r   Ú_atzTestDUFuncMethodsBase._at¼   s   € Ø×!Ñ! %¨Ó.Ð.r   r   )	rp   rq   rr   Ú	functoolsÚcacherœ   r    r¢   r¤   r   r   r   rt   rt   “   s*   „ à‡_�_òó ðò@FòHó/r   rt   c                   óÞ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zej$                  d„ «       Zd„ Zd„ Zd„ Zd„ Zej$                  d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestDUFuncAtc                 ó    — |j                  «       }|j                  «       } |j                  |g|¢­Ž   ||g|¢­Ž  | j                  ||«       y r   )Úcopyrx   ÚassertPreciseEqual)r%   rh   r~   r|   r™   ÚexpectedÚgots          r   Ú_compare_outputzTestDUFuncAt._compare_outputÁ   sF   € Ø—6‘6“8ˆØ�f‰f‹hˆØˆ�‰�Ð!˜DÓ!Ù
ˆ3ˆ�‹Ø×Ñ ¨#Õ.r   c                 óè  ‡— t        j                  dt        ¬«      }| j                  t         j                  «      }| j                  t         j
                  «      } t        «       d„ «      Št        ˆfd„«       }| j                  |t         j                  |g d¢d«       d}| j                  t        |«      5   ||j                  «       g d¢d «       d d d «       | j                  |t         j
                  |j                  «       g d¢«       t        j                  g d	¢«      }| j                  |t         j                  |j                  «       g d¢|«       d
}| j                  t        |«      5   ||j                  «       g d¢g d¢«       d d d «       | j                  t        «      5   ||j                  «       g d¢ddgdg«       d d d «       y # 1 sw Y   ŒÿxY w# 1 sw Y   ŒRxY w# 1 sw Y   y xY w)Nr*   ©r“   c                 ó,   — t        j                  | «      S r   ©r2   Únegative©r|   s    r   r   z8TestDUFuncAt.test_numpy_ufunc_at_basic.<locals>.<lambda>Ñ   s   € ¬R¯[©[¸«^€ r   c                 ó*   •— ‰j                  | ||«      S r   r˜   )r|   r’   r}   Únegative_vecs      €r   Únegative_jit_2z>TestDUFuncAt.test_numpy_ufunc_at_basic.<locals>.negative_jit_2Ó   s   ø€ à—?‘? 1 g¨qÓ1Ð1r   ©r+   rA   r+   r)   zsecond operand needed for ufunc)r+   rA   é   ©éd   r»   r»   z+second operand provided when ufunc is unary©r)   r+   r¹   r+   )r2   ÚarangeÚintr¤   Úaddr³   r   r   r®   ÚassertRaisesRegexr   rª   r‹   r/   )r%   r|   Úadd_atÚnegative_atr·   Úerr_msgr}   r¶   s          @r   Útest_numpy_ufunc_at_basicz&TestDUFuncAt.test_numpy_ufunc_at_basicÈ   s…  ø€ ô �I‰I�b¤Ô$ˆà—‘œ"Ÿ&™&Ó!ˆØ—h‘hœrŸ{™{Ó+ˆà"”y“{Ñ#;Ó<ˆä	ó	2ó 
ð	2ð 	×Ñ˜V¤R§V¡V¨Q²	¸1Ô=ð 4ˆØ×#Ñ#¤K°Ó9ñ 	.Ù�1—6‘6“8šY¨Ô-÷	.ð 	×Ñ˜[¬"¯+©+°q·v±v³xÂÔKä�H‰H’_Ó%ˆØ×Ñ˜V¤R§V¡V¨Q¯V©V«X²yÀ!ÔDð @ˆØ×#Ñ#¤K°Ó9ñ 	;Ù˜1Ÿ6™6›8¢Y²	Ô:÷	;ð ×Ñœ{Ó+ñ 	5Ù�1—6‘6“8šY¨!¨Q¨°¨Ô4÷	5ð 	5÷	.ð 	.ú÷	;ð 	;ú÷	5ð 	5ús$   Â7GÅ.GÆ(G(ÇGÇG%Ç(G1c           
      ó|  — t         j                  d   }t         j                  t         j                  t         j                  f}|D �]R  }	 t        t        j                  |«      «       |D �]*  }t        j                  d|¬«      }t        j                  t        j                  dt         j                  ¬«      t        j                  ddt         j                  ¬«      g«      }|j                  j                  d«      }| j                  |«      } ||||«       t        j                  |«      }	|t         j                  u rdx|	d	<   |	d<   Œá|	d	xx   d|t         j                  u r|n| z  z  cc<   |	dxx   d|t         j                  u r|n| z  z  cc<   �Œ- �ŒU | j                  	«       y # t        $ r Y �Œuw xY w)
NÚComplexr*   r°   é   é   é   y              ð?éÿÿÿÿr)   )r2   Ú	typecodesr¿   ÚsubtractÚmultiplyr   r“   r   ÚonesÚconcatenateÚintpÚfullÚtyper¤   Ú	ones_liker«   )
r%   rË   ÚufuncsÚtypecoder~   r|   ÚindxÚvalueÚufunc_atr¬   s
             r   Útest_ufunc_at_inner_loopz%TestDUFuncAt.test_ufunc_at_inner_loopì   sj  € Ü—L‘L Ñ+ˆ	Ü—&‘&œ"Ÿ+™+¤r§{¡{Ð3ˆØ!ó 	OˆHðÜœ2Ÿ8™8 HÓ-Ô.ð  ó O�Ü—G‘G˜B hÔ/�Ü—~‘~¤r§w¡w¨q¼¿¹Ô'@Ü')§w¡w¨r°1¼B¿G¹GÔ'Dð'Fó G�àŸ™Ÿ™ RÓ(�ØŸ8™8 E›?�Ù˜˜D %Ô(ÜŸ<™<¨›?�ØœBŸK™KÑ'Ø02Ð2�H˜Q‘K (¨1¢+à˜Q“K 1°¼"¿&¹&±©ÀuÀfÑ#MÑM“KØ˜Q“K 2°%¼2¿6¹6±/©ÈÀvÑ#NÑN•KòOð	Oð* 	×Ñ  8Õ,øô# ,ò Úðús   Á
F.Æ.	F;Æ:F;c           
      ó  — t        j                  dt        ¬«      }| j                  t         j                  «      }| j                  |t         j                  |t        d «      t        j                  dt        ¬«      «       y )NrA   r°   )r2   rB   r¾   r¤   r¿   r®   ÚslicerÎ   ©r%   ÚarrrÁ   s      r   Útest_ufunc_at_ellipsisz#TestDUFuncAt.test_ufunc_at_ellipsis  sR   € ô �h‰h�q¤Ô$ˆØ—‘œ"Ÿ&™&Ó!ˆØ×Ñ˜V¤R§V¡V¨S´%¸³+ÜŸW™W Q¬cÔ2õ	4r   c                 ó   — t        j                  dt         j                  ¬«      }t        j                  d«      }| j	                  t         j
                  «      } |||«       t        j                  |g d¢k(  «      sJ ‚y )NrA   r°   )rÊ   rÊ   rÊ   rÊ   rÊ   )r2   rÎ   Úint32r½   r¤   r³   Úall)r%   rÝ   rÖ   rx   s       r   Útest_ufunc_at_negativez#TestDUFuncAt.test_ufunc_at_negative  sV   € Ü�g‰g�aœrŸx™xÔ(ˆÜ�y‰y˜‹|ˆØ�X‰X”b—k‘kÓ"ˆÙ
ˆ3�ŒÜ�v‰v�cÒ1Ñ1Ô2Ð2Ñ2r   c                 óZ  — t        j                  dt         j                  ¬«      }t        j                  dt        ¬«      }d|d<   d|d<   d|dd  t        j                  dt        ¬«      }| j	                  t         j
                  «      } ||||«       |d   |j                  «       k(  sJ ‚y )	Ni   r°   r*   r   rA   r)   r»   i    )r2   rB   Úint16Úfloatr¤   r¿   Úsum)r%   r’   r}   r|   rÁ   s        r   Útest_ufunc_at_largez TestDUFuncAt.test_ufunc_at_large  s‡   € ä—(‘(˜4¤r§x¡xÔ0ˆÜ�H‰H�T¤Ô'ˆØˆˆ!‰Øˆˆ!‰Øˆˆ$ˆ%ˆÜ�H‰H�QœeÔ$ˆØ—‘œ"Ÿ&™&Ó!ˆÙˆq�'˜1ÔØ�‰t�q—u‘u“wŠÐ‰r   c                 ó,  — t        j                  d«      }t        j                  d«      }| j                  t         j                  «      }t        j                  t        |«      t         j                  ¬«      } ||||«       |d   t        |«      k(  sJ ‚y )Nr*   i † r°   r   )r2   rB   rÎ   r¤   r¿   r]   Úuint8)r%   rÝ   ÚvaluesrÁ   Úindexs        r   Útest_cast_index_fastpathz%TestDUFuncAt.test_cast_index_fastpath!  sh   € Ü�h‰h�r‹lˆÜ—‘˜“ˆØ—‘œ"Ÿ&™&Ó!ˆä—‘œ˜V›¬B¯H©HÔ5ˆÙˆs�E˜6Ô"Ø�1‰vœ˜V›Ò$Ð$Ñ$r   c           	      óÌ  — t        j                  d«      t        j                  d«      t        j                  d«      df}|D ]   }t        j                  d«      }t        j                  t        j
                  d«      d«      }| j                  t         j                  «      } ||||«       t         j                  j                  |t        j                  |d|z  «      «       Œ¢ y )Nr)   r   rR   iè  r+   )r2   rÎ   Úfloat64rB   Úrepeatr½   r¤   r¿   rC   rD   Ú	full_like)r%   rê   r×   rÝ   rë   rÁ   s         r   Ú#test_ufunc_at_scalar_value_fastpathz0TestDUFuncAt.test_ufunc_at_scalar_value_fastpath*  sŸ   € Ü—'‘'˜!“*œbŸg™g b›k¬2¯:©:°b«>¸2Ð>ˆØò 	MˆEÜ—(‘(˜4“.ˆCä—I‘IœbŸi™i¨›o¨qÓ1ˆEØ—X‘XœbŸf™fÓ%ˆFÙ�3˜˜uÔ%Ü�J‰J×)Ñ)¨#¬r¯|©|¸CÀÀUÁÓ/KÕLñ	Mr   c                 óx	  — t        j                  d«      j                  dd«      }t        j                  g d¢g d¢g d¢g«      }| j	                  t         j
                  «      } ||t        d «      t        j                  g d¢«      f|«       | j                  |t        j                  g d¢g d¢g d	¢g«      «       t        j                  d
«      j                  ddd«      }t        j                  g d¢«      } ||t        d «      t        d «      t        j                  g d¢«      f|«       | j                  |t        j                  g d¢g d¢g d¢gg d¢g d¢g d¢gg d¢g d¢g d¢gg«      «       t        j                  d«      j                  dd«      }t        j                  g d¢g d¢g d¢g«      } ||t        j                  g d¢«      t        d «      f|«       | j                  |t        j                  g d¢g d¢g d¢g«      «       t        j                  d
«      j                  ddd«      }t        j                  g d¢«      } ||t        d «      t        j                  g d¢«      t        d «      f|«       | j                  |t        j                  g d¢g d¢g d¢gg d¢g d¢g d¢gg d¢g d¢g d¢gg«      «       t        j                  d«      j                  dd«      }t        j                  g d¢«      } ||dt        j                  g d¢«      f|«       | j                  |t        j                  g d¢g d ¢g d!¢g«      «       t        j                  d
«      j                  ddd«      }t        j                  g d¢«      } ||t        j                  g d¢«      dt        d «      f|«       | j                  |t        j                  g d¢g d ¢g d!¢gg d"¢g d#¢g d$¢gg d%¢g d&¢g d'¢gg«      «       t        j                  d
«      j                  ddd«      }t        j                  g d¢«      }| j	                  t         j
                  «      } ||t        d «      t        d «      t        d «      f|«       | j                  |t        j                  g d(¢g d)¢g d¢gg d*¢g d+¢g d¢gg d%¢g d,¢g d¢gg«      «       y )-Né	   r¹   rº   )éÈ   rô   rô   )é,  rõ   rõ   ©r)   r+   r)   )r   éÉ   éf   )r¹   é”  éÍ   )rÇ   i_  é4  é   )r»   rô   rõ   )r   i‘  éÊ   )rÇ   i—  éÐ   )ró   éš  éÓ   )é   é�  éÖ   )é   i   éÙ   )rÈ   i£  éÜ   )é   é¦  éß   )é   i©  éâ   ©r   r)   r+   )i“  rù   i•  )éÎ   éÏ   rþ   )éË   rù   i]  )éj   r  rû   )ró   r*   é   )éÔ   r  if  )és   éØ   i=  )rÈ   é   r?   )éÝ   r  io  )é|   éá   iF  r   ©r¹   rÉ   rA   )rÇ   é   é   )éÑ   rÿ   ic  )r  é   é   )r  é   é   )év   éÛ   i@  )r  é   é   )r
  é   é   )r»   r÷   i.  )ég   éÌ   i1  )ém   éÒ   i7  )ép   éÕ   i:  )éy   éÞ   iC  )	r2   r½   rE   r‹   r¤   r¿   rÛ   Úasarrayr«   )r%   r|   r}   rÁ   s       r   Útest_ufunc_at_multiDz!TestDUFuncAt.test_ufunc_at_multiD4  sä  € Ü�I‰I�a‹L× Ñ   AÓ&ˆÜ�H‰H’o¢ºÐHÓIˆØ—‘œ"Ÿ&™&Ó!ˆÙˆq”5˜“;¤§
¡
ª9Ó 5Ð6¸Ô:Ø×Ñ ¤2§8¡8ÚšMª=Ð9ó$;ô 	<ô �I‰I�b‹M×!Ñ! ! Q¨Ó*ˆÜ�H‰H’_Ó%ˆÙˆq”5˜“;¤ d£¬R¯Z©Zº	Ó-BÐCÀQÔGØ×Ñ ¤2§8¡8Ú"/Ú"/Ú"/ð"1ò #0Ú"0Ú"0ð"2ò #1Ú"0Ú"0ð"2ð
!3ó$4ô 	5ô �I‰I�a‹L× Ñ   AÓ&ˆÜ�H‰H’o¢ºÐHÓIˆÙˆq”2—:‘:šiÓ(¬%°«+Ð6¸Ô:Ø×Ñ ¤2§:¡:ÚšªÐ9ó$;ô 	<ô �I‰I�b‹M×!Ñ! ! Q¨Ó*ˆÜ�H‰H’_Ó%ˆÙˆq”5˜“;¤§
¡
ª9Ó 5´u¸T³{ÐCÀQÔGØ×Ñ ¤2§:¡:Ú"-Ú"1Ú"1ð"3ò #/Ú"1Ú"1ð"3ò #/Ú"1Ú"1ð"3ð
!4ó$5ô 	6ô �I‰I�a‹L× Ñ   AÓ&ˆÜ�H‰H’_Ó%ˆÙˆq�1”b—j‘j¢Ó+Ð,¨aÔ0Ø×Ñ ¤2§:¡:ÚšI¢yÐ1ó$3ô 	4ô �I‰I�b‹M×!Ñ! ! Q¨Ó*ˆÜ�H‰H’_Ó%ˆÙˆq”2—:‘:šiÓ(¨!¬U°4«[Ð9¸1Ô=Ø×Ñ ¤2§:¡:Ú"-Ú"-Ú"-ð"/ò #2Ú"/Ú"/ð"1ò #2Ú"/Ú"/ð"1ð
!2ó$3ô 	4ô �I‰I�b‹M×!Ñ! ! Q¨Ó*ˆÜ�H‰H’_Ó%ˆØ—‘œ"Ÿ&™&Ó!ˆÙˆq”5˜“;¤ d£¬U°4«[Ð9¸1Ô=Ø×Ñ ¤2§:¡:Ú"1Ú"1Ú"1ð"3ò #2Ú"1Ú"1ð"3ò #2Ú"1Ú"1ð"3ð
!4ó$5õ 	6r   c                 ó&  — t        j                  d«      }| j                  t         j                  «      } ||dd«       | j	                  |t        j                  d«      «       | j                  t        «      5   ||dd«       d d d «       t        j                  d«      } ||dd«       | j	                  |t        j                  g d¢«      «       | j                  t        «      5   ||g d«       d d d «       y # 1 sw Y   ŒxxY w# 1 sw Y   y xY w)Nr   r   r)   r¹   )r)   r)   r+   )	r2   r‹   r¤   r¿   r«   r/   r   r½   r0   )r%   r|   rÁ   r}   s       r   Útest_ufunc_at_0DzTestDUFuncAt.test_ufunc_at_0D‰  sÜ   € Ü�H‰H�Q‹KˆØ—‘œ"Ÿ&™&Ó!ˆÙˆq�"�aÔØ×Ñ ¤2§8¡8¨A£;Ô/à×Ñœ{Ó+ñ 	Ù�1�a˜ŒO÷	ô �I‰I�a‹LˆÙˆq�!�QŒØ×Ñ ¤2§8¡8ªIÓ#6Ô7ð ×ÑœzÓ*ñ 	Ù�1�b˜!Ô÷	ð 	÷	ð 	ú÷	ð 	ús   Á9C;Ã'DÃ;DÄDc                 óÒ   — t        j                  d«      }| j                  t         j                  «      } ||g d¢d«       | j	                  |t        j
                  g d¢«      «       y )Nr*   )r)   r+   r¹   r+   g      @)
r   r)   i>  é.   rÉ   rA   rÇ   r  r  ró   )r2   r½   r¤   Úpowerr«   r‹   )r%   r|   Úpower_ats      r   Útest_ufunc_at_dtypesz!TestDUFuncAt.test_ufunc_at_dtypes›  sG   € ä�I‰I�b‹MˆØ—8‘8œBŸH™HÓ%ˆÙ�’L #Ô&Ø×Ñ ¤2§8¡8Ò,NÓ#OÕPr   c                 óâ   — t        j                  d«      }|dz  dk(  }| j                  t         j                  «      } |||g d¢«       | j	                  |t        j
                  g d¢«      «       y )Nr*   r+   r   )r   r+   rÉ   rÇ   r  )
r)   r)   r)   r¹   r)   rA   r)   r  r)   ró   )r2   r½   r¤   Úequalr«   r‹   )r%   r|   rë   Úequal_ats       r   Útest_ufunc_at_booleanz"TestDUFuncAt.test_ufunc_at_boolean¢  sT   € ä�I‰I�b‹MˆØ�A‘˜‘
ˆØ—8‘8œBŸH™HÓ%ˆá��Eš?Ô+Ø×Ñ ¤2§8¡8Ò,JÓ#KÕLr   c                 óô   — t        j                  dd¬«      }| j                  t         j                  «      } ||g d¢«       | j	                  |t        j
                  g d¢t         j                  ¬«      «       y )Nr*   Úu4r°   r¸   )
r   r)   r+   r¹   rÉ   l   úÿ rÇ   r  r  ró   )r2   r½   r¤   Úinvertr«   r‹   Úuint32)r%   r|   Ú	invert_ats      r   Útest_ufunc_at_boolean2z#TestDUFuncAt.test_ufunc_at_boolean2«  sW   € ä�I‰I�b Ô%ˆØ—H‘HœRŸY™YÓ'ˆ	Ù�!’YÔØ×Ñ ¤2§8¡8ò -6Ü=?¿Y¹Yô$Hõ 	Ir   c                 óò   — t        j                  d«      }|d d …d f   d d …dd…f   }| j                  t         j                  «      } ||ddgd«       | j	                  |t        j                  d«      «       y )NrÉ   r   r)   r¹   )r2   r½   r¤   r¿   r«   )r%   Úorigr|   rÁ   s       r   Útest_ufunc_at_advancedz#TestDUFuncAt.test_ufunc_at_advanced³  sc   € ä�y‰y˜‹|ˆØ’�D�‰Mš!˜Q˜q˜S˜&Ñ!ˆØ—‘œ"Ÿ&™&Ó!ˆÙˆq�1�a�&˜!ÔØ×Ñ ¤b§i¡i°£lÕ3r   c                 ób  — t        j                  g d¢t        j                  d«      j                  «       «      }t        j                  g d¢t        j                  d«      j                  «       «      }| j	                  t         j
                  «      } |||d«       | j                  |g d¢«       y )Nrö   Úi©r)   r+   r¹   rÉ   Úfr¹   )r)   r  rÇ   rÉ   )r2   r‹   r“   Únewbyteorderr¤   r¿   r«   )r%   rë   rê   rÁ   s       r   Útest_ufunc_at_advanced_2z%TestDUFuncAt.test_ufunc_at_advanced_2»  st   € ô —‘š¤B§H¡H¨S£M×$>Ñ$>Ó$@ÓAˆÜ—‘š,¬¯©°«×(BÑ(BÓ(DÓEˆØ—‘œ"Ÿ&™&Ó!ˆÙˆv�u˜aÔ Ø×Ñ ªÕ5r   c                 óB  — t        j                  ddgt        ¬«      }| j                  t         j                  «      }| j                  t        «      5   ||ddgd«       d d d «       | j                  |t        j                  ddgt        ¬«      «       y # 1 sw Y   Œ7xY w)Nr|   r)   r°   r   )r2   r‹   Úobjectr¤   r¿   r/   r   r«   )r%   rê   rÁ   s      r   Útest_ufunc_at_advanced_3z%TestDUFuncAt.test_ufunc_at_advanced_3Ä  sz   € ä—‘˜3 ˜(¬&Ô1ˆØ—‘œ"Ÿ&™&Ó!ˆØ×Ñœ{Ó+ñ 	&Ù�6˜A˜q˜6 1Ô%÷	&à×Ñ ¬¯©°#°q°ÄÔ(HÕI÷	&ð 	&ús   ÁBÂBc                 óÐ   — | j                  t        j                  «      }| j                  t        «      5   |t        j
                  d«      dg«       d d d «       y # 1 sw Y   y xY w)Nr*   r)   )r¤   r2   Úmodfr/   r   r½   )r%   Úmodf_ats     r   Útest_ufunc_at_advanced_4z%TestDUFuncAt.test_ufunc_at_advanced_4Ì  sK   € à—(‘(œ2Ÿ7™7Ó#ˆà×Ñœ{Ó+ñ 	(Ù”B—I‘I˜b“M A 3Ô'÷	(÷ 	(ñ 	(ús   µAÁA%c                 óÔ   — | j                  t        j                  «      }t        j                  g d¢«      } ||dgd«       | j	                  |t        j                  g d¢«      «       y )Nr¼   r   )r¤   r2   Úmaximumr‹   r«   )r%   Ú
maximum_atr|   s      r   Útest_ufunc_at_advanced_5z%TestDUFuncAt.test_ufunc_at_advanced_5Ó  sI   € à—X‘XœbŸj™jÓ)ˆ
Ü�H‰H’YÓˆÙ�1�q�c˜1ÔØ×Ñ ¤2§8¡8ªIÓ#6Õ7r   c                 ó„  — t         j                  d   t         j                  d   z   }t         j                  t         j                  t         j                  t         j
                  t         j                  f}|D �]6  }|dv rŒ		 t        t        j                  |«      «       |D �]	  }t        j                  dd«      j                  |«      }t        j                  g d¢«      j                  t         j                  «      }t        j                  g d¢|j                  ¬«      }|j                  «       }t        ||«      D ]  \  }	}
 |||	   |
«      ||	<   Œ | j!                  |«      } ||||«       t         j"                  j%                  ||«       t        j&                  |g d¢k(  «      r�Œ
J ‚ �Œ9 y # t        $ r Y �ŒGw xY w)	NÚ
AllIntegerÚFloat)Úer   r*   )rÊ   r)   rÊ   r+   )r)   rA   r+   r*   r°   )r2   rË   r¿   rÌ   ÚdivideÚminimumrS  r   r“   r   r½   Úastyper‹   rÐ   rª   Úzipr¤   rC   rD   rá   )r%   ÚdtypesrÔ   r“   r~   r|   ÚindxsÚvalsr¬   rF  ÚvrØ   s               r   Útest_ufunc_at_negative_indexesz+TestDUFuncAt.test_ufunc_at_negative_indexesÚ  s`  € Ü—‘˜lÑ+¬b¯l©l¸7Ñ.CÑCˆÜ—&‘&œ"Ÿ+™+¤r§y¡y´"·*±*¼b¿j¹jÐIˆàó 	7ˆEà˜‰ØðÜœ2Ÿ8™8 E›?Ô+ð  ó 7�Ü—I‘I˜a Ó$×+Ñ+¨EÓ2�ÜŸ™¢Ó0×7Ñ7¼¿¹Ó@�Ü—x‘x¢°Q·W±WÔ=�àŸ6™6›8�Ü  tÓ,ò 8‘D�A�qÙ"'¨°©°QÓ"7�H˜Q’Kð8ð  Ÿ8™8 E›?�Ù˜˜E 4Ô(Ü—
‘
×-Ñ-¨a°Ô:Ü—v‘v˜e¢~Ñ5Ö6Ð6Ð6ò7ñ	7øô ,ò Úðús   ÂF2Æ2	F?Æ>F?c                 ó  — t        j                  d«      }t        j                  d«      }| j                  t         j                  «      }d}| j	                  t
        |«      5   ||dg|«       d d d «       y # 1 sw Y   y xY w)N)r+   r+   r+   )r)   r+   r+   z1does not support ufunc with non-trivial signaturer   )r2   rÎ   r¤   ÚmatmulrÀ   r   )r%   r|   r}   Ú	matmul_atrÃ   s        r   Ú test_ufunc_at_not_none_signaturez-TestDUFuncAt.test_ufunc_at_not_none_signatureö  sj   € ô �G‰G�IÓˆÜ�G‰G�IÓˆà—H‘HœRŸY™YÓ'ˆ	ØEˆØ×#Ñ#¤K°Ó9ñ 	!Ù�a˜!˜˜aÔ ÷	!÷ 	!ñ 	!ús   Á"A7Á7B c                 óè   — t        j                  dt        ¬«      }| j                  t         j                  «      }| j                  t        «      5   ||ddgddg«       d d d «       y # 1 sw Y   y xY w)Nr*   r°   r   r)   )r2   rÎ   Ústrr¤   r¿   r/   r   rÜ   s      r   Útest_ufunc_at_no_loop_for_opz)TestDUFuncAt.test_ufunc_at_no_loop_for_op  s[   € ä�g‰g�b¤Ô$ˆØ—‘œ"Ÿ&™&Ó!ˆà×Ñœ{Ó+ñ 	(Ù�3˜˜A˜  A Ô'÷	(÷ 	(ñ 	(ús   ÁA(Á(A1c                 óš   — t        j                  dg«      }| j                  t         j                  «      } ||dgdg«       |d   dk(  sJ ‚y )NrÊ   r   )r2   r‹   r¤   r9  )r%   rÝ   r:  s      r   Útest_ufunc_at_output_castingz)TestDUFuncAt.test_ufunc_at_output_casting  sC   € Ü�h‰h˜�t‹nˆØ—8‘8œBŸH™HÓ%ˆÙ��q�c˜A˜3ÔØ�1‰v˜Š{Ð‰{r   c                 óâ   — t        j                  d«      }| j                  t         j                  «      }d}| j	                  t
        |«      5   ||ddgg d¢«       d d d «       y # 1 sw Y   y xY w)NrA   z=operands could not be broadcast together with remapped shapesr   r)   r¼   )r2   r½   r¤   r¿   rÀ   r0   )r%   rÝ   rÁ   Úmsgs       r   Útest_ufunc_at_broadcast_failurez,TestDUFuncAt.test_ufunc_at_broadcast_failure  s^   € Ü�i‰i˜‹lˆØ—‘œ"Ÿ&™&Ó!ˆð NˆØ×#Ñ#¤J°Ó4ñ 	+Ù�3˜˜A˜¢	Ô*÷	+÷ 	+ñ 	+ús   ÁA%Á%A.c                 ó  — t        j                  d«      }t        d„ «       }| j                  t	        |j
                  «      d«       |j                  |ddg«       | j                  t	        |j
                  «      d«       y )NrA   c                 ó   — | dz   S )Nr)   r   )Úxs    r   Úincz/TestDUFuncAt.test_ufunc_at_dynamic.<locals>.inc  s   € à�q‘5ˆLr   r   r)   r¹   )r2   r½   r   r8   r]   r[   rx   ÚassertGreater)r%   rÝ   rr  s      r   Útest_ufunc_at_dynamicz"TestDUFuncAt.test_ufunc_at_dynamic  sg   € Ü�i‰i˜‹lˆä	ñ	ó 
ð	ð 	×Ñœ˜SŸY™Y›¨Ô+ð 	�‰ˆs�Q˜�FÔà×Ñœ3˜sŸy™y›>¨1Õ-r   c                 ó”  — t        j                  d«      }| j                  t         j                  «      }t	        j
                  d¬«      5 }t	        j                  dt        «        ||ddgd«       d d d «       | j                  t        «      d«       | j                  dt        |d   j                  «      «       y # 1 sw Y   ŒMxY w)	NrA   T)ÚrecordÚalwaysr   r¹   r*   z ufunc.at feature is experimental)r2   r½   r¤   r¿   ÚwarningsÚcatch_warningsÚsimplefilterr	   rs  r]   ÚassertInrh  Úmessage)r%   rÝ   rÁ   Úws       r   Ú"test_ufunc_at_experimental_warningz/TestDUFuncAt.test_ufunc_at_experimental_warning)  s™   € Ü�i‰i˜‹lˆØ—‘œ"Ÿ&™&Ó!ˆä×$Ñ$¨DÔ1ð 	$°QÜ×!Ñ! (Ô,KÔLá�3˜˜A˜ Ô#÷	$ð
 	×Ñœ3˜q›6 1Ô%Ø�‰Ð8¼#¸aÀ¹d¿l¹lÓ:KÕL÷	$ð 	$ús   Á'B>Â>CN)rp   rq   rr   r®   rÄ   rÙ   rÞ   râ   rç   rì   rñ   r0  r2  r7  r;  rA  rD  ÚunittestÚexpectedFailurerJ  rM  rQ  rU  rb  rf  ri  rk  rn  rt  r~  r   r   r   r¨   r¨   À   s²   „ ò/ò"5òH-ò44ò3ò
ò%òMòS6òjò$QòMòIò4ð ×Ññ6ó ð6òJò(ò8ò7ð8 ×Ññ!ó ð!ò(òò+ò.ó
Mr   r¨   c                   ót   — e Zd Zdd„Zej
                  d„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚTestDUFuncReduceNumPyTestsNc                 óœ   ‡‡— ‰j                   dk(  r t        |¬«      ˆfd„«      Šn t        |¬«      ˆfd„«      Št        dˆfd„	«       }|S )Nr+   ry   c                 ó   •—  ‰| |«      S r   r   r{   s     €r   r   z:TestDUFuncReduceNumPyTests._generate_jit.<locals>.<lambda><  r�   r   c                 ó   •—  ‰| «      S r   r   r‚   s    €r   r   z:TestDUFuncReduceNumPyTests._generate_jit.<locals>.<lambda>>  s   ø€ ¹¸q»€ r   c                 ó,   •— ‰j                  | ||¬«      S r…   r‰   rŠ   s      €r   rh   z4TestDUFuncReduceNumPyTests._generate_jit.<locals>.fn@  s   ø€ à—:‘:˜e¨$¸�:Ó@Ð@r   rš   )rW   r   r   )r%   r~   r\   rh   rŒ   s    `  @r   rœ   z(TestDUFuncReduceNumPyTests._generate_jit:  sK   ù€ Ø�9‰9˜Š>Ø.”) XÔ.Ó/GÓH‰Cà.”) XÔ.Ó/AÓBˆCä	ô	Aó 
ð	Aàˆ	r   c                 ó´   — | j                  t        j                  «      }t        j                  j                  d«      } |d«      }| j	                  ||«       y )Nr¹   )rœ   r2   r5  rv   r«   )r%   Úpower_reducer¬   r­   s       r   Útest_numpy_scalar_reductionz6TestDUFuncReduceNumPyTests.test_numpy_scalar_reductionE  sC   € ð ×)Ñ)¬"¯(©(Ó3ˆÜ—8‘8—?‘? 1Ó%ˆÙ˜1‹oˆØ×Ñ ¨#Õ.r   c                 óZ  — d„ }| j                  t        j                  d¬«      }d|d<   d|d<    | ||d ¬«      d«        | ||d	¬«      g d
¢«        | ||d¬«      g d¢«        | ||d¬«      ddg«        | ||d¬«      g d
¢g d¢g d¢g«        | ||d¬«      g d¢g d
¢g«        | ||d¬«      g d¢g d¢g«        | ||d¬«      |«       d|d<   d|d<    | ||d ¬«      d«        | ||d	¬«      g d
¢«        | ||d¬«      g d¢«        | ||d¬«      ddg«        | ||d¬«      g d¢g d
¢g d¢g«        | ||d¬«      g d
¢g d¢g«        | ||d¬«      g d¢g d¢g«        | ||d¬«      |«       d|d<   d|d<    | ||d ¬«      d«        | ||d	¬«      g d¢«        | ||d¬«      g d¢«        | ||d¬«      ddg«        | ||d¬«      g d¢g d¢g d¢g«        | ||d¬«      g d¢g d¢g«        | ||d¬«      g d¢g d¢g«        | ||d¬«      |«       y )Nc                 óD   — t         j                  j                  | |«       y r   )r2   rC   Úassert_equal)r|   r}   s     r   Úcompare_outputzOTestDUFuncReduceNumPyTests.check_identityless_reduction.<locals>.compare_outputN  s   € ô �J‰J×#Ñ# A qÕ)r   Úreorderablery   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œ   r2   r[  )r%   r|   r�  Úminimum_reduces       r   Úcheck_identityless_reductionz7TestDUFuncReduceNumPyTests.check_identityless_reductionM  sO  € ò	*ð ×+Ñ+¬B¯J©JÀÐ+ÓOˆð
 ˆˆ#‰Øˆˆ'‰
Ù‘~ a¨dÔ3°QÔ7Ù‘~ a¨fÔ5²|ÔDÙ‘~ a¨fÔ5²yÔAÙ‘~ a¨fÔ5¸¸1°vÔ>Ù‘~ a¨aÔ0Ú$¢l²LÐAô	Cá‘~ a¨aÔ0Ú$¢lÐ3ô	5á‘~ a¨aÔ0Ú!¢9Ð-ô	/á‘~ a¨bÔ1°1Ô5àˆˆ#‰Øˆˆ'‰
Ù‘~ a¨dÔ3°QÔ7Ù‘~ a¨fÔ5²|ÔDÙ‘~ a¨fÔ5²yÔAÙ‘~ a¨fÔ5¸¸1°vÔ>Ù‘~ a¨aÔ0Ú$¢l²LÐAô	Cá‘~ a¨aÔ0Ú$¢lÐ3ô	5á‘~ a¨aÔ0Ú!¢9Ð-ô	/á‘~ a¨bÔ1°1Ô5àˆˆ#‰Øˆˆ'‰
Ù‘~ a¨dÔ3°QÔ7Ù‘~ a¨fÔ5²|ÔDÙ‘~ a¨fÔ5²yÔAÙ‘~ a¨fÔ5¸¸1°vÔ>Ù‘~ a¨aÔ0Ú$¢l²LÐAô	Cá‘~ a¨aÔ0Ú$¢lÐ3ô	5á‘~ a¨aÔ0Ú!¢9Ð-ô	/á‘~ a¨bÔ1°1Õ5r   c                 óT   — t        j                  dd¬«      }| j                  |«       y )N©r+   r¹   rÉ   ÚC©Úorder©r2   Úemptyr•  ©r%   r|   s     r   Ú(test_numpy_identityless_reduction_corderzCTestDUFuncReduceNumPyTests.test_numpy_identityless_reduction_corder„  ó    € Ü�H‰H�Y cÔ*ˆØ×)Ñ)¨!Õ,r   c                 óT   — t        j                  dd¬«      }| j                  |«       y )Nr—  ÚFr™  r›  r�  s     r   Ú(test_numpy_identityless_reduction_forderzCTestDUFuncReduceNumPyTests.test_numpy_identityless_reduction_forderˆ  rŸ  r   c                 ót   — t        j                  dd¬«      j                  dd«      }| j                  |«       y )N)r+   rÉ   r¹   r˜  r™  r)   r+   ©r2   rœ  Úswapaxesr•  r�  s     r   Ú,test_numpy_identityless_reduction_otherorderzGTestDUFuncReduceNumPyTests.test_numpy_identityless_reduction_otherorderŒ  s-   € Ü�H‰H�Y cÔ*×3Ñ3°A°qÓ9ˆØ×)Ñ)¨!Õ,r   c                 ó�   — t        j                  dd¬«      j                  dd«      }|dd …dd …dd …f   }| j                  |«       y )N)r¹   rA   rÉ   r˜  r™  r)   r+   r¤  r�  s     r   Ú+test_numpy_identityless_reduction_noncontigzFTestDUFuncReduceNumPyTests.test_numpy_identityless_reduction_noncontig�  sB   € Ü�H‰H�Y cÔ*×3Ñ3°A°qÓ9ˆØˆa‰b�!‘"�a‘bˆj‰MˆØ×)Ñ)¨!Õ,r   c                 ó¼   — t        j                  dd¬«      }|dd  j                  d¬«      }|j                  d«      }|dd …dd …dd …f   }| j	                  |«       y )N)iá  Úi1r°   r)   Úf8r  )r2   rœ  ÚviewrE   r•  r�  s     r   Ú5test_numpy_identityless_reduction_noncontig_unalignedzPTestDUFuncReduceNumPyTests.test_numpy_identityless_reduction_noncontig_unaligned•  sZ   € Ü�H‰HÐ)°Ô6ˆØˆaˆbˆE�J‰J˜TˆJÓ"ˆØ�I‰I�iÓ ˆØˆa‰b�!‘"�a‘bˆj‰MˆØ×)Ñ)¨!Õ,r   c                 óV  — | j                  t        j                  «      }| j                  t        j                  «      }| j                  t        j                  «      }| j                   |t        j                  g «      d¬«      d«       | j                   |t        j                  g «      t        j                  ¬«      t        j                  «       | j                   |t        j                  g «      t        j                   ¬«      t        j                   «       | j                   |t        j                  dg«      d¬«      d«       | j                   |t        j                  dg«      d¬«      d«       | j                   |t        j                  dg«      d¬«      d«       | j                   |t        j                  dg«      d¬«      d«       d}||fD ]>  }| j                  t        |«      5   |t        j                  g «      d ¬«       d d d «       Œ@ y # 1 sw Y   ŒKxY w)Nr   ©rˆ   g        rA   rÉ   ú&zero-size array to reduction operation)
rœ   r2   r¿   r[  rS  r«   r/  ÚinfrÀ   r0   )r%   Ú
add_reduceÚ
min_reduceÚ
max_reducerm  Úfuncs         r   Útest_numpy_initial_reductionz7TestDUFuncReduceNumPyTests.test_numpy_initial_reductionœ  s–  € à×'Ñ'¬¯©Ó/ˆ
Ø×'Ñ'¬¯
©
Ó3ˆ
Ø×'Ñ'¬¯
©
Ó3ˆ
ð 	×Ñ¡
¬2¯:©:°b«>À1Ô EÀsÔKð 	×Ñ¡
¬2¯:©:°b«>Ä2Ç6Á6Ô JÜ "§¡ô	(à×Ñ¡
¬2¯:©:°b«>ÄBÇFÁFÀ7Ô KÜ!#§¡ ô	)ð 	×Ñ¡
¬2¯:©:°q°c«?ÀAÔ FÈÔJØ×Ñ¡
¬2¯:©:°q°c«?ÀAÔ FÈÔJØ×Ñ¡
¬2¯:©:°q°c«?ÀAÔ FÈÔJØ×Ñ¡
¬2¯:©:°q°c«?ÀAÔ FÈÔJð 7ˆØ Ð,ò 	3ˆDØ×'Ñ'¬
°CÓ8ñ 3Ù”R—Z‘Z “^¨TÕ2÷3ð 3ñ	3÷3ð 3ús   Ç6HÈH(	c                 óž  — t        j                  d«      }| j                  t         j                  «      }t         j                  j	                  |d¬«      } ||d¬«      }| j                  ||«       | j                  |j                  d«       d}| j                  t        |«      5   ||d¬«       d d d «       t        j                  d«      }| j                  t        |«      5   ||d¬«       d d d «       t         j                  j	                  |dd¬«      } ||dd¬«      }| j                  ||«       y # 1 sw Y   Œ‡xY w# 1 sw Y   ŒUxY w)	N)r   rA   r)   r�  )r   r°  r   )r   r   rA   r†   )	r2   rB   rœ   Útrue_dividerv   r«   ÚshaperÀ   r0   )r%   rÝ   Útrue_divide_reducer¬   r­   rm  s         r   Ú'test_numpy_empty_reduction_and_identityzBTestDUFuncReduceNumPyTests.test_numpy_empty_reduction_and_identity¹  s   € Ü�h‰h�vÓˆØ!×/Ñ/´·±Ó?Ðô —>‘>×(Ñ(¨°1Ð(Ó5ˆÙ  ¨1Ô-ˆØ×Ñ ¨#Ô.Ø×Ñ §	¡	¨4Ô0ð 7ˆØ×#Ñ#¤J°Ó4ñ 	,Ù˜s¨Õ+÷	,ô �h‰h�yÓ!ˆØ×#Ñ#¤J°Ó4ñ 	,Ù˜s¨Õ+÷	,ô —>‘>×(Ñ(¨°1¸aÐ(Ó@ˆÙ  ¨1°aÔ8ˆØ×Ñ ¨#Õ.÷	,ð 	,ú÷
	,ð 	,ús   Â&D7Ã$EÄ7E ÅEc                 ót  — t        j                  g d¢g d¢g«      }| j                  t         j                  «      } ||d¬«      }| j	                  |t        j
                  g d¢«      «        ||d¬«      }| j	                  |t        j
                  ddg«      «        ||d	¬«      }| j	                  ||«       y )
N)ç       @rS   rS   )rR   g      à?g      Ð?r   r�  )r½  g      @r½  r)   rS   r½  r   )r2   r‹   rœ   rZ  r«   r/  )r%   r|   Údivide_reduceÚress       r   Ú*test_identityless_reduction_nonreorderablezETestDUFuncReduceNumPyTests.test_identityless_reduction_nonreorderableÒ  s”   € Ü�H‰H’oÒ'7Ð8Ó9ˆà×*Ñ*¬2¯9©9Ó5ˆÙ˜A AÔ&ˆØ×Ñ ¤R§Z¡Z²Ó%@ÔAá˜A AÔ&ˆØ×Ñ ¤R§Z¡Z°°c°
Ó%;Ô<á˜A BÔ'ˆØ×Ñ  QÕ'r   c                 ó€  ‡ — d„ }ˆ fd„}d„ }‰ j                  t        j                  d¬«      }‰ j                  t        j                  j                  d «        |||dd«        |||dd«        |||dd«        |||dd«        ||g «        |t        j
                  d«      d	¬
«       ‰ j                  t        j                  d¬«      } |||dd«        |||dd«        |||dd«        |||dd«        |t        j                  g t        j                  ¬«      «        |t        j
                  d«      d	¬
«       y )Nc                 ó   —  | |i |¤Ž y r   r   )rH  r™   Úkwargss      r   Úokz<TestDUFuncReduceNumPyTests.test_reduce_zero_axis.<locals>.okð  s   € ÙˆtÐ�vÓr   c                 ój   •— ‰j                  t        «      5   | |i |¤Ž d d d «       y # 1 sw Y   y xY wr   )r/   r0   )rH  r™   rÃ  r%   s      €r   Úerrz=TestDUFuncReduceNumPyTests.test_reduce_zero_axis.<locals>.erró  s3   ø€ Ø×"Ñ"¤:Ó.ñ #Ù�4Ð"˜6Ò"÷#÷ #ñ #ús   —	)©2c                 ój  —  | |t        j                  ||f«      d¬«        | |t        j                  ||f«      d¬«        | |t        j                  |dz  |dz  |f«      d¬«        | |t        j                  |dz  ||dz  f«      d¬«        | |t        j                  ||dz  |dz  f«      d¬«        | |t        j                  |dz  ||dz  f«      d¬«        | |t        j                  |dz  |dz  |dz  |dz  |dz  f«      d¬«        | |t        j                  d	||f«      d
¬«        | |t        j                  d	||f«      d¬«        | |t        j                  |d	|f«      d¬«        | |t        j                  d	||f«      d¬«        | |t        j                  d	||f«      d¬«       y )Nr)   r�  r   r+   r’  r‘  r¹   r  r*   r�  )r2   rB   )Úexpectrµ  ÚnÚms       r   Útz;TestDUFuncReduceNumPyTests.test_reduce_zero_axis.<locals>.t÷  sŠ  € Ù�4œŸ™ 1 a &Ó)°Õ2Ù�4œŸ™ 1 a &Ó)°Õ2Ù�4œŸ™ 1¨¡6¨1°©6°1Ð"5Ó6¸QÕ?Ù�4œŸ™ 1¨¡6¨1¨a°1©fÐ"5Ó6¸QÕ?Ù�4œŸ™ 1 a¨1¡f¨a°1©fÐ"5Ó6¸VÕDÙ�4œŸ™ 1¨¡6¨1¨a°1©fÐ"5Ó6¸VÕDÙ�4œŸ™ 1¨¡6¨1°©6°1¸±6Ø#$¨¡6¨1°©6ð#3ó 4Ø:CõEñ �4œŸ™ 2 q¨! *Ó-°FÕ;Ù�4œŸ™ 2 q¨! *Ó-°FÕ;Ù�4œŸ™ 1 b¨! *Ó-°AÕ6Ù�4œŸ™ 2 q¨! *Ó-°AÕ6Ù�4œŸ™ 2 q¨! *Ó-°AÖ6r   rŽ  ry   é   r   ©r   r   r   r�  r°   )	rœ   r2   rS  r8   r\   rB   r¿   r‹   Úint64)r%   rÄ  rÆ  rË  Úmaximum_reducer²  s   `     r   Útest_reduce_zero_axisz0TestDUFuncReduceNumPyTests.test_reduce_zero_axisâ  s  ø€ ò	ô	#ò	7ð$ ×+Ñ+¬B¯J©JÀÐ+ÓOˆØ×ÑœŸ™×,Ñ,¨dÔ3Ù	ˆ"ˆn˜b "Ô%Ù	ˆ"ˆn˜a Ô$Ù	ˆ#ˆ~˜r 1Ô%Ù	ˆ#ˆ~˜q !Ô$ÙˆN˜BÔÙ”r—x‘x Ó'¨bÕ1ð ×'Ñ'¬¯©¸Ð'Ó;ˆ
Ù	ˆ"ˆj˜"˜bÔ!Ù	ˆ"ˆj˜!˜RÔ Ù	ˆ"ˆj˜"˜aÔ Ù	ˆ"ˆj˜!˜QÔÙ”2—8‘8˜B¤b§h¡hÔ/Ô0Ù”2—8‘8˜FÓ#¨"Ö-r   r   )rp   rq   rr   rœ   r  r€  r‰  r•  rž  r¢  r¦  r¨  r­  r¶  r»  rÀ  rÐ  r   r   r   r‚  r‚  6  sT   „ ó	ð ×Ññ/ó ð/ò56òn-ò-ò-ò-ò
-ò3ò:/ò2(ó 8.r   r‚  c                   óX   — e Zd Zdd„Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zy)ÚTestDUFuncReduceNc                 ó„  ‡— t         ˆfd„«       }t        j                  d«      t        j                  d«      j                  dd«      t        j                  d«      j                  ddd«      g}|D ]M  }t	        |j
                  «      D ]3  }|j                  ||||«      } |||||«      }	| j                  ||	«       Œ5 ŒO y )Nc                 ó.   •— ‰j                  | |||¬«      S )N)r‡   r“   rˆ   r‰   )r|   r‡   r“   rˆ   r~   s       €r   Úfooz+TestDUFuncReduce._check_reduce.<locals>.foo   s$   ø€ à—<‘< Ø%)Ø&+Ø(/ð  ó 1ð 1r   rA   rÉ   r+   é(   )r   r2   r½   rE   ÚrangeÚndimÚpy_funcr«   )
r%   r~   r“   rˆ   rÕ  Úinputsr‹   r‡   r¬   r­   s
    `        r   Ú_check_reducezTestDUFuncReduce._check_reduce  s¸   ø€ ä	ó	1ó 
ð	1ô �I‰I�a‹LÜ�I‰I�a‹L× Ñ   AÓ&Ü�I‰I�b‹M×!Ñ! ! Q¨Ó*ð
ˆð
 ò 	7ˆEÜ˜eŸj™jÓ)ò 7�ØŸ;™; u¨d°E¸7ÓC�Ù˜%  u¨gÓ6�Ø×'Ñ'¨°#Õ6ñ7ñ	7r   c                 óº  ‡ ‡‡‡‡‡	‡
— t         ˆˆfd„«       Š
ˆˆˆ	ˆ
ˆ fd„}d‰j                  › d�Š	t        j                  d|¬«      j	                  ddd	«      t        j                  d
|¬«      g}|D ]h  Št        d‰j                  dz   «      D ]:  }t        j                  t        ‰j                  «      |¬«      D ]  Š |‰‰«       Œ Œ< dD ]  Š |‰‰«       Œ Œj y )Nc                 ó,   •— ‰j                  | |‰¬«      S r…   r‰   )r|   r‡   rˆ   r~   s     €€r   rÕ  z0TestDUFuncReduce._check_reduce_axis.<locals>.foo4  s   ø€ à—<‘< ¨°g�<Ó>Ð>r   c                  ó@  •— 	 ‰j                  ‰‰«      } ‰‰‰«      }‰j                  ||«       y # t        $ rc}‰j                  |j                  d   ‰«       ‰j                  t        ‰«      5   ‰‰‰«      }d d d «       n# 1 sw Y   nxY wY d }~y Y d }~y d }~ww xY w)Nr   )rÙ  r«   r0   r8   r™   rÀ   r   )	r™   r¬   r­   rY  r‹   r‡   Úexc_msgrÕ  r%   s	       €€€€€r   Ú_checkz3TestDUFuncReduce._check_reduce_axis.<locals>._check8  s›   ø€ ð7ØŸ;™; u¨dÓ3�ñ ˜% Ó&�Ø×'Ñ'¨°#Õ6øô ò +Ø× Ñ  §¡¨¡¨GÔ4Ø×+Ñ+¬K¸ÓAñ +Ù˜e TÓ*�C÷+÷ +ñ +ú÷ +ñ +ûð+ús,   ƒ1 ±	Bº5BÁ/
BÁ9	BÂB	ÂBÂBzreduction operation 'z:' is not reorderable, so at most one axis may be specifiedrÖ  r°   rA   rÉ   r+   r*   r)   )Úr)r   N)	r   rp   r2   r½   rE   r×  rØ  Ú	itertoolsÚcombinations)r%   r~   r“   rˆ   rà  rÚ  rF  r‹   r‡   rß  rÕ  s   `` `   @@@@r   Ú_check_reduce_axisz#TestDUFuncReduce._check_reduce_axis2  sè   þ€ ä	ô	?ó 
ð	?÷		7ð 		7ð +¨5¯>©>Ð*:ð ;Gð Gˆô �I‰I�b Ô&×.Ñ.¨q°!°QÓ7Ü�I‰I�b Ô&ð
ˆð ò 	$ˆEÜ˜1˜eŸj™j¨1™nÓ-ò (�Ü%×2Ñ2´5¸¿¹Ó3DÈÔJò (�DÙ˜5 $Õ'ñ(ð(ð
 #ò $�Ù�u˜dÕ#ñ$ñ	$r   c                 ó–   —  t        dd¬«      t        «      }| j                  |«       | j                  |t        j
                  ¬«       y )Núint64(int64, int64)r   ry   r°   )r   r   rÛ  rä  r2   rÎ  r4   s     r   Útest_add_reducez TestDUFuncReduce.test_add_reduceR  s;   € Ø<”	Ð/¸!Ô<¼VÓDˆØ×Ñ˜5Ô!Ø×Ñ ¬R¯X©XÐÕ6r   c                 óT   —  t        dd¬«      t        «      }| j                  |«       y )Nræ  r)   ry   )r   r   rÛ  )r%   Údumuls     r   Útest_mul_reducez TestDUFuncReduce.test_mul_reduceW  s$   € Ø<”	Ð/¸!Ô<¼VÓDˆØ×Ñ˜5Õ!r   c                 ó(  —  t        dd ¬«      t        «      } t        dd ¬«      t        «      }| j                  |«       | j	                  |t
        j                  ¬«       | j                  |«       | j	                  |t
        j                  ¬«       y )Nræ  ry   r°   )r   r   r   rÛ  rä  r2   rÎ  )r%   ÚdusubÚdudivs      r   Útest_non_associative_reducez,TestDUFuncReduce.test_non_associative_reduce[  st   € Ø?”	Ð/¸$Ô?ÄÓFˆØ?”	Ð/¸$Ô?ÄÓFˆØ×Ñ˜5Ô!Ø×Ñ ¬R¯X©XÐÔ6Ø×Ñ˜5Ô!Ø×Ñ ¬R¯X©XÐÕ6r   c                 ót   —  t        dd¬«      t        «      }| j                  |t        j                  ¬«       y )Núfloat64(float64, int64)r   ry   r°   )r   r   rÛ  r2   rî   r4   s     r   Útest_reduce_dtypez"TestDUFuncReduce.test_reduce_dtypec  s-   € Ø@”	Ð3¸aÔ@ÄÓHˆØ×Ñ˜5¬¯
©
ÐÕ3r   c                 óš   —  t        dd¬«      t        «      }| j                  |d¬«       | j                  |t        j
                  ¬«       y )Nræ  rŽ  ry   r*   r¯  r°   )r   r   rÛ  rä  r2   rÎ  )r%   Údumins     r   Útest_min_reducez TestDUFuncReduce.test_min_reduceg  s@   € ØH”	Ð/¸-ÔHÌÓOˆØ×Ñ˜5¨"ÐÔ-Ø×Ñ ¬R¯X©XÐÕ6r   c                 óv   —  t        dd¬«      t        «      }| j                  |t        j                  d¬«       y )Nræ  r   ry   r»   )r“   rˆ   ©r   r   rÛ  r2   rÎ  r4   s     r   Útest_add_reduce_initialz(TestDUFuncReduce.test_add_reduce_initiall  s/   € à<”	Ð/¸!Ô<¼VÓDˆØ×Ñ˜5¬¯©¸#ÐÕ>r   c                 óp   —  t        d«      t        «      }| j                  |t        j                  ¬«       y )Nræ  r°   rö  r4   s     r   Ú&test_add_reduce_no_initial_or_identityz7TestDUFuncReduce.test_add_reduce_no_initial_or_identityq  s+   € à0”	Ð/Ó0´Ó8ˆØ×Ñ˜5¬¯©ÐÕ1r   c                 óº   ‡—  t        dd¬«      t        «      Št        ˆfd„«       }d}| j                  t        |«      5   |d«       d d d «       y # 1 sw Y   y xY w)Nrð  r   ry   c                 ó&   •— ‰j                  | «      S r   r‰   )r|   r5   s    €r   rÕ  z0TestDUFuncReduce.test_invalid_input.<locals>.fooy  s   ø€ à—<‘< “?Ð"r   z-The first argument "array" must be array-liker|   )r   r   r   rÀ   r   )r%   rÕ  rß  r5   s      @r   Útest_invalid_inputz#TestDUFuncReduce.test_invalid_inputv  s]   ø€ Ø@”	Ð3¸aÔ@ÄÓHˆä	ó	#ó 
ð	#ð BˆØ×#Ñ#¤K°Ó9ñ 	Ù�ŒH÷	÷ 	ñ 	ús   ¿	AÁAc                 ó  ‡—  t        dd¬«      t        «      Št        ˆfd„«       }t        j                  d«      j                  ddd«      }d	}|D ]/  }‰j                  ||«      } |||«      }| j                  ||«       Œ1 y )
Nræ  r   ry   c                 ó*   •— ‰j                  | |¬«      S ©Nr�  r‰   ©r|   r‡   r5   s     €r   rÕ  z7TestDUFuncReduce.test_dufunc_negative_axis.<locals>.foo„  ó   ø€ à—<‘< ¨�<Ó-Ð-r   rÖ  rA   rÉ   r+   )r   rÊ   )r   rÊ   )rÊ   éþÿÿÿ)r)   rÊ   éýÿÿÿ)r   r   r   r2   r½   rE   rv   r«   )r%   rÕ  r|   Úcasesr‡   r¬   r­   r5   s          @r   Útest_dufunc_negative_axisz*TestDUFuncReduce.test_dufunc_negative_axis�  s†   ø€ Ø<”	Ð/¸!Ô<¼VÓDˆä	ó	.ó 
ð	.ô �I‰I�b‹M×!Ñ! ! Q¨Ó*ˆØ7ˆØò 	3ˆDØ—|‘| A tÓ,ˆHÙ�a˜“,ˆCØ×#Ñ# H¨cÕ2ñ	3r   c                 ó”  ‡—  t        dd¬«      t        «      Št        ˆfd„«       }t        j                  d«      j                  ddd«      }d	}|D ],  }d
}| j                  t        |«      5   |||«       d d d «       Œ. d}|D ]*  }| j                  t        d«      5   |||«       d d d «       Œ, y # 1 sw Y   ŒjxY w# 1 sw Y   ŒCxY w)Nræ  r   ry   c                 ó*   •— ‰j                  | |¬«      S rÿ  r‰   r   s     €r   rÕ  z6TestDUFuncReduce.test_dufunc_invalid_axis.<locals>.foo’  r  r   rÖ  rA   rÉ   r+   )rÍ  r“  )r   r  )rÊ   rÊ   )rÊ   r+   zduplicate value in 'axis')éüÿÿÿr¹   )r   r  zInvalid axis)r   r   r   r2   r½   rE   rÀ   r0   )r%   rÕ  r|   r  r‡   rm  r5   s         @r   Útest_dufunc_invalid_axisz)TestDUFuncReduce.test_dufunc_invalid_axis�  sÜ   ø€ Ø<”	Ð/¸!Ô<¼VÓDˆä	ó	.ó 
ð	.ô �I‰I�b‹M×!Ñ! ! Q¨Ó*ˆØ?ˆØò 	ˆDØ-ˆCØ×'Ñ'¬
°CÓ8ñ Ù�A�t”÷ð ð	ð
 "ˆØò 	ˆDØ×'Ñ'¬
°NÓCñ Ù�A�t”÷ð ñ	÷	ð ú÷
ð ús   Á,
B2Â
B>Â2B;	Â>C	)NNr   )rp   rq   rr   rÛ  rä  rç  rê  rî  rñ  rô  r÷  rù  rü  r  r	  r   r   r   rÒ  rÒ    s?   „ ó7ó($ò@7ò
"ò7ò4ò7ò
?ò
2ò
	ò3ór   rÒ  c                   ó~   — e Zd Zd„ Zd„ Zej                  d„ «       Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestDUFuncReduceAtc                 óà   — t        |d«      }| j                  ||«      }|j                  «       }|j                  «       } |j                  ||fi |¤Ž  |||fi |¤Ž | j	                  ||«       y )Nr\   )Úgetattrr¢   rª   rw   r«   )	r%   r~   r|   ÚidxrÃ  r\   rh   r¬   r­   s	            r   r®   z"TestDUFuncReduceAt._compare_output¤  sh   € Ü˜5 *Ó-ˆØ�^‰^˜E 8Ó,ˆØ—6‘6“8ˆØ�f‰f‹hˆØˆ�‰�x Ñ/¨Ò/Ù
ˆ3�Ñ�vÒØ×Ñ ¨#Õ.r   c                 ód  — t        j                  d«      }t        j                  g d¢«      }| j                  t         j                  d«      } ||||¬«       | j                  t        j                  g d¢«      |«        ||||¬«       | j                  t        j                  g d¢«      |«       y )NrÉ   ©r   r¹   r)   r+   r   ©r”   )r¹   r¹   r¹   rÇ   )ró   rÇ   rÇ   r  )r2   r½   r/  r¢   r¿   r«   )r%   rÝ   r  r²  s       r   Útest_reduceat_out_kwz'TestDUFuncReduceAt.test_reduceat_out_kw­  s{   € Ü�i‰i˜‹lˆÜ�j‰jšÓ&ˆØ—^‘^¤B§F¡F¨AÓ.ˆ
Ù�3˜ Õ%Ø×Ñ¤§
¡
ª<Ó 8¸#Ô>Ù�3˜ Õ%Ø×Ñ¤§
¡
ª=Ó 9¸3Õ?r   c           	      ó’  — t        j                  d«      j                  dd«      t        j                  d«      j                  ddd«      t        j                  d«      f}t        j                  g d¢«      t        j                  g d¢«      f}d	}|D ]3  }|D ],  }|D ]%  }| j                  t         j                  |||¬
«       Œ' Œ. Œ5 y )Nr  rÉ   rÖ  rA   r+   ©rÉ   rÉ   ©r   r¹   r)   r+   r   r  )r)   r   rÊ   r�  )r2   r½   rE   rÎ   r/  r®   r¿   )r%   Úarraysr’   r‡   r‹   r  Úaxs          r   Útest_reduceat_axis_kwz(TestDUFuncReduceAt.test_reduceat_axis_kw¶  s¾   € ô �I‰I�b‹M×!Ñ! ! QÓ'Ü�I‰I�b‹M×!Ñ! ! Q¨Ó*Ü�G‰G�F‹Oð
ˆô �J‰J’Ó'Ü�J‰J’|Ó$ð
ˆð ˆØò 	FˆEØò F�Øò F�BØ×(Ñ(¬¯©°¸À"Ð(ÕEñFñFñ	Fr   c                 ó8  — t        j                  d«      }t        j                  g d¢«      }| j                  t         j                  d«      }dD ]=  }d|› d|j
                  › �}| j                  t        |«      5   ||||«       d d d «       Œ? y # 1 sw Y   ŒJxY w)Nr  r  r   )r+   r  zaxis z) is out of bounds for array of dimension )r2   rÎ   r/  r¢   r¿   rØ  rÀ   r0   )r%   rÝ   r  Úadd_reduceatr  rm  s         r   Útest_reduceat_invalid_axisz-TestDUFuncReduceAt.test_reduceat_invalid_axisÇ  s�   € Ü�g‰g�f‹oˆÜ�j‰jšÓ&ˆØ—~‘~¤b§f¡f¨aÓ0ˆàò 	+ˆBØ˜2˜$ÐGØ—h‘h�Zð!ˆCà×'Ñ'¬
°CÓ8ñ +Ù˜S # rÔ*÷+ð +ñ	+÷+ð +ús   Á:BÂB	c                 óH  — | j                  t        j                  d«      }g d¢}g d¢}t        j                  j                  ||«      } |||«      }| j	                  ||«       d}d}t        j                  j                  ||«      } |||«      }| j	                  ||«       y )Nr   rG  r¼   )r¢   r2   r¿   rw   r«   )r%   r  r|   r  r¬   r­   s         r   Ú test_reduceat_cast_args_to_arrayz3TestDUFuncReduceAt.test_reduceat_cast_args_to_arrayÒ  sŽ   € Ø—~‘~¤b§f¡f¨aÓ0ˆò ˆÚˆÜ—6‘6—?‘? 1 cÓ*ˆÙ˜1˜cÓ"ˆØ×Ñ ¨#Ô.ð ˆØˆÜ—6‘6—?‘? 1 cÓ*ˆÙ˜1˜cÓ"ˆØ×Ñ ¨#Õ.r   c                 óx   — t        j                  d«      }g d¢}| j                  t         j                  ||«       y )Nr  )r   rÉ   r)   rA   r+   rÇ   r¹   r  )r2   r½   r®   r¿   ©r%   rq  r  s      r   Útest_reduceat_basicz&TestDUFuncReduceAt.test_reduceat_basicå  s*   € Ü�I‰I�a‹LˆÚ"ˆØ×ÑœRŸV™V Q¨Õ,r   c                 óœ   — t        j                  ddd«      j                  dd«      }g d¢}| j                  t         j                  ||«       y )Nr   r  r  rÉ   r  )r2   r3   rE   r®   r¿   r  s      r   Útest_reduceat_basic_2dz)TestDUFuncReduceAt.test_reduceat_basic_2dê  s<   € Ü�K‰K˜˜2˜rÓ"×*Ñ*¨1¨aÓ0ˆÚˆØ×ÑœRŸV™V Q¨Õ,r   c                 ó>  — d}t        j                  |«      }t        j                  t        t	        t        j                  |dz
  «      t        j                  |dz
  «      dz   «      «      «      j                  «       }| j                  t         j                  ||«       y )NrÇ   r+   )r2   r½   r‹   Úlistr]  Úravelr®   r¿   )r%   ÚLrq  r  s       r   Útest_reduceat_shifting_sumz-TestDUFuncReduceAt.test_reduceat_shifting_sumï  sl   € ØˆÜ�I‰I�a‹LˆÜ�h‰h”tœC¤§	¡	¨!¨a©%Ó 0´"·)±)¸AÀ¹EÓ2BÀQÑ2FÓGÓHÓI×OÑOÓQˆØ×ÑœRŸV™V Q¨Õ,r   c                 ó¼  — t        j                  dt         j                  ¬«      }t        j                  dt         j                  ¬«      }| j                  t         j                  |t        j
                  d«      |¬«       | j                  t         j                  |t        j
                  d«      |¬«       | j                  ||«       t        j                  dt         j                  ¬«      }t        d«      D �cg c]  }d‘Œ c}|dd d …f<   t        j                  dt         j                  ¬«      }t        d«      D �cg c]  }d‘Œ c}|dd d …f<   | j                  t         j                  |t        j
                  d«      |d¬«       | j                  t         j                  |t        j
                  d«      |d¬«       | j                  ||«       y c c}w c c}w )	NrÉ   r°   r  )r+   rÉ   r+   r   rÊ   )r”   r‡   )r2   rÎ   rÎ  r®   r¿   r½   r«   r×  )r%   rÝ   r”   rF  s       r   Ú(test_reduceat_int_array_reduceat_inplacez;TestDUFuncReduceAt.test_reduceat_int_array_reduceat_inplaceõ  sD  € ä�g‰g�aœrŸx™xÔ(ˆÜ�g‰g�aœrŸx™xÔ(ˆØ×ÑœRŸV™V S¬"¯)©)°A«,¸CÐÔ@Ø×ÑœRŸV™V S¬"¯)©)°A«,¸CÐÔ@Ø×Ñ  SÔ)ô �g‰g�f¤B§H¡HÔ-ˆÜ % a£Ö)˜1’QÒ)ˆˆAŠqˆD‰	Ü�g‰g�f¤B§H¡HÔ-ˆÜ % a£Ö)˜1’QÒ)ˆˆAŠqˆD‰	Ø×ÑœRŸV™V S¬"¯)©)°A«,¸CÀbÐÔIØ×ÑœRŸV™V S¬"¯)©)°A«,¸CÀbÐÔIØ×Ñ  SÕ)ùò *ùâ)s   Ã;	GÅ 	Gc                 óV  — | j                  t        j                  d«      }dD ]x  }t        j                  d«      }t        j                  d«      }|r|j	                  t        j
                  «      }| j                  t        «      5   ||ddg|¬«       d d d «       Œz y # 1 sw Y   Œ…xY w)Nr   )TFrA   r¹   r  )r¢   r2   r¿   r½   r\  rî   r/   r0   )r%   r  Ú	with_castrÝ   r”   s        r   Ú test_reduceat_out_shape_mismatchz3TestDUFuncReduceAt.test_reduceat_out_shape_mismatch  s�   € ð —~‘~¤b§f¡f¨aÓ0ˆà&ò 		3ˆIÜ—)‘)˜A“,ˆCÜ—)‘)˜A“,ˆCÙð —j‘j¤§¡Ó,�à×"Ñ"¤:Ó.ñ 3Ù˜S 1 a &¨cÕ2÷3ð 3ñ		3÷3ð 3ús   ÂBÂB(	c                 ó^  — t        j                  g d«      }t        j                  g d«      }| j                  t         j                  d«      }t         j                  j	                  ||«      } |||«      }| j                  ||«       | j                  |j                  |j                  «       t        j                  d«      }t        j                  g t         j                  ¬«      }| j                  t         j                  ||d¬«       | j                  t         j                  ||d¬«       y)	z&Reduceat should work with empty arraysÚi4r«  r   )rA   r+   r°   r�  r)   N)r2   r‹   r¢   r¿   rw   r«   r8   r“   rÎ   r/  rÐ   r®   )r%   r’   rq  r  r¬   r­   r  s          r   Útest_reduceat_emptyz&TestDUFuncReduceAt.test_reduceat_empty  s×   € ä—(‘(˜2˜tÓ$ˆÜ�H‰H�R˜ÓˆØ—~‘~¤b§f¡f¨aÓ0ˆÜ—6‘6—?‘? 1 gÓ.ˆÙ˜1˜gÓ&ˆØ×Ñ ¨#Ô.Ø×Ñ˜Ÿ™¨¯©Ô3ô �G‰G�F‹OˆÜ�j‰j˜¤2§7¡7Ô+ˆØ×ÑœRŸV™V Q¨°!ÐÔ4Ø×ÑœRŸV™V Q¨°!ÐÕ4r   c                 ó   — | j                  t        j                  d«      }t        j                  d«      }t        j                  d«      j	                  dd«      }| j                  t        d«      5   |||«       d d d «       y # 1 sw Y   y xY w)Nr   rA   r*   r+   zhave at most 1 dimension)r¢   r2   r¿   r½   rE   rÀ   r   )r%   r  r|   r  s       r   Útest_reduceat_error_ndim_2z-TestDUFuncReduceAt.test_reduceat_error_ndim_2(  so   € Ø—~‘~¤b§f¡f¨aÓ0ˆô �I‰I�a‹LˆÜ�i‰i˜‹m×#Ñ# A qÓ)ˆØ×#Ñ#¤KÐ1KÓLñ 	!Ù˜˜CÔ ÷	!÷ 	!ñ 	!ús   Á1
BÂBc                 óÔ   ‡— t         d„ «       Št        ˆfd„«       }t        j                  d«      }d}| j	                  t
        |«      5   ||g d¢«       d d d «       y # 1 sw Y   y xY w)Nc                 ó,   — t        j                  | «      S r   r²   r´   s    r   ÚnegzGTestDUFuncReduceAt.test_reduceat_error_non_binary_function.<locals>.neg3  s   € ä—;‘;˜q“>Ð!r   c                 ó(   •— ‰j                  | |«      S r   r‘   )r|   r  r4  s     €r   Úneg_reduceatzPTestDUFuncReduceAt.test_reduceat_error_non_binary_function.<locals>.neg_reduceat7  s   ø€ à—<‘<  3Ó'Ð'r   rA   r�   r  )r   r   r2   r½   rÀ   r   )r%   r6  r|   rm  r4  s       @r   Ú'test_reduceat_error_non_binary_functionz:TestDUFuncReduceAt.test_reduceat_error_non_binary_function1  sl   ø€ ä	ñ	"ó 
ð	"ô 
ó	(ó 
ð	(ô �I‰I�a‹LˆØ<ˆØ×#Ñ#¤K°Ó5ñ 	'Ù˜šIÔ&÷	'÷ 	'ñ 	'ús   Á	AÁA'c                 ój  — | j                  t        j                  d«      }| j                  t        d«      5   |dg d¢«       d d d «       | j                  t        d«      5   |t        j
                  d«      d«       d d d «       | j                  t        d«      5   |t        j
                  d«      g d¢d	¬
«       d d d «       | j                  t        d«      5   |t        j
                  d«      g d¢d¬«       d d d «       y # 1 sw Y   ŒÃxY w# 1 sw Y   Œ”xY w# 1 sw Y   ŒaxY w# 1 sw Y   y xY w)Nr   z"array" must be array-likeÚabcr¼   z"indices" must be array-likerA   Úabcdzoutput must be an arrayr   r  z"axis" must be an integer)r)   r�  )r¢   r2   r¿   rÀ   r   r½   )r%   r  s     r   Ú"test_reduceat_error_argument_typesz5TestDUFuncReduceAt.test_reduceat_error_argument_types@  sý   € à—~‘~¤b§f¡f¨aÓ0ˆØ×#Ñ#¤KÐ1MÓNñ 	+Ù˜¢	Ô*÷	+ð ×#Ñ#¤KÐ1OÓPñ 	/ÙœŸ™ 1› vÔ.÷	/ð ×#Ñ#¤KÐ1JÓKñ 	:ÙœŸ™ 1›¢y°bÕ9÷	:ð ×#Ñ#¤KÐ1LÓMñ 	=ÙœŸ™ 1›¢y°tÕ<÷	=ð 	=÷	+ð 	+ú÷	/ð 	/ú÷	:ð 	:ú÷	=ð 	=ús/   ·DÁ!DÂ!DÃ!D)ÄDÄDÄD&Ä)D2N)rp   rq   rr   r®   r  r  r€  r  r  r  r   r"  r'  r)  r,  r/  r1  r7  r;  r   r   r   r  r  £  s`   „ ò/ò@ð ×ÑñFó ðFò 	+ò/ò&-ò
-ò
-ò*ò$3ò"5ò !ò'ó=r   r  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestDUFuncPicklingc                 ó&  ‡— t        j                  |«      }t        j                  |«      Š ‰d«      }| j                  d|«       | j	                  ||«       t
        ˆfd„«       } |d«      }| j                  d|«       | j	                  ||«       y )Né{   c                 ó   •—  ‰| «      S r   r   )rq  Úrebuilts    €r   rÕ  z%TestDUFuncPickling.check.<locals>.foo[  s   ø€ á˜1“:Ðr   iA  )ÚpickleÚdumpsÚloadsr8   ÚassertIsInstancer   )r%   ÚidentÚresult_typeÚbufrá  rÕ  rA  s         @r   ÚcheckzTestDUFuncPickling.checkQ  s‰   ø€ Ü�l‰l˜5Ó!ˆÜ—,‘,˜sÓ#ˆñ �C‹LˆØ×Ñ˜˜aÔ Ø×Ñ˜a Ô-ô 
ó	ó 
ð	ñ �‹HˆØ×Ñ˜˜aÔ Ø×Ñ˜a Õ-r   c                 ój   — t         d„ «       }| j                  |t        t        j                  f¬«       y )Nc                 ó   — | S r   r   ©Úx1s    r   rF  z3TestDUFuncPickling.test_unrestricted.<locals>.identd  ó   € àˆIr   ©rG  )r   rI  r¾   r2   Úinteger©r%   rF  s     r   Útest_unrestrictedz$TestDUFuncPickling.test_unrestrictedc  s/   € Ü	ñ	ó 
ð	ð 	�
‰
�5¤s¬B¯J©JÐ&7ˆ
Õ8r   c                 óV   — t        dg«      d„ «       }| j                  |t        ¬«       y )Nzfloat64(float64)c                 ó   — | S r   r   rL  s    r   rF  z1TestDUFuncPickling.test_restricted.<locals>.identk  rN  r   rO  )r   rI  rå   rQ  s     r   Útest_restrictedz"TestDUFuncPickling.test_restrictedj  s/   € Ü	Ð&Ð'Ó	(ñ	ó 
)ð	ð 	�
‰
�5¤eˆ
Õ,r   N)rp   rq   rr   rI  rR  rU  r   r   r   r=  r=  P  s   „ ò.ò$9ó-r   r=  Ú__main__)$r¥   râ  rB  re   rx  Únumpyr2   Únumbar   r   Únumba.tests.supportr   r   Únumba.core.errorsr   r   r	   r  Únumba.np.ufuncr
   Únumba.np.numpy_supportr   r   r   r   r   r   r   rt   r¨   r‚  rÒ  r  r=  rp   Úmainr   r   r   ú<module>r^     sá   ðÛ Û Û Û Û ã ç !ß 9÷@ñ @ã Ý !Ý -òòòòò!ôcI� (×"3Ñ"3ô cIôZ*/˜Hô */ôZsMÐ(ô sMôld. ô d.ôNCÐ,ô CôLj=Ð.ô j=ôZ-˜¨(×*;Ñ*;ô -ðD ˆzÒØ€H‡M�M…Oð r   