
    J/Ph                         d dl Zd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlZd Zd Zd Z G d dej                  Zed	k    r ej                     dS dS )
    N)jittypes)
needs_blasc                      t          t          j        d d d         t          j        d d d         f          d             } d| _        | | fS )N   c                 p    d}t          t          |                     D ]}|| |         ||         z  z  }|S )Nr   )rangelenabsumis       Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_profiler.pydotz'generate_standard_dot_case.<locals>.dot   s?    s1vv 	 	A1Q4!9CC
    Tr   r   float32_enable_sysmon)r   s    r   generate_standard_dot_caser      sV    %-!
emCCaC0	233  43 C8Or   c                      t          t          j        d d d         t          j        d d d         f          d             d_        fd} | fS )Nr   c                     d}t          t          |                     D ]}|| |         ||         z  z  }t          d          )Nr   zproblem with dot)r	   r
   
ValueErrorr   s       r   raising_dotz.generate_raising_dot_case.<locals>.raising_dot   sK     s1vv 	 	A1Q4!9CC+,,,r   Tc                 D    	  | |           d S # t           $ r Y d S w xY wN)r   )r   r   r   s     r   call_raising_dotz3generate_raising_dot_case.<locals>.call_raising_dot'   sB    	K1 	 	 	DD	s    
r   )r   r   s    @r   generate_raising_dot_caser      su    %-!
emCCaC0	233- - 43- "&K     (((r   c                 ,    t          j        | |          S r   )npr   )r   r   s     r   np_dotr!   0   s    6!Q<<r   c                   <    e Zd Zd Zd Zd Zed             Zd ZdS )TestProfilerc                 *    t          j        dt           j                  }t          j        dt           j                  }d}t          j                    }|                                 	 t          |          D ]} |||           	 |                                 n# |                                 w xY wt          j	        |          
                                } fd}	 |	||j        j        |           ||ur |	||j        |           dS dS )zy
        Make sure the jit-compiled function shows up in the profile stats
        as a regular Python function.
           )dtype{   c                     t           j                            |j                  |j        |j        f}                    || j                   | j        |         }                    |d d         ||f           d S )N   )	ospathbasenameco_filenameco_firstlinenoco_nameassertInstatsassertEqual)r1   coden_callsexpected_key
func_statsselfs        r   check_stats_for_keyz<TestProfiler.check_profiler_dot.<locals>.check_stats_for_keyG   sx    G,,T-=>> / LL
 MM,444\2JZ^gw-?@@@@@r   N)r    aranger   profilerProfileenabler	   disablepstatsStats
strip_dirspy_func__code__)
r7   callercfuncr   r   r4   p_r1   r8   s
   `         r   check_profiler_dotzTestProfiler.check_profiler_dot6   s)   
 Ib
+++Ib
+++	


	7^^  q! IIKKKKAIIKKKKQ**,,		A 		A 		A 		A 		A 	E5=#97CCC v@@@@@ s   ,B   B6c                 T    t                      \  }}|                     ||           d S r   )r   rG   )r7   r   rF   s      r   test_profilerzTestProfiler.test_profilerY   s-    +--QS)))))r   c                 T    t                      \  }}|                     ||           d S r   )r   rG   )r7   r   r   s      r   "test_profiler_for_raising_functionz/TestProfiler.test_profiler_for_raising_function]   s0    (A(C(C%% 0+>>>>>r   c                 L    d}t          j        t          j        d|g           d S )Na  if 1:
            import cProfile as profiler

            import numpy as np

            from numba import jit
            from numba.tests.test_profiler import np_dot

            cfunc = jit(nopython=True)(np_dot)

            a = np.arange(16, dtype=np.float32)
            b = np.arange(16, dtype=np.float32)

            p = profiler.Profile()
            p.enable()
            cfunc(a, b)
            cfunc(a, b)
            p.disable()
            -c
subprocess
check_callsys
executabler7   r3   s     r   test_profiler_np_dotz!TestProfiler.test_profiler_np_dota   s+    & 	s~tT:;;;;;r   c                 L    d}t          j        t          j        d|g           d S )Na  if 1:
            import cProfile as profiler
            p = profiler.Profile()
            p.enable()

            from numba.tests.npyufunc.test_dufunc import TestDUFunc
            t = TestDUFunc('test_npm_call')
            t.test_npm_call()

            p.disable()
            rM   rN   rS   s     r   test_issue_3229zTestProfiler.test_issue_3229y   s+    
 	s~tT:;;;;;r   N)	__name__
__module____qualname__rG   rI   rK   r   rT   rV    r   r   r#   r#   4   so        !A !A !AF* * *? ? ? < < Z<.< < < < <r   r#   __main__)cProfiler:   r*   r>   rO   rQ   numpyr    numbar   r   numba.tests.supportr   unittestr   r   r!   TestCaser#   rW   mainrZ   r   r   <module>rc      s        				      



             * * * * * * 
 
 
) ) )*  W< W< W< W< W<8$ W< W< W<r zHMOOOOO r   