o
    ¦¸¢i  ã                   @   sp   d dl Z d dlmZ d dlmZmZ d dlmZ dZ	dZ
G dd„ deƒZG d	d
„ d
eƒZedkr6e  ¡  dS dS )é    N)Únjit)ÚTestCaseÚoverride_config)Úllvm_pass_timingsaZ  
===-------------------------------------------------------------------------===
                      ... Pass execution timing report ...
===-------------------------------------------------------------------------===
  Total Execution Time: 0.0001 seconds (0.0001 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   0.0001 ( 90.1%)   0.0001 ( 90.1%)   0.0001 ( 90.1%)   0.0001 ( 90.1%)  A1
   0.0000 (  9.9%)   0.0000 (  9.9%)   0.0000 (  9.9%)   0.0000 (  9.9%)  A2
   0.0001 (100.0%)   0.0001 (100.0%)   0.0001 (100.0%)   0.0001 (100.0%)  Total

aZ  
===-------------------------------------------------------------------------===
                      ... Pass execution timing report ...
===-------------------------------------------------------------------------===
  Total Execution Time: 0.0001 seconds (0.0001 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   0.0001 ( 90.1%)        -----        0.0001 ( 90.1%)   0.0001 ( 90.1%)  A1
   0.0000 (  9.9%)        -----        0.0000 (  9.9%)   0.0000 (  9.9%)  A2
   0.0001 (100.0%)        -----        0.0001 (100.0%)   0.0001 (100.0%)  Total

c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestLLVMPassTimingsc                 C   sÀ   t dd„ ƒ}tddƒ |dƒ W d   ƒ n1 sw   Y  | |jd ¡}|d }|  |tj¡ t|ƒ}|  d|¡ |  	t
|ƒd¡ |d	 }|  |tj¡ |  |jt¡ |  |jtj¡ d S )
Nc                 S   ó   d}t | ƒD ]}||7 }q|S ©Nr   ©Úrange©ÚnÚcÚi© r   ú`/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/numba/tests/test_llvm_pass_timings.pyÚfoo&   ó   
z+TestLLVMPassTimings.test_usage.<locals>.fooÚLLVM_PASS_TIMINGSTé
   r   r   z!Module passes (full optimization)éÿÿÿÿ)r   r   Úget_metadataÚ
signaturesÚassertIsInstanceÚlptÚPassTimingsCollectionÚstrÚassertInÚassertGreaterÚlenÚNamedTimingsÚnameÚtimingsÚProcessedPassTimings)Úselfr   Úmdr!   ÚtextÚlastr   r   r   Ú
test_usage%   s   

ÿzTestLLVMPassTimings.test_usagec                 C   sÐ   t dd„ ƒ}tddƒ |dƒ W d   ƒ n1 sw   Y  | |jd ¡}|d }|  | ¡ t¡ |  | ¡ t¡ | 	¡ }|  
t|ƒt|ƒ¡ |d j ¡ }|dd … D ]}|j ¡ }|  ||¡ |}qVd S )	Nc                 S   s,   d}t | ƒD ]}t |ƒD ]}||7 }qq|S r   r	   )r   r   r   Újr   r   r   r   A   s   
ÿz-TestLLVMPassTimings.test_analyze.<locals>.foor   Tr   r   r   é   )r   r   r   r   r   Úget_total_timeÚfloatÚsummaryr   Úlist_longest_firstÚassertEqualr   r!   ÚassertGreaterEqual)r#   r   r$   Útimings_collectionÚlongest_firstr&   ÚrecÚcurr   r   r   Útest_analyze@   s"   

ÿ
ýz TestLLVMPassTimings.test_analyzec                 C   sX   t  t¡}|  | ¡ d¡ |  | ¡ t¡ t  t¡}|  | ¡ d¡ |  | ¡ t¡ d S )Ng-Cëâ6?)	r   r"   Útimings_raw1ÚassertAlmostEqualr*   r   r,   r   Útimings_raw2)r#   Útimings1Útimings2r   r   r   Útest_parse_raw[   s   

z"TestLLVMPassTimings.test_parse_rawN)Ú__name__Ú
__module__Ú__qualname__r'   r4   r:   r   r   r   r   r   #   s    r   c                   @   s   e Zd Zdd„ ZdS )ÚTestLLVMPassTimingsDisabledc                 C   sˆ   t dd„ ƒ}tddƒ |dƒ W d   ƒ n1 sw   Y  | |jd ¡}|d }|  | ¡ d¡ |  | ¡ ¡ |  | ¡ g ¡ d S )	Nc                 S   r   r   r	   r   r   r   r   r   g   r   z?TestLLVMPassTimingsDisabled.test_disabled_behavior.<locals>.foor   Fr   r   r   zNo pass timings were recorded)	r   r   r   r   r.   r,   ÚassertIsNoner*   r-   )r#   r   r$   r!   r   r   r   Útest_disabled_behaviorf   s   

ÿz2TestLLVMPassTimingsDisabled.test_disabled_behaviorN)r;   r<   r=   r@   r   r   r   r   r>   e   s    r>   Ú__main__)ÚunittestÚnumbar   Únumba.tests.supportr   r   Ú
numba.miscr   r   r5   r7   r   r>   r;   Úmainr   r   r   r   Ú<module>   s    Bÿ