§
    ƒÛg_ ã                   óN  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlm Z  e!j"        dk    Z#ej$         %                    d¦  «        Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z, G d„ de¦  «        Z- G d„ de-¦  «        Z. G d„ de.e¦  «        Z/ G d„ de-e¦  «        Z0 G d„ de¦  «        Z1 G d„ de¦  «        Z2 G d „ d!e¦  «        Z3 G d"„ d#e3¦  «        Z4e4 5                    ¦   «           G d$„ d%e3¦  «        Z6e6 5                    ¦   «           G d&„ d'e3¦  «        Z7e7 5                    ¦   «           G d(„ d)e3¦  «        Z8e8 5                    ¦   «           G d*„ d+e3¦  «        Z9e9 5                    ¦   «           G d,„ d-e3¦  «        Z:e: 5                    ¦   «           G d.„ d/e3¦  «        Z;e; 5                    ¦   «           G d0„ d1e3¦  «        Z<e< 5                    ¦   «           G d2„ d3e3¦  «        Z=e= 5                    ¦   «           G d4„ d5e3¦  «        Z>e> 5                    ¦   «           G d6„ d7e¦  «        Z? G d8„ d9e¦  «        Z@ G d:„ d;e¦  «        ZA G d<„ d=e¦  «        ZBeCd>k    r ejD        ¦   «          dS dS )?é    N)ÚguvectorizeÚnjitÚtypeofÚ	vectorize)Útypes)Ú
from_dtype)ÚLoweringErrorÚTypingError)ÚTestCaseÚMemoryLeakMixin)Úsupported_ufuncs)Únumpy_support)Ú
cpu_target)ÚBaseContext)Úufunc_dbé   Úwin32c                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }dS )zŠAn 'expectedFailure' like decorator that only expects compilation errors
    caused by unimplemented functions that fail in no-python modec                  ó–   •— 	  ‰| i |¤Ž n3# t           $ r& t          j        t          j        ¦   «         ¦  «        ‚w xY wt          j        ‚©N)r
   ÚunittestÚ_ExpectedFailureÚsysÚexc_infoÚ_UnexpectedSuccess)ÚargsÚkwargsÚfuncs     €úM/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_ufuncs.pyÚwrapperz_unimplemented.<locals>.wrapper   s[   ø€ ð	<ØˆD�$Ð!˜&Ð!Ð!Ð!Ð!øÝð 	<ð 	<ð 	<ÝÔ+­C¬L©N¬NÑ;Ô;Ð;ð	<øøøåÔ)Ð)s   ƒ Œ0<N)Ú	functoolsÚwraps)r   r    s   ` r   Ú_unimplementedr#      s=   ø€ õ „_�TÑÔð*ð *ð *ð *ñ Ôð*ð *ð *ó    c                 ó*  — i }d                      d„ t          | j        ¦  «        D ¦   «         ¦  «        }d                     || j        ¦  «        }t          |t          ¦   «         |¦  «         |d         }d                     | j        ¦  «        |_        |S )Nú,c                 ó8   — g | ]}d                       |¦  «        ‘ŒS )za{0})Úformat)Ú.0Úis     r   ú
<listcomp>z'_make_ufunc_usecase.<locals>.<listcomp>(   s$   € ÐEÐEÐE¨Q˜Ÿš aÑ(Ô(ÐEÐEÐEr$   zdef fn({0}):
    np.{1}({0})Úfnz{0}_usecase)ÚjoinÚrangeÚnargsr(   Ú__name__ÚexecÚglobals)ÚufuncÚldictÚarg_strÚfunc_strr,   s        r   Ú_make_ufunc_usecaser7   &   sƒ   € Ø€EØ�hŠhÐEÐEµ%¸¼Ñ2DÔ2DÐEÑEÔEÑFÔF€GØ.×5Ò5°g¸u¼~ÑNÔN€HÝˆ•7‘9”9˜eÑ$Ô$Ð$Ø	ˆtŒ€BØ×&Ò& u¤~Ñ6Ô6€B„KØ€Ir$   c                 óÈ   — i }t          d                     | ¦  «        t          ¦   «         |¦  «         |d         }d                     t          | ¦  «        ¦  «        |_        |S )Nzdef fn(x):
    return {0}(x)r,   úusecase_{0}©r1   r(   r2   Úhashr0   ©Úufunc_opr4   r,   s      r   Ú_make_unary_ufunc_op_usecaser>   0   sU   € Ø€EÝÐ	(×	/Ò	/°Ñ	9Ô	9½7¹9¼9ÀeÑLÔLÐLØ	ˆtŒ€BØ×&Ò&¥t¨H¡~¤~Ñ6Ô6€B„KØ€Ir$   c                 óÈ   — i }t          d                     | ¦  «        t          ¦   «         |¦  «         |d         }d                     t          | ¦  «        ¦  «        |_        |S )Nzdef fn(x,y):
    return x{0}yr,   r9   r:   r<   s      r   Ú_make_binary_ufunc_op_usecaser@   8   sU   € Ø€EÝÐ	)×	0Ò	0°Ñ	:Ô	:½G¹I¼IÀuÑMÔMÐMØ	ˆtŒ€BØ×&Ò&¥t¨H¡~¤~Ñ6Ô6€B„KØ€Ir$   c                 ó  ‡ — t          ‰ t          ¦  «        rbi }t          d                     ‰ ¦  «        t	          ¦   «         |¦  «         |d         }d                     t          ‰ ¦  «        ¦  «        |_        nˆ fd„}|}|S )z”Generates a function to be compiled that performs an inplace operation

    ufunc_op can be a string like '+=' or a function like operator.iadd
    zdef fn(x,y):
    x{0}yr,   r9   c                 ó    •—  ‰| |¦  «         d S r   © )ÚxÚyr=   s     €r   Ú
inplace_opz2_make_inplace_ufunc_op_usecase.<locals>.inplace_opK   s   ø€ ØˆH�Q˜‰NŒNˆNˆNˆNr$   )Ú
isinstanceÚstrr1   r(   r2   r;   r0   )r=   r4   r,   rF   s   `   r   Ú_make_inplace_ufunc_op_usecaserI   @   sŠ   ø€ õ
 �(�CÑ Ô ð ØˆÝÐ&×-Ò-¨hÑ7Ô7½¹¼ÀEÑJÔJÐJØ�4Œ[ˆØ#×*Ò*­4°©>¬>Ñ:Ô:ˆŒˆð	ð 	ð 	ð 	ð 	àˆØ€Ir$   c                 ó6   — d„ t          | |¦  «        D ¦   «         S )z5Convert python values into numpy scalar objects.
    c                 ó|   — g | ]9\  }}t          j        t          |¦  «        ¦  «                             |¦  «        ‘Œ:S rC   )ÚnpÚdtyperH   Útype)r)   ÚtyÚvals      r   r+   z#_as_dtype_value.<locals>.<listcomp>T   s:   € ÐIÐIÐI©G¨B°�BŒH•S˜‘W”WÑÔ×"Ò" 3Ñ'Ô'ÐIÐIÐIr$   )Úzip)Útyargsr   s     r   Ú_as_dtype_valuerS   Q   s#   € ð JÐIµs¸6À4Ñ7HÔ7HÐIÑIÔIÐIr$   c                   ó`   ‡ — e Zd Zˆ fd„Z ej        d¬¦  «        dd„¦   «         Z	 	 dd„Zˆ xZS )	ÚBaseUFuncTestc                 óà  •— t          t          | ¦  «                             ¦   «          t          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j        d¦  «        t
          j        ft          j	        d¦  «        t
          j	        ft          j	        d¦  «        t
          j	        ft          j	        d¦  «        t
          j	        ft          j
        d¦  «        t
          j
        ft          j
        d¦  «        t
          j
        ft          j
        d¦  «        t
          j
        ft          j        ddgd¬¦  «        t          j        t
          j        dd	¦  «        ft          j        ddgd
¬¦  «        t          j        t
          j        dd	¦  «        ft          j        g d¢d¬¦  «        t          j        t
          j        dd	¦  «        ft          j        g d¢d¬¦  «        t          j        t
          j        dd	¦  «        ft          j        g d¢d¬¦  «        t          j        t
          j	        dd	¦  «        ft          j        g d¢d¬¦  «        t          j        t
          j
        dd	¦  «        ft          j        ddgt          j        ¬¦  «        t          j        t
          j        dd	¦  «        ft          j        ddgt          j        ¬¦  «        t          j        t
          j        dd	¦  «        ft          j        ddgt          j        ¬¦  «        t          j        t
          j        dd	¦  «        ft          j        ddgt          j        ¬¦  «        t          j        t
          j        dd	¦  «        fg| _        d S )Nr   é   éÿÿÿÿç      à¿ç        ç      à?Úu4©rM   ÚCÚu8)rX   r   rW   Úi4Úi8)rY   rZ   r[   Úf4Úf8)ÚsuperrU   ÚsetUprL   Úuint32r   Úint32Úuint64Úint64Úfloat32Úfloat64ÚarrayÚArrayÚint8Úint16Úuint8Úuint16Úinputs)ÚselfÚ	__class__s    €r   re   zBaseUFuncTest.setUpY   s  ø€ Ý�m˜TÑ"Ô"×(Ò(Ñ*Ô*Ð*åŒY�q‰\Œ\�5œ<Ð(ÝŒY�q‰\Œ\�5œ<Ð(ÝŒX�b‰\Œ\�5œ;Ð'ÝŒX�a‰[Œ[�%œ+Ð&ÝŒX�a‰[Œ[�%œ+Ð&ÝŒY�q‰\Œ\�5œ<Ð(ÝŒY�q‰\Œ\�5œ<Ð(ÝŒX�b‰\Œ\�5œ;Ð'ÝŒX�a‰[Œ[�%œ+Ð&ÝŒX�a‰[Œ[�%œ+Ð&åŒZ˜ÑÔ�uœ}Ð-ÝŒZ˜‰_Œ_�eœmÐ,ÝŒZ˜‰_Œ_�eœmÐ,åŒZ˜ÑÔ�uœ}Ð-ÝŒZ˜‰_Œ_�eœmÐ,ÝŒZ˜‰_Œ_�eœmÐ,åŒX�q˜�e 4Ð(Ñ(Ô(­%¬+µe´lÀAÀsÑ*KÔ*KÐLÝŒX�q˜�e 4Ð(Ñ(Ô(­%¬+µe´lÀAÀsÑ*KÔ*KÐLÝŒX�h�h�h dÐ+Ñ+Ô+­U¬[½¼ÀaÈÑ-MÔ-MÐNÝŒX�h�h�h dÐ+Ñ+Ô+­U¬[½¼ÀaÈÑ-MÔ-MÐNÝŒXÐ&Ð&Ð&¨dÐ3Ñ3Ô3ÝŒ[�œ¨¨3Ñ/Ô/ð1åŒXÐ&Ð&Ð&¨dÐ3Ñ3Ô3ÝŒ[�œ¨¨3Ñ/Ô/ð1õ ŒX�q˜�e¥2¤7Ð+Ñ+Ô+­U¬[½¼ÀQÈÑ-LÔ-LÐMÝŒX�q˜�e¥2¤8Ð,Ñ,Ô,­e¬k½%¼+ÀqÈ#Ñ.NÔ.NÐOÝŒX�q˜�e¥2¤8Ð,Ñ,Ô,­e¬k½%¼+ÀqÈ#Ñ.NÔ.NÐOÝŒX�q˜�e¥2¤9Ð-Ñ-Ô-ÝŒ[�œ q¨#Ñ.Ô.ð0ðA"
ˆŒˆˆr$   N)ÚmaxsizeFc                 ó8   —  t          ||d¬¦  «        |¦  «        S )NT)Ú_nrtÚno_rewrites)r   )rs   Úpyfuncr   Únrts       r   Ú_compilezBaseUFuncTest._compile   s#   € ð 6�t�D˜s°Ð5Ñ5Ô5°fÑ=Ô=Ð=r$   c                 ó¶  — |}t          |t          j        ¦  «        r|j        }|j        }nd}|t          j        v r0|rt          j        ||d¦  «        }n„t          j        ||d¦  «        }nm|t          j        v r0|rt          j        ||d¦  «        }nFt          j        ||d¦  «        }n/|rt          j        ||d¦  «        }nt          j        ||d¦  «        }|S )NrW   r^   )rG   r   rm   ÚndimrM   Úsigned_domainÚunsigned_domain)rs   Ú
input_typeÚint_output_typeÚfloat_output_typerO   r}   Úoutput_types          r   Ú_determine_output_typez$BaseUFuncTest._determine_output_type…   sç   € àˆÝ�b�%œ+Ñ&Ô&ð 	Ø”7ˆDØ”ˆBˆBàˆDà•Ô$Ð$Ð$Øð 9Ý#œk¨/¸4ÀÑEÔE��å#œk¨"¨d°CÑ8Ô8��Ø•5Ô(Ð(Ð(Øð 9Ý#œk¨/¸4ÀÑEÔE��å#œk¨"¨d°CÑ8Ô8��à ð 9Ý#œkÐ*;¸TÀ3ÑGÔG��å#œk¨"¨d°CÑ8Ô8�ØÐr$   )F)NN)	r0   Ú
__module__Ú__qualname__re   r!   Ú	lru_cacher{   r„   Ú__classcell__©rt   s   @r   rU   rU   W   sˆ   ø€ € € € € ð$
ð $
ð $
ð $
ð $
ðL €YÔ Ð&Ñ&Ô&ð>ð >ð >ñ 'Ô&ð>ð
 BFØ15ðð ð ð ð ð ð ð r$   rU   c                   ó.   — e Zd Zd„ Zg g ddddfd„Zd„ ZdS )ÚBasicUFuncTestc                 ó    — t          |¦  «        S r   )r7   ©rs   r3   s     r   r7   z"BasicUFuncTest._make_ufunc_usecase¡   s   € Ý" 5Ñ)Ô)Ð)r$   NÚifcFc                 ó4  ‡— |                       t          ¦  «         |                      |¦  «        }t          | j        ¦  «        |z   }	|	D �]L}
|
d         }|
d         }t          |t          ¦  «        }|r|Šn|f|j        z  Š||v rŒ=|rt          j	        ‰d         dk     ¦  «        rŒ^‰d         j
        j        |vrŒs|                      |||¦  «        }|f|j        z  }|f|j        z  }||z   }|                      ||¦  «        }t          ‰d         t          j        ¦  «        rˆfd„|D ¦   «         }ˆfd„|D ¦   «         }nd„ |D ¦   «         }d„ |D ¦   «         }d}t!          j        d¬	¦  «        5 }t!          j        d
¦  «          |g ‰¢|¢R Ž  d}|D ]E}t'          |j        t*          ¦  «        r)t-          |j        ¦  «                             |¦  «        rd}ŒF	 d d d ¦  «         n# 1 swxY w Y    |g ‰¢|¢R Ž  t3          ||¦  «        D ]‰\  }}d                     g d¢¦  «                             |j        |||||j
        |¦  «        }	 t          j                             ||d|¬¦  «         Œd# t<          $ r |rt?          d|
||¦  «         n‚ Y Œ†w xY w�ŒNd S )Nr   rW   c                 óf   •— g | ]-}t          j        ‰d          j        |j        j        ¬¦  «        ‘Œ.S ©r   r]   ©rL   ÚzerosÚshaperM   Úname©r)   Úout_tyr   s     €r   r+   z3BasicUFuncTest.basic_ufunc_test.<locals>.<listcomp>Ì   sL   ø€ ð ð ð ð õ ”H˜T !œWœ]Ø#)¤<Ô#4ð6ñ 6ô 6ðð ð r$   c                 óf   •— g | ]-}t          j        ‰d          j        |j        j        ¬¦  «        ‘Œ.S r‘   r’   r–   s     €r   r+   z3BasicUFuncTest.basic_ufunc_test.<locals>.<listcomp>Ñ   sC   ø€ ð ð ð àõ ”H˜T !œWœ]°&´,Ô2CÐDÑDÔDðð ð r$   c                 óN   — g | ]"}t          j        d |j        j        ¬¦  «        ‘Œ#S ©rW   r]   ©rL   r“   rM   r•   ©r)   r—   s     r   r+   z3BasicUFuncTest.basic_ufunc_test.<locals>.<listcomp>Ö   s<   € ð ð ð àõ ”H˜Q f¤lÔ&7Ð8Ñ8Ô8ðð ð r$   c                 óN   — g | ]"}t          j        d |j        j        ¬¦  «        ‘Œ#S rš   r›   rœ   s     r   r+   z3BasicUFuncTest.basic_ufunc_test.<locals>.<listcomp>Ú   s<   € ð ð ð àõ ”H˜Q f¤lÔ&7Ð8Ñ8Ô8ðð ð r$   FT)ÚrecordÚalwayszinvalid value encounteredú
)zufunc '{0}' failedzinputs ({1}):z{2}zgot({3})z{4}zexpected ({5}):z{6}é   )ÚdecimalÚerr_msgz!Output mismatch for invalid input) Úreset_module_warningsr0   r7   Úlistrr   rG   ÚtupleÚninrL   ÚanyrM   Úkindr„   Únoutr{   ÚndarrayÚwarningsÚcatch_warningsÚsimplefilterÚ
issubclassÚcategoryÚRuntimeWarningrH   ÚmessageÚ
startswithrQ   r-   r(   ÚtestingÚassert_array_almost_equalÚAssertionErrorÚprint)rs   r3   Úskip_inputsÚadditional_inputsr�   r‚   ÚkindsÚpositive_onlyry   rr   Úinput_tupleÚinput_operandr€   Úis_tuplerƒ   Úinput_typesÚoutput_typesÚargtysÚcfuncÚresultsÚexpectedÚinvalid_flagÚwarnlistÚwarnmsgÚthiswarnÚ
expected_iÚresult_iÚmsgr   s                               @r   Úbasic_ufunc_testzBasicUFuncTest.basic_ufunc_test¤   sö  ø€ ð 	×"Ò"¥8Ñ,Ô,Ð,à×)Ò)¨%Ñ0Ô0ˆå�d”kÑ"Ô"Ð%6Ñ6ˆà!ð Q	ñ Q	ˆKØ'¨œNˆMØ$ QœˆJå! -µÑ7Ô7ˆHØð 4Ø$��à%Ð'¨%¬)Ñ3�à˜[Ð(Ð(ØØð ¥¤¨¨Q¬°!ªÑ!4Ô!4ð Øð �Q””Ô"¨%Ð/Ð/Øà×5Ò5Ø˜OÐ->ñ@ô @ˆKð &˜-¨%¬)Ñ3ˆKØ'˜>¨E¬JÑ6ˆLØ  <Ñ/ˆFØ—M’M &¨&Ñ1Ô1ˆEå˜$˜qœ'¥2¤:Ñ.Ô.ð ðð ð ð ð #/ðñ ô �ð
ð ð ð à".ðñ ô ��ð
ð à".ðñ ô �ðð à".ðñ ô �ð
 !ˆLÝÔ(°Ð5Ñ5Ô5ð 	,¸ÝÔ% hÑ/Ô/Ð/Ø�Ð(˜Ð(˜xÐ(Ð(Ð(Ð(à5�Ø (ð ,ð ,�Hå" 8Ô#4µnÑEÔEð ,Ý # HÔ$4Ñ 5Ô 5× @Ò @ÀÑ IÔ Ið,à'+˜øð	,ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð ˆEÐ"�4Ð"˜'Ð"Ð"Ð"Ð"å(+¨H°gÑ(>Ô(>ð ð Ñ$�
˜HØ—i’ið !#ð !#ð !#ñ $ô $÷ %+¢F¨5¬>Ø+5°}Ø+6¸Ø+5Ô+;¸Zñ%Iô %Ið	 ðÝ”J×8Ò8Ø" HØ !Ø #ð 9ñ %ô %ð %ð %øõ &ð ð ð Ø#ð åÐAØ)¨8°ZñAô Að Að Að ðAð Aðøøøñð{Q	ð Q	s%   Å1A)G'Ç'G+	Ç.G+	É#I0É0 JÊJc                 óZ  — |                       |¦  «         t          j        dk     rd S t          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        d¦  «        t          j        d¦  «        ft          j        g d¢t          j        ¬¦  «        t          j        g d¢t          j        ¬¦  «        ft          j        g d¢t          j        ¬¦  «        t          j        g d¢t          j        ¬¦  «        ff}|                      |¦  «        }|D �]\  }}t          |¦  «        t          |¦  «        f}t          j
        t          j        dd¦  «        }||fz   }|                      ||¦  «        }	t          |t          j        ¦  «        r&t          j        |j        t          j        ¬¦  «        }
n t          j        dt          j        ¬¦  «        }
t          j        |
¦  «        } ||||¦  «          |	|||
¦  «         t          j                             ||
¦  «         �Œd S )	N)rW   é   rX   r   rW   )rX   rX   r   r   rW   rW   r]   )r   rW   r   rW   r   rW   r^   )rÌ   r   Únumpy_versionrL   ri   rh   rl   r7   r   r   rm   Úbool_r{   rG   r«   r“   r”   Ú
zeros_liker´   Úassert_equal)rs   Úcomparison_ufuncr¹   ry   ÚaÚbr¿   rƒ   rÁ   rÂ   ÚresultrÄ   s               r   Úsigned_unsigned_cmp_testz'BasicUFuncTest.signed_unsigned_cmp_test  sß  € Ø×ÒÐ.Ñ/Ô/Ð/åÔ&¨Ò0Ð0ØˆFõ ŒX�b‰\Œ\�2œ9 Q™<œ<Ð(ÝŒX�b‰\Œ\�2œ9 Q™<œ<Ð(ÝŒX�a‰[Œ[�"œ) A™,œ,Ð'ÝŒX�a‰[Œ[�"œ) A™,œ,Ð'ÝŒX�a‰[Œ[�"œ) A™,œ,Ð'ÝŒX�a‰[Œ[�"œ) A™,œ,Ð'åŒY�q‰\Œ\�2œ8 B™<œ<Ð(ÝŒY�q‰\Œ\�2œ8 A™;œ;Ð'ÝŒY�q‰\Œ\�2œ8 A™;œ;Ð'ÝŒY�q‰\Œ\�2œ8 B™<œ<Ð(ÝŒY�q‰\Œ\�2œ8 A™;œ;Ð'ÝŒY�q‰\Œ\�2œ8 A™;œ;Ð'åŒXÐ*Ð*Ð*µ"´(Ð;Ñ;Ô;ÝŒXÐ(Ð(Ð(µ´	Ð:Ñ:Ô:ð<õ ŒXÐ(Ð(Ð(µ´	Ð:Ñ:Ô:ÝŒXÐ*Ð*Ð*µ"´(Ð;Ñ;Ô;ð=ð%
Ðð, ×)Ò)Ð*:Ñ;Ô;ˆà%ð 	6ñ 	6‰DˆAˆqÝ! !™9œ9¥f¨Q¡i¤iÐ0ˆKÝœ+¥e¤k°1°cÑ:Ô:ˆKØ  K >Ñ1ˆFØ—M’M &¨&Ñ1Ô1ˆEå˜!�RœZÑ(Ô(ð 5Ýœ !¤'µ´Ð:Ñ:Ô:��åœ !­2¬8Ð4Ñ4Ô4�å”} VÑ,Ô,ˆHàˆF�1�a˜Ñ"Ô"Ð"ØˆE�!�Q˜ÑÔÐÝŒJ×#Ò# H¨fÑ5Ô5Ð5Ñ5ð	6ð 	6r$   )r0   r…   r†   r7   rÌ   r×   rC   r$   r   r‹   r‹       s\   € € € € € ð*ð *ð *ð 35ÈØ)-ÀØ$°Eð]ð ]ð ]ð ]ð~06ð 06ð 06ð 06ð 06r$   r‹   c                   óf  — e Z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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej        fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d „ Z#d!„ Z$d"„ Z%d#„ Z&d$„ Z'd%„ Z(d&„ Z)d'„ Z*d(„ Z+d)„ Z,d*„ Z-d+„ Z.d,„ Z/d-„ 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„ ZTeUdR„ ¦   «         ZVeUdS„ ¦   «         ZWdT„ ZXdU„ ZYdV„ ZZdW„ Z[dX„ Z\dY„ Z]dZ„ Z^d[„ Z_d\„ Z`d]„ ZadS )_Ú
TestUFuncsNc                 óà   — t           j        t           j        t          j        t           j        dd¦  «        t          j        t           j        dd¦  «        g}|                      ||¬¦  «         d S ©NrW   r^   )r¸   )r   rj   rk   rm   rÌ   )rs   r•   r¸   s      r   Úbasic_int_ufunc_testzTestUFuncs.basic_int_ufunc_test7  sZ   € åŒMÝŒMÝŒK�œ q¨#Ñ.Ô.ÝŒK�œ q¨#Ñ.Ô.ð	
ˆð 	×Ò˜d°ÐÑ<Ô<Ð<Ð<Ð<r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úadd©rs   s    r   Útest_add_ufunczTestUFuncs.test_add_ufuncC  s   € Ø×Ò�bœfÑ%Ô%Ð%Ð%Ð%r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úsubtractrß   s    r   Útest_subtract_ufunczTestUFuncs.test_subtract_ufuncF  ó   € Ø×Ò�bœkÑ*Ô*Ð*Ð*Ð*r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úmultiplyrß   s    r   Útest_multiply_ufunczTestUFuncs.test_multiply_ufuncI  rä   r$   c                 ód   — d }t           j        }|                      t          j        |¬¦  «         d S ©N©r�   )r   rk   rÌ   rL   Údivide©rs   Úint_out_types     r   Útest_divide_ufunczTestUFuncs.test_divide_ufuncL  s>   € ð ˆÝ”}ˆà×Ò�bœiØ.:ð 	ñ 	<ô 	<ð 	<ð 	<ð 	<r$   c                 óH   — |                       t          j        d¬¦  «         d S ©NÚf©rº   )rÌ   rL   Ú	logaddexprß   s    r   Útest_logaddexp_ufunczTestUFuncs.test_logaddexp_ufuncU  ó#   € Ø×Ò�bœl°#ÐÑ6Ô6Ð6Ð6Ð6r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Ú
logaddexp2rß   s    r   Útest_logaddexp2_ufuncz TestUFuncs.test_logaddexp2_ufuncX  s#   € Ø×Ò�bœm°3ÐÑ7Ô7Ð7Ð7Ð7r$   c                 ó\   — |                       t          j        t          j        ¬¦  «         d S ré   )rÌ   rL   Útrue_divider   rk   rß   s    r   Útest_true_divide_ufuncz!TestUFuncs.test_true_divide_ufunc[  s2   € Ø×Ò�bœnÝ.3¬mð 	ñ 	=ô 	=ð 	=ð 	=ð 	=r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úfloor_dividerß   s    r   Útest_floor_divide_ufuncz"TestUFuncs.test_floor_divide_ufunc_  s   € Ø×Ò�bœoÑ.Ô.Ð.Ð.Ð.r$   c                 ó¶   — t          j        t           j        dd¦  «        t           j        g}|                      t          j        t           j        |¬¦  «         d S )NrW   r^   )r�   r¸   )r   rm   rf   rÌ   rL   Únegativeri   )rs   r¸   s     r   Útest_negative_ufunczTestUFuncs.test_negative_ufuncb  sR   € õ ”{¥5¤<°°CÑ8Ô8½%¼,ÐGˆØ×Ò�bœk½5¼;Ø*5ð 	ñ 	7ô 	7ð 	7ð 	7ð 	7r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úpositiverß   s    r   Útest_positive_ufunczTestUFuncs.test_positive_ufunci  rä   r$   c                 óH   — |                       t          j        d¬¦  «         d S )NT)r»   )rÌ   rL   Úpowerrß   s    r   Útest_power_ufunczTestUFuncs.test_power_ufuncl  s#   € Ø×Ò�bœh°dÐÑ;Ô;Ð;Ð;Ð;r$   c                 óH   — |                       t          j        d¬¦  «         d S )NÚfcrò   )rÌ   rL   Úfloat_powerrß   s    r   Útest_float_power_ufuncz!TestUFuncs.test_float_power_ufunco  s#   € Ø×Ò�bœn°DÐÑ9Ô9Ð9Ð9Ð9r$   c                 óH   — |                       t          j        d¬¦  «         d S ©NÚiurò   )rÌ   rL   Úgcdrß   s    r   Útest_gcd_ufunczTestUFuncs.test_gcd_ufuncr  ó#   € Ø×Ò�bœf¨DÐÑ1Ô1Ð1Ð1Ð1r$   c                 óH   — |                       t          j        d¬¦  «         d S r  )rÌ   rL   Úlcmrß   s    r   Útest_lcm_ufunczTestUFuncs.test_lcm_ufuncu  r  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Ú	remainderrß   s    r   Útest_remainder_ufunczTestUFuncs.test_remainder_ufuncx  ó   € Ø×Ò�bœlÑ+Ô+Ð+Ð+Ð+r$   c                 óö   — t          j        t          j        t           j        ¦  «        j        ¦  «        t          j        d¦  «        ft          j        fg}|                      t           j        d|¬¦  «         d S )Né   Úifcu©rº   r¹   )rL   rh   ÚiinfoÚmaxr   rÌ   Úmod)rs   r¹   s     r   Útest_mod_ufunczTestUFuncs.test_mod_ufunc{  sq   € åŒi�œ¥¤Ñ+Ô+Ô/Ñ0Ô0µ"´)¸B±-´-Ð@Å%Ä,ÐOð
Ðð 	×Ò�bœf¨FØ0Að 	ñ 	Cô 	Cð 	Cð 	Cð 	Cr$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úfmodrß   s    r   Útest_fmod_ufunczTestUFuncs.test_fmod_ufunc‚  ó   € Ø×Ò�bœgÑ&Ô&Ð&Ð&Ð&r$   c                 ó8  — t          j        t          j        t           j        ¦  «        j        ¦  «        t          j        ft          j        t          j        t           j        ¦  «        j        ¦  «        t          j        ft          j        t          j        t           j        ¦  «        j        ¦  «        t          j        ft          j	        t          j        t           j	        ¦  «        j        ¦  «        t          j	        fg}|  
                    ||¬¦  «         d S )N)r¹   )rL   rf   r  r  r   rh   rj   ÚfinfoÚminrk   rÌ   )rs   r3   r¹   s      r   Útest_abs_ufunczTestUFuncs.test_abs_ufunc…  sÉ   € åŒY•r”x¥¤	Ñ*Ô*Ô.Ñ/Ô/µ´Ð>ÝŒY•r”x¥¤	Ñ*Ô*Ô.Ñ/Ô/µ´Ð>ÝŒZ�œ¥¤Ñ,Ô,Ô0Ñ1Ô1µ5´=ÐAÝŒZ�œ¥¤Ñ,Ô,Ô0Ñ1Ô1µ5´=ÐAð	
Ðð 	×Ò˜eØ0Að 	ñ 	Cô 	Cð 	Cð 	Cð 	Cr$   c                 óF   — |                       t          j        ¬¦  «         d S )N)r3   )r(  rL   Úabsoluterß   s    r   Útest_absolute_ufunczTestUFuncs.test_absolute_ufunc�  s!   € Ø×Ò¥"¤+ÐÑ.Ô.Ð.Ð.Ð.r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úfabsrß   s    r   Útest_fabs_ufunczTestUFuncs.test_fabs_ufunc’  ó#   € Ø×Ò�bœg¨SÐÑ1Ô1Ð1Ð1Ð1r$   c                 óH   — |                       t          j        d¬¦  «         d S ©NÚcfrò   )rÌ   rL   Úrintrß   s    r   Útest_rint_ufunczTestUFuncs.test_rint_ufunc•  ó#   € Ø×Ò�bœg¨TÐÑ2Ô2Ð2Ð2Ð2r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úsignrß   s    r   Útest_sign_ufunczTestUFuncs.test_sign_ufunc˜  r$  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úconjrß   s    r   Útest_conj_ufunczTestUFuncs.test_conj_ufunc›  r$  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úexprß   s    r   Útest_exp_ufunczTestUFuncs.test_exp_ufuncž  r  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úexp2rß   s    r   Útest_exp2_ufunczTestUFuncs.test_exp2_ufunc¡  r5  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úlogrß   s    r   Útest_log_ufunczTestUFuncs.test_log_ufunc¤  r  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úlog2rß   s    r   Útest_log2_ufunczTestUFuncs.test_log2_ufunc§  r5  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úlog10rß   s    r   Útest_log10_ufunczTestUFuncs.test_log10_ufuncª  ó#   € Ø×Ò�bœh¨dÐÑ3Ô3Ð3Ð3Ð3r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úexpm1rß   s    r   Útest_expm1_ufunczTestUFuncs.test_expm1_ufunc­  rK  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úlog1prß   s    r   Útest_log1p_ufunczTestUFuncs.test_log1p_ufunc°  rK  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úsqrtrß   s    r   Útest_sqrt_ufunczTestUFuncs.test_sqrt_ufunc³  r5  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úsquarerß   s    r   Útest_square_ufunczTestUFuncs.test_square_ufunc¶  s   € Ø×Ò�bœiÑ(Ô(Ð(Ð(Ð(r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úcbrtrß   s    r   Útest_cbrt_ufunczTestUFuncs.test_cbrt_ufunc¹  r/  r$   c                 óœ  — t          j        t           j        dd¦  «        t           j        t          j        t           j        dd¦  «        t           j        t          j        t           j        dd¦  «        t           j        t          j        t           j        dd¦  «        t           j        g}|                      t          j        |¬¦  «         d S rÛ   )	r   rm   rf   rg   rh   ri   rÌ   rL   Ú
reciprocal©rs   Úto_skips     r   Útest_reciprocal_ufuncz TestUFuncs.test_reciprocal_ufunc¼  s‹   € õ ”;�uœ|¨Q°Ñ4Ô4µe´lÝ”;�uœ{¨A¨sÑ3Ô3µU´[Ý”;�uœ|¨Q°Ñ4Ô4µe´lÝ”;�uœ{¨A¨sÑ3Ô3µU´[ðBˆð 	×Ò�bœm¸ÐÑAÔAÐAÐAÐAr$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Ú	conjugaterß   s    r   Útest_conjugate_ufunczTestUFuncs.test_conjugate_ufuncÆ  r  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úsinrß   s    r   Útest_sin_ufunczTestUFuncs.test_sin_ufuncÌ  r  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úcosrß   s    r   Útest_cos_ufunczTestUFuncs.test_cos_ufuncÏ  r  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Útanrß   s    r   Útest_tan_ufunczTestUFuncs.test_tan_ufuncÒ  r  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úarcsinrß   s    r   Útest_arcsin_ufunczTestUFuncs.test_arcsin_ufuncÕ  ó#   € Ø×Ò�bœi¨tÐÑ4Ô4Ð4Ð4Ð4r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úarccosrß   s    r   Útest_arccos_ufunczTestUFuncs.test_arccos_ufuncØ  ro  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úarctanrß   s    r   Útest_arctan_ufunczTestUFuncs.test_arctan_ufuncÛ  ro  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úarctan2rß   s    r   Útest_arctan2_ufunczTestUFuncs.test_arctan2_ufuncÞ  ó#   € Ø×Ò�bœj°ÐÑ5Ô5Ð5Ð5Ð5r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úhypotrß   s    r   Útest_hypot_ufunczTestUFuncs.test_hypot_ufuncá  ó#   € Ø×Ò�bœh¨cÐÑ2Ô2Ð2Ð2Ð2r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úsinhrß   s    r   Útest_sinh_ufunczTestUFuncs.test_sinh_ufuncä  r5  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úcoshrß   s    r   Útest_cosh_ufunczTestUFuncs.test_cosh_ufuncç  r5  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Útanhrß   s    r   Útest_tanh_ufunczTestUFuncs.test_tanh_ufuncê  r5  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úarcsinhrß   s    r   Útest_arcsinh_ufunczTestUFuncs.test_arcsinh_ufuncí  ry  r$   c                 óH   — |                       t          j        d¬¦  «         d S r1  )rÌ   rL   Úarccoshrß   s    r   Útest_arccosh_ufunczTestUFuncs.test_arccosh_ufuncð  ry  r$   c                 óž  — t          j        t           j        dd¦  «        t           j        t          j        t           j        dd¦  «        t           j        t          j        t           j        dd¦  «        t           j        t          j        t           j        dd¦  «        t           j        g}|                      t          j        |d¬¦  «         d S )NrW   r^   r2  )r¸   rº   )	r   rm   rf   rg   rh   ri   rÌ   rL   Úarctanhr]  s     r   Útest_arctanh_ufunczTestUFuncs.test_arctanh_ufuncó  s�   € õ ”;�uœ|¨Q°Ñ4Ô4µe´lÝ”;�uœ{¨A¨sÑ3Ô3µU´[Ý”;�uœ|¨Q°Ñ4Ô4µe´lÝ”;�uœ{¨A¨sÑ3Ô3µU´[ðBˆð
 	×Ò�bœj°gÀTÐÑJÔJÐJÐJÐJr$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Údeg2radrß   s    r   Útest_deg2rad_ufunczTestUFuncs.test_deg2rad_ufunc  ó#   € Ø×Ò�bœj°ÐÑ4Ô4Ð4Ð4Ð4r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úrad2degrß   s    r   Útest_rad2deg_ufunczTestUFuncs.test_rad2deg_ufunc  r“  r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Údegreesrß   s    r   Útest_degrees_ufunczTestUFuncs.test_degrees_ufunc	  r“  r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úradiansrß   s    r   Útest_radians_ufunczTestUFuncs.test_radians_ufunc  r“  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÜ   rL   Úbitwise_andrß   s    r   Útest_bitwise_and_ufuncz!TestUFuncs.test_bitwise_and_ufunc  ó   € Ø×!Ò!¥"¤.Ñ1Ô1Ð1Ð1Ð1r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÜ   rL   Ú
bitwise_orrß   s    r   Útest_bitwise_or_ufuncz TestUFuncs.test_bitwise_or_ufunc  s   € Ø×!Ò!¥"¤-Ñ0Ô0Ð0Ð0Ð0r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÜ   rL   Úbitwise_xorrß   s    r   Útest_bitwise_xor_ufuncz!TestUFuncs.test_bitwise_xor_ufunc  r   r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÜ   rL   Úinvertrß   s    r   Útest_invert_ufunczTestUFuncs.test_invert_ufunc  s   € Ø×!Ò!¥"¤)Ñ,Ô,Ð,Ð,Ð,r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÜ   rL   Úbitwise_notrß   s    r   Útest_bitwise_not_ufuncz!TestUFuncs.test_bitwise_not_ufunc  r   r$   c                 óD   — |                       t          j        ¦  «         d S r   )r×   rL   Úgreaterrß   s    r   Útest_greater_ufunczTestUFuncs.test_greater_ufunc-  s   € Ø×%Ò%¥b¤jÑ1Ô1Ð1Ð1Ð1r$   c                 óD   — |                       t          j        ¦  «         d S r   )r×   rL   Úgreater_equalrß   s    r   Útest_greater_equal_ufuncz#TestUFuncs.test_greater_equal_ufunc0  s   € Ø×%Ò%¥bÔ&6Ñ7Ô7Ð7Ð7Ð7r$   c                 óD   — |                       t          j        ¦  «         d S r   )r×   rL   Úlessrß   s    r   Útest_less_ufunczTestUFuncs.test_less_ufunc3  s   € Ø×%Ò%¥b¤gÑ.Ô.Ð.Ð.Ð.r$   c                 óD   — |                       t          j        ¦  «         d S r   )r×   rL   Ú
less_equalrß   s    r   Útest_less_equal_ufuncz TestUFuncs.test_less_equal_ufunc6  s   € Ø×%Ò%¥b¤mÑ4Ô4Ð4Ð4Ð4r$   c                 óD   — |                       t          j        ¦  «         d S r   )r×   rL   Ú	not_equalrß   s    r   Útest_not_equal_ufunczTestUFuncs.test_not_equal_ufunc9  s   € Ø×%Ò%¥b¤lÑ3Ô3Ð3Ð3Ð3r$   c                 óD   — |                       t          j        ¦  «         d S r   )r×   rL   Úequalrß   s    r   Útest_equal_ufunczTestUFuncs.test_equal_ufunc<  s   € Ø×%Ò%¥b¤hÑ/Ô/Ð/Ð/Ð/r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úlogical_andrß   s    r   Útest_logical_and_ufuncz!TestUFuncs.test_logical_and_ufunc?  ó   € Ø×Ò�bœnÑ-Ô-Ð-Ð-Ð-r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Ú
logical_orrß   s    r   Útest_logical_or_ufuncz TestUFuncs.test_logical_or_ufuncB  s   € Ø×Ò�bœmÑ,Ô,Ð,Ð,Ð,r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úlogical_xorrß   s    r   Útest_logical_xor_ufuncz!TestUFuncs.test_logical_xor_ufuncE  rÂ  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úlogical_notrß   s    r   Útest_logical_not_ufuncz!TestUFuncs.test_logical_not_ufuncH  rÂ  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úmaximumrß   s    r   Útest_maximum_ufunczTestUFuncs.test_maximum_ufuncK  ó   € Ø×Ò�bœjÑ)Ô)Ð)Ð)Ð)r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úminimumrß   s    r   Útest_minimum_ufunczTestUFuncs.test_minimum_ufuncN  rÏ  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úfmaxrß   s    r   Útest_fmax_ufunczTestUFuncs.test_fmax_ufuncQ  r$  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úfminrß   s    r   Útest_fmin_ufunczTestUFuncs.test_fmin_ufuncT  r$  r$   c                 óˆ   — t          j        ddgt           j        ¬¦  «        t          j        t          j        dd¦  «        fgS )NTFr]   rW   r^   )rL   rl   rÐ   r   rm   rß   s    r   Úbool_additional_inputsz!TestUFuncs.bool_additional_inputsZ  s<   € åŒX�t˜U�m­2¬8Ð4Ñ4Ô4ÝŒ[�œ a¨Ñ-Ô-ð/ð
ð 	
r$   c                 ón   — |                       t          j        d|                      ¦   «         ¬¦  «         d S ©NÚifcbr  )rÌ   rL   ÚisfiniterÚ  rß   s    r   Útest_isfinite_ufunczTestUFuncs.test_isfinite_ufunc`  s?   € Ø×ÒÝŒK˜vØ"×9Ò9Ñ;Ô;ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r$   c                 ón   — |                       t          j        d|                      ¦   «         ¬¦  «         d S rÜ  )rÌ   rL   ÚisinfrÚ  rß   s    r   Útest_isinf_ufunczTestUFuncs.test_isinf_ufuncf  ó?   € Ø×ÒÝŒH˜FØ"×9Ò9Ñ;Ô;ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r$   c                 ón   — |                       t          j        d|                      ¦   «         ¬¦  «         d S rÜ  )rÌ   rL   ÚisnanrÚ  rß   s    r   Útest_isnan_ufunczTestUFuncs.test_isnan_ufuncl  rã  r$   c                 óD   — |                       t          j        ¦  «         d S r   )rÌ   rL   Úsignbitrß   s    r   Útest_signbit_ufunczTestUFuncs.test_signbit_ufuncr  rÏ  r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úcopysignrß   s    r   Útest_copysign_ufunczTestUFuncs.test_copysign_ufuncu  s#   € Ø×Ò�bœk°ÐÑ5Ô5Ð5Ð5Ð5r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Ú	nextafterrß   s    r   Útest_nextafter_ufunczTestUFuncs.test_nextafter_ufuncx  rõ   r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úmodfrß   s    r   Útest_modf_ufunczTestUFuncs.test_modf_ufunc{  s#   € à×Ò�bœg¨SÐÑ1Ô1Ð1Ð1Ð1r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úfrexprß   s    r   Útest_frexp_ufunczTestUFuncs.test_frexp_ufuncƒ  s#   € à×Ò�bœh¨cÐÑ2Ô2Ð2Ð2Ð2r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úfloorrß   s    r   Útest_floor_ufunczTestUFuncs.test_floor_ufunc‡  r}  r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Úceilrß   s    r   Útest_ceil_ufunczTestUFuncs.test_ceil_ufuncŠ  r/  r$   c                 óH   — |                       t          j        d¬¦  «         d S rð   )rÌ   rL   Útruncrß   s    r   Útest_trunc_ufunczTestUFuncs.test_trunc_ufunc�  r}  r$   c                 óú   — t          j        t           j        t           j         gt           j        ¬¦  «        t	          j        t          j        dd¦  «        fg}|                      t           j        d|¬¦  «         d S )Nr]   rW   r^   rñ   r  )rL   rl   Úinfrk   r   rm   rÌ   Úspacing)rs   Ú
additionals     r   Útest_spacing_ufunczTestUFuncs.test_spacing_ufunc�  sr   € õ ”x¥¤­"¬&¨Ð 1½¼ÐDÑDÔDÝ”{¥5¤=°!°SÑ9Ô9ð;ð =ˆ
à×Ò�bœj°Ø0:ð 	ñ 	<ô 	<ð 	<ð 	<ð 	<r$   c                 ó�  — |j         }t          |¦  «        }dt          j        fdt          j        fdt          j        ft          j        ddgd¬¦  «        t          j        t          j        dd¦  «        ft          j        ddgd¬¦  «        t          j        t          j        dd¦  «        ft          j        d	dgd
¬¦  «        t          j        t          j        dd¦  «        fg}|}t          j        t          j        dd¦  «        t          j        t          j        dd¦  «        g}|}t          j
        |||¦  «        D �]}|\  }}	}
|d         }|d         }|	d         }|	d         }|dk    rI|t          j        t          j        dd¦  «        k    s$|t          j        t          j        dd¦  «        k    rŒx|dk    rU|t          j        t          j        dd¦  «        k    r1|t          j        k    r!t          j        t          j        dd¦  «        rŒÓ|dk    rV|t          j        t          j        dd¦  «        k    r2|t          j        k    r"t          j        t          j        dd¦  «        r�Œ/t          |t          j        ¦  «        st          |t          j        ¦  «        rt          |
t          j        ¦  «        s�Œ|||
f}|                      ||¦  «        }t          |t          j        ¦  «        rKt          j        |j        |
j        j        ¬¦  «        }t          j        |j        |
j        j        ¬¦  «        }n¥t          |t          j        ¦  «        rKt          j        |j        |
j        j        ¬¦  «        }t          j        |j        |
j        j        ¬¦  «        }n@t          j        d|
j        j        ¬¦  «        }t          j        d|
j        j        ¬¦  «        } ||||¦  «          ||||¦  «         t'          |
d|
¦  «        }|t          j        t          j        fv rdnd}|                      |||¬¦  «         �Œd S )NrW   rX   r[   r   r_   r]   r^   ra   rY   rc   rë   râ   rM   ÚsingleÚdouble)Úprec)r0   r7   r   rh   ri   rk   rL   rl   rm   Ú	itertoolsÚproductrf   rG   r{   r«   r“   ÚsizerM   r•   Úgetattrrj   Ú	complex64ÚassertPreciseEqual)rs   r3   Ú
ufunc_nameÚinputs1Úinputs2rÀ   ry   ÚvalsÚinput1Úinput2rƒ   Úinput1_operandÚinput1_typeÚinput2_operandÚinput2_typer   rÂ   rÖ   rÄ   Úscalar_typer  s                        r   Úbinary_ufunc_mixed_types_testz(TestUFuncs.binary_ufunc_mixed_types_test›  s  € Ø”^ˆ
Ý# EÑ*Ô*ˆà•”ÐØ•”ÐØ•%”-Ð åŒX�q˜!�f DÐ)Ñ)Ô)­5¬;µu´|ÀQÈÑ+LÔ+LÐMÝŒX�r˜1�g TÐ*Ñ*Ô*­E¬K½¼ÀQÈÑ,LÔ,LÐMÝŒX�t˜S�k¨Ð.Ñ.Ô.ÝŒ[�œ¨¨3Ñ/Ô/ð1ð2ˆð ˆåœ¥E¤K°°CÑ8Ô8Ýœ¥E¤M°1°cÑ:Ô:ð<ˆð ˆåÔ% g¨w¸ÑEÔEð 8	Añ 8	AˆDØ*.Ñ'ˆF�F˜Kà# AœYˆNØ  œ)ˆKà# AœYˆNØ  œ)ˆKð ˜XÒ%Ð%Ø¥5¤;­u¬|¸QÀÑ#DÔ#DÒDÐDØ¥5¤;­u¬|¸QÀÑ#DÔ#DÒDÐDØð ˜jÒ(Ð(Ø#¥u¤{µ5´<ÀÀCÑ'HÔ'HÒHÐHØ#¥u¤|Ò3Ð3Ýœ¥E¤K°°CÑ8Ô8ð 4àØ˜jÒ(Ð(Ø#¥u¤{µ5´<ÀÀCÑ'HÔ'HÒHÐHØ#¥u¤|Ò3Ð3Ýœ¥E¤K°°CÑ8Ô8ð 4áå˜K­¬Ñ5Ô5ð Ý˜{­E¬KÑ8Ô8ðå" ;µ´Ñ<Ô<ðñ à ¨kÐ:ˆDØ—M’M &¨$Ñ/Ô/ˆEå˜.­"¬*Ñ5Ô5ð EÝœ .Ô"5Ø(3Ô(9Ô(>ð@ñ @ô @�åœ8 NÔ$7Ø*5Ô*;Ô*@ðBñ Bô B��å˜N­B¬JÑ7Ô7ð EÝœ .Ô"5Ø(3Ô(9Ô(>ð@ñ @ô @�åœ8 NÔ$7Ø*5Ô*;Ô*@ðBñ Bô B��õ œ !¨;Ô+<Ô+AÐBÑBÔB�Ýœ8 A¨[Ô->Ô-CÐDÑDÔD�àˆE�. .°&Ñ9Ô9Ð9ØˆF�> >°8Ñ<Ô<Ð<å! +¨w¸ÑDÔDˆKà"¥u¤}µe´oÐ&FÐFÐFð �Hà!ð ð ×#Ò# H¨f¸4Ð#Ñ@Ô@Ð@Ñ@ðq8	Að 8	Ar$   c                 ó¬
  — t          t          j        ¦  «        }t          j        dd¬¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             dd¦  «        g}t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             ddd¦  «        g}t          ||¦  «        D ]À\  }}t          j        t          j	        |j
        d¦  «        }t          j        t          j        |j
        d¦  «        }||f}|                      ||¦  «        }	t          j        |j        |j        ¬¦  «        }
t          j        ||
¦  «          |	||¦  «         |                      ||
¦  «         ŒÁt          t          j        ¦  «        }t          j        dd¬¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             ddd¦  «        g	}|}t#          j        ||¦  «        D ]õ\  }}t          j        t          j	        |j
        d¦  «        }t          j        t          j	        |j
        d¦  «        }t          j        t          j	        t'          |j
        |j
        ¦  «        d¦  «        }|||f}|                      ||¦  «        }	t          j        ||¦  «        }
t          j        |
j        d¬¦  «        } |	|||¦  «         |                      ||
¦  «         Œöd S )	Né   r_   r]   rW   é	   ra   é   r^   )r7   rL   r   ÚarangeÚreshaper“   rQ   r   rm   rh   r}   ri   r{   r”   rM   r  rÞ   r  r	  r  )rs   ry   Úinput_operandsÚoutput_operandsrD   rÖ   r€   rƒ   r   rÂ   rÄ   Úinput1_operandsÚinput2_operandsrE   r  r  s                   r   Útest_broadcastingzTestUFuncs.test_broadcastingé  s«  € õ %¥R¤[Ñ1Ô1ˆõ ŒI�a˜tÐ$Ñ$Ô$ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨qÑ1Ô1ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨qÑ1Ô1ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨qÑ1Ô1ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨qÑ1Ô1ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1Ñ5Ô5ð7ˆõ ŒH�U $Ð'Ñ'Ô'×/Ò/°°!Ñ4Ô4ÝŒH�U $Ð'Ñ'Ô'×/Ò/°°!Ñ4Ô4ÝŒH�U $Ð'Ñ'Ô'×/Ò/°°!Ñ4Ô4ÝŒH�Y dÐ+Ñ+Ô+×3Ò3°A°a¸Ñ:Ô:ÝŒH�Y dÐ+Ñ+Ô+×3Ò3°A°a¸Ñ:Ô:ÝŒH�Y dÐ+Ñ+Ô+×3Ò3°A°a¸Ñ:Ô:ð<ˆõ ˜^¨_Ñ=Ô=ð 	6ð 	6‰IˆAˆvåœ¥U¤\°1´6¸3Ñ?Ô?ˆJÝœ+¥e¤k°6´;ÀÑDÔDˆKØ Ð,ˆDà—M’M &¨$Ñ/Ô/ˆEå”x ¤°F´LÐAÑAÔAˆHÝŒK˜˜8Ñ$Ô$Ð$àˆE�!�VÑÔÐà×#Ò# F¨HÑ5Ô5Ð5Ð5õ %¥R¤VÑ,Ô,ˆõ ŒI�a˜tÐ$Ñ$Ô$ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1Ñ5Ô5ÝŒI�i tÐ,Ñ,Ô,×4Ò4°Q°q¸Ñ;Ô;ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨qÑ1Ô1ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨qÑ1Ô1ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨q°Ñ3Ô3ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1°QÑ7Ô7ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1°QÑ7Ô7ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1°QÑ7Ô7ð	9ˆð *ˆåÔ% o°ÑGÔGð 	6ð 	6‰DˆAˆqåœ+¥e¤l°A´F¸CÑ@Ô@ˆKÝœ+¥e¤l°A´F¸CÑ@Ô@ˆKÝœ+¥e¤lµC¸¼ÀÄÑ4GÔ4GÈÑMÔMˆKØ ¨kÐ:ˆDà—M’M &¨$Ñ/Ô/ˆEå”v˜a ‘|”|ˆHÝ”X˜hœn°DÐ9Ñ9Ô9ˆFàˆE�!�Q˜ÑÔÐØ×#Ò# F¨HÑ5Ô5Ð5Ð5ð	6ð 	6r$   c                 óØ   — t          j        t           j        dd¦  «        }||f}t          ||f¦  «        d„ ¦   «         }|                      |j        |         j        j        |¦  «         d S )NrW   r^   c                 ó,   — t          j        | |¦  «        S r   ©rL   rÞ   ©Úa0Úa1s     r   Úmyaddz2TestUFuncs.test_implicit_output_npm.<locals>.myadd2  s   € å”6˜"˜b‘>”>Ð!r$   )r   rm   rh   r   ÚassertEqualÚ	overloadsÚ	signatureÚreturn_type)rs   Úarr_tyÚsigr+  s       r   Útest_implicit_output_npmz#TestUFuncs.test_implicit_output_npm,  su   € õ ”�Uœ\¨1¨cÑ2Ô2ˆØ�vÐˆå	ˆv�vÐÑ	Ô	ð	"ð 	"ñ 
 Ô	ð	"ð 	×Ò˜œ¨Ô-Ô7ÔCÀVÑLÔLÐLÐLÐLr$   c                 ó\  — d„ }t          j        dd¬¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             dd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             ddd¦  «        t          j        dd¬¦  «                             ddd¦  «        g	}|}t          j        ||¦  «        D ]¬\  }}t          j        t
          j        |j        d¦  «        }t          j        t
          j        |j        d¦  «        }||f}|  	                    ||d	¬
¦  «        }	t          j
        ||¦  «        }
 |	||¦  «        }t           j                             |
|¦  «         Œ­d S )Nc                 ó,   — t          j        | |¦  «        S r   r'  r(  s     r   ry   zATestUFuncs.test_broadcast_implicit_output_npm_nrt.<locals>.pyfunc9  ó   € Ý”6˜"˜b‘>”>Ð!r$   r  r_   r]   r  r  rW   r^   T©rz   )rL   r  r  r  r	  r   rm   rh   r}   r{   rÞ   r´   Úassert_array_equal)rs   ry   r"  r#  rD   rE   r  r  r   rÂ   rÄ   rÖ   s               r   Ú&test_broadcast_implicit_output_npm_nrtz1TestUFuncs.test_broadcast_implicit_output_npm_nrt8  sÿ  € ð	"ð 	"ð 	"õ ŒI�a˜tÐ$Ñ$Ô$ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1Ñ5Ô5ÝŒI�i tÐ,Ñ,Ô,×4Ò4°Q°q¸Ñ;Ô;ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨qÑ1Ô1ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨qÑ1Ô1ÝŒI�a˜tÐ$Ñ$Ô$×,Ò,¨Q¨q°Ñ3Ô3ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1°QÑ7Ô7ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1°QÑ7Ô7ÝŒI�e 4Ð(Ñ(Ô(×0Ò0°°1°QÑ7Ô7ð	9ˆð *ˆåÔ% o°ÑGÔGð 
	<ð 
	<‰DˆAˆqåœ+¥e¤l°A´F¸CÑ@Ô@ˆKÝœ+¥e¤l°A´F¸CÑ@Ô@ˆKØ Ð-ˆDà—M’M &¨$°D�MÑ9Ô9ˆEå”v˜a ‘|”|ˆHØ�U˜1˜a‘[”[ˆFÝŒJ×)Ò)¨(°FÑ;Ô;Ð;Ð;ð
	<ð 
	<r$   c                 óì  — d„ }t          j        ddd¦  «                             dd¦  «        }t          j        |d¬¦  «        }|                     dd¦  «        j        d         }t          |¦  «        }|j        j        r|j        d	k    sJ ‚t          |¦  «        }|j        j	        r|j        dk    sJ ‚t          |¦  «        }|j        d
k    sJ ‚|j        j        rJ ‚|j        j	        rJ ‚t          t          j        |||gd¦  «        ¦  «        }|||fgz  }|||fgz  }|||fgz  }|D ]Ç\  }	}
t          |	¦  «        t          |
¦  «        f}|                      ||d¬¦  «        } ||	|
¦  «        } ||	|
¦  «        }|                      |j        j        |j        j        ¦  «         |                      |j        j	        |j        j	        ¦  «         t           j                             ||¦  «         ŒÈd S )Nc                 ó,   — t          j        | |¦  «        S r   r'  r(  s     r   ry   z=TestUFuncs.test_implicit_output_layout_binary.<locals>.pyfuncV  r5  r$   r   rW   é   r   r¡   ÚF©Úorderr^   ÚAé   Tr6  )rL   Úlinspacer  rl   ÚTr   ÚflagsÚc_contiguousÚlayoutÚf_contiguousr¥   r  Úpermutationsr{   r,  r´   r7  )rs   ry   ÚXÚYÚZÚXtyÚYtyÚZtyÚ	testcasesÚarg0Úarg1r   rÂ   rÄ   rÖ   s                  r   Ú"test_implicit_output_layout_binaryz-TestUFuncs.test_implicit_output_layout_binaryU  s  € ð	"ð 	"ð 	"õ ŒK˜˜1˜bÑ!Ô!×)Ò)¨!¨QÑ/Ô/ˆåŒH�Q˜cÐ"Ñ"Ô"ˆà�IŠI�a˜‰OŒOÔ˜aÔ ˆå�Q‰iŒiˆØŒwÔ#Ð9¨¬
°cÒ(9Ð(9Ð(9Ð(9Ý�Q‰iŒiˆØŒwÔ#Ð9¨¬
°cÒ(9Ð(9Ð(9Ð(9Ý�Q‰iŒiˆØŒz˜SÒ Ð Ð Ð Ø”7Ô'Ð'Ð'Ð'Ø”7Ô'Ð'Ð'Ð'å�Ô/°°A°q°	¸1Ñ=Ô=Ñ>Ô>ˆ	Ø�q˜!�f�XÑˆ	Ø�q˜!�f�XÑˆ	Ø�q˜!�f�XÑˆ	à#ð 
	<ð 
	<‰JˆD�$Ý˜4‘L”L¥&¨¡,¤,Ð/ˆDØ—M’M &¨$°D�MÑ9Ô9ˆEØ�v˜d DÑ)Ô)ˆHØ�U˜4 Ñ&Ô&ˆFà×Ò˜Xœ^Ô8Ø#œ\Ô6ñ8ô 8ð 8à×Ò˜Xœ^Ô8Ø#œ\Ô6ñ8ô 8ð 8åŒJ×)Ò)¨(°FÑ;Ô;Ð;Ð;ð
	<ð 
	<r$   c                 óR  — d„ }t          j        ddd¦  «                             dd¦  «        }t          j        |d¬¦  «        }|                     dd¦  «        j        d         }t          |¦  «        }|j        j        r|j        d	k    sJ ‚t          |¦  «        }|j        j	        r|j        dk    sJ ‚t          |¦  «        }|j        d
k    sJ ‚|j        j        rJ ‚|j        j	        rJ ‚|||fD ]´}t          |¦  «        f}	|  
                    ||	d¬¦  «        }
 ||¦  «        } |
|¦  «        }|                      |j        j        |j        j        ¦  «         |                      |j        j	        |j        j	        ¦  «         t           j                             ||¦  «         Œµd S )Nc                 ó*   — t          j        | ¦  «        S r   ©rL   rS  )r)  s    r   ry   z<TestUFuncs.test_implicit_output_layout_unary.<locals>.pyfunc{  s   € Ý”7˜2‘;”;Ðr$   r   rW   r;  r   r¡   r<  r=  r^   r?  Tr6  )rL   rA  r  rl   rB  r   rC  rD  rE  rF  r{   r,  r´   r7  )rs   ry   rH  rI  rJ  rK  rL  rM  rO  r   rÂ   rÄ   rÖ   s                r   Ú!test_implicit_output_layout_unaryz,TestUFuncs.test_implicit_output_layout_unaryz  s¹  € ð	ð 	ð 	õ ŒK˜˜1˜bÑ!Ô!×)Ò)¨!¨QÑ/Ô/ˆåŒH�Q˜cÐ"Ñ"Ô"ˆà�IŠI�a˜‰OŒOÔ˜aÔ ˆå�Q‰iŒiˆØŒwÔ#Ð9¨¬
°cÒ(9Ð(9Ð(9Ð(9Ý�Q‰iŒiˆØŒwÔ#Ð9¨¬
°cÒ(9Ð(9Ð(9Ð(9Ý�Q‰iŒiˆØŒz˜SÒ Ð Ð Ð Ø”7Ô'Ð'Ð'Ð'Ø”7Ô'Ð'Ð'Ð'à˜˜1�Ið 
	<ð 
	<ˆDÝ˜4‘L”L�?ˆDØ—M’M &¨$°D�MÑ9Ô9ˆEØ�v˜d‘|”|ˆHØ�U˜4‘[”[ˆFà×Ò˜Xœ^Ô8Ø#œ\Ô6ñ8ô 8ð 8à×Ò˜Xœ^Ô8Ø#œ\Ô6ñ8ô 8ð 8åŒJ×)Ò)¨(°FÑ;Ô;Ð;Ð;ð
	<ð 
	<r$   r   )br0   r…   r†   rÜ   rà   rã   rç   rî   rô   rø   rû   rþ   r  r  r  r  r  r  r  r   r#  rL   Úabsr(  r+  r.  r4  r8  r;  r>  rA  rD  rG  rJ  rN  rQ  rT  rW  rZ  r_  rb  re  rh  rk  rn  rr  ru  rx  r|  r€  rƒ  r†  r‰  rŒ  r�  r’  r–  r™  rœ  rŸ  r£  r¦  r©  r¬  r¯  r²  rµ  r¸  r»  r¾  rÁ  rÅ  rÈ  rË  rÎ  rÒ  rÕ  rØ  rÚ  rß  râ  ræ  ré  rì  rï  r#   rò  rõ  rø  rû  rþ  r  r  r$  r2  r8  rQ  rU  rC   r$   r   rÙ   rÙ   6  s½  € € € € € ð=ð =ð =ð =ð&ð &ð &ð+ð +ð +ð+ð +ð +ð<ð <ð <ð7ð 7ð 7ð8ð 8ð 8ð=ð =ð =ð/ð /ð /ð7ð 7ð 7ð+ð +ð +ð<ð <ð <ð:ð :ð :ð2ð 2ð 2ð2ð 2ð 2ð,ð ,ð ,ðCð Cð Cð'ð 'ð 'ð $&¤6ð Cð Cð Cð Cð/ð /ð /ð2ð 2ð 2ð3ð 3ð 3ð'ð 'ð 'ð'ð 'ð 'ð2ð 2ð 2ð3ð 3ð 3ð2ð 2ð 2ð3ð 3ð 3ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð3ð 3ð 3ð)ð )ð )ð2ð 2ð 2ðBð Bð Bð,ð ,ð ,ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð6ð 6ð 6ð3ð 3ð 3ð3ð 3ð 3ð3ð 3ð 3ð3ð 3ð 3ð6ð 6ð 6ð6ð 6ð 6ðKð Kð Kð 5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð2ð 2ð 2ð1ð 1ð 1ð2ð 2ð 2ð-ð -ð -ð2ð 2ð 2ð2ð 2ð 2ð8ð 8ð 8ð/ð /ð /ð5ð 5ð 5ð4ð 4ð 4ð0ð 0ð 0ð.ð .ð .ð-ð -ð -ð.ð .ð .ð.ð .ð .ð*ð *ð *ð*ð *ð *ð'ð 'ð 'ð'ð 'ð 'ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð*ð *ð *ð6ð 6ð 6ð7ð 7ð 7ð ð2ð 2ñ „^ð2ð ð3ð 3ñ „^ð3ð3ð 3ð 3ð2ð 2ð 2ð3ð 3ð 3ð<ð <ð <ðLAð LAð LAð\A6ð A6ð A6ðF
Mð 
Mð 
Mð<ð <ð <ð:#<ð #<ð #<ðJ<ð <ð <ð <ð <r$   rÙ   c                   ó8  — e Zd Zd„ Zdg g ddfd„Zdg g dddfd„Zd„ Zd„ Zd	„ Z	 d0d
„Z		 d0d„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+„ Z*d,„ Z+d-„ Z,d.„ Z-d/„ Z.dS )1ÚTestArrayOperatorsc                 óš   — |                       |j        j        |j        j        ¦  «         t          j                             ||¦  «         d S r   )r,  rM   r©   rL   r´   rµ   )rs   rÄ   Úgots      r   Ú_check_resultsz!TestArrayOperators._check_results�  s?   € Ø×Ò˜œÔ,¨c¬i¬nÑ=Ô=Ð=Ý
Œ
×,Ò,¨X°sÑ;Ô;Ð;Ð;Ð;r$   TNc                 óV  — t          |¦  «        }t          | j        ¦  «        }|                     |¦  «         |}	|D ]k}
|
\  }}||v st	          |t
          j        ¦  «        sŒ&|                      |	|f|¬¦  «        } |	|¦  «        } ||¦  «        }|                      ||¦  «         Œld S )Nr6  )	r>   r¥   rr   ÚextendrG   r   rm   r{   r[  )rs   Úoperatorrz   r¸   r¹   r�   r‚   Úoperator_funcrr   ry   r¼   r½   r€   rÂ   rÄ   rZ  s                   r   Úunary_op_testz TestArrayOperators.unary_op_test¡  sÍ   € õ 5°XÑ>Ô>ˆÝ�d”kÑ"Ô"ˆØ�ŠÐ'Ñ(Ô(Ð(ØˆØ!ð 
	/ð 
	/ˆKØ(3Ñ%ˆM˜:à˜{Ð*Ð*Ý# Jµ´Ñ<Ô<ð +àà—M’M &¨:¨-¸S�MÑAÔAˆEØ�v˜mÑ,Ô,ˆHØ�%˜Ñ&Ô&ˆCØ×Ò ¨#Ñ.Ô.Ð.Ð.ð
	/ð 
	/r$   Fc                 óì  — t          |¦  «        }t          | j        ¦  «        }	|	                     |¦  «         |}
t          j                             d¦  «        }|	D �]}|\  }}t          j        t          |d|¦  «        ¦  «        }|}||v rŒ2|rt	          j
        d|¬¦  «        d         }t          |t          j        ¦  «        r |}|}|rt	          j        ||k     ¦  «        rŒ‰nB|                     ddd¦  «                             |¦  «        }t#          |¦  «        }|r||k     rŒÌ||f}|                      |
||¬¦  «        } |
||¦  «        } |||¦  «        }|                      ||¦  «         �Œd S )NrW   rM   r]   r   éd   é
   r6  )r@   r¥   rr   r]  rL   ÚrandomÚRandomStater   Úas_dtyper  r“   rG   r   rm   r¨   ÚuniformÚastyper   r{   r[  )rs   r^  rz   r¸   r¹   r�   r‚   Úpositive_rhsr_  rr   ry   Úrandom_stater¼   Úinput_operand1r€   Úinput_dtypeÚinput_type1ÚzeroÚinput_operand0Úinput_type0r   rÂ   rÄ   rZ  s                           r   Úbinary_op_testz!TestArrayOperators.binary_op_test´  s±  € õ 6°hÑ?Ô?ˆÝ�d”kÑ"Ô"ˆØ�ŠÐ'Ñ(Ô(Ð(Øˆõ ”y×,Ò,¨QÑ/Ô/ˆØ!ð 	/ñ 	/ˆKØ)4Ñ&ˆN˜JÝ'Ô0Ý˜
 G¨ZÑ8Ô8ñ:ô :ˆKà$ˆKà˜[Ð(Ð(Øàð 9Ý”x ¨Ð5Ñ5Ô5°aÔ8�õ ˜*¥e¤kÑ2Ô2ð 
Ø!/�Ø(�Øð ¥B¤F¨>¸DÒ+@Ñ$AÔ$Að Øøà".×"6Ò"6°q¸#¸rÑ"BÔ"B×!JÒ!JØñ"!ô "!�å$ ^Ñ4Ô4�Øð  N°TÒ$9Ð$9Øà Ð-ˆDØ—M’M &¨$°C�MÑ8Ô8ˆEØ�v˜n¨nÑ=Ô=ˆHØ�%˜¨Ñ7Ô7ˆCØ×Ò ¨#Ñ.Ô.Ð.Ñ.ð;	/ð 	/r$   c                 ó¤   — dt           j        fdt           j        ft          j        ddg¦  «        t          j        t           j        dd¦  «        fgS )NTFrW   r^   )r   ÚbooleanrL   rl   rm   rß   s    r   Úbitwise_additional_inputsz,TestArrayOperators.bitwise_additional_inputsÞ  sH   € ð •5”=Ð!Ø•E”MÐ"ÝŒX�t˜U�mÑ$Ô$¥e¤kµ%´-ÀÀCÑ&HÔ&HÐIð
ð 	
r$   c           	      óú   — |                      dg ¦  «        }|t          j        t          j        t          j        t          j        dd¦  «        t          j        t          j        dd¦  «        gz  } | j        |i |¤ŽS )Nr¸   rW   r^   )Ú
setdefaultr   rj   rk   rm   rq  )rs   r   Úkwsr¸   s       r   Úbinary_int_op_testz%TestArrayOperators.binary_int_op_testç  sm   € Ø—n’n ]°BÑ7Ô7ˆØÝŒM�5œ=ÝŒK�œ q¨#Ñ.Ô.ÝŒK�œ q¨#Ñ.Ô.ð
ñ 	
ˆð
 #ˆtÔ" DÐ0¨CÐ0Ð0Ð0r$   c                 óv   — |                      dg ¦  «        }||                      ¦   «         z  } | j        |i |¤ŽS )Nr¹   )rv  rt  rx  )rs   r   rw  r¹   s       r   Úbinary_bitwise_op_testz)TestArrayOperators.binary_bitwise_op_testð  sF   € ØŸNšNÐ+>ÀÑCÔCÐØ˜T×;Ò;Ñ=Ô=Ñ=ÐØ&ˆtÔ&¨Ð4°Ð4Ð4Ð4r$   c                 ó   ‡‡‡— t          |¦  «        }|}|r| j        }	nt          j        j        }	ˆfd„|D ¦   «         }
ˆfd„‰D ¦   «         }ˆfd„‰D ¦   «         }||z   }t          j        |
|¦  «        D ]‰\  }}t          |¦  «        }t          |¦  «        }||f}|                      ||¦  «        }| 	                    ¦   «         } |||¦  «         | 	                    ¦   «         } |||¦  «          |	||¦  «         ŒŠd S )Nc                 ó<   •— g | ]}t          j        ‰|¬ ¦  «        ‘ŒS ©r]   ©rL   rl   )r)   rM   Ú
lhs_valuess     €r   r+   z6TestArrayOperators.inplace_op_test.<locals>.<listcomp>  ó8   ø€ ð /ð /ð /Øõ ”h˜z°Ð7Ñ7Ô7ð /ð /ð /r$   c                 ó<   •— g | ]}t          j        ‰|¬ ¦  «        ‘ŒS r}  r~  )r)   rM   Ú
rhs_valuess     €r   r+   z6TestArrayOperators.inplace_op_test.<locals>.<listcomp>  r€  r$   c                 ó0   •— g | ]}‰D ]} ||¦  «        ‘ŒŒS rC   rC   )r)   ÚvrM   Ú
rhs_dtypess      €r   r+   z6TestArrayOperators.inplace_op_test.<locals>.<listcomp>  s.   ø€ ÐLÐLÐL AÀÐLÐL¸�u�u˜Q‘x”xÐLÐLÐLÐLr$   )
rI   r  rL   r´   Úassert_allcloser  r	  r   r{   Úcopy)rs   r^  r  r‚  Ú
lhs_dtypesr…  Úpreciser_  ry   Ú	assertionÚ
lhs_inputsÚ
rhs_arraysÚrhs_scalarsÚ
rhs_inputsÚlhsÚrhsÚlhs_typeÚrhs_typer   rÂ   rÄ   rZ  s     `` `                r   Úinplace_op_testz"TestArrayOperators.inplace_op_testõ  sS  øøø€ å6°xÑ@Ô@ˆØˆàð 	3ØÔ/ˆIˆIåœ
Ô2ˆIð/ð /ð /ð /Ø#-ð/ñ /ô /ˆ
ð/ð /ð /ð /Ø#-ð/ñ /ô /ˆ
àLÐLÐLÐL¨ÐLÑLÔLˆØ +Ñ-ˆ
å!Ô)¨*°jÑAÔAð 		%ð 		%‰HˆC�Ý˜c‘{”{ˆHÝ˜c‘{”{ˆHØ˜hÐ'ˆDØ—M’M &¨$Ñ/Ô/ˆEØ—x’x‘z”zˆHØˆF�8˜SÑ!Ô!Ð!Ø—(’(‘*”*ˆCØˆE�#�s‰OŒOˆOØˆI�c˜8Ñ$Ô$Ð$Ð$ð		%ð 		%r$   c           	      ó¦   — |                       |||t          j        t          j        ft          j        t          j        t          j        f|¬¦  «        S )N©r‰  )r“  rL   rj   rk   ri   )rs   r^  r  r‚  r‰  s        r   Úinplace_float_op_testz(TestArrayOperators.inplace_float_op_test  sF   € ð ×#Ò# H¨j¸*Ý%'¤Zµ´Ð$<Ý%'¤Zµ´½R¼XÐ$FØ,3ð $ñ 5ô 5ð 	5r$   c                 ó¦   — |                       |||t          j        t          j        t          j        ft          j        t          j        f¦  «         d S r   )r“  rL   ro   rg   ri   rf   ©rs   r^  r  r‚  s       r   Úinplace_int_op_testz&TestArrayOperators.inplace_int_op_test  sF   € Ø×Ò˜X z°:Ý œh­¬µ"´(Ð;Ý œh­¬	Ð2ñ	4ô 	4ð 	4ð 	4ð 	4r$   c                 ó¨   — |                       |||¦  «         |                      |||t          j        ft          j        t          j        f¦  «         d S r   )r™  r“  rL   rÐ   r˜  s       r   Úinplace_bitwise_op_testz*TestArrayOperators.inplace_bitwise_op_test"  sY   € Ø× Ò  ¨:°zÑBÔBÐBØ×Ò˜X z°:Ý œh˜[­2¬8µR´XÐ*>ñ	@ô 	@ð 	@ð 	@ð 	@r$   c                 ó0   — |                       d¦  «         d S ©Nú+©r`  rß   s    r   Útest_unary_positive_array_opz/TestArrayOperators.test_unary_positive_array_op*  ó   € Ø×Ò˜3ÑÔÐÐÐr$   c                 ó0   — |                       d¦  «         d S ©Nú-rŸ  rß   s    r   Útest_unary_negative_array_opz/TestArrayOperators.test_unary_negative_array_op-  r¡  r$   c                 ó  — |                       dt          j        t          j        t          j        t          j        dd¦  «        t          j        t          j        dd¦  «        g|                      ¦   «         ¬¦  «         d S )Nú~rW   r^   )r¸   r¹   )r`  r   rj   rk   rm   rt  rß   s    r   Útest_unary_invert_array_opz-TestArrayOperators.test_unary_invert_array_op0  sv   € Ø×Ò˜3Ý(-¬µu´}Ý(-¬µE´MÀ1ÀcÑ(JÔ(JÝ(-¬µE´MÀ1ÀcÑ(JÔ(Jð(Lð .2×-KÒ-KÑ-MÔ-Mð	 	ñ 	Oô 	Oð 	Oð 	Oð 	Or$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz+=©rX   ç      ø?r  ©éûÿÿÿr   ç      @)r–  r^  Úiaddrß   s    r   Útest_inplace_addz#TestArrayOperators.test_inplace_add:  óJ   € Ø×"Ò" 4¨¨¨°|°|°|ÑDÔDÐDØ×"Ò"¥8¤=°,°,°,ÀÀÀÑMÔMÐMÐMÐMr$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz-=rª  r¬  )r–  r^  Úisubrß   s    r   Útest_inplace_subz#TestArrayOperators.test_inplace_sub>  r±  r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz*=rª  r¬  )r–  r^  Úimulrß   s    r   Útest_inplace_mulz#TestArrayOperators.test_inplace_mulB  r±  r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz//=rª  ©r­  g      ô?r®  )r–  r^  Ú	ifloordivrß   s    r   Útest_inplace_floordivz(TestArrayOperators.test_inplace_floordivF  sV   € Ø×"Ò" 5¨,¨,¨,¸¸¸ÑHÔHÐHØ×"Ò"¥8Ô#5°|°|°|Ø#2 ? ?ñ	4ô 	4ð 	4ð 	4ð 	4r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz/=rª  r¬  r¹  )r–  r^  Úitruedivrß   s    r   Útest_inplace_divz#TestArrayOperators.test_inplace_divK  sV   € Ø×"Ò" 4¨¨¨°|°|°|ÑDÔDÐDØ×"Ò"¥8Ô#4°l°l°lØ#2 ? ?ñ	4ô 	4ð 	4ð 	4ð 	4r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz%=rª  ©r­  r@  r®  )r–  r^  Úimodrß   s    r   Útest_inplace_remainderz)TestArrayOperators.test_inplace_remainderP  r±  r$   c                 óŽ   — |                       dg d¢g d¢d¬¦  «         |                       t          j        g d¢g d¢d¬¦  «         d S )Nz**=rª  rÀ  Fr•  )r–  r^  Úipowrß   s    r   Útest_inplace_powz#TestArrayOperators.test_inplace_powT  sj   € Ø×"Ò" 5¨,¨,¨,¸¸¸Ø+0ð 	#ñ 	2ô 	2ð 	2à×"Ò"¥8¤=°,°,°,ÀÀÀØ+0ð 	#ñ 	2ô 	2ð 	2ð 	2ð 	2r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz&=©r   rW   r@  r  é3   ©r   é   r  é*   éÿ   )r›  r^  Úiandrß   s    r   Útest_inplace_andz#TestArrayOperators.test_inplace_andZ  óf   € Ø×$Ò$ TÐ+;Ð+;Ð+;Ø%9Ð%9Ð%9ñ	;ô 	;ð 	;à×$Ò$¥X¤]Ð4DÐ4DÐ4DØ%9Ð%9Ð%9ñ	;ô 	;ð 	;ð 	;ð 	;r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz|=rÇ  rÉ  )r›  r^  Úiorrß   s    r   Útest_inplace_orz"TestArrayOperators.test_inplace_or`  sf   € Ø×$Ò$ TÐ+;Ð+;Ð+;Ø%9Ð%9Ð%9ñ	;ô 	;ð 	;à×$Ò$¥X¤\Ð3CÐ3CÐ3CØ%9Ð%9Ð%9ñ	;ô 	;ð 	;ð 	;ð 	;r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz^=rÇ  rÉ  )r›  r^  Úixorrß   s    r   Útest_inplace_xorz#TestArrayOperators.test_inplace_xorf  rÏ  r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz<<=©r   r¡   iöÿÿÿiÍÿÿÿ©r   rW   r   é   )r™  r^  Úilshiftrß   s    r   Útest_inplace_lshiftz&TestArrayOperators.test_inplace_lshiftl  ó\   € Ø× Ò  Ð(8Ð(8Ð(8¸-¸-¸-ÑHÔHÐHØ× Ò ¥Ô!1Ð3CÐ3CÐ3CØ!.  ñ	0ô 	0ð 	0ð 	0ð 	0r$   c                 ó†   — |                       dg d¢g d¢¦  «         |                       t          j        g d¢g d¢¦  «         d S )Nz>>=r×  rØ  )r™  r^  Úirshiftrß   s    r   Útest_inplace_rshiftz&TestArrayOperators.test_inplace_rshiftq  rÜ  r$   c                 óþ  — d„ }t          j        d¦  «        } ||¦  «        }|                      |d         |d         k    o|d         |d         k    ¦  «         t          j        d¦  «        } t          |¦  «        |¦  «        }|                      |d         |d         k    o|d         |d         k    ¦  «         t           j                             ||¦  «         t           j                             ||¦  «         dS )z¶
        Verify that the unary positive operator copies values, and doesn't
        just alias to the input array (mirrors normal Numpy/Python
        interaction behavior).
        c                 ó    — | 
 }d| d<   d|d<   |S )Nr  r   r   rW   rC   )r*  Úa2s     r   rñ   z<TestArrayOperators.test_unary_positive_array_op_2.<locals>.f}  s    € Ø�ˆBØˆBˆq‰EØˆBˆq‰EØˆIr$   rc  r   rW   N)rL   r“   Ú
assertTruer   r´   r7  )rs   rñ   r*  râ  Úa3Úa4s         r   Útest_unary_positive_array_op_2z1TestArrayOperators.test_unary_positive_array_op_2v  sá   € ð	ð 	ð 	õ ŒX�b‰\Œ\ˆØˆQˆr‰UŒUˆØ�Š˜˜1œ  A¤šÐ9¨2¨a¬5°B°q´Eª>Ñ:Ô:Ð:ÝŒX�b‰\Œ\ˆØ�T�!‰WŒW�R‰[Œ[ˆØ�Š˜˜1œ  A¤šÐ9¨2¨a¬5°B°q´Eª>Ñ:Ô:Ð:Ý
Œ
×%Ò% b¨"Ñ-Ô-Ð-Ý
Œ
×%Ò% b¨"Ñ-Ô-Ð-Ð-Ð-r$   c                 ó0   — |                       d¦  «         d S r�  ©rq  rß   s    r   Útest_add_array_opz$TestArrayOperators.test_add_array_op�  ó   € Ø×Ò˜CÑ Ô Ð Ð Ð r$   c                 ó0   — |                       d¦  «         d S r£  rè  rß   s    r   Útest_subtract_array_opz)TestArrayOperators.test_subtract_array_op’  rê  r$   c                 ó0   — |                       d¦  «         d S )NÚ*rè  rß   s    r   Útest_multiply_array_opz)TestArrayOperators.test_multiply_array_op•  rê  r$   c                 óP   — d }t           j        }|                      d|¬¦  «         d S )Nú/rê   )r   rk   rq  rì   s     r   Útest_divide_array_opz'TestArrayOperators.test_divide_array_op˜  s-   € ØˆÝ”}ˆØ×Ò˜C°ÐÑ>Ô>Ð>Ð>Ð>r$   c                 ó>  — t          j        d¦  «        t          j        ft          j        d¦  «        t          j        ft          j        d¦  «        t          j        ft          j        d¦  «        t          j        ft          j        d¦  «        t          j        ft          j        d¦  «        t          j        ft          j        d¦  «        t          j        ft          j        d¦  «        t          j        ft          j        d¦  «        t          j        ft          j        d	¦  «        t          j        ft          j        dd
gd¬¦  «        t          j	        t          j        dd¦  «        ft          j        ddgd¬¦  «        t          j	        t          j        dd¦  «        ft          j        g d¢d¬¦  «        t          j	        t          j        dd¦  «        ft          j        g d¢d¬¦  «        t          j	        t          j        dd¦  «        ft          j        ddgd¬¦  «        t          j	        t          j        dd¦  «        ft          j        dd	gd¬¦  «        t          j	        t          j        dd¦  «        fg| _
        |                      d¦  «         d S )NrW   éþÿÿÿr   r   r­  rY   r«  g      Àg      @r@  r\   r]   r^   r  r_   )rX   rW   r¡   r`   )rX   rW   é   ra   rb   rc   z//)rL   rf   r   rg   rh   ri   rj   rk   rl   rm   rr   rq  rß   s    r   Útest_floor_divide_array_opz-TestArrayOperators.test_floor_divide_array_op�  sé  € õ ŒY�q‰\Œ\�5œ<Ð(ÝŒX�b‰\Œ\�5œ;Ð'ÝŒX�a‰[Œ[�%œ+Ð&ÝŒY�q‰\Œ\�5œ<Ð(ÝŒX�b‰\Œ\�5œ;Ð'ÝŒX�a‰[Œ[�%œ+Ð&åŒZ˜ÑÔ�uœ}Ð-ÝŒZ˜‰_Œ_�eœmÐ,åŒZ˜ÑÔ�uœ}Ð-ÝŒZ˜‰_Œ_�eœmÐ,åŒX�q˜�e 4Ð(Ñ(Ô(­%¬+µe´lÀAÀsÑ*KÔ*KÐLÝŒX�q˜�e 4Ð(Ñ(Ô(­%¬+µe´lÀAÀsÑ*KÔ*KÐLÝŒX�h�h�h dÐ+Ñ+Ô+­U¬[½¼ÀaÈÑ-MÔ-MÐNÝŒX�h�h�h dÐ+Ñ+Ô+­U¬[½¼ÀaÈÑ-MÔ-MÐNÝŒX�t˜S�k¨Ð.Ñ.Ô.ÝŒ[�œ¨¨3Ñ/Ô/ð1åŒX�t˜S�k¨Ð.Ñ.Ô.ÝŒ[�œ¨¨3Ñ/Ô/ð1ð)
ˆŒð. 	×Ò˜DÑ!Ô!Ð!Ð!Ð!r$   c                 ó0   — |                       d¦  «         d S )Nú%rè  rß   s    r   Útest_remainder_array_opz*TestArrayOperators.test_remainder_array_op¹  rê  r$   c                 ó4   — |                       dd¬¦  «         d S )Nz**T©ri  rè  rß   s    r   Útest_power_array_opz&TestArrayOperators.test_power_array_op¼  s!   € Ø×Ò˜D¨tÐÑ4Ô4Ð4Ð4Ð4r$   c                 ó4   — |                       dd¬¦  «         d S )Nz<<Trû  ©rx  rß   s    r   Útest_left_shift_array_opz+TestArrayOperators.test_left_shift_array_op¿  ó!   € Ø×Ò °4ÐÑ8Ô8Ð8Ð8Ð8r$   c                 ó4   — |                       dd¬¦  «         d S )Nz>>Trû  rþ  rß   s    r   Útest_right_shift_array_opz,TestArrayOperators.test_right_shift_array_opÂ  r   r$   c                 ó0   — |                       d¦  «         d S )Nú&©rz  rß   s    r   Útest_bitwise_and_array_opz,TestArrayOperators.test_bitwise_and_array_opÅ  ó   € Ø×#Ò# CÑ(Ô(Ð(Ð(Ð(r$   c                 ó0   — |                       d¦  «         d S )Nú|r  rß   s    r   Útest_bitwise_or_array_opz+TestArrayOperators.test_bitwise_or_array_opÈ  r  r$   c                 ó0   — |                       d¦  «         d S )Nú^r  rß   s    r   Útest_bitwise_xor_array_opz,TestArrayOperators.test_bitwise_xor_array_opË  r  r$   c                 ó0   — |                       d¦  «         d S )Nz==rè  rß   s    r   Útest_equal_array_opz&TestArrayOperators.test_equal_array_opÎ  ó   € Ø×Ò˜DÑ!Ô!Ð!Ð!Ð!r$   c                 ó0   — |                       d¦  «         d S )Nú>rè  rß   s    r   Útest_greater_array_opz(TestArrayOperators.test_greater_array_opÑ  rê  r$   c                 ó0   — |                       d¦  «         d S )Nz>=rè  rß   s    r   Útest_greater_equal_array_opz.TestArrayOperators.test_greater_equal_array_opÔ  r  r$   c                 ó0   — |                       d¦  «         d S )Nú<rè  rß   s    r   Útest_less_array_opz%TestArrayOperators.test_less_array_op×  rê  r$   c                 ó0   — |                       d¦  «         d S )Nz<=rè  rß   s    r   Útest_less_equal_array_opz+TestArrayOperators.test_less_equal_array_opÚ  r  r$   c                 ó0   — |                       d¦  «         d S )Nz!=rè  rß   s    r   Útest_not_equal_array_opz*TestArrayOperators.test_not_equal_array_opÝ  r  r$   )T)/r0   r…   r†   r[  r`  rq  rt  rx  rz  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  rC   r$   r   rX  rX  ›  sû  € € € € € ð<ð <ð <ð +/Ø"$¸Ø&*¸dð/ð /ð /ð /ð& ,0Ø#%¸Ø'+¸tØ$)ð(/ð (/ð (/ð (/ðT
ð 
ð 
ð1ð 1ð 1ð5ð 5ð 5ð 9=ð%ð %ð %ð %ð@ '+ð5ð 5ð 5ð 5ð4ð 4ð 4ð
@ð @ð @ð ð  ð  ð ð  ð  ðOð Oð OðNð Nð NðNð Nð NðNð Nð Nð4ð 4ð 4ð
4ð 4ð 4ð
Nð Nð Nð2ð 2ð 2ð;ð ;ð ;ð;ð ;ð ;ð;ð ;ð ;ð0ð 0ð 0ð
0ð 0ð 0ð
.ð .ð .ð2!ð !ð !ð!ð !ð !ð!ð !ð !ð?ð ?ð ?ð
"ð "ð "ð8!ð !ð !ð5ð 5ð 5ð9ð 9ð 9ð9ð 9ð 9ð)ð )ð )ð)ð )ð )ð)ð )ð )ð"ð "ð "ð!ð !ð !ð"ð "ð "ð!ð !ð !ð"ð "ð "ð"ð "ð "ð "ð "r$   rX  c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚTestScalarUFuncsa  check the machinery of ufuncs works when the result is an scalar.
    These are not exhaustive because:
    - the machinery to support this case is the same for all the functions of a
      given arity.
    - the result of the inner function itself is already tested in TestUFuncs
    c                 óÒ  — t          ||¦  «        D �]Ô\  }} t          |¦  «        |¦  «        } ||Ž } |t          ||¦  «        Ž }d                     ||¦  «        }	t	          t
          j        t
          j        ft
          j        t
          j        ft
          j        t
          j        ft
          j        t
          j        fg¦  «        }
||
v rt          |¦  «        }n›t          j        |j        t          j        ¦  «        rt          |¦  «        }ngt          j        |j        t          j        ¦  «        rt          |¦  «        }n3t          j        |j        t          j        ¦  «        rt#          |¦  «        }||j        |         j        j        fz   }t+          d„ |D ¦   «         ¦  «        rd}nt+          d„ |D ¦   «         ¦  «        rd}nd}|                      |||	|¬¦  «         �ŒÖd S )Nzfor args {0} typed {1}c                 ó.   — g | ]}|t           j        k    ‘ŒS rC   )r   rj   ©r)   Úts     r   r+   z.TestScalarUFuncs.run_ufunc.<locals>.<listcomp>  s   € Ð9Ð9Ð9¨1�A�œÒ&Ð9Ð9Ð9r$   r  c                 ó.   — g | ]}|t           j        k    ‘ŒS rC   )r   rk   r!  s     r   r+   z.TestScalarUFuncs.run_ufunc.<locals>.<listcomp>  s   € Ð;Ð;Ð;¨Q�a�5œ=Ò(Ð;Ð;Ð;r$   r  Úexact)rË   r  )rQ   r   rS   r(   Úsetr   rg   rh   ri   ÚfloatrL   Ú
issubdtyperM   ÚinexactÚintegerÚintrÐ   Úboolr-  r.  r/  r¨   r  )rs   ry   Ú	arg_typesÚ
arg_valuesrR   r   rÂ   rZ  rÄ   rË   ÚspecialÚalltypesr  s                r   Ú	run_ufunczTestScalarUFuncs.run_ufuncé  sÕ  € Ý 	¨:Ñ6Ô6ð 0	Gñ 0	G‰LˆF�DØ •D˜‘L”L Ñ(Ô(ˆEØ�%˜�,ˆCØ�v�¨v°tÑ<Ô<Ð=ˆHà*×1Ò1°$¸Ñ?Ô?ˆCõ Ý”�eœlÐ+Ý”�uœ{Ð+Ý”�eœlÐ+Ý”�uœ{Ð+ð	ñ ô ˆGð ˜Ð Ð Ý  ™?œ?��õ ”= ¤µ´Ñ<Ô<ð .Ý$ X™œ�H�HÝ”] 8¤>µ2´:Ñ>Ô>ð .Ý" 8™}œ}�H�HÝ”] 8¤>µ2´8Ñ<Ô<ð .Ý# H™~œ~�Hà ¤°Ô!8Ô!BÔ!NÐ PÑPˆHõ Ð9Ð9°Ð9Ñ9Ô9Ñ:Ô:ð Ø��ÝÐ;Ð;°(Ð;Ñ;Ô;Ñ<Ô<ð Ø��à�à×#Ò# C¨°sÀÐ#ÑFÔFÐFÑFða0	Gð 0	Gr$   c                 óÖ   — d„ }g d¢}t           j        ft           j        ft           j        ft           j        ft           j        ft           j        fg}|                      |||¦  «         d S )Nc                 ó*   — t          j        | ¦  «        S r   rT  ©rD   s    r   Ú_funcz7TestScalarUFuncs.test_scalar_unary_ufunc.<locals>._func  s   € Ý”7˜1‘:”:Ðr$   )©r@  r5  )rW   r5  )çš™™™™™¹?)çš™™™™™É?)r   rg   rf   ri   rh   rj   rk   r0  ©rs   r4  r  Útyss       r   Útest_scalar_unary_ufuncz(TestScalarUFuncs.test_scalar_unary_ufunc  sl   € ð	ð 	ð 	ð 6Ð5Ð5ˆÝ”ˆ~¥¤˜Ý”ˆ~¥¤˜Ý”Ð¥%¤-Ð!1ð3ˆð 	�Š�u˜c 4Ñ(Ô(Ð(Ð(Ð(r$   c                 ó  — d„ }g d¢}t           j        t           j        t           j        t           j        t           j        t           j        g}|                      |t          ||¦  «        t          ||¦  «        ¦  «         d S )Nc                 ó,   — t          j        | |¦  «        S r   r'  ©rD   rE   s     r   r4  z@TestScalarUFuncs.test_scalar_binary_uniform_ufunc.<locals>._func'  ó   € Ý”6˜!˜A‘;”;Ðr$   ©r@  r@  rW   r@  r6  r7  )	r   rg   rf   ri   rh   rj   rk   r0  rQ   r8  s       r   Ú test_scalar_binary_uniform_ufuncz1TestScalarUFuncs.test_scalar_binary_uniform_ufunc&  sl   € ð	ð 	ð 	ð $Ð#Ð#ˆÝŒ{�EœLÝŒ{�EœL­%¬-½¼ðHˆà�Š�u�c # s™mœm­S°°t©_¬_Ñ=Ô=Ð=Ð=Ð=r$   c                 ó  — d„ }g d¢}t           j        t           j        t           j        t           j        t           j        t           j        g}|                      |t          j	        ||¦  «        t          j	        ||¦  «        ¦  «         d S )Nc                 ó,   — t          j        | |¦  «        S r   r'  r=  s     r   r4  z>TestScalarUFuncs.test_scalar_binary_mixed_ufunc.<locals>._func0  r>  r$   r?  )
r   rg   rf   ri   rh   rj   rk   r0  r  r	  r8  s       r   Útest_scalar_binary_mixed_ufuncz/TestScalarUFuncs.test_scalar_binary_mixed_ufunc/  sƒ   € ð	ð 	ð 	ð $Ð#Ð#ˆÝŒ{�EœLÝŒ{�EœLÝŒ}�eœmð-ˆð 	�Š�u�iÔ/°°SÑ9Ô9Ý Ô(¨¨tÑ4Ô4ñ	6ô 	6ð 	6ð 	6ð 	6r$   N)r0   r…   r†   Ú__doc__r0  r:  r@  rC  rC   r$   r   r  r  á  s^   € € € € € ðð ð1Gð 1Gð 1Gðf)ð )ð )ð>ð >ð >ð	6ð 	6ð 	6ð 	6ð 	6r$   r  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestUfuncIssuesc                 óâ   — t          dg¦  «        d„ ¦   «         }t          j        dd¬¦  «        }t          j        dd¬¦  «        }|                       |||¦  «        ||z   ||z   z   ¦  «         d S )Nz(float64,float64)c                 óX   — t          j        | |¦  «        t          j        | |¦  «        z   S r   r'  )Úx1Úx2s     r   Úfooz+TestUfuncIssues.test_issue_651.<locals>.foo?  s!   € å”6˜"˜b‘>”>¥B¤F¨2¨r¡N¤NÑ2Ð2r$   rc  rc   r]   )r   rL   r  r  )rs   rK  rÔ   rÕ   s       r   Útest_issue_651zTestUfuncIssues.test_issue_651=  s…   € å	Ð'Ð(Ñ	)Ô	)ð	3ð 	3ñ 
*Ô	)ð	3õ ŒI�b Ð%Ñ%Ô%ˆÝŒI�b Ð%Ñ%Ô%ˆØ×Ò   A q¡	¤	¨A°©E°a¸!±eÑ+<Ñ=Ô=Ð=Ð=Ð=r$   c                 ó8  ‡ ‡‡— d„ }|Št          ‰¦  «        Šˆˆˆ fd„}t          j        g d¢¦  «        t          j        g d¢¦  «        g}|D ]L} ||d¦  «          ||t          j        d¦  «        ¦  «          ||t          j        g d¢¦  «        ¦  «         ŒMdS )zF
        <float32 ** int> should return float32, not float64.
        c                 ó,   — t          j        | |¦  «        S r   )rL   r  r=  s     r   rK  z,TestUfuncIssues.test_issue_2006.<locals>.fooK  s   € Ý”8˜A˜q‘>”>Ð!r$   c                 ó´   •—  ‰| |¦  «        }t           j                             | ‰| |¦  «        ¦  «         ‰                     |j        | j        ¦  «         d S r   )rL   r´   rµ   r,  rM   )rD   rE   rZ  rÂ   ry   rs   s      €€€r   Úcheckz.TestUfuncIssues.test_issue_2006.<locals>.checkP  sV   ø€ Ø�%˜˜1‘+”+ˆCÝŒJ×0Ò0°°f°f¸QÀ±l´lÑCÔCÐCð ×Ò˜SœY¨¬Ñ0Ô0Ð0Ð0Ð0r$   )rW   r@  r  )ù              ð?r@  y      @      Àr  )r@  r@  r  N)r   rL   rj   r  rh   ri   )rs   rK  rP  ÚxsrD   rÂ   ry   s   `    @@r   Útest_issue_2006zTestUfuncIssues.test_issue_2006G  sÔ   øøø€ ð	"ð 	"ð 	"àˆÝ�V‘”ˆð	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1õ Œj˜˜˜Ñ#Ô#¥R¤\°/°/°/Ñ%BÔ%BÐCˆØð 	*ð 	*ˆAØˆE�!�Q‰KŒKˆKØˆE�!•R”Y˜q‘\”\Ñ"Ô"Ð"ØˆE�!•R”X˜i˜i˜iÑ(Ô(Ñ)Ô)Ð)Ð)ð	*ð 	*r$   N)r0   r…   r†   rL  rS  rC   r$   r   rF  rF  ;  s2   € € € € € ð>ð >ð >ð*ð *ð *ð *ð *r$   rF  c                   ó†   — e Zd ZdZdZddddddddœZdd„Zd	„ Zd
„ Zd„ Z	e
d„ ¦   «         Ze
d„ ¦   «         Ze
d„ ¦   «         ZdS )Ú_LoopTypesTestera¦  Test code generation for the different loop types defined by ufunc.

    This test relies on class variables to configure the test. Subclasses
    of this class can just override some of these variables to check other
    ufuncs in a different compilation context. The variables supported are:

    _funcs: the ufuncs to test
    _skip_types: letter types that force skipping the loop when testing
                 if present in the NumPy ufunc signature.
    _supported_types: only test loops where all the types in the loop
                      signature are in this collection. If unset, all.

    Note that both, _skip_types and _supported_types must be met for a loop
    to be tested.

    The NumPy ufunc signature has a form like 'ff->f' (for a binary ufunc
    loop taking 2 floats and resulting in a float). In a NumPy ufunc object
    you can get a list of supported signatures by accessing the attribute
    'types'.
    ÚOegGr@  r   r¡   ))rq  r<  )rm  ÚD)rm  r<  )rI  rW  )r…  r<  )rY  Úd)r÷   rX  r   c                 ó�  — |dv rt          j        g d¢|¬¦  «        S |dv rt          j        g d¢|¬¦  «        S |dv rt          j        g d¢|¬¦  «        S |d         d	k    r-t          |¦  «        d
k    rd}t          j        g d¢|¬¦  «        S |d         dk    r-t          |¦  «        d
k    rd}t          j        g d¢|¬¦  «        S |dv r't          j        dddt          d¦  «        g|¬¦  «        S |dv r?t          j        dk    rd}nd}t          j        |ddt          d¦  «        z  dg|¬¦  «        S t          d|›d�¦  «        ‚)z<return a suitable array argument for testing the letter typeÚbhilq)rW   r   r   rô  r]   ÚBHILQ)rW   r@  r   r   ú?)TFFTr   ÚmrW   zm8[D])r@  éýÿÿÿÚNaTr   ÚMzM8[D])ÚNatrW   rÎ   r   Úfdr«  g      ÀrZ   ÚnanÚFDr   y       €      ð¿y              ð¿y      ø?      ø?rQ  y                ztype z not understood)rL   rl   Úlenr&  r   ÚplatformÚRuntimeError)rs   Úa_letter_typeÚindexÚnegzeros       r   Ú_arg_for_typez_LoopTypesTester._arg_for_type€  s¤  € ð ˜GÐ#Ð#å”8˜M˜M˜M°Ð?Ñ?Ô?Ð?Ø˜GÐ#Ð#Ý”8˜L˜L˜L°Ð>Ñ>Ô>Ð>Ø˜cÐ!Ð!å”8Ð6Ð6Ð6¸mÐLÑLÔLÐLØ˜1Ô Ò$Ð$å�=Ñ!Ô! QÒ&Ð&Ø '�Ý”8Ð-Ð-Ð-°]ÐCÑCÔCÐCØ˜1Ô Ò$Ð$å�=Ñ!Ô! QÒ&Ð&Ø '�Ý”8Ð-Ð-Ð-°]ÐCÑCÔCÐCØ˜dÐ"Ð"å”8˜S $¨­U°5©\¬\Ð:Ø"/ð1ñ 1ô 1ð 1à˜dÐ"Ð"åŒ|˜wÒ&Ð&ð (��à$�Ý”8˜W j°"µu¸U±|´|Ñ2CÀRÐHØ"/ð1ñ 1ô 1ð 1õ �,¸=¸=¸=ÐJÑKÔKÐKr$   c                 ó–  ‡‡‡— |d |j         …         ||j         d …         z   Št          | dg ¦  «        Š‰rt          ˆfd„‰D ¦   «         ¦  «        rd S t          | dg ¦  «        Št          ˆfd„‰D ¦   «         ¦  «        rd S t          | dg ¦  «        }|rt          ˆfd„|D ¦   «         ¦  «        sd S |                      ||‰¦  «         d S )NÚ_supported_typesc              3   ó    •K  — | ]}|‰vV — Œ	d S r   rC   )r)   ÚlÚsupported_typess     €r   ú	<genexpr>z/_LoopTypesTester._check_loop.<locals>.<genexpr>°  s(   øè è € ÐCÐC°�A˜_Ð,ÐCÐCÐCÐCÐCÐCr$   Ú_skip_typesc              3   ó    •K  — | ]}|‰v V — Œ	d S r   rC   )r)   ro  Ú
skip_typess     €r   rq  z/_LoopTypesTester._check_loop.<locals>.<genexpr>³  s'   øè è € Ð5Ð5 1ˆq�JˆÐ5Ð5Ð5Ð5Ð5Ð5r$   Ú_required_typesc              3   ó    •K  — | ]}|‰v V — Œ	d S r   rC   )r)   ro  Úletter_typess     €r   rq  z/_LoopTypesTester._check_loop.<locals>.<genexpr>¸  s<   øè è € ð &?ð &?Ø*+ð '(¨<Ð&7ð &?ð &?ð &?ð &?ð &?ð &?r$   )r§   rª   r  r¨   Ú_check_ufunc_with_dtypes)rs   r,   r3   ÚloopÚrequired_typesrw  rt  rp  s        @@@r   Ú_check_loopz_LoopTypesTester._check_loop§  s  øøø€ à˜J˜UœY˜JÔ'¨$°´
¨{¨|¨|Ô*<Ñ<ˆõ
 " $Ð(:¸BÑ?Ô?ˆØð 	ÝÐCÐCÐCÐC°lÐCÑCÔCÑCÔCð	àˆFÝ˜T =°"Ñ5Ô5ˆ
ÝÐ5Ð5Ð5Ð5¨Ð5Ñ5Ô5Ñ5Ô5ð 	ØˆFõ ! Ð'8¸"Ñ=Ô=ˆØð 	¥#ð &?ð &?ð &?ð &?Ø/=ð&?ñ &?ô &?ñ #?ô #?ð 	àˆFà×%Ò% b¨%°Ñ>Ô>Ð>Ð>Ð>r$   c                 óê  ‡ — g }|D ] }|dv r|dz   }|                      |¦  «         Œ!d„ |D ¦   «         }t          d„ |D ¦   «         ¦  «        } t          |¦  «        |¦  «        }ˆ fd„t          |¦  «        D ¦   «         }	|	D ]}
‰ j                             |
¦  «         Œd„ |	D ¦   «         } ||	Ž   ||Ž  t          |||	¦  «        D ]­\  }}}‰                      |||¦  «        \  }}|j        j	        }‰ j
                             |j        |fd¦  «        }|dv rd	nd
}|dv rdn|}d                     g d¢¦  «        }|                     |j        |	|||¦  «        }‰                      |||||¬¦  «         Œ®d S )N)r]  r`  z8[D]c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rC   )rL   rM   r!  s     r   r+   z=_LoopTypesTester._check_ufunc_with_dtypes.<locals>.<listcomp>Ê  s    € Ð:Ð:Ð: 1•2”8˜A‘;”;Ð:Ð:Ð:r$   c                 óT   — g | ]%}t          j        t          |¦  «        d d¦  «        ‘Œ&S )rW   r^   )r   rm   r   r!  s     r   r+   z=_LoopTypesTester._check_ufunc_with_dtypes.<locals>.<listcomp>Ë  s,   € ÐNÐNÐNÀ�%œ+¥j°¡m¤m°Q¸Ñ<Ô<ÐNÐNÐNr$   c                 ój   •— g | ]/\  }}‰                      ||¬ ¦  «                             d¦  «        ‘Œ0S )©ri  r@  )rk  Úrepeat)r)   ri  r"  rs   s      €r   r+   z=_LoopTypesTester._check_ufunc_with_dtypes.<locals>.<listcomp>Ï  sN   ø€ ð 5ð 5ð 5Ù�e˜Qð ×$Ò$ Q¨eÐ$Ñ4Ô4×;Ò;¸AÑ>Ô>ð 5ð 5ð 5r$   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rC   )r‡  )r)   rÔ   s     r   r+   z=_LoopTypesTester._check_ufunc_with_dtypes.<locals>.<listcomp>Ó  s    € Ð,Ð,Ð, �1—6’6‘8”8Ð,Ð,Ð,r$   rW   ÚfFr  r$  ÚdDr  r    )z ufunc '{0}' arrays differ ({1}):z	args: {2}zexpected {3}zgot {4})r  rË   Úulps)Úappendr¦   r   Ú	enumeraterd  ÚshufflerQ   Ú_fixup_resultsrM   ÚcharÚ_ulpsÚgetr0   r-   r(   r  )rs   r,   r3   ÚdtypesÚdtypes_with_unitsr"  Úarg_dtyÚarg_nbtyrÂ   Úc_argsÚarrÚpy_argsrM   Úpy_argÚc_argÚtypecharr…  r  rË   s   `                  r   rx  z)_LoopTypesTester._check_ufunc_with_dtypes¾  s  ø€ ð ÐØð 	(ð 	(ˆAØ�JˆˆØ˜‘J�Ø×$Ò$ QÑ'Ô'Ð'Ð'à:Ð:Ð(9Ð:Ñ:Ô:ˆÝÐNÐNÀgÐNÑNÔNÑOÔOˆØ•�X‘”˜rÑ"Ô"ˆð5ð 5ð 5ð 5Ý"+¨FÑ"3Ô"3ð5ñ 5ô 5ˆàð 	%ð 	%ˆCØŒK×Ò Ñ$Ô$Ð$Ð$Ø,Ð, VÐ,Ñ,Ô,ˆàˆˆvˆˆØ
ˆˆGˆˆõ %(¨°¸&Ñ$AÔ$Að 
	/ð 
	/Ñ ˆE�6˜5Ø ×/Ò/°°v¸uÑEÔE‰MˆF�EØ”{Ô'ˆHØ”:—>’> 5¤>°8Ð"<¸aÑ@Ô@ˆDØ'¨4Ð/Ð/�8�8°WˆDØ'¨4Ð/Ð/�8�8°TˆDØ—)’)ð Eð Eð Eñ Fô FˆCà—*’*˜Uœ^¨V°T¸6À5ÑIÔIˆCØ×#Ò# F¨E¸À#Ø)-ð $ñ /ô /ð /ð /ð
	/ð 
	/r$   c                 ó
   — ||fS r   rC   )rs   rM   r”  r•  s       r   r‰  z_LoopTypesTester._fixup_resultsæ  s   € Ø�uˆ}Ðr$   c                 óF   — |j         D ]}|                      ||¦  «         Œd S r   )r   Ú_inject_test)Úclsr3   ry  s      r   Ú_check_ufunc_loopsz#_LoopTypesTester._check_ufunc_loopsé  s6   € à”Kð 	*ð 	*ˆDØ×Ò˜U DÑ)Ô)Ð)Ð)ð	*ð 	*r$   c           
      ó’   ‡‡— ˆˆfd„}t          | d                     ‰j        ‰                     dd¦  «        ¦  «        |¦  «         d S )Nc                 óT   •— t          ‰¦  «        }|                      |‰‰¦  «         d S r   )r7   r{  )rs   r,   ry  r3   s     €€r   Útest_templatez4_LoopTypesTester._inject_test.<locals>.test_templateð  s.   ø€ Ý$ UÑ+Ô+ˆBØ×Ò˜R ¨Ñ-Ô-Ð-Ð-Ð-r$   ztest_{0}_{1}z->Ú_)Úsetattrr(   r0   Úreplace)rš  r3   ry  rž  s    `` r   r™  z_LoopTypesTester._inject_testî  sn   øø€ ð	.ð 	.ð 	.ð 	.ð 	.ð 	.õ 	��^×*Ò*¨5¬>Ø+/¯<ª<¸¸cÑ+BÔ+BñDô Dàñ	ô 	ð 	ð 	ð 	r$   c                 óD   — | j         D ]}|                      |¦  «         Œd S r   )Ú_ufuncsr›  )rš  r3   s     r   Úautogeneratez_LoopTypesTester.autogenerate÷  s4   € à”[ð 	*ð 	*ˆEØ×"Ò" 5Ñ)Ô)Ð)Ð)ð	*ð 	*r$   N©r   )r0   r…   r†   rD  rr  r‹  rk  r{  rx  r‰  Úclassmethodr›  r™  r¤  rC   r$   r   rU  rU  _  sà   € € € € € ðð ð( €Kð  ØØØØØØ"#ðð €Eð%Lð %Lð %Lð %LðN?ð ?ð ?ð.&/ð &/ð &/ðPð ð ð ð*ð *ñ „[ð*ð ðð ñ „[ðð ð*ð *ñ „[ð*ð *ð *r$   rU  c                   ór  — e Zd Zedd…         Ze                     ej        ¦  «         e                     ej        ¦  «         e                     ej	        ¦  «         e                     ej
        ¦  «         e                     ej        ¦  «         e                     ej        ¦  «         dZdej        z   ZdS )ÚTestLoopTypesIntNz?bBhHiIlLqQÚfdFDmMO)r0   r…   r†   r   r£  ÚremoverL   r  r\  Ú
left_shiftÚright_shiftrâ   r   ru  rU  rr  rC   r$   r   r¨  r¨  ý  s§   € € € € € Ø˜q˜q˜qÔ!€Gà‡N‚N�2”8ÑÔÐØ‡N‚N�2”=Ñ!Ô!Ð!Ø‡N‚N�2”=Ñ!Ô!Ð!Ø‡N‚N�2”>Ñ"Ô"Ð"à‡N‚N�2”;ÑÔÐØ‡N‚N�2”;ÑÔÐØ#€OØÐ.Ô:Ñ:€K€K€Kr$   r¨  c                   óH   — e Zd Zej        ej        gZdZdej	        z   dz   Z	dS )Ú TestLoopTypesSubtractAndNegativez?bBhHiIlLqQfdFDÚmMOr\  N)
r0   r…   r†   rL   râ   r   r£  ru  rU  rr  rC   r$   r   r®  r®    s4   € € € € € ØŒ{˜BœKÐ(€GØ'€OØÐ*Ô6Ñ6¸Ñ<€K€K€Kr$   r®  c                   óH   ‡ — e Zd Zej        gZdZdej        z   Zdˆ fd„	Z	ˆ xZ
S )ÚTestLoopTypesReciprocalÚbBhHiIlLqQfdFDr¯  r   c                 óv   •— t          | j        | ¦  «                             ||¬¦  «        }|dv r	d||dk    <   |S )Nr€  Ú
bBhHiIlLqQrË  r   ©rd   rt   rk  ©rs   rh  ri  Úresrt   s       €r   rk  z%TestLoopTypesReciprocal._arg_for_type  sO   ø€ Ý�D”N DÑ)Ô)×7Ò7¸Ø>Cð 8ñ Eô Eˆà˜LÐ(Ð(ð ˆC��q’‰MØˆ
r$   r¥  )r0   r…   r†   rL   r\  r£  ru  rU  rr  rk  rˆ   r‰   s   @r   r±  r±    sY   ø€ € € € € ØŒ}ˆo€GØ&€OØÐ*Ô6Ñ6€Kðð ð ð ð ð ð ð ð ð r$   r±  c                   óH   ‡ — e Zd Zej        gZdZdej        z   Zdˆ fd„	Z	ˆ xZ
S )ÚTestLoopTypesPowerr²  r¯  r   c                 ó‚   •— t          | j        | ¦  «                             ||¬¦  «        }|dv r|dk    r	d||dk     <   |S )Nr€  r´  rW   r  r   rµ  r¶  s       €r   rk  z TestLoopTypesPower._arg_for_type/  sW   ø€ Ý�D”N DÑ)Ô)×7Ò7¸Ø>Cð 8ñ Eô Eˆà˜LÐ(Ð(¨U°aªZ¨Zð ˆC��a’‰LØˆ
r$   r¥  )r0   r…   r†   rL   r  r£  ru  rU  rr  rk  rˆ   r‰   s   @r   r¹  r¹  *  sY   ø€ € € € € ØŒxˆj€GØ&€OØÐ*Ô6Ñ6€Kðð ð ð ð ð ð ð ð ð r$   r¹  c                   óH   ‡ — e Zd Zej        gZdZdej        z   Zdˆ fd„	Z	ˆ xZ
S )ÚTestLoopTypesIntLeftShiftr´  r©  r   c                 ó¸   •— t          | j        | ¦  «                             ||¬¦  «        }|dk    r(|j        j        dz  }t          j        |d|dz
  ¦  «        }|S ©Nr€  rW   é   r   )rd   rt   rk  rM   ÚitemsizerL   Úclip©rs   rh  ri  r·  Ú	bit_countrt   s        €r   rk  z'TestLoopTypesIntLeftShift._arg_for_typeB  sf   ø€ Ý�D”N DÑ)Ô)×7Ò7¸Ø>Cð 8ñ Eô Eˆð �AŠ:ˆ:Øœ	Ô*¨QÑ.ˆIÝ”'˜#˜q )¨a¡-Ñ0Ô0ˆCØˆ
r$   r¥  )r0   r…   r†   rL   r«  r£  ru  rU  rr  rk  rˆ   r‰   s   @r   r¼  r¼  =  sY   ø€ € € € € ØŒ}ˆo€GØ"€OØÐ.Ô:Ñ:€Kðð ð ð ð ð ð ð ð ð r$   r¼  c                   óH   ‡ — e Zd Zej        gZdZdej        z   Zdˆ fd„	Z	ˆ xZ
S )ÚTestLoopTypesIntRightShiftr´  r©  r   c                 óì   •— t          | j        | ¦  «                             ||¬¦  «        }|dk    r(|j        j        dz  }t          j        |d|dz
  ¦  «        }|dk    rt          j        |¦  «        }|S r¾  )rd   rt   rk  rM   rÀ  rL   rÁ  rV  rÂ  s        €r   rk  z(TestLoopTypesIntRightShift._arg_for_typeY  s~   ø€ Ý�D”N DÑ)Ô)×7Ò7¸Ø>Cð 8ñ Eô Eˆð �AŠ:ˆ:Øœ	Ô*¨QÑ.ˆIÝ”'˜#˜q )¨a¡-Ñ0Ô0ˆCð �AŠ:ˆ:Ý”&˜‘+”+ˆCØˆ
r$   r¥  )r0   r…   r†   rL   r¬  r£  ru  rU  rr  rk  rˆ   r‰   s   @r   rÅ  rÅ  T  sZ   ø€ € € € € ØŒ~Ð€GØ"€OØÐ.Ô:Ñ:€Kðð ð ð ð ð ð ð ð ð r$   rÅ  c                   óT   — e Zd Zej        ej        ej        gZdZde	j
        z   Z
d„ ZdS )ÚTestLoopTypesFloorDivider²  r¯  c                 ó¨   — |j         dk    rDt          j        |¦  «        t          j        |¦  «        z  }||dk    |dk    z  z  }||         ||<   ||fS )Nrñ   rZ   )r©   rL   rá  rå  )rs   rM   r”  r•  Úpreds        r   r‰  z'TestLoopTypesFloorDivide._fixup_results{  s[   € ØŒ:˜ÒÐõ ”H˜U‘O”O¥b¤h¨vÑ&6Ô&6Ñ6ˆDà�V˜s’] u°¢|Ñ4Ñ4ˆDØ  œ,ˆE�$‰KØ�uˆ}Ðr$   N)r0   r…   r†   rL   rý   r  Údivmodr£  ru  rU  rr  r‰  rC   r$   r   rÈ  rÈ  v  sH   € € € € € ØŒ ¤¨b¬iÐ8€GØ&€OØÐ*Ô6Ñ6€Kðð ð ð ð r$   rÈ  c                   óB  — e Zd Zedd…         Zere                     ej        ¦  «         e                     ej	        ¦  «         e                     ej
        ¦  «         e                     ej        ¦  «         e                     ej        ¦  «         dZdej        z   ZdS )ÚTestLoopTypesFloatNrb  ÚFDmMO)r0   r…   r†   r   r£  Ú	iswindowsrª  rL   rè  rý   r  rË  r  ru  rU  rr  rC   r$   r   rÍ  rÍ  ‰  s›   € € € € € Ø˜q˜q˜qÔ!€GØð #Ø�Š�r”zÑ"Ô"Ð"Ø‡N‚N�2”?Ñ#Ô#Ð#Ø‡N‚N�2”<Ñ Ô Ð Ø‡N‚N�2”9ÑÔÐØ‡N‚N�2”6ÑÔÐØ€OØÐ,Ô8Ñ8€K€K€Kr$   rÍ  c                   ó:   — e Zd Zedd…         ZdZdej        z   ZdS )ÚTestLoopTypesComplexNrd  r¯  )r0   r…   r†   r   r£  ru  rU  rr  rC   r$   r   rÑ  rÑ  ˜  s1   € € € € € Ø˜q˜q˜qÔ!€Gð €OØÐ*Ô6Ñ6€K€K€Kr$   rÑ  c                   ó„   — e Zd Zedd…         Ze                     ej        ¦  «         dZd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ ZdS )
ÚTestLoopTypesDatetimeNÚmMc                 óœ  — t           j        }t          |¦  «        }|                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      t
          ¦  «        5  |                      ||g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)úm8[s]úm8[m]rÖ  )r×  rÖ  rÖ  )rÖ  r×  úm8[ms])r×  rÖ  rØ  )r×  rÖ  r×  )rL   rÞ   r7   rx  ÚassertRaisesr	   ©rs   r3   r,   s      r   Útest_addzTestLoopTypesDatetime.test_add¶  sF  € Ý”ˆÝ  Ñ'Ô'ˆà×%Ò% b¨%Ð1LÐ1LÐ1LÑMÔMÐMØ×%Ò% b¨%Ð1LÐ1LÐ1LÑMÔMÐMà×%Ò% b¨%Ð1MÐ1MÐ1MÑNÔNÐNØ×%Ò% b¨%Ð1MÐ1MÐ1MÑNÔNÐNà×Ò�}Ñ-Ô-ð 	Gð 	GØ×)Ò)¨"¨eØ*EÐ*EÐ*EñGô Gð Gð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gó   ÂCÃCÃCc                 óœ  — t           j        }t          |¦  «        }|                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      t
          ¦  «        5  |                      ||g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)úM8[s]úM8[m]rÖ  )rß  rÞ  rÖ  )rÞ  rß  rØ  )rß  rÞ  rØ  )rß  rÞ  r×  )rL   râ   r7   rx  rÙ  r	   rÚ  s      r   Útest_subtractz#TestLoopTypesDatetime.test_subtractÄ  sF  € Ý”ˆÝ  Ñ'Ô'ˆà×%Ò% b¨%Ð1LÐ1LÐ1LÑMÔMÐMØ×%Ò% b¨%Ð1LÐ1LÐ1LÑMÔMÐMà×%Ò% b¨%Ð1MÐ1MÐ1MÑNÔNÐNØ×%Ò% b¨%Ð1MÐ1MÐ1MÑNÔNÐNà×Ò�}Ñ-Ô-ð 	Gð 	GØ×)Ò)¨"¨eØ*EÐ*EÐ*EñGô Gð Gð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	GrÜ  c                 ó8  — t           j        }t          |¦  «        }|                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      t
          ¦  «        5  |                      ||g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rÖ  Úqúm8[us])râ  rÖ  rã  ©rÖ  râ  r×  )rL   ræ   r7   rx  rÙ  r	   rÚ  s      r   Útest_multiplyz#TestLoopTypesDatetime.test_multiplyÒ  sÿ   € Ý”ˆÝ  Ñ'Ô'ˆà×%Ò% b¨%Ð1IÐ1IÐ1IÑJÔJÐJØ×%Ò% b¨%Ð1IÐ1IÐ1IÑJÔJÐJà×Ò�}Ñ-Ô-ð 	Nð 	NØ×)Ò)¨"¨eÐ5LÐ5LÐ5LÑMÔMÐMð	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nó   Á(BÂBÂBc                 óœ  — t           j        }t          |¦  «        }|                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      t
          ¦  «        5  |                      ||g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r×  rÖ  rX  )rÖ  r×  rX  ©r×  râ  rÖ  ©r×  rX  rÖ  rä  )rL   rú   r7   rx  rÙ  r	   rÚ  s      r   Útest_true_dividez&TestLoopTypesDatetime.test_true_divideÜ  s=  € Ý”ˆÝ  Ñ'Ô'ˆà×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIØ×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIà×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIØ×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIà×Ò�}Ñ-Ô-ð 	Nð 	NØ×)Ò)¨"¨eÐ5LÐ5LÐ5LÑMÔMÐMð	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	NrÜ  c                 ó8  — t           j        }t          |¦  «        }|                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      t
          ¦  «        5  |                      ||g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrè  ré  rä  )rL   rý   r7   rx  rÙ  r	   rÚ  s      r   Útest_floor_dividez'TestLoopTypesDatetime.test_floor_divideé  sÿ   € Ý”ˆÝ  Ñ'Ô'ˆà×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIØ×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIà×Ò�}Ñ-Ô-ð 	Nð 	NØ×)Ò)¨"¨eÐ5LÐ5LÐ5LÑMÔMÐMð	Nð 	Nð 	Nñ 	Nô 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nøøøð 	Nð 	Nð 	Nð 	Nð 	Nð 	Nræ  c                 óì   — t          |¦  «        }|                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      ||g d¢¦  «         |                      ||g d¢¦  «         d S )N)r×  rÖ  r\  )rÖ  r×  r\  )rß  rÞ  r\  )rÞ  rß  r\  )r7   rx  rÚ  s      r   Ú_check_comparisonz'TestLoopTypesDatetime._check_comparisonó  s‘   € Ý  Ñ'Ô'ˆà×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIØ×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIà×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIØ×%Ò% b¨%Ð1HÐ1HÐ1HÑIÔIÐIÐIÐIr$   c                 ó¾   — t           j        t           j        t           j        t           j        t           j        t           j        fD ]}|                      |¦  «         Œd S r   )rL   r½  rº  r´  r·  r®  r±  rî  r�   s     r   Útest_comparisonsz&TestLoopTypesDatetime.test_comparisonsü  sO   € Ý”h¥¤­b¬gµr´}Ý”j¥"Ô"2ð4ð 	*ð 	*ˆEà×"Ò" 5Ñ)Ô)Ð)Ð)ð	*ð 	*r$   )r0   r…   r†   r   r£  rª  rL   rË  ru  rÛ  rà  rå  rê  rì  rî  rð  rC   r$   r   rÓ  rÓ  ¤  s¸   € € € € € Ø˜q˜q˜qÔ!€Gà‡N‚N�2”9ÑÔÐð €Oð
Gð Gð GðGð Gð GðNð Nð NðNð Nð NðNð Nð NðJð Jð Jð*ð *ð *ð *ð *r$   rÓ  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestUFuncBadArgsc                 óÜ   — d„ }|                       t          ¦  «        5   t          t          j        t          j        ¦  «        g¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó.   — t          j        | ¦  «        }|S )zerror: np.add requires two argsr'  )rD   rÖ   s     r   r   z0TestUFuncBadArgs.test_missing_args.<locals>.func  s   € å”V˜A‘Y”YˆFØˆMr$   ©rÙ  r
   r   r   rk   ©rs   r   s     r   Útest_missing_argsz"TestUFuncBadArgs.test_missing_args  s²   € ð	ð 	ð 	ð
 ×Ò�{Ñ+Ô+ð 	7ð 	7Ø0�D•%”-¥¤Ñ.Ô.Ð/Ñ0Ô0°Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ó   ž6A!Á!A%Á(A%c                 óü   — d„ }t          j        t           j        dd¦  «        } ||||¦  «        }|                      t          ¦  «        5   t          |¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó4   — t          j        | | ||¦  «        }|S )zerror: too many argsr'  )rD   ÚoutÚout2rÖ   s       r   r   z1TestUFuncBadArgs.test_too_many_args.<locals>.func  s   € å”V˜A˜q # tÑ,Ô,ˆFØˆMr$   rW   r^   )r   rm   rk   rÙ  r
   r   )rs   r   Ú
array_typer1  s       r   Útest_too_many_argsz#TestUFuncBadArgs.test_too_many_args  sÆ   € ð	ð 	ð 	õ
 ”[¥¤°°3Ñ7Ô7ˆ
Øˆj˜ Z°Ñ<Ô<ˆà×Ò�{Ñ+Ô+ð 	ð 	Ø�D�‰IŒI�d‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA1Á1A5Á8A5c                 óÜ   — d„ }|                       t          ¦  «        5   t          t          j        t          j        ¦  «        g¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó6   — d}t          j        | | |¦  «         dS )z0error: scalar as a return value is not supportedr   Nr'  r=  s     r   r   zATestUFuncBadArgs.test_no_scalar_result_by_reference.<locals>.func  s   € àˆAÝŒF�1�a˜‰OŒOˆOˆOˆOr$   rõ  rö  s     r   Ú"test_no_scalar_result_by_referencez3TestUFuncBadArgs.test_no_scalar_result_by_reference  s²   € ð	ð 	ð 	ð
 ×Ò�{Ñ+Ô+ð 	7ð 	7Ø0�D•%”-¥¤Ñ.Ô.Ð/Ñ0Ô0°Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7rø  N)r0   r…   r†   r÷  rþ  r  rC   r$   r   rò  rò    sA   € € € € € ð7ð 7ð 7ð
ð 
ð 
ð7ð 7ð 7ð 7ð 7r$   rò  c                   ó   — e Zd Zd„ ZdS )Ú TestUFuncCompilationThreadSafetyc                 ó   ‡‡‡— g Št           d„ ¦   «         Šˆˆfd„Šˆfd„t          d¦  «        D ¦   «         }|D ]}|                     ¦   «          Œ|D ]}|                     ¦   «          Œ|                      ‰¦  «         dS )z{
        Test that (lazy) compiling from several threads at once doesn't
        produce errors (see issue #2403).
        c                 ó   — | dz   S )NrW   rC   r3  s    r   rK  z7TestUFuncCompilationThreadSafety.test_lock.<locals>.foo.  s   € à�q‘5ˆLr$   c                  ó<  •— 	 t          j        dt           j        ¬¦  «        } t          j        dt           j        ¬¦  «        dz   }t           j                              ‰| ¦  «        |¦  «         d S # t
          $ r }‰                     |¦  «         Y d }~d S d }~ww xY w)N)rc  r]   g      ð?)rL   Úonesrk   r´   r7  Ú	Exceptionr†  )rÔ   rÄ   ÚeÚerrorsrK  s      €€r   r    z;TestUFuncCompilationThreadSafety.test_lock.<locals>.wrapper2  s¢   ø€ ð!Ý”G˜E­¬Ð4Ñ4Ô4�Ýœ7 5µ´
Ð;Ñ;Ô;¸bÑ@�Ý”
×-Ò-¨c¨c°!©f¬f°hÑ?Ô?Ð?Ð?Ð?øÝð !ð !ð !Ø—’˜aÑ Ô Ð Ð Ð Ð Ð Ð Ð øøøøð!øøøs   ƒA,A1 Á1
BÁ;BÂBc                 ó:   •— g | ]}t          j        ‰¬ ¦  «        ‘ŒS ))Útarget)Ú	threadingÚThread)r)   r*   r    s     €r   r+   z>TestUFuncCompilationThreadSafety.test_lock.<locals>.<listcomp>:  s'   ø€ ÐGÐGÐG¸•9Ô#¨7Ð3Ñ3Ô3ÐGÐGÐGr$   r  N)r   r.   Ústartr-   ÚassertFalse)rs   Úthreadsr"  r
  rK  r    s      @@@r   Ú	test_lockz*TestUFuncCompilationThreadSafety.test_lock'  s»   øøø€ ð
 ˆå	ð	ð 	ñ 
Œð	ð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð HÐGÐGÐG½UÀ2¹Y¼YÐGÑGÔGˆØð 	ð 	ˆAØ�GŠG‰IŒIˆIˆIØð 	ð 	ˆAØ�FŠF‰HŒHˆHˆHØ×Ò˜Ñ Ô Ð Ð Ð r$   N)r0   r…   r†   r  rC   r$   r   r  r  %  s#   € € € € € ð!ð !ð !ð !ð !r$   r  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestUfuncOnContextc                 óä  — t           j        }|                     t          j        ¦  «        }|                      |t          ¦  «         t          j        t          j        ¦  «        }|                      ||¦  «         t          ¦   «         }|  
                    t          ¦  «        5 }t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |j        j        |f¦  «         d S r   )r   Útarget_contextÚget_ufunc_inforL   rÞ   ÚassertIsInstanceÚdictr   r,  ÚobjectrÙ  ÚKeyErrorÚ	exceptionr   )rs   Ú	targetctxÚadd_inforÄ   ÚbadkeyÚraisess         r   Útest_cpu_get_ufunc_infoz*TestUfuncOnContext.test_cpu_get_ufunc_infoC  s  € õ Ô-ˆ	à×+Ò+­B¬FÑ3Ô3ˆØ×Ò˜h­Ñ-Ô-Ð-åÔ*­2¬6Ñ2Ô2ˆØ×Ò˜ 8Ñ,Ô,Ð,å‘”ˆØ×Ò�xÑ(Ô(ð 	,¨FÝÔ# FÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à×Ò˜Ô)Ô.°°	Ñ:Ô:Ð:Ð:Ð:s   Â#CÃCÃCc                 ó,  — t          t          j        d¦  «        }|                      t          ¦  «        5 }|                     t          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j
        ¦  «        d¦  «         d S )NÚcpuz<<numba\..*\.BaseContext object at .*> does not support ufunc)r   r   Útyping_contextrÙ  ÚNotImplementedErrorr  rL   rÞ   ÚassertRegexrH   r  )rs   r  r   s      r   Útest_base_get_ufunc_infoz+TestUfuncOnContext.test_base_get_ufunc_infoS  sÄ   € å¥
Ô 9¸5ÑAÔAˆ	Ø×ÒÕ2Ñ3Ô3ð 	-°vØ×$Ò$¥R¤VÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-à×ÒÝ�Ô Ñ!Ô!ØKñ	
ô 	
ð 	
ð 	
ð 	
s   µ A!Á!A%Á(A%N)r0   r…   r†   r!  r'  rC   r$   r   r  r  B  s2   € € € € € ð;ð ;ð ;ð 
ð 
ð 
ð 
ð 
r$   r  c                   ó   — e Zd Zd„ ZdS )ÚTestUfuncWriteInputc                 óz  — t          dgd¦  «        d„ ¦   «         }t          j                             dd¦  «        }t          j        |t          j        ¬¦  «        } |||¦  «         t          j                             t          j        g d¢t          j	        ¬¦  «        | 
                    d¬	¦  «        ¦  «         d S )
Nzvoid(float64[:], uint8[:])z(n)->(n)c                 óP   — t          | j        ¦  «        D ]}|dz  dk    rd||<   Œd S )Nr   r   rW   )r.   r
  )rD   rû  r*   s      r   r   z6TestUfuncWriteInput.test_write_input_arg.<locals>.func`  s<   € õ ˜1œ6‘]”]ð ð �à�q‘5˜A’:�:Ø�C˜‘Føðð r$   rc  r¡   r]   )TFFFTr   )Úaxis)r   rL   rd  ÚrandrÑ   rn   r´   r7  rl   rÐ   r¨   )rs   r   rD   rû  s       r   Útest_write_input_argz(TestUfuncWriteInput.test_write_input_arg_  sµ   € Ý	Ð2Ð3°ZÑ	@Ô	@ð	ð 	ñ 
AÔ	@ð	õ ŒI�NŠN˜2˜qÑ!Ô!ˆÝŒm˜A¥R¤WÐ-Ñ-Ô-ˆàˆˆQ�‰ŒˆÝ
Œ
×%Ò%ÝŒHÐ6Ð6Ð6½b¼hÐGÑGÔGØ�GŠG˜ˆG‰OŒOñ	ô 	ð 	ð 	ð 	r$   N)r0   r…   r†   r.  rC   r$   r   r)  r)  ^  s#   € € € € € ðð ð ð ð r$   r)  Ú__main__)Er!   r  r   r¬   r  r^  ÚnumpyrL   r   Únumbar   r   r   r   Ú
numba.corer   Únumba.np.numpy_supportr   Únumba.core.errorsr	   r
   Únumba.tests.supportr   r   Únumba.core.typing.npydeclr   Únumba.npr   Únumba.core.registryr   Únumba.core.baser   r   r¦   Ú__itemsize__Úis32bitsrf  r³   rÏ  r#   r7   r>   r@   rI   rS   rU   r‹   rÙ   rX  r  rF  rU  r¨  r¤  r®  r±  r¹  r¼  rÅ  rÈ  rÍ  rÑ  rÓ  rò  r  r  r)  r0   ÚmainrC   r$   r   ú<module>r=     sY  ðØ Ð Ð Ð Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€à Ð Ð Ð à €€€Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø "Ð "Ð "Ð "Ð "Ð "Ø *Ð *Ð *Ð *Ð *Ð *Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð àÔ Ò"€ØŒL×#Ò# GÑ,Ô,€	ð	*ð 	*ð 	*ðð ð ðð ð ðð ð ðð ð ð"Jð Jð JðFð Fð Fð Fð F�Oñ Fô Fð FðRS6ð S6ð S6ð S6ð S6�]ñ S6ô S6ð S6ðlb	<ð b	<ð b	<ð b	<ð b	<� ñ b	<ô b	<ð b	<ðJC"ð C"ð C"ð C"ð C"˜¨ñ C"ô C"ð C"ðL
W6ð W6ð W6ð W6ð W6�xñ W6ô W6ð W6ðt!*ð !*ð !*ð !*ð !*�hñ !*ô !*ð !*ðH[*ð [*ð [*ð [*ð [*�xñ [*ô [*ð [*ð|;ð ;ð ;ð ;ð ;Ð'ñ ;ô ;ð ;ð × Ò Ñ Ô Ð ð=ð =ð =ð =ð =Ð'7ñ =ô =ð =ð !× -Ò -Ñ /Ô /Ð /ðð ð ð ð Ð.ñ ô ð ð  × $Ò $Ñ &Ô &Ð &ðð ð ð ð Ð)ñ ô ð ð  × Ò Ñ !Ô !Ð !ðð ð ð ð Ð 0ñ ô ð ð( × &Ò &Ñ (Ô (Ð (ðð ð ð ð Ð!1ñ ô ð ð> × 'Ò 'Ñ )Ô )Ð )ðð ð ð ð Ð/ñ ô ð ð  × %Ò %Ñ 'Ô 'Ð 'ð	9ð 	9ð 	9ð 	9ð 	9Ð)ñ 	9ô 	9ð 	9ð × Ò Ñ !Ô !Ð !ð7ð 7ð 7ð 7ð 7Ð+ñ 7ô 7ð 7ð × !Ò !Ñ #Ô #Ð #ð[*ð [*ð [*ð [*ð [*Ð,ñ [*ô [*ð [*ð| × "Ò "Ñ $Ô $Ð $ð7ð 7ð 7ð 7ð 7�xñ 7ô 7ð 7ð@!ð !ð !ð !ð ! xñ !ô !ð !ð:
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ð8ð ð ð ð ˜(ñ ô ð ð& ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr$   