ó
    „ñ:iý ã                   óŠ  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
JrJrJr  S SKJr  S SKJr  S SKJrJr  S SKJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJ r   \!RD                  S:H  r#\RH                  RK                  S5      r&S r'S r(S r)S r*S r+S r, " S S\5      r- " S S\-5      r. " S S\.\5      r/ " S S\-\5      r0 " S S\5      r1 " S S\5      r2 " S  S!\5      r3 " S" S#\35      r4\4Rk                  5          " S$ S%\35      r6\6Rk                  5          " S& S'\35      r7\7Rk                  5          " S( S)\35      r8\8Rk                  5          " S* S+\35      r9\9Rk                  5          " S, S-\35      r:\:Rk                  5          " S. S/\35      r;\;Rk                  5          " S0 S1\35      r<\<Rk                  5          " S2 S3\35      r=\=Rk                  5          " S4 S5\35      r>\>Rk                  5          " S6 S7\5      r? " S8 S9\5      r@ " S: S;\5      rA " S< S=\5      rB\CS>:X  a  \Rˆ                  " 5         gg)?é    N)ÚguvectorizeÚnjitÚtypeofÚ	vectorize)Útypes)Ú
from_dtype)ÚLoweringErrorÚTypingError)ÚTestCaseÚMemoryLeakMixin)Úsupported_ufuncs)Únumpy_support)Ú
cpu_target)ÚBaseContext)Úufunc_dbé   Úwin32c                 óD   ^ • [         R                  " T 5      U 4S j5       ng)z†An 'expectedFailure' like decorator that only expects compilation errors
caused by unimplemented functions that fail in no-python modec                  ó¤   >•  T" U 0 UD6  [        R
                  e! [          a*    [        R                  " [        R                  " 5       5      ef = f©N)r
   ÚunittestÚ_ExpectedFailureÚsysÚexc_infoÚ_UnexpectedSuccess)ÚargsÚkwargsÚfuncs     €ÚZ/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_ufuncs.pyÚwrapperÚ_unimplemented.<locals>.wrapper   sK   ø€ ð	<Ù�$Ð!˜&Ò!ô ×)Ñ)Ð)øô ó 	<Ü×+Ò+¬C¯LªL«NÓ;Ð;ð	<ús	   ƒ ›4AN)Ú	functoolsÚwraps)r   r    s   ` r   Ú_unimplementedr$      s    ø€ ô ‡_‚_�TÓô*ó ñ*ó    c                 óF  • 0 nSR                  [        U R                  5       Vs/ s H  nSR                  U5      PM     sn5      nSR                  X0R                  5      n[        U[        5       U5        US   nSR                  U R                  5      Ul        U$ s  snf )NÚ,za{0}zdef fn({0}):
    np.{1}({0})Úfnz{0}_usecase)ÚjoinÚrangeÚnargsÚformatÚ__name__ÚexecÚglobals)ÚufuncÚldictÚiÚarg_strÚfunc_strr(   s         r   Ú_make_ufunc_usecaser5   &   s„   € Ø€EØ�h‰h´%¸¿¹Ô2DÓEÒ2D¨Q˜Ÿ™ aÖ(Ñ2DÑEÓF€GØ.×5Ñ5°g¿~¹~ÓN€HÜˆ”7“9˜eÔ$Ø	ˆt‰€BØ×&Ñ& u§~¡~Ó6€B„KØ€Iùò Fs   ¥Bc                 óš   • 0 n[        SR                  U 5      [        5       U5        US   nSR                  [        U 5      5      Ul        U$ )Nzdef fn(x):
    return {0}(x)r(   úusecase_{0}©r.   r,   r/   Úhashr-   ©Úufunc_opr1   r(   s      r   Ú_make_unary_ufunc_op_usecaser<   0   sE   € Ø€EÜÐ	(×	/Ñ	/°Ó	9¼7»9ÀeÔLØ	ˆt‰€BØ×&Ñ&¤t¨H£~Ó6€B„KØ€Ir%   c                 óš   • 0 n[        SR                  U 5      [        5       U5        US   nSR                  [        U 5      5      Ul        U$ )Nzdef fn(x,y):
    return x{0}yr(   r7   r8   r:   s      r   Ú_make_binary_ufunc_op_usecaser>   8   sE   € Ø€EÜÐ	)×	0Ñ	0°Ó	:¼G»IÀuÔMØ	ˆt‰€BØ×&Ñ&¤t¨H£~Ó6€B„KØ€Ir%   c                 óÚ   ^ • [        T [        5      (       aL  0 n[        SR                  T 5      [	        5       U5        US   nSR                  [        T 5      5      Ul        U$ U 4S jnUnU$ )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(   r7   c                 ó   >• T" X5        g r   © )ÚxÚyr;   s     €r   Ú
inplace_opÚ2_make_inplace_ufunc_op_usecase.<locals>.inplace_opK   s
   ø€ Ù�Q�Nr%   )Ú
isinstanceÚstrr.   r,   r/   r9   r-   )r;   r1   r(   rD   s   `   r   Ú_make_inplace_ufunc_op_usecaserH   @   sf   ø€ ô
 �(œC× Ñ ØˆÜÐ&×-Ñ-¨hÓ7¼»ÀEÔJØ�4‰[ˆØ#×*Ñ*¬4°«>Ó:ˆŒð
 €Iõ	àˆØ€Ir%   c           	      ó¦   • [        X5       VVs/ s H3  u  p#[        R                  " [        U5      5      R	                  U5      PM5     snn$ s  snnf )z5Convert python values into numpy scalar objects.
    )ÚzipÚnpÚdtyperG   Útype)Útyargsr   ÚtyÚvals       r   Ú_as_dtype_valuerQ   Q   s=   € ô 8;¸6Ô7HÔIÒ7H©G¨BŒB�HŠH”S˜“WÓ×"Ñ" 3Ö'Ñ7HÒIÐIùÓIs   �:Ac                   óf   ^ • \ rS rSrU 4S jr\R                  " SS9SS j5       r  S	S jrSr	U =r
$ )
ÚBaseUFuncTestéW   c                 óø	  >• [         [        U ]  5         [        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " S5      [
        R                  4[        R                  " SS/SS9[
        R                  " [
        R                  SS	5      4[        R                  " SS/S
S9[
        R                  " [
        R                  SS	5      4[        R                  " / SQSS9[
        R                  " [
        R                  SS	5      4[        R                  " / SQSS9[
        R                  " [
        R                  SS	5      4[        R                  " / SQSS9[
        R                  " [
        R                  SS	5      4[        R                  " / SQSS9[
        R                  " [
        R                  SS	5      4[        R                  " SS/[        R                  S9[
        R                  " [
        R                  SS	5      4[        R                  " SS/[        R                  S9[
        R                  " [
        R                  SS	5      4[        R                  " SS/[        R                  S9[
        R                  " [
        R                  SS	5      4[        R                  " SS/[        R                   S9[
        R                  " [
        R                   SS	5      4/U l        g )Nr   é   éÿÿÿÿç      à¿ç        ç      à?Úu4©rL   ÚCÚu8)rW   r   rV   Úi4Úi8)rX   rY   rZ   Úf4Úf8)ÚsuperrS   ÚsetUprK   Úuint32r   Úint32Úuint64Úint64Úfloat32Úfloat64ÚarrayÚArrayÚint8Úint16Úuint8Úuint16Úinputs)ÚselfÚ	__class__s    €r   rd   ÚBaseUFuncTest.setUpY   sù  ø€ ÜŒm˜TÑ(Ô*ä�YŠY�q‹\œ5Ÿ<™<Ð(Ü�YŠY�q‹\œ5Ÿ<™<Ð(Ü�XŠX�b‹\œ5Ÿ;™;Ð'Ü�XŠX�a‹[œ%Ÿ+™+Ð&Ü�XŠX�a‹[œ%Ÿ+™+Ð&Ü�YŠY�q‹\œ5Ÿ<™<Ð(Ü�YŠY�q‹\œ5Ÿ<™<Ð(Ü�XŠX�b‹\œ5Ÿ;™;Ð'Ü�XŠX�a‹[œ%Ÿ+™+Ð&Ü�XŠX�a‹[œ%Ÿ+™+Ð&ä�ZŠZ˜ÓœuŸ}™}Ð-Ü�ZŠZ˜‹_œeŸm™mÐ,Ü�ZŠZ˜‹_œeŸm™mÐ,ä�ZŠZ˜ÓœuŸ}™}Ð-Ü�ZŠZ˜‹_œeŸm™mÐ,Ü�ZŠZ˜‹_œeŸm™mÐ,ä�XŠX�q˜�e 4Ñ(¬%¯+ª+´e·l±lÀAÀsÓ*KÐLÜ�XŠX�q˜�e 4Ñ(¬%¯+ª+´e·l±lÀAÀsÓ*KÐLÜ�XŠX’h dÑ+¬U¯[ª[¼¿¹ÀaÈÓ-MÐNÜ�XŠX’h dÑ+¬U¯[ª[¼¿¹ÀaÈÓ-MÐNÜ�XŠXÒ&¨dÑ3Ü�[Š[œŸ™¨¨3Ó/ð1ä�XŠXÒ&¨dÑ3Ü�[Š[œŸ™¨¨3Ó/ð1ô �XŠX�q˜�e¤2§7¡7Ñ+¬U¯[ª[¼¿¹ÀQÈÓ-LÐMÜ�XŠX�q˜�e¤2§8¡8Ñ,¬e¯kªk¼%¿+¹+ÀqÈ#Ó.NÐOÜ�XŠX�q˜�e¤2§8¡8Ñ,¬e¯kªk¼%¿+¹+ÀqÈ#Ó.NÐOÜ�XŠX�q˜�e¤2§9¡9Ñ-Ü�[Š[œŸ™ q¨#Ó.ð0ðA"
ˆ�r%   N)Úmaxsizec                 ó"   • [        X#SS9" U5      $ )NT)Ú_nrtÚno_rewrites)r   )rr   Úpyfuncr   Únrts       r   Ú_compileÚBaseUFuncTest._compile   s   € ô �D°Ò5°fÓ=Ð=r%   c                 ó$  • Un[        U[        R                  5      (       a  UR                  nUR                  nOSnU[        R
                  ;   a:  U(       a  [        R                  " X%S5      nU$ [        R                  " XES5      n U$ U[        R                  ;   a:  U(       a  [        R                  " X%S5      nU$ [        R                  " XES5      n U$ U(       a  [        R                  " X5S5      nU$ [        R                  " XES5      nU$ )NrV   r]   )rF   r   rl   ÚndimrL   Úsigned_domainÚunsigned_domain)rr   Ú
input_typeÚint_output_typeÚfloat_output_typerO   r~   Úoutput_types          r   Ú_determine_output_typeÚ$BaseUFuncTest._determine_output_type…   sí   € àˆÜ�bœ%Ÿ+™+×&Ñ&Ø—7‘7ˆDØ—‘‰BàˆDà”×$Ñ$Ó$ÞÜ#Ÿkšk¨/ÀÓE�ð Ðô $Ÿkšk¨"°CÓ8‘ð Ðð ”5×(Ñ(Ó(ÞÜ#Ÿkšk¨/ÀÓE�ð Ðô $Ÿkšk¨"°CÓ8‘ð Ðö	 !Ü#ŸkškÐ*;À3ÓG�ð Ðô $Ÿkšk¨"°CÓ8�ØÐr%   ©rq   )F)NN)r-   Ú
__module__Ú__qualname__Ú__firstlineno__rd   r"   Ú	lru_cacher{   r…   Ú__static_attributes__Ú__classcell__©rs   s   @r   rS   rS   W   s<   ø† õ$
ðL ×Ò Ñ&ó>ó 'ð>ð
 BFØ15÷ò r%   rS   c                   ó0   • \ rS rSrS r   SS jrS rSrg)ÚBasicUFuncTesté    c                 ó   • [        U5      $ r   )r5   ©rr   r0   s     r   r5   Ú"BasicUFuncTest._make_ufunc_usecase¡   s   € Ü" 5Ó)Ð)r%   Nc                 óF  • Uc  / nUc  / nU R                  [        5        U R                  U5      n[        U R                  5      U-   n	U	 GH  n
U
S   nU
S   n[        U[        5      nU(       a  UnOU4UR                  -  nXÂ;   a  M?  U(       a#  [        R                  " US   S:  5      (       a  Mi  US   R                  R                  U;  a  Mˆ  U R                  XÄU5      nU4UR                  -  nU4UR                  -  nUU-   nU R                  UU5      n[        US   [        R                  5      (       a�  U Vs/ s H9  n[        R                   " US   R"                  UR                  R$                  S9PM;     nnU Vs/ s H9  n[        R                   " US   R"                  UR                  R$                  S9PM;     nnOrU Vs/ s H,  n[        R                   " SUR                  R$                  S9PM.     nnU Vs/ s H,  n[        R                   " SUR                  R$                  S9PM.     nnSn[&        R(                  " SS9 n[&        R*                  " S5        U" / UQUQ76   SnU HQ  n[-        UR.                  [0        5      (       d  M$  [3        UR4                  5      R7                  U5      (       d  MO  SnMS     S S S 5        U" / UQUQ76   [9        UU5       Hb  u  nnS	R;                  / S
Q5      R=                  UR                  XËUUUR                  U5      n [        R>                  RA                  UUSUS9  Md     GM	     g s  snf s  snf s  snf s  snf ! , (       d  f       N¤= f! [B         a    U(       a  [E        SU
UU5         M³  e f = f)Nr   rV   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_warningsr-   r5   Úlistrq   rF   ÚtupleÚninrK   ÚanyrL   Úkindr…   Únoutr{   ÚndarrayÚzerosÚshapeÚnameÚwarningsÚcatch_warningsÚsimplefilterÚ
issubclassÚcategoryÚRuntimeWarningrG   ÚmessageÚ
startswithrJ   r)   r,   ÚtestingÚassert_array_almost_equalÚAssertionErrorÚprint)rr   r0   Úskip_inputsÚadditional_inputsr‚   rƒ   ÚkindsÚpositive_onlyry   rq   Úinput_tupleÚinput_operandr�   Úis_tupler   r„   Úinput_typesÚoutput_typesÚargtysÚcfuncÚout_tyÚresultsÚexpectedÚinvalid_flagÚwarnlistÚwarnmsgÚthiswarnÚ
expected_iÚresult_iÚmsgs                                 r   Úbasic_ufunc_testÚBasicUFuncTest.basic_ufunc_test¤   sz  € ð ÑØˆKØÑ$Ø "ÐØ×"Ñ"¤8Ô,à×)Ñ)¨%Ó0ˆä�d—k‘kÓ"Ð%6Ñ6ˆä!ˆKØ'¨™NˆMØ$ Q™ˆJä! -´Ó7ˆHÞØ$‘à%Ð'¨%¯)©)Ñ3�àÓ(ÙÞ¤§¢¨¨Q©°!©×!4Ñ!4Ùð �Q‘—‘×"Ñ"¨%Ó/Ùà×5Ñ5ØÐ->ó@ˆKð &˜-¨%¯)©)Ñ3ˆKØ'˜>¨E¯J©JÑ6ˆLØ  <Ñ/ˆFØ—M‘M &¨&Ó1ˆEä˜$˜q™'¤2§:¡:×.Ñ.ñ #/óò #/˜ô —H’H˜T !™WŸ]™]Ø#)§<¡<×#4Ñ#4ô6á".ð ð ñ #/óâ".˜ô —H’H˜T !™WŸ]™]°&·,±,×2CÑ2CÔDÙ".ð ð �ñ #/óâ".˜ô —H’H˜Q f§l¡l×&7Ñ&7Ô8Ù".ð ð ñ #/óâ".˜ô —H’H˜Q f§l¡l×&7Ñ&7Ô8Ù".ð ð ð
 !ˆLÜ×(Ò(°Ò5¸Ü×%Ò% hÔ/ÙÐ(˜Ð(˜xÓ(à5�Û (�Hä" 8×#4Ñ#4´n×EÓEÜ # H×$4Ñ$4Ó 5× @Ñ @À× IÓ IØ'+šñ	 !)÷ 6ñ Ð"�4Ð"˜'Ó"ä(+¨H°gÖ(>Ñ$�
˜HØ—i‘iò !#ó $÷ %+¡F¨5¯>©>Ø+5Ø+6¸Ø+5×+;Ñ+;¸Zó%Ið	 ðÜ—J‘J×8Ñ8Ø" HØ !Ø #ð 9ó %ô )?ò{ "ùò8ùò
ùò
ùò÷ 6Õ5ûô6 &ó Þ#äÐAØ)¨8°Z÷Að ðúsE   ÅA MÆA MÇ3M!È3M&ÉAM+Ê'M+ËM+Ì- M<Í+
M9	Í<N ÎN c                 óÎ  • U R                  U5        [        R                  S:  a  g [        R                  " S5      [        R
                  " S5      4[        R                  " S5      [        R
                  " S5      4[        R                  " S5      [        R
                  " S5      4[        R                  " S5      [        R
                  " S5      4[        R                  " S5      [        R
                  " S5      4[        R                  " S5      [        R
                  " S5      4[        R
                  " S5      [        R                  " S5      4[        R
                  " S5      [        R                  " S5      4[        R
                  " S5      [        R                  " S5      4[        R
                  " S5      [        R                  " S5      4[        R
                  " S5      [        R                  " S5      4[        R
                  " S5      [        R                  " S5      4[        R                  " / SQ[        R                  S9[        R                  " / SQ[        R
                  S94[        R                  " / SQ[        R
                  S9[        R                  " / SQ[        R                  S944nU R                  U5      nU GH  u  pE[        U5      [        U5      4n[        R                  " [        R                  SS5      nXg4-   nU R                  X85      n	[        U[        R                  5      (       a.  [        R                  " UR                   [        R                  S9n
O#[        R                  " S[        R                  S9n
[        R"                  " U
5      nU" XEU5        U	" XEU
5        [        R$                  R'                  Xº5        GM     g )	N)rV   é   rW   r   rV   )rW   rW   r   r   rV   rV   r\   )r   rV   r   rV   r   rV   r]   )rÈ   r   Únumpy_versionrK   rh   rg   rk   r5   r   r   rl   Úbool_r{   rF   r£   r¤   r¥   Ú
zeros_liker¯   Úassert_equal)rr   Úcomparison_ufuncr´   ry   ÚaÚbrº   r„   r¼   r½   ÚresultrÀ   s               r   Úsigned_unsigned_cmp_testÚ'BasicUFuncTest.signed_unsigned_cmp_test  st  € Ø×ÑÐ.Ô/ä×&Ñ&¨Ó0Øô �XŠX�b‹\œ2Ÿ9š9 Q›<Ð(Ü�XŠX�b‹\œ2Ÿ9š9 Q›<Ð(Ü�XŠX�a‹[œ"Ÿ)š) A›,Ð'Ü�XŠX�a‹[œ"Ÿ)š) A›,Ð'Ü�XŠX�a‹[œ"Ÿ)š) A›,Ð'Ü�XŠX�a‹[œ"Ÿ)š) A›,Ð'ä�YŠY�q‹\œ2Ÿ8š8 B›<Ð(Ü�YŠY�q‹\œ2Ÿ8š8 A›;Ð'Ü�YŠY�q‹\œ2Ÿ8š8 A›;Ð'Ü�YŠY�q‹\œ2Ÿ8š8 B›<Ð(Ü�YŠY�q‹\œ2Ÿ8š8 A›;Ð'Ü�YŠY�q‹\œ2Ÿ8š8 A›;Ð'ä�XŠXÒ*´"·(±(Ñ;Ü�XŠXÒ(´·	±	Ñ:ð<ô �XŠXÒ(´·	±	Ñ:Ü�XŠXÒ*´"·(±(Ñ;ð=ð%
Ðð, ×)Ñ)Ð*:Ó;ˆä%‰DˆAÜ! !›9¤f¨Q£iÐ0ˆKÜŸ+š+¤e§k¡k°1°cÓ:ˆKØ  >Ñ1ˆFØ—M‘M &Ó1ˆEä˜!œRŸZ™Z×(Ñ(ÜŸš !§'¡'´·±Ñ:‘äŸš !¬2¯8©8Ñ4�ä—}’} VÓ,ˆHá�1˜Ô"Ù�!˜ÔÜ�J‰J×#Ñ# H×5ò &r%   rA   )NNNNÚifcF)r-   rˆ   r‰   rŠ   r5   rÈ   rÔ   rŒ   rA   r%   r   r�   r�       s    † ò*ð KOØAEØ49ôaõF06r%   r�   c                   ón  • \ rS rSrS`S jrS rS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rS rS rS r\R.                  4S jrS rS rS rS rS rS rS rS r S r!S r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-S+ r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8 r;S9 r<S: r=S; r>S< r?S= r@S> rAS? rBS@ rCSA rDSB rESC rFSD rGSE rHSF rISG rJSH rKSI rLSJ rMSK rNSL rOSM rPSN rQSO rRSP rSSQ rTSR rU\VSS 5       rW\VST 5       rXSU rYSV rZSW r[SX r\SY r]SZ r^S[ r_S\ r`S] raS^ rbS_rcg)aÚ
TestUFuncsi:  Nc                 óö   • [         R                  [         R                  [         R                  " [         R                  SS5      [         R                  " [         R                  SS5      /nU R	                  XS9  g ©NrV   r]   )r³   )r   ri   rj   rl   rÈ   )rr   r¦   r³   s      r   Úbasic_int_ufunc_testÚTestUFuncs.basic_int_ufunc_test;  sR   € ä�M‰MÜ�M‰MÜ�KŠKœŸ™ q¨#Ó.Ü�KŠKœŸ™ q¨#Ó.ð	
ˆð 	×Ñ˜dÐÒ<r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úadd©rr   s    r   Útest_add_ufuncÚTestUFuncs.test_add_ufuncG  s   € Ø×ÑœbŸf™fÕ%r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úsubtractrß   s    r   Útest_subtract_ufuncÚTestUFuncs.test_subtract_ufuncJ  ó   € Ø×ÑœbŸk™kÕ*r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úmultiplyrß   s    r   Útest_multiply_ufuncÚTestUFuncs.test_multiply_ufuncM  ræ   r%   c                 ód   • S n[         R                  nU R                  [        R                  US9  g ©N©r‚   )r   rj   rÈ   rK   Údivide©rr   Úint_out_types     r   Útest_divide_ufuncÚTestUFuncs.test_divide_ufuncP  s.   € ð ˆÜ—}‘}ˆà×ÑœbŸi™iØ.:ð 	ò 	<r%   c                 ó@   • U R                  [        R                  SS9  g ©NÚf©rµ   )rÈ   rK   Ú	logaddexprß   s    r   Útest_logaddexp_ufuncÚTestUFuncs.test_logaddexp_ufuncY  ó   € Ø×ÑœbŸl™l°#ÐÒ6r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Ú
logaddexp2rß   s    r   Útest_logaddexp2_ufuncÚ TestUFuncs.test_logaddexp2_ufunc\  s   € Ø×ÑœbŸm™m°3ÐÒ7r%   c                 ó\   • U R                  [        R                  [        R                  S9  g rì   )rÈ   rK   Útrue_divider   rj   rß   s    r   Útest_true_divide_ufuncÚ!TestUFuncs.test_true_divide_ufunc_  s"   € Ø×ÑœbŸn™nÜ.3¯m©mð 	ò 	=r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úfloor_dividerß   s    r   Útest_floor_divide_ufuncÚ"TestUFuncs.test_floor_divide_ufuncc  s   € Ø×ÑœbŸo™oÕ.r%   c                 óÊ   • [         R                  " [         R                  SS5      [         R                  /nU R                  [        R
                  [         R                  US9  g )NrV   r]   )r‚   r³   )r   rl   re   rÈ   rK   Únegativerh   )rr   r³   s     r   Útest_negative_ufuncÚTestUFuncs.test_negative_ufuncf  sE   € ô —{’{¤5§<¡<°°CÓ8¼%¿,¹,ÐGˆØ×ÑœbŸk™k¼5¿;¹;Ø*5ð 	ò 	7r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úpositiverß   s    r   Útest_positive_ufuncÚTestUFuncs.test_positive_ufuncm  ræ   r%   c                 ó@   • U R                  [        R                  SS9  g )NT)r¶   )rÈ   rK   Úpowerrß   s    r   Útest_power_ufuncÚTestUFuncs.test_power_ufuncp  s   € Ø×ÑœbŸh™h°dÐÒ;r%   c                 ó@   • U R                  [        R                  SS9  g )NÚfcrö   )rÈ   rK   Úfloat_powerrß   s    r   Útest_float_power_ufuncÚ!TestUFuncs.test_float_power_ufuncs  s   € Ø×ÑœbŸn™n°DÐÒ9r%   c                 ó@   • U R                  [        R                  SS9  g ©NÚiurö   )rÈ   rK   Úgcdrß   s    r   Útest_gcd_ufuncÚTestUFuncs.test_gcd_ufuncv  ó   € Ø×ÑœbŸf™f¨DÐÒ1r%   c                 ó@   • U R                  [        R                  SS9  g r  )rÈ   rK   Úlcmrß   s    r   Útest_lcm_ufuncÚTestUFuncs.test_lcm_ufuncy  r  r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Ú	remainderrß   s    r   Útest_remainder_ufuncÚTestUFuncs.test_remainder_ufunc|  ó   € Ø×ÑœbŸl™lÕ+r%   c                 ó  • [         R                  " [         R                  " [         R                  5      R                  5      [         R                  " S5      4[        R                  4/nU R                  [         R                  SUS9  g )Né   Úifcu©rµ   r´   )rK   rg   ÚiinfoÚmaxr   rÈ   Úmod)rr   r´   s     r   Útest_mod_ufuncÚTestUFuncs.test_mod_ufunc  s`   € ä�iŠiœŸš¤§¡Ó+×/Ñ/Ó0´"·)²)¸B³-Ð@Ä%Ç,Á,ÐOð
Ðð 	×ÑœbŸf™f¨FØ0Að 	ò 	Cr%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úfmodrß   s    r   Útest_fmod_ufuncÚTestUFuncs.test_fmod_ufunc†  ó   € Ø×ÑœbŸg™gÕ&r%   c                 ó°  • [         R                  " [         R                  " [         R                  5      R                  5      [        R                  4[         R
                  " [         R                  " [         R
                  5      R                  5      [        R
                  4[         R                  " [         R                  " [         R                  5      R                  5      [        R                  4[         R                  " [         R                  " [         R                  5      R                  5      [        R                  4/nU R                  UUS9  g )N)r´   )rK   re   r,  r-  r   rg   ri   ÚfinfoÚminrj   rÈ   )rr   r0   r´   s      r   Útest_abs_ufuncÚTestUFuncs.test_abs_ufunc‰  sÅ   € ä�YŠY”r—x’x¤§	¡	Ó*×.Ñ.Ó/´·±Ð>Ü�YŠY”r—x’x¤§	¡	Ó*×.Ñ.Ó/´·±Ð>Ü�ZŠZœŸš¤§¡Ó,×0Ñ0Ó1´5·=±=ÐAÜ�ZŠZœŸš¤§¡Ó,×0Ñ0Ó1´5·=±=ÐAð	
Ðð 	×Ñ˜eØ0Að 	ò 	Cr%   c                 ó>   • U R                  [        R                  S9  g )N)r0   )r9  rK   Úabsoluterß   s    r   Útest_absolute_ufuncÚTestUFuncs.test_absolute_ufunc“  s   € Ø×Ñ¤"§+¡+ÐÒ.r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úfabsrß   s    r   Útest_fabs_ufuncÚTestUFuncs.test_fabs_ufunc–  ó   € Ø×ÑœbŸg™g¨SÐÒ1r%   c                 ó@   • U R                  [        R                  SS9  g ©NÚcfrö   )rÈ   rK   Úrintrß   s    r   Útest_rint_ufuncÚTestUFuncs.test_rint_ufunc™  ó   € Ø×ÑœbŸg™g¨TÐÒ2r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úsignrß   s    r   Útest_sign_ufuncÚTestUFuncs.test_sign_ufuncœ  r5  r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úconjrß   s    r   Útest_conj_ufuncÚTestUFuncs.test_conj_ufuncŸ  r5  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úexprß   s    r   Útest_exp_ufuncÚTestUFuncs.test_exp_ufunc¢  r  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úexp2rß   s    r   Útest_exp2_ufuncÚTestUFuncs.test_exp2_ufunc¥  rJ  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úlogrß   s    r   Útest_log_ufuncÚTestUFuncs.test_log_ufunc¨  r  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úlog2rß   s    r   Útest_log2_ufuncÚTestUFuncs.test_log2_ufunc«  rJ  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úlog10rß   s    r   Útest_log10_ufuncÚTestUFuncs.test_log10_ufunc®  ó   € Ø×ÑœbŸh™h¨dÐÒ3r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úexpm1rß   s    r   Útest_expm1_ufuncÚTestUFuncs.test_expm1_ufunc±  rg  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úlog1prß   s    r   Útest_log1p_ufuncÚTestUFuncs.test_log1p_ufunc´  rg  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úsqrtrß   s    r   Útest_sqrt_ufuncÚTestUFuncs.test_sqrt_ufunc·  rJ  r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úsquarerß   s    r   Útest_square_ufuncÚTestUFuncs.test_square_ufuncº  s   € Ø×ÑœbŸi™iÕ(r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úcbrtrß   s    r   Útest_cbrt_ufuncÚTestUFuncs.test_cbrt_ufunc½  rC  r%   c                 óä  • [         R                  " [         R                  SS5      [         R                  [         R                  " [         R                  SS5      [         R                  [         R                  " [         R                  SS5      [         R                  [         R                  " [         R
                  SS5      [         R
                  /nU R                  [        R                  US9  g rÚ   )	r   rl   re   rf   rg   rh   rÈ   rK   Ú
reciprocal©rr   Úto_skips     r   Útest_reciprocal_ufuncÚ TestUFuncs.test_reciprocal_ufuncÀ  s�   € ô —;’;œuŸ|™|¨Q°Ó4´e·l±lÜ—;’;œuŸ{™{¨A¨sÓ3´U·[±[Ü—;’;œuŸ|™|¨Q°Ó4´e·l±lÜ—;’;œuŸ{™{¨A¨sÓ3´U·[±[ðBˆð 	×ÑœbŸm™m¸ÐÒAr%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Ú	conjugaterß   s    r   Útest_conjugate_ufuncÚTestUFuncs.test_conjugate_ufuncÊ  r'  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úsinrß   s    r   Útest_sin_ufuncÚTestUFuncs.test_sin_ufuncÐ  r  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úcosrß   s    r   Útest_cos_ufuncÚTestUFuncs.test_cos_ufuncÓ  r  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Útanrß   s    r   Útest_tan_ufuncÚTestUFuncs.test_tan_ufuncÖ  r  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úarcsinrß   s    r   Útest_arcsin_ufuncÚTestUFuncs.test_arcsin_ufuncÙ  ó   € Ø×ÑœbŸi™i¨tÐÒ4r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úarccosrß   s    r   Útest_arccos_ufuncÚTestUFuncs.test_arccos_ufuncÜ  r–  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úarctanrß   s    r   Útest_arctan_ufuncÚTestUFuncs.test_arctan_ufuncß  r–  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úarctan2rß   s    r   Útest_arctan2_ufuncÚTestUFuncs.test_arctan2_ufuncâ  ó   € Ø×ÑœbŸj™j°ÐÒ5r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úhypotrß   s    r   Útest_hypot_ufuncÚTestUFuncs.test_hypot_ufuncå  ó   € Ø×ÑœbŸh™h¨cÐÒ2r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úsinhrß   s    r   Útest_sinh_ufuncÚTestUFuncs.test_sinh_ufuncè  rJ  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úcoshrß   s    r   Útest_cosh_ufuncÚTestUFuncs.test_cosh_ufuncë  rJ  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Útanhrß   s    r   Útest_tanh_ufuncÚTestUFuncs.test_tanh_ufuncî  rJ  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úarcsinhrß   s    r   Útest_arcsinh_ufuncÚTestUFuncs.test_arcsinh_ufuncñ  r£  r%   c                 ó@   • U R                  [        R                  SS9  g rE  )rÈ   rK   Úarccoshrß   s    r   Útest_arccosh_ufuncÚTestUFuncs.test_arccosh_ufuncô  r£  r%   c                 óæ  • [         R                  " [         R                  SS5      [         R                  [         R                  " [         R                  SS5      [         R                  [         R                  " [         R                  SS5      [         R                  [         R                  " [         R
                  SS5      [         R
                  /nU R                  [        R                  USS9  g )NrV   r]   rF  )r³   rµ   )	r   rl   re   rf   rg   rh   rÈ   rK   Úarctanhr~  s     r   Útest_arctanh_ufuncÚTestUFuncs.test_arctanh_ufunc÷  s�   € ô —;’;œuŸ|™|¨Q°Ó4´e·l±lÜ—;’;œuŸ{™{¨A¨sÓ3´U·[±[Ü—;’;œuŸ|™|¨Q°Ó4´e·l±lÜ—;’;œuŸ{™{¨A¨sÓ3´U·[±[ðBˆð
 	×ÑœbŸj™j°gÀTÐÒJr%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Údeg2radrß   s    r   Útest_deg2rad_ufuncÚTestUFuncs.test_deg2rad_ufunc  ó   € Ø×ÑœbŸj™j°ÐÒ4r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úrad2degrß   s    r   Útest_rad2deg_ufuncÚTestUFuncs.test_rad2deg_ufunc
  rÅ  r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Údegreesrß   s    r   Útest_degrees_ufuncÚTestUFuncs.test_degrees_ufunc  rÅ  r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úradiansrß   s    r   Útest_radians_ufuncÚTestUFuncs.test_radians_ufunc  rÅ  r%   c                 óB   • U R                  [        R                  5        g r   )rÛ   rK   Úbitwise_andrß   s    r   Útest_bitwise_and_ufuncÚ!TestUFuncs.test_bitwise_and_ufunc  ó   € Ø×!Ñ!¤"§.¡.Õ1r%   c                 óB   • U R                  [        R                  5        g r   )rÛ   rK   Ú
bitwise_orrß   s    r   Útest_bitwise_or_ufuncÚ TestUFuncs.test_bitwise_or_ufunc  s   € Ø×!Ñ!¤"§-¡-Õ0r%   c                 óB   • U R                  [        R                  5        g r   )rÛ   rK   Úbitwise_xorrß   s    r   Útest_bitwise_xor_ufuncÚ!TestUFuncs.test_bitwise_xor_ufunc  rÖ  r%   c                 óB   • U R                  [        R                  5        g r   )rÛ   rK   Úinvertrß   s    r   Útest_invert_ufuncÚTestUFuncs.test_invert_ufunc  s   € Ø×!Ñ!¤"§)¡)Õ,r%   c                 óB   • U R                  [        R                  5        g r   )rÛ   rK   Úbitwise_notrß   s    r   Útest_bitwise_not_ufuncÚ!TestUFuncs.test_bitwise_not_ufunc"  rÖ  r%   c                 óB   • U R                  [        R                  5        g r   )rÔ   rK   Úgreaterrß   s    r   Útest_greater_ufuncÚTestUFuncs.test_greater_ufunc1  s   € Ø×%Ñ%¤b§j¡jÕ1r%   c                 óB   • U R                  [        R                  5        g r   )rÔ   rK   Úgreater_equalrß   s    r   Útest_greater_equal_ufuncÚ#TestUFuncs.test_greater_equal_ufunc4  s   € Ø×%Ñ%¤b×&6Ñ&6Õ7r%   c                 óB   • U R                  [        R                  5        g r   )rÔ   rK   Úlessrß   s    r   Útest_less_ufuncÚTestUFuncs.test_less_ufunc7  s   € Ø×%Ñ%¤b§g¡gÕ.r%   c                 óB   • U R                  [        R                  5        g r   )rÔ   rK   Ú
less_equalrß   s    r   Útest_less_equal_ufuncÚ TestUFuncs.test_less_equal_ufunc:  s   € Ø×%Ñ%¤b§m¡mÕ4r%   c                 óB   • U R                  [        R                  5        g r   )rÔ   rK   Ú	not_equalrß   s    r   Útest_not_equal_ufuncÚTestUFuncs.test_not_equal_ufunc=  s   € Ø×%Ñ%¤b§l¡lÕ3r%   c                 óB   • U R                  [        R                  5        g r   )rÔ   rK   Úequalrß   s    r   Útest_equal_ufuncÚTestUFuncs.test_equal_ufunc@  s   € Ø×%Ñ%¤b§h¡hÕ/r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úlogical_andrß   s    r   Útest_logical_and_ufuncÚ!TestUFuncs.test_logical_and_ufuncC  ó   € Ø×ÑœbŸn™nÕ-r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Ú
logical_orrß   s    r   Útest_logical_or_ufuncÚ TestUFuncs.test_logical_or_ufuncF  s   € Ø×ÑœbŸm™mÕ,r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úlogical_xorrß   s    r   Útest_logical_xor_ufuncÚ!TestUFuncs.test_logical_xor_ufuncI  r  r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úlogical_notrß   s    r   Útest_logical_not_ufuncÚ!TestUFuncs.test_logical_not_ufuncL  r  r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úmaximumrß   s    r   Útest_maximum_ufuncÚTestUFuncs.test_maximum_ufuncO  ó   € Ø×ÑœbŸj™jÕ)r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úminimumrß   s    r   Útest_minimum_ufuncÚTestUFuncs.test_minimum_ufuncR  r  r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úfmaxrß   s    r   Útest_fmax_ufuncÚTestUFuncs.test_fmax_ufuncU  r5  r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úfminrß   s    r   Útest_fmin_ufuncÚTestUFuncs.test_fmin_ufuncX  r5  r%   c                 óš   • [         R                  " SS/[         R                  S9[        R                  " [        R                  SS5      4/$ )NTFr\   rV   r]   )rK   rk   rÍ   r   rl   rß   s    r   Úbool_additional_inputsÚ!TestUFuncs.bool_additional_inputs^  s;   € ä�XŠX�t˜U�m¬2¯8©8Ñ4Ü�[Š[œŸ™ a¨Ó-ð/ð
ð 	
r%   c                 ó^   • U R                  [        R                  SU R                  5       S9  g ©NÚifcbr+  )rÈ   rK   Úisfiniter"  rß   s    r   Útest_isfinite_ufuncÚTestUFuncs.test_isfinite_ufuncd  s*   € Ø×ÑÜ�K‰K˜vØ"×9Ñ9Ó;ð 	ò 	
r%   c                 ó^   • U R                  [        R                  SU R                  5       S9  g r%  )rÈ   rK   Úisinfr"  rß   s    r   Útest_isinf_ufuncÚTestUFuncs.test_isinf_ufuncj  ó*   € Ø×ÑÜ�H‰H˜FØ"×9Ñ9Ó;ð 	ò 	
r%   c                 ó^   • U R                  [        R                  SU R                  5       S9  g r%  )rÈ   rK   Úisnanr"  rß   s    r   Útest_isnan_ufuncÚTestUFuncs.test_isnan_ufuncp  r.  r%   c                 óB   • U R                  [        R                  5        g r   )rÈ   rK   Úsignbitrß   s    r   Útest_signbit_ufuncÚTestUFuncs.test_signbit_ufuncv  r  r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úcopysignrß   s    r   Útest_copysign_ufuncÚTestUFuncs.test_copysign_ufuncy  s   € Ø×ÑœbŸk™k°ÐÒ5r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Ú	nextafterrß   s    r   Útest_nextafter_ufuncÚTestUFuncs.test_nextafter_ufunc|  rú   r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úmodfrß   s    r   Útest_modf_ufuncÚTestUFuncs.test_modf_ufunc  s   € à×ÑœbŸg™g¨SÐÒ1r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úfrexprß   s    r   Útest_frexp_ufuncÚTestUFuncs.test_frexp_ufunc‡  s   € à×ÑœbŸh™h¨cÐÒ2r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úfloorrß   s    r   Útest_floor_ufuncÚTestUFuncs.test_floor_ufunc‹  r¨  r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Úceilrß   s    r   Útest_ceil_ufuncÚTestUFuncs.test_ceil_ufuncŽ  rC  r%   c                 ó@   • U R                  [        R                  SS9  g rô   )rÈ   rK   Útruncrß   s    r   Útest_trunc_ufuncÚTestUFuncs.test_trunc_ufunc‘  r¨  r%   c                 ó  • [         R                  " [         R                  [         R                  * /[         R                  S9[        R
                  " [        R                  SS5      4/nU R                  [         R                  SUS9  g )Nr\   rV   r]   rõ   r+  )rK   rk   Úinfrj   r   rl   rÈ   Úspacing)rr   Ú
additionals     r   Útest_spacing_ufuncÚTestUFuncs.test_spacing_ufunc”  sc   € ô —x’x¤§¡¬"¯&©&¨Ð 1¼¿¹ÑDÜ—{’{¤5§=¡=°!°SÓ9ð;ð =ˆ
à×ÑœbŸj™j°Ø0:ð 	ò 	<r%   c                 óê	  • UR                   n[        U5      nS[        R                  4S[        R                  4S[        R
                  4[        R                  " SS/SS9[        R                  " [        R                  SS5      4[        R                  " SS/SS9[        R                  " [        R                  SS5      4[        R                  " S	S/S
S9[        R                  " [        R
                  SS5      4/nUn[        R                  " [        R                  SS5      [        R                  " [        R
                  SS5      /nUn[        R                  " X4U5       GH‡  nUu  p‰n
US   nUS   nU	S   nU	S   nUS:X  aV  U[        R                  " [        R                  SS5      :X  d*  U[        R                  " [        R                  SS5      :X  a  My  US:X  ak  U[        R                  " [        R                  SS5      :X  aA  U[        R                  :X  a-  [        R                  " [        R                  SS5      (       a  Mê  US:X  al  U[        R                  " [        R                  SS5      :X  aB  U[        R                  :X  a.  [        R                  " [        R                  SS5      (       a  GM\  [        U[        R                  5      (       d  [        U[        R                  5      (       a"  [        U
[        R                  5      (       d  GM¼  XÎU
4nU R                  Xo5      n[        U[        R                  5      (       ag  [        R                  " UR                   U
R"                  R$                  S9n[        R                  " UR                   U
R"                  R$                  S9nOØ[        U[        R                  5      (       ag  [        R                  " UR                   U
R"                  R$                  S9n[        R                  " UR                   U
R"                  R$                  S9nOR[        R                  " SU
R"                  R$                  S9n[        R                  " SU
R"                  R$                  S9nU" X½U5        U" X½U5        ['        U
SU
5      nU[        R(                  [        R*                  4;   a  SOSnU R-                  UUUS9  GMŠ     g )NrV   rW   rZ   r   r^   r\   r]   r`   rX   rb   rî   rã   rL   ÚsingleÚdouble)Úprec)r-   r5   r   rg   rh   rj   rK   rk   rl   Ú	itertoolsÚproductre   rF   r{   r£   r¤   ÚsizerL   r¦   Úgetattrri   Ú	complex64ÚassertPreciseEqual)rr   r0   Ú
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_testÚ(TestUFuncs.binary_ufunc_mixed_types_testŸ  s«  € Ø—^‘^ˆ
Ü# EÓ*ˆà”—‘ÐØ”—‘ÐØ”%—-‘-Ð ä�XŠX�q˜!�f DÑ)¬5¯;ª;´u·|±|ÀQÈÓ+LÐMÜ�XŠX�r˜1�g TÑ*¬E¯KªK¼¿¹ÀQÈÓ,LÐMÜ�XŠX�t˜S�k¨Ñ.Ü�[Š[œŸ™¨¨3Ó/ð1ð2ˆð ˆäŸš¤E§K¡K°°CÓ8ÜŸš¤E§M¡M°1°cÓ:ð<ˆð ˆä×%Ò% g¸×EˆDØ*.Ñ'ˆF˜Kà# A™YˆNØ  ™)ˆKà# A™YˆNØ  ™)ˆKð ˜XÓ%Ø¤5§;¢;¬u¯|©|¸QÀÓ#DÓDØ¤5§;¢;¬u¯|©|¸QÀÓ#DÓDÙð ˜jÓ(Ø#¤u§{¢{´5·<±<ÀÀCÓ'HÓHØ#¤u§|¡|Ó3ÜŸš¤E§K¡K°°C×8Ñ8ÙØ˜jÓ(Ø#¤u§{¢{´5·<±<ÀÀCÓ'HÓHØ#¤u§|¡|Ó3ÜŸš¤E§K¡K°°C×8Ñ8Úä˜K¬¯©×5Ñ5Ü˜{¬E¯K©K×8Ñ8Ü" ;´·±×<Ñ<Úà¨kÐ:ˆDØ—M‘M &Ó/ˆEä˜.¬"¯*©*×5Ñ5ÜŸš .×"5Ñ"5Ø(3×(9Ñ(9×(>Ñ(>ñ@�äŸ8š8 N×$7Ñ$7Ø*5×*;Ñ*;×*@Ñ*@ñB‘ä˜N¬B¯J©J×7Ñ7ÜŸš .×"5Ñ"5Ø(3×(9Ñ(9×(>Ñ(>ñ@�äŸ8š8 N×$7Ñ$7Ø*5×*;Ñ*;×*@Ñ*@ñB‘ô Ÿš !¨;×+<Ñ+<×+AÑ+AÑB�ÜŸ8š8 A¨[×->Ñ->×-CÑ-CÑD�á�.°&Ô9Ù�>°8Ô<ä! +¨w¸ÓDˆKà"¤u§}¡}´e·o±oÐ&FÓFñ à!ð ð ×#Ñ# H¨f¸4Ð#Ô@òq Fr%   c                 óB
  • [        [        R                  5      n[        R                  " SSS9[        R                  " SSS9R	                  SS5      [        R                  " SSS9R	                  SS5      [        R                  " SSS9R	                  SS5      [        R                  " SSS9R	                  SS5      [        R                  " SSS9R	                  SS5      /n[        R
                  " SSS9R	                  SS5      [        R
                  " SSS9R	                  SS5      [        R
                  " SSS9R	                  SS5      [        R
                  " SSS9R	                  SSS5      [        R
                  " SSS9R	                  SSS5      [        R
                  " SSS9R	                  SSS5      /n[        X#5       HÑ  u  pE[        R                  " [        R                  UR                  S5      n[        R                  " [        R                  UR                  S5      nXg4nU R                  X5      n	[        R
                  " UR                  UR                  S9n
[        R                  " XJ5        U	" XE5        U R                  XZ5        MÓ     [        [        R                   5      n[        R                  " SSS9[        R                  " SSS9R	                  SS5      [        R                  " SSS9R	                  SSS5      [        R                  " SSS9R	                  SS5      [        R                  " SSS9R	                  SS5      [        R                  " SSS9R	                  SSS5      [        R                  " SSS9R	                  SSS5      [        R                  " SSS9R	                  SSS5      [        R                  " SSS9R	                  SSS5      /	nUn["        R$                  " X¼5       GH  u  pM[        R                  " [        R                  UR                  S5      n[        R                  " [        R                  UR                  S5      n[        R                  " [        R                  ['        UR                  UR                  5      S5      nXïU4nU R                  X5      n	[        R                   " XM5      n
[        R
                  " U
R                  SS9nU	" XMU5        U R                  XZ5        GM     g )	Né   r^   r\   rV   é	   r`   é   r]   )r5   rK   r  ÚarangeÚreshaper¤   rJ   r   rl   rg   r~   rh   r{   r¥   rL   rb  rÞ   r]  r^  r-  )rr   ry   Úinput_operandsÚoutput_operandsrB   rÓ   r�   r„   r   r½   rÀ   Úinput1_operandsÚinput2_operandsrC   rj  rl  s                   r   Útest_broadcastingÚTestUFuncs.test_broadcastingí  sÊ  € ô %¤R§[¡[Ó1ˆô �IŠI�a˜tÑ$Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨qÓ1Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨qÓ1Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨qÓ1Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨qÓ1Ü�IŠI�e 4Ñ(×0Ñ0°°1Ó5ð7ˆô �HŠH�U $Ñ'×/Ñ/°°!Ó4Ü�HŠH�U $Ñ'×/Ñ/°°!Ó4Ü�HŠH�U $Ñ'×/Ñ/°°!Ó4Ü�HŠH�Y dÑ+×3Ñ3°A°a¸Ó:Ü�HŠH�Y dÑ+×3Ñ3°A°a¸Ó:Ü�HŠH�Y dÑ+×3Ñ3°A°a¸Ó:ð<ˆô ˜^Ö=‰IˆAäŸš¤U§\¡\°1·6±6¸3Ó?ˆJÜŸ+š+¤e§k¡k°6·;±;ÀÓDˆKØÐ,ˆDà—M‘M &Ó/ˆEä—x’x §¡°F·L±LÑAˆHÜ�KŠK˜Ô$á�!Ôà×#Ñ# FÖ5ñ >ô  %¤R§V¡VÓ,ˆô �IŠI�a˜tÑ$Ü�IŠI�e 4Ñ(×0Ñ0°°1Ó5Ü�IŠI�i tÑ,×4Ñ4°Q°q¸Ó;Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨qÓ1Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨qÓ1Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨q°Ó3Ü�IŠI�e 4Ñ(×0Ñ0°°1°QÓ7Ü�IŠI�e 4Ñ(×0Ñ0°°1°QÓ7Ü�IŠI�e 4Ñ(×0Ñ0°°1°QÓ7ð	9ˆð *ˆä×%Ò% o×G‰DˆAäŸ+š+¤e§l¡l°A·F±F¸CÓ@ˆKÜŸ+š+¤e§l¡l°A·F±F¸CÓ@ˆKÜŸ+š+¤e§l¡l´C¸¿¹ÀÇÁÓ4GÈÓMˆKØ¨kÐ:ˆDà—M‘M &Ó/ˆEä—v’v˜a“|ˆHÜ—X’X˜hŸn™n°DÑ9ˆFá�!˜ÔØ×#Ñ# F×5ò Hr%   c                 óà   • [         R                  " [         R                  SS5      nX4n[        X45      S 5       nU R	                  UR
                  U   R                  R                  U5        g )NrV   r]   c                 ó.   • [         R                  " X5      $ r   ©rK   rÞ   ©Úa0Úa1s     r   ÚmyaddÚ2TestUFuncs.test_implicit_output_npm.<locals>.myadd6  s   € ä—6’6˜"“>Ð!r%   )r   rl   rg   r   ÚassertEqualÚ	overloadsÚ	signatureÚreturn_type)rr   Úarr_tyÚsigr‚  s       r   Útest_implicit_output_npmÚ#TestUFuncs.test_implicit_output_npm0  sc   € ô —’œUŸ\™\¨1¨cÓ2ˆØÐˆä	ˆvÐÓ	ñ	"ó 
 ð	"ð 	×Ñ˜Ÿ™¨Ñ-×7Ñ7×CÑCÀVÕLr%   c                 ó"  • S n[         R                  " SSS9[         R                  " SSS9R                  SS5      [         R                  " SSS9R                  SSS5      [         R                  " SSS9R                  SS5      [         R                  " SSS9R                  SS5      [         R                  " SSS9R                  SSS5      [         R                  " SSS9R                  SSS5      [         R                  " SSS9R                  SSS5      [         R                  " SSS9R                  SSS5      /	nUn[        R                  " X#5       Hµ  u  pE[
        R                  " [
        R                  UR                  S5      n[
        R                  " [
        R                  UR                  S5      nXg4nU R                  XS	S
9n	[         R                  " XE5      n
U	" XE5      n[         R                  R                  X«5        M·     g )Nc                 ó.   • [         R                  " X5      $ r   r~  r  s     r   ry   ÚATestUFuncs.test_broadcast_implicit_output_npm_nrt.<locals>.pyfunc=  ó   € Ü—6’6˜"“>Ð!r%   rq  r^   r\   rr  rs  rV   r]   T©rz   )rK   rt  ru  r]  r^  r   rl   rg   r~   r{   rÞ   r¯   Úassert_array_equal)rr   ry   rx  ry  rB   rC   rj  rl  r   r½   rÀ   rÓ   s               r   Ú&test_broadcast_implicit_output_npm_nrtÚ1TestUFuncs.test_broadcast_implicit_output_npm_nrt<  s•  € ò	"ô �IŠI�a˜tÑ$Ü�IŠI�e 4Ñ(×0Ñ0°°1Ó5Ü�IŠI�i tÑ,×4Ñ4°Q°q¸Ó;Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨qÓ1Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨qÓ1Ü�IŠI�a˜tÑ$×,Ñ,¨Q¨q°Ó3Ü�IŠI�e 4Ñ(×0Ñ0°°1°QÓ7Ü�IŠI�e 4Ñ(×0Ñ0°°1°QÓ7Ü�IŠI�e 4Ñ(×0Ñ0°°1°QÓ7ð	9ˆð *ˆä×%Ò% oÖG‰DˆAäŸ+š+¤e§l¡l°A·F±F¸CÓ@ˆKÜŸ+š+¤e§l¡l°A·F±F¸CÓ@ˆKØÐ-ˆDà—M‘M &°D�MÐ9ˆEä—v’v˜a“|ˆHÙ˜1“[ˆFÜ�J‰J×)Ñ)¨(Ö;ò Hr%   c                 óf  • S n[         R                  " SSS5      R                  SS5      n[         R                  " USS9nUR                  SS5      R                  S   n[        U5      nUR                  R                  (       a  UR                  S	:X  d   e[        U5      nUR                  R                  (       a  UR                  S:X  d   e[        U5      nUR                  S
:X  d   eUR                  R                  (       a   eUR                  R                  (       a   e[        [        R                  " X#U/S5      5      nX‚U4/-  nXƒU4/-  nX„U4/-  nU HÎ  u  pš[        U	5      [        U
5      4nU R                  XSS9nU" Xš5      nU" Xš5      nU R                  UR                  R                  UR                  R                  5        U R                  UR                  R                  UR                  R                  5        [         R                  R!                  XÞ5        MÐ     g )Nc                 ó.   • [         R                  " X5      $ r   r~  r  s     r   ry   Ú=TestUFuncs.test_implicit_output_layout_binary.<locals>.pyfuncZ  r�  r%   r   rV   é   r   r™   ÚF©Úorderr]   ÚAé   Tr�  )rK   Úlinspaceru  rk   ÚTr   ÚflagsÚc_contiguousÚlayoutÚf_contiguousr�   r]  Úpermutationsr{   r„  r¯   r‘  )rr   ry   ÚXÚYÚZÚXtyÚYtyÚZtyÚ	testcasesÚarg0Úarg1r   r½   rÀ   rÓ   s                  r   Ú"test_implicit_output_layout_binaryÚ-TestUFuncs.test_implicit_output_layout_binaryY  sÊ  € ò	"ô �KŠK˜˜1˜bÓ!×)Ñ)¨!¨QÓ/ˆä�HŠH�Q˜cÑ"ˆà�I‰I�a˜‹O×Ñ˜aÑ ˆä�Q‹iˆØ�w‰w×#×#¨¯
©
°cÓ(9Ð9Ð9Ü�Q‹iˆØ�w‰w×#×#¨¯
©
°cÓ(9Ð9Ð9Ü�Q‹iˆØ�z‰z˜SÓ Ð Ð Ø—7‘7×'×'Ð'Ð'Ø—7‘7×'×'Ð'Ð'äœ×/Ò/°°q°	¸1Ó=Ó>ˆ	Ø˜!�f�XÑˆ	Ø˜!�f�XÑˆ	Ø˜!�f�XÑˆ	ã#‰JˆDÜ˜4“L¤&¨£,Ð/ˆDØ—M‘M &°D�MÐ9ˆEÙ˜dÓ)ˆHÙ˜4Ó&ˆFà×Ñ˜XŸ^™^×8Ñ8Ø#Ÿ\™\×6Ñ6ô8à×Ñ˜XŸ^™^×8Ñ8Ø#Ÿ\™\×6Ñ6ô8ä�J‰J×)Ñ)¨(Ö;ò $r%   c                 óä  • S n[         R                  " SSS5      R                  SS5      n[         R                  " USS9nUR                  SS5      R                  S   n[        U5      nUR                  R                  (       a  UR                  S	:X  d   e[        U5      nUR                  R                  (       a  UR                  S:X  d   e[        U5      nUR                  S
:X  d   eUR                  R                  (       a   eUR                  R                  (       a   eX#U4 HÂ  n[        U5      4n	U R                  XSS9n
U" U5      nU
" U5      nU R                  UR                  R                  UR                  R                  5        U R                  UR                  R                  UR                  R                  5        [         R                  R                  X¼5        MÄ     g )Nc                 ó.   • [         R                  " U 5      $ r   ©rK   rq  )r€  s    r   ry   Ú<TestUFuncs.test_implicit_output_layout_unary.<locals>.pyfunc  s   € Ü—7’7˜2“;Ðr%   r   rV   r—  r   r™   r˜  r™  r]   r›  Tr�  )rK   r�  ru  rk   rž  r   rŸ  r   r¡  r¢  r{   r„  r¯   r‘  )rr   ry   r¤  r¥  r¦  r§  r¨  r©  r«  r   r½   rÀ   rÓ   s                r   Ú!test_implicit_output_layout_unaryÚ,TestUFuncs.test_implicit_output_layout_unary~  s~  € ò	ô �KŠK˜˜1˜bÓ!×)Ñ)¨!¨QÓ/ˆä�HŠH�Q˜cÑ"ˆà�I‰I�a˜‹O×Ñ˜aÑ ˆä�Q‹iˆØ�w‰w×#×#¨¯
©
°cÓ(9Ð9Ð9Ü�Q‹iˆØ�w‰w×#×#¨¯
©
°cÓ(9Ð9Ð9Ü�Q‹iˆØ�z‰z˜SÓ Ð Ð Ø—7‘7×'×'Ð'Ð'Ø—7‘7×'×'Ð'Ð'à˜1“IˆDÜ˜4“L�?ˆDØ—M‘M &°D�MÐ9ˆEÙ˜d“|ˆHÙ˜4“[ˆFà×Ñ˜XŸ^™^×8Ñ8Ø#Ÿ\™\×6Ñ6ô8à×Ñ˜XŸ^™^×8Ñ8Ø#Ÿ\™\×6Ñ6ô8ä�J‰J×)Ñ)¨(Ö;ò r%   rA   r   )dr-   rˆ   r‰   rŠ   rÛ   rà   rä   ré   rñ   rø   rý   r  r  r	  r  r  r  r  r!  r%  r/  r3  rK   Úabsr9  r=  rA  rH  rM  rQ  rU  rY  r]  ra  re  rj  rn  rr  rv  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  r  r"  r(  r,  r1  r5  r9  r=  r$   rA  rE  rI  rM  rQ  rW  rn  rz  rŠ  r’  r­  r³  rŒ   rA   r%   r   rØ   rØ   :  s   † ô=ò&ò+ò+ò<ò7ò8ò=ò/ò7ò+ò<ò:ò2ò2ò,òCò'ð $&§6¡6ô Cò/ò2ò3ò'ò'ò2ò3ò2ò3ò4ò4ò4ò3ò)ò2òBò,ò2ò2ò2ò5ò5ò5ò6ò3ò3ò3ò3ò6ò6òKò 5ò5ò5ò5ò2ò1ò2ò-ò2ò2ò8ò/ò5ò4ò0ò.ò-ò.ò.ò*ò*ò'ò'ò
ò
ò
ò
ò*ò6ò7ð ñ2ó ð2ð ñ3ó ð3ò3ò2ò3ò<òLAò\A6òF
Mò<ò:#<õJ<r%   rØ   c                   ó>  • \ rS rSrS r   S0S jr    S1S jrS rS rS r	 S2S	 jr
 S2S
 jrS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S  r!S! r"S" r#S# r$S$ r%S% r&S& r'S' r(S( r)S) r*S* r+S+ r,S, r-S- r.S. r/S/r0g)3ÚTestArrayOperatorsiŸ  c                 ó¶   • U R                  UR                  R                  UR                  R                  5        [        R                  R                  X5        g r   )r„  rL   r¡   rK   r¯   r°   )rr   rÀ   Úgots      r   Ú_check_resultsÚ!TestArrayOperators._check_results¡  s6   € Ø×Ñ˜Ÿ™×,Ñ,¨c¯i©i¯n©nÔ=Ü
�
‰
×,Ñ,¨XÕ;r%   Nc                 óH  • Uc  / nUc  / n[        U5      n[        U R                  5      nUR                  U5        Un	U H_  n
U
u  p¼XÃ;   d  [	        U[
        R                  5      (       d  M-  U R                  Xœ4US9nU	" U5      nU" U5      nU R                  Xï5        Ma     g )Nr�  )	r<   r�   rq   ÚextendrF   r   rl   r{   rº  )rr   Úoperatorrz   r³   r´   r‚   rƒ   Úoperator_funcrq   ry   r·   r¸   r�   r½   rÀ   r¹  s                   r   Úunary_op_testÚ TestArrayOperators.unary_op_test¥  s§   € ð ÑØˆKØÑ$Ø "ÐÜ4°XÓ>ˆÜ�d—k‘kÓ"ˆØ�‰Ð'Ô(ØˆÛ!ˆKØ(3Ñ%ˆMàÓ*Ü# J´·±×<Ñ<Ùà—M‘M &¨-¸S�MÐAˆEÙ˜mÓ,ˆHÙ˜Ó&ˆCØ×Ñ Ö.ò "r%   c                 óì  • Uc  / nUc  / n[        U5      n[        U R                  5      n	U	R                  U5        Un
[        R
                  R                  S5      nU	 GH  nUu  pÞ[        R                  " [        USU5      5      nUnXã;   a  M2  U(       a  [        R                  " SUS9S   n[        U[        R                  5      (       a,  UnUnU(       a   [        R                  " UW:  5      (       a  M›  O<UR                  SSS5      R!                  U5      n[#        U5      nU(       a  UW:  a  MØ  UU4nU R%                  U
UUS9nU
" UU5      nU" UU5      nU R'                  UU5        GM     g )NrV   rL   r\   r   éd   é
   r�  )r>   r�   rq   r½  rK   ÚrandomÚRandomStater   Úas_dtyper`  r¤   rF   r   rl   r    ÚuniformÚastyper   r{   rº  )rr   r¾  rz   r³   r´   r‚   rƒ   Úpositive_rhsr¿  rq   ry   Úrandom_stater·   Úinput_operand1r�   Úinput_dtypeÚinput_type1ÚzeroÚinput_operand0Úinput_type0r   r½   rÀ   r¹  s                           r   Úbinary_op_testÚ!TestArrayOperators.binary_op_test¼  se  € ð ÑØˆKØÑ$Ø "ÐÜ5°hÓ?ˆÜ�d—k‘kÓ"ˆØ�‰Ð'Ô(Øˆô —y‘y×,Ñ,¨QÓ/ˆÜ!ˆKØ)4Ñ&ˆNÜ'×0Ò0Ü˜
 G¨ZÓ8ó:ˆKà$ˆKàÓ(ÙæÜ—x’x ¨Ñ5°aÑ8�ô ˜*¤e§k¡k×2Ñ2Ø!/�Ø(�Þ¤B§F¢F¨>¸DÑ+@×$AÑ$AÙøà".×"6Ñ"6°q¸#¸rÓ"B×!JÑ!JØó"!�ä$ ^Ó4�Þ N°TÓ$9Ùà Ð-ˆDØ—M‘M &¨$°C�MÐ8ˆEÙ˜n¨nÓ=ˆHÙ˜¨Ó7ˆCØ×Ñ ¨#×.ò; "r%   c                 óÄ   • S[         R                  4S[         R                  4[        R                  " SS/5      [         R                  " [         R                  SS5      4/$ )NTFrV   r]   )r   ÚbooleanrK   rk   rl   rß   s    r   Úbitwise_additional_inputsÚ,TestArrayOperators.bitwise_additional_inputsê  sL   € ð ”5—=‘=Ð!Ø”E—M‘MÐ"Ü�XŠX�t˜U�mÓ$¤e§k¢k´%·-±-ÀÀCÓ&HÐIð
ð 	
r%   c           	      ó$  • UR                  S/ 5      nU[        R                  [        R                  [        R                  " [        R                  SS5      [        R                  " [        R                  SS5      /-  nU R
                  " U0 UD6$ )Nr³   rV   r]   )Ú
setdefaultr   ri   rj   rl   rÒ  )rr   r   Úkwsr³   s       r   Úbinary_int_op_testÚ%TestArrayOperators.binary_int_op_testó  sn   € Ø—n‘n ]°BÓ7ˆØÜ�M‰Mœ5Ÿ=™=Ü�KŠKœŸ™ q¨#Ó.Ü�KŠKœŸ™ q¨#Ó.ð
ñ 	
ˆð
 ×"Ò" DÐ0¨CÑ0Ð0r%   c                 ón   • UR                  S/ 5      nX0R                  5       -  nU R                  " U0 UD6$ )Nr´   )rÙ  rÖ  rÛ  )rr   r   rÚ  r´   s       r   Úbinary_bitwise_op_testÚ)TestArrayOperators.binary_bitwise_op_testü  s<   € ØŸN™NÐ+>ÀÓCÐØ×;Ñ;Ó=Ñ=ÐØ×&Ò&¨Ð4°Ñ4Ð4r%   c                 ó„  • [        U5      nUnU(       a  U R                  n	O[        R                  R                  n	U V
s/ s H  n
[        R
                  " X*S9PM     nn
U V
s/ s H  n
[        R
                  " X:S9PM     nn
U VV
s/ s H  oÕ  H
  oª" U5      PM     M     nnn
XÎ-   n[        R                  " X¿5       Hm  u  nn[        U5      n[        U5      nUU4nU R                  UU5      nUR                  5       nU" UU5        UR                  5       nU" UU5        U	" UU5        Mo     g s  sn
f s  sn
f s  sn
nf )Nr\   )rH   rb  rK   r¯   Úassert_allcloserk   r]  r^  r   r{   Úcopy)rr   r¾  Ú
lhs_valuesÚ
rhs_valuesÚ
lhs_dtypesÚ
rhs_dtypesÚpreciser¿  ry   Ú	assertionrL   Ú
lhs_inputsÚ
rhs_arraysÚvÚrhs_scalarsÚ
rhs_inputsÚlhsÚrhsÚlhs_typeÚrhs_typer   r½   rÀ   r¹  s                           r   Úinplace_op_testÚ"TestArrayOperators.inplace_op_test  s2  € ä6°xÓ@ˆØˆæØ×/Ñ/‰IäŸ
™
×2Ñ2ˆIñ
 $.ó/Ú#-˜%ô —h’h˜zÔ7Ù#-ð 	ð /ñ $.ó/Ú#-˜%ô —h’h˜zÔ7Ù#-ð 	ð /á)3ÔLª AÃ¸�u˜Q–xÁ‘x©ˆÑLØÑ-ˆ
ä!×)Ò)¨*ÖA‰HˆC�Ü˜c“{ˆHÜ˜c“{ˆHØ˜hÐ'ˆDØ—M‘M &¨$Ó/ˆEØ—x‘x“zˆHÙ�8˜SÔ!Ø—(‘(“*ˆCÙ�#�sŒOÙ�c˜8Ö$ò Bùò/ùò/ùãLs   Á D2Á$D7Â	D<c           	      ó¾   • U R                  XU[        R                  [        R                  4[        R                  [        R                  [        R                  4US9$ )N©rç  )rò  rK   ri   rj   rh   )rr   r¾  rã  rä  rç  s        r   Úinplace_float_op_testÚ(TestArrayOperators.inplace_float_op_test   sI   € ð ×#Ñ# H¸*Ü%'§Z¡Z´·±Ð$<Ü%'§Z¡Z´·±¼R¿X¹XÐ$FØ,3ð $ð 5ð 	5r%   c                 óÂ   • U R                  XU[        R                  [        R                  [        R                  4[        R                  [        R
                  45        g r   )rò  rK   rn   rf   rh   re   ©rr   r¾  rã  rä  s       r   Úinplace_int_op_testÚ&TestArrayOperators.inplace_int_op_test)  s:   € Ø×Ñ˜X°:Ü Ÿh™h¬¯©´"·(±(Ð;Ü Ÿh™h¬¯	©	Ð2õ	4r%   c                 óª   • U R                  XU5        U R                  XU[        R                  4[        R                  [        R                  45        g r   )rú  rò  rK   rÍ   rù  s       r   Úinplace_bitwise_op_testÚ*TestArrayOperators.inplace_bitwise_op_test.  s=   € Ø× Ñ  °zÔBØ×Ñ˜X°:Ü Ÿh™h˜[¬2¯8©8´R·X±XÐ*>õ	@r%   c                 ó&   • U R                  S5        g ©NÚ+©rÀ  rß   s    r   Útest_unary_positive_array_opÚ/TestArrayOperators.test_unary_positive_array_op6  ó   € Ø×Ñ˜3Õr%   c                 ó&   • U R                  S5        g ©NÚ-r  rß   s    r   Útest_unary_negative_array_opÚ/TestArrayOperators.test_unary_negative_array_op9  r  r%   c                 ó  • U R                  S[        R                  [        R                  [        R                  " [        R                  SS5      [        R                  " [        R                  SS5      /U R                  5       S9  g )NÚ~rV   r]   )r³   r´   )rÀ  r   ri   rj   rl   rÖ  rß   s    r   Útest_unary_invert_array_opÚ-TestArrayOperators.test_unary_invert_array_op<  sa   € Ø×Ñ˜3Ü(-¯©´u·}±}Ü(-¯ª´E·M±MÀ1ÀcÓ(JÜ(-¯ª´E·M±MÀ1ÀcÓ(Jð(Lð .2×-KÑ-KÓ-Mð	 	ò 	Or%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz+=©rW   ç      ø?rq  ©éûÿÿÿr   ç      @)rö  r¾  Úiaddrß   s    r   Útest_inplace_addÚ#TestArrayOperators.test_inplace_addF  ó*   € Ø×"Ñ" 4ª²|ÔDØ×"Ñ"¤8§=¡=²,ÂÕMr%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz-=r  r  )rö  r¾  Úisubrß   s    r   Útest_inplace_subÚ#TestArrayOperators.test_inplace_subJ  r  r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz*=r  r  )rö  r¾  Úimulrß   s    r   Útest_inplace_mulÚ#TestArrayOperators.test_inplace_mulN  r  r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz//=r  ©r  g      ô?r  )rö  r¾  Ú	ifloordivrß   s    r   Útest_inplace_floordivÚ(TestArrayOperators.test_inplace_floordivR  s/   € Ø×"Ñ" 5ª,ºÔHØ×"Ñ"¤8×#5Ñ#5²|Ú#2õ	4r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz/=r  r  r"  )rö  r¾  Úitruedivrß   s    r   Útest_inplace_divÚ#TestArrayOperators.test_inplace_divW  s/   € Ø×"Ñ" 4ª²|ÔDØ×"Ñ"¤8×#4Ñ#4²lÚ#2õ	4r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz%=r  ©r  rœ  r  )rö  r¾  Úimodrß   s    r   Útest_inplace_remainderÚ)TestArrayOperators.test_inplace_remainder\  r  r%   c                 óx   • U R                  S/ SQ/ SQSS9  U R                  [        R                  / SQ/ SQSS9  g )Nz**=r  r+  Frõ  )rö  r¾  Úipowrß   s    r   Útest_inplace_powÚ#TestArrayOperators.test_inplace_pow`  s>   € Ø×"Ñ" 5ª,ºØ+0ð 	#ñ 	2à×"Ñ"¤8§=¡=²,ÂØ+0ð 	#ò 	2r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz&=©r   rV   rœ  rq  é3   ©r   é   r)  é*   éÿ   )rý  r¾  Úiandrß   s    r   Útest_inplace_andÚ#TestArrayOperators.test_inplace_andf  ó2   € Ø×$Ñ$ TÒ+;Ú%9ô	;à×$Ñ$¤X§]¡]Ò4DÚ%9õ	;r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz|=r4  r6  )rý  r¾  Úiorrß   s    r   Útest_inplace_orÚ"TestArrayOperators.test_inplace_orl  s2   € Ø×$Ñ$ TÒ+;Ú%9ô	;à×$Ñ$¤X§\¡\Ò3CÚ%9õ	;r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz^=r4  r6  )rý  r¾  Úixorrß   s    r   Útest_inplace_xorÚ#TestArrayOperators.test_inplace_xorr  r=  r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz<<=©r   r™   iöÿÿÿiÍÿÿÿ©r   rV   r   é   )rú  r¾  Úilshiftrß   s    r   Útest_inplace_lshiftÚ&TestArrayOperators.test_inplace_lshiftx  ó1   € Ø× Ñ  Ò(8º-ÔHØ× Ñ ¤×!1Ñ!1Ò3CÚ!.õ	0r%   c                 ó|   • U R                  S/ SQ/ SQ5        U R                  [        R                  / SQ/ SQ5        g )Nz>>=rG  rH  )rú  r¾  Úirshiftrß   s    r   Útest_inplace_rshiftÚ&TestArrayOperators.test_inplace_rshift}  rM  r%   c                 óÀ  • S n[         R                  " S5      nU" U5      nU R                  US   US   :g  =(       a    US   US   :g  5        [         R                  " S5      n[        U5      " U5      nU R                  US   US   :g  =(       a    US   US   :g  5        [         R                  R                  X$5        [         R                  R                  X55        g)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                 ó    • U 7nSU S'   SUS'   U$ )Nrq  r   r   rV   rA   )r�  Úa2s     r   rõ   Ú<TestArrayOperators.test_unary_positive_array_op_2.<locals>.f‰  s    € Ø�ˆBØˆBˆq‰EØˆBˆq‰EØˆIr%   rÄ  r   rV   N)rK   r¤   Ú
assertTruer   r¯   r‘  )rr   rõ   r�  rT  Úa3Úa4s         r   Útest_unary_positive_array_op_2Ú1TestArrayOperators.test_unary_positive_array_op_2‚  s¯   € ò	ô �XŠX�b‹\ˆÙˆr‹UˆØ�‰˜˜1™  A¡™×9¨2¨a©5°B°q±E©>Ô:Ü�XŠX�b‹\ˆÜ�!ŒW�R‹[ˆØ�‰˜˜1™  A¡™×9¨2¨a©5°B°q±E©>Ô:Ü
�
‰
×%Ñ% bÔ-Ü
�
‰
×%Ñ% bÕ-r%   c                 ó&   • U R                  S5        g r   ©rÒ  rß   s    r   Útest_add_array_opÚ$TestArrayOperators.test_add_array_op›  ó   € Ø×Ñ˜CÕ r%   c                 ó&   • U R                  S5        g r  r\  rß   s    r   Útest_subtract_array_opÚ)TestArrayOperators.test_subtract_array_opž  r_  r%   c                 ó&   • U R                  S5        g )NÚ*r\  rß   s    r   Útest_multiply_array_opÚ)TestArrayOperators.test_multiply_array_op¡  r_  r%   c                 óH   • S n[         R                  nU R                  SUS9  g )NÚ/rí   )r   rj   rÒ  rï   s     r   Útest_divide_array_opÚ'TestArrayOperators.test_divide_array_op¤  s#   € ØˆÜ—}‘}ˆØ×Ñ˜C°ÐÒ>r%   c                 óè  • [         R                  " S5      [        R                  4[         R                  " S5      [        R                  4[         R                  " S5      [        R                  4[         R                  " S5      [        R                  4[         R
                  " S5      [        R
                  4[         R
                  " S5      [        R
                  4[         R                  " S5      [        R                  4[         R                  " S5      [        R                  4[         R                  " S5      [        R                  4[         R                  " S	5      [        R                  4[         R                  " SS
/SS9[        R                  " [        R                  SS5      4[         R                  " SS/SS9[        R                  " [        R                  SS5      4[         R                  " / SQSS9[        R                  " [        R                  SS5      4[         R                  " / SQSS9[        R                  " [        R
                  SS5      4[         R                  " SS/SS9[        R                  " [        R                  SS5      4[         R                  " SS	/SS9[        R                  " [        R                  SS5      4/U l
        U R                  S5        g )NrV   éþÿÿÿr   r   r  rX   r  g      Àg      @rœ  r[   r\   r]   rq  r^   )rW   rV   r™   r_   )rW   rV   é   r`   ra   rb   z//)rK   re   r   rf   rg   rh   ri   rj   rk   rl   rq   rÒ  rß   s    r   Útest_floor_divide_array_opÚ-TestArrayOperators.test_floor_divide_array_op©  sÕ  € ô �YŠY�q‹\œ5Ÿ<™<Ð(Ü�XŠX�b‹\œ5Ÿ;™;Ð'Ü�XŠX�a‹[œ%Ÿ+™+Ð&Ü�YŠY�q‹\œ5Ÿ<™<Ð(Ü�XŠX�b‹\œ5Ÿ;™;Ð'Ü�XŠX�a‹[œ%Ÿ+™+Ð&ä�ZŠZ˜ÓœuŸ}™}Ð-Ü�ZŠZ˜‹_œeŸm™mÐ,ä�ZŠZ˜ÓœuŸ}™}Ð-Ü�ZŠZ˜‹_œeŸm™mÐ,ä�XŠX�q˜�e 4Ñ(¬%¯+ª+´e·l±lÀAÀsÓ*KÐLÜ�XŠX�q˜�e 4Ñ(¬%¯+ª+´e·l±lÀAÀsÓ*KÐLÜ�XŠX’h dÑ+¬U¯[ª[¼¿¹ÀaÈÓ-MÐNÜ�XŠX’h dÑ+¬U¯[ª[¼¿¹ÀaÈÓ-MÐNÜ�XŠX�t˜S�k¨Ñ.Ü�[Š[œŸ™¨¨3Ó/ð1ä�XŠX�t˜S�k¨Ñ.Ü�[Š[œŸ™¨¨3Ó/ð1ð)
ˆŒð. 	×Ñ˜DÕ!r%   c                 ó&   • U R                  S5        g )NÚ%r\  rß   s    r   Útest_remainder_array_opÚ*TestArrayOperators.test_remainder_array_opÅ  r_  r%   c                 ó$   • U R                  SSS9  g )Nz**T©rÊ  r\  rß   s    r   Útest_power_array_opÚ&TestArrayOperators.test_power_array_opÈ  s   € Ø×Ñ˜D¨tÐÒ4r%   c                 ó$   • U R                  SSS9  g )Nz<<Tru  ©rÛ  rß   s    r   Útest_left_shift_array_opÚ+TestArrayOperators.test_left_shift_array_opË  ó   € Ø×Ñ °4ÐÒ8r%   c                 ó$   • U R                  SSS9  g )Nz>>Tru  ry  rß   s    r   Útest_right_shift_array_opÚ,TestArrayOperators.test_right_shift_array_opÎ  r|  r%   c                 ó&   • U R                  S5        g )NÚ&©rÞ  rß   s    r   Útest_bitwise_and_array_opÚ,TestArrayOperators.test_bitwise_and_array_opÑ  ó   € Ø×#Ñ# CÕ(r%   c                 ó&   • U R                  S5        g )NÚ|r‚  rß   s    r   Útest_bitwise_or_array_opÚ+TestArrayOperators.test_bitwise_or_array_opÔ  r…  r%   c                 ó&   • U R                  S5        g )NÚ^r‚  rß   s    r   Útest_bitwise_xor_array_opÚ,TestArrayOperators.test_bitwise_xor_array_op×  r…  r%   c                 ó&   • U R                  S5        g )Nz==r\  rß   s    r   Útest_equal_array_opÚ&TestArrayOperators.test_equal_array_opÚ  ó   € Ø×Ñ˜DÕ!r%   c                 ó&   • U R                  S5        g )NÚ>r\  rß   s    r   Útest_greater_array_opÚ(TestArrayOperators.test_greater_array_opÝ  r_  r%   c                 ó&   • U R                  S5        g )Nz>=r\  rß   s    r   Útest_greater_equal_array_opÚ.TestArrayOperators.test_greater_equal_array_opà  r‘  r%   c                 ó&   • U R                  S5        g )NÚ<r\  rß   s    r   Útest_less_array_opÚ%TestArrayOperators.test_less_array_opã  r_  r%   c                 ó&   • U R                  S5        g )Nz<=r\  rß   s    r   Útest_less_equal_array_opÚ+TestArrayOperators.test_less_equal_array_opæ  r‘  r%   c                 ó&   • U R                  S5        g )Nz!=r\  rß   s    r   Útest_not_equal_array_opÚ*TestArrayOperators.test_not_equal_array_opé  r‘  r%   r‡   )TNNNN)TNNNNF)T)1r-   rˆ   r‰   rŠ   rº  rÀ  rÒ  rÖ  rÛ  rÞ  rò  rö  rú  rý  r  r	  r  r  r  r  r$  r(  r-  r1  r;  r@  rD  rK  rP  rY  r]  ra  re  ri  rn  rr  rv  rz  r~  rƒ  rˆ  rŒ  r�  r”  r—  r›  rž  r¡  rŒ   rA   r%   r   r·  r·  Ÿ  s	  † ò<ð +/Ø:>Ø>Bô/ð. ,0Ø;?Ø?CØ$)ô,/ò\
ò1ò5ð 9=ô%ð@ '+ô5ò4ò
@ò ò òOòNòNòNò4ò
4ò
Nò2ò;ò;ò;ò0ò
0ò
.ò2!ò!ò!ò?ò
"ò8!ò5ò9ò9ò)ò)ò)ò"ò!ò"ò!ò"õ"r%   r·  c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	ÚTestScalarUFuncsií  a	  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                 óœ  • [        X#5       GH2  u  pE[        U5      " U5      nU" U6 nU" [        XE5      6 nSR                  XT5      n	[	        [
        R                  [
        R                  4[
        R                  [
        R                  4[
        R                  [
        R                  4[
        R                  [
        R                  4/5      n
XJ;   a  [        U5      nO¿[        R                  " UR                  [        R                  5      (       a  [        U5      nO[        R                  " UR                  [        R                  5      (       a  [        U5      nO?[        R                  " UR                  [        R                   5      (       a  [#        U5      nXFR$                  U   R&                  R(                  4-   n[+        U Vs/ s H  oÌ[
        R,                  :H  PM     sn5      (       a  SnO6[+        U Vs/ s H  oÌ[
        R.                  :H  PM     sn5      (       a  SnOSnU R1                  XxX�S9  GM5     g s  snf s  snf )Nzfor args {0} typed {1}rZ  r[  Úexact)rÇ   r\  )rJ   r   rQ   r,   Úsetr   rf   rg   rh   ÚfloatrK   Ú
issubdtyperL   ÚinexactÚintegerÚintrÍ   Úboolr…  r†  r‡  r    ri   rj   rb  )rr   ry   Ú	arg_typesÚ
arg_valuesrN   r   r½   r¹  rÀ   rÇ   ÚspecialÚalltypesÚtr\  s                 r   Ú	run_ufuncÚTestScalarUFuncs.run_ufuncõ  s£  € Ü 	×6‰LˆFÜ˜”L Ó(ˆEÙ˜�,ˆCÙœ¨vÓ<Ð=ˆHà*×1Ñ1°$Ó?ˆCô Ü—‘œeŸl™lÐ+Ü—‘œuŸ{™{Ð+Ü—‘œeŸl™lÐ+Ü—‘œuŸ{™{Ð+ð	ó ˆGð Ó Ü  ›?‘ô —=’= §¡´·±×<Ñ<Ü$ X›‘HÜ—]’] 8§>¡>´2·:±:×>Ñ>Ü" 8›}‘HÜ—]’] 8§>¡>´2·8±8×<Ñ<Ü# H›~�Hà§¡°Ñ!8×!BÑ!B×!NÑ!NÐ PÑPˆHô ±Ó9²¨1œŸ™Ô&±Ñ9×:Ñ:Ø‘Ü±(Ó;²(¨Qœ5Ÿ=™=Ô(±(Ñ;×<Ñ<Ø‘à�à×#Ñ# C°sÐ#ÔFòa 7ùòR :ùâ;s   ÇI
ÈI	
c                 óú   • S n/ SQn[         R                  4[         R                  4[         R                  4[         R                  4[         R
                  4[         R                  4/nU R                  XU5        g )Nc                 ó.   • [         R                  " U 5      $ r   r±  ©rB   s    r   Ú_funcÚ7TestScalarUFuncs.test_scalar_unary_ufunc.<locals>._func)  s   € Ü—7’7˜1“:Ðr%   )©rœ  rº  )rV   rº  )çš™™™™™¹?)çš™™™™™É?)r   rf   re   rh   rg   ri   rj   r³  ©rr   r¸  rf  Útyss       r   Útest_scalar_unary_ufuncÚ(TestScalarUFuncs.test_scalar_unary_ufunc(  sZ   € ò	ò 6ˆÜ—‘ˆ~¤§¡˜Ü—‘ˆ~¤§¡˜Ü—‘Ð¤%§-¡-Ð!1ð3ˆð 	�‰�u 4Õ(r%   c                 ó  • S n/ SQn[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  /nU R                  U[        X35      [        X"5      5        g )Nc                 ó.   • [         R                  " X5      $ r   r~  ©rB   rC   s     r   r¸  Ú@TestScalarUFuncs.test_scalar_binary_uniform_ufunc.<locals>._func3  ó   € Ü—6’6˜!“;Ðr%   ©rœ  rœ  rV   rœ  r»  r¼  )	r   rf   re   rh   rg   ri   rj   r³  rJ   r½  s       r   Ú test_scalar_binary_uniform_ufuncÚ1TestScalarUFuncs.test_scalar_binary_uniform_ufunc2  sT   € ò	ò $ˆÜ�{‰{œEŸL™LÜ�{‰{œEŸL™L¬%¯-©-¼¿¹ðHˆà�‰�uœc #›m¬S°«_Õ=r%   c                 ó@  • S n/ SQn[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  /nU R                  U[        R                  " X35      [        R                  " X"5      5        g )Nc                 ó.   • [         R                  " X5      $ r   r~  rÃ  s     r   r¸  Ú>TestScalarUFuncs.test_scalar_binary_mixed_ufunc.<locals>._func<  rÅ  r%   rÆ  )
r   rf   re   rh   rg   ri   rj   r³  r]  r^  r½  s       r   Útest_scalar_binary_mixed_ufuncÚ/TestScalarUFuncs.test_scalar_binary_mixed_ufunc;  sg   € ò	ò $ˆÜ�{‰{œEŸL™LÜ�{‰{œEŸL™LÜ�}‰}œeŸm™mð-ˆð 	�‰�uœi×/Ò/°Ó9Ü ×(Ò(¨Ó4õ	6r%   rA   N)
r-   rˆ   r‰   rŠ   Ú__doc__r³  r¿  rÇ  rÌ  rŒ   rA   r%   r   r¤  r¤  í  s   † ñò1Gòf)ò>õ	6r%   r¤  c                   ó    • \ rS rSrS rS rSrg)ÚTestUfuncIssuesiG  c                 óº   • [        S/5      S 5       n[        R                  " SSS9n[        R                  " SSS9nU R                  U" X#5      X#-   X#-   -   5        g )Nz(float64,float64)c                 ó\   • [         R                  " X5      [         R                  " X5      -   $ r   r~  )Úx1Úx2s     r   ÚfooÚ+TestUfuncIssues.test_issue_651.<locals>.fooK  s   € ä—6’6˜"“>¤B§F¢F¨2£NÑ2Ð2r%   rÄ  rb   r\   )r   rK   rt  rb  )rr   rÕ  rÑ   rÒ   s       r   Útest_issue_651ÚTestUfuncIssues.test_issue_651I  s\   € ä	Ð'Ð(Ó	)ñ	3ó 
*ð	3ô �IŠI�b Ñ%ˆÜ�IŠI�b Ñ%ˆØ×Ñ¡ A£	¨A©E°a±eÑ+<Õ=r%   c                 ó6  ^ ^^• S nUm[        T5      mUUU 4S jn[        R                  " / SQ5      [        R                  " / SQ5      /nU HH  nU" US5        U" U[        R                  " S5      5        U" U[        R
                  " / SQ5      5        MJ     g)z6
<float32 ** int> should return float32, not float64.
c                 ó.   • [         R                  " X5      $ r   )rK   r  rÃ  s     r   rÕ  Ú,TestUfuncIssues.test_issue_2006.<locals>.fooW  s   € Ü—8’8˜A“>Ð!r%   c                 ó®   >• T" X5      n[         R                  R                  UT" X5      5        TR                  UR                  U R                  5        g r   )rK   r¯   r°   r„  rL   )rB   rC   r¹  r½   ry   rr   s      €€€r   ÚcheckÚ.TestUfuncIssues.test_issue_2006.<locals>.check\  s>   ø€ Ù˜“+ˆCÜ�J‰J×0Ñ0°±f¸Q³lÔCð ×Ñ˜SŸY™Y¨¯©Õ0r%   )rV   rœ  rq  )ù              ð?rœ  y      @      Àrq  )rœ  rœ  rq  N)r   rK   ri   ra  rg   rh   )rr   rÕ  rÝ  ÚxsrB   r½   ry   s   `    @@r   Útest_issue_2006ÚTestUfuncIssues.test_issue_2006S  sq   ú€ ò	"àˆÜ�V“ˆ÷	1ô �jŠjšÓ#¤R§\¢\²/Ó%BÐCˆÛˆAÙ�!�QŒKÙ�!”R—Y’Y˜q“\Ô"Ù�!”R—X’XšiÓ(Ö)ò r%   rA   N)r-   rˆ   r‰   rŠ   r×  rá  rŒ   rA   r%   r   rÐ  rÐ  G  s   † ò>õ*r%   rÐ  c                   ó|   • \ rS rSrSrSrSSSSSSSS.rSS jrS	 rS
 r	S r
\S 5       r\S 5       r\S 5       rSrg)Ú_LoopTypesTesterik  aj  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™   ))r˜  r˜  )r“  ÚD)r“  r˜  )rd  ræ  )r²  r˜  )ry  Úd)rü   rç  c                 ól  • US;   a  [         R                  " / SQUS9$ US;   a  [         R                  " / SQUS9$ US;   a  [         R                  " / SQUS9$ US   S	:X  a(  [        U5      S
:X  a  Sn[         R                  " / SQUS9$ US   S:X  a(  [        U5      S
:X  a  Sn[         R                  " / SQUS9$ US;   a"  [         R                  " SSS[        S5      /US9$ US;   a>  [        R
                  S:w  a  SnOSn[         R                  " USS[        S5      -  S/US9$ [        SU< S35      e)z<return a suitable array argument for testing the letter typeÚbhilq)rV   r   r   rl  r\   ÚBHILQ)rV   rœ  r   r   Ú?)TFFTr   ÚmrV   zm8[D])rœ  éýÿÿÿÚNaTr   ÚMzM8[D])ÚNatrV   rË   r   Úfdr  g      ÀrY   ÚnanÚFDr   y       €      ð¿y              ð¿y      ø?      ø?rß  y                ztype z not understood)rK   rk   Úlenr¨  r   ÚplatformÚRuntimeError)rr   Úa_letter_typeÚindexÚnegzeros       r   Ú_arg_for_typeÚ_LoopTypesTester._arg_for_typeŒ  s5  € ð ˜GÓ#ä—8’8šM°Ñ?Ð?Ø˜GÓ#Ü—8’8šL°Ñ>Ð>Ø˜cÓ!ä—8’8Ò6¸mÑLÐLØ˜1Ñ Ó$ä�=Ó! QÓ&Ø '�Ü—8’8Ò-°]ÑCÐCØ˜1Ñ Ó$ä�=Ó! QÓ&Ø '�Ü—8’8Ò-°]ÑCÐCØ˜dÓ"ä—8’8˜S $¨¬U°5«\Ð:Ø"/ñ1ð 1à˜dÓ"ä�|‰|˜wÓ&ð (‘à$�Ü—8’8˜W j°"´u¸U³|Ñ2CÀRÐHØ"/ñ1ð 1õ »=ÐJÓKÐKr%   c                 óx  ^^^• US UR                    X2R                  * S  -   m[        U S/ 5      mT(       a  [        U4S jT 5       5      (       a  g [        U S/ 5      m[        U4S jT 5       5      (       a  g [        U S/ 5      nU(       a  [        U4S jU 5       5      (       d  g U R	                  XT5        g )NÚ_supported_typesc              3   ó,   >#   • U  H	  oT;  v •  M     g 7fr   rA   )Ú.0ÚlÚsupported_typess     €r   Ú	<genexpr>Ú/_LoopTypesTester._check_loop.<locals>.<genexpr>¼  s   øé € ÐC²l°˜_Ö,²lùó   ƒÚ_skip_typesc              3   ó,   >#   • U  H	  oT;   v •  M     g 7fr   rA   )rÿ  r   Ú
skip_typess     €r   r  r  ¿  s   øé € Ð5ª 1�JŽªùr  Ú_required_typesc              3   ó.   >#   • U  H
  nUT;   v •  M     g 7fr   rA   )rÿ  r   Úletter_typess     €r   r  r  Ä  s   øé € ð &?Ú/=¨!ð '(¨<Ö&7Ú/=ùs   ƒ)rŸ   r¢   r`  r    Ú_check_ufunc_with_dtypes)rr   r(   r0   ÚloopÚrequired_typesr
  r  r  s        @@@r   Ú_check_loopÚ_LoopTypesTester._check_loop³  s­   ú€ à˜J˜UŸY™YÐ'¨$·
±
¨{¨|Ð*<Ñ<ˆô
 " $Ð(:¸BÓ?ˆÞÜÔC±lÓC×CÑCØÜ˜T =°"Ó5ˆ
ÜÔ5©Ó5×5Ñ5Øô ! Ð'8¸"Ó=ˆÞ¤#ô &?Ù/=ó&?÷ #?ñ #?àà×%Ñ% b°Õ>r%   c           
      óô  • / nU H  nUS;   a  US-   nUR                  U5        M!     U Vs/ s H  n[        R                  " U5      PM     nn[        U Vs/ s H$  n[        R
                  " [        U5      SS5      PM&     sn5      n[        U5      " U5      n[        U5       V	Vs/ s H#  u  p•U R                  XYS9R                  S5      PM%     n
n	nU
 H  nU R                  R                  U5        M      U
 Vs/ s H  oÌR                  5       PM     nnU" U
6   U" U6   [        XmU
5       H²  u  pïnU R                  XïU5      u  nnUR                  R                   nU R"                  R%                  UR&                  U4S5      nUS;   a  SOS	nUS
;   a  SOUnSR)                  / SQ5      nUR+                  UR&                  U
UUU5      nU R-                  UUUUUS9  M´     g s  snf s  snf s  snn	f s  snf )N)rì  rï  z8[D]rV   r]   ©rø  rœ  ÚfFrZ  r¦  ÚdDr[  r˜   )z ufunc '{0}' arrays differ ({1}):z	args: {2}zexpected {3}zgot {4})r\  rÇ   Úulps)ÚappendrK   rL   rž   r   rl   r   r   Ú	enumeraterú  ÚrepeatrÅ  Úshufflerâ  rJ   Ú_fixup_resultsÚcharÚ_ulpsÚgetr-   r)   r,   rb  )rr   r(   r0   ÚdtypesÚdtypes_with_unitsr²  Úarg_dtyÚarg_nbtyr½   rø  Úc_argsÚarrrÑ   Úpy_argsrL   Úpy_argÚc_argÚtypecharr  r\  rÇ   s                        r   r  Ú)_LoopTypesTester._check_ufunc_with_dtypesÊ  sä  € ð ÐÛˆAØ�J‹Ø˜‘J�Ø×$Ñ$ QÖ'ñ ñ
 ):Ó:Ò(9 1”2—8’8˜A–;Ñ(9ˆÐ:ÜÁgÓNÂgÀœ%Ÿ+š+¤j°£m°Q¸Ö<ÁgÑNÓOˆÜ�X”˜rÓ"ˆô #,¨FÔ"3ô5Ú"3‘h�eð ×$Ñ$ QÐ$Ð4×;Ñ;¸AÖ>Ù"3ð 	ñ 5ãˆCØ�K‰K×Ñ Ö$ñ á%+Ó,¢V —6‘6–8¡VˆÐ,áˆv‰Ù
ˆG‰ô %(¨¸&Ö$AÑ ˆE˜5Ø ×/Ñ/°¸uÓE‰MˆF�EØ—{‘{×'Ñ'ˆHØ—:‘:—>‘> 5§>¡>°8Ð"<¸aÓ@ˆDØ'¨4Ó/‘8°WˆDØ'¨4Ó/‘8°TˆDØ—)‘)ò Eó FˆCà—*‘*˜UŸ^™^¨V°T¸6À5ÓIˆCØ×#Ñ# F¨E¸À#Ø)-ð $ó /ò %Bùò! ;ùÚNùó5ùò -s   ¬ G%Á+G*Â(*G/Ã=G5c                 ó   • X#4$ r   rA   )rr   rL   r$  r%  s       r   r  Ú_LoopTypesTester._fixup_resultsò  s
   € Øˆ}Ðr%   c                 óL   • UR                    H  nU R                  X5        M     g r   )r   Ú_inject_test)Úclsr0   r  s      r   Ú_check_ufunc_loopsÚ#_LoopTypesTester._check_ufunc_loopsõ  s   € à—K”KˆDØ×Ñ˜UÖ)ò  r%   c           
      ó„   ^^• UU4S jn[        U SR                  TR                  TR                  SS5      5      U5        g )Nc                 óB   >• [        T5      nU R                  UTT5        g r   )r5   r  )rr   r(   r  r0   s     €€r   Útest_templateÚ4_LoopTypesTester._inject_test.<locals>.test_templateü  s   ø€ Ü$ UÓ+ˆBØ×Ñ˜R ¨Õ-r%   ztest_{0}_{1}z->Ú_)Úsetattrr,   r-   Úreplace)r,  r0   r  r1  s    `` r   r+  Ú_LoopTypesTester._inject_testú  s9   ù€ ö	.ô 	��^×*Ñ*¨5¯>©>Ø+/¯<©<¸¸cÓ+BóDàõ	r%   c                 óL   • U R                    H  nU R                  U5        M     g r   )Ú_ufuncsr-  )r,  r0   s     r   ÚautogenerateÚ_LoopTypesTester.autogenerate  s   € à—[”[ˆEØ×"Ñ" 5Ö)ò !r%   rA   N©r   )r-   rˆ   r‰   rŠ   rÎ  r  r  rú  r  r  r  Úclassmethodr-  r+  r9  rŒ   rA   r%   r   rä  rä  k  s   † ñð( €Kð  ØØØØØØ"#ñ€Eô%LòN?ò.&/òPð ñ*ó ð*ð ñó ðð ñ*ó ó*r%   rä  c                   ó„  • \ rS rSr\SS r\R                  \R                  5        \R                  \R                  5        \R                  \R                  5        \R                  \R                  5        \R                  \R                  5        \R                  \R                  5        SrS\R                   -   rSrg)ÚTestLoopTypesInti	  Nz?bBhHiIlLqQÚfdFDmMOrA   )r-   rˆ   r‰   rŠ   r   r8  ÚremoverK   r  r}  Ú
left_shiftÚright_shiftrã   r  r  rä  r  rŒ   rA   r%   r   r>  r>  	  s‚   † Ø™qÐ!€Gà‡N�N�2—8‘8ÔØ‡N�N�2—=‘=Ô!Ø‡N�N�2—=‘=Ô!Ø‡N�N�2—>‘>Ô"à‡N�N�2—;‘;ÔØ‡N�N�2—;‘;ÔØ#€OØÐ.×:Ñ:Ñ:ƒKr%   r>  c                   ól   • \ rS rSr\R
                  \R                  /rSrS\	R                  -   S-   r
Srg)Ú TestLoopTypesSubtractAndNegativei  z?bBhHiIlLqQfdFDÚmMOrë  rA   N)r-   rˆ   r‰   rŠ   rK   rã   r  r8  r  rä  r  rŒ   rA   r%   r   rD  rD    s/   † Ø�{‰{˜BŸK™KÐ(€GØ'€OØÐ*×6Ñ6Ñ6¸Ñ<ƒKr%   rD  c                   óh   ^ • \ rS rSr\R
                  /rSrS\R                  -   r	SU 4S jjr
SrU =r$ )ÚTestLoopTypesReciprocali#  ÚbBhHiIlLqQfdFDrE  c                 óR   >• [         U R                  U ]  UUS9nUS;   a  SX3S:H  '   U$ )Nr  Ú
bBhHiIlLqQr8  r   ©rc   rs   rú  ©rr   r÷  rø  Úresrs   s       €r   rú  Ú%TestLoopTypesReciprocal._arg_for_type(  s=   ø€ Ü�D—N‘N DÑ7¸Ø>Cð 8ð Eˆà˜LÓ(ð ˆC�q‘‰MØˆ
r%   rA   r;  )r-   rˆ   r‰   rŠ   rK   r}  r8  r  rä  r  rú  rŒ   r�   rŽ   s   @r   rG  rG  #  s.   ø† Ø�}‰}ˆo€GØ&€OØÐ*×6Ñ6Ñ6€K÷õ r%   rG  c                   óh   ^ • \ rS rSr\R
                  /rSrS\R                  -   r	SU 4S jjr
SrU =r$ )ÚTestLoopTypesPoweri6  rH  rE  c                 ó^   >• [         U R                  U ]  UUS9nUS;   a  US:X  a  SX3S:  '   U$ )Nr  rJ  rV   rq  r   rK  rL  s       €r   rú  Ú TestLoopTypesPower._arg_for_type;  sC   ø€ Ü�D—N‘N DÑ7¸Ø>Cð 8ð Eˆà˜LÓ(¨U°a«Zð ˆC�a‘‰LØˆ
r%   rA   r;  )r-   rˆ   r‰   rŠ   rK   r  r8  r  rä  r  rú  rŒ   r�   rŽ   s   @r   rP  rP  6  s.   ø† Ø�x‰xˆj€GØ&€OØÐ*×6Ñ6Ñ6€K÷õ r%   rP  c                   óh   ^ • \ rS rSr\R
                  /rSrS\R                  -   r	SU 4S jjr
SrU =r$ )ÚTestLoopTypesIntLeftShiftiI  rJ  r?  c                 ó¬   >• [         U R                  U ]  UUS9nUS:X  a4  UR                  R                  S-  n[
        R                  " USUS-
  5      nU$ ©Nr  rV   é   r   )rc   rs   rú  rL   ÚitemsizerK   Úclip©rr   r÷  rø  rM  Ú	bit_countrs   s        €r   rú  Ú'TestLoopTypesIntLeftShift._arg_for_typeN  s[   ø€ Ü�D—N‘N DÑ7¸Ø>Cð 8ð Eˆð �A‹:ØŸ	™	×*Ñ*¨QÑ.ˆIÜ—'’'˜#˜q )¨a¡-Ó0ˆCØˆ
r%   rA   r;  )r-   rˆ   r‰   rŠ   rK   rA  r8  r  rä  r  rú  rŒ   r�   rŽ   s   @r   rT  rT  I  s.   ø† Ø�}‰}ˆo€GØ"€OØÐ.×:Ñ:Ñ:€K÷õ r%   rT  c                   óh   ^ • \ rS rSr\R
                  /rSrS\R                  -   r	SU 4S jjr
SrU =r$ )ÚTestLoopTypesIntRightShifti`  rJ  r?  c                 óä   >• [         U R                  U ]  UUS9nUS:X  a4  UR                  R                  S-  n[
        R                  " USUS-
  5      nUS:X  a  [
        R                  " U5      nU$ rV  )rc   rs   rú  rL   rX  rK   rY  rµ  rZ  s        €r   rú  Ú(TestLoopTypesIntRightShift._arg_for_typee  sq   ø€ Ü�D—N‘N DÑ7¸Ø>Cð 8ð Eˆð �A‹:ØŸ	™	×*Ñ*¨QÑ.ˆIÜ—'’'˜#˜q )¨a¡-Ó0ˆCð �A‹:Ü—&’&˜“+ˆCØˆ
r%   rA   r;  )r-   rˆ   r‰   rŠ   rK   rB  r8  r  rä  r  rú  rŒ   r�   rŽ   s   @r   r^  r^  `  s/   ø† Ø�~‰~Ð€GØ"€OØÐ.×:Ñ:Ñ:€K÷õ r%   r^  c                   ó‚   • \ rS rSr\R
                  \R                  \R                  /rSr	S\
R                  -   rS rSrg)ÚTestLoopTypesFloorDividei‚  rH  rE  c                 ó¨   • UR                   S:X  a@  [        R                  " U5      [        R                  " U5      -  nXBS:H  US:H  -  -  nX$   X4'   X#4$ )Nrõ   rY   )r¡   rK   r+  r0  )rr   rL   r$  r%  Úpreds        r   r  Ú'TestLoopTypesFloorDivide._fixup_results‡  sQ   € Ø�:‰:˜Óô —H’H˜U“O¤b§h¢h¨vÓ&6Ñ6ˆDà˜s‘] u°¡|Ñ4Ñ4ˆDØ ™,ˆE‰KØˆ}Ðr%   rA   N)r-   rˆ   r‰   rŠ   rK   r  r$  Údivmodr8  r  rä  r  r  rŒ   rA   r%   r   rb  rb  ‚  s5   † Ø�‰ §¡¨b¯i©iÐ8€GØ&€OØÐ*×6Ñ6Ñ6€Kõr%   rb  c                   ó\  • \ rS rSr\SS r\(       a  \R                  \R                  5        \R                  \R                  5        \R                  \R                  5        \R                  \R                  5        \R                  \R                  5        SrS\R                   -   rSrg)ÚTestLoopTypesFloati•  Nrñ  ÚFDmMOrA   )r-   rˆ   r‰   rŠ   r   r8  Ú	iswindowsr@  rK   r4  r  r$  rf  r.  r  rä  r  rŒ   rA   r%   r   rh  rh  •  su   † Ø™qÐ!€GÞØ�‰�r—z‘zÔ"Ø‡N�N�2—?‘?Ô#Ø‡N�N�2—<‘<Ô Ø‡N�N�2—9‘9ÔØ‡N�N�2—6‘6ÔØ€OØÐ,×8Ñ8Ñ8ƒKr%   rh  c                   ó@   • \ rS rSr\SS rSrS\R                  -   rSr	g)ÚTestLoopTypesComplexi¤  Nró  rE  rA   )
r-   rˆ   r‰   rŠ   r   r8  r  rä  r  rŒ   rA   r%   r   rl  rl  ¤  s$   † Ø™qÐ!€Gð €OØÐ*×6Ñ6Ñ6ƒKr%   rl  c                   ó‚   • \ rS rSr\SS r\R                  \R                  5        Sr	S r
S rS rS rS rS	 rS
 rSrg)ÚTestLoopTypesDatetimei°  NÚmMc                 ó`  • [         R                  n[        U5      nU R                  X!/ SQ5        U R                  X!/ SQ5        U R                  X!/ SQ5        U R                  X!/ SQ5        U R	                  [
        5         U R                  X!/ SQ5        S S S 5        g ! , (       d  f       g = f)N)úm8[s]úm8[m]rq  )rr  rq  rq  )rq  rr  úm8[ms])rr  rq  rs  )rr  rq  rr  )rK   rÞ   r5   r  ÚassertRaisesr	   ©rr   r0   r(   s      r   Útest_addÚTestLoopTypesDatetime.test_addÂ  s‡   € Ü—‘ˆÜ  Ó'ˆà×%Ñ% bÒ1LÔMØ×%Ñ% bÒ1LÔMà×%Ñ% bÒ1MÔNØ×%Ñ% bÒ1MÔNà×Ñœ}Õ-Ø×)Ñ)¨"Ú*EôG÷ .×-Ö-úó   ÂBÂ
B-c                 ó`  • [         R                  n[        U5      nU R                  X!/ SQ5        U R                  X!/ SQ5        U R                  X!/ SQ5        U R                  X!/ SQ5        U R	                  [
        5         U R                  X!/ SQ5        S S S 5        g ! , (       d  f       g = f)N)úM8[s]úM8[m]rq  )r{  rz  rq  )rz  r{  rs  )r{  rz  rs  )r{  rz  rr  )rK   rã   r5   r  rt  r	   ru  s      r   Útest_subtractÚ#TestLoopTypesDatetime.test_subtractÐ  s‡   € Ü—‘ˆÜ  Ó'ˆà×%Ñ% bÒ1LÔMØ×%Ñ% bÒ1LÔMà×%Ñ% bÒ1MÔNØ×%Ñ% bÒ1MÔNà×Ñœ}Õ-Ø×)Ñ)¨"Ú*EôG÷ .×-Ö-úrx  c                 ó  • [         R                  n[        U5      nU R                  X!/ SQ5        U R                  X!/ SQ5        U R	                  [
        5         U R                  X!/ SQ5        S S S 5        g ! , (       d  f       g = f)N)rq  Úqúm8[us])r  rq  r€  ©rq  r  rr  )rK   rè   r5   r  rt  r	   ru  s      r   Útest_multiplyÚ#TestLoopTypesDatetime.test_multiplyÞ  sb   € Ü—‘ˆÜ  Ó'ˆà×%Ñ% bÒ1IÔJØ×%Ñ% bÒ1IÔJà×Ñœ}Õ-Ø×)Ñ)¨"Ò5LÔM÷ .×-Ö-úó   ÁA7Á7
Bc                 ó`  • [         R                  n[        U5      nU R                  X!/ SQ5        U R                  X!/ SQ5        U R                  X!/ SQ5        U R                  X!/ SQ5        U R	                  [
        5         U R                  X!/ SQ5        S S S 5        g ! , (       d  f       g = f)N)rr  rq  rç  )rq  rr  rç  ©rr  r  rq  ©rr  rç  rq  r�  )rK   r   r5   r  rt  r	   ru  s      r   Útest_true_divideÚ&TestLoopTypesDatetime.test_true_divideè  s„   € Ü—‘ˆÜ  Ó'ˆà×%Ñ% bÒ1HÔIØ×%Ñ% bÒ1HÔIà×%Ñ% bÒ1HÔIØ×%Ñ% bÒ1HÔIà×Ñœ}Õ-Ø×)Ñ)¨"Ò5LÔM÷ .×-Ö-úrx  c                 ó  • [         R                  n[        U5      nU R                  X!/ SQ5        U R                  X!/ SQ5        U R	                  [
        5         U R                  X!/ SQ5        S S S 5        g ! , (       d  f       g = f)Nr†  r‡  r�  )rK   r  r5   r  rt  r	   ru  s      r   Útest_floor_divideÚ'TestLoopTypesDatetime.test_floor_divideõ  sb   € Ü—‘ˆÜ  Ó'ˆà×%Ñ% bÒ1HÔIØ×%Ñ% bÒ1HÔIà×Ñœ}Õ-Ø×)Ñ)¨"Ò5LÔM÷ .×-Ö-úr„  c                 óº   • [        U5      nU R                  X!/ SQ5        U R                  X!/ SQ5        U R                  X!/ SQ5        U R                  X!/ SQ5        g )N)rr  rq  rë  )rq  rr  rë  )r{  rz  rë  )rz  r{  rë  )r5   r  ru  s      r   Ú_check_comparisonÚ'TestLoopTypesDatetime._check_comparisonÿ  sP   € Ü  Ó'ˆà×%Ñ% bÒ1HÔIØ×%Ñ% bÒ1HÔIà×%Ñ% bÒ1HÔIØ×%Ñ% bÒ1HÕIr%   c                 óì   • [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4 H  nU R                  U5        M     g r   )rK   rü  rø  rð  rô  rè  rì  rŽ  r“   s     r   Útest_comparisonsÚ&TestLoopTypesDatetime.test_comparisons  sD   € Ü—h‘h¤§¡¬b¯g©g´r·}±}Ü—j‘j¤"×"2Ñ"2ó4ˆEà×"Ñ" 5Ö)ò4r%   rA   )r-   rˆ   r‰   rŠ   r   r8  r@  rK   rf  r  rv  r|  r‚  rˆ  r‹  rŽ  r‘  rŒ   rA   r%   r   rn  rn  °  sL   † Ø™qÐ!€Gà‡N�N�2—9‘9Ôð €Oò
GòGòNòNòNòJõ*r%   rn  c                   ó&   • \ rS rSrS rS rS rSrg)ÚTestUFuncBadArgsi  c                 óÐ   • S nU R                  [        5         [        [        R                  " [        R                  5      /5      " U5        S S S 5        g ! , (       d  f       g = f)Nc                 ó2   • [         R                  " U 5      nU$ )zerror: np.add requires two argsr~  )rB   rÓ   s     r   r   Ú0TestUFuncBadArgs.test_missing_args.<locals>.func  s   € ä—V’V˜A“YˆFØˆMr%   ©rt  r
   r   r   rj   ©rr   r   s     r   Útest_missing_argsÚ"TestUFuncBadArgs.test_missing_args  s@   € ò	ð
 ×Ñœ{Õ+Ü”%—-’-¤§¡Ó.Ð/Ô0°Ô6÷ ,×+Ö+úó   ™5AÁ
A%c                 óè   • S n[         R                  " [         R                  SS5      nU" X"U5      nU R                  [        5         [        U5      " U5        S S S 5        g ! , (       d  f       g = f)Nc                 ó4   • [         R                  " X X5      nU$ )zerror: too many argsr~  )rB   ÚoutÚout2rÓ   s       r   r   Ú1TestUFuncBadArgs.test_too_many_args.<locals>.func  s   € ä—V’V˜A #Ó,ˆFØˆMr%   rV   r]   )r   rl   rj   rt  r
   r   )rr   r   Ú
array_typer‰  s       r   Útest_too_many_argsÚ#TestUFuncBadArgs.test_too_many_args  sP   € ò	ô
 —[’[¤§¡°°3Ó7ˆ
Ù˜°Ó<ˆà×Ñœ{Õ+Ü�ŒI�dŒO÷ ,×+Ö+ús   ÁA#Á#
A1c                 óÐ   • S nU R                  [        5         [        [        R                  " [        R                  5      /5      " U5        S S S 5        g ! , (       d  f       g = f)Nc                 ó6   • Sn[         R                  " X U5        g)z0error: scalar as a return value is not supportedr   Nr~  rÃ  s     r   r   ÚATestUFuncBadArgs.test_no_scalar_result_by_reference.<locals>.func(  s   € àˆAÜ�FŠF�1˜�Or%   r˜  r™  s     r   Ú"test_no_scalar_result_by_referenceÚ3TestUFuncBadArgs.test_no_scalar_result_by_reference'  s@   € ò	ð
 ×Ñœ{Õ+Ü”%—-’-¤§¡Ó.Ð/Ô0°Ô6÷ ,×+Ö+úrœ  rA   N)r-   rˆ   r‰   rŠ   rš  r£  r¨  rŒ   rA   r%   r   r”  r”    s   † ò7ò
õ7r%   r”  c                   ó   • \ rS rSrS rSrg)Ú TestUFuncCompilationThreadSafetyi1  c                 ó  ^^• / m[         S 5       mUU4S jn[        S5       Vs/ s H  n[        R                  " US9PM     nnU H  nUR	                  5         M     U H  nUR                  5         M     U R                  T5        gs  snf )zc
Test that (lazy) compiling from several threads at once doesn't
produce errors (see issue #2403).
c                 ó   • U S-   $ )NrV   rA   r·  s    r   rÕ  Ú7TestUFuncCompilationThreadSafety.test_lock.<locals>.foo:  s   € à�q‘5ˆLr%   c                  ó6  >•  [         R                  " S[         R                  S9n [         R                  " S[         R                  S9S-   n[         R                  R	                  T" U 5      U5        g ! [
         a  nTR                  U5         S nAg S nAff = f)N)rÄ  r\   g      ð?)rK   Úonesrj   r¯   r‘  Ú	Exceptionr  )rÑ   rÀ   ÚeÚerrorsrÕ  s      €€r   r    Ú;TestUFuncCompilationThreadSafety.test_lock.<locals>.wrapper>  sl   ø€ ð!Ü—G’G˜E¬¯©Ñ4�ÜŸ7š7 5´·
±
Ñ;¸bÑ@�Ü—
‘
×-Ñ-©c°!«f°hÕ?øÜó !Ø—‘˜a× Ñ ûð!ús   ƒA/A3 Á3
BÁ=BÂBr)  )ÚtargetN)r   r*   Ú	threadingÚThreadÚstartr)   ÚassertFalse)rr   r    r2   Úthreadsr²  r³  rÕ  s        @@r   Ú	test_lockÚ*TestUFuncCompilationThreadSafety.test_lock3  s�   ù€ ð
 ˆä	ñ	ó 
ð	ö	!ô >CÀ2¼YÓGºY¸”9×#Ò#¨7Ô3¹YˆÐGÛˆAØ�G‰GŽIñ ãˆAØ�F‰FŽHñ à×Ñ˜Õ ùò Hs   ¥B	rA   N)r-   rˆ   r‰   rŠ   r»  rŒ   rA   r%   r   r«  r«  1  s   † õ!r%   r«  c                   ó    • \ rS rSrS rS rSrg)ÚTestUfuncOnContextiN  c                 óä  • [         R                  nUR                  [        R                  5      nU R                  U[        5        [        R                  " [        R                  5      nU R                  X#5        [        5       nU R                  [        5       n[        R                  " U5        S S S 5        U R                  WR                  R                  U45        g ! , (       d  f       N6= fr   )r   Útarget_contextÚget_ufunc_inforK   rÞ   ÚassertIsInstanceÚdictr   r„  Úobjectrt  ÚKeyErrorÚ	exceptionr   )rr   Ú	targetctxÚadd_inforÀ   ÚbadkeyÚraisess         r   Útest_cpu_get_ufunc_infoÚ*TestUfuncOnContext.test_cpu_get_ufunc_infoO  s¦   € ô ×-Ñ-ˆ	à×+Ñ+¬B¯F©FÓ3ˆØ×Ñ˜h¬Ô-ä×*Ò*¬2¯6©6Ó2ˆØ×Ñ˜Ô,ä“ˆØ×ÑœxÔ(¨FÜ×#Ò# FÔ+÷ )à×Ñ˜×)Ñ)×.Ñ.°°	Õ:÷ )Õ(ús   ÂC!Ã!
C/c                 ó  • [        [        R                  S5      nU R                  [        5       nUR                  [        R                  5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)NÚcpuz<<numba\..*\.BaseContext object at .*> does not support ufunc)r   r   Útyping_contextrt  ÚNotImplementedErrorrÁ  rK   rÞ   ÚassertRegexrG   rÆ  )rr   rÇ  rÊ  s      r   Útest_base_get_ufunc_infoÚ+TestUfuncOnContext.test_base_get_ufunc_info_  sd   € ä¤
× 9Ñ 9¸5ÓAˆ	Ø×ÑÔ2Ô3°vØ×$Ñ$¤R§V¡VÔ,÷ 4à×ÑÜ�× Ñ Ó!ØKõ	
÷ 4Õ3ús   ° A>Á>
BrA   N)r-   rˆ   r‰   rŠ   rË  rÒ  rŒ   rA   r%   r   r¾  r¾  N  s   † ò;õ 
r%   r¾  c                   ó   • \ rS rSrS rSrg)ÚTestUfuncWriteInputij  c                 ó`  • [        S/S5      S 5       n[        R                  R                  SS5      n[        R                  " U[        R
                  S9nU" X#5        [        R                  R                  [        R                  " / SQ[        R                  S9UR                  SS	95        g )
Nzvoid(float64[:], uint8[:])z(n)->(n)c                 óZ   • [        U R                  5       H  nUS-  S:X  d  M  SX'   M     g )Nr   r   rV   )r*   r_  )rB   rŸ  r2   s      r   r   Ú6TestUfuncWriteInput.test_write_input_arg.<locals>.funcl  s(   € ô ˜1Ÿ6™6–]�à�q‘5˜A•:Ø�C“Fò #r%   rÄ  r™   r\   )TFFFTr   )Úaxis)r   rK   rÅ  ÚrandrÎ   rm   r¯   r‘  rk   rÍ   r    )rr   r   rB   rŸ  s       r   Útest_write_input_argÚ(TestUfuncWriteInput.test_write_input_argk  sƒ   € Ü	Ð2Ð3°ZÓ	@ñ	ó 
Að	ô �I‰I�N‰N˜2˜qÓ!ˆÜ�mŠm˜A¤R§W¡WÑ-ˆáˆQŒÜ
�
‰
×%Ñ%Ü�HŠHÒ6¼b¿h¹hÑGØ�G‰G˜ˆGˆOõ	r%   rA   N)r-   rˆ   r‰   rŠ   rÛ  rŒ   rA   r%   r   rÕ  rÕ  j  s   † õr%   rÕ  Ú__main__)Er"   r]  r   r§   r¶  r¾  ÚnumpyrK   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__Úis32bitsrõ  r®   rj  r$   r5   r<   r>   rH   rQ   rS   r�   rØ   r·  r¤  rÐ  rä  r>  r9  rD  rG  rP  rT  r^  rb  rh  rl  rn  r”  r«  r¾  rÕ  r-   ÚmainrA   r%   r   Ú<module>rë     sF  ðÛ Û Û 
Û Û Û ã ã ß 6Ó 6Ý Ý -ß 8ß 9Ý 6Ý "Ý *Ý 'Ý à×Ñ Ñ"€Ø�L‰L×#Ñ# GÓ,€	ò	*òòòòò"JôF�Oô FôRW6�]ô W6ôtb	<� ô b	<ôJK"˜¨ô K"ô\
W6�xô W6ôt!*�hô !*ôH[*�xô [*ô|;Ð'ô ;ð × Ñ Ô ô=Ð'7ô =ð !× -Ñ -Ô /ôÐ.ô ð  × $Ñ $Ô &ôÐ)ô ð  × Ñ Ô !ôÐ 0ô ð( × &Ñ &Ô (ôÐ!1ô ð> × 'Ñ 'Ô )ôÐ/ô ð  × %Ñ %Ô 'ô	9Ð)ô 	9ð × Ñ Ô !ô7Ð+ô 7ð × !Ñ !Ô #ô[*Ð,ô [*ð| × "Ñ "Ô $ô7�xô 7ô@! xô !ô:
˜ô 
ô8˜(ô ð& ˆzÓØ‡M‚M…Oð r%   