
    daf?                         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d Zy)AddCallersTestCasez$Tests for pstats.add_callers helper.c                     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       +/root/Python-3.12.4/Lib/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____doc__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   r5   )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)r2   ncallscumtimer4   filenamelinemodulenamenflpcallsr1   r3   tottimer5   r)   r7   r   r8   r9   )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 )NrA   )ffifilfilefilenfilenafilenamrA   r5   rH   )r   sortkeyrI   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 )Nr5   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)r2   r?   )r4   r@   )rA   rC   rB   rD   rE   rF   r1   )r3   rG   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   rZ   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TIMErZ   r#   r   r   CheckedSortKeyrW   G   s4    %E0J+HDDCFG$Dr   rl   )	r   r)   r7   r   r8   r9   r`   r   r   )r   memberrl   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 )Nr2   )assertRaises	TypeErrorr)   r7   r   rk   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       Tr   c                       y rv   r#   r#   r   r   pass2z3StatsTestCase.test_get_stats_profile.<locals>.pass2e   rx   r   c                       y rv   r#   r#   r   r   pass3z3StatsTestCase.test_get_stats_profile.<locals>.pass3f   rx   r   rw   rz   r|   )cProfileProfileenablecreate_statsr   r(   get_stats_profilesetfunc_profileskeysassertIn)r   rw   rz   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 )NrA   )r   r   re   assertNotEqualrc   rr   s    r   test_SortKey_enumzStatsTestCase.test_SortKey_enumv   s2    )):6G,,gmm<r   N)r   r    r!   r+   r/   r=   rJ   rT   rn   rs   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   