Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/datetimetester.cpython-312.opt-1.pyc

�

&Μg����dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZmZmZmZmZmZmZmZmZddlmZddlmZmZmZmZddl Z!ddl m"Z"m#Z#ddl m$Z$dd	l m%Z%dd
l m&Z&ddl m'Z'ddl m(Z(dd
l m)Z)m Z ddl&Z*	ddl+Z+ddl-Z-	ddl.Z.ej^ej`hZ1e2ejfdz�D�cgc]}ee|f��	c}Z4e ddddd�Z5dddigdfZ6e7d�Z8e7d�Z9Gd�dejt�Z;Gd�de%�Z<Gd�de<�Z=Gd�de=�Z>Gd�de%�Z?Gd �d!ejt�Z@Gd"�d#ejt�ZAGd$�d%�ZBGd&�d'eBejt�ZCGd(�d)ejt�ZDGd*�d+e)�ZEGd,�d-eBejt�ZFGd.�d/e �ZGGd0�d1eF�ZHGd2�d3eH�ZIGd4�d5e&�ZJGd6�d7eBejt�ZKGd8�d9�ZLGd:�d;eKeLejt�ZMGd<�d=eHeLejt�ZNd>�ZOe$d�ZPe$d�?�ZQe$d�@�ZRe$d�A�ZSe ddBddC�ZTe dddDd�ZUGdE�dFe%�ZVeVdGdHdIdJ�ZWeVdKdLdMdN�ZXeVdOdPdQdR�ZYeVdSdTdUdV�ZZe<ddWd�Z[e<dXdYd�Z\GdZ�d[ejt�Z]Gd\�d]ejt�Z^Gd^�d_e%�Z_Gd`�dae_�Z`e`dGdbdIdJ�Zae`dKdcdMdN�Zbe`dOdddQdR�Zce`dSdedUdV�ZdGdf�dge%�ZeGdh�diejt�Zfe$dd�Zgdj�ZhGdk�dle%�ZiGdm�dnejt�ZjGdo�dpej��ZlGdq�drej�Zmej�e+duds�Gdt�duejt��Zodv�Zpeqdwk(rej��yy#e,$rdZ+Y��WwxYw#e,$rY��ZwxYwcc}w)xzUTest date/time type.

See https://www.zope.dev/Members/fdrake/DateTimeWiki/TestCases
�N)�array)	�lt�le�gt�ge�eq�ne�truediv�floordiv�mod)�support)�is_resource_enabled�	ALWAYS_EQ�LARGEST�SMALLEST)�MINYEAR�MAXYEAR��	timedelta��tzinfo)�time)�timezone)�UTC)�date�datetime���
g@A@�abc��inf�nanc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�
TestModulec��t}|j|jd�|j|jd�y)Nr�')�datetime_module�assertEqualrr)�selfrs  �0/usr/local/lib/python3.12/test/datetimetester.py�test_constantszTestModule.test_constantsGs3��"������)�)�1�-�����)�)�4�0�c�L�|jttj�y�N)�assertIsrr�utc�r*s r+�test_utc_aliaszTestModule.test_utc_aliasLs���
�
�c�8�<�<�(r-c�p�tt�}tjD]}|j||��y)z2Test that __all__ only points to valid attributes.N)�dirr(�__all__�assertIn)r*�	all_attrs�attrs   r+�test_allzTestModule.test_allOs*����(�	�#�+�+�D��M�M�$�	�*�,r-c���d|jjvr|jd�t}t	d�t|�D��}t	gd��}|j
||z
t	g��y)N�_Purez"Only run for Fast C implementationc3�dK�|](}|jd�s|jd�s|���*y�w)�__N)�
startswith�endswith)�.0�names  r+�	<genexpr>z/TestModule.test_name_cleanup.<locals>.<genexpr>Zs.����N�]�T��?�?�4�0����t�9L��]�s�.0)rrrr�
datetime_CAPIrrrrr�sys)�	__class__�__name__�skipTestr(�setr5r))r*r�names�alloweds    r+�test_name_cleanupzTestModule.test_name_cleanupUsl���d�n�n�-�-�-��M�M�>�?�"���N�S��]�N�N���/�0��	
������#�b�'�2r-c�2�d|jjvr|jd�tj}|j|dd�d�|j|dd�d�|j|dd�d	�|j|d
d�d�|j|dd�d�|j|d
d�d	�|j|dd�d	�|j|dd�d�|j|dd
�d�|j|dd
�d	�|j|dd�d	�|j|dd�d�|j|dd
�d�|j|dd
�d	�y)N�_Fastz'Only run for Pure Python implementation����������������r��������)rFrGrH�_pydatetime�_divide_and_roundr))r*�dars  r+�test_divide_and_roundz TestModule.test_divide_and_roundasd���d�n�n�-�-�-��M�M�C�D��+�+������S�"��q�)�����Q���R�(�	
����Q���A�&�����R���R�(�����Q���R�(�����R���a�(�	
����R���Q�'�����S�!��b�)�����R���b�)�����S�"��q�)�����Q���A�&�����R���R�(�����Q���R�(�����R���a�(r-N)rG�
__module__�__qualname__r,r3r:rLr^r!r-r+r%r%Es��1�
)�+�
3�)r-r%c�,�eZdZdd�Zd�Zd�Zd�Zd�Zy)�FixedOffsetc��t|t�rt|��}t|t�rt|��}||_||_||_y�N��minutes)�
isinstance�intr�_FixedOffset__offset�_FixedOffset__name�_FixedOffset__dstoffset�r*�offsetrB�	dstoffsets    r+�__init__zFixedOffset.__init__�s@���f�c�"��v�.�F��i��%�!�)�4�I���
����$��r-c�6�|jj�Sr/)rj�lowerr2s r+�__repr__zFixedOffset.__repr__�s���{�{� � �"�"r-c��|jSr/)ri�r*�dts  r+�	utcoffsetzFixedOffset.utcoffset�����}�}�r-c��|jSr/)rjrts  r+�tznamezFixedOffset.tzname�s���{�{�r-c��|jSr/)rkrts  r+�dstzFixedOffset.dst�s�����r-N��*)rGr_r`rorrrvryr{r!r-r+rbrb�s��%�#��� r-rbc��eZdZdd�Zy)�PicklableFixedOffsetNc�4�tj||||�yr/)rbrorls    r+rozPicklableFixedOffset.__init__�s�����T�6�4��;r-)NNN�rGr_r`ror!r-r+rr�s��<r-rc��eZdZdZy)�PicklableFixedOffsetWithSlots)rirj�spamN)rGr_r`�	__slots__r!r-r+r�r��s��D�Ir-r�c��eZdZd�Zy)�_TZInfoc�*�tj�Sr/)�random)r*r(s  r+rvz_TZInfo.utcoffset�s���}�}��r-N�rGr_r`rvr!r-r+r�r��s��r-r�c�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�
TestTZInfoc
��t�}tddddddd|�}|jt�5|j	�ddd�y#1swYyxYw)N��rT��� rQr)r�r�assertRaises�	TypeErrorrv)r*�tz1�dt1s   r+�test_refcnt_crash_bug_22044z&TestTZInfo.test_refcnt_crash_bug_22044�sD���i���t�Q��B��A�q�#�6��
�
�
�y�
)��M�M�O�*�
)�
)�s�A�Ac��t�}tj}|jt|j
|�|jt|j|�|jt|j|�yr/)rr�maxr��NotImplementedErrorryrvr{)r*�uselessrus   r+�test_non_abstractnessz TestTZInfo.test_non_abstractness�s[���(��
�\�\�����-�w�~�~�r�B����-�w�/@�/@�"�E����-�w�{�{�B�?r-c��Gd�dt�}|jt|t��|dd�}|j|t�t	j
�}|j
t|j|�|j
t|j|�|j
t|j|�y)Nc��eZdZd�Zy)�9TestTZInfo.test_subclass_must_override.<locals>.NotEnoughc� �||_||_yr/)�_NotEnough__offset�_NotEnough__name)r*rmrBs   r+rozBTestTZInfo.test_subclass_must_override.<locals>.NotEnough.__init__�s�� &��
�"��r-Nr�r!r-r+�	NotEnoughr��s��
#r-r�rQ�NotByALongShot)r�
assertTrue�
issubclass�assertIsInstancer�nowr�r�ryrvr{)r*r�r	rus    r+�test_subclass_must_overridez&TestTZInfo.test_subclass_must_override�s���	#��	#�	
���
�9�f�5�6�
�q�*�
+�����b�&�)�
�\�\�^�����-�r�y�y�"�=����-�r�|�|�R�@����-�r�v�v�r�:r-c�l�tdd�}|j|t�tj�dfD]y}|j|j
|�td���|j|j|�d�|j|j|�td����{y)NrQ�Threerer})
rbr�rrr�r)rvrryr{)r*�forus   r+�test_normalzTestTZInfo.test_normal�s���
��G�
$�����b�&�)��,�,�.�$�&�B����R�\�\�"�-�y��/C�D����R�Y�Y�r�]�G�4����R�V�V�B�Z��2�)>�?�'r-c��tjt�}|jt|�t�tD]H\}}}|j||�}|j
|�}|jt|�t��Jyr/)r�__new__r0�type�pickle_choices�dumps�loads)r*�orig�pickler�	unpickler�proto�green�deriveds       r+�test_pickling_basezTestTZInfo.test_pickling_base�se���~�~�f�%���
�
�d�4�j�&�)�)7�%�G�Y���M�M�$��.�E��o�o�e�,�G��M�M�$�w�-��0�*8r-c��td��}t|dfft|dfft|fft|dfffD�]O\}}||�}|j	d�}|j|t�|jt|�|�|j|jd�|�|j|j	d�|�tD]�\}}}|j||�}	|j|	�}
|j|
t�|jt|
�|�|j|
jd�|�|j|
j	d�|�|jt|
d������Ry)N����re�cookie�ESTr�)rrr�rryr�rr0r�r)rvr�r�r��assertFalse�hasattr)r*rm�otype�argsr��onamer�r�r�r�r�s           r+�test_pickling_subclassz!TestTZInfo.test_pickling_subclass�sS���4�(��
!�F�H�#5�6�
*�V�X�,>�?�
��y�!�
����'�	)�K�E�4�
�$�<�D��K�K��%�E��!�!�$��/��M�M�$�t�*�e�,����T�^�^�D�1�6�:����T�[�[��.��6�-;�)���E��
�
�d�E�2��#�/�/�%�0���%�%�g�v�6��
�
�d�7�m�U�3�� � ��!2�!2�4�!8�&�A�� � �����!5�u�=�� � ���&�!9�:�.<�)r-c�����td��x��G��fd�dt�}|�}tddddd|�	�}|j|�}|j	||j�z
|�y)
Nr��hoursc�,��eZdZdZ�fd�Z�fd�Zd�Zy)�0TestTZInfo.test_issue23600.<locals>.UKSummerTimez~Simple time zone which pretends to always be in summer time, since
                that's what shows the failure.
            c����Sr/r!)r*ru�	DSTOFFSETs  �r+rvz:TestTZInfo.test_issue23600.<locals>.UKSummerTime.utcoffset�s	��� � r-c����Sr/r!)r*ru�DSTDIFFs  �r+r{z4TestTZInfo.test_issue23600.<locals>.UKSummerTime.dst�s����r-c��y)N�UKSummerTimer!rts  r+ryz7TestTZInfo.test_issue23600.<locals>.UKSummerTime.tzname�s��%r-N)rGr_r`�__doc__rvr{ry)r�r�s��r+r�r��s���
�
!�
�
&r-r�r�rW��r)rrr�fromutcr)rv)r*r��tz�u�tr�r�s     @@r+�test_issue23600zTestTZInfo.test_issue23600�sc���'�a�0�0��)�	&�6�	&��^���T�1�b�"�a��3���J�J�q�M������Q�[�[�]�*�A�.r-N)
rGr_r`r�r�r�r�r�r�r�r!r-r+r�r��s'���@�;�@�	1�;�./r-r�c�r�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zy)�TestTimeZonec��ttd��d�|_ttd��d�|_t	ddd�|_y)N�#@r��ACDTrRr���r)rrr�r�r�DTr2s r+�setUpzTestTimeZone.setUps;���Y�S�1�6�:��	��Y�Q�/�/��7����4��A�&��r-c���|j|jtjtjtj
fD],}|j
t|�|jd���.yr/)	r�r�rr1�minr�r)�strry�r*r�s  r+�test_strzTestTimeZone.test_strsJ���9�9�d�h�h�����<�<����/�B����S��W�b�i�i��o�6�/r-c���t}|j|jtjtj
tjfD](}t|�}|j|t|���*yr/)
r(r�r�rr1r�r��reprr)�eval)r*rr��tzreps    r+�	test_reprzTestTimeZone.test_reprsR��"���9�9�d�h�h�����<�<����/�B���H�E����R��e��-�	/r-c�B�tdd��}|jtjj	d�t
�|jtjj	d�|�|jtjj	d�|�y)N��;�r�rf)rr)rr1rv�ZEROr�r�)r*�limits  r+�test_class_memberszTestTimeZone.test_class_memberssm����B�/��������/�/��5�t�<�������/�/��5��v�>�������/�/��5�u�=r-c��|jtjttd���|j	tjttd�d��|jtjttd�d��td��td��fD];}t|�}|j
|jd�td��zd��=tdd�td�fD]9}|jtt|�|jtt|��;|jt�5td�ddd�|jt�5td�ddd�|jt�5ttd�ddd�|jt�5ttd�ddd�|jt�5ttdd	�ddd�y#1swY��xYw#1swY��xYw#1swY�xYw#1swY�]xYw#1swYyxYw)
Nrrr��microseconds��secondsrer}�ABC�extra)r0rr1r�assertIsNotr)�assertNotEqualrvr��
ValueErrorr�r�)r*�	subminuter��invalids    r+�test_constructorzTestTimeZone.test_constructors����
�
�h�l�l�H�Y�q�\�$:�;�������x�	�!��e�'D�E�������x�	�!��e�'D�E�#��3�Y�q�5I�J�I��)�$�B�������T� 2�Y�q�5I� I�1�M�K�"�!�Q���1��6�G����j�(�G�<����j�(�W�H�=�7��
�
�y�
)�8�D�>�
)�
�
�
�y�
)�8�B�<�
)�
�
�
�y�
)�8�D�$�+?�
)�
�
�
�y�
)�8�D�"�+=�
)�
�
�
�y�
)�8�D�%��+I�
)�
)�	*�
)��
)�
)��
)�
)��
)�
)��
)�
)�s<�H �H,�)H8�I�I� H)�,H5�8I�I
�Ic��|jtjt�|j|jt�yr/)r�rr1rr�r2s r+�test_inheritancezTestTimeZone.test_inheritance,s*�����h�l�l�F�3����d�h�h��/r-c��|j}dD]a}|tz}|j|t|�j	|��|j|t|�j	|���c|jt�5|jj	d�ddd�|jt�5|jj	d�ddd�y#1swY�CxYw#1swYyxYw)N)rg�?r��rR)r��HOURr)rrvr�r�r�)r*�dummy�hrms    r+�test_utcoffsetzTestTimeZone.test_utcoffset0s��������A���X�F����V�X�f�%5�%?�%?��%F�G����f�W�h��w�&7�&A�&A�%�&H�I��
�
�
�y�
)�4�8�8�+=�+=�b�+A�
)�
�
�
�y�
)�4�8�8�+=�+=�a�+@�
)�
)�*�
)��
)�
)�s�C&�C2�&C/�2C;c��|jtjj|j��|jt�5|jjd�ddd�|jt�5|jjd�ddd�y#1swY�CxYw#1swYyxYw)NrrR)�assertIsNonerr1r{r�r�r�r�r2s r+�test_dstzTestTimeZone.test_dst;su�����(�,�,�*�*�4�7�7�3�4�
�
�
�y�
)�4�8�8�<�<��+;�
)�
�
�
�y�
)�4�8�8�<�<��?�
)�
)�*�
)��
)�
)�s�B,�B8�,B5�8Cc
��|jdtjjd��|jdt	jd��|jdtt
�jd��|jdtdtz�jd��|jdtdtz�jd��|jdttd���jd��|jd	tdtzd	�jd��|jd
tt
d
�jd��|jdttdd
��jd��|jdttdd
��jd��|jdttdd
d��jd��|jdttdd
d��jd��|jt�5|jjd�ddd�|jt�5|jjd�ddd�y#1swY�CxYw#1swYyxYw)Nrz	UTC-05:00���z	UTC+09:30r�z	UTC-00:01���re�XYZ��zUTC+01:06:40r�zUTC-01:06:40zUTC+01:06:40.000001rzUTC-01:06:40.000001rrR)r)rr1ryrr�rrr�r�r�r2s r+�test_tznamezTestTimeZone.test_tznameAs��������� 3� 3�D� 9�:������
�
�4� 0�1�������� 5� 5�d� ;�<�����h�r�D�y�&9�&@�&@��&F�G�����h�s�T�z�&:�&A�&A�$�&G�H�����h�y��/D�&E�&L�&L�T�&R�S�������d��E� :� A� A�$� G�H�����8�D�(�#;�#B�#B�4�#H�I�	
�����)�A�t�2D�)E�)L�)L�T�)R�S�����!�9�Q��#5�"5�6�=�=�d�C�	E����.�!�)�A�t�Q�"7�8�?�?��E�	G����.�!�9�Q��a�#8�"8�9�@�@��F�	H��
�
�y�
)�4�8�8�?�?�2�+>�
)�
�
�
�y�
)�4�8�8�?�?�1�+=�
)�
)�*�
)��
)�
)�s�#K�K
�K
�
Kc��|jt�5tjj	|j
�ddd�|jt�5tjj	d�ddd�|j|jtfD]�}|j
j|��}|j	|�}|j||z
|j|��|j||j
jtj�����y#1swY��xYw#1swY��xYw)Nznot datetimer)
r�r�rr1r�r�r�r�r��Eastern�replacer)rv)r*r��utctime�locals    r+�test_fromutczTestTimeZone.test_fromutcXs���
�
�
�z�
*��L�L� � ����)�+�
�
�
�y�
)��L�L� � ��0�*��8�8�T�Y�Y��0�B��g�g�o�o�R�o�0�G��J�J�w�'�E����U�W�_�b�l�l�5�.A�B����U�!�W�W�_�_�H�L�L�_�A�
C�	1�	+�
*��
)�
)�s�*D3� D?�3D<�?Ec��|jtt�tt��|j	tt�tt��|j	tdtz�tdtzd��|jt�5tt�tt�kddd�|jtt�tt�h�|jtt�dk7�|jtt�dk(�tt�}|j|tk(�|j|tk7�|j|tk�|j|tkD�|j|tk�|j|tk\�|j|tk�|j|tkD�|j|tk�|j|tk\�y#1swY��yxYw)Nr	r�)
r�rr�rr)r�r�r7r�r�rrrr�s  r+�test_comparisonzTestTimeZone.test_comparisondsw�����H�T�N�H�T�N�;�����$���$��8�����"�t�)�,�h�r�D�y�%�.H�I�
�
�
�y�
)�8�D�>�H�T�N�+J�
)��
�
�h�t�n�x��~�&6�7�������$�.�/�����$��4�/�0�
�d�^������i��(�����y��)�����W��%�����g��&�����g�
�&�����w��'�����h��'�����X�
�&�����x��(�����h��'�*�
)�s�! H8�8Ic��tddd�}tjtjtjfD]�}|j|j
|�|j|��j
��|j|j|�|j|��j��|j|j|�|j|��j����y)Nrr)
rrr�r�r1r)ryrrvr{�r*r�r�s   r+�test_aware_datetimez TestTimeZone.test_aware_datetimeys����Q��1����<�<����x�|�|�<�B����R�Y�Y�q�\��Y�Y�b�Y�1�8�8�:�
<����R�\�\�!�_��Y�Y�b�Y�1�;�;�=�
?����R�V�V�A�Y��Y�Y�b�Y�1�5�5�7�
9�=r-c��|j|jtjtjfD]D}t
D]9\}}}|j
|j||��}|j||��;�Ftj}t
D]9\}}}|j
|j||��}|j||��;yr/)r�r�rr�r�r�r�r�r)r1r0)r*r�r�r�r��tz_copys      r+�test_picklezTestTimeZone.test_pickle�s����)�)�T�X�X�x�|�|�X�\�\�A�B�-;�)���E�#�/�/�'�-�-��E�*B�C��� � ��"�-�.<�B��\�\��)7�%�G�Y���o�o�g�m�m�B��&>�?�G��M�M�'�2�&�*8r-c�6�|j|jtjtjfD])}tj
|�}|j
||��+tj}tj
|�}|j||�yr/)	r�r�rr�r��copyr)r1r0�r*r�rs   r+�	test_copyzTestTimeZone.test_copy�si���)�)�T�X�X�x�|�|�X�\�\�A�B��i�i��m�G����W�b�)�B��\�\���)�)�B�-���
�
�g�r�"r-c�6�|j|jtjtjfD])}tj|�}|j||��+tj}tj|�}|j||�yr/)
r�r�rr�r�r�deepcopyr)r1r0rs   r+�
test_deepcopyzTestTimeZone.test_deepcopy�sk���)�)�T�X�X�x�|�|�X�\�\�A�B��m�m�B�'�G����W�b�)�B��\�\���-�-��#���
�
�g�r�"r-c�X�tdd��tddd��tdddd��g}|j|D�cgc]}|��c}�|D])}|jd|��5t|�ddd��+td	�
�td	d��g}|j|D�cgc]}|��c}�|D]G}|jd
|��5|j	t
�5t|�ddd�ddd��Iycc}w#1swY��xYwcc}w#1swY�*xYw#1swY�vxYw)Nr�r�r��r�rfr��?B�r�rfr�r��good)�	test_type�delta�r�r)r�r��bad)r�extend�subTestrr�r�)r*�time_deltasr*�bad_time_deltass    r+�test_offset_boundariesz#TestTimeZone.test_offset_boundaries�s��
�B��+��B��B�7��B��B�V�L�
��
	����<��u�U�F��<�=� �E�����e��<����=�<�!�
�B���B�Q�/�
��	���O�D�O�5���O�D�E�$�E�����U��;��&�&�z�2��U�O�3�<�;�%��=�=�<�� E�3�2��<�;�s;�
C>�"D� 
D�	D �D�+D �D	�D�D � D)	c��|jtjt��|jtt	d���t��y)Nrr�)r�rr1rrr2s r+�test_comparison_with_tzinfoz(TestTimeZone.test_comparison_with_tzinfo�s6��	
���H�L�L�&�(�3����H�Y�Q�%7�8�&�(�Cr-N)rGr_r`r�r�r�r�r�r�rrrrrrrr r#r1r3r!r-r+r�r�s[��'�
7�
.�>�J�$0�A�;�>�.
C�(�*	9�'�#�#�$�2Dr-r�c��eZdZd�Zd�Zy)�HarmlessMixedComparisonc��|jddd�}|j|dk(�|j|dk7�|jd|k(�|jd|k7�|j|ddg|g�|jg|ddgg�|j|tk(�|j|tk7�|j|t
k�|j|t
kD�|j|t
k�|j|t
k\�|j|tk�|j|tkD�|j|tk�|j|tk\�y)Nrr!�)�theclassr�r�r7rrr�r*�mes  r+�test_harmless_mixed_comparisonz6HarmlessMixedComparison.test_harmless_mixed_comparison�s2��
�]�]�1�a��
#������r��"�����b��!�����r��"�����b��!��
�
�b�1�b�"�b�/�*��
�
�b�2�q�"�b�/�*�	
����i��(�����y��)�	
����W��%�����g��&�����g�
�&�����w��'�����h��'�����X�
�&�����x��(�����h��'r-c���|jddd��|jt�fd��|jt�fd��|jt�fd��|jt�fd��|jt�fd��|jt�fd��|jt�fd��|jt�fd	��y)
Nrc����dkS�Nr!r!�r:s�r+�<lambda>zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>��	���R�"�Wr-c����dkSr>r!r?s�r+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>��	���R�2�Xr-c����dkDSr>r!r?s�r+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>�rAr-c����dk\Sr>r!r?s�r+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>�rCr-c���d�kSr>r!r?s�r+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>�rAr-c���d�kSr>r!r?s�r+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>�rCr-c���d�kDSr>r!r?s�r+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>�rAr-c���d�k\Sr>r!r?s�r+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>�rCr-)r8r�r�r9s @r+�test_harmful_mixed_comparisonz5HarmlessMixedComparison.test_harmful_mixed_comparison�s����
�]�]�1�a��
#�����)�_�5����)�%5�6����)�_�5����)�%5�6����)�_�5����)�%5�6����)�_�5����)�%5�6r-N)rGr_r`r;rJr!r-r+r5r5�s��(�:7r-r5c���eZdZeZd�Zd�Zd�Zejd��Z
d�Zd�Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zejd��Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!y)�
TestTimeDeltac��|j}t}||�|ddddddd���||d�|d���||dd�|d���||ddd�|d���||d��|d���||d��|d	�
��||d�
�|d���||d��|d���||d��|d
���||d��|d
���||d��|d���||d��|d�
��||d�
�|d���||d��|d���||d��|d���||d��|d���y)Nr)�weeks�daysr�rfr��millisecondsr�r�rOr�r��rNrTr+r��<re���rPg�$I�$I�?gUUUUUU�?g�?g����MbP?)r)r)r*r�tds   r+r�zTestTimeDelta.test_constructor�sV��
�
�
��
��	�2�4��!�!�1�a��!"��4�	5�
�2�a�5�"�!�*��
�2�a��8�R��]�#�
�2�a��A�;���*�+�
�2�A�;���
�#�
�2�1�:�r��|�$�
�2�A�;��2��'�
�2�a�=�"�R�.�)�
�2�a�=�"�$�/�0�
�2�1��r�t�4�5�	�2�E�?�B�A�J�'�
�2�6�?�B�Q�K�(�
�2�F��R��]�+�
�2�f��r�!�}�-�
�2�e��b�a�0�1�
�2�5�!�2�1�#5�6r-c�	�|j}t}|d�}|dd�}|ddd�}|||z|z|ddd��|||z
|dd��||j|�|dd��|||d��||�|d��|||dd��|||dd	d
��|t|�|�|t|�|�||dd�|�||ddd�|�||d
z|d��||d
zd
|z�||d
zd
|z�||d
z|dd��|d
|z|dd��||d
z|dd��||d
z|ddd��|d
|z|ddd��||d
z|ddd��||dz|�||dz||z
�||dz||z�||dz|dzdz�||dzd|zdz�||dz|dd��|d|z|dd��||dz|d��||d
z|dd��||dz|ddd��||d
z|dd��||dz|ddd��||dz|d��||dz|dd��||dz|d��||d
z|dd��||dz|ddd��||d
z|dd��||dz|ddd��|d��}|d|zdzd|z�|d|zdzd|z�|dd|zzd|z�|dd|zzd|z�|d|zdzd|z�|d |zdzd|z�||d�!�d"z|d#���||d�!�d$z|d%���|d|zdzd|z�|d|zdzd|z�|d|zd&zd|z�|d |zd&zd|z�|d|zdzd|z�|d|zdzd|z�|d|zd'zd|z�|d|zd'zd|z�t	d(d
�D] }|||zdz|zt|dz���"t	d(d
�D] }|||zdz|zt|dz���"||d�!�d)z|d%���||d*d	d+�|d*d	d,�z
|ddd��||d*dd�|d*dd�z
|ddd��y)-NrTrrSrTrYiDQrVr
�Q�X>�Qi��r�FiX�'rS�r+ri@�i��6i@���?��xr�rQrUrRrPr	r�翶~�Ϛ�?�@�g�6+1��?i�S	g@g�rOg`""K?-�?�ɚ;r&�>B)r)r�__rsub__�abs�range�round)r*rrV�a�b�c�us�is        r+�test_computationszTestTimeDelta.test_computationsss��
�
�
��
���q�E���q�"�I���q�!�T�N��
�1�Q�3�q�5�"�Q��D�/�"�
�1�Q�3��1�l�#�$�
�1�:�:�a�=�"�Q��-�.�
�A�2�r�"�v��
�A�2�r�!�u�
�
�A�2�r�"�l�#�$�
�A�2�r�"�k�6�*�+�
�3�q�6�1�
�
�3��r�7�A��
�2�a��>�1��
�2�a��J���#�
�1�R�4��B���
�1�R�4��A���
�1�R�4��A���
�1�R�4��A�s���
�2�a�4��A�s���
�1�R�4��A�s���
�1�R�4��A�q�%��!�
�2�a�4��A�q�%��!�
�1�R�4��A�q�%��!�
�1�R�4�!���
�1�R�4�!��A���
�1�R�4�!��Q�B���
�1�e�9�q��t�R�i� �
�1�e�9�r�!�t�R�i� �
�1�T�6�2�a��8��
�4��6�2�a��8��
�1�a�4��A���
�1�b�5�"�Q��(��
�1�d�7�B�q�!�Q�K� �
�1�b�5�"�Q��/�"�
�1�g�:�r�!�Q�	�*�+�
�1�S�5�"�R�&��
�1�S�5�"�Q��*��
�1�Q�3��1���
�1�R�4��A�q���
�1�T�6�2�a��A�;��
�1�R�4��A�x��!�
�1�W�9�b��A�y�)�*��Q�
��
�A�b�D�C�<��2���
�A�b�D�C�<��2���
�3�!�B�$�<��2���
�3�!�B�$�<��2���
�B�r�E�S�=�"�R�%� �
�B�r�E�S�=�"�R�%� �	�2�a�=�8�#�R�V�%<�=�
�2�a�=�9�$�b�f�&=�>�	�A�b�D�A�:�q��t��
�A�b�D�A�:�q��t��
�B�r�E�S�=�"�R�%� �
�B�r�E�S�=�"�R�%� �
�A�b�D�B�;��2���
�A�b�D�B�;��2���
�A�b�D�D�=�"�R�%� �
�A�b�D�D�=�"�R�%� ��s�B��A���"��Q���|�U�1�Q�3�Z�(� ��s�B��A���"��R��"�}�e�A�b�D�k�*� �	�2�a�=�M�*�B�F�,C�D�	�2�i���'�"�Y��v�*F�F�
�a��A�;�	�
�2�i��A���I�q�!�!4�4�
�a��A�;�	r-c�����td��dD]j�|jt��fd��|jt��fd��|jt��fd��|jt��fd���ld�|jt��fd��|jt��fd	��|jt��fd
��|jt�fd��|jt�fd��y)
Nr}�r��?c�����zSr/r!�rirms��r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>i�	����1�r-c�����z
Sr/r!rss��r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>jrtr-c�����zSr/r!rss��r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>krtr-c�����z
Sr/r!rss��r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>lrtr-rc�����zSr/r!�ri�zeros��r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>qs	���T�Q�Yr-c�����zSr/r!rys��r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>rs	���Q�$�Yr-c�����zSr/r!rys��r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>ss	���Q��Xr-c����dzS)N�r!�ris�r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>ts	���Q��Wr-c����dzS)Nrr!rs�r+r@z<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>us	���Q��Vr-)rr�r��ZeroDivisionError)r*rirmrzs @@@r+�test_disallowed_computationsz*TestTimeDelta.test_disallowed_computationsds�����b�M���A����i��5����i��5����i��5����i��5�	������)�%6�7����+�->�?����+�-=�>����+�_�=����)�^�4r-c��td�}|jt|jt�|jt|j
t�y)Nr})rr�r��__mul__�NAN�__truediv__)r*ris  r+�test_disallowed_specialz%TestTimeDelta.test_disallowed_specialws7���b�M�����*�a�i�i��5����*�a�m�m�S�9r-c���d\}}}t|||�}|j|j|�|j|j|�|j|j|�y)N)rrT��rr)rOr�r�)r*rOr�rlrVs     r+�test_basic_attributesz#TestTimeDelta.test_basic_attributes}sX��$���g�r�
�t�W�b�
)��������$�'�������W�-�������"�-r-c�B�td��}|j|j�d�dD].}t|��}|j|j�|��0dD];}t|��}|j|j�|td��z��=y)	N�mrQg8~A)g˟$�@g˟$��rarg��.Ar�)r
rSi����r�r)rr)�
total_seconds)r*rVr��mss    r+�test_total_secondsz TestTimeDelta.test_total_seconds�s���
�C�
 ������)�)�+�Z�8�N�M��=�1�B����R�-�-�/��?�O�
!�B���+�B����R�-�-�/��i��6J�1J�K�!r-c�b�tdddddd��}td�	�}|j||�y)
N�drV�8���rPr�g��A�rOrNr�rfr�r�rr�)rr)�r*�t1�t2s   r+�test_carrieszTestTimeDelta.test_carries�s9��
�C��)�!�!�$9�;���A�
&������R� r-c��tdddddd��}t�}|jt|�t|��|td�	�z
}|td
��z
}|j||�|jt|�t|��|di}d
||<|jt|�d�|j||d
�y)Nr�rVr�rPr�iz
r�rTrR�1rQrrU)rr)�hash�len)r*r�r��ds    r+�test_hash_equalityz TestTimeDelta.test_hash_equality�s���
�C��)�!�!�$9�;���[������b��4��8�,�
�i�a� � ��
�i�S�!�!������R� �����b��4��8�,�
��G����"������Q���#�����2���"r-c��d}t|�}tD];\}}}|j||�}|j|�}|j	||��=y)N)r��"�8)rr�r�r�r)�r*r�r�r�r�r�r�r�s        r+�
test_picklingzTestTimeDelta.test_pickling�sP�����$���)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+�*8r-c����tddd��tddd�}|j�|�|j�|k�|j�|k\�|j�|k7�|j�|k�|j�|kD�dD]�}t|�}|j�|k�|j|�kD�|j�|k�|j|�k\�|j�|k7�|j|�k7�|j�|k(�|j|�k(�|j�|kD�|j|�k�|j�|k\�|j|�k���tD�]'�|j��k(d�|j��k7d�|j��k(d�|j��k7d�|jt��fd��|jt��fd��|jt��fd	��|jt��fd
��|jt��fd��|jt��fd��|jt��fd
��|jt��fd����*y)NrUrQrW�)rQrQrQ)rUrWrW)rUrQrRFTc�����kSr/r!��badargr�s��r+r@z,TestTimeDelta.test_compare.<locals>.<lambda>��	����v�r-c�����kSr/r!r�s��r+r@z,TestTimeDelta.test_compare.<locals>.<lambda>��	����f�r-c�����kDSr/r!r�s��r+r@z,TestTimeDelta.test_compare.<locals>.<lambda>�r�r-c�����k\Sr/r!r�s��r+r@z,TestTimeDelta.test_compare.<locals>.<lambda>�r�r-c�����kSr/r!r�s��r+r@z,TestTimeDelta.test_compare.<locals>.<lambda>��	����2�r-c�����kSr/r!r�s��r+r@z,TestTimeDelta.test_compare.<locals>.<lambda>��	����"�r-c�����kDSr/r!r�s��r+r@z,TestTimeDelta.test_compare.<locals>.<lambda>�r�r-c�����k\Sr/r!r�s��r+r@z,TestTimeDelta.test_compare.<locals>.<lambda>�r�r-)rr)r�r��
OTHERSTUFFr�r��r*r�r�r�r�s   @@r+�test_comparezTestTimeDelta.test_compare�sK���
�q�!�Q�
��
�q�!�Q�
������R� �����b��!�����b��!�����r��"�����b��!�����b��!�3�D��D�!�B��O�O�B��G�$��O�O�B��G�$��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%����R�2�X�&����R�2�X�&����R�"�W�%����R�"�W�%����R�2�X�&����R�2�X�&�4�!�j�F����R�6�\�5�1����R�6�\�4�0����V�r�\�5�1����V�r�\�4�0����i�)=�>����i�)<�=����i�)<�=����i�)=�>����i�)=�>����i�)<�=����i�)<�=����i�)=�>�!r-c�*�t}|j}|t|d��d�|t|d��d�|t|d��d�|t|d��d�|t|d	d
d���d
�|t|ddd���d�|t|ddd	d���d�|t|d���d�|t|d���d�|t|ddddd���d�y)Nrz1 day, 0:00:00r
z-1 day, 0:00:00rUz2 days, 0:00:00rSz-2 days, 0:00:00r��:r�r%z12:58:59rQrWz2:03:04i��r�r�)rNr�rfr�z-210 days, 23:12:34rUz0:00:00.001000r�z0:00:00.000003rcr&�rOr�rfr�r�z999999999 days, 23:59:59.999999)rr)r�)r*rVrs   r+r�zTestTimeDelta.test_str�s���
��
�
�
��
�3�r�!�u�:�'�(�
�3�r�"�v�;�)�*�
�3�r�!�u�:�(�)�
�3�r�"�v�;�*�+�
�3�r��B��3�4�j�A�
�3�r��1�a�0�1�9�=�
�3�r��2�r�2�>�?� �	"�	�3�r�q�!�"�$4�5�
�3�r�q�!�"�$4�5�
�3�r�y��B�� &�(�)�,�	.r-c	��d|jjz}|jt|jd��d|z�|jt|jdd��d|z�|jt|jddd��d	|z�|jt|jd
���d|z�|jt|j��d
|z�|jt|jd���d|z�|jt|jdd���d|z�|jt|jdd���d|z�y)N�	datetime.rz
%s(days=1)rrUz%s(days=10, seconds=2)rO�z,%s(days=-10, seconds=2, microseconds=400000)rSr�z%s(seconds=60)z%s(0)r�r�z%s(microseconds=100))rOr�z%s(days=1, microseconds=100))r�r�z%s(seconds=1, microseconds=100)�r8rGr)r��r*rBs  r+r�zTestTimeDelta.test_repr�sW���T�]�]�3�3�3������d�m�m�A�.�/�%��,�	.�����d�m�m�B��2�3�1�D�8�	:�����d�m�m�C��F�;�<�G�$�N�	P�����d�m�m�B�m�7�8�)�D�0�	2�����d�m�m�o�.� �4��	)�����d�m�m��m�=�>�/�$�6�	8�����d�m�m���m�E�F�7�$�>�	@�����d�m�m�A�C�m�H�I�:�T�A�	Cr-c��tddddd��td��tdd�	�tdd
d��fD]�}t|�}|j|jd
��|dd}t	|�}|j||�t|j|j|j�}|j||���y)Nrcr�r�r&r��6e�rQr�rOr�rUrQ�rOr�r�r��	)	rr�r�r?r�r)rOr�r�)r*rV�s�td2s    r+�test_roundtripzTestTimeDelta.test_roundtrips����)�2�r�%'�f�>��*�-��*�a�8��!�Q�Q�?�	A�B��R��A��O�O�A�L�L��5�6��!�"��A��q�'�C����R��%��B�G�G�R�Z�Z����A�C����R��%�Ar-c�:�|jtjt�|jtjt�|jtjt�|jtjtjkD�|j
tjtd��|j
tjtddd��|j
tjtddd��y)Nr�rcrXg~�.Arr)r�rr�r��
resolutionr�r)r2s r+�test_resolution_infoz"TestTimeDelta.test_resolution_infos������i�m�m�Y�7����i�m�m�Y�7����i�2�2�I�>����	�
�
�	�
�
�5�6�������	�*�(=�>�������	�)�Y��(N�O�����-�-�y��A�q�/A�Br-c��tj}tj|z}||z}|jt|j
|�|jt|j|�tj|z
}||z
}|jt|j|�|jt|j
|�|jtd��td�}|jt|jd�|jt|jd�|jt|jd�|jt|jd�|jt|jd�y)Nc�$�tjSr/)rr�r!r-r+r@z-TestTimeDelta.test_overflow.<locals>.<lambda>.s
��)�-�-�r-r�ʚ;ge��Ag#B����;g�����|�=gr��{�>)
rr�r�r��
OverflowError�__sub__�__add__r�r�r�)r*�tinyrV�days    r+�
test_overflowzTestTimeDelta.test_overflow!s���#�#��
�]�]�T�
!��
�d�
�����-����T�:����-����d�U�;�
�]�]�T�
!��
�d�
�����-����T�:����-����d�U�;����-�)?�@���l�����-����e�<����-����c�:����-����%�@����-����%�@����-����%�@r-c��td�}|jt|jt�|jt|jt�y�Nr)rr�r�r��INF)r*r�s  r+�_test_overflow_specialz$TestTimeDelta._test_overflow_special7s9����l�����-����c�:����-����s�d�;r-c�<�t}|j}||d��|d��||d��|d��||d��|d���||d��|d���||d��|d	���||d
��|d���||d��|d
���||d��|d���||d��|d���||d��|d���||d��|d���||d��|d���d}|dz}||d|z��|d��||d|z��|d��||d|zd|z��|d	���||d|z��|d��||d|z��|d��||d|zd|z��|d���||d ��d |d!��z�||d ��|jzd |jz|jz�y)"Ng-C��6:?rUrg-C��6:�g����Mb@?r�g����Mb@�ga2U0*�C?rga2U0*�C�r
g�~j�t�X?rUg�~j�t�X�rSg���Ơ>r�g���Ơ���?����i|���t��Ar+g�������?rQg�������?r��rOr�g������ٿg������ɿr^rq)rr)r�)r*rVr�us_per_hour�
us_per_days     r+�test_microsecond_roundingz'TestTimeDelta.test_microsecond_rounding=s���
��
�
�
��	�2�8�$�b��e�,�
�2�9�%�r�!�u�-�
�2�8�$�b�a�&8�9�
�2�9�%�r�r�':�;�
�2�8�$�b�a�&8�9�
�2�9�%�r�r�':�;�
�2�8�$�b�a�&8�9�
�2�9�%�r�r�':�;�
�2�i� �"�!�"4�5�
�2�j�!�2�2�#6�7�
�2�f��r�t�4�5�
�2�g���� 6�7��� �2�%�
�
�2�2�j�=�!�2�a�5�)�
�2�B�{�N�#�R��U�+�
�2�2�j�=��;��7���9K�L�
�2�3�z�>�"�B�q�E�*�
�2�C��O�$�b��e�,�
�2�3�z�>��[��9�2�2�;N�O�	�2�3���R�S�%9�!9�:�
�2�3�����.��B�M�M�0A�2�=�=�0P�Qr-c��td��}|j|j|j|jfd�y)Nr
r�)r
rXr&r�)r*rVs  r+�test_massive_normalizationz(TestTimeDelta.test_massive_normalization^s2��
�B�
'�����"�'�'�2�:�:�r���?�0�	2r-c��|jtd��|jtdd��|jtddd��|jtd���|jtd��y)Nrrr�)r�rr�r2s r+�	test_boolzTestTimeDelta.test_boolcs\�����	�!��%����	�!�Q��(����	�!�Q��*�+����	�q�1�2�����1��&r-c�F��G�fd�dt���d��}|jt|���|j|j	�d��dd��}|jt|���|j|j	�d	�||z}|jt|�t��j|�}|jt|���|j|j|j�|j|j|j�|j|j|j�|jt|�t|��|j|j	�d�y)
Nc�(��eZdZe�fd��Zd�Zy)�0TestTimeDelta.test_subclass_timedelta.<locals>.Tc�T���|j|j|j�Sr/r�)rV�Ts �r+�from_tdz8TestTimeDelta.test_subclass_timedelta.<locals>.T.from_tdms�������"�*�*�b�o�o�>�>r-c�v�|jdz|jdzz|jdzz}t|�S)Nr+g �@r�)rOr�r�rh)r*�sums  r+�as_hoursz9TestTimeDelta.test_subclass_timedelta.<locals>.T.as_hoursqs?���y�y�2�~��|�|�f�,�-��(�(�6�1�2���S�z�!r-N)rGr_r`�staticmethodr�r�)r�s�r+r�r�ls���
�
?��
?�
"r-r�rrQr+r
i��r�i��)
rr0r�r)r�r�rOr�r�r�)r*r�r��t3�t4r�s     @r+�test_subclass_timedeltaz%TestTimeDelta.test_subclass_timedeltajs&���		"�	�		"��A�Y���
�
�d�2�h��"���������+�
�B��
&���
�
�d�2�h��"���������,�
�"�W���
�
�d�2�h�	�*�
�Y�Y�r�]���
�
�d�2�h��"�������"�'�'�*�������R�Z�Z�0�������"�/�/�:�����R��#�b�'�*���������+r-c	�\�Gd�dt�}|ddd�}td��}dd�|ddd	�fd
d�|ddd	�fdd
�|ddd�fg}|D]M\}}}|j|�5|||�}|j||�|j	||�ddd��Oy#1swY�ZxYw)Nc��eZdZy)�6TestTimeDelta.test_subclass_date.<locals>.DateSubclassN�rGr_r`r!r-r+�DateSubclassr�����r-r���rrRrQ�addc��||zSr/r!�r�r�s  r+r@z2TestTimeDelta.test_subclass_date.<locals>.<lambda>�����Q�r-rY�raddc��||zSr/r!r�s  r+r@z2TestTimeDelta.test_subclass_date.<locals>.<lambda>����!�a�%r-�subc��||z
Sr/r!r�s  r+r@z2TestTimeDelta.test_subclass_date.<locals>.<lambda>�r�r-rW)rrr.r)r�)	r*r��d1rV�testsrB�func�expected�acts	         r+�test_subclass_datez TestTimeDelta.test_subclass_date�s���	�4�	��$��1�
%��
�A�
���&��T�1�a�(@�A�
�'��d�A�q�)A�B�
�&��T�1�a�(@�A�
��%*� �D�$�����d�#��2�r�l��� � ��h�/��%�%�c�<�8�$�#�%*�#�#�s�).B"�"B+	c
�h�Gd�dt�}|ddddd�}tdd��}d	d
�|dddd�fd
d�|dddd�fdd�|dddd�fg}|D]M\}}}|j|�5|||�}|j||�|j	||�ddd��Oy#1swY�ZxYw)Nc��eZdZy)�>TestTimeDelta.test_subclass_datetime.<locals>.DateTimeSubclassNr�r!r-r+�DateTimeSubclassr	�r�r-r
r�rrRr��)rOrfr�c��||zSr/r!r�s  r+r@z6TestTimeDelta.test_subclass_datetime.<locals>.<lambda>�r�r-rY�
r�c��||zSr/r!r�s  r+r@z6TestTimeDelta.test_subclass_datetime.<locals>.<lambda>�r�r-r�c��||z
Sr/r!r�s  r+r@z6TestTimeDelta.test_subclass_datetime.<locals>.<lambda>�r�r-rW)rrr.r)r�)	r*r
rrVrrBrrrs	         r+�test_subclass_datetimez$TestTimeDelta.test_subclass_datetime�s���	�x�	��d�A�q�"�b�
1��
�A�r�
*���&�(8��q�!�R�(H�I�
�'�)9�$��1�b�)I�J�
�&�(8��q�!�R�(H�I�
��%*� �D�$�����d�#��2�r�l��� � ��h�/��%�%�c�+;�<�$�#�%*�#�#�s�/.B(�(B1	c��tddd��}td��}|j||zd�|j||zd�tdd	�
�}td��}|j||zd�|j||zd�td
�}|jtt||�|jtt
||�y)Nrr+�r%r�gó@i�rUr�rfr�reg@r)rr)r�r�r
r)r*r��second�minute�zerotds     r+�
test_divisionzTestTimeDelta.test_division�s����A�r�2�6���1�%������V��V�,�����f��d�+��a��,���1�%������V��S�)�����f��a�(��1������+�W�a��@����+�X�q�&�Ar-c�Z�tdd��}td��}||z}|j|td���tdd��}||z}|j|td���td�}|jtt||�|jt
t|d	�y�
NrUrrrrer�rSrr)rr)r�r�rr�)r*r�r�rrs     r+�test_remainderzTestTimeDelta.test_remainder�s����a��,���1�%��
��J������I�b�1�2��b�"�-��
��K������I�b�1�2��1������+�S�!�V�<����)�S�!�R�0r-c���tdd��}td��}t||�\}}|j|d�|j|td���tdd��}t||�\}}|j|d�|j|td���td�}|jtt||�|jt
t|d	�yr)r�divmodr)r�r�r�)r*r�r�qrrs      r+�test_divmodzTestTimeDelta.test_divmod�s����a��,���1�%���a�� ���1�����A������I�b�1�2��b�"�-���a�� ���1�����B������I�b�1�2��1������+�V�Q��?����)�V�Q��3r-c��d�}|jt�5t�|ddz�zddd�|jt�5t�|ddz�zddd�dD]d}|jt�5t�||�zddd�|jt�5t�||�zddd��fy#1swY��xYw#1swY�xYw#1swY�UxYw#1swY��xYw)Nc�4��G�fd�dt�}|�S)Nc���eZdZ�fd�Zy)�FTestTimeDelta.test_issue31293.<locals>.get_bad_float.<locals>.BadFloatc����Sr/r!)r*�	bad_ratios �r+�as_integer_ratiozWTestTimeDelta.test_issue31293.<locals>.get_bad_float.<locals>.BadFloat.as_integer_ratio�s	���$�$r-N)rGr_r`r&)r%s�r+�BadFloatr#�s���%r-r')�float)r%r's` r+�
get_bad_floatz4TestTimeDelta.test_issue31293.<locals>.get_bad_float�s���
%�5�
%��:�r-rrT)r!r|�rrUrQ)r�r�rr�)r*r)r%s   r+�test_issue31293zTestTimeDelta.test_issue31293�s���	��
�
�y�
)��K�-��T�	�2�2�*�
�
�
�y�
)��K�-��T�	�2�2�*�1�I��"�"�:�.���m�I�6�6�/��"�"�:�.���m�I�6�6�/�.�1�*�
)��
)�
)��/�.��.�.�s/�C�
C"�C.�7C:�C�"C+�.C7	�:D	c�����G�fd�dt�}G�fd�d��G�fd�dt��dD]��|j���5	t|d	��
�	t|d	���	t|d	���	td	�|d	�z	|d	�td	�z	td	�|d	�zddd���y#t$rY�{wxYw#t$rY�wwxYw#ttf$rY�ywxYw#ttf$rY�ywxYw#t$rY�swxYw#t$rY�mwxYw#1swY��	xYw)
Nc�6��eZdZ�fd�Z�fd�Z�fd�Z�fd�Zy)�-TestTimeDelta.test_issue31752.<locals>.BadIntc�����Sr/r!�r*�other�Prods  �r+r�z5TestTimeDelta.test_issue31752.<locals>.BadInt.__mul__��
����v�
r-c�����Sr/r!r0s  �r+�__rmul__z6TestTimeDelta.test_issue31752.<locals>.BadInt.__rmul__�r3r-c�����Sr/r!r0s  �r+�__floordiv__z:TestTimeDelta.test_issue31752.<locals>.BadInt.__floordiv__�r3r-c�����Sr/r!r0s  �r+�
__rfloordiv__z;TestTimeDelta.test_issue31752.<locals>.BadInt.__rfloordiv__r3r-N)rGr_r`r�r5r7r9)r2s�r+�BadIntr.�s���
�
�
�
r-r:c�"��eZdZ�fd�Z�fd�Zy)�+TestTimeDelta.test_issue31752.<locals>.Prodc�����Sr/r!�r*r1�Sums  �r+r�z3TestTimeDelta.test_issue31752.<locals>.Prod.__add__�
����u�r-c�����Sr/r!r>s  �r+�__radd__z4TestTimeDelta.test_issue31752.<locals>.Prod.__radd__r@r-N)rGr_r`r�rB)r?s�r+r2r<s
���
�
r-r2c���eZdZ�fd�Zy)�*TestTimeDelta.test_issue31752.<locals>.Sumc����Sr/r!)r*r1�divmodresults  �r+�
__divmod__z5TestTimeDelta.test_issue31752.<locals>.Sum.__divmod__
s	���#�#r-N)rGr_r`rG�rFs�r+r?rD	s���
$r-r?)Nr!)rrrU)rr
rHrr�r�rR)rhr.rr�r�)r*r:r2r?rFs  @@@r+�test_issue31752zTestTimeDelta.test_issue31752�s?���	�S�	�	�	�	$�#�	$�;�L����<��8���6�!�9�5���F�1�I�.���F�1�I�.���a�L�6�!�9�,���1�I�	�!��,���a�L�F�1�I�-�/9�8�;��
!�����!�����"�:�.�����"�:�.�����!�����!�����19�8�s��	D3�C
�C�1C+�D�D�.D$�
	C�D3�C�D3�	C(�%D3�'C(�(D3�+C=�:D3�<C=�=D3�D�D3�D�D3�	D!�D3� D!�!D3�$	D0�-D3�/D0�0D3�3D=	N)"rGr_r`rr8r�rnr�r
�requires_IEEE_754r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr+rIr!r-r+rLrL�s����H�7�2Q�f5�&
���:��:�
.�
L�!�#�(,�&?�P.�*C�&&�$C�A�,
���<��<�
R�B2�
'�,�>9�&=�&
B�&
1�4�"7�(1r-rLc��eZdZd�Zy)�TestDateOnlyc�<�tddd�}tddddd��}t|j�}|j|td��||z}|j|||z�||z}|j|||z�||z
}|j|||z
�|}t|j�}|j|td��||z}|j|||z�||z}|j|||z�||z
}|j|||z
�y)	N��rrUrQrWrRr�rS)rrrOr))r*rur*rO�dt2s     r+�test_delta_non_days_ignoredz(TestDateOnly.test_delta_non_days_ignored1s��
�$��1�
���q��1�a�'(�*������$������y��|�,��5�j������b�4�i�(��b�j������b�4�i�(��5�j������b�4�i�(��������$������y��}�-��5�j������b�4�i�(��b�j������b�4�i�(��5�j������b�4�i�(r-N)rGr_r`rPr!r-r+rLrL-s��)r-rLc��eZdZdZy)�SubclassDaterN�rGr_r`�sub_varr!r-r+rRrRN����Gr-rRc��eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d �Z$d!�Z%d"�Z&d#�Z'd$�Z(d%�Z)d&�Z*d'�Z+d(�Z,d)�Z-d*�Z.d+�Z/d,�Z0y-).�TestDatec���|jddd�}|j|jd�|j|jd�|j|jd�y)N��rQr)r8r)�year�monthr�rts  r+r�zTestDate.test_basic_attributesWsP��
�]�]�4��A�
&��������$�'�������1�%��������#r-c��|jddd�|jj�fD]�}t|�}|j|j	d��|dd}t|�}|j
||�|j|j|j|j�}|j
||���y)NrrUrQr�r�)
r8�todayr�r�r?r�r)rZr[r��r*rur�rOs    r+r�zTestDate.test_roundtrip]s����=�=��A�q�)��=�=�&�&�(�*�B��R��A��O�O�A�L�L��5�6��!�"��A��q�'�C����R��%��-�-�������2�6�6�:�C����R��%�*r-c	�.�dD]�\}}}}|j|||�}|j||j��|jj|�}|j||�t	|d�s�u|j|j
d�|j|jd�|j|jd�|j|jd���tttdzd�D]�}|j|dd�}|j�}|jj|�}|j||�|dkDs�Y|jj|dz
�}|j|dz
dd�}|j||�|j|j�|dz
���gd�}d	D]�\}}	|j|dd�j�}ttdd
�|�D]�\}
}|
dk(r|	r|dz
}td|dz�D]e}|j||
|�}|j|j�|�|j||jj|��|dz
}�g����y)N))rrrr)rr�r�r�)rUrr�n)i�r�r�i��
�hourrrrTr�r�)r��r�rr�rr�r�rr�rr�))rNT)rYFr
rU)
r8r)�	toordinal�fromordinalr�rarr�microsecondrgrr�zip)
r*�y�mr��n�fromordrZ�d2�dim�isleapr[�maxdayr�s
             r+�test_ordinal_conversionsz!TestDate.test_ordinal_conversionsks=��3�J�A�q�!�Q�
�
�
�a��A�&�A����Q����
�.��m�m�/�/��2�G����Q��(��w��'�� � ����q�1�� � �����3�� � �����3�� � ��!4�!4�a�8�3�&�'�7�1�9�a�0�D��
�
�d�A�q�)�A����
�A����*�*�1�-�B����Q��#��a�x��M�M�-�-�a��c�2���]�]�4��6�2�r�2��� � ��B�'�� � ������1��5�1�?��7�L�D�&��
�
�d�A�q�)�3�3�5�A�!$�U�1�b�\�3�!7�
��v��A�:�&��a�K�F� ��F�1�H�-�C��
�
�d�E�3�7�A��$�$�Q�[�[�]�A�6��$�$�Q��
�
�(A�(A�!�(D�E���F�A�	.�"8�8r-c�����|jj�|j�j�j�j���j���j
��}|j�|�|jt��fd���td��z}|j|j��dz�|j||jj
�dz��|jj�|j�j�j�j���j���j
��}|j�|�|jt��fd���td��z
}|j|j��dz
�|j||jj
�dz
��y)Nc�,���j�dz
�Sr��rd�ri�aords��r+r@z0TestDate.test_extreme_ordinals.<locals>.<lambda>�����a�m�m�D�1�H�.Er-rrQc�,���j�dz�Sr�rrrss��r+r@z0TestDate.test_extreme_ordinals.<locals>.<lambda>�rur-)r8r�rZr[r�rcrdr)r�r�rr�)r*rjrirts  @@r+�test_extreme_ordinalszTestDate.test_extreme_ordinals�si����M�M�����M�M�!�&�&�!�'�'�1�5�5�1���{�{�}��
�M�M�$�������A�����*�&E�F�
�	�q�!�!����������q��1�����D�M�M�5�5�d�Q�h�?�@��M�M�����M�M�!�&�&�!�'�'�1�5�5�1���{�{�}��
�M�M�$�������A�����*�&E�F�
�	�q�!�!����������q��1�����D�M�M�5�5�d�Q�h�?�@r-c��|jtdd�|jtdd�|jt|jtdz
dd�|jt|jtdzdd�|jddd�|jddd�|jt|jddd�|jt|jddd�|jddd�|jddd�|jd	dd�|jt|jddd
�|jt|jddd�|jt|jddd�|jt|jd
dd�|jt|jddd�|jt|jddd�y)NrrNr�rr
rU����`	r���4�lr�)r8rrr�r�r2s r+�test_bad_constructor_argumentsz'TestDate.test_bad_constructor_arguments�s~���
�
�g�q�!�$��
�
�g�q�!�$����*�d�m�m�W�Q�Y��1�E����*�d�m�m�W�Q�Y��1�E��
�
�d�A�q�!��
�
�d�B��"����*�d�m�m�T�1�a�@����*�d�m�m�T�2�q�A��
�
�d�A�r�"��
�
�d�A�r�"��
�
�d�A�r�"����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�a�@����*�d�m�m�T�1�b�Ar-c��|jddd�}|jddd�}|j||�|jt|�t|��|di}d||<|jt|�d�|j||d�|j||d�|jddd�}|jddd�}|j||�|jt|�t|��|di}d||<|jt|�d�|j||d�|j||d�y)NrNr�r�rrUr|�r8r)r�r��r*r��e�dics    r+r�zTestDate.test_hash_equality�s6���M�M�$��B�'���M�M�$��B�'������A������a��$�q�'�*��!�f����A������S��1�%�����Q���#�����Q���#��M�M�$��Q�'���M�M�$��Q�'������A������a��$�q�'�*��!�f����A������S��1�%�����Q���#�����Q���#r-c�L����|jddd��|jddd�}|jddd�}�|z
}|j|jdtt	ddd��z�|j|j
d	�|j|jd	�td��td
�}|jddd��|j��z|jddd��|j��z|jddd��|j��z
|jddd��|j��z|jddd��|j�|z|jddd��|j�|z
|jddd
��|j�d|zz|jddd��|j�d|zz
|jddd��|j�|z�z
|�|j��z�z
��|j�|z
�z
|�|j��z
�z
��|j��|zz
|�|j���zz
��|j��|z
z
|�|j���z
z
��|j||�z
z
��dD]j�|jt��fd��|jt��fd��|jt��fd��|jt��fd���l|jt��fd��|jt��fd��|jt��fd��|jt��fd��|jt��fd��|jt�fd��|jt�fd��|jt�fd��y)NrYrr��r|rU�ArWrrTrQr�r��4��rpc�����zSr/r!rss��r+r@z,TestDate.test_computations.<locals>.<lambda>rtr-c�����z
Sr/r!rss��r+r@z,TestDate.test_computations.<locals>.<lambda>rtr-c�����zSr/r!rss��r+r@z,TestDate.test_computations.<locals>.<lambda>rtr-c�����z
Sr/r!rss��r+r@z,TestDate.test_computations.<locals>.<lambda>rtr-c�����z
Sr/r!�rir�s��r+r@z,TestDate.test_computations.<locals>.<lambda>	�	���S�1�Wr-c�����zSr/r!r�s��r+r@z,TestDate.test_computations.<locals>.<lambda>r�r-c�����zSr/r!r�s��r+r@z,TestDate.test_computations.<locals>.<lambda>�	���Q��Wr-c�����zSr/r!r�s��r+r@z,TestDate.test_computations.<locals>.<lambda>
�	���S�A�Xr-c�����zSr/r!r�s��r+r@z,TestDate.test_computations.<locals>.<lambda>�	���Q�#�Xr-c�����zSr/r!rs�r+r@z,TestDate.test_computations.<locals>.<lambda>�	���Q��Ur-c�����zSr/r!rs�r+r@z,TestDate.test_computations.<locals>.<lambda>�	���Q�!�Vr-c�����zSr/r!rs�r+r@z,TestDate.test_computations.<locals>.<lambda>r�r-�
r8r)rOr�rgr�r�rr�r�)r*rjrk�diff�weekrir�rms     @@@r+rnzTestDate.test_computations�sy����M�M�$��2�&���M�M�$��2�&���M�M�$�q��#����s��������F�S��t�T�1�1E�-F�$F�G�������q�)�����*�*�A�.���l����|���M�M�$��1�%������S��$�-�-��a��";�<�����q��$�-�-��a��";�<�����S��$�-�-��a��";�<����#����4�=�=��q�!�#<�=�����T��4�=�=��q�!�#<�=�����T��4�=�=��q�"�#=�>�����R��W��d�m�m�D�!�Q�&?�@�����R��W��d�m�m�D�!�Q�&?�@����!�d�(�a���.����!�c�'�Q���,����!�d�(�a��$��/����!�c�'�Q����-�����a�$�h��$��/�����a�#�g����-�����a�$�h���.�����a�#�g���,�����a�#�g���,��A����i��5����i��5����i��5����i��5�	�	
���)�_�5����)�_�5����)�_�5����)�%5�6����)�%5�6����)�]�3����)�^�4����)�]�3r-c���|jj}|td�td�fD]�}|jj|z}||z}|j	t
|j|�|j	t
|j|�|jj|z
}||z
}|j	t
|j|�|j	t
|j|���y)NrrU)	r8r�rr�r�r�r�r�r�)r*r�r*rus    r+r�zTestDate.test_overflows����}�}�'�'���I�a�L�)�A�,�7�E����"�"�U�*�B��%�K�B����m�R�Z�Z��?����m�R�Z�Z�%��@����"�"�U�*�B��%�K�B����m�R�Z�Z��?����m�R�Z�Z�%��@�8r-c�,�ddl}d\}}}|j|||ddddddf	�}|jj|�}|j	|j
|�|j	|j|�|j	|j|�y)Nr)i�r�rr
)r�mktimer8�
fromtimestampr)rZr[r�)r*rrZr[r��tsr�s       r+�test_fromtimestampzTestDate.test_fromtimestamp"s����'���e�S�
�T�[�[�$��s�A�q�!�Q��2�>�
?���M�M�'�'��+���������&�������%�(��������$r-c�h�dD]-}|jt|jj|��/y�N)gZb���t�gZb���ti�r�r�r8r��r*�insanes  r+�test_insane_fromtimestampz"TestDate.test_insane_fromtimestamp-�-��
$�F����m�T�]�]�-H�-H�$�
&�$r-c��|jt�5|jjd�ddd�y#1swYyxYwr/)r�r�r8r�r2s r+� test_fromtimestamp_with_none_argz)TestDate.test_fromtimestamp_with_none_arg6s.��
�
�
�y�
)��M�M�'�'��-�*�
)�
)�s	�;�Ac�2�ddl}td�D]a}|jj�}|j�}|jj	|�}||k(rn|j
d��ck7r|j
||td����yy)NrrQg�������?r^r�)r*)rrgr8r]r��sleep�assertAlmostEqualr)r*rrr]r��
todayagains      r+�
test_todayzTestDate.test_today;s�����1�X�E��M�M�'�'�)�E������B����4�4�R�8�J��
�"��
�D�J�J�s�O�!�(�J���"�"�:�u�)2�3�)?�
#�
A�r-c	���td�D]�}|j|jddd|z�j�|�|j|jddd|z�j	�|dz�|j|jddd|z�j�|�|j|jddd|z�j	�|dz���y)NrTrYrQrWrr�rU)rgr)r8�weekday�
isoweekday)r*rms  r+�test_weekdayzTestDate.test_weekdayXs����q��A����T�]�]�4��A�a�C�8�@�@�B�A�F����T�]�]�4��A�a�C�8�C�C�E�q��s�K����T�]�]�4��A�a�C�8�@�@�B�A�F����T�]�]�4��A�a�C�8�C�C�E�q��s�K�
r-c�<�gd�}g}|D]T\}}|j|�}td�D]2}|t|�z}|dd|d|zfz}|j||f��4�V|D]�\}	}
|j	|	d��5|j|	j
�|
�ddd�|j	|	d��5|	j
�}|j|j|j|jf|
�ddd���y#1swY�kxYw#1swY��xYw)N)))r�r��)r�r�r))r�r�ry�rzrr))rzrrR)rzrUr))��r�r�)r�r�r))r�r�rb)r��5r))r�rrW)r�rrrTrrU�tuple)r��
comparison�fields)
r8rgr�appendr.r)�isocalendarrZr�r�)r*�week_mondays�
test_cases�cal_date�iso_date�	base_daterm�new_date�new_isor��exp_isor�s            r+�test_isocalendarzTestDate.test_isocalendaras��
���
�".��H�h�%��
�
�x�0�I��1�X��$�y��|�3��"�1�Q�-�8�A�;��?�*<�<���!�!�8�W�"5�6��#/�%�J�A�w�����g��6�� � �����'�:�7�����h��7��M�M�O��� � �!�&�&�!�&�&�!�)�)�!<�g�F�8�7�%�6�6��8�7�s�;!D�7AD�D	�D	c��|jddd�}tj|j��}tj|�}|jt
|�t�|j|d�y)z�Test that the result of datetime.isocalendar() can be pickled.

        The result of a round trip should be a plain tuple.
        ��r)r�rrUN)r8�pickler�r�r�r)r�r�)r*r��p�ress    r+�test_isocalendar_picklingz"TestDate.test_isocalendar_picklings[��

�M�M�$��1�%���L�L�����)���l�l�1�o������c��E�*�����l�+r-c��d}ttt|j���}g}t	d�D]�}|jd|zdd�}|jd|zdd�}|j
|j�dd|j�dd�|j�ddk(s�z|j|���|j
||�y)	NaK
              4   32   60   88
              9   37   65   93
             15   43   71   99
             20   48   76
             26   54   82

            105  133  161  189
            111  139  167  195
            116  144  172
            122  150  178
            128  156  184

            201  229  257  285
            207  235  263  291
            212  240  268  296
            218  246  274
            224  252  280

            303  331  359  387
            308  336  364  392
            314  342  370  398
            320  348  376
            325  353  381
        �rNr�r�i@rr�)	�sorted�maprh�splitrgr8r)r�r�)r*�ISO_LONG_YEARS_TABLE�iso_long_years�Lrmr�rs       r+�test_iso_long_yearszTestDate.test_iso_long_years�s��� ��2 ��C�)=�)C�)C�)E� F�G�����s��A��
�
�d�1�f�b�"�-�A����t�A�v�r�2�.�B����Q�]�]�_�Q�R�0�"�.�.�2B�1�2�2F�G��}�}��q�!�R�'�������	
����N�+r-c�j�|jddd�}|j|j�d�y)NrUrQz
0002-03-02)r8r)�	isoformat�r*r�s  r+�test_isoformatzTestDate.test_isoformat�s*���M�M�!�Q��"����������5r-c�j�|jddd�}|j|j�d�y)NrYrQrUzSat Mar  2 00:00:00 2002)r8r)�ctimer�s  r+�
test_ctimezTestDate.test_ctime�s+���M�M�$��1�%���������$>�?r-c��|jddd�}|j|jd�d�|j|jd�d�|j|jd�d�|jt|j�|jt|jdd	�|jt|jd
�|j|jd�d�|j|jd
�d�dD]}	|j|��	|jd�|jd�|jd��y#t
$rY�XwxYw#t$rY�>wxYw)N��rQrU�m:%m d:%d y:%yzm:03 d:02 y:05r��xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�one�twor}�%m�03�'%z' '%:z' '%Z'�'' '' '')z%e�%z%#u%y�%m�%f��format)r8r)�strftimer�r�r��UnicodeEncodeError)r*r��fs   r+�
test_strftimezTestDate.test_strftime�sK���M�M�$��1�%��������$4�5�7G�H�������B���,�������H�-�x�8����)�Q�Z�Z�0����)�Q�Z�Z���>����)�Q�Z�Z��4�	
������D�)�4�0�	
������$5�6�
�C�#�A�
��
�
�1�
�#�	�
�J�J�|�$�
	
�
�
�4��	
�
�
�$�
����
��
��"�	��	�s$�"E+�6E:�+	E7�6E7�:	F�Fc��|jddd�}	tjd�|j|jd�tjd|j
���|j|jd�tjd|j
���y#t$r|j	d�Y��wxYw)Nr�rQrUr�z'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)r8�_timer�r�rHr)�	timetupler�s  r+�test_strftime_trailing_percentz'TestDate.test_strftime_trailing_percent�s���

�M�M�$��1�%��	E��N�N�3��	
������C��%�.�.��a�k�k�m�*L�M����
�J�J�)�*��N�N�-�q�{�{�}�=�	
���	E��M�M�C�D�	E�s�B1�1C�
Cc��|jddd�}|j|jd�t|��|j	t
d�5|jd�ddd�Gd�d|j�}|ddd�}|j|jd�d�Gd	�d
|j�}|ddd�}|j|jd�t|��dD]�}|j|j|�|j
|��|j|j|�|j
|��|j|j|�d
���y#1swY��xYw)N��r�rr�must be str, not int�{c��eZdZd�Zy)�TestDate.test_format.<locals>.Ac��y�N�Ar!r2s r+�__str__z'TestDate.test_format.<locals>.A.__str__����r-N�rGr_r`rr!r-r+r�r�����
r-r�c��eZdZd�Zy)�TestDate.test_format.<locals>.Bc��y�N�Br!�r*�format_specs  r+r�z(TestDate.test_format.<locals>.B.strftimerr-N�rGr_r`r�r!r-r+rrrr-r�r�zm:%m d:%d y:%y H:%H M:%M S:%Sz	%z %:z %Z�r8r)�
__format__r��assertRaisesRegexr�r��r*rur�rirrj�fmts       r+�test_formatzTestDate.test_format�s=��
�]�]�4��B�
'��������r�*�C��G�4�
�
#�
#�I�/E�
F��M�M�#��G�	��
�
�	�
�d�A�r�N��������b�)�3�/�	��
�
�	�
�d�A�r�N��������b�)�3�r�7�3��C�
���R�]�]�3�/����S�1A�B����Q�\�\�#�.����C�0@�A����Q�\�\�#�.��4�
�#G�
F�s�F�F
c��t|jt�rt}nt}|j	|jj
|�|j	|jj|�|j	|jjt�|j|jj|jj
kD�yr/)
r�r8rrr�r�r�r�rr�)r*�expected_classs  r+r�zTestDate.test_resolution_infos����d�m�m�X�.�%�N�!�N����d�m�m�/�/��@����d�m�m�/�/��@����d�m�m�6�6�	�B�����
�
�)�)�D�M�M�,=�,=�=�>r-c���|jj|jjz
}|jdzdz|jzdz|j
z}t
dd|�}|j||�|j|jj|z|jj�|j|jj|z
|jj�y)Nr+��@Br)r8r�r�rOr�r�rr))r*�bigri�	justasbigs    r+�test_extreme_timedeltazTestDate.test_extreme_timedeltas����m�m���$�-�-�"3�"3�3��
�X�X�b�[��
����
+�W�4�s�7G�7G�G���a��A�&�	�����i�(�������*�*�S�0�$�-�-�2C�2C�D�������*�*�S�0�$�-�-�2C�2C�Dr-c
��td�D�]�}|jddd|z�}|j�}|j|ddd|zddd|d|zdf	�|jddd|z�}|j�}|j|ddd|zdddd|zdzd|zdf	�|jddd|z�}|j�}|j|ddd|zdddd|zdzd	|zdf	�|j|jd�|j|j
d�|j|jd|z�|j|jd�|j|jd�|j|jd�|j|jd|zdz�|j|jd	|z�|j|jd����y)
NrTr�rrUrr
r�rQ�=)
rgr8r�r)�tm_year�tm_mon�tm_mday�tm_hour�tm_min�tm_sec�tm_wday�tm_yday�tm_isdst)r*rmr�r�s    r+�test_timetuplezTestDate.test_timetuple$s����q��A��
�
�d�A�q��s�+�A����
�A����Q��q�!�A�#�q�!�Q��1�Q�3�� C�D��
�
�d�A�q��s�+�A����
�A����Q��q�!�A�#�q�!�Q��1��a���A��r� J�K��
�
�d�A�q��s�+�A����
�A����Q��q�!�A�#�q�!�Q��1��a���A��r� J�K����Q�Y�Y��-����Q�X�X�q�)����Q�Y�Y��!��,����Q�Y�Y��*����Q�X�X�q�)����Q�X�X�q�)����Q�Y�Y��1��a��0����Q�Y�Y��1��-����Q�Z�Z��,�-r-c��d}|j|�}tD];\}}}|j||�}|j|�}|j	||��=|j	|j�|j
d��y)N�rYrTr�rU�r8r�r�r�r)�
__reduce__�
__reduce_ex__r�s        r+r�zTestDate.test_pickling=sz�����t�}�}�d�#��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+�*8�	
������*�D�,>�,>�q�,A�Br-c��gd�}d}|j|�}|D])}tD]}||d��}|j||�� �+y)N)s'cdatetime
date
(S'\x07\xdf\x0b\x1b'
tR.scdatetime
date
(U�tR.s�cdatetime
date
U��R.)��r���latin1��encoding�r8�pickle_loadsr)�r*rr�r�datar�r�s       r+�test_compat_unpicklezTestDate.test_compat_unpickleFsP��
��
�� �4�=�=�$�'���D�%����x�8��� � ��(�3�&�r-c�~���|jddd��|jddd�}|j�|�|j�|k�|j�|k\�|j�|k7�|j�|k�|j�|kD�dD�]}|j|�}|j�|k�|j|�kD�|j�|k�|j|�k\�|j�|k7�|j|�k7�|j�|k(�|j|�k(�|j�|kD�|j|�k�|j�|k\�|j|�k���tD�]
�|j��k(d�|j��k7d�|j��k(d�|j��k7d�|jt��fd��|jt��fd��|jt��fd	��|jt��fd
��|jt��fd��|jt��fd��|jt��fd
����y)NrUrQrWr�FTc�����kSr/r!r�s��r+r@z'TestDate.test_compare.<locals>.<lambda>rr�r-c�����kDSr/r!r�s��r+r@z'TestDate.test_compare.<locals>.<lambda>sr�r-c�����k\Sr/r!r�s��r+r@z'TestDate.test_compare.<locals>.<lambda>tr�r-c�����kSr/r!r�s��r+r@z'TestDate.test_compare.<locals>.<lambda>ur�r-c�����kSr/r!r�s��r+r@z'TestDate.test_compare.<locals>.<lambda>vr�r-c�����kDSr/r!r�s��r+r@z'TestDate.test_compare.<locals>.<lambda>wr�r-c�����k\Sr/r!r�s��r+r@z'TestDate.test_compare.<locals>.<lambda>xr�r-)r8r)r�r�r�r�r�r�s   @@r+r�zTestDate.test_compareSsH���
�]�]�1�a��
#��
�]�]�1�a��
#������R� �����b��!�����b��!�����r��"�����b��!�����b��!�3�D������%�B��O�O�B��G�$��O�O�B��G�$��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%����R�2�X�&����R�2�X�&����R�"�W�%����R�"�W�%����R�2�X�&����R�2�X�&�4�!�j�F����R�6�\�5�1����R�6�\�4�0����V�r�\�5�1����V�r�\�4�0����i�)<�=����i�)<�=����i�)=�>����i�)=�>����i�)<�=����i�)<�=����i�)=�>�!r-c�l���|jddd��|j�dk(d�|jd�k(d�|j�dk7d�|jd�k7d�|jt�fd��|jt�fd��Gd	�d
�}|��|j��k(d�|j��k(d�|j��k7d�|j��k7d�|jt��fd��|jt��fd��y)
NrNrWrRrFTc����dkSr�r!��ours�r+r@z-TestDate.test_mixed_compare.<locals>.<lambda>�r�r-c���d�kSr�r!rAs�r+r@z-TestDate.test_mixed_compare.<locals>.<lambda>�r�r-c��eZdZy)�.TestDate.test_mixed_compare.<locals>.SomeClassNr�r!r-r+�	SomeClassrE�r�r-rFc�����kSr/r!�rB�theirs��r+r@z-TestDate.test_mixed_compare.<locals>.<lambda>�s	���S�5�[r-c�����kSr/r!rHs��r+r@z-TestDate.test_mixed_compare.<locals>.<lambda>�s	���U�S�[r-)r8r)r�r�)r*rFrBrIs  @@r+�test_mixed_comparezTestDate.test_mixed_comparezs����m�m�D�!�Q�'��	
������5�)�����c��5�)�������4�(�����c��4�(�	
���)�_�5����)�_�5�	�	����������u�-�����#��u�-�������t�,�����#��t�,����)�%8�9����)�%8�9r-c��|j|jj�|j|jj�yr/)r�r8r�r�r2s r+r�zTestDate.test_bool�s.������
�
�)�)�*�����
�
�)�)�*r-c��dD]�}|j|dd�}|jd�d|zk7s�.|j|jd�d|z�tjs�c|j|jd�d|z���y)N)rr�r[�cr�i�rTrrz%Yz%04d�%dz%4Y)r8r�r)r
�has_strftime_extensions)r*rgr�s   r+�test_strftime_y2kzTestDate.test_strftime_y2k�sx��6�A��
�
�a��A�&�A�
�z�z�$��6�A�:�-�� � ����D�!1�4�!�8�<��2�2��$�$�Q�Z�Z��%6���
�C�7r-c�R�|j}gd�}||�}|j||j��d}dD]?\}}|dd}|||<||�}|jd
i||i��}	|j||	�|dz
}�A|ddd�}|jt|jd�	�y)Nr*r)�rZrU�r[rQ�r�rWrrNrUryr|�rZr!�r8r)rr�r��
r*�clsr��basermrB�newval�newargsr�gots
          r+�test_replacezTestDate.test_replace�s����m�m�����D�z������t�|�|�~�.�
��)�L�D�&��1�g�G��G�A�J��G�}�H��$�,�,�0�$���0�C����X�s�+�
��F�A�)��4��B������*�d�l�l���>r-c��Gd�d|j�}|ddd�}|jt|jd���|�y)Nc��eZdZy)�4TestDate.test_subclass_replace.<locals>.DateSubclassNr�r!r-r+r�ra�r�r-r���ri�rV�r8r0r�r)r*r�rus   r+�test_subclass_replacezTestDate.test_subclass_replace�s@��	�4�=�=�	��$��1�
%���
�
�d�2�:�:�4�:�0�1�<�@r-c����G�fd�d�j�}d}�j|�}||iddi��}�j|j|��j|jd��j|jd��j|j�|j���j|j
d�|j|jzdz
�y)Nc�"��eZdZdZ�fd�Zd�Zy)�&TestDate.test_subclass_date.<locals>.Cr}c���|j�}|jd�}�jj|g|��i|��}||_|S�Nr��r�popr8r�r��rYr��kws�tempr��resultr*s      �r+r�z.TestDate.test_subclass_date.<locals>.C.__new__��H����x�x�z������)��.����.�.�s�B�T�B�T�B��$����
r-c�:�||jz|jzSr/)rZr[�r*�starts  r+�newmethz.TestDate.test_subclass_date.<locals>.C.newmeth�s���t�y�y�(�4�:�:�5�5r-N�rGr_r`�	theAnswerr�rtr2s�r+�Crg�s����I�
�
6r-rw�r�rWr_r�rTr}rV)	r8r)rFrvr�rcrtrZr[�r*rwr�r�rOs`    r+rzTestDate.test_subclass_date�s����	6��
�
�	6����d�m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�Y�Y�*>��*B�Cr-c�F��G�fd�d�j�}d}d}d}||�}�j||��j|jd�t	j
|t
d��j�}d|ffd	|ffd
|ffg}|D]�\}}	||fD]x}
�jt|
�|��5t|
|�}||	�}�j||��j||��j|jd�ddd��z��y#1swY��xYw)Nc���eZdZ�fd�Zy)�CTestDate.test_subclass_alternate_constructors.<locals>.DateSubclassc�V���jj|g|��i|��}d|_|S�NrT�r8r�r��rYr��kwargsror*s    �r+r�zKTestDate.test_subclass_alternate_constructors.<locals>.DateSubclass.__new__��/���.����.�.�s�D�T�D�V�D�� ����
r-N�rGr_r`r�r2s�r+r�r|�����
r-r�rxi�(z
2003-04-14rTrrdr��
fromisoformat��
base_obj_type�constr_name)r8r�r)r�r�combiner�	timestampr.r��getattr)
r*r�r��d_ord�d_isoformat�base_dr�r�r��constr_args�base_obj�constrrus
`            r+�$test_subclass_alternate_constructorsz-TestDate.test_subclass_alternate_constructors�s9���	�4�=�=�	�����"���t�$�����f�l�3�������q�)��
�
�f�d�1�g�
.�
8�
8�
:���U�H�%�
�r�e�$�
�{�n�-�
�
�)3�$�K��)�6�2���\�\��X��.9�"�;�$�X�{�;�F���-�B��)�)�"�l�;��$�$�R��0��$�$�R�X�X�q�1�;�;�3�)3�;�;�s
�8AD�D c���d}t|�}tD]Z\}}}|j||�}|j|�}|j	||�|jt
|t���\y)Nr()rRr�r�r�r)r�rgr�s        r+�test_pickling_subclass_datez$TestDate.test_pickling_subclass_date	sc�����T�"��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+��O�O�J�w��=�>�	*8r-c	��d}t|jt�s|dd}dD]/}|jt|j|dd|z|ddz��1t|jt�rG|jtd�5|jt
dgt|�z�d�ddd�tdd	�D])}|j|ddt
|g�z|ddz��+y#1swY�BxYw)
Ns
1995-03-25rW)�9��
��rUrQ�^bad tzinfo state arg$rr�r
)	r�r8rr�r�r�bytesr�rg)r*rZ�
month_byte�ord_bytes    r+�test_backdoor_resistancez!TestDate.test_backdoor_resistances������$�-�-��2����8�D�5�J����i����)-�b�q��J�)>��a�b��)I�
K�6��d�m�m�X�.��'�'�	�3K�L��
�
�e�Q�C�#�d�)�O�4�e�<�M��a���H�
�M�M�$�r��(�U�H�:�%6�6��a�b��A�B�	%�M�L�s�)C0�0C9c��gd�}|D]w}|j|�}|j�}|j|��5|jj|j��}|j	||�ddd��yy#1swY��xYw)N)�rrr)rTrUr_�r~rr)rNrUry�rzr�r�)rzrWrQ�i�rRr)�dt_str�r8r�r.r�r))r*�
base_dates�dt_tuplerur��dt_rts      r+�test_fromisoformatzTestDate.test_fromisoformat-sy��
�
�#�H������)�B��\�\�^�F����V��,��
�
�3�3�B�L�L�N�C��� � ��U�+�-�,�#�-�,�s�<B�B	c���d|jddd�fd|jddd�fd|jddd�fd|jd	d
d�fd|jddd�fd
|jddd�fd|jddd�fd|jd	d
d�fd|jdd
d�fd|jdd
d�fd|jddd�fd|jddd�fd|jdd
d�fd|jdd
d�fd|jdd
d�fd|jdd
d�fd|jdd
d�fd|jdd
d�fd|jd dd�fd!|jd dd�fd"|jd#d
d�fd$|jd#d
d�fd%|jd&dd�fd'|jd(d
d)�fd*|jd(d
d)�fd+|jd,dd�fg}|D]M\}}|j|�-�5|jj|�}|j||�ddd��Oy#1swY�ZxYw).N�00010101r�20000101rN�20250102��rU�99991231r'r�r�z
0001-01-01z
2000-01-01�
2025-01-02z
9999-12-31�2025W01��rz2025-W01�2025W014z
2025-W01-4�2026W01ryz2026-W01�2026W013z
2026-W01-3�2022W52��r�z2022-W52�2022W527��z
2022-W52-7�2015W534r-z
2015-W53-4z
2015-W53-5���2020W531��rbz
2020-W53-1z
2020-W53-6����	input_str)r8r.r�r)�r*�examplesr�r�actuals     r+� test_fromisoformat_date_examplesz)TestDate.test_fromisoformat_date_examplesAs}��
����q�!�Q�/�0�
����t�Q��2�3�
����t�Q��2�3�
����t�R��4�5�
�4�=�=��A�q�1�2�
�4�=�=��q�!�4�5�
�4�=�=��q�!�4�5�
�4�=�=��r�2�6�7�
��
�
�d�B��3�4�
����t�R��4�5�
����t�Q��2�3�
�4�=�=��q�!�4�5�
��
�
�d�B��3�4�
����t�R��4�5�
����t�R��4�5�
�4�=�=��r�2�6�7�
��
�
�d�B��3�4�
����t�R��4�5�
����t�Q��2�3�
�4�=�=��q�!�4�5�
����t�R��4�5�
�4�=�=��r�2�6�7�
�4�=�=��q�!�4�5�
����t�R��4�5�
�4�=�=��r�2�6�7�
�4�=�=��q�!�4�5�5
��:$,��I�x����	��2����4�4�Y�?��� � ���2�3�2�$,�2�2�s�%.I�I'	c��Gd�d|j�}|ddd�}|j|j��}|j||�y)Nc��eZdZy)�:TestDate.test_fromisoformat_subclass.<locals>.DateSubclassNr�r!r-r+r�r�er�r-r�r�r�r_)r8r�r�r�)r*r�rur�s    r+�test_fromisoformat_subclassz$TestDate.test_fromisoformat_subclassdsH��	�4�=�=�	��$��B�
'���*�*�2�<�<�>�:�����e�\�2r-c��gd�}|D];}|jt�5|jj|�ddd��=y#1swY�HxYw)N)rrz	009-03-04�	123456789z
200a-12-04z
2009-1a-04z
2009-12-0az
2009-01-32z
2009-02-29z
2019-W53-1z
2020-W54-1z
0000-W25-1z10000-W25-1z
2020-W25-0z
2020-W25-8u2009�02�28)r�r�r8r��r*�bad_strs�bad_strs   r+�test_fromisoformat_failsz!TestDate.test_fromisoformat_failsnsD��
��& �G��"�"�:�.��
�
�+�+�G�4�/�.� �.�.�s�A�A	c���ddtjd�g}|D];}|jt�5|jj|�ddd��=y#1swY�HxYw)Ns
2009-03-01z
2009-03-01��io�StringIOr�r�r8r��r*�	bad_types�bad_types   r+�"test_fromisoformat_fails_typeerrorz+TestDate.test_fromisoformat_fails_typeerror�sP��"�D�"�+�+�l�*C�D�	�!�H��"�"�9�-��
�
�+�+�H�5�.�-�"�-�-���A�A#	c�2�ddddddddd	d
ddd
tddftddfg}|D]g}|j|��5|j|�}|j	�}|jj
|�}|j
||�ddd��iy#1swY�txYw)N)r�rWrQ)r�rrU)i�r�r)r�rrU)r�r�r�r�)r~r�r�)rNrr)rNr�r�r�)rzr�r�r�)r'r�r�rr�r�)�	datecomps)rrr.r8r��fromisocalendarr))r*�datesr��dobj�isocal�d_roundtrips      r+�test_fromisocalendarzTestDate.test_fromisocalendar�s���
�������������
�a��O�
�b�"��
��$�I����	��2�$�t�}�}�i�0���)�)�+��;�d�m�m�;�;�V�D��� � ��{�3�
3�2��2�2�s�AB
�
B	c���gd�}|D]T}|j|��5|jt�5|jj|�ddd�ddd��Vy#1swY�xYw#1swY�mxYw)N)
)r�rr)r�r
r)r��6r)r�rr)r�rr
)r�r�)r�r�r)r\rr)rrr)i��rr)�rr)r�r�r)r�rr��r�)r.r�r�r8r�)r*�isocalsr�s   r+�!test_fromisocalendar_value_errorsz*TestDate.test_fromisocalendar_value_errors�sb��
�� �F����V��,��&�&�z�2�1�D�M�M�1�1�6�:�3�-�,��2�2��-�,�s"�A+�A�A+�A(�$A+�+A4	c��ttd�g}g}d}td�D]<}|D]5}t|�}|||�||<|j	t|���7�>|D]T}|j
|��5|jt�5|jj|�ddd�ddd��Vy#1swY�xYw#1swY�mxYw)Nc��yr/r!)�xs r+r@z;TestDate.test_fromisocalendar_type_errors.<locals>.<lambda>�s��dr-)r�rrrQr�)r�r(rg�listr�r�r.r�r�r8r�)r*�
err_txformersr�rZrm�txformer�err_valr�s        r+� test_fromisocalendar_type_errorsz)TestDate.test_fromisocalendar_type_errors�s������
�
������q��A�)���t�*��%�g�a�j�1���
����u�W�~�.�*���F����V��,��&�&�y�1�1�D�M�M�1�1�6�:�2�-�,��1�1��-�,�s$�4C�
B7�$C�7C�<C�C	N)1rGr_r`rr8r�r�rorwrr�rnr�r�r�r�r�r�r�r�r�r�r�r�r�rr�rr&r�r6r�rKr�rQr^rdrr�r�r�r�r�r�r�r�r�r�r�r!r-r+rWrWQs����H�$�&�-�^A�2B�,$�204�dA�	%�&�.�
A�:L�G�<	,�$,�L6�@�( �T
� 5�:	?�E�-�2C�4�%?�N:�4+�
D�?�*A�D�4*2�X?�C�4,�(!3�F3�5�26�4�<;�,;r-rWc��eZdZdZy)�SubclassDatetimerNrSr!r-r+r�r��rUr-r�c�X�eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej6d�d��Zd�Zej6d�d��Zd�Zd�Z d�Z!d�Z"d�Z#e$jJe&jNd k(d!�d"��Z(e$jJe&jNd k(d!�d#��Z)d$�Z*d%�Z+d&�Z,d'�Z-d(�Z.d)�Z/d*�Z0d+�Z1ej6d,�d-��Z2d.�Z3d/�Z4d0�Z5d1�Z6d2�Z7d3�Z8d4�Z9d5�Z:d6�Z;d7�Z<d8�Z=d9�Z>d:�Z?y;)<�TestDateTimec��|jddddd�}|j|jd�|j|jd�|j|jd�|j|j
d�|j|jd�|j|jd�|j|jd�y)NrYrQrr�r�	r8r)rZr[r�rarrrerts  r+r�z"TestDateTime.test_basic_attributes�s���
�]�]�4��A�r�1�
-��������$�'�������1�%��������#�������"�%�������A�&�������A�&��������+r-c	��|jddddddd�}|j|jd�|j|jd�|j|jd�|j|j
d�|j|jd�|j|jd�|j|jd�y)NrYrQrr�r��@r�rts  r+�test_basic_attributes_nonzeroz*TestDateTime.test_basic_attributes_nonzero�s����]�]�4��A�r�2�r�4�
8��������$�'�������1�%��������#�������"�%�������B�'�������B�'��������.r-c
���|jddddddd�|jj�fD]�}t|�}|j|j	d��|d	d}t|�}|j
||�|j|j|j|j|j|j|j|j�}|j
||���y)
NrrUrQrWrRrYrTr�r�)r8r�r�r�r?r�r)rZr[r�rarrrer^s    r+r�zTestDateTime.test_roundtrip�s����=�=��A�q�!�Q��1�5��=�=�$�$�&�(�B��R��A��O�O�A�L�L��5�6��!�"��A��q�'�C����R��%��-�-�������2�6�6� "������B�I�I� "���0�C�
���R��%�(r-c
���|jddddddd�}|j|j�d�|j|jd�d�|j|jd	�d
�|j|jd�d�|j|jd
�d�|j|jd��d�|j|jd��d�|j|jd��d�|j|jd��d�|j|jd��d�|j|jd��d�|j|jd	d��d�|jt|jd��|jt|jd
��|jt|�d
�|jdddddddtj��}|j|jd��d�|jddddddd�}|j|jd��d �|jdddddd�}|j|jd��d�|j|jd��d�|j|jd��d!�|jddd�}|j|j�d"�|j|jd�d"�|j|jd	�d#�|jt|�d#�ttd$�%�d&�}|jddd|��}|j|j�d'�y)(NrrUrQrWrRr�z0001-02-03T04:05:01.000123r�� z0001-02-03 04:05:01.000123�z0001-02-0304:05:01.000123ru0001-02-03�04:05:01.000123r���timespecz
0001-02-03T04rfz0001-02-03T04:05r�z0001-02-03T04:05:01rPz0001-02-03T04:05:01.000r��auto)�sepr�z0001-02-03 04:05�foo�L@rz0001-02-03T04:05:01.999+00:00z0001-02-03T04:05:01.999z0001-02-03T04:05:01.000000z0002-03-02T00:00:00z0002-03-02 00:00:00�r��XXXz0002-03-02T00:00:00+00:00:16)
r8r)r�r�r�r�rr1rbrrs   r+r�zTestDateTime.test_isoformat
s9���M�M�!�Q��1�a��C�0���������+G�H�������S�)�+G�H�������S�)�+G�H�������V�,�.M�N�������X�.�:�	<�������g��6��H�������i��8�:L�M�������i��8�:O�P�������n��=�?X�Y�������n��=�?[�\�������f��5�7S�T��������y��A�CU�V����*�a�k�k�E��B����*�a�k�k�H��E�����Q��!=�>��M�M�!�Q��1�a��F�8�<�<�M�H��������n��=�?^�_��M�M�!�Q��1�a��F�3��������n��=�?X�Y��M�M�!�Q��1�a��+��������f��5�7L�M�������n��=�?X�Y�������n��=�?[�\��M�M�!�Q��"���������+@�A�������S�)�+@�A�������S�)�+@�A�����Q��!6�7�
��2�.��
6���M�M�!�Q��"�M�-���������(F�Gr-c
�&�dtd��fdtd��fdtdd�	�fd
tddd
��fdtdddd��fg}ddtjfdttd��fg}||D����cgc]"\}}dD]\}}||zt||z�f���$c}}}}z
}|jdddddd�}d}|D]7\}	}
|j	|
��}||	z}|j|
��5ddd��9ycc}}}}w#1swY�LxYw)N�05:00rRr��02:00rU�06:27rYr.r��12:32:30r�r�rr%�02:04:09.123456rWr�rbr'�rN�+00:00r�)�-r
)�+rr�r�%z2016-04-01T12:37:09r��tzi�rrr1r8rr.)
r*�	tzoffsets�tzinfosrrV�prefix�sign�dt_base�exp_base�exp_tzrru�exps
             r+�test_isoformat_timezonez$TestDateTime.test_isoformat_timezone6s5��
�i�a�(�)�
�i�a�(�)�
�i�a��4�5�
���R��D�E�
�	��1�a�V\� ]�^�
�	�
�
�x�|�|�$�
�x�	�!��-�.�
��	� )�
� )���"� 5�����h�
����� 3�4� 5�
5� )�
�	
���-�-��a��B��A�6��(��"�K�F�C������,�B��V�#�C����#��&�&�#��
�'�&�s�;'C?�3D�D	c	�2�|jddddddd�}|j|jd�t|��|j	t
d	�5|jd�ddd�Gd
�d|j�}|ddddddd�}|j|jd�d�Gd�d
|j�}|ddddddd�}|j|jd�t|��dD]�}|j|j|�|j
|��|j|j|�|j
|��|j|j|�d
���y#1swY��$xYw)Nr�r�rrWrRrr�rr�c��eZdZd�Zy)�#TestDateTime.test_format.<locals>.Ac��yr�r!r2s r+rz+TestDateTime.test_format.<locals>.A.__str__]rr-Nrr!r-r+r�r\rr-r�c��eZdZd�Zy)�#TestDateTime.test_format.<locals>.Bc��yrr!r	s  r+r�z,TestDateTime.test_format.<locals>.B.strftimedrr-Nrr!r-r+rr!crr-rrr
rs       r+rzTestDateTime.test_formatTsW��
�]�]�4��B��1�a��
5��������r�*�C��G�4�
�
#�
#�I�/E�
F��M�M�#��G�	��
�
�	�
�d�A�r�1�a��C�(��������b�)�3�/�	��
�
�	�
�d�A�r�1�a��C�(��������b�)�3�r�7�3��C�
���R�]�]�3�/����S�1A�B����Q�\�\�#�.����C�0@�A����Q�\�\�#�.��4�
�#G�
F�s�F�Fc	�D�ddl}|jddddddd�}|j|j�d�|jddd	dddd�}|j|j�|j|j|j����y)
NrrYrQrU�rRr�zSat Mar  2 18:03:05 2002r�)rr8r)r�r�r�)r*rr�s   r+�test_more_ctimezTestDateTime.test_more_ctimeqs�����M�M�$��1�b�!�Q��4���������$>�?�
�M�M�$��2�r�1�a��5���������J�D�J�J�{�t�{�{�1�;�;�=�/I�$J�Kr-c	�~�|jdddddd�}|jdddddd�}|jdddddd�}|j||�|j||kD�|jtddd	d
d
d�}t	d��}||z}|j||z
|�|j||k�y)
NrYrQrr�rrr�r�r�r�rdr�)r8r)r�rr)r*r�rO�dt3rls     r+�test_tz_independent_comparingz*TestDateTime.test_tz_independent_comparing�s����m�m�D�!�Q��1�a�0���m�m�D�!�Q��A�q�1���m�m�D�!�Q��1�a�0������c�"�����c�	�"��m�m�G�R��R��R��@��
�A�
&���B�h������s��B�'�����c�	�"r-c
��Gd�dt�}|jddddddd|dd��}|jt|jd�y)	Nc��eZdZd�Zy)�DTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfoc�0�Gd�dt�}|d�S)Nc��eZdZd�Zy)�ZTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname.<locals>.MyStrc��yr/r!)r*r�s  r+rzbTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname.<locals>.MyStr.replace�s��#r-N)rGr_r`rr!r-r+�MyStrr.�s��$r-r0rB)r�)r*rur0s   r+ryzKTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname�s��$�C�$��V�}�$r-N)rGr_r`ryr!r-r+�MyTzInfor+�s��
%r-r1r�rQrUrrB�%Z)rbr8r�r�r�)r*r1r�s   r+�%test_strftime_with_bad_tzname_replacez2TestDateTime.test_strftime_with_bad_tzname_replace�sI��	%�{�	%�
�M�M�$��1�a��A�q�(�1�f�2E�F�����)�Q�Z�Z��6r-c
��|jtdd�|jtdd�|jt|jtdz
dd�|jt|jtdzdd�|jddd�|jddd�|jt|jddd�|jt|jddd�|jddd�|jddd�|jd	dd�|jt|jddd
�|jt|jddd�|jt|jddd�|jt|jd
dd�|jt|jddd�|jt|jddd�|jdddd�|jdddd�|jt|jdddd�|jt|jdddd�|jddddd�|jddddd�|jt|jddddd�|jt|jddddd�|jdddddd�|jdddddd�|jt|jdddddd�|jt|jdddddd�|jddddddd�|jddddddd�|jt|jddddddd�	|jt|jddddddd�	|jt|jdddd��|jt|jdddd��|jt
|jddddddddd�y)NrrNr�rr
rUryrzr{rr|r}r~r�r�r�r
r+r�rSr&r��fold)r8rrr�r�r�r2s r+rz+TestDateTime.test_bad_constructor_arguments�s����
�
�g�q�!�$��
�
�g�q�!�$����*�d�m�m�W�Q�Y��1�E����*�d�m�m�W�Q�Y��1�E��
�
�d�A�q�!��
�
�d�B��"����*�d�m�m�T�1�a�@����*�d�m�m�T�2�q�A��
�
�d�A�r�"��
�
�d�A�r�"��
�
�d�A�r�"����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�a�@����*�d�m�m�T�1�b�A��
�
�d�A�r�1�%��
�
�d�A�r�2�&����*�d�m�m�T�1�b�"�E����*�d�m�m�T�1�b�"�E��
�
�d�A�r�2�q�)��
�
�d�A�r�2�r�*����*�d�m�m�T�1�b�"�b�I����*�d�m�m�T�1�b�"�b�I��
�
�d�A�r�2�r�1�-��
�
�d�A�r�2�r�2�.����*�d�m�m�T�1�b�"�b�"�M����*�d�m�m�T�1�b�"�b�"�M��
�
�d�A�r�2�r�2�q�1��
�
�d�A�r�2�r�2�v�6����*�d�m�m���2�r�2�r�2�	7����*�d�m�m���2�r�2�r�!�	#�	
���*�d�m�m���2�B�	�	0����*�d�m�m���2�A�	�	/�	
���)�T�]�]���2�r�2�r�1�d�A�	?r-c���|jdddddd�}|jdddddd�}|j||�|jt|�t|��|di}d||<|jt|�d�|j||d�|j||d�|jd	ddd
dd�}|jd	ddd
dd�}|j||�|jt|�t|��|di}d||<|jt|�d�|j||d�|j||d�y)NrNr�r�r�r�rrUr|rrRr�r�s    r+r�zTestDateTime.test_hash_equality�sN���M�M�$��B��B��3���M�M�$��B��B��3������A������a��$�q�'�*��!�f����A������S��1�%�����Q���#�����Q���#��M�M�$��Q��Q��3���M�M�$��Q��Q��3������A������a��$�q�'�*��!�f����A������S��1�%�����Q���#�����Q���#r-c������|jddd��|jddd�}�|z
}|j|jdtt	ddd��z�|j|j
d�|j|jd�|jddd	d
d��tddd�}tdd
�}td��td�}|j�|z|jddd	dd��|j|�z|jddd	dd��|j�d|zz|jddddd��|j�|z
|jddd	dd��|j|�z|jddd	dd��|j�|z
�|z�|j�d|zz
|jddddd��|j��z|jdddd
d��|j��z
|jdddd
d��|j�|z|jdddd
d��|j�|z
|jdd	dd
d��|j�d|zz|jdddd
d��|j�d|zz
|jdddd
d��|j�|z�z
|�|j��z�z
��|j�|z�z
|�|j�|z�z
|�|j�|z
�z
|�|j��z
�z
��|j�|z
�z
|�|j�|z
�z
|�|j��|zz
|�|j���zz
��|j��|zz
|�|j��|zz
|�|j��|z
z
|�|j���z
z
��|j��|z
z
|�|j��|z
z
|�|j�|�z|z|zz|jddddddd��|j�|�z|z|zz�|z�z|z|z�|j�|�z|z|zz
|jdd	ddddd��|j�|�z|z|zz
�|z
�z
|z
|z
�dD]j�|jt��fd��|jt��fd��|jt��fd ��|jt��fd!���l|jt��fd"��|jt��fd#��|jt��fd$��|jt��fd%��|jt��fd&��|jt�fd'��|jt�fd(��|jt�fd)��y)*NrYrr�r�r�rWrrQrUr8rYrTrrTr$rrr7r�r�r�r�r�r|r�rRr�rYrpc�����zSr/r!rss��r+r@z0TestDateTime.test_computations.<locals>.<lambda>	rtr-c�����z
Sr/r!rss��r+r@z0TestDateTime.test_computations.<locals>.<lambda>	rtr-c�����zSr/r!rss��r+r@z0TestDateTime.test_computations.<locals>.<lambda>	rtr-c�����z
Sr/r!rss��r+r@z0TestDateTime.test_computations.<locals>.<lambda> 	rtr-c�����z
Sr/r!r�s��r+r@z0TestDateTime.test_computations.<locals>.<lambda>#	r�r-c�����zSr/r!r�s��r+r@z0TestDateTime.test_computations.<locals>.<lambda>%	r�r-c�����zSr/r!r�s��r+r@z0TestDateTime.test_computations.<locals>.<lambda>&	r�r-c�����zSr/r!r�s��r+r@z0TestDateTime.test_computations.<locals>.<lambda>'	r�r-c�����zSr/r!r�s��r+r@z0TestDateTime.test_computations.<locals>.<lambda>(	r�r-c�����zSr/r!rs�r+r@z0TestDateTime.test_computations.<locals>.<lambda>)	r�r-c�����zSr/r!rs�r+r@z0TestDateTime.test_computations.<locals>.<lambda>*	r�r-c�����zSr/r!rs�r+r@z0TestDateTime.test_computations.<locals>.<lambda>,	r�r-r�)	r*rjr��millisecrar�rir�rms	      @@@r+rnzTestDateTime.test_computations�s�����M�M�$��2�&���M�M�$��2�&����s��������F�S��t�T�1�1E�-F�$F�G�������q�)�����*�*�A�.��M�M�$��1�b�!�,���Q��4�(����D�!����l����|������T��4�=�=��q�!�R��#C�D�������4�=�=��q�!�R��#C�D�����R��W��d�m�m�D�!�Q��1�&E�F�����T��4�=�=��q�!�R��#C�D����$����D�M�M�$��1�b�!�$D�E�����T��1��u�9�-�����R��W��d�m�m�D�!�Q��A�&F�G�����S��$�-�-��a��B��"B�C�����S��$�-�-��a��B��"B�C�����T��4�=�=��q�!�R��#C�D�����T��4�=�=��q�"�b�!�#D�E�����R��W��d�m�m�D�!�Q��A�&F�G�����R��W��d�m�m�D�!�Q��A�&F�G����!�d�(�a���.����!�c�'�Q���,����!�d�(�a���.����!�h�,�!�+�X�6����!�d�(�a��$��/����!�c�'�Q����-����!�d�(�a��$��/����!�h�,�!�+�h�Y�7�����a�$�h��$��/�����a�#�g����-�����a�$�h��$��/�����a�(�l�+�h�Y�7�����a�$�h���.�����a�#�g���,�����a�$�h���.�����a�(�l�+�X�6�����d�S�j�4�/�(�:�;����t�Q��B��1�d�C�	E�����d�S�j�4�/�(�:�;���H��+�t�3�x�?�	A�����d�S�j�4�/�(�:�;����t�Q��B��2�v�F�	H�����d�S�j�4�/�(�:�;���H��+�t�3�x�?�	A��A����i��5����i��5����i��5����i��5�	�	
���)�_�5����)�_�5����)�_�5����)�%5�6����)�%5�6����)�]�3����)�^�4����)�]�3r-c��d}|j|�}tD];\}}}|j||�}|j|�}|j	||��=|j	|j�|j
d��y)N�rYrTr�r7r�r�rUr)r�s        r+r�zTestDateTime.test_pickling.	sz��)���t�}�}�d�#��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+�*8�	
������*�D�,>�,>�q�,A�Br-c	�r�|jddddddd�}ttjdz�D]�}tj||�}tj
|�}|j
|jd�|j
|jd�|j
|jd���y)	Nr�rUrTr�0ri��r)
r8rgr��HIGHEST_PROTOCOLr�r�r)rZr[r�)r*rir�r�rjs     r+�test_more_picklingzTestDateTime.test_more_pickling7	s����M�M�$��1�b�"�b�&�9���6�2�2�Q�6�7�E����Q��&�A����Q��A����Q�V�V�T�*����Q�W�W�a�(����Q�U�U�A�&�8r-c���d}t|�}tD]Z\}}}|j||�}|j|�}|j	||�|jt
|t���\y)NrH)r�r�r�r�r)r�rgr�s        r+�test_pickling_subclass_datetimez,TestDateTime.test_pickling_subclass_datetime@	sd��)����&��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+��O�O�J�w�0@�A�B�	*8r-c��gd�}d}|j|�}|D])}tD]}||d��}|j||�� �+y)N)s@cdatetime
datetime
(S'\x07\xdf\x0b\x1b\x14;\x01\x00\x10\x00'
tR.s#cdatetime
datetime
(U
�;tR.s$�cdatetime
datetime
U
�;�R.)r-r�r.r7r�rrIr/r0r2r4s       r+r6z!TestDateTime.test_compat_unpickleI	sP��	
��.�� �4�=�=�$�'���D�%����x�8��� � ��(�3�&�r-c��gd�}|j|�}|j|�}|j||�|j||k�|j||k\�|j||k7�|j||k�|j||kD�t	t|��D�]}|dd}||dz||<|j|�}|j||k�|j||kD�|j||k�|j||k\�|j||k7�|j||k7�|j||k(�|j||k(�|j||kD�|j||k�|j||k\�|j||k���y)N)rNr�ryr7r�rrdr)r8r)r�r�rgr�)r*r�r�r�rmr\s      r+�test_more_comparezTestDateTime.test_more_compare[	s���2��
�T�]�]�D�
!��
�T�]�]�D�
!������R� �����b��!�����b��!�����r��"�����b��!�����b��!��s�4�y�!�A��1�g�G��a��1��G�A�J������(�B��O�O�B��G�$��O�O�B��G�$��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%����R�2�X�&����R�2�X�&����R�"�W�%����R�"�W�%����R�2�X�&����R�2�X�&�"r-c���|j|j|j�|j|j|j�|j|j
|j�|j|j|j�|j|j|j�|j|j|j�yr/)
r)rrZrr[rr�r rar!rr"r)r*rr]s   r+�verify_field_equalityz"TestDateTime.verify_field_equality|	s�������)�)�3�8�8�4�������#�)�)�4�����)�)�3�7�7�3�����)�)�3�8�8�4�������#�*�*�5�������#�*�*�5r-c��ddl}|j�}|j|�}|jj|�}|j	||�y�Nr)r�	localtimer8r�rT�r*rr�rr]s     r+r�zTestDateTime.test_fromtimestamp�	sF���
�T�Y�Y�[��!�4�>�>�"�%���m�m�)�)�"�-���"�"�8�S�1r-c�b�ddl}|jj|j���y)Nr)r�)rr8r�)r*rs  r+�test_fromtimestamp_keyword_argz+TestDateTime.test_fromtimestamp_keyword_arg�	s$���	
�
�
�#�#�i�d�i�i�k�#�:r-c��ddl}|j�}|j|�}|jt�5|jj|�}ddd�|j
|�y#1swY�xYwrV)r�gmtime�assertWarns�DeprecationWarningr8�utcfromtimestamprTrXs     r+�test_utcfromtimestampz"TestDateTime.test_utcfromtimestamp�	sb���
�T�Y�Y�[���4�;�;�r�?��
�
�
�0�
1��-�-�0�0��4�C�2��"�"�8�S�1�2�
1�s�A4�4A=�EST+05EDT,M3.2.0,M11.1.0c	���|jddd�}|j|j�d�|jddddddd�}|j|j�d�|jddd	dd
�}|jd��}|j|jj	|j��|td��z
�|j|jj	|j��|td��z�|jdd	ddd
�}|j|jj	|j��|�|jddd�|jd
dd�fD]>}	|j�}|j|jj	|�|��@y#t$rY�MwxYw)Nrrg��@rUrQrW���6�@rbr�rr5r�i'r�)r8r)r�rr�rr�)r*r��t0r�r�s     r+�test_timestamp_naivez!TestDateTime.test_timestamp_naive�	s����M�M�$��1�%����������0��M�M�$��1�a��A�q�1���������;�	=��]�]�4��B��2�
.��
�Z�Z�Q�Z�
��������4�4�R�\�\�^�D��i�a�0�0�	2�������4�4�R�\�\�^�D��i�a�0�0�	2�
�M�M�$��A�q�"�-��������4�4�Q�[�[�]�C�Q�G��-�-��!�A�&��
�
�d�2�b�(A�B�A�
D��K�K�M��� � ����!<�!<�Q�!?��C�
C��!�
��
�s�G�	G �G c��|jdddtj��}|j|j	�d�|jdddddddtj��}|j|j	�d�|jdddddddttd	�
�d���}|j|j	�d�y)
Nrrrr~rUrQrWg�7��@r	r�r�rc)r8rr1r)r�rr�s  r+�test_timestamp_awarez!TestDateTime.test_timestamp_aware�	s����M�M�$��1�X�\�\�M�:����������,��M�M�$��1�a��A�q����M�F���������1�	3��M�M�$��1�a��A�q�!)�)�"�*=�u�!E�
�
G���������9�	;r-zMSK-03c����fd�}�jj|fD�]}|d�}�j|jd��j|jd�|d�}	|d�}�j|jd��j|jd�|d�}�j||�|d�}�j||�|d	�}�j||�|d
�}�j|jd��j|jd�|d�}�j||�|d
�}�j||�|d�}�j|jd��j|jd�|d�}�j|jd��j|jd�|d�}�j|jd��j|jd���y#t
$rY��wxYw)Nc����jt�5�jj|i|��cddd�S#1swYyxYwr/)r]r^r8r_)r�r�r*s  �r+r_z@TestDateTime.test_microsecond_rounding.<locals>.utcfromtimestamp�	s7����!�!�"4�5�5�t�}�}�5�5�t�F�v�F�6�5�5�s	�=�Arg���ư>g���ư�r�r&g:�0�yE�g1E��2��gH�����z�r�i�#gH�����z>g1E��2�>g<"2��?g�P���?rr�r�)r8r�r)rre�OSError)r*r_�ftsrzr��	minus_oner�s`      r+r�z&TestDateTime.test_microsecond_rounding�	s����	G��M�M�/�/�$�&�C��q�6�D����T�[�[�!�,����T�-�-�q�1��d�)�C�
8���J�	�
� � ��!1�!1�2�6�� � ��!6�!6��?���J��� � ��D�)���J��� � ��I�.���J��� � ��D�)���L��� � ����2�.�� � �����7��D�	�A����Q��%��D�	�A����Q��$��J��A����Q�X�X�q�)����Q�]�]�F�3��I��A����Q�X�X�q�)����Q�]�]�A�.��F��A����Q�X�X�q�)����Q�]�]�D�1�K&���
��
�s�,H2�2	H?�>H?c��|jd�5|jjjtj
��}|j
�}|j|d�ddd�|jd�5|jjjtj
d��}|j
�}|j|d�ddd�y#1swY�{xYw#1swYyxYw)Nzminimum UTCrl����w#o9zmaximum UTCr�rreg�� �MB)	r.r8r�rrr1r�r)r�)r*�min_dt�min_ts�max_dt�max_tss     r+�test_timestamp_limitsz"TestDateTime.test_timestamp_limits�	s���
�\�\�-�
(��]�]�&�&�.�.�h�l�l�.�C�F��%�%�'�F�
���V�\�2�
)��\�\�-�
(��]�]�&�&�.�.�h�l�l�;<�/�>�F��%�%�'�F�
���V�^�4�)�
(�)�
(��)�
(�s�AC#�AC/�#C,�/C8c��	|jjd�|jj
t
d��z}|j�}|jjjd��}|jjt
d��z
j�t
d	d
d
��j�z}d||fd
||ffD]P\}}}|j|||��5|jj|�}|j||�ddd��Rd|t
dd��j�z
fd|t
d��j�z
fd|t
d��j�zfd|t
d��j�zfg}	|	D]`\}}|j||��5|jttf�5|jj|�ddd�ddd��by#ttf$r|j	d�Y��wxYw#1swY��exYw#1swY�HxYw#1swY��xYw)N����Test not valid on this platformrrQr�rer�r�r�r�r%�minimum�maximum�r�r�Too small by a littler�r��Too small by a lotr��Too big by a little�Too big by a lot�r�)r8r�rjr�rHr�rr�r�rr�r.r)r�r�)
r*rorprqrr�	test_namer�rr�r�s
          r+�test_fromtimestamp_limitsz&TestDateTime.test_fromtimestamp_limits
s��	=��M�M�'�'�
�3����"�"�Y�A�%6�6���!�!�#�����"�"�*�*�q�*�9���=�=�$�$�y�r�':�:�E�E�G��"�b�"�=�K�K�M�N���F�F�+��F�F�+�*
�%�Y��H����i�B���B����4�4�R�8��� � ���2�C�B�	*
�%�f�y�a�r�/J�/X�/X�/Z�&Z�[�
!�6�I�3�,?�,M�,M�,O�#O�P�
"�F�Y�A�->�-L�-L�-N�$N�O�
��)��*=�*K�*K�*M�!M�N�	
�
�(�M�I�r����i�B��/��&�&�
�M�'B�C��M�M�/�/��3�D�0�/�(��;��'�	=��M�M�;�<�	=�� C�B��D�C��0�/�sA�H�).H)�7I�H6�/I� H&�%H&�)H3	�6H?�;I�I	c	��|jt�5	|jjd�ddd�|jjjtj��}|j�}|jjjdtj��}|j�}d||jd��fd||jd��ffD]o\}}}|j|||��5|jt�5	|jj|�}ddd�|j|�ddd��qd	|d
z
fd|t!d�
�j#�z
fd|d
zfd|t!d�
�j#�zfg}
|
D]~\}}|j||��5|j%t&t
f�5|jt�5|jj|�ddd�ddd�ddd���y#tt
f$r|j
d�Y��wxYw#1swY��$xYw#tt
f$r%}	|j
t|	��Yd}	~	��Ud}	~	wwxYw#1swY��_xYw#1swY���xYw#1swY��xYw#1swY��xYw#1swY��)xYw)Nrurvrr�rerrxryrzr{rr|r�rQr}r~r)r]r^r8r_rjr�rHr�rrr1r�r�r.r�r)rr�r�r�)r*rorprqrrr�r�rr��excr�s           r+�test_utcfromtimestamp_limitsz)TestDateTime.test_utcfromtimestamp_limits+
sq��
�
�
�0�
1�
A��
�
�.�.�z�:�2����"�"�*�*�(�,�,�*�?���!�!�#�����"�"�*�*�q����*�N���!�!�#���F�F�N�N�$�N�$?�@��F�F�N�N�$�N�$?�@�*
�%�Y��H����i�B���B��%�%�&8�9�0�!%���!?�!?��!C��:�� � ���2�C�B�	*
�%�f�q�j�1�
!�6�I�3�,?�,M�,M�,O�#O�P�
"�F�Q�J�/�
��)��*=�*K�*K�*M�!M�N�	
�
�(�M�I�r����i�B��/��&�&�
�M�'B�C��)�)�*<�=��
�
�6�6�r�:�>�D�0�/�(��=�]�+�
A��
�
�?�@�
A��2�
1��($�]�3�0��
�
�c�#�h�/�/��0��:�9��C�B��(>�=��D�C��0�/�s��I�H.�	J&�J�!I"�<J&�K�!J?�7J3	�J?�K�. I�I�I�I�I�"J	�1J	�J�J	�J�J#�J&�&J0	�3J<
�8J?�?K�K�K	c�h�dD]-}|jt|jj|��/yr�r�r�s  r+r�z&TestDateTime.test_insane_fromtimestampU
r�r-c��dD]K}|jt�5|jt|jj
|�ddd��My#1swY�XxYwr�)r]r^r�r�r8r_r�s  r+�test_insane_utcfromtimestampz)TestDateTime.test_insane_utcfromtimestamp^
sK��
$�F��!�!�"4�5��!�!�-����1O�1O�"(�*�6�5�$�5�5�s�,A�A	�win32z*Windows doesn't accept negative timestampsc�:�|jjd�y)N��������)r8r�r2s r+�!test_negative_float_fromtimestampz.TestDateTime.test_negative_float_fromtimestamph
s��	
�
�
�#�#�E�*r-c���|jt�5|jjd�}ddd�|j	|jddddddd��y#1swY�1xYw)	Nr�i�r�r�r�r�r�i�~)r]r^r8r_r))r*r�s  r+�$test_negative_float_utcfromtimestampz1TestDateTime.test_negative_float_utcfromtimestampn
sX��
�
�
�0�
1��
�
�.�.�u�5�A�2�����D�M�M�$��B��B��F�K�L�2�
1�s�A"�"A+c���ddl}td��}td�D]�}|jt�5|j
j
�}ddd�|jt�5|j
j|j��}ddd�tz
�|ks��n|jtz
�|�y#1swY��xYw#1swY�IxYw)Nrrr�rQ)
rrrgr]r^r8�utcnowr_rf�assertLessEqual)r*r�	tolerancer�from_now�from_timestamps      r+�test_utcnowzTestDateTime.test_utcnowt
s�����a�(�	��1�X�E��!�!�"4�5��=�=�/�/�1��6��!�!�"4�5�!%���!?�!?�	��	�	��!L��6��>�H�,�-��:���	
���S��(�!:�;�Y�G�6�5��6�5�s�C�,+C�C	�C(	c�|�d}d}tj|j||�}|jj||�}|j	||�|jt
|�|j�|jt
|�|j�gd�}|D]p\}}|j||��5tj|j||�}|jj||�}|j	||�ddd��r|jj}|j	|dd�j�dtz�|j	|dd�j�d	tz�|j	|d
d�j�tddd�
��ddtjtjdffD]�\}}|dkrd}	|}
nd}	|}
t|
dzd�\}}dj|	|||�}
||
d�}|j	|j�t|���|j	|j�|���d\}
}||
|�}|j	|j�dt zdtzz�|j	|j�d�|j	|j#|�|
�|j	|dd�j$d�|j't(�5|dd�ddd�|j't(�5|dd�ddd�|j't(�5|dd�ddd�y#1swY���xYw#1swY�exYw#1swY�JxYw#1swYyxYw)Nz2004-12-01 13:02:47.197z%Y-%m-%d %H:%M:%S.%f))u2004-12-01�13:02:47.197u%Y-%m-%d�%H:%M:%S.%f)u2004�12-01 13:02:47.197u%Y�%m-%d %H:%M:%S.%f)u2004-12-01 13:02�47.197u%Y-%m-%d %H:%M�%S.%f)�stringr�z+0002�%zrUz-0002rSz-00:02:01.000003rrQ)rfr�r�)rr)r�GMTrr
rrSz{}{:02d}{:02d} {}�%z %Zr�)z	+1234 UTCr�r�r�rr2z-2400z-000�z)�	_strptime�_strptime_datetimer8�strptimer)r0r�r.rv�MINUTErr�rryrr�rr�rr�r�)r*r�r�rr]�inputsr��	tzsecondsryrr�r�rf�dtstrrurs                r+�
test_strptimezTestDateTime.test_strptime�
s ��*��'���/�/��
�
�v�v�N���m�m�$�$�V�V�4������3�'��
�
�d�8�n�d�m�m�4��
�
�d�3�i����/�
��
%�N�F�F����V�F��;�$�7�7��
�
�v�8>�@���m�m�,�,�V�V�<��� � ��3�/�	<�;�%��=�=�)�)������'�4�0�:�:�<�a�&�j�I�����'�4�0�:�:�<�b�6�k�J�����'��.�8�8�:�
�q�!�!�
<�<�	
�
#-�j�#(�>�>�/�5�<�<��?�!C�"E��I�v��1�}���$�*����#��#�G�R�K��4�N�E�7�'�.�.�t�U�G�V�L�E��%��)�B����R�\�\�^�Y�y�-I�J����R�Y�Y�[�&�1�"E�*�
��s�
�e�S�
!����������d��R�&�[�)@�A��������e�,�������S�)�5�1�	
����%��.�5�5�t�<�
�
�
�z�
*�H�W�d�,C�
*�
�
�
�z�
*�H�V�T�,B�
*�
�
�
�z�
*�H�S�$�,?�
*�
*�S<�;��N+�
*��
*�
*��
*�
*�s1�=AN
�,
N�
N&�:
N2�
N	�N#�&N/�2N;c
�^�|jj}|jt�5|dd�}ddd�|jdddddd�}|jdddddd�}|jdddd	d	d	�}|jddd
d	d	d	�}ddd|fd
dd|fddd|fddd|fddd|fddd|fddd|fddd|fddd|fd dd!|fg
}|D]G\}}	}
}d"|z}|j	||	|
|�#�5||	|
�}|j|||�$�ddd��Iy#1swY��xYw#1swY�`xYw)%Nz01/02/3 04:05:06z%d/%m/%y %H:%M:%Sr�rUrrWrRrYr�rOz
1/02/03 4:5:6r�z
01/2/03 4:5:6z%Hz01/02/03 4:05:06z%Mz01/02/03 04:5:06z%Sz01/02/03 04:05:6z%jz2/03 04am:05:06z%j/%y %I%p:%M:%Sz%Iz02/03 4am:05:06z%wz6/04/03z%w/%U/%yz%Wz6/4/2003z%u/%W/%Yz%Vz%u/%V/%Gztest single digit )�reasonr�r��target)�msg)r8r�r�r�r.r))r*r��newdater�rOr'�dt4r�r�r�r�r�s            r+�test_strptime_single_digitz'TestDateTime.test_strptime_single_digit�
s����=�=�)�)��
�
�
�z�
*��1�3F�G�G�+��m�m�D�!�Q��1�a�0���m�m�D�!�Q��1�a�0���m�m�D�!�Q��1�a�0���m�m�D�!�R��A�q�1��
�?�$7��=�
�?�$7��=�
�%�':�C�@�
�%�':�C�@�
�%�':�C�@�
�$�&8��=�
�$�&8��=�
�9�j�#�.�
�:�z�3�/�
�:�z�3�/�
��/5�*�F�F�F�F�)�F�2�F����V�%+�%+�%+��-�#�6�6�2��� � ��&�f� �=�-�-�/5�)+�
*��,-�-�s�
D�.D#�D �#D,	c���|jdddddd�}|j|j�d�|j|j�|j|j|j
|j|j|j|j�|j�t|jdd�j�z
dzd	f	�|j�}|j|j|j�|j|j|j�|j|j|j
�|j|j|j�|j|j |j�|j|j"|j�|j|j$|j��|j|j&|j�t|jdd�j�z
dz�|j|j(d	�y)
Nrzr�r�rYr��!)	rzr�r�rYr�r�rWr`r
rr
)r8r)r�rZr[r�rarrr�rcrrrrr r!r"r#r$r%)r*r��tts   r+�test_more_timetuplez TestDateTime.test_more_timetuple�
s����M�M�$��B��2�r�2���������(M�N���������&�&�!�'�'�1�5�5��&�&�!�(�(�A�H�H��)�)�+��+�+�-�$�q�v�v�q�!�*<�*F�*F�*H�H�1�L��	�	��[�[�]��������Q�V�V�,�������A�G�G�,�������Q�U�U�+�������Q�V�V�,�������A�H�H�-�������A�H�H�-�������Q�Y�Y�[�1�������Q�[�[�]�%)�!�&�&�!�Q�%7�%A�%A�%C�&D�FG�&H�	I�������b�)r-c	��|jddddddd�}|j|jd�d	�d
D]z\\}}}tt	d||���}|j|�
�}|j|jd�d|z�|j|jd�d|z��|	|jd�y#t$rYywxYw)Nrzr�r�rYr�r��/z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)))r�r�z	33.000123))r�r�33rU)r�r�r�rr�z-0200z%:zz-02:00:u%y�%m %H�%M)r8r)r�rrrr�)r*r�r�rlr�r�s      r+�test_more_strftimezTestDateTime.test_more_strftime�
s����M�M�$��B��2�r�2�6��������$=�>�$B�	D�F�J�G�Q��Q��9�1�a�b�I�I�J�B��	�	��	�$�A����Q�Z�Z��-�w��{�;����Q�Z�Z��.�	�A�
�>�	G�	�
�J�J�.�/��!�	��	�s�9C�	C�Cc	���|jddddddd�}|j|j�tddd��|j|j�tdddd��y)NrYrQrWr$�-��)r8r)rrrts  r+�test_extractzTestDateTime.test_extract	s\��
�]�]�4��A�r�2�q�$�
7���������D��q�!�$4�5��������D��R��D�$9�:r-c	��tddd�}tdddd�}|jddddddd�}|jj}|||�}|j	||�|||��}|j	||�|j	||j��|j	||j��|j	|||j�|j���|jt|�|jt||�|jt|||�|jt|||d�|jt|||dd	�|jt|d
d�|jt||d�|jt|d
|�|||tj�}|j|jtj�|||tj��}|j|jtj�t�}|||�}|j	|j�|�|j	|j�|�y)
NrYrQrWr$r�r�)rrrrUrrr)rrr8r�r)r�r�rr1r0r)r*r�r�rr�rus      r+�test_combinezTestDateTime.test_combines�����q�!�����R��D�!���=�=��q�!�R��Q��=���-�-�'�'��
�Q��]������X�&�
�!�!�
$������X�&�����B�G�G�I�&�����B�G�G�I�&�����W�R�W�W�Y����	�:�;����)�W�-����)�W�a�0����)�W�a��3����)�W�a��A�6����)�W�a��A�q�9����)�W�f�f�=����)�W�a��8����)�W�f�a�8��Q��8�<�<�
(���
�
�b�i�i����.�
�Q��(�,�,�
/���
�
�b�i�i����.��F��
�R��^���������A�&��������A�&r-c�R�|j}gd�}||�}|j||j��d}dD]?\}}|dd}|||<||�}|jd
i||i��}	|j||	�|dz
}�A|ddd�}|jt|jd�	�y)N)rrUrQrWrRrYrTr)rSrTrU�rarR�rrY�rrT�rer�rrNrUryr|rVr!rWrXs
          r+r^zTestDateTime.test_replace0s����m�m��$���D�z������t�|�|�~�.�
��1�L�D�&��1�g�G��G�A�J��G�}�H��$�,�,�0�$���0�C����X�s�+�
��F�A�1��4��B������*�d�l�l���>r-�EDT4c�*�|jj�}tdd�}|jt	td��d���}|j
|j�|�|jt|j||�|jt|j|�|j|��tdd��z}|j
|j|�|�|j
|j|�	�|�Gd
�dt�}|�}|jt|j|�|j
|j|��j|�|�Gd�d
t�}|�}|jt|j|�Gd�dt�}	|	�}
|j|
��}|jt�5|j�ddd�y#1swYyxYw)N�,�0044rXr��EDTrrWr��r�c��eZdZd�Zd�Zy)�+TestDateTime.test_astimezone.<locals>.Bogusc��yr/r!rts  r+rvz5TestDateTime.test_astimezone.<locals>.Bogus.utcoffsetV���Dr-c��td�SrVrrts  r+r{z/TestDateTime.test_astimezone.<locals>.Bogus.dstWs��i��l�2r-N�rGr_r`rvr{r!r-r+�Bogusr�Us��0�2r-r�c��eZdZd�Zd�Zy)�/TestDateTime.test_astimezone.<locals>.AlsoBogusc��td�SrVrrts  r+rvz9TestDateTime.test_astimezone.<locals>.AlsoBogus.utcoffset]s��I�a�L�%8r-c��yr/r!rts  r+r{z3TestDateTime.test_astimezone.<locals>.AlsoBogus.dst^���dr-Nr�r!r-r+�	AlsoBogusr�\s��8�*r-r�c��eZdZd�Zd�Zy)�,TestDateTime.test_astimezone.<locals>.Brokenc��yr�r!rts  r+rvz6TestDateTime.test_astimezone.<locals>.Broken.utcoffsetcs��Ar-c��yr�r!rts  r+r{z0TestDateTime.test_astimezone.<locals>.Broken.dstd���ar-Nr�r!r-r+�Brokenr�bs��-�'r-r�)r8r�rbrrrr)�
astimezoner�r�rr�)r*rur��dt_utc�dt_fr��bogr��alsobogr��broken�	dt_brokens            r+�test_astimezonezTestDateTime.test_astimezoneIs���
�]�]�
�
�
 ����F�#�����8�I�B�,?��#G��H���������&�1����)�R�]�]�A�q�9����)�R�]�]�B�7��z�z��z�#�i�a��&D�D��������q�)�4�0�������!��,�d�3�	3�F�	3��g�����*�b�m�m�S�9�������3��/�:�:�1�=�t�D�	+��	+��+�����*�b�m�m�W�=�	(�V�	(�����J�J�f�J�-�	�
�
�
�y�
)�� � �"�*�
)�
)�s�/H	�	Hc���G�fd�d�j�}d}�j|�}||iddi��}�j|j|��j|jd��j|jd��j|j�|j���j|j
d�|j|jz|jzdz
�y)Nc�"��eZdZdZ�fd�Zd�Zy)�.TestDateTime.test_subclass_datetime.<locals>.Cr}c���|j�}|jd�}�jj|g|��i|��}||_|Srirjrls      �r+r�z6TestDateTime.test_subclass_datetime.<locals>.C.__new__orpr-c�T�||jz|jz|jzSr/)rZr[rrrs  r+rtz6TestDateTime.test_subclass_datetime.<locals>.C.newmethvs#���t�y�y�(�4�:�:�5����C�Cr-Nrur2s�r+rwr�ls����I�
�
Dr-rw)r�rWr_r�r
�)r�rTr}rV)
r8r)rFrvr�rcrtrZr[rrys`    r+rz#TestDateTime.test_subclass_datetimejs����	D��
�
�	D�'���d�m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�Y�Y�*>�*-�*�*�+5�78�+9�	:r-c���G�fd�d�j�}d}d}d}||�}�j||��j|jd�|j	�}d|f|fd|t
jf|jt
j�fd|f|fd	|f|fd
|df|fdt|d
d�t|dd�f|fg}|D]�\}}	}
||fD]�}�jt|�|��5t||�}|dk(r$�jt�5||	�}
ddd�n||	�}
�j
|��j|
|
��j|
jd�ddd�����y#1swY�VxYw#1swY��xYw)Nc���eZdZ�fd�Zy)�TTestDateTime.test_subclass_alternate_constructors_datetime.<locals>.DateTimeSubclassc�V���jj|g|��i|��}d|_|Sr~rr�s    �r+r�z\TestDateTime.test_subclass_alternate_constructors_datetime.<locals>.DateTimeSubclass.__new__�r�r-Nr�r2s�r+r
r��r�r-r
)r�rWr_r�r�rbz2003-04-14T12:30:15.123456gh͏�TM�ArTr�r_r�r�z%Y-%m-%dT%H:%M:%S.%fr�rrQr�)r8r�r)r�r�rr1r�rrr.r�r�r]r^)r*r
r�r��utc_tsr�r�r�r�r�rr��constructorrus`             r+�-test_subclass_alternate_constructors_datetimez:TestDateTime.test_subclass_alternate_constructors_datetime�s����	�t�}�}�	�1��2��"��!�4�(�����f�&6�7�������q�)��
�
�
���r�e�V�,�
�r�8�<�<�0�%�0�0����>�
@�
�&��F�3�
�{�n�f�5�
�+�'=�>��G�
��t�A�a�y�)�4��a�b��?�;�V�D�	
�
�3=�.�K��h�-�v�6���\�\��X��.9�"�;�")�(�K�"@�K�"�&8�8�!�-�-�.@�A�!,�k�!:�B�B�A�)�+�6���)�)�"�.>�?��$�$�R��2��$�$�R�X�X�q�1�#;�;�7�3=�B�A��;�;�s%�.'F�E6	�AF�6E?
�;F�Fc���G�fd�d�j�}ddifddifdddtjifdddttd�	�d
�ifg}|D]�\}}}�j	|�5t||�}|dk(r'�j
t�5|di|��}ddd�n|di|��}�j|��j|jd�ddd���y#1swY�BxYw#1swY��xYw)
Nc���eZdZ�fd�Zy)�8TestDateTime.test_subclass_now.<locals>.DateTimeSubclassc�V���jj|g|��i|��}d|_|Sr~rr�s    �r+r�z@TestDateTime.test_subclass_now.<locals>.DateTimeSubclass.__new__�r�r-Nr�r2s�r+r
r��r�r-r
r�r��now_utcr��	now_fixedr	r�r�rTr!)r8rr1rr.r�r]r^r�r)r�)r*r
r�rB�	meth_namer�r�rus`       r+�test_subclass_nowzTestDateTime.test_subclass_now�s���	�t�}�}�	��E�2��
�x��$�
���h�l�l�3�4�
�%�$����1D�e�(L�!M�N�	
�
�(2�#�D�)�V����d�#� �!1�9�=����(��)�)�*<�=�#�-�f�-��>�=� �)�&�)�B��%�%�b�*:�;�� � ����1�-�$�#�(2�>�=��$�#�s$�+'C1�	C%�?C1�%C.�*C1�1C:	c���gd�}gd�}ddg}dtjttd���ttd���g}|D���cgc]'}|D] }|D]}|jg|�|��d|i����"�)}}}}|D]c}	|D]\}
|	j	|
�	�}|j|�
�5|jj
|�}|j|	|�ddd��^�eycc}}}w#1swY�rxYw)N)r�r�r�r�)�rrrr)rrrih�)rrr�G�)r�rr�r�r�r�r	r�rUr�r��r�)rr1rr8r�r.r�r))
r*r��
base_times�
separatorsr�
date_tuple�
time_tupler�dtsrur�r�r�s
             r+�test_fromisoformat_datetimez(TestDateTime.test_fromisoformat_datetime�s��
�
�
�
��3�Z�
������I�B�/�0��I�A�.�/�1��
",�#�!+�:�!+�:�!�3��t�}�}�B�j�B�:�B�c�B�"�C�!+�C�!+�	�#�
�B�!�������-���\�\��\�.� �M�M�7�7��>�E��$�$�R��/�/�.�"���#�/�.�s�
,C&�+.C-�-C6c
�J�|jddddddd�}td��td��td	d
��tddd�
�tdddd��g}||D�cgc]}d|z��	c}z
}dtjttd���g}||D�cgc]
}t|���c}z
}|D]Z}|j	|��}|j�}|j
|��5|jj|�}ddd��\ycc}wcc}w#1swY�qxYw)Nr�r�rr��pQrRr�rUrYr.r�r�r%rWr�rbr'r
rr��tstr�r8rrr1rr�r.r�)	r*�base_dtrrVrrrur�r�s	         r+�test_fromisoformat_timezonez(TestDateTime.test_fromisoformat_timezone�s���-�-��b�"�b�"�b�&�A��
�A��	�� 2��A�r�*��B��B�7��A�q�!�&�I�	
�	�	�	�2�	�"�b�2�g�	�2�2�	������I�A�.�/�1��	�9�5�9�R�H�R�L�9�5�5���C������,�B��L�L�N�E����5��)��
�
�3�3�E�:��*�)�	��3��
6�*�)�s�D�D�(D�D"	c
��gd�}|D]s}|jddddddd�}|j|�	�}|j|�
�5|jj|�}|j	||�ddd��uy#1swY��xYw)N)	r�r���€uʁuᛇu時u🐍rr�rr�r�r�r�iu�r�r�r��r*r�r�rur�r�s      r+�test_fromisoformat_separatorsz*TestDateTime.test_fromisoformat_separatorss���
�
��C����t�Q��B��B��?�B��L�L�S�L�)�E����E��*��
�
�3�3�E�:��� � ��U�+�+�*�	�+�*�s�.A>�>B	c��ddg}|D]q}|jddddd�}|j|��}|j|�	�5|jj|�}|j	||�ddd��sy#1swY�~xYw)
Nrr
r�rr�r�r�r�r�r�rs      r+�test_fromisoformat_ambiguousz)TestDateTime.test_fromisoformat_ambiguous#s~���3�Z�
��C����t�Q��B��3�B��L�L�S�L�)�E����E��*��
�
�3�3�E�:��� � ��U�+�+�*�	�+�*�s�.A<�<B	c
�"�ddg}dtjttd���ttd���ttdd���g}gd	�}t|�D]�\}}|D]�}|D]�}|d
k(rd|ddzz}|dd|fz}|j|dd
|zd|i�}	|	j|��}
|j
|
��5|jj|
�}|j|	|�ddd�������y#1swY��xYw)N)r�r�rWr�r8r�rb)r�r�rWr�r8r�rr	r�rUrYr.r��r�rfr�rPr�rPrTrrWrr�r��	rr1r�	enumerater8r�r.r�r))r*�datetime_basesr�	timespecs�ipr�rr��new_microsecondsrur�r�s            r+�test_fromisoformat_timespecsz)TestDateTime.test_fromisoformat_timespecs.s��,�'�)�������I�B�/�0��I�A�.�/��I�A�r�:�;�=��
5�	� �	�*�F�B���� .�H��^�+�+/�8�A�;�$�3F�+G�(�#+�A�a�=�4D�3F�#F��&�����!�Q��V�)=�K�s�K�B��L�L�"�L�5�E����E��2� $�
�
� ;� ;�E� B���(�(��U�3�3�2�!/��+�3�2���.D	�D
c��tj}ttd��d�}ttd��d�}ttd��d�}gd|jd	dd
dd�f�d|jd	dd
d
d�f�d|jd	dd
d
d�f�d|jd	dd
d
d�f�d|jd	dd
d
dd�f�d|jd	dd
d
dd�f�d|jd	dd
d
ddd�f�d|jd	dd
d
ddd�f�d|jd	dd
d
ddd�f�d|jd	dd
d
ddd�f�d|jd	dd
d
ddd�f�d|jd	dd
d
ddd�f�d|jd	dd
d
ddd�f�d|jd	dd
d
ddd�f�d|jd dd!d
d"d#d$�f�d%|jd dd!d
d"d#d&�f�d'|jd	dd
d
ddd�f�d(|jd	dd
dd�f�d)|jd	dd
d
d�f�d*|jd	dd
d
d�f�d+|jd	dd
d
dd�f�d,|jd	dd
d
dd�f�d-|jd	dd
d
ddd�f�d.|jd	dd
d
ddd�f�d/|jd	dd
d
ddd�f�d0|jd	dd
d
ddd�f�d1|jd	dd
d
ddd�f�d2|jd	dd
d
ddd�f�d3|jd	dd
d
ddd�f�d4|jd	dd
d
ddd�f�d5|jd6dd
�f�d7|jd6d8d9d:d�f�d;|jd<ddd:d�f�d=|jd	d8d>d?d�f�d@|jd	d8dAd?d�f�dB|jdCd8dDd
d�f�dE|jd	dd
d
d�f�dF|jdCd8dDd8d�f�dG|jd	dd
d8d�f�dH|jd	dd
d8dIdA�f�dJ|jd	d8dAd?dK�f�dL|jd	d8dAd?dK�f�dM|jd<ddd:dKdN�f�dO|jd<ddd:dKdN�f�dP|jd	dd
d8dIdA�f�dQ|jd	dd
d
dd�f�dR|jd	dd
d
dd�f�dS|jdTdd
d
dd�f�dU|jdTdd
d
dd�f�dV|jd	dd
d
dd�f�dW|jd	dd
d
ddd�f�dX|jd	dd
d8dIdA�f�dY|jd	dd
d8dIdAdZ�f�d[|jd	d8dAd?dK�f�d\|jd	d8dAd?dK�f�d]|jd<ddd:dKdN�f�d^|jd<ddd:dKdNd_�f�d`|jdCd8dDd
d|�a�f�db|jd	dd
d
dd|�a�f�dc|jd	dd
d
dd|�a�f�dd|jd	dd
d
ddd|�a�f�de|jdfddddttdK����a�f�dg|jd	dd
d
ddhttd
����a�f�di|jd	dd
d
ddhttdj����a�f�dk|jd	dd
d
dd|�a�f�dl|jd	dd
d
ddhttd
����a�f�dm|jd	dd
d
ddhttdj����a�f�dn|jdoddd
ddpdq|�a�f�dr|jdoddd
ddpdq|�a�f�ds|jdodhddddhdt|�a�f�du|jdodhddddhdt|�a�f�dv|jdTdwdAddD|�a�f�dx|jdTdwdAddD|�a�f�dy|jd	dd
d
ddd|�a�f�dz|jd	dd
d
dddttdw�{���a�f�}|D]M\}}|j	|�|�5|jj|�}|j
||�ddd��Oy#1swY�ZxYw)}Nrr��BSTr	r�rXr�r�r�rUrz
2025-01-02T03rQz2025-01-02T03:04rWz2025-01-02T0304z2025-01-02T03:04:05rRz2025-01-02T030405z2025-01-02T03:04:05.6i�'	z2025-01-02T03:04:05,6z2025-01-02T03:04:05.678ipX
z2025-01-02T03:04:05.678901�[
z2025-01-02T03:04:05,678901z2025-01-02T030405.678901z2025-01-02T030405,678901z2025-01-02T03:04:05.6789010z2009-04-19T03:15:45.2345r�rr�r�i�z2009-04-19T03:15:45.1234567rbz2025-01-02T03:04:05,678r��20250102T03z20250102T03:04z20250102T03:04:05�20250102T030405z20250102T03:04:05.6z20250102T03:04:05,6z20250102T03:04:05.678z20250102T03:04:05,678z20250102T03:04:05.678901z20250102T030405.678901z20250102T030405,678901z20250102T030405.6789010�2022W01r��
2022W52520r�r�r7�2022W527520r��
2026W01516ryr�2026W013516r��
2025W01503r�r�2025W014503�
2025W01512�2025W014512�2025W014T121431r_�2026W013T162100r�z2026W013 162100�2022W527T202159r�z2022W527 202159z2025W014 121431�2025W014T030405z2025W014 030405z2020-W53-6T03:04:05r�z2020W537 03:04:05z2025-W01-4T03:04:05z2025-W01-4T03:04:05.678901z2025-W01-4T12:14:31z2025-W01-4T12:14:31.012345i90z2026-W01-3T16:21:00z2026-W01-3T16:21:00.000000z2022-W52-7T20:21:59z2022-W52-7T20:21:59.999999r&z2025-W01003+00rz2025-01-02T03:04:05+00z2025-01-02T03:04:05Zz!2025-01-02003:04:05,6+00:00:00.00z2000-01-01T00+21rNz2025-01-02T03:05:06+0300rYz2025-01-02T03:05:06-0300rPz2025-01-02T03:04:05+0000z2025-01-02T03:05:06+03z2025-01-02T03:05:06-03z 2020-01-01T03:05:07.123457-05:00r�rTiA�z2020-01-01T03:05:07.123457-0500z 2020-06-01T04:05:06.111111-04:00i�z2020-06-01T04:05:06.111111-0400z 2021-10-31T01:30:00.000000+01:00rz2021-10-31T01:30:00.000000+0100z2025-01-02T03:04:05,6+000000.00z 2025-01-02T03:04:05,678+00:00:10r�r�)rr1rr8r.r�r))	r*rrr�r�r�r�rr�s	         r+�$test_fromisoformat_datetime_examplesz1TestDateTime.test_fromisoformat_datetime_examplesHsx���l�l���y�q�)�5�1���y�r�*�E�2���y�r�*�E�2��z
�
�4�=�=��q�!�Q��:�;�z
�
�d�m�m�D�!�Q��1�=�>�z
� ����t�Q��1�a�!@�A�z
���
�
�d�A�q�!�Q� ?�@�	z
�
#�D�M�M�$��1�a��A�$F�G�z
�!�$�-�-��a��A�q�!�"D�E�
z
�%�
�]�]�4��A�q�!�Q��
7�
9�z
�%�
�]�]�4��A�q�!�Q��
7�
9�z
�'�
�]�]�4��A�q�!�Q��
7�
9�z
�*�
�]�]�4��A�q�!�Q��
7�
9�z
�*�
�]�]�4��A�q�!�Q��
7�
9�z
�"(�
�]�]�4��A�q�!�Q��
7�
9�#z
�&(�
�]�]�4��A�q�!�Q��
7�
9�'z
�*+�
�]�]�4��A�q�!�Q��
7�
9�+z
�.(�
�]�]�4��B��2�r�6�
:�
<�/z
�2+�
�]�]�4��B��2�r�6�
:�
<�3z
�6'�
�]�]�4��A�q�!�Q��
7�
9�7z
�:����t�Q��1�a�8�9�;z
�<�D�M�M�$��1�a��;�<�=z
�>�t�}�}�T�1�a��A�>�?�?z
�@!�$�-�-��a��A�q�!�"D�E�Az
�B��
�
�d�A�q�!�Q�� B�C�Cz
�D#�
�]�]�4��A�q�!�Q��
7�
9�Ez
�H#�
�]�]�4��A�q�!�Q��
7�
9�Iz
�L%�
�]�]�4��A�q�!�Q��
7�
9�Mz
�P%�
�]�]�4��A�q�!�Q��
7�
9�Qz
�T(�
�]�]�4��A�q�!�Q��
7�
9�Uz
�X&�
�]�]�4��A�q�!�Q��
7�
9�Yz
�\&�
�]�]�4��A�q�!�Q��
7�
9�]z
�`'�
�]�]�4��A�q�!�Q��
7�
9�az
�d��
�
�d�A�q�1�2�ez
�f�4�=�=��r�2�r�1�=�>�gz
�h�D�M�M�$��1�b�!�<�=�iz
�j�4�=�=��r�2�r�1�=�>�kz
�l�D�M�M�$��B��A�>�?�mz
�n�4�=�=��r�2�q�!�<�=�oz
�p�D�M�M�$��1�a��;�<�qz
�r�4�=�=��r�2�r�1�=�>�sz
�t�D�M�M�$��1�b�!�<�=�uz
�v��
�
�d�A�q�"�b�"� E�F�wz
�x��
�
�d�B��B�� C�D�yz
�z��
�
�d�B��B�� C�D�{z
�|��
�
�d�A�q�"�b�"� E�F�}z
�~��
�
�d�A�q�"�b�"� E�F�z
�@��
�
�d�A�q�"�b�"� E�F�Az
�B��
�
�d�A�q�!�Q�� B�C�Cz
�D��
�
�d�A�q�!�Q�� B�C�Ez
�F#�D�M�M�$��1�a��A�$F�G�Gz
�H!�$�-�-��a��A�q�!�"D�E�Iz
�J#�D�M�M�$��1�a��A�$F�G�Kz
�L*�
�]�]�4��A�q�!�Q��
7�
9�Mz
�P#�D�M�M�$��1�b�"�b�$I�J�Qz
�R*�
�]�]�4��A�r�2�r�5�
9�
;�Sz
�V#�D�M�M�$��B��B�$G�H�Wz
�X*�4�=�=��r�2�r�2�+N�O�Yz
�Z#�
�]�]�4��A�r�2�r�
2�
4�[z
�^*�
�]�]�4��A�r�2�r�6�
:�
<�_z
�b�
�]�]�4��R��A�c�]�
:�
<�cz
�f&�
�]�]�4��A�q�!�Q�s�]�
;�
=�gz
�j$�
�]�]�4��A�q�!�Q�s�]�
;�
=�kz
�n1�
�]�]�4��A�q�!�Q��s�]�
C�
E�oz
�r �
�]�]�4��A�q�!�H�Y�R�=P�4Q�]�
R�
T�sz
�v(�
�]�]�4��A�q�!�Q�"*�9�1�+=�">��@�
A�wz
�|(�
�]�]�4��A�q�!�Q�"*�9�2�+>�"?��A�
B�}z
�B(�
�]�]�4��A�q�!�Q�s�]�
;�
=�Cz
�F&�
�]�]�4��A�q�!�Q�"*�9�1�+=�">��@�
A�Gz
�L&�
�]�]�4��A�q�!�Q�"*�9�2�+>�"?��A�
B�Mz
�R0�
�]�]�4��A�q�!�Q��s�]�
C�
E�Sz
�V/�
�]�]�4��A�q�!�Q��s�]�
C�
E�Wz
�Z0�
�]�]�4��A�q�!�Q��s�]�
C�
E�[z
�^/�
�]�]�4��A�q�!�Q��s�]�
C�
E�_z
�b0�
�]�]�4��R��B�s�]�
;�
=�cz
�f/�
�]�]�4��R��B�s�]�
;�
=�gz
�j/�
�]�]�4��A�q�!�Q��s�]�
C�
E�kz
�n0�
�]�]�4��A�q�!�Q��"*�9�R�+@�"A��C�
D�oz
��x$,��I�x����	��2����4�4�Y�?��� � ���2�3�2�$,�2�2�s�.a	�	a	c���gd�}|D]V}|j|��5|jt�5|jj	|�ddd�ddd��Xy#1swY�xYw#1swY�oxYw)N)rrz
2009.04-19T03z
2009-04.19T03z
2009-04-19T0az2009-04-19T03:1a:45z2009-04-19T03:15:4az2009-04-19T03;15:45z2009-04-19T03:15;45z2009-04-19T03:15:4500:00z 2009-04-19T03:15:45.123456+24:30z 2009-04-19T03:15:45.123456-24:30u2009-04-10ᛇᛇᛇᛇᛇ12:15u2009-04�10T12:15u2009-04-10T12�15z2009-04-19T1z2009-04-19T12:3z2009-04-19T12:30:4z2009-04-19T12:z2009-04-19T12:30:z2009-04-19T12:30:45.z2009-04-19T12:30:45.123456+z2009-04-19T12:30:45.123456-z!2009-04-19T12:30:45.123456-05:00az2009-04-19T12:30:45.123-05:00az2009-04-19T12:30:45-05:00a�r��r.r�r�r8r�r�s   r+�!test_fromisoformat_fails_datetimez.TestDateTime.test_fromisoformat_fails_datetime�s`��
��: �G����g��.��&�&�z�2��M�M�/�/��8�3�/�.� �2�2��/�.��"�A-�A!�A-�!A*�&A-�-A6	c���d}|jttjt	|���5|j
j
|�ddd�y#1swYyxYw)Nu2018-01-03�01:0113)rr��re�escaper�r8r�)r*r�s  r+�"test_fromisoformat_fails_surrogatez/TestDateTime.test_fromisoformat_fails_surrogate�sE��*��
�
#�
#�J��	�	�$�u�+�0F�
G��M�M�'�'��.�H�
G�
G�s�A�A#c��d}|jj|�}|j|jtj
�y)Nz2014-04-19T13:21:13+00:00)r8r�r0rrr1)r*r�rus   r+�test_fromisoformat_utcz#TestDateTime.test_fromisoformat_utc�s1��,��
�]�]�
(�
(��
0���
�
�b�i�i����.r-c��Gd�d|j�}|ddddddd	ttd
d�����}|j|j	��}|j||�|j
||�y)
Nc��eZdZy)�BTestDateTime.test_fromisoformat_subclass.<locals>.DateTimeSubclassNr�r!r-r+r
r9
r�r-r
r�r�r_r�rr�i��rr�r)r8rrr�r�r)r�)r*r
rur�s    r+r�z(TestDateTime.test_fromisoformat_subclass
su��	�t�}�}�	��d�B��A�r�2�v�%-�i�b�"�.M�%N�P��!�.�.�r�|�|�~�>������U�#����e�%5�6r-N)@rGr_r`rr8r�r�r�r�rrr%r(r3rr�rnr�rMrOr6rRrTr�rZr`r
�run_with_tzrergr�rsr�r�r�r��unittest�skipIfrE�platformr�r�r�r�r�r�r�r�r�r^r�rr�r�rrrrrr+r/r4r6r�r!r-r+r�r��s����H�,�
/�&� *H�X-�<5�:L� #�$	7�3?�j$�.B4�HC�'�C�4�$'�B6�2�;�2��W���3�4�D�5�D�6	;��W����"�*2�#�*2�X5�&%4�N(;�T&�*��X�_�_�S�\�\�W�,�.Z�[�+�\�+�
�X�_�_�S�\�\�W�,�.Z�[�M�\�M�
H�"9@�v >�D*�,�";�
 '�D?�2�W���� �#�!�#�@:�632�j.�8!0�F*�2,�"	,�4�4D3�L"9�H/�/�
7r-r�c�@�eZdZeZejd�d��Zy)�TestSubclassDateTimeznot appropriate for subclassesc��yr/r!r2s r+r�z#TestSubclassDateTime.test_roundtrip
s��r-N)rGr_r`r�r8r;�skipr�r!r-r+r?r?

s%���H��X�]�]�3�4�
�5�
r-r?c��eZdZdZy)�SubclassTimerNrSr!r-r+rCrC
rUr-rCc��eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�TestTimec��|jdd�}|j|jd�|j|jd�|j|jd�|j|j
d�y)Nr�r�r8r)rarrrer�s  r+r�zTestTime.test_basic_attributes
sb���M�M�"�a� ���������$�������1�%�������1�%��������*r-c��|jdddd�}|j|jd�|j|jd�|j|jd�|j|j
d�y)Nr�r�r�rGr�s  r+r�z&TestTime.test_basic_attributes_nonzero"
sh��
�M�M�"�b�"�d�+���������$�������2�&�������2�&��������-r-c�b�|jdddd�}t|�}|j|jd��|dd}t	|�}|j||�|j|j|j|j|j�}|j||�y)NrrUrQrWr�r�)
r8r�r�r?r�r)rarrre)r*r�r�r�s    r+r�zTestTime.test_roundtrip+
s����M�M�!�Q��1�%��
��G��������[�1�2�
�a�b�E��
�!�W������B���]�]�1�6�6�1�8�8�Q�X�X��=�=�*������B�r-c�����gd�}|j|��|j|�}|j�|�|j�|k�|j�|k\�|j�|k7�|j�|k�|j�|kD�t	t|��D�]}|dd}||dz||<|j|�}|j�|k�|j|�kD�|j�|k�|j|�k\�|j�|k7�|j|�k7�|j�|k(�|j|�k(�|j�|kD�|j|�k�|j�|k\�|j|�k���tD�]'�|j��k(d�|j��k7d�|j��k(d�|j��k7d�|jt��fd��|jt��fd��|jt��fd��|jt��fd��|jt��fd	��|jt��fd
��|jt��fd��|jt��fd����*y)
N�rrUrQrWrFTc�����kSr/r!r�s��r+r@z)TestTime.test_comparing.<locals>.<lambda>\
r�r-c�����kSr/r!r�s��r+r@z)TestTime.test_comparing.<locals>.<lambda>]
r�r-c�����kDSr/r!r�s��r+r@z)TestTime.test_comparing.<locals>.<lambda>^
r�r-c�����k\Sr/r!r�s��r+r@z)TestTime.test_comparing.<locals>.<lambda>_
r�r-c�����kSr/r!r�s��r+r@z)TestTime.test_comparing.<locals>.<lambda>`
r�r-c�����kSr/r!r�s��r+r@z)TestTime.test_comparing.<locals>.<lambda>a
r�r-c�����kDSr/r!r�s��r+r@z)TestTime.test_comparing.<locals>.<lambda>b
r�r-c�����k\Sr/r!r�s��r+r@z)TestTime.test_comparing.<locals>.<lambda>c
r�r-)	r8r)r�r�rgr�r�r�r�)r*r�r�rmr\r�r�s     @@r+�test_comparingzTestTime.test_comparing:
s}�����
�T�]�]�D�
!��
�T�]�]�D�
!������R� �����b��!�����b��!�����r��"�����b��!�����b��!��s�4�y�!�A��1�g�G��a��1��G�A�J������(�B��O�O�B��G�$��O�O�B��G�$��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%����R�2�X�&����R�2�X�&����R�"�W�%����R�"�W�%����R�2�X�&����R�2�X�&�"�"!�j�F����R�6�\�5�1����R�6�\�4�0����V�r�\�5�1����V�r�\�4�0����i�)=�>����i�)<�=����i�)<�=����i�)=�>����i�)=�>����i�)<�=����i�)<�=����i�)=�>�!r-c�\�|jdd�|jdd�|jt|jdd�|jt|jdd�|jdd�|jdd�|jt|jdd�|jt|jdd�|jddd�|jddd�|jt|jddd�|jt|jddd�|jdddd�|jdddd�|jt|jdddd�|jt|jdddd�y)	Nrr�r
r+r�rSr&r)r8r�r�r2s r+rz'TestTime.test_bad_constructor_argumentse
sJ���
�
�a����
�
�b�!�����*�d�m�m�R��;����*�d�m�m�R��;��
�
�b�!���
�
�b�"�����*�d�m�m�R��<����*�d�m�m�R��<��
�
�b�"�a� ��
�
�b�"�b�!����*�d�m�m�R��R�@����*�d�m�m�R��R�@��
�
�b�"�b�!�$��
�
�b�"�b�&�)����*�d�m�m�R��R��D����*�d�m�m�R��R��Ir-c��|jddd�}|jddd�}|j||�|jt|�t|��|di}d||<|jt|�d�|j||d�|j||d�|jddd�}|jddd�}|j||�|jt|�t|��|di}d||<|jt|�d�|j||d�|j||d�y)Nr�rr8rrUrrRr�r�s    r+r�zTestTime.test_hash_equality{
s6���M�M�"�b�"�%���M�M�"�b�"�%������A������a��$�q�'�*��!�f����A������S��1�%�����Q���#�����Q���#��M�M�!�a��$���M�M�!�a��$������A������a��$�q�'�*��!�f����A������S��1�%�����Q���#�����Q���#r-c�b	�|jdddd�}|j|j�d�|j|j�t|��|j�}|j|j�d�|j|j�t|��|jd��}|j|j�d�|j|j�t|��|jd	��}|j|j�d
�|j|j�t|��|jd��}|j|j�d�|j|j�t|��|jd
��}|j|j�d�|j|j�t|��|jd��}|j|j�d�|j|j�t|��|jd��}|j|j�d�|j|j�t|��|jdddd��}|j|jd��d�|j|jd��d�|j|jd��d�|j|jd��d �|j|jd!��d"�|j|jd#��d"�|j	t
|jd$��|j	t
|jd%��|jdddd&��}|j|jd��d'�|jdddd(��}|j|jd��d)�|j|jd!��d*�|j|jd#��d�y)+NrWrRrr�z04:05:01.000123�00:00:00rwz00:00:00.000001rz00:00:00.000010r�z00:00:00.000100rTz00:00:00.001000r\z00:00:00.010000順z00:00:00.100000r�r�r�rb)rarrrer�r��12rfz12:34r�z12:34:56rPz12:34:56.123r�z12:34:56.123456r��monkeyrrz12:34:56.999rz12:34:56.000z12:34:56.000000)r8r)r�r�r�r�r�s  r+r�zTestTime.test_isoformat�
s����M�M�!�Q��3�'���������(9�:���������A��/��M�M�O���������
�3���������A��/��M�M�a�M�(���������(9�:���������A��/��M�M�b�M�)���������(9�:���������A��/��M�M�c�M�*���������(9�:���������A��/��M�M�d�M�+���������(9�:���������A��/��M�M�e�M�,���������(9�:���������A��/��M�M�f�M�-���������(9�:���������A��/��M�M�r�"�R�V�M�L��������g��6��=�������i��8�'�B�������i��8�*�E�������n��=�~�N�������n��=�?P�Q�������f��5�7H�I����*�a�k�k�H��E����*�a�k�k�H��E��M�M�r�"�R�V�M�L��������n��=�~�N��M�M�r�"�R�Q�M�G��������n��=�~�N�������n��=�?P�Q�������f��5�z�Br-c
� �dtd��fdtd��fdtdd�	�fd
tddd
��fdtdddd��fg}ddtjfdttd��fg}||D����cgc]"\}}dD]\}}||zt||z�f���$c}}}}z
}|jddd�}d}|D]7\}	}
|j	|
��}||	z}|j|
��5ddd��9ycc}}}}w#1swY�LxYw)NrrRr�rrUrrYr.r�rr�r�rr%r	rWr�rbr'r
rrrrz12:37:09rrr)
r*rrrrVrr�t_baserrrr�rs
             r+rz TestTime.test_isoformat_timezone�
s/��
�i�a�(�)�
�i�a�(�)�
�i�a��4�5�
���R��D�E�
�	��1�a�V\� ]�^�
�	�
�
�x�|�|�$�
�x�	�!��-�.�
��	� )�
� )���"� 5�����h�
����� 3�4� 5�
5� )�
�	
�����r�2�q�)����"�K�F�C����c��*�A��V�#�C����#��&�&�#��
�'�&�s�;'C<�0D�D
	c�l�|jd��}|jt|jd��y)Nr�rrQ)r)r8r�r�r�r�s  r+�test_1653736zTestTime.test_1653736�
s+���M�M��M�#�����)�Q�[�[�a��8r-c��|jdddd�}|j|jd�d�|j|jd�d�	|jd	�|jd
��y#t$rY�wxYw)NrrUrQrWz%H %M %S %fz01 02 03 000004r�r�u%H�%Mr�r�)r8r)r�r�r�s  r+r�zTestTime.test_strftime�
s���M�M�!�Q��1�%��������M�2�4E�F�������$5�6�
�C�	�
�J�J�|�$�
	
�
�
�$�
���	"�	��	�s�A<�<	B�Bc� �|jdddd�}|j|jd�t|��|j	t
d�5|jd�ddd�Gd�d	|j�}|dddd�}|j|jd�d	�Gd
�d|j�}|dddd�}|j|jd�t|��dD]�}|j|j|�|j
|��|j|j|�|j
|��|j|j|�d���y#1swY��xYw)
NrrUrQrWrr�r�c��eZdZd�Zy)�TestTime.test_format.<locals>.Ac��yr�r!r2s r+rz'TestTime.test_format.<locals>.A.__str__rr-Nrr!r-r+r�rdrr-r�c��eZdZd�Zy)�TestTime.test_format.<locals>.Bc��yrr!r	s  r+r�z(TestTime.test_format.<locals>.B.strftimerr-Nrr!r-r+rrgrr-r)z%H %M %Sr
)r*r�r�rirrjrs       r+rzTestTime.test_format�
s?���M�M�!�Q��1�%��������b�)�3�q�6�2�
�
#�
#�I�/E�
F�
�L�L���G�	��
�
�	�
�a��A�q�M��������b�)�3�/�	��
�
�	�
�a��A�q�M��������b�)�3�q�6�2��C����Q�\�\�#�.��
�
�3��@����Q�\�\�#�.��
�
�3��@����Q�\�\�#�.��4�	�#G�
F�s�F�F
c
���|jt|jdddd��d�|jt|jdddd��d�|jt|jd	ddd
��d�|jt|jdddd	��d
�|jt|jddd	d	��d�y)NrrUrQrWz01:02:03.000004rr
z10:02:03.004000rr�z00:02:03.400000r�z12:02:03r�r�z23:15:00)r)r�r8r2s r+r�zTestTime.test_strs�������T�]�]�1�a��A�6�7�9J�K�����T�]�]�2�q�!�T�:�;�=N�O�����T�]�]�1�a��F�;�<�>O�P�����T�]�]�2�q�!�Q�7�8�*�E�����T�]�]�2�r�1�a�8�9�:�Fr-c
��d|jjz}|jt|jdddd��d|z�|jt|jdddd��d	|z�|jt|jd
ddd��d|z�|jt|jd
ddd
��d|z�|jt|jddd
d
��d|z�y)Nr�rrUrQrWz%s(1, 2, 3, 4)rr
z%s(10, 2, 3, 4000)rr�z%s(0, 2, 3, 400000)r�z%s(12, 2, 3)r�r�z
%s(23, 15)r�r�s  r+r�zTestTime.test_reprs����T�]�]�3�3�3������d�m�m�A�q�!�Q�7�8�)�D�0�	2�����d�m�m�B��1�d�;�<�-��4�	6�����d�m�m�A�q�!�V�<�=�.��5�	7�����d�m�m�B��1�a�8�9�'�$�.�	0�����d�m�m�B��A�q�9�:�%��,�	.r-c��|j|jj|j�|j|jj|j�|j|jjt
�|j
|jj|jjkD�yr/)r�r8r�r�r�rr�r2s r+r�zTestTime.test_resolution_info's}�����d�m�m�/�/����?����d�m�m�/�/����?����d�m�m�6�6�	�B�����
�
�)�)�D�M�M�,=�,=�=�>r-c��d}|j|�}tD];\}}}|j||�}|j|�}|j	||��=|j	|j�|j
d��y)N�r7r�rrIrUr)r�s        r+r�zTestTime.test_pickling-sz�� ���t�}�}�d�#��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+�*8�	
������*�D�,>�,>�q�,A�Br-c���d}t|�}tD]Z\}}}|j||�}|j|�}|j	||�|jt
|t���\y)Nrm)rCr�r�r�r)r�rgr�s        r+�test_pickling_subclass_timez$TestTime.test_pickling_subclass_time6sc�� ���T�"��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+��O�O�J�w��=�>�	*8r-c���gd�}t|�D]Z\}\}}|j|��5|j|�}tD]}||d��}|j	||�� 	ddd��\y#1swY�gxYw)N))s,cdatetime
time
(S'\x14;\x10\x00\x10\x00'
tR.rm)scdatetime
time
(U;tR.rm)s�cdatetime
time
U;�R.rm)s,cdatetime
time
(S'\x14;\x19\x00\x10\x00'
tR.�r7r�r�rI)scdatetime
time
(U;tR.rq)s�cdatetime
time
U;�R.rq)rmr/r0)rr.r8r3r))r*rrmr5r�rr�r�s        r+r6zTestTime.test_compat_unpickle?su��

�� )��/�O�A�|��d������"�(�4�=�=�$�/��)�E�#�D�8�<�G��$�$�W�h�7�*�#�"� 0�"�"�s�7A.�.A7	c�:�|j}|j|d��|j|dd��|j|ddd��|j|dddd��|j|d��|j|��y)Nrr)r8r�)r*rYs  r+r�zTestTime.test_boolUsu���m�m������A�������A�q�	�"�����A�q�!��%�����A�q�!�Q��(�����A��������r-c��|j}gd�}||�}|j||j��d}dD]?\}}|dd}|||<||�}|jd
i||i��}	|j||	�|dz
}�A|d�}|jt|jd��|jt|jd��|jt|jd	�
�|jt|jd��y)NrKr)r�r�r�r�rr+�rar
�rr�r_rrwr!rWrXs
          r+r^zTestTime.test_replace_s���m�m�����D�z������t�|�|�~�.�
��1�L�D�&��1�g�G��G�A�J��G�}�H��$�,�,�0�$���0�C����X�s�+�
��F�A�1��1�v�����*�d�l�l���<����*�d�l�l�2��>����*�d�l�l�3��?����*�d�l�l���Hr-c��Gd�d|j�}|dd�}|jt|jd���|�y)Nc��eZdZy)�4TestTime.test_subclass_replace.<locals>.TimeSubclassNr�r!r-r+�TimeSubclassrxyr�r-ryr�rrrtrc)r*ryr�s   r+rdzTestTime.test_subclass_replacexs>��	�4�=�=�	��R��$���
�
�d�5�=�=�b�=�1�2�L�Ar-c����G�fd�d�j�}d}�j|�}||iddi��}�j|j|��j|jd��j|jd��j|j�|j���j|j
d�|j|jzdz
�y)Nc�"��eZdZdZ�fd�Zd�Zy)�&TestTime.test_subclass_time.<locals>.Cr}c���|j�}|jd�}�jj|g|��i|��}||_|Srirjrls      �r+r�z.TestTime.test_subclass_time.<locals>.C.__new__�rpr-c�:�||jz|jzSr/�rarrrs  r+rtz.TestTime.test_subclass_time.<locals>.C.newmeth�����t�y�y�(�4�;�;�6�6r-Nrur2s�r+rwr|������I�
�
7r-rw)rWrRrYr�rTr}rV)	r8r)rFrvr�r�rtrarrys`    r+�test_subclass_timezTestTime.test_subclass_times����	7��
�
�	7����d�m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�Z�Z�*?�!�*C�Dr-c	�$�d}ddtd�dfD])}|jt|j||ddz��+|j	td�5|jtdgt
|�z�d�ddd�y#1swYyxYw)	Nz2:59.0r��9r+�ÿrr�r�)�chrr�r�r8rr�r�)r*rZ�	hour_bytes   r+r�z!TestTime.test_backdoor_resistance�s�����c�3�r�7�F�2�I����i����)2�T�!�"�X�)=�
?�3��
#�
#�I�/G�
H��M�M�%���c�$�i��0�%�8�I�
H�
H�s�)B�BN)rGr_r`rr8r�r�r�rTrr�r�rr`r�rr�r�r�r�ror6r�r^rdr�r�r!r-r+rErE
s~���H�+�.�
 �)?�VJ�,$�.2C�h,�<9�

 �5�6G�.�?�C�?�8�,�I�2B�E�49r-rEc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�
TZInfoBasec�p�|j}Gd�dt�}|ddd|���}|tuxrdxsd}|j|j	�|�t|tuxrd	xsd
��}|j|j
�|�|j|j�|�y)Nc��eZdZd�Zd�ZeZy)�7TZInfoBase.test_argument_passing.<locals>.introspectivec��|xrdxsdS)N�real�noner!rts  r+ryz>TZInfoBase.test_argument_passing.<locals>.introspective.tzname�s��B�M�6�,C�V�%Cr-c�*�t|xrdxsd��S)Nr}����rerrts  r+rvzATZInfoBase.test_argument_passing.<locals>.introspective.utcoffset�s�� �2�9�"�+;��<�<r-N)rGr_r`ryrvr{r!r-r+�
introspectiver��s��C�
=��Cr-r�rrUrQrr�r�r�r}re)r8rrr)ryrrvr{)r*rYr��objrs     r+�test_argument_passingz TZInfoBase.test_argument_passing�s����m�m��	�F�	��!�Q��-�/�2���$�;�)�6�3�V���������x�0��c�T�k�&9�c�&?�R�A���������(�3��������H�-r-c�"�|j}|jt|dddd��Gd�dt�}|jt|ddd|��Gd�dt�}|�}|ddd|��}|j|j|�y)Nrr�rc��eZdZd�Zd�Zy)�3TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTryc��yr/r!r2s r+roz<TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTry.__init__����r-c��yr/r!rts  r+rvz=TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTry.utcoffset����Tr-N�rGr_r`rorvr!r-r+�NiceTryr�����$�)r-r�c��eZdZd�Zd�Zy)�5TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTryc��yr/r!r2s r+roz>TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTry.__init__�r�r-c��yr/r!rts  r+rvz?TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTry.utcoffset�r�r-Nr�r!r-r+�	BetterTryr��r�r-r�)r8r�r��objectrr0)r*rYr�r�rjr�s      r+�test_bad_tzinfo_classesz"TZInfoBase.test_bad_tzinfo_classes�s����m�m�����)�S�!�Q��"��=�	*�f�	*�	
���)�S�!�Q��'��B�	*��	*�
�K����1�a��"���
�
�a�h�h��"r-c���Gd�dt�}|j}dD]�\}}|tur|ddd||���}n|tur|dddddd||���}|rlt	|�}t|d	�\}}d
|dkxrdxsd
||fz}	t
t�r|j�}|jt|�d|	z���|jtt���y)Nc��eZdZd�Zd�Zy)�6TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgyc�&�t|��|_yrd�rrm)r*rms  r+roz?TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgy.__init__�s��'��7��r-c��|jSr/)rmrts  r+rvz@TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgy.utcoffset�s���{�{�"r-Nr�r!r-r+�Edgyr��s��
8�
#r-r�))�`���F)�a���T)�T)r]FrrUrQrrYrSz%c%02d:%02drr
rz01:02:03)rr8rrrfrrg�timetzr)r�r�r�)
r*r�rYrm�legitr��aofsrrh�tags
          r+�test_utc_offset_out_of_boundsz(TZInfoBase.test_utc_offset_out_of_bounds�s���	#�6�	#��m�m��-�M�F�E��d�{���1�a��V��5�������1�a��A�q��f��>����6�{���d�B�'���1�#�v��z�'9�c�'@�S�!�Q�&G�G���a��*����
�A�� � ��Q���c�)9�:��!�!�*�c�1�5�%-r-c	��|j}Gd�dt�}|ddd�|dddd��|ddd|���fD]_}|j|j��|j|j	��|j|j���aGd�dt�}|ddd|���}|j
|j�td���|j
|j	�td	���|j
|j�d
�Gd�dt�}|ddd|���}|jt|j�|jt|j�|jt|j
�Gd
�dt�}|ddd|���}|jt|j�|jt|j�Gd�dt�}|ddd|���}|j
|j�td���|j
|j	�td���y)Nc��eZdZd�Zd�Zd�Zy)�*TZInfoBase.test_tzinfo_classes.<locals>.C1c��yr/r!rts  r+rvz4TZInfoBase.test_tzinfo_classes.<locals>.C1.utcoffset�r�r-c��yr/r!rts  r+r{z.TZInfoBase.test_tzinfo_classes.<locals>.C1.dst�r�r-c��yr/r!rts  r+ryz1TZInfoBase.test_tzinfo_classes.<locals>.C1.tzname�s��r-N�rGr_r`rvr{ryr!r-r+�C1r��s��0�*�-r-r�rrc��eZdZd�Zd�Zd�Zy)�*TZInfoBase.test_tzinfo_classes.<locals>.C3c��td��S)Nr�rerrts  r+rvz4TZInfoBase.test_tzinfo_classes.<locals>.C3.utcoffset�s��I�e�,D�%Dr-c��td��S)Nr�rerrts  r+r{z.TZInfoBase.test_tzinfo_classes.<locals>.C3.dst�s��i��&=�=r-c��y�N�anamer!rts  r+ryz1TZInfoBase.test_tzinfo_classes.<locals>.C3.tzname�s��r-Nr�r!r-r+�C3r��s��D�=�0r-r�r�rer�r�c��eZdZd�Zd�Zd�Zy)�*TZInfoBase.test_tzinfo_classes.<locals>.C4c��yr�r!rts  r+rvz4TZInfoBase.test_tzinfo_classes.<locals>.C4.utcoffset�s��Gr-c��yr~r!rts  r+r{z.TZInfoBase.test_tzinfo_classes.<locals>.C4.dst�r�r-c��yrVr!rts  r+ryz1TZInfoBase.test_tzinfo_classes.<locals>.C4.tznames��r-Nr�r!r-r+�C4r��s��3�'�*r-r�c��eZdZd�Zd�Zy)�*TZInfoBase.test_tzinfo_classes.<locals>.C6c��td��S)Ni��r�rrts  r+rvz4TZInfoBase.test_tzinfo_classes.<locals>.C6.utcoffsets��I�C�,@�%@r-c��td��S)Nr+r�rrts  r+r{z.TZInfoBase.test_tzinfo_classes.<locals>.C6.dst	s��i�b�&9�9r-Nr�r!r-r+�C6r�s��@�9r-r�c��eZdZd�Zd�Zy)�*TZInfoBase.test_tzinfo_classes.<locals>.C7c��td��S)Nrr�rrts  r+rvz4TZInfoBase.test_tzinfo_classes.<locals>.C7.utcoffsets��I�2�,F�%Fr-c��td��S)N���r�rrts  r+r{z.TZInfoBase.test_tzinfo_classes.<locals>.C7.dsts��i�S�&A�Ar-Nr�r!r-r+�C7r�s��F�Ar-r�rr�r�)r8rrrvr{ryr)rr�r�r�)r*rYr�r�r�r�r�r�s        r+�test_tzinfo_classeszTZInfoBase.test_tzinfo_classes�s����m�m��	.��	.��a��A�,��a��A�d�+��a��A�b�d�+�-�A�
���a�k�k�m�,����a�e�e�g�&����a�h�h�j�)�-�	1��	1�
��1�a���%���������	�%�(@�A��������)�D�"9�:��������W�-�	+��	+�
��1�a���%�����)�Q�[�[�1����)�Q�U�U�+����)�Q�X�X�.�	:��	:�
��1�a���%�����*�a�k�k�2����*�a�e�e�,�	B��	B�
��1�a���%���������	�r�(B�C��������)��"=�>r-c��|j}Gd�dt�}|ddd|���}|jd��}|jd��}|jd	��}|||fD]i}|||fD]_}ttt
tttfD]:}	|	||�}
|	|j|j�}|j|
|��<�a�k|tur�|jd|��
�}|jd|��
�}|jd	|��
�}|||fD]T}|||fD]J}||kD||kz
}
||us||ur||us||urd}n||cxur|urnnd}n	||urd}nd
}|j|
|��L�Vyy)Nc��eZdZd�Zy)�=TZInfoBase.test_aware_compare.<locals>.OperandDependentOffsetc�d�|jdkrt|j��Std��S�Nrrer��rrr�s  r+rvzGTZInfoBase.test_aware_compare.<locals>.OperandDependentOffset.utcoffset�)���8�8�b�=�$�Q�X�X�6�6�%�R�0�0r-Nr�r!r-r+�OperandDependentOffsetr����
1r-r�r�r�rrrQrur��rrrr
r)r8rrrrrrrr	rr)r)r*rYr�rZ�d0rrkr�rg�opr]rs            r+�test_aware_comparezTZInfoBase.test_aware_compares����m�m��	1�V�	1��1�a��$:�$<�=��
�\�\��\�
#��
�\�\��\�
#��
�\�\��\�
$���R���A���R�Z���b�"�b�"�b�0�B��Q��(�C�!�!�(�(�A�H�H�5�H��$�$�S�(�3�1� ���d�?����Q�/E�/G��H�B����Q�/E�/G��H�B����R�0F�0H��I�B���R�Z���R���A��q�5�Q��U�+�C��R��1��7��b��A��G�#$���a��2��#$���b��#%��$%���$�$�S�(�3�$� �	r-N)rGr_r`r�r�r�r�r�r!r-r+r�r��s��.�$#� 6�8.?�`-4r-r�c�v�eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zy)�
TestTimeTZc�:�|j�}|j|jd�|j|jd�|j|jd�|j|j
d�|j
|j�yrV)r8r)rarrrerrr�s  r+�
test_emptyzTestTimeTZ.test_emptyJso���M�M�O���������#�������1�%�������1�%��������*����!�(�(�#r-c����tddd�}tddd�}tddd	�}td
d|��}td
d|��}tdd|��}td���td|���|j|j|�|j|j|�|j|j|�|j	�j�|j�j|�|j|j�t
d���|j|j�t
d���|j|j�t
d���|j	�j��|jt|j
d�|j|j�d�|j|j�d�|j|j�d�|j	�j��|jt|jd�|j|j�t
d���|j|j�t
d���|j|j�t
d	���|j	�j��|jt|jd�|jt|�t|��|jt|�t|��|jt|�t|��|j||�|j||�|j||�|j���|jt��fd��|jt��fd��|jt|�d�|jt|�d�|jt|�d�|jt��d�|jt��d�|j|j�d�|j|j�d�|j|j�d�|j�j�d�|j�j�d�d}|jt|�|dz�|jt|�|dz�|jt|�|dz�|jt��|dz�|jt��|d z�|j|j!d!�d"�|j|j!d#�d$�|j|j!d#�d%�td&d'�}td(d)|��}|j|j!d*�d+�Gd,�d-t�}	td.d	d/|	���}
|j|
j!d0�d1�|jt|
j d2�d3|j"j$vr)d4|	_|jt(|
j d2�yy)5Nr�r�rrrrSrS�METrQrTr�rr�r
�(rwr�rezno argsc�����kSr/r!�r��t5s��r+r@z'TestTimeTZ.test_zones.<locals>.<lambda>|rAr-c�����kSr/r!r�s��r+r@z'TestTimeTZ.test_zones.<locals>.<lambda>}rAr-z07:47:00-05:00z12:47:00+00:00z13:47:00+01:00z00:00:00.000040z00:00:00.000040+00:00z
datetime.timez(7, 47, tzinfo=est)z(12, 47, tzinfo=utc)z(13, 47, tzinfo=met)z
(0, 0, 0, 40)z(0, 0, 0, 40, tzinfo=utc)z%H:%M:%S %%Z=%Z %%z=%z %%:z=%:zz#07:47:00 %Z=EST %z=-0500 %:z=-05:00z%H:%M:%S %Z %z %:zz12:47:00 UTC +0000 +00:00z13:47:00 MET +0100 +01:00r�z%z %Z %%z%%Zr�r�z%H:%M %%Z='%Z' %%z='%z'z"23:59 %Z='%z %Z %%z%%Z' %z='-2359'c��eZdZdZd�Zy)�(TestTimeTZ.test_zones.<locals>.Badtznamer}c��|jSr/r�rts  r+ryz/TestTimeTZ.test_zones.<locals>.Badtzname.tzname�s
�����.r-N)rGr_r`r�ryr!r-r+�	Badtznamer��s
���B�0r-r�rUrWz%H:%M:%Sz02:03:04r2rNr)rbrr)rrrvrr�r�ryr{r�r�r�r�r�r�rFrGr�r�)
r*�estr1�metr�r�r�r��yuckr�r�r�r�s
           @@r+�
test_zoneszTestTimeTZ.test_zonesRsL����$��q�)���!�U�B�'���"�e�Q�'��
�1�b��
%��
�"�b��
%��
�"�b��
%��
�b�
!��
�b��
-��������C�(�������C�(�������C�(����"�)�)�$�������C�(���������4�)@�A���������1�)=�>���������2�)>�?����"�,�,�.�)����)�R�\�\�9�=��������e�,��������e�,��������e�,����"�)�)�+�&����)�R�Y�Y�	�:��������9�Q�#7�8��������9�R�#8�9��������9�Q�#7�8����"�&�&�(�#����)�R�V�V�Y�7�����b��4��8�,�����b��4��8�,�����b��4��8�,�����R� �����R� �����R� ����B��#����)�_�5����)�_�5�����R��"2�3�����R��"2�3�����R��"2�3�����R��"3�4�����R��"9�:��������)9�:��������)9�:��������)9�:��������):�;��������)@�A�������b��1�'<�#<�=�����b��1�'=�#=�>�����b��1�'=�#=�>�����b��1��#6�7�����b��1�'B�#B�C�������%F�G�%J�	L�������%9�:�<W�X�������%9�:�<W�X��5�.�1��
�"�b��
&��������%>�?�%I�	K�	1��	1�
��A�q���-��������J�/��<����)�Q�Z�Z��6��d�n�n�-�-�-�#�I�L����j�!�*�*�d�;�.r-c
��|jddddtdd���}|jddddtdd���}|jt|�t|��|jd	d
ddtd
d���}|jd	dddtdd���}|jt|�t|��y)NrrrUrQr�rri�r�r�rYr�i���rKi���)r8rbr)r�r�s   r+�test_hash_edge_caseszTestTimeTZ.test_hash_edge_cases�s���
�]�]�1�a��A�k�$��.C�]�
D��
�]�]�1�a��A�k�$��.C�]�
D������b��4��8�,�
�]�]�2�r�1�c�+�e�R�2H�]�
I��
�]�]�2�r�1�c�+�e�R�2H�]�
I������b��4��8�,r-c��d}|j|�}tD];\}}}|j||�}|j|�}|j	||��=|j	|j�|j
d��tdd�}|jddd|��}tD]�\}}}|j||�}|j|�}|j	||�|j|jt�|j	|j�td�	��|j	|j�d���|j	|j�|j
d��y)
NrmrUr�r�rRrYrTrre)
r8r�r�r�r)r*r+rr�rrvrry�	r*r�r�r�r�r�r�r��tinfos	         r+r�zTestTimeTZ.test_pickling�sK�� ���t�}�}�d�#��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+�*8�	
������*�D�,>�,>�q�,A�B�%�T�8�4���}�}�Q��1�U�}�3��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+��!�!�'�.�.�2F�G����W�.�.�0�)�D�2I�J����W�^�^�-�x�8�
*8�	
������*�D�,>�,>�q�,A�Br-c	��gd�}tdd�}|jdddd|��}|D]�}tD]�}||d	�
�}|j||t	|��|j|jt�|j|j�td���|j|j�d�����y)N)s�cdatetime
time
(S'\x05\x06\x07\x01\xe2@'
ctest.datetimetester
PicklableFixedOffset
(tR(dS'_FixedOffset__offset'
cdatetime
timedelta
(I-1
I68400
I0
tRsS'_FixedOffset__dstoffset'
NsS'_FixedOffset__name'
S'cookie'
sbtR.s�cdatetime
time
(U�@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
(J����J0KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.s��cdatetime
time
U�@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
J����J0K�RU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieub�R.r�r�rRrYrTrbrr/r0re)
rr8r3r)r�r�rrvrry)r*rr�rr5r�r�s       r+r6zTestTimeTZ.test_compat_unpickle�s���
��.%�T�8�4���=�=��A�q�&��=�?���D�%����x�8��� � ��(�D��J�?��%�%�g�n�n�6J�K�� � ��!2�!2�!4�i��6M�N�� � ����!1�8�<�&�r-c�F�|j}|dtdd���}|j|�|dtdd���}|j|�|dtdd���}|j|�|ddtd	d���}|j|�y)
Nrr�rrrRi,r�r�r�)r8rbr�)r*rYr�s   r+�test_more_boolzTestTimeTZ.test_more_bool�s����m�m����+�d�B�/�0���������+�d�B�/�0���������+�c�2�.�/���������B�{�:�r�:�;������r-c���|j}tdd�}ttd��d�}dddd	|g}||�}|j||j	��d
}ddd
dd|ffD]?\}}|dd}	||	|<||	�}
|jdi||i��}|j|
|�|dz
}�A|j|j�d�|j	d��}|j
|j�|j
|j��|j	|��}
|j||
�|j|j|
j�|d�}|jt|jd��|jt|jd��|jt|jd��|jt|jd��y)Nr��+100�8���re�-200rrUrQrWrr�r�r�r�rrr+rtr
rur_rrwr!�r8rbrr)rryrrr0r�r��r*rY�z100�zm200r�rZrmrBr[r\rr]�base2�base3s              r+r^zTestTimeTZ.test_replace�s����m�m���3��'���I�d�3�V�<���1�a��D�!���D�z������t�|�|�~�.�
��(�*�*�/�&��.�	0�L�D�&�
�1�g�G��G�A�J��G�}�H��$�,�,�0�$���0�C����X�s�+�
��F�A�0�	
��������/����D��)�����%�,�,�'����%�,�,�.�)��
�
�T�
�*������u�%��
�
�d�k�k�5�<�<�0��1�v�����*�d�l�l���<����*�d�l�l�2��>����*�d�l�l�3��?����*�d�l�l���Hr-c�
�|jddd�}|jddd�}|j||�|jd��}|j||�|jtdd���}|j||�|jtdd���}|j	||�Gd�dt
�}|�}|j|��}|j|��}|j|j
�td	�
��|j|j
�td�
��|j||�|j|���}|j||k�y)NrrUrQrrrc��eZdZd�Zd�Zy)�-TestTimeTZ.test_mixed_compare.<locals>.Variesc�&�td��|_y�Nr�rer�r2s r+roz6TestTimeTZ.test_mixed_compare.<locals>.Varies.__init__/���'��3��r-c�X�|xjtd��z
c_|jS�Nrre�rmrr�s  r+rvz7TestTimeTZ.test_mixed_compare.<locals>.Varies.utcoffset1������y��3�3���{�{�"r-Nr�r!r-r+�Variesr.���
4�
#r-rr�rer+)	r8r)rrbr�rrvrr��r*r�r�r�vs     r+rKzTestTimeTZ.test_mixed_compare"sC��
�]�]�1�a��
#��
�]�]�1�a��
#������R� �
�Z�Z�t�Z�
$������R� �
�Z�Z�{�4��4�Z�
5������R� �
�Z�Z�{�1�b�1�Z�
2�����B��#�	#�V�	#�
�H��
�Z�Z�q�Z�
!��
�Z�Z�q�Z�
!����������2�)>�?���������2�)>�?�����R� ��Z�Z�v�x�Z�
(������R�� r-c	���ddg}d}d}d}d}|ttj||||��z
}dtjttd���ttd	d
���g}|D]s}|D]l}|j|d|i�}	|	j�}
|j|
�
�5|jj|
�}|j|	|�ddd��n�uy#1swY�{xYw)Nr�)r�r�r�r&)r�r�r7)rRr)rWr�)ri�rrUr�rYr.r�rr)r��	itertools�productrr1rr8r�r.r�r))r*�
time_examples�hh�mm�ss�usecr�ttuprr�r�t_rts            r+r�zTestTimeTZ.test_fromisoformat@s���� �
�
�
��
��
��"����i�/�/��B��D�A�B�B�
������I�A�.�/��I�A�r�:�;�=��"�D���!�D�M�M�4�4��4���{�{�}���\�\�t�\�,��=�=�6�6�t�<�D��$�$�Q��-�-�,�	�"�
-�,�s�*.C%�%C.c
�D�|jdddd�}td��td��tdd	�
�tddd��tdd
dd��g}||D�cgc]}d|z��	c}z
}dtjttd���g}||D�cgc]
}t|���c}z
}|D]Z}|j	|��}|j�}|j
|��5|jj|�}ddd��\ycc}wcc}w#1swY�qxYw)Nr�rr�rrRr�rUrYr.r�r�r%rWr�rbr'r
rrrr)	r*�	base_timerrVrrr�rr s	         r+rz&TestTimeTZ.test_fromisoformat_timezoneZs���M�M�"�b�"�f�5�	�
�A��	�� 2��A�r�*��B��B�7��A�q�!�&�I�	
�	�	�	�2�	�"�b�2�g�	�2�2�	������I�A�.�/�1��	�9�5�9�R�H�R�L�9�5�5���C��!�!��!�-�A��;�;�=�D����4��(��}�}�2�2�4�8��)�(�	��3��
6�)�(�s�D�D�%D�D	c
�"�ddg}dtjttd���ttd���ttdd���g}gd	�}t|�D]�\}}|D]�}|D]�}|d
k(rd|ddzz}|d
d|fz}|j|d
d|zd|i�}	|	j|��}
|j
|
��5|jj|
�}|j|	|�ddd�������y#1swY��xYw)N)r�r8r�rb)r�r8r�rr	r�rUrYr.r�rrPrTr
rrrr�rr)r*�
time_basesrrrr�r�t_tuplerr�rr s            r+rz'TestTimeTZ.test_fromisoformat_timespecsss����
�
�
�����I�B�/�0��I�A�.�/��I�A�r�:�;�=��
5�	� �	�*�F�B����)�G��^�+�+/�7�2�;�$�3F�+G�(�")�!�B�-�3C�2E�"E��%��
�
���1�r�6�(;�I�S�I�A��;�;��;�3�D����4��0�#�}�}�:�:�4�@���(�(��D�1�1�0� *��+�1�0�rc��gd�}|D]A\}}|j|�}|jj|�}|j||��Cy)N))z
12:30:45.1)r�rr�rY)z12:30:45.12)r�rr�i��)z12:30:45.123)r�rr�ix�)z
12:30:45.1234)r�rr�i�)z12:30:45.12345)r�rr�i:�)z12:30:45.123456�r�rr�rb)z12:30:45.1234567r')z12:30:45.12345678r')r8r�r))r*�strs�time_str�
time_compsrr�s      r+�test_fromisoformat_fractionsz'TestTimeTZ.test_fromisoformat_fractions�sN��	
��%)� �H�j�$�t�}�}�j�1�H��]�]�0�0��:�F����V�X�.�	%)r-c��gd|jdd�f�d|jdd�f�d|jdd�f�d|jdd�f�d|jdd�f�d|jdd�f�d|jdd�f�d	|jdd�f�d
|jdd�f�d|jdd�f�d|jd
d�f�d|jd
d�f�d|jd
d�f�d|jd
d�f�d|jd
d�f�d|jd
d�f�d|jd
d�f�d|jd
d�f�d|jd
d�f�d|jd
d�f�d|jdd�f�d|jdd�f�d|jddd�f�d|jddd�f�d|jdddd�f�d|jdddd�f�d |jdddd!�f�d"|jdddd!�f�d#|jdddd$�f�d%|jdddd$�f�d&|jddtj�'�f�d(|jd
dtj�'�f�d)|jd
dtj�'�f�d*|jddttd+�,���'�f�d-|jddttd+d.�/���'�f�d0|jd
dttd1�,���'�f�d2|jd
dttd1�,���'�f�d3|jddttdddd$�4���'�f�}|D]M\}}|j	|�5�5|jj|�}|j
||�ddd��Oy#1swY�ZxYw)6N�0000rz00:00�000000rXz000000.0z
00:00:00.0z
000000.000z00:00:00.000z
000000.000000z00:00:00.000000�1200r�z12:00�120000z12:00:00z120000.0z
12:00:00.0z
120000.000z12:00:00.000z
120000.000000z12:00:00.000000�2359r�r�z23:59�235959z23:59:59z235959.9i��
z
23:59:59.9z
235959.999rYz23:59:59.999z
235959.999999r&z23:59:59.999999z	00:00:00Zrz
12:00:00+0000z12:00:00+00:00z00:00:00+05rRr�z00:00:00+05:30rr�z12:00:00-05:00r	z
12:00:00-0500z00:00:00,000-23:59:59.999999r'r�)r8rr1rr.r�r)r�s     r+� test_fromisoformat_time_examplesz+TestTimeTZ.test_fromisoformat_time_examples�s���,
�
�T�]�]�1�a�(�)�,
�
�d�m�m�A�q�)�*�,
��t�}�}�Q��*�+�,
�����q�!�,�-�	,
�
����q�!�,�-�,
��4�=�=��A�.�/�
,
��4�=�=��A�.�/�,
��T�]�]�1�a�0�1�,
��d�m�m�A�q�1�2�,
���
�
�a�� 3�4�,
��T�]�]�2�q�)�*�,
��d�m�m�B��*�+�,
��t�}�}�R��+�,�,
�����r�1�-�.�,
�����r�1�-�.�,
� �4�=�=��Q�/�0�!,
�"�4�=�=��Q�/�0�#,
�$�T�]�]�2�q�1�2�%,
�&�d�m�m�B��2�3�',
�(��
�
�b�!� 4�5�),
�*�T�]�]�2�r�*�+�+,
�,�d�m�m�B��+�,�-,
�.�t�}�}�R��R�0�1�/,
�0����r�2�r�2�3�1,
�2����r�2�r�6�:�;�3,
�4�4�=�=��R��V�<�=�5,
�6�4�=�=��R��V�<�=�7,
�8�T�]�]�2�r�2�v�>�?�9,
�:�d�m�m�B��B��?�@�;,
�<��
�
�b�"�b�&� A�B�=,
�>�$�-�-��1�X�\�\�-�B�C�?,
�@�d�m�m�B��(�,�,�m�G�H�A,
�B�t�}�}�R��8�<�<�}�H�I�C,
�D�
�]�]�1�a����1C�(D�]�
E�
G�E,
�H�
�]�]�1�a����B�1O�(P�]�
Q�
S�I,
�L�
�]�]�2�q��)�"�2E�)F�]�
G�
I�M,
�P�
�]�]�2�q��)�"�2E�)F�]�
G�
I�Q,
�T,�
�]�]�1�a��)�"�b�Z\�kq�2r�1r�(s�]�
t�
v�U,
��\$,��I�x����	��2����4�4�Y�?��� � ���2�3�2�$,�2�2�s�.O:�:P	c���gd�}|D]V}|j|��5|jt�5|jj	|�ddd�ddd��Xy#1swY�xYw#1swY�oxYw)N)ru12�00z12:z12:30:z	12:30:15.�1z12:3z12:30:1z1a:30:45.334034z12:a0:45.334034z12:30:a5.334034z12:30:45.123456+24:30z12:30:45.123456-24:30u12:30:45�12:30:45.123456az12:30:45.123456789au12:30:45․123456z	12:30:45az
12:30:45.123ar6z12:30:45.123456-z12:30:45.123456+z12:30:45.123456+12:00:30ar-r.r�s   r+r�z#TestTimeTZ.test_fromisoformat_fails�s`��
��4 �G����g��.��&�&�z�2��M�M�/�/��8�3�/�.� �2�2��/�.�r0c���ddtjd�g}|D];}|jt�5|jj|�ddd��=y#1swY�HxYw)Ns12:30:45z12:30:45r�r�s   r+r�z-TestTimeTZ.test_fromisoformat_fails_typeerror�sP�� �$����J�(?�@�	�!�H��"�"�9�-��
�
�+�+�H�5�.�-�"�-�-�r�c���Gd�d|j�}|ddddtj��}|j|j	��}|j||�|j
||�y)Nc��eZdZy)�<TestTimeTZ.test_fromisoformat_subclass.<locals>.TimeSubclassNr�r!r-r+ryr:�r�r-ryr�r_r�i�r)r8rr1r�r�r)r�)r*ry�tsc�tsc_rts    r+r�z&TestTimeTZ.test_fromisoformat_subclass�s`��	�4�=�=�	��2�r�2�v�h�l�l�C���+�+�C�M�M�O�<������f�%����f�l�3r-c	���G�fd�d�j�}ddddtddd	�f}�j|�}||id
di��}�j|j|��j|jd��j|j
d��j|j
�|j
���j|jd
�|j|jzdz
�y)Nc�"��eZdZdZ�fd�Zd�Zy)�*TestTimeTZ.test_subclass_timetz.<locals>.Cr}c���|j�}|jd�}�jj|g|��i|��}||_|Srirjrls      �r+r�z2TestTimeTZ.test_subclass_timetz.<locals>.C.__new__rpr-c�:�||jz|jzSr/rrrs  r+rtz2TestTimeTZ.test_subclass_timetz.<locals>.C.newmethr�r-Nrur2s�r+rwr?r�r-rwrWrRrY��r�r�rr�rTr}rV)
r8rbr)rFrvr�rvrtrarrys`    r+�test_subclass_timetzzTestTimeTZ.test_subclass_timetzs����	7��
�
�	7��!�Q��[��u�a�8�8���d�m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�Z�Z�*?�!�*C�Dr-N)rGr_r`rr8r�r�r�r�r6r�r^rKr�rrr+r3r�r�r�rCr!r-r+r�r�Gse���H�$�U<�n-�C�, =�D� %I�N!�<.�4'�22�6/�$23�h9�@6�4�Er-r�c��eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zej0d�d��Zej0d�d��Zej0d�d��Zd�Zd�Zd�Zy)�TestDateTimeTZc	���|jddddddd�}|j|jd�|j|jd�|j|jd�|j|j
d�|j|jd�|j|jd�|j|jd�|j|jd�y)NrrUrQrWrRrYrT)
r8r)rZr[r�rarrrerrts  r+�test_trivialzTestDateTimeTZ.test_trivial&s���
�]�]�1�a��A�q�!�Q�
/��������!�$�������1�%��������#�������!�$�������A�&�������A�&��������+�������D�)r-c
�"���|jdddtdd����|jtdddddd	td
d����|j��k�|j��k7�|j��kD�|j	���|j	���|jdddddtdd����|jddddd
tdd����|j	���|jdddddtdd����|j��kD�|jdddddtdd����|j��k�|jdddddtdd�d���|j��kD�|jdddddtdd�d���|j��kD�|jj
�|j
���|j	���|jt�5��kDddd�Gd�dt�}|jddd|����|j
���|j	���|jddd��|j	���Gd�dt�}|jddd|����|jdddtdd����|jt��fd��y#1swY��xYw)Nrr�rrr�r�r�r�r&r�rUrQr
��r)rrrnc��eZdZd�Zy)�4TestDateTimeTZ.test_even_more_compare.<locals>.Naivec��yr/r!rts  r+rvz>TestDateTimeTZ.test_even_more_compare.<locals>.Naive.utcoffsetdr�r-Nr�r!r-r+�NaiverKcs��0r-rMrRrYrTc��eZdZd�Zy)�4TestDateTimeTZ.test_even_more_compare.<locals>.Bogusc��td��S)Nr]rerrts  r+rvz>TestDateTimeTZ.test_even_more_compare.<locals>.Bogus.utcoffsetps
�� ��.�.r-Nr�r!r-r+r�rOos��
/r-r�c�����k(Sr/r!)r�r�s��r+r@z7TestDateTimeTZ.test_even_more_compare.<locals>.<lambda>ts	���b�B�hr-)r8rbrr�r)r�r�r�r�rr�)r*rMr�r�r�s   @@r+�test_even_more_comparez%TestDateTimeTZ.test_even_more_compare1s����
�]�]�1�a��;�t�R�+@�]�
A��
�]�]�7�B��B��B��"-�e�R�"8��:��	
����R�� �����b��!�����R�� �����R� �����R� ��]�]�1�b�"�b�"�[��B�5G�]�
H��
�]�]�1�a��A�r�+�i��2L�]�
M������R� ��]�]�1�b�"�b�"�[��B�5G�]�
H������R�� ��]�]�1�b�"�b�"�[��B�5G�]�
H������R�� ��]�]�1�b�"�b�"�[��B�5G�"#��%������R�� ��]�]�1�b�"�b�"�[��B�5G�'(��*������R�� ��]�]�
�
�����B��#�����R� �
�
�
�y�
)���G�*�	1�F�	1�
�]�]�1�a��5�7�]�
3�����B��#�����R� ��]�]�1�a��
#������R� �	/�F�	/��]�]�1�a��5�7�]�
3��
�]�]�1�a��;�q�"�+=�]�
>�����*�&6�7�+*�
)�s�"L�Lc
�F�d}|j|�}tD];\}}}|j||�}|j|�}|j	||��=|j	|j�|j
d��tdd�}|j|id|i��}|jdddtddd��	�}tD]�\}}}|j||�}|j|�}|j	||�|j|jt�|j	|j�td�
��|j	|j�d���|j	|j�|j
d��y)NrHrUr�r�rrrrrre)r8r�r�r�r)r*r+rrbr�rrvrryr�s	         r+r�zTestDateTimeTZ.test_picklingvsn��)���t�}�}�d�#��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+�*8�	
������*�D�,>�,>�q�,A�B�%�T�8�4���t�}�}�d�8�x��&7�8���-�-��1�a��A�r�1�0E�-�F��)7�%�G�Y���M�M�$��.�E��o�o�e�,�G����T�7�+��!�!�'�.�.�2F�G����W�.�.�0�)�D�2I�J����W�^�^�-�x�8�
*8�	
������*�D�,>�,>�q�,A�Br-c��gd�}d}tdd�}|j|id|i��}|D]�}tD]�}||d��}|j||�|j	|j
t�|j|j
�td���|j|j�d�����y)	N)s�cdatetime
datetime
(S'\x07\xdf\x0b\x1b\x14;\x01\x01\xe2@'
ctest.datetimetester
PicklableFixedOffset
(tR(dS'_FixedOffset__offset'
cdatetime
timedelta
(I-1
I68400
I0
tRsS'_FixedOffset__dstoffset'
NsS'_FixedOffset__name'
S'cookie'
sbtR.s�cdatetime
datetime
(U
�;�@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
(J����J0KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.s��cdatetime
datetime
U
�;�@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
J����J0K�RU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieub�R.)r-r�r.r7r�rrbr�r�rr/r0re)	rr8r3r)r�rrvrry)r*rr�r�rr5r�r�s        r+r6z#TestDateTimeTZ.test_compat_unpickle�s���
��2/��$�T�8�4�� �4�=�=�$�<�8�U�*;�<���D�%����x�8��� � ��(�3��%�%�g�n�n�6J�K�� � ��!2�!2�!4�i��6M�N�� � ����!1�8�<�&�r-c
�0�|jdddtdd���}t|�|jtdddddd	td
d���}t|�|jdddtdd���}|j	t
t|�y)
Nrr�rrr�r�r�r�r&r�rRr�)r8rbr�rr�r�r�s  r+�test_extreme_hashesz"TestDateTimeTZ.test_extreme_hashes�s���
�M�M�!�Q��+�d�B�*?�M�@���Q���M�M�'�2�r�2�r�2�v�!,�U�B�!7�
�
9���Q��
�M�M�!�Q��+�e�R�*@�M�A�����*�d�A�.r-c��tdd�}tdd�}tdd�}tddd	d
d|��}tddd	d
d|��}tddd	dd|��}|j|j|�|j|j|�|j|j|�|j|j	�td���|j|j	�td���|j|j	�td���|j|j
�d�|j|j
�d�|j|j
�d�|jt|�t|��|jt|�t|��|jt|�t|��|j||�|j||�|j||�|jt|�d�|jt|�d�|jt|�d�d}|jt|�|dz�|jt|�|dz�|jt|�|dz�y)Nr�r�rrrSr�rYrQrrTr�rr�r
rez2002-03-19 07:47:00-05:00z2002-03-19 12:47:00+00:00z2002-03-19 13:47:00+01:00zdatetime.datetime(2002, 3, 19, z7, 47, tzinfo=est)z12, 47, tzinfo=utc)z13, 47, tzinfo=met))
rbrr)rrvrryr�r�r�)r*r�r1r�r�r�r�r�s        r+r�zTestDateTimeTZ.test_zones�s;���$��&���!�U�#���"�e�$��
�d�A�r�A�r�#�
6��
�d�A�r�2�r�#�
6��
�d�A�r�2�r�#�
6��������C�(�������C�(�������C�(���������4�)@�A���������1�)=�>���������2�)>�?��������e�,��������e�,��������e�,�����b��4��8�,�����b��4��8�,�����b��4��8�,�����R� �����R� �����R� �����R��"=�>�����R��"=�>�����R��"=�>�-������b��1�';�#;�<�����b��1�'<�#<�=�����b��1�'<�#<�=r-c
���tdd�}tddd�}tdddd|�	�}tj||�}|j|tddddddd|�	��y�
NrSr�rYrQrWr$r�r�r)rbrrrr�r))r*r�r�r�rus     r+r�zTestDateTimeTZ.test_combine�sh���"�e�$����q�!���
�"�b�!�T�#�
.��
�
�
�a��
$������X�d�A�q�"�b�!�T�/2�4�	5r-c
�X�tdd�}|jddddddd|�	�}|j|j�tddd��|j|j	�t	dddd��|j|j�t	dddd|�	��yrY)rbr8r)rrr�)r*r�rus   r+r�zTestDateTimeTZ.test_extract�s����"�e�$��
�]�]�4��A�r�2�q�$�s�]�
C���������D��q�!�$4�5��������D��R��D�$9�:��������d�2�r�1�d�3�&G�Hr-c
��
����|jj��tdd�}�j�j	|��}|jj�j
�|��|j�j|�|j�j�|�|jt��fd��|jt��fd��|jt��fd��|jt��fd��|jt�fd��|j��z
td	��|j��z
td	��td
dd�
��
��
z�|j�j|��
�z}|j|j|�|j�|���
z
}|j|j|�|j�|�|jt�
�fd��|j��z
�
�ttjdd�d�}�j	|���|j�j|���z
}�j!��j!�z
�
z
}|j||�|jd
d
d
tdd���}|jt"ddddddtdd���}	|	|z
}
|j|
|jj$|jj&z
td��z�t)t*d�}t)t*d�}|j	|��|	j	|��z
�
|j�
|jj&|jj$z
�y)Ni����z	west 5:30rc�����z
Sr/r!�r��nowawares��r+r@z9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>��	���S�8�^r-c�����z
Sr/r!r]s��r+r@z9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>��	���X��^r-c�����zSr/r!r]s��r+r@z9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>�r_r-c�����zSr/r!r]s��r+r@z9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>�rar-c�����zSr/r!)r^s�r+r@z9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>�s
���X��-@r-rrr�i.)rNrfr�c�����z
Sr/r!)r*�nowawarepluss��r+r@z9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>s
���U�\�-Ar-r�r]�randomtimezoner�r�r�r�r�r&r�i>rer�r)r8r�rbrrr�rr0rr)r�r�r�rr��	randrangervrr�r�rr)r*�tz55�	timeaware�
nowawareplus2r��tzrr]rr�r��maxdiff�tza�tzbr*r�r^rfs             @@@@r+�test_tz_aware_arithmeticz'TestDateTimeTZ.test_tz_aware_arithmetic�s'����m�m���!���4��-���H�H�J�&�&�d�&�3�	��=�=�(�(�����Y�?���
�
�h�o�o�t�,�������*�I�6�	
���)�%;�<����)�%;�<�	
���)�%;�<����)�%;�<����)�%@�A�	
����s��I�a�L�1�����H�,�i��l�;���2�D�A���%�'���
�
�h�o�o�t�,���(�
��
�
�m�*�*�D�1�����}�5��e�#���
�
�d�k�k�4�(�����4�(����)�%A�B������0�%�8��&�*�*�5�$�7�9I�J��#�+�+�3�+�7���
�
�l�)�)�3�/���%�� �)�)�+�h�.@�.@�.B�B�U�J������h�'��m�m�A�q�!�K��e�,D�m�E���m�m�G�R��R��R��#.�u�e�#<��>����)������$�-�-�"3�"3�d�m�m�6G�6G�"G�"+�F�";�#<�	=��t�S�!���t�S�!�����3��'�#�+�+�S�+�*A�A�������
�
� 1� 1�D�M�M�4E�4E� E�Fr-c���|jj}|�}tdd�}||�}||��}|j|j|j�|j|j
�td���|jt|d�|jt|d��|jt||��|jt|||�tdd	d�}ttd
d��d
d�ttd
d��d
�fD]�}td�D]�}tj|�}	|j|	j|�|jt�5tj�j!|��}
ddd�
j#|�}t%|	|z
�td��ks����|j'd���y#1swY�MxYw)Nr}�42r�rerr�r�rr1r�r�r��weirdtzrQrr�z0utcnow(), now(tz), or astimezone() may be broken)r8r�rbr0rr)rvrr�r�rrgrr]r^r�rr�rf�fail)r*�methrZ�off42�another�againr1rtrr�r��now2s            r+�test_tzinfo_nowzTestDateTimeTZ.test_tzinfo_now.s����}�}� � ���v���B��%���u�+�������
�
�g�n�n�e�l�l�3�����*�*�,�i��.C�D����)�T�2�.����)�T�"��5����)�T���7����)�T�5�%�8�
�!�U�A�&��#�I�B��$C�Y�PQ�R� ���R�!@�)�L�O�G��q����l�l�7�+���
�
�c�j�j�'�2��%�%�&8�9�%�_�_�.�6�6�c�6�B�F�:��(�(��1���s�T�z�?�Y�r�%:�:��"��	�	�L�M�O�
:�9�s�=%G.�.G7c�j�ddl}|jj}|j�}||�}tdd�}|||�}|||��}|j	|j
|j
�|j
|j�td���|jt||d�|jt||d��|jt|||��|jt||||�|jt|�d	}|jt�5tj|�}	ddd�td
d��}
t|
d
d�}	|
z}tj||�}
|j
||
jd���y#1swY�axYw)Nrr}rrr�rerrrsr�i��'r�r�)rr8r�rbr0rr)rvrr�r�r]r^rr_r)r*rrvr�rZrwrxryr��utcdatetimervr�rr]s              r+�test_tzinfo_fromtimestampz(TestDateTimeTZ.test_tzinfo_fromtimestampTsp����}�}�*�*��
�T�Y�Y�[���B�x���B��%���r�5�/���R�E�"���
�
�g�n�n�e�l�l�3�����*�*�,�i��.C�D����)�T�2�r�2����)�T�2�b��9����)�T�2�U��;����)�T�2�u�e�<����)�T�*��	�
�
�
�0�
1�"�3�3�I�>�K�2��C��4�	�
��D�!�
,����*���$�$�Y��3������3�;�;�d�;�#;�<�2�
1�s�3F)�)F2c��|jj}|jt�5|�}ddd�t	dd�}|jt||�|jt||��y#1swY�ExYw)Nr}rrr)r8r�r]r^rbr�r�)r*rvrZrws    r+�test_tzinfo_utcnowz!TestDateTimeTZ.test_tzinfo_utcnowxsj���}�}�#�#��
�
�
�0�
1��6�D�2��B��%�����)�T�5�1����)�T�%��8�
2�
1�s�A8�8Bc���ddl}|jj}|j�}|jt�5||�}ddd�tdd�}t
jt��5t
jdt��|jt|||�|jt|||��ddd�y#1swY��xYw#1swYyxYw)Nrr}rr)�category�ignorer)rr8r_r]r^rb�warnings�catch_warnings�simplefilterr�r�)r*rrvr�rZrws      r+�test_tzinfo_utcfromtimestampz+TestDateTimeTZ.test_tzinfo_utcfromtimestamp�s�����}�}�-�-��
�T�Y�Y�[��
�
�
�0�
1���8�D�2��B��%��
�
$�
$�.@�
A��!�!�(�5G�H����i��r�5�9����i��r�%��@�B�
A�2�
1��
B�
A�s�	C�8A
C�C�C#c
��Gd�dt�}|j}dD�](\}}|ddddddd||��	�}|j�}|jd|j�|jd|j
�|jd|j�|jd|j�|jd|j�|jd|j�|jd
|j�|jd|j�|j||j���+|jt|ddd|d��	�j�|j|ddd|d��	�j�jd�|j|ddd|d
��	�j�jd�|jt|ddd|d��	�j�|jt|ddd|d��	�j�y)Nc��eZdZd�Zd�Zy)�1TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DSTc�J�t|t�rt|��}||_yrd�rgrhr�dstvalue�r*r�s  r+roz:TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DST.__init__�����h��,�(��:�H� (��
r-c��|jSr/�r�rts  r+r{z5TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DST.dst�����}�}�$r-N�rGr_r`ror{r!r-r+�DSTr��s��
)�
%r-r�))����r)r�r)rr)Nr
rrr7rr�rrr�r�r�r]r�)rr8r�r)rrrr r!r"r#r$r%r�r�r�)r*r�rYr��flagr�r�s       r+�test_tzinfo_timetuplez$TestDateTimeTZ.test_tzinfo_timetuple�s���	%�&�	%��m�m��C�N�H�d��A�q�!�R��R��C��M�B�A����
�A����Q��	�	�*����Q����)����Q��	�	�*����R����+����R����*����R����*����Q��	�	�*����Q��	�	�*����T�1�:�:�.�D�	
���)�S��A�q��S��%B�%L�%L�M�	
����Q�q��3�t�9�5�?�?�A�J�J�A�N�����Q�q��3�u�:�6�@�@�B�K�K�Q�O�	
���*�c�!�A�a��D�	�&B�&L�&L�M����*�c�!�A�a��E�
�&C�&M�&M�Nr-c�N	��Gd�dt��|j}|jt|ddd�d���j�G�fd�d��}dD�]�}|dd	d
ddd
d|d|���}|j�}|j
|j|j�|j
|j|j�|j
|j|j�|j
d|j�|j
d|j�|j
|j|j �|j
|j#�|j$�|j
|j'�t)ddd�j'�z
dz|j*�|j
d|j,����|dd	d
ddd
d�}|j�}|j
|dd|j/�dd�|j
d|j,�Gd�d��}|dd	d
ddd
d|���}|j�}|j
|dd|j/�dd�|j
d|j,�Gd�d��}|dd	d
ddd
d|���}|jt0|j
�|ddddddd�}t2j4t2j6t2j8fD]e}|j;|��}	|j
|	j�dd|	j=t2j6�j/�dd��g|t>ddddd|d���}
|jt@|
j
�|tBddd d!dd"|d#���}|jt@|j
�|j4j;t3tD���}
|jt@|
j
�|j8j;t3tD���}|jt@|j
�y)$Nc��eZdZdd�Zd�Zy)�-TestDateTimeTZ.test_utctimetuple.<locals>.DSTc�J�t|t�rt|��}||_yrdr�r�s  r+roz6TestDateTimeTZ.test_utctimetuple.<locals>.DST.__init__�r�r-c��|jSr/r�rts  r+r{z1TestDateTimeTZ.test_utctimetuple.<locals>.DST.dst�r�r-N)rr�r!r-r+r�r��s��
)�
%r-r�rrrc� ��eZdZd�fd�	Zd�Zy)�.TestDateTimeTZ.test_utctimetuple.<locals>.UOFSNc�L���j||�t|��|_yrd)ror�uofs)r*r��dofsr�s   �r+roz7TestDateTimeTZ.test_utctimetuple.<locals>.UOFS.__init__�s������T�4�(�%�d�3��	r-c��|jSr/)r�rts  r+rvz8TestDateTimeTZ.test_utctimetuple.<locals>.UOFS.utcoffset�s���y�y� r-r/r�)r�s�r+�UOFSr��s
���
4�
!r-r�)r�r�rNrUrQrr7rr�i���r�r
r
c��eZdZd�Zy)�.TestDateTimeTZ.test_utctimetuple.<locals>.NOFSc��yr/r!rts  r+rvz8TestDateTimeTZ.test_utctimetuple.<locals>.NOFS.utcoffset�s��r-Nr�r!r-r+�NOFSr��s��
r-r�c��eZdZd�Zy)�.TestDateTimeTZ.test_utctimetuple.<locals>.BOFSc��y)Nr�r!rts  r+rvz8TestDateTimeTZ.test_utctimetuple.<locals>.BOFS.utcoffset�s��r-Nr�r!r-r+�BOFSr��s��
r-r�r�r_r�ri+�rr�r�r�r�r�r&r�)#rr8r�r�rv�utctimetupler)rZrr[rr�rr r!rr"r�r#rcrr$r%r�r�rr�r1r�rr�rr�rr�)
r*rYr�r�r�r�r�r�r��dtzr��huger�s
            @r+�test_utctimetuplez TestDateTimeTZ.test_utctimetuple�s����	%�&�	%��m�m�����-��a��A�c�!�f�5�?�?�	A�	!�3�	!�)�H��A�q�!�R��R��D��h�4G�H�A���� �A����Q�V�V�Q�Y�Y�/����Q�W�W�a�h�h�/����Q�U�U�A�I�I�.����R����+����R����*����Q�X�X�q�x�x�0����Q�Y�Y�[�!�)�)�4����Q�[�[�]�T�!�Q��]�-D�-D�-F�F��J��Y�Y�
(�
���Q��
�
�+�)�"
��1�a��R��R�(��
�N�N�������3�B������s��!3�4�����A�J�J�'�	�3�	�
��1�a��R��R���7��
�N�N�������3�B������s��!3�4�����A�J�J�'�	�3�	�
��1�a��R��R���7�����)�Q�^�^�4�
��b�"�b�"�b�&�1���<�<����x�|�|�<�B��)�)�2�)�&�C����S�-�-�/���4� �^�^�H�L�L�9�C�C�E�c�r�J�
L�=��7�A�q�!�Q��4��:�>�����-��):�):�;��7�B��B��B��t�E�{�K�����-��):�):�;��w�w���h�v�&6��7�����-��):�):�;��w�w���h��w�&7��8�����-��):�):�;r-c��tdd�}tdd�}tdd�}tdd�}|j}d}d||||fD]�}d	D]�}|d
ddd
dd||��}	d|xrdxsdz}
|duxr|	j�xsd}|
|z}|	j�}
|j	|
|dz|z�|j	|
|	jd��|j	|	jd�|dz|z�|j	|	jd�|dz|z�|j	t|	�|dz|z�����y)Nrr��z+03:40i���z-03:51rz
0001-02-03)riyrrUrQrWrRr�rz04:05:59z.987001r��kuሴr�)rbr8ryr�r)r�)r*rz�plus�minus�unknownrY�datestr�ofsrlr��timestr�ofsstr�tailstr�isos              r+�test_tzinfo_isoformatz$TestDateTimeTZ.test_tzinfo_isoformatsM���1�h�'���3��)���D�(�+���d�B�'���m�m������t�U�G�3�C�����1�a��A�r�2�c�:��$��(8�y�(>�B�?���D��7�Q�X�X�Z�=�2��!�F�*���k�k�m��� � ��g��m�g�&=�>�� � ��a�k�k�#�&6�7�� � ����S�!1�7�S�=�7�3J�K�� � ����X�!6��(�8J�W�8T�U�� � ��Q���3���)@�A� �4r-c	�"�|j}tdd�}ttd��d�}dddd	d
dd|g}||�}|j||j	��d
}dddddddd|ffD]?\}}|dd}	||	|<||	�}
|jdi||i��}|j|
|�|dz
}�A|j|j�d�|j	d��}|j
|j�|j
|j��|j	|��}
|j||
�|j|j|
j�|ddd�}|jt|jd��y)Nr�rrrerrrUrQrWrRrYrTrrSrTrUr�r�r�r�rrrNryr|rVr!rrs              r+r^zTestDateTimeTZ.test_replaces����m�m���3��'���I�d�3�V�<���1�a��A�q�!�T�*���D�z������t�|�|�~�.�
��(�)�'�(�*�*�/�&��.�0�L�D�&��1�g�G��G�A�J��G�}�H��$�,�,�0�$���0�C����X�s�+�
��F�A�0� 	
��������/����D��)�����%�,�,�'����%�,�,�.�)��
�
�T�
�*������u�%��
�
�d�k�k�5�<�<�0��4��B������*�d�l�l���>r-c���tdd�}tdd�}ttd��d�}|jj|��}|j	|j
|�|j
t|j|�|j|j
�}|j	|j
|�|j|j�|j��|j|j�|j��|j|�}|j	|j
|�|j|j�td���||j�z
}||j|�z
}|j|�	�}|j|j�|j��|j|j�|j��|j|j�|j��|j	|j
|j
�|j||�y)
N�Noner��44rRr��m300r�r	r)rbrr8r�r0rr�r�r�r)rrrvrr�)r*�fnone�f44m�fm5hrur�r]rs        r+�test_more_astimezonez#TestDateTimeTZ.test_more_astimezoneBs����D�&�)���2�t�$���I�A�.�.��7��
�]�]�
�
�$�
�
'���
�
�b�i�i��&����*�b�m�m�U�;��M�M�"�)�)�$���
�
�a�h�h��%��������2�7�7�9�-��������2�7�7�9�-��m�m�D�!���
�
�c�j�j�$�'��������)�"�*=�>������&���D�N�N�2�&�&���#�#�4�#�0���������X�]�]�_�5��������X�]�]�_�5��������x���'8�9��
�
�c�j�j�(�/�/�2�����h�'r-rc���|jjtj�}|j	|jd�|�|j	|j�|�yr/)r8r�rr1r)r�rts  r+�test_astimezone_default_utcz*TestDateTimeTZ.test_astimezone_default_utc_sI��
�]�]�
�
�x�|�|�
,��������t�,�b�1��������"�-r-rac��|jdddddtj��}|j�}|j	||�|j	|jd�d�|jdddd	dtj��}|j�}|j	||�|j	|jd�d
�y)Nrbr�rWrYrrr�z	-0500 ESTrRz	-0400 EDT)r8rr1r�r)r�)r*rurs   r+�test_astimezone_default_easternz.TestDateTimeTZ.test_astimezone_default_easterngs���
�]�]�4��Q��2�h�l�l�]�
C���
�
�������U�#��������0�+�>�
�]�]�4��Q��2�h�l�l�]�
C���
�
�������U�#��������0�+�>r-c���tddddtj��}|j�}|j�}|j	|j
|j
�y)Nr-r�rrRr)rrr1r�r)r)r*r�r�r�s    r+�!test_astimezone_default_near_foldz0TestDateTimeTZ.test_astimezone_default_near_foldrsH��
�T�2�q�!�H�L�L�9��
�L�L�N��
�L�L�N��������1�8�8�,r-c��|j}Gd�dt�}|ddddddd	|��
�}|jd��}|jd��}|jd��}|||fD]F}|||fD]<}||z
}	t|j|jz
�
�}
|j|	|
��>�H|ddddddd	�}|jd|���}|jd|���}|jd|���}|||fD]t}|||fD]j}||z
}	||us||ur||us||urtd�}
n5||cxur|urnntd�}
n||ur
td�
�}
ntd�
�}
|j|	|
��l�vy)Nc��eZdZd�Zy)�BTestDateTimeTZ.test_aware_subtract.<locals>.OperandDependentOffsetc�d�|jdkrt|j��Std��Sr�r�r�s  r+rvzLTestDateTimeTZ.test_aware_subtract.<locals>.OperandDependentOffset.utcoffset�r�r-Nr�r!r-r+r�r�r�r-r�r�r�rr�r�r
r_rrQrurer�ri���rK)r8rrrrr))r*rYr�rZr�rrkr�rgr]rs           r+�test_aware_subtractz"TestDateTimeTZ.test_aware_subtractzs����m�m��	1�V�	1��1�a��R��R��4J�4L�M��
�\�\��\�
#��
�\�\��\�
#��
�\�\��\�
$���R���A���R�Z���!�e��$�Q�X�X����-@�A��� � ��h�/� ���1�a��R��R��,��
�\�\��+A�+C�\�
D��
�\�\��+A�+C�\�
D��
�\�\��,B�,D�\�
E���R���A���R�Z���!�e����G�q�B�w�Q�"�W��R��(��|�H��!�\�r�\�(��|�H��"�W�(��;�H� )��;�H�� � ��h�/� �r-c	��tddddddd�}tddddddd�}|j||�|jd��}|j||�|jtdd	���}|j||�|jtd
d	���}|j	||�Gd�dt
�}|�}|j|��}|j|��}|j|j
�td
���|j|j
�td���|j||�|j|���}|j||k�y)NrrUrQrWrRrYrTrrrc��eZdZd�Zd�Zy)�1TestDateTimeTZ.test_mixed_compare.<locals>.Variesc�&�td��|_yr
r�r2s r+roz:TestDateTimeTZ.test_mixed_compare.<locals>.Varies.__init__�rr-c�X�|xjtd��z
c_|jSrrr�s  r+rvz;TestDateTimeTZ.test_mixed_compare.<locals>.Varies.utcoffset�rr-Nr�r!r-r+rr��rr-rr�rer+)	rr)rrbr�rrvrr�rs     r+rKz!TestDateTimeTZ.test_mixed_compare�sK��
�a��A�q�!�Q��
*��
�a��A�q�!�Q��
*������R� �
�Z�Z�t�Z�
$������R� �
�Z�Z�{�4��4�Z�
5������R� �
�Z�Z�{�1�b�1�Z�
2�����B��#�	#�V�	#�
�H��
�Z�Z�q�Z�
!��
�Z�Z�q�Z�
!����������2�)>�?���������2�)>�?�����R� ��Z�Z�v�x�Z�
(������R�� r-c�
��G�fd�d�j�}ddddddd	td
dd�f}�j|�}||id
di��}�j|j|��j|jd��j|j
d��j|j
�|j
���j|jd�|j|jzdz
�y)Nc�"��eZdZdZ�fd�Zd�Zy)�2TestDateTimeTZ.test_subclass_datetimetz.<locals>.Cr}c���|j�}|jd�}�jj|g|��i|��}||_|Srirjrls      �r+r�z:TestDateTimeTZ.test_subclass_datetimetz.<locals>.C.__new__�rpr-c�:�||jz|jzSr/)rarZrrs  r+rtz:TestDateTimeTZ.test_subclass_datetimetz.<locals>.C.newmeth�s���t�y�y�(�4�9�9�4�4r-Nrur2s�r+rwr��s����I�
�
5r-rwrYr�r�rWrRrYrBr�r�rr�rTr}rV)
r8rbr)rFrvr�rvrtrarZrys`    r+�test_subclass_datetimetzz'TestDateTimeTZ.test_subclass_datetimetz�s����	5��
�
�	5��R��Q��1�c�;�t�U�A�+F�F���d�m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�X�X�*=��*A�Br-N)rGr_r`rr8rGrRr�r6rVr�r�r�rpr{rr�r�r�r�r�r^r�r
r:r�r�r�r�rKr�r!r-r+rErE#s����H�	*�C8�JC�.#=�J/�>�<5�I�?G�B$N�L"=�H	9�
A�"O�HN<�`B�*%?�N(�:�W�����.� �.��W���3�4�?�5�?��W���3�4�-�5�-�*0�X!�<Cr-rEc�L�d|j�z
}|r|t|�z
}|S)NrY)r�r)ru�
days_to_gos  r+�first_sunday_on_or_afterr��s)���R�Z�Z�\�!�J��
�i�
�#�#��
�Ir-rer�rQrWrUr�c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�
USTimeZonec�P�t|��|_||_||_||_y�Nr��r�	stdoffset�reprname�stdname�dstname�r*r�r�r�r�s     r+rozUSTimeZone.__init__��#��"��/��� ��
������r-c��|jSr/�r�r2s r+rrzUSTimeZone.__repr__�rwr-c�T�|j|�r|jS|jSr/�r{r�r�rts  r+ryzUSTimeZone.tzname��!���8�8�B�<��<�<���<�<�r-c�>�|j|j|�zSr/�r�r{rts  r+rvzUSTimeZone.utcoffset����~�~������,�,r-c�*�|�|j�tSttj	|j
���}ttj	|j
���}||j	d��cxkr
|kr
tStStS�NrVr)rr�r��DSTSTARTrrZ�DSTENDr�r*rurs�ends    r+r{zUSTimeZone.dsts��
�:����*��K�)��)9�)9�r�w�w�)9�)G�H��'�v�~�~�2�7�7�~�'C�D��
�B�J�J�d�J�+�1�c�1��K�2��K�4�Kr-N�rGr_r`rorrryrvr{r!r-r+r�r��s���� �-�r-r�r	rr�r�rZ�Central�CST�CDTrV�Mountain�MST�MDTi�����Pacific�PST�PDTri0����UTCfakec�f�eZdZedddd�Zedddd�ZeZd�Zd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
y)�TestTimezoneConversionsrYrWrTrUrr.rc��|j|j�t�|j|j|�|�|j|�}|j|�}|j	�|j	�k(r}|j
dk(rn|j|tz|�|j|j�t�|j|j|�|j|��n|j||�|tz}|j|�}	|j	�|j	�k(rn|j
dk(r_|j|	|jd���|tz
}|j|�}	|j|	|jd���y|j|	|z
t�y)NrUrrrt)r)r{rr�rrar�r)
r*rur�r1�dston�dstoff�asutc�there_and_back�nexthour_utc�nexthour_tzs
          r+�checkinsidez#TestTimezoneConversions.checkinside-s|���������4�(�	
������r�*�B�/��
�
�c�"���)�)�"�-���7�7�9��
�
��$����A��
���^�d�2�B�7�
���^�/�/�1�4�8����^�6�6�s�;��]�]�3�/�
1�
���R��0��t�|��"�-�-�b�1��
�7�7�9����
�%�"�'�'�Q�,�
���[�"�*�*�!�*�*<�=��D� �L�&�1�1�"�5�K����[�"�*�*�!�*�*<�=����[�2�-�t�4r-c��|j|j�t�|j|j|�|�|j|�}|j|�}|j||�yr/)r)r{r�r�)r*rur�r1r	r
s      r+�checkoutsidez$TestTimezoneConversions.checkoutsideasc���������4�(�	
������r�*�B�/��
�
�c�"���)�)�"�-������^�,r-c	��|jj|��}|jj|��}td��tt
td��td��fD]p}|j
|||||�||z||z
fD]}|j
|||||��|j|||�||z
||zfD]}|j|||���ry)Nrr
rRrrer�)rrrr�DAYrr
r)r*r�r1rrr*�during�outsides        r+�convert_between_tz_and_utcz2TestTimezoneConversions.convert_between_tz_and_utcls����
�
�"�"�"�"�-�����$�$�B�$�/���b�)�����*��Q�/�	1�E�
���U�B��U�F�;��%�-��%��7��� � ���S�%��@�8�
���f�b�#�.� �5�=�&�5�.�8���!�!�'�2�s�3�9�1r-c�<�|jtt�|jtt�|jtt�|jtt�|jtt�|jtt�yr/)rr�utc_realr�utc_faker2s r+�	test_easyz!TestTimezoneConversions.test_easy�sd���'�'���:��'�'���:��'�'���:��'�'���:�	
�'�'���9��'�'���9r-c	��|jtd��z
}tddd�}|j|��}|jjd��}|j	t
�jd��}|j
||�|jjd	t�
�}|jjd��}|j	t
�jd��}|j
||�ttfD]�}t
tfD]�}|jtd��z
}||jd�z}||jd�z}	|	j|��}
d
D]�}|jj|��}dD]Y}
|j|
��}|
j|
��}	|	j	|�}|j
|jd��|��[|
tz
}
������y)NrWr�i��z-0900rrrQrtrY�rarrrU)rrrrU�rrr�ru)
rrrbrr�rr)rrrrrvr)r*�fourback�ninewestrr]�sixutcr1r��first_std_hourr	�	asutcbase�tzhour�expectedbaser�astzs               r+�test_trickyz#TestTimezoneConversions.test_tricky�s����:�:�	�� 2�2���u�g�q�1���#�#�8�#�4���:�:�%�%�1�%�-���!�!�'�*�2�2�$�2�?������3�'����#�#��8�#�<���:�:�%�%�1�%�-������(�0�0��0�=������3�'��X�%�C��w�&��!%���y�q�/A�!A���"�,�,�t�"4�4��&����t�)<�<��"�M�M��M�5�	�*�F�#'�;�;�#6�#6�F�#6�#C�L�"+��#/�#7�#7�v�#7�#F�� )� 1� 1�� 1� @��$�/�/��3���(�(����T��)B�H�M�	#,�
��%�I�+�'�&r-c��Gd�dt�}|jj�jt��}|j|��Gd�d|�}|j
t|j
|��Gd�d|�}|jdd	d	�jt��}|j
t|j
|��y)
Nc��eZdZd�Zd�Zy)�2TestTimezoneConversions.test_bogus_dst.<locals>.okc��tSr/�rrts  r+rvz<TestTimezoneConversions.test_bogus_dst.<locals>.ok.utcoffset�s��D�[r-c��tSr/r)rts  r+r{z6TestTimezoneConversions.test_bogus_dst.<locals>.ok.dst�s��d�{r-Nr�r!r-r+�okr'�s��0�*r-r+rc��eZdZd�Zy)�5TestTimezoneConversions.test_bogus_dst.<locals>.notokc��yr/r!rts  r+r{z9TestTimezoneConversions.test_bogus_dst.<locals>.notok.dst�r�r-N�rGr_r`r{r!r-r+�notokr-�s��*r-r0c��eZdZd�Zy)�<TestTimezoneConversions.test_bogus_dst.<locals>.tricky_notokc�4�|jdk(rydtzS)NrNr)rZrrts  r+r{z@TestTimezoneConversions.test_bogus_dst.<locals>.tricky_notok.dst�s���7�7�d�?���d�7�Nr-Nr/r!r-r+�tricky_notokr2�s��
#r-r4r|r)rr8r�rrr�r�r�)r*r+r�r0r4rus      r+�test_bogus_dstz&TestTimezoneConversions.test_bogus_dst�s���	+��	+��m�m���!�)�)��)�:�����r�t��	+�B�	+����*�c�n�n�e�g�>�	#�2�	#��]�]�4��A�
&�
.�
.�h�
.�
?�����*�b�m�m�\�^�Dr-c�.�|jttj�t	j
t��}|jttj|�|jt��}tj|�}|j|jt�|jttj||�|jttjtj��Gd�dt�}|dddd�}|jjd	t�
�}|j|��}dD]�}|j|��}|d
k(r|td��z}tj|�}	|j||	�||j z}|j|�}	|j||	�|jt��j#|�}	|j||	�|t$z
}|t$z
}��|j&jd	t�
�}|j|��}dD]�}|j|��}tj|�}	|j||	�||j z}|j|�}	|j||	�|jt��j#|�}	|j||	�|t$z
}|t$z
}��y)Nr�rc��eZdZd�Zy)�<TestTimezoneConversions.test_fromutc.<locals>.FauxUSTimeZonec� �||jzSr/)r�rts  r+r�zDTestTimezoneConversions.test_fromutc.<locals>.FauxUSTimeZone.fromutc�s���D�N�N�*�*r-N�rGr_r`r�r!r-r+�FauxUSTimeZoner8�s��
+r-r;r	�FEastern�FEST�FEDTrWr)r�rrrQrWrRrtr�rrQ)rrrrUrQrW)r�r�rr�rr�rr�rr)rrr]r�rrr�r�rr)
r*r��enowr;r<rs�fstart�wallrr]s
          r+rz$TestTimezoneConversions.test_fromutc�sx�����)�W�_�_�5��l�l�h�'�����*�g�o�o�s�;��k�k��k�)�����s�#��������g�.����)�W�_�_�c�3�?����)�W�_�_�d�j�j�l�C�	+�Z�	+�#�2�z�F�F�C���
�
�"�"��'�"�:�����h��/��%�D��}�}�$�}�/�H��r�z��I�1�-�-���/�/�%�(�C����X�s�+��� 2� 2�2�H��"�"�6�*�C����X�s�+��.�.��.�1�<�<�X�F�C����X�s�+��T�M�E��d�N�F�!&�&���#�#��7�#�;�����h��/��$�D��}�}�$�}�/�H��/�/�%�(�C����X�s�+��� 2� 2�2�H��"�"�6�*�C����X�s�+��.�.��.�1�<�<�X�F�C����X�s�+��T�M�E��d�N�F�%r-N)rGr_r`rrrr8r
rrrr$r5rr!r-r+rr%sM���T�1�a��#�E�
�d�B��A�
&�F��H�15�h	-�4�,
:�00&�fE�6:r-rc��eZdZd�Zd�Zd�Zy)�Oddballsc����tj��tj�t	���|j��k7�|j��k7�|j
��k(�|j
��k(�|jt��fd��|jt��fd��|jt��fd��|jt��fd��|jt��fd��|jt��fd��|jt��fd��|jt��fd��|j�j��d	��jd
zdzd
z}�j|��}|j�j|�d
�t�j�j�j�}|j�|�|j|��t!�j�j�jddd�}|j�|�|j|��y)Nc�����kSr/r!��as_date�as_datetimes��r+r@z+Oddballs.test_bug_1028306.<locals>.<lambda>3�
���W�{�-Br-c�����kSr/r!rFs��r+r@z+Oddballs.test_bug_1028306.<locals>.<lambda>4�
���[�7�-Br-c�����kSr/r!rFs��r+r@z+Oddballs.test_bug_1028306.<locals>.<lambda>5�
���W��-Cr-c�����kSr/r!rFs��r+r@z+Oddballs.test_bug_1028306.<locals>.<lambda>6�
���[�G�-Cr-c�����kDSr/r!rFs��r+r@z+Oddballs.test_bug_1028306.<locals>.<lambda>7rIr-c�����kDSr/r!rFs��r+r@z+Oddballs.test_bug_1028306.<locals>.<lambda>8rKr-c�����k\Sr/r!rFs��r+r@z+Oddballs.test_bug_1028306.<locals>.<lambda>9rMr-c�����k\Sr/r!rFs��r+r@z+Oddballs.test_bug_1028306.<locals>.<lambda>:rOr-Trr7)r�Fr)rr]rr�rr�r�r�r�r)�__eq__r�rrRrZr[r�)r*�
different_day�as_different�date_sc�datetime_scrGrHs     @@r+�test_bug_1028306zOddballs.test_bug_1028306*s�����*�*�,���&�&�w���7������;�.�/�����w�.�/�����K�/�0������/�0����)�%B�C����)�%B�C����)�%C�D����)�%C�D����)�%B�C����)�%B�C����)�%C�D����)�%C�D�	
�������4�d�;� ���q��B�.��2�
�"�*�*�
�*�>���������5�u�=��w�|�|�W�]�]�G�K�K�H������'�*�����'�*�'�{�'7�'7��9J�9J�'.�{�{�A�q�!�=������k�2�����k�2r-c	�r�|jt�5tj�}ddd�t	j
�t
�t�t�tt��fD]'}|jt�5d|_ddd��)y#1swY�wxYw#1swY�@xYwr�)
r]r^rr�rr]rrrrr��AttributeErrorr )r*r�r�s   r+�test_extra_attributeszOddballs.test_extra_attributesOs���
�
�
�0�
1��_�_�&�F�2��*�*�,��&���+��(��9�;�'�)�A��"�"�>�2����3�2�
)�2�
1��3�2�s�B!�B-�!B*�-B6	c��Gd�d�}Gd�dt�}d|d�tjd�tjd�|d�|d�d	fD]�}|jtt
|dddddd�	|jtt
d|ddddd�	|jtt
dd|dddd�	|jtt
ddd|ddd�	|jtt
dddd|dd�	|jtt
ddddd|d�	|jtt
dddddd|�	��y)
Nc��eZdZd�Zd�Zy)�-Oddballs.test_check_arg_types.<locals>.Numberc��||_yr/��value)r*rbs  r+roz6Oddballs.test_check_arg_types.<locals>.Number.__init__]s	��"��
r-c��|jSr/rar2s r+�__int__z5Oddballs.test_check_arg_types.<locals>.Number.__int___s���z�z�!r-N)rGr_r`rordr!r-r+�Numberr_\s��
#�
"r-rec��eZdZy)�,Oddballs.test_check_arg_types.<locals>.FloatNr�r!r-r+�Floatrgbr�r-rhg$@g������%@rz10.9�10)r(�decimal�Decimalr�r�r)r*rerh�xxs    r+�test_check_arg_typeszOddballs.test_check_arg_types[s*��	"�	"�	�E�	���t���?�?�2�&�����(?��"�:�v�d�|���B�
���i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N�r-N)rGr_r`rYr\rmr!r-r+rCrC(s��#3�J
�Or-rCc��eZdZd�Zy)�tzinfo2c��t|t�std��|j|urt	d��|jd��j
�}|jd��j
�}|�|�|j��t�||k(r||z}|j
�}||k(r|S||fD]G}||z}|j
�|k(r|cS|jd��}|j
�|k(s�E|cSt	d��)�*datetime in UTC -> datetime in local time.�&fromutc() requires a datetime argument�dt.tzinfo is not selfrr5rzNo suitable local time found)rgrr�rr�rrvr{)r*ru�off0�off1�ldt�offs      r+r�ztzinfo2.fromutcys���"�h�'��D�E�E�
�9�9�D� ��4�5�5��z�z�q�z�!�+�+�-���z�z�q�z�!�+�+�-���<�4�<�2�6�6�8�+;����4�<��t�)�C��=�=�?�D��t�|��
��$�<�C��s�(�C��}�}��#�%��
��+�+�1�+�%�C��}�}��#�%��
�
 ��7�8�8r-Nr:r!r-r+rorows��9r-roc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�USTimeZone2c�P�t|��|_||_||_||_yr�r�r�s     r+rozUSTimeZone2.__init__�r�r-c��|jSr/r�r2s r+rrzUSTimeZone2.__repr__�rwr-c�T�|j|�r|jS|jSr/r�rts  r+ryzUSTimeZone2.tzname�r�r-c�>�|j|j|�zSr/r�rts  r+rvzUSTimeZone2.utcoffset�r�r-c���|�|j�tSttj	|j
���}ttj	|j
���}|j	d��}|tz|cxkr
|krtS||cxkr|tzkrnn|jrtStS||cxkr|tzkr ntS|jrtStStSr�)	rr�r�r�rrZr�rr6r�s    r+r{zUSTimeZone2.dst�s���
�:����*��K�)��)9�)9�r�w�w�)9�)G�H��'�v�~�~�2�7�7�~�'C�D��
�Z�Z�t�Z�
$���4�<�2�#��#��K�$��B�
#��t��
#��7�7�4�,��,�
�b�
'�5�4�<�
'�
�K��7�7�4�,��,��Kr-Nr�r!r-r+ryry�s���� �-�r-ry�Eastern2�Central2�	Mountain2�Pacific2c�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�Europe_Vilnius_1941c�B�tdddd|��tdddd|��gS)N�rYr�r�rr��rr2s r+�	_utc_foldzEurope_Vilnius_1941._utc_fold�s,����q�"�b��6���q�"�b��6�8�	8r-c�B�tdddd|��tdddd|��gS)Nr�rYr�rr+rr�r2s r+�	_loc_foldzEurope_Vilnius_1941._loc_fold�s,����q�"�b��6���q�"�a��5�7�	7r-c��|j�\}}||kr	dtzS||kr|jr	dtzSdtzSdtzS)NrQrU�r�rr6�r*ru�
fold_start�	fold_stops    r+rvzEurope_Vilnius_1941.utcoffset��N�� $��� 0��
�I�
�
�?��t�8�O�
�	�>����A�4�/�/�a�4�/�/��4�x�r-c��|j�\}}||kr	dtzS||kr|jr	dtzSdtzSdtzS)Nrrr�r�s    r+r{zEurope_Vilnius_1941.dst�r�r-c�^�|j�\}}||kry||krd|jSy)N�MSK)r��CESTr�)r�r6r�s    r+ryzEurope_Vilnius_1941.tzname�s6�� $��� 0��
�I�
�
�?��
�	�>�"�2�7�7�+�+�r-c���|jdk7rt�|j�\}}||kr|dtzzS||kr|dtzzj	d��S|dtzzS)Nr�rQrUrr5)rZr�r�rrr�s    r+r�zEurope_Vilnius_1941.fromutcsl���7�7�d�?�%�%� $��� 0��
�I�
�
�?���D��=� �
�	�>���T��M�*�*��*�2�2��A��H�}�r-N)	rGr_r`r�r�rvr{ryr�r!r-r+r�r��s ��8�7����r-r�c�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
jd�d	��Ze
jd
�d��Z
d�Ze
jd�d
��Ze
jd
�d��Ze
jd�d��Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�TestLocalTimeDisambiguationc	�^�t�}tddddddtj��}|j	|�}|j|j
d�d�|j|jd	�|j|j��tdddd
tj��}|j	|�}|j|j
d�d�|j|jd�|j|j��tdddd
tj��}|j	|�}|j|j
d�d�|j|jd	�|j|j��y)Nr�rYr�r7r�rz%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300rr�z"Mon Jun 23 23:00:00 1941 CEST+0200rr�z"Tue Jun 24 00:00:00 1941 CEST+0200)r�rrr1r�r)r�r6r�r{r�)r*�Vilnius�gdtrvs    r+�test_vilnius_1941_fromutcz5TestLocalTimeDisambiguation.test_vilnius_1941_fromutcsB��%�'���t�Q��B��B�x�|�|�D���n�n�W�%��������i�0�<�	>�������1�%��������#��t�Q��B�x�|�|�<���n�n�W�%��������i�0�=�	?�������1�%�������	�"��t�Q��B�x�|�|�<���n�n�W�%��������i�0�=�	?�������1�%�������	�"r-c
��t�}tdddddd|��}|jtj�}|j|j
d�d�tdddddd|��}|jtj�}|j|j
d�d	�tdddddd|d
��}|jtj�}|j|j
d�d�tddd
d|��}|jtj�}|j|j
d�d�y)Nr�rYr�r�r�rz%c %ZzMon Jun 23 19:59:59 1941 UTCzMon Jun 23 20:59:59 1941 UTCr)rr6zMon Jun 23 21:59:59 1941 UTCr+rzMon Jun 23 22:00:00 1941 UTC)r�rr�rr1r)r�)r*r�rvr�s    r+�test_vilnius_1941_toutcz3TestLocalTimeDisambiguation.test_vilnius_1941_toutc)s��%�'���t�Q��B��B�w�?���n�n�X�\�\�*��������g�.�7�	9��t�Q��B��B�w�?���n�n�X�\�\�*��������g�.�7�	9��t�Q��B��B�w�Q�G���n�n�X�\�\�*��������g�.�7�	9��t�Q��A�g�6���n�n�X�\�\�*��������g�.�7�	9r-c	� �tdd��}tdddd��}|j|jd�|j|jd�|j	t
�5tdddddd�ddd�y#1swYyxYw�Nrrr5)rrr)r6r�r��r*r�rus   r+�test_constructorsz-TestLocalTimeDisambiguation.test_constructors@sq�����O��
�a��A�A�
&���������#�������!�$�
�
�
�y�
)���A�q�!�T�1�%�*�
)�
)�s�*B�B
c���tdddd��}|j�}|j|jd�|j	�}|j|jd�y)Nrr5)rrr)r6r�)r*rur�s   r+�test_memberz'TestLocalTimeDisambiguation.test_memberHsP��
�a��A�A�
&���G�G�I���������#��I�I�K���������#r-c��td�}tddd�}|j|jd��jd�|j|jd��jd�|j|jd��jd�|j|jd��jd�|jdt
��}|jdt
��}|j|jd��jd�|j|jd��jd�|j
t�5|jd��ddd�|j
t�5|jd��ddd�|j
t�5|jddddd�ddd�|j
t�5|jddddddddd�	ddd�y#1swY��xYw#1swY��xYw#1swY�YxYw#1swYyxYw)Nrrr5)r6rrrU)	rrr)rr6rr�r�r�r�s   r+r^z(TestLocalTimeDisambiguation.test_replaceOs�����G��
�a��A�
����������*�/�/��3���������+�0�0�!�4���������*�/�/��3���������+�0�0�!�4�
�I�I�1�W�I�-��
�Z�Z�Q�w�Z�
/��������$��/�4�4�a�8�������4��0�5�5�q�9�
�
�
�z�
*�
�I�I�1�I��+�
�
�
�z�
*��J�J�A�J��+��
�
�y�
)�
�I�I�a��A�t�Q�'�*�
�
�
�y�
)��J�J�q�!�Q��1�a��D�!�4�*�
)�+�
*��
*�
*��*�
)��
)�
)�s0�$H�H&�H2�7H>�H#�&H/�2H;�>Ic��td�}tddd�}|j||jd���|j||jd���yr�)rrr)rr�s   r+rz+TestLocalTimeDisambiguation.test_comparisonfsO����G��
�a��A�
������A�I�I�1�I�-�.�����R�Z�Z�Q�Z�/�0r-c��td�}tddd�}|jt|�t|j	d����|jt|�t|j	d����yr�)rrr)r�rr�s   r+�	test_hashz%TestLocalTimeDisambiguation.test_hashlsa����G��
�a��A�
������a��$�q�y�y�a�y�'8�"9�:�����b��4��
�
��
�(:�#;�<r-rac���d}tj|�}tj|dz�}|j|jd�|j|jd�y)NiX�UTrrr)rr�r)r6)r*r��dt0r�s    r+r�z.TestLocalTimeDisambiguation.test_fromtimestamprsS�����$�$�Q�'���$�$�Q��X�.��������1�%�������1�%r-zAustralia/Lord_Howec�t�tjd�}tjd|�dk7r|jd�d}t	j
|�}t	j
|dz�}|j
||�|j
|jd�|j
|jd�y)	N�����A�%Z%z�	LHST+1030�>Australia/Lord_Howe timezone is not supported on this platformi�U�rr)r�rWr�rHrr�r)r6)r*�tmr�rdr�s     r+�test_fromtimestamp_lord_howez8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howezs���
�_�_�U�
#���>�>�&�"�%��4��M�M�Z�[�

��
�
#�
#�A�
&��
�
#�
#�A��H�
-������R� �������!�$�������!�$r-c�b�|jtjd�jd�yrV)r)rr�r6r2s r+�%test_fromtimestamp_low_fold_detectionzATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detection�s%��	
����/�/��2�7�7��;r-c��tddddd�}|jd��}|j|j�dz|j��y)Nr�r�rUrrr5r)rrr)r�)r*r�r�s   r+�test_timestampz*TestLocalTimeDisambiguation.test_timestamp�sH���t�R��A�r�*���k�k�q�k�!���������4�/�����	*r-c�J�tjd�}tjd|�dk7r|jd�t	ddddd	�}|jd
��j
�}|jd��j
�}|j|dz|�y)
Nr�r�r�r�r-rWrRrr�rr5r�)r�rWr�rHrrr�r))r*r�r��s0�s1s     r+�test_timestamp_lord_howez4TestLocalTimeDisambiguation.test_timestamp_lord_howe�s���
�_�_�U�
#���>�>�&�"�%��4��M�M�Z�[��T�1�a��B�'��
�Y�Y�A�Y�
�
(�
(�
*��
�Y�Y�A�Y�
�
(�
(�
*������d��B�'r-c��tddddd�}|jd��}|j�}|j�}|j|j	�d�|j|j	�d�|j|t
z|�|j|jd	�|j|jd	�y)
Nr�r�rUrrr5r�r�r)rrr�r)ryrr6)r*r�r��adt0�adt1s     r+r�z+TestLocalTimeDisambiguation.test_astimezone�s����t�R��A�r�*���k�k�q�k�!���~�~����~�~�����������.���������.�������d�+�������A�&�������A�&r-c�.�td��}tdddd��}tD]q\}}}||fD]d}|j||�}|j	|�}|j||�|j|dkrdn|j|j��f�sy)Nrr5rWr)rrr�r�r�r)r6)	r*r�rur�r�r�r�r�rgs	         r+�test_pickle_foldz,TestLocalTimeDisambiguation.test_pickle_fold�s����a�L��
�a��A�A�
&��)7�%�G�Y����W���M�M�!�U�+���O�O�A�&��� � ��A�&�� � �u�q�y�!�a�f�f�q�v�v�F�	�*8r-c��td��}tdddd��}|jt|�d�|jt|�d�y)Nrr5zdatetime.time(0, 0, fold=1)z(datetime.datetime(1, 1, 1, 0, 0, fold=1))rrr)r�r�s   r+r�z%TestLocalTimeDisambiguation.test_repr�sH���a�L��
�a��A�A�
&������a��"?�@�����b��C�	Er-c	��tddddt��tjz
}tddddt��}|j	|j�t�|j	|j�t�|j	|jd��j�t�|j	|jd��j�t�dD]o}tdddd|t��}|j	|j�t�|j	|jd��j�t��qdD]o}tdd	d
d|t��}|j	|j�t�|j	|jd��j�t��qy)NrYrr.rrrUr5rrWrT)	rrrr�r)r{rr�r)r*�	dt_summer�	dt_winterrrus     r+rz$TestLocalTimeDisambiguation.test_dst�s_���T�2�r�1�X�>��AU�AU�U�	��T�2�r�1�X�>�	��������$�/��������$�/�����*�*��*�2�6�6�8�$�?�����*�*��*�2�6�6�8�$�?�"�F��$��B��6�(�C�B����R�V�V�X�t�,����R�Z�Z�Q�Z�/�3�3�5�t�<�"�"�F��$��1�a���A�B����R�V�V�X�t�,����R�Z�Z�Q�Z�/�3�3�5�t�<�"r-c���tddddt��tjz
}tddddt��}|j	|j�dtz�|j	|j�dtz�|j	|jd�	�j�dtz�|j	|jd�	�j�dtz�y)
NrYrr.rrrUrXr	r5)rrrr�r)rvrr)r*r�r�s   r+rz*TestLocalTimeDisambiguation.test_utcoffset�s����T�2�r�1�X�>��AU�AU�U�	��T�2�r�1�X�>�	�����,�,�.��T�	�:�����,�,�.��T�	�:�����*�*��*�2�<�<�>��T�	�J�����*�*��*�2�<�<�>��T�	�Jr-c��tddddt��tjz
}tddddt��}tj	|�}tj	|�}|j||dtzz
�|j||dtzz
�|j|jd	�|j|jd	�tddddd
t��}tj	|�}|tz
}tj	|�}|j||�|j|jd	�|j|jd�tddddd
t��}tj	|�}|j|j|jfd�tddddd
t��}tj	|�}|j|j|jfd
�tddddd	t��}tj	|�}|j|j|jfd�y)NrYrr.rYrrTrWrRrrr)r�r�)r.rrU)rYr�)
rrrr�r�r)rr6r�ra)	r*�u_summer�u_winter�t_summer�t_winterr�rdr�r�s	         r+rz(TestLocalTimeDisambiguation.test_fromutc�s����D�"�b�!�H�=�	�@T�@T�T���D�"�b�!�H�=���#�#�H�-���#�#�H�-������8�a�$�h�#6�7�����8�a�$�h�#6�7��������*��������*�
�T�2�r�1�b��:��
�
�
�a�
 ��	�T�	��
�
�
�a�
 ������R� �������!�$�������!�$��T�2�r�1�b��:�����Q������!�%�%�����(�3��T�2�r�1�b��:�����Q������!�%�%�����'�2�
�T�1�a��A�h�7�����Q������!�%�%�����'�2r-c��tdddt��}|j||jtj
��tdddt��}|j||jtj
��y)NrNrrrY)rrr)r�rr1r�s  r+�test_mixed_compare_regularz6TestLocalTimeDisambiguation.test_mixed_compare_regulars\���T�1�a��1������A�L�L����6�7��T�1�a��1������A�L�L����6�7r-c��tdddddt��}|jtj�}|j||�|j||�y)NrYrr.rr�r�rrr�rr1r�)r*�t_fold�
t_fold_utcs   r+�test_mixed_compare_foldz3TestLocalTimeDisambiguation.test_mixed_compare_foldsJ���$��B��2�h�?���&�&�x�|�|�4�
����F�J�/����J��/r-c��tdddddt��}|jtj�}|j||�|j||�y)NrYrWrTrUr�rr�)r*�t_gap�	t_gap_utcs   r+�test_mixed_compare_gapz2TestLocalTimeDisambiguation.test_mixed_compare_gapsJ����q�!�Q��8�<���$�$�X�\�\�2�	����E�9�-����I�u�-r-c��tdddt��}|jt|�t|j	d����tdddddt��}tdd	d
ddt��}|jt|�t|j	d����|jt|�t|j	d����y)NrNrrr5rYrr.r�rWrTrU)rrr)r�r)r*r�r�r�s    r+�test_hash_awarez+TestLocalTimeDisambiguation.test_hash_awares����T�1�a��1������a��$�q�y�y�a�y�'8�"9�:��$��B��2�h�?����q�!�Q��8�<������f��t�F�N�N��N�,B�'C�D�����e��d�5�=�=�a�=�+@�&A�Br-N)rGr_r`r�r�r�r�r^rr�r
r:r�r�r�r�r�r�r�r�rrrr�r�r�r�r!r-r+r�r�s��#�09�.&�$�5�.1�=��W���3�4�&�5�&��W���.�/�
%�0�
%�<�
�W���3�4�*�5�*��W���.�/�(�0�(��W���3�4�'�5�'�G�E�=�6K�3�B8�0�.�Cr-r�c�b�tj|�\}}t|d�t||�Sr/)r�tee�nextrf)�iterablerirjs   r+�pairsr�"s)���=�=��"�D�A�q���D�M��q�!�9�r-c���eZdZdZd�Zed��Zed��Zed��Z	e
ddd�j�Zd�Z
d	�Zd
�Zd�Zd�Zedd��Zedd��Zd�Zd�Zedd��Zd�Zd�Zd�Zy
)�ZoneInfoz/usr/share/zoneinfoc�N�||_||_|j||�|_y)z�

        :param ut: array
            Array of transition point timestamps
        :param ti: list
            A list of (offset, isdst, abbr) tuples
        :return: None
        N)�ut�ti�invertr)r*r�r�s   r+rozZoneInfo.__init__)s$���������+�+�b�"�%��r-c�F�td|�td|�f}|r�|ddtz}|ddxx|z
cc<|ddxx|z
cc<tdt|��D]?}|d|xx||dz
dtzz
cc<|d|xx||dtzz
cc<�A|S)Nrrr)r�SECrgr�)r�r�rrmrms     r+r�zZoneInfo.invert6s����C��n�e�C��n�
-��
���U�1�X��_�F��q�E�!�H���H��q�E�!�H���H��1�c�"�g�&���1��a��B�q��s�G�A�J�#�-�-���1��a��B�q�E�!�H��O�+��'��	r-c	��|jd�j�dk7rtd��|jd�t	d�}|j|d�tjdk7r|j�t	d�}|j||d�tjdk7r|j�t	d	�}|j||d�g}t|d
�D]6}|jtjd|jd����8|j|d
�}t|�D]>\}\}}	}
||
|jd|
�j�}td|�|	|f||<�@dgt!|�z}t|�D]
\}}
||
||<�|||�}|S)NrW�TZifznot a zoneinfo filer�rmrQrrrrz>lbbrYrU)�read�decoder��seekr�fromfilerE�	byteorder�byteswaprgr��struct�unpackr�findrr�)rY�fileobj�countsr��type_indices�ttisrm�abbrs�gmtoff�isdst�abbrind�abbrr��idxr*s               r+r�zZoneInfo.fromfileBs����<�<��?�!�!�#�v�-��2�3�3����R���s��������#��=�=�E�!��O�O��
�3�Z��
���G�V�A�Y�'��=�=�E�!��K�K�M��S�z�����g�v�a�y�1����v�a�y�!�A��K�K��
�
�f�g�l�l�1�o�>�?�"����V�A�Y�'��,5�T�?�'�A�'���w������A�w�!7�8�?�?�A�D� ��F�+�U�D�9�D��G�,;��V�c�"�g�
����-�F�A�s���I�B�q�E�.��2�r�{���r-c��tjj|j|�}t	|d�5}|j|�cddd�S#1swYyxYw)N�rb)�os�path�join�zoneroot�openr�)rYrBr�r�s    r+�fromnamezZoneInfo.fromnamegs=���w�w�|�|�C�L�L�$�/��
�$��
���<�<��?��
�
�s�A�Arrc�L�t|t�std��|j|urt	d��|j�|jz
dz|jdzz|jdzz|jz}||jdkr|jd}d}nbtj|j|�}|j|dz
|\}}|d|dz
}|td||j|dz
z
�kD}||dz
}|r|jd�	�S|S)
rqrrrsrZrrSrrrUr5)rgrr�rr�rc�EPOCHORDINALrarrr�r��bisect�bisect_rightrr)r*rur��ttir6r��tti_prev�shifts        r+r�zZoneInfo.fromutcos)���"�h�'��D�E�E�
�9�9�D� ��4�5�5��l�l�n�t�'8�'8�8�E�A��w�w��~�&��y�y�2�~�&��y�y�!�	�
�t�w�w�q�z�!��'�'�!�*�C��D��%�%�d�g�g�y�9�C�!�G�G�C��E�#�.�M�H�c��Q�K�#�a�&�(�E��I�a��T�W�W�S��U�^�)C�D�D�D�
�c�!�f�����:�:�1�:�%�%��Ir-c�8�|j�|jz
dz|jdzz|jdzz|jz}|j
|j}tj||�}|jtd|dz
�|S)NrZrrSrr)rcrrarrrr6rrr�r�)r*rurmr�rr�s      r+�_find_tizZoneInfo._find_ti�s����l�l�n�t�'8�'8�8�E�A��w�w��~���y�y�2�~���y�y��	��W�W�R�W�W�
���!�!�"�i�0���w�w�s�1�c�A�g��'��*�*r-c�&�|j|d�SrV�rrts  r+rvzZoneInfo.utcoffset�����}�}�R��#�#r-c�B�|j|d�}|rtStSr�)rr�r)r*rur�s   r+r{zZoneInfo.dst�s!���
�
�b�!�$��
�t�&�$�&r-c�&�|j|d�S)NrUr
rts  r+ryzZoneInfo.tzname�rr-Nc#�PK�|�|j}tjj|d�}	t	|�}|5|D]<}|j
�}|s�|jd�r�(|j�d���>	ddd�y#t
$rYywxYw#1swYyxYw�w)Nzzone.tab�#rU)	r�r�r�r�r�rj�stripr?r�)rY�zonedir�zone_tabr��lines     r+�	zonenameszZoneInfo.zonenames�s������?��l�l�G��7�7�<�<���4��	��X��A�����z�z�|������� 4��*�*�,�q�/�)���Q���	��	��
�Q�sJ�/B&�B�B&�B�B�*B�	B&�	B�B&�B�B&�B#�B&c��dx}x}x}}tjx}}tx}}	tjx}
}dx}}
tjx}}dx}}t|dd�}|j�D]�}|dz
}|j
|�}|j�D]�\}}||kr�|tkDrG|dz
}||f||fkDr|}|}
|}|tj|z
f|tj|
z
fks�U|}|}|}
�\|tkrJ|dz
}|}||f|	|fkDr|}	|}|}|tj|z
f|tj|z
fks��|}|}|}��|dz
}����|||f}td|z�tdt|�f|zz�td|d�d|
�d|���td	|d�d|�d|
���td
|d�d|�d|���td|	d�d|�d|���y)NrrzNumber of zones:       %5dz@Number of transitions: %5d = %d (gaps) + %d (folds) + %d (zeros)zMin gap:         z>16z at z in zMax gap:         zMin fold:        zMax fold:        )
rr�r�rr�rr��transitions�printr�)rY�
start_year�count�	gap_count�
fold_count�zeros_count�min_gap�min_fold�max_gap�max_fold�min_gap_datetime�max_gap_datetime�min_gap_zone�max_gap_zone�min_fold_datetime�max_fold_datetime�
min_fold_zone�
max_fold_zone�stats_since�zonenamer�rur�trans_countss                        r+�statszZoneInfo.stats�s��78�8��8�	�8�J��&�]�]�*��(�!�!��(�.6�l�l�:��+�&*�*��|�08���<��-�(,�,�
�
��z�1�a�0���
�
��H��Q�J�E����h�'�B��^�^�-�	��E���#���4�<���N�I��r�{�g�/?�%@�@�"'��'/��+-�(��x�|�|�b�0�1�W�h�l�l�M]�>]�4^�^�"'��'/��+-�(��T�\��!�O�J�"�F�E��r�{�h�0A�%B�B�#(��(0�
�,.�)��x�|�|�b�0�1�X�x�|�|�N_�?_�4`�`�#(��(0�
�,.�)��1�$�K�3.�(�:"�:�{�;��
�*�U�2�3�
�P��L�!�#�l�2�4�	5�
�W�>N�P\�]�^�
�W�>N�P\�]�^�
�X�?P�R_�`�a�
�X�?P�R_�`�ar-c#�K�tt|j|j��D]-\\}}\}}|d|dz
}tt|��z|f���/y�w)Nrr�)r�rfr�r��EPOCH_NAIVEr�r*�_�prev_tir�r�rs      r+rzZoneInfo.transitions�sY����%*�3�t�w�w����+@�%A�!�L�Q��'�1�b��q�E�G�A�J�&�E���1�!5�5��=�=�&B�s�AAc#�K�tt|j|j��D]I\\}}\}}|d|dz
}|tks�!|d|dk(s�-tt|�||d|df���Ky�w)zLFind all folds with the same value of isdst on both sides of the transition.rrrUN)r�rfr�r�r��_utcfromtimestamprr/s      r+�nondst_foldszZoneInfo.nondst_folds�sz����%*�3�t�w�w����+@�%A�!�L�Q��'�1�b��q�E�G�A�J�&�E��t�|��1����� 3�'��!�5��v�w�q�z�2�a�5�P�P�&B�s�A
A9�
A9� A9c���d}|j�D]]}|j|�}|j�D]7\}}}}	|j|ks|r||	k7r�|dz
}t	d||||||	fz��9�_y)Nrrz%3d) %-30s %s %10s %5s -> %s)rr�r4rZr)
rY�	same_abbrrrr*r�rur�	prev_abbrr�s
          r+�print_all_nondst_foldszZoneInfo.print_all_nondst_folds�s������
�
��H����h�'�B�.0�o�o�.?�*��E�9�d��7�7�Z�'�9��d�9J����
���4��h��E�9�d�C�D�E�	/@�(r-c#�^K�|j�D]\}}|tks�||f���y�wr/�rr��r*r�rs   r+�foldszZoneInfo.folds�s/�����(�(�*�H�A�u��t�|��%��i��+�s� -�
-c#�\K�|j�D]\}}|tkDs�||f���y�wr/r:r;s   r+�gapsz
ZoneInfo.gapss-�����(�(�*�H�A�u��t�|���h��+�s� ,�	,c#�JK�|j�D]\}}|r�	|���y�wr/)rr;s   r+�zeroszZoneInfo.zeross%�����(�(�*�H�A�u����+�s�#�#r/)r)Fr)rGr_r`r�ror�r��classmethodr�r�rrcrr�rrvr{ryrr,rr4r8r<r>r@r!r-r+r�r�'s���$�H�&��	��	��"��"�H�#��#�
��a��#�-�-�/�L��<+�$�'�$��*��*��-b��-b�`>�
Q��	E��	E� �
�
r-r�c�h�eZdZdZd�Zd�Zd�Zd�Zeje
ed�d�d��Zy	)
�ZoneInfoTestzAmerica/New_Yorkc�L�tjdk(r|jd�tjdk(r|jd�	tj	|j
�|_y#t$r+}|jd|j
�d|���Yd}~yd}~wwxYw)N�vxworksz"Skipping zoneinfo tests on VxWorksr�z"Skipping zoneinfo tests on Windowsz	Skipping z: )rEr=rHr�r�r*r��FileNotFoundError)r*�errs  r+r�zZoneInfoTest.setUpsz���<�<�9�$��M�M�>�?��<�<�7�"��M�M�>�?�	D��'�'��
�
�6�D�G�� �	D��M�M�t�}�}�c�B�C�C��	D�s�
$A/�/	B#�8!B�B#c���|j|jd��|jt|j�f|jd��|jt|j�f�y)Nr)r)rr6�idr)r*rirjs   r+�assertEquivDatetimesz!ZoneInfoTest.assertEquivDatetimessR�����!�)�)�4�)�0�!�&�&�"�Q�X�X�,�G��)�)�4�)�0�!�&�&�"�Q�X�X�,�G�	Ir-c�X�|j}|j�D�]�\}}d|zd|z|tjz
fD�]}||z}|j	|j|���}|j
|jd�|jtj��j|�}|j||�|j�}|j
|jd��||z�|j|jtj�|jtj�����tj|fD]F}||z}|j|��}|j	|�}|j
|jd��H���y)Nrr^rr)
r�r<rr�r�rr)r6rr1r�rJrv�	r*r�rurr��udtrv�adtrvs	         r+�
test_foldszZoneInfoTest.test_foldssW��
�W�W������I�B���%�i��u��e�i�6J�6J�.J�K���1�f���j�j����B��!7�8��� � ����1�-��k�k����k�6�A�A�"�E���)�)�#�s�3��M�M�O�	�� � ����D��!9�3��?�K��)�)�#�.�.����*F�*-�+�+�X�\�\�+�*J�L�L�!�+�+�+�U�3���1�f���k�k��k�,���j�j��o��� � ����1�-�	4�$r-c���|j}|j�D�]�\}}d|zd|z|tjz
fD�]F}||z}|j	|��}|j|�}|j
|jd�|j	tj��j|�}|j||�|j�}|j
|j	d��|j	d��|z�|j|j	|���|z
|z}|j|j	d��j�|j	d��j�d|z���Itj|fD]D}||z}|j|j	|���}|j
|jd��F���y)Nrr^rrr5zAt %s.)r�r>rr�rr�r)r6rr1r�rJrv�
assertLessrLs	         r+�	test_gapszZoneInfoTest.test_gaps4s���
�W�W������I�B���%�i��u��e�i�6J�6J�.J�K���1�f���k�k��k�,���j�j��o��� � ����1�-��k�k����k�6�A�A�"�E���)�)�#�s�3��M�M�O�	�� � ����D��!9�3�;�;�d�;�;S�V_�;_�`��j�j����2��!6�7�%�?�!�C���������� 3� =� =� ?� #����� 3� =� =� ?� (�3��0�L�!�+�+�+�U�3���1�f���j�j����B��!7�8��� � ����1�-�4�!#r-�tzsetz"time module has no attribute tzsetc	���d|jvs|jjd�r|jd|jz�|j}tj
j
d�}|jtj
d<	tj�|j�D�]�\}}|jdk\r�n�|tddd�z
tz}|tz}dd	d
d|dz
|dz|d
zfD]v}||z}tj|�}	tj||�jd��}
|j|	|
�|	j!�}|j#||��x|dkDs��tj|�|dzz
}|j!�}
|jd��j!�}|j#|
||dzz�|j#|||dzz
�|j%t&j(�}|jd��j%t&j(�}|j#||t+d|�z����|�tj
d=n|tj
d<tj�y#|�tj
d=n|tj
d<tj�wxYw)N�Riyadh8zright/zSkipping %s�TZi�rri���i��r
ri@i�2rrUr5)r*r?rHr�r��environ�getr�rSrrZrr�r�rrJr�r)r�rr1r)r*r�rVrMrr�rr�r��sdt�tzdtr�ru�ts0�ts1�utc0�utc1s                 r+�test_system_transitionsz$ZoneInfoTest.test_system_transitionsKsb��
����&��
�
�(�(��2��M�M�-�$�-�-�7�8�
�W�W��
�Z�Z�^�^�D�
!���=�=��
�
�4��!	��K�K�M� �n�n�.�
��U��8�8�t�#���H�T�1�a�0�0�S�8���c�\��$�h��A��q�&�"�y�.�"�y�.�B�A��Q��A�"�0�0��3�C�#�1�1�!�R�8�@�@��@�M�D��-�-�c�4�8�����B��$�$�Q��+�B���6�!�/�/��3�e�a�i�?�B��,�,�.�C��*�*�!�*�,�6�6�8�C��$�$�S�"�r�A�v�+�6��$�$�S�"�r�A�v�+�6��=�=����6�D��:�:�1�:�-�8�8����F�D��$�$�T�4�)�A�r�2B�+B�C�3/�6�z��J�J�t�$�#%��
�
�4� ��K�K�M��	�z��J�J�t�$�#%��
�
�4� ��K�K�M�s�C-J&�?C+J&�&=K#N)
rGr_r`r*r�rJrOrRr;�
skipUnlessr�r�r_r!r-r+rCrC
sK��!�H�D�I�.�,.�.�X�����w��!E��.��.r-rCc���eZdZ�fd�Z�xZS)�ZoneInfoCompleteTestc���g}td�rntj�D]W}td|ztfi�}||_t
|�D]+}|jd�s�|j||���-�Yt�|�)|�y)N�tzdatazZoneInfoTest[%s]�test_)rr�rr�rCr*r5r?r��superro)r*rrB�Test�methodrFs     �r+rozZoneInfoCompleteTest.__init__�s{������x�(� �*�*�,���.��5����K�� $��
�!�$�i�F��(�(��1����T�&�\�2�(�-�	����r-)rGr_r`ro�
__classcell__)rFs@r+rbrbs
���	 �	 r-rbc��eZdZdZy)�IranTestzAsia/TehranN)rGr_r`r*r!r-r+rkrk�s���Hr-rkzneed _testcapi modulec��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�CapiTestc��|jjjd�r|jd�t	j
�y)N�PurezNot relevant in pure Python)rFrGr@rH�	_testcapi�test_datetime_capir2s r+r�zCapiTest.setUp�s5���>�>�"�"�+�+�F�3��M�M�7�8�	�$�$�&r-c���dD]R}tj|�}|j|��5|j|tj
�ddd��Ty#1swY�_xYw)N�TF)�	use_macro)rp�get_timezone_utc_capir.r0rr1)r*rt�capi_utcs   r+�
test_utc_capizCapiTest.test_utc_capi�sM��&�I� �6�6�y�A�H����	��2��
�
�h����5�3�2�'�3�2�s�!A�A"	c	��tj�\}}}ttd��d�}ttd���}d||fd||fd||fg}|D]�\}}}	|j	|��5|j||	�t
dd	d
|��}
t
dd	d
|	��}|j|
|�|j|
j�|j��t
dd	d
dtj��}|j|
jtj�|�ddd���y#1swY��xYw)
Nr	r�r��est_capi�	est_macro�est_macro_nn)rBrNrUrWrrR)
rp�make_timezones_capirrr.r)rryr1r�)
r*ryrzr{�	exp_named�exp_unnamed�casesrB�tz_act�tz_expr�rOr�s
             r+�test_timezones_capizCapiTest.test_timezones_capi�s��,5�,I�,I�,K�)��)�\��Y�R�0�%�8�	��y�r�2�3����9�-�
�)�Y�/�
�\�;�7�
��%*� �D�&�&����4��(�� � ���0��t�Q��&�9���t�Q��&�9��� � ��c�*�� � �����s�z�z�|�<�!�$��1�a����E��� � �������!=�v�F�)�(�%*�(�(�s
�-B>D6�6D?	c�~�Gd�dt�}t|fD]�}dD]�}||�}|j||��5tj|�\}}}|j	||j
�|j	||j�|j	||j�ddd�����y#1swY��xYw)Nc��eZdZy)�=CapiTest.test_PyDateTime_DELTA_GET.<locals>.TimeDeltaSubclassNr�r!r-r+�TimeDeltaSubclassr��r�r-r�)�r��7韆r��rYr)rr.rp�PyDateTime_DELTA_GETr)rOr�r�)r*r��klassr�r�rOr�r�s        r+�test_PyDateTime_DELTA_GETz"CapiTest.test_PyDateTime_DELTA_GET�s���	�	�	� �!2�3�E�:���4�L���\�\�e�$�\�7�2;�2P�2P�QR�2S�/�D�'�<��$�$�T�1�6�6�2��$�$�W�a�i�i�8��$�$�\�1�>�>�B�8�7�;�4�8�7���A.B3�3B<c�~�Gd�dt�}t|fD]�}dD]�}||�}|j||��5tj|�\}}}|j	||j
�|j	||j�|j	||j�ddd�����y#1swY��xYw)Nc��eZdZy)�2CapiTest.test_PyDateTime_GET.<locals>.DateSubclassNr�r!r-r+r�r��r�r-r�))rNrrU)rbrUryr�)rr.rp�PyDateTime_GETr)rZr[r�)r*r�r�r�r�rZr[r�s        r+�test_PyDateTime_GETzCapiTest.test_PyDateTime_GET�s���	�4�	��L�)�E�5���4�L���\�\�e�$�\�7�'0�'?�'?��'B�$�D�%���$�$�T�1�6�6�2��$�$�U�A�G�G�4��$�$�S�!�%�%�0�8�7�6�*�8�7�r�c
�"�Gd�dt�}t|fD]�}ddddddd	d
tjffD]�}||�}|j||��5t	j
|�\}}}}}	|j
||j�|j
||j�|j
||j�|j
||j�|j|	|j�ddd�����y#1swY��xYw)Nc��eZdZy)�;CapiTest.test_PyDateTime_DATE_GET.<locals>.DateTimeSubclassNr�r!r-r+r
r��r�r-r
)��r�r�r�r�r�r�r�r�r�r�r�r�r�r�)
rrr1r.rp�PyDateTime_DATE_GETr)rarrrer0r)
r*r
r�r�r�rarrrers
          r+�test_PyDateTime_DATE_GETz!CapiTest.test_PyDateTime_DATE_GET�s���	�x�	�� 0�1�E�9���2�r�2�r�5�"�,�,�(�)���4�L���\�\�e�$�\�7�,5�,I�,I�!�,L�>�D�&�&�+�v��$�$�T�1�6�6�2��$�$�V�Q�X�X�6��$�$�V�Q�X�X�6��$�$�[�!�-�-�@��M�M�&�!�(�(�3�8�7�	)�2�
8�7�s
�B(D�Dc��Gd�dt�}t|fD]�}dddddtjffD]�}||�}|j||��5t	j
|�\}}}}}	|j
||j�|j
||j�|j
||j�|j
||j�|j|	|j�ddd�����y#1swY��xYw)	Nc��eZdZy)�7CapiTest.test_PyDateTime_TIME_GET.<locals>.TimeSubclassNr�r!r-r+ryr��r�r-ry)r�rr7rr�rr7rr�)
rrr1r.rp�PyDateTime_TIME_GETr)rarrrer0r)
r*ryr�r�r�rarrrers
          r+�test_PyDateTime_TIME_GETz!CapiTest.test_PyDateTime_TIME_GET�s���	�4�	��L�)�E�)��b�"�b�(�,�,�7�9���4�L���\�\�e�$�\�7�.7�.K�.K�A�.N�>�D�&�&�+�v��$�$�T�1�6�6�2��$�$�V�Q�X�X�6��$�$�V�Q�X�X�6��$�$�[�!�-�-�@��M�M�&�!�(�(�3�8�7�9�*�8�7�s
�
B(D�Dc���tj�\}}}|jd��5|j|tj
�ddd�|jd��5|j|tj
�ddd�|jd��5|j
|tj
�t	td��d�}|j||�tdd	d
|��}tdd	d
|��}|j||�|j|j�|j��ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)Nr])�testnamer^�non_utcrr�rrNrUrWr)rp�get_timezones_offset_zeror.r0rr1r�rr)rry)r*r]r^r��non_utc_expr�rOs       r+�test_timezones_offset_zeroz#CapiTest.test_timezones_offset_zero�s��'�A�A�C���d�G�
�\�\�6�\�
*��M�M�$����-�+��\�\�6�\�
*��M�M�$����-�+��\�\�9�\�
-����W�h�l�l�3�"�9�1�#5�r�:�K����W�k�2��4��A�g�6�C��4��A�k�:�C����S�#�&����S�Z�Z�\�3�:�:�<�8�.�
-�
+�
*��+�
*��.�
-�s$�!E�&!E�!B'E*�E�E'�*E3c
��Gd�dt�}tddd�}|ddd�}tddd�}tj}|j	||��|j	||��|j	||��|j	||d��|j||d��|j||d��t
�t�ddtd�tjtdd�g}|D]=}d	D]6}|j||�
�5|j|||��ddd��8�?y#1swY�ExYw)Nc��eZdZy)�.CapiTest.test_check_date.<locals>.DateSubclassNr�r!r-r+r�r�r�r-r���rT�
2011-01-01r�rrs��arg�exact)
rrrp�datetime_check_dater�r�r�r�rrr1rr.)	r*r�r��dsru�is_dater�r�r�s	         r+�test_check_datezCapiTest.test_check_dates)��	�4�	�
��q�!���
�$��1�
%��
�d�A�q�
!���/�/��	
�����
�#�������$�������$������4�(�)�	
�����T�*�+������T�*�+������L��!��h�l�l�D��R�L�:���C�&���\�\�c��\�7��$�$�W�S�%�%8�9�8�7�'��7�7�s�(E�Ec�:�Gd�dt�}tdd�}|dd�}tj}|j||��|j||��|j||d��|j	||d��t�t
�ddtd�tjtddd�g}|D]=}d	D]6}|j||�
�5|j	|||��ddd��8�?y#1swY�ExYw)Nc��eZdZy)�.CapiTest.test_check_time.<locals>.TimeSubclassNr�r!r-r+ryr�0r�r-ryr�rTrr�r�rsr�)rrp�datetime_check_timer�r�r�r�rrr1rr.)r*ryr�r��is_timer�r�r�s        r+�test_check_timezCapiTest.test_check_time/s���	�4�	�
��R�L��
�"�b�
!���/�/��	
�����
�#�������$������4�(�)�	
�����T�*�+������L��!��h�l�l�D��q�!�,<�>���C�&���\�\�c��\�7��$�$�W�S�%�%8�9�8�7�'��7�7���+D�Dc�F�Gd�dt�}tddddd�}|ddddd�}tj}|j||��|j||��|j||d��|j	||d��t�t
�ddtd�tjtddd�g}|D]=}d	D]6}|j||�
�5|j	|||��ddd��8�?y#1swY�ExYw)Nc��eZdZy)�6CapiTest.test_check_datetime.<locals>.DateTimeSubclassNr�r!r-r+r
r�Jr�r-r
r�rr�rTr�rsr�)rrp�datetime_check_datetimer�r�r�r�rrr1rr.)r*r
rur��is_datetimer�r�r�s        r+�test_check_datetimezCapiTest.test_check_datetimeIs��	�x�	��d�A�q�"�b�
)���t�Q��2�r�2���7�7��	
����B��(�����C�(�)�����B��-�.�	
����S�$�/�0������L��!��h�l�l�D��q�!�,<�>���C�&���\�\�c��\�7��$�$�[��e�%<�=�8�7�'��7�7�s�1D�D c�:�Gd�dt�}td�}|d�}tj}|j||��|j||��|j||d��|j	||d��t�t
�ddtjtddd�tddd�g}|D]=}dD]6}|j||��5|j	|||��ddd��8�?y#1swY�ExYw)	Nc��eZdZy)�4CapiTest.test_check_delta.<locals>.TimeDeltaSubclassNr�r!r-r+r�r�dr�r-r�rTr�r�rsr�)rrp�datetime_check_deltar�r�r�r�rr1rrr.)r*r�rV�tds�is_timedeltar�r�r�s        r+�test_check_deltazCapiTest.test_check_deltacs���	�	�	��q�\����"�� �5�5��	
����R�(�)�����S�)�*�����R��.�/�	
����c�4�0�1������L����d�4��A�.���q�!�0D�F���C�&���\�\�c��\�7��$�$�\�#�u�%=�>�8�7�'��7�7�r�c
��Gd�dt�}t�}|�}ttd���}tj}|j||��|j||��|j||��|j||d��|j
||d��|j
||d��t�t�ddtddd�tddd�g}|D]=}d	D]6}|j||�
�5|j
|||��ddd��8�?y#1swY�ExYw)Nc��eZdZy)�2CapiTest.test_check_tzinfo.<locals>.TZInfoSubclassNr�r!r-r+�TZInfoSubclassr�~r�r-r�r	r�Trr�r�rsr�)rrrrp�datetime_check_tzinfor�r�r�r�rrr.)	r*r�r�tzisr��	is_tzinfor�r�r�s	         r+�test_check_tzinfozCapiTest.test_check_tzinfo}s!��	�V�	��h�����
�i�b�)�
*���3�3�	�	
���	�#��'����	�"�
�&����	�$��(����	�#�t�,�-�	
����2�t�,�-�����4��.�/������L��T�1�a� �(�4��A�"6�8���C�&���\�\�c��\�7��$�$�Y�s�E�%:�;�8�7�'��7�7�s�E�E
c�
�tddd�}dD]e}|j|��5tj||j|j
|j�}|j||�ddd��gy#1swY�rxYw)Nr�r�r��FT��macro)rr.rp�get_date_fromdaterZr[r�r)�r*�exp_dater��
c_api_dates    r+�test_date_from_datezCapiTest.test_date_from_date�sq����a��$�� �E����E��*�&�8�8���M�M��N�N��L�L�	"�
�� � ��X�6�+�*�!�*�*���A	A9�9B	c�j�tddddddd�}dD]�}|j|�	�5tj||j|j
|j|j|j|j|j�}|j||�ddd���y#1swY��xYw)
Nr�r�r�r�r�r�r�r�r�)rr.rp�get_datetime_fromdateandtimerZr[r�rarrrer)r�s    r+�test_datetime_from_dateandtimez'CapiTest.test_datetime_from_dateandtime�s����D�!�R��R��U�;�� �E����E��*�&�C�C���M�M��N�N��L�L��M�M��O�O��O�O��(�(�*�
�� � ��X�6�+�*�!�*�*�s�A5B)�)B2	c���tddddddd�}dD]�}d	D]�}|j||�
�5tj||j|j
|j|j|j|j|j|j�	}|j||�|j|j|j�ddd�����y#1swY��xYw)Nr�r�r�r�r�r�r��rrr��r�r6)
rr.rp�#get_datetime_fromdateandtimeandfoldrZr[r�rarrrer6r))r*r�r6r�r�s     r+�%test_datetime_from_dateandtimeandfoldz.CapiTest.test_datetime_from_dateandtimeandfold�s����D�!�R��R��U�;���D�$���\�\��D�\�9�!*�!N�!N�� �
�
� ��� ��� �
�
� ��� ��� �,�,� �
�
�	"'�J��$�$�Z��:��$�$�Z�_�_�h�m�m�D�:�9�%��9�9�s�B&C"�"C+c	�"�tdddd�}dD]p}|j|��5tj||j|j
|j|j�}|j||�ddd��ry#1swY�}xYw)Nr�r�r�r�r�r�)	rr.rp�get_time_fromtimerarrrer))r*�exp_timer��
c_api_times    r+�test_time_from_timezCapiTest.test_time_from_time�s|����B��E�*�� �E����E��*�&�8�8���M�M��O�O��O�O��(�(�*�
�� � ��X�6�+�*�!�*�*�s�AB�B	c��tdddd�}dD]�}dD]�}|j||��5tj||j|j
|j|j|j�}|j||�|j|j|j�ddd�����y#1swY��xYw)Nr�r�r�r�r�r�r�)
rr.rp�get_time_fromtimeandfoldrarrrer6r))r*r�r6r�r�s     r+�test_time_from_timeandfoldz#CapiTest.test_time_from_timeandfold�s�����B��E�*���D�$���\�\��D�\�9�!*�!C�!C�� �
�
� ��� ��� �,�,� �
�
�
"'�J��$�$�Z��:��$�$�Z�_�_�h�m�m�D�:�9�%��9�9�s�BB>�>Cc�
�tddd�}dD]e}|j|��5tj||j|j
|j�}|j||�ddd��gy#1swY�rxYw)Nr�r�r�r�r�)rr.rp�get_delta_fromdsurOr�r�r))r*�	exp_deltar��c_api_deltas    r+�test_delta_from_dsuzCapiTest.test_delta_from_dsu�su���b�"�e�,�	� �E����E��*�'�9�9���N�N��%�%��*�*�	,��� � ��i�8�+�*�!�*�*�r�c
��tddd�j�}dD]Y}|j|��5tjt|�|�}|j
|tddd��ddd��[y#1swY�fxYw)N��rWr�r�r�)rr�r.rp�get_date_fromtimestamprhr)r)r*r�r�r�s    r+�test_date_from_timestampz!CapiTest.test_date_from_timestamp�so��
�d�A�r�
"�
,�
,�
.�� �E����E��*��4�4�S��W�e�D��� � ��D��q�"�$5�6�+�*�!�*�*�s�=A;�;B	c��dddttd���dfddd	ttd���dfg}tj}|D]l}d
D]e}|j	||��5|\}}}t|d|i�}t
|j��}	||	|||�}
|j||
�ddd��g�ny#1swY�txYw)
N)�r�rWr�NF)r�NTr�rr�T)�r�rWr�r_rNF)r�NTr�r�)�caser�r)	rrrp�get_datetime_fromtimestampr.rrhr�r))r*rr�r�r��dtupr�usetz�dt_origr�r�s           r+�test_datetime_from_timestampz%CapiTest.test_datetime_from_timestamps���(�'�
�H�Y�Q�%7�8�$�?�0�/�
"�H�Y�Q�-?�$@�$�G�

��#�=�=���D�$���\�\�t�5�\�9�*.�'�D�&�%�&��<�V�<�G��W�.�.�0�1�B�*�2�v�u�e�D�E��$�$�W�e�4�:�9�%��9�9�s
�"AB7�7CN)rGr_r`r�rwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r!r-r+rmrm�so��'�6�G�4C�1�4�&4�$9�,:�8:�4>�4?�4<�:7�7�"E�(7�E�"9�7�5r-rmc�8�|jt��|Sr/)�addTestrb)�loader�standard_tests�patterns   r+�
load_testsr�s�����/�1�2��r-�__main__)sr�rrrjr�rr�r�r�r2r�rEr;r�r�operatorrrrrrr	r
rr�testr
�test.supportrrrrrr(rrrrrrrrr�rp�ImportErrorr�r[r��_loadsr3rgrLr�r.r�r(r�r��TestCaser%rbrr�r�r�r�r5rLrLrRrWr�r�r?rCrEr�r�rEr�r�r�rrr�r�r�rr�r�rrrrrCroryrr�r�r�r�r�r�r�r�rC�	TestSuiterbrkr<rmr�rG�main)r�s0r+�<module>r	s�������	��	�
�
�	�
�
����C�C�C��J�J�"�%������#����
�	��
���f�m�m�,�� %�V�%<�%<�q�%@�A�C�A�e��6�5�)�A�C���t�Q��1�a�(���$��r�2�r�
*�
��E�l���E�l��5)��"�"�5)�v �&� �&<�;�<�
E�$8�E��f��^/��"�"�^/�B{D�8�$�$�{D�B.7�.7�fs�+�X�->�->�s�r)�8�$�$�)�B�4��F;�&��(9�(9�F;�X�x��j7�8�j7�Z)
�<�
��4��J9�&��(9�(9�J9�^]4�]4�BWE��:�x�'8�'8�WE�xy
C�\�:�x�/@�/@�y
C�z���|��	�1�	���q����Q����A�q�!�Q���

�!�R��Q�	��(��(�T�b�)�e�U�3���b�)�e�U�3���b�*�e�U�3���b�)�e�U�3���q�%��#���v�y�!�,��}�h�/�/�}�FGO�x� � �GO�^9�f�9�D1�'�1�f
��J���6����J���6����K���6�	���J���6��/�&�/�dOC�(�"3�"3�OC�b��1�o���
c�v�c�Lo�8�$�$�o�d
 �8�-�-�
 ��|�������d�"�$;�<�D5�x� � �D5�=�D5�N�
�z���H�M�M�O���oO���I����	��	��Cs*�O-�%O;�P�-O8�7O8�;P�P

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists