
    xKgp                         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                           yy)    N)njitjitliteral_unroll)event)TestCaseoverride_configc                   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       Z/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_event.py<lambda>z!TestEvent.setUp.<locals>.<lambda>   s    Tr   )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   sm    		 
	   1SF 2 	c2#7#78 	CJJ3 21s   	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>.foo/   r!   r   r#   r   r.   	llvm_lockr0   r5   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%   r4   r   r)   datar&   str)r   r    recorder_r   rE   s         r   test_run_pass_eventzTestEvent.test_run_pass_event9   s    		 
	   !12hF 3 	3x/3 HAu::D!!$v,4!!$z"2C8!!$x.#6!!$w-5!!$v,4!!$}"5s; (	 32s   	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"   
dispatcherrC   )
r   statusr   EventStatusSTARTkindassertIsrE   assertNotIn	overloadsr   r   rO   r    uts      r   on_startz<TestEvent.test_install_listener.<locals>.MyListener.on_startP   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 rN   
r   rP   r   rQ   ENDrS   rE   rT   assertInrV   rW   s      r   on_endz:TestEvent.test_install_listener.<locals>.MyListener.on_endY   sj    u||R^^-?-?@uzz?;"ZZ5
J,EJJv.
0D0DEr   N__name__
__module____qualname__rY   r^   r    rX   s   r   
MyListenerrL   O   s    IFr   rd   c                     | S r   r   r   s    r   r    z,TestEvent.test_install_listener.<locals>.fooa       Hr   r"   r#   )r   Listenerr   install_listenerrT   )r   rd   listeneryieldedr    rX   s       @@r   test_install_listenerzTestEvent.test_install_listenerL   sn    	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 rN   )
r   rP   r   rQ   rR   rS   rE   rT   rU   rV   rW   s      r   rY   z;TestEvent.test_global_register.<locals>.MyListener.on_startp   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 rN   r[   rW   s      r   r^   z9TestEvent.test_global_register.<locals>.MyListener.on_endy   sj    u||R^^-?-?@uzz?;"ZZ5
J,EJJv.
0D0DEr   Nr_   rc   s   r   rd   rn   o   s    IFr   rd   c                     | S r   r   r   s    r   r    z+TestEvent.test_global_register.<locals>.foo   rf   r   r"   r#   )r   rg   r   register
unregister)r   rd   ri   r    rX   s      @@r   test_global_registerzTestEvent.test_global_registerl   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.   r/   r;   )r   r   r%   r(   r   r)   rV   r2   liftedr&   metadatar3   )r   r    r*   cresldisplifted_cress         r   test_lifted_dispatcherz TestEvent.test_lifted_dispatcher   s    	d		 
	   1SE 2
 	CJJ3}}S^^A./++ooe&6&6q&9:  *?;	
 	  *;7	
 21s   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   sV    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   )r1   r2   )fnpropr6   s      r   
get_timersz4TestEvent.test_timing_properties.<locals>.get_timers   s"    q!12Bd8Or   r.   llvm_pass_timingsr;   r/   )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   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##D,N)r`   ra   rb   r   r   r+   r8   r<   rI   rk   rt   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   r
   r`   mainr   r   r   <module>r      sC       + + " 9J5 J5Z zHMMO r   