Ë
    èÿæii
 ã                   óV	  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z
d dlmZ d dlZd dlmZmZmZmZmZ d dlmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z% d d	l&m'Z' d dl(Z(d d
l)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z=m>Z>m?Z?m@Z@mAZA ddlBmCZCmDZD 	 d dlEmFc mGZH  G d„ deJ«      ZK G d„ dej˜                  «      ZM eMd«      ZN eK«       ZO e*j                   eK«      d„ «       ZQ e-eMej¤                  «      d„ «       ZSd„ ZT  e2eM«      e1jª                  «        e4eM«      d„ «       ZVd„ ZW eWd«      \  ZXZYZZ e4eX«      d„ «       Z[d~d„Z\d„ Z]  e+e\«      e]«      Z^ e,e\«       e,e\ej¾                  «      d„ «       «       Z` e,e\ejÂ                  «      d„ «       Zbe? G d„ de=«      «       Zc e,d eM«      d!„ «       Zdd"„ Zed#„ Zfd$„ Zg e.ee«      d%„ «       Zh e.ee«      d&„ «       Zi e.ej«      d'„ «       Zk e.ejØ                  «      d(„ «       Zm e.ejÜ                  «      d)„ «       Zo e.ejà                  «      d*„ «       Zq e.ejä                  «      d+„ «       Zsd,„ Ztd-„ Zu e.ejì                  «      d.„ «       Zwd/„ Zxd0„ Zyd1„ Zzd2„ Z{d3„ Z| e0eMd4«      d5„ «       Z}d6„ Z~d7„ Zd8„ Z€d9„ Z�d:„ Z‚d;„ Zƒd<„ Z„d=„ Z…d>„ Z†d?„ Z‡d@„ ZˆdA„ Z‰dB„ ZŠ e.eŠ«      dC„ «       Z‹dD„ ZŒdE„ Z�dF„ ZŽ e@eŽ«       G dG„ dHeA«      «       Z�dI„ Z� G dJ„ dKeJ«      Z‘ G dL„ dMe�j$                  «      Z“ e2e“«       G dN„ dOe1jª                  «      «       Z” e@e‘ e“e‘«      «        ee“«      dP„ «       Z• e.e
�j,                  «      dQ„ «       Z— G dR„ dSe «      Z˜ G dT„ dUe «      Z™ G dV„ dWe «      ZšdX„ Z›e% G dY„ dZe «      «       Zœd[„ Z� G d\„ d]e «      Zž G d^„ d_e(j@                  «      ZŸ G d`„ dae(j@                  «      Z  e0eMdbdcddi¬e«      df„ «       Z¡ e0eMdgdcdhi¬e«      di„ «       Z¢ e/eMdjdcddi¬e«      dk„ «       Z£ e/eMdldcdhi¬e«      dm„ «       Z¤ G dn„ doe «      Z¥ G dp„ dqe «      Z¦dr„ Z§e% G ds„ dte «      «       Z¨ G du„ dve «      Z© G dw„ dxe «      Zª G dy„ dze «      Z« G d{„ d|e «      Z¬e­d}k(  r e(�j\                  «        yy# eI$ r dZHY �Œäw xY w)é    N)Úir)ÚnjitÚjitÚ	vectorizeÚguvectorizeÚobjmode)ÚtypesÚerrorsÚtypingÚcompilerÚcgutils)Útype_inference_stage)Ú
cpu_target)Úlower_constant)ÚTestCaseÚcaptured_stdoutÚtemp_directoryÚoverride_configÚrun_in_new_process_in_cache_dirÚskip_if_typeguard)ÚLoweringError)Útypeof_implÚtype_callableÚlower_builtinÚ
lower_castÚoverloadÚoverload_attributeÚoverload_methodÚmodelsÚregister_modelÚboxÚunboxÚNativeValueÚ	intrinsicÚ
_IntrinsicÚregister_jitableÚget_cython_function_addressÚ	is_jittedÚoverload_classmethod)ÚConcreteTemplateÚ	signatureÚinferÚinfer_globalÚAbstractTemplateé   )ÚIndexÚSeriesc                   ó   — e Zd Zy)ÚMyDummyN©Ú__name__Ú
__module__Ú__qualname__© ó    úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_extending.pyr3   r3   J   ó   „ Ør9   r3   c                   ó   — e Zd Zd„ Zy)ÚMyDummyTypec                 ó\   — t        |t        j                  «      rddlm} |j
                  S y )Nr   )Ú
Conversion)Ú
isinstancer	   ÚNumberÚnumba.core.typeconvr?   Úsafe)ÚselfÚcontextÚtotyr?   s       r:   Úcan_convert_tozMyDummyType.can_convert_toO   s"   € Ü�dœEŸL™LÔ)Ý6à—?‘?Ð"ð *r9   N)r5   r6   r7   rG   r8   r9   r:   r=   r=   N   s   „ ó#r9   r=   Úmydummyc                 ó   — t         S ©N)Úmydummy_type)ÚvalÚcs     r:   Útypeof_mydummyrN   Z   s   € äÐr9   c                 ó&   — | j                  |d«      S )z2
    Implicit conversion from MyDummy to int.
    é*   )Úget_constant)rE   ÚbuilderÚfromtyrF   rL   s        r:   Úmydummy_to_numberrT   _   s   € ð
 ×Ñ  bÓ)Ð)r9   c                  ó   — t         S rJ   )rH   r8   r9   r:   Ú	get_dummyrV   g   s   € Ü€Nr9   c                 óH   — t        |j                  j                  «       «      S rJ   ©r#   rE   Úget_dummy_value©ÚtypÚobjrM   s      r:   Úunbox_indexr]   n   ó   € ä�q—y‘y×0Ñ0Ó2Ó3Ð3r9   c                 óæ   ‡—  G d„ dt         «      } G d„ dt        j                  «      } || «      Št        j                  |«      ˆfd„«       } t        |«      t        j                  «       ||‰fS )Nc                   ó   — e Zd Zy)ú(base_dummy_type_factory.<locals>.DynTypeNr4   r8   r9   r:   ÚDynTypera   x   ó   „ Ør9   rb   c                   ó   — e Zd Zy)ú,base_dummy_type_factory.<locals>.DynTypeTypeNr4   r8   r9   r:   ÚDynTypeTypere   {   rc   r9   rf   c                 ó   •— ‰S rJ   r8   )rL   rM   Údyn_type_types     €r:   rN   z/base_dummy_type_factory.<locals>.typeof_mydummy€   s	   ø€ àÐr9   )Úobjectr	   ÚOpaquer   Úregisterr    r   ÚOpaqueModel)Únamerb   rf   rN   rh   s       @r:   Úbase_dummy_type_factoryrn   w   sl   ø€ ô”&ô ô”e—l‘lô ñ   Ó%€Mä×Ñ˜'Ó"óó #ðð  „N�;Ó¤× 2Ñ 2Ô3Ø˜ Ð.Ð.r9   Úmydummy2c                 óH   — t        |j                  j                  «       «      S rJ   rX   rZ   s      r:   Úunbox_index2rq   ‹   r^   r9   c                 ó   — t         ‚rJ   ©ÚNotImplementedError©Úxs    r:   Úfunc1rw   •   ó   € Ü
Ðr9   c                 ó   — dd„}|S )Nc                 ó„   — | d t         j                  fv rt         j                  S t        | t         j                  «      r| S y rJ   )r	   ÚnoneÚint32r@   ÚFloatru   s    r:   Útyperztype_func1_.<locals>.typerš   s5   € Ø�”u—z‘zÐ"Ñ"ä—;‘;ÐÜ˜œ5Ÿ;™;Ô'àˆHð (r9   rJ   r8   )rE   r~   s     r:   Útype_func1_r   ™   s   € óð €Lr9   c                 ó:   — | j                  |j                  d«      S ©NrP   )rQ   Úreturn_type)rE   rR   ÚsigÚargss       r:   Úfunc1_nullaryr…   ¨   s   € ð ×Ñ §¡°Ó4Ð4r9   c                 ó0   — d„ }| j                  ||||«      S )Nc                 ó2   — t        j                  d| z  «      S )Né   )ÚmathÚsqrtru   s    r:   Ú
func1_implzfunc1_unary.<locals>.func1_impl°   s   € Ü�y‰y˜˜Q™ÓÐr9   )Úcompile_internal)rE   rR   rƒ   r„   r‹   s        r:   Úfunc1_unaryr�   ®   s    € ò ð ×#Ñ# G¨Z¸¸dÓCÐCr9   c                   ó8   — e Zd ZdZ eej                  e«      gZy)Ú
PrintDummyÚ
print_itemN)	r5   r6   r7   Úkeyr+   r	   r{   rK   Úcasesr8   r9   r:   r�   r�   º   s   „ à
€CÙ�u—z‘z <Ó0Ð1�Er9   r�   r�   c                 óÐ   — |\  }| j                  |«      }|j                  |j                  d«      «      }|j                  |«       |j	                  |«       | j                  «       S )Nzhello!)Úget_python_apiÚunserializeÚserialize_objectÚprint_objectÚdecrefrY   )rE   rR   rƒ   r„   rv   ÚpyapiÚstrobjs          r:   Úprint_dummyr›   À   s]   € à
�C€QØ×"Ñ" 7Ó+€EØ×Ñ˜u×5Ñ5°hÓ?Ó@€FØ	×Ñ�vÔØ	‡L�L�ÔØ×"Ñ"Ó$Ð$r9   c                 ó   — t         ‚rJ   rs   ©Úcondrv   Úys      r:   Úwherer    Î   rx   r9   c                 ó0   — t        j                  | ||«      S )z8
    Wrap np.where() to allow for keyword arguments
    )Únpr    r�   s      r:   Únp_wherer£   Ò   s   € ô �8‰8�D˜!˜QÓÐr9   c                 ó   — t        | ||¬«      S )N)rŸ   rv   )r    r�   s      r:   Ú
call_wherer¥   Ù   s   € Ü�˜˜aÔ Ð r9   c                 óÒ   — t        | t        j                  «      rM|j                  |j                  k7  rt	        j
                  d«      ‚t        d„ | ||fD «       «      rd„ }|S d„ }|S y)z'
    Implement where() for arrays.
    ú"x and y should have the same dtypec              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)ÚCN)Úlayout)Ú.0Útys     r:   Ú	<genexpr>z(overload_where_arrays.<locals>.<genexpr>è   s   è ø€ Ð7©, Bˆr�y‰y˜CÕ©,ùs   ‚c                 óR  — | j                   }|j                   |k7  s|j                   |k7  rt        d«      ‚t        j                  |«      }| j                  }|j                  }|j                  }|j                  }t        | j                  «      D ]  }	||	   r||	   n||	   ||	<   Œ |S )zM
                Fast implementation for C-contiguous arrays
                ú%all inputs should have the same shape)ÚshapeÚ
ValueErrorr¢   Ú
empty_likeÚflatÚrangeÚsize)
rž   rv   rŸ   r°   ÚresÚcfÚxfÚyfÚrfÚis
             r:   Ú
where_implz)overload_where_arrays.<locals>.where_implê   s“   € ð Ÿ
™
�Ø—7‘7˜eÒ# q§w¡w°%Ò'7Ü$Ð%LÓMÐMÜ—m‘m AÓ&�Ø—Y‘Y�Ø—V‘V�Ø—V‘V�Ø—X‘X�Ü˜tŸy™yÖ)�AØ%'¨¢U˜B˜qšE°°1±�B�q’Eð *à�
r9   c                 óò   — | j                   }|j                   |k7  s|j                   |k7  rt        d«      ‚t        j                  |«      }t        j                  | «      D ]  \  }}|r||   n||   ||<   Œ |S )zI
                Generic implementation for other arrays
                r¯   )r°   r±   r¢   r²   Úndenumerate)rž   rv   rŸ   r°   r¶   ÚidxrM   s          r:   r¼   z)overload_where_arrays.<locals>.where_implü   so   € ð Ÿ
™
�Ø—7‘7˜eÒ# q§w¡w°%Ò'7Ü$Ð%LÓMÐMÜ—m‘m AÓ&�Ü Ÿn™n¨TÖ2‘F�C˜Ù)*˜q šv°°#±�C˜’Hð 3à�
r9   N)r@   r	   ÚArrayÚdtyper
   ÚTypingErrorÚall©rž   rv   rŸ   r¼   s       r:   Úoverload_where_arraysrÅ   Ý   sj   € ô �$œŸ™Ô$Ø�7‰7�a—g‘gÒÜ×$Ñ$Ð%IÓJÐJô Ñ7¨4°°A©,Ó7Ô7òð< Ðò
ð ÐðK %r9   c                 óv   — t        | t        j                  «      s||k7  rt        j                  d«      ‚d„ }|S y)z(
    Implement where() for scalars.
    z!x and y should have the same typec                 óF   — | r|n|}t        j                  |«      }||d<   |S )z@
            Scalar where() => return a 0-dim array
            r8   )r¢   r²   )rž   rv   rŸ   ÚscalÚarrs        r:   r¼   z*overload_where_scalars.<locals>.where_impl  s)   € ñ ‘1 !ˆDä—-‘- Ó%ˆCØˆC�‰GØˆJr9   N)r@   r	   rÀ   r
   rÂ   rÄ   s       r:   Úoverload_where_scalarsrÊ     s=   € ô
 �dœEŸK™KÔ(Ø�Š6Ü×$Ñ$Ð%HÓIÐIò	ð Ðð )r9   c                 ó.   — t        | t        «      rd„ }|S y )Nc                  ó   — y)Né   r8   ©Úargs    r:   Úlen_implz$overload_len_dummy.<locals>.len_impl-  ó   € Ør9   ©r@   r=   )rÏ   rÐ   s     r:   Úoverload_len_dummyrÓ   )  s   € ä�#”{Ô#ò	ð ˆð $r9   c                 óh   — t        | t        t        f«      rt        |t        t        f«      rd„ }|S y y )Nc                  ó   — yr�   r8   ©Úarg1Úarg2s     r:   Údummy_add_implz*overload_add_dummy.<locals>.dummy_add_impl9  rÑ   r9   ©r@   r=   ÚMyDummyType2)r×   rØ   rÙ   s      r:   Úoverload_add_dummyrÜ   3  s7   € ä�$œ¤lÐ3Ô4¼ØŒ{œLÐ)ô:ò	ð Ðð:Ð4r9   c                 ód   — t        | t        «      r t        |t        j                  «      rd„ }|S y y )Nc                 ó   — t        d| |«       y )NÚdel©Úprint©r\   r¿   s     r:   Údummy_delitem_implz2overload_dummy_delitem.<locals>.dummy_delitem_implC  s   € Ü�%˜˜cÕ"r9   ©r@   r=   r	   ÚInteger)r\   r¿   rã   s      r:   Úoverload_dummy_delitemræ   ?  s/   € ä�#”{Ô#¬
°3¼¿¹Ô(Fò	#ð "Ð!ð )GÐ#r9   c                 ód   — t        | t        «      r t        |t        j                  «      rd„ }|S y y )Nc                 ó   — |dz   S )Né{   r8   râ   s     r:   Údummy_getitem_implz2overload_dummy_getitem.<locals>.dummy_getitem_implM  s   € Ø˜‘9Ðr9   rä   )r\   r¿   rê   s      r:   Úoverload_dummy_getitemrë   I  s/   € ä�#”{Ô#¬
°3¼¿¹Ô(Fò	ð "Ð!ð )GÐ#r9   c                 ó¦   — t        t        | t        «      t        |t        j                  «      t        |t        j                  «      g«      rd„ }|S y )Nc                 ó   — t        ||«       y rJ   rà   ©r\   r¿   rL   s      r:   Údummy_setitem_implz2overload_dummy_setitem.<locals>.dummy_setitem_impl]  s   € Ü�#�s�Or9   )rÃ   r@   r=   r	   rå   )r\   r¿   rL   rï   s       r:   Úoverload_dummy_setitemrð   S  sG   € ä
ä�sœKÓ(Ü�sœEŸM™MÓ*Ü�sœEŸM™MÓ*ð	
ôò	ð "Ð!ðr9   c                 ó.   — t        j                  | |«      S rJ   ©ÚoperatorÚaddrÖ   s     r:   Úcall_add_operatorrõ   c  ó   € Ü�<‰<˜˜dÓ#Ð#r9   c                 ó   — | |z   S rJ   r8   rÖ   s     r:   Úcall_add_binoprø   g  s   € Ø�$‰;Ðr9   c                 óh   — t        | t        t        f«      rt        |t        t        f«      rd„ }|S y y )Nc                  ó   — yr�   r8   rÖ   s     r:   Údummy_iadd_implz,overload_iadd_dummy.<locals>.dummy_iadd_implq  rÑ   r9   rÚ   )r×   rØ   rû   s      r:   Úoverload_iadd_dummyrü   k  s7   € ä�$œ¤lÐ3Ô4¼ØŒ{œLÐ)ô:ò	ð Ðð:Ð4r9   c                 ó.   — t        j                  | |«      S rJ   rò   rÖ   s     r:   Úcall_iadd_operatorrþ   w  rö   r9   c                 ó   — | |z  } | S rJ   r8   rÖ   s     r:   Úcall_iadd_binopr   {  s   € ØˆD�L€Dà€Kr9   c                 ó
   — | |= y rJ   r8   râ   s     r:   Úcall_delitemr  �  s	   € ØˆC‰r9   c                 ó   — | |   S rJ   r8   râ   s     r:   Úcall_getitemr  …  s   € Øˆs‰8€Or9   c                 ó   — || |<   y rJ   r8   rî   s      r:   Úcall_setitemr  ‰  s   € Ø€Cˆ‚Hr9   Úlengthc                 ó   — d„ }|S )Nc                 ó   — t        | «      S rJ   ©ÚlenrÎ   s    r:   Úimpz#overload_method_length.<locals>.imp�  s   € Ü�3‹xˆr9   r8   )rÏ   r  s     r:   Úoverload_method_lengthr  �  s   € òð €Jr9   c                 ó"   — | j                  «       S rJ   )r  ru   s    r:   Úcache_overload_method_usecaser  •  s   € Ø�8‰8‹:Ðr9   c                  ó   — t        «       S rJ   ©rw   r8   r9   r:   Úcall_func1_nullaryr  ™  s	   € Ü‹7€Nr9   c                 ó   — t        | «      S rJ   r  ru   s    r:   Úcall_func1_unaryr  �  s   € Ü�‹8€Or9   c                 ó   — t        | «      S rJ   r
  ru   s    r:   Úlen_usecaser  ¡  s   € Üˆq‹6€Mr9   c                 ó   — t        | «       y rJ   rà   ru   s    r:   Úprint_usecaser  ¥  s	   € Ü	ˆ!…Hr9   c                 ó   — | |   S rJ   r8   )rv   r‘   s     r:   Úgetitem_usecaser  ©  s   € ØˆS‰6€Mr9   c                 óR   — t        j                  t        j                  | «      «      S rJ   )r¢   ÚcosÚsinru   s    r:   Únpyufunc_usecaser  ­  s   € Ü�6‰6”"—&‘&˜“)ÓÐr9   c                 ó   — | j                   S rJ   )Ú_dataru   s    r:   Úget_data_usecaser!  ±  s   € Ø�7‰7€Nr9   c                 ó   — | j                   S rJ   )Ú_indexru   s    r:   Úget_index_usecaser$  µ  s   € Ø�8‰8€Or9   c                 ó   — | j                   S rJ   )Úis_monotonic_increasingru   s    r:   Úis_monotonic_usecaser'  ¹  s   € Ø×$Ñ$Ð$r9   c                 ó   — t        | |«      S rJ   )r1   )ÚdataÚindexs     r:   Úmake_series_usecaser+  ½  s   € Ü�$˜ÓÐr9   c                 ó&   — | j                  ||«      S rJ   )Úclip)rv   ÚloÚhis      r:   Úclip_usecaser0  Á  s   € Ø�6‰6�"�b‹>Ðr9   c                  ó   — t         S rJ   ©r¢   r8   r9   r:   Úreturn_non_boxabler3  È  s   € Ü€Ir9   c                  ó   — d„ } | S )Nc                  ó   — t         S rJ   r2  r8   r9   r:   r  z(overload_return_non_boxable.<locals>.impÎ  s   € Üˆ	r9   r8   )r  s    r:   Úoverload_return_non_boxabler6  Ì  s   € òð €Jr9   c                 ó8   — t        «       }|j                  | «      S rJ   )r3  Úarange)ÚszÚmods     r:   Únon_boxable_ok_usecaser;  Ô  s   € Ü
Ó
€CØ�:‰:�b‹>Ðr9   c                  ó   — t        «       S rJ   )r3  r8   r9   r:   Únon_boxable_bad_usecaser=  Ù  s   € ÜÓÐr9   c                  ó   — y rJ   r8   )Úfs    r:   Úmk_func_inputr@  Ý  s   € Ør9   c                   ó   — e Zd Zd„ Zy)ÚMkFuncTypingc                 ót   — t        |d   t        j                  «      sJ ‚t        t        j                  g|¢­Ž S ©Nr   )r@   r	   ÚMakeFunctionLiteralr+   r{   )rD   r„   Úkwss      r:   ÚgenericzMkFuncTyping.genericã  s0   € Ü˜$˜q™'¤5×#<Ñ#<Ô=Ð=Ð=ÜœŸ™Ð+ dÒ+Ð+r9   N)r5   r6   r7   rG  r8   r9   r:   rB  rB  á  s   „ ó,r9   rB  c                  ó   — t        d„ «       y )Nc                 ó   — | S rJ   r8   ©Úas    r:   Ú<lambda>z#mk_func_test_impl.<locals>.<lambda>é  s   € ™Ar9   )r@  r8   r9   r:   Úmk_func_test_implrM  è  s
   € Ü‘+Õr9   c                   ó   — e Zd Zy)ÚMyClassNr4   r8   r9   r:   rO  rO  ð  r;   r9   rO  c                   ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚCallableTypeRefc                 óˆ   •— || _         i | _        g | _        t        t        | �  dj                  | j                   «      «       y )Nzcallable_type_ref[{}])Úinstance_typeÚsig_to_impl_keyÚcompiled_templatesÚsuperrQ  Ú__init__Úformat)rD   rS  Ú	__class__s     €r:   rW  zCallableTypeRef.__init__ö  s@   ø€ Ø*ˆÔØ!ˆÔØ"$ˆÔÜŒo˜tÑ-ð /5ß5;±V¸D×<NÑ<NÓ5Oõ	Qr9   c                 ó
  — d }|j                   t        | «         D ]V  }	 |j                  ||«      }t        |di «      }||v sŒ(||   | j                  |<   | j
                  j                  |«        |S  |S # t        $ r Y Œfw xY w)NÚ_compiled_overloads)Ú
_functionsÚtypeÚapplyÚgetattrrT  rU  ÚappendÚ	Exception)rD   rE   r„   rF  Úres_sigÚtemplateÚcompiled_ovldss          r:   Úget_call_typezCallableTypeRef.get_call_typeý  sš   € àˆØ×*Ñ*¬4°«:Ô6ˆHð	Ø"Ÿ.™.¨¨sÓ3�ô ")¨Ð3HÈ"Ó!M�Ø˜>Ò)Ø4BÀ4Ñ4H�D×(Ñ(¨Ñ1Ø×+Ñ+×2Ñ2°8Ô<Øàˆð 7ð ˆøô ò Ùðús   ŸA6Á6	BÂBc                 óP   — t        | j                  j                  «       «      }|dfS )NT)ÚlistrT  Úkeys)rD   Úsigss     r:   Úget_call_signaturesz#CallableTypeRef.get_call_signatures  s%   € Ü�D×(Ñ(×-Ñ-Ó/Ó0ˆØ�TˆzÐr9   c                 ó    — | j                   |   S rJ   )rT  )rD   rƒ   s     r:   Úget_impl_keyzCallableTypeRef.get_impl_key  s   € Ø×#Ñ# CÑ(Ð(r9   )r5   r6   r7   rW  re  rj  rl  Ú__classcell__©rY  s   @r:   rQ  rQ  ô  s   ø„ ôQòò"ö)r9   rQ  c                   ó   — e Zd Zd„ Zy)ÚCallableTypeModelc                 óF   — t         j                  j                  | ||«       y rJ   )r   rl   rW  )rD   ÚdmmÚfe_types      r:   rW  zCallableTypeModel.__init__  s   € ä×Ñ×#Ñ# D¨#¨wÕ7r9   N)r5   r6   r7   rW  r8   r9   r:   rp  rp    s   „ ó8r9   rp  c                 ó"   — | j                  «       S rJ   )rY   )rE   rR   r¬   Úpyvals       r:   Úconstant_callable_typerefrv  !  s   € à×"Ñ"Ó$Ð$r9   c                 ó.   — t        | t        «      rd„ }|S y )Nc                  ó   — y)Nì   ï>[= r8   ©r\   s    r:   r  zoverload_np_exp.<locals>.imp-  s   € àr9   rÒ   ©r\   r  s     r:   Úoverload_np_expr|  )  s   € ä�#”{Ô#ò	ð ˆ
ð $r9   c                   ój   — e Zd ZdZd„ Zej                  d„ «       Zd„ Zej                  d„ «       Z	d„ Z
y)ÚTestLowLevelExtendingz4
    Test the low-level two-tier extension API.
    c                 óò   — t         } t        d¬«      |«      }| j                   |«       d«       t        } t        d¬«      |«      }| j                   |d «      d«       | j                   |d«      d«       y )NT©ÚnopythonrP   g      2@g      @)r  r   ÚassertPreciseEqualr  ©rD   ÚpyfuncÚcfuncs      r:   Ú
test_func1z TestLowLevelExtending.test_func1<  sh   € Ü#ˆØ"”˜TÔ" 6Ó*ˆØ×Ñ¡£¨Ô,Ü!ˆØ"”˜TÔ" 6Ó*ˆØ×Ñ¡ d£¨RÔ0Ø×Ñ¡ d£¨SÕ1r9   c                 ó$   — | j                  «        y rJ   )r†  ©rD   s    r:   Útest_func1_isolatedz)TestLowLevelExtending.test_func1_isolatedE  s   € à�‰Õr9   c                 ób   — | j                  t        t        «       | j                  t        «       y rJ   )ÚassertIsÚ
type_func1r   ÚassertIsNotNonerˆ  s    r:   Ú!test_type_callable_keeps_functionz7TestLowLevelExtending.test_type_callable_keeps_functionI  s   € Ø�‰”j¤+Ô.Ø×ÑœZÕ(r9   c                 ó„   — t         } t        t        j                  «       «      |«      }| j	                   |«       d«       y )Ng      E@)rV   r   r	   Úfloat64r‚  rƒ  s      r:   Útest_cast_mydummyz'TestLowLevelExtending.test_cast_mydummyM  s0   € äˆØ&””U—]‘]“_Ó& vÓ.ˆØ×Ñ¡£¨Õ.r9   c                 óF  — t        j                  t        «      }t        j                  }t        j
                  }|j                  «        |j                  «        t        |||dd«      }| j                  t        d„ |j                  j                  «       D «       «      «       y)zFmake sure make_function is passed to typer class as a literal
        r8   Nc              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wrJ   )r@   r	   rE  )r«   rK  s     r:   r­   z=TestLowLevelExtending.test_mk_func_literal.<locals>.<genexpr>^  s%   è ø€ ð á4�Aô ˜1œe×7Ñ7×8Ù4ùs   ‚$&)r   Úrun_frontendrM  r   Útyping_contextÚtarget_contextÚrefreshr   Ú
assertTrueÚanyÚtypemapÚvalues)rD   Útest_irÚ	typingctxÚ	targetctxÚ
typing_ress        r:   Útest_mk_func_literalz*TestLowLevelExtending.test_mk_func_literalS  sˆ   € ô ×'Ñ'Ô(9Ó:ˆÜ×-Ñ-ˆ	Ü×-Ñ-ˆ	Ø×ÑÔØ×ÑÔÜ)¨)°YÀÈØ*.ó0ˆ
à�‰Üñ à#×+Ñ+×2Ñ2Ô4óó õ	
r9   N)r5   r6   r7   Ú__doc__r†  r   Úrun_test_in_subprocessr‰  rŽ  r‘  r   r8   r9   r:   r~  r~  4  sJ   „ ñò2ð ×$Ñ$ñó %ðò)ð ×$Ñ$ñ/ó %ð/ó

r9   r~  c                   óL   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestPandasLikeze
    Test implementing a pandas-like Index object.
    Also stresses most of the high-level API.
    c                 óœ   — t        t        j                  d«      «      } t        d¬«      t        «      }| j                   ||«      d«       y )Né   Tr€  )r0   r¢   r8  r   r  r‚  )rD   r»   r…  s      r:   Útest_index_lenzTestPandasLike.test_index_lenk  s9   € Ü”"—)‘)˜A“,ÓˆØ"”˜TÔ"¤;Ó/ˆØ×Ñ¡ a£¨!Õ,r9   c                 ó.  — t        t        j                  g d¢«      «      } t        d¬«      t        «      }| j                   ||d«      d«        ||t        dd «      «      }| j                  |t         «       | j                  t        |«      ddg«       y )N©rP   é   éûÿÿÿTr€  r/   rª  r«  )
r0   r¢   r|   r   r  r‚  ÚsliceÚassertIsInstanceÚassertEqualrg  ©rD   r»   r…  Úiis       r:   Útest_index_getitemz!TestPandasLike.test_index_getitemp  sv   € Ü”"—(‘(š;Ó'Ó(ˆØ"”˜TÔ"¤?Ó3ˆØ×Ñ¡ a¨£¨QÔ/Ù�1”e˜A˜t“nÓ%ˆØ×Ñ˜b¤%Ô(Ø×Ñœ˜b› A r 7Õ+r9   c                 óD  — t        t        j                  g d¢«      «      } t        d¬«      t        «      } ||«      }| j                  |t         «       | j                  |j                  t        j                  t        j                  |j                  «      «      «       y)z7
        Check Numpy ufunc on an Index object.
        r©  Tr€  N)
r0   r¢   r|   r   r  r­  r‚  r   r  r  r¯  s       r:   Útest_index_ufunczTestPandasLike.test_index_ufuncx  sk   € ô ”"—(‘(š;Ó'Ó(ˆØ"”˜TÔ"Ô#3Ó4ˆÙ�1‹XˆØ×Ñ˜b¤%Ô(Ø×Ñ §¡¬"¯&©&´·±¸¿¹³Ó*AÕBr9   c                 ó¸   — t        t        j                  g d¢«      «      } t        d¬«      t        «      } ||«      }| j                  ||j                  «       y )Nr©  Tr€  )r0   r¢   r|   r   r!  r‹  r   )rD   r»   r…  r)  s       r:   Útest_index_get_dataz"TestPandasLike.test_index_get_data‚  sB   € ä”"—(‘(š;Ó'Ó(ˆØ"”˜TÔ"Ô#3Ó4ˆÙ�Q‹xˆØ�‰�d˜AŸG™GÕ$r9   c                 óÎ   —  t        d¬«      t        «      }g d¢dfg d¢dfg dffD ]=  \  }}t        t        j                  |«      «      } ||«      }| j                  ||«       Œ? y )NTr€  )rª  rP   é   F)r·  rª  rP   )r   r'  r0   r¢   r|   r®  )rD   r…  r›  Úexpectedr»   Úgots         r:   Útest_index_is_monotonicz&TestPandasLike.test_index_is_monotonic‰  sl   € ð #”˜TÔ"Ô#7Ó8ˆâ˜ÐÚ˜ÐØ�ˆJó!
ÑˆF�Hô
 ”b—h‘h˜vÓ&Ó'ˆAÙ˜“(ˆCØ×Ñ˜S (Õ+ñ!
r9   c                 óâ   — t        t        j                  g d¢«      «      }t        t        j                  g d¢«      |«      } t        d¬«      t        «      }| j                   ||«      d«       y )N©rˆ   é   r¦  ©g      ø?g      @ç      @Tr€  r¦  )r0   r¢   r|   r1   r�  r   r  r‚  )rD   r»   Úsr…  s       r:   Útest_series_lenzTestPandasLike.test_series_len–  sO   € Ü”"—(‘(š9Ó%Ó&ˆÜ”2—:‘:šoÓ.°Ó2ˆØ"”˜TÔ"¤;Ó/ˆØ×Ñ¡ a£¨!Õ,r9   c                 ó:  — t        t        j                  g d¢«      «      }t        t        j                  g d¢«      |«      } t        d¬«      t        «      } ||«      }| j                  |t         «       | j                  |j                  |j                  «       y )Nr¼  r¾  Tr€  )
r0   r¢   r|   r1   r�  r   r$  r­  r‹  r   )rD   r»   rÀ  r…  r¹  s        r:   Útest_series_get_indexz$TestPandasLike.test_series_get_indexœ  sk   € Ü”"—(‘(š9Ó%Ó&ˆÜ”2—:‘:šoÓ.°Ó2ˆØ"”˜TÔ"Ô#4Ó5ˆÙ�A‹hˆØ×Ñ˜c¤5Ô)Ø�‰�c—i‘i §¡Õ)r9   c                 ó&  — t        t        j                  g d¢«      «      }t        t        j                  g d¢«      |«      } t        d¬«      t        «      } ||«      }| j                  |t        «       | j                  |j                  t         «       | j                  |j                  j                  |j                  «       | j                  |j                  t        j                  t        j                  |j                  «      «      «       y)z8
        Check Numpy ufunc on an Series object.
        r©  ©r/   rˆ   r¦  Tr€  N)r0   r¢   r|   r1   Úint64r   r  r­  r#  r‹  r   r‚  Ú_valuesr  r  ©rD   r»   rÀ  r…  Ússs        r:   Útest_series_ufuncz TestPandasLike.test_series_ufunc¤  s¯   € ô ”"—(‘(š;Ó'Ó(ˆÜ”2—8‘8šIÓ&¨Ó*ˆØ"”˜TÔ"Ô#3Ó4ˆÙ�1‹XˆØ×Ñ˜b¤&Ô)Ø×Ñ˜bŸi™i¬Ô/Ø�‰�b—i‘i—o‘o q§w¡wÔ/Ø×Ñ §
¡
¬B¯F©F´2·6±6¸!¿)¹)Ó3DÓ,EÕFr9   c                 ó´  — t        t        j                  g d¢«      «      }t        j                  g d¢«      } t	        d¬«      t
        «      } |||«      }| j                  |t        «       | j                  |j                  t         «       | j                  |j                  j                  |j                  «       | j                  |j                  |«       y )Nr©  r¾  Tr€  )r0   r¢   r|   r�  r   r+  r­  r1   r#  r‹  r   rÇ  )rD   r»   Údr…  r¹  s        r:   Útest_series_constructorz&TestPandasLike.test_series_constructor±  s’   € Ü”"—(‘(š;Ó'Ó(ˆÜ�J‰J’Ó'ˆØ"”˜TÔ"Ô#6Ó7ˆÙ�A�q‹kˆØ×Ñ˜c¤6Ô*Ø×Ñ˜cŸj™j¬%Ô0Ø�‰�c—j‘j×&Ñ&¨¯©Ô0Ø�‰�c—k‘k 1Õ%r9   c                 óô  — t        t        j                  g d¢«      «      }t        t        j                  g d¢«      |«      } t        d¬«      t        «      } ||dd«      }| j                  |t        «       | j                  |j                  t         «       | j                  |j                  j                  |j                  «       | j                  |j                  t        j                  g d¢«      «       y )Nr©  r¾  Tr€  çš™™™™™ù?ç      @)rÏ  rÐ  r¿  )r0   r¢   r|   r1   r�  r   r0  r­  r#  r‹  r   r‚  rÇ  rÈ  s        r:   Útest_series_clipzTestPandasLike.test_series_clip»  s¤   € Ü”"—(‘(š;Ó'Ó(ˆÜ”2—:‘:šoÓ.°Ó2ˆØ"”˜TÔ"¤<Ó0ˆÙ�1�c˜3ÓˆØ×Ñ˜b¤&Ô)Ø×Ñ˜bŸi™i¬Ô/Ø�‰�b—i‘i—o‘o q§w¡wÔ/Ø×Ñ §
¡
¬B¯J©J²Ó,GÕHr9   N)r5   r6   r7   r¡  r§  r±  r³  rµ  rº  rÁ  rÃ  rÊ  rÍ  rÑ  r8   r9   r:   r¤  r¤  e  s<   „ ñò
-ò
,òCò%ò,ò-ò*òGò&óIr9   r¤  c                   óˆ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestHighLevelExtendingz+
    Test the high-level combined API.
    c                 ó8  ‡ ‡— t         } t        d¬«      |«      Šˆˆ fd„} |ddd¬«        |ddd«        |t        j                  g d¢«      t        j                  g d¢«      t        j                  g d	¢«      «       ‰ j                  t        j                  «      5 } ‰t        j                  g «      t        j                  g «      t        j                  g «      «       d
d
d
«       ‰ j                  dt        j                  «      «       y
# 1 sw Y   Œ/xY w)z>
        Test implementing a function with @overload.
        Tr€  c                  óP   •— t        | i |¤Ž} ‰| i |¤Ž}‰j                  ||«       y rJ   )r£   r‚  )r„   Úkwargsr¸  r¹  r…  rD   s       €€r:   Úcheckz0TestHighLevelExtending.test_where.<locals>.checkÒ  s1   ø€ Ü Ð0¨Ñ0ˆHÙ˜Ð( Ñ(ˆCØ×#Ñ# H¨cÕ2r9   r¦  rª  )rv   rž   rŸ   )TFTrÅ  )r½  r·  r·  Nr§   )r¥   r   r¢   Úbool_r|   ÚassertRaisesr
   rÂ   rÆ  ÚassertInÚstrÚ	exception)rD   r„  r×  Úraisesr…  s   `   @r:   Ú
test_wherez!TestHighLevelExtending.test_whereË  sÍ   ù€ ô ˆØ"”˜TÔ" 6Ó*ˆõ	3ñ
 	�˜ Õ"Ùˆd�A�qÔÙÜ�H‰HÒ(Ó)Ü�H‰H’YÓÜ�H‰H’YÓô	
ð ×Ñœv×1Ñ1Ô2°fÙ”"—(‘(˜2“,¤§¡¨£¬b¯h©h°r«lÔ;÷ 3à�‰Ø0´#°f×6FÑ6FÓ2Gõ	
÷ 3Ð2ús   ÂADÄDc                 ó¤   —  t        d¬«      t        «      }| j                   |t        «       «      d«       | j                   |ddg«      d«       y)zN
        Test re-implementing len() for a custom type with @overload.
        Tr€  rÍ   r½  r·  rˆ   N)r   r  r‚  r3   ©rD   r…  s     r:   Útest_lenzTestHighLevelExtending.test_lenæ  sD   € ð #”˜TÔ"¤;Ó/ˆØ×Ñ¡¤g£iÓ 0°"Ô5Ø×Ñ¡ q¨! f£¨qÕ1r9   c                 óê   —  t        d¬«      t        «      }t        «       5   |t        «       «       | j	                  t
        j                  j                  «       d«       ddd«       y# 1 sw Y   yxY w)zP
        Test re-implementing print() for a custom type with @overload.
        Tr€  zhello!
N)r   r  r   r3   r®  ÚsysÚstdoutÚgetvaluerà  s     r:   Ú
test_printz!TestHighLevelExtending.test_printî  sN   € ð #”˜TÔ"¤=Ó1ˆÜÕÙ”'“)ÔØ×ÑœSŸZ™Z×0Ñ0Ó2°JÔ?÷ ×Ñús   ¡?A)Á)A2c                 ó
  — t         } t        d¬«      |«      }| j                   |dd«      d«       | j                   |t        «       t        «       «      d«       | j                   |t	        «       t	        «       «      d«       y©	zW
        Test re-implementing operator.add() for a custom type with @overload.
        Tr€  r/   rˆ   r¦  rP   éT   N)rõ   r   r‚  ÚMyDummy2r3   rƒ  s      r:   Útest_add_operatorz(TestHighLevelExtending.test_add_operator÷  sh   € ô #ˆØ"”˜TÔ" 6Ó*ˆà×Ñ¡ a¨£¨QÔ/Ø×Ñ¡¤h£j´(³*Ó =¸rÔBð 	×Ñ¡¤g£i´³Ó ;¸RÕ@r9   c                 ó
  — t         } t        d¬«      |«      }| j                   |dd«      d«       | j                   |t        «       t        «       «      d«       | j                   |t	        «       t	        «       «      d«       y©	zY
        Test re-implementing '+' for a custom type via @overload(operator.add).
        Tr€  r/   rˆ   r¦  rP   ré  N)rø   r   r‚  rê  r3   rƒ  s      r:   Útest_add_binopz%TestHighLevelExtending.test_add_binop  sh   € ô  ˆØ"”˜TÔ" 6Ó*ˆà×Ñ¡ a¨£¨QÔ/Ø×Ñ¡¤h£j´(³*Ó =¸rÔBð 	×Ñ¡¤g£i´³Ó ;¸RÕ@r9   c                 ó
  — t         } t        d¬«      |«      }| j                   |dd«      d«       | j                   |t        «       t        «       «      d«       | j                   |t	        «       t	        «       «      d«       yrè  )rþ   r   r‚  rê  r3   rƒ  s      r:   Útest_iadd_operatorz)TestHighLevelExtending.test_iadd_operator  sh   € ô $ˆØ"”˜TÔ" 6Ó*ˆà×Ñ¡ a¨£¨QÔ/Ø×Ñ¡¤h£j´(³*Ó =¸rÔBð 	×Ñ¡¤g£i´³Ó ;¸RÕ@r9   c                 ó
  — t         } t        d¬«      |«      }| j                   |dd«      d«       | j                   |t        «       t        «       «      d«       | j                   |t	        «       t	        «       «      d«       yrí  )r   r   r‚  rê  r3   rƒ  s      r:   Útest_iadd_binopz&TestHighLevelExtending.test_iadd_binop!  sh   € ô !ˆØ"”˜TÔ" 6Ó*ˆà×Ñ¡ a¨£¨QÔ/Ø×Ñ¡¤h£j´(³*Ó =¸rÔBð 	×Ñ¡¤g£i´³Ó ;¸RÕ@r9   c                 ó  — t         } t        d¬«      |«      }t        «       }d }t        «       5 }	  ||d«       d d d «       |�|‚| j                  j                  «       d«       y # t        $ r}|}Y d }~Œ=d }~ww xY w# 1 sw Y   ŒFxY w)NTr€  éA  zdel hello! 321
)r  r   r3   r   ra  r®  rå  ©rD   r„  r…  r\   ÚeÚoutÚexcs          r:   Útest_delitemz#TestHighLevelExtending.test_delitem/  s‚   € ÜˆØ"”˜TÔ" 6Ó*ˆÜ‹iˆØˆäÔ #ðÙ�c˜3”÷ ð ˆ=ØˆGØ×Ñ˜Ÿ™›Ð);Õ<øô ò Ø•ûðú÷ Ðús.   ¯A?±	A'Á'	A<Á0A7Á2A?Á7A<Á<A?Á?Bc                 óv   — t         } t        d¬«      |«      }| j                   |t        «       d«      d«       y )NTr€  rô  i¼  )r  r   r‚  r3   rƒ  s      r:   Útest_getitemz#TestHighLevelExtending.test_getitem?  s1   € ÜˆØ"”˜TÔ" 6Ó*ˆØ×Ñ¡¤g£i°Ó 5°yÕAr9   c                 ó  — t         } t        d¬«      |«      }t        «       }d }t        «       5 }	  ||dd«       d d d «       |�|‚| j                  j                  «       d«       y # t        $ r}|}Y d }~Œ=d }~ww xY w# 1 sw Y   ŒFxY w)NTr€  rô  ré   z321 123
)r  r   r3   r   ra  r®  rå  rõ  s          r:   Útest_setitemz#TestHighLevelExtending.test_setitemD  s„   € ÜˆØ"”˜TÔ" 6Ó*ˆÜ‹iˆØˆäÔ #ðÙ�c˜3 Ô$÷ ð ˆ=ØˆGØ×Ñ˜Ÿ™›¨Õ5øô ò Ø•ûðú÷ Ðús.   ¯B ±
A(Á(	A=Á1A8Á3B Á8A=Á=B Â B	c                 óz  —  t        d¬«      t        «      }d} ||«      }t        |«      }t        j                  j	                  ||«        t        d¬«      t
        «      }| j                  t        «      5 } |«        ddd«       t        j                  «      }d}| j                  ||«       y# 1 sw Y   Œ3xY w)zW
        Test overloading whose return value cannot be represented in CPython.
        Tr€  é
   Nzcannot convert native Module)r   r;  r¢   ÚtestingÚassert_equalr=  rÙ  Ú	TypeErrorrÛ  rÜ  rÚ  )	rD   Úok_cfuncÚnr¹  ÚexpectÚ	bad_cfuncrÝ  ÚerrmsgÚ	expectmsgs	            r:   Útest_no_cpython_wrapperz.TestHighLevelExtending.test_no_cpython_wrapperT  sš   € ð &”3 Ô%Ô&<Ó=ˆØˆÙ�q‹kˆÜ'¨Ó*ˆÜ
�
‰
×Ñ ¨Ô,à&”C Ô&Ô'>Ó?ˆ	Ø×ÑœyÔ)¨VÙŒK÷ *ä�V×%Ñ%Ó&ˆØ2ˆ	Ø�‰�i Õ(÷	 *Ð)ús   Á7B1Â1B:c                 óø  — dd„}d}dd„}| j                  t        j                  «      5 }  ||«      dddd«       ddd«       t        j                  «      }| j                  ||«       | j                  d	|«       | j                  d
|«       | j                  d|«       dd„}| j                  t        j                  «      5 }  ||«      dddd«       ddd«       t        |j                  «      }| j                  ||«       | j                  d|«       | j                  d|«       | j                  d|«       dd„}| j                  t        j                  «      5 }  ||«      dddd«       ddd«       t        |j                  «      }| j                  ||«       | j                  d|«       | j                  d|v «       | j                  d|«       | j                  d|«       ddlm}m	}	 | j                  t        j                  «      5 }  ||«      dddd«       ddd«       t        |j                  «      }| j                  ||«       | j                  d|«       | j                  d|v «       | j                  d|«       | j                  t        j                  «      5 }  ||	«      dddd«       ddd«       t        |j                  «      }| j                  ||«       | j                  d|«       | j                  d|v «       | j                  d|«       | j                  d|«       dd„}
| j                  t        j                  «      5 }  ||
«      dddd«       ddd«       t        |j                  «      }| j                  ||«       | j                  d|«       | j                  d|v «       | j                  d|«       | j                  d|«       dd„}| j                  t        j                  «      5 }  ||«      dddd«       ddd«       t        |j                  «      }| j                  ||«       | j                  d|«       | j                  d|v «       | j                  d|«       d d„}| j                  t        j                  «      5 }  ||«      dddd«       ddd«       t        |j                  «      }| j                  ||«       | j                  d|«       | j                  d|«       d„ }| j                  t        j                  «      5 }  ||«      dddd«       ddd«       t        |j                  «      }| j                  ||«       | j                  d|«       | j                  d|«       y# 1 sw Y   �ŒNxY w# 1 sw Y   �ŒÁxY w# 1 sw Y   �Œ4xY w# 1 sw Y   �Œ�xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒfxY w# 1 sw Y   �ŒÆxY w# 1 sw Y   �Œ8xY w# 1 sw Y   Œ½xY w)!z}
        Tests that an overload which has a differing typing and implementing
        signature raises an exception.
        Nc                 ób   ‡ ‡— dd„Št        ‰«      dˆ fd„	«       }t        d¬«      ˆfd„«       }|S )Nc                  ó   — y rJ   r8   ©rK  ÚbrM   Úkws       r:   Ú
myoverloadzjTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>.myoverloadn  ó   € Ør9   c                 ó   •— ‰S rJ   r8   )rK  r  rM   r  Úimpls       €r:   Ú_myoverload_implzpTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>._myoverload_implq  s   ø€ à�r9   Tr€  c                 ó   •—  ‰| |||¬«       y )N©r  r8   )rK  r  rM   rÌ  r  s       €r:   ÚfoozcTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>.foou  s   ø€ á˜1˜a  qÖ)r9   rJ   ©r   r   )r  r  r  r  s   `  @r:   Úgen_olzVTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_olm  sA   ù€ óô �jÓ!ôó "ðô ˜$Ôó*ó  ð*ð ˆJr9   z-Typing and implementation arguments differ inc                 ó   — | dkD  ryy©Nrÿ  r/   éÿÿÿÿr8   r  s       r:   Úimpl1zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl1~  ó   € Ø�2ŠvØàr9   r/   rˆ   r¦  r½  zkeyword argument default valuesz<Parameter "kw=12">z<Parameter "kw=None">c                 ó   — | dkD  ryyr  r8   )rK  r  rM   Úkwargs       r:   Úimpl2zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl2�  r  r9   zkeyword argument namesz<Parameter "kwarg=None">c                 ó   — t         dkD  ryyr  rJ  )Úzr  rM   r  s       r:   Úimpl3zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl3œ  s   € Ü�2ŠvØàr9   zargument namesÚkeywordz<Parameter "a">z<Parameter "z">)Úimpl4Úimpl5zFirst difference: 'z'c                 ó   — | dkD  ryyr  r8   )rK  r  rM   rÌ  rö  r  s         r:   Úimpl6zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl6¿  r  r9   z<Parameter "d">z<Parameter "e">c                 ó   — | dkD  ryyr  r8   )rK  r  r  s      r:   Úimpl7zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl7Ï  r  r9   z<Parameter "c">c                 ó   — | dkD  ryyr  r8   )rK  r  rM   r  Úextra_kwargs        r:   Úimpl8zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl8Þ  r  r9   z<Parameter "extra_kwarg=None">c                 ó   — | dkD  ryyr  r8   )rK  r  rM   s      r:   Úimpl9zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl9ì  r  r9   rJ   )é   )NN)
rÙ  r
   rÂ   rÛ  rÜ  rÚ  ÚassertFalseÚoverload_usecasesr&  r'  )rD   r  Úsentinelr  rö  Úmsgr!  r$  r&  r'  r)  r+  r.  r0  s                 r:   Ú/test_typing_vs_impl_signature_mismatch_handlingzFTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handlingg  sð  € ó	ð Cˆó	ð ×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð7¸Ô=Ø�‰Ð+¨SÔ1Ø�‰Ð-¨sÔ3ó	ð ×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð.°Ô4Ø�‰Ð0°#Ô6Ø�‰Ð-¨sÔ3ó	ð ×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÐ)Ô*Ø�‰Ð'¨Ô-Ø�‰Ð'¨Ô-ç3à×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÐ)Ô*Ø�‰Ð-¨sÔ3à×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÐ)Ô*Ø�‰Ð'¨Ô-Ø�‰Ð'¨Ô-ó	ð ×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÐ)Ô*Ø�‰Ð'¨Ô-Ø�‰Ð'¨Ô-ó	ð ×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÐ)Ô*Ø�‰Ð'¨Ô-ó	ð ×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð.°Ô4Ø�‰Ð6¸Ô<ò	ð ×Ñœv×1Ñ1Ô2°aØ‰F�5‹M˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�h Ô$Ø�‰Ð.°Ô4Ø�‰Ð-¨sÕ3÷g 3Ñ2ú÷ 3Ñ2ú÷ 3Ñ2ú÷ 3Ñ2ú÷ 3Ñ2ú÷  3Ñ2ú÷  3Ñ2ú÷ 3Ñ2ú÷ 3Ð2úsk   ªVÃVÅV"ÈV/Ê&V<ÍW	Ð WÒW#Ô"W0ÖVÖVÖ"V,Ö/V9Ö<W×	W×W ×#W-×0W9c                 óP  ‡— dd„Šddl m}  t        ‰«      |«       t        d¬«      ˆfd„«       }| j	                  t
        j                  «      5 } |dd«       ddd«       t        j                  «      }| j                  d	|«       | j                  d
|«       y# 1 sw Y   ŒCxY w)z¦
        Tests that an overload which has a differing typing and implementing
        signature raises an exception and uses VAR_POSITIONAL (*args) in typing
        Nc                  ó   — y rJ   r8   ©rK  r  s     r:   r  ziTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_positional.<locals>.myoverloadÿ  ó   € Ør9   r/   )Úvar_positional_implTr€  c                 ó   •—  ‰| |dd¬«      S )Né	   é   r  r8   ©rK  r  r  s     €r:   r  zbTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_positional.<locals>.foo  s   ø€ á˜a  A¨"Ô-Ð-r9   r·  z)VAR_POSITIONAL (e.g. *args) argument kindz-offending argument name is '*star_args_token'rJ   )
r3  r;  r   r   rÙ  r
   rÂ   rÛ  rÜ  rÚ  )rD   r;  r  rö  r5  r  s        @r:   Ú>test_typing_vs_impl_signature_mismatch_handling_var_positionalzUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_positionalù  s�   ø€ ó	õ 	;àŒ�ÓÐ0Ô1ä	�dÔ	ó	.ó 
ð	.ð ×Ñœv×1Ñ1Ô2°aÙ��1ŒI÷ 3ä�!—+‘+ÓˆØ�‰ÐAÀ3ÔGØ�‰ÐEÀsÕK÷	 3Ð2ús   Á
BÂB%c                 ó*  — d
d„}d„ }  ||d«      dd«       | j                  t        j                  «      5 }  ||«      dd«       ddd«       t        j                  «      }| j                  d|«       | j                  d|«       dd	„}| j                  t        j                  «      5 }  ||«      dd«       ddd«       t        |j                  «      }| j                  d|«       | j                  d|«       y# 1 sw Y   Œ·xY w# 1 sw Y   ŒOxY w)zJ
        Tests that an overload which uses **kwargs (VAR_KEYWORD)
        c                 ó^   ‡— dd„Š t        ‰|¬«      | «       t        d¬«      ˆfd„«       }|S )Nc                  ó   — y rJ   r8   r9  s     r:   r  zvTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol.<locals>.myoverload  r  r9   ©ÚstrictTr€  c                 ó   •—  ‰| d¬«      S )Nr>  r  r8   r?  s     €r:   r  zoTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol.<locals>.foo  s   ø€ á! !¨Ô+Ð+r9   rJ   r  )r  rE  r  r  s      @r:   r  zbTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol  s9   ø€ óð 0ŒH�Z¨Ô/°Ô5ä˜$Ôó,ó  ð,ð ˆJr9   c                 ó   — dd„}|S )Nc                 ó   — | S rJ   r8   r9  s     r:   r  zmTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol1.<locals>.impl#  ó   € Ø�r9   ©rÿ  r8   )rK  rF  r  s      r:   Úol1z_TestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol1"  s   € óð ˆKr9   Fr/   rˆ   Nz1use of VAR_KEYWORD (e.g. **kwargs) is unsupportedz"offending argument name is '**kws'c                 ó   — d„ }|S )Nc                 ó   — | S rJ   r8   )rK  rF  s     r:   r  zmTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol2.<locals>.impl1  rI  r9   r8   )rK  r  r  s      r:   Úol2z_TestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol20  s   € òð ˆKr9   )T)r   )rÙ  r
   rÂ   rÛ  rÜ  rÚ  )rD   r  rK  rö  r5  rN  s         r:   Ú;test_typing_vs_impl_signature_mismatch_handling_var_keywordzRTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword  sè   € ó

	ò	ð 	‰ˆs�EÓ˜1˜aÔ Ø×Ñœv×1Ñ1Ô2°aØ‰F�3‹K˜˜1Ô÷ 3ä�!—+‘+ÓˆØ�‰ÐIÈ3ÔOØ�‰Ð:¸CÔ@ó	ð ×Ñœv×1Ñ1Ô2°aØ‰F�3‹K˜˜1Ô÷ 3ä�!—+‘+ÓˆØ�‰ÐIÈ3ÔOØ�‰Ð:¸CÕ@÷# 3Ð2ú÷ 3Ð2ús   ·C=Â+D	Ã=DÄ	Dc                 ó¸   — t        t        j                  d«      dd„«       }t        d„ «       }t	        j
                  d«      }| j                   ||«      d«       y )Nr  c                 ó   — dd„}|S )Nc                 ó   — |S rJ   r8   )rÉ   Úa_kwargs     r:   r  zQTestHighLevelExtending.test_overload_method_kwargs.<locals>.fooimpl.<locals>.impl@  s   € Ø�r9   rJ  r8   )rÉ   rS  r  s      r:   ÚfooimplzCTestHighLevelExtending.test_overload_method_kwargs.<locals>.fooimpl>  s   € óð ˆKr9   c                 óf   — | j                  «       | j                  d«      | j                  d¬«      fS )Né   é   )rS  )r  ©ÚAs    r:   Úbarz?TestHighLevelExtending.test_overload_method_kwargs.<locals>.barE  s(   € à—5‘5“7˜AŸE™E "›I q§u¡u°R uÓ'8Ð8Ð8r9   r·  )rÿ  rV  rW  rJ  )r   r	   rÀ   r   r¢   r8  r®  )rD   rT  rZ  ÚZs       r:   Útest_overload_method_kwargsz2TestHighLevelExtending.test_overload_method_kwargs<  sV   € ä	œŸ™ eÓ	,ò	ó 
-ð	ô 
ñ	9ó 
ð	9ô �I‰I�a‹Lˆà×Ñ™˜Q› Õ.r9   c                 óÆ   — t        t        j                  d«      d„ «       }t        d„ «       }t	        j
                  d«      } ||«       | j                   ||«      d«       y )NÚlitfooc                 óx   — t        |t        j                  «      r t        |t        j                  «      sd„ }|S y y )Nc                 ó   — |S rJ   r8   )rÉ   rL   s     r:   r  zXTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.litfoo.<locals>.implV  s   € Ø"˜
r9   )r@   r	   rå   ÚLiteral)rÉ   rL   r  s      r:   r^  zJTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.litfooO  s6   € ô ˜#œuŸ}™}Ô-ä! #¤u§}¡}Ô5ò#ð  �Kð 6ð .r9   c                 ó$   — | j                  d«      S ©NéþÊ  )r^  rX  s    r:   rZ  zGTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.bar[  s   € à—8‘8˜FÓ#Ð#r9   r/   rd  )r   r	   rÀ   r   r¢   Úzerosr®  )rD   r^  rZ  rY  s       r:   Ú#test_overload_method_literal_unpackz:TestHighLevelExtending.test_overload_method_literal_unpackM  s]   € ä	œŸ™ hÓ	/ñ		 ó 
0ð		 ô 
ñ	$ó 
ð	$ô �H‰H�Q‹KˆÙˆAŒØ×Ñ™˜Q› Õ(r9   c                 óJ   — t         d„ «       }| j                   |«       d«       y )Nc                  ó4   — t        j                  t        «      S rJ   )r¢   ÚexprH   r8   r9   r:   Útestz8TestHighLevelExtending.test_overload_ufunc.<locals>.testg  s   € ä—6‘6œ'“?Ð"r9   ry  )r   r®  )rD   rj  s     r:   Útest_overload_ufuncz*TestHighLevelExtending.test_overload_ufuncc  s*   € ô 
ñ	#ó 
ð	#ð 	×Ñ™› Õ,r9   c           	      óè  — t        t        d«      d„ «       }t        d„ «       }t        «       }| j	                   ||dd«      d«       | j	                   ||ddd«      d«       | j	                   ||dddd	«      d
«       t        d„ «       }| j	                   ||«      d«       | j	                   ||ddd«      d«       | j	                   ||ddd«      d«       | j	                   ||ddd«      d«       y )NÚmethod_starargc                 ó   — d„ }|S )Nc                 ó   — |||fS rJ   r8   )r\   rL   Úval2r„   s       r:   Úgetz\TestHighLevelExtending.test_overload_method_stararg.<locals>._ov_method_stararg.<locals>.getp  s   € Ø˜T 4Ð(Ð(r9   r8   )r\   rL   rp  r„   rq  s        r:   Ú_ov_method_starargzOTestHighLevelExtending.test_overload_method_stararg.<locals>._ov_method_starargn  s   € ò)ð ˆJr9   c                 ó    —  | j                   |Ž S rJ   ©rm  )r\   r„   s     r:   r  z@TestHighLevelExtending.test_overload_method_stararg.<locals>.foou  s   € ð &�3×%Ñ% tÐ,Ð,r9   r/   rˆ   ©r/   rˆ   r8   r¦  ©r/   rˆ   ©r¦  r½  ©r/   rˆ   ©r¦  r½  c                 ór   — | j                  dd«      | j                  ddd«      | j                  dddd«      fS )Nr/   rˆ   r¦  r½  rt  rz  s    r:   rZ  z@TestHighLevelExtending.test_overload_method_stararg.<locals>.bar  sD   € ð ×"Ñ" 1 aÓ(Ø×"Ñ" 1 a¨Ó+Ø×"Ñ" 1 a¨¨AÓ.ðð r9   )ru  rv  rx  rw  )r/   rˆ   )rw  ry  )r/   rˆ   )ry  ©r¦  )r½  r·  )r/   rˆ   )r{  ©r   r=   r   r3   r®  )rD   rr  r  r\   rZ  s        r:   Útest_overload_method_starargz3TestHighLevelExtending.test_overload_method_starargm  s  € Ü	œÐ&6Ó	7ñ	ó 
8ð	ô 
ñ	-ó 
ð	-ô ‹iˆØ×Ñ™˜S ! Q›¨Ô4Ø×Ñ™˜S ! Q¨Ó*¨LÔ9Ø×Ñ™˜S ! Q¨¨1Ó-¨~Ô>ä	ñ	ó 
ð	ð 	×ÑÙ�‹HÐ@ô	
ð 	×ÑÙ��Q˜˜4Ó  /ô	
ð 	×ÑÙ��Q˜˜6Ó"Ð$5ô	
ð 	×ÑÙ��Q˜˜;Ó'Ð)?õ	
r9   c                 ó¬  ‡—  G d„ dt         j                  «      Št        ‰d«      d„ «       }t        ˆfd„«       }d}| j	                   ||«      t        j                  |«      «       t        d„ «       }| j                  t        j                  «      5 } ||«       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)	Nc                   ó   — e Zd Zy)úATestHighLevelExtending.test_overload_classmethod.<locals>.MyArrayNr4   r8   r9   r:   ÚMyArrayr€  š  s   „ Ør9   r�  Úarray_allocc                 ó   — d„ }|S )Nc                 ó0   — t        j                  |«      }|S rJ   ©r¢   r8  )ÚclsÚnitemsrÉ   s      r:   r  zVTestHighLevelExtending.test_overload_classmethod.<locals>.ol_array_alloc.<locals>.implŸ  s   € Ü—i‘i Ó'�Ø�
r9   r8   )r†  r‡  r  s      r:   Úol_array_alloczHTestHighLevelExtending.test_overload_classmethod.<locals>.ol_array_alloc�  s   € òð ˆKr9   c                 ó&   •— ‰j                  | «      S rJ   )r‚  )r‡  r�  s    €r:   r  z=TestHighLevelExtending.test_overload_classmethod.<locals>.foo¤  s   ø€ à×&Ñ& vÓ.Ð.r9   rÍ   c                 ó@   — t         j                  j                  | «      S rJ   )r	   rÀ   r‚  )r‡  s    r:   Úno_classmethod_in_basezPTestHighLevelExtending.test_overload_classmethod.<locals>.no_classmethod_in_base­  s   € ä—;‘;×*Ñ*¨6Ó2Ð2r9   z"Unknown attribute 'array_alloc' of)r	   rÀ   r)   r   r‚  r¢   r8  rÙ  r
   rÂ   rÚ  rÛ  rÜ  )rD   rˆ  r  r‡  r‹  rÝ  r�  s         @r:   Útest_overload_classmethodz0TestHighLevelExtending.test_overload_classmethod˜  sÅ   ø€ ô	”e—k‘kô 	ô 
˜g }Ó	5ñ	ó 
6ð	ô 
ó	/ó 
ð	/ð ˆØ×Ñ¡ F£¬R¯Y©Y°vÓ->Ô?ô 
ñ	3ó 
ð	3ð ×Ñœv×1Ñ1Ô2°fÙ" 6Ô*÷ 3à�‰Ø0Ü�× Ñ Ó!õ	
÷ 3Ð2ús   Â	C
Ã
Cc                 ó¾   — t        t        «      d„ «       }t        t        «      d„ «       }t        d„ «       }d}d|d   z   d|d   z   f}| j                   ||Ž |«       y )	Nc                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — d| z   S )Nç     @E@r8   ru   s    r:   r  zeTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld1.<locals>.impl½  s   € Ø !™8�Or9   )r@   r	   rå   ©rv   r  s     r:   Úcallable_type_call_ovld1zWTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld1º  s   € ä˜!œUŸ]™]Ô+ò$à�ð ,r9   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — d| z   S )Nú42.5r8   ru   s    r:   r  zeTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld2.<locals>.implÄ  s   € Ø! A™:Ð%r9   )r@   r	   ÚUnicodeTyper‘  s     r:   Úcallable_type_call_ovld2zWTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld2Á  s#   € ä˜!œU×.Ñ.Ô/ò&ð �ð	 0r9   c                 ó.   — t        | «      t        |«      fS rJ   )rO  ©rK  r  s     r:   r  zBTestHighLevelExtending.test_overload_callable_typeref.<locals>.fooÉ  s   € ä˜1“:œw q›zÐ)Ð)r9   )r½  Ú4r�  r   r•  r/   )r   rQ  r   r‚  )rD   r’  r—  r  r„   r¸  s         r:   Útest_overload_callable_typerefz5TestHighLevelExtending.test_overload_callable_typeref¸  s|   € ä	”/Ó	"ñ	ó 
#ð	ô 
”/Ó	"ñ	ó 
#ð	ô 
ñ	*ó 
ð	*ð ˆØ˜4 ™7‘N F¨T°!©WÑ$4Ð5ˆØ×Ñ¡ T 
¨HÕ5r9   N)r5   r6   r7   r¡  rÞ  rá  ræ  rë  rî  rð  rò  rù  rû  rý  r	  r6  r@  rO  r\  rf  rk  r}  rŒ  r›  r8   r9   r:   rÓ  rÓ  Æ  sx   „ ñò
ò62ò@òAòAòAòAò=ò Bò
6ò )ò&P4òdLò.*AòX/ò")ò,-ò)
òV
ó@6r9   rÓ  c                 ó´   — | j                   | j                  d      }||k7  rt        d«      ‚| j                  | j                  d      }||k7  rt        d«      ‚y )Nr   zcache not used)Ú_cache_hitsÚ
signaturesÚAssertionErrorÚ_cache_misses)r…  Ú
expect_hitÚexpect_missesÚhitÚmisss        r:   Ú_assert_cache_statsr¥  Ò  se   € Ø
×
Ñ
˜E×,Ñ,¨QÑ/Ñ
0€CØ
ˆjÒÜÐ-Ó.Ð.Ø×Ñ˜u×/Ñ/°Ñ2Ñ3€DØˆ}ÒÜÐ-Ó.Ð.ð r9   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚTestOverloadMethodCachingFc                 óÂ   — t        | j                  j                  «      | _        t	        d| j                  «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)NÚ	CACHE_DIR)r   rY  r5   Ú
_cache_dirr   Úrun_caching_overload_methodrˆ  s    r:   Útest_caching_overload_methodz6TestOverloadMethodCaching.test_caching_overload_methodá  s>   € Ü(¨¯©×)@Ñ)@ÓAˆŒÜ˜[¨$¯/©/Õ:Ø×,Ñ,Ô.÷ ;×:Ñ:ús   »AÁAc                 ó
  —  t        dd¬«      t        «      }| j                   |t        «       «      d«       t	        |dd«       |j                  t        f«      }|j                  «       D �cg c]  }|j                  d«      rd|v r|‘Œ }}| j                  t        |«      d«       	 t        j                  d«      }|j                  «       }|j                  t         || j"                  f¬	«      }|j%                  «        |j'                  t        «       «       |j)                  «        | j                  |j*                  d«       |j-                  d¬
«      }| j                  |d«       y c c}w # t        $ r	 t        }Y ŒÃw xY w)NT©r�  ÚcacherÍ   r   r/   Údeclarer  Úspawn)Útargetr„   )Útimeout)r   r  r‚  r3   r¥  Úinspect_llvmrK   Ú
splitlinesÚ
startswithr®  r  ÚmultiprocessingÚget_contextÚAttributeErrorÚQueueÚProcessr«  rª  ÚstartÚputÚjoinÚexitcoderq  )	rD   r…  ÚllvmirÚlnÚdeclsÚctxÚqÚpr¶   s	            r:   r«  z5TestOverloadMethodCaching.run_caching_overload_methodæ  sT  € Ø.”˜T¨Ô.Ô/LÓMˆØ×Ñ¡¤g£iÓ 0°"Ô5Ü˜E 1 aÔ(Ø×#Ñ#¤\ OÓ4ˆð ×'Ñ'Ô)ó
á)�Ø�}‰}˜YÔ'Ð,DÈÑ,Jò Ø)ð 	ð 
ð
 	×Ñœ˜U› QÔ'ð	"Ü!×-Ñ-¨gÓ6ˆCð �I‰I‹KˆØ�K‰KÜ.°a¸¿¹Ð5Ið ó 
ˆð 	
�‰Œ	Ø	�‰Œg‹iÔØ	�‰Œà×Ñ˜Ÿ™ QÔ'Ø�e‰e˜AˆeÓˆØ×Ñ˜˜bÕ!ùò+
øô ò 	"Ü!ŠCð	"ús   Á-E+Â)E0 Å0FÆFN)r5   r6   r7   Ú_numba_parallel_test_r¬  r«  r8   r9   r:   r§  r§  Û  s   „ ð "Ðò/ó
"r9   r§  c                 óà   — t        d|«      5  | j                  «       } t        dd¬«      t        «      } ||«      }| j	                  |«       t        |dd«       ddd«       y# 1 sw Y   yxY w)zH
    Used by TestOverloadMethodCaching.test_caching_overload_method
    r©  Tr®  r/   r   N)r   rq  r   r  r½  r¥  )rÄ  Ú	cache_dirrÏ   r…  r¶   s        r:   r«  r«    sY   € ô 
˜ iÕ	0Ø�e‰e‹gˆØ.”˜T¨Ô.Ô/LÓMˆÙ�C‹jˆØ	�‰ˆcŒ
ä˜E 1 aÔ(÷ 
1×	0Ñ	0ús   �AA$Á$A-c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestIntrinsicc                 ód  ‡‡— t         d„ «       Št         d„ «       Št        d¬«      ˆfd„«       }t        d¬«      ˆfd„«       }| j                   |«       d«       | j                  t        «      5 } |«        ddd«       | j                  d	j                  j                  «       y# 1 sw Y   Œ0xY w)
z”
        Verify that returning a None from codegen function is handled
        automatically for void functions, otherwise raise exception.
        c                 óV   — t        j                  t         j                  «      }d„ }||fS )Nc                  ó   — y rJ   r8   ©rE   rR   r+   r„   s       r:   ÚcodegenzBTestIntrinsic.test_void_return.<locals>.void_func.<locals>.codegen  r  r9   ©r	   Úvoidr|   ©r�  rK  rƒ   rÏ  s       r:   Ú	void_funcz1TestIntrinsic.test_void_return.<locals>.void_func  s%   € ä—*‘*œUŸ[™[Ó)ˆCòð ˜�<Ðr9   c                 óV   — t        j                  t         j                  «      }d„ }||fS )Nc                  ó   — y rJ   r8   rÎ  s       r:   rÏ  zFTestIntrinsic.test_void_return.<locals>.non_void_func.<locals>.codegen&  r  r9   )r	   r|   rÒ  s       r:   Únon_void_funcz5TestIntrinsic.test_void_return.<locals>.non_void_func"  s%   € ä—+‘+œeŸk™kÓ*ˆCòð ˜�<Ðr9   Tr€  c                  ó   •—  ‰ d«       y©Nr/   r   r8   )rÓ  s   €r:   Úcall_void_funcz6TestIntrinsic.test_void_return.<locals>.call_void_func+  s   ø€ á�aŒLØr9   c                  ó   •—  ‰ d«       yrØ  r8   )rÖ  s   €r:   Úcall_non_void_funcz:TestIntrinsic.test_void_return.<locals>.call_non_void_func0  s   ø€ á˜!ÔØr9   r   Nznon-void function returns None)r$   r   r®  rÙ  r   rÚ  rÜ  r5  )rD   rÙ  rÛ  rö  rÖ  rÓ  s       @@r:   Útest_void_returnzTestIntrinsic.test_void_return  s­   ù€ ô 
ñ	 ó 
ð	 ô 
ñ	 ó 
ð	 ô 
�dÔ	ó	ó 
ð	ô 
�dÔ	ó	ó 
ð	ð
 	×Ñ™Ó)¨1Ô-à×Ñœ}Ô-°ÙÔ ÷ .à�‰Ð6¸¿¹¿¹ÕH÷ .Ð-ús   Á/B&Â&B/c                 ó  ‡ ‡‡‡— ddl m}m}m}m} ˆ fd„Šd„ Št        ‰d¬«      ˆfd„«       }d„ } |d	 ||«      |«      } ||«      Št        d
¬«      ˆˆfd„«       }t        j                  dt        j                  ¬«      }	t        «       5 }
 ||	«       |
j                  «       j                  «       }d	d	d	«       
j                  «        t        t        t         |	«      «      }‰ j#                  |«       y	# 1 sw Y   ŒExY w)zV
        Usecase test: custom reinterpret cast to turn int values to pointers
        r   )Ú	CFUNCTYPEÚPOINTERÚc_floatÚc_intc                 ó`   •‡ — t        ‰ t        j                  «      sJ ‚t        ˆ ˆfd„«       }|S )Nc                 ó´   •— ‰j                  | t        j                  «       t        |t        j
                  «      r ‰t        j                  «      }d„ }||fS y )Nc                 óh   — |\  }|j                   }| j                  |«      }|j                  ||«      S rJ   )r‚   Úget_value_typeÚinttoptr)rE   rR   r+   r„   ÚsrcÚrtypeÚllrtypes          r:   rÏ  z_TestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_caster.<locals>.unsafe_cast.<locals>.codegenM  s7   € Ø $™˜Ø )× 5Ñ 5˜Ø")×"8Ñ"8¸Ó"?˜Ø&×/Ñ/°°WÓ=Ð=r9   )r­  r   ÚContextr@   r	   rå   Úuintp)r�  rç  rƒ   rÏ  Úresult_typerD   s       €€r:   Úunsafe_castzNTestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_caster.<locals>.unsafe_castF  sI   ø€ à×%Ñ% i´·±Ô@Ü˜c¤5§=¡=Ô1Ù%¤e§k¡kÓ2�Cò>ð  ˜<Ð'ð 2r9   )r@   r	   ÚCPointerr$   )rì  rí  rD   s   ` €r:   Úunsafe_casterz9TestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_casterC  s1   ù€ Ü˜k¬5¯>©>Ô:Ð:Ð:äô(ó ð(ð Ðr9   c                 ó   — t        d«      ‚)Nznot callable from pythonrs   ©rç  s    r:   Úunsafe_get_ctypes_pointerzETestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_get_ctypes_pointerY  s   € Ü%Ð&@ÓAÐAr9   FrD  c                 ó”   •‡— t        | t        j                  «      r, ‰t        j                  | j                  «      «      Šˆfd„}|S y )Nc                 ó>   •—  ‰| j                   j                  ¬«      S )Nrñ  )Úctypesr)  )rÉ   rí  s    €r:   Ú
array_implzdTestIntrinsic.test_ll_pointer_cast.<locals>.array_impl_unsafe_get_ctypes_pointer.<locals>.array_impla  s   ø€ Ù&¨3¯:©:¯?©?Ô;Ð;r9   )r@   r	   rÀ   rî  rÁ   )Úarrtyperö  rí  rï  s     @€r:   Ú$array_impl_unsafe_get_ctypes_pointerzPTestIntrinsic.test_ll_pointer_cast.<locals>.array_impl_unsafe_get_ctypes_pointer\  s:   ù€ ä˜'¤5§;¡;Ô/Ù+¬E¯N©N¸7¿=¹=Ó,IÓJ�ô<ð "Ð!ð 0r9   c                 ó@   — t        |«      D ]  }t        | |   «       Œ y rJ   )r´   rá   )Úptrr  r»   s      r:   Úmy_c_fun_rawz8TestIntrinsic.test_ll_pointer_cast.<locals>.my_c_fun_rawg  s   € Ü˜1–X�Ü�c˜!‘f•ñ r9   NTr€  c                 ó<   •—  ‰| «      } ‰|| j                   «       y rJ   )rµ   )rÉ   rú  Úmy_c_funrò  s     €€r:   r  z/TestIntrinsic.test_ll_pointer_cast.<locals>.foop  s   ø€ á+¨CÓ0ˆCÙ�S˜#Ÿ(™(Õ#r9   rÿ  )rÁ   )rõ  rÞ  rß  rà  rá  r   r   r¢   r8  Úfloat32r   rå  rµ  Úcloserg  ÚmaprÛ  r®  )rD   rÞ  rß  rà  rá  rø  rû  Ú	prototyper  rÉ   Úbufr¹  r  rý  rï  rò  s   `            @@@r:   Útest_ll_pointer_castz"TestIntrinsic.test_ll_pointer_cast<  sá   û€ ÷ 	>Ó=ô	ò,	Bô 
Ð+°EÔ	:ó	"ó 
;ð	"ò	ñ ˜d¡G¨GÓ$4°eÓ<ˆ	Ù˜\Ó*ˆô 
�dÔ	ô	$ó 
ð	$ô
 �i‰i˜¤"§*¡*Ô-ˆÜÔ #Ù�ŒHØ—,‘,“.×+Ñ+Ó-ˆC÷ ð 	�	‰	ŒÜ”cœ#˜s“mÓ$ˆØ×Ñ˜ Õ%÷ Ðús   Â'C8Ã8Dc                 ó–  ‡— t         d„ «       Št        d¬«      ˆfd„«       }| j                   |d«      d«       t        j                  }t        |«      }t        j                  |«      }|dz  }| j                  |t        |«      «       t        j                  |«      }| j                  |t        |«      «       | j                   |d«       |d«      «       t        j                  ‰«      }| j                  |t        |«      «       t        j                  |«      }| j                  ‰|«       | j                  |t        |«      «       y)z9
        Test serialization of intrinsic objects
        c                 ó    — d„ } ||«      }||fS )Nc                 ó   — |d   S rD  r8   rÎ  s       r:   rÏ  zCTestIntrinsic.test_serialization.<locals>.identity.<locals>.codegen…  ó   € Ø˜A‘w�r9   r8   )rE   rv   rÏ  rƒ   s       r:   Úidentityz2TestIntrinsic.test_serialization.<locals>.identityƒ  s   € òñ �A“$ˆCØ˜�<Ðr9   Tr€  c                 ó   •—  ‰| «      S rJ   r8   )rv   r  s    €r:   r  z-TestIntrinsic.test_serialization.<locals>.fooŒ  s   ø€ á˜A“;Ðr9   r/   N)
r$   r   r®  r%   Ú_memor  ÚpickleÚdumpsÚloadsr‹  )	rD   r  ÚmemoÚ	memo_sizeÚserialized_fooÚfoo_rebuiltÚserialized_identityÚidentity_rebuiltr  s	           @r:   Útest_serializationz TestIntrinsic.test_serialization~  s  ø€ ô
 
ñ	 ó 
ð	 ô 
�dÔ	ó	ó 
ð	ð 	×Ñ™˜Q› Ô#ô ×ÑˆÜ˜“Iˆ	ô  Ÿ™ cÓ*ˆà�Q‰ˆ	Ø×Ñ˜¤C¨£IÔ.ä—l‘l >Ó2ˆØ×Ñ˜¤C¨£IÔ.à×Ñ™˜Q›¡¨Q£Ô0ô %Ÿl™l¨8Ó4Ðà×Ñ˜¤C¨£IÔ.ä!Ÿ<™<Ð(;Ó<Ðà�‰�hÐ 0Ô1à×Ñ˜¤C¨£IÕ.r9   c                 ó†  — d„ }t         j                  }t        |«      }t        d|«      }| j                  |j                  |«       t        j                  |«      }|dz  }| j                  |t        |«      «       ~| j                  |t        |«      «       t         j                  j                  «        |dz  }| j                  |t        |«      «       t        j                  |«      }| j                  |j                  |«       t        j                  |«      }| j                  |j                  |j                  «       y)z3
        Test deserialization of intrinsic
        c                 ó   — d„ } ||«      |fS )Nc                 ó   — |d   S rD  r8   rÎ  s       r:   rÏ  zATestIntrinsic.test_deserialization.<locals>.defn.<locals>.codegen²  r  r9   r8   )rE   rv   rÏ  s      r:   Údefnz0TestIntrinsic.test_deserialization.<locals>.defn±  s   € òñ �Q“4˜�=Ð r9   r  r/   N)r%   r
  r  r‹  Ú_defnr  r  r®  Ú_recentÚclearr  ÚassertIsNot)rD   r  r  r  ÚoriginalÚpickledÚrebuiltÚseconds           r:   Útest_deserializationz"TestIntrinsic.test_deserialization¬  sú   € ò
	!ô ×ÑˆÜ˜“Iˆ	ô ˜e TÓ*ˆØ�‰�h—n‘n dÔ+Ü—,‘,˜xÓ(ˆà�Q‰ˆ	Ø×Ñ˜¤C¨£IÔ.Øð 	×Ñ˜¤C¨£IÔ.ô 	×Ñ× Ñ Ô"Ø�Q‰ˆ	Ø×Ñ˜¤C¨£IÔ.ä—,‘,˜wÓ'ˆà×Ñ˜Ÿ™¨Ô-ô —‘˜gÓ&ˆØ�‰�g—m‘m V§\¡\Õ2r9   c                 ó`  — t         dt        fd„«       }| j                  d|j                  «       | j                  d|j                  «       | j                  d|j
                  «       | j                  dt        it        j                  |«      «       | j                  d|j                  «       y )NrK  c                 óV   — t        j                  t         j                  «      }d„ }||fS )úvoid_func docstringc                  ó   — y rJ   r8   rÎ  s       r:   rÏ  z@TestIntrinsic.test_docstring.<locals>.void_func.<locals>.codegenÛ  r  r9   rÐ  rÒ  s       r:   rÓ  z/TestIntrinsic.test_docstring.<locals>.void_funcÖ  s'   € ô —*‘*œUŸ[™[Ó)ˆCòð ˜�<Ðr9   znumba.tests.test_extendingrÓ  z/TestIntrinsic.test_docstring.<locals>.void_funcr$  )
r$   Úintr®  r6   r5   r7   ÚassertDictEqualÚinspectÚget_annotationsr¡  )rD   rÓ  s     r:   Útest_docstringzTestIntrinsic.test_docstringÔ  sš   € ä	ð	 ¤Cò 	 ó 
ð	 ð 	×ÑÐ5°y×7KÑ7KÔLØ×Ñ˜ i×&8Ñ&8Ô9Ø×ÑÐJØ"×/Ñ/ô	1à×Ñ˜c¤3˜Z¬×)@Ñ)@ÀÓ)KÔLØ×ÑÐ.°	×0AÑ0AÕBr9   N)r5   r6   r7   rÜ  r  r  r!  r*  r8   r9   r:   rÊ  rÊ    s"   „ ò(IòT@&òD,/ò\&3óPCr9   rÊ  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestRegisterJitablec                 ó”   ‡— t         d„ «       Šˆfd„} t        d¬«      |«      } |dd«      } |dd«      }| j                  ||«       y )Nc                 ó   — | |z   S rJ   r8   )rv   rŸ   s     r:   r  z.TestRegisterJitable.test_no_flags.<locals>.fooë  s   € à�q‘5ˆLr9   c                 ó   •—  ‰| |«      S rJ   r8   )rv   rŸ   r  s     €r:   rZ  z.TestRegisterJitable.test_no_flags.<locals>.barï  s   ø€ Ù�q˜!“9Ðr9   Tr€  r/   rˆ   )r&   r   r®  )rD   rZ  Úcbarr  r¹  r  s        @r:   Útest_no_flagsz!TestRegisterJitable.test_no_flagsê  sS   ø€ Ü	ñ	ó 
ð	ô	ð "Œs˜DÔ! #Ó&ˆá�Q˜“ˆÙ�1�a‹jˆØ×Ñ˜ Õ%r9   c                 ón  ‡— t        d¬«      d„ «       Šˆfd„}| j                   |d«      j                  «       g d¢«        t        d¬«      |«      }| j	                  t
        j                  «      5 } |d	«       d d d «       d
}| j                  |t        j                  «      «       y # 1 sw Y   Œ1xY w)NF)Ú_nrtc                 ó,   — t        j                  | «      S rJ   r…  )r  s    r:   r  z2TestRegisterJitable.test_flags_no_nrt.<locals>.fooù  s   € ä—9‘9˜Q“<Ðr9   c                 ó   •—  ‰| «      S rJ   r8   )r  r  s    €r:   rZ  z2TestRegisterJitable.test_flags_no_nrt.<locals>.barý  s   ø€ Ù�q“6ˆMr9   r¦  )r   r/   rˆ   Tr€  rˆ   úCOnly accept returning of array passed into the function as argument)
r&   r®  Útolistr   rÙ  r
   rÂ   rÚ  rÛ  rÜ  )rD   rZ  r0  rÝ  r5  r  s        @r:   Útest_flags_no_nrtz%TestRegisterJitable.test_flags_no_nrtø  sœ   ø€ Ü	˜uÔ	%ñ	 ó 
&ð	 ô	ð 	×Ñ™˜Q›Ÿ™›ª)Ô4à!Œs˜DÔ! #Ó&ˆØ×Ñœv×1Ñ1Ô2°fÙ�ŒG÷ 3ðð 	ð 	�‰�cœ3˜v×/Ñ/Ó0Õ1÷ 3Ð2ús   Á2	B+Â+B4N)r5   r6   r7   r1  r8  r8   r9   r:   r,  r,  é  s   „ ò&ó2r9   r,  c                   ó~   — e Zd Z ej                  edu d«      d„ «       Zd„ Z ej                  edu d«      d„ «       Zy)ÚTestImportCythonFunctionNz&Only run if SciPy >= 0.19 is installedc                 óì   ‡— t        dd«      }t        j                  t        j                  t        j                  «      } ||«      Š t	        d¬«      ˆfd„«      }| j                   |d«      d«       y )Núscipy.special.cython_specialÚj0Tr€  c                 ó   •—  ‰| «      S rJ   r8   )rv   Ú_j0s    €r:   rL  z@TestImportCythonFunction.test_getting_function.<locals>.<lambda>  s	   ø€ ©#¨a¬&r9   r   r/   )r'   rõ  rÞ  Úc_doubler   r®  )rD   ÚaddrÚfunctyper=  r?  s       @r:   Útest_getting_functionz.TestImportCythonFunction.test_getting_function  s]   ø€ ä*Ø*¨Dó
ˆô ×#Ñ#¤F§O¡O´V·_±_ÓEˆÙ�t‹nˆØŒS˜$ÔÓ 0Ó1ˆØ×Ñ™˜A› Õ"r9   c                 óè   — | j                  t        «      5 }t        dd«       d d d «       d}t        j                  |t        j                  «      «      }| j                  |«       y # 1 sw Y   ŒFxY w)NÚ
fakemoduleÚfakefunctionzNo module named '?fakemodule'?)rÙ  ÚImportErrorr'   ÚreÚmatchrÛ  rÜ  r�  )rD   rÝ  r5  rI  s       r:   Útest_missing_modulez,TestImportCythonFunction.test_missing_module  sZ   € Ø×Ñœ{Ô+¨vÜ'¨°nÔE÷ ,ð /ˆÜ—‘˜œc &×"2Ñ"2Ó3Ó4ˆØ×Ñ˜UÕ#÷ ,Ð+ús   –A(Á(A1c                 ó¾   — | j                  t        «      5 }t        dd«       d d d «       d}| j                  |t	        j
                  «      «       y # 1 sw Y   Œ1xY w)Nr<  r  zINo function 'foo' found in __pyx_capi__ of 'scipy.special.cython_special')rÙ  r±   r'   r®  rÛ  rÜ  )rD   rÝ  r5  s      r:   Útest_missing_functionz.TestImportCythonFunction.test_missing_function  sT   € à×ÑœzÔ*¨fÜ'Ø.°ô÷ +ð
-ð 	ð 	×Ñ˜œc &×"2Ñ"2Ó3Õ4÷ +Ð*ús   –AÁA)	r5   r6   r7   ÚunittestÚskipIfÚscrC  rJ  rL  r8   r9   r:   r:  r:    sS   „ Ø€X‡_�_�R˜4�ZÐ!IÓJñ#ó Kð#ò$ð €X‡_�_�R˜4�ZÐ!IÓJñ	5ó Kñ	5r9   r:  Úmethod_jit_option_check_nrtr3  T©Újit_optionsc                 ó   — d„ }|S )Nc                 ó,   — t        j                  d«      S ©Nrÿ  r…  rz  s    r:   r  z+ov_method_jit_option_check_nrt.<locals>.imp0  ó   € Ü�y‰y˜‹}Ðr9   r8   r{  s     r:   Úov_method_jit_option_check_nrtrW  ,  ó   € òð €Jr9   Úmethod_jit_option_check_no_nrtFc                 ó   — d„ }|S )Nc                 ó,   — t        j                  d«      S rU  r…  rz  s    r:   r  z.ov_method_jit_option_check_no_nrt.<locals>.imp:  rV  r9   r8   r{  s     r:   Ú!ov_method_jit_option_check_no_nrtr\  6  rX  r9   Úattr_jit_option_check_nrtc                 ó   — d„ }|S )Nc                 ó,   — t        j                  d«      S rU  r…  rz  s    r:   r  z)ov_attr_jit_option_check_nrt.<locals>.impD  rV  r9   r8   r{  s     r:   Úov_attr_jit_option_check_nrtr`  @  rX  r9   Úattr_jit_option_check_no_nrtc                 ó   — d„ }|S )Nc                 ó,   — t        j                  d«      S rU  r…  rz  s    r:   r  z,ov_attr_jit_option_check_no_nrt.<locals>.impN  rV  r9   r8   r{  s     r:   Úov_attr_jit_option_check_no_nrtrd  J  rX  r9   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestJitOptionsNoNRTc                 óÊ   — d}| j                  t        j                  «      5 } ||i |¤Ž d d d «       | j                  |t	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nr6  )rÙ  r
   rÂ   rÚ  rÛ  rÜ  )rD   Úfuncr„   rÖ  r5  rÝ  s         r:   Úcheck_error_no_nrtz&TestJitOptionsNoNRT.check_error_no_nrtW  sX   € ð'ð 	ð ×Ñœv×1Ñ1Ô2°fÙ�$Ð!˜&Ò!÷ 3à�‰�cœ3˜v×/Ñ/Ó0Õ1÷ 3Ð2ús   ¢	AÁA"c                 óÎ   ‡— d„ Št        ‰d|i¬«      d„ «       }t        ˆfd„«       }|r+| j                   |«       t        j                  d«      «       y | j                  |«       y )Nc                  ó,   — t        j                  d«      S rU  r…  r8   r9   r:   Údummyz8TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.dummyb  s   € Ü—9‘9˜R“=Ð r9   r3  rQ  c                  ó   — d„ } | S )Nc                  ó,   — t        j                  d«      S rU  r…  r8   r9   r:   rl  zJTestJitOptionsNoNRT.no_nrt_overload_check.<locals>.ov_dummy.<locals>.dummyg  s   € Ü—y‘y “}Ð$r9   r8   ©rl  s    r:   Úov_dummyz;TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.ov_dummye  s   € ò%ð ˆLr9   c                  ó   •—  ‰ «       S rJ   r8   ro  s   €r:   r  z6TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.fool  s
   ø€ á“7ˆNr9   rÿ  )r   r   r‚  r¢   r8  ri  )rD   Úflagrp  r  rl  s       @r:   Úno_nrt_overload_checkz)TestJitOptionsNoNRT.no_nrt_overload_checka  sh   ø€ ò	!ô 
�% f¨d ^Ô	4ñ	ó 
5ð	ô 
ó	ó 
ð	ñ Ø×#Ñ#¡C£E¬2¯9©9°R«=Õ9à×#Ñ# CÕ(r9   c                 óH   — | j                  d«       | j                  d«       y )NTF)rs  rˆ  s    r:   Útest_overload_no_nrtz(TestJitOptionsNoNRT.test_overload_no_nrtu  s   € Ø×"Ñ" 4Ô(Ø×"Ñ" 5Õ)r9   c                 ó¾   — t         d„ «       }| j                   |t        «      t        j                  d«      «       t         d„ «       }| j                  |t        «       y )Nc                 ó"   — | j                  «       S rJ   )rP  ru   s    r:   Úudtz<TestJitOptionsNoNRT.test_overload_method_no_nrt.<locals>.udtz  s   € à×0Ñ0Ó2Ð2r9   rÿ  c                 ó"   — | j                  «       S rJ   )rY  ru   s    r:   rx  z<TestJitOptionsNoNRT.test_overload_method_no_nrt.<locals>.udt€  s   € à×3Ñ3Ó5Ð5r9   ©r   r‚  rH   r¢   r8  ri  ©rD   rx  s     r:   Útest_overload_method_no_nrtz/TestJitOptionsNoNRT.test_overload_method_no_nrty  sV   € Ü	ñ	3ó 
ð	3ð 	×Ñ¡¤G£¬b¯i©i¸«mÔ<ä	ñ	6ó 
ð	6ð 	×Ñ ¤WÕ-r9   c                 ó¾   — t         d„ «       }| j                   |t        «      t        j                  d«      «       t         d„ «       }| j                  |t        «       y )Nc                 ó   — | j                   S rJ   )r]  ru   s    r:   rx  z?TestJitOptionsNoNRT.test_overload_attribute_no_nrt.<locals>.udt‡  s   € à×.Ñ.Ð.r9   rÿ  c                 ó   — | j                   S rJ   )ra  ru   s    r:   rx  z?TestJitOptionsNoNRT.test_overload_attribute_no_nrt.<locals>.udt�  s   € à×1Ñ1Ð1r9   rz  r{  s     r:   Útest_overload_attribute_no_nrtz2TestJitOptionsNoNRT.test_overload_attribute_no_nrt†  sV   € Ü	ñ	/ó 
ð	/ð 	×Ñ¡¤G£¬b¯i©i¸«mÔ<ä	ñ	2ó 
ð	2ð 	×Ñ ¤WÕ-r9   N)r5   r6   r7   ri  rs  ru  r|  r€  r8   r9   r:   rf  rf  T  s   „ ò2ò)ò(*ò.ó.r9   rf  c                   ó6   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚTestBoxingCallingJITc                 óŒ   •— t         ‰| �  «        t        d«      }|\  | _        | _        | _        | j	                  «       | _        y )Nro   )rV  ÚsetUprn   rf   rb   rh   Údyn_type)rD   ÚmanyrY  s     €r:   r„  zTestBoxingCallingJIT.setUp•  s7   ø€ Ü‰‰ŒÜ& zÓ2ˆØ=AÑ:ˆÔ˜$œ,¨Ô(:ØŸ™›ˆ�r9   c                 ó  ‡‡‡— dŠdŠt         ˆfd„«       Št        | j                  «      ˆˆfd„«       }t        | j                  «      d„ «       }t        d„ «       } || j
                  «      }| j                  |‰‰z   «       y )Nrd  ré   c                 ó.   •— ˆfd„}t        ||«      }||fS )Nc                 óN   •— |\  }|j                  ||j                  ‰«      «      S rJ   ©rô   r]  ©rE   rR   rƒ   r„   rL   Úmagic_offsets        €r:   r  zKTestBoxingCallingJIT.test_unboxer_basic.<locals>.my_intrinsic.<locals>.impl¤  ó$   ø€ Ø‘�Ø—{‘{ 3¨¯©°Ó(>Ó?Ð?r9   ©r+   ©r�  rL   r  rƒ   rŒ  s       €r:   Úmy_intrinsicz=TestBoxingCallingJIT.test_unboxer_basic.<locals>.my_intrinsic¡  ó!   ø€ ô@ô ˜C Ó%ˆCØ˜�9Ðr9   c                 ó  •— ˆ	fd„}|j                   j                  t        j                  ‰«      g}t	        t        j
                  t        j                  «      }|j                  j                  |||«      \  }}t        ||¬«      S )Nc                 ó   •—  ‰| «      S rJ   r8   ©rv   r�  s    €r:   ÚbridgezHTestBoxingCallingJIT.test_unboxer_basic.<locals>.unboxer.<locals>.bridge®  s   ø€ ñ $ A“Ð&r9   ©Úis_error©	rE   rQ   r	   Úintpr+   Úvoidptrr™   Úcall_jit_coder#   )
r[   r\   rM   r•  r„   rƒ   r—  r¶   Úmagic_tokenr�  s
           €€r:   Úunboxerz8TestBoxingCallingJIT.test_unboxer_basic.<locals>.unboxer«  sd   ø€ ô'ð
 —I‘I×*Ñ*¬5¯:©:°{ÓCÐDˆDÜœEŸM™M¬5¯:©:Ó6ˆCØŸG™G×1Ñ1°&¸#¸tÓD‰MˆH�cÜ˜s¨XÔ6Ð6r9   c                 óŒ   — |j                   j                  |t        j                  «      }|j                  j                  |«      S rJ   ©rR   Úptrtointr   Úintp_tr™   Úlong_from_ssize_t©r[   rL   rM   r¶   s       r:   Úboxerz6TestBoxingCallingJIT.test_unboxer_basic.<locals>.boxer¸  ó3   € ð —)‘)×$Ñ$ S¬'¯.©.Ó9ˆCØ—7‘7×,Ñ,¨SÓ1Ð1r9   c                 ó   — | S rJ   r8   ru   s    r:   Úpassthruz9TestBoxingCallingJIT.test_unboxer_basic.<locals>.passthru¾  ó   € àˆHr9   ©r$   r"   rf   r!   r   r…  r®  )rD   r�  r¤  r§  r÷  rŒ  rœ  r�  s        @@@r:   Útest_unboxer_basicz'TestBoxingCallingJIT.test_unboxer_basic›  s˜   ú€ ð ˆØˆä	ó	ó 
ð	ô 
ˆt×ÑÓ	 ô
	7ó 
!ð
	7ô 
ˆT×ÑÓ	ñ	2ó 
ð	2ô
 
ñ	ó 
ð	ñ �t—}‘}Ó%ˆØ×Ñ˜˜k¨LÑ8Õ9r9   c                 óJ  — t        | j                  «      d„ «       }t        | j                  «      d„ «       }t        d„ «       }| j	                  t
        «      5 } || j                  «       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                 ó  — d„ }|j                   j                  t        j                  d«      g}t	        t        j
                  t        j                  «      }|j                  j                  |||«      \  }}t        ||¬«      S )Nc                 ó&   — | dkD  rt        d«      ‚| S )Nr   úcannot be x > 0©r±   ru   s    r:   r•  zHTestBoxingCallingJIT.test_unboxer_raise.<locals>.unboxer.<locals>.bridgeÊ  ó   € Ø�q’5Ü$Ð%6Ó7Ð7Ø�r9   r/   r–  r˜  )r[   r\   rM   r•  r„   rƒ   r—  r¶   s           r:   r�  z8TestBoxingCallingJIT.test_unboxer_raise.<locals>.unboxerÇ  sc   € òð
 —I‘I×*Ñ*¬5¯:©:°qÓ9Ð:ˆDÜœEŸM™M¬5¯:©:Ó6ˆCØŸG™G×1Ñ1°&¸#¸tÓD‰MˆH�cÜ˜s¨XÔ6Ð6r9   c                 óŒ   — |j                   j                  |t        j                  «      }|j                  j                  |«      S rJ   rŸ  r£  s       r:   r¤  z6TestBoxingCallingJIT.test_unboxer_raise.<locals>.boxerÔ  r¥  r9   c                 ó   — | S rJ   r8   ru   s    r:   r§  z9TestBoxingCallingJIT.test_unboxer_raise.<locals>.passthruÚ  r¨  r9   r®  ©
r"   rf   r!   r   rÙ  r±   r…  rÚ  rÛ  rÜ  ©rD   r�  r¤  r§  rÝ  s        r:   Útest_unboxer_raisez'TestBoxingCallingJIT.test_unboxer_raiseÅ  sš   € ä	ˆt×ÑÓ	 ñ
	7ó 
!ð
	7ô 
ˆT×ÑÓ	ñ	2ó 
ð	2ô
 
ñ	ó 
ð	ð ×ÑœzÔ*¨fÙ�T—]‘]Ô#÷ +à�‰Øœs 6×#3Ñ#3Ó4õ	
÷ +Ð*úó   ÁBÂB"c                 ó  ‡‡‡— dŠdŠt         ˆfd„«       Št        | j                  «      d„ «       }t        | j                  «      ˆˆfd„«       }t        d„ «       } || j
                  «      }| j                  |‰‰z   «       y )Nrd  i8  c                 ó.   •— ˆfd„}t        ||«      }||fS )Nc                 óN   •— |\  }|j                  ||j                  ‰«      «      S rJ   rŠ  r‹  s        €r:   r  zCTestBoxingCallingJIT.test_boxer.<locals>.my_intrinsic.<locals>.implì  r�  r9   rŽ  r�  s       €r:   r�  z5TestBoxingCallingJIT.test_boxer.<locals>.my_intrinsicé  r‘  r9   c                 óH   — t        |j                  j                  «       «      S rJ   rX   rZ   s      r:   r�  z0TestBoxingCallingJIT.test_boxer.<locals>.unboxeró  ó   € ä˜qŸy™y×8Ñ8Ó:Ó;Ð;r9   c                 ó*  •— ˆ	fd„}|j                   j                  t        j                  ‰«      g}t	        t        j                  t        j                  «      }|j
                  j                  |||«      \  }}|j
                  j                  |«      S )Nc                 ó   •—  ‰| «      S rJ   r8   r”  s    €r:   r•  z>TestBoxingCallingJIT.test_boxer.<locals>.boxer.<locals>.bridgeú  s   ø€ Ù# A“Ð&r9   )rE   rQ   r	   r™  r+   r™   r›  r¢  )
r[   rL   rM   r•  r„   rƒ   r—  r¶   rœ  r�  s
           €€r:   r¤  z.TestBoxingCallingJIT.test_boxer.<locals>.boxer÷  sl   ø€ ô'ð —I‘I×*Ñ*¬5¯:©:°{ÓCÐDˆDÜœEŸJ™J¬¯
©
Ó3ˆCØŸG™G×1Ñ1°&¸#¸tÓD‰MˆH�cØ—7‘7×,Ñ,¨SÓ1Ð1r9   c                 ó   — | S rJ   r8   ru   s    r:   r§  z1TestBoxingCallingJIT.test_boxer.<locals>.passthru  r¨  r9   r©  )rD   r�  r¤  r§  ÚrrŒ  rœ  r�  s        @@@r:   Ú
test_boxerzTestBoxingCallingJIT.test_boxerä  s–   ú€ àˆØˆä	ó	ó 
ð	ô 
ˆt×ÑÓ	 ñ	<ó 
!ð	<ô 
ˆT×ÑÓ	ô	2ó 
ð	2ô 
ñ	ó 
ð	ñ �T—]‘]Ó#ˆØ×Ñ˜˜K¨,Ñ6Õ7r9   c                 óJ  — t        | j                  «      d„ «       }t        | j                  «      d„ «       }t        d„ «       }| j	                  t
        «      5 } || j                  «       d d d «       | j                  dt        j                  «      «       y # 1 sw Y   Œ/xY w)Nc                 óH   — t        |j                  j                  «       «      S rJ   rX   rZ   s      r:   r�  z6TestBoxingCallingJIT.test_boxer_raise.<locals>.unboxer  r»  r9   c                 ó�  — d„ }|j                   j                  t        j                  d«      g}t	        t        j                  t        j                  «      }|j
                  j                  |||«      \  }}t        j                  |j                  |j
                  j                  d¬«      }|j                  j                  |j                  j                  |«      «      5  |j
                  j                  |«      }	|j                  j                  |	|«       d d d «       |j                  j                  |«      S # 1 sw Y   Œ$xY w)Nc                 ó&   — | dkD  rt        d«      ‚| S )Nr   úcannot do x > 0r¯  ru   s    r:   r•  zDTestBoxingCallingJIT.test_boxer_raise.<locals>.boxer.<locals>.bridge  r°  r9   r/   T)Úzfill)rE   rQ   r	   r™  r+   r™   r›  r   Úalloca_oncerR   ÚpyobjÚif_thenÚnot_r¢  ÚstoreÚload)
r[   rL   rM   r•  r„   rƒ   r—  r¶   Úretvalr\   s
             r:   r¤  z4TestBoxingCallingJIT.test_boxer_raise.<locals>.boxer  sÞ   € òð
 —I‘I×*Ñ*¬5¯:©:°qÓ9Ð:ˆDÜœEŸJ™J¬¯
©
Ó3ˆCØŸG™G×1Ñ1°&¸#¸tÓD‰MˆH�cä×(Ñ(¨¯©°A·G±G·M±MÈÔNˆFØ—‘×"Ñ" 1§9¡9§>¡>°(Ó#;Õ<Ø—g‘g×/Ñ/°Ó4�Ø—	‘	—‘  VÔ,÷ =ð —9‘9—>‘> &Ó)Ð)÷ =Ð<ús   Ã!8D<Ä<Ec                 ó   — | S rJ   r8   ru   s    r:   r§  z7TestBoxingCallingJIT.test_boxer_raise.<locals>.passthru   r¨  r9   rÅ  r³  r´  s        r:   Útest_boxer_raisez%TestBoxingCallingJIT.test_boxer_raise	  sš   € ä	ˆt×ÑÓ	 ñ	<ó 
!ð	<ô 
ˆT×ÑÓ	ñ	*ó 
ð	*ô  
ñ	ó 
ð	ð ×ÑœzÔ*¨fÙ�T—]‘]Ô#÷ +à�‰Øœs 6×#3Ñ#3Ó4õ	
÷ +Ð*úr¶  )	r5   r6   r7   r„  rª  rµ  rÀ  rÏ  rm  rn  s   @r:   r‚  r‚  ”  s   ø„ ô'ò(:òT
ò>#8öJ
r9   r‚  c                  ó   — y rJ   r8   ru   s    r:   Úwith_objmode_cache_ov_examplerÑ  +  s   € ð 	r9   c                   ó\   — e Zd ZdZdZd„ Zd„ Zd„ Zed„ «       Z	ed„ «       Z
ed„ «       Zd	„ Zy
)ÚTestCachingOverloadObjmodezTTest caching of the use of overload implementations that use
    `with objmode`
    Fc                 óL   — t        j                  dt        j                  «       y )NÚerror)ÚwarningsÚsimplefilterr
   ÚNumbaWarningrˆ  s    r:   r„  z TestCachingOverloadObjmode.setUp8  s   € Ü×Ñ˜g¤v×':Ñ':Õ;r9   c                 ó,   — t        j                  «        y rJ   )rÖ  Úresetwarningsrˆ  s    r:   ÚtearDownz#TestCachingOverloadObjmode.tearDown;  s   € Ü×ÑÕ r9   c                 óš  ‡‡— t        | j                  j                  «      }t        d|«      5  d„ Šˆfd„Št	        t
        «      ˆfd„«       }t        d¬«      d„ «       } ‰d«      } |d«      }| j                  ||«        t        d¬«      |j                  «      } |d«      }| j                  ||«       d d d «       y # 1 sw Y   y xY w)	Nr©  c                 óp   — t        j                  | «      | z  }t         j                  j                  |«      S rJ   )r¢   r8  ÚlinalgÚnorm)rv   rÉ   s     r:   ÚrealworkzJTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.realworkB  s'   € ä—i‘i “l QÑ&�Ü—y‘y—~‘~ cÓ*Ð*r9   c                 ó   •—  ‰| «      S rJ   r8   )rv   rà  s    €r:   Úpython_codezMTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.python_codeG  s   ø€ á “{Ð"r9   c                 ó   •— ˆfd„}|S )Nc                 ó\   •— t        d¬«      5   ‰| «      }d d d «       |S # 1 sw Y   S xY w©Nr�  )rŸ   ©r   )rv   rŸ   râ  s     €r:   r  zqTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>._ov_with_objmode_cache_ov_example.<locals>.implM  s)   ø€ Ü  9Ö-Ù'¨›N˜÷ .à�H÷ .à�Hús   Ž	!¡+r8   )rv   r  râ  s     €r:   Ú!_ov_with_objmode_cache_ov_examplezcTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>._ov_with_objmode_cache_ov_exampleK  s   ø€ ôð
 �r9   T©r¯  c                 ó   — t        | «      S rJ   )rÑ  ru   s    r:   ÚtestcasezJTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.testcaseT  s   € ä4°QÓ7Ð7r9   ré   )	r   rY  r5   r   r   rÑ  r   r®  Úpy_func)	rD   rÈ  rç  rê  r  r¹  Útestcase_cachedrâ  rà  s	          @@r:   Útest_caching_overload_objmodez8TestCachingOverloadObjmode.test_caching_overload_objmode>  s¿   ù€ Ü" 4§>¡>×#:Ñ#:Ó;ˆ	Ü˜[¨)Õ4ò+ô
#ô Ô3Ó4óó 5ðô ˜Ôñ8ó ð8ñ ˜c“]ˆFÙ˜3“-ˆCØ×Ñ˜S &Ô)à.œd¨Ô.¨x×/?Ñ/?Ó@ˆOÙ! #Ó&ˆCØ×Ñ˜S &Ô)÷= 5×4Ñ4ús   ®B
CÃC
c                 ó²   ‡‡— d„ Šd„ Št        ‰«      ˆfd„«       }t        d¬«      ˆfd„«       } |«       }|j                  «       }||k7  rt        d«      ‚|S )Nc                 ó2   — t        j                  | |z   «      S rJ   ©r¢   Úsumr™  s     r:   Údo_thiszGTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.do_thisb  ó   € Ü—6‘6˜!˜a™%“=Ð r9   c                 ó2   — t        j                  | |z   «      S rJ   rð  r™  s     r:   Údo_somethingzLTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.do_somethinge  ró  r9   c                 ó   •— ˆfd„}|S )Nc                 ó^   •— t        d¬«      5   ‰| |«      }d d d «       |S # 1 sw Y   S xY wrå  ræ  )rK  r  rŸ   rò  s      €r:   Ú_do_something_implzqTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.overload_do_something.<locals>._do_something_implj  s+   ø€ Ü˜yÖ)Ù  1›�A÷ *à�÷ *à�ús   Ž
"¢,r8   )rK  r  rø  rò  s      €r:   Úoverload_do_somethingzUTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.overload_do_somethingh  s   ø€ ôð &Ð%r9   Trè  c                  ój   •— t        j                  d«      } t        j                  d«      } ‰| |«      S )NrV  r…  )rK  r  rõ  s     €r:   Útest_cachingzLTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.test_cachingp  s*   ø€ ä—	‘	˜"“ˆAÜ—	‘	˜"“ˆAÙ  1Ó%Ð%r9   zincorrect result)r   r   rë  rŸ  )r†  rù  rû  r¹  r  rõ  rò  s        @@r:   Úcheck_objmode_cache_ndarrayz6TestCachingOverloadObjmode.check_objmode_cache_ndarray`  sq   ù€ ò	!ò	!ô 
�,Ó	ó	&ó 
 ð	&ô 
�DÔ	ó	&ó 
ð	&ñ
 ‹nˆØ×%Ñ%Ó'ˆð �&Š=Ü Ð!3Ó4Ð4ØÐr9   c                 ó$   — | j                  «        y rJ   )rü  )r†  s    r:   Ú*populate_objmode_cache_ndarray_check_cachezETestCachingOverloadObjmode.populate_objmode_cache_ndarray_check_cache~  s   € à×'Ñ'Õ)r9   c                 óØ   — | j                  «       }t        |j                  j                  «      dk7  rt	        d«      ‚t        |j                  j
                  «      dk  rt	        d«      ‚y )Nr   zunexpected cache misszunexpected missing cache hit)rü  r  ÚstatsÚcache_missesrŸ  Ú
cache_hits)r†  Údisps     r:   Ú'check_objmode_cache_ndarray_check_cachezBTestCachingOverloadObjmode.check_objmode_cache_ndarray_check_cache‚  s[   € à×.Ñ.Ó0ˆÜˆt�z‰z×&Ñ&Ó'¨1Ò,Ü Ð!8Ó9Ð9Üˆt�z‰z×$Ñ$Ó%¨Ò*Ü Ð!?Ó@Ð@ð +r9   c                 ó  — t        | j                  j                  «      }t        d|«      5  t	        | j
                  |«       t	        | j                  |«      }d d d «       | j                  d   d«       y # 1 sw Y   ŒxY w)Nr©  r¿  r   )r   rY  r5   r   r   rþ  r  r®  )rD   rÈ  r¶   s      r:   Ú test_check_objmode_cache_ndarrayz;TestCachingOverloadObjmode.test_check_objmode_cache_ndarrayŠ  sp   € ô # 4§>¡>×#:Ñ#:Ó;ˆ	Ü˜[¨)Õ4ä+Ø×?Ñ?Àôô 2Ø×<Ñ<¸ióˆC÷ 5ð 	×Ñ˜˜Z™¨!Õ,÷ 5Ð4ús   ¬-A7Á7B N)r5   r6   r7   r¡  rÆ  r„  rÛ  rí  Úclassmethodrü  rþ  r  r  r8   r9   r:   rÓ  rÓ  1  sb   „ ñð "Ðò<ò!ò *ðD ñó ðð: ñ*ó ð*ð ñAó ðAó-r9   rÓ  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestMiscc           	      ór  — d„ }| j                  t        |«      «       | j                  t        t        |«      «      «       | j                  t        t	        |«      «      «       | j                  t         t	        d¬«      |«      «      «       | j                  t         t        dd«      |«      «      «       y )Nc                  ó   — y rJ   r8   ru   s    r:   r  z$TestMisc.test_is_jitted.<locals>.fooœ  r:  r9   T)Úparallelzvoid(float64[:])z(m))r2  r(   r˜  r   r   r   )rD   r  s     r:   Útest_is_jittedzTestMisc.test_is_jitted›  s�   € ò	ð 	×Ñœ 3›Ô(Ø�‰œ	¤$ s£)Ó,Ô-Ø×Ñœ¤9¨S£>Ó2Ô3Ø×ÑœÐ#;¤9°dÔ#;¸CÓ#@ÓAÔBØ×ÑÜÐ<”kÐ"4°eÓ<¸SÓAÓBõ	
r9   c                 óÈ   — t         d„ «       }t         d„ «       }| j                   |«       |j                  «       «       | j                   |«       |j                  «       «       y )Nc                  óD   — t        j                  dd¬«      j                  S )Nré   éÈ  )r°   Ú
fill_value©r¢   Úfullr°   r8   r9   r:   Ústandard_orderz:TestMisc.test_overload_arg_binding.<locals>.standard_orderª  s   € ä—7‘7 °Ô5×;Ñ;Ð;r9   c                  óD   — t        j                  dd¬«      j                  S )Nr  ré   )r  r°   r  r8   r9   r:   Úreversed_orderz:TestMisc.test_overload_arg_binding.<locals>.reversed_order®  s   € ä—7‘7 c°Ô5×;Ñ;Ð;r9   )r   r‚  rë  )rD   r  r  s      r:   Útest_overload_arg_bindingz"TestMisc.test_overload_arg_binding§  sd   € ô 
ñ	<ó 
ð	<ô 
ñ	<ó 
ð	<ð 	×Ñ¡Ó 0°.×2HÑ2HÓ2JÔKØ×Ñ¡Ó 0°.×2HÑ2HÓ2JÕKr9   N)r5   r6   r7   r  r  r8   r9   r:   r	  r	  š  s   „ ò

óLr9   r	  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestOverloadPreferLiteralc                 ó¢  ‡‡— d„ Šd„ Šd„ } t        ‰d¬«      |«        t        ‰«      |«       t        ˆfd„«       } |d«      \  }}}| j                  |d«       | j                  |d	«       | j                  |d
«       t        ˆfd„«       } |d«      \  }}}| j                  |d«       | j                  |d	«       | j                  |d
«       y )Nc                  ó   — y rJ   r8   ru   s    r:   Ú
prefer_litz;TestOverloadPreferLiteral.test_overload.<locals>.prefer_lit¸  r:  r9   c                  ó   — y rJ   r8   ru   s    r:   Únon_litz8TestOverloadPreferLiteral.test_overload.<locals>.non_lit»  r:  r9   c                 ó’   — t        | t        j                  «      r)| j                  dk(  rd„ }|S t	        j
                  d«      ‚d„ }|S )Nr/   c                  ó   — yrc  r8   ru   s    r:   r  zATestOverloadPreferLiteral.test_overload.<locals>.ov.<locals>.implÂ  ó   € Ø%r9   úliteral valuec                 ó   — | dz  S ©Néd   r8   ru   s    r:   r  zATestOverloadPreferLiteral.test_overload.<locals>.ov.<locals>.implÈ  ó   € Ø˜s™7�Nr9   ©r@   r	   ÚIntegerLiteralÚliteral_valuer
   rÂ   r‘  s     r:   Úovz3TestOverloadPreferLiteral.test_overload.<locals>.ov¾  óC   € Ü˜!œU×1Ñ1Ô2à—?‘? aÒ'ò&à�Kä ×,Ñ,¨_Ó=Ð=ò#à�r9   T©Úprefer_literalc                 ó2   •—  ‰d«       ‰d«       ‰| «      fS ©Nr/   rˆ   r8   ©rv   r  s    €r:   Úcheck_prefer_litzATestOverloadPreferLiteral.test_overload.<locals>.check_prefer_litÏ  ó   ø€ á˜a“=¡*¨Q£-±¸A³Ð>Ð>r9   r¦  rd  éÈ   é,  c                 ó2   •—  ‰d«       ‰d«       ‰| «      fS r/  r8   ©rv   r  s    €r:   Úcheck_non_litz>TestOverloadPreferLiteral.test_overload.<locals>.check_non_litØ  ó   ø€ á˜1“:™w q›z©7°1«:Ð5Ð5r9   r%  )r   r   r®  )	rD   r*  r1  rK  r  rM   r7  r  r  s	          @@r:   Útest_overloadz'TestOverloadPreferLiteral.test_overload·  sÜ   ù€ ò	ò	ò	ð 	2Œ�¨DÔ1°"Ô5ØŒ�Ó˜"Ôä	ó	?ó 
ð	?ñ # 1Ó%‰ˆˆ1ˆaØ×Ñ˜˜FÔ#Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÔ ä	ó	6ó 
ð	6ñ   Ó"‰ˆˆ1ˆaØ×Ñ˜˜CÔ Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÕ r9   c                 óÆ  — d„ } t        t        dd¬«      |«        t        t        dd¬«      |«       t        d„ «       } |t        «       d«      \  }}}| j	                  |d	«       | j	                  |d
«       | j	                  |d«       t        d„ «       } |t        «       d«      \  }}}| j	                  |d«       | j	                  |d
«       | j	                  |d«       y )Nc                 ó’   — t        |t        j                  «      r)|j                  dk(  rd„ }|S t	        j
                  d«      ‚d„ }|S )Nr/   c                  ó   — yrc  r8   ©rD   rv   s     r:   r  zHTestOverloadPreferLiteral.test_overload_method.<locals>.ov.<locals>.implæ  r!  r9   r"  c                 ó   — |dz  S r$  r8   r=  s     r:   r  zHTestOverloadPreferLiteral.test_overload_method.<locals>.ov.<locals>.implì  r&  r9   r'  )rD   rv   r  s      r:   r*  z:TestOverloadPreferLiteral.test_overload_method.<locals>.ovâ  r+  r9   Úmethod_prefer_literalTr,  Úmethod_non_literalFc                 óf   — | j                  d«      | j                  d«      | j                  |«      fS r/  )r?  ©rl  rv   s     r:   r1  zHTestOverloadPreferLiteral.test_overload_method.<locals>.check_prefer_litú  s8   € ð ×+Ñ+¨AÓ.Ø×+Ñ+¨AÓ.Ø×+Ñ+¨AÓ.ðð r9   r¦  rd  r3  r4  c                 óf   — | j                  d«      | j                  d«      | j                  |«      fS r/  )r@  rB  s     r:   r7  zETestOverloadPreferLiteral.test_overload_method.<locals>.check_non_lit  s8   € ð ×(Ñ(¨Ó+Ø×(Ñ(¨Ó+Ø×(Ñ(¨Ó+ðð r9   r%  r|  )rD   r*  r1  rK  r  rM   r7  s          r:   Útest_overload_methodz.TestOverloadPreferLiteral.test_overload_methodá  s÷   € ò	ð	
ŒÜÐ0Øô	
ð ô	ð
	
ŒÜÐ-Ø ô	
ð ô	ô
 
ñ	ó 
ð	ñ #¤7£9¨aÓ0‰ˆˆ1ˆaØ×Ñ˜˜FÔ#Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÔ ä	ñ	ó 
ð	ñ  ¤£	¨1Ó-‰ˆˆ1ˆaØ×Ñ˜˜CÔ Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÕ r9   N)r5   r6   r7   r9  rD  r8   r9   r:   r  r  ¶  s   „ ò(!óT1!r9   r  c                   ó   — e Zd Zd„ Zy)ÚTestIntrinsicPreferLiteralc                 ó–  ‡‡— d„ } t        d¬«      |«      Š t        d¬«      |«      Št        ˆfd„«       } |d«      \  }}}| j                  |d«       | j                  |d«       | j                  |d	«       t        ˆfd
„«       } |d«      \  }}}| j                  |d«       | j                  |d«       | j                  |d	«       y )Nc                 óÎ   — t        t        j                  |«      }t        |t        j                  «      r+|j
                  dk(  rd„ }||fS t        j                  d«      ‚d„ }||fS )Nr/   c                 ón   — |j                   d   }| j                  |«      }t        j                  |d«      S )Nr   rd  )r„   rå  r   ÚConstant)rE   rR   r+   r„   Úatyperé  s         r:   rÏ  zJTestIntrinsicPreferLiteral.test_intrinsic.<locals>.intrin.<locals>.codegen  s1   € Ø )§¡¨qÑ 1˜Ø")×"8Ñ"8¸Ó"?˜Ü!Ÿ{™{¨7°FÓ;Ð;r9   r"  c                 ó’   — |j                   }| j                  |«      }t        j                  |d«      }|j	                  |d   |«      S )Nr%  r   )r‚   rå  r   rJ  Úmul)rE   rR   r+   r„   rK  ré  Úint_100s          r:   rÏ  zJTestIntrinsicPreferLiteral.test_intrinsic.<locals>.intrin.<locals>.codegen%  sB   € Ø%×1Ñ1�EØ%×4Ñ4°UÓ;�GÜ Ÿk™k¨'°3Ó7�GØ"Ÿ;™; t¨A¡w°Ó8Ð8r9   )r+   r	   r™  r@   r(  r)  r
   rÂ   )rE   rv   rƒ   rÏ  s       r:   Úintrinz9TestIntrinsicPreferLiteral.test_intrinsic.<locals>.intrin  sa   € äœEŸJ™J¨Ó*ˆCÜ˜!œU×1Ñ1Ô2à—?‘? aÒ'ò<ð  ˜<Ð'ä ×,Ñ,¨_Ó=Ð=ò9ð
 ˜G�|Ð#r9   Tr,  Fc                 ó2   •—  ‰d«       ‰d«       ‰| «      fS r/  r8   r0  s    €r:   r1  zCTestIntrinsicPreferLiteral.test_intrinsic.<locals>.check_prefer_lit/  r2  r9   r¦  rd  r3  r4  c                 ó2   •—  ‰d«       ‰d«       ‰| «      fS r/  r8   r6  s    €r:   r7  z@TestIntrinsicPreferLiteral.test_intrinsic.<locals>.check_non_lit8  r8  r9   r%  )r$   r   r®  )	rD   rO  r1  rK  r  rM   r7  r  r  s	          @@r:   Útest_intrinsicz)TestIntrinsicPreferLiteral.test_intrinsic  sÔ   ù€ ò	$ð* 4”Y¨dÔ3°FÓ;ˆ
Ø1”)¨5Ô1°&Ó9ˆä	ó	?ó 
ð	?ñ # 1Ó%‰ˆˆ1ˆaØ×Ñ˜˜FÔ#Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÔ ä	ó	6ó 
ð	6ñ   Ó"‰ˆˆ1ˆaØ×Ñ˜˜CÔ Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÕ r9   N)r5   r6   r7   rR  r8   r9   r:   rF  rF    s   „ ó)!r9   rF  c                   ó   — e Zd Zd„ Zy)ÚTestNumbaInternalOverloadsc                 óœ  ‡‡— dŠˆfd„Šˆˆfd„}t        d„ «      j                  d«       t        j                  j                  j
                  j                  «       }|j                  «        |j                  }|j                  «       D ]A  \  }}|j                  D ]-  }t        |dd«      sŒ ||j                  |j                  «       Œ/ ŒC y )Nr   c                 óÞ  •— | j                  d«      s»t        t        j                  | «      }t	        j
                  |«      r‹|j                  j                  «       }|D ]k  }|sŒ|j                  «       }|j                  | «      sŒ(| dk(  rd}d|› d�}i }	 t        |i |«       |j                  | «      }t	        j                  |«      c S  y y y # t        $ r ‰dk(  rt        d«       Y  y w xY w)NÚ_Úseedz
seed(seed)zdef z:
	passrˆ   z%... skipped as cannot parse signature)r¶  r_  r¢   Úrandomr(  Ú	isbuiltinr¡  rµ  ÚstripÚexecrq  r+   ÚSyntaxErrorrá   )rv   ÚthingÚdocstrÚlÚslÚ	fake_implÚfnÚDEBUGs          €r:   Úsig_from_np_randomz[TestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.sig_from_np_randomS  sè   ø€ Ø—<‘< Ô$Ü¤§	¡	¨1Ó-�Ü×$Ñ$ UÔ+Ø"Ÿ]™]×5Ñ5Ó7�FÛ#˜ÚØ!"§¡£˜BØ!Ÿ}™}¨QÕ/ð $%¨¢;Ø)5 Bà.2°2°$°iÐ,@ 	Ø$& ð
!AÜ$(¨°B¸Ô$:ð *+¯©¨q« BÜ+2×+<Ñ+<¸RÓ+@Ò$@ñ- $ð ,ð %øô$ (3ò !0à',°¢zÜ(-ð /:ô );â+/ð!0ús   ÂCÃC,Ã+C,c                 óè  •— ‰dk(  rt        d| › �«       d„ }d }	 t        j                  | «      }|��wt        j                  |«      }t        |j                  j                  «       «      }t        |j                  j                  «       «      }t        |d t        |«       |«      D ]ï  \  }	}
|	|
k7  sŒ|j                  |	   }|j                  |j                  k(  r‰dk(  rt        d«        y dt        |«      v r‰dk(  rt        d«        y | j                  r| j                  j!                  d	«      s: || |||«      }‰d
k7  r‰dk(  rt        d«       |rt        |«        y t        |«      ‚‰dk(  r$| j                  st        d«        y t        d«        y  ‰dk(  rt        d«       y y y # t        $ r= t	        | dd«      x}r*t	        t
        j                  |d«      x}r|| k(  r ‰|«      }Y �ŒÀw xY w)Nrˆ   z
Checking: c                 ó–  — g }| › dt        | d«      › d�}|j                  |«       |j                  d|› �«       |j                  d|› �«       t        j                  |«      d   }t        j                  |«      }|j                  t        j                  d   d«      }|j                  d	|› d
|› �«       ddj                  |«      z   }	|	S )Nz from module 'r6   z' has mismatched sig.z    - expected: z    -      got: r/   r   Ú zfrom Ú:Ú
)	r_  r`  r(  ÚgetsourcelinesÚgetfileÚreplaceÚnumbaÚ__path__r¾  )
rh  Úoverload_funcÚfunc_sigÚol_sigr5  rÀ  ÚlinenoÚ
tmpsrcfileÚsrcfileÚmsgstrs
             r:   Úcreate_messagezhTestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.checker.<locals>.create_messaget  sÈ   € Ø�Ø�v˜^¬G°D¸,Ó,GÐ+Hð I+ð +�à—
‘
˜1”Ø—
‘
Ð-¨h¨ZÐ8Ô9Ø—
‘
Ð-¨f¨XÐ6Ô7Ü ×/Ñ/°Ó>¸qÑA�Ü$Ÿ_™_¨]Ó;�
Ø$×,Ñ,¬U¯^©^¸AÑ->ÀÓC�Ø—
‘
˜U 7 )¨1¨V¨HÐ5Ô6Ø §	¡	¨#£Ñ.�Ø�r9   r5   Fz.... skipped as positional only arguments foundÚ*z... skipped as contains *argsrn  r   z... INVALIDz$... skipped as no __module__ presentz... skipped as Numba internalz... OK)rá   r(  r+   r±   r_  r¢   rY  rg  Ú
parametersrh  Úzipr  ÚkindÚPOSITIONAL_ONLYrÛ  r6   r¶  )rh  rp  rw  rq  ÚfnameÚ
maybe_funcrr  rv   rŸ   rK  r  rÅ  rv  rd  re  s                €€r:   ÚcheckerzPTestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.checkerp  sü  ø€ Ø˜ŠzÜ˜
 4 &Ð)Ô*òð ˆHðAÜ"×,Ñ,¨TÓ2�ð Ñ#Ü ×*Ñ*¨=Ó9�Ü˜×,Ñ,×1Ñ1Ó3Ó4�Ü˜×*Ñ*×/Ñ/Ó1Ó2�Ü  '¤3 q£6 
¨AÖ.‘D�A�qØ˜A“vØ$×/Ñ/°Ñ2˜ØŸ6™6 Q×%6Ñ%6Ò6à$¨šzÜ %ð '8ô !9á!Ø ¤C¨£F™]Ø$¨šzÜ %Ð&EÔ FÙ!ð %)§O¢OØ(,¯©×(BÑ(BÀ7Ô(KÙ)7¸¸mØ8@À&ó*J à#(¨A¢:Ø',°¢zÜ(-¨mÔ(<Ù'-Ü(-¨f¬Ù$)ä*4°VÓ*<Ð$<à#(¨A¢:Ø+/¯?ª?Ü(-ð /8ô )9ñ !&ô ).Ð.MÔ(NÙ %ðG /ðJ  ’zÜ˜h�ð "ðS $øô ò Aä# D¨*°eÓ<Ð<�5Ð<Ü%,¬R¯Y©Y¸¸uÓ%EÐE�zÐEØ%¨Ò-á'9¸%Ó'@˜HúðAús   ›F+ Æ+AG1Ç0G1c                   ó   — y rJ   r8   r8   r9   r:   rL  zQTestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.<lambda>»  s   € �dr9   r8   Ú_overload_funcF)r   Úcompilern  Úcorer   rE   rê  r—  Ú_registriesÚitemsÚ	functionsr_  r‘   r�  )	rD   r  ÚtyctxÚregsÚkÚvÚitemrd  re  s	          @@r:   Ú$test_signatures_match_overloaded_apiz?TestNumbaInternalOverloads.test_signatures_match_overloaded_apiD  s£   ù€ ð ˆô	Aõ:G	(ôV 	‰]Ó×#Ñ# BÔ'Ü—
‘
×!Ñ!×)Ñ)×1Ñ1Ó3ˆØ�‰Œð × Ñ ˆØ—J‘J–L‰DˆAˆqØŸœ�Ü˜4Ð!1°5Õ9Ù˜DŸH™H d×&9Ñ&9Õ:ñ $ñ !r9   N)r5   r6   r7   rŒ  r8   r9   r:   rT  rT  B  s   „ ó@;r9   rT  Ú__main__rJ   )¯r(  r‰   ró   rã  r  r·  rõ  rÖ  rH  Únumpyr¢   Úllvmliter   rn  r   r   r   r   r   Ú
numba.corer	   r
   r   r   r   Únumba.core.typed_passesr   Únumba.core.registryr   Únumba.core.imputilsr   Únumba.tests.supportr   r   r   r   r   r   Únumba.core.errorsr   rM  Únumba.extendingr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   Únumba.core.typing.templatesr*   r+   r,   r-   r.   Úpdlike_usecaser0   r1   Úscipy.special.cython_specialÚspecialÚcython_specialrO  rG  ri   r3   rj   r=   rK   rH   rk   rN   rA   rT   rV   rl   r]   rn   rÛ   rê  Úmydummy_type_2rq   rw   r   rŒ  r{   r…   r}   r�   r�   r›   r    r£   r¥   rÅ   rÊ   r  rÓ   rô   rÜ   Údelitemræ   Úgetitemrë   Úsetitemrð   rõ   rø   Úiaddrü   rþ   r   r  r  r  r  r  r  r  r  r  r  r  r!  r$  r'  r+  r0  r3  r6  r;  r=  r@  rB  rM  rO  ÚCallablerQ  rp  rv  ri  r|  r~  r¤  rÓ  r¥  r§  r«  rÊ  r,  r:  rW  r\  r`  rd  rf  r‚  rÑ  rÓ  r	  r  rF  rT  r5   Úmainr8   r9   r:   Ú<module>r£     s
  ðÛ Û Û Û 
Û Û Û Û Û 	ã Ý ã ß <Õ <ß ?Õ ?Ý 8Ý *Ý .÷÷ õ ,Û ÷÷ ÷ ÷ ÷ ÷(õ ÷ *ðß-Ð-ô	ˆfô 	ô#�%—,‘,ô #ñ ˜9Ó%€Ù
‹)€ð €×Ñ�gÓñó ðñ ˆK˜Ÿ™Ó&ñ*ó 'ð*òð �ˆ{Ó ˜F×.Ñ.Ô /ñ €{Óñ4ó ð4ò/ñ" *AÀÓ)LÑ &€ˆh˜ñ €|Óñ4ó ð4óò	ð "‰]˜5Ó! +Ó.€
ñ ˆuÓÙˆu�e—j‘jÓ!ñ5ó "ó ð5ñ ˆu�e—k‘kÓ"ñDó #ðDð ô2Ð!ó 2ó ð2ñ
 ˆ|˜[Ó)ñ%ó *ð%òò ò!ñ 
ˆ%ƒñ*ó ð*ñb 
ˆ%ƒñó ðñ2 
ˆ#ƒñó ðñ 
ˆ(�,‰,Óñó ðñ 
ˆ(×
Ñ
Óñ"ó ð"ñ 
ˆ(×
Ñ
Óñ"ó ð"ñ 
ˆ(×
Ñ
Óñ"ó ð"ò$òñ 
ˆ(�-‰-Óñó ðò$òòòòñ �˜hÓ'ñó (ðòòòòòòòòòò%òòòñ 
Ð
Óñó ðòò
 ò	ñ ˆmÓô,Ð#ó ,ó ð,òô	ˆfô 	ô)�e—n’nô )ñD �Ó ô8˜×*Ñ*ó 8ó !ð8ñ ˆW‘o gÓ.Ô /ñ �Ó ñ%ó !ð%ñ 
ˆ"�&Š&Óñó ðô.
˜Hô .
ôb^I�Xô ^IôBI6˜Xô I6òX/ð ô%" ó %"ó ð%"òP
)ôUC�Hô UCôp 2˜(×+Ñ+ô  2ôF5˜x×0Ñ0ô 5ñ@ ØÐ.¸VÀT¸Nôñóðñ ØÐ1ÀÈ¸ôñóðñ ØÐ,¸6À4¸.ôñóðñ ØÐ/¸fÀe¸_ôñóðô=.˜(ô =.ô@T
˜8ô T
òn	ð ôe- ó e-ó ðe-ôPLˆxô Lô8\! ô \!ô~*! ô *!ôZB; ô B;ðJ ˆzÒØ€H‡M‚M…Oð øðKD ò Ø	ƒBðús   Â:	R ÒR(Ò'R(