
    
fp                         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  G d de          Zedk    r e j                     dS dS )    N)njitjitliteral_unroll)event)TestCaseoverride_configc                   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       6lib/python3.11/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       q5Lr   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FFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	c2#7888 	CJ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cnQ/008_5mU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>.foo/   r!   r   r#   r   r/   	llvm_lockr1   r6   s       r   test_llvm_lock_eventzTestEvent.test_llvm_lock_event.   s    		 	 
	 	AcnQ/008[1mU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%   r5   r   r)   datar&   str)r   r    recorder_r   rF   s         r   test_run_pass_eventzTestEvent.test_run_pass_event9   sw   		 	 
	  !122 	hCFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3x//333  	< 	<HAu:D!!$v,444!!$z"2C888!!$x.#666!!$w-555!!$v,444!!$}"5s;;;;	< 	<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"   
dispatcherrD   )
r   statusr   EventStatusSTARTkindassertIsrF   assertNotIn	overloadsr   r   rP   r    uts      r   on_startz<TestEvent.test_install_listener.<locals>.MyListener.on_startP   s    u|R^-ABBBuz?;;;EJ|4c:::"Z5
J,,,uz&1:3GHHHHHr   c                 $                        |j        t          j        j                                        |j        d           |j        d         }                    |                               |j        d         |j	                   d S rO   
r   rQ   r   rR   ENDrT   rF   rU   assertInrW   rX   s      r   on_endz:TestEvent.test_install_listener.<locals>.MyListener.on_endY   sx    u|R^-?@@@uz?;;;"Z5
J,,,EJv.
0DEEEEEr   N__name__
__module____qualname__rZ   r_   r    rY   s   r   
MyListenerrM   O   s_        I I I I I IF F F F F F F Fr   re   c                     | S r   r   r   s    r   r    z,TestEvent.test_install_listener.<locals>.fooa       Hr   r"   r#   )r   Listenerr   install_listenerrU   )r   re   listeneryieldedr    rY   s       @@r   test_install_listenerzTestEvent.test_install_listenerL   s   	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F$ 
	 	 
	 :<< (;; 	wCFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	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 rO   )
r   rQ   r   rR   rS   rT   rF   rU   rV   rW   rX   s      r   rZ   z;TestEvent.test_global_register.<locals>.MyListener.on_startp   sx    u|R^-ABBBuz?;;;"Z5
J,,,uz&1:3GHHHHHr   c                 $                        |j        t          j        j                                        |j        d           |j        d         }                    |                               |j        d         |j	                   d S rO   r\   rX   s      r   r_   z9TestEvent.test_global_register.<locals>.MyListener.on_endy   sx    u|R^-?@@@uz?;;;"Z5
J,,,EJv.
0DEEEEEr   Nr`   rd   s   r   re   ro   o   s_        I I I I I IF F F F F F F Fr   re   c                     | S r   r   r   s    r   r    z+TestEvent.test_global_register.<locals>.foo   rg   r   r"   r#   )r   rh   r   register
unregister)r   re   rj   r    rY   s      @@r   test_global_registerzTestEvent.test_global_registerl   s    	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F& 
	 	 
	 :<<
OX...A
ox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    HHHA2YY  QHr   r"      r   r/   r0   r<   )r   r   r%   r(   r   r)   rW   r3   liftedr&   metadatar4   )r   r    r*   cresldisplifted_cress         r   test_lifted_dispatcherz TestEvent.test_lifted_dispatcher   sI   	d				 	 
		  11 	SCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	CJ333}S^A./+oe&6q&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==1HCC271T7+++CC6!99c>!r   c                 B     t          j        | | f                    S r   )r   zeros)r   r   s    r   r    z-TestEvent.test_timing_properties.<locals>.foo   s!    3rxA''(((r   LLVM_PASS_TIMINGSTr#   c                 R    |                      | j        d                   }||         S )Nr   )r2   r3   )fnpropr7   s      r   
get_timersz4TestEvent.test_timing_properties.<locals>.get_timers   s#    q!122Bd8Or   r/   llvm_pass_timingsr<   r0   )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FFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	  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)ra   rb   rc   r   r   r+   r9   r=   rJ   rl   ru   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   r
   ra   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5Z zHMOOOOO r   