o
    ia                     @   sp   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 deZedkr6e   dS dS )    N)njitjitliteral_unroll)event)TestCaseoverride_configc                   @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )	TestEventc                 C   s   t dd   ttj| _d S )Nc                   S   s   d S N r
   r
   r
   e/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/test_event.py<lambda>   s    z!TestEvent.setUp.<locals>.<lambda>)r   lenev_registered _TestEvent__registered_listenersselfr
   r
   r   setUp   s   zTestEvent.setUpc                 C   s   |  ttj| j d S r	   )assertEqualr   r   r   r   r   r
   r
   r   tearDown   s   zTestEvent.tearDownc                 C   sb   t dd }td}|d W d    n1 sw   Y  | |tj | t|jd d S )Nc                 S      | |  S r	   r
   xr
   r
   r   foo      z.TestEvent.test_recording_listener.<locals>.foonumba:compile      )r   r   install_recorderassertIsInstanceZRecordingListenerassertGreaterEqualr   buffer)r   r   recr
   r
   r   test_recording_listener   s   

z!TestEvent.test_recording_listenerc                 C   L   t dd }|d ||jd }|d d }| |t | |d d S )Nc                 S   r   r	   r
   r   r
   r
   r   r   $   r   z/TestEvent.test_compiler_lock_event.<locals>.foor   r   timerscompiler_lockr   get_metadata
signaturesr   floatassertGreaterr   r   mdZlock_durationr
   r
   r   test_compiler_lock_event#      
z"TestEvent.test_compiler_lock_eventc                 C   r$   )Nc                 S   r   r	   r
   r   r
   r
   r   r   /   r   z+TestEvent.test_llvm_lock_event.<locals>.foor   r   r%   	llvm_lockr'   r,   r
   r
   r   test_llvm_lock_event.   r/   zTestEvent.test_llvm_lock_eventc                 C   s   t dd }td}|d W d    n1 sw   Y  | t|jd |jD ]7\}}|j}| |d t | |d t | |d t | |d	 t | |d
 t | |d t q+d S )Nc                 S   r   r	   r
   r   r
   r
   r   r   :   r   z*TestEvent.test_run_pass_event.<locals>.fooznumba:run_passr   r   namequalnamemoduleflagsargsreturn_type)	r   r   r   r+   r   r!   datar   str)r   r   Zrecorder_r   r8   r
   r
   r   test_run_pass_event9   s   

zTestEvent.test_run_pass_eventc                    sr   | G  fdddt j}tdd  | }t d|} d W d    n1 s,w   Y  | || d S )Nc                       (   e Zd Z fddZ fddZdS )z3TestEvent.test_install_listener.<locals>.MyListenerc                    s`    |jtjj  |jd |jd   |jd }|  |jd |j	 d S Nr   
dispatcherr6   )
r   statusr   EventStatusSTARTkindassertIsr8   assertNotIn	overloadsr   r   r>   r   utr
   r   on_startP   s   
z<TestEvent.test_install_listener.<locals>.MyListener.on_startc                    N    |jtjj  |jd |jd }|  |jd |j	 d S r=   
r   r?   r   r@   ZENDrB   r8   rC   ZassertInrE   rF   rG   r
   r   on_endY   s
   
z:TestEvent.test_install_listener.<locals>.MyListener.on_endN__name__
__module____qualname__rI   rL   r
   rG   r
   r   
MyListenerO       	rQ   c                 S      | S r	   r
   r   r
   r
   r   r   a      z,TestEvent.test_install_listener.<locals>.foor   r   )r   Listenerr   Zinstall_listenerrC   )r   rQ   listeneryieldedr
   rG   r   test_install_listenerL   s   

zTestEvent.test_install_listenerc                    sR   | G  fdddt j}tdd  | }t d|  d t d| d S )Nc                       r<   )z2TestEvent.test_global_register.<locals>.MyListenerc                    rJ   r=   )
r   r?   r   r@   rA   rB   r8   rC   rD   rE   rF   rG   r
   r   rI   p   
   
z;TestEvent.test_global_register.<locals>.MyListener.on_startc                    rJ   r=   rK   rF   rG   r
   r   rL   y   rY   z9TestEvent.test_global_register.<locals>.MyListener.on_endNrM   r
   rG   r
   r   rQ   o   rR   rQ   c                 S   rS   r	   r
   r   r
   r
   r   r      rT   z+TestEvent.test_global_register.<locals>.foor   r   )r   rU   r   register
unregister)r   rQ   rV   r
   rG   r   test_global_registerl   s   
zTestEvent.test_global_registerc                 C   s   t dd }td}|  W d    n1 sw   Y  | t|jd |j|jd  }|j\}|j|jd  }| 	|j
d d t | 	|j
d d t d S )	Nc                  S   s$   t   d} tdD ]}| |7 } q	| S )Nr   
   )objectrange)cir
   r
   r   r      s
   
z-TestEvent.test_lifted_dispatcher.<locals>.foor      r   r%   r&   r0   )r   r   r   r    r   r!   rE   r)   Zliftedr   metadatar*   )r   r   r"   ZcresZldispZlifted_cresr
   r
   r   test_lifted_dispatcher   s"   
z TestEvent.test_lifted_dispatcherc                    s  t tj t fddtfdd}tdd |d W d    n1 s)w   Y  dd	 }||d
}|d
}||d}|d}| |d |d  | |d |d  | | |d  | | |d  | |d |d  | |d |d  d S )Nc                    sH   d}t  D ]}|d| iv r|d7 }q|t| d 7 }qt| |fS )Nr   1r   )r   r   )r   npsqrtsin)r   accra   )ar
   r   bar   s   
z-TestEvent.test_timing_properties.<locals>.barc                    s    t | | fS r	   )rf   Zzerosr   )rk   r
   r   r      s   z-TestEvent.test_timing_properties.<locals>.fooZLLVM_PASS_TIMINGSTr   c                 S   s   |  | jd }|| S )Nr   )r(   r)   )fnpropr-   r
   r
   r   
get_timers   s   z4TestEvent.test_timing_properties.<locals>.get_timersr%   Zllvm_pass_timingsr0   r&   )tuplestringascii_lowercaser   r   Z
assertLessZget_total_time)r   r   rn   Z
foo_timersZ
bar_timersZfoo_llvm_timerZbar_llvm_timerr
   )rj   rk   r   test_timing_properties   s>   
	










z TestEvent.test_timing_propertiesN)rN   rO   rP   r   r   r#   r.   r1   r;   rX   r\   rd   rr   r
   r
   r
   r   r      s     r   __main__)Zunittestrp   numpyrf   Znumbar   r   r   Z
numba.corer   r   Znumba.tests.supportr   r   r   rN   mainr
   r
   r
   r   <module>   s     N