Ë
    èÿæi�–  ã                   ó:  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	Z
d dlmZmZmZmZ d dlmZmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlm Z! d dl"Z"e!dz
  Z#	 d dl$Z$	 d dl&Z& ejN                  «       dk(  Z(d„ Z)d„ Z*d„ Z+d1d„Z,d2d„Z-d3d„Z.d3d„Z/d4d„Z0 G d„ de«      Z1 G d„ de1«      Z2 G d„ de1«      Z3 G d„ de3«      Z4 G d„ d e«      Z5 G d!„ d"e«      Z6 G d#„ d$e"j*                  «      Z7 G d%„ d&e"j*                  «      Z8ed5d'„«       Z9ed4d(„«       Z:ed)„ «       Z;ee;fd*„«       Z<d+„ Z= G d,„ d-ee"j*                  «      Z> G d.„ d/e"j*                  «      Z?e@d0k(  r e"j‚                  «        yy# e%$ r dZ$Y �Œw xY w# e%$ r dZ&Y �Œw xY w)6é    N)Úchain)ÚStringIO)ÚnjitÚjitÚtypeofÚ	vectorize)ÚtypesÚerrors)Ú_dispatcher)ÚTestCaseÚcaptured_stdout)Úas_dtype)Ú
Dispatcher)Úoverload)Úneeds_lapackÚSerialMixin)Ú_TIMEOUTg      N@Úarmv7lc                 ó   — | S ©N© ©Úxs    úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_dispatcher.pyÚdummyr   &   s   € Ø€Hó    c                 ó   — | |z   S r   r   ©r   Úys     r   Úaddr    *   s   € Øˆq‰5€Lr   c                 ó   — | |z
  |z   S r   r   ©r   r   Úzs      r   Úaddsubr$   .   ó   € Øˆq‰5�1‰9Ðr   c                 ó   — | |z
  |z   S r   r   r"   s      r   Úaddsub_defaultsr'   2   r%   r   c                 ó   — | ||fS r   r   r"   s      r   Ústar_defaultsr)   6   s   € Øˆa�ˆ7€Nr   c                 óJ   — t        | t        j                  «      rd„ }|S d„ }|S )Nc                 ó   — | |z   S r   r   r   s     r   Úimplzgenerated_usecase.<locals>.impl<   ó   € Ø�q‘5ˆLr   c                 ó   — | |z
  S r   r   r   s     r   r,   zgenerated_usecase.<locals>.impl?   r-   r   ©Ú
isinstancer	   ÚComplex©r   r   r,   s      r   Úgenerated_usecaser3   :   s&   € Ü�!”U—]‘]Ô#ò	ð
 €Kò	à€Kr   c                 óL   — t        | t        j                  «      rd„ }|S dd„}|S )Nc                 ó   — | S r   r   r   s    r   r,   z#bad_generated_usecase.<locals>.implF   ó   € ØˆHr   c                 ó   — | |z
  S r   r   r   s     r   r,   z#bad_generated_usecase.<locals>.implI   r-   r   )é   r/   r2   s      r   Úbad_generated_usecaser9   D   s&   € Ü�!”U—]‘]Ô#ò	ð
 €Kó	à€Kr   c                 ób  ‡— t        |t        j                  j                  t        j                  j                  f«      rt        j                  d„ | |fD «       Ž ŠnMt        |t        j                  t        j                  f«      rt        |«      Šnt        dt        |«      z  «      ‚dˆfd„	}|S )Nc              3   ón   K  — | ]-  }t        j                  |j                  j                  «      –— Œ/ y ­wr   )ÚnpÚdtypeÚname)Ú.0Úarys     r   Ú	<genexpr>z*dtype_generated_usecase.<locals>.<genexpr>P   s)   è ø€ ð %6Ù.4 sô &(§X¡X¨c¯i©i¯n©n×%=Ù.4ùs   ‚35zUnhandled Type %sc                 óF   •— t        j                  | j                  ‰¬«      S ©N©r=   )r<   ÚonesÚshape)ÚaÚbr=   Ú	out_dtypes      €r   Ú_fnz$dtype_generated_usecase.<locals>._fnW   s   ø€ Ü�w‰w�q—w‘w iÔ0Ð0r   r   )r0   r	   ÚmiscÚNoneTypeÚOmittedr<   Úresult_typeÚDTypeÚNumberClassr   Ú	TypeErrorÚtype)rG   rH   r=   rJ   rI   s       @r   Údtype_generated_usecaserS   N   sˆ   ø€ Ü�%œ%Ÿ*™*×-Ñ-¬u¯z©z×/AÑ/AÐBÔCÜ—N‘Nñ %6Ø/0°!©fó%6ð 7‰	ä	�EœEŸK™K¬×):Ñ):Ð;Ô	<Ü˜U“O‰	äÐ+¬d°5«kÑ9Ó:Ð:õ1ð €Jr   c                   ó$   — e Zd Z ed¬«      Zd„ Zy)ÚBaseTestT©Únopythonc                 óT   ‡ ‡‡— ˆˆˆ fd„} t        di ‰ j                  ¤Ž‰«      Š‰|fS )Nc                  óJ   •—  ‰| i |¤Ž} ‰| i |¤Ž}‰j                  ||«       y r   )ÚassertPreciseEqual)ÚargsÚkwargsÚexpectedÚresultÚfÚpyfuncÚselfs       €€€r   Úcheckz$BaseTest.compile_func.<locals>.checkb   s1   ø€ Ù˜tÐ. vÑ.ˆHÙ˜Ð' Ñ'ˆFØ×#Ñ# F¨HÕ5r   r   )r   Újit_args)ra   r`   rb   r_   s   `` @r   Úcompile_funczBaseTest.compile_funca   s+   ú€ ö	6ð !ŒCÑ �$—-‘-Ñ  Ó(ˆØ�%ˆxˆr   N)Ú__name__Ú
__module__Ú__qualname__Údictrc   rd   r   r   r   rU   rU   ]   s   „ á˜TÔ"€Hór   rU   c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Ze ej&                  ed«      d„ «       «       Z ej&                  ed«      d„ «       Ze ej&                  ed«      d„ «       «       Zd„ Zd„ Zy)ÚTestDispatcherc                 ó²   — t         d„ «       }t         d„ «       }| j                  ||k(  d«       | j                  ||k(  d«       | j                  |d k(  d«       y )Nc                 ó   — | S r   r   r   s    r   Úfooz)TestDispatcher.test_equality.<locals>.foom   ó   € àˆHr   c                 ó   — | S r   r   r   s    r   Úbarz)TestDispatcher.test_equality.<locals>.barq   rn   r   TF©r   ÚassertEqual)ra   rm   rp   s      r   Útest_equalityzTestDispatcher.test_equalityl   sf   € Ü	ñ	ó 
ð	ô 
ñ	ó 
ð	ð 	×Ñ˜ ™ TÔ*Ø×Ñ˜ ™ UÔ+Ø×Ñ˜ ™ eÕ,r   c                 óØ   — t         d„ «       } |d«       |j                  j                  «       \  }| j                  |j                  j
                  |j                  j
                  «       y )Nc                 ó   — | S r   r   r   s    r   rm   z+TestDispatcher.test_dyn_pyfunc.<locals>.foo}   rn   r   é   )r   Ú	overloadsÚvaluesrr   Úentry_pointrf   Úpy_func)ra   rm   Úcrs      r   Útest_dyn_pyfunczTestDispatcher.test_dyn_pyfunc|   sU   € Ü	ñ	ó 
ð	ñ 	ˆAŒØ�}‰}×#Ñ#Ó%‰ˆà×Ñ˜Ÿ™×2Ñ2°C·K±K×4JÑ4JÕKr   c                 ó*   — t         d„ «       } |«        y )Nc                   ó   — y©Nrv   r   r   r   r   rm   z,TestDispatcher.test_no_argument.<locals>.foo‡   s   € àr   ©r   ©ra   rm   s     r   Útest_no_argumentzTestDispatcher.test_no_argument†   s   € Ü	ñ	ó 
ð	ñ 	�r   c                 óh  —  t        d¬«      t        «      }| j                   |dd«      t        dd«      «       | j                   |dd«      t        dd«      «       | j                   |dd«      t        dd«      «       | j                   |dd«      t        dd«      «        t        d	d¬«      t        «      }| j                   |dd«      t        dd«      «       | j                   |dd«      t        d
d«      «       | j                  t        «      5   |dd«       d d d «       y # 1 sw Y   y xY w)NTrV   é{   iÈ  gš™™™™™(@gÍÌÌÌÌÌF@y        ÍÌÌÌÌÌF@l    F: z(i4, i4)é   é-   )r   r    rZ   ÚassertRaisesrQ   )ra   Úc_adds     r   Útest_coerce_input_typesz&TestDispatcher.test_coerce_input_typesŽ   sü   € ð #”˜TÔ"¤3Ó'ˆØ×Ñ¡ c¨3£´°S¸#³Ô?Ø×Ñ¡ d¨DÓ 1´3°t¸T³?ÔCØ×Ñ¡ d¨EÓ 2´C¸¸eÓ4DÔEØ×Ñ¡ k°3Ó 7¼¸[È#Ó9NÔOð /”�J¨Ô.¬sÓ3ˆØ×Ñ¡ c¨3£´°S¸#³Ô?à×Ñ¡ d¨DÓ 1´3°r¸2³;Ô?Ø×ÑœyÕ)á�$˜Ô÷ *×)Ñ)ús   Ä
D(Ä(D1c                 ó.  — t         d„ «       }d}d}| j                   |||«      ||z   «       | j                  t        |j                  «      d«       | j                   |||«      ||z   «       | j                  t        |j                  «      d«       | j                   |||«      ||z   «       | j                  t        |j                  «      d«       | j                   |dd«      ||z   «       | j                  t        |j                  «      dd«       y)	z8Test compiling new version in an ambiguous case
        c                 ó   — | |z   S r   r   ©rG   rH   s     r   rm   z6TestDispatcher.test_ambiguous_new_version.<locals>.foo£   ó   € à�q‘5ˆLr   rv   ç      ø?é   é   é   zdidn't compile a new versionN)r   ÚassertAlmostEqualrr   Úlenrw   )ra   rm   ÚINTÚFLTs       r   Útest_ambiguous_new_versionz)TestDispatcher.test_ambiguous_new_version    s÷   € ô 
ñ	ó 
ð	ð ˆØˆØ×Ñ™s 3¨›}¨c°C©iÔ8Ø×Ñœ˜SŸ]™]Ó+¨QÔ/Ø×Ñ™s 3¨›}¨c°C©iÔ8Ø×Ñœ˜SŸ]™]Ó+¨QÔ/Ø×Ñ™s 3¨›}¨c°C©iÔ8Ø×Ñœ˜SŸ]™]Ó+¨QÔ/ð 	×Ñ™s 1 a›y¨#°©)Ô4Ø×Ñœ˜SŸ]™]Ó+¨Qð 1:õ 	;r   c                 ó  ‡ ‡‡— g Št         d„ «       Šˆˆˆ fd„}t        d«      D �cg c]  }t        j                  |¬«      ‘Œ }}|D ]  }|j	                  «        Œ |D ]  }|j                  «        Œ ‰ j                  ‰«       yc c}w )zz
        Test that (lazy) compiling from several threads at once doesn't
        produce errors (see issue #908).
        c                 ó   — | dz   S r   r   r   s    r   rm   z%TestDispatcher.test_lock.<locals>.foo¼   r�   r   c                  óˆ   •— 	 ‰j                   ‰d«      d«       y # t        $ r}  ‰j                  | «       Y d } ~ y d } ~ ww xY w©Nrv   r�   )rr   Ú	ExceptionÚappend)Úer
   rm   ra   s    €€€r   Úwrapperz)TestDispatcher.test_lock.<locals>.wrapperÀ   s=   ø€ ð!Ø× Ñ ¡ Q£¨Õ+øÜò !Ø�—‘˜a× Ñ ûð!ús   ƒ œ	A¥<¼Aé   )ÚtargetN)r   ÚrangeÚ	threadingÚThreadÚstartÚjoinÚassertFalse)ra   rž   ÚiÚthreadsÚtr
   rm   s   `    @@r   Ú	test_lockzTestDispatcher.test_lockµ   s�   ú€ ð
 ˆä	ñ	ó 
ð	ö	!ô >CÀ2¼YÓG¹Y¸”9×#Ñ#¨7Ö3¸YˆÐGÛˆAØ�G‰G�Ið ãˆAØ�F‰F�Hð à×Ñ˜Õ ùò Hs   ¦Bc                 óÂ  —  t        d«      t        «      }| j                   |dd«      d«       | j                  t	        |j
                  «      d|j
                  «        t        ddg«      t        «      }| j                   |dd«      d«       | j                   |dd«      d«       | j                   |t        j                  d«      d«      d	«       | j                  t        «      5 } |d
d
«       d d d «       | j                  dt        j                  «      «       | j                  t	        |j
                  «      d|j
                  «        t        ddg«      t        «      }| j                   |t        j                  d«      t        j                  d«      «      d«       | j                   |dd«      d«        t        g d¢«      t        «      }| j                  t        «      5 } |dd«       d d d «       | j                  t        |j                  «      d«       | j                  dt        |j                  «      «       y # 1 sw Y   �ŒWxY w# 1 sw Y   ŒaxY w)Nú(int64,int64)rŽ   ç      @r�   rv   z(float64,float64)r�   g      @ç      @ù              ð?zNo matching definitionz(float32,float32)g      `>ç      ð?g     ð?)z(float32,float64)z(float64,float32)r¬   ç       @z†Ambiguous overloading for <function add [^>]*> \(float64, float64\):\n\(float32, float64\) -> float64\n\(float64, float32\) -> float64Úint64)r   r    rZ   rr   r“   rw   r<   Úint32r‡   rQ   ÚassertInÚstrÚ	exceptionÚfloat32ÚassertRegexÚassertNotIn©ra   r_   Úcms      r   Útest_explicit_signaturesz'TestDispatcher.test_explicit_signaturesÍ   sß  € Ø ŒC�Ó ¤Ó%ˆà×Ñ¡ # s£¨QÔ/Ø×Ñœ˜QŸ[™[Ó)¨1¨a¯k©kÔ:Ø7ŒC�Ð"5Ð6Ó7¼Ó<ˆà×Ñ¡ ! Q£¨Ô+Ø×Ñ¡ # s£¨SÔ1à×Ñ¡¤"§(¡(¨1£+¨sÓ 3°SÔ9à×ÑœyÔ)¨RÙˆb�"ŒI÷ *à�‰Ð.´°B·L±LÓ0AÔBØ×Ñœ˜QŸ[™[Ó)¨1¨a¯k©kÔ:à;ŒCÐ$Ð&9Ð:Ó;¼CÓ@ˆØ×Ñ¡¤"§*¡*¨Q£-´·±¸FÓ1CÓ DÀcÔJØ×Ñ¡ ! V£Ð.@ÔAð#ŒCò "ó #ä#&ó(ˆð ×ÑœyÔ)¨RÙˆc�3ŒK÷ *ð 	×ÑÜ�—‘Óð/ô	
ð 	×Ñ˜¤# b§l¡lÓ"3Õ4÷1 *Ñ)ú÷ *Ð)ús   Ã)
IÇ+
IÉIÉIc                 óv  — d}| j                  t        «      5 } t        d«      t        «       d d d «       | j	                  |dz  t        j                  «      «       | j                  t        «      5 } t        d«      t        «       d d d «       | j	                  |dz  t        |j                  «      «       | j                  t        «      5 } t        d«      t        «       d d d «       | j	                  |dz  t        |j                  «      «        t        dd¬	«      t        «       | j                  t        «      5 } t        dd¬	«      t        «       d d d «       | j	                  |dz  t        |j                  «      «       y # 1 sw Y   �Œ]xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÀxY w# 1 sw Y   ŒXxY w)
NzKSignature mismatch: %d argument types given, but function takes 2 argumentsz()r   z(intc,)rv   z(intc,intc,intc)r�   T©Úforceobj)r‡   rQ   r   r    r´   rµ   r¶   )ra   Útmplr»   s      r   Útest_signature_mismatchz&TestDispatcher.test_signature_mismatchó   s:  € ð$ˆà×ÑœyÔ)¨RØŒC�‹I”cŒN÷ *à�‰�d˜Q‘h¤ B§L¡LÓ 1Ô2Ø×ÑœyÔ)¨RØŒC�	‹Nœ3Ô÷ *à�‰�d˜Q‘h¤ B§L¡LÓ 1Ô2Ø×ÑœyÔ)¨RØ#ŒCÐ"Ó#¤CÔ(÷ *à�‰�d˜Q‘h¤ B§L¡LÓ 1Ô2à ŒˆD˜4Ô ¤Ô%Ø×ÑœyÔ)¨RØ)ŒC�	 DÔ)¬#Ô.÷ *à�‰�d˜Q‘h¤ B§L¡LÓ 1Õ2÷ *Ñ)ú÷ *Ñ)ú÷ *Ð)ú÷
 *Ð)ús/   ˜F	Á3FÃF#Å F/Æ	FÆF Æ#F,Æ/F8c                 óÞ   —  t        d«      t        «      }| j                  t        «      5 } |dd«       d d d «       | j	                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)Nz(intc,intc)r¯   zBNo matching definition for argument type(s) complex128, complex128)r   r    r‡   rQ   rr   rµ   r¶   rº   s      r   Útest_matching_error_messagez*TestDispatcher.test_matching_error_message  sX   € ØŒC�ÓœsÓ#ˆØ×ÑœyÔ)¨RÙˆb�"ŒI÷ *à×Ñœ˜RŸ\™\Ó*ð2õ	3÷ *Ð)ús   «
A#Á#A,c                 óh  — t         d„ «       }|j                  d«       |j                  «        | j                  t        «      5 }|j                  d«       d d d «       | j                  t        j                  «      d«       | j                  t        |j                  «      d«       y # 1 sw Y   ŒTxY w)Nc                 ó   — | S r   r   ©rG   s    r   rm   z5TestDispatcher.test_disabled_compilation.<locals>.foo  rn   r   ú
(float32,)ú(int32,)úcompilation disabledrv   )
r   ÚcompileÚdisable_compiler‡   ÚRuntimeErrorrr   rµ   r¶   r“   Ú
signatures©ra   rm   Úraisess      r   Útest_disabled_compilationz(TestDispatcher.test_disabled_compilation  s�   € Ü	ñ	ó 
ð	ð 	�‰�LÔ!Ø×ÑÔØ×Ñœ|Ô,°Ø�K‰K˜
Ô#÷ -à×Ñœ˜V×-Ñ-Ó.Ð0FÔGØ×Ñœ˜SŸ^™^Ó,¨aÕ0÷ -Ð,ús   ÁB(Â(B1c                 ó4  — t        ddg«      d„ «       }| j                  t        «      5 }|j                  d«       d d d «       | j	                  t        j                  «      d«       | j	                  t        |j                  «      d«       y # 1 sw Y   ŒTxY w)NrÇ   rÈ   c                 ó   — | S r   r   rÆ   s    r   rm   zBTestDispatcher.test_disabled_compilation_through_list.<locals>.foo  rn   r   z(complex64,)rÉ   r�   )	r   r‡   rÌ   rÊ   rr   rµ   r¶   r“   rÍ   rÎ   s      r   Ú&test_disabled_compilation_through_listz5TestDispatcher.test_disabled_compilation_through_list  s   € Ü	ˆl˜JÐ'Ó	(ñ	ó 
)ð	ð ×Ñœ|Ô,°Ø�K‰K˜Ô'÷ -à×Ñœ˜V×-Ñ-Ó.Ð0FÔGØ×Ñœ˜SŸ^™^Ó,¨aÕ0÷ -Ð,ús   ©BÂBc                 ó
  ‡— t        dg«      d„ «       Št         ˆfd„«       }| j                  t        j                  «      5 } |«        d d d «       d}| j	                  t        j                  «      |«       y # 1 sw Y   Œ1xY w)Nz(intp,)c                 ó   — | S r   r   rÆ   s    r   rm   zATestDispatcher.test_disabled_compilation_nested_call.<locals>.foo$  rn   r   c                  óL   •—  ‰ d«        ‰ t        j                  d«      «       y r   )r<   rE   )rm   s   €r   rp   zATestDispatcher.test_disabled_compilation_nested_call.<locals>.bar(  s   ø€ á�ŒFÙ”—‘˜“
�Or   z?.*Invalid use of.*with parameters \(array\(float64, 1d, C\)\).*)r   r‡   r
   ÚTypingErrorr¸   rµ   r¶   )ra   rp   rÏ   Úmrm   s       @r   Ú%test_disabled_compilation_nested_callz4TestDispatcher.test_disabled_compilation_nested_call#  s~   ø€ Ü	ˆiˆ[Ó	ñ	ó 
ð	ô 
ó	ó 
ð	ð ×Ñœv×1Ñ1Ô2°fÙŒE÷ 3ð OˆØ×Ñœ˜V×-Ñ-Ó.°Õ2÷	 3Ð2ús   ÁA9Á9Bc                 óØ  ‡— d„ }d}| j                  t        «      5 }t        j                  g «       ddd«       | j	                  |t        j                  «      «        t        d¬«      |«      Š| j                   ‰g «      g «        t        d¬«      |«      }| j                  t        «      5 } |g «       ddd«       | j	                  |t        |j                  «      «       t        d¬«      ˆfd„«       }| j                   |«       g «       |j                  j                  «       \  }| j                  t        |j                  «      d«       y# 1 sw Y   �Œ#xY w# 1 sw Y   Œ¨xY w)	zÝ
        Failure in computing the fingerprint cannot affect a nopython=False
        function.  On the other hand, with nopython=True, a ValueError should
        be raised to report the failure with fingerprint.
        c                 ó   — | S r   r   r   s    r   rm   z4TestDispatcher.test_fingerprint_failure.<locals>.foo9  r6   r   z(cannot compute fingerprint of empty listNTr¾   rV   c                  óP   •— t        «        g } t        d«      D ]
  } ‰| «      } Œ | S )Né
   )Úobjectr¡   )r   r§   Úobjmode_foos     €r   rp   z4TestDispatcher.test_fingerprint_failure.<locals>.barK  s)   ø€ äŒHØˆAÜ˜2–Y�Ù “N‘ð àˆHr   rv   )r‡   Ú
ValueErrorr   Úcompute_fingerprintr´   rµ   r¶   r   rr   rw   rx   r“   Úlifted)ra   rm   ÚerrmsgrÏ   Ú
strict_foorp   r{   rß   s          @r   Útest_fingerprint_failurez'TestDispatcher.test_fingerprint_failure3  s!  ø€ ò	ð <ˆØ×ÑœzÔ*¨fÜ×+Ñ+¨BÔ/÷ +à�‰�fœc &×"2Ñ"2Ó3Ô4à(”c 4Ô(¨Ó-ˆØ×Ñ™ R›¨"Ô-à'”S $Ô'¨Ó,ˆ
Ø×ÑœzÔ*¨fÙ�rŒN÷ +à�‰�fœc &×"2Ñ"2Ó3Ô4ô 
�dÔ	ó	ó 
ð	ð 	×Ñ™› Ô#à�}‰}×#Ñ#Ó%‰ˆØ×Ñœ˜RŸY™Y›¨Õ+÷1 +Ñ*ú÷ +Ð*ús   œEÂ0	E ÅEÅ E)c                 óf  — t        d¬«      d„ «       }| j                   |d«      d«       t        j                  }t        j                  j                  «        t        |«      }t        j                  |«      }| j                  |dz   t        |«      «       t        j                  |«      }| j                  |dz   t        |«      «       | j                  ||«       t        |«      }~~| j                  |dz   t        |«      «       t        j                  |«      }| j                  |t        |«      «       t        j                  |«      }~t        j                  j                  «        | j                  |t        |«      «       t        j                  |«       | j                   |«       d«       y)z:
        Test serialization of Dispatcher objects
        TrV   c                 ó   — | dz   S r   r   r   s    r   rm   z.TestDispatcher.test_serialization.<locals>.foo\  r�   r   rv   r�   N)r   rr   r   Ú_memoÚ_recentÚclearr“   ÚpickleÚdumpsÚloadsÚassertIsÚidÚweakrefÚref)	ra   rm   ÚmemoÚ	memo_sizeÚserialized_fooÚfoo_rebuiltÚid_origÚnew_foorñ   s	            r   Útest_serializationz!TestDispatcher.test_serializationX  sY  € ô 
�dÔ	ñ	ó 
ð	ð 	×Ñ™˜Q› Ô#ô ×ÑˆÜ×Ñ× Ñ Ô"Ü˜“Iˆ	ô  Ÿ™ cÓ*ˆà×Ñ˜ Q™¬¨D«	Ô2ô —l‘l >Ó2ˆØ×Ñ˜ Q™¬¨D«	Ô2à�‰�c˜;Ô'ô �[“/ˆØØØ×Ñ˜ Q™¬¨D«	Ô2Ü—,‘,˜~Ó.ˆØ×Ñ˜¤" W£+Ô.ô �k‰k˜'Ó"ˆØÜ×Ñ× Ñ Ô"Ø×Ñ˜¤C¨£IÔ.ô 	�‰�^Ô$Ø�‰‘c“e˜TÕ"r   zUnaligned loads unsupportedc                 ó€  ‡	‡
‡‡— d„ Š	 t        d¬«      ‰	«      Š
dŠt        t        j                  ‰«      «      Št        j                  }t        j
                  «       j                   |«       j                  z  }t        j                  ‰|z  dz   |¬«      }|d d j                  t        j
                  «      j                  ‰‰«      }|dd  j                  t        j
                  «      j                  ‰‰«      }|j                  }|j                  }ˆ	ˆ
ˆˆfd„} |d	|«        |d
|«        |d|«        |d|«       y )Nc                 óB   — t         j                  j                  | d«      S r   ©r<   ÚlinalgÚmatrix_powerrÆ   s    r   rm   z:TestDispatcher.test_misaligned_array_dispatch.<locals>.foo‰  s   € Ü—9‘9×)Ñ)¨!¨QÓ/Ð/r   TrV   é@   rv   rD   éÿÿÿÿc                 óâ   •— t        j                  ‰t         j                  ¬«      j                  ‰‰«      |d d …d d …f<    ‰|«      } ‰|«      }t         j                  j                  ||«       y rC   ©r<   ÚarangeÚ
complex128ÚreshapeÚtestingÚassert_allclose©r>   rG   r]   Úgotrm   ÚjitfooÚnÚrs       €€€€r   rb   z<TestDispatcher.test_misaligned_array_dispatch.<locals>.check�  sR   ø€ Ü—i‘i ¬¯©Ô7×?Ñ?ÀÀ1ÓEˆAŠa’ˆd‰GÙ˜1“vˆHÙ˜“)ˆCÜ�J‰J×&Ñ& x°Õ5r   ÚC_contig_alignedÚF_contig_alignedÚC_contig_misalignedÚF_contig_misaligned©r   Úintr<   ÚsqrtÚint8r  Úitemsizer  Úviewr  ÚT©ra   ÚdtÚcountÚtmpr  r  r  r  rb   rm   r	  r
  r  s            @@@@r   Útest_misaligned_array_dispatchz-TestDispatcher.test_misaligned_array_dispatch…  s  û€ ò	0ð $”˜dÔ# CÓ(ˆàˆÜ”—‘˜“
‹OˆÜ�W‰WˆÜ—‘“×(Ñ(©B«D¯M©MÑ9ˆä�i‰i˜˜E™	 A™¨RÔ0ˆð ˜s ˜8Ÿ=™=¬¯©Ó7×?Ñ?ÀÀ1ÓEÐØ! ! "˜gŸl™l¬2¯=©=Ó9×AÑAÀ!ÀQÓGÐØ+×-Ñ-ÐØ1×3Ñ3Ð÷	6ñ 	Ð Ð"2Ô3ÙÐ Ð"2Ô3ÙÐ#Ð%8Ô9ÙÐ#Ð%8Õ9r   c                 ó’  ‡	‡
‡‡— d„ Š	 t        d¬«      ‰	«      Š
dŠt        t        j                  ‰«      «      Št        j                  }t        j
                  «       j                   |«       j                  z  }t        j                  ‰|z  dz   |¬«      }|d d j                  t        j
                  «      j                  ‰‰«      }|dd  j                  t        j
                  «      j                  ‰‰«      }|j                  }|j                  }dˆ	ˆ
ˆˆfd„	} |d	|d¬
«        |d|d¬
«        |d|d¬
«        |d|d¬
«       y )Nc                 ó,   — t        j                  | «      S r   )r<   ÚsumrÆ   s    r   rm   z?TestDispatcher.test_immutability_in_array_dispatch.<locals>.foo±  s   € Ü—6‘6˜!“9Ðr   TrV   rþ   rv   rD   rÿ   c                 ó  •— t        j                  ‰t         j                  ¬«      j                  ‰‰«      |d d …d d …f<   |rd|j                  _         ‰|«      } ‰|«      }t         j                  j                  ||«       y )NrD   F)r<   r  r  r  ÚflagsÚ	writeabler  r  )	r>   rG   Údisable_write_bitr]   r  rm   r	  r
  r  s	        €€€€r   rb   zATestDispatcher.test_immutability_in_array_dispatch.<locals>.checkÅ  sa   ø€ Ü—i‘i ¬¯©Ô7×?Ñ?ÀÀ1ÓEˆAŠa’ˆd‰GÙ Ø$)�—‘Ô!Ù˜1“vˆHÙ˜“)ˆCÜ�J‰J×&Ñ& x°Õ5r   r  )r"  r  r  r  )Fr  r  s            @@@@r   Ú#test_immutability_in_array_dispatchz2TestDispatcher.test_immutability_in_array_dispatch­  s  û€ ò	ð $”˜dÔ# CÓ(ˆàˆÜ”—‘˜“
‹OˆÜ�W‰WˆÜ—‘“×(Ñ(©B«D¯M©MÑ9ˆä�i‰i˜˜E™	 A™¨RÔ0ˆð ˜s ˜8Ÿ=™=¬¯©Ó7×?Ñ?ÀÀ1ÓEÐØ! ! "˜gŸl™l¬2¯=©=Ó9×AÑAÀ!ÀQÓGÐØ+×-Ñ-ÐØ1×3Ñ3Ð÷	6ð 	6ñ 	Ð Ð"2ÀdÕKÙÐ Ð"2ÀdÕKÙÐ#Ð%8Ø $õ	&áÐ#Ð%8Ø $ö	&r   c                 ó´  ‡ ‡
‡‡‡— d„ Š
 t        d¬«      ‰
«      Šˆ fd„}dŠdŠt        j                  }t        j                  «       j                   |«       j                  z  }t        j
                  ‰|z  dz   |¬«      }|d d	 j                  t        j                  «      j                  ‰‰‰‰‰‰«      } ||d
d«       |dd  j                  t        j                  «      j                  ‰‰‰‰‰‰«      } ||d
d«       |j                  } ||dd«       |j                  } ||dd«       ˆ
ˆˆˆfd„}	 |	d|«        |	d|«        |	d|«        |	d|«       y )Nc           
      ó\   — t         j                  j                  | ddddd d …d d …f   d«      S ©Nr   rv   rû   rÆ   s    r   rm   zITestDispatcher.test_misaligned_high_dimension_array_dispatch.<locals>.fooÚ  s+   € Ü—9‘9×)Ñ)¨!¨A¨q°!°Qºº1Ð,<Ñ*=¸qÓAÐAr   TrV   c                 ó   •— ‰j                  | j                  j                  |«       |dk(  r&‰j                  | j                  j                  d«       |dk(  r'‰j                  | j                  j                  d«       y y )NÚCTÚF)rr   r   ÚalignedÚc_contiguousÚf_contiguous)ÚarrÚlayoutr*  ra   s      €r   Úcheck_propertieszVTestDispatcher.test_misaligned_high_dimension_array_dispatch.<locals>.check_propertiesß  sd   ø€ Ø×Ñ˜SŸY™Y×.Ñ.°Ô8Ø˜Š}Ø× Ñ  §¡×!7Ñ!7¸Ô>Ø˜Š}Ø× Ñ  §¡×!7Ñ!7¸Õ>ð r   iÙ  r�   rv   rD   rÿ   r(  Fr)  c                 óê   •— t        j                  ‰t         j                  ¬«      j                  ‰‰‰‰‰‰«      |d d …d d …f<    ‰|«      } ‰|«      }t         j                  j                  ||«       y rC   r  r  s       €€€€r   rb   zKTestDispatcher.test_misaligned_high_dimension_array_dispatch.<locals>.checkû  s\   ø€ Ü—i‘i ¬¯©Ô7ß‘˜˜1˜a  A qÓ)ð Ša’ˆd‰Gá˜1“vˆHÙ˜“)ˆCÜ�J‰J×&Ñ& x°Õ5r   r  r  r  r  )	r   r<   r  r  r  r  r  r  r  )ra   r/  r  r  r  r  r  r  r  rb   rm   r	  r
  r  s   `         @@@@r   Ú-test_misaligned_high_dimension_array_dispatchz<TestDispatcher.test_misaligned_high_dimension_array_dispatchÖ  sM  ü€ ò	Bð $”˜dÔ# CÓ(ˆô	?ð ˆØˆÜ�W‰WˆÜ—‘“×(Ñ(©B«D¯M©MÑ9ˆä�i‰i˜˜E™	 A™¨RÔ0ˆð ˜s ˜8Ÿ=™=¬¯©Ó7ß‰G�A�q˜!˜Q  1Ó%ð 	áÐ)¨3°Ô5Ø! ! "˜gŸl™l¬2¯=©=Ó9ß‰G�A�q˜!˜Q  1Ó%ð 	áÐ,¨c°5Ô9Ø+×-Ñ-ÐÙÐ)¨3°Ô5Ø1×3Ñ3ÐÙÐ,¨c°5Ô9÷	6ñ 	Ð#Ð%8Ô9ÙÐ Ð"2Ô3ÙÐ Ð"2Ô3ÙÐ#Ð%8Õ9r   c                 óD  — d„ } t        d¬«      |«      } |t        j                  d«      «        |t        j                  d«      «        |t        j                  d«      «       | j                  t        |j                  «      d«       t        j                  ft        j                  ft        j                  fg}| j                  |j                  |«        t        t        j                  fgd¬«      |«      } |t        j                  d«      «        |t        j                  d«      «        |t        j                  d«      «       | j                  t        |j                  «      d«       t        j                  fg}| j                  |j                  |«       y )	Nc                 ó   — | S r   r   r   s    r   rm   z@TestDispatcher.test_dispatch_recompiles_for_scalars.<locals>.foo  r6   r   TrV   y      ð?       @rÝ   Fr�   rv   )	r   r<   r  r³   Úbool_rr   r“   rÍ   r	   )ra   rm   r	  Úexpected_sigss       r   Ú$test_dispatch_recompiles_for_scalarsz3TestDispatcher.test_dispatch_recompiles_for_scalars	  s1  € ò	ð $”˜dÔ# CÓ(ˆÙŒr�}‰}˜VÓ$Ô%ÙŒr�x‰x˜‹|ÔÙŒr�x‰x˜‹ÔØ×Ñœ˜V×.Ñ.Ó/°Ô3Ü×*Ñ*Ð,¬u¯{©{¨n¼u¿{¹{¸nÐMˆØ×Ñ˜×*Ñ*¨MÔ:ð ;””u×'Ñ'Ð)Ð*°TÔ:¸3Ó?ˆÙŒr�}‰}˜VÓ$Ô%ÙŒr�x‰x˜‹|ÔÙŒr�x‰x˜‹ÔØ×Ñœ˜V×.Ñ.Ó/°Ô3Ü×*Ñ*Ð,Ð-ˆØ×Ñ˜×*Ñ*¨MÕ:r   c                 ó(  — t        d¬«      d„ «       }| j                  t        «      5 }t        |«       d d d «       t        j                  «      }| j                  d|«       | j                  d|«       | j                  d|«       | j                  t        «      5 }t        t        «       d d d «       t        |j                  «      }| j                  d|«       | j                  t        t        «      › |«       y # 1 sw Y   ŒÉxY w# 1 sw Y   Œ]xY w)NTrV   c                 ó   — | S r   r   r   s    r   rm   zITestDispatcher.test_dispatcher_raises_for_invalid_decoration.<locals>.foo(  rn   r   z8A jit decorator was called on an already jitted functionrm   z.py_funcz&The decorated object is not a function)r   r‡   rQ   rµ   r¶   r´   rU   rR   )ra   rm   rÏ   Úerr_msgs       r   Ú-test_dispatcher_raises_for_invalid_decorationz<TestDispatcher.test_dispatcher_raises_for_invalid_decoration%  sÙ   € ô 
�dÔ	ñ	ó 
ð	ð ×ÑœyÔ)¨VÜ�ŒH÷ *ä�f×&Ñ&Ó'ˆØ�‰ØFÈô	Qà�‰�e˜WÔ%Ø�‰�j 'Ô*à×ÑœyÔ)¨VÜ”ŒM÷ *ä�f×&Ñ&Ó'ˆØ�‰Ð>ÀÔHØ�‰œœh›Ð(¨7Õ3÷ *Ð)ú÷ *Ð)ús   ¨C<ÂDÃ<DÄDN)re   rf   rg   rs   r|   r‚   r‰   r–   rª   r¼   rÁ   rÃ   rÐ   rÓ   rÙ   rå   rø   r   ÚunittestÚskipIfÚ
_is_armv7lr  r#  r1  r6  r:  r   r   r   rj   rj   j   sÒ   „ ò-ò Lòòò$;ò*!ò0$5òL3ò$3ò
1ò1ò3ò #,òJ+#ðZ Ø€X‡_�_�ZÐ!>Ó?ñ$:ó @ó ð$:ðL €X‡_�_�ZÐ!>Ó?ñ&&ó @ð&&ðP Ø€X‡_�_�ZÐ!>Ó?ñ/:ó @ó ð/:òb;ó84r   rj   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚTestSignatureHandlingz<
    Test support for various parameter passing styles.
    c                 óÔ  — | j                  t        «      \  }} |ddd¬«        |ddd«        |ddd¬«       | j                  t        |j                  «      d«       | j                  t        «      5 } |dddd¬	«       d
d
d
«       | j                  dt        j                  «      «       | j                  t        «      5 } |«        d
d
d
«       | j                  dt        |j                  «      «       | j                  t        «      5 } |ddd¬«       d
d
d
«       | j                  dt        |j                  «      «       y
# 1 sw Y   ŒÇxY w# 1 sw Y   Œ‰xY w# 1 sw Y   ŒGxY w)z?
        Test passing named arguments to a dispatcher.
        r�   rÝ   r‘   ©r#   r   r"   rv   r8   é   ©r   r#   Nú%too many arguments: expected 3, got 4z'not enough arguments: expected 3, got 0©r   zmissing argument 'z')
rd   r$   rr   r“   rw   r‡   rQ   r´   rµ   r¶   ©ra   r_   rb   r»   s       r   Útest_named_argsz%TestSignatureHandling.test_named_args@  s  € ð ×$Ñ$¤VÓ,‰ˆˆ5Ùˆa�2˜ÕÙˆa��BŒÙ��Q˜"Õà×Ñœ˜QŸ[™[Ó)¨1Ô-à×ÑœyÔ)¨RÙˆa��a˜1Õ÷ *à�‰Ð=Ü˜"Ÿ,™,Ó'ô	)à×ÑœyÔ)¨RÙŒC÷ *à�‰Ð?Ü˜"Ÿ,™,Ó'ô	)à×ÑœyÔ)¨RÙˆa��a�L÷ *à�‰Ð,¬c°"·,±,Ó.?Õ@÷ *Ð)ú÷ *Ð)ú÷ *Ð)ús$   Á3EÃEÄEÅEÅEÅE'c                 óä  — | j                  t        «      \  }} |ddd¬«        |ddd«        |ddd¬«        |dd¬«        |dd«        |dd¬«        |d«        |d¬«       | j                  t        «      5 } |ddd	d
¬«       ddd«       | j	                  dt        j                  «      «       | j                  t        «      5 } |«        ddd«       | j	                  dt        |j                  «      «       | j                  t        «      5 } |d	d
¬«       ddd«       | j	                  dt        |j                  «      «       y# 1 sw Y   ŒÆxY w# 1 sw Y   ŒˆxY w# 1 sw Y   ŒGxY w)z?
        Test omitting arguments with a default value.
        r�   rÝ   r‘   rA  r"   ©r#   r   r   r8   rB  rC  NrD  z0not enough arguments: expected at least 1, got 0zmissing argument 'x')rd   r'   r‡   rQ   r´   rµ   r¶   rF  s       r   Útest_default_argsz'TestSignatureHandling.test_default_argsW  s(  € ð ×$Ñ$¤_Ó5‰ˆˆ5Ùˆa�2˜ÕÙˆa��BŒÙ��Q˜"Õáˆa�2�Ùˆa�ŒÙ��Q�ÙˆaŒÙ��
à×ÑœyÔ)¨RÙˆa��a˜1Õ÷ *à�‰Ð=Ü˜"Ÿ,™,Ó'ô	)à×ÑœyÔ)¨RÙŒC÷ *à�‰ÐHÜ˜"Ÿ,™,Ó'ô	)à×ÑœyÔ)¨RÙ��Q�K÷ *à�‰Ð,¬c°"·,±,Ó.?Õ@÷ *Ð)ú÷ *Ð)ú÷ *Ð)ús$   Á<EÃEÄE&ÅEÅE#Å&E/c                 óì  — | j                  t        «      \  }} |d«        |dd«        |ddd«        |dddd«        |ddddd«        |d¬«        |dd¬«        |dd¬«       | j                  t        «      5 } |ddd¬«       d	d	d	«       | j	                  d
t        j                  «      «       | j                  t        «      5 } |ddd¬«       d	d	d	«       | j	                  d
t        |j                  «      «       | j                  t        «      5 } |dd¬«       d	d	d	«       | j	                  d
t        |j                  «      «       y	# 1 sw Y   ŒÊxY w# 1 sw Y   ŒˆxY w# 1 sw Y   ŒGxY w)zJ
        Test a compiled function with starargs in the signature.
        r‘   é   r8   rB  é   r   r   rE  Nz!some keyword arguments unexpectedrI  )rd   r)   r‡   rQ   r´   rµ   r¶   rF  s       r   Útest_star_argsz$TestSignatureHandling.test_star_argsr  s+  € ð ×$Ñ$¤]Ó3‰ˆˆ5ÙˆaŒÙˆa�ŒÙˆa��AŒÙˆa��A�qÔÙˆa��A�q˜!ÔÙ��
Ù��Q�Ùˆa�1�Ø×ÑœyÔ)¨RÙˆa��a�L÷ *à�‰Ð9¼3¸r¿|¹|Ó;LÔMØ×ÑœyÔ)¨RÙˆa��a�L÷ *à�‰Ð9¼3¸r¿|¹|Ó;LÔMØ×ÑœyÔ)¨RÙˆa�1�I÷ *à�‰Ð9¼3¸r¿|¹|Ó;LÕM÷ *Ð)ú÷ *Ð)ú÷ *Ð)ús$   Á=EÃEÄE*ÅEÅE'Å*E3N)re   rf   rg   Ú__doc__rG  rJ  rN  r   r   r   r?  r?  ;  s   „ ñòAò.Aó6Nr   r?  c                   ó"   — e Zd ZdZ ed¬«      Zy)ÚTestSignatureHandlingObjectModez<
    Sams as TestSignatureHandling, but in object mode.
    Tr¾   N)re   rf   rg   rO  rh   rc   r   r   r   rQ  rQ  Š  s   „ ññ ˜TÔ"�Hr   rQ  c                   ó¶   — e Zd Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Z	d„ Z
d	„ Z ej                  ed
u d«       ej                  ed
u d«      d„ «       «       Zd„ Zd„ Zy
)ÚTestDispatcherMethodsc                 óÎ  ‡— dŠt         ˆfd„«       }| j                   |d«      d«       | j                   |d«      d«       | j                  t        |j                  «      d«       dŠ| j                   |d«      d«       |j                  «        | j                  t        |j                  «      d«       | j                   |d«      d«       | j                   |d«      d«       y )Nrv   c                 ó   •— | ‰z   S r   r   ©r   Úclosures    €r   rm   z1TestDispatcherMethods.test_recompile.<locals>.foo—  ó   ø€ à�w‘;Ðr   r�   rŽ   r­   r�   r®   )r   rZ   rr   r“   rÍ   Ú	recompile©ra   rm   rW  s     @r   Útest_recompilez$TestDispatcherMethods.test_recompile”  s¾   ø€ Øˆä	ó	ó 
ð	à×Ñ¡ A£¨Ô*Ø×Ñ¡ C£¨#Ô.Ø×Ñœ˜SŸ^™^Ó,¨aÔ0ØˆØ×Ñ¡ A£¨Ô*à�‰Œà×Ñœ˜SŸ^™^Ó,¨aÔ0Ø×Ñ¡ A£¨Ô*Ø×Ñ¡ C£¨#Õ.r   c                 óD  ‡— dŠt        d«      ˆfd„«       }| j                   |d«      d«       | j                   |d«      d«       dŠ| j                   |d«      d«       |j                  «        | j                   |d«      d«       | j                   |d«      d«       y )Nrv   zint32(int32)c                 ó   •— | ‰z   S r   r   rV  s    €r   rm   z<TestDispatcherMethods.test_recompile_signatures.<locals>.fooª  rX  r   r�   rŽ   r�   )r   rZ   rY  rZ  s     @r   Útest_recompile_signaturesz/TestDispatcherMethods.test_recompile_signatures¦  s‘   ø€ àˆä	ˆ^Ó	ó	ó 
ð	à×Ñ¡ A£¨Ô*Ø×Ñ¡ C£¨!Ô,ØˆØ×Ñ¡ A£¨Ô*à�‰ŒØ×Ñ¡ A£¨Ô*Ø×Ñ¡ C£¨!Õ,r   c                 ó>  — t         d„ «       } |dd«        |dd«        |dd«       |j                  «       }| j                  t        |«      d«       |j	                  «       D ]8  }| j                  d|«       | j                  d|«       | j                  d|«       Œ: y )Nc                 ó   — | |z   S r   r   ©Úexplicit_arg1Úexplicit_arg2s     r   rm   z4TestDispatcherMethods.test_inspect_llvm.<locals>.foo¸  ó   € à  =Ñ0Ð0r   rv   r°   r�   rm   rb  rc  )r   Úinspect_llvmrr   r“   rx   r´   )ra   rm   ÚllvmsÚllvm_bcs       r   Útest_inspect_llvmz'TestDispatcherMethods.test_inspect_llvm¶  s“   € ä	ñ	1ó 
ð	1ñ 	ˆAˆqŒ	ÙˆC�ŒÙˆC�Œð × Ñ Ó"ˆØ×Ñœ˜U› QÔ'ð —|‘|–~ˆGà�M‰M˜% Ô)ð �M‰M˜/¨7Ô3Ø�M‰M˜/¨7Õ3ñ &r   c                 óø   — t         d„ «       } |dd«        |dd«        |dd«       |j                  «       }| j                  t        |«      d«       |j	                  «       D ]  }| j                  d|v «       Œ y )Nc                 ó   — | |z   S r   r   ra  s     r   rm   z3TestDispatcherMethods.test_inspect_asm.<locals>.fooÐ  rd  r   rv   r°   r�   rm   )r   Úinspect_asmrr   r“   rx   Ú
assertTrue)ra   rm   ÚasmsÚasms       r   Útest_inspect_asmz&TestDispatcherMethods.test_inspect_asmÎ  su   € ä	ñ	1ó 
ð	1ñ 	ˆAˆqŒ	ÙˆC�ŒÙˆC�Œð �‰Ó ˆØ×Ñœ˜T› AÔ&ð —;‘;–=ˆCà�O‰O˜E S˜LÕ)ñ !r   c                 ó*  — |rdj                  t        |«      |«      }t        j                  dd«      d   }t        |«      }dj                  |||«      }| j	                  t        |«      |«       | j                  t        |j                  «      «       y )Nz{}{}Ú.rv   r   z^digraph "CFG for \'_ZN{}{}{})	Úformatr“   re   Úsplitr¸   rµ   rl  ÚcallableÚdisplay)ra   Úcfgrž   Úmodule_nameÚ
module_lenÚprefixs         r   Ú_check_cfg_displayz(TestDispatcherMethods._check_cfg_displayâ  s~   € áØ—m‘m¤C¨£L°'Ó:ˆGÜ—n‘n S¨!Ó,¨QÑ/ˆÜ˜Ó%ˆ
Ø1×8Ñ8¸Ø9CØ9DóFˆð 	×Ñœ˜S› 6Ô*ð 	�‰œ §¡Ó-Õ.r   c                 óÂ  — t         d„ «       }t        j                  d«      }t        j                  d«      }t        j                  d«      } ||«        ||«        ||«       |j                  «       }| j	                  t        |«      d«       |j                  «       \  }}}| j	                  t        |||g«      t        t        d„ |||g«      «      «       |j                  «       D ]  }	| j                  |	«       Œ | j	                  t        t        |j                  «       «      «      d«       |j                  |j                  d   ¬«      }	| j                  |	«       y )	Nc                 ó"   — | j                  «       S r   ©r  ©Ú	the_arrays    r   rm   z3TestDispatcherMethods.test_inspect_cfg.<locals>.fooó  ó   € à—=‘=“?Ð"r   rv   ©rv   rv   ©rv   rv   rv   r�   c                 ó   — t        | «      fS r   )r   r   s    r   Ú<lambda>z8TestDispatcherMethods.test_inspect_cfg.<locals>.<lambda>  s
   € ¬F°1«I©<r   r   ©Ú	signature)r   r<   rE   Úinspect_cfgrr   r“   ÚkeysÚsetÚmaprx   rz  ÚlistrÍ   )
ra   rm   Úa1Úa2Úa3ÚcfgsÚs1Ús2Ús3rv  s
             r   Útest_inspect_cfgz&TestDispatcherMethods.test_inspect_cfgð  s'  € ô 
ñ	#ó 
ð	#ô �W‰W�Q‹ZˆÜ�W‰W�V‹_ˆÜ�W‰W�YÓˆÙˆBŒÙˆBŒÙˆBŒð �‰Ó ˆð 	×Ñœ˜T› AÔ&ð —y‘y“{‰ˆˆR�Ø×Ñœ˜b " b˜\Ó*ÜœSÑ!7¸"¸bÀ"¸ÓFÓGô	Ið —;‘;–=ˆCØ×#Ñ# CÕ(ð !à×ÑœœT $§+¡+£-Ó0Ó1°1Ô5ð �o‰o¨¯©°qÑ(9ˆoÓ:ˆØ×Ñ Õ$r   c                 ó0  — t         d„ «       }t        j                  d«      }t        j                  d«      }t        j                  d«      } ||«        ||«        ||«       |j                  |j                  d   d¬«      }| j                  |d¬	«       y )
Nc                 ó"   — | j                  «       S r   r}  r~  s    r   rm   zGTestDispatcherMethods.test_inspect_cfg_with_python_wrapper.<locals>.foo  r€  r   rv   r�  r‚  r   Úpython)r†  Úshow_wrapperÚcpython)rž   )r   r<   rE   r‡  rÍ   rz  )ra   rm   rŒ  r�  rŽ  rv  s         r   Ú$test_inspect_cfg_with_python_wrapperz:TestDispatcherMethods.test_inspect_cfg_with_python_wrapper  s‹   € ô 
ñ	#ó 
ð	#ô �W‰W�Q‹ZˆÜ�W‰W�V‹_ˆÜ�W‰W�YÓˆÙˆBŒÙˆBŒÙˆBŒð �o‰o¨¯©°qÑ(9Ø+3ð ó 5ˆà×Ñ ¨YÐÕ7r   c                 óD  — t         d„ «       } |dd«       |j                  t        «       «       t        |j                  |j
                  d      j                  «      }t        «       5 }|j                  «        d d d «       |j                  «       v sJ ‚y # 1 sw Y   ŒxY w)Nc                 ó   — | |z   S r   r   rŒ   s     r   rm   z5TestDispatcherMethods.test_inspect_types.<locals>.foo(  r�   r   rv   r�   r   )	r   Úinspect_typesr   rµ   rw   rÍ   Útype_annotationr   Úgetvalue)ra   rm   r]   Úouts       r   Útest_inspect_typesz(TestDispatcherMethods.test_inspect_types'  s‰   € Ü	ñ	ó 
ð	ñ 	ˆAˆqŒ	à×Ñœ(›*Ô%ô �s—}‘} S§^¡^°AÑ%6Ñ7×GÑGÓHˆÜÔ #Ø×ÑÔ÷ à˜3Ÿ<™<›>Ñ)Ð)Ñ)÷ Ðús   Á(BÂBc                 ó  — t         d„ «       } |d«        |d«       t        «       5 }|j                  «        d d d «       t        «       5 }|j                  |j                  d   ¬«       d d d «       t        «       5 }|j                  |j                  d   ¬«       d d d «       | j	                  j                  «       j                  «       j                  «       z   «       y # 1 sw Y   Œ­xY w# 1 sw Y   Œ‡xY w# 1 sw Y   ŒaxY w)Nc                 ó   — | dz   S r   r   rÆ   s    r   rm   zDTestDispatcherMethods.test_inspect_types_with_signature.<locals>.foo7  r�   r   rv   r°   r   r…  )r   r   rœ  rÍ   rr   rž  )ra   rm   ÚtotalÚfirstÚseconds        r   Ú!test_inspect_types_with_signaturez7TestDispatcherMethods.test_inspect_types_with_signature6  sÖ   € Ü	ñ	ó 
ð	ñ 	ˆAŒÙˆCŒäÔ %Ø×ÑÔ÷ ô Ô %Ø×Ñ¨¯©°qÑ(9ÐÔ:÷ ô Ô &Ø×Ñ¨¯©°qÑ(9ÐÔ:÷ ð 	×Ñ˜Ÿ™Ó)¨5¯>©>Ó+;¸f¿o¹oÓ>OÑ+OÕP÷ Ðú÷ Ðú÷ Ðús#   §C$Á
 C0Á< C<Ã$C-Ã0C9Ã<DNz#please install the 'jinja2' packagez%please install the 'pygments' packagec                 óö  — t         d„ «       } |dd«       t        «       5  |j                  d¬«      }d d d «       j                  j	                  «       D ],  \  }}d}|d   D ]  }d|d   v sŒd}Œ | j                  |«       Œ. | j                  t        «      5 }|j                  t        «       d¬	«       d d d «       | j                  d
t        j                  «      «       y # 1 sw Y   Œ±xY w# 1 sw Y   Œ;xY w)Nc                 ó   — | |z   S r   r   rŒ   s     r   rm   z<TestDispatcherMethods.test_inspect_types_pretty.<locals>.fooL  r�   r   rv   r�   T)ÚprettyFÚpygments_linesÚspan)Úfiler©  z$`file` must be None if `pretty=True`)r   r   rœ  ÚannÚitemsrl  r‡   rà   r   r´   rµ   r¶   )ra   rm   r­  ÚkÚvÚ
span_foundÚlinerÏ   s           r   Útest_inspect_types_prettyz/TestDispatcherMethods.test_inspect_types_prettyI  sì   € ô 
ñ	ó 
ð	ñ 	ˆAˆqŒ	ô ÕØ×#Ñ#¨4Ð#Ó0ˆC÷ ð —G‘G—M‘M–O‰DˆAˆqØˆJØÐ*Ô+�Ø˜T !™WÒ$Ø!%‘Jð ,ð �O‰O˜JÕ'ð $ð ×ÑœzÔ*¨fØ×Ñ¤8£:°dÐÔ;÷ +ð 	�‰Ð<Ü˜&×*Ñ*Ó+õ	-÷ Ðú÷ +Ð*ús    C#ÂC/Ã#C,Ã/C8c                 óä   ‡— t         d„ «       Š ‰d«        ‰d«       t        t        j                  ˆfd„‰j                  D «       «      «      }‰j                  «       }| j                  ||«       y )Nc                 ó   — | dz   S r   r   rÆ   s    r   rm   z;TestDispatcherMethods.test_get_annotation_info.<locals>.foof  r�   r   rv   gÍÌÌÌÌÌô?c              3   ó\   •K  — | ]#  }‰j                  |«      j                  «       –— Œ% y ­wr   )Úget_annotation_infor®  )r?   r§   rm   s     €r   rA   zATestDispatcherMethods.test_get_annotation_info.<locals>.<genexpr>m  s.   øè ø€ ð ,EÙ5C°ð -0×,CÑ,CÀAÓ,F×,LÑ,L×,NÙ5Cùs   ƒ),)r   rh   r   Úfrom_iterablerÍ   r·  rr   )ra   r]   r^   rm   s      @r   Útest_get_annotation_infoz.TestDispatcherMethods.test_get_annotation_infoe  so   ø€ Ü	ñ	ó 
ð	ñ 	ˆAŒÙˆCŒäœ×+Ñ+ó ,EØ58·^²^ó,Eó Eó Fˆà×(Ñ(Ó*ˆØ×Ñ˜ 6Õ*r   c                 óŽ  — d„ }t        |«      }t        j                  dgg«      }t        j                  ddgddggd¬«      }t        j                  ddgddggd¬«      } ||d	d
«      } ||d	d
«      }| j                  d ||d
d
«      «        ||d	d
«      } ||d	d
«      }	| j                  ||«       | j                  ||	«       y)aO  
        This test an issue with the dispatcher when an array that is both
        C and F contiguous is supplied as the first signature.
        The dispatcher checks for F contiguous first but the compiler checks
        for C contiguous first. This results in an C contiguous code inserted
        as F contiguous function.
        c                 ó   — | ||f   S r   r   )ÚAr§   Újs      r   r`   zKTestDispatcherMethods.test_issue_with_array_layout_conflict.<locals>.pyfuncz  s   € Ø�Q˜�T‘7ˆNr   r°   g        r±   g      @r(  )Úorderr)  rv   r   N)r   r<   Úarrayrr   )
ra   r`   ÚcfuncÚary_c_and_fÚary_cÚary_fÚexp_cÚexp_fÚgot_cÚgot_fs
             r   Ú%test_issue_with_array_layout_conflictz;TestDispatcherMethods.test_issue_with_array_layout_conflictr  sÏ   € ò	ô �F“ˆä—h‘h  ˜vÓ&ˆÜ—‘˜2˜r˜( R¨ HÐ-°SÔ9ˆÜ—‘˜2˜r˜( R¨ HÐ-°SÔ9ˆá�u˜a Ó#ˆÙ�u˜a Ó#ˆà×Ñ˜™U ;°°1Ó5Ô6Ù�e˜Q Ó"ˆÙ�e˜Q Ó"ˆà×Ñ˜ Ô&Ø×Ñ˜ Õ&r   )Ú )re   rf   rg   r[  r^  rh  ro  rz  r“  r™  r   r¦  r;  r<  Újinja2Úpygmentsr³  r¹  rÈ  r   r   r   rS  rS  ’  s~   „ ò/ò$-ò 4ò0*ó(/ò %òD8ò**òQð& €X‡_�_�V˜t�^Ð%JÓKØ€X‡_�_�X Ð%Ð'NÓOñ-ó Pó Lð-ò4+ó'r   rS  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú TestDispatcherFunctionBoundariesc                 óŠ  ‡‡— t        d¬«      d„ «       Št        d¬«      d„ «       Št        d¬«      ˆˆfd„«       }ddt        j                  d«      g}|D �cg c]  }|dz   ‘Œ	 }}t        ||«      D ]  \  }}| j	                   ||«      |«       Œ t        ||«      D ]  \  }}| j	                   ‰‰|«      |«       Œ  y c c}w )	NTrV   c                 ó   — | dz   S r   r   r   s    r   Úadd1zJTestDispatcherFunctionBoundaries.test_pass_dispatcher_as_arg.<locals>.add1‘  r�   r   c                 ó   —  | |«      S r   r   )Úfnr   s     r   rp   zITestDispatcherFunctionBoundaries.test_pass_dispatcher_as_arg.<locals>.bar•  s   € á�a“5ˆLr   c                 ó   •—  ‰‰| «      S r   r   )r   rÐ  rp   s    €€r   rm   zITestDispatcherFunctionBoundaries.test_pass_dispatcher_as_arg.<locals>.foo™  s   ø€ á�t˜Q“<Ðr   rv   g333333&@rÝ   )r   r<   r  ÚziprZ   )	ra   rm   Úinputsr   Úexpected_resultsÚargÚexpectrÐ  rp   s	          @@r   Útest_pass_dispatcher_as_argz<TestDispatcherFunctionBoundaries.test_pass_dispatcher_as_arg�  sØ   ù€ ä	�dÔ	ñ	ó 
ð	ô 
�dÔ	ñ	ó 
ð	ô 
�dÔ	ô	 ó 
ð	 ð �Tœ2Ÿ9™9 R›=Ð)ˆÙ+1Ó2©6 a˜A ›E¨6ÐÐ2ä˜vÐ'7Ö8‰KˆC�Ø×#Ñ#¡C¨£H¨fÕ5ð 9ô ˜vÐ'7Ö8‰KˆC�Ø×#Ñ#¡C¨¨c£N°FÕ;ñ 9ùò 3s   ÁC c                 ó¼  — t        d¬«      d„ «       } |g d¢t        d„ «      ¬«      }| j                  |d«        |t        t        t	        d«      t	        d«      d d d	…   «      «      t        d
„ «      ¬«      }| j                  |d«        |t        t        t	        d«      t	        d«      d d d	…   «      «      t        d„ «      ¬«      }| j                  |d«       y )NTrV   c                 óF   — | d   }| dd  D ]  } |||«      }|dk  sŒ|}Œ |S r&  r   )ÚseqÚcmpfnr  ÚeachÚcmpvals        r   ÚmaximumzPTestDispatcherFunctionBoundaries.test_dispatcher_as_arg_usecase.<locals>.maximum©  s:   € à�a‘&ˆCØ˜A˜B›�Ù˜s DÓ)�Ø˜A“:Ø‘Cð  ð ˆJr   )rv   r�   r�   r‘   c                 ó   — | |z
  S r   r   r   s     r   r„  zQTestDispatcherFunctionBoundaries.test_dispatcher_as_arg_usecase.<locals>.<lambda>²  s   € ¸1¸qº5r   )rÝ  r‘   rL  rÿ   c                 ó   — | d   |d   z
  S ©Nr   r   r   s     r   r„  zQTestDispatcherFunctionBoundaries.test_dispatcher_as_arg_usecase.<locals>.<lambda>µ  ó   € ¨Q¨q©T°A°a±Dª[r   )r‘   r   c                 ó   — | d   |d   z
  S r   r   r   s     r   r„  zQTestDispatcherFunctionBoundaries.test_dispatcher_as_arg_usecase.<locals>.<lambda>¸  rä  r   )r   r‘   )r   rr   r‹  rÔ  r¡   )ra   rà  r  s      r   Útest_dispatcher_as_arg_usecasez?TestDispatcherFunctionBoundaries.test_dispatcher_as_arg_usecase¨  s¿   € Ü	�dÔ	ñ	ó 
ð	ñ ’l¬#Ñ.@Ó*AÔBˆØ×Ñ˜˜aÔ Ù”dœ3œu Q›x¬¨q«±$°B°$©Ó8Ó9ÜÑ 8Ó9ô;ˆà×Ñ˜˜fÔ%Ù”dœ3œu Q›x¬¨q«±$°B°$©Ó8Ó9ÜÑ 8Ó9ô;ˆà×Ñ˜˜fÕ%r   c                 óp   — t        d¬«      d„ «       }t        d„ «      }| j                   ||«      |«       y )NTrV   c                 ó   — | S r   r   )rÒ  s    r   rm   zRTestDispatcherFunctionBoundaries.test_dispatcher_can_return_to_python.<locals>.foo¼  s   € àˆIr   c                 ó   — | S r   r   r   s    r   r„  zWTestDispatcherFunctionBoundaries.test_dispatcher_can_return_to_python.<locals>.<lambda>À  s   € ™1r   rq   )ra   rm   rÒ  s      r   Ú$test_dispatcher_can_return_to_pythonzETestDispatcherFunctionBoundaries.test_dispatcher_can_return_to_python»  s9   € Ü	�dÔ	ñ	ó 
ð	ô ‘Óˆà×Ñ™˜R› "Õ%r   c                 ó  ‡— t        d¬«      d„ «       Št        d¬«      ˆfd„«       }t        d¬«      ˆfd„«       }t        d¬«      d„ «       }| j                   |‰||fd«      d«       | j                   |‰‰‰gd«      d	«       y )
NTrV   c                 ó   — | dz   S r   r   r   s    r   ÚonezMTestDispatcherFunctionBoundaries.test_dispatcher_in_sequence_arg.<locals>.oneÅ  r�   r   c                 ó    •—  ‰ ‰| «      «      S r   r   ©r   rí  s    €r   ÚtwozMTestDispatcherFunctionBoundaries.test_dispatcher_in_sequence_arg.<locals>.twoÉ  s   ø€ á‘s˜1“v“;Ðr   c                 ó,   •—  ‰ ‰ ‰| «      «      «      S r   r   rï  s    €r   ÚthreezOTestDispatcherFunctionBoundaries.test_dispatcher_in_sequence_arg.<locals>.threeÍ  s   ø€ á‘s™3˜q›6“{Ó#Ð#r   c                 óB   —  | d   |«       | d   |«       | d   |«      fS )Nr   rv   r�   r   )Úfnsr   s     r   ÚchoosezPTestDispatcherFunctionBoundaries.test_dispatcher_in_sequence_arg.<locals>.chooseÑ  s-   € à�3�q‘6˜!“9˜f˜c !™f Q›i¨¨¨Q©°«Ð2Ð2r   rv   )r�   r�   r‘   )r�   r�   r�   rq   )ra   rð  rò  rõ  rí  s       @r   Útest_dispatcher_in_sequence_argz@TestDispatcherFunctionBoundaries.test_dispatcher_in_sequence_argÄ  s¢   ø€ Ü	�dÔ	ñ	ó 
ð	ô 
�dÔ	ó	ó 
ð	ô 
�dÔ	ó	$ó 
ð	$ô 
�dÔ	ñ	3ó 
ð	3ð 	×Ñ™  c¨5Ð 1°1Ó5°yÔAà×Ñ™  c¨3 °Ó3°YÕ?r   N)re   rf   rg   rÙ  ræ  rê  rö  r   r   r   rÍ  rÍ  Ž  s   „ ò<ò2&ò&&ó@r   rÍ  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestBoxingDefaultErrorc                 ó2  — d„ }t        j                  d«      f} t        |«      |«      j                  |   }| j	                  t
        «      5 }|j                  d «       d d d «       | j                  t        j                  «      d«       y # 1 sw Y   Œ/xY w)Nc                  ó   — y r   r   r   s    r   rm   z<TestBoxingDefaultError.test_unbox_runtime_error.<locals>.fooß  s   € Ør   Ú
dummy_typezcan't unbox dummy_type type)
r	   ÚDummyr   rw   r‡   rQ   ry   rr   rµ   r¶   )ra   rm   ÚargtysÚcresrÏ   s        r   Útest_unbox_runtime_errorz/TestBoxingDefaultError.test_unbox_runtime_errorÝ  s�   € ò	ä—+‘+˜lÓ+Ð-ˆð Œt�F‹|˜CÓ ×*Ñ*¨6Ñ2ˆØ×ÑœyÔ)¨Vð ×Ñ˜TÔ"÷ *ð 	×Ñœ˜V×-Ñ-Ó.Ð0MÕN÷	 *Ð)ús   ÁBÂBc                 óÌ   — t         d„ «       }| j                  t        «      5 } |«        d d d «       d}| j                  t	        j
                  «      |«       y # 1 sw Y   Œ1xY w)Nc                  ó   — t         S r   )r;  r   r   r   rm   z:TestBoxingDefaultError.test_box_runtime_error.<locals>.fooì  s   € äˆOr   z/cannot convert native Module.* to Python object)r   r‡   rQ   r¸   rµ   r¶   )ra   rm   rÏ   Úpats       r   Útest_box_runtime_errorz-TestBoxingDefaultError.test_box_runtime_errorë  sW   € Ü	ñ	ó 
ð	à×ÑœyÔ)¨VÙŒE÷ *à?ˆØ×Ñœ˜V×-Ñ-Ó.°Õ4÷ *Ð)ús   ¢AÁA#N)re   rf   rg   rÿ  r  r   r   r   rø  rø  Û  s   „ òOó5r   rø  c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚTestNoRetryFailedSignaturez?Test that failed-to-compile signatures are not recompiled.
    c                 ó¬  — |j                   }| j                  t        |j                  «      d«       | j	                  t
        j                  «      5   |d«       d d d «       | j                  t        |j                  «      d«       | j	                  t
        j                  «      5   |d«       d d d «       | j                  t        |j                  «      d«       | j	                  t
        j                  «      5   |d«       d d d «       | j                  t        |j                  «      d«       y # 1 sw Y   ŒÙxY w# 1 sw Y   Œ�xY w# 1 sw Y   ŒGxY w)Nr   rv   r°   r�   )Ú	_compilerrr   r“   Ú_failed_cacher‡   r
   r×   )ra   ÚfuncÚfcoms      r   Úrun_testz#TestNoRetryFailedSignature.run_testù  sò   € Ø�~‰~ˆØ×Ñœ˜T×/Ñ/Ó0°!Ô4à×Ñœv×1Ñ1Õ2Ù�ŒG÷ 3à×Ñœ˜T×/Ñ/Ó0°!Ô4à×Ñœv×1Ñ1Õ2Ù�ŒG÷ 3à×Ñœ˜T×/Ñ/Ó0°!Ô4à×Ñœv×1Ñ1Õ2Ù�ŒI÷ 3à×Ñœ˜T×/Ñ/Ó0°!Õ4÷ 3Ð2ú÷ 3Ð2ú÷ 3Ð2ús$   Á	D2Â&	D>Ã;	E
Ä2D;Ä>EÅ
Ec                 óJ   — t        d¬«      d„ «       }| j                  |«       y )NTrV   c                 ó   — | d   S rã  r   r   s    r   rm   z8TestNoRetryFailedSignature.test_direct_call.<locals>.foo
  ó   € à�Q‘4ˆKr   ©r   r  r�   s     r   Útest_direct_callz+TestNoRetryFailedSignature.test_direct_call	  s'   € Ü	�dÔ	ñ	ó 
ð	ð 	�‰�cÕr   c                 ó    ‡‡— t        d¬«      d„ «       Št        d¬«      ˆfd„«       Št        d¬«      ˆˆfd„«       }| j                  |«       y )NTrV   c                 ó   — | d   S rã  r   r   s    r   rp   z8TestNoRetryFailedSignature.test_nested_call.<locals>.bar  r  r   c                 ó   •—  ‰| «       y r   r   )r   rp   s    €r   Úfoobarz;TestNoRetryFailedSignature.test_nested_call.<locals>.foobar  s
   ø€ á��Fr   c                 ó&   •—  ‰| «       ‰| «      z   S r   r   )r   rp   r  s    €€r   rm   z8TestNoRetryFailedSignature.test_nested_call.<locals>.foo  s   ø€ á�q“6™F 1›IÑ%Ð%r   r  )ra   rm   rp   r  s     @@r   Útest_nested_callz+TestNoRetryFailedSignature.test_nested_call  sZ   ù€ Ü	�dÔ	ñ	ó 
ð	ô 
�dÔ	ó	ó 
ð	ô 
�dÔ	ô	&ó 
ð	&ð 	�‰�cÕr   c                 ó|   ‡ — ˆ fd„} |dd«      } |dd«      }‰ j                  |d«       ‰ j                  |d«       y )Nc                 ó¦  •‡‡	‡
— d}ddiŠ
d„ }t        |«      ˆ
ˆfd„«       }t        d¬«      d„ «       }|fˆ	fd	„	Š	 ‰	|f|z  «      }t        j                  d
«      }‰r[‰j	                  t
        j                  «      5 } ||d«       d d d «       ‰j                  dt        j                  «      «       ‰
d   S  ||d«       ‰
d   S # 1 sw Y   ŒAxY w)NrÝ   Úcr   c                 ó   — J d«       ‚)NÚunreachabler   r   s    r   ÚtriggerzKTestNoRetryFailedSignature.test_error_count.<locals>.check.<locals>.trigger(  s   € Ø'˜-Ó'�qr   c                 óR   •— ‰dxx   dz  cc<   ‰rt        j                  d«      ‚d„ S )Nr  rv   Úinvoke_failedc                 ó   — | S r   r   r   s    r   r„  z`TestNoRetryFailedSignature.test_error_count.<locals>.check.<locals>.ol_trigger.<locals>.<lambda>1  s   € ¡r   )r
   r×   )r   ÚcounterÚ
would_fails    €€r   Ú
ol_triggerzNTestNoRetryFailedSignature.test_error_count.<locals>.check.<locals>.ol_trigger+  s-   ø€ ð ˜“ Ñ!“ÙÜ ×,Ñ,¨_Ó=Ð=Ù"Ð"r   TrV   c                  ó   — y r   r   )rŸ  r   s     r   ÚidentzITestNoRetryFailedSignature.test_error_count.<locals>.check.<locals>.ident3  s   € àr   c                 ób   •‡‡— | d   | d d cŠ}t        d¬«      ˆˆfd„«       }|r	 ‰||«      S |S )Nrÿ   TrV   c                 ó>   •—  ‰| |«       | dxx    ‰|«      z  cc<   y rã  r   )rŸ  r   ÚinnerÚtab_heads     €€r   Úassignz`TestNoRetryFailedSignature.test_error_count.<locals>.check.<locals>.chain_assign.<locals>.assign:  s   ø€ á˜#˜q”MØ˜“F™h q›kÑ)”Fr   r€   )Úfsr'  Útab_tailr)  r(  Úchain_assigns    `  @€r   r,  zPTestNoRetryFailedSignature.test_error_count.<locals>.check.<locals>.chain_assign7  sG   ú€ Ø%'¨¡V¨R°°¨WÐ"�˜(ä˜dÔ#ô*ó $ð*ñ Ù'¨°&Ó9Ð9à!�Mr   r�   rv   r  )
r   r   r<   rE   r‡   r
   r×   r´   rµ   r¶   )Úfieldr!  r¯  r  r"  r$  r   rŸ  rÏ   r,  r   ra   s    `       @@€r   rb   z:TestNoRetryFailedSignature.test_error_count.<locals>.check   sß   û€ ð
 ˆAØ˜A�hˆGò(ô �gÓô#ó ð#ô ˜$Ôñó  ðð (-õ "ñ ! ' ¨a¡Ó0ˆEÜ—'‘'˜!“*ˆCÙØ×&Ñ&¤v×'9Ñ'9Ô:¸fÙ˜#˜q”M÷ ;à—‘˜o¬s°6×3CÑ3CÓ/DÔEð
 ˜3‘<Ðñ �c˜1”ð ˜3‘<Ð÷ ;Ð:ús   Á=
CÃCrG   Fr  Trv   r�   )rr   )ra   rb   Úct_okÚct_bads   `   r   Útest_error_countz+TestNoRetryFailedSignature.test_error_count  sE   ø€ ô.	 ñ` �c˜5Ó!ˆÙ�s˜DÓ!ˆð 	×Ñ˜ Ô"à×Ñ˜ Õ#r   N)re   rf   rg   rO  r  r  r  r0  r   r   r   r  r  õ  s   „ ñò5ò òó7$r   r  c                 ó   — | |z   S r   r   r   s     r   Úadd_y1r2  Y  ó   € àˆq‰5€Lr   c                 ó   — | |rdz   S dz   S rš   r   r   s     r   Ú	add_ynoner5  ^  s   € à‘Q�ÑÐ˜AÑÐr   c                 ó   — | |z  S r   r   r   s     r   Úmultr7  c  r3  r   c                 ó   — |  || | «      z   S r   r   )r   r	  s     r   Úadd_funcr9  h  s   € à‰t�A�q‹z‰>Ðr   c                 ó<   —  | |«      | j                  |«      k(  sJ ‚y r   )rz   )Úf1r×  s     r   Ú_checkerr<  m  s   € Ùˆc‹7�b—j‘j “oÒ%Ð%Ñ%r   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú$TestMultiprocessingDefaultParametersc                 ó  — 	 t        j                  d«      }dD ]\  }|j                  t        ||f¬«      }|j                  «        |j                  t        «       | j                  |j                  d«       Œ^ y # t        $ r	 t         }Y Œsw xY w)NÚspawn)rv   r�   r�   )r    r[   r   )
ÚmultiprocessingÚget_contextÚAttributeErrorÚProcessr<  r¤   r¥   Ú_TEST_TIMEOUTrr   Úexitcode)ra   ÚfcÚctxrG   Úps        r   Úrun_fc_multiprocz5TestMultiprocessingDefaultParameters.run_fc_multiprocr  sx   € ð	"Ü!×-Ñ-¨gÓ6ˆCó ˆAØ—‘¤8°2°q°(�Ó;ˆAØ�G‰GŒIØ�F‰F”=Ô!Ø×Ñ˜QŸZ™Z¨Õ+ñ	 øô ò 	"Ü!ŠCð	"ús   ‚A9 Á9BÂ
Bc                 ó.   — | j                  t        «       y)z Tests issue #4888N)rJ  r2  ©ra   s    r   Útest_int_def_paramz7TestMultiprocessingDefaultParameters.test_int_def_paramƒ  s   € ð 	×ÑœfÕ%r   c                 ó.   — | j                  t        «       y)z" Tests None as a default parameterN©rJ  r9  rL  s    r   Útest_none_def_paramz8TestMultiprocessingDefaultParameters.test_none_def_paramˆ  ó   € ð 	×ÑœhÕ'r   c                 ó.   — | j                  t        «       y)z( Tests a function as a default parameterNrO  rL  s    r   Útest_function_def_paramz<TestMultiprocessingDefaultParameters.test_function_def_param�  rQ  r   N)re   rf   rg   rJ  rM  rP  rS  r   r   r   r>  r>  q  s   „ ò,ò"&ò
(ó
(r   r>  c                   ó   — e Zd ZdZd„ Zy)ÚTestVectorizeDifferentTargetszDTest that vectorize can be reapplied if the target is different
    c                 ót   — t         d„ «       }t        g d d¬«      } ||«       t        g d d¬«      } ||«       y )Nc                 ó   — | |z   S r   r   r   s     r   r    z?TestVectorizeDifferentTargets.test_cpu_vs_parallel.<locals>.add˜  r�   r   Úcpu)Úidentityr    Úparallel)r   r   )ra   r    Úcustom_vectorizeÚcustom_vectorize_2s       r   Útest_cpu_vs_parallelz2TestVectorizeDifferentTargets.test_cpu_vs_parallel—  sD   € Ü	ñ	ó 
ð	ô % R°$¸uÔEÐá˜Ôä& r°DÀÔLÐá˜3Õr   N)re   rf   rg   rO  r]  r   r   r   rU  rU  “  s   „ ñó r   rU  Ú__main__)r�   r�   )r�   )rL  r   )rv   )BrA  Úplatformr¢   rë   rð   Ú	itertoolsr   Úior   Únumpyr<   Únumbar   r   r   r   Ú
numba.corer	   r
   r   Únumba.tests.supportr   r   Únumba.np.numpy_supportr   Únumba.core.dispatcherr   Únumba.extendingr   r   r   Únumba.testing.mainr   Ú_RUNNER_TIMEOUTr;  rE  rÊ  ÚImportErrorrË  Úmachiner=  r   r    r$   r'   r)   r3   r9   rS   rU   rj   r?  rQ  rS  rÍ  rø  r  r2  r5  r7  r9  r<  r>  rU  re   Úmainr   r   r   Ú<module>rn     sÜ  ðÛ Û Û Û Û Ý Ý ã ç .Ó .ß $Ý ß 9Ý +Ý ,Ý $ß 9Ý :Û à #Ñ%€ðÛðÛð ˆX×ÑÓ 8Ñ+€
òòòóóóóóô
ˆxô 
ôN4�Xô N4ôbLN˜Hô LNô^#Ð&;ô #ôy'˜Hô y'ôxJ@ xô J@ôZ5˜X×.Ñ.ô 5ô4a$ ×!2Ñ!2ô a$ðH òó ðð òó ðð ñó ðð Øò ó ðò&ô(¨;¸×8IÑ8Iô (ôD  H×$5Ñ$5ô  ð$ ˆzÒØ€H‡M�M…Oð øðU$ ò ØƒFðûð
 ò ØƒHðús$   Á1F Á6F ÆFÆFÆFÆF