§
    2@Äj  ã                   ó¤   — d dl Z d dlZd dlZd dlmZmZmZ d dlm	Z
 d dlmZmZ d dlmZ  G d„ de¦  «        Zedk    r e j        ¦   «          dS dS )	é    N)ÚnjitÚjitÚliteral_unroll)Úevent)ÚTestCaseÚoverride_config)Ú_lazy_pformatc                   óJ   — 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S )Ú	TestEventc                 ór   —  t          d„ ¦  «        ¦   «          t          t          j        ¦  «        | _        d S )Nc                  ó   — d S ©N© r   ó    úGC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_event.pyú<lambda>z!TestEvent.setUp.<locals>.<lambda>   s   € �T€ r   )r   ÚlenÚevÚ_registeredÚ _TestEvent__registered_listeners©Úselfs    r   ÚsetUpzTestEvent.setUp   s2   € à�ˆ\ˆ\ÑÔÑÔÐÝ&)­"¬.Ñ&9Ô&9ˆÔ#Ð#Ð#r   c                 ój   — |                       t          t          j        ¦  «        | j        ¦  «         d S r   )ÚassertEqualr   r   r   r   r   s    r   ÚtearDownzTestEvent.tearDown   s+   € à×Ò��Rœ^Ñ,Ô,¨dÔ.IÑJÔJÐJÐJÐJr   c                 ó$  — t           d„ ¦   «         }t          j        d¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |t          j        ¦  «         |                      t          |j        ¦  «        d¦  «         d S )Nc                 ó   — | | z   S r   r   ©Úxs    r   Úfooz.TestEvent.test_recording_listener.<locals>.foo   ó   € à�q‘5ˆLr   únumba:compileé   é   )r   r   Úinstall_recorderÚassertIsInstanceÚRecordingListenerÚassertGreaterEqualr   Úbuffer)r   r!   Úrecs      r   Útest_recording_listenerz!TestEvent.test_recording_listener   sÎ   € Ý	ð	ð 	ñ 
Œð	õ Ô  Ñ1Ô1ð 	°SØˆC�‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜c¥2Ô#7Ñ8Ô8Ð8ð 	×Ò¥ C¤J¡¤°Ñ3Ô3Ð3Ð3Ð3ó   ¥=½AÁAc                 óú   — t           d„ ¦   «         } |d¦  «         |                     |j        d         ¦  «        }|d         d         }|                      |t          ¦  «         |                      |d¦  «         d S )Nc                 ó   — | | z   S r   r   r   s    r   r!   z/TestEvent.test_compiler_lock_event.<locals>.foo%   r"   r   r$   r   ÚtimersÚcompiler_lock©r   Úget_metadataÚ
signaturesr'   ÚfloatÚassertGreater©r   r!   ÚmdÚlock_durations       r   Útest_compiler_lock_eventz"TestEvent.test_compiler_lock_event$   s„   € Ý	ð	ð 	ñ 
Œð	ð 	ˆˆA‰ŒˆØ×Ò˜cœn¨QÔ/Ñ0Ô0ˆØ˜8œ _Ô5ˆØ×Ò˜m­UÑ3Ô3Ð3Ø×Ò˜=¨!Ñ,Ô,Ð,Ð,Ð,r   c                 óú   — t           d„ ¦   «         } |d¦  «         |                     |j        d         ¦  «        }|d         d         }|                      |t          ¦  «         |                      |d¦  «         d S )Nc                 ó   — | | z   S r   r   r   s    r   r!   z+TestEvent.test_llvm_lock_event.<locals>.foo0   r"   r   r$   r   r0   Ú	llvm_lockr2   r7   s       r   Útest_llvm_lock_eventzTestEvent.test_llvm_lock_event/   s„   € Ý	ð	ð 	ñ 
Œð	ð 	ˆˆA‰ŒˆØ×Ò˜cœn¨QÔ/Ñ0Ô0ˆØ˜8œ [Ô1ˆØ×Ò˜m­UÑ3Ô3Ð3Ø×Ò˜=¨!Ñ,Ô,Ð,Ð,Ð,r   c                 ó˜  — t           d„ ¦   «         }t          j        d¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t	          |j        ¦  «        d¦  «         |j        D ]Ò\  }}|j        }|                      |d         t          ¦  «         |                      |d         t          ¦  «         |                      |d         t          ¦  «         |                      |d         t          ¦  «         |                      |d	         t          ¦  «         |                      |d
         t          ¦  «         ŒÓd S )Nc                 ó   — | | z   S r   r   r   s    r   r!   z*TestEvent.test_run_pass_event.<locals>.foo;   r"   r   znumba:run_passr%   r   ÚnameÚqualnameÚmoduleÚflagsÚargsÚreturn_type)
r   r   r&   r6   r   r*   Údatar'   Ústrr	   )r   r!   ÚrecorderÚ_r   rG   s         r   Útest_run_pass_eventzTestEvent.test_run_pass_event:   sw  € Ý	ð	ð 	ñ 
Œð	õ Ô Ð!1Ñ2Ô2ð 	°hØˆC�‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò�3˜xœÑ/Ô/°Ñ3Ô3Ð3Ø œð 	<ð 	<‰HˆAˆuà”:ˆDØ×!Ò! $ v¤,µÑ4Ô4Ð4Ø×!Ò! $ zÔ"2µCÑ8Ô8Ð8Ø×!Ò! $ x¤.µ#Ñ6Ô6Ð6Ø×!Ò! $ w¤-µÑ?Ô?Ð?Ø×!Ò! $ v¤,µÑ4Ô4Ð4Ø×!Ò! $ }Ô"5µsÑ;Ô;Ð;Ð;ð	<ð 	<r-   c                 ó  ‡‡— | Š G ˆˆfd„dt           j        ¦  «        }t          d„ ¦   «         Š |¦   «         }t          j        d|¦  «        5 } ‰d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ||¦  «         d S )Nc                   ó(   •— e Zd Zˆ ˆfd„Zˆ ˆfd„ZdS )ú3TestEvent.test_install_listener.<locals>.MyListenerc                 óf  •— ‰                      |j        t          j        j        ¦  «         ‰                      |j        d¦  «         ‰                     |j        d         ‰¦  «         |j        d         }‰                     |‰¦  «         ‰                     |j        d         |j	        ¦  «         d S ©Nr#   Ú
dispatcherrE   )
r   Ústatusr   ÚEventStatusÚSTARTÚkindÚassertIsrG   ÚassertNotInÚ	overloads©r   r   rQ   r!   Úuts      €€r   Úon_startz<TestEvent.test_install_listener.<locals>.MyListener.on_startQ   s“   ø€ Ø—’˜uœ|­R¬^Ô-AÑBÔBÐBØ—’˜uœz¨?Ñ;Ô;Ð;Ø—’˜EœJ |Ô4°cÑ:Ô:Ð:Ø"œZ¨Ô5�
Ø—’˜J¨Ñ,Ô,Ð,à—’˜uœz¨&Ô1°:Ô3GÑHÔHÐHÐHÐHr   c                 ó$  •— ‰                      |j        t          j        j        ¦  «         ‰                      |j        d¦  «         |j        d         }‰                     |‰¦  «         ‰                     |j        d         |j	        ¦  «         d S rP   ©
r   rR   r   rS   ÚENDrU   rG   rV   ÚassertInrX   rY   s      €€r   Úon_endz:TestEvent.test_install_listener.<locals>.MyListener.on_endZ   sx   ø€ Ø—’˜uœ|­R¬^Ô-?Ñ@Ô@Ð@Ø—’˜uœz¨?Ñ;Ô;Ð;Ø"œZ¨Ô5�
Ø—’˜J¨Ñ,Ô,Ð,à—’˜EœJ vÔ.°
Ô0DÑEÔEÐEÐEÐEr   N©Ú__name__Ú
__module__Ú__qualname__r[   r`   ©r!   rZ   s   €€r   Ú
MyListenerrN   P   s_   ø€ € € € € ðIð Ið Ið Ið Ið IðFð Fð Fð Fð Fð Fð Fð Fr   rf   c                 ó   — | S r   r   r   s    r   r!   z,TestEvent.test_install_listener.<locals>.foob   ó   € àˆHr   r#   r$   )r   ÚListenerr   Úinstall_listenerrV   )r   rf   ÚlistenerÚyieldedr!   rZ   s       @@r   Útest_install_listenerzTestEvent.test_install_listenerM   s  øø€ Øˆð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	F�œñ 	Fô 	Fð 	Fõ$ 
ð	ð 	ñ 
Œð	ð �:‘<”<ˆÝÔ  °(Ñ;Ô;ð 	¸wØˆC�‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š�h Ñ(Ô(Ð(Ð(Ð(s   ÁA'Á'A+Á.A+c                 óâ   ‡‡— | Š G ˆˆfd„dt           j        ¦  «        }t          d„ ¦   «         Š |¦   «         }t          j        d|¦  «          ‰d¦  «         t          j        d|¦  «         d S )Nc                   ó(   •— e Zd Zˆ ˆfd„Zˆ ˆfd„ZdS )ú2TestEvent.test_global_register.<locals>.MyListenerc                 ó$  •— ‰                      |j        t          j        j        ¦  «         ‰                      |j        d¦  «         |j        d         }‰                     |‰¦  «         ‰                     |j        d         |j	        ¦  «         d S rP   )
r   rR   r   rS   rT   rU   rG   rV   rW   rX   rY   s      €€r   r[   z;TestEvent.test_global_register.<locals>.MyListener.on_startq   sx   ø€ Ø—’˜uœ|­R¬^Ô-AÑBÔBÐBØ—’˜uœz¨?Ñ;Ô;Ð;à"œZ¨Ô5�
Ø—’˜J¨Ñ,Ô,Ð,à—’˜uœz¨&Ô1°:Ô3GÑHÔHÐHÐHÐHr   c                 ó$  •— ‰                      |j        t          j        j        ¦  «         ‰                      |j        d¦  «         |j        d         }‰                     |‰¦  «         ‰                     |j        d         |j	        ¦  «         d S rP   r]   rY   s      €€r   r`   z9TestEvent.test_global_register.<locals>.MyListener.on_endz   sx   ø€ Ø—’˜uœ|­R¬^Ô-?Ñ@Ô@Ð@Ø—’˜uœz¨?Ñ;Ô;Ð;à"œZ¨Ô5�
Ø—’˜J¨Ñ,Ô,Ð,à—’˜EœJ vÔ.°
Ô0DÑEÔEÐEÐEÐEr   Nra   re   s   €€r   rf   rp   p   s_   ø€ € € € € ðIð Ið Ið Ið Ið IðFð Fð Fð Fð Fð Fð Fð Fr   rf   c                 ó   — | S r   r   r   s    r   r!   z+TestEvent.test_global_register.<locals>.fooƒ   rh   r   r#   r$   )r   ri   r   ÚregisterÚ
unregister)r   rf   rk   r!   rZ   s      @@r   Útest_global_registerzTestEvent.test_global_registerm   s®   øø€ Øˆð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	F�œñ 	Fô 	Fð 	Fõ& 
ð	ð 	ñ 
Œð	ð �:‘<”<ˆÝ
Œ�O XÑ.Ô.Ð.ØˆˆA‰ŒˆÝ
Œ�o xÑ0Ô0Ð0Ð0Ð0r   c                 ó  — t          d¬¦  «        d„ ¦   «         }t          j        d¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      t	          |j        ¦  «        d¦  «         |j        |j        d                  }|j        \  }|j        |j        d                  }|  	                    |j
        d         d         t          ¦  «         |  	                    |j
        d         d	         t          ¦  «         d S )
NT)Úforceobjc                  óT   — t          ¦   «          d} t          d¦  «        D ]}| |z  } Œ| S )Nr   é
   )ÚobjectÚrange)ÚcÚis     r   r!   z-TestEvent.test_lifted_dispatcher.<locals>.foo�   s5   € å‰HŒHˆHØˆAÝ˜2‘Y”Yð ð �Ø�Q‘��ØˆHr   r#   é   r   r0   r1   r=   )r   r   r&   r)   r   r*   rX   r4   Úliftedr'   Úmetadatar5   )r   r!   r+   ÚcresÚldispÚlifted_cress         r   Útest_lifted_dispatcherz TestEvent.test_lifted_dispatcherŒ   sI  € Ý	�dÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ Ô  Ñ1Ô1ð 	°SØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 	×Ò¥ C¤J¡¤°Ñ3Ô3Ð3àŒ}˜Sœ^¨AÔ.Ô/ˆØ”+‰ˆà”o eÔ&6°qÔ&9Ô:ˆØ×ÒØÔ  Ô*¨?Ô;Ýñ	
ô 	
ð 	
ð 	×ÒØÔ  Ô*¨;Ô7Ýñ	
ô 	
ð 	
ð 	
ð 	
s   ®AÁA	ÁA	c                 ó  ‡‡— t          t          j        ¦  «        Št          ˆfd„¦   «         Št          ˆfd„¦   «         }t	          dd¦  «        5   |d¦  «         d d d ¦  «         n# 1 swxY w Y   d„ } ||d¦  «        } |‰d¦  «        } ||d¦  «        } |‰d¦  «        }|                      |d	         |d	         ¦  «         |                      |d
         |d
         ¦  «         |                      |                     ¦   «         |d	         ¦  «         |                      |                     ¦   «         |d	         ¦  «         |                      |d	         |d
         ¦  «         |                      |d	         |d
         ¦  «         d S )Nc                 óª   •— d}t          ‰¦  «        D ]+}|d| iv r|dz  }Œ|t          j        | d         ¦  «        z  }Œ,t          j        | ¦  «        |fS )Nr   Ú1r$   )r   r   )r   ÚnpÚsqrtÚsin)r    Úaccr~   Úas      €r   Úbarz-TestEvent.test_timing_properties.<locals>.bar¬   sc   ø€ àˆCÝ# AÑ&Ô&ð ,ð ,�Ø˜˜a˜�=�=Ø˜1‘H�C�Cà�2œ7 1 T¤7Ñ+Ô+Ñ+�C�CÝ”6˜!‘9”9˜c�>Ð!r   c                 óB   •—  ‰t          j        | | f¦  «        ¦  «        S r   )r‰   Úzeros)r    rŽ   s    €r   r!   z-TestEvent.test_timing_properties.<locals>.foo¶   s!   ø€ à�3•r”x  A Ñ'Ô'Ñ(Ô(Ð(r   ÚLLVM_PASS_TIMINGSTr$   c                 óR   — |                       | j        d         ¦  «        }||         S )Nr   )r3   r4   )ÚfnÚpropr8   s      r   Ú
get_timersz4TestEvent.test_timing_properties.<locals>.get_timers½   s#   € Ø—’ ¤¨qÔ!1Ñ2Ô2ˆBØ�d”8ˆOr   r0   Úllvm_pass_timingsr=   r1   )ÚtupleÚstringÚascii_lowercaser   r   Ú
assertLessÚget_total_time)	r   r!   r•   Ú
foo_timersÚ
bar_timersÚfoo_llvm_timerÚbar_llvm_timerr�   rŽ   s	          @@r   Útest_timing_propertiesz TestEvent.test_timing_properties©   s$  øø€ Ý•&Ô(Ñ)Ô)ˆå	ð	"ð 	"ð 	"ð 	"ñ 
Œð	"õ 
ð	)ð 	)ð 	)ð 	)ñ 
Œð	)õ Ð0°$Ñ7Ô7ð 	ð 	ØˆC�‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð 	ð 	ð  �Z  XÑ.Ô.ˆ
Ø�Z  XÑ.Ô.ˆ
Ø#˜ CÐ)<Ñ=Ô=ˆØ#˜ CÐ)<Ñ=Ô=ˆð 	�Š˜
 ;Ô/Ø" ;Ô/ñ	1ô 	1ð 	1à�Š˜
 ?Ô3Ø" ?Ô3ñ	5ô 	5ð 	5ð 	�Š˜×5Ò5Ñ7Ô7Ø" ;Ô/ñ	1ô 	1ð 	1à�Š˜×5Ò5Ñ7Ô7Ø" ;Ô/ñ	1ô 	1ð 	1ð 	�Š˜
 ;Ô/Ø" ?Ô3ñ	5ô 	5ð 	5à�Š˜
 ;Ô/Ø" ?Ô3ñ	5ô 	5ð 	5ð 	5ð 	5s   ÁA(Á(A,Á/A,N)rb   rc   rd   r   r   r,   r:   r>   rK   rm   rv   r…   r    r   r   r   r   r      s®   € € € € € ð:ð :ð :ð
Kð Kð Kð4ð 4ð 4ð	-ð 	-ð 	-ð	-ð 	-ð 	-ð<ð <ð <ð&)ð )ð )ð@1ð 1ð 1ð>
ð 
ð 
ð:-5ð -5ð -5ð -5ð -5r   r   Ú__main__)Úunittestr˜   Únumpyr‰   Únumbar   r   r   Ú
numba.corer   r   Únumba.tests.supportr   r   Únumba.core.utilsr	   r   rb   Úmainr   r   r   ú<module>r©      sÖ   ðØ €€€Ø €€€à Ð Ð Ð à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø "Ð "Ð "Ð "Ð "Ð "Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø *Ð *Ð *Ð *Ð *Ð *ðJ5ð J5ð J5ð J5ð J5�ñ J5ô J5ð J5ðZ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   