
    sh                         S SK r S SKrS SKrS SKJrJrJr  S SKJ	r
  S SKJrJr  S SKJr   " S S\5      r\S:X  a  \ R$                  " 5         gg)	    N)njitjitliteral_unroll)event)TestCaseoverride_config)_lazy_pformatc                   P    \ 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)	TestEvent   c                 b    [        S 5      " 5         [        [        R                  5      U l        g )Nc                      g N r       j/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_event.py<lambda>!TestEvent.setUp.<locals>.<lambda>   s    Tr   )r   lenev_registered _TestEvent__registered_listenersselfs    r   setUpTestEvent.setUp   s    \&)"..&9#r   c                 j    U R                  [        [        R                  5      U R                  5        g r   )assertEqualr   r   r   r   r   s    r   tearDownTestEvent.tearDown   s!    R^^,d.I.IJr   c                    [         S 5       n[        R                  " S5       nU" S5        S S S 5        U R                  W[        R                  5        U R                  [        UR                  5      S5        g ! , (       d  f       NT= f)Nc                 
    X -   $ r   r   xs    r   foo.TestEvent.test_recording_listener.<locals>.foo   	    5Lr   numba:compile      )r   r   install_recorderassertIsInstanceRecordingListenerassertGreaterEqualr   buffer)r   r%   recs      r   test_recording_listener!TestEvent.test_recording_listener   sm    		 
	   1SF 2 	c2#7#78 	CJJ3 21s   	A::
Bc                     [         S 5       nU" S5        UR                  UR                  S   5      nUS   S   nU R                  U[        5        U R                  US5        g )Nc                 
    X -   $ r   r   r#   s    r   r%   /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_event"TestEvent.test_compiler_lock_event$   sd    		 
	 	AcnnQ/08_5mU3=!,r   c                     [         S 5       nU" S5        UR                  UR                  S   5      nUS   S   nU R                  U[        5        U R                  US5        g )Nc                 
    X -   $ r   r   r#   s    r   r%   +TestEvent.test_llvm_lock_event.<locals>.foo0   r'   r   r)   r   r6   	llvm_lockr8   r=   s       r   test_llvm_lock_eventTestEvent.test_llvm_lock_event/   sd    		 
	 	AcnnQ/08[1mU3=!,r   c                 D   [         S 5       n[        R                  " S5       nU" S5        S S S 5        U R                  [	        WR
                  5      S5        UR
                   H  u  p4UR                  nU R                  US   [        5        U R                  US   [        5        U R                  US   [        5        U R                  US   [        5        U R                  US	   [        5        U R                  US
   [        5        M     g ! , (       d  f       N= f)Nc                 
    X -   $ r   r   r#   s    r   r%   *TestEvent.test_run_pass_event.<locals>.foo;   r'   r   znumba:run_passr*   r   namequalnamemoduleflagsargsreturn_type)
r   r   r+   r<   r   r/   datar,   strr	   )r   r%   recorder_r   rQ   s         r   test_run_pass_eventTestEvent.test_run_pass_event:   s    		 
	   !12hF 3 	3x/3 HA::D!!$v,4!!$z"2C8!!$x.#6!!$w-?!!$v,4!!$}"5s; (	 32s   	D
Dc                   ^^ U m " UU4S jS[         R                  5      n[        S 5       mU" 5       n[         R                  " SU5       nT" S5        S S S 5        U R	                  UW5        g ! , (       d  f       N!= f)Nc                   2   > \ rS rSrU U4S jrU U4S jrSrg)3TestEvent.test_install_listener.<locals>.MyListenerP   c                 x  > TR                  UR                  [        R                  R                  5        TR                  UR
                  S5        TR                  UR                  S   T5        UR                  S   nTR                  UT5        TR                  UR                  S   UR                  5        g Nr(   
dispatcherrO   )
r   statusr   EventStatusSTARTkindassertIsrQ   assertNotIn	overloadsr   r   r]   r%   uts      r   on_start<TestEvent.test_install_listener.<locals>.MyListener.on_startQ   s    u||R^^-A-ABuzz?;EJJ|4c:"ZZ5
J,uzz&1:3G3GHr   c                 :  > TR                  UR                  [        R                  R                  5        TR                  UR
                  S5        UR                  S   nTR                  UT5        TR                  UR                  S   UR                  5        g r\   
r   r^   r   r_   ENDra   rQ   rb   assertInrd   re   s      r   on_end:TestEvent.test_install_listener.<locals>.MyListener.on_endZ   sj    u||R^^-?-?@uzz?;"ZZ5
J,EJJv.
0D0DEr   r   N__name__
__module____qualname____firstlineno__rg   rm   __static_attributes__r%   rf   s   r   
MyListenerrY   P   s    IF Fr   rv   c                     U $ r   r   r#   s    r   r%   ,TestEvent.test_install_listener.<locals>.foob       Hr   r(   r)   )r   Listenerr   install_listenerrb   )r   rv   listeneryieldedr%   rf   s       @@r   test_install_listenerTestEvent.test_install_listenerM   st    	F 	F 	F$ 
	 
	 <  (;wF < 	h(	 <;s   	A00
A>c                    ^^ U m " UU4S jS[         R                  5      n[        S 5       mU" 5       n[         R                  " SU5        T" S5        [         R                  " SU5        g )Nc                   2   > \ rS rSrU U4S jrU U4S jrSrg)2TestEvent.test_global_register.<locals>.MyListenerp   c                 :  > TR                  UR                  [        R                  R                  5        TR                  UR
                  S5        UR                  S   nTR                  UT5        TR                  UR                  S   UR                  5        g r\   )
r   r^   r   r_   r`   ra   rQ   rb   rc   rd   re   s      r   rg   ;TestEvent.test_global_register.<locals>.MyListener.on_startq   sj    u||R^^-A-ABuzz?;"ZZ5
J,uzz&1:3G3GHr   c                 :  > TR                  UR                  [        R                  R                  5        TR                  UR
                  S5        UR                  S   nTR                  UT5        TR                  UR                  S   UR                  5        g r\   rj   re   s      r   rm   9TestEvent.test_global_register.<locals>.MyListener.on_endz   sj    u||R^^-?-?@uzz?;"ZZ5
J,EJJv.
0D0DEr   r   Nro   ru   s   r   rv   r   p   s    IF Fr   rv   c                     U $ r   r   r#   s    r   r%   +TestEvent.test_global_register.<locals>.foo   ry   r   r(   r)   )r   rz   r   register
unregister)r   rv   r|   r%   rf   s      @@r   test_global_registerTestEvent.test_global_registerm   s`    	F 	F 	F& 
	 
	 <
OX.A
ox0r   c                    [        SS9S 5       n[        R                  " S5       nU" 5         S S S 5        U R                  [	        WR
                  5      S5        UR                  UR                  S      nUR                  u  nUR                  UR                  S      nU R                  UR                  S   S   [        5        U R                  UR                  S   S	   [        5        g ! , (       d  f       N= f)
NT)forceobjc                  J    [        5         Sn [        S5       H  nX-  n M	     U $ )Nr   
   )objectrange)cis     r   r%   -TestEvent.test_lifted_dispatcher.<locals>.foo   s&    HA2Y Hr   r(      r   r6   r7   rE   )r   r   r+   r.   r   r/   rd   r:   liftedr,   metadatar;   )r   r%   r0   cresldisplifted_cress         r   test_lifted_dispatcher TestEvent.test_lifted_dispatcher   s    	d		 
	   1SE 2
 	CJJ3}}S^^A./++ooe&6&6q&9:  *?;	
 	  *;7	
 21s   C..
C<c                 l  ^^ [        [        R                  5      m[        U4S j5       m[        U4S j5       n[	        SS5         U" S5        S S S 5        S nU" US5      nU" TS5      nU" US5      nU" TS5      nU R                  US	   US	   5        U R                  US
   US
   5        U R                  UR                  5       US	   5        U R                  UR                  5       US	   5        U R                  US	   US
   5        U R                  US	   US
   5        g ! , (       d  f       N= f)Nc                    > Sn[        T5       H.  nUSU 0;   a  US-  nM  U[        R                  " U S   5      -  nM0     [        R                  " U 5      U4$ )Nr   1r)   )r   r   )r   npsqrtsin)r$   accr   as      r   bar-TestEvent.test_timing_properties.<locals>.bar   sV    C#A&a=1HC2771T7++C	 '
 66!9c>!r   c                 >   > T" [         R                  " X 45      5      $ r   )r   zeros)r$   r   s    r   r%   -TestEvent.test_timing_properties.<locals>.foo   s    rxx'((r   LLVM_PASS_TIMINGSTr)   c                 F    U R                  U R                  S   5      nX!   $ )Nr   )r9   r:   )fnpropr>   s      r   
get_timers4TestEvent.test_timing_properties.<locals>.get_timers   s     q!12B8Or   r6   llvm_pass_timingsrE   r7   )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_properties TestEvent.test_timing_properties   sD   &(()		" 
	" 
	) 
	) 0$7F 8	  X.
X.
#C)<=#C)<= 	
;/";/	1
?3"?3	5 	557";/	1557";/	1 	
;/"?3	5
;/"?3	57 87s   	D%%
D3)__registered_listenersN)rp   rq   rr   rs   r   r   r1   r@   rF   rU   r~   r   r   r   rt   r   r   r   r   r      s6    :
K4	-	-<&)@1>
:-5r   r   __main__)unittestr   numpyr   numbar   r   r   
numba.corer   r   numba.tests.supportr   r   numba.core.utilsr	   r   rp   mainr   r   r   <module>r      sD       + + " 9 *J5 J5Z zMMO r   