§
    2@Äjj  ã                   óÀ   — 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       úJC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_profiler.pyÚdotz'generate_standard_dot_case.<locals>.dot   s?   € àˆÝ•s˜1‘v”v‘”ð 	ð 	ˆAØ�1�Q”4˜˜!œ‘9ÑˆCˆCØˆ
ó    T©r   r   Úfloat32Ú_enable_sysmon)r   s    r   Úgenerate_standard_dot_caser      sV   € å�%Œ-˜˜˜!˜Ô
�eœm¨C¨C¨a¨CÔ0Ð	2Ñ3Ô3ðð ñ 4Ô3ðð €CÔØ�ˆ8€Or   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   € ð ˆÝ•s˜1‘v”v‘”ð 	ð 	ˆAØ�1�Q”4˜˜!œ‘9ÑˆCˆCÝÐ+Ñ,Ô,Ð,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ÑÔÐÐÐøÝð 	ð 	ð 	ØˆDˆDð	øøøs   ƒ ‘
žr   )r   r   s    @r   Úgenerate_raising_dot_caser      su   ø€ å�%Œ-˜˜˜!˜Ô
�eœm¨C¨C¨a¨CÔ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ð
 �MŠM˜,¨¬Ñ4Ô4Ð4àœ \Ô2ˆJØ×Ò˜Z¨¨¨œ^¨g°wÐ-?Ñ@Ô@Ð@Ð@Ð@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)  ø€ õ
 ŒI�b¥¤
Ð+Ñ+Ô+ˆÝŒI�b¥¤
Ð+Ñ+Ô+ˆØˆÝÔÑÔˆØ	�Š‰
Œ
ˆ
ð	Ý˜7‘^”^ð ð �Ø��q˜!‘”��ðð �IŠI‰KŒKˆKˆKøˆA�IŠI‰KŒKˆKˆKøøøÝ”˜Q‘”×*Ò*Ñ,Ô,ˆð		Að 		Að 		Að 		Að 		Að 	Ð˜E 5¤=Ô#9¸7Ñ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œ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;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œ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;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ÒÐØ€H„M�O„O€O€O€Oð Ðr   