U
    iâËd˜  ã                   @   sd   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	 G dd„ deƒZ
edkr`e ¡  dS )é    N)Údedent)ÚTemporaryDirectory)ÚTestCaseÚrun_in_subprocessc                   @   s   e Zd ZdZdd„ ZdS )ÚTestChromeTraceModulez0
    Test chrome tracing generated file(s).
    c           	      C   s°   d}t |ƒ}tƒ �”}tj |d¡}tj ¡ }||d< t||d� t|ƒ�T}t	 
|¡}|  |t¡ |D ]2}|  |t¡ |  t| ¡ ƒddddd	d
dh¡ qdW 5 Q R X W 5 Q R X d S )NaY  
            from numba import njit
            import numpy as np

            x = np.arange(100).reshape(10, 10)

            @njit
            def go_fast(a):
                trace = 0.0
                for i in range(a.shape[0]):
                    trace += np.tanh(a[i, i])
                return a + trace

            go_fast(x)
        ztest_trace.jsonZNUMBA_CHROME_TRACE)ÚenvÚcatÚpidÚtidÚphÚnameÚargsÚts)r   r   ÚosÚpathÚjoinÚenvironÚcopyr   ÚopenÚjsonÚloadZassertIsInstanceÚlistÚdictÚassertEqualÚsetÚkeys)	ÚselfÚcodeÚsrcZtmpdirr   r   ÚfileÚeventsZev© r!   úV/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/tests/test_chrome_trace.pyÚtest_trace_output   s     



þz'TestChromeTraceModule.test_trace_outputN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   r!   r!   r!   r"   r   
   s   r   Ú__main__)r   r   ZunittestÚtextwrapr   Útempfiler   Znumba.tests.supportr   r   r   r$   Úmainr!   r!   r!   r"   Ú<module>   s   (