o
    HXh=                     @   sx   d dl Z d dlmZ d dlmZ d dlmZ d dlZd dlZG dd de jZ	G dd de jZ
ed	kr:e   dS dS )
    N)support)StringIO)SortKeyc                   @   s   e Zd Z	 dd ZdS )AddCallersTestCasec                 C   sd   ddi}ddd}t ||}| |ddd ddi}ddd}t ||}| |ddd d S )	Na)            )            )r   b)r   r
   r   r   r   r   r   )pstatsZadd_callersassertEqual)selftargetsourceZnew_callers r   :/opt/python-3.10.19/usr/lib/python3.10/test/test_pstats.pytest_combine_results   s   

z'AddCallersTestCase.test_combine_resultsN)__name__
__module____qualname__r   r   r   r   r   r   
   s    r   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )StatsTestCasec                 C   s   t d}t|| _d S )Nz
pstats.pck)r   Zfindfiler   Statsstats)r   Z
stats_filer   r   r   setUp   s   
zStatsTestCase.setUpc                 C   s&   t  }tj|d}|| j| j d S )N)stream)r   r   r   addr   )r   r   r   r   r   r   test_add!   s   zStatsTestCase.test_addc                 C   sL   ddddd}|  D ]\}}| j| | | jj| jj| d  qd S )Nstdnamecallstime
cumulative)r   r   r   r&   )itemsr   
sort_statsr   	sort_typesort_arg_dict_default)r   Z
valid_argsZarg_intZarg_strr   r   r   test_sort_stats_int&   s   
z!StatsTestCase.test_sort_stats_intc                 C   s6   dD ]}| j | | | j j| j j| d  qd S )N)r#   ZncallsZcumtimer%   filenamelinemodulenameZnflZpcallsr"   r$   Ztottimer&   r   r(   r   r)   r*   )r   	sort_namer   r   r   test_sort_stats_string0   s   
z$StatsTestCase.test_sort_stats_stringc                 C   s:   d}dD ]}| j | | | j j| j j| d  qd S )Nr,   )ffiZfilfileZfilenZfilenaZfilenamr,   r&   r0   )r   Zsortkeyr1   r   r   r   test_sort_stats_partial8   s   
z%StatsTestCase.test_sort_stats_partialc                 C   s0   |  t| jjdtj |  t| jjtjd d S )Nr#   )ZassertRaises	TypeErrorr   r(   r   ZTIMEr   r   r   r   test_sort_starts_mix@   s   z"StatsTestCase.test_sort_starts_mixc                 C   s   dd }dd }dd }t  }|  |  |  |  |  t|}| }t|j	 }| 
d| | 
d| | 
d	| d S )
Nc                   S      d S Nr   r   r   r   r   pass1I       z3StatsTestCase.test_get_stats_profile.<locals>.pass1c                   S   r:   r;   r   r   r   r   r   pass2J   r=   z3StatsTestCase.test_get_stats_profile.<locals>.pass2c                   S   r:   r;   r   r   r   r   r   pass3K   r=   z3StatsTestCase.test_get_stats_profile.<locals>.pass3r<   r>   r?   )cProfileZProfileenableZcreate_statsr   r   Zget_stats_profilesetZfunc_profileskeysZassertIn)r   r<   r>   r?   ZprZpsZstats_profileZfuncs_calledr   r   r   test_get_stats_profileH   s   
z$StatsTestCase.test_get_stats_profilec                 C   s"   |  tjd | tjtj d S )Nr,   )r   r   ZFILENAMEZassertNotEqualZCALLSr8   r   r   r   test_SortKey_enum[   s   zStatsTestCase.test_SortKey_enumN)r   r   r   r   r!   r+   r2   r6   r9   rD   rE   r   r   r   r   r      s    
r   __main__)Zunittesttestr   ior   r   r   r@   ZTestCaser   r   r   mainr   r   r   r   <module>   s    C