ó
    „ñ:ii
 ã                   óD	  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r
S SKJr  S SKrS SKJrJrJrJrJr  S SKJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S SKJ r J!r!J"r"J#r#J$r$J%r%  S S	K&J'r'  S SK(r(S S
K)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;  S SK<J=r=J>r>J?r?J@r@JArA  SSKBJCrCJDrD   S SKEJFs  JGrH   " S S\J5      rK " S S\R˜                  5      rM\M" S5      rN\K" 5       rO\*R                   " \K5      S 5       rQ\-" \M\R¤                  5      S 5       rSS rT\2" \M5      " \1Rª                  5        \4" \M5      S 5       rVS rW\W" S5      u  rXrYrZ\4" \X5      S 5       r[S~S jr\S r]\+" \\5      " \]5      r^\," \\5      \," \\\R¾                  5      S 5       5       r`\," \\\RÂ                  5      S 5       rb\? " S S\=5      5       rc\," S \M5      S! 5       rdS" reS# rfS$ rg\." \e5      S% 5       rh\." \e5      S& 5       ri\." \j5      S' 5       rk\." \RØ                  5      S( 5       rm\." \RÜ                  5      S) 5       ro\." \Rà                  5      S* 5       rq\." \Rä                  5      S+ 5       rsS, rtS- ru\." \Rì                  5      S. 5       rwS/ rxS0 ryS1 rzS2 r{S3 r|\0" \MS45      S5 5       r}S6 r~S7 rS8 r€S9 r�S: r‚S; rƒS< r„S= r…S> r†S? r‡S@ rˆSA r‰SB rŠ\." \Š5      SC 5       r‹SD rŒSE r�SF rŽ\@" \Ž5       " SG SH\A5      5       r�SI r� " SJ SK\J5      r‘ " SL SM\GR$                  5      r“\2" \“5       " SN SO\1Rª                  5      5       r”\@" \‘\“" \‘5      5        \" \“5      SP 5       r•\." \
GR,                  5      SQ 5       r— " SR SS\ 5      r˜ " ST SU\ 5      r™ " SV SW\ 5      ršSX r›\% " SY SZ\ 5      5       rœS[ r� " S\ S]\ 5      rž " S^ S_\(R@                  5      rŸ " S` Sa\(R@                  5      r \0" \MSbScSd0Se9Sf 5       r¡\0" \MSgScSh0Se9Si 5       r¢\/" \MSjScSd0Se9Sk 5       r£\/" \MSlScSh0Se9Sm 5       r¤ " Sn So\ 5      r¥ " Sp Sq\ 5      r¦Sr r§\% " Ss St\ 5      5       r¨ " Su Sv\ 5      r© " Sw Sx\ 5      rª " Sy Sz\ 5      r« " S{ S|\ 5      r¬\­S}:X  a  \(GR\                  " 5         gg! \I a    SrH GNÛf = f)é    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                   ó   • \ rS rSrSrg)ÚMyDummyéJ   © N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r5   ó    Ú]/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_extending.pyr3   r3   J   ó   † Úr<   r3   c                   ó   • \ rS rSrS rSrg)ÚMyDummyTypeéN   c                 óf   • [        U[        R                  5      (       a  SSKJn  UR
                  $ g )Nr   )Ú
Conversion)Ú
isinstancer	   ÚNumberÚnumba.core.typeconvrC   Úsafe)ÚselfÚcontextÚtotyrC   s       r=   Úcan_convert_toÚMyDummyType.can_convert_toO   s%   € Ü�dœEŸL™L×)Ñ)Ý6à—?‘?Ð"ð *r<   r5   N)r7   r8   r9   r:   rK   r;   r5   r<   r=   r@   r@   N   s   † õ#r<   r@   Úmydummyc                 ó   • [         $ ©N)Úmydummy_type)ÚvalÚcs     r=   Útypeof_mydummyrS   Z   s   € äÐr<   c                 ó&   • U R                  US5      $ )z*
Implicit conversion from MyDummy to int.
é*   )Úget_constant)rI   ÚbuilderÚfromtyrJ   rQ   s        r=   Úmydummy_to_numberrY   _   s   € ð
 ×Ñ  bÓ)Ð)r<   c                  ó   • [         $ rO   )rM   r5   r<   r=   Ú	get_dummyr[   g   s   € Ü€Nr<   c                 óH   • [        UR                  R                  5       5      $ rO   ©r#   rI   Úget_dummy_value©ÚtypÚobjrR   s      r=   Úunbox_indexrb   n   ó   € ä�q—y‘y×0Ñ0Ó2Ó3Ð3r<   c                 óè   ^•  " S S[         5      n " S S[        R                  5      nU" U 5      m[        R                  " U5      U4S j5       n[        U5      " [        R                  5        X!T4$ )Nc                   ó   • \ rS rSrSrg)Ú(base_dummy_type_factory.<locals>.DynTypeéx   r5   Nr6   r5   r<   r=   ÚDynTyperf   x   ó   † Úr<   rh   c                   ó   • \ rS rSrSrg)Ú,base_dummy_type_factory.<locals>.DynTypeTypeé{   r5   Nr6   r5   r<   r=   ÚDynTypeTyperk   {   ri   r<   rm   c                 ó   >• T$ rO   r5   )rQ   rR   Údyn_type_types     €r=   rS   Ú/base_dummy_type_factory.<locals>.typeof_mydummy€   s	   ø€ àÐr<   )Úobjectr	   ÚOpaquer   Úregisterr    r   ÚOpaqueModel)Únamerh   rm   rS   ro   s       @r=   Úbase_dummy_type_factoryrv   w   sh   ø€ ô”&ô ô”e—l‘lô ñ   Ó%€Mä×Ò˜'Ó"ôó #ðô �;Ô¤× 2Ñ 2Ô3Ø Ð.Ð.r<   Úmydummy2c                 óH   • [        UR                  R                  5       5      $ rO   r]   r_   s      r=   Úunbox_index2ry   ‹   rc   r<   c                 ó   • [         erO   ©ÚNotImplementedError©Úxs    r=   Úfunc1r   •   ó   € Ü
Ðr<   c                 ó   • SS jnU$ )Nc                 ó’   • U S [         R                  4;   a  [         R                  $ [        U [         R                  5      (       a  U $ g rO   )r	   ÚnoneÚint32rD   ÚFloatr}   s    r=   ÚtyperÚtype_func1_.<locals>.typerš   s8   € Ø�”u—z‘zÐ"Ó"ä—;‘;ÐÜ˜œ5Ÿ;™;×'Ñ'àˆHð (r<   rO   r5   )rI   r†   s     r=   Útype_func1_rˆ   ™   s   € ôð €Lr<   c                 ó:   • U R                  UR                  S5      $ ©NrU   )rV   Úreturn_type)rI   rW   ÚsigÚargss       r=   Úfunc1_nullaryrŽ   ¨   s   € ð ×Ñ §¡°Ó4Ð4r<   c                 ó,   • S nU R                  XX#5      $ )Nc                 ó4   • [         R                  " SU -  5      $ )Né   )ÚmathÚsqrtr}   s    r=   Ú
func1_implÚfunc1_unary.<locals>.func1_impl°   s   € Ü�yŠy˜˜Q™ÓÐr<   )Úcompile_internal)rI   rW   rŒ   r�   r”   s        r=   Úfunc1_unaryr—   ®   s   € ò ð ×#Ñ# G¸ÓCÐCr<   c                   ó@   • \ rS rSrSr\" \R                  \5      /r	Sr
g)Ú
PrintDummyéº   Ú
print_itemr5   N)r7   r8   r9   r:   Úkeyr+   r	   rƒ   rP   Úcasesr;   r5   r<   r=   r™   r™   º   s   † à
€CÙ�u—z‘z <Ó0Ð1ƒEr<   r™   r›   c                 óÐ   • Uu  nU R                  U5      nUR                  UR                  S5      5      nUR                  U5        UR	                  U5        U R                  5       $ )Nzhello!)Úget_python_apiÚunserializeÚserialize_objectÚprint_objectÚdecrefr^   )rI   rW   rŒ   r�   r~   ÚpyapiÚstrobjs          r=   Úprint_dummyr¦   À   s]   € à
�C€QØ×"Ñ" 7Ó+€EØ×Ñ˜u×5Ñ5°hÓ?Ó@€FØ	×Ñ�vÔØ	‡L�L�ÔØ×"Ñ"Ó$Ð$r<   c                 ó   • [         erO   r{   ©Úcondr~   Úys      r=   Úwherer«   Î   r€   r<   c                 ó0   • [         R                  " XU5      $ )z0
Wrap np.where() to allow for keyword arguments
)Únpr«   r¨   s      r=   Únp_wherer®   Ò   s   € ô �8Š8�D˜QÓÐr<   c                 ó   • [        XUS9$ )N)rª   r~   )r«   r¨   s      r=   Ú
call_wherer°   Ù   s   € Ü�˜aÑ Ð r<   c                 óè   • [        U [        R                  5      (       aS  UR                  UR                  :w  a  [        R
                  " S5      e[        S XU4 5       5      (       a  S nU$ S nU$ g)z
Implement where() for arrays.
ú"x and y should have the same dtypec              3   ó>   #   • U  H  oR                   S :H  v •  M     g7f)ÚCN)Úlayout)Ú.0Útys     r=   Ú	<genexpr>Ú(overload_where_arrays.<locals>.<genexpr>è   s   é € Ð7ª, B�y‰y˜CÖª,ùs   ‚c                 ó^  • U R                   nUR                   U:w  d  UR                   U:w  a  [        S5      e[        R                  " U5      nU R                  nUR                  nUR                  nUR                  n[        U R                  5       H  n	XY   (       a  Xi   OXy   X‰'   M     U$ )z-
Fast implementation for C-contiguous arrays
ú%all inputs should have the same shape)ÚshapeÚ
ValueErrorr­   Ú
empty_likeÚflatÚrangeÚsize)
r©   r~   rª   r¼   ÚresÚcfÚxfÚyfÚrfÚis
             r=   Ú
where_implÚ)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šE°±�B“Eñ *à�
r<   c                 ó   • U R                   nUR                   U:w  d  UR                   U:w  a  [        S5      e[        R                  " U5      n[        R                  " U 5       H  u  pVU(       a  X   OX%   XE'   M     U$ )z)
Generic implementation for other arrays
r»   )r¼   r½   r­   r¾   Úndenumerate)r©   r~   rª   r¼   rÂ   ÚidxrR   s          r=   rÈ   rÉ   ü   sg   € ð Ÿ
™
�Ø—7‘7˜eÓ# q§w¡w°%Ó'7Ü$Ð%LÓMÐMÜ—m’m AÓ&�Ü Ÿnšn¨TÖ2‘F�CÞ)*˜qšv°±�C“Hñ 3à�
r<   N)rD   r	   ÚArrayÚdtyper
   ÚTypingErrorÚall©r©   r~   rª   rÈ   s       r=   Úoverload_where_arraysrÒ   Ý   sn   € ô �$œŸ™×$Ñ$Ø�7‰7�a—g‘gÓÜ×$Ò$Ð%IÓJÐJô Ñ7¨4°A©,Ó7×7Ñ7òð< Ðò
ð ÐðK %r<   c                 ó‚   • [        U [        R                  5      (       d   X:w  a  [        R                  " S5      eS nU$ g)z 
Implement where() for scalars.
z!x and y should have the same typec                 óP   • U (       a  UOUn[         R                  " U5      nX4S'   U$ )z(
Scalar where() => return a 0-dim array
r5   )r­   r¾   )r©   r~   rª   ÚscalÚarrs        r=   rÈ   Ú*overload_where_scalars.<locals>.where_impl  s'   € ö ‘1 !ˆDä—-’- Ó%ˆCØ�‰GØˆJr<   N)rD   r	   rÍ   r
   rÏ   rÑ   s       r=   Úoverload_where_scalarsrØ     s>   € ô
 �dœEŸK™K×(Ñ(Ø‹6Ü×$Ò$Ð%HÓIÐIò	ð Ðð )r<   c                 ó8   • [        U [        5      (       a  S nU$ g )Nc                 ó   • g)Né   r5   ©Úargs    r=   Úlen_implÚ$overload_len_dummy.<locals>.len_impl-  ó   € Ør<   ©rD   r@   )rÝ   rÞ   s     r=   Úoverload_len_dummyrâ   )  s    € ä�#”{×#Ñ#ò	ð ˆð $r<   c                 ó|   • [        U [        [        45      (       a!  [        U[        [        45      (       a  S nU$ g g )Nc                 ó   • grŠ   r5   ©Úarg1Úarg2s     r=   Údummy_add_implÚ*overload_add_dummy.<locals>.dummy_add_impl9  rà   r<   ©rD   r@   ÚMyDummyType2)ræ   rç   rè   s      r=   Úoverload_add_dummyrì   3  s?   € ä�$œ¤lÐ3×4Ñ4¼ØŒ{œLÐ)÷:ñ :ò	ð Ðð:Ð4r<   c                 óx   • [        U [        5      (       a%  [        U[        R                  5      (       a  S nU$ g g )Nc                 ó   • [        SX5        g )NÚdel©Úprint©ra   rÌ   s     r=   Údummy_delitem_implÚ2overload_dummy_delitem.<locals>.dummy_delitem_implC  s   € Ü�%˜Õ"r<   ©rD   r@   r	   ÚInteger)ra   rÌ   ró   s      r=   Úoverload_dummy_delitemr÷   ?  s5   € ä�#”{×#Ñ#¬
°3¼¿¹×(FÑ(Fò	#ð "Ð!ð )GÐ#r<   c                 óx   • [        U [        5      (       a%  [        U[        R                  5      (       a  S nU$ g g )Nc                 ó   • US-   $ )Nrl   r5   rò   s     r=   Údummy_getitem_implÚ2overload_dummy_getitem.<locals>.dummy_getitem_implM  s   € Ø˜‘9Ðr<   rõ   )ra   rÌ   rú   s      r=   Úoverload_dummy_getitemrü   I  s5   € ä�#”{×#Ñ#¬
°3¼¿¹×(FÑ(Fò	ð "Ð!ð )GÐ#r<   c                 ó°   • [        [        U [        5      [        U[        R                  5      [        U[        R                  5      /5      (       a  S nU$ g )Nc                 ó   • [        X5        g rO   rð   ©ra   rÌ   rQ   s      r=   Údummy_setitem_implÚ2overload_dummy_setitem.<locals>.dummy_setitem_impl]  s	   € Ü�#�Or<   )rÐ   rD   r@   r	   rö   )ra   rÌ   rQ   r   s       r=   Úoverload_dummy_setitemr  S  sL   € ä
ä�sœKÓ(Ü�sœEŸM™MÓ*Ü�sœEŸM™MÓ*ð	
÷ñ ò	ð "Ð!ðr<   c                 ó.   • [         R                  " X5      $ rO   ©ÚoperatorÚaddrå   s     r=   Úcall_add_operatorr  c  ó   € Ü�<Š<˜Ó#Ð#r<   c                 ó
   • X-   $ rO   r5   rå   s     r=   Úcall_add_binopr
  g  s
   € Ø‰;Ðr<   c                 ó|   • [        U [        [        45      (       a!  [        U[        [        45      (       a  S nU$ g g )Nc                 ó   • grŠ   r5   rå   s     r=   Údummy_iadd_implÚ,overload_iadd_dummy.<locals>.dummy_iadd_implq  rà   r<   rê   )ræ   rç   r  s      r=   Úoverload_iadd_dummyr  k  s?   € ä�$œ¤lÐ3×4Ñ4¼ØŒ{œLÐ)÷:ñ :ò	ð Ðð:Ð4r<   c                 ó.   • [         R                  " X5      $ rO   r  rå   s     r=   Úcall_iadd_operatorr  w  r  r<   c                 ó   • X-  n U $ rO   r5   rå   s     r=   Úcall_iadd_binopr  {  s   € Ø�L€Dà€Kr<   c                 ó   • X	 g rO   r5   rò   s     r=   Úcall_delitemr  �  s   € Ø‰r<   c                 ó
   • X   $ rO   r5   rò   s     r=   Úcall_getitemr  …  s	   € Ø‰8€Or<   c                 ó   • X U'   g rO   r5   rÿ   s      r=   Úcall_setitemr  ‰  s	   € Øˆ‚Hr<   Úlengthc                 ó   • S nU$ )Nc                 ó   • [        U 5      $ rO   ©ÚlenrÜ   s    r=   ÚimpÚ#overload_method_length.<locals>.imp�  s   € Ü�3‹xˆr<   r5   )rÝ   r  s     r=   Úoverload_method_lengthr!  �  s   € òð €Jr<   c                 ó"   • U R                  5       $ rO   )r  r}   s    r=   Úcache_overload_method_usecaser#  •  s   € Ø�8‰8‹:Ðr<   c                  ó   • [        5       $ rO   ©r   r5   r<   r=   Úcall_func1_nullaryr&  ™  s	   € Ü‹7€Nr<   c                 ó   • [        U 5      $ rO   r%  r}   s    r=   Úcall_func1_unaryr(  �  s   € Ü�‹8€Or<   c                 ó   • [        U 5      $ rO   r  r}   s    r=   Úlen_usecaser*  ¡  s   € Üˆq‹6€Mr<   c                 ó   • [        U 5        g rO   rð   r}   s    r=   Úprint_usecaser,  ¥  s	   € Ü	ˆ!…Hr<   c                 ó
   • X   $ rO   r5   )r~   rœ   s     r=   Úgetitem_usecaser.  ©  s	   € Ø‰6€Mr<   c                 óV   • [         R                  " [         R                  " U 5      5      $ rO   )r­   ÚcosÚsinr}   s    r=   Únpyufunc_usecaser2  ­  s   € Ü�6Š6”"—&’&˜“)ÓÐr<   c                 ó   • U R                   $ rO   )Ú_datar}   s    r=   Úget_data_usecaser5  ±  s   € Ø�7‰7€Nr<   c                 ó   • U R                   $ rO   )Ú_indexr}   s    r=   Úget_index_usecaser8  µ  s   € Ø�8‰8€Or<   c                 ó   • U R                   $ rO   )Úis_monotonic_increasingr}   s    r=   Úis_monotonic_usecaser;  ¹  s   € Ø×$Ñ$Ð$r<   c                 ó   • [        X5      $ rO   )r1   )ÚdataÚindexs     r=   Úmake_series_usecaser?  ½  s   € Ü�$ÓÐr<   c                 ó$   • U R                  X5      $ rO   )Úclip)r~   ÚloÚhis      r=   Úclip_usecaserD  Á  s   € Ø�6‰6�"‹>Ðr<   c                  ó   • [         $ rO   ©r­   r5   r<   r=   Úreturn_non_boxablerG  È  s   € Ü€Ir<   c                  ó   • S n U $ )Nc                  ó   • [         $ rO   rF  r5   r<   r=   r  Ú(overload_return_non_boxable.<locals>.impÎ  s   € Üˆ	r<   r5   )r  s    r=   Úoverload_return_non_boxablerK  Ì  s   € òð €Jr<   c                 ó8   • [        5       nUR                  U 5      $ rO   )rG  Úarange)ÚszÚmods     r=   Únon_boxable_ok_usecaserP  Ô  s   € Ü
Ó
€CØ�:‰:�b‹>Ðr<   c                  ó   • [        5       $ rO   )rG  r5   r<   r=   Únon_boxable_bad_usecaserR  Ù  s   € ÜÓÐr<   c                 ó   • g rO   r5   )Úfs    r=   Úmk_func_inputrU  Ý  s   € Ør<   c                   ó   • \ rS rSrS rSrg)ÚMkFuncTypingiá  c                 ó~   • [        US   [        R                  5      (       d   e[        [        R                  /UQ76 $ ©Nr   )rD   r	   ÚMakeFunctionLiteralr+   rƒ   )rH   r�   Úkwss      r=   ÚgenericÚMkFuncTyping.genericã  s3   € Ü˜$˜q™'¤5×#<Ñ#<×=Ñ=Ð=Ð=ÜœŸ™Ð+ dÒ+Ð+r<   r5   N)r7   r8   r9   r:   r\  r;   r5   r<   r=   rW  rW  á  s   † õ,r<   rW  c                  ó   • [        S 5        g )Nc                 ó   • U $ rO   r5   ©Úas    r=   Ú<lambda>Ú#mk_func_test_impl.<locals>.<lambda>é  s   € ™Ar<   )rU  r5   r<   r=   Úmk_func_test_implrd  è  s
   € Ü‘+Õr<   c                   ó   • \ rS rSrSrg)ÚMyClassið  r5   Nr6   r5   r<   r=   rf  rf  ð  r>   r<   rf  c                   ó:   ^ • \ rS rSrU 4S jrS rS rS rSrU =r	$ )ÚCallableTypeRefiô  c                 ó†   >• Xl         0 U l        / U l        [        [        U ]  SR                  U R                   5      5        g )Nzcallable_type_ref[{}])Úinstance_typeÚsig_to_impl_keyÚcompiled_templatesÚsuperrh  Ú__init__Úformat)rH   rj  Ú	__class__s     €r=   rn  ÚCallableTypeRef.__init__ö  s>   ø€ Ø*ÔØ!ˆÔØ"$ˆÔÜŒo˜tÑ-ð /5ß5;±V¸D×<NÑ<NÓ5Oõ	Qr<   c                 ó  • S nUR                   [        U 5          HV  n UR                  X#5      n[        US0 5      nX&;   a/  Xb   U R                  U'   U R
                  R                  U5          U$ MX     U$ ! [         a     Mi  f = f)NÚ_compiled_overloads)Ú
_functionsÚtypeÚapplyÚgetattrrk  rl  ÚappendÚ	Exception)rH   rI   r�   r[  Úres_sigÚtemplateÚcompiled_ovldss          r=   Úget_call_typeÚCallableTypeRef.get_call_typeý  s™   € àˆØ×*Ñ*¬4°«:Ô6ˆHð	Ø"Ÿ.™.¨Ó3�ô ")¨Ð3HÈ"Ó!M�ØÓ)Ø4BÑ4H�D×(Ñ(¨Ñ1Ø×+Ñ+×2Ñ2°8Ô<Øàˆñ *ñ 7ð ˆøô ó Úðús   ŸA7Á7
BÂBc                 óP   • [        U R                  R                  5       5      nUS4$ )NT)Úlistrk  Úkeys)rH   Úsigss     r=   Úget_call_signaturesÚ#CallableTypeRef.get_call_signatures  s%   € Ü�D×(Ñ(×-Ñ-Ó/Ó0ˆØ�TˆzÐr<   c                 ó    • U R                   U   $ rO   )rk  )rH   rŒ   s     r=   Úget_impl_keyÚCallableTypeRef.get_impl_key  s   € Ø×#Ñ# CÑ(Ð(r<   )rl  rj  rk  )
r7   r8   r9   r:   rn  r}  rƒ  r†  r;   Ú__classcell__©rp  s   @r=   rh  rh  ô  s   ø† õQòò"÷)ð )r<   rh  c                   ó   • \ rS rSrS rSrg)ÚCallableTypeModeli  c                 óD   • [         R                  R                  XU5        g rO   )r   rt   rn  )rH   ÚdmmÚfe_types      r=   rn  ÚCallableTypeModel.__init__  s   € ä×Ñ×#Ñ# D¨wÕ7r<   r5   N)r7   r8   r9   r:   rn  r;   r5   r<   r=   r‹  r‹    s   † õ8r<   r‹  c                 ó"   • U R                  5       $ rO   )r^   )rI   rW   r·   Úpyvals       r=   Úconstant_callable_typerefr’  !  s   € à×"Ñ"Ó$Ð$r<   c                 ó8   • [        U [        5      (       a  S nU$ g )Nc                 ó   • g)Nì   ï>[= r5   ©ra   s    r=   r  Úoverload_np_exp.<locals>.imp-  s   € àr<   rá   ©ra   r  s     r=   Úoverload_np_expr™  )  s    € ä�#”{×#Ñ#ò	ð ˆ
ð $r<   c                   ór   • \ rS rSrSrS r\R                  S 5       rS r	\R                  S 5       r
S rSrg	)
ÚTestLowLevelExtendingi4  z,
Test the low-level two-tier extension API.
c                 óæ   • [         n[        SS9" U5      nU R                  U" 5       S5        [        n[        SS9" U5      nU R                  U" S 5      S5        U R                  U" S5      S5        g )NT©ÚnopythonrU   g      2@g      @)r&  r   ÚassertPreciseEqualr(  ©rH   ÚpyfuncÚcfuncs      r=   Ú
test_func1Ú TestLowLevelExtending.test_func1<  sd   € Ü#ˆÜ˜TÒ" 6Ó*ˆØ×Ñ¡£¨Ô,Ü!ˆÜ˜TÒ" 6Ó*ˆØ×Ñ¡ d£¨RÔ0Ø×Ñ¡ d£¨SÕ1r<   c                 ó$   • U R                  5         g rO   )r£  ©rH   s    r=   Útest_func1_isolatedÚ)TestLowLevelExtending.test_func1_isolatedE  s   € à�‰Õr<   c                 ób   • U R                  [        [        5        U R                  [        5        g rO   )ÚassertIsÚ
type_func1rˆ   ÚassertIsNotNoner¦  s    r=   Ú!test_type_callable_keeps_functionÚ7TestLowLevelExtending.test_type_callable_keeps_functionI  s   € Ø�‰”j¤+Ô.Ø×ÑœZÕ(r<   c                 ó†   • [         n[        [        R                  " 5       5      " U5      nU R	                  U" 5       S5        g )Ng      E@)r[   r   r	   Úfloat64rŸ  r   s      r=   Útest_cast_mydummyÚ'TestLowLevelExtending.test_cast_mydummyM  s.   € äˆÜ”U—]’]“_Ô& vÓ.ˆØ×Ñ¡£¨Õ.r<   c                 óF  • [         R                  " [        5      n[        R                  n[        R
                  nUR                  5         UR                  5         [        X#USS5      nU R                  [        S UR                  R                  5        5       5      5        g)zFmake sure make_function is passed to typer class as a literal
        r5   Nc              3   óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7frO   )rD   r	   rZ  )r¶   ra  s     r=   r¸   Ú=TestLowLevelExtending.test_mk_func_literal.<locals>.<genexpr>^  s'   é € ð â4�Aô ˜1œe×7Ñ7×8Ð8Ú4ùs   ‚'))r   Úrun_frontendrd  r   Útyping_contextÚtarget_contextÚrefreshr   Ú
assertTrueÚanyÚtypemapÚvalues)rH   Útest_irÚ	typingctxÚ	targetctxÚ
typing_ress        r=   Útest_mk_func_literalÚ*TestLowLevelExtending.test_mk_func_literalS  s†   € ô ×'Ò'Ô(9Ó:ˆÜ×-Ñ-ˆ	Ü×-Ñ-ˆ	Ø×ÑÔØ×ÑÔÜ)¨)ÀÈØ*.ó0ˆ
à�‰Üñ à#×+Ñ+×2Ñ2Ô4óó õ	
r<   r5   N)r7   r8   r9   r:   Ú__doc__r£  r   Úrun_test_in_subprocessr§  r­  r±  rÂ  r;   r5   r<   r=   r›  r›  4  sJ   † ñò2ð ×$Ñ$ñó %ðò)ð ×$Ñ$ñ/ó %ð/õ

r<   r›  c                   óT   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)ÚTestPandasLikeie  zY
Test implementing a pandas-like Index object.
Also stresses most of the high-level API.
c                 ó˜   • [        [        R                  " S5      5      n[        SS9" [        5      nU R                  U" U5      S5        g )Né   Tr�  )r0   r­   rM  r   r*  rŸ  )rH   rÇ   r¢  s      r=   Útest_index_lenÚTestPandasLike.test_index_lenk  s7   € Ü”"—)’)˜A“,ÓˆÜ˜TÒ"¤;Ó/ˆØ×Ñ¡ a£¨!Õ,r<   c                 ó*  • [        [        R                  " / SQ5      5      n[        SS9" [        5      nU R                  U" US5      S5        U" U[        SS 5      5      nU R                  U[         5        U R                  [        U5      SS/5        g )N©rU   é   éûÿÿÿTr�  r/   rÎ  rÏ  )
r0   r­   r„   r   r.  rŸ  ÚsliceÚassertIsInstanceÚassertEqualr€  ©rH   rÇ   r¢  Úiis       r=   Útest_index_getitemÚ!TestPandasLike.test_index_getitemp  st   € Ü”"—(’(š;Ó'Ó(ˆÜ˜TÒ"¤?Ó3ˆØ×Ñ¡ a¨£¨QÔ/Ù�1”e˜A˜t“nÓ%ˆØ×Ñ˜b¤%Ô(Ø×Ñœ˜b› A r 7Õ+r<   c                 óD  • [        [        R                  " / SQ5      5      n[        SS9" [        5      nU" U5      nU R                  U[         5        U R                  UR                  [        R                  " [        R                  " UR                  5      5      5        g)z'
Check Numpy ufunc on an Index object.
rÍ  Tr�  N)
r0   r­   r„   r   r2  rÑ  rŸ  r4  r0  r1  rÓ  s       r=   Útest_index_ufuncÚTestPandasLike.test_index_ufuncx  si   € ô ”"—(’(š;Ó'Ó(ˆÜ˜TÒ"Ô#3Ó4ˆÙ�1‹XˆØ×Ñ˜b¤%Ô(Ø×Ñ §¡¬"¯&ª&´·²¸¿¹³Ó*AÕBr<   c                 ó²   • [        [        R                  " / SQ5      5      n[        SS9" [        5      nU" U5      nU R                  X1R                  5        g )NrÍ  Tr�  )r0   r­   r„   r   r5  rª  r4  )rH   rÇ   r¢  r=  s       r=   Útest_index_get_dataÚ"TestPandasLike.test_index_get_data‚  s>   € ä”"—(’(š;Ó'Ó(ˆÜ˜TÒ"Ô#3Ó4ˆÙ�Q‹xˆØ�‰�dŸG™GÕ$r<   c                 óÊ   • [        SS9" [        5      n/ SQS4/ SQS4/ S44 H=  u  p#[        [        R                  " U5      5      nU" U5      nU R                  XS5        M?     g )NTr�  )rÎ  rU   é   F)rÞ  rÎ  rU   )r   r;  r0   r­   r„   rÒ  )rH   r¢  r½  ÚexpectedrÇ   Úgots         r=   Útest_index_is_monotonicÚ&TestPandasLike.test_index_is_monotonic‰  sf   € ô ˜TÒ"Ô#7Ó8ˆâ˜ÐÚ˜ÐØ�ˆJó!
ÑˆFô
 ”b—h’h˜vÓ&Ó'ˆAÙ˜“(ˆCØ×Ñ˜SÖ+ò!
r<   c                 óà   • [        [        R                  " / SQ5      5      n[        [        R                  " / SQ5      U5      n[        SS9" [        5      nU R                  U" U5      S5        g )N©r‘   é   rÉ  ©g      ø?g      @ç      @Tr�  rÉ  )r0   r­   r„   r1   r°  r   r*  rŸ  )rH   rÇ   Úsr¢  s       r=   Útest_series_lenÚTestPandasLike.test_series_len–  sM   € Ü”"—(’(š9Ó%Ó&ˆÜ”2—:’:šoÓ.°Ó2ˆÜ˜TÒ"¤;Ó/ˆØ×Ñ¡ a£¨!Õ,r<   c                 ó8  • [        [        R                  " / SQ5      5      n[        [        R                  " / SQ5      U5      n[        SS9" [        5      nU" U5      nU R                  U[         5        U R                  UR                  UR                  5        g )Nrä  ræ  Tr�  )
r0   r­   r„   r1   r°  r   r8  rÑ  rª  r4  )rH   rÇ   rè  r¢  rà  s        r=   Útest_series_get_indexÚ$TestPandasLike.test_series_get_indexœ  si   € Ü”"—(’(š9Ó%Ó&ˆÜ”2—:’:šoÓ.°Ó2ˆÜ˜TÒ"Ô#4Ó5ˆÙ�A‹hˆØ×Ñ˜c¤5Ô)Ø�‰�c—i‘i §¡Õ)r<   c                 ó(  • [        [        R                  " / SQ5      5      n[        [        R                  " / SQ5      U5      n[        SS9" [        5      nU" U5      nU R                  U[        5        U R                  UR                  [         5        U R                  UR                  R                  UR                  5        U R                  UR                  [        R                  " [        R                  " UR                  5      5      5        g)z(
Check Numpy ufunc on an Series object.
rÍ  ©r/   r‘   rÉ  Tr�  N)r0   r­   r„   r1   Úint64r   r2  rÑ  r7  rª  r4  rŸ  Ú_valuesr0  r1  ©rH   rÇ   rè  r¢  Ússs        r=   Útest_series_ufuncÚ 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ÕFr<   c                 ó°  • [        [        R                  " / SQ5      5      n[        R                  " / SQ5      n[	        SS9" [
        5      nU" X!5      nU R                  U[        5        U R                  UR                  [         5        U R                  UR                  R                  UR                  5        U R                  UR                  U5        g )NrÍ  ræ  Tr�  )r0   r­   r„   r°  r   r?  rÑ  r1   r7  rª  r4  rñ  )rH   rÇ   Údr¢  rà  s        r=   Útest_series_constructorÚ&TestPandasLike.test_series_constructor±  sŽ   € Ü”"—(’(š;Ó'Ó(ˆÜ�JŠJ’Ó'ˆÜ˜TÒ"Ô#6Ó7ˆÙ�A‹kˆØ×Ñ˜c¤6Ô*Ø×Ñ˜cŸj™j¬%Ô0Ø�‰�c—j‘j×&Ñ&¨¯©Ô0Ø�‰�c—k‘k 1Õ%r<   c                 óô  • [        [        R                  " / SQ5      5      n[        [        R                  " / SQ5      U5      n[        SS9" [        5      nU" USS5      nU R                  U[        5        U R                  UR                  [         5        U R                  UR                  R                  UR                  5        U R                  UR                  [        R                  " / SQ5      5        g )NrÍ  ræ  Tr�  çš™™™™™ù?ç      @)rû  rü  rç  )r0   r­   r„   r1   r°  r   rD  rÑ  r7  rª  r4  rŸ  rñ  rò  s        r=   Útest_series_clipÚ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ÕHr<   r5   N)r7   r8   r9   r:   rÄ  rÊ  rÕ  rØ  rÛ  rá  ré  rì  rô  rø  rý  r;   r5   r<   r=   rÇ  rÇ  e  s<   † ñò
-ò
,òCò%ò,ò-ò*òGò&õIr<   rÇ  c                   ó�   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rSrg)ÚTestHighLevelExtendingiÆ  z#
Test the high-level combined API.
c                 óD  ^ ^• [         n[        SS9" U5      mUU 4S jnU" SSSS9  U" SSS5        U" [        R                  " / SQ5      [        R                  " / SQ5      [        R                  " / S	Q5      5        T R                  [        R                  5       nT" [        R                  " / 5      [        R                  " / 5      [        R                  " / 5      5        S
S
S
5        T R                  S[        WR                  5      5        g
! , (       d  f       N4= f)z.
Test implementing a function with @overload.
Tr�  c                  óN   >• [        U 0 UD6nT" U 0 UD6nTR                  X#5        g rO   )r®   rŸ  )r�   Úkwargsrß  rà  r¢  rH   s       €€r=   ÚcheckÚ0TestHighLevelExtending.test_where.<locals>.checkÒ  s/   ø€ Ü Ð0¨Ñ0ˆHÙ˜Ð( Ñ(ˆCØ×#Ñ# HÕ2r<   rÉ  rÎ  )r~   r©   rª   )TFTrï  )rå  rÞ  rÞ  Nr²   )r°   r   r­   Úbool_r„   ÚassertRaisesr
   rÏ   rð  ÚassertInÚstrÚ	exception)rH   r¡  r  Úraisesr¢  s   `   @r=   Ú
test_whereÚ!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                 óž   • [        SS9" [        5      nU R                  U" [        5       5      S5        U R                  U" SS/5      S5        g)z>
Test re-implementing len() for a custom type with @overload.
Tr�  rÛ   rå  rÞ  r‘   N)r   r*  rŸ  r3   ©rH   r¢  s     r=   Útest_lenÚTestHighLevelExtending.test_lenæ  sB   € ô ˜TÒ"¤;Ó/ˆØ×Ñ¡¤g£iÓ 0°"Ô5Ø×Ñ¡ q¨! f£¨qÕ1r<   c                 óî   • [        SS9" [        5      n[        5          U" [        5       5        U R	                  [
        R                  R                  5       S5        SSS5        g! , (       d  f       g= f)z@
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_printÚ!TestHighLevelExtending.test_printî  sL   € ô ˜TÒ"¤=Ó1ˆÜÕÙ”'“)ÔØ×ÑœSŸZ™Z×0Ñ0Ó2°JÔ?÷ ×Öús   ž?A&Á&
A4c                 ó  • [         n[        SS9" U5      nU R                  U" SS5      S5        U R                  U" [        5       [        5       5      S5        U R                  U" [	        5       [	        5       5      S5        g©	zG
Test re-implementing operator.add() for a custom type with @overload.
Tr�  r/   r‘   rÉ  rU   éT   N)r  r   rŸ  ÚMyDummy2r3   r   s      r=   Útest_add_operatorÚ(TestHighLevelExtending.test_add_operator÷  sf   € ô #ˆÜ˜TÒ" 6Ó*ˆà×Ñ¡ a¨£¨QÔ/Ø×Ñ¡¤h£j´(³*Ó =¸rÔBð 	×Ñ¡¤g£i´³Ó ;¸RÕ@r<   c                 ó  • [         n[        SS9" U5      nU R                  U" SS5      S5        U R                  U" [        5       [        5       5      S5        U R                  U" [	        5       [	        5       5      S5        g©	zI
Test re-implementing '+' for a custom type via @overload(operator.add).
Tr�  r/   r‘   rÉ  rU   r  N)r
  r   rŸ  r  r3   r   s      r=   Útest_add_binopÚ%TestHighLevelExtending.test_add_binop  sf   € ô  ˆÜ˜TÒ" 6Ó*ˆà×Ñ¡ a¨£¨QÔ/Ø×Ñ¡¤h£j´(³*Ó =¸rÔBð 	×Ñ¡¤g£i´³Ó ;¸RÕ@r<   c                 ó  • [         n[        SS9" U5      nU R                  U" SS5      S5        U R                  U" [        5       [        5       5      S5        U R                  U" [	        5       [	        5       5      S5        gr  )r  r   rŸ  r  r3   r   s      r=   Útest_iadd_operatorÚ)TestHighLevelExtending.test_iadd_operator  sf   € ô $ˆÜ˜TÒ" 6Ó*ˆà×Ñ¡ a¨£¨QÔ/Ø×Ñ¡¤h£j´(³*Ó =¸rÔBð 	×Ñ¡¤g£i´³Ó ;¸RÕ@r<   c                 ó  • [         n[        SS9" U5      nU R                  U" SS5      S5        U R                  U" [        5       [        5       5      S5        U R                  U" [	        5       [	        5       5      S5        gr  )r  r   rŸ  r  r3   r   s      r=   Útest_iadd_binopÚ&TestHighLevelExtending.test_iadd_binop!  sf   € ô !ˆÜ˜TÒ" 6Ó*ˆà×Ñ¡ a¨£¨QÔ/Ø×Ñ¡¤h£j´(³*Ó =¸rÔBð 	×Ñ¡¤g£i´³Ó ;¸RÕ@r<   c                 ó  • [         n[        SS9" U5      n[        5       nS n[        5        n U" US5        S S S 5        Ub  UeU R                  WR                  5       S5        g ! [         a  nUn S nAN?S nAff = f! , (       d  f       NM= f)NTr�  éA  zdel hello! 321
)r  r   r3   r   ry  rÒ  r  ©rH   r¡  r¢  ra   ÚeÚoutÚexcs          r=   Útest_delitemÚ#TestHighLevelExtending.test_delitem/  s€   € ÜˆÜ˜TÒ" 6Ó*ˆÜ‹iˆØˆäÔ #ðÙ�c˜3”÷ ð ‰=ØˆGØ×Ñ˜Ÿ™›Ð);Õ<øô ó Ø•ûðú÷ Õús.   ¬A>®	A%Á%
A;Á/A6Á1A>Á6A;Á;A>Á>
Bc                 óp   • [         n[        SS9" U5      nU R                  U" [        5       S5      S5        g )NTr�  r)  i¼  )r  r   rŸ  r3   r   s      r=   Útest_getitemÚ#TestHighLevelExtending.test_getitem?  s/   € ÜˆÜ˜TÒ" 6Ó*ˆØ×Ñ¡¤g£i°Ó 5°yÕAr<   c                 ó   • [         n[        SS9" U5      n[        5       nS n[        5        n U" USS5        S S S 5        Ub  UeU R                  WR                  5       S5        g ! [         a  nUn S nAN?S nAff = f! , (       d  f       NM= f)NTr�  r)  rl   z321 123
)r  r   r3   r   ry  rÒ  r  r*  s          r=   Útest_setitemÚ#TestHighLevelExtending.test_setitemD  s‚   € ÜˆÜ˜TÒ" 6Ó*ˆÜ‹iˆØˆäÔ #ðÙ�c˜3 Ô$÷ ð ‰=ØˆGØ×Ñ˜Ÿ™›¨Õ5øô ó Ø•ûðú÷ Õús.   ¬A?®
A&Á&
A<Á0A7Á2A?Á7A<Á<A?Á?
Bc                 ót  • [        SS9" [        5      nSnU" U5      n[        U5      n[        R                  R	                  XC5        [        SS9" [
        5      nU R                  [        5       nU" 5         SSS5        [        WR                  5      nSnU R                  X‡5        g! , (       d  f       N7= f)zG
Test overloading whose return value cannot be represented in CPython.
Tr�  é
   Nzcannot convert native Module)r   rP  r­   ÚtestingÚassert_equalrR  r  Ú	TypeErrorr	  r
  r  )	rH   Úok_cfuncÚnrà  ÚexpectÚ	bad_cfuncr  ÚerrmsgÚ	expectmsgs	            r=   Útest_no_cpython_wrapperÚ.TestHighLevelExtending.test_no_cpython_wrapperT  s’   € ô  Ò%Ô&<Ó=ˆØˆÙ�q‹kˆÜ'¨Ó*ˆÜ
�
‰
×Ñ Ô,ä Ò&Ô'>Ó?ˆ	Ø×ÑœyÔ)¨VÙŒK÷ *ä�V×%Ñ%Ó&ˆØ2ˆ	Ø�‰�iÕ(÷	 *Õ)ús   Á0B)Â)
B7c                 óX  • SS jnSnSS jnU R                  [        R                  5       nU" U5      " SSSS5        SSS5        [        WR                  5      nU R                  X%5        U R                  S	U5        U R                  S
U5        U R                  SU5        SS jnU R                  [        R                  5       nU" U5      " SSSS5        SSS5        [        UR                  5      nU R                  X%5        U R                  SU5        U R                  SU5        U R                  SU5        SS jnU R                  [        R                  5       nU" U5      " SSSS5        SSS5        [        UR                  5      nU R                  X%5        U R                  SU5        U R                  SU;   5        U R                  SU5        U R                  SU5        SSKJnJ	n	  U R                  [        R                  5       nU" U5      " SSSS5        SSS5        [        UR                  5      nU R                  X%5        U R                  SU5        U R                  SU;   5        U R                  SU5        U R                  [        R                  5       nU" U	5      " SSSS5        SSS5        [        UR                  5      nU R                  X%5        U R                  SU5        U R                  SU;   5        U R                  SU5        U R                  SU5        SS jn
U R                  [        R                  5       nU" U
5      " SSSS5        SSS5        [        UR                  5      nU R                  X%5        U R                  SU5        U R                  SU;   5        U R                  SU5        U R                  SU5        SS jnU R                  [        R                  5       nU" U5      " SSSS5        SSS5        [        UR                  5      nU R                  X%5        U R                  SU5        U R                  SU;   5        U R                  SU5        S S jnU R                  [        R                  5       nU" U5      " SSSS5        SSS5        [        UR                  5      nU R                  X%5        U R                  SU5        U R                  SU5        S nU R                  [        R                  5       nU" U5      " SSSS5        SSS5        [        UR                  5      nU R                  X%5        U R                  SU5        U R                  SU5        g! , (       d  f       GNT= f! , (       d  f       GNÌ= f! , (       d  f       GND= f! , (       d  f       GN¥= f! , (       d  f       GN = f! , (       d  f       GN„= f! , (       d  f       GNè= f! , (       d  f       GN^= f! , (       d  f       Né= f)!ze
Tests that an overload which has a differing typing and implementing
signature raises an exception.
Nc                 ód   ^ ^• SS jm[        T5      SU 4S jj5       n[        SS9U4S j5       nU$ )Nc                 ó   • g rO   r5   ©ra  ÚbrR   Úkws       r=   Ú
myoverloadÚjTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>.myoverloadn  ó   € Ør<   c                 ó   >• T$ rO   r5   )ra  rG  rR   rH  Úimpls       €r=   Ú_myoverload_implÚpTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>._myoverload_implq  s   ø€ à�r<   Tr�  c                 ó   >• T" XX#S9  g )N©rH  r5   )ra  rG  rR   r÷  rI  s       €r=   ÚfooÚcTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>.foou  s   ø€ á˜1 Ó)r<   rO   ©r   r   )rM  rN  rR  rI  s   `  @r=   Úgen_olÚVTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_olm  sA   ù€ ôô �jÓ!öó "ðô ˜$Ñô*ó  ð*ð ˆJr<   z-Typing and implementation arguments differ inc                 ó   • U S:”  a  gg©Nr7  r/   éÿÿÿÿr5   rF  s       r=   Úimpl1ÚUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl1~  ó   € Ø�2‹vØàr<   r/   r‘   rÉ  rå  zkeyword argument default valuesz<Parameter "kw=12">z<Parameter "kw=None">c                 ó   • U S:”  a  ggrX  r5   )ra  rG  rR   Úkwargs       r=   Úimpl2ÚUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl2�  r\  r<   zkeyword argument namesz<Parameter "kwarg=None">c                 ó   • [         S:”  a  ggrX  r`  )ÚzrG  rR   rH  s       r=   Úimpl3ÚUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl3œ  s   € Ü�2‹vØàr<   zargument namesÚkeywordz<Parameter "a">z<Parameter "z">)Úimpl4Úimpl5zFirst difference: 'z'c                 ó   • U S:”  a  ggrX  r5   )ra  rG  rR   r÷  r+  rH  s         r=   Úimpl6ÚUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl6¿  r\  r<   z<Parameter "d">z<Parameter "e">c                 ó   • U S:”  a  ggrX  r5   )ra  rG  rH  s      r=   Úimpl7ÚUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl7Ï  r\  r<   z<Parameter "c">c                 ó   • U S:”  a  ggrX  r5   )ra  rG  rR   rH  Úextra_kwargs        r=   Úimpl8ÚUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl8Þ  r\  r<   z<Parameter "extra_kwarg=None">c                 ó   • U S:”  a  ggrX  r5   )ra  rG  rR   s      r=   Úimpl9ÚUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl9ì  r\  r<   rO   )é   )NN)
r  r
   rÏ   r	  r
  r  ÚassertFalseÚoverload_usecasesrf  rg  )rH   rU  ÚsentinelrZ  r+  Úmsgr_  rc  rf  rg  ri  rl  rp  rs  s                 r=   Ú/test_typing_vs_impl_signature_mismatch_handlingÚFTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handlingg  sÌ  € ô	ð Cˆô	ð ×Ñœv×1Ñ1Ô2°aÙ�5ŒM˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�hÔ$Ø�‰Ð7¸Ô=Ø�‰Ð+¨SÔ1Ø�‰Ð-¨sÔ3ô	ð ×Ñœv×1Ñ1Ô2°aÙ�5ŒM˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�hÔ$Ø�‰Ð.°Ô4Ø�‰Ð0°#Ô6Ø�‰Ð-¨sÔ3ô	ð ×Ñœv×1Ñ1Ô2°aÙ�5ŒM˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�hÔ$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÑ)Ô*Ø�‰Ð'¨Ô-Ø�‰Ð'¨Ô-ç3à×Ñœv×1Ñ1Ô2°aÙ�5ŒM˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�hÔ$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÑ)Ô*Ø�‰Ð-¨sÔ3à×Ñœv×1Ñ1Ô2°aÙ�5ŒM˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�hÔ$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÑ)Ô*Ø�‰Ð'¨Ô-Ø�‰Ð'¨Ô-ô	ð ×Ñœv×1Ñ1Ô2°aÙ�5ŒM˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�hÔ$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÑ)Ô*Ø�‰Ð'¨Ô-Ø�‰Ð'¨Ô-ô	ð ×Ñœv×1Ñ1Ô2°aÙ�5ŒM˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�hÔ$Ø�‰Ð&¨Ô,Ø×Ñ˜ cÑ)Ô*Ø�‰Ð'¨Ô-ô	ð ×Ñœv×1Ñ1Ô2°aÙ�5ŒM˜!˜Q  1Ô%÷ 3ä�!—+‘+ÓˆØ�‰�hÔ$Ø�‰Ð.°Ô4Ø�‰Ð6¸Ô<ò	ð ×Ñœv×1Ñ1Ô2°aÙ�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/ÈWÊ(WÍW%ÐW7Ò X	Ô&XÖ
VÖ
V,Ö/
V>×
W×
W"×%
W4×7
XØ	
XØ
X)c                 óX  ^• SS jmSSK Jn  [        T5      " U5        [        SS9U4S j5       nU R	                  [
        R                  5       nU" SS5        SSS5        [        WR                  5      nU R                  S	U5        U R                  S
U5        g! , (       d  f       NH= f)zŽ
Tests that an overload which has a differing typing and implementing
signature raises an exception and uses VAR_POSITIONAL (*args) in typing
Nc                 ó   • g rO   r5   ©ra  rH  s     r=   rI  ÚiTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_positional.<locals>.myoverloadÿ  ó   € Ør<   r/   )Úvar_positional_implTr�  c                 ó   >• T" XSSS9$ )Né	   é   rQ  r5   ©ra  rG  rI  s     €r=   rR  ÚbTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_positional.<locals>.foo  s   ø€ á˜a A¨"Ñ-Ð-r<   rÞ  z)VAR_POSITIONAL (e.g. *args) argument kindz-offending argument name is '*star_args_token'rO   )
rw  r�  r   r   r  r
   rÏ   r	  r
  r  )rH   r�  rR  r+  ry  rI  s        @r=   Ú>test_typing_vs_impl_signature_mismatch_handling_var_positionalÚUTestHighLevelExtending.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                 óB  • S
S jnS nU" US5      " SS5        U R                  [        R                  5       nU" U5      " SS5        SSS5        [        WR                  5      nU R                  SU5        U R                  SU5        SS	 jnU R                  [        R                  5       nU" U5      " SS5        SSS5        [        UR                  5      nU R                  SU5        U R                  SU5        g! , (       d  f       N½= f! , (       d  f       NY= f)z:
Tests that an overload which uses **kwargs (VAR_KEYWORD)
c                 óV   ^• SS jm[        TUS9" U 5        [        SS9U4S j5       nU$ )Nc                 ó   • g rO   r5   r~  s     r=   rI  ÚvTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol.<locals>.myoverload  rK  r<   ©ÚstrictTr�  c                 ó   >• T" U SS9$ )Nr„  rQ  r5   r…  s     €r=   rR  ÚoTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol.<locals>.foo  s   ø€ á! !¨Ñ+Ð+r<   rO   rT  )rM  rŽ  rR  rI  s      @r=   rU  ÚbTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol  s7   ø€ ôô �Z¨Ò/°Ô5ä˜$Ñô,ó  ð,ð ˆJr<   c                 ó   • SS jnU$ )Nc                 ó   • U $ rO   r5   r~  s     r=   rM  ÚmTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol1.<locals>.impl#  ó   € Ø�r<   ©r7  r5   )ra  r[  rM  s      r=   Úol1Ú_TestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol1"  s   € ôð ˆKr<   Fr/   r‘   Nz1use of VAR_KEYWORD (e.g. **kwargs) is unsupportedz"offending argument name is '**kws'c                 ó   • S nU$ )Nc                 ó   • U $ rO   r5   )ra  r[  s     r=   rM  ÚmTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol2.<locals>.impl1  r•  r<   r5   )ra  rH  rM  s      r=   Úol2Ú_TestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol20  s   € òð ˆKr<   )T)r   )r  r
   rÏ   r	  r
  r  )rH   rU  r—  r+  ry  rœ  s         r=   Ú;test_typing_vs_impl_signature_mismatch_handling_var_keywordÚRTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword  sâ   € ô

	ò	ñ 	ˆs�EÔ˜1˜aÔ Ø×Ñœv×1Ñ1Ô2°aÙ�3ŒK˜˜1Ô÷ 3ä�!—+‘+ÓˆØ�‰ÐIÈ3ÔOØ�‰Ð:¸CÔ@ô	ð ×Ñœv×1Ñ1Ô2°aÙ�3ŒK˜˜1Ô÷ 3ä�!—+‘+ÓˆØ�‰ÐIÈ3ÔOØ�‰Ð:¸CÕ@÷# 3Õ2ú÷ 3Õ2ús   ¸C?Â-DÃ?
DÄ
Dc                 ó¼   • [        [        R                  S5      SS j5       n[        S 5       n[        R
                  " S5      nU R                  U" U5      S5        g )NrR  c                 ó   • SS jnU$ )Nc                 ó   • U$ rO   r5   )rÖ   Úa_kwargs     r=   rM  ÚQTestHighLevelExtending.test_overload_method_kwargs.<locals>.fooimpl.<locals>.impl@  s   € Ø�r<   r–  r5   )rÖ   r£  rM  s      r=   ÚfooimplÚCTestHighLevelExtending.test_overload_method_kwargs.<locals>.fooimpl>  s   € ôð ˆKr<   c                 ó`   • U R                  5       U R                  S5      U R                  SS94$ )Né   é   )r£  )rR  ©ÚAs    r=   ÚbarÚ?TestHighLevelExtending.test_overload_method_kwargs.<locals>.barE  s(   € à—5‘5“7˜AŸE™E "›I q§u¡u°R uÐ'8Ð8Ð8r<   rÞ  )r7  r¨  r©  r–  )r   r	   rÍ   r   r­   rM  rÒ  )rH   r¥  r¬  ÚZs       r=   Útest_overload_method_kwargsÚ2TestHighLevelExtending.test_overload_method_kwargs<  sV   € ä	œŸ™ eÓ	,ó	ó 
-ð	ô 
ñ	9ó 
ð	9ô �IŠI�a‹Lˆà×Ñ™˜Q› Õ.r<   c                 óÈ   • [        [        R                  S5      S 5       n[        S 5       n[        R
                  " S5      nU" U5        U R                  U" U5      S5        g )NÚlitfooc                 óŒ   • [        U[        R                  5      (       a%  [        U[        R                  5      (       d  S nU$ g g )Nc                 ó   • U$ rO   r5   )rÖ   rQ   s     r=   rM  ÚXTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.litfoo.<locals>.implV  s   € Ø"˜
r<   )rD   r	   rö   ÚLiteral)rÖ   rQ   rM  s      r=   r²  ÚJTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.litfooO  s<   € ô ˜#œuŸ}™}×-Ñ-ä! #¤u§}¡}×5Ñ5ò#ð  �Kð 6ð .r<   c                 ó$   • U R                  S5      $ ©NéþÊ  )r²  rª  s    r=   r¬  ÚGTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.bar[  s   € à—8‘8˜FÓ#Ð#r<   r/   rº  )r   r	   rÍ   r   r­   ÚzerosrÒ  )rH   r²  r¬  r«  s       r=   Ú#test_overload_method_literal_unpackÚ:TestHighLevelExtending.test_overload_method_literal_unpackM  s]   € ä	œŸ™ hÓ	/ñ		 ó 
0ð		 ô 
ñ	$ó 
ð	$ô �HŠH�Q‹KˆÙˆAŒØ×Ñ™˜Q› Õ(r<   c                 óJ   • [         S 5       nU R                  U" 5       S5        g )Nc                  ó6   • [         R                  " [        5      $ rO   )r­   ÚexprM   r5   r<   r=   ÚtestÚ8TestHighLevelExtending.test_overload_ufunc.<locals>.testg  s   € ä—6’6œ'“?Ð"r<   r•  )r   rÒ  )rH   rÂ  s     r=   Útest_overload_ufuncÚ*TestHighLevelExtending.test_overload_ufuncc  s*   € ô 
ñ	#ó 
ð	#ð 	×Ñ™› Õ,r<   c           	      óè  • [        [        S5      S 5       n[        S 5       n[        5       nU R	                  U" USS5      S5        U R	                  U" USSS5      S5        U R	                  U" USSSS	5      S
5        [        S 5       nU R	                  U" U5      S5        U R	                  U" USSS5      S5        U R	                  U" USSS5      S5        U R	                  U" USSS5      S5        g )NÚmethod_starargc                 ó   • S nU$ )Nc                 ó
   • XU4$ rO   r5   )ra   rQ   Úval2r�   s       r=   ÚgetÚ\TestHighLevelExtending.test_overload_method_stararg.<locals>._ov_method_stararg.<locals>.getp  s   € Ø 4Ð(Ð(r<   r5   )ra   rQ   rÊ  r�   rË  s        r=   Ú_ov_method_starargÚOTestHighLevelExtending.test_overload_method_stararg.<locals>._ov_method_starargn  s   € ò)ð ˆJr<   c                 ó    • U R                   " U6 $ rO   ©rÇ  )ra   r�   s     r=   rR  Ú@TestHighLevelExtending.test_overload_method_stararg.<locals>.foou  s   € ð ×%Ò% tÐ,Ð,r<   r/   r‘   ©r/   r‘   r5   rÉ  ©r/   r‘   ©rÉ  rå  ©r/   r‘   ©rÉ  rå  c                 ór   • U R                  SS5      U R                  SSS5      U R                  SSSS5      4$ )Nr/   r‘   rÉ  rå  rÐ  r–  s    r=   r¬  Ú@TestHighLevelExtending.test_overload_method_stararg.<locals>.bar  sD   € ð ×"Ñ" 1 aÓ(Ø×"Ñ" 1 a¨Ó+Ø×"Ñ" 1 a¨¨AÓ.ðð r<   )rÒ  rÓ  rÕ  rÔ  )r/   r‘   )rÔ  rÖ  )r/   r‘   )rÖ  ©rÉ  )rå  rÞ  )r/   r‘   )rÙ  ©r   r@   r   r3   rÒ  )rH   rÍ  rR  ra   r¬  s        r=   Útest_overload_method_starargÚ3TestHighLevelExtending.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˜˜;Ó'Ð)?õ	
r<   c                 óº  ^•  " S S[         R                  5      m[        TS5      S 5       n[        U4S j5       nSnU R	                  U" U5      [
        R                  " U5      5        [        S 5       nU R                  [        R                  5       nU" U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)	Nc                   ó   • \ rS rSrSrg)ÚATestHighLevelExtending.test_overload_classmethod.<locals>.MyArrayiš  r5   Nr6   r5   r<   r=   ÚMyArrayrß  š  s   † Úr<   rà  Úarray_allocc                 ó   • S nU$ )Nc                 ó2   • [         R                  " U5      nU$ rO   ©r­   rM  )ÚclsÚnitemsrÖ   s      r=   rM  ÚVTestHighLevelExtending.test_overload_classmethod.<locals>.ol_array_alloc.<locals>.implŸ  s   € Ü—i’i Ó'�Ø�
r<   r5   )rå  ræ  rM  s      r=   Úol_array_allocÚHTestHighLevelExtending.test_overload_classmethod.<locals>.ol_array_alloc�  s   € òð ˆKr<   c                 ó&   >• TR                  U 5      $ rO   )rá  )ræ  rà  s    €r=   rR  Ú=TestHighLevelExtending.test_overload_classmethod.<locals>.foo¤  s   ø€ à×&Ñ& vÓ.Ð.r<   rÛ   c                 ó@   • [         R                  R                  U 5      $ rO   )r	   rÍ   rá  )ræ  s    r=   Úno_classmethod_in_baseÚPTestHighLevelExtending.test_overload_classmethod.<locals>.no_classmethod_in_base­  s   € ä—;‘;×*Ñ*¨6Ó2Ð2r<   z"Unknown attribute 'array_alloc' of)r	   rÍ   r)   r   rŸ  r­   rM  r  r
   rÏ   r  r	  r
  )rH   rè  rR  ræ  rí  r  rà  s         @r=   Útest_overload_classmethodÚ0TestHighLevelExtending.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                 ó¾   • [        [        5      S 5       n[        [        5      S 5       n[        S 5       nSnSUS   -   SUS   -   4nU R                  U" U6 U5        g )	Nc                 óL   • [        U [        R                  5      (       a  S nU$ g )Nc                 ó   • SU -   $ )Nç     @E@r5   r}   s    r=   rM  ÚeTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld1.<locals>.impl½  s   € Ø !™8�Or<   )rD   r	   rö   ©r~   rM  s     r=   Úcallable_type_call_ovld1ÚWTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld1º  s"   € ä˜!œUŸ]™]×+Ñ+ò$à�ð ,r<   c                 óL   • [        U [        R                  5      (       a  S nU$ g )Nc                 ó   • SU -   $ )Nú42.5r5   r}   s    r=   rM  ÚeTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld2.<locals>.implÄ  s   € Ø! A™:Ð%r<   )rD   r	   ÚUnicodeTyperö  s     r=   Úcallable_type_call_ovld2ÚWTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld2Á  s&   € ä˜!œU×.Ñ.×/Ñ/ò&ð �ð	 0r<   c                 ó.   • [        U 5      [        U5      4$ rO   )rf  ©ra  rG  s     r=   rR  ÚBTestHighLevelExtending.test_overload_callable_typeref.<locals>.fooÉ  s   € ä˜1“:œw q›zÐ)Ð)r<   )rå  Ú4rô  r   rû  r/   )r   rh  r   rŸ  )rH   r÷  rþ  rR  r�   rß  s         r=   Útest_overload_callable_typerefÚ5TestHighLevelExtending.test_overload_callable_typeref¸  s|   € ä	”/Ó	"ñ	ó 
#ð	ô 
”/Ó	"ñ	ó 
#ð	ô 
ñ	*ó 
ð	*ð ˆØ˜4 ™7‘N F¨T°!©WÑ$4Ð5ˆØ×Ñ¡ T 
¨HÕ5r<   r5   N)r7   r8   r9   r:   rÄ  r  r  r  r  r   r#  r&  r.  r1  r4  rA  rz  r‡  rž  r¯  r½  rÄ  rÛ  rï  r  r;   r5   r<   r=   r   r   Æ  sx   † ñò
ò62ò@òAòAòAòAò=ò Bò
6ò )ò&P4òdLò.*AòX/ò")ò,-ò)
òV
õ@6r<   r   c                 ó´   • U R                   U R                  S      nX1:w  a  [        S5      eU R                  U R                  S      nXB:w  a  [        S5      eg )Nr   zcache not used)Ú_cache_hitsÚ
signaturesÚAssertionErrorÚ_cache_misses)r¢  Ú
expect_hitÚexpect_missesÚhitÚmisss        r=   Ú_assert_cache_statsr  Ò  sa   € Ø
×
Ñ
˜E×,Ñ,¨QÑ/Ñ
0€CØ
ÓÜÐ-Ó.Ð.Ø×Ñ˜u×/Ñ/°Ñ2Ñ3€DØÓÜÐ-Ó.Ð.ð r<   c                   ó$   • \ rS rSrSrS rS rSrg)ÚTestOverloadMethodCachingiÛ  Fc                 óÌ   • [        U R                  R                  5      U l        [	        SU R                  5         U R                  5         S S S 5        g ! , (       d  f       g = f)NÚ	CACHE_DIR)r   rp  r7   Ú
_cache_dirr   Úrun_caching_overload_methodr¦  s    r=   Útest_caching_overload_methodÚ6TestOverloadMethodCaching.test_caching_overload_methodá  s>   € Ü(¨¯©×)@Ñ)@ÓAˆŒÜ˜[¨$¯/©/Õ:Ø×,Ñ,Ô.÷ ;×:Ö:ús   »AÁ
A#c                 ó  • [        SSS9" [        5      nU R                  U" [        5       5      S5        [	        USS5        UR                  [        45      nUR                  5        Vs/ s H%  nUR                  S5      (       d  M  SU;   d  M#  UPM'     nnU R                  [        U5      S5         [        R                  " S5      nUR                  5       nUR                  [         X`R"                  4S	9nUR%                  5         UR'                  [        5       5        UR)                  5         U R                  UR*                  S5        UR-                  SS
9nU R                  US5        g s  snf ! [         a	    [        n N½f = f)NT©rž  ÚcacherÛ   r   r/   Údeclarer!  Úspawn)Útargetr�   )Útimeout)r   r#  rŸ  r3   r  Úinspect_llvmrP   Ú
splitlinesÚ
startswithrÒ  r  ÚmultiprocessingÚget_contextÚAttributeErrorÚQueueÚProcessr  r  ÚstartÚputÚjoinÚexitcoderË  )	rH   r¢  ÚllvmirÚlnÚdeclsÚctxÚqÚprÂ   s	            r=   r  Ú5TestOverloadMethodCaching.run_caching_overload_methodæ  sU  € Ü˜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$   Á*E0ÂE0ÂE0Â4E5 Å5FÆF)r  N)r7   r8   r9   r:   Ú_numba_parallel_test_r  r  r;   r5   r<   r=   r  r  Û  s   † ð "Ðò/õ
"r<   r  c                 óä   • [        SU5         U R                  5       n[        SSS9" [        5      nU" U5      nU R	                  U5        [        USS5        SSS5        g! , (       d  f       g= f)z@
Used by TestOverloadMethodCaching.test_caching_overload_method
r  Tr  r/   r   N)r   rË  r   r#  r(  r  )r/  Ú	cache_dirrÝ   r¢  rÂ   s        r=   r  r    sW   € ô 
˜ iÕ	0Ø�e‰e‹gˆÜ˜T¨Ò.Ô/LÓMˆÙ�C‹jˆØ	�‰ˆcŒ
ä˜E 1 aÔ(÷ 
1×	0Ö	0ús   �AA!Á!
A/c                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	ÚTestIntrinsici  c                 óf  ^^• [         S 5       m[         S 5       m[        SS9U4S j5       n[        SS9U4S j5       nU R                  U" 5       S5        U R                  [        5       nU" 5         SSS5        U R                  S	WR                  R                  5        g! , (       d  f       N5= f)
z|
Verify that returning a None from codegen function is handled
automatically for void functions, otherwise raise exception.
c                 óV   • [         R                  " [         R                  5      nS nX#4$ )Nc                 ó   • g rO   r5   ©rI   rW   r+   r�   s       r=   ÚcodegenÚBTestIntrinsic.test_void_return.<locals>.void_func.<locals>.codegen  rK  r<   ©r	   Úvoidr„   ©r¿  ra  rŒ   r;  s       r=   Ú	void_funcÚ1TestIntrinsic.test_void_return.<locals>.void_func  s#   € ä—*’*œUŸ[™[Ó)ˆCòð �<Ðr<   c                 óV   • [         R                  " [         R                  5      nS nX#4$ )Nc                 ó   • g rO   r5   r:  s       r=   r;  ÚFTestIntrinsic.test_void_return.<locals>.non_void_func.<locals>.codegen&  rK  r<   )r	   r„   r?  s       r=   Únon_void_funcÚ5TestIntrinsic.test_void_return.<locals>.non_void_func"  s#   € ä—+’+œeŸk™kÓ*ˆCòð �<Ðr<   Tr�  c                  ó   >• T " S5        g©Nr/   r   r5   )r@  s   €r=   Úcall_void_funcÚ6TestIntrinsic.test_void_return.<locals>.call_void_func+  s   ø€ á�aŒLØr<   c                  ó   >• T " S5        grH  r5   )rE  s   €r=   Úcall_non_void_funcÚ:TestIntrinsic.test_void_return.<locals>.call_non_void_func0  s   ø€ á˜!ÔØr<   r   Nznon-void function returns None)r$   r   rÒ  r  r   r  r
  ry  )rH   rI  rL  r+  rE  r@  s       @@r=   Útest_void_returnÚTestIntrinsic.test_void_return  s­   ù€ ô 
ñ	 ó 
ð	 ô 
ñ	 ó 
ð	 ô 
�dÑ	ô	ó 
ð	ô 
�dÑ	ô	ó 
ð	ð
 	×Ñ™Ó)¨1Ô-à×Ñœ}Ô-°ÙÔ ÷ .à�‰Ð6¸¿¹¿¹ÕH÷ .Õ-ús   Á+B"Â"
B0c                 ó  ^ ^^^• SSK JnJnJnJn  U 4S jmS m[        TSS9U4S j5       nS nU" S	U" U5      U5      nU" U5      m[        S
S9UU4S j5       n[        R                  " S[        R                  S9n	[        5        n
U" U	5        U
R                  5       R                  5       nS	S	S	5        W
R                  5         [        [        [         U	5      5      nT R#                  UW5        g	! , (       d  f       NJ= f)zF
Usecase test: custom reinterpret cast to turn int values to pointers
r   )Ú	CFUNCTYPEÚPOINTERÚc_floatÚc_intc                 ól   >^ • [        T [        R                  5      (       d   e[        U U4S j5       nU$ )Nc                 ó¼   >• TR                  U [        R                  5        [        U[        R
                  5      (       a  T" [        R                  5      nS nX#4$ g )Nc                 óf   • Uu  nUR                   nU R                  U5      nUR                  XF5      $ rO   )r‹   Úget_value_typeÚinttoptr)rI   rW   r+   r�   ÚsrcÚrtypeÚllrtypes          r=   r;  Ú_TestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_caster.<locals>.unsafe_cast.<locals>.codegenM  s5   € Ø $™˜Ø )× 5Ñ 5˜Ø")×"8Ñ"8¸Ó"?˜Ø&×/Ñ/°Ó=Ð=r<   )rÑ  r   ÚContextrD   r	   rö   Úuintp)r¿  rZ  rŒ   r;  Úresult_typerH   s       €€r=   Úunsafe_castÚNTestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_caster.<locals>.unsafe_castF  sJ   ø€ à×%Ñ% i´·±Ô@Ü˜c¤5§=¡=×1Ñ1Ù%¤e§k¡kÓ2�Cò>ð ˜<Ð'ð 2r<   )rD   r	   ÚCPointerr$   )r`  ra  rH   s   ` €r=   Úunsafe_casterÚ9TestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_casterC  s4   ù€ Ü˜k¬5¯>©>×:Ñ:Ð:Ð:äõ(ó ð(ð Ðr<   c                 ó   • [        S5      e)Nznot callable from pythonr{   ©rZ  s    r=   Úunsafe_get_ctypes_pointerÚETestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_get_ctypes_pointerY  s   € Ü%Ð&@ÓAÐAr<   Fr�  c                 ó¢   >^• [        U [        R                  5      (       a.  T" [        R                  " U R                  5      5      mU4S jnU$ g )Nc                 ó8   >• T" U R                   R                  S9$ )Nrg  )Úctypesr=  )rÖ   ra  s    €r=   Ú
array_implÚdTestIntrinsic.test_ll_pointer_cast.<locals>.array_impl_unsafe_get_ctypes_pointer.<locals>.array_impla  s   ø€ Ù&¨3¯:©:¯?©?Ñ;Ð;r<   )rD   r	   rÍ   rc  rÎ   )Úarrtyperm  ra  rd  s     @€r=   Ú$array_impl_unsafe_get_ctypes_pointerÚPTestIntrinsic.test_ll_pointer_cast.<locals>.array_impl_unsafe_get_ctypes_pointer\  s=   ù€ ä˜'¤5§;¡;×/Ñ/Ù+¬E¯NªN¸7¿=¹=Ó,IÓJ�õ<ð "Ð!ð 0r<   c                 óB   • [        U5       H  n[        X   5        M     g rO   )rÀ   rñ   )Úptrr<  rÇ   s      r=   Úmy_c_fun_rawÚ8TestIntrinsic.test_ll_pointer_cast.<locals>.my_c_fun_rawg  s   € Ü˜1–X�Ü�c‘f–ò r<   NTr�  c                 ó:   >• T" U 5      nT" XR                   5        g rO   )rÁ   )rÖ   rs  Úmy_c_funrh  s     €€r=   rR  Ú/TestIntrinsic.test_ll_pointer_cast.<locals>.foop  s   ø€ á+¨CÓ0ˆCÙ�SŸ(™(Õ#r<   r7  )rÎ   )rl  rQ  rR  rS  rT  r   r   r­   rM  Úfloat32r   r  r   Úcloser€  Úmapr	  rÒ  )rH   rQ  rR  rS  rT  rp  rt  Ú	prototyperR  rÖ   Úbufrà  r=  rw  rd  rh  s   `            @@@r=   Útest_ll_pointer_castÚ"TestIntrinsic.test_ll_pointer_cast<  sá   û€ ÷ 	>Ó=õ	ò,	Bô 
Ð+°EÑ	:ô	"ó 
;ð	"ò	ñ ˜d¡G¨GÓ$4°eÓ<ˆ	Ù˜\Ó*ˆô 
�dÑ	õ	$ó 
ð	$ô
 �iŠi˜¤"§*¡*Ñ-ˆÜÔ #Ù�ŒHØ—,‘,“.×+Ñ+Ó-ˆC÷ ð 	�	‰	ŒÜ”cœ#˜s“mÓ$ˆØ×Ñ˜ Õ%÷ Õús   Â'C3Ã3
Dc                 óš  ^• [         S 5       m[        SS9U4S j5       nU R                  U" S5      S5        [        R                  n[        U5      n[        R                  " U5      nUS-  nU R                  U[        U5      5        [        R                  " U5      nU R                  U[        U5      5        U R                  U" S5      U" S5      5        [        R                  " T5      nU R                  U[        U5      5        [        R                  " U5      nU R                  TU5        U R                  U[        U5      5        g)z)
Test serialization of intrinsic objects
c                 ó   • S nU" U5      nX24$ )Nc                 ó   • US   $ rY  r5   r:  s       r=   r;  ÚCTestIntrinsic.test_serialization.<locals>.identity.<locals>.codegen…  ó   € Ø˜A‘w�r<   r5   )rI   r~   r;  rŒ   s       r=   ÚidentityÚ2TestIntrinsic.test_serialization.<locals>.identityƒ  s   € òñ �A“$ˆCØ�<Ðr<   Tr�  c                 ó   >• T" U 5      $ rO   r5   )r~   r…  s    €r=   rR  Ú-TestIntrinsic.test_serialization.<locals>.fooŒ  s   ø€ á˜A“;Ðr<   r/   N)
r$   r   rÒ  r%   Ú_memor  ÚpickleÚdumpsÚloadsrª  )	rH   rR  ÚmemoÚ	memo_sizeÚserialized_fooÚfoo_rebuiltÚserialized_identityÚidentity_rebuiltr…  s	           @r=   Útest_serializationÚ 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Õ.r<   c                 óŒ  • S n[         R                  n[        U5      n[        SU5      nU R                  UR                  U5        [
        R                  " U5      nUS-  nU R                  U[        U5      5        AU R                  U[        U5      5        [         R                  R                  5         US-  nU R                  U[        U5      5        [
        R                  " U5      nU R                  UR                  U5        [
        R                  " U5      nU R                  UR                  UR                  5        g)z#
Test deserialization of intrinsic
c                 ó   • S nU" U5      U4$ )Nc                 ó   • US   $ rY  r5   r:  s       r=   r;  ÚATestIntrinsic.test_deserialization.<locals>.defn.<locals>.codegen²  r„  r<   r5   )rI   r~   r;  s      r=   ÚdefnÚ0TestIntrinsic.test_deserialization.<locals>.defn±  s   € òñ �Q“4˜�=Ð r<   rR  r/   N)r%   r‰  r  rª  Ú_defnrŠ  r‹  rÒ  Ú_recentÚclearrŒ  ÚassertIsNot)rH   r™  r�  rŽ  ÚoriginalÚpickledÚrebuiltÚseconds           r=   Útest_deserializationÚ"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§\¡\Õ2r<   c                 ód  • [         S[        4S j5       nU R                  SUR                  5        U R                  SUR                  5        U R                  SUR
                  5        U R                  S[        0[        R                  " U5      5        U R                  SUR                  5        g )Nra  c                 óV   • [         R                  " [         R                  5      nS nX#4$ )úvoid_func docstringc                 ó   • g rO   r5   r:  s       r=   r;  Ú@TestIntrinsic.test_docstring.<locals>.void_func.<locals>.codegenÛ  rK  r<   r=  r?  s       r=   r@  Ú/TestIntrinsic.test_docstring.<locals>.void_funcÖ  s%   € ô —*’*œUŸ[™[Ó)ˆCòð �<Ðr<   znumba.tests.test_extendingr@  z/TestIntrinsic.test_docstring.<locals>.void_funcr§  )
r$   ÚintrÒ  r8   r7   r9   ÚassertDictEqualÚinspectÚget_annotationsrÄ  )rH   r@  s     r=   Útest_docstringÚTestIntrinsic.test_docstringÔ  sš   € ä	ð	 ¤Có 	 ó 
ð	 ð 	×ÑÐ5°y×7KÑ7KÔLØ×Ñ˜ i×&8Ñ&8Ô9Ø×ÑÐJØ"×/Ñ/ô	1à×Ñ˜c¤3˜Z¬×)@Ò)@ÀÓ)KÔLØ×ÑÐ.°	×0AÑ0AÕBr<   r5   N)
r7   r8   r9   r:   rN  r~  r“  r£  r¯  r;   r5   r<   r=   r6  r6    s"   † ò(IòT@&òD,/ò\&3õPCr<   r6  c                   ó    • \ rS rSrS rS rSrg)ÚTestRegisterJitableié  c                 óŽ   ^• [         S 5       mU4S jn[        SS9" U5      nU" SS5      nU" SS5      nU R                  X45        g )Nc                 ó
   • X-   $ rO   r5   )r~   rª   s     r=   rR  Ú.TestRegisterJitable.test_no_flags.<locals>.fooë  s	   € à‘5ˆLr<   c                 ó   >• T" X5      $ rO   r5   )r~   rª   rR  s     €r=   r¬  Ú.TestRegisterJitable.test_no_flags.<locals>.barï  s   ø€ Ù�q“9Ðr<   Tr�  r/   r‘   )r&   r   rÒ  )rH   r¬  Úcbarr=  rà  rR  s        @r=   Útest_no_flagsÚ!TestRegisterJitable.test_no_flagsê  sO   ø€ Ü	ñ	ó 
ð	õ	ô ˜DÒ! #Ó&ˆá�Q˜“ˆÙ�1�a‹jˆØ×Ñ˜Õ%r<   c                 ón  ^• [        SS9S 5       mU4S jnU R                  U" S5      R                  5       / SQ5        [        SS9" U5      nU R	                  [
        R                  5       nU" S	5        S S S 5        S
nU R                  U[        WR                  5      5        g ! , (       d  f       N6= f)NF)Ú_nrtc                 ó.   • [         R                  " U 5      $ rO   rä  )r<  s    r=   rR  Ú2TestRegisterJitable.test_flags_no_nrt.<locals>.fooù  s   € ä—9’9˜Q“<Ðr<   c                 ó   >• T" U 5      $ rO   r5   )r<  rR  s    €r=   r¬  Ú2TestRegisterJitable.test_flags_no_nrt.<locals>.barý  s   ø€ Ù�q“6ˆMr<   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
  )rH   r¬  r¸  r  ry  rR  s        @r=   Útest_flags_no_nrtÚ%TestRegisterJitable.test_flags_no_nrtø  sš   ø€ Ü	˜uÑ	%ñ	 ó 
&ð	 õ	ð 	×Ñ™˜Q›Ÿ™›ª)Ô4ä˜DÒ! #Ó&ˆØ×Ñœv×1Ñ1Ô2°fÙ�ŒG÷ 3ðð 	ð 	�‰�cœ3˜v×/Ñ/Ó0Õ1÷ 3Õ2ús   Á-	B&Â&
B4r5   N)r7   r8   r9   r:   r¹  rÃ  r;   r5   r<   r=   r²  r²  é  s   † ò&õ2r<   r²  c                   ó†   • \ rS rSr\R
                  " \SL S5      S 5       rS r\R
                  " \SL S5      S 5       r	Sr
g)ÚTestImportCythonFunctioni  Nz&Only run if SciPy >= 0.19 is installedc                 óê   ^• [        SS5      n[        R                  " [        R                  [        R                  5      nU" U5      m[	        SS9" U4S j5      nU R                  U" S5      S5        g )Núscipy.special.cython_specialÚj0Tr�  c                 ó   >• T" U 5      $ rO   r5   )r~   Ú_j0s    €r=   rb  Ú@TestImportCythonFunction.test_getting_function.<locals>.<lambda>  s	   ø€ ©#¨a¬&r<   r   r/   )r'   rl  rQ  Úc_doubler   rÒ  )rH   ÚaddrÚfunctyperÉ  rË  s       @r=   Útest_getting_functionÚ.TestImportCythonFunction.test_getting_function  s[   ø€ ä*Ø*¨Dó
ˆô ×#Ò#¤F§O¡O´V·_±_ÓEˆÙ�t‹nˆÜ˜$ÒÔ 0Ó1ˆØ×Ñ™˜A› Õ"r<   c                 óô   • U R                  [        5       n[        SS5        S S S 5        Sn[        R                  " U[        WR                  5      5      nU R                  U5        g ! , (       d  f       NL= f)NÚ
fakemoduleÚfakefunctionzNo module named '?fakemodule'?)r  ÚImportErrorr'   ÚreÚmatchr	  r
  r¬  )rH   r  ry  r×  s       r=   Útest_missing_moduleÚ,TestImportCythonFunction.test_missing_module  sZ   € Ø×Ñœ{Ô+¨vÜ'¨°nÔE÷ ,ð /ˆÜ—’˜œc &×"2Ñ"2Ó3Ó4ˆØ×Ñ˜UÕ#÷ ,Õ+ús   –A)Á)
A7c                 óÈ   • U R                  [        5       n[        SS5        S S S 5        SnU R                  U[	        WR
                  5      5        g ! , (       d  f       N6= f)NrÈ  rR  zINo function 'foo' found in __pyx_capi__ of 'scipy.special.cython_special')r  r½   r'   rÒ  r	  r
  )rH   r  ry  s      r=   Útest_missing_functionÚ.TestImportCythonFunction.test_missing_function  sT   € à×ÑœzÔ*¨fÜ'Ø.°ô÷ +ð
-ð 	ð 	×Ñ˜œc &×"2Ñ"2Ó3Õ4÷ +Õ*ús   –AÁ
A!r5   )r7   r8   r9   r:   ÚunittestÚskipIfÚscrÐ  rØ  rÛ  r;   r5   r<   r=   rÆ  rÆ    sO   † Ø‡_‚_�R˜4�ZÐ!IÓJñ#ó Kð#ò$ð ‡_‚_�R˜4�ZÐ!IÓJñ	5ó Kó	5r<   rÆ  Úmethod_jit_option_check_nrtr¼  T©Újit_optionsc                 ó   • S nU$ )Nc                 ó.   • [         R                  " S5      $ ©Nr7  rä  r–  s    r=   r  Ú+ov_method_jit_option_check_nrt.<locals>.imp0  ó   € Ü�yŠy˜‹}Ðr<   r5   r˜  s     r=   Úov_method_jit_option_check_nrtrè  ,  ó   € òð €Jr<   Úmethod_jit_option_check_no_nrtFc                 ó   • S nU$ )Nc                 ó.   • [         R                  " S5      $ rå  rä  r–  s    r=   r  Ú.ov_method_jit_option_check_no_nrt.<locals>.imp:  rç  r<   r5   r˜  s     r=   Ú!ov_method_jit_option_check_no_nrtrî  6  ré  r<   Úattr_jit_option_check_nrtc                 ó   • S nU$ )Nc                 ó.   • [         R                  " S5      $ rå  rä  r–  s    r=   r  Ú)ov_attr_jit_option_check_nrt.<locals>.impD  rç  r<   r5   r˜  s     r=   Úov_attr_jit_option_check_nrtró  @  ré  r<   Úattr_jit_option_check_no_nrtc                 ó   • S nU$ )Nc                 ó.   • [         R                  " S5      $ rå  rä  r–  s    r=   r  Ú,ov_attr_jit_option_check_no_nrt.<locals>.impN  rç  r<   r5   r˜  s     r=   Úov_attr_jit_option_check_no_nrtrø  J  ré  r<   c                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	ÚTestJitOptionsNoNRTiT  c                 óÔ   • SnU R                  [        R                  5       nU" U0 UD6  S S S 5        U R                  U[	        WR
                  5      5        g ! , (       d  f       N4= f)NrÁ  )r  r
   rÏ   r  r	  r
  )rH   Úfuncr�   r  ry  r  s         r=   Úcheck_error_no_nrtÚ&TestJitOptionsNoNRT.check_error_no_nrtW  sX   € ð'ð 	ð ×Ñœv×1Ñ1Ô2°fÙ�$Ð!˜&Ò!÷ 3à�‰�cœ3˜v×/Ñ/Ó0Õ1÷ 3Õ2ús   ¢	AÁ
A'c                 óÖ   ^• S m[        TSU0S9S 5       n[        U4S j5       nU(       a,  U R                  U" 5       [        R                  " S5      5        g U R                  U5        g )Nc                  ó.   • [         R                  " S5      $ rå  rä  r5   r<   r=   ÚdummyÚ8TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.dummyb  s   € Ü—9’9˜R“=Ð r<   r¼  rá  c                  ó   • S n U $ )Nc                  ó.   • [         R                  " S5      $ rå  rä  r5   r<   r=   r  ÚJTestJitOptionsNoNRT.no_nrt_overload_check.<locals>.ov_dummy.<locals>.dummyg  s   € Ü—y’y “}Ð$r<   r5   ©r  s    r=   Úov_dummyÚ;TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.ov_dummye  s   € ò%ð ˆLr<   c                  ó   >• T " 5       $ rO   r5   r  s   €r=   rR  Ú6TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.fool  s
   ø€ á“7ˆNr<   r7  )r   r   rŸ  r­   rM  rý  )rH   Úflagr  rR  r  s       @r=   Úno_nrt_overload_checkÚ)TestJitOptionsNoNRT.no_nrt_overload_checka  sh   ø€ ò	!ô 
�% f¨d ^Ñ	4ñ	ó 
5ð	ô 
ô	ó 
ð	ö Ø×#Ñ#¡C£E¬2¯9ª9°R«=Õ9à×#Ñ# CÕ(r<   c                 óH   • U R                  S5        U R                  S5        g )NTF)r  r¦  s    r=   Útest_overload_no_nrtÚ(TestJitOptionsNoNRT.test_overload_no_nrtu  s   € Ø×"Ñ" 4Ô(Ø×"Ñ" 5Õ)r<   c                 óÀ   • [         S 5       nU R                  U" [        5      [        R                  " S5      5        [         S 5       nU R                  U[        5        g )Nc                 ó"   • U R                  5       $ rO   )rà  r}   s    r=   ÚudtÚ<TestJitOptionsNoNRT.test_overload_method_no_nrt.<locals>.udtz  s   € à×0Ñ0Ó2Ð2r<   r7  c                 ó"   • U R                  5       $ rO   )rê  r}   s    r=   r  r  €  s   € à×3Ñ3Ó5Ð5r<   ©r   rŸ  rM   r­   rM  rý  ©rH   r  s     r=   Útest_overload_method_no_nrtÚ/TestJitOptionsNoNRT.test_overload_method_no_nrty  sV   € Ü	ñ	3ó 
ð	3ð 	×Ñ¡¤G£¬b¯iªi¸«mÔ<ä	ñ	6ó 
ð	6ð 	×Ñ ¤WÕ-r<   c                 óÀ   • [         S 5       nU R                  U" [        5      [        R                  " S5      5        [         S 5       nU R                  U[        5        g )Nc                 ó   • U R                   $ rO   )rï  r}   s    r=   r  Ú?TestJitOptionsNoNRT.test_overload_attribute_no_nrt.<locals>.udt‡  s   € à×.Ñ.Ð.r<   r7  c                 ó   • U R                   $ rO   )rô  r}   s    r=   r  r  �  s   € à×1Ñ1Ð1r<   r  r  s     r=   Útest_overload_attribute_no_nrtÚ2TestJitOptionsNoNRT.test_overload_attribute_no_nrt†  sV   € Ü	ñ	/ó 
ð	/ð 	×Ñ¡¤G£¬b¯iªi¸«mÔ<ä	ñ	2ó 
ð	2ð 	×Ñ ¤WÕ-r<   r5   N)
r7   r8   r9   r:   rý  r  r  r  r  r;   r5   r<   r=   rú  rú  T  s   † ò2ò)ò(*ò.õ.r<   rú  c                   ó@   ^ • \ rS rSrU 4S jrS rS rS rS rSr	U =r
$ )ÚTestBoxingCallingJITi”  c                 óŒ   >• [         TU ]  5         [        S5      nUu  U l        U l        U l        U R	                  5       U l        g )Nrw   )rm  ÚsetUprv   rm   rh   ro   Údyn_type)rH   Úmanyrp  s     €r=   r#  ÚTestBoxingCallingJIT.setUp•  s7   ø€ Ü‰‰ŒÜ& zÓ2ˆØ=AÑ:ˆÔ˜$œ,¨Ô(:ØŸ™›ˆ�r<   c                 ó
  ^^^• SmSm[         U4S j5       m[        U R                  5      UU4S j5       n[        U R                  5      S 5       n[        S 5       nU" U R
                  5      nU R                  UTT-   5        g )Nrº  rl   c                 ó,   >• U4S jn[        X5      nX24$ )Nc                 óL   >• Uu  nUR                  XDR                  T5      5      $ rO   ©r  ru  ©rI   rW   rŒ   r�   rQ   Úmagic_offsets        €r=   rM  ÚKTestBoxingCallingJIT.test_unboxer_basic.<locals>.my_intrinsic.<locals>.impl¤  ó"   ø€ Ø‘�Ø—{‘{ 3¯©°Ó(>Ó?Ð?r<   ©r+   ©r¿  rQ   rM  rŒ   r,  s       €r=   Úmy_intrinsicÚ=TestBoxingCallingJIT.test_unboxer_basic.<locals>.my_intrinsic¡  ó   ø€ õ@ô ˜CÓ%ˆCØ�9Ðr<   c                 ó  >• U	4S jnUR                   R                  [        R                  T5      /n[	        [        R
                  [        R                  5      nUR                  R                  X5U5      u  pg[        XvS9$ )Nc                 ó   >• T" U 5      $ rO   r5   ©r~   r1  s    €r=   ÚbridgeÚHTestBoxingCallingJIT.test_unboxer_basic.<locals>.unboxer.<locals>.bridge®  s   ø€ ñ $ A“Ð&r<   ©Úis_error©	rI   rV   r	   Úintpr+   Úvoidptrr¤   Úcall_jit_coder#   )
r`   ra   rR   r7  r�   rŒ   r:  rÂ   Úmagic_tokenr1  s
           €€r=   ÚunboxerÚ8TestBoxingCallingJIT.test_unboxer_basic.<locals>.unboxer«  s^   ø€ õ'ð
 —I‘I×*Ñ*¬5¯:©:°{ÓCÐDˆDÜœEŸM™M¬5¯:©:Ó6ˆCØŸG™G×1Ñ1°&¸tÓD‰MˆHÜ˜sÑ6Ð6r<   c                 óŒ   • UR                   R                  U[        R                  5      nUR                  R                  U5      $ rO   ©rW   Úptrtointr   Úintp_tr¤   Úlong_from_ssize_t©r`   rQ   rR   rÂ   s       r=   ÚboxerÚ6TestBoxingCallingJIT.test_unboxer_basic.<locals>.boxer¸  ó3   € ð —)‘)×$Ñ$ S¬'¯.©.Ó9ˆCØ—7‘7×,Ñ,¨SÓ1Ð1r<   c                 ó   • U $ rO   r5   r}   s    r=   ÚpassthruÚ9TestBoxingCallingJIT.test_unboxer_basic.<locals>.passthru¾  ó   € àˆHr<   ©r$   r"   rm   r!   r   r$  rÒ  )rH   r@  rH  rL  r,  r,  r?  r1  s        @@@r=   Útest_unboxer_basicÚ'TestBoxingCallingJIT.test_unboxer_basic›  s˜   ú€ ð ˆØˆä	ô	ó 
ð	ô 
ˆt×ÑÓ	 õ
	7ó 
!ð
	7ô 
ˆT×ÑÓ	ñ	2ó 
ð	2ô
 
ñ	ó 
ð	ñ �t—}‘}Ó%ˆØ×Ñ˜˜k¨LÑ8Õ9r<   c                 óT  • [        U R                  5      S 5       n[        U R                  5      S 5       n[        S 5       nU R	                  [
        5       nU" U R                  5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                 óü   • S nUR                   R                  [        R                  S5      /n[	        [        R
                  [        R                  5      nUR                  R                  X5U5      u  pg[        XvS9$ )Nc                 ó(   • U S:”  a  [        S5      eU $ )Nr   úcannot be x > 0©r½   r}   s    r=   r7  ÚHTestBoxingCallingJIT.test_unboxer_raise.<locals>.unboxer.<locals>.bridgeÊ  ó   € Ø�q“5Ü$Ð%6Ó7Ð7Ø�r<   r/   r9  r;  )r`   ra   rR   r7  r�   rŒ   r:  rÂ   s           r=   r@  Ú8TestBoxingCallingJIT.test_unboxer_raise.<locals>.unboxerÇ  s]   € òð
 —I‘I×*Ñ*¬5¯:©:°qÓ9Ð:ˆDÜœEŸM™M¬5¯:©:Ó6ˆCØŸG™G×1Ñ1°&¸tÓD‰MˆHÜ˜sÑ6Ð6r<   c                 óŒ   • UR                   R                  U[        R                  5      nUR                  R                  U5      $ rO   rC  rG  s       r=   rH  Ú6TestBoxingCallingJIT.test_unboxer_raise.<locals>.boxerÔ  rJ  r<   c                 ó   • U $ rO   r5   r}   s    r=   rL  Ú9TestBoxingCallingJIT.test_unboxer_raise.<locals>.passthruÚ  rN  r<   rU  ©
r"   rm   r!   r   r  r½   r$  r  r	  r
  ©rH   r@  rH  rL  r  s        r=   Útest_unboxer_raiseÚ'TestBoxingCallingJIT.test_unboxer_raiseÅ  sš   € ä	ˆt×ÑÓ	 ñ
	7ó 
!ð
	7ô 
ˆT×ÑÓ	ñ	2ó 
ð	2ô
 
ñ	ó 
ð	ð ×ÑœzÔ*¨fÙ�T—]‘]Ô#÷ +à�‰Øœs 6×#3Ñ#3Ó4õ	
÷ +Õ*úó   ÁBÂ
B'c                 ó
  ^^^• SmSm[         U4S j5       m[        U R                  5      S 5       n[        U R                  5      UU4S j5       n[        S 5       nU" U R
                  5      nU R                  UTT-   5        g )Nrº  i8  c                 ó,   >• U4S jn[        X5      nX24$ )Nc                 óL   >• Uu  nUR                  XDR                  T5      5      $ rO   r*  r+  s        €r=   rM  ÚCTestBoxingCallingJIT.test_boxer.<locals>.my_intrinsic.<locals>.implì  r.  r<   r/  r0  s       €r=   r1  Ú5TestBoxingCallingJIT.test_boxer.<locals>.my_intrinsicé  r3  r<   c                 óH   • [        UR                  R                  5       5      $ rO   r]   r_   s      r=   r@  Ú0TestBoxingCallingJIT.test_boxer.<locals>.unboxeró  ó   € ä˜qŸy™y×8Ñ8Ó:Ó;Ð;r<   c                 ó(  >• U	4S jnUR                   R                  [        R                  T5      /n[	        [        R                  [        R                  5      nUR
                  R                  X5U5      u  pgUR
                  R                  U5      $ )Nc                 ó   >• T" U 5      $ rO   r5   r6  s    €r=   r7  Ú>TestBoxingCallingJIT.test_boxer.<locals>.boxer.<locals>.bridgeú  s   ø€ Ù# A“Ð&r<   )rI   rV   r	   r<  r+   r¤   r>  rF  )
r`   rQ   rR   r7  r�   rŒ   r:  rÂ   r?  r1  s
           €€r=   rH  Ú.TestBoxingCallingJIT.test_boxer.<locals>.boxer÷  sh   ø€ õ'ð —I‘I×*Ñ*¬5¯:©:°{ÓCÐDˆDÜœEŸJ™J¬¯
©
Ó3ˆCØŸG™G×1Ñ1°&¸tÓD‰MˆHØ—7‘7×,Ñ,¨SÓ1Ð1r<   c                 ó   • U $ rO   r5   r}   s    r=   rL  Ú1TestBoxingCallingJIT.test_boxer.<locals>.passthru  rN  r<   rO  )rH   r@  rH  rL  Úrr,  r?  r1  s        @@@r=   Ú
test_boxerÚTestBoxingCallingJIT.test_boxerä  s–   ú€ àˆØˆä	ô	ó 
ð	ô 
ˆt×ÑÓ	 ñ	<ó 
!ð	<ô 
ˆT×ÑÓ	õ	2ó 
ð	2ô 
ñ	ó 
ð	ñ �T—]‘]Ó#ˆØ×Ñ˜˜K¨,Ñ6Õ7r<   c                 óT  • [        U R                  5      S 5       n[        U R                  5      S 5       n[        S 5       nU R	                  [
        5       nU" U R                  5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                 óH   • [        UR                  R                  5       5      $ rO   r]   r_   s      r=   r@  Ú6TestBoxingCallingJIT.test_boxer_raise.<locals>.unboxer  rj  r<   c                 ó�  • S nUR                   R                  [        R                  S5      /n[	        [        R                  [        R                  5      nUR
                  R                  X5U5      u  pg[        R                  " UR                  UR
                  R                  SS9nUR                  R                  UR                  R                  U5      5         UR
                  R                  U5      n	UR                  R                  X˜5        S S S 5        UR                  R                  U5      $ ! , (       d  f       N)= f)Nc                 ó(   • U S:”  a  [        S5      eU $ )Nr   úcannot do x > 0rV  r}   s    r=   r7  ÚDTestBoxingCallingJIT.test_boxer_raise.<locals>.boxer.<locals>.bridge  rX  r<   r/   T)Úzfill)rI   rV   r	   r<  r+   r¤   r>  r   Úalloca_oncerW   ÚpyobjÚif_thenÚnot_rF  ÚstoreÚload)
r`   rQ   rR   r7  r�   rŒ   r:  rÂ   Úretvalra   s
             r=   rH  Ú4TestBoxingCallingJIT.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ä×(Ò(¨¯©°A·G±G·M±MÈÑNˆFØ—‘×"Ñ" 1§9¡9§>¡>°(Ó#;Õ<Ø—g‘g×/Ñ/°Ó4�Ø—	‘	—‘ Ô,÷ =ð —9‘9—>‘> &Ó)Ð)÷ =Õ<ús   Ã7D7Ä7
Ec                 ó   • U $ rO   r5   r}   s    r=   rL  Ú7TestBoxingCallingJIT.test_boxer_raise.<locals>.passthru   rN  r<   ry  r^  r_  s        r=   Útest_boxer_raiseÚ%TestBoxingCallingJIT.test_boxer_raise	  sš   € ä	ˆt×ÑÓ	 ñ	<ó 
!ð	<ô 
ˆT×ÑÓ	ñ	*ó 
ð	*ô  
ñ	ó 
ð	ð ×ÑœzÔ*¨fÙ�T—]‘]Ô#÷ +à�‰Øœs 6×#3Ñ#3Ó4õ	
÷ +Õ*úrb  )rh   rm   r$  ro   )r7   r8   r9   r:   r#  rP  r`  rr  r†  r;   rˆ  r‰  s   @r=   r!  r!  ”  s#   ø† õ'ò(:òT
ò>#8÷J
ð 
r<   r!  c                 ó   • g rO   r5   r}   s    r=   Úwith_objmode_cache_ov_exampler‰  +  s   € ð 	r<   c                   ód   • \ rS rSrSrSrS rS rS r\	S 5       r
\	S 5       r\	S	 5       rS
 rSrg)ÚTestCachingOverloadObjmodei1  zLTest caching of the use of overload implementations that use
`with objmode`
Fc                 óN   • [         R                  " S[        R                  5        g )NÚerror)ÚwarningsÚsimplefilterr
   ÚNumbaWarningr¦  s    r=   r#  Ú TestCachingOverloadObjmode.setUp8  s   € Ü×Ò˜g¤v×':Ñ':Õ;r<   c                 ó.   • [         R                  " 5         g rO   )rŽ  Úresetwarningsr¦  s    r=   ÚtearDownÚ#TestCachingOverloadObjmode.tearDown;  s   € Ü×ÒÕ r<   c                 ó˜  ^^• [        U R                  R                  5      n[        SU5         S mU4S jm[	        [
        5      U4S j5       n[        SS9S 5       nT" S5      nU" S5      nU R                  XT5        [        SS9" UR                  5      nU" S5      nU R                  XT5        S S S 5        g ! , (       d  f       g = f)	Nr  c                 ór   • [         R                  " U 5      U -  n[         R                  R                  U5      $ rO   )r­   rM  ÚlinalgÚnorm)r~   rÖ   s     r=   ÚrealworkÚJTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.realworkB  s'   € ä—i’i “l QÑ&�Ü—y‘y—~‘~ cÓ*Ð*r<   c                 ó   >• T" U 5      $ rO   r5   )r~   rš  s    €r=   Úpython_codeÚMTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.python_codeG  s   ø€ á “{Ð"r<   c                 ó   >• U4S jnU$ )Nc                 ó`   >• [        SS9   T" U 5      nS S S 5        U$ ! , (       d  f       W$ = f©Nr°  )rª   ©r   )r~   rª   r�  s     €r=   rM  ÚqTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>._ov_with_objmode_cache_ov_example.<locals>.implM  s,   ø€ Ü  9Ó-Ù'¨›N˜÷ .à�H÷ .Ô-à�Húó   ‹	ž
-r5   )r~   rM  r�  s     €r=   Ú!_ov_with_objmode_cache_ov_exampleÚcTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>._ov_with_objmode_cache_ov_exampleK  s   ø€ õð
 �r<   T©r  c                 ó   • [        U 5      $ rO   )r‰  r}   s    r=   ÚtestcaseÚJTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.testcaseT  s   € ä4°QÓ7Ð7r<   rl   )	r   rp  r7   r   r   r‰  r   rÒ  Úpy_func)	rH   r4  r¥  r©  r=  rà  Útestcase_cachedr�  rš  s	          @@r=   Útest_caching_overload_objmodeÚ8TestCachingOverloadObjmode.test_caching_overload_objmode>  s¹   ù€ Ü" 4§>¡>×#:Ñ#:Ó;ˆ	Ü˜[¨)Õ4ò+õ
#ô Ô3Ó4ôó 5ðô ˜Ññ8ó ð8ñ ˜c“]ˆFÙ˜3“-ˆCØ×Ñ˜SÔ)ä"¨Ò.¨x×/?Ñ/?Ó@ˆOÙ! #Ó&ˆCØ×Ñ˜SÔ)÷= 5×4Ö4ús   ®BB;Â;
C	c                 ó°   ^^• S mS m[        T5      U4S j5       n[        SS9U4S j5       nU" 5       nUR                  5       nX4:w  a  [        S5      eU$ )Nc                 ó2   • [         R                  " X-   5      $ rO   ©r­   Úsumr  s     r=   Údo_thisÚGTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.do_thisb  ó   € Ü—6’6˜!™%“=Ð r<   c                 ó2   • [         R                  " X-   5      $ rO   r±  r  s     r=   Údo_somethingÚLTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.do_somethinge  rµ  r<   c                 ó   >• U4S jnU$ )Nc                 ó`   >• [        SS9   T" X5      nS S S 5        U$ ! , (       d  f       W$ = fr¡  r¢  )ra  rG  rª   r³  s      €r=   Ú_do_something_implÚqTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.overload_do_something.<locals>._do_something_implj  s,   ø€ Ü˜yÓ)Ù ›�A÷ *à�÷ *Ô)à�úr¤  r5   )ra  rG  r»  r³  s      €r=   Úoverload_do_somethingÚUTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.overload_do_somethingh  s   ø€ õð &Ð%r<   Tr§  c                  ól   >• [         R                  " S5      n [         R                  " S5      nT" X5      $ )Nr¨  rä  )ra  rG  r·  s     €r=   Útest_cachingÚLTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.test_cachingp  s(   ø€ ä—	’	˜"“ˆAÜ—	’	˜"“ˆAÙ Ó%Ð%r<   zincorrect result)r   r   r«  r	  )rå  r½  rÀ  rà  r=  r·  r³  s        @@r=   Úcheck_objmode_cache_ndarrayÚ6TestCachingOverloadObjmode.check_objmode_cache_ndarray`  so   ù€ ò	!ò	!ô 
�,Ó	ô	&ó 
 ð	&ô 
�DÑ	ô	&ó 
ð	&ñ
 ‹nˆØ×%Ñ%Ó'ˆð ‹=Ü Ð!3Ó4Ð4ØÐr<   c                 ó$   • U R                  5         g rO   )rÂ  )rå  s    r=   Ú*populate_objmode_cache_ndarray_check_cacheÚETestCachingOverloadObjmode.populate_objmode_cache_ndarray_check_cache~  s   € à×'Ñ'Õ)r<   c                 óÜ   • U R                  5       n[        UR                  R                  5      S:w  a  [	        S5      e[        UR                  R
                  5      S::  a  [	        S5      eg )Nr   zunexpected cache misszunexpected missing cache hit)rÂ  r  ÚstatsÚcache_missesr	  Ú
cache_hits)rå  Údisps     r=   Ú'check_objmode_cache_ndarray_check_cacheÚBTestCachingOverloadObjmode.check_objmode_cache_ndarray_check_cache‚  s[   € à×.Ñ.Ó0ˆÜˆt�z‰z×&Ñ&Ó'¨1Ó,Ü Ð!8Ó9Ð9Üˆt�z‰z×$Ñ$Ó%¨Ó*Ü Ð!?Ó@Ð@ð +r<   c                 ó  • [        U R                  R                  5      n[        SU5         [	        U R
                  U5        [	        U R                  U5      nS S S 5        U R                  WS   S5        g ! , (       d  f       N$= f)Nr  r*  r   )r   rp  r7   r   r   rÅ  rÌ  rÒ  )rH   r4  rÂ   s      r=   Ú test_check_objmode_cache_ndarrayÚ;TestCachingOverloadObjmode.test_check_objmode_cache_ndarrayŠ  sp   € ô # 4§>¡>×#:Ñ#:Ó;ˆ	Ü˜[¨)Õ4ä+Ø×?Ñ?Àôô 2Ø×<Ñ<¸ióˆC÷ 5ð 	×Ñ˜˜Z™¨!Õ,÷ 5Õ4ús   ¬-A7Á7
Br5   N)r7   r8   r9   r:   rÄ  r2  r#  r”  r­  ÚclassmethodrÂ  rÅ  rÌ  rÏ  r;   r5   r<   r=   r‹  r‹  1  sb   † ñð "Ðò<ò!ò *ðD ñó ðð: ñ*ó ð*ð ñAó ðAõ-r<   r‹  c                   ó    • \ rS rSrS rS rSrg)ÚTestMisciš  c                 ól  • S nU R                  [        U5      5        U R                  [        [        U5      5      5        U R                  [        [	        U5      5      5        U R                  [        [	        SS9" U5      5      5        U R                  [        [        SS5      " U5      5      5        g )Nc                 ó   • g rO   r5   r}   s    r=   rR  Ú$TestMisc.test_is_jitted.<locals>.fooœ  r€  r<   T)Úparallelzvoid(float64[:])z(m))rv  r(   rº  r   r   r   )rH   rR  s     r=   Útest_is_jittedÚTestMisc.test_is_jitted›  s‡   € ò	ð 	×Ñœ 3›Ô(Ø�‰œ	¤$ s£)Ó,Ô-Ø×Ñœ¤9¨S£>Ó2Ô3Ø×Ñœ¤9°dÒ#;¸CÓ#@ÓAÔBØ×ÑÜ”kÐ"4°eÔ<¸SÓAÓBõ	
r<   c                 óÈ   • [         S 5       n[         S 5       nU R                  U" 5       UR                  5       5        U R                  U" 5       UR                  5       5        g )Nc                  ó@   • [         R                  " SSS9R                  $ )Nrl   éÈ  )r¼   Ú
fill_value©r­   Úfullr¼   r5   r<   r=   Ústandard_orderÚ:TestMisc.test_overload_arg_binding.<locals>.standard_orderª  s   € ä—7’7 °Ñ5×;Ñ;Ð;r<   c                  ó@   • [         R                  " SSS9R                  $ )NrÜ  rl   )rÝ  r¼   rÞ  r5   r<   r=   Úreversed_orderÚ:TestMisc.test_overload_arg_binding.<locals>.reversed_order®  s   € ä—7’7 c°Ñ5×;Ñ;Ð;r<   )r   rŸ  r«  )rH   rà  rã  s      r=   Útest_overload_arg_bindingÚ"TestMisc.test_overload_arg_binding§  sd   € ô 
ñ	<ó 
ð	<ô 
ñ	<ó 
ð	<ð 	×Ñ¡Ó 0°.×2HÑ2HÓ2JÔKØ×Ñ¡Ó 0°.×2HÑ2HÓ2JÕKr<   r5   N)r7   r8   r9   r:   rØ  rå  r;   r5   r<   r=   rÓ  rÓ  š  s   † ò

õLr<   rÓ  c                   ó    • \ rS rSrS rS rSrg)ÚTestOverloadPreferLiterali¶  c                 óœ  ^^• S mS mS n[        TSS9" U5        [        T5      " U5        [        U4S j5       nU" S5      u  p4nU R                  US5        U R                  US	5        U R                  US
5        [        U4S j5       nU" S5      u  p4nU R                  US5        U R                  US	5        U R                  US
5        g )Nc                 ó   • g rO   r5   r}   s    r=   Ú
prefer_litÚ;TestOverloadPreferLiteral.test_overload.<locals>.prefer_lit¸  r€  r<   c                 ó   • g rO   r5   r}   s    r=   Únon_litÚ8TestOverloadPreferLiteral.test_overload.<locals>.non_lit»  r€  r<   c                 ó    • [        U [        R                  5      (       a+  U R                  S:X  a  S nU$ [        R
                  " S5      eS nU$ )Nr/   c                 ó   • gr¹  r5   r}   s    r=   rM  ÚATestOverloadPreferLiteral.test_overload.<locals>.ov.<locals>.implÂ  ó   € Ø%r<   úliteral valuec                 ó   • U S-  $ ©Néd   r5   r}   s    r=   rM  rò  È  ó   € Ø˜s™7�Nr<   ©rD   r	   ÚIntegerLiteralÚliteral_valuer
   rÏ   rö  s     r=   ÚovÚ3TestOverloadPreferLiteral.test_overload.<locals>.ov¾  óF   € Ü˜!œU×1Ñ1×2Ñ2à—?‘? aÓ'ò&à�Kä ×,Ò,¨_Ó=Ð=ò#à�r<   T©Úprefer_literalc                 ó2   >• T" S5      T" S5      T" U 5      4$ ©Nr/   r‘   r5   ©r~   rë  s    €r=   Úcheck_prefer_litÚATestOverloadPreferLiteral.test_overload.<locals>.check_prefer_litÏ  ó   ø€ á˜a“=¡*¨Q£-±¸A³Ð>Ð>r<   rÉ  rº  éÈ   é,  c                 ó2   >• T" S5      T" S5      T" U 5      4$ r  r5   ©r~   rî  s    €r=   Úcheck_non_litÚ>TestOverloadPreferLiteral.test_overload.<locals>.check_non_litØ  ó   ø€ á˜1“:™w q›z©7°1«:Ð5Ð5r<   r÷  )r   r   rÒ  )	rH   rü  r  ra  rG  rR   r  rî  rë  s	          @@r=   Útest_overloadÚ'TestOverloadPreferLiteral.test_overload·  sÔ   ù€ ò	ò	ò	ô 	�¨DÒ1°"Ô5Ü�Ô˜"Ôä	ô	?ó 
ð	?ñ # 1Ó%‰ˆˆaØ×Ñ˜˜FÔ#Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÔ ä	ô	6ó 
ð	6ñ   Ó"‰ˆˆaØ×Ñ˜˜CÔ Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÕ r<   c                 ó¶  • S n[        [        SSS9" U5        [        [        SSS9" U5        [        S 5       nU" [        5       S5      u  p4nU R	                  US	5        U R	                  US
5        U R	                  US5        [        S 5       nU" [        5       S5      u  p4nU R	                  US5        U R	                  US
5        U R	                  US5        g )Nc                 ó    • [        U[        R                  5      (       a+  UR                  S:X  a  S nU$ [        R
                  " S5      eS nU$ )Nr/   c                 ó   • gr¹  r5   ©rH   r~   s     r=   rM  ÚHTestOverloadPreferLiteral.test_overload_method.<locals>.ov.<locals>.implæ  ró  r<   rô  c                 ó   • US-  $ rö  r5   r  s     r=   rM  r  ì  rø  r<   rù  )rH   r~   rM  s      r=   rü  Ú:TestOverloadPreferLiteral.test_overload_method.<locals>.ovâ  rþ  r<   Úmethod_prefer_literalTrÿ  Úmethod_non_literalFc                 óf   • U R                  S5      U R                  S5      U R                  U5      4$ r  )r  ©r  r~   s     r=   r  ÚHTestOverloadPreferLiteral.test_overload_method.<locals>.check_prefer_litú  s8   € ð ×+Ñ+¨AÓ.Ø×+Ñ+¨AÓ.Ø×+Ñ+¨AÓ.ðð r<   rÉ  rº  r  r  c                 óf   • U R                  S5      U R                  S5      U R                  U5      4$ r  )r  r  s     r=   r  ÚETestOverloadPreferLiteral.test_overload_method.<locals>.check_non_lit  s8   € ð ×(Ñ(¨Ó+Ø×(Ñ(¨Ó+Ø×(Ñ(¨Ó+ðð r<   r÷  rÚ  )rH   rü  r  ra  rG  rR   r  s          r=   Útest_overload_methodÚ.TestOverloadPreferLiteral.test_overload_methodá  sï   € ò	ô 	ÜÐ0Øò	
ð ô	ô
 	ÜÐ-Ø ò	
ð ô	ô
 
ñ	ó 
ð	ñ #¤7£9¨aÓ0‰ˆˆaØ×Ñ˜˜FÔ#Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÔ ä	ñ	ó 
ð	ñ  ¤£	¨1Ó-‰ˆˆaØ×Ñ˜˜CÔ Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÕ r<   r5   N)r7   r8   r9   r:   r  r  r;   r5   r<   r=   rè  rè  ¶  s   † ò(!õT1!r<   rè  c                   ó   • \ rS rSrS rSrg)ÚTestIntrinsicPreferLiterali  c                 óŠ  ^^• S n[        SS9" U5      m[        SS9" U5      m[        U4S j5       nU" S5      u  p4nU R                  US5        U R                  US5        U R                  US	5        [        U4S
 j5       nU" S5      u  p4nU R                  US5        U R                  US5        U R                  US	5        g )Nc                 óØ   • [        [        R                  U5      n[        U[        R                  5      (       a,  UR
                  S:X  a  S nX#4$ [        R                  " S5      eS nX#4$ )Nr/   c                 óp   • UR                   S   nU R                  U5      n[        R                  " US5      $ )Nr   rº  )r�   rX  r   ÚConstant)rI   rW   r+   r�   Úatyper\  s         r=   r;  ÚJTestIntrinsicPreferLiteral.test_intrinsic.<locals>.intrin.<locals>.codegen  s1   € Ø )§¡¨qÑ 1˜Ø")×"8Ñ"8¸Ó"?˜Ü!Ÿ{š{¨7°FÓ;Ð;r<   rô  c                 ó”   • UR                   nU R                  U5      n[        R                  " US5      nUR	                  US   U5      $ )Nr÷  r   )r‹   rX  r   r%  Úmul)rI   rW   r+   r�   r&  r\  Úint_100s          r=   r;  r'  %  sB   € Ø%×1Ñ1�EØ%×4Ñ4°UÓ;�GÜ Ÿkšk¨'°3Ó7�GØ"Ÿ;™; t¨A¡w°Ó8Ð8r<   )r+   r	   r<  rD   rú  rû  r
   rÏ   )rI   r~   rŒ   r;  s       r=   ÚintrinÚ9TestIntrinsicPreferLiteral.test_intrinsic.<locals>.intrin  s`   € äœEŸJ™J¨Ó*ˆCÜ˜!œU×1Ñ1×2Ñ2à—?‘? aÓ'ò<ð ˜<Ð'ä ×,Ò,¨_Ó=Ð=ò9ð
 �|Ð#r<   Trÿ  Fc                 ó2   >• T" S5      T" S5      T" U 5      4$ r  r5   r  s    €r=   r  ÚCTestIntrinsicPreferLiteral.test_intrinsic.<locals>.check_prefer_lit/  r  r<   rÉ  rº  r  r  c                 ó2   >• T" S5      T" S5      T" U 5      4$ r  r5   r
  s    €r=   r  Ú@TestIntrinsicPreferLiteral.test_intrinsic.<locals>.check_non_lit8  r  r<   r÷  )r$   r   rÒ  )	rH   r+  r  ra  rG  rR   r  rî  rë  s	          @@r=   Útest_intrinsicÚ)TestIntrinsicPreferLiteral.test_intrinsic  sÌ   ù€ ò	$ô* ¨dÒ3°FÓ;ˆ
Ü¨5Ò1°&Ó9ˆä	ô	?ó 
ð	?ñ # 1Ó%‰ˆˆaØ×Ñ˜˜FÔ#Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÔ ä	ô	6ó 
ð	6ñ   Ó"‰ˆˆaØ×Ñ˜˜CÔ Ø×Ñ˜˜CÔ Ø×Ñ˜˜CÕ r<   r5   N)r7   r8   r9   r:   r1  r;   r5   r<   r=   r!  r!    s   † õ)!r<   r!  c                   ó   • \ rS rSrS rSrg)ÚTestNumbaInternalOverloadsiB  c                 ó²  ^^• SmU4S jmUU4S jn[        S 5      R                  S5        [        R                  R                  R
                  R                  5       nUR                  5         UR                  nUR                  5        HI  u  pEUR                   H4  n[        USS5      (       d  M  U" UR                  UR                  5        M6     MK     g )Nr   c                 ó  >• U R                  S5      (       dÐ  [        [        R                  U 5      n[        R
                  " U5      (       aš  UR                  R                  5       nU Hy  nU(       d  M  UR                  5       nUR                  U 5      (       d  M4  U S:X  a  SnSU S3n0 n [        U0 U5        UR                  U 5      n[        R                  " U5      s  $    g g g ! [         a    TS:X  a  [        S5           g f = f)NÚ_Úseedz
seed(seed)zdef z:
	passr‘   z%... skipped as cannot parse signature)r!  rw  r­   Úrandomr­  Ú	isbuiltinrÄ  r   ÚstripÚexecrË  r+   ÚSyntaxErrorrñ   )r~   ÚthingÚdocstrÚlÚslÚ	fake_implÚfnÚDEBUGs          €r=   Úsig_from_np_randomÚ[TestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.sig_from_np_randomS  só   ø€ Ø—<‘< ×$Ñ$Ü¤§	¡	¨1Ó-�Ü×$Ò$ U×+Ñ+Ø"Ÿ]™]×5Ñ5Ó7�FÛ#˜ß˜1Ø!"§¡£˜BØ!Ÿ}™}¨Q×/Ó/ð $%¨£;Ø)5 Bà.2°2°$°iÐ,@ 	Ø$& ð
!AÜ$(¨°B¸Ô$:ð *+¯©¨q« BÜ+2×+<Ò+<¸RÓ+@Ò$@ò- $ð ,ð %øô$ (3ó !0à',°£zÜ(-ð /:ô );â+/ð!0ús   Â.C)Ã)DÄDc                 ó>  >• TS:X  a  [        SU  35        S nS n [        R                  " U 5      nUGb”  [        R                  " U5      n[        UR                  R                  5       5      n[        UR                  R                  5       5      n[        US [        U5       U5       GH  u  pšXš:w  d  M  UR                  U	   nUR                  UR                  :X  a  TS:X  a  [        S5          g S[        U5      ;   a  TS:X  a  [        S5          g U R                  (       a   U R                  R!                  S	5      (       d?  U" XX65      nTS
:w  a%  TS:X  a  [        S5        U(       a  [        U5          g [        U5      eTS:X  a(  U R                  (       d  [        S5        O[        S5          g    TS:X  a  [        S5        g g g ! [         aG    [	        U SS5      =n(       a/  [	        [
        R                  US5      =n(       a  XP:X  a  T" U5      n GNéf = f)Nr‘   z
Checking: c                 óš  • / nU  S[        U S5       S3nUR                  U5        UR                  SU 35        UR                  SU 35        [        R                  " U5      S   n[        R                  " U5      nUR                  [        R                  S   S5      nUR                  S	U S
U 35        SSR                  U5      -   n	U	$ )Nz from module 'r8   z' has mismatched sig.z    - expected: z    -      got: r/   r   Ú zfrom Ú:Ú
)	rw  rx  r­  ÚgetsourcelinesÚgetfileÚreplaceÚnumbaÚ__path__r)  )
rü  Úoverload_funcÚfunc_sigÚol_sigry  rè  ÚlinenoÚ
tmpsrcfileÚsrcfileÚmsgstrs
             r=   Úcreate_messageÚhTestNumbaInternalOverloads.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Ø §	¡	¨#£Ñ.�Ø�r<   r7   Fz.... skipped as positional only arguments foundÚ*z... skipped as contains *argsrO  r   z... INVALIDz$... skipped as no __module__ presentz... skipped as Numba internalz... OK)rñ   r­  r+   r½   rw  r­   r9  r€  Ú
parametersr�  Úzipr  ÚkindÚPOSITIONAL_ONLYr	  r8   r!  )rü  rQ  rX  rR  ÚfnameÚ
maybe_funcrS  r~   rª   ra  rG  r0  rW  rD  rE  s                €€r=   ÚcheckerÚPTestNumbaInternalOverloads.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Ø•vØ$×/Ñ/°Ñ2˜ØŸ6™6 Q×%6Ñ%6Ó6à$¨›zÜ %ð '8ô !9á!Ø ¤C¨£F›]Ø$¨›zÜ %Ð&EÔ FÙ!ð %)§O§OØ(,¯©×(BÑ(BÀ7×(KÑ(KÙ)7¸Ø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   œG ÇAHÈHc                  ó   • g rO   r5   r5   r<   r=   rb  ÚQTestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.<lambda>»  s   € �dr<   r5   Ú_overload_funcF)r   ÚcompilerO  Úcorer   rI   r^  r¹  Ú_registriesÚitemsÚ	functionsrw  rœ   re  )	rH   ra  ÚtyctxÚregsÚkÚvÚitemrD  rE  s	          @@r=   Ú$test_signatures_match_overloaded_apiÚ?TestNumbaInternalOverloads.test_signatures_match_overloaded_apiD  s¤   ù€ ð ˆõ	Aö:G	(ôV 	‰]Ó×#Ñ# BÔ'Ü—
‘
×!Ñ!×)Ñ)×1Ñ1Ó3ˆØ�‰Œð × Ñ ˆØ—J‘J–L‰DˆAØŸœ�Ü˜4Ð!1°5×9Ó9Ù˜DŸH™H d×&9Ñ&9Ö:ó $ò !r<   r5   N)r7   r8   r9   r:   rp  r;   r5   r<   r=   r4  r4  B  s   † õ@;r<   r4  Ú__main__rO   )¯r­  r’   r  r  rŠ  r"  rl  rŽ  rÖ  Únumpyr­   Úllvmliter   rO  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   rÝ  Ú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_specialrß  rÕ  rq   r3   rr   r@   rP   rM   rs   rS   rE   rY   r[   rt   rb   rv   rë   r  Úmydummy_type_2ry   r   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.  r2  r5  r8  r;  r?  rD  rG  rK  rP  rR  rU  rW  rd  rf  ÚCallablerh  r‹  r’  rÁ  r™  r›  rÇ  r   r  r  r  r6  r²  rÆ  rè  rî  ró  rø  rú  r!  r‰  r‹  rÓ  rè  r!  r4  r7   Úmainr5   r<   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ÓØ‡MƒM…Oð øðKD ó Ø	ƒBðús   Â:	R ÒRÒR