a ze;@stddlZddlmZddlmZddlmZddlZddlZGdddejZ GdddejZ e d krpe dS) N)support)StringIO)SortKeyc@seZdZddZdS)AddCallersTestCasecCsdddi}ddd}t||}||dddddi}ddd}t||}||ddddS) Na)))rb)rr r rrr r)pstatsZ add_callers assertEqual)selftargetsourceZ new_callersrD/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_pstats.pytest_combine_results s    z'AddCallersTestCase.test_combine_resultsN)__name__ __module__ __qualname__rrrrrr src@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS) StatsTestCasecCstd}t||_dS)Nz pstats.pck)rZfindfilerStatsstats)rZ stats_filerrrsetUps zStatsTestCase.setUpcCs&t}tj|d}||j|jdS)N)stream)rrraddr)rrrrrrtest_add!s zStatsTestCase.test_addcCsLddddd}|D]0\}}|j|||jj|jj|dqdS)Nstdnamecallstime cumulative)rrrr&)itemsr sort_statsr sort_typesort_arg_dict_default)rZ valid_argsZarg_intZarg_strrrrtest_sort_stats_int&s  z!StatsTestCase.test_sort_stats_intcCs6dD],}|j|||jj|jj|dqdS)N) r#ZncallsZcumtimer%filenamelinemodulenameZnflZpcallsr"r$Ztottimer&rr(rr)r*)r sort_namerrrtest_sort_stats_string0s   z$StatsTestCase.test_sort_stats_stringcCs:d}dD],}|j|||jj|jj|dqdS)Nr,)ffiZfilfileZfilenZfilenaZfilenamr,r&r0)rZsortkeyr1rrrtest_sort_stats_partial8s   z%StatsTestCase.test_sort_stats_partialcCs8tD].}|j|||jj|jj|jdqdS)Nr&)rrr(rr)r*value)rmemberrrrtest_sort_stats_enum@s  z"StatsTestCase.test_sort_stats_enumcCs0|t|jjdtj|t|jjtjddS)Nr#)Z assertRaises TypeErrorrr(rZTIMErrrrtest_sort_starts_mixGs  z"StatsTestCase.test_sort_starts_mixcCsdd}dd}dd}t}|||||t|}|}t|j }| d|| d|| d |dS) NcSsdSNrrrrrpass1Pz3StatsTestCase.test_get_stats_profile..pass1cSsdSr=rrrrrpass2Qr?z3StatsTestCase.test_get_stats_profile..pass2cSsdSr=rrrrrpass3Rr?z3StatsTestCase.test_get_stats_profile..pass3r>r@rA) cProfileZProfileenableZ create_statsrrZget_stats_profilesetZ func_profileskeysZassertIn)rr>r@rAZprZpsZ stats_profileZ funcs_calledrrrtest_get_stats_profileOs   z$StatsTestCase.test_get_stats_profilecCs"|tjd|tjtjdS)Nr,)rrZFILENAMEZassertNotEqualZCALLSr;rrrtest_SortKey_enumbszStatsTestCase.test_SortKey_enumN) rrrrr!r+r2r6r9r<rFrGrrrrrs r__main__) ZunittesttestriorrrrBZTestCaserrrmainrrrrs   J