
    z%i?                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dlZd dl
Z
 G d de j                        Z G d d	e j                        Zed
k(  r e j                          yy)    N)support)StringIO)SortKey)StrEnum_test_simple_enumc                       e Zd Z	 d Zy)AddCallersTestCasec                     ddi}ddd}t        j                  ||      }| j                  |ddd       ddi}ddd}t        j                  ||      }| j                  |ddd       y )	Na)            )            )r   b)r   r   r   r   r   r   r   )pstatsadd_callersassertEqual)selftargetsourcenew_callerss       D/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_pstats.pytest_combine_resultsz'AddCallersTestCase.test_combine_results   sy     |$#,7((8L|&LMqq!((8AA&67    N)__name__
__module____qualname__r    r   r   r	   r	      s
    .8r   r	   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)StatsTestCasec                 b    t        j                  d      }t        j                  |      | _        y )Nz
pstats.pck)r   findfiler   Statsstats)r   
stats_files     r   setUpzStatsTestCase.setUp   s"    %%l3
\\*-
r   c                     t               }t        j                  |      }|j                  | j                  | j                         y )N)stream)r   r   r'   addr(   )r   r,   r(   s      r   test_addzStatsTestCase.test_add"   s-    F+		$**djj)r   c                     ddddd}|j                         D ]`  \  }}| j                  j                  |       | j                  | j                  j                  | j                  j
                  |   d          b y )Nstdnamecallstime
cumulative)r   r   r   r4   )itemsr(   
sort_statsr   	sort_typesort_arg_dict_default)r   
valid_argsarg_intarg_strs       r   test_sort_stats_intz!StatsTestCase.test_sort_stats_int'   sz    # %'
 !+ 0 0 2 	LGWJJ!!'*TZZ11!ZZ==gFrJL	Lr   c                     dD ]]  }| j                   j                  |       | j                  | j                   j                  | j                   j                  |   d          _ y )N)r1   ncallscumtimer3   filenamelinemodulenamenflpcallsr0   r2   tottimer4   r(   r6   r   r7   r8   )r   	sort_names     r   test_sort_stats_stringz$StatsTestCase.test_sort_stats_string1   s[    2 	NI JJ!!),TZZ11!ZZ==iHLN		Nr   c                     d}dD ]]  }| j                   j                  |       | j                  | j                   j                  | j                   j                  |   d          _ y )Nr@   )ffifilfilefilenfilenafilenamr@   r4   rG   )r   sortkeyrH   s      r   test_sort_stats_partialz%StatsTestCase.test_sort_stats_partial9   s^    2 	LIJJ!!),TZZ11!ZZ==gFrJL	Lr   c                 "   t         D ]g  }| j                  j                  |       | j                  | j                  j                  | j                  j
                  |j                     d          i  G d dt              }t        |t                y )Nr4   c                   6    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
 Zy):StatsTestCase.test_sort_stats_enum.<locals>.CheckedSortKey)r1   r>   )r3   r?   )r@   rB   rA   rC   rD   rE   r0   )r2   rF   c                     |d   }t         j                  | |      }||_        |dd  D ]  }|| j                  |<    ||_        |S )Nr   r   )str__new___value__value2member_map__all_values)clsvaluesvalueobjother_values        r   rY   zBStatsTestCase.test_sort_stats_enum.<locals>.CheckedSortKey.__new__Q   sS    q	kk#u-##)!": >K:=C**;7>"(
r   N)r   r    r!   CALLS
CUMULATIVEFILENAMELINENAMENFLPCALLSSTDNAMETIMErY   r"   r   r   CheckedSortKeyrV   G   s4    %E0J+HDDCFG$Dr   rk   )	r   r(   r6   r   r7   r8   r_   r   r   )r   memberrk   s      r   test_sort_stats_enumz"StatsTestCase.test_sort_stats_enumA   st     	HFJJ!!&)JJ((JJ44V\\B2FH	H
	W 	$ 	.'2r   c                     | j                  t        | j                  j                  dt        j
                         | j                  t        | j                  j                  t        j
                  d       y )Nr1   )assertRaises	TypeErrorr(   r6   r   rj   r   s    r   test_sort_starts_mixz"StatsTestCase.test_sort_starts_mix[   sP    )TZZ%:%:!!,,	( 	)TZZ%:%:!,,!	#r   c                    d }d }d }t        j                         }|j                           |         |         |        |j                          t	        j
                  |      }|j                         }t        |j                  j                               }| j                  d|       | j                  d|       | j                  d|       y )Nc                       y Nr"   r"   r   r   pass1z3StatsTestCase.test_get_stats_profile.<locals>.pass1d       r   c                       y ru   r"   r"   r   r   pass2z3StatsTestCase.test_get_stats_profile.<locals>.pass2e   rw   r   c                       y ru   r"   r"   r   r   pass3z3StatsTestCase.test_get_stats_profile.<locals>.pass3f   rw   r   rv   ry   r{   )cProfileProfileenablecreate_statsr   r'   get_stats_profilesetfunc_profileskeysassertIn)r   rv   ry   r{   prpsstats_profilefuncs_calleds           r   test_get_stats_profilez$StatsTestCase.test_get_stats_profilec   s    
		
\\",,.=66;;=>g|,g|,g|,r   c                     | j                  t        j                  d       | j                  t        j                  t        j                         y )Nr@   )r   r   rd   assertNotEqualrb   rq   s    r   test_SortKey_enumzStatsTestCase.test_SortKey_enumv   s2    )):6G,,gmm<r   N)r   r    r!   r*   r.   r<   rI   rS   rm   rr   r   r   r"   r   r   r$   r$      s2    .*
LNL34#-&=r   r$   __main__)unittesttestr   ior   r   r   enumr   r   r|   TestCaser	   r$   r   mainr"   r   r   <module>r      s[        +  8** 8$[=H%% [=z zHMMO r   