
    <e?                         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                     dS dS )    N)support)StringIO)SortKey)StrEnum_test_simple_enumc                       e Zd ZdZd ZdS )AddCallersTestCasez$Tests for pstats.add_callers helper.c                     ddi}ddd}t          j        ||          }|                     |ddd           ddi}ddd}t          j        ||          }|                     |ddd           d S )	Na)            )            )r   b)r   r   r   r   r   r   r   )pstatsadd_callersassertEqual)selftargetsourcenew_callerss       '/usr/lib/python3.11/test/test_pstats.pytest_combine_resultsz'AddCallersTestCase.test_combine_results   s     |$#,77(88L|&L&LMMMqq!!(88AA&6&677777    N)__name__
__module____qualname____doc__r    r   r   r	   r	      s)        ..8 8 8 8 8r   r	   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )StatsTestCasec                 `    t          j        d          }t          j        |          | _        d S )Nz
pstats.pck)r   findfiler   Statsstats)r   
stats_files     r   setUpzStatsTestCase.setUp   s'    %l33
\*--


r   c                     t                      }t          j        |          }|                    | j        | j                   d S )N)stream)r   r   r(   addr)   )r   r-   r)   s      r   test_addzStatsTestCase.test_add"   s;    F+++		$*dj)))))r   c                     ddddd}|                                 D ]U\  }}| j                            |           |                     | j        j        | j        j        |         d                    Vd S )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'   s    # %' '
 !+ 0 0 2 2 	L 	LGWJ!!'***TZ1!Z=gFrJL L L L	L 	Lr   c                     dD ]R}| j                             |           |                     | j         j        | j         j        |         d                    Sd S )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   ss    2 	N 	NI J!!),,,TZ1!Z=iHLN N N N		N 	Nr   c                     d}dD ]R}| j                             |           |                     | j         j        | j         j        |         d                    Sd S )NrA   )ffifilfilefilenfilenafilenamrA   r5   rH   )r   sortkeyrI   s      r   test_sort_stats_partialz%StatsTestCase.test_sort_stats_partial9   sv    2 	L 	LIJ!!),,,TZ1!Z=gFrJL L L L	L 	Lr   c                    t           D ]W}| j                            |           |                     | j        j        | j        j        |j                 d                    X G d dt                    }t          |t                      d S )Nr5   c                   8    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
 ZdS ):StatsTestCase.test_sort_stats_enum.<locals>.CheckedSortKey)r2   r?   )r4   r@   )rA   rC   rB   rD   rE   rF   r1   )r3   rG   c                     |d         }t                               | |          }||_        |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   sX    q	kk#u--##)!"": > >K:=C*;77"(
r   N)r   r    r!   CALLS
CUMULATIVEFILENAMELINENAMENFLPCALLSSTDNAMETIMErZ   r#   r   r   CheckedSortKeyrW   G   sP        %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   s     	H 	HFJ!!&)))J(J4V\B2FH H H H	 	 	 	 	W 	 	 	$ 	.'22222r   c                     |                      t          | j        j        dt          j                   |                      t          | j        j        t          j        d           d S )Nr2   )assertRaises	TypeErrorr)   r7   r   rk   r   s    r   test_sort_starts_mixz"StatsTestCase.test_sort_starts_mix[   s`    )TZ%:!!,	( 	( 	( 	)TZ%:!,!	# 	# 	# 	# 	#r   c                    d }d }d }t          j                    }|                                  |              |              |             |                                 t	          j        |          }|                                }t          |j        	                                          }| 
                    d|           | 
                    d|           | 
                    d|           d S )Nc                      d S Nr#   r#   r   r   pass1z3StatsTestCase.test_get_stats_profile.<locals>.pass1d         r   c                      d S rv   r#   r#   r   r   pass2z3StatsTestCase.test_get_stats_profile.<locals>.pass2e   rx   r   c                      d S 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;;==>>g|,,,g|,,,g|,,,,,r   c                     |                      t          j        d           |                     t          j        t          j                   d S )NrA   )r   r   re   assertNotEqualrc   rr   s    r   test_SortKey_enumzStatsTestCase.test_SortKey_enumv   s<    ):666G,gm<<<<<r   N)r   r    r!   r+   r/   r=   rJ   rT   rn   rs   r   r   r#   r   r   r%   r%      s        . . .* * *
L L LN N NL L L3 3 34# # #- - -&= = = = =r   r%   __main__)unittesttestr   ior   r   r   enumr   r   r}   TestCaser	   r%   r   mainr#   r   r   <module>r      s                       + + + + + + + +  8 8 8 8 8* 8 8 8$[= [= [= [= [=H% [= [= [=z zHMOOOOO r   