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

�Keǩ����ddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
	ddlZn
#e$rdZYnwxYwddlmZe
jd��pdZddezdz
zdz
Zedz
d	zZd
ZdZd
ZdZdZGd
�dej��ZdZdZejejfejejfej ej fej!ej!ffZ"Gd�de
j#��Z$Gd�de
j#��Z%Gd�d��Z&Gd�d��Z'Gd�d��Z(Gd�de&e(e
j#��Z)Gd�de'e(e
j#��Z*Gd�d e
j#��Z+e
j,edud!��Gd"�d#����Z-Gd$�d%e-e
j#��Z.Gd&�d'e-e
j#��Z/e
j0e	jd(kd)��Gd*�d+e
j#����Z1e2d,kre
j3��dSdS)-�)�support)�warnings_helperN)�skip_if_buggy_ucrt_strfptime�
SIZEOF_INT����li@B��iʚ;c��eZdZdZdZdZdZdS)�_PyTimerr��N)�__name__�
__module__�__qualname__�ROUND_FLOOR�
ROUND_CEILING�ROUND_HALF_EVEN�ROUND_UP���8/usr/local/apps/python3/lib/python3.11/test/test_time.pyr
r
s"�������K��M��O��H�H�Hrr
l����l����c��eZdZd�Zd�Zd�Zd�Zeje	e
d��d��d���Zeje	e
d��d��eje	e
d��d	��d
�����Zeje	e
d��d��eje	e
d��d��d
�����Z
eje	e
d��d��d���Zeje	e
d��d��d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zed���Zd�Zd�Zd�Zd �Zejej d!��d"���Z!eje	e
d#��d$��d%���Z"d&�Z#d'�Z$d(�Z%d)�Z&d*�Z'eje(j)��d+d,kd-��d.���Z*d/�Z+d0�Z,ejej-d1��d2���Z.d3�Z/eje	e
d��d4��d5���Z0d6�Z1d7�Z2d8S)9�TimeTestCasec�6�tj��|_dS�N)�time�t��selfs r�setUpzTimeTestCase.setUp9s���������rc�f�tjtjtjtjdSr)r�altzone�daylight�timezone�tznamer s r�test_data_attributesz!TimeTestCase.test_data_attributes<s"������
�
��
�
�����rc��tj��tjd��}|�|j��|�|j��dS)Nr)r�get_clock_info�assertFalse�	monotonic�
assertTrue�
adjustable)r!�infos  r�	test_timezTimeTestCase.test_timeBsM���	�����"�6�*�*�������(�(�(������(�(�(�(�(rc����fd�}|tj��tj����|tj��tj����|tj��tj����|tj��tj����ttd��r.|tj	��tj
����ttd��rF|tjtj��tj
tj����dSdS)Nc�����|t��t|dz��}��||z
d||f��dS)Nge��Al@�F)�assertIsInstance�int�
assertLess)�sec�ns�sec_nsr!s   �r�check_nsz0TimeTestCase.test_time_ns_type.<locals>.check_nsIsL����!�!�"�c�*�*�*���s��^�^�F��O�O�V�b�[�7�S�"�I�>�>�>�>�>r�thread_time�
clock_gettime)r�time_nsr,�monotonic_ns�perf_counter�perf_counter_ns�process_time�process_time_ns�hasattrr:�thread_time_nsr;�CLOCK_REALTIME�clock_gettime_ns)r!r9s` r�test_time_ns_typezTimeTestCase.test_time_ns_typeHsg���	?�	?�	?�	?�	?�	����������	!�	!�	!�����!�!��"�$�$�	&�	&�	&����"�$�$��%�'�'�	)�	)�	)����"�$�$��%�'�'�	)�	)�	)��4��'�'�	,��H�T�%�'�'��(�*�*�
,�
,�
,��4��)�)�	A��H�T�'��(;�<�<��*�4�+>�?�?�
A�
A�
A�
A�
A�	A�	Arr;zneed time.clock_gettime()c�x�tjtj��}|�|t��dSr)rr;rDr3�float�r!rs  r�test_clock_realtimez TimeTestCase.test_clock_realtimeas3��
��t�2�3�3�����a��'�'�'�'�'r�CLOCK_MONOTONICzneed time.CLOCK_MONOTONICc��tjtj��}tjtj��}|�||��dSr)rr;rK�assertLessEqual)r!�a�bs   r�test_clock_monotonicz!TimeTestCase.test_clock_monotonicgsF��

��t�3�4�4����t�3�4�4�����Q��"�"�"�"�"r�pthread_getcpuclockidz!need time.pthread_getcpuclockid()c��tjtj����}|�t|��tu��tj��dkrCtj
���dkr!|�|tj
��n`tj�d��r!|�|tj
��n |�|tj
��tj|��}tj|��}|�||��dS)N�AIX� �sunos)rrQ�	threading�	get_identr-�typer4�platform�system�sys�maxsize�
bit_length�assertEqual�CLOCK_THREAD_CPUTIME_ID�
startswith�assertNotEqualr;rM)r!�clk_id�t1�t2s    r�test_pthread_getcpuclockidz'TimeTestCase.test_pthread_getcpuclockidps��
�+�I�,?�,A�,A�B�B������V����+�,�,�,��?����%�%�3�;�+A�+A�+C�+C�r�+I�+I����V�T�%A�B�B�B�B�
�\�
$�
$�W�
-�
-�	F����V�T�%A�B�B�B�B������(D�E�E�E�
�
��
'�
'��
�
��
'�
'�����R��$�$�$�$�$r�clock_getreszneed time.clock_getres()c��tjtj��}|�|d��|�|d��dS)N���?)rrfrD�
assertGreaterrM)r!�ress  r�test_clock_getreszTimeTestCase.test_clock_getres�sI����� 3�4�4�����3��$�$�$����S�#�&�&�&�&�&r�
clock_settimezneed time.clock_settime()c�4�tjtj��}	tjtj|��n#t$rYnwxYwttd��r3|�ttjtjd��dSdS)NrKr)	rr;rDrm�PermissionErrorrB�assertRaises�OSErrorrKrIs  r�test_clock_settimezTimeTestCase.test_clock_settime�s���
��t�2�3�3��	���t�2�A�6�6�6�6���	�	�	��D�	�����4�*�+�+�	K����g�"�0�$�2F��
K�
K�
K�
K�
K�	K�	Ks�A�
A
�A
c	�n�|�tj|j��tjtj|j������|�t
tjtj|j������t
|j����dSr)r^r�ctimer�asctime�	localtimer4�mktimer s r�test_conversionszTimeTestCase.test_conversions�s��������D�F�+�+���d�n�T�V�&<�&<�=�=�	?�	?�	?�����T�[�����)?�)?�@�@�A�A��T�V���	&�	&�	&�	&�	&rc���|�ttjd��|�ttjd��tjd��dS)N������g333333�?)rp�
ValueErrorr�sleepr s r�
test_sleepzTimeTestCase.test_sleep�sG�����*�d�j�"�5�5�5����*�d�j�"�5�5�5��
�3�����rc��tjd��}|�t|��dd�d|��dS)Nr�)i�rrrrr)r�gmtimer^�tuple)r!�epochs  r�
test_epochzTimeTestCase.test_epoch�s?����A��������u���b�q�b�)�+@�%�H�H�H�H�Hrc�d�tj|j��}dD]E}d|z}	tj||���#t$r|�d|z��Y�BwxYw|�ttjd|��|�ttjd|��dS)N�rN�ArO�B�c�d�H�I�j�m�M�p�S�U�w�W�x�X�y�Y�Z�%z %z conversion specifier: %r failed.s%Sz%S)rr�r�strftimer|�failrp�	TypeError)r!�tt�	directive�formats    r�
test_strftimezTimeTestCase.test_strftime�s���
�[���
 �
 ��G�	G�	G�I��I�%�F�
G��
�f�b�)�)�)�)���
G�
G�
G��	�	�<�v�E�F�F�F�F�F�
G����	
���)�T�]�E�2�>�>�>����*�d�m�V�R�@�@�@�@�@s�:�"A�Ac�
�|d��|d��|�t|d��|�t|d��|d��|d��|�t|d��|�t|d��|d	��|�t|d
��|�t|d��|d��|�t|d
��|�t|d��|�t|d��|d��|d��|�t|d��|�|d��|d����|�t|d��|d��|d��|�t|d��|�t|d��dS)N)	r
rrrrrrrr{)	r
�rrrrrrr{)	r
r{rrrrrrr{)	r
�
rrrrrrr{)	r
rrrrrrrr{)	r
r�rrrrrr{)	r
rr{rrrrrr{)	r
rrTrrrrrr{)	r
rr�rrrrr{)	r
rrr{rrrrr{)	r
rr�rrrrr{)	r
rrr�;rrrr{)	r
rrrr{rrrr{)	r
rrr�<rrrr{)	r
rrrrr{rrr{)	r
rrrrr�rrr{)	r
rrrr�=rrr{)	r
rrrr�>rrr{)	r
rrrrrr{rr{)	r
rrrrrr�rr{)	r
rrrrrrzrr{)	r
rrrrrrrr{)	r
rrrrrrinr{)	r
rrrrrrr{r{)	r
rrrrrrior{)rpr|r^)r!�funcs  r�_bounds_checkingzTimeTestCase._bounds_checking�s���	
��
,�-�-�-���
-�.�.�.����*�d�<�	>�	>�	>����*�d�<�	>�	>�	>�	
��
,�-�-�-���
-�.�.�.����*�d�<�	>�	>�	>����*�d�<�	>�	>�	>�	
��
-�.�.�.����*�d�<�	>�	>�	>����*�d�<�	>�	>�	>�	
��
-�.�.�.����*�d�<�	>�	>�	>����*�d�<�	>�	>�	>�	
���*�d�<�	>�	>�	>�	
��
-�.�.�.���
-�.�.�.����*�d�<�	>�	>�	>�	
�����>�?�?���>�?�?�	A�	A�	A����*�d�<�	>�	>�	>�	
��
,�-�-�-���
.�/�/�/����*�d�<�	>�	>�	>����*�d�=�	?�	?�	?�	?�	?rc�2�|�d���dS)Nc�,�tjd|��S)N��rr�)�tups r�<lambda>z;TimeTestCase.test_strftime_bounding_check.<locals>.<lambda>�s��$�-��C�*@�*@�r)r�r s r�test_strftime_bounding_checkz)TimeTestCase.test_strftime_bounding_check�s �����@�@�A�A�A�A�Arc��dD]E}tdd��D]2}dD]-}	tj||z|z���#t$rY�*wxYw�3�FdS)N)r�r�z%Az%AAr�)r�zA%zAA%z%A%zA%A%z%#)�rangerr�r|)r!r�r��zs    r�test_strftime_format_checkz'TimeTestCase.test_strftime_format_check�s���
*�	�	�A��3��%�%�
�
��B���A���
�a�!�e�a�i�0�0�0�0��%�����������
�	�	s�7�
A	�A	c��d}tj��5tjdd��}ddd��n#1swxYwY|�||��dS)Nz2000 01 01 00 00 00 1 001z%Y %m %d %H %M %S %w %j)	��rrrrrrrr)r�check_warningsrr�r^)r!�expected�results   r�test_default_values_for_zeroz)TimeTestCase.test_default_values_for_zeros���
/��
�
+�
-�
-�	N�	N��]�#<�n�M�M�F�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N����	N�	N�	N�	N�����6�*�*�*�*�*s�8�<�<c	��tj|j��}dD]^}d|z}tj||��}	tj||���3#t
$r|�d|�d|�d���Y�[wxYwdS)Nr�r�zconversion specifier z failed with 'z' input.)rr�rr��strptimer|r�)r!r�r�r��strf_outputs     r�
test_strptimezTimeTestCase.test_strptimes����[���
 �
 ��G�		1�		1�I��9�_�F��-���3�3�K�
1��
�k�6�2�2�2�2���
1�
1�
1��	�	�	�!�6�6�;�;�;�0�1�1�1�1�1�
1����		1�		1s�A�&A8�7A8c��|�ttjdd��|�ttjdd��dS)Ns2009�%Y�2009s%Y)rpr�rr�r s r�test_strptime_bytesz TimeTestCase.test_strptime_bytess@�����)�T�]�G�T�B�B�B����)�T�]�F�E�B�B�B�B�Brc��|�t��5}tjdd��ddd��n#1swxYwY|�|jjd��|�t��5}tjdd��ddd��n#1swxYwY|�|jjd��dS)Nr�z%DT�19z%Y %)rpr|rr��assertIs�	exception�__suppress_context__)r!�es  r�test_strptime_exception_contextz,TimeTestCase.test_strptime_exception_context s*��
�
�
�z�
*�
*�	$�a��M�"�d�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$��
�
�a�k�6��=�=�=�
�
�
�z�
*�
*�	(�a��M�$��'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��
�
�a�k�6��=�=�=�=�=s!�=�A�A�B$�$B(�+B(c	���tjtj|j����tt
fD]b}tj|ddfdz��}|�|tt|����d�t|�����c|�	ttjtdzfdz��|�	ttjt
dz
fdz��|�	ttjd��|�	ttjd��|�	ttjd��dS)Nr�r�rrrrrr�rrrrrrrrrr)
rrrrrrrrrr)rrur�r�TIME_MAXYEAR�TIME_MINYEARr^�len�strrp�
OverflowErrorr�)r!�bigyear�ascs   r�test_asctimezTimeTestCase.test_asctime*s;����T�[���(�(�)�)�)�$�\�1�	E�	E�G��,���A���9�:�:�C����S�#�c�'�l�l�"3�"3�!3�!4�!4�5�s�7�|�|�D�D�D�D����-���'�!�+�-��8�	:�	:�	:����-���'�!�+�-��8�	:�	:�	:����)�T�\�1�5�5�5����)�T�\�2�6�6�6����)�T�\�9�=�=�=�=�=rc�D�|�tj��dSr)r�rrur s r�test_asctime_bounding_checkz(TimeTestCase.test_asctime_bounding_check9s�����d�l�+�+�+�+�+r�(musl libc issue on Emscripten, bpo-46390c���tjd��}|�tj|��d��tjd��}|�tj|��d��dD]q}	tj|ddfdz��}|�tj|��d	d�t	|�����[#t
tf$rY�nwxYwdS)
N)	i��	r�rr�4rrr{zSun Sep 16 01:03:52 1973)	r�rrrrrrrr{zSat Jan  1 00:00:00 2000)i�����drr�i�'r�
r��)rrwr^rtr�r|r�)r!r�year�testvals    r�
test_ctimezTimeTestCase.test_ctime<s���
�K�9�:�:�������A���(B�C�C�C��K�7�8�8�������A���(B�C�C�C�8�	F�	F�D�
F��+�t�Q��m�f�&<�=�=��� � ���G�!4�!4�R�S�S�!9�3�t�9�9�E�E�E�E���
�.�
�
�
���
����	F�	Fs�>C�C*�)C*�tzsetz"time module has no attribute tzsetc�R�ddlm}d}d}d}d}|�dd��}	||d<tj��||d<tj��|�tj|��tj|����|�tjd��|�tj	d��|�tj|��j
d��||d<tj��|�tj|��tj|����|�tjd��|�ttj��d	��|�tjd
��|�tj	d��|�tjd��|�tj|��j
d��|�ttj��d	��||d<tj��|�tj|��tj|����|�tjdd
tjd��|�tjd
dvt#tjd
����|�ttj��d	��|�tjd
��|�tj	d��|�tjd��|�tj|��j
d
��|�||d<nd|vr|d=tj��dS#|�||d<nd|vr|d=tj��wxYw)Nr)�environg�z�AzEST+05EDT,M4.1.0,M10.5.0zAEST-10AEDT-11,M10.5.0,M3.5.0zUTC+0�TZ)�EST�EDTrr�PFi@8�AESTEST)�AEDTr�i`s��iPe��)�osr��getrr�r^r�rvr%r&�tm_isdstrar'r�r$�assertInr-r�)r!r��xmas2002�eastern�victoria�utc�org_TZs       r�
test_tzsetzTimeTestCase.test_tzsetNs{��	������ ��-��2�������T�$�'�'��5	�$�G�D�M��J�L�L�L��G�D�M��J�L�L�L������H�%�%�t�~�h�'?�'?�
�
�
�
���T�]�A�.�.�.����T�]�A�.�.�.����T�^�H�5�5�>��B�B�B�$�G�D�M��J�L�L�L������H� 5� 5�t�~�h�7O�7O�P�P�P����T�[�.�9�9�9����S���-�-�q�1�1�1����T�]�A�.�.�.����T�]�E�2�2�2����T�\�5�1�1�1����T�^�H�5�5�>��B�B�B����S���-�-�q�1�1�1�%�G�D�M��J�L�L�L������H� 5� 5�t�~�h�7O�7O�P�P�P�
�M�M�$�+�a�.�<�$�+�a�.�I�I�I��O�O�D�K��N�o�=�s�4�;�q�>�?R�?R�S�S�S����S���-�-�q�1�1�1����T�]�A�.�.�.����T�]�F�3�3�3����T�\�6�2�2�2����T�^�H�5�5�>��B�B�B�
�!� &���
�
������D�M��J�L�L�L�L�L��	�!� &���
�
������D�M��J�L�L�L�L���s�N8P�$P&c��tjtjtjfD]#}dD]}|�t
||����$dS)N)gZb���t�gZb���ti)rrtr�rvrpr�)r!r��unreasonables   r�test_insane_timestampsz#TimeTestCase.test_insane_timestamps�s`��
�J���T�^�;�	E�	E�D� -�
E�
E���!�!�-��|�D�D�D�D�
E�	E�	Erc�T�tj��tjd��dSr)rrtr s r�test_ctime_without_argz#TimeTestCase.test_ctime_without_arg�s%��	
�
�����
�4�����rc���tj��}tjd��}tj|��}tj|��}|�||d���dS�Ng�������?)�delta)rr�rw�assertAlmostEqual)r!�gt0�gt1�t0rcs     r�test_gmtime_without_argz$TimeTestCase.test_gmtime_without_arg�s[���k�m�m���k�$����
�[��
�
��
�[��
�
�����r�2�S��1�1�1�1�1rc���tj��}tjd��}tj|��}tj|��}|�||d���dSr)rrvrwr)r!�lt0�lt1rrcs     r�test_localtime_without_argz'TimeTestCase.test_localtime_without_arg�s]���n�����n�T�"�"��
�[��
�
��
�[��
�
�����r�2�S��1�1�1�1�1rc��dD]V}	tj|��}|�tj|��|���@#tt
f$rY�SwxYwdS)N)rzr{rr)rrvr^rwr�rq)r!rr�s   r�test_mktimezTimeTestCase.test_mktime�sy���	5�	5�A�
5��^�A�&�&��� � ���R���!�4�4�4�4��"�7�+�
�
�
���
����	5�	5s�A�A�Ar�glibcz0disabled because of a bug in glibc. Issue #13309c�,�tj|j��}tjd|��}|�|d��	tjd��n#t$rYnwxYw|�tjd|��|��dS)N�%Z�LMT)	r{rrrrrr{r{r{)rr�rr�rarwr�r^)r!r�r's   r�test_mktime_errorzTimeTestCase.test_mktime_error�s����[���
 �
 ����t�R�(�(�����F�E�*�*�*�	��K�7�8�8�8�8���	�	�	��D�	���������t�R�0�0�&�9�9�9�9�9s�A�
A(�'A(c��d�td��D��}|d}|dd�D]}|�||d|z��|}�tj��}tjd��tj��}||z
}|�||��|�d|k��tjd��}|�|j��|�|j	��dS)	Nc�4�g|]}tj����Sr)rr,)�.0�ns  r�
<listcomp>z/TimeTestCase.test_monotonic.<locals>.<listcomp>�s ��6�6�6�a���!�!�6�6�6rr�rrztimes=%sg�?g�������?r,)
r��assertGreaterEqualrr,r}rjr-r*r+r.)r!�timesrcrd�dtr/s      r�test_monotoniczTimeTestCase.test_monotonic�s��6�6�5��:�:�6�6�6��
�1�X������)�	�	�B��#�#�B��J��,>�?�?�?��B�B��^�
�
���
�3����
�^�
�
��
�"�W�����2�r�"�"�"�	
������$�$�$��"�;�/�/�������'�'�'������)�)�)�)�)rc�,�tj��dSr)rr>r s r�test_perf_counterzTimeTestCase.test_perf_counter�s��������rz"process_time not available on WASIc�<�tj��}tjd��tj��}|�||z
d��tjd��}|�|j��|�|j��dS)N皙�����?�{�G�z�?r@)	rr@r}r5r*r-r,r+r.�r!�start�stopr/s    r�test_process_timezTimeTestCase.test_process_time�s���
�!�#�#���
�5����� �"�"��	
����u��e�,�,�,��"�>�2�2�������'�'�'������)�)�)�)�)rc��ttd��sWtj�d��r#|�dtj����n|�d��tj��}tjd��tj��}|�	||z
d��tj
d��}|�|j��|�
|j��dS)Nr:)�linux�winz*time.thread_time() should be available on zneed time.thread_timerr)rBrr[rYr`r��skipTestr:r}r5r*r-r,r+r.r s    r�test_thread_timezTimeTestCase.test_thread_time�s����t�]�+�+�	7��|�&�&�'7�8�8�
7��	�	�	� �\�\�,�-�-�-�-��
�
�5�6�6�6�� �"�"���
�5������!�!��	
����u��e�,�,�,��"�=�1�1�������'�'�'������)�)�)�)�)rzneed time.clock_settimec��tj��}tjtj��}	tjtj|dz
��n,#t
$r}|�|��Yd}~nd}~wwxYwtj��}tjtj|��|�||��dS)Ni)rr,r;rDrmror'r)r!rc�realtime�errrds     r�test_monotonic_settimez#TimeTestCase.test_monotonic_settimes����^�
�
���%�d�&9�:�:��	���t�2�H�t�O�D�D�D�D���	�	�	��M�M�#�������������	����
�^�
�
����4�.��9�9�9�����B�'�'�'�'�'s�"A�
A?� A:�:A?c�6�d}dD]J}	tj|���#t$r|�d��Y�9t$r|}YnwxYw|�|�d��|�ttj|��|�ttj|��|�ttjtd����|�ttjtd����dS)N)r{i@llzneed 64-bit time_tz&unable to find an invalid time_t value�nan)	rrvr�r'rqrprtr|rH)r!�invalid_time_t�time_ts   r�test_localtime_failurez#TimeTestCase.test_localtime_failures����/�	�	�F�
���v�&�&�&�&�� �
4�
4�
4��
�
�2�3�3�3�3�3��
�
�
�!'�����
�����!��M�M�B�C�C�C����'�4�>�>�B�B�B����'�4�:�~�>�>�>�	
���*�d�n�e�E�l�l�C�C�C����*�d�j�%��,�,�?�?�?�?�?s��A
�A
�A
c���gd�}ttd��r|�d��|D�]}|�|���5tj|��}|�|jt��|�|jd��|�|j	t��|�|jt��|�
|jd��|�|jd��|�|jt��ddd��n#1swxYwY��|�t"tjd��dS)N)r,r>r@rr:)�namer�rhri�xxx)rBr�append�subTestr*r3�implementationr�rar,�bool�
resolutionrHrjrMr.rpr|)r!�clocksr3r/s    r�test_get_clock_infoz TimeTestCase.test_get_clock_info4s���
�
�
���4��'�'�	)��M�M�-�(�(�(��	=�	=�D����4��(�(�

=�

=��*�4�0�0���%�%�d�&9�3�?�?�?��#�#�D�$7��<�<�<��%�%�d�n�d�;�;�;��%�%�d�o�u�=�=�=��"�"�4�?�C�8�8�8��$�$�T�_�c�:�:�:��%�%�d�o�t�<�<�<�

=�

=�

=�

=�

=�

=�

=�

=�

=�

=�

=����

=�

=�

=�

=��	
���*�d�&9�5�A�A�A�A�As�
C&D<�<E	�E	N)3rrrr"r(r0rF�unittest�
skipUnlessrBrrJrPrerlrrrxr~r�r�r�r�r�r�rr�r�r�r�r��skipIfr�
is_emscriptenr�r�r�r�rr
rrY�libc_verrrr�is_wasir#r(r,r1r;rrrrr7s�������������)�)�)�A�A�A�2�X������7�7�4�6�6�(�(�6�6�(��X������7�7�4�6�6��X�����'8�9�9�4�6�6�#�#�6�6�6�6�#�
�X�����'>�?�?�<�>�>��X������7�7�4�6�6�
%�
%�6�6�>�>�
%��X�����~�6�6�3�5�5�'�'�5�5�'�
�X������7�7�4�6�6�	K�	K�6�6�	K�&�&�&����
I�I�I�
A�
A�
A�7?�7?�7?�rB�B�B����+�+�+�"�
1�
1�"�!�
1�C�C�C�
>�>�>�
>�
>�
>�,�,�,��X�_���I���
F�
F���
F��X�����w�/�/�=�?�?�G�G�?�?�G�RE�E�E����2�2�2�2�2�2�5�5�5��X��*��*�,�,�Q�/�7�:�K�M�M�:�:�M�M�:�*�*�*�.����X�_���=���*�*���*�*�*�*�(�X������7�7�2�4�4�(�(�4�4�(�@�@�@�*B�B�B�B�Brrc� �eZdZd�Zd�Zd�ZdS)�
TestLocalec�L�tjtj��|_dSr��locale�	setlocale�LC_ALL�oldlocr s rr"zTestLocale.setUpOs���&�v�}�5�5����rc�N�tjtj|j��dSrrEr s r�tearDownzTestLocale.tearDownRs��������4�4�4�4�4rc���	tjtjd��}n*#tj$r|�d��YnwxYwtjdd��dS)N�fr_FRz$could not set locale.LC_ALL to fr_FRz%B)	i�rrrrrrrr)rFrGrH�Errorr'rr�)r!�tmps  r�
test_bug_3061zTestLocale.test_bug_3061Uss��	B��"�6�=�'�:�:�C�C���|�	B�	B�	B��M�M�@�A�A�A�A�A�	B����	
�
�d�2�3�3�3�3�3s�"�$A	�A	N)rrrr"rKrPrrrrCrCNsA������6�6�6�5�5�5�4�4�4�4�4rrCc��eZdZdZd�Zd�ZdS)�_TestAsctimeYear�%dc�b�tj|fdz�����dS)Nr�r{)rru�split�r!r�s  r�yearstrz_TestAsctimeYear.yearstras)���|�Q�D�8�O�,�,�2�2�4�4�R�8�8rc��|�|�d��d��|�|�d��d��dS)N�90�12345��[�	123456789)r^rWr s r�test_large_yearz _TestAsctimeYear.test_large_yeardsL��������e�,�,�g�6�6�6�������i�0�0�+�>�>�>�>�>rN)rrr�_formatrWr]rrrrRrR^s7�������G�9�9�9�?�?�?�?�?rrRc����eZdZejdd��dkrdZndZd�Zeje	j
d��d���Zd	�Zed
���fd���Z
ed���fd
���Z[�xZS)�_TestStrftimeYearr�)	rrrrrrrrr�0001�%04drSc�4�tjd|fdz��S)Nr�r�r�rVs  rrWz_TestStrftimeYear.yearstrus���}�T�A�4�(�?�3�3�3rzrequires strftime extensionc�~�|jdkr|�d��dSd�}|�d|���dS)Nrbc�4�tjd|fdz��S)Nz%4Yr�r�)r�s r�year4dz-_TestStrftimeYear.test_4dyear.<locals>.year4d�s���}�U�Q�D�8�O�<�<�<r)r�)r^�	test_year)r!rfs  r�test_4dyearz_TestStrftimeYear.test_4dyearxsT��
�<�6�!�!��N�N�6�"�"�"�"�"�
=�
=�
=��N�N�6��N�/�/�/�/�/rc��d}	tjd|fdz��d}n#t$rd}YnwxYwtj||��S)Nz5strftime() is limited to [1; 9999] with Visual Studior�r�TF)rr�r|r<r=)r��msg�conds   r�skip_if_not_supportedz'_TestStrftimeYear.skip_if_not_supported�sh��E��	��M�$���x��0�0�0��D�D���	�	�	��D�D�D�	�����"�4��-�-�-s� �/�/r�c�D��t�����Sr)�superr]�r!�	__class__s �rr]z!_TestStrftimeYear.test_large_year�s����w�w�&�&�(�(�(rrc�D��t�����Sr)rn�
test_negativeros �rrrz_TestStrftimeYear.test_negative�s����w�w�$�$�&�&�&r)rrrrr�r^rWr<r=r�has_strftime_extensionsrhrlr]rr�
__classcell__)rps@rr`r`is���������t�}�T�?�+�+�v�5�5������4�4�4��X���'�)F���0�0���0�	.�	.�	.���5�!�!�)�)�)�)�"�!�)���1���'�'�'�'���'�	����rr`c�&�eZdZdZdd�Zd�Zd�ZdS)�_Test4dYearrSNc���|p|j}|p|j}|�|d��|dz��|�|d��|dz��|�|d��|dz��|�|d��|dz��|�|d��|dz��|�|d��|dz��dS)Nr�D�E�c���')r^rWr^)r!�fmtr�s   rrgz_Test4dYear.test_year�s����!�T�\���#�t�|�������a���S�1�W�-�-�-������b���S�2�X�.�.�.������b���S�2�X�.�.�.������b���S�2�X�.�.�.������c���S�3�Y�/�/�/������d���S�4�Z�0�0�0�0�0rc���|�|�d���d��d��|�|�d���d��d��|�|�t���d��t	t����|�t|jtdz��dS)NrY�+rZr[r\r)r^rW�lstripr�r�rpr�r s rr]z_Test4dYear.test_large_year�s���������e�,�,�3�3�C�8�8�'�B�B�B�������i�0�0�7�7��<�<�k�J�J�J�������l�3�3�:�:�3�?�?��\�AR�AR�S�S�S����-���|�a�7G�H�H�H�H�Hrc�X�|�|�d��|jdz��|�|�d��d��|�|�d��d��|�|�d��td����|�|�d��td����|�|�t��tt����|�t|jtdz
��|�t��5|�tdz
��ddd��dS#1swxYwYdS)	Nr{i.���z-1234i���z-123456i�2��i.�i�r)r^rWr^r�r�rpr�r�r s rrrz_Test4dYear.test_negative�s���������b�)�)�4�<�"�+<�=�=�=�������e�,�,�g�6�6�6�������g�.�.�	�:�:�:�������j�1�1�3�z�?�?�C�C�C�������k�2�2�C��4D�4D�E�E�E�������l�3�3�S��5F�5F�G�G�G����-���|�a�7G�H�H�H�
�
�
�}�
-�
-�	,�	,��L�L�,���*�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s�3F�F#�&F#)NN)rrrr^rgr]rrrrrrvrv�sN�������G�1�1�1�1�I�I�I�
,�
,�
,�
,�
,rrvc��eZdZdS)�TestAsctime4dyearN�rrrrrrr�r����������Drr�c��eZdZdS)�TestStrftime4dyearNr�rrrr�r��r�rr�c�(�eZdZeejejdkd��eje	j
d��d�������Zejejdkd��d���Zejejdkd��d���Z
dS)�
TestPytime�zneeds tm_zone supportr�c��tj��}|�t|d����|�t|d����|j�*|�ttd����n=|�|jtjtjg|j��|j	�*|�ttd����n0|�|j	tj
|j��tj|��}tj|dd���}|�||��tj|��}tj|��}|�||��|�|j|j��|�|j	|j	��|�||��|�|j|j��|�|j	|j	��dS)N�	tm_gmtoff�tm_zoner&r'r�)rrvr-rBr�r^r&r$r�r�r'rw)r!�ltr�t9�new_lt�new_lt9s      r�test_localtime_timezonez"TestPytime.test_localtime_timezone�s����^�
�
�������K�0�0�1�1�1������I�.�.�/�/�/��<���O�O���j� 9� 9�9�:�:�:�:����R�\�T�]�D�L�,I�"�+�,V�+V�W�W�W�
�:���O�O���h� 7� 7�7�8�8�8�8����R�Z���R�[�)A�B�B�B�

�K��O�O��$�+�b��!��f�"5�"5�R�����B�������"�"��d�n�R�.@�.@�G������$�$�$�����)�2�<�8�8�8��������4�4�4�����"�%�%�%�����)�2�<�8�8�8������"�*�5�5�5�5�5rc���tjdd��}|�|jd��tjdd��}|�|jd��dS)N�UTCrz+0500z%zr�)rr�r^r�r�rIs  r�test_strptime_timezonez!TestPytime.test_strptime_timezone�sZ���M�%��&�&�������E�*�*�*��M�'�4�(�(�������h�/�/�/�/�/rc��ddl}d}|�|��}|�|jd��|�|jd��dS)NrsLctime
struct_time
p0
((I2007
I8
I11
I1
I24
I49
I5
I223
I1
tp1
(dp2
tp3
Rp4
.)�pickle�loadsr�r�r�)r!r��str�s    r�test_short_timeszTestPytime.test_short_times�sX��	�
�
�
�m��
�\�\�"�
�
���
�
�b�l�D�)�)�)��
�
�b�j�$�'�'�'�'�'rN)rrrrr<r=r�_STRUCT_TM_ITEMSr>rr?r�r�r�rrrr�r��s�������!��X���.�"�4�6M�N�N��X�_���I��� 6� 6���O�N�"�!�
 6�D�X���.�"�4�6M�N�N�0�0�O�N�0��X���.�"�4�6M�N�N�(�(�O�N�(�(�(rr�zneed the _testcapi modulec�J�eZdZ	dZd�Zd�Zd�Z	d
d�Z	dd�Z	dd�Z	d	�Z
dS)�CPyTimeTestCaseNc�R�ddlm}|dzdz
}d|z|_d|zdz
|_dS)Nr)�
SIZEOF_TIME_Tr	rr)�	_testcapir��
time_t_min�
time_t_max)r!r��bitss   rr"zCPyTimeTestCase.setUpsC��+�+�+�+�+�+��q� �1�$����9�*����t�)�a�-����rc�6�|j|cxko
|jkncSr)r�r�)r!�secondss  r�
time_t_filterzCPyTimeTestCase.time_t_filter	s(����7�=�=�=�=�d�o�=�=�=�=�>rc
�>�	dtttg}|r|�d��d}dg}|D]$}|D]}||z}|�||f��� �%dD]9}d|ztz}|�|dz
||dz|dz
||dzf���:t
jt
jfD]}	|�|	tz��� |r#dD] }d|z}|�||f���!d	tztz}|�||f��|S)
Nrg����MbP?)rr���{i�i�r�rzr{r|i��i?Bi�i�i�i�i�i�i�	i�
i�r)	rr�r���r�r���!r)rr�r�r�g@l)�US_TO_NS�MS_TO_NS�	SEC_TO_NSr5�extendr��INT_MIN�INT_MAX)
r!�	use_float�units�values�
ns_timestamps�unit�valuer7�pow2r�s
          r�_rounding_valuesz CPyTimeTestCase._rounding_valuess���1��H�h�	�2���	��L�L�����
��$��
��	0�	0�D��
0�
0���T�\���$�$�r�c�2�Y�/�/�/�/�
0�7�	�	�D��t�)�y�(�B�� � ���A���s�R�C��E��1��b�"�Q�$�"�
�
�
�
�"�)�9�+<�=�	6�	6�G�� � ��9�!4�5�5�5�5��	0�&�
0�
0���d�U�^���$�$�r�c�2�Y�/�/�/�/���"�i�
/�����r�c�2�Y�'�'�'��rc��������fd�}|����}||��}tD]�\}	}
tj��5}|
|_|D]_}||
d�}
	|||	��}||��}n(#t
$r|�d|
z��YnwxYw|�|||
���`	ddd��n#1swxYwY��|jtz}||f}||��}tD]O\}	}|D]G}||	d�}
|�
t|
���5|||	��ddd��n#1swxYwY�H�PdS)Nc������r&tt���z��fd�|D��}nt�z��fd�|D��}�rt�|��}tt	|����S)Nc���g|]}|�z��Srr�rr7�
unit_to_nss  �rrzKCPyTimeTestCase._check_rounding.<locals>.convert_values.<locals>.<listcomp>Es���B�B�B�b�"�z�/�B�B�Brc���g|]}|�z��Srrr�s  �rrzKCPyTimeTestCase._check_rounding.<locals>.convert_values.<locals>.<listcomp>Hs���C�C�C�r�"�
�*�C�C�Cr)r�rH�filter�sorted�set)r�r�r��unit_to_secr��value_filters  @���r�convert_valuesz7CPyTimeTestCase._check_rounding.<locals>.convert_valuesBs������
D�&��{�);�);�;�
�B�B�B�B�M�B�B�B���&�+�5�
�C�C�C�C�]�C�C�C���
6���f�5�5���#�f�+�+�&�&�&r)r��roundingz!Error on timestamp conversion: %s)rj)r��ROUNDING_MODES�decimal�localcontextr��	Exceptionr�r^�OVERFLOW_SECONDSr�rpr�)r!�pytime_converter�
expected_funcr�r�r�r�r��valid_values�time_rnd�decimal_rnd�contextr��
debug_infor�r�r7�overflow_values�_s   ```             r�_check_roundingzCPyTimeTestCase._check_rounding?s_�����	'�	'�	'�	'�	'�	'�	'��-�-�i�8�8�
�%�~�m�4�4��%3�
	1�
	1�!�H�k��%�'�'�
1�7�#.�� �)�	1�	1�E�+0�k�!J�!J�J�T�!1�!1�%��!B�!B��#0�=��#7�#7����$�T�T�T��	�	�"E�
�"R�S�S�S�S�S�T�����$�$�V�%-�%/�1�1�1�1�	1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1���
"�Y�
.����b�	�
�(�.��7�7��)�	6�	6�K�H�a�(�
6�
6��',�(�C�C�
��&�&�}�*�&�E�E�6�6�$�$�U�H�5�5�5�6�6�6�6�6�6�6�6�6�6�6����6�6�6�6��
6�	6�	6sH�
C�A4�3C�4"B	�C�B	�C�C	�C	�
D6�6D:�=D:rc�8�|�||d||��dS)NF�r��r!r�r�r�r�s     r�check_int_roundingz"CPyTimeTestCase.check_int_roundingls0�����-�}�"�K��	?�	?�	?�	?�	?rc�8�|�||d||��dS)NTr�r�s     r�check_float_roundingz$CPyTimeTestCase.check_float_roundingqs0�����-�}�!�;��	>�	>�	>�	>�	>rc�r�tj|��}|�d��}t|��S)Nr)r��Decimal�quantizer4)r!r�r�s   r�
decimal_roundzCPyTimeTestCase.decimal_roundvs+���O�A����
�J�J�q�M�M���1�v�v�
rr)rN)rrrr�r"r�r�r�r�r�r�rrrr�r��s����������(�(�(�?�?�?�1�1�1�h>B�+6�+6�+6�+6�\8<�?�?�?�?�:>�>�>�>�>�
����rr�c�8�eZdZ	ejdez��Zd�Zd�Zd�Z	d�Z
d�Zej
eed��d��d	���Zej
eed
��d��d���Zej
eed
��d��d���Zd�Zd�ZdS)�TestCPyTimelc���ddlm�d�}|��fd�d�|���tD]O\}}|�t
��5�t
d����ddd��n#1swxYwY�PdS)Nr)�PyTime_FromSecondsc�J�tj|cxkotjkncSr)r�r�r���secss r�c_int_filterz2TestCPyTime.test_FromSeconds.<locals>.c_int_filter�s*���%��B�B�B�B��1B�B�B�B�B�Crc����|��Srr)r��rndr�s  �rr�z.TestCPyTime.test_FromSeconds.<locals>.<lambda>�s���2D�2D�T�2J�2J�rc��|tzSr�r�r�s rr�z.TestCPyTime.test_FromSeconds.<locals>.<lambda>�s��T�I�-=�r�r�r.)r�r�r�r�rpr�rH)r!r�r�r�r�s    @r�test_FromSecondszTestCPyTime.test_FromSeconds�s����0�0�0�0�0�0�	D�	D�	D�	
��� J� J� J� J� =� =�-9�	 �	;�	;�	;�
*�	1�	1�K�H�a��"�"�9�-�-�
1�
1�"�"�5��<�<�0�0�0�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1��	1�	1s�
A2�2A6	�9A6	c�$��ddlm}��|d�����|�fd���tD]P\}}��t��5|td��|��ddd��n#1swxYwY�QdS)Nr)�PyTime_FromSecondsObjectc��|tzSrr�r�s rr�z4TestCPyTime.test_FromSecondsObject.<locals>.<lambda>�s���	�)�rc�>����|tz��Sr)r�r�)r7r!s �rr�z4TestCPyTime.test_FromSecondsObject.<locals>.<lambda>�s���t�)�)�"�y�.�9�9�rr.)r�r�r�r�r�rpr|rH)r!r�r�r�s`   r�test_FromSecondsObjectz"TestCPyTime.test_FromSecondsObject�s���6�6�6�6�6�6����$�)�)�	+�	+�	+�	
�!�!�$�9�9�9�9�	;�	;�	;�
*�	A�	A�K�H�a��"�"�:�.�.�
A�
A�(�(��u���x�@�@�@�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A����
A�
A�
A�
A��	A�	As�B�B	�B	c���ddlm�d�}|��fd�|t��tD]O\}}|�t��5�td����ddd��n#1swxYwY�PdS)Nr)�PyTime_AsSecondsDoublec��t|��tzdkrt|tz��St|��tzS�Nr)�absr�rH�r7s r�float_converterz9TestCPyTime.test_AsSecondsDouble.<locals>.float_converter�s;���2�w�w��"�a�'�'��R�9�_�-�-�-��R�y�y�9�,�,rc����|��Srr)r7r�r�s  �rr�z2TestCPyTime.test_AsSecondsDouble.<locals>.<lambda>�s���0F�0F�r�0J�0J�rr.)r�r�r��	NS_TO_SECr�rpr�rH)r!r�r�r�r�s    @r�test_AsSecondsDoublez TestCPyTime.test_AsSecondsDouble�s����4�4�4�4�4�4�	-�	-�	-�	
��� J� J� J� J� /� )�	+�	+�	+�
*�	5�	5�K�H�a��"�"�9�-�-�
5�
5�&�&�u�U�|�|�4�4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5��	5�	5s�A5�5A9	�<A9	c�>���tj|�����fd�}|S)Nc�\��tj|���z}��|��Sr)r�r�r�)r�r��denomr!s  ��r�	converterz7TestCPyTime.create_decimal_converter.<locals>.converter�s+������&�&��.�A��%�%�a�(�(�(r)r�r�)r!�denominatorrrs`  @r�create_decimal_converterz$TestCPyTime.create_decimal_converter�s9�������,�,��	)�	)�	)�	)�	)�	)��rc������ddlm}|�t����fd�}tjdkrddlm�m���fd�}n|j}|�	||t|���dS)Nr)�PyTime_AsTimevalc�D���|��}t|t��Sr)�divmod�	SEC_TO_US)r7�us�us_converters  �r�timeval_converterz5TestCPyTime.test_AsTimeval.<locals>.timeval_converter�s"�����b�!�!�B��"�i�(�(�(r�win32��LONG_MIN�LONG_MAXc�$���|cxko�kncSrr)r�rrs ��r�seconds_filterz2TestCPyTime.test_AsTimeval.<locals>.seconds_filter�s%����4�3�3�3�3�8�3�3�3�3�3rr�)r�rrr�r[rYrrr�r�r�)r!rr
rrrrs    @@@r�test_AsTimevalzTestCPyTime.test_AsTimeval�s������.�.�.�.�.�.��4�4�X�>�>��	)�	)�	)�	)�	)��<�7�"�"�4�4�4�4�4�4�4�4�
4�
4�
4�
4�
4�
4�
4�"�/�N���� 0� 1� )�-;�	 �	=�	=�	=�	=�	=r�PyTime_AsTimespecz need _testcapi.PyTime_AsTimespecc�f��ddlm�d�}|��fd�|t|j���dS)Nr)rc�,�t|t��Sr)r	r�r�s r�timespec_converterz7TestCPyTime.test_AsTimespec.<locals>.timespec_converter�s���"�i�(�(�(rc����|��Srr)r7r�rs  �rr�z-TestCPyTime.test_AsTimespec.<locals>.<lambda>�s���0A�0A�"�0E�0E�rr�)r�rr�r�r�)r!rrs  @r�test_AsTimespeczTestCPyTime.test_AsTimespec�sl���	0�/�/�/�/�/�	)�	)�	)�	
��� E� E� E� E� 2� )�-1�-?�	 �	A�	A�	A�	A�	Ar�PyTime_AsTimeval_clampz%need _testcapi.PyTime_AsTimeval_clampc��ddlm}tjdkr
ddlm}m}|}|}n|j}|j}ttfD]�}||tj��}tj
��5}tj|_|�tj|��t"z��}	ddd��n#1swxYwYt%|	t&��\}
}||
kr|}
d}n
|
|kr|}
d}|�||
|f����dS)Nr)rrr)r�rr[rYrrr�r��_PyTime_MIN�_PyTime_MAXr
rr�r�r�r�r�r�r	r
r^)r!rrr�
tv_sec_max�
tv_sec_minr�tsr�r�tv_sec�tv_usecs            r�test_AsTimeval_clampz TestCPyTime.test_AsTimeval_clamp�s���	5�4�4�4�4�4��<�7�"�"�4�4�4�4�4�4�4�4�!�J�!�J�J���J���J��{�+�	4�	4�A�'�'��7�+@�A�A�B��%�'�'�
G�7�#*�#8�� ��'�'����(:�(:�X�(E�F�F��
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G����
G�
G�
G�
G�%�R��3�3�O�F�G��F�"�"�#������*�$�$�#�������R�&�'�!2�3�3�3�3�	4�	4s�+AB8�8B<	�?B<	�PyTime_AsTimespec_clampz&need _testcapi.PyTime_AsTimespec_clampc��ddlm}ttfD]f}||��}t	|t
��\}}|j|kr
|j}d}n||jkr	|j}d}|�|||f���gdS)Nr)r%)	r�r%rrr	r�r�r�r^)r!r%rr!r"�tv_nsecs      r�test_AsTimespec_clampz!TestCPyTime.test_AsTimespec_clamp�s���	6�5�5�5�5�5��{�+�		4�		4�A�(�(��+�+�B�$�Q�	�2�2�O�F�G����'�'��������$�/�)�)���������R�&�'�!2�3�3�3�3�		4�		4rc�z�ddlm}|�||�t��t
��dS)Nr)�PyTime_AsMilliseconds)r�r*r�rr�r�)r!r*s  r�test_AsMillisecondszTestCPyTime.test_AsMilliseconds
�M��3�3�3�3�3�3���� 5� $� =� =�h� G� G� )�	+�	+�	+�	+�	+rc�z�ddlm}|�||�t��t
��dS)Nr)�PyTime_AsMicroseconds)r�r.r�rr�r�)r!r.s  r�test_AsMicrosecondszTestCPyTime.test_AsMicrosecondsr,rN)rrr�math�ceilr�r�r�r�r�rrr<r=rBr�rr$r(r+r/rrrr�r�|sf�������!�t�y�)�y�!8�9�9��1�1�1� A�A�A� 5�5�5�$���=�=�=�.�X�����,?�@�@�;�=�=�	A�	A�=�=�	A��X�����,D�E�E�@�B�B�4�4�B�B�4�2�X�����,E�F�F�A�C�C�4�4�C�C�4�+�+�+�+�+�+�+�+rr�c�,�eZdZ	dZd�Zd�Zd�Zd�ZdS)�
TestOldPyTimelc��ddlm}|�|d�|j���|�||j|j���dS)Nr)�pytime_object_to_time_tc��|Srrr�s rr�z5TestOldPyTime.test_object_to_time_t.<locals>.<lambda>(s��T�rr�)r�r5r�r�r�r�)r!r5s  r�test_object_to_time_tz#TestOldPyTime.test_object_to_time_t$s���5�5�5�5�5�5���� 7� 1� 1�-1�-?�	 �	A�	A�	A�	
�!�!�"9�"&�"4�/3�/A�	"�	C�	C�	C�	C�	Crc������fd�}|S)Nc����tj|��\}}t|��}|�z}��|��}|dkr|�z
}|dz}n|�kr
|�z}|dz
}||fS)Nrr)r0�modfr4r�)r��	floatpart�intpart�sec_to_unitr!s   ��rrz1TestOldPyTime.create_converter.<locals>.converter0s����!%��4����I�w��'�l�l�G���$�I��*�*�9�5�5�I��1�}�}��[�(�	��1�����k�)�)��[�(�	��1����Y�'�'rr)r!r=rs`` r�create_converterzTestOldPyTime.create_converter/s*����	(�	(�	(�	(�	(�	(��rc�h�ddlm}|�|d�|j���|�||�t��|j���tD]P\}}|�t��5|td��|��ddd��n#1swxYwY�QdS)Nr)�pytime_object_to_timevalc�
�|dfSr�rr�s rr�z6TestOldPyTime.test_object_to_timeval.<locals>.<lambda>B�
��d�A�Y�rr�r.)r�r@r�r�r�r>r
r�rpr|rH)r!r@r�r�s    r�test_object_to_timevalz$TestOldPyTime.test_object_to_timeval>s6��6�6�6�6�6�6���� 8� 6� 6�-1�-?�	 �	A�	A�	A�	
�!�!�":�"&�"7�"7�	�"B�"B�/3�/A�	"�	C�	C�	C�
*�	A�	A�K�H�a��"�"�:�.�.�
A�
A�(�(��u���x�@�@�@�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A����
A�
A�
A�
A��	A�	A��B&�&B*	�-B*	c�h�ddlm}|�|d�|j���|�||�t��|j���tD]P\}}|�t��5|td��|��ddd��n#1swxYwY�QdS)Nr)�pytime_object_to_timespecc�
�|dfSr�rr�s rr�z7TestOldPyTime.test_object_to_timespec.<locals>.<lambda>RrBrr�r.)r�rFr�r�r�r>r�r�rpr|rH)r!rFr�r�s    r�test_object_to_timespecz%TestOldPyTime.test_object_to_timespecNs6��7�7�7�7�7�7���� 9� 6� 6�-1�-?�	 �	A�	A�	A�	
�!�!�";�"&�"7�"7�	�"B�"B�/3�/A�	"�	C�	C�	C�
*�	B�	B�K�H�a��"�"�:�.�.�
B�
B�)�)�%��,�,��A�A�A�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B��	B�	BrDN)rrrr�r7r>rCrHrrrr3r3sh�������
��	C�	C�	C�
�
�
�A�A�A� B�B�B�B�Brr3�darwinztest weak linking on macOSc��eZdZd�ZdS)�TestTimeWeaklinkingc���ddl}ddl}|j��}d}||vs||stj|�d����td�|j��d�d��D����}gd�}|dkr4|D]/}|�tt|��d|�d����0dS|D]/}|�tt|��d|�d	����0dS)
Nr�HAVE_CLOCK_GETTIMEz is not availablec3�4K�|]}t|��V��dSr)r4)rr�s  r�	<genexpr>z;TestTimeWeaklinking.test_clock_functions.<locals>.<genexpr>ns(����I�I�1��A���I�I�I�I�I�Ir�.)rKr;rErm�clock_settime_nsrf)r�r�ztime.z
 is available)�	sysconfigrY�get_config_varsr<�SkipTestr��mac_verrUr-rBrr+)r!rRrY�config_vars�var_namerU�clock_namesr3s        r�test_clock_functionsz(TestTimeWeaklinking.test_clock_functionsesL����������/�i�/�1�1��'���;�&�&�k�(�.C�&��#�x�$B�$B�$B�C�C�C��I�I�(8��(8�(:�(:�1�(=�(C�(C�C�(H�(H�I�I�I�I�I��0�0�0���h���#�
V�
V�������d� 3� 3�5T�T�5T�5T�5T�U�U�U�U�
V�
V�$�
S�
S��� � ���t�!4�!4�6Q�d�6Q�6Q�6Q�R�R�R�R�
S�
SrN)rrrrYrrrrKrK^s(������S�S�S�S�SrrK�__main__)4�testr�test.supportrr��enumrFr0rYr[rRrrVr<r��ImportErrorr�get_config_varrr�r�r
r�r�r�r��IntEnumr
rrrrrrr��TestCaserrCrRr`rvr�r�r�r>r�r�r3r=rKr�mainrrr�<module>rcsk��������(�(�(�(�(�(���������
�
�
�
���������
�
�
�
�����������������������������I�I�I�����6�5�5�5�5�5�&�Y�
%�l�
3�
3�
8�q�
��Q��^�a�'�'�1�,���}�q� �4�'���	������	��	������d�l��������

��'�-�.���G�1�2���g�5�6���w�'�(���TB�TB�TB�TB�TB�8�$�TB�TB�TB�n
4�
4�
4�
4�
4��"�
4�
4�
4� 	?�	?�	?�	?�	?�	?�	?�	?�.�.�.�.�.�.�.�.�b,�,�,�,�,�,�,�,�@	�	�	�	�	�(�+�x�7H�	�	�	�	�	�	�	�	�*�K��9J�	�	�	�8(�8(�8(�8(�8(��"�8(�8(�8(�v����d�"�$?�@�@�|�|�|�|�|�|�|�A�@�|�~]+�]+�]+�]+�]+�/�8�#4�]+�]+�]+�@@B�@B�@B�@B�@B�O�X�%6�@B�@B�@B�D���S�\�X�-�/K�L�L�S�S�S�S�S�(�+�S�S�M�L�S�<�z����H�M�O�O�O�O�O��s�;�A�A