Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_timeit.cpython-311.opt-1.pyc
�

�Ke�<���ddlZddlZddlZddlZddlmZddlmZddlmZdZ	dZ
Gd�d��ZGd	�d
ej��Z
edkrej��dSdS)�N)�dedent)�captured_stdout)�captured_stderri@B�c�2�eZdZdZd	d�Zd�Zd�Zd�Zd�ZdS)
�	FakeTimergE@��?c�H�d|_d|_||_|t_dS)Nr)�count�setup_calls�seconds_per_increment�timeit�_fake_timer)�selfr
s  �:/usr/local/apps/python3/lib/python3.11/test/test_timeit.py�__init__zFakeTimer.__init__s'����
����#8��"�!�����c�0�|j|j|jzzS�N)�	BASE_TIMErr
�rs r�__call__zFakeTimer.__call__s���~��
�T�-G� G�G�Grc�&�|xjdz
c_dS�N�)rrs r�incz
FakeTimer.inc!s���
�
�a��
�
�
�
rc�&�|xjdz
c_dSr)rrs r�setupzFakeTimer.setup$s�����A�����rc��||_|S)z3Records 'timer' and returns self as callable timer.)�saved_timer)r�timers  r�
wrap_timerzFakeTimer.wrap_timer's�� ����rN)r	)	�__name__�
__module__�__qualname__rrrrrr"�rrrrsl�������I�"�"�"�"�H�H�H�����������rrc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	Zd
Zd�Z
d�Zd:d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd:d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z!d!Z"d;d#�Z#d$�Z$d%�Z%d&�Z&d'�Z'd(�Z(d)�Z)d*�Z*d+�Z+d,�Z,e-j.e/j0j1d-kd.��d/���Z2d0�Z3d1�Z4d2�Z5d3�Z6d4�Z7d<d6�Z8d7�Z9d8�Z:d9�Z;d
S)=�
TestTimeitc�8�	t`dS#t$rYdSwxYwr)rr�AttributeErrorrs r�tearDownzTestTimeit.tearDown.s5��	��"�"�"���	�	�	��D�D�	���s��
�c��|�tjdd��d��|�tjdd��d��dS)N�r���assertEqualr�reindentrs r�test_reindent_emptyzTestTimeit.test_reindent_empty4sL��������Q�/�/��4�4�4�������Q�/�/��4�4�4�4�4rc��|�tjdd��d��|�tjdd��d��dS)N�passrr.r/rs r�test_reindent_singlezTestTimeit.test_reindent_single8sL���������3�3�V�<�<�<��������3�3�V�<�<�<�<�<rc��|�tjdd��d��|�tjdd��d��dS)Nz

rr.z

    
    r/rs r�test_reindent_multi_emptyz$TestTimeit.test_reindent_multi_empty<sL���������3�3�V�<�<�<��������3�3�^�D�D�D�D�Drc��|�tjdd��d��|�tjdd��d��dS)Nzprint()
pass
breakrr.zprint()
    pass
    breakr/rs r�test_reindent_multizTestTimeit.test_reindent_multi@sj�������"�A�'�'�"�	$�	$�	$�	
�����"�A�'�'�*�	,�	,�	,�	,�	,rc���|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd	d
���dS)N��stmt�return�yield�
yield from ()�break�continue�from timeit import *�  passzwhile False:
  passz  break)rr<��assertRaises�
ValueErrorr�Timer�SyntaxErrorrs r�test_timer_invalid_stmtz"TestTimeit.test_timer_invalid_stmtHs"�����*�f�l���>�>�>����+�v�|�(��C�C�C����+�v�|�'��B�B�B����+�v�|�/��J�J�J����+�v�|�'��B�B�B����+�v�|�*��E�E�E����+�v�|�:P��Q�Q�Q����+�v�|�(��C�C�C����+�v�|� 6�Y�	�	H�	H�	H�	H�	Hrc�v�|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd���|�ttjd���dS)	N)rr=r>r?r@rArBrCrDrs r�test_timer_invalid_setupz#TestTimeit.test_timer_invalid_setupTs������*�f�l�$��?�?�?����+�v�|�8��D�D�D����+�v�|�7��C�C�C����+�v�|�?��K�K�K����+�v�|�7��C�C�C����+�v�|�:��F�F�F����+�v�|�;Q��R�R�R����+�v�|�8��D�D�D�D�Drc��tjd���tjd���tjd���dS)Nr-r;z 
	z	# comment)rrGrs r�test_timer_empty_stmtz TestTimeit.test_timer_empty_stmt^sA����"�������)�$�$�$�$���+�&�&�&�&�&�&rz(import timeit
timeit._fake_timer.setup()z&import timeit
timeit._fake_timer.inc()c�8�|j���dSr)�
fake_timerrrs r�fake_callable_setupzTestTimeit.fake_callable_setupfs����������rc�8�|j���dSr)rOrrs r�fake_callable_stmtzTestTimeit.fake_callable_stmtis����������rNc�N�t��|_tj|||j|���}i}|�t}n||d<|jdi|��}|�|jjd��|�|jj|��|�||��dS)N)r<rr!�globals�numberrr&)rrOrrG�DEFAULT_NUMBERr0rr)rr<rrUrT�t�kwargs�
delta_times        rrzTestTimeit.timeitls���#�+�+����L�d�%�t���
!�
!�
!�����>�#�F�F�%�F�8���Q�X�'�'��'�'�
������4�a�8�8�8������.��7�7�7�����V�,�,�,�,�,rc�J�|�|j|jd���dS�Nr�rU�r�	fake_stmt�
fake_setuprs r�test_timeit_zero_itersz!TestTimeit.test_timeit_zero_iters~�$�����D�N�D�O�A��>�>�>�>�>rc�J�|�|j|jd���dS�N�r\r]rs r�test_timeit_few_itersz TestTimeit.test_timeit_few_iters�rarc�J�|�|j|jd���dSrc)rrRr_rs r�test_timeit_callable_stmtz$TestTimeit.test_timeit_callable_stmt�s%�����D�+�T�_�Q��G�G�G�G�Grc�J�|�|j|jd���dSrc)rr^rPrs r�test_timeit_callable_setupz%TestTimeit.test_timeit_callable_setup�s%�����D�N�D�$<�Q��G�G�G�G�Grc�J�|�|j|jd���dSrc)rrRrPrs r�#test_timeit_callable_stmt_and_setupz.TestTimeit.test_timeit_callable_stmt_and_setup�s4�����D�+��(��	�	4�	4�	4�	4�	4rc��tj|j|jdt�����}|�|d��dS)Nr�rUr!)rr^r_rr0)rrYs  r�test_timeit_function_zero_itersz*TestTimeit.test_timeit_function_zero_iters�sE���]�4�>�4�?�1��k�k�#�#�#�
�����Q�'�'�'�'�'rc�R�t��atjdt���}|�t
|jd���tjdtt
��d���t��}tjd|t��d���dS)Nz_global_timer.inc())r<r!rdr\)r<r!rTrUzlocal_timer.inc())r�
_global_timerrrGrE�	NameErrorrT�locals)rrW�local_timers   r�test_timeit_globals_argsz#TestTimeit.test_timeit_globals_args�s���!���
��L�3�=�I�I�I�����)�Q�X�a��8�8�8��
�0�
�%�i�i��	3�	3�	3�	3��k�k���
�.�k�$�h�h�q�	2�	2�	2�	2�	2�	2rc��t��|_tj|||j���}i}|�t}n||d<|�t
}n||d<|jdi|��}|�|jj|��|�|jj	||z��|�||t|��gz��dS)N�r<rr!�repeatrUr&)rrOrrG�DEFAULT_REPEATrVrwr0rr�float)rr<rrwrUrWrX�delta_timess        rrwzTestTimeit.repeat�s���#�+�+����L�d�%�t��G�G�G�����>�#�F�F�%�F�8���>�#�F�F�%�F�8���a�h�(�(��(�(�������4�f�=�=�=������.����@�@�@�����f��f�
�
��&>�?�?�?�?�?rc�J�|�|j|jd���dS)Nr)rw�rwr^r_rs r�test_repeat_zero_repsz TestTimeit.test_repeat_zero_reps�rarc�J�|�|j|jd���dSr[r|rs r�test_repeat_zero_itersz!TestTimeit.test_repeat_zero_iters�rarc�L�|�|j|jdd���dS�Nrdr)rwrUr|rs r�test_repeat_few_reps_and_itersz)TestTimeit.test_repeat_few_reps_and_iters�s&�����D�N�D�O�A�a��H�H�H�H�Hrc�L�|�|j|jdd���dSr�)rwrRr_rs r�test_repeat_callable_stmtz$TestTimeit.test_repeat_callable_stmt�s5�����D�+�T�_���	�	$�	$�	$�	$�	$rc�L�|�|j|jdd���dSr�)rwr^rPrs r�test_repeat_callable_setupz%TestTimeit.test_repeat_callable_setup�s5�����D�N�D�$<���	�	$�	$�	$�	$�	$rc�L�|�|j|jdd���dSr�)rwrRrPrs r�#test_repeat_callable_stmt_and_setupz.TestTimeit.test_repeat_callable_stmt_and_setup�s6�����D�+�T�-E���	�	$�	$�	$�	$�	$rc��tj|j|jdt	�����}|�|g��dS)Nr)rwr!)rrwr^r_rr0�rrzs  r�test_repeat_function_zero_repsz)TestTimeit.test_repeat_function_zero_reps�sE���m�D�N�D�O�A��k�k�#�#�#������b�)�)�)�)�)rc��tj|j|jdt	�����}|�|tdgz��dS)Nrrmg)rrwr^r_rr0rxr�s  r�test_repeat_function_zero_itersz*TestTimeit.test_repeat_function_zero_iters�sL���m�D�N�D�O�A��k�k�#�#�#������n��u�&<�=�=�=�=�=rc�,�|���}|�t|��d��|�|d�d����|�|d�|����dS)N�r�	Traceback���)�
splitlines�
assertGreater�len�
assertTrue�
startswith)r�
exc_string�expected_exc_name�	exc_liness    r�assert_exc_stringzTestTimeit.assert_exc_string�s~���)�)�+�+�	����3�y�>�>�1�-�-�-����	�!��/�/��<�<�=�=�=����	�"�
�0�0�1B�C�C�D�D�D�D�Drc��tj��}tjd��}	|���n#|�|��YnxYw|�|���d��dS)N�1/0�ZeroDivisionError)�io�StringIOrrG�	print_excr��getvalue)r�srWs   r�test_print_exczTestTimeit.test_print_exc�sq���K�M�M���L�����	�
�H�H�J�J�J�J��	�
�K�K��N�N�N�N�N�������q�z�z�|�|�-@�A�A�A�A�As	�>�Az"1 loop, best of 5: 1 sec per loop
r	c�|�|�t|���}|�g}n
|dd�}|�|j��tjdd�}t��5}t
j||j���ddd��n#1swxYwY|dd�tjdd�<|�	��S)N�r
)�args�_wrap_timer)
r�appendr^�sys�pathrr�mainr"r�)rr
�switchesr!r��
orig_sys_pathr�s       r�run_mainzTestTimeit.run_main�s���=��4I�J�J�J�E����D�D��A�A�A�;�D����D�N�#�#�#�������
�
�
�
�	A�!��K�T�u�/?�@�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�#�A�A�A�&��������z�z�|�|�s�B�B
�
B
c�z�|�dg���}|�|td����dS)Nz--bad-switch�r�zk            option --bad-switch not recognized
            use -h/--help for command line help
            �r�r0r�rr�s  r�test_main_bad_switchzTestTimeit.test_main_bad_switch�sM���M�M�N�#3�M�4�4������F�$���	�	�	�	�	rc�^�|�d���}|�|d��dS)Ng@r�z$1 loop, best of 5: 5.5 sec per loop
�r�r0r�s  r�test_main_secondszTestTimeit.test_main_secondss2���M�M��M�4�4������C�D�D�D�D�Drc�^�|�d���}|�|d��dS)Ng�I+�v?r�z'50 loops, best of 5: 5.5 msec per loop
r�r�s  r�test_main_millisecondsz!TestTimeit.test_main_milliseconds	s2���M�M��M�7�7������F�G�G�G�G�Grc�b�|�ddg���}|�|d��dS)Ng�h㈵��>z-n100�r
r�z(100 loops, best of 5: 2.5 usec per loop
r�r�s  r�test_main_microsecondsz!TestTimeit.test_main_microseconds
s6���M�M�	�W�I�M�N�N������G�H�H�H�H�Hrc�b�|�ddg���}|�|d��dS)N�@�-n35r��$35 loops, best of 5: 2 sec per loop
r�r�s  r�test_main_fixed_itersz TestTimeit.test_main_fixed_iterss6���M�M��v�h�M�G�G������C�D�D�D�D�Drc�z�|�dgd����}|�|dtzdz��dS)Nr�)r��-szprint("CustomSetup")r��CustomSetup
r��r�r0rxr�s  r�test_main_setupzTestTimeit.test_main_setupsZ���M�M��?�?�?�
�
A�
A������O�n�<�7�8�	9�	9�	9�	9�	9rc�z�|�dgd����}|�|dtzdz��dS)Nr�)r�r�za = "CustomSetup"r�zprint(a)r�r�r�r�r�s  r�test_main_multiple_setupsz$TestTimeit.test_main_multiple_setupssZ���M�M��N�N�N�
�
P�
P������O�n�<�7�8�	9�	9�	9�	9�	9rc�b�|�ddg���}|�|d��dS)N�N@z-r9r�z#1 loop, best of 9: 60 sec per loop
r�r�s  r�test_main_fixed_repszTestTimeit.test_main_fixed_reps!s6���M�M���w�M�G�G������B�C�C�C�C�Crc�b�|�ddg���}|�|d��dS)Nr�z-r-5r�z#1 loop, best of 1: 60 sec per loop
r�r�s  r�test_main_negative_repsz"TestTimeit.test_main_negative_reps%s6���M�M���x�M�H�H������B�C�C�C�C�Crr�zneed __doc__c�z�|�dg���}|�|tjdz��dS)Nz-hr�� )r�r0r�__doc__r�s  r�test_main_helpzTestTimeit.test_main_help)s<���M�M�D�6�M�*�*��	
����F�N�S�0�1�1�1�1�1rc�z�|�dg���}|�|td����dS)Nz-vr�z�                1 loop -> 1 secs

                raw times: 1 sec, 1 sec, 1 sec, 1 sec, 1 sec

                1 loop, best of 5: 1 sec per loop
            r�r�s  r�test_main_verbosezTestTimeit.test_main_verbose0sL���M�M�D�6�M�*�*������F�$���	�	�	�	�	rc�|�|�ddg���}|�|td����dS)NgiUMu�>z-vvr�a�                1 loop -> 3e-05 secs
                2 loops -> 6e-05 secs
                5 loops -> 0.00015 secs
                10 loops -> 0.0003 secs
                20 loops -> 0.0006 secs
                50 loops -> 0.0015 secs
                100 loops -> 0.003 secs
                200 loops -> 0.006 secs
                500 loops -> 0.015 secs
                1000 loops -> 0.03 secs
                2000 loops -> 0.06 secs
                5000 loops -> 0.15 secs
                10000 loops -> 0.3 secs

                raw times: 300 msec, 300 msec, 300 msec, 300 msec, 300 msec

                10000 loops, best of 5: 30 usec per loop
            r�r�s  r�test_main_very_verbosez!TestTimeit.test_main_very_verbose:sN���M�M�	�U�G�M�L�L������F�$���	�	�	�	�	rc���|�dddg���}|�|d��|�dddg���}|�|d��|�dddg���}|�|d	��t��5}|�ddd
g���}ddd��n#1swxYwY|�|���d��dS)Ng�~j�t�h?z-u�secr�z)100 loops, best of 5: 0.003 sec per loop
�msecz&100 loops, best of 5: 3 msec per loop
�usecz*100 loops, best of 5: 3e+03 usec per loop
�parsecz;Unrecognized unit. Please select nsec, usec, msec, or sec.
)r�r0rr�)r�unit_sec�	unit_msec�	unit_usec�error_stringio�invalids      r�test_main_with_time_unitz#TestTimeit.test_main_with_time_unitPsx���=�=�u����!�(�(������<�	>�	>�	>��M�M�����"�)�)�	�����9�	;�	;�	;��M�M�����"�)�)�	�����=�	?�	?�	?��
�
�	/�.��m�m�%�"�H�-�$�/�/�G�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	
����0�0�2�2�R�	T�	T�	T�	T�	Ts�C�C�	Cc���t��5}|�dg���}ddd��n#1swxYwY|�|���d��dS)Nr�r�r��rr�r�r��rr�r�s   r�test_main_exceptionzTestTimeit.test_main_exceptionds���
�
�
�	0�.��
�
��w�
�/�/�A�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0����~�6�6�8�8�:M�N�N�N�N�Ns�3�7�7c���t��5}|�ddg���}ddd��n#1swxYwY|�|���d��dS)Nz-n1r�r�r�r�r�s   r�test_main_exception_fixed_repsz)TestTimeit.test_main_exception_fixed_repsis���
�
�
�	7�.��
�
��u�~�
�6�6�A�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7����~�6�6�8�8�:M�N�N�N�N�Ns�4�8�8�P?c��t|���}tj|j|j|���}|�|��S)Nr�rv)rrrGr^r_�	autorange)rr
�callbackr!rWs     rr�zTestTimeit.autorangens?���0E�F�F�F���L�d�n�D�O�5�Q�Q�Q���{�{�8�$�$�$rc��|���\}}|�|d��|�|d��dS)N���@�?�r�r0�r�	num_loops�
time_takens   r�test_autorangezTestTimeit.test_autorangessH�� $��� 0� 0��	�:�����C�(�(�(�����X�.�.�.�.�.rc��|�d���\}}|�|d��|�|d��dS)Nr	r�rr�r�s   r�test_autorange_secondz TestTimeit.test_autorange_secondxsL�� $���S�� I� I��	�:�����A�&�&�&�����S�)�)�)�)�)rc�6�d�}t��5}|�|���\}}ddd��n#1swxYwY|�|d��|�|d��d}|�|���|��dS)Nc�L�td�||����dS)Nz	{} {:.3f})�print�format)�a�bs  rr�z9TestTimeit.test_autorange_with_callback.<locals>.callback~s&���+�$�$�Q��*�*�+�+�+�+�+r)r�r�r�zQ1 0.001
2 0.002
5 0.005
10 0.010
20 0.020
50 0.049
100 0.098
200 0.195
500 0.488
)rr�r0r�)rr�r�r�r��expecteds      r�test_autorange_with_callbackz'TestTimeit.test_autorange_with_callback}s���	,�	,�	,�
�
�
�	F�!�$(�N�N�H�N�$E�$E�!�I�z�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�����C�(�(�(�����X�.�.�.�"��	
��������x�0�0�0�0�0s�8�<�<)NN)r	NN)r�N)<r#r$r%r+r2r5r7r9rIrKrMr_r^rPrRrr`rergrirkrnrtrwr}rr�r�r�r�r�r�r�r��MAIN_DEFAULT_OUTPUTr�r�r�r�r�r�r�r�r�r��unittest�skipIfr��flags�optimizer�r�r�r�r�r�r�r�r�r�r&rrr(r(,sx���������5�5�5�=�=�=�E�E�E�,�,�,�
H�
H�
H�E�E�E�'�'�'�
=�J�9�I� � � ����-�-�-�-�$?�?�?�?�?�?�H�H�H�H�H�H�4�4�4�(�(�(�
	2�	2�	2�@�@�@�@�*?�?�?�?�?�?�I�I�I�$�$�$�$�$�$�$�$�$�*�*�*�
>�>�>�
E�E�E�B�B�B�@��
�
�
�
����E�E�E�H�H�H�I�I�I�E�E�E�9�9�9�9�9�9�D�D�D�D�D�D��X�_�S�Y�'�1�,�n�=�=�2�2�>�=�2�������,T�T�T�(O�O�O�
O�O�O�
%�%�%�%�
/�/�/�
*�*�*�
1�1�1�1�1rr(�__main__)rr�r�r��textwrapr�test.supportrrrVrxr�TestCaser(r#r�r&rr�<module>rs���
�
�
�
�����
�
�
�
�	�	�	�	�������(�(�(�(�(�(�(�(�(�(�(�(�������������,a1�a1�a1�a1�a1��"�a1�a1�a1�H�z����H�M�O�O�O�O�O��r