
    .|h                         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$                          yy)	    N)njitjitliteral_unroll)event)TestCaseoverride_config)_lazy_pformatc                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)	TestEventc                 b     t        d               t        t        j                        | _        y )Nc                       y N r       U/var/www/html/test/engine/venv/lib/python3.12/site-packages/numba/tests/test_event.py<lambda>z!TestEvent.setUp.<locals>.<lambda>   s    r   )r   lenev_registered _TestEvent__registered_listenersselfs    r   setUpzTestEvent.setUp   s     \&)"..&9#r   c                 j    | j                  t        t        j                        | j                         y r   )assertEqualr   r   r   r   r   s    r   tearDownzTestEvent.tearDown   s!    R^^,d.I.IJr   c                 
   t         d        }t        j                  d      5 } |d       d d d        | j                  t        j                         | j                  t        |j                        d       y # 1 sw Y   OxY w)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   st    		 
	   1 	SF	 	c2#7#78 	CJJ3	 	s   	A99Bc                     t         d        } |d       |j                  |j                  d         }|d   d   }| j                  |t               | j                  |d       y )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$   sd    		 
	 	AcnnQ/08_5mU3=!,r   c                     t         d        } |d       |j                  |j                  d         }|d   d   }| j                  |t               | j                  |d       y )Nc                     | | z   S r   r   r   s    r   r!   z+TestEvent.test_llvm_lock_event.<locals>.foo0   r"   r   r$   r   r/   	llvm_lockr1   r6   s       r   test_llvm_lock_eventzTestEvent.test_llvm_lock_event/   sd    		 
	 	AcnnQ/08[1mU3=!,r   c                 6   t         d        }t        j                  d      5 } |d       d d d        | j                  t	        j
                        d       |j
                  D ]  \  }}|j                  }| j                  |d   t               | j                  |d   t               | j                  |d   t               | j                  |d   t               | j                  |d	   t               | j                  |d
   t                y # 1 sw Y   xY w)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'   strr	   )r   r!   recorder_r   rF   s         r   test_run_pass_eventzTestEvent.test_run_pass_event:   s    		 
	   !12 	hF	 	3x/3  	<HAu::D!!$v,4!!$z"2C8!!$x.#6!!$w-?!!$v,4!!$}"5s;	<		 	s   	DDc                     |  G fddt         j                        }t        d         |       }t        j                  d|      5 } d       d d d        | j	                  |       y # 1 sw Y   xY w)Nc                   &    e Zd Z fdZ fdZy)3TestEvent.test_install_listener.<locals>.MyListenerc                 x   j                  |j                  t        j                  j                         j                  |j
                  d       j                  |j                  d          |j                  d   }j                  |       j                  |j                  d   |j                         y 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_startQ   s    u||R^^-A-ABuzz?;EJJ|4c:"ZZ5
J,uzz&1:3G3GHr   c                 :   j                  |j                  t        j                  j                         j                  |j
                  d       |j                  d   }j                  |       j                  |j                  d   |j                         y rO   
r   rQ   r   rR   ENDrT   rF   rU   assertInrW   rX   s      r   on_endz:TestEvent.test_install_listener.<locals>.MyListener.on_endZ   sj    u||R^^-?-?@uzz?;"ZZ5
J,EJJv.
0D0DEr   N__name__
__module____qualname__rZ   r_   r!   rY   s   r   
MyListenerrM   P   s    IFr   re   c                     | S r   r   r   s    r   r!   z,TestEvent.test_install_listener.<locals>.foob       Hr   r#   r$   )r   Listenerr   install_listenerrU   )r   re   listeneryieldedr!   rY   s       @@r   test_install_listenerzTestEvent.test_install_listenerM   su    	F 	F$ 
	 
	 <  (; 	wF	 	h(		 	s   
	A..A7c                     |  G fddt         j                        }t        d         |       }t        j                  d|        d       t        j                  d|       y )Nc                   &    e Zd Z fdZ fdZy)2TestEvent.test_global_register.<locals>.MyListenerc                 :   j                  |j                  t        j                  j                         j                  |j
                  d       |j                  d   }j                  |       j                  |j                  d   |j                         y rO   )
r   rQ   r   rR   rS   rT   rF   rU   rV   rW   rX   s      r   rZ   z;TestEvent.test_global_register.<locals>.MyListener.on_startq   sj    u||R^^-A-ABuzz?;"ZZ5
J,uzz&1:3G3GHr   c                 :   j                  |j                  t        j                  j                         j                  |j
                  d       |j                  d   }j                  |       j                  |j                  d   |j                         y rO   r\   rX   s      r   r_   z9TestEvent.test_global_register.<locals>.MyListener.on_endz   sj    u||R^^-?-?@uzz?;"ZZ5
J,EJJv.
0D0DEr   Nr`   rd   s   r   re   ro   p   s    I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_registerm   sZ    	F 	F& 
	 
	 <
OX.A
ox0r   c                    t        d      d        }t        j                  d      5 } |        d d d        | j                  t	        j
                        d       |j                  |j                  d      }|j                  \  }|j                  |j                  d      }| j                  |j                  d   d   t               | j                  |j                  d   d	   t               y # 1 sw Y   xY w)
NT)forceobjc                  H    t                d} t        d      D ]  }| |z  } 	 | S )Nr   
   )objectrange)cis     r   r!   z-TestEvent.test_lifted_dispatcher.<locals>.foo   s-    HA2Y 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   s    	d		 
	   1 	SE	
 	CJJ3}}S^^A./++ooe&6&6q&9:  *?;	
 	  *;7	
	 	s   C00C9c                 ^   t        t        j                        t        fd       t        fd       }t	        dd      5   |d       d d d        d } ||d      } |d      } ||d      } |d      }| j                  |d	   |d	          | j                  |d
   |d
          | j                  |j                         |d	          | j                  |j                         |d	          | j                  |d	   |d
          | j                  |d	   |d
          y # 1 sw Y   xY w)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   s[    C#A& ,a=1HC2771T7++C	,
 66!9c>!r   c                 >     t        j                  | | f            S r   )r   zeros)r    r   s    r   r!   z-TestEvent.test_timing_properties.<locals>.foo   s    rxxA'((r   LLVM_PASS_TIMINGSTr$   c                 H    | j                  | j                  d         }||   S )Nr   )r2   r3   )fnpropr7   s      r   
get_timersz4TestEvent.test_timing_properties.<locals>.get_timers   s"    q!1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   sK   &(()		" 
	" 
	) 
	) 0$7 	F		  X.
X.
#C)<=#C)<= 	
;/";/	1
?3"?3	5 	557";/	1557";/	1 	
;/"?3	5
;/"?3	57	 	s   	D##D,N)ra   rb   rc   r   r   r,   r9   r=   rJ   rl   ru   r   r   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   ra   mainr   r   r   <module>r      sF       + + " 9 *J5 J5Z zHMMO r   