
    /hh/J                    |   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKJr  SSKJrJrJrJrJrJrJrJrJr  SSKJr  SSKJrJrJrJ r   SSKJ!r!J"r"  SSK#r$SSK#J%r%J&r&  SS	K#J'r'  SS
K#J(r(  SSK#J)r)  SSK#J*r*  SSK#J+r+  SSK#J,r,J#r#  SSK)r- SSK.r. SSK0r0SSK2r2 SSK3r3\Rh                  \Rj                  1r6\7" \Rp                  S-   5       V s/ s H  n \\U 4PM
     sn r9\#" SSSSS5      r:SSS0 / S4r;\<" S5      r=\<" S5      r> " S S\R~                  5      r@ " S S\(5      rA " S S\A5      rB " S S\B5      rC " S S \(5      rD " S! S"\R~                  5      rE " S# S$\R~                  5      rF " S% S&5      rG " S' S(\G\R~                  5      rH " S) S*\R~                  5      rI " S+ S,\,5      rJ " S- S.\G\R~                  5      rK " S/ S0\#5      rL " S1 S2\K5      rM " S3 S4\M5      rN " S5 S6\)5      rO " S7 S8\G\R~                  5      rP " S9 S:5      rQ " S; S<\P\Q\R~                  5      rR " S= S>\M\Q\R~                  5      rSS? rT\'" S5      rU\'" SS@9rV\'" SSA9rW\'" SSB9rX\#" SSCSSD5      rY\#" SSSES5      rZ " SF SG\(5      r[\[" SHSISJSK5      r\\[" SLSMSNSO5      r]\[" SPSQSRSS5      r^\[" STSUSVSW5      r_\A" SSXS5      r`\A" SYSZS5      ra " S[ S\\R~                  5      rb " S] S^\R~                  5      rc " S_ S`\(5      rd " Sa Sb\d5      re\e" SHScSJSK5      rf\e" SLSdSNSO5      rg\e" SPSeSRSS5      rh\e" STSfSVSW5      ri " Sg Sh\(5      rj " Si Sj\R~                  5      rk\'" SS5      rlSk rm " Sl Sm\(5      rn " Sn So\R~                  5      ro " Sp Sq\R                  5      rq " Sr Ss\o5      rr\R                  " \.SL St5       " Su Sv\R~                  5      5       rt " Sw Sx\R~                  5      ruSy rv\wSz:X  a  \R                  " 5         gg! \/ a    Sr. GNmf = f! \1 a    Sr0 GNwf = f! \/ a     GN{f = fs  sn f ){zUTest 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)script_helperwarnings_helper)MINYEARMAXYEAR	timedeltatzinfo)time)timezone)UTC)datedatetime     
   g     @A@abc infnanc                   2    \ rS rSrS rS rS rS rS rSr	g)	
TestModuleK   c                     [         nU R                  UR                  S5        U R                  UR                  S5        g )Nr   '  )datetime_moduleassertEqualr   r   )selfr   s     </opt/python-3.13.8/usr/lib/python3.13/test/datetimetester.pytest_constantsTestModule.test_constantsM   s3    "))1-))40    c                 L    U R                  [        [        R                  5        g N)assertIsr   r   utcr-   s    r.   test_utc_aliasTestModule.test_utc_aliasR   s    c8<<(r1   c                 r    [        [        5      n[        R                   H  nU R                  X!5        M     g)z2Test that __all__ only points to valid attributes.N)dirr+   __all__assertIn)r-   	all_attrsattrs      r.   test_allTestModule.test_allU   s(    (	#++DMM$* ,r1   c                     SU R                   R                  ;   a  U R                  S5        [        n[	        S [        U5       5       5      n[	        / SQ5      nU R                  X#-
  [	        / 5      5        g )N_Purez"Only run for Fast C implementationc              3      #    U  H7  nUR                  S 5      (       a  M  UR                  S 5      (       a  M3  Uv   M9     g7f)__N)
startswithendswith).0names     r.   	<genexpr>/TestModule.test_name_cleanup.<locals>.<genexpr>`   s5      N]T??40 9=t9L D]s   AA	A)r   r   r   r   datetime_CAPIr   r   r   r   r   sys)	__class____name__skipTestr+   setr:   r,   )r-   r   namesalloweds       r.   test_name_cleanupTestModule.test_name_cleanup[   sj    dnn---MM>?" NS] N N / 0 	#b'2r1   c                 6   SU R                   R                  ;   a  U R                  S5        [        R                  nU R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S	5        U R                  U" S
S5      S5        U R                  U" SS5      S5        U R                  U" S
S5      S	5        U R                  U" SS5      S	5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S	5        U R                  U" SS5      S	5        U R                  U" SS5      S5        U R                  U" SS5      S5        U R                  U" SS5      S	5        g )N_Fastz'Only run for Pure Python implementation            r!         )rM   rN   rO   _pydatetime_divide_and_roundr,   )r-   dars     r.   test_divide_and_round TestModule.test_divide_and_roundg   sd   dnn---MM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(r1   r#   N)
rN   
__module____qualname____firstlineno__r/   r7   r?   rS   rf   __static_attributes__r#   r1   r.   r'   r'   K   s    1
)+
3)r1   r'   c                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
FixedOffset   c                     [        U[        5      (       a	  [        US9n[        U[        5      (       a	  [        US9nXl        X l        X0l        g Nminutes)
isinstanceintr   _FixedOffset__offset_FixedOffset__name_FixedOffset__dstoffsetr-   offsetrH   	dstoffsets       r.   __init__FixedOffset.__init__   s@    fc""v.Fi%%!)4I$r1   c                 6    U R                   R                  5       $ r3   )rv   lowerr6   s    r.   __repr__FixedOffset.__repr__   s    {{  ""r1   c                     U R                   $ r3   )ru   r-   dts     r.   	utcoffsetFixedOffset.utcoffset       }}r1   c                     U R                   $ r3   )rv   r   s     r.   tznameFixedOffset.tzname   s    {{r1   c                     U R                   $ r3   )rw   r   s     r.   dstFixedOffset.dst   s    r1   )__dstoffset__name__offsetN*   )
rN   rh   ri   rj   r{   r   r   r   r   rk   r#   r1   r.   rm   rm      s    %# r1   rm   c                       \ rS rSrSS jrSrg)PicklableFixedOffset   Nc                 0    [         R                  XX#5        g r3   )rm   r{   rx   s       r.   r{   PicklableFixedOffset.__init__   s    T4;r1   r#   )NNNrN   rh   ri   rj   r{   rk   r#   r1   r.   r   r      s    <r1   r   c                       \ rS rSrSrSrg)PicklableFixedOffsetWithSlots   )ru   rv   spamr#   N)rN   rh   ri   rj   	__slots__rk   r#   r1   r.   r   r      s    DIr1   r   c                       \ rS rSrS rSrg)_TZInfo   c                 ,    [         R                   " 5       $ r3   )random)r-   r+   s     r.   r   _TZInfo.utcoffset   s    }}r1   r#   NrN   rh   ri   rj   r   rk   r#   r1   r.   r   r      s    r1   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)
TestTZInfo   c           
          [        5       n[        SSSSSSSU5      nU R                  [        5         UR	                  5         S S S 5        g ! , (       d  f       g = f)N  r\             rY   r   )r   r   assertRaises	TypeErrorr   )r-   tz1dt1s      r.   test_refcnt_crash_bug_22044&TestTZInfo.test_refcnt_crash_bug_22044   sD    itQBAq#6y)MMO *))s   A
Ac                     [        5       n[        R                  nU R                  [        UR
                  U5        U R                  [        UR                  U5        U R                  [        UR                  U5        g r3   )r   r   maxr   NotImplementedErrorr   r   r   )r-   uselessr   s      r.   test_non_abstractness TestTZInfo.test_non_abstractness   s[     (\\-w~~rB-w/@/@"E-w{{B?r1   c                     " S S[         5      nU R                  [        U[         5      5        U" SS5      nU R                  U[         5        [        R
                  " 5       nU R                  [        UR                  U5        U R                  [        UR                  U5        U R                  [        UR                  U5        g )Nc                       \ rS rSrS rSrg)9TestTZInfo.test_subclass_must_override.<locals>.NotEnough   c                     Xl         X l        g r3   )_NotEnough__offset_NotEnough__name)r-   ry   rH   s      r.   r{   BTestTZInfo.test_subclass_must_override.<locals>.NotEnough.__init__   s     &"r1   )r   r   Nr   r#   r1   r.   	NotEnoughr      s    #r1   r   rY   NotByALongShot)r   
assertTrue
issubclassassertIsInstancer   nowr   r   r   r   r   )r-   r   r	   r   s       r.   test_subclass_must_override&TestTZInfo.test_subclass_must_override   s    	# 	# 	
9f56q*+b&)\\^-ryy"=-r||R@-rvvr:r1   c                 f   [        SS5      nU R                  U[        5        [        R                  " 5       S 4 Ht  nU R                  UR                  U5      [        SS95        U R                  UR                  U5      S5        U R                  UR                  U5      [        SS95        Mv     g )NrY   Threerq   r   )
rm   r   r   r   r   r,   r   r   r   r   )r-   for   s      r.   test_normalTestTZInfo.test_normal   s    G$b&),,.$&BR\\"-y/CDRYYr]G4RVVBZ2)>? 'r1   c                    [         R                  " [         5      nU R                  [        U5      [         5        [         HG  u  p#nUR                  X5      nUR                  U5      nU R                  [        U5      [         5        MI     g r3   )r   __new__r4   typepickle_choicesdumpsloads)r-   origpickler	unpicklerprotogreenderiveds          r.   test_pickling_baseTestTZInfo.test_pickling_base   sa     ~~f%d4j&))7%GMM$.Eooe,GMM$w-0 *8r1   c                    [        SS9n[        US44[        US44[        U44[        US444 GHO  u  p#U" U6 nUR	                  S 5      nU R                  U[        5        U R                  [        U5      U5        U R                  UR                  S 5      U5        U R                  UR	                  S 5      U5        [         H  u  pgnUR                  XH5      n	UR                  U	5      n
U R                  U
[        5        U R                  [        U
5      U5        U R                  U
R                  S 5      U5        U R                  U
R	                  S 5      U5        U R                  [        U
S5      5        M     GMR     g )Nrq   cookieESTr   )r   r   r   r   r   r   r   r4   r   r,   r   r   r   r   assertFalsehasattr)r-   ry   otypeargsr   onamer   r   r   r   r   s              r.   test_pickling_subclass!TestTZInfo.test_pickling_subclass   sM   4(!FH#56*VX,>?y!'	)KE
 $<DKK%E!!$/MM$t*e,T^^D16:T[[.6-;)Ed2#//%0%%gv6d7mU3  !2!24!8&A  !5u=  &!9: .<)r1   c           	         ^^ [        SS9=mm " UU4S jS[        5      nU" 5       n[        SSSSSUS	9nUR                  U5      nU R	                  XDR                  5       -
  U5        g )
Nr   hoursc                   8   > \ rS rSrSrU4S jrU 4S jrS rSrg)0TestTZInfo.test_issue23600.<locals>.UKSummerTime   zbSimple time zone which pretends to always be in summer time, since
that's what shows the failure.
c                    > T$ r3   r#   )r-   r   	DSTOFFSETs     r.   r   :TestTZInfo.test_issue23600.<locals>.UKSummerTime.utcoffset   s	      r1   c                    > T$ r3   r#   )r-   r   DSTDIFFs     r.   r   4TestTZInfo.test_issue23600.<locals>.UKSummerTime.dst   s    r1   c                     g)NUKSummerTimer#   r   s     r.   r   7TestTZInfo.test_issue23600.<locals>.UKSummerTime.tzname   s    %r1   r#   N)	rN   rh   ri   rj   __doc__r   r   r   rk   )r   r   s   r.   r   r      s    !&r1   r   r   r_         r   )r   r   r   fromutcr,   r   )r-   r   tzutr   r   s        @@r.   test_issue23600TestTZInfo.test_issue23600   sf    'a00)	& 	&6 	& ^T1b"a3JJqM[[]*A.r1   r#   N)rN   rh   ri   rj   r   r   r   r   r   r   r   rk   r#   r1   r.   r   r      s'    @;@	1;./r1   r   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rSrg)TestTimeZonei  c                     [        [        SS9S5      U l        [        [        SS9* S5      U l        [	        SSS5      U l        g )N      #@r   ACDTrZ   r     r   )r   r   r  r   r   DTr6   s    r.   setUpTestTimeZone.setUp  s;    YS16:	YQ//74A&r1   c                     U R                   U R                  [        R                  [        R                  [        R
                  4 H-  nU R                  [        U5      UR                  S 5      5        M/     g r3   )	r  r   r   r5   minr   r,   strr   r-   r   s     r.   test_strTestTimeZone.test_str  sJ    99dhh<</BSWbiio6/r1   c                     [         nU R                  U R                  [        R                  [        R
                  [        R                  4 H)  n[        U5      nU R                  U[        U5      5        M+     g r3   )
r+   r  r   r   r5   r  r   reprr,   eval)r-   r   r   tzreps       r.   	test_reprTestTimeZone.test_repr  sR    "99dhh<</B HERe-	/r1   c                 <   [        SSS9nU R                  [        R                  R	                  S 5      [
        5        U R                  [        R                  R	                  S 5      U* 5        U R                  [        R                  R	                  S 5      U5        g )N   ;   r   rr   )r   r,   r   r5   r   ZEROr  r   )r-   limits     r.   test_class_membersTestTimeZone.test_class_members  sm    B///5t<//5v>//5u=r1   c                    U R                  [        R                  [        [        S5      5      5        U R	                  [        R                  [        [        S5      S5      5        U R                  [        R                  [        [        S5      S5      5        [        SS9[        SS94 H9  n[        U5      nU R                  UR                  S 5      [        SS9-  S5        M;     [        SS5      [        S5      4 H:  nU R                  [        [        U5        U R                  [        [        U* 5        M<     U R                  [        5         [        S 5        S S S 5        U R                  [        5         [        S5        S S S 5        U R                  [        5         [        [        S 5        S S S 5        U R                  [        5         [        [        S5        S S S 5        U R                  [        5         [        [        SS	5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       g = f)
Nr   r   r   microsecondssecondsrq   r   ABCextra)r4   r   r5   r   assertIsNotr,   assertNotEqualr   r   
ValueErrorr   r  )r-   	subminuter   invalids       r.   test_constructorTestTimeZone.test_constructor   s   hllHYq\$:;x	!e'DEx	!e'DE#3Yq5IJI)$BT 2Yq5I I1M K "!Q16Gj(G<j(WH= 7 y)8D>)y)8B<)y)8D$+?)y)8D"+=)y)8D%+I))	 *)))))))))s<   H;H,$H=I I
H),
H:=
I
I
I-c                     U R                  [        R                  [        5        U R                  U R                  [        5        g r3   )r   r   r5   r   r   r6   s    r.   test_inheritanceTestTimeZone.test_inheritance2  s*    hllF3dhh/r1   c                     U R                  [        5          " S S[        5      nS S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)5TestTimeZone.test_cannot_subclass.<locals>.MyTimezonei8  r#   NrN   rh   ri   rj   rk   r#   r1   r.   
MyTimezoner.  8  s    r1   r0  )r   r   r   )r-   r0  s     r.   test_cannot_subclass!TestTimeZone.test_cannot_subclass6  s$    y),X, *))s   /
=c                    U R                   nS Hb  nU[        -  nU R                  U[        U5      R	                  U5      5        U R                  U* [        U* 5      R	                  U5      5        Md     U R                  [        5         U R                  R	                  S5        S S S 5        U R                  [        5         U R                  R	                  S5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)N)r   g      ?r    rZ   )r  HOURr,   r   r   r   r   r   )r-   dummyhry   s       r.   test_utcoffsetTestTimeZone.test_utcoffset:  s    AXFVXf%5%?%?%FGfWhw&7&A&A%&HI 
 y)488+=+=b+A)y)488+=+=a+@)) *)))s   
C(C9(
C69
Dc                    U R                  [        R                  R                  U R                  5      5        U R                  [        5         U R                  R                  S5        S S S 5        U R                  [        5         U R                  R                  S5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nr4  rZ   )assertIsNoner   r5   r   r  r   r   r   r6   s    r.   test_dstTestTimeZone.test_dstE  su    (,,**47734y)488<<+;)y)488<<?)) *)))s   B,B=,
B:=
Cc           
         U R                  S[        R                  R                  S 5      5        U R                  S[        R                  " S 5      5        U R                  S[        [
        5      R                  S 5      5        U R                  S[        S[        -  5      R                  S 5      5        U R                  S[        S[        -  5      R                  S 5      5        U R                  S[        [        SS95      R                  S 5      5        U R                  S	[        S[        -  S	5      R                  S 5      5        U R                  S
[        [
        S
5      R                  S 5      5        U R                  S[        [        SS5      5      R                  S 5      5        U R                  S[        [        SS5      * 5      R                  S 5      5        U R                  S[        [        SSS5      5      R                  S 5      5        U R                  S[        [        SSS5      * 5      R                  S 5      5        U R                  [        5         U R                  R                  S5        S S S 5        U R                  [        5         U R                  R                  S5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nr   z	UTC-05:00z	UTC+09:30r  z	UTC-00:01rq   XYZ   zUTC+01:06:40r     zUTC-01:06:40zUTC+01:06:40.000001r   zUTC-01:06:40.000001r4  rZ   )r,   r   r5   r   r   r  r5  r   r   r   r   r6   s    r.   test_tznameTestTimeZone.test_tznameK  s    3 3D 9:

4 01 5 5d ;<hrDy&9&@&@&FGhsTz&:&A&A$&GHhy/D&E&L&LT&RSdE : A A$ GH8D(#;#B#B4#HI 	)At2D)E)L)LT)RS!9Q#5"56==dC	E.!)AtQ"78??E	G.!9Qa#8"89@@F	H y)488??2+>)y)488??1+=)) *)))s   !J?K?
K
Kc                    U R                  [        5         [        R                  R	                  U R
                  5        S S S 5        U R                  [        5         [        R                  R	                  S5        S S S 5        U R                  U R                  [        4 H  nU R
                  R                  US9nUR	                  U5      nU R                  X2-
  UR                  U5      5        U R                  UU R
                  R                  [        R                  S95        M     g ! , (       d  f       N= f! , (       d  f       N= f)Nznot datetimer   )r   r$  r   r5   r   r  r   r   r  Easternreplacer,   r   )r-   r   utctimelocals       r.   test_fromutcTestTimeZone.test_fromutcb  s    z*LL  ) +y)LL  0 *88TYY0BggooRo0GJJw'EU_bll5.ABU!WW__HLL_AC	 1	 +*))s   *D. D?.
D<?
Ec                    U R                  [        [        5      [        [        5      5        U R	                  [        [        5      [        [        5      5        U R	                  [        S[        -  5      [        S[        -  S5      5        U R                  [        5         [        [        5      [        [        5      :    S S S 5        U R                  [        [        5      [        [        5      15        U R                  [        [        5      S :g  5        U R                  [        [        5      S :H  5        [        [        5      nU R                  U[        :H  5        U R                  U[        :g  5        U R                  U[        :  5        U R                  U[        :  5        U R                  U[        :*  5        U R                  U[        :  5        U R                  U[        :  5        U R                  U[        :  5        U R                  U[        :*  5        U R                  U[        :  5        g ! , (       d  f       GN~= f)Nr?  r   )r#  r   r  r5  r,   r   r   r<   r   r   r   r   r   r
  s     r.   test_comparisonTestTimeZone.test_comparisonn  sw   HTNHTN;$$8"t),hrDy%.HIy)8D>HTN+J)htnx~&67$./$4/0d^i(y)W%g&g&w'h'X&x(h' *)s   ! H88
Ic                    [        SSS5      n[        R                  [        R                  [        R                  4 H  nU R                  UR                  U5      UR                  US9R                  5       5        U R                  UR                  U5      UR                  US9R                  5       5        U R                  UR                  U5      UR                  US9R                  5       5        M     g )Nr   r   )
r   r   r  r   r5   r,   r   rH  r   r   r-   r   r   s      r.   test_aware_datetime TestTimeZone.test_aware_datetime  s    Q1<<x||<BRYYq\YYbY188:<R\\!_YYbY1;;=?RVVAYYYbY15579 =r1   c                    U R                   U R                  [        R                  [        R                  4 HD  n[
         H7  u  p#nUR                  UR                  X5      5      nU R                  XQ5        M9     MF     [        R                  n[
         H7  u  p#nUR                  UR                  X5      5      nU R                  XQ5        M9     g r3   )r  r   r   r  r   r   r   r   r,   r5   r4   )r-   r   r   r   r   tz_copys         r.   test_pickleTestTimeZone.test_pickle  s    ))TXXx||X\\AB-;)E#//'--*BC  - .< B \\)7%GoogmmB&>?GMM'& *8r1   c                 :   U R                   U R                  [        R                  [        R                  4 H*  n[
        R
                  " U5      nU R                  X!5        M,     [        R                  n[
        R
                  " U5      nU R                  X!5        g r3   )	r  r   r   r  r   copyr,   r5   r4   r-   r   rU  s      r.   	test_copyTestTimeZone.test_copy  se    ))TXXx||X\\ABiimGW) B \\))B-g"r1   c                 :   U R                   U R                  [        R                  [        R                  4 H*  n[
        R                  " U5      nU R                  X!5        M,     [        R                  n[
        R                  " U5      nU R                  X!5        g r3   )
r  r   r   r  r   rY  deepcopyr,   r5   r4   rZ  s      r.   test_deepcopyTestTimeZone.test_deepcopy  sg    ))TXXx||X\\ABmmB'GW) B \\--#g"r1   c           	      `   [        SSS9[        SSSS9[        SSSSS9/nUR                  U Vs/ s H  o"* PM     sn5        U H'  nU R                  SUS9   [        U5        S S S 5        M)     [        S	S
9[        S	SS9/nUR                  U Vs/ s H  o"* PM     sn5        U HE  nU R                  SUS9   U R	                  [
        5         [        U5        S S S 5        S S S 5        MG     g s  snf ! , (       d  f       M  = fs  snf ! , (       d  f       N7= f! , (       d  f       M  = f)Nr  r  r  r   rr   r  ?B r   rr   r  r  good)	test_typedelta   r   r   )r   r  bad)r   extendsubTestr   r   r$  )r-   time_deltasrg  bad_time_deltass       r.   test_offset_boundaries#TestTimeZone.test_offset_boundaries  s    B+BB7BBVL

 	<uF<= Ee< =< ! BBQ/
 	ODO5ODE$EU;&&z2UO 3 <; % = =<  E 32 <;s;   C1C6D:DDD6
D	
DD
D-	c                     U R                  [        R                  [        5       5        U R                  [        [	        SS95      [        5       5        g )Nr   r   )r#  r   r5   r   r   r6   s    r.   test_comparison_with_tzinfo(TestTimeZone.test_comparison_with_tzinfo  s6     	HLL&(3HYQ%78&(Cr1   )r  r  r   N)rN   rh   ri   rj   r  r  r  r  r'  r*  r1  r8  r<  rD  rK  rN  rR  rV  r[  r_  rn  rq  rk   r#   r1   r.   r   r     s`    '
7
.>J$0-A;>.
C(*	9'##$2Dr1   r   c                        \ rS rSrS rS rSrg)HarmlessMixedComparisoni  c                    U R                  SSS5      nU R                  US:H  5        U R                  US:g  5        U R                  SU:H  5        U R                  SU:g  5        U R                  USS/ U/5        U R                  / USS/ /5        U R                  U[        :H  5        U R                  U[        :g  5        U R                  U[
        :  5        U R                  U[
        :  5        U R                  U[
        :*  5        U R                  U[
        :  5        U R                  U[        :  5        U R                  U[        :  5        U R                  U[        :*  5        U R                  U[        :  5        g )Nr   r#      )theclassr   r   r<   r   r   r   r-   mes     r.   test_harmless_mixed_comparison6HarmlessMixedComparison.test_harmless_mixed_comparison  s2   ]]1a#r"b!r"b!b1b"b/*b2q"b/* 	i(y) 	W%g&g&w'h'X&x(h'r1   c                   ^ U R                  SSS5      mU R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S	 j5        g )
Nr   c                     > T S:  $ Nr#   r#   ry  s   r.   <lambda>GHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>  	    R"Wr1   c                     > T S:*  $ r~  r#   r  s   r.   r  r    	    R2Xr1   c                     > T S:  $ r~  r#   r  s   r.   r  r    r  r1   c                     > T S:  $ r~  r#   r  s   r.   r  r    r  r1   c                     > ST :  $ r~  r#   r  s   r.   r  r    r  r1   c                     > ST :*  $ r~  r#   r  s   r.   r  r    r  r1   c                     > ST :  $ r~  r#   r  s   r.   r  r    r  r1   c                     > ST :  $ r~  r#   r  s   r.   r  r    r  r1   )rw  r   r   rx  s    @r.   test_harmful_mixed_comparison5HarmlessMixedComparison.test_harmful_mixed_comparison  s    ]]1a#)_5)%56)_5)%56)_5)%56)_5)%56r1   r#   N)rN   rh   ri   rj   rz  r  rk   r#   r1   r.   rt  rt    s    (:7r1   rt  c                       \ rS rSr\rS rS rS r\	R                  S 5       rS rS rS rS	 rS
 rS rS rS rS rS rS r\	R                  S 5       rS rS rS rS rS rS rS rS rS r S r!S r"Sr#g)TestTimeDeltai  c                 h   U R                   n[        nU" U" 5       U" SSSSSSSS95        U" U" S5      U" SS95        U" U" SS5      U" SS95        U" U" SSS5      U" SS95        U" U" SS9U" SS95        U" U" SS9U" S	S
95        U" U" SS
9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS
95        U" U" SS
9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        g )Nr   )weeksdaysr   rr   r  millisecondsr  r   r  r  r  r  r\   rh  r   <   rq     r  g$I$I?gUUUUUU?g?gMbP?)r,   r   )r-   r   tds      r.   r'  TestTimeDelta.test_constructor  sV    	24!!1a!"4 	5
2a5"!*
2a8R]#
2aA;*+
2A;
#
21:r|$
2A;2'
2a="R.)
2a="$/0
21rt45 	2E?BAJ'
26?BQK(
2FR]+
2fr!}-
2eba01
25!21#56r1   c                 	   U R                   n[        nU" S5      nU" SS5      nU" SSS5      nU" X4-   U-   U" SSS5      5        U" X4-
  U" SS5      5        U" UR                  U5      U" SS5      5        U" U* U" S5      5        U" U7U" S5      5        U" U* U" SS5      5        U" U* U" SS	S
5      5        U" [        U5      U5        U" [        U* 5      U5        U" U" SS5      U5        U" U" SSS5      U5        U" US-  U" S5      5        U" US-  SU-  5        U" US-  SU-  5        U" US-  U" SS5      5        U" SU-  U" SS5      5        U" US-  U" SS5      5        U" US-  U" SSS5      5        U" SU-  U" SSS5      5        U" US-  U" SSS5      5        U" US-  U* 5        U" US-  U* U-
  5        U" US-  U* U* -   5        U" US-  US-  S-  5        U" US-  SU-  S-  5        U" US-  U" SS5      5        U" SU-  U" SS5      5        U" US-  U" S5      5        U" US-  U" SS5      5        U" US-  U" SSS5      5        U" US-  U" SS5      5        U" US-  U" SSS5      5        U" US-  U" S5      5        U" US-  U" SS5      5        U" US-  U" S5      5        U" US-  U" SS5      5        U" US-  U" SSS5      5        U" US-  U" SS5      5        U" US-  U" SSS5      5        U" SS9nU" SU-  S-  SU-  5        U" SU-  S-  SU-  5        U" SSU-  -  SU-  5        U" SSU-  -  SU-  5        U" SU-  S-  SU-  5        U" S U-  S-  SU-  5        U" U" SS!9S"-  U" S#S95        U" U" SS!9S$-  U" S%S95        U" SU-  S-  SU-  5        U" SU-  S-  SU-  5        U" SU-  S&-  SU-  5        U" S U-  S&-  SU-  5        U" SU-  S-  SU-  5        U" SU-  S-  SU-  5        U" SU-  S'-  SU-  5        U" SU-  S'-  SU-  5        [	        S(S5       H   nU" Xv-  S-  U-  [        US-  5      5        M"     [	        S(S5       H   nU" Xv-  S-  U-  [        US-  5      5        M"     U" U" SS!9S)-  U" S%S95        U" U" S*S	S+5      U" S*S	S,5      -
  U" SSS5      5        U" U" S*SS5      U" S*SS5      -
  U" SSS5      5        g )-Nr\   r   r  r  ra   iDQ r^   r@  Q X> Q i r!   F   iX  '  r[     rh  r   i@  i6 i@       ?   x   r  rY   r]   rZ   rX   r?  r  翶~Ϛ?@ g6+1?iS	 g       @g       rW   g`""K?-?ɚ;rc  >B )r,   r   __rsub__absrangeround)r-   r   r  abcusis           r.   test_computationsTestTimeDelta.test_computations  sk   qEq"Iq!TN
13q5"QD/"
131l#$
1::a="Q-.
A2r"v
A2r!u
A2r"l#$
A2r"k6*+
3q61
3r7A
2a>1
2aJ#
1R4B
1R4A
1R4A
1R4As
2a4As
1R4As
1R4Aq%!
2a4Aq%!
1R4Aq%!
1R4!
1R4!A
1R4!QB
1e9qtRi 
1e9r!tRi 
1T62a8
462a8
1a4A
1b5"Q(
1d7Bq!QK 
1b5"Q/"
1g:r!Q	*+
1S5"R&
1S5"Q*
1Q31
1R4Aq
1T62aA;
1R4Ax!
1W9bAy)* Q
AbDC<2
AbDC<2
3!B$<2
3!B$<2
BrES="R% 
BrES="R%  	2a=8#RV%<=
2a=9$bf&=> 	AbDA:qt
AbDA:qt
BrES="R% 
BrES="R% 
AbDB;2
AbDB;2
AbDD="R% 
AbDD="R% sBAQ|U1Q3Z(  sBAR"}eAbDk*   	2a=M*BF,CD 	2i'"Yv*FFaA;	
2iAIq!!44aA;	r1   c                   ^^^ [        S5      mS Ho  mU R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        Mq     SmU R                  [        UU4S j5        U R                  [        UU4S	 j5        U R                  [        UU4S
 j5        U R                  [        U4S j5        U R                  [        U4S j5        g )Nr   r         ?c                     > T T-   $ r3   r#   r  r  s   r.   r  <TestTimeDelta.test_disallowed_computations.<locals>.<lambda>s  	    1r1   c                     > T T-
  $ r3   r#   r  s   r.   r  r  t  r  r1   c                     > TT -   $ r3   r#   r  s   r.   r  r  u  r  r1   c                     > TT -
  $ r3   r#   r  s   r.   r  r  v  r  r1   r   c                     > TT -  $ r3   r#   r  zeros   r.   r  r  {  s	    TQYr1   c                     > T T-  $ r3   r#   r  s   r.   r  r  |  s	    Q$Yr1   c                     > T T-  $ r3   r#   r  s   r.   r  r  }  s	    QXr1   c                     > T S-  $ )N        r#   r  s   r.   r  r  ~  s	    QWr1   c                     > T S-  $ )Nr4  r#   r  s   r.   r  r    s	    QVr1   )r   r   r   ZeroDivisionError)r-   r  r  r  s    @@@r.   test_disallowed_computations*TestTimeDelta.test_disallowed_computationsn  s    bM Ai5i5i5i5	  )%67+->?+-=>+_=)^4r1   c                     [        S5      nU R                  [        UR                  [        5        U R                  [        UR
                  [        5        g )Nr   )r   r   r$  __mul__NAN__truediv__)r-   r  s     r.   test_disallowed_special%TestTimeDelta.test_disallowed_special  s7    bM*aii5*ammS9r1   c                     Su  pn[        XU5      nU R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        g )N)r   r\      r   r,   r  r  r  )r-   r  r  r  r  s        r.   test_basic_attributes#TestTimeDelta.test_basic_attributes  sT    $rtb)$'W-"-r1   c           	      2   [        SS9nU R                  UR                  5       S5        S H,  n[        US9nU R                  UR                  5       U5        M.     S H6  n[        US9nU R                  UR                  5       U[        SS9-  5        M8     g )	Nm  r  g    8~A)g˟$@g˟$r  r   g    .Ar  )r@  r[   ir  r   )r   r,   total_seconds)r-   r  r  mss       r.   test_total_seconds TestTimeDelta.test_total_seconds  s    C ))+Z8NM=1BR--/? O
 !B+BR--/i6J1JK !r1   c           	      T    [        SSSSSSS9n[        SS	9nU R                  X5        g )
Nd   r^   8rX   r   g   Ar  r  r   rr   r  r  r   r  )r   r,   r-   t1t2s      r.   test_carriesTestTimeDelta.test_carries  s7    C)!!$9; A& r1   c           	         [        SSSSSSS9n[        5       nU R                  [        U5      [        U5      5        U[        SS	9-  nU[        S
S9-  nU R                  X5        U R                  [        U5      [        U5      5        US0nSX2'   U R                  [        U5      S5        U R                  X1   S5        g )Nr  r^   r  rX   r   i z
r  r\   r  1   r  r   r]   )r   r,   hashlen)r-   r  r  ds       r.   test_hash_equality TestTimeDelta.test_hash_equality  s    C)!!$9; [b48,
ia  
iS!! b48,GQ#"r1   c                     Sn[        U6 n[         H9  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        M;     g )N)r   "   8   )r   r   r   r   r,   r-   r   r   r   r   r   r   r   s           r.   test_picklingTestTimeDelta.test_pickling  sJ    $)7%GMM$.Eooe,GT+ *8r1   c                   ^^ [        SSS5      m[        SSS5      nU R                  TU5        U R                  TU:*  5        U R                  TU:  5        U R                  TU:g  5        U R                  TU:  5        U R                  TU:  5        S H  n[        U6 nU R                  TU:  5        U R                  UT:  5        U R                  TU:*  5        U R                  UT:  5        U R                  TU:g  5        U R                  UT:g  5        U R                  TU:H  5        U R                  UT:H  5        U R                  TU:  5        U R                  UT:  5        U R                  TU:  5        U R                  UT:*  5        M     [         GH0  mU R                  TT:H  S5        U R                  TT:g  S5        U R                  TT:H  S5        U R                  TT:g  S5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S	 j5        U R                  [        UU4S
 j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        GM3     g )Nr]   rY   r_   )rY   rY   rY   )r]   r_   r_   )r]   rY   rZ   FTc                     > TT :*  $ r3   r#   badargr  s   r.   r  ,TestTimeDelta.test_compare.<locals>.<lambda>  	    vr1   c                     > TT :  $ r3   r#   r  s   r.   r  r    	    fr1   c                     > TT :  $ r3   r#   r  s   r.   r  r    r  r1   c                     > TT :  $ r3   r#   r  s   r.   r  r    r  r1   c                     > T T:*  $ r3   r#   r  s   r.   r  r    	    2r1   c                     > T T:  $ r3   r#   r  s   r.   r  r    	    "r1   c                     > T T:  $ r3   r#   r  s   r.   r  r    r  r1   c                     > T T:  $ r3   r#   r  s   r.   r  r    r  r1   )r   r,   r   r   
OTHERSTUFFr   r   r-   r  r   r  r  s      @@r.   test_compareTestTimeDelta.test_compare  sK   q!Qq!QR b!b!r"b!b!3DD!BOOBG$OOBG$OOB"H%OOB"H%OOB"H%OOB"H%R2X&R2X&R"W%R"W%R2X&R2X& 4 !jFR6\51R6\40Vr\51Vr\40i)=>i)<=i)<=i)=>i)=>i)<=i)<=i)=> !r1   c                 ,   [         nU R                  nU" [        U" S5      5      S5        U" [        U" S5      5      S5        U" [        U" S5      5      S5        U" [        U" S5      5      S5        U" [        U" S	S
SS95      S5        U" [        U" SSSS95      S5        U" [        U" SSS	SS95      S5        U" [        U" SS95      S5        U" [        U" SS95      S5        U" [        U" SSSSSS95      S5        U" SU" SS9* < S 3S!5        g )"Nr   z1 day, 0:00:00r@  z-1 day, 0:00:00r]   z2 days, 0:00:00r[   z-2 days, 0:00:00r   :   r  rb  z12:58:59rY   r_   z2:03:04ir  r  )r  r   rr   r  z-210 days, 23:12:34r  z0:00:00.001000r  z0:00:00.000003r  rc  r  r   rr   r  r  z999999999 days, 23:59:59.999999z-(r   )z
-(1:00:00))r   r,   r	  )r-   r  r   s      r.   r  TestTimeDelta.test_str  s   
3r!u:'(
3r"v;)*
3r!u:()
3r"v;*+
3rB34jA
3r1a019=
3r2r2>? 	" 	3rq!"$45
3rq!"$45
3ryB &( ),	.
 	R" "L1r1   c           	         SU R                   R                  -   nU R                  [        U R                  S5      5      SU-  5        U R                  [        U R                  SS5      5      SU-  5        U R                  [        U R                  SSS5      5      S	U-  5        U R                  [        U R                  S
S95      SU-  5        U R                  [        U R                  5       5      SU-  5        U R                  [        U R                  SS95      SU-  5        U R                  [        U R                  SSS95      SU-  5        U R                  [        U R                  SSS95      SU-  5        g )N	datetime.r   z
%s(days=1)r!   r]   z%s(days=10, seconds=2)rW    z,%s(days=-10, seconds=2, microseconds=400000)r  r  z%s(seconds=60)z%s(0)r  r  z%s(microseconds=100))r  r  z%s(days=1, microseconds=100))r  r  z%s(seconds=1, microseconds=100)rw  rN   r,   r  r-   rH   s     r.   r  TestTimeDelta.test_repr   sW   T]]333dmmA./%,	.dmmB231D8	:dmmCF;<G$N	PdmmBm78)D0	2dmmo. 4	)dmmm=>/$6	8dmmmEF7$>	@dmmACmHI:TA	Cr1   c           	      t   [        SSSSSS9[        SS9[        SSS	9[        SS
SS94 H  n[        U5      nU R                  UR                  S5      5        USS  n[	        U5      nU R                  X5        [        UR                  UR                  UR                  5      nU R                  X5        M     g )Nr  r  r  rc  r  6er  r   r  r  r]   rY   r  r  r  r  	   )	r   r  r   rE   r  r,   r  r  r  )r-   r  std2s       r.   test_roundtripTestTimeDelta.test_roundtrip  s    )2r%'f>*-*a8!QQ?	AB RAOOALL56!"Aq'CR% BGGRZZACR%Ar1   c                 :   U R                  [        R                  [        5        U R                  [        R                  [        5        U R                  [        R                  [        5        U R                  [        R                  [        R                  :  5        U R                  [        R                  [        S5      5        U R                  [        R                  [        SSS5      5        U R                  [        R                  [        SSS5      5        g )Nr  r  r  g    ~.Ar   r   )r   r   r  r   
resolutionr   r,   r6   s    r.   test_resolution_info"TestTimeDelta.test_resolution_info%  s    immY7immY7i22I>		56	*(=>	)Y(NO--yAq/ABr1   c                    [         R                  n[         R                  U-   nX!-  nU R                  [        UR
                  U5        U R                  [        UR                  U* 5        [         R                  U-
  nX!-  nU R                  [        UR                  U5        U R                  [        UR
                  U* 5        U R                  [        S 5        [        S5      nU R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        g )Nc                  $    [         R                  * $ r3   )r   r   r#   r1   r.   r  -TestTimeDelta.test_overflow.<locals>.<lambda>;  s
    )--r1   r    ʚ;g    eAg#B;g|=gr{>)
r   r  r  r   OverflowError__sub____add__r   r  r  )r-   tinyr  days       r.   test_overflowTestTimeDelta.test_overflow.  s   ##]]T!

-T:-dU;]]T!

-T:-dU;-)?@l-e<-c:-%@-%@-%@r1   c                     [        S5      nU R                  [        UR                  [        5        U R                  [        UR                  [        * 5        g Nr   )r   r   r!  r  INF)r-   r%  s     r.   _test_overflow_special$TestTimeDelta._test_overflow_specialD  s9    l-c:-sd;r1   c                 v   [         nU R                  nU" U" SS9U" S5      5        U" U" SS9U" S5      5        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" S	S95        U" U" S
S9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        U" U" SS9U" SS95        SnUS-  nU" U" SU-  S9U" S5      5        U" U" SU-  S9U" S5      5        U" U" SU-  SU-  S9U" S	S95        U" U" SU-  S9U" S5      5        U" U" SU-  S9U" S5      5        U" U" SU-  SU-  S9U" SS95        U" U" S S9S U" S!S9-  5        U" U" S S9UR                  -  S UR                  -  UR                  -  5        g )"Ng-C6:?r  r   g-C6:gMb@?r  gMb@ga2U0*C?r   ga2U0*Cr@  g~jtX?r]   g~jtXr[   gƠ>r  gƠ      ?        i|   tArh  g?r  g?r   r  r   gٿgɿr  r  )r   r,   r  )r-   r  r   us_per_hour
us_per_days        r.   test_microsecond_rounding'TestTimeDelta.test_microsecond_roundingJ  s    	28$be,
29%r!u-
28$ba&89
29%rr':;
28$ba&89
29%rr':;
28$ba&89
29%rr':;
2i "!"45
2j!22#67
2frt45
2g 67  2%

22j=!2a5)
2B{N#RU+
22j=;79KL
23z>"BqE*
2CO$be,
23z>[922;NO 	23RS%9!9:
23.BMM0A2==0PQr1   c                 |    [        SS9nU R                  UR                  UR                  UR                  4S5        g )Nr@  r  )r@  r  rc  r  )r-   r  s     r.   test_massive_normalization(TestTimeDelta.test_massive_normalizationk  s2    B'"''2::r?0	2r1   c                 
   U R                  [        S5      5        U R                  [        SS5      5        U R                  [        SSS5      5        U R                  [        SS95        U R                  [        S5      5        g )Nr   r   r  )r   r   r   r6   s    r.   	test_boolTestTimeDelta.test_boolp  s\    	!%	!Q(	!Q*+	q121&r1   c                 :  ^  " U4S jS[         5      mT" SS9nU R                  [        U5      T5        U R                  UR	                  5       S5        T" SSS9nU R                  [        U5      T5        U R                  UR	                  5       S	5        X-   nU R                  [        U5      [         5        TR                  U5      nU R                  [        U5      T5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  [        U5      [        U5      5        U R                  UR	                  5       S5        g )
Nc                   2   > \ rS rSr\U 4S j5       rS rSrg)0TestTimeDelta.test_subclass_timedelta.<locals>.Tiy  c                 T   > T" U R                   U R                  U R                  5      $ r3   r  )r  Ts    r.   from_td8TestTimeDelta.test_subclass_timedelta.<locals>.T.from_tdz  s    "**boo>>r1   c                 v    U R                   S-  U R                  S-  -   U R                  S-  -   n[        U5      $ )Nrh  g      @r1  )r  r  r  r  )r-   sums     r.   as_hours9TestTimeDelta.test_subclass_timedelta.<locals>.T.as_hours~  s?    yy2~||f,-((612 Sz!r1   r#   N)rN   rh   ri   rj   staticmethodrB  rF  rk   )rA  s   r.   rA  r?  y  s    ? ?"r1   rA  r   r  rh  r@  ir  i)
r   r4   r   r,   rF  rB  r  r  r  r	  )r-   r  r  t3t4rA  s        @r.   test_subclass_timedelta%TestTimeDelta.test_subclass_timedeltaw  s$   		"	 		" AYd2h"+B&d2h",Wd2h	*YYr]d2h""''*RZZ0"//:R#b'*+r1   c           	      ^    " S S[         5      nU" SSS5      n[        SS9nSS U" SSS	5      4S
S U" SSS	5      4SS U" SSS5      4/nU HJ  u  pVnU R                  U5         U" X#5      nU R                  X5        U R	                  X5        S S S 5        ML     g ! , (       d  f       M^  = f)Nc                       \ rS rSrSrg)6TestTimeDelta.test_subclass_date.<locals>.DateSubclassi  r#   Nr/  r#   r1   r.   DateSubclassrO        r1   rP    r   rZ   r  addc                 
    X-   $ r3   r#   r  r   s     r.   r  2TestTimeDelta.test_subclass_date.<locals>.<lambda>      r1   ra   raddc                 
    X-   $ r3   r#   rU  s     r.   r  rV        !%r1   subc                 
    X-
  $ r3   r#   rU  s     r.   r  rV    rW  r1   r_   )r   r   rk  r,   r   )	r-   rP  d1r  testsrH   funcexpectedacts	            r.   test_subclass_date TestTimeDelta.test_subclass_date  s    	4 	 $1%A &T1a(@A'dAq)AB&T1a(@A
 %* Dd#2l  /%%c8 $# %*##s   %+B
B,	c           
      j    " S S[         5      nU" SSSSS5      n[        SSS9nS	S
 U" SSSS5      4SS U" SSSS5      4SS U" SSSS5      4/nU HJ  u  pVnU R                  U5         U" X#5      nU R                  X5        U R	                  X5        S S S 5        ML     g ! , (       d  f       M^  = f)Nc                       \ rS rSrSrg)>TestTimeDelta.test_subclass_datetime.<locals>.DateTimeSubclassi  r#   Nr/  r#   r1   r.   DateTimeSubclassrf    rQ  r1   rg  rR  r   rZ   r      )r  rr   rS  c                 
    X-   $ r3   r#   rU  s     r.   r  6TestTimeDelta.test_subclass_datetime.<locals>.<lambda>  rW  r1   ra      rX  c                 
    X-   $ r3   r#   rU  s     r.   r  rj    rZ  r1   r[  c                 
    X-
  $ r3   r#   rU  s     r.   r  rj    rW  r1   r_   )r   r   rk  r,   r   )	r-   rg  r]  r  r^  rH   r_  r`  ra  s	            r.   test_subclass_datetime$TestTimeDelta.test_subclass_datetime  s    	x 	 dAq"b1Ar* &(8q!R(HI')9$1b)IJ&(8q!R(HI
 %* Dd#2l  /%%c< $# %*##s   ++B##
B2	c                 t   [        SSSS9n[        SS9nU R                  X-  S5        U R                  X-  S5        [        SS	S
9n[        SS9nU R                  X-  S5        U R                  X-  S5        [        S5      nU R                  [        [        X5        U R                  [        [
        X5        g )Nr   rh     rb  r  g     ó@i  r]   rh  rr   r  rq   g      @r   )r   r,   r   r  r
   r   )r-   r   secondminutezerotds        r.   test_divisionTestTimeDelta.test_division  s    Ar261%V,d+a,1%S)a(1+Wa@+XqAr1   c                 6   [        SSS9n[        SS9nX-  nU R                  U[        SS95        [        SSS9nX-  nU R                  U[        SS95        [        S5      nU R                  [        [        X5        U R                  [
        [        US	5        g 
Nr]   rh  rr  r   rq   r  r[   r   r!   )r   r,   r   r  r   r   )r-   r   rt  rru  s        r.   test_remainderTestTimeDelta.test_remainder  s    a,1%JIb12b"-KIb121+S!<)S!R0r1   c                    [        SSS9n[        SS9n[        X5      u  p4U R                  US5        U R                  U[        SS95        [        SSS9n[        X5      u  p4U R                  US5        U R                  U[        SS95        [        S5      nU R                  [        [        X5        U R                  [
        [        US	5        g ry  )r   divmodr,   r   r  r   )r-   r   rt  qrz  ru  s         r.   test_divmodTestTimeDelta.test_divmod  s    a,1%a AIb12b"-a BIb121+VQ?)VQ3r1   c                 :   S nU R                  [        5         [        5       U" SS-  5      -    S S S 5        U R                  [        5         [        5       U" SS-  5      -    S S S 5        S He  nU R                  [        5         [        5       U" U5      -    S S S 5        U R                  [        5         [        5       U" U5      -    S S S 5        Mg     g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       M  = f)Nc                 6   ^   " U 4S jS[         5      nU" 5       $ )Nc                   "   > \ rS rSrU 4S jrSrg)FTestTimeDelta.test_issue31293.<locals>.get_bad_float.<locals>.BadFloati  c                    > T$ r3   r#   )r-   	bad_ratios    r.   as_integer_ratioWTestTimeDelta.test_issue31293.<locals>.get_bad_float.<locals>.BadFloat.as_integer_ratio  s	    $$r1   r#   N)rN   rh   ri   rj   r  rk   )r  s   r.   BadFloatr    s    % %r1   r  )float)r  r  s   ` r.   get_bad_float4TestTimeDelta.test_issue31293.<locals>.get_bad_float  s    %5 % :r1   r   r  )r#   r   r   r]   rY   )r   r   r   r$  )r-   r  r  s      r.   test_issue31293TestTimeDelta.test_issue31293  s    	 y)K-T	22 *y)K-T	22 * 1I"":.mI66 /"":.mI66 /. 1 *))) /...s/   CC)C:7D
C&)
C7:
D	
D	c                   ^^^  " U4S jS[         5      n " U4S jS5      m " U4S jS[         5      mS H  mU R                  TS9    [        U" S	5      S
9   [        U" S	5      S9   [        U" S	5      S9   [        S	5      U" S	5      -     U" S	5      [        S	5      -     [        S	5      U" S	5      -    S S S 5        M     g ! [         a     Nxf = f! [         a     Nxf = f! [        [        4 a     N~f = f! [        [        4 a     Nf = f! [         a     Nzf = f! [         a     Nuf = f! , (       d  f       GM  = f)Nc                   F   > \ rS rSrU 4S jrU 4S jrU 4S jrU 4S jrSrg)-TestTimeDelta.test_issue31752.<locals>.BadInti  c                    > T" 5       $ r3   r#   r-   otherProds     r.   r  5TestTimeDelta.test_issue31752.<locals>.BadInt.__mul__  
    vr1   c                    > T" 5       $ r3   r#   r  s     r.   __rmul__6TestTimeDelta.test_issue31752.<locals>.BadInt.__rmul__	  r  r1   c                    > T" 5       $ r3   r#   r  s     r.   __floordiv__:TestTimeDelta.test_issue31752.<locals>.BadInt.__floordiv__  r  r1   c                    > T" 5       $ r3   r#   r  s     r.   __rfloordiv__;TestTimeDelta.test_issue31752.<locals>.BadInt.__rfloordiv__  r  r1   r#   N)	rN   rh   ri   rj   r  r  r  r  rk   )r  s   r.   BadIntr    s     r1   r  c                   .   > \ rS rSrU 4S jrU 4S jrSrg)+TestTimeDelta.test_issue31752.<locals>.Prodi  c                    > T" 5       $ r3   r#   r-   r  Sums     r.   r#  3TestTimeDelta.test_issue31752.<locals>.Prod.__add__  
    ur1   c                    > T" 5       $ r3   r#   r  s     r.   __radd__4TestTimeDelta.test_issue31752.<locals>.Prod.__radd__  r  r1   r#   N)rN   rh   ri   rj   r#  r  rk   )r  s   r.   r  r    s     r1   r  c                   "   > \ rS rSrU 4S jrSrg)*TestTimeDelta.test_issue31752.<locals>.Sumi  c                    > T$ r3   r#   )r-   r  divmodresults     r.   
__divmod__5TestTimeDelta.test_issue31752.<locals>.Sum.__divmod__  s	    ##r1   r#   N)rN   rh   ri   rj   r  rk   r  s   r.   r  r    s    $ $r1   r  )Nr#   )r   r   r]   )r   r@  r  r   r  r   r  )rt   rk  r   r   r$  )r-   r  r  r  r  s     @@@r.   test_issue31752TestTimeDelta.test_issue31752  s?   	S 		 		$# 	$ ;L<86!95F1I.F1I.aL6!9,1I	!,aLF1I-/ 98 ;
 !  !  ":.  ":.  !  ! 1 98s   	D2CC+C&;C<D%D"
CD2CD2
C# D2"C##D2&C96D28C99D2<DD2DD2
DD2DD2"
D/,D2.D//D22
E	r#   N)$rN   rh   ri   rj   r   rw  r'  r  r  r   requires_IEEE_754r  r  r  r  r  r  r  r  r  r  r  r&  r+  r5  r8  r;  rK  rb  rn  rv  r{  r  r  r  rk   r#   r1   r.   r  r    s    H72Qf5& : :
.
L!#(,&?P20C&&$CA, < <
RB2
',>9&=&B&14"7(1r1   r  c                       \ rS rSrS rSrg)TestDateOnlyi:  c                    [        SSS5      n[        SSSSSS9n[        UR                  5      nU R                  U[        S5      5        X-   nU R                  XAU-   5        X!-   nU R                  XAU-   5        X-
  nU R                  XAU-
  5        U* n[        UR                  5      nU R                  U[        S5      5        X-   nU R                  XAU-   5        X!-   nU R                  XAU-   5        X-
  nU R                  XAU-
  5        g )	N  r   r]   rY   r_   rZ   r  r[   )r   r   r  r,   )r-   r   rg  r  dt2s        r.   test_delta_non_days_ignored(TestDateOnly.test_delta_non_days_ignored>  s   $1q1a'(*$y|,j4i(j4i(j4i($y}-j4i(j4i(j4i(r1   r#   N)rN   rh   ri   rj   r  rk   r#   r1   r.   r  r  :  s    )r1   r  c                       \ rS rSrSrSrg)SubclassDatei[  r   r#   NrN   rh   ri   rj   sub_varrk   r#   r1   r.   r  r  [      Gr1   r  c                       \ rS rSr\rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S  r$S! r%S" r&S# r'S$ r(S% r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1S.r2g/)0TestDatei^  c                     U R                  SSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )N  rY   r   )rw  r,   yearmonthr%  r   s     r.   r  TestDate.test_basic_attributesd  sP    ]]4A&$'1%#r1   c                    U R                  SSS5      U R                   R                  5       4 H  n[        U5      nU R                  UR	                  S5      5        USS  n[        U5      nU R                  X5        U R                  UR                  UR                  UR                  5      nU R                  X5        M     g )Nr   r]   rY   r  r  )
rw  todayr  r   rE   r  r,   r  r  r%  r-   r   r  r  s       r.   r  TestDate.test_roundtripj  s    ==Aq)==&&(*B RAOOALL56!"Aq'CR% --266:CR%*r1   c           	      H   S H  u  pp4U R                  XU5      nU R                  XCR                  5       5        U R                   R                  U5      nU R                  X55        [	        US5      (       d  Mv  U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        M     [        [        [        S-   S5       H  nU R                  USS5      nUR                  5       nU R                   R                  U5      nU R                  X75        US:  d  MZ  U R                   R                  US-
  5      nU R                  US-
  SS5      nU R                  X75        U R                  UR                  5       US-
  5        M     / SQnS	 H  u  piU R                  USS5      R                  5       n[        [        SS
5      U5       H  u  pU
S:X  a  U	(       a  US-  n[        SUS-   5       Hd  nU R                  XjU5      nU R                  UR                  5       U5        U R                  X0R                   R                  U5      5        US-  nMf     M     M     g )N))r   r   r   r   )r   r   r  r  )r]   r   r   n  )i  r   r   i
 hourr   r   r\   r   r  )r     r  rh  r  rh  r  r  rh  r  rh  r  ))r  T)r  Frk  r]   )rw  r,   	toordinalfromordinalr   r  rt  rs  microsecondr  r   r   zip)r-   ymr  nfromordr  d2dimisleapr  maxdayr%  s                r.   test_ordinal_conversions!TestDate.test_ordinal_conversionsx  s*   3JA!
 aA&AQ.mm//2GQ(w''   q1  3  3  !4!4a83& '719a0DdAq)AA**1-BQ#axMM--ac2]]462r2  '  15 1 ?7LDdAq)335A!$U1b\3!7A:&aKF F1H-Cd37A$$Q[[]A6$$Q(A(A!(DEFA	 . "8 8r1   c                   ^^ U R                   R                  mU R                  TR                  TR                  TR                  5      mTR                  5       mTR                  T5      nU R                  TU5        U R                  [        UU4S j5        T[        SS9-   nU R                  UR                  5       TS-   5        U R                  XR                   R                  TS-   5      5        U R                   R                  mU R                  TR                  TR                  TR                  5      mTR                  5       mTR                  T5      nU R                  TU5        U R                  [        UU4S j5        T[        SS9-
  nU R                  UR                  5       TS-
  5        U R                  XR                   R                  TS-
  5      5        g )Nc                  ,   > T R                  TS-
  5      $ r)  r  r  aords   r.   r  0TestDate.test_extreme_ordinals.<locals>.<lambda>      ammD1H.Er1   r   r  c                  ,   > T R                  TS-   5      $ r)  r  r  s   r.   r  r    r  r1   )rw  r  r  r  r%  r  r  r,   r   r$  r   r   )r-   r  r  r  s     @@r.   test_extreme_ordinalsTestDate.test_extreme_ordinals  se   MMMM!&&!''1551{{}MM$A*&EF	q!!q1MM55dQh?@MMMM!&&!''1551{{}MM$A*&EF	q!!q1MM55dQh?@r1   c                    U R                  [        SS5        U R                  [        SS5        U R                  [        U R                   [        S-
  SS5        U R                  [        U R                   [        S-   SS5        U R                  SSS5        U R                  SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  SSS5        U R                  SSS5        U R                  S	SS5        U R                  [        U R                   SSS
5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        g )Nr   r  r   r   rk  r]        `	  rh    4  l  r   )rw  r   r   r   r$  r6   s    r.   test_bad_constructor_arguments'TestDate.test_bad_constructor_arguments  s~   gq!$gq!$*dmmWQY1E*dmmWQY1EdAq!dB"*dmmT1a@*dmmT2qAdAr"dAr"dAr"*dmmT1bA*dmmT1bA*dmmT1bA*dmmT1bA*dmmT1a@*dmmT1bAr1   c                    U R                  SSS5      nU R                  SSS5      nU R                  X5        U R                  [        U5      [        U5      5        US0nSX2'   U R                  [        U5      S5        U R                  X1   S5        U R                  X2   S5        U R                  SSS5      nU R                  SSS5      nU R                  X5        U R                  [        U5      [        U5      5        US0nSX2'   U R                  [        U5      S5        U R                  X1   S5        U R                  X2   S5        g )Nr  r   r  r   r]   r  rw  r,   r  r  r-   r  edics       r.   r  TestDate.test_hash_equality  s&   MM$B'MM$B'a$q'*!fS1%##MM$Q'MM$Q'a$q'*!fS1%##r1   c                 f  ^^^ U R                  SSS5      mU R                  SSS5      nU R                  SSS5      nTU-
  nU R                  UR                  S[        [	        SSS5      5      -   5        U R                  UR
                  S	5        U R                  UR                  S	5        [        S5      m[        S
5      nU R                  SSS5      mU R                  TT-   U R                  SSS5      5        U R                  TT-   U R                  SSS5      5        U R                  TT-
  U R                  SSS5      5        U R                  T* T-   U R                  SSS5      5        U R                  TU-   U R                  SSS5      5        U R                  TU-
  U R                  SSS5      5        U R                  TSU-  -   U R                  SSS5      5        U R                  TSU-  -
  U R                  SSS5      5        U R                  TU-   T-
  U5        U R                  TT-   T-
  T5        U R                  TU-
  T-
  U* 5        U R                  TT-
  T-
  T* 5        U R                  TTU-   -
  U* 5        U R                  TTT-   -
  T* 5        U R                  TTU-
  -
  U5        U R                  TTT-
  -
  T5        U R                  X"T-
  -
  T5        S Ho  mU R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        Mq     U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        g )Nr  r   r    r  r]   A  r_   r   r\   rY   r  r  4     r  c                     > T T-   $ r3   r#   r  s   r.   r  ,TestDate.test_computations.<locals>.<lambda>  r  r1   c                     > T T-
  $ r3   r#   r  s   r.   r  r     r  r1   c                     > TT -   $ r3   r#   r  s   r.   r  r     r  r1   c                     > TT -
  $ r3   r#   r  s   r.   r  r     r  r1   c                     > TT -
  $ r3   r#   r  r%  s   r.   r  r     	    S1Wr1   c                     > TT -  $ r3   r#   r  s   r.   r  r     r  r1   c                     > T T-  $ r3   r#   r  s   r.   r  r     	    QWr1   c                     > TT -  $ r3   r#   r  s   r.   r  r     	    SAXr1   c                     > T T-  $ r3   r#   r  s   r.   r  r     	    Q#Xr1   c                     > T T -  $ r3   r#   r  s   r.   r  r     	    QUr1   c                     > T T -  $ r3   r#   r  s   r.   r  r     	    Q!Vr1   c                     > T T -   $ r3   r#   r  s   r.   r  r     r  r1   
rw  r,   r  r  r  r  r  r   r   r   )r-   r  r  diffweekr  r%  r  s        @@@r.   r  TestDate.test_computations  sw   MM$2&MM$2&MM$q#sFStT11E-F$FGq)**A.l|MM$1%S$--a";<q$--a";<S$--a";<#4==q!#<=T4==q!#<=T4==q"#=>RWdmmD!Q&?@RWdmmD!Q&?@!d(a.!c'Q,!d(a$/!c'Q-a$h$/a#g-a$h.a#g,#g, Ai5i5i5i5	  	)_5)_5)_5)%56)%56)]3)^4)]3r1   c                    U R                   R                  nU[        S5      [        S5      4 H  nU R                   R                  U-   nX2-  nU R	                  [
        UR                  U5        U R	                  [
        UR                  U* 5        U R                   R                  U-
  nX2-  nU R	                  [
        UR                  U5        U R	                  [
        UR                  U* 5        M     g )Nr   r]   )	rw  r  r   r  r   r!  r"  r#  r   )r-   r$  rg  r   s       r.   r&  TestDate.test_overflow!  s    }}''IaL)A,7E""U*BKBmRZZ?mRZZ%@""U*BKBmRZZ?mRZZ%@ 8r1   c                 (   SS K nSu  p#nUR                  " X#USSSSSS4	5      nU R                  R                  U5      nU R	                  UR
                  U5        U R	                  UR                  U5        U R	                  UR                  U5        g )Nr   )i  r  rq  r@  )r   mktimerw  fromtimestampr,   r  r  r%  )r-   r   r  r  r%  tsr  s          r.   test_fromtimestampTestDate.test_fromtimestamp/  s     'S[[$sAq!Q2>?MM''+&%($r1   c                 l    S H.  nU R                  [        U R                  R                  U5        M0     g N)gZbtgZbtir   r!  rw  r  r-   insanes     r.   test_insane_fromtimestamp"TestDate.test_insane_fromtimestamp:  -    
 $FmT]]-H-H$& $r1   c                     U R                  [        5         U R                  R                  S 5        S S S 5        g ! , (       d  f       g = fr3   )r   r   rw  r  r6   s    r.    test_fromtimestamp_with_none_arg)TestDate.test_fromtimestamp_with_none_argC  s.    y)MM''- *))s	   ;
A	c                 *   SS K n[        S5       Hb  nU R                  R                  5       nUR                   " 5       nU R                  R	                  U5      nX5:X  a    OUR
                  " S5        Md     WW:w  a  U R                  XS[        SS9S9  g g )Nr   rY   g?r  r  )rg  )r   r  rw  r  r  sleepassertAlmostEqualr   )r-   r   r6  r  r  
todayagains         r.   
test_todayTestDate.test_todayH  s     1XEMM'')EB44R8J" JJsO! ( J"":)23)? # A r1   c           	         [        S5       H  nU R                  U R                  SSSU-   5      R                  5       U5        U R                  U R                  SSSU-   5      R	                  5       US-   5        U R                  U R                  SSSU-   5      R                  5       U5        U R                  U R                  SSSU-   5      R	                  5       US-   5        M     g )Nr\   r  rY   r_   r   r  r]   )r  r,   rw  weekday
isoweekday)r-   r  s     r.   test_weekdayTestDate.test_weekdaye  s    qAT]]4AaC8@@BAFT]]4AaC8CCEqsKT]]4AaC8@@BAFT]]4AaC8CCEqsK r1   c                 L   / SQn/ nU HU  u  p4U R                   " U6 n[        S5       H2  nU[        U5      -   nUSS US   U-   4-   nUR                  Xx45        M4     MW     U H  u  pU R	                  U	SS9   U R                  U	R                  5       U
5        S S S 5        U R	                  U	SS9   U	R                  5       nU R                  UR                  UR                  UR                  4U
5        S S S 5        M     g ! , (       d  f       No= f! , (       d  f       M  = f)N)))r  r      )r  r  r   ))r  r   r  r  r   r   ))r  r   rZ   )r  r]   r   ))  r   r   )r8  r  r   ))r8  r   r  )r8  5   r   ))r  r   r_   )r  r   r   r\   r   r]   tuple)r  
comparisonfields)
rw  r  r   appendrk  r,   isocalendarr  r  r1  )r-   week_mondays
test_casescal_dateiso_date	base_dater  new_datenew_isor  exp_isor   s               r.   test_isocalendarTestDate.test_isocalendarn  s   
 
".Hx0I1X$y|3"1Q-8A;?*<<!!8"56  #/ %JAg6  ': 7 h7MMO  !&&!&&!))!<gF 87 %66 87s   9!D2AD
D	
D#	c                     U R                  SSS5      n[        R                  " UR                  5       5      n[        R                  " U5      nU R                  [        U5      [        5        U R                  US5        g)ztTest that the result of datetime.isocalendar() can be pickled.

The result of a round trip should be a plain tuple.
  r   )rJ  r   r]   N)rw  pickler   r>  r   r,   r   r:  )r-   r  press       r.   test_isocalendar_pickling"TestDate.test_isocalendar_pickling  s[    
 MM$1%LL)ll1ocE*l+r1   c                    Sn[        [        [        UR                  5       5      5      n/ n[	        S5       H  nU R                  SU-   SS5      nU R                  SU-   SS5      nU R                  UR                  5       SS  UR                  5       SS  5        UR                  5       S   S:X  d  M|  UR                  U5        M     U R                  X25        g )	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
          r  r   r  i@  r   r9  )	sortedmaprt   splitr  rw  r,   r>  r=  )r-   ISO_LONG_YEARS_TABLEiso_long_yearsLr  r  r]  s          r.   test_iso_long_yearsTestDate.test_iso_long_years  s     2  C)=)C)C)E FGsAd1fb"-AtAvr2.BQ]]_QR0"..2B122FG}}q!R'  	+r1   c                 j    U R                  SSS5      nU R                  UR                  5       S5        g )Nr]   rY   z
0002-03-02)rw  r,   	isoformatr-   r   s     r.   test_isoformatTestDate.test_isoformat  s*    MM!Q"5r1   c                 j    U R                  SSS5      nU R                  UR                  5       S5        g )Nr  rY   r]   zSat Mar  2 00:00:00 2002)rw  r,   ctimer\  s     r.   
test_ctimeTestDate.test_ctime  s+    MM$1%$>?r1   c                    U R                  SSS5      nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  [        UR                  5        U R                  [        UR                  SS	5        U R                  [        UR                  S
5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        S H  n UR                  U5        M      UR                  S5        UR                  S5        UR                  SS9  g ! [
         a     MY  f = f! [         a     N>f = f)N  rY   r]   m:%m d:%d y:%yzm:03 d:02 y:05r4    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxonetwor   %m03'%z' '%:z' '%Z''' '' '')z%e%z%#u   %y%m%fformat)rw  r,   strftimer   r   r$  UnicodeEncodeError)r-   r   fs      r.   test_strftimeTestDate.test_strftime  sK   MM$1%$457GHB,H-x8)QZZ0)QZZ>)QZZ4 	D)40 	$56
C #A

1 #	JJ|$
 	


4 	


$
   " 		s$   "E*8E; *
E87E8;
FFc                    U R                  SSS5      n [        R                  " S5        U R                  UR                  S5      [        R                  " SUR                  5       5      5        U R                  UR                  S5      [        R                  " SUR                  5       5      5        g ! [         a    U R	                  S5         Nf = f)Nrd  rY   r]   rm  z'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)rw  _timerq  r$  rO   r,   	timetupler\  s     r.   test_strftime_trailing_percent'TestDate.test_strftime_trailing_percent  s    
 MM$1%	ENN3 	C%..akkm*LMJJ)*NN-q{{}=	
  	EMMCD	Es   B4 4CCc                 (   U R                  SSS5      nU R                  UR                  S5      [        U5      5        U R	                  [
        S5         UR                  S5        S S S 5         " S SU R                   5      nU" SSS5      nU R                  UR                  S5      S5         " S	 S
U R                   5      nU" SSS5      nU R                  UR                  S5      [        U5      5        S H  nU R                  UR                  U5      UR                  U5      5        U R                  UR                  U5      UR                  U5      5        U R                  UR                  U5      S
5        M     g ! , (       d  f       GN#= f)N  r  r!   r4  must be str, not int{   c                       \ rS rSrS rSrg)TestDate.test_format.<locals>.Ai  c                     gNAr#   r6   s    r.   __str__'TestDate.test_format.<locals>.A.__str__      r1   r#   NrN   rh   ri   rj   r  rk   r#   r1   r.   r  r        r1   r  c                       \ rS rSrS rSrg)TestDate.test_format.<locals>.Bi  c                     gNBr#   r-   format_specs     r.   rq  (TestDate.test_format.<locals>.B.strftime  r  r1   r#   NrN   rh   ri   rj   rq  rk   r#   r1   r.   r  r    r  r1   r  re  zm:%m d:%d y:%y H:%H M:%M S:%Sz	%z %:z %Zrw  r,   
__format__r	  assertRaisesRegexr   rq  r-   r   r  r  r  r  fmts          r.   test_formatTestDate.test_format  s=   ]]4B'r*CG4##I/EFMM# G	 	 dArNb)3/	 	 dArNb)3r73C R]]3/S1ABQ\\#.C0@AQ\\#.4# GFs   F
Fc                    [        U R                  [        5      (       a  [        nO[        nU R	                  U R                  R
                  U5        U R	                  U R                  R                  U5        U R	                  U R                  R                  [        5        U R                  U R                  R                  U R                  R
                  :  5        g r3   )
r   rw  r   r   r   r  r   r  r   r   )r-   expected_classs     r.   r  TestDate.test_resolution_info  s    dmmX..%N!Ndmm//@dmm//@dmm66	B))DMM,=,==>r1   c                    U R                   R                  U R                   R                  -
  nUR                  S-  S-  UR                  -   S-  UR
                  -   n[        SSU5      nU R                  X5        U R                  U R                   R                  U-   U R                   R                  5        U R                  U R                   R                  U-
  U R                   R                  5        g )Nrh    @B r   )rw  r   r  r  r  r  r   r,   )r-   bigr  	justasbigs       r.   test_extreme_timedeltaTestDate.test_extreme_timedelta'  s    mm$--"3"33XXb[+W4s7G7GGaA&	(**S0$--2C2CD**S0$--2C2CDr1   c                    [        S5       GH  nU R                  SSSU-   5      nUR                  5       nU R                  USSSU-   SSSUSU-   S4	5        U R                  SSSU-   5      nUR                  5       nU R                  USSSU-   SSSSU-   S-  SU-   S4	5        U R                  SSSU-   5      nUR                  5       nU R                  USSSU-   SSSSU-   S-  S	U-   S4	5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  SU-   5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  SU-   S-  5        U R                  UR                  S	U-   5        U R                  UR                  S5        GM     g )
Nr\   r  r   r]   r   r@  r   rY   =   )r  rw  rx  r,   tm_yeartm_montm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst)r-   r  r  r   s       r.   test_timetupleTestDate.test_timetuple1  s   qAdAqs+AAQq!A#q!Q1Q3 CDdAqs+AAQq!A#q!Q1aAr JK dAqs+AAQq!A#q!Q1aAr JKQYY-QXXq)QYY!,QYY*QXXq)QXXq)QYY1a0QYY1-QZZ,- r1   c                 
   SnU R                   " U6 n[         H9  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        M;     U R	                  UR                  5       UR                  S5      5        g )Nra   r\   r  r]   rw  r   r   r   r,   
__reduce____reduce_ex__r  s           r.   r  TestDate.test_picklingJ  sr    }}d#)7%GMM$.Eooe,GT+ *8 	*D,>,>q,ABr1   c                     / SQnSnU R                   " U6 nU H(  n[         H  nU" USS9nU R                  Xc5        M     M*     g )N)s'   cdatetime
date
(S'\x07\xdf\x0b\x1b'
tR.s   cdatetime
date
(UtR.s   cdatetime
date
UR.)  r      latin1encodingrw  pickle_loadsr,   r-   r^  r   r`  datar   r   s          r.   test_compat_unpickleTestDate.test_compat_unpickleS  sL    

 ==$'D%x8  3 & r1   c                   ^^ U R                  SSS5      mU R                  SSS5      nU R                  TU5        U R                  TU:*  5        U R                  TU:  5        U R                  TU:g  5        U R                  TU:  5        U R                  TU:  5        S GH  nU R                   " U6 nU R                  TU:  5        U R                  UT:  5        U R                  TU:*  5        U R                  UT:  5        U R                  TU:g  5        U R                  UT:g  5        U R                  TU:H  5        U R                  UT:H  5        U R                  TU:  5        U R                  UT:  5        U R                  TU:  5        U R                  UT:*  5        GM     [         GH  mU R                  TT:H  S5        U R                  TT:g  S5        U R                  TT:H  S5        U R                  TT:g  S5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S	 j5        U R                  [        UU4S
 j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        GM     g )Nr]   rY   r_   r  FTc                     > TT :  $ r3   r#   r  s   r.   r  'TestDate.test_compare.<locals>.<lambda>  r  r1   c                     > TT :  $ r3   r#   r  s   r.   r  r    r  r1   c                     > TT :  $ r3   r#   r  s   r.   r  r    r  r1   c                     > T T:*  $ r3   r#   r  s   r.   r  r    r  r1   c                     > T T:  $ r3   r#   r  s   r.   r  r    r  r1   c                     > T T:  $ r3   r#   r  s   r.   r  r    r  r1   c                     > T T:  $ r3   r#   r  s   r.   r  r    r  r1   )rw  r,   r   r   r  r   r   r  s      @@r.   r  TestDate.test_compare`  sF   ]]1a#]]1a#R b!b!r"b!b!3D%BOOBG$OOBG$OOB"H%OOB"H%OOB"H%OOB"H%R2X&R2X&R"W%R"W%R2X&R2X& 4 !jFR6\51R6\40Vr\51Vr\40i)<=i)<=i)=>i)=>i)<=i)<=i)=> !r1   c                 t  ^^ U R                  SSS5      mU R                  TS:H  S5        U R                  ST:H  S5        U R                  TS:g  S5        U R                  ST:g  S5        U R                  [        U4S j5        U R                  [        U4S j5         " S	 S
5      nU" 5       mU R                  TT:H  S5        U R                  TT:H  S5        U R                  TT:g  S5        U R                  TT:g  S5        U R                  [        UU4S j5        U R                  [        UU4S j5        g )Nr  r_   rZ   r   FTc                     > T S:  $ r)  r#   ours   r.   r  -TestDate.test_mixed_compare.<locals>.<lambda>  r  r1   c                     > ST :  $ r)  r#   r  s   r.   r  r    r	  r1   c                       \ rS rSrSrg).TestDate.test_mixed_compare.<locals>.SomeClassi  r#   Nr/  r#   r1   r.   	SomeClassr    rQ  r1   r  c                     > T T:  $ r3   r#   r  theirs   r.   r  r    s	    S5[r1   c                     > TT :  $ r3   r#   r  s   r.   r  r    s	    US[r1   )rw  r,   r   r   )r-   r  r  r  s     @@r.   test_mixed_compareTestDate.test_mixed_compare  s   mmD!Q' 	5)c5)4(c4( 	)_5)_5	 	 u-#u-t,#t,)%89)%89r1   c                     U R                  U R                  R                  5        U R                  U R                  R                  5        g r3   )r   rw  r  r   r6   s    r.   r;  TestDate.test_bool  s.    ))*))*r1   c                 .   S H  nU R                  USS5      nUR                  S5      SU-  :w  d  M0  U R                  UR                  S5      SU-  5        [        R                  (       d  Mk  U R                  UR                  S5      SU-  5        M     g )N)r   r  r  c   r  i  r  r    r   z%Yz%04d%dz%4Y)rw  rq  r,   r   has_strftime_extensions)r-   r  r  s      r.   test_strftime_y2kTestDate.test_strftime_y2k  s{    6AaA&A
 zz$6A:-  D!14!8<222$$QZZ%6
C 7r1   c           	      8   U R                   n/ SQnU" U6 nU R                  UR                  5       U5        U R                  [        R                  " U5      U5        Sn[	        U5       Ha  u  nu  pgUS S  nXxU'   U" U6 n	U R                  UR                  " S0 Xg0D6U	5        U R                  [        R                  " U40 Xg0D6U	5        Mc     U" SSS5      nU R                  [        UR                  SS9  U R                  [        [        R                  USS9  g )	Nr  )r  r]   r  rY   r%  r_   r  r]   r  r  r  r#   rw  r,   rH  rY  	enumerater   r$  
r-   clsr   basechangesr  rH   newvalnewargsr`  s
             r.   test_replaceTestDate.test_replace  s   mmDz.d+T2 "+7!3A~1gGAJG}HT\\;TN;XFT\\$A4.A8L "4 4B*dll>*dllDtDr1   c                   ^   " U 4S jST R                   5      nU" SSS5      nSUR                  SS94S[        R                  " USS94/nU H  u  pET R                  U5         T R	                  [        U5      U5        T R                  UR                  S5        T R                  UR                  S5        T R                  UR                  S	5        S S S 5        M     g ! , (       d  f       M  = f)
Nc                   "   > \ rS rSrU 4S jrSrg)4TestDate.test_subclass_replace.<locals>.DateSubclassi  c                 V   > TR                   R                  " U /UQ70 UD6nSUl        U$ Nr\   rw  r   r!  r  r   kwargsresultr-   s       r.   r   <TestDate.test_subclass_replace.<locals>.DateSubclass.__new__  -    ..sDTDVD r1   r#   NrN   rh   ri   rj   r   rk   r6   s   r.   rP  r         r1   rP    r   self.replace  r  copy.replacer\   )
rw  rH  rY  rk  r4   r   r,   r  r  r!  )r-   rP  r   r@  rH   rM  s   `     r.   test_subclass_replaceTestDate.test_subclass_replace  s    	4== 	 $1% RZZTZ23T\\"489


 $IDd#d3i6  40  A.  A.	 $# $##s   $A0C!!
C0	c                   ^   " U 4S jST R                   5      nSnT R                   " U6 nU" U0 SS0D6nT R                  UR                  U5        T R                  UR                  S5        T R                  UR                  S5        T R                  UR                  5       UR                  5       5        T R                  UR                  S5      UR                  UR                  -   S-
  5        g )Nc                   ,   > \ rS rSrSrU 4S jrS rSrg)&TestDate.test_subclass_date.<locals>.Ci  r   c                    > UR                  5       nUR                  S5      nTR                  R                  " U /UQ70 UD6nXEl        U$ Nr!  rY  poprw  r   r!  r  r   kwstempr!  r  r-   s         r.   r   .TestDate.test_subclass_date.<locals>.C.__new__  D    xxz)..sBTBTB$r1   c                 8    XR                   -   U R                  -   $ r3   )r  r  r-   starts     r.   newmeth.TestDate.test_subclass_date.<locals>.C.newmeth  s    yy(4::55r1   r#   NrN   rh   ri   rj   	theAnswerr   r  rk   r6   s   r.   Cr    s    I6r1   r  r  r_   r  r!  r\   r   r^   )	rw  r,   rM   r  r!  r  r  r  r  r-   r  r   r   r  s   `    r.   rb  TestDate.test_subclass_date  s    	6 	6 mmT"&'1&*+A&#--/:R#((SYY*>*BCr1   c                 L  ^   " U 4S jST R                   5      nSnSnSnU" U6 nT R                  XQ5        T R                  UR                  S5        [        R
                  " U[        S5      5      R                  5       nSU44S	U44S
U44/nU H  u  pX4 Hs  n
T R                  [        U
5      US9   [        X5      nU" U	6 nT R                  X5        T R                  X5        T R                  UR                  S5        S S S 5        Mu     M     g ! , (       d  f       M  = f)Nc                   "   > \ rS rSrU 4S jrSrg)CTestDate.test_subclass_alternate_constructors.<locals>.DateSubclassi  c                 V   > TR                   R                  " U /UQ70 UD6nSUl        U$ r  r  r  s       r.   r   KTestDate.test_subclass_alternate_constructors.<locals>.DateSubclass.__new__  -    ..sDTDVD r1   r#   Nr  r6   s   r.   rP  r         r1   rP  r  i( z
2003-04-14r\   r   r  r  fromisoformatbase_obj_typeconstr_name)rw  r   r,   r!  r   combiner   	timestamprk  r   getattr)r-   rP  r   d_ordd_isoformatbase_dr  r@  r'  constr_argsbase_objconstrr   s   `            r.   $test_subclass_alternate_constructors-TestDate.test_subclass_alternate_constructors  s-   	4== 	 "t$f3q) fd1g.88: UH%re${n-

 )3$K)2\\X.9 " ;$X;F-B ))"; $$R0 $$RXXq1; ; 3 )3; ;s   4AD
D#c                     Sn[        U6 n[         HX  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        U R                  [        U[         5      5        MZ     g )Nr  )r  r   r   r   r,   r   rs   r  s           r.   test_pickling_subclass_date$TestDate.test_pickling_subclass_date%  s]    T")7%GMM$.Eooe,GT+OOJw=>	 *8r1   c           	         Sn[        U R                  [        5      (       d  US S nS H0  nU R                  [        U R                  US S U-   USS  -   5        M2     [        U R                  [        5      (       aG  U R                  [        S5         U R                  [        S/[        U5      -  5      S5        S S S 5        [        SS	5       H*  nU R                  US S [        U/5      -   USS  -   5        M,     g ! , (       d  f       NI= f)
Ns
   1995-03-25r_   )   9          r]   rY   ^bad tzinfo state arg$r   r   rk  )	r   rw  r   r   r   r  bytesr  r  )r-   r  
month_byteord_bytes       r.   test_backdoor_resistance!TestDate.test_backdoor_resistance/  s     $--228D5Ji)-bqJ)>ab)IK 6 dmmX..''	3KLeQC#d)O4e< M aH MM$r(UH:%66abAB	 % MLs   )C>>
Dc                 $   / SQnU Ht  nU R                   " U6 nUR                  5       nU R                  US9   U R                   R                  UR                  5       5      nU R	                  X55        S S S 5        Mv     g ! , (       d  f       M  = f)N)r   r   r   )r  r]   r  r  r   r   )r  r]   r  r  r   r   )r  r_   rY   i  rZ   rh  )dt_strrw  r[  rk  r$  r,   )r-   
base_datesdt_tupler   rF  dt_rts         r.   test_fromisoformatTestDate.test_fromisoformatI  su    

 #H)B\\^FV,33BLLNC  + -, # -,s   ;B  
B	c                    SU R                  SSS5      4SU R                  SSS5      4SU R                  SSS5      4SU R                  S	S
S5      4SU R                  SSS5      4SU R                  SSS5      4SU R                  SSS5      4SU R                  S	S
S5      4SU R                  SS
S5      4SU R                  SS
S5      4SU R                  SSS5      4SU R                  SSS5      4SU R                  SS
S5      4SU R                  SS
S5      4SU R                  SS
S5      4SU R                  SS
S5      4SU R                  SS
S5      4SU R                  SS
S5      4SU R                  S SS5      4S!U R                  S SS5      4S"U R                  S#S
S5      4S$U R                  S#S
S5      4S%U R                  S&SS5      4S'U R                  S(S
S)5      4S*U R                  S(S
S)5      4S+U R                  S,SS5      4/nU HI  u  p#U R                  US-9   U R                   R                  U5      nU R                  XC5        S S S 5        MK     g ! , (       d  f       M]  = f).N00010101r   20000101r  20250102  r]   99991231r*   r   r  z
0001-01-01z
2000-01-01
2025-01-02z
9999-12-312025W01  rh  z2025-W012025W014z
2025-W01-42026W01r  z2026-W012026W013z
2026-W01-32022W52  r   z2022-W522022W527  z
2022-W52-72015W534r  z
2015-W53-4z
2015-W53-5  2020W531  r  z
2020-W53-1z
2020-W53-6  	input_str)rw  rk  r$  r,   r-   examplesrc  r`  actuals        r.    test_fromisoformat_date_examples)TestDate.test_fromisoformat_date_examples]  sy   q!Q/0tQ23tQ23tR454==Aq124==q!454==q!454==r267dB34tR45tQ234==q!45dB34tR45tR454==r267dB34tR45tQ234==q!45tR454==r2674==q!45tR454==r2674==q!455
: $,I	244Y?  2 32 $,22s   !-I
I*	c                      " S SU R                   5      nU" SSS5      nUR                  UR                  5       5      nU R                  X15        g )Nc                       \ rS rSrSrg):TestDate.test_fromisoformat_subclass.<locals>.DateSubclassi  r#   Nr/  r#   r1   r.   rP  rk    rQ  r1   rP  r   r   r  )rw  r$  r[  r   )r-   rP  r   rJ  s       r.   test_fromisoformat_subclass$TestDate.test_fromisoformat_subclass  sF    	4== 	 $B'**2<<>:e2r1   c                     / SQnU H<  nU R                  [        5         U R                  R                  U5        S S S 5        M>     g ! , (       d  f       MP  = f)N)r4  rB  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-1z10000-W25-1z
2020-W25-0z
2020-W25-8u   20090228)r   r$  rw  r$  r-   bad_strsbad_strs      r.   test_fromisoformat_fails!TestDate.test_fromisoformat_fails  sD    
&  G"":.++G4 /.  ..s   A
A	c                     SS [         R                  " S5      /nU H<  nU R                  [        5         U R                  R                  U5        S S S 5        M>     g ! , (       d  f       MP  = f)Ns
   2009-03-01z
2009-03-01ioStringIOr   r   rw  r$  r-   	bad_typesbad_types      r.   "test_fromisoformat_fails_typeerror+TestDate.test_fromisoformat_fails_typeerror  sP    "D"++l*CD	!H""9-++H5 .- "--   A
A,	c                 :   SSSSSSSSS	S
SSS[         SS4[        SS4/nU Hd  nU R                  US9   U R                  " U6 nUR	                  5       nU R                  R
                  " U6 nU R                  X55        S S S 5        Mf     g ! , (       d  f       Mx  = f)N)r^  r_   rY   )rd  r   r]   )i  r   rh  )r  r   r]   )r8  r   r  rC  )r  r   r  )r  r   r   )r  r   r  r7  )r  r   r  rB  )r*   r   r  r   r   r  )	datecomps)r   r   rk  rw  r>  fromisocalendarr,   )r-   datesr  dobjisocald_roundtrips         r.   test_fromisocalendarTestDate.test_fromisocalendar  s     aOb"
$ I	2}}i0))+"mm;;VD  3 32 22s   A
B
B	c                    / SQnU HR  nU R                  US9   U R                  [        5         U R                  R                  " U6   S S S 5        S S S 5        MT     g ! , (       d  f       N= f! , (       d  f       Mw  = f)N))rJ  r   r   )rJ  r@  r   )rJ  6   r   )rJ  r   r   )rJ  r   r@  )rJ  r      )rJ  r9  r   )r  r   r   )r   r   r   )i r   r   )        r   r   )rJ  r  r   )rJ  r   r  r  )rk  r   r$  rw  r  )r-   isocalsr  s      r.   !test_fromisocalendar_value_errors*TestDate.test_fromisocalendar_value_errors  s`    
  FV,&&z2MM116: 3 -, 22 -,s"   A/A	A/
A,(A//
A>	c                    [         [        S /n/ nSn[        S5       H=  nU H4  n[        U5      nU" Xd   5      Xd'   UR	                  [        U5      5        M6     M?     U HR  nU R                  US9   U R                  [        5         U R                  R                  " U6   S S S 5        S S S 5        MT     g ! , (       d  f       N= f! , (       d  f       Mw  = f)Nc                     g r3   r#   )xs    r.   r  ;TestDate.test_fromisocalendar_type_errors.<locals>.<lambda>  s    dr1   )rJ  r   r   rY   r  )r	  r  r  listr=  r:  rk  r   r   rw  r  )r-   err_txformersr  r  r  txformererr_valr  s           r.    test_fromisocalendar_type_errors)TestDate.test_fromisocalendar_type_errors  s    
 qA)t*%gj1
uW~. *  FV,&&y1MM116: 2 -, 11 -,s$   3C		B8#C	8
CC		
C	r#   N)3rN   rh   ri   rj   r   rw  r  r  r  r  r  r  r  r&  r  r$  r(  r.  r3  rG  rN  rX  r]  ra  rt  ry  r  r  r  r  r  r  r  r  r;  r  r  r  rb  r1  r4  r?  rK  rg  rl  rs  r|  r  r  r  rk   r#   r1   r.   r  r  ^  s     H$&-^A2B,$204dA	%&.
A:LG<	,$,L6@( T
 5:	?E-2C4%?N:4+
DE,/*D4*2X?C4,(!3F35264<;,;r1   r  c                       \ rS rSrSrSrg)SubclassDatetimei  r   r#   Nr  r#   r1   r.   r  r    r  r1   r  c                      \ rS rSr\rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS r\R8                  " S5      S 5       rS r\R8                  " S5      S 5       rS r S r!S r"S r#S  r$\%RL                  " \'RP                  S!:H  S"5      S# 5       r)\%RL                  " \'RP                  S!:H  S"5      S$ 5       r*S% r+S& r,S' r-\.R^                  " \0S(9S) 5       r1S* r2S+ r3S, r4S- r5S. r6S/ r7\R8                  " S05      S1 5       r8S2 r9S3 r:S4 r;S5 r<S6 r=S7 r>S8 r?S9 r@S: rAS; rBS< rCS= rDS> rES? rFS@rGgA)BTestDateTimei  c                    U R                  SSSSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr  rY   r   r   r   	rw  r,   r  r  r%  r  rt  rs  r  r   s     r.   r  "TestDateTime.test_basic_attributes   s    ]]4Ar1-$'1%#"%A&A&+r1   c           	         U R                  SSSSSSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )Nr  rY   r   r   r  @  r  r   s     r.   test_basic_attributes_nonzero*TestDateTime.test_basic_attributes_nonzero
  s     ]]4Ar2r48$'1%#"%B'B'.r1   c           
         U R                  SSSSSSS5      U R                   R                  5       4 H  n[        U5      nU R                  UR	                  S5      5        US	S  n[        U5      nU R                  X5        U R                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  5      nU R                  X5        M     g )
Nr   r]   rY   r_   rZ   ra   r\   r  r  )rw  r   r  r   rE   r  r,   r  r  r%  r  rt  rs  r  r  s       r.   r  TestDateTime.test_roundtrip  s    ==Aq!Q15==$$&(B RAOOALL56!"Aq'CR% --266 "BII "0C R%(r1   c                 b   U R                  SSSSSSS5      nU R                  UR                  5       S5        U R                  UR                  S5      S5        U R                  UR                  S	5      S
5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  S	SS9S5        U R                  [        UR                  SS9  U R                  [        UR                  SS9  U R                  [        U5      S
5        U R                  SSSSSSS[        R                  S9nU R                  UR                  SS9S5        U R                  SSSSSSS5      nU R                  UR                  SS9S 5        U R                  SSSSSS5      nU R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  SS9S!5        U R                  SSS5      nU R                  UR                  5       S"5        U R                  UR                  S5      S"5        U R                  UR                  S	5      S#5        U R                  [        U5      S#5        [        [        S$S%9S&5      nU R                  SSSUS9nU R                  UR                  5       S'5        g )(Nr   r]   rY   r_   rZ   r~  z0001-02-03T04:05:01.000123rA   z0001-02-03 04:05:01.000123 z0001-02-03 04:05:01.000123rB  u   0001-02-0304:05:01.000123r   timespecz0001-02-03T04rr   z0001-02-03T04:05r  z0001-02-03T04:05:01r  z0001-02-03T04:05:01.000r  auto)sepr  z0001-02-03 04:05fooL@ r   z0001-02-03T04:05:01.999+00:00z0001-02-03T04:05:01.999z0001-02-03T04:05:01.000000z0002-03-02T00:00:00z0002-03-02 00:00:00   r  XXXz0002-03-02T00:00:00+00:00:16)
rw  r,   r[  r   r$  r	  r   r5   rm   r   rQ  s      r.   r]  TestDateTime.test_isoformat&  s9   MM!Q1a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57STyACUV*akkEB*akkHEQ!=>MM!Q1aF8<<MHn=?^_MM!Q1aF3n=?XYMM!Q1a+f57LMn=?XYn=?[\MM!Q"+@AS)+@AS)+@AQ!672.6MM!Q"M-(FGr1   c                    S[        SS94S[        SS94S[        SSS	94S
[        SSSS94S[        SSSSS94/nSS[        R                  4S[        [        S5      5      4/nUU VVVVs/ s H"  u  p4S  H  u  pVXS-   [        Xd-  5      4PM     M$     snnnn-  nU R                  SSSSSS5      nSnU H0  u  pUR	                  U
S9nX-   nU R                  U
S9   S S S 5        M2     g s  snnnnf ! , (       d  f       ML  = f)N05:00rZ   r   02:00r]   06:27ra   r  r  12:32:30r   r   rh  rb  02:04:09.123456r_   r  r  rd  r4  N+00:00r   )-r@  )+r   r^  r   %   z2016-04-01T12:37:09r   tzir   r   r5   rw  rH  rk  )r-   	tzoffsetstzinfosr`  r  prefixsigndt_baseexp_baseexp_tzr  r   exps                r.   test_isoformat_timezone$TestDateTime.test_isoformat_timezoneR  s)   ia()ia()ia45RDE	1aV\ ]^
	 x||$x	!-.
 	 )
 ) 5  34 5 5 )
 	
 --aBA6("KF,B#C#&& #
 '&s   ,)C,C44
D	c           	      @   U R                  SSSSSSS5      nU R                  UR                  S5      [        U5      5        U R	                  [
        S	5         UR                  S5        S S S 5         " S
 SU R                   5      nU" SSSSSSS5      nU R                  UR                  S5      S5         " S SU R                   5      nU" SSSSSSS5      nU R                  UR                  S5      [        U5      5        S H  nU R                  UR                  U5      UR                  U5      5        U R                  UR                  U5      UR                  U5      5        U R                  UR                  U5      S5        M     g ! , (       d  f       GN+= f)Nr|  r  r!   r_   rZ   r   r~  r4  r}  c                       \ rS rSrS rSrg)#TestDateTime.test_format.<locals>.Aix  c                     gr  r#   r6   s    r.   r  +TestDateTime.test_format.<locals>.A.__str__y  r  r1   r#   Nr  r#   r1   r.   r  r  x  r  r1   r  c                       \ rS rSrS rSrg)#TestDateTime.test_format.<locals>.Bi  c                     gr  r#   r  s     r.   rq  ,TestDateTime.test_format.<locals>.B.strftime  r  r1   r#   Nr  r#   r1   r.   r  r    r  r1   r  r  r  r  s          r.   r  TestDateTime.test_formatp  sW   ]]4B1a5r*CG4##I/EFMM# G	 	 dAr1aC(b)3/	 	 dAr1aC(b)3r73C R]]3/S1ABQ\\#.C0@AQ\\#.4# GFs   F
Fc           	      D   SS K nU R                  SSSSSSS5      nU R                  UR                  5       S5        U R                  SSS	SSSS5      nU R                  UR                  5       UR                  " UR                  " UR                  5       5      5      5        g )
Nr   r  rY   r]      rZ   r~  zSat Mar  2 18:03:05 2002r6  )r   rw  r,   r`  r  rx  )r-   r   r   s      r.   test_more_ctimeTestDateTime.test_more_ctime  s    MM$1b!Q4$>? MM$2r1a5DJJt{{1;;=/I$JKr1   c           	      n   U R                  SSSSSS5      nU R                  SSSSSS5      nU R                  SSSSSS5      nU R                  X5        U R                  X#:  5        U R                  [        SSS	S
S
S5      n[	        SS9nX-   nU R                  X!-
  U5        U R                  X:  5        g )Nr  rY   r   r  r   r!   r   r  r  r  r  r  )rw  r,   r   r   r   )r-   r   r  dt3r  s        r.   test_tz_independent_comparing*TestDateTime.test_tz_independent_comparing  s    mmD!Q1a0mmD!QAq1mmD!Q1a0"	" mmGRRR@A&hB'	"r1   c                      " S S[         5      nU R                  SSSSSSSU" SS5      5      nU R                  [        UR                  S5        g )	Nc                       \ rS rSrS rSrg)DTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfoi  c                 0     " S S[         5      nU" S5      $ )Nc                       \ rS rSrS rSrg)ZTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname.<locals>.MyStri  c                     g r3   r#   )r-   r   s     r.   rH  bTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname.<locals>.MyStr.replace  s    #r1   r#   N)rN   rh   ri   rj   rH  rk   r#   r1   r.   MyStrr    s    $r1   r  rH   )r	  )r-   r   r  s      r.   r   KTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname  s    $C $ V}$r1   r#   N)rN   rh   ri   rj   r   rk   r#   r1   r.   MyTzInfor    s    %r1   r  rd  rY   r]   r   rH   %Z)rm   rw  r   r   rq  )r-   r  r   s      r.   %test_strftime_with_bad_tzname_replace2TestDateTime.test_strftime_with_bad_tzname_replace  sI    	%{ 	% MM$1aAq(1f2EF)QZZ6r1   c                    U R                  [        SS5        U R                  [        SS5        U R                  [        U R                   [        S-
  SS5        U R                  [        U R                   [        S-   SS5        U R                  SSS5        U R                  SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  SSS5        U R                  SSS5        U R                  S	SS5        U R                  [        U R                   SSS
5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  SSSS5        U R                  SSSS5        U R                  [        U R                   SSSS5        U R                  [        U R                   SSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  [        U R                   SSSSS5        U R                  [        U R                   SSSSS5        U R                  SSSSSS5        U R                  SSSSSS5        U R                  [        U R                   SSSSSS5        U R                  [        U R                   SSSSSS5        U R                  SSSSSSS5        U R                  SSSSSSS5        U R                  [        U R                   SSSSSSS5	        U R                  [        U R                   SSSSSSS5	        U R                  [        U R                   SSSSS9  U R                  [        U R                   SSSSS9  U R                  [
        U R                   SSSSSSSS S5        g )Nr   r  r   r   rk  r]   r  r  r  rh  r  r  r  r   r  r  r@  rh  r  r  rc  r  fold)rw  r   r   r   r$  r   r6   s    r.   r  +TestDateTime.test_bad_constructor_arguments  s   gq!$gq!$*dmmWQY1E*dmmWQY1EdAq!dB"*dmmT1a@*dmmT2qAdAr"dAr"dAr"*dmmT1bA*dmmT1bA*dmmT1bA*dmmT1bA*dmmT1a@*dmmT1bAdAr1%dAr2&*dmmT1b"E*dmmT1b"EdAr2q)dAr2r**dmmT1b"bI*dmmT1b"bIdAr2r1-dAr2r2.*dmmT1b"b"M*dmmT1b"b"MdAr2r2q1dAr2r2v6*dmm2r2r2	7*dmm2r2r!	# 	*dmm2B 	 	0*dmm2A 	 	/ 	)T]]2r2r1dA	?r1   c                    U R                  SSSSSS5      nU R                  SSSSSS5      nU R                  X5        U R                  [        U5      [        U5      5        US0nSX2'   U R                  [        U5      S5        U R                  X1   S5        U R                  X2   S5        U R                  S	SSS
SS5      nU R                  S	SSS
SS5      nU R                  X5        U R                  [        U5      [        U5      5        US0nSX2'   U R                  [        U5      S5        U R                  X1   S5        U R                  X2   S5        g )Nr  r   r  r  rh     r   r]   r  r   rZ   r  r  s       r.   r  TestDateTime.test_hash_equality  s>   MM$BB3MM$BB3a$q'*!fS1%##MM$QQ3MM$QQ3a$q'*!fS1%##r1   c                   ^^^ U R                  SSS5      mU R                  SSS5      nTU-
  nU R                  UR                  S[        [	        SSS5      5      -   5        U R                  UR
                  S5        U R                  UR                  S5        U R                  SSS	S
S5      m[        SSS5      n[        SS5      n[        S5      m[        S5      nU R                  TU-   U R                  SSS	SS5      5        U R                  UT-   U R                  SSS	SS5      5        U R                  TSU-  -   U R                  SSSSS5      5        U R                  TU-
  U R                  SSS	SS5      5        U R                  U* T-   U R                  SSS	SS5      5        U R                  TU-
  TU* -   5        U R                  TSU-  -
  U R                  SSSSS5      5        U R                  TT-   U R                  SSSS
S5      5        U R                  TT-
  U R                  SSSS
S5      5        U R                  TU-   U R                  SSSS
S5      5        U R                  TU-
  U R                  SS	SS
S5      5        U R                  TSU-  -   U R                  SSSS
S5      5        U R                  TSU-  -
  U R                  SSSS
S5      5        U R                  TU-   T-
  U5        U R                  TT-   T-
  T5        U R                  TU-   T-
  U5        U R                  TU-   T-
  U5        U R                  TU-
  T-
  U* 5        U R                  TT-
  T-
  T* 5        U R                  TU-
  T-
  U* 5        U R                  TU-
  T-
  U* 5        U R                  TTU-   -
  U* 5        U R                  TTT-   -
  T* 5        U R                  TTU-   -
  U* 5        U R                  TTU-   -
  U* 5        U R                  TTU-
  -
  U5        U R                  TTT-
  -
  T5        U R                  TTU-
  -
  U5        U R                  TTU-
  -
  U5        U R                  TUT-   U-   U-   -   U R                  SSSSSSS5      5        U R                  TUT-   U-   U-   -   TU-   T-   U-   U-   5        U R                  TUT-   U-   U-   -
  U R                  SS	SSSSS5      5        U R                  TUT-   U-   U-   -
  TU-
  T-
  U-
  U-
  5        S Ho  mU R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S  j5        U R                  [        UU4S! j5        Mq     U R                  [        UU4S" j5        U R                  [        UU4S# j5        U R                  [        UU4S$ j5        U R                  [        UU4S% j5        U R                  [        UU4S& j5        U R                  [        U4S' j5        U R                  [        U4S( j5        U R                  [        U4S) j5        g )*Nr  r   r  r  r  r_   r   rY   r]   r  ra   r  r  r\   r  r!   r  rv  r   r  r  r  r  r  r6  rZ   r  r  r  c                     > T T-   $ r3   r#   r  s   r.   r  0TestDateTime.test_computations.<locals>.<lambda>9	  r  r1   c                     > T T-
  $ r3   r#   r  s   r.   r  r  :	  r  r1   c                     > TT -   $ r3   r#   r  s   r.   r  r  ;	  r  r1   c                     > TT -
  $ r3   r#   r  s   r.   r  r  <	  r  r1   c                     > TT -
  $ r3   r#   r  s   r.   r  r  ?	  r  r1   c                     > TT -  $ r3   r#   r  s   r.   r  r  A	  r  r1   c                     > T T-  $ r3   r#   r  s   r.   r  r  B	  r	  r1   c                     > TT -  $ r3   r#   r  s   r.   r  r  C	  r  r1   c                     > T T-  $ r3   r#   r  s   r.   r  r  D	  r  r1   c                     > T T -  $ r3   r#   r  s   r.   r  r  E	  r  r1   c                     > T T -  $ r3   r#   r  s   r.   r  r  F	  r  r1   c                     > T T -   $ r3   r#   r  s   r.   r  r  H	  r  r1   r  )	r-   r  r  millisecr  r  r  r%  r  s	         @@@r.   r  TestDateTime.test_computations	  s   MM$2&MM$2&sFStT11E-F$FGq)**A.MM$1b!,Q4(D!l|T4==q!R#CD4==q!R#CDRWdmmD!Q1&EFT4==q!R#CD$DMM$1b!$DET1u9-RWdmmD!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dmmD!QA&FGRWdmmD!QA&FG!d(a.!c'Q,!d(a.!h,!+X6!d(a$/!c'Q-!d(a$/!h,!+hY7a$h$/a#g-a$h$/a(l+hY7a$h.a#g,a$h.a(l+X6dSj4/(:;tQB1dC	EdSj4/(:;H+t3x?	AdSj4/(:;tQB2vF	HdSj4/(:;H+t3x?	A Ai5i5i5i5	  	)_5)_5)_5)%56)%56)]3)^4)]3r1   c                 
   SnU R                   " U6 n[         H9  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        M;     U R	                  UR                  5       UR                  S5      5        g )Nra   r\   r  rv  r  r      r]   r  r  s           r.   r  TestDateTime.test_picklingJ	  sr    )}}d#)7%GMM$.Eooe,GT+ *8 	*D,>,>q,ABr1   c           	      x   U R                  SSSSSSS5      n[        [        R                  S-   5       H  n[        R                  " X5      n[        R
                  " U5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        M     g )	Nr  r]   r\   r  0   r  i r   )
rw  r  rK  HIGHEST_PROTOCOLr   r   r,   r  r  r%  )r-   r  r   r  r  s        r.   test_more_picklingTestDateTime.test_more_picklingS	  s    MM$1b"b&9622Q67EQ&AQAQVVT*QWWa(QUUA& 8r1   c                     Sn[        U6 n[         HX  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        U R                  [        U[         5      5        MZ     g )Nr  )r  r   r   r   r,   r   rs   r  s           r.   test_pickling_subclass_datetime,TestDateTime.test_pickling_subclass_datetime\	  s^    )&)7%GMM$.Eooe,GT+OOJw0@AB	 *8r1   c                     / SQnSnU R                   " U6 nU H(  n[         H  nU" USS9nU R                  Xc5        M     M*     g )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  rv  r  r   r  r  r  r  r  s          r.   r  !TestDateTime.test_compat_unpicklee	  sL    	
 .==$'D%x8  3 & r1   c                 d   / SQnU R                   " U6 nU R                   " U6 nU R                  X#5        U R                  X#:*  5        U R                  X#:  5        U R                  X#:g  5        U R                  X#:  5        U R                  X#:  5        [	        [        U5      5       GH  nUS S  nX   S-   XT'   U R                   " U6 nU R                  X#:  5        U R                  X2:  5        U R                  X#:*  5        U R                  X2:  5        U R                  X#:g  5        U R                  X2:g  5        U R                  X#:H  5        U R                  X2:H  5        U R                  X#:  5        U R                  X2:  5        U R                  X#:  5        U R                  X2:*  5        GM     g )N)r  r   r  rv  r  r  r  r   )rw  r,   r   r   r  r  )r-   r   r  r  r  r  s         r.   test_more_compareTestDateTime.test_more_comparew	  sj    2]]D!]]D! !!"!!s4y!A1gG1GJ(BOOBG$OOBG$OOBH%OOBH%OOBH%OOBH%RX&RX&RW%RW%RX&RX& "r1   c                    U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR
                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        g r3   )r,   r  r  r  r  r  r%  r  r  r  rt  r  rs  )r-   r`  gots      r.   verify_field_equality"TestDateTime.verify_field_equality	  s    ))3884#))4))3773))3884#**5#**5r1   c                     SS K nUR                   " 5       nUR                  " U5      nU R                  R                  U5      nU R	                  X45        g Nr   )r   	localtimerw  r  r  r-   r   r  r`  r  s        r.   r  TestDateTime.test_fromtimestamp	  s@    YY[>>"%mm))"-""81r1   c                 \    SS K nU R                  R                  UR                   " 5       S9  g )Nr   )r)  )r   rw  r  )r-   r   s     r.   test_fromtimestamp_keyword_arg+TestDateTime.test_fromtimestamp_keyword_arg	  s"     	##diik#:r1   c                 
   SS K nUR                   " 5       nUR                  " U5      nU R                  [        5         U R                  R                  U5      nS S S 5        U R                  UW5        g ! , (       d  f       N!= fr  )r   gmtimeassertWarnsDeprecationWarningrw  utcfromtimestampr  r  s        r.   test_utcfromtimestamp"TestDateTime.test_utcfromtimestamp	  s^    YY[;;r?01--004C 2""8S1 21s   A44
BEST+05EDT,M3.2.0,M11.1.0c           	         U R                  SSS5      nU R                  UR                  5       S5        U R                  SSSSSSS5      nU R                  UR                  5       S5        U R                  SSS	SS
5      nUR                  SS9nU R                  U R                   R	                  UR                  5       5      U[        SS9-
  5        U R                  U R                   R	                  UR                  5       5      U[        SS9-   5        U R                  SS	SSS
5      nU R                  U R                   R	                  UR                  5       5      U5        U R                  SSS5      U R                  SSS5      4 H?  n UR                  5       nU R                  U R                   R	                  U5      U5        MA     g ! [         a     MQ  f = f)Nr    r   g     @r]   rY   r_    6@r   r   rh  r  r   i'  r   )rw  r,   r)  rH  r  r   r!  )r-   r   t0r  r  s        r.   test_timestamp_naive!TestDateTime.test_timestamp_naive	  s   MM$1%0MM$1aAq1;	= ]]4B2.ZZQZ44R\\^Dia00	244R\\^Dia00	2 MM$Aq"-44Q[[]CQG --!A&d2b(ABADKKM   !<!<Q!?C C ! s   G
GGc                    U R                  SSS[        R                  S9nU R                  UR	                  5       S5        U R                  SSSSSSS[        R                  S9nU R                  UR	                  5       S5        U R                  SSSSSSS[        [        S	S
9S5      S9nU R                  UR	                  5       S5        g )Nr    r   r   r  r]   rY   r_   g7  @r?  r   r   r)  )rw  r   r5   r,   r)  r   r\  s     r.   test_timestamp_aware!TestDateTime.test_timestamp_aware	  s    MM$1X\\M:,MM$1aAqMF1	3MM$1aAq!))"*=u!E  G9	;r1   zMSK-03c                   ^  U 4S jnT R                   R                  U4 GH
  nU" S5      nT R                  UR                  S5        T R                  UR                  S5        U" S5      n U" S5      nT R                  UR                  S5        T R                  UR                  S5        U" S5      nT R                  Xc5        U" S5      nT R                  Xe5        U" S	5      nT R                  Xc5        U" S
5      nT R                  UR                  S5        T R                  UR                  S5        U" S5      nT R                  Xc5        U" S5      nT R                  Xd5        U" S5      nT R                  UR                  S5        T R                  UR                  S5        U" S5      nT R                  UR                  S5        T R                  UR                  S5        U" S5      nT R                  UR                  S5        T R                  UR                  S5        GM     g ! [
         a     GNf = f)Nc                     > TR                  [        5         TR                  R                  " U 0 UD6sS S S 5        $ ! , (       d  f       g = fr3   )r"  r#  rw  r$  )r   r  r-   s     r.   r$  @TestDateTime.test_microsecond_rounding.<locals>.utcfromtimestamp	  s5    !!"45}}55tFvF 655s	   =
Ar   gư>gưr  rc  g:0yEg1E2gHzr0  i# gHz>g1E2>g<"2?gP?r   r.  r/  )rw  r  r,   rs  r  OSError)r-   r$  ftsr  rg  	minus_oner   s   `      r.   r5  &TestDateTime.test_microsecond_rounding	  s   	G MM//$&Cq6DT[[!,T--q1d)C8J	
   !1!126  !6!6?J  )J  .J  )L  2.  7D	AQ%D	AQ$JAQXXq)Q]]F3IAQXXq)Q]]A.FAQXXq)Q]]D1K&  s   -H00
H>=H>c                    U R                  S5         U R                  R                  R                  [        R
                  S9nUR                  5       nU R                  US5        S S S 5        U R                  S5         U R                  R                  R                  [        R
                  SS9nUR                  5       nU R                  US5        S S S 5        g ! , (       d  f       N}= f! , (       d  f       g = f)Nzminimum UTCr   l w#o9 zmaximum UTCr   r   r  g  MB)	rk  rw  r  rH  r   r5   r)  r,   r   )r-   min_dtmin_tsmax_dtmax_tss        r.   test_timestamp_limits"TestDateTime.test_timestamp_limits
  s    \\-(]]&&..hll.CF%%'F V\2 ) \\-(]]&&..hll;< / >F%%'F V^4 )( )( )(s   AC?AC.
C+.
C<c           	      ~    U R                   R                  S5        U R                   R
                  [        SS9-   nUR                  5       nU R                   R                  R                  SS9nU R                   R                  [        SS9-
  R                  5       [        S	S
S
S9R                  5       -   nSX!4SXC44 HK  u  pVnU R                  XVUS9   U R                   R                  U5      nU R                  X5        S S S 5        MM     SU[        SSS9R                  5       -
  4SU[        SS9R                  5       -
  4SU[        SS9R                  5       -   4SU[        SS9R                  5       -   4/n	U	 H\  u  pVU R                  XVS9   U R                  [        [        45         U R                   R                  U5        S S S 5        S S S 5        M^     g ! [        [        4 a    U R	                  S5         GNf = f! , (       d  f       GMY  = f! , (       d  f       NV= f! , (       d  f       M  = f)N    Test not valid on this platformr   r  r   r  r  r   r6  r  rb  minimummaximumr  r`  Too small by a littler   r2  Too small by a lotrQ  Too big by a littleToo big by a lotr  )rw  r  r3  r!  rO   r  r   r)  r   rH  r  rk  r,   r   r$  )
r-   r9  r:  r;  r<  	test_namer  r`  rf  r@  s
             r.   test_fromtimestamp_limits&TestDateTime.test_fromtimestamp_limits 
  s   	=MM''
3 ""YA%66!!#""**q*9==$$yr'::EEG"b"=KKMN F+F+*
%YH iB44R8  2 CB	*
 %fyar/J/X/X/Z&Z[!6I3,?,M,M,O#OP"FYA->-L-L-N$NO)*=*K*K*M!MN	

 (MIi/&&
M'BC MM//3 D 0/ (; ' 	=MM;<	=  CB DC 0/sA   G! -H	H-0HH-!!HH	
H	
H*&H--
H<	c           	         U R                  [        5          U R                  R                  S5        S S S 5        U R                  R                  R                  [        R                  S9nUR                  5       nU R                  R                  R                  S[        R                  S9nUR                  5       nSX!R                  S S94SXCR                  S S944 Hk  u  pVnU R                  XVUS9   U R                  [        5          U R                  R                  U5      nS S S 5        U R                  WU5        S S S 5        Mm     S	US
-
  4SU[!        SS9R#                  5       -
  4SUS
-   4SU[!        SS9R#                  5       -   4/n
U
 Hz  u  pVU R                  XVS9   U R%                  [&        [
        45         U R                  [        5         U R                  R                  U5        S S S 5        S S S 5        S S S 5        M|     g ! [        [
        4 a    U R                  S5         GNf = f! , (       d  f       GN= f! [        [
        4 a%  n	U R                  [        U	5      5         S n	A	GNUS n	A	ff = f! , (       d  f       GNd= f! , (       d  f       GM  = f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       GMH  = f)Nr@  rA  r   r   r  r   rC  rD  rE  rF  r   rG  rQ  r  rH  rI  rJ  )r"  r#  rw  r$  r3  r!  rO   r  rH  r   r5   r)  r   rk  r	  r,   r   r  r   r$  )r-   r9  r:  r;  r<  rK  r  r`  rf  excr@  s              r.   test_utcfromtimestamp_limits)TestDateTime.test_utcfromtimestamp_limitsG
  se   01A..z: 2 ""**(,,*?!!#""**q*N!!# FNN$N$?@FNN$N$?@*
%YH iB%%&890!%!?!?!C :   2 CB	*
 %fqj1!6I3,?,M,M,O#OP"FQJ/)*=*K*K*M!MN	

 (MIi/&&
M'BC))*<= 66r: > D 0/ (= ]+ A?@A 21( $]3 0c#h//0 :9 CB( >= DC 0/s   H<H6JJI)J)KJ<J+	7J<?K!H95H<8H99H<<
IJ	I>	8J>J	J
JJ
J(	+
J95J<<
K
K
K	c                 l    S H.  nU R                  [        U R                  R                  U5        M0     g r   r!  r"  s     r.   r$  &TestDateTime.test_insane_fromtimestampq
  r&  r1   c                     S HL  nU R                  [        5         U R                  [        U R                  R
                  U5        S S S 5        MN     g ! , (       d  f       M`  = fr   )r"  r#  r   r!  rw  r$  r"  s     r.   test_insane_utcfromtimestamp)TestDateTime.test_insane_utcfromtimestampz
  sK    
 $F!!"45!!-1O1O"(* 65 $55s   ,A
A#	win32z*Windows doesn't accept negative timestampsc                 :    U R                   R                  S5        g )N)rw  r  r6   s    r.   !test_negative_float_fromtimestamp.TestDateTime.test_negative_float_fromtimestamp
  s     	##E*r1   c                     U R                  [        5         U R                  R                  S5      nS S S 5        U R	                  WU R                  SSSSSSS5      5        g ! , (       d  f       N6= f)	NrZ  i  r   r  r  r  r  i~ )r"  r#  rw  r$  r,   )r-   r  s     r.   $test_negative_float_utcfromtimestamp1TestDateTime.test_negative_float_utcfromtimestamp
  sX    01..u5A 2DMM$BBFKL 21s   A""
A0c                    SS K n[        SS9n[        S5       H  nU R                  [        5         U R
                  R                  5       nS S S 5        U R                  [        5         U R
                  R                  UR                   " 5       5      nS S S 5        [        WW-
  5      U::  d  M    O   U R                  [        WW-
  5      U5        g ! , (       d  f       N= f! , (       d  f       NV= f)Nr   r   r  rY   )
r   r   r  r"  r#  rw  utcnowr$  r  assertLessEqual)r-   r   	tolerancer6  from_nowfrom_timestamps         r.   test_utcnowTestDateTime.test_utcnow
  s     a(	1XE!!"45==//1 6 !!"45!%!?!?		!L 6>H,-:  	S(!:;YG 65 65s   C)+C$
C!	$
C2	c           	         SnSn[         R                  " U R                  X5      nU R                  R                  X5      nU R	                  X45        U R                  [        U5      U R                  5        U R                  [        U5      U R                  5        / SQnU Hk  u  pU R                  XS9   [         R                  " U R                  UU5      nU R                  R                  X5      nU R	                  X45        S S S 5        Mm     U R                  R                  nU R	                  U" SS5      R                  5       S[        -  5        U R	                  U" SS5      R                  5       S	[        -  5        U R	                  U" S
S5      R                  5       [        SSSS9* 5        SS[        R                  * [        R                  S   44 H  u  pxUS:  a  Sn	U* n
OSn	Un
[        U
S-  S5      u  pSR                  XX5      nU" US5      nU R	                  UR                  5       [        US95        U R	                  UR                  5       U5        M     Su  pU" X5      nU R	                  UR                  5       S[         -  S[        -  -   5        U R	                  UR                  5       S5        U R	                  UR#                  U5      U5        U R	                  U" SS5      R$                  S 5        U R'                  [(        5         U" SS5        S S S 5        U R'                  [(        5         U" SS5        S S S 5        U R'                  [(        5         U" SS5        S S S 5        g ! , (       d  f       GM  = f! , (       d  f       Np= f! , (       d  f       NZ= f! , (       d  f       g = f)Nz2004-12-01 13:02:47.197z%Y-%m-%d %H:%M:%S.%f))u   2004-12-0113:02:47.197u   %Y-%m-%d%H:%M:%S.%f)u   200412-01 13:02:47.197u   %Y%m-%d %H:%M:%S.%f)u   2004-12-01 13:0247.197u   %Y-%m-%d %H:%M%S.%f)stringrp  z+0002%zr]   z-0002r[   z-00:02:01.000003r   rY   )rr   r  r  )r   r   )r   GMTr   r  r  r  z{}{:02d}{:02d} {}%z %Zr  )z	+1234 UTCrl  r   r  r   r  z-2400z-000z)	_strptime_strptime_datetimerw  strptimer,   r4   r   rk  r   MINUTEr   rw  r   r   r~  rp  r5  rq  r   r   r$  )r-   ri  rp  r`  r  inputsrp  	tzsecondsr   r  r  r   rr   dtstrr   r  s                   r.   test_strptimeTestDateTime.test_strptime
  s   *'//vNmm$$V4'd8ndmm4d3i/

 %NFV;$77v8>@mm,,V<  /	 <; % ==))'40::<a&jI'40::<b6kJ'.88:q!!<<	

 #-j#(>>/5<<?!C"EI1}$*##GRK4NE'..tGLE%)BR\\^Yy-IJRYY[&1"E *
e!dR&[)@Ae,S)51 	%.55t<z*HWd,C*z*HVT,B*z*HS$,?**S <;N +*****s1   6AM>
N
N"+
N3>
N	
N"
N03
Oc                 d   U R                   R                  nU R                  [        5         U" SS5      nS S S 5        U R                  SSSSSS5      nU R                  SSSSSS5      nU R                  SSSS	S	S	5      nU R                  SSS
S	S	S	5      nSSSU4SSSU4SSSU4SSSU4SSSU4SSSU4SSSU4SSSU4SSSU4S SS!U4/
nU H>  u  ppS"U-   nU R	                  UU	U
US#9   U" X5      nU R                  X+US$9  S S S 5        M@     g ! , (       d  f       N= f! , (       d  f       Mc  = f)%Nz01/02/3 04:05:06z%d/%m/%y %H:%M:%Sr  r]   r   r_   rZ   ra   r      r  z1/02/03 4:5:6ri  z01/2/03 4:5:6z%Hz01/02/03 4:05:06z%Mz01/02/03 04:5:06z%Sz01/02/03 04:05:6z%jz2/03 04am:05:06z%j/%y %I%p:%M:%Sz%Iz02/03 4am:05:06z%wz6/04/03z%w/%U/%yz%Wz6/4/2003z%u/%W/%Yz%Vz%u/%V/%Gztest single digit )reasonri  rp  target)msg)rw  rp  r   r$  rk  r,   )r-   rp  newdater   r  r  dt4rr  ry  ri  rp  rz  s               r.   test_strptime_single_digit'TestDateTime.test_strptime_single_digit
  s    ==))z*13FGG + mmD!Q1a0mmD!Q1a0mmD!Q1a0mmD!RAq1?$7=?$7=%':C@%':C@%':C@$&8=$&8=9j#.:z3/:z3/
 /5*FF)F2FV%+%+%+  - #62  f =- - /5) +*,- -s   
D)D 
D 
D/	categoryc                 ^   U R                  [        5         U R                  R                  SS5        S S S 5        U R	                  [
        S5         U R                  R                  SS5        S S S 5        U R                  [
        5         U R                  R                  SS5        S S S 5        U R                  [
        5         U R                  R                  SS	5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nk= f! , (       d  f       g = f)
Nz02-29z%m-%dz.*day of month without a year.*z03-14.159265z%m-%d.%fz20-03-14.159265z%y-%m-%d.%fz
02-29,2024z%m-%d,%Y)r   r$  rw  rp  assertWarnsRegexr#  _assertNotWarnsr6   s    r.   test_strptime_leap_year$TestDateTime.test_strptime_leap_year
  s     z*MM""7G4 + ""#5#EGMM"">:>G !!"45MM""#4mD 6!!"45MM""<< 65 +*G G 6555s/   C+C<DD+
C9<
D

D
D,c                    U R                  SSSSSS5      nU R                  UR                  5       S5        U R                  UR                  5       UR                  UR                  UR
                  UR                  UR                  UR                  UR                  5       UR                  5       [        UR                  SS5      R                  5       -
  S-   S	4	5        UR                  5       nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR
                  5        U R                  UR                  UR                  5        U R                  UR                   UR                  5        U R                  UR"                  UR                  5        U R                  UR$                  UR                  5       5        U R                  UR&                  UR                  5       [        UR                  SS5      R                  5       -
  S-   5        U R                  UR(                  S	5        g )
Nr  r   r  ra   r6  !   )	r  r   r  ra   r6  r  r_   r  r@  r   r@  )rw  r,   rx  r  r  r%  r  rt  rs  r1  r  r   r  r  r  r  r  r  r  r  r  )r-   r   tts      r.   test_more_timetuple TestDateTime.test_more_timetuple  s   MM$B2r2(MN&&!''155&&!((AHH))+++-$qvvq!*<*F*F*HH1L		 [[]QVV,AGG,QUU+QVV,AHH-AHH-QYY[1Q[[]%)!&&!Q%7%A%A%C&DFG&H 	Ib)r1   c           	      f   U R                  SSSSSSS5      nU R                  UR                  S5      S	5        S
 Hs  u  u  p#n[        [	        SX#S9* 5      nUR                  US9nU R                  UR                  S5      SU-   5        U R                  UR                  S5      SU-   5        Mu     g )Nr  r   r  ra   r6  r  /   z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)))r  r~  z	33.000123))r  r   33r]   )r   r  r  r   rj  z-0200z%:zz-02:00:)rw  r,   rq  r   r   rH  )r-   r   r  r  rm  r   s         r.   test_more_strftimeTestDateTime.test_more_strftime"  s    MM$B2r26$=>$B	DFJGQQ91aIIJB			$AQZZ-w{;QZZ.	A>	 Gr1   c           	         U R                  SSSSSSS5      nUR                  S5      nUR                  S	5      nU R                  UR                  S
5      S
5        U R                  UR                  S5      SU S
U 35        U R                  UR                  S5      U SU S
35        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      SU SU 35        U R                  UR                  S5      U SU S35        U R                  UR                  S5      U SU S35        U R                  UR                  S5      S5        U R                  UR                  S5      U SU 35        U R                  UR                  S5      S5        U R                  UR                  S5      U SU 35        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      SU SU 35        U R                  UR                  S5      U SU S35        g )Nr  r   r  ra   r6  r  r  z%cz%B   🐍u   💻%c🐍%B   💻u   %c💻%B🐍      u
   %c%Bu
   %c%Bu
   %c%B   u
   %c%B   u   %c%Br                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            z %c %Bz%c %B rw  rq  r,   r-   r   s1s2s       r.   test_strftime_special"TestDateTime.test_strftime_special-  sK   MM$B2r26ZZZZ 	L1<@$>?:bTQ[\^[_A`a$>?B4zRTQUU_A`aH-x8H-x8$676"VB49PQ$67B4vbT9PQ$67B4vbT9PQN3^D$67B4|B49PQ$>?A[\$BCtKcdfcgEhiD)40I.	:J/2bTB4AJ/B4r"RAr1   c           	          U R                  SSSSSSS5      nU R                  UR                  5       [        SSS5      5        U R                  UR                  5       [        SSSS5      5        g )Nr  rY   r_   r  -     )rw  r,   r   r   r   s     r.   test_extractTestDateTime.test_extractH  s\    ]]4Ar2q$7Dq!$45DRD$9:r1   c           	         [        SSS5      n[        SSSS5      nU R                  SSSSSSS5      nU R                  R                  nU" X5      nU R	                  XS5        U" X!S9nU R	                  XS5        U R	                  XR                  5       5        U R	                  X%R                  5       5        U R	                  XT" UR                  5       UR                  5       5      5        U R                  [        U5        U R                  [        XA5        U R                  [        XBU5        U R                  [        XAUS5        U R                  [        XAUSS	5        U R                  [        US
S5        U R                  [        XAS5        U R                  [        US
U5        U" X[        R                  5      nU R                  UR                  [        R                  5        U" X[        R                  S9nU R                  UR                  [        R                  5        [        5       nU" XR5      nU R	                  UR                  5       U5        U R	                  UR                  5       U5        g )Nr  rY   r_   r  r  r  )r   r   r   r]   r   r   r   )r   r   rw  r(  r,   r   r   r   r5   r4   r   )r-   r  r   r`  r(  r   s         r.   test_combineTestDateTime.test_combineM  s   q!RD!==q!RQ=--''Q]&!$&GGI&GGI&WRWWY	:;)W-)W0)W3)WA6)WAq9)Wff=)W8)Wfa8 Q8<<(bii.Q(,,/bii.FR^A&A&r1   c           	      8   U R                   n/ SQnU" U6 nU R                  UR                  5       U5        U R                  [        R                  " U5      U5        Sn[	        U5       Ha  u  nu  pgUS S  nXxU'   U" U6 n	U R                  UR                  " S0 Xg0D6U	5        U R                  [        R                  " U40 Xg0D6U	5        Mc     U" SSS5      nU R                  [        UR                  SS9  U R                  [        [        R                  USS9  g )	N)r   r]   rY   r_   rZ   ra   r\   )r  r  r  r  rZ   rt  ra   rs  r\   r  r  r  r]   r  r  r  r#   r  r  s
             r.   r  TestDateTime.test_replaceo  s   mm$Dz.d+T2' "+7!3A~1gGAJG}HT\\;TN;XFT\\$A4.A8L "4 4B*dll>*dllDtDr1   EDT4c                    U R                   R                  5       n[        SS5      nUR                  [	        [        SS9S5      S9nU R                  UR                  5       U5        U R                  [        UR                  X"5        U R                  [        UR                  U5        UR                  US9[        SSS9-   nU R                  UR                  U5      U5        U R                  UR                  US	9U5         " S
 S[        5      nU" 5       nU R                  [        UR                  U5        U R                  UR                  US9R                  U5      U5         " S S[        5      nU" 5       nU R                  [        UR                  U5         " S S[        5      n	U	" 5       n
UR                  U
S9nU R                  [        5         UR                  5         S S S 5        g ! , (       d  f       g = f)N,   0044r`   r   EDTr   r_   r  r   c                        \ rS rSrS rS rSrg)+TestDateTime.test_astimezone.<locals>.Bogusi  c                     g r3   r#   r   s     r.   r   5TestDateTime.test_astimezone.<locals>.Bogus.utcoffset      Dr1   c                     [        S5      $ r  r   r   s     r.   r   /TestDateTime.test_astimezone.<locals>.Bogus.dst  s    il2r1   r#   NrN   rh   ri   rj   r   r   rk   r#   r1   r.   Bogusr    s    02r1   r  c                        \ rS rSrS rS rSrg)/TestDateTime.test_astimezone.<locals>.AlsoBogusi  c                     [        S5      $ r  r   r   s     r.   r   9TestDateTime.test_astimezone.<locals>.AlsoBogus.utcoffset  s    IaL%8r1   c                     g r3   r#   r   s     r.   r   3TestDateTime.test_astimezone.<locals>.AlsoBogus.dst      dr1   r#   Nr  r#   r1   r.   	AlsoBogusr    s    8*r1   r  c                        \ rS rSrS rS rSrg),TestDateTime.test_astimezone.<locals>.Brokeni  c                     gr)  r#   r   s     r.   r   6TestDateTime.test_astimezone.<locals>.Broken.utcoffset  s    Ar1   c                     gr)  r#   r   s     r.   r   0TestDateTime.test_astimezone.<locals>.Broken.dst      ar1   r#   Nr  r#   r1   r.   Brokenr    s    -'r1   r  )rw  r   rm   rH  r   r   r,   
astimezoner   r   r   r$  )r-   r   rs  dt_utcdt_fr  bogr  alsobogr  broken	dt_brokens               r.   test_astimezoneTestDateTime.test_astimezone  s   ]] F#8IB,?#GH&1)R]]A9)R]]B7zzz#ia&DDq)40!,d3	3F 	3 g*bmmS93/::1=tD	+ 	+ +*bmmW=	(V 	( JJfJ-	y)  " *))s   G33
Hc                    ^   " U 4S jST R                   5      nSnT R                   " U6 nU" U0 SS0D6nT R                  UR                  U5        T R                  UR                  S5        T R                  UR                  S5        T R                  UR                  5       UR                  5       5        T R                  UR                  S5      UR                  UR                  -   UR                  -   S-
  5        g )Nc                   ,   > \ rS rSrSrU 4S jrS rSrg).TestDateTime.test_subclass_datetime.<locals>.Ci  r   c                    > UR                  5       nUR                  S5      nTR                  R                  " U /UQ70 UD6nXEl        U$ r
  r  r  s         r.   r   6TestDateTime.test_subclass_datetime.<locals>.C.__new__  r  r1   c                 R    XR                   -   U R                  -   U R                  -   $ r3   )r  r  rs  r  s     r.   r  6TestDateTime.test_subclass_datetime.<locals>.C.newmeth  s!    yy(4::5CCr1   r#   Nr  r6   s   r.   r  r    s    IDr1   r  )r  r_   r  r   rk  )   r!  r\   r   r^   )
rw  r,   rM   r  r!  r  r  r  r  rs  r  s   `    r.   rn  #TestDateTime.test_subclass_datetime  s    	D 	D 'mmT"&'1&*+A&#--/:R#((SYY*>*-**+578+9 	:r1   c                 .  ^   " U 4S jST R                   5      nSnSnSnU" U6 nT R                  XQ5        T R                  UR                  S5        UR	                  5       nSU4U4SU[
        R                  4UR                  [
        R                  5      4SU4U4S	U4U4S
US4U4S[        USS 6 [        USS  6 4U4/nU H  u  pn
X4 H  nT R                  [        U5      US9   [        X5      nUS:X  a$  T R                  [        5         U" U	6 nS S S 5        OU" U	6 nT R                  WU5        T R                  X5        T R                  UR                  S5        S S S 5        M     M     g ! , (       d  f       N^= f! , (       d  f       M  = f)Nc                   "   > \ rS rSrU 4S jrSrg)TTestDateTime.test_subclass_alternate_constructors_datetime.<locals>.DateTimeSubclassi  c                 V   > TR                   R                  " U /UQ70 UD6nSUl        U$ r  r  r  s       r.   r   \TestDateTime.test_subclass_alternate_constructors_datetime.<locals>.DateTimeSubclass.__new__  r"  r1   r#   Nr  r6   s   r.   rg  r    r#  r1   rg  )r  r_   r  r   rh     r  z2003-04-14T12:30:15.123456gh͏TMAr\   r  r$  r$  rp  z%Y-%m-%dT%H:%M:%S.%fr(  r   rY   r%  )rw  r   r,   r!  r)  r   r5   r  r   r   rk  r   r*  r"  r#  )r-   rg  r   r,  utc_tsr-  r  r@  r'  r.  r`  r/  constructorr   s   `             r.   -test_subclass_alternate_constructors_datetime:TestDateTime.test_subclass_alternate_constructors_datetime  s   	t}} 	 12"!4(f7q)  reV,r8<<0%00>@&F3{nf5+'=>GtAay)4ab?;VD	

 3=.Kh-6\\X.9 " ;")("@K"&88!--.@A!,k!:B BA )+6 ))".>? $$R2 $$RXXq1#; ; 7 3= BA; ;s%   )'FE4	AF4
F>F
Fc                   ^   " U 4S jST R                   5      nSS0 4SS0 4SSS[        R                  04SSS[        [        SS	9S
5      04/nU H  u  p4nT R	                  U5         [        X5      nUS:X  a'  T R                  [        5         U" S0 UD6nS S S 5        OU" S0 UD6nT R                  WU5        T R                  UR                  S5        S S S 5        M     g ! , (       d  f       NI= f! , (       d  f       M  = f)Nc                   "   > \ rS rSrU 4S jrSrg)8TestDateTime.test_subclass_now.<locals>.DateTimeSubclassi  c                 V   > TR                   R                  " U /UQ70 UD6nSUl        U$ r  r  r  s       r.   r   @TestDateTime.test_subclass_now.<locals>.DateTimeSubclass.__new__  r"  r1   r#   Nr  r6   s   r.   rg  r    r#  r1   rg  r   ra  now_utcr   	now_fixedr?  r   r   r\   r#   )rw  r   r5   r   rk  r*  r"  r#  r   r,   r!  )r-   rg  r@  rH   	meth_namer  r0  r   s   `       r.   test_subclass_nowTestDateTime.test_subclass_now  s    	t}} 	 E2x$hll34%$1De(L!MN	

 (2#DVd# !1=())*<=#-f- >=  )&)B%%b*:;  1- $# (2 >= $#s$   ('C5	C$?C5$
C2.C55
D	c           	      
    " S SU R                   5      nU" SSS5      nU" SSSSS9nSUR                  SS9S	4SUR                  SS9S4S
[        R                  " USS9S	4S
[        R                  " USS9S4/nU Hq  u  pVnU R                  XWS9   U R	                  [        U5      U5        U R                  UR                  S5        U R                  UR                  U5        S S S 5        Ms     g ! , (       d  f       M  = f)Nc                       \ rS rSrSrg)ATestDateTime.test_subclass_replace_fold.<locals>.DateTimeSubclassi  r#   Nr/  r#   r1   r.   rg  r    rQ  r1   rg  r   r   r  r  r  r  r   r  )	rw  rH  rY  rk  r4   r   r,   r  r  )r-   rg  r   r  r@  rH   rM  r  s           r.   test_subclass_replace_fold'TestDateTime.test_subclass_replace_fold  s    	t}} 	 dAq)tQ2 RZZTZ2A6S[[d[3Q7T\\"48!<T\\#D91=	

  *ODtd.d3i)9:  40  40 /.  *..s   AC33
D	c                    / SQn/ SQnSS/nS [         R                  [        [        SS95      [        [        SS95      /nU VVVs/ s H.  nU  H$  nU  H  nU R                  " / UQUQ7SU06PM     M&     M0     nnnnU H_  n	U HV  n
U	R	                  U
S	9nU R                  US
9   U R                  R                  U5      nU R                  X5        S S S 5        MX     Ma     g s  snnnf ! , (       d  f       Mu  = f)N)rB  rC  rD  rE  )r   r   r   r   )r   r   r   ih )r   r   r   G )r   rh  r  r  r  rA  r?  r   r]   r   r  rt  )r   r5   r   rw  r[  rk  r$  r,   )r-   rH  
base_times
separatorsr  
date_tuple
time_tupler  dtsr   r  rt  rJ  s                r.   test_fromisoformat_datetime(TestDateTime.test_fromisoformat_datetime*  s   



 3Z
IB/0IA./1
 ",#!+:!+:!3 }}BjB:BcB " C!+ C!+ 	 #
 B!-\\\. MM77>E$$R/ /. " # /.s   5C&(-C--
C<c                 2   U R                  SSSSSSS5      n[        SS9[        SS9[        S	S
S9[        SSSS9[        SSSSS9/nX" Vs/ s H  nSU-  PM
     sn-  nS [        R                  [        [        SS95      /nXB Vs/ s H  n[        U5      PM     sn-  nU HU  nUR	                  US9nUR                  5       nU R                  US9   U R                   R                  U5      nS S S 5        MW     g s  snf s  snf ! , (       d  f       Ms  = f)Nr   r   rh  r  pQ rZ   r   r]   ra   r  r  r   rb  r_   r  r  rd  r@  r   r   tstrrw  r   r   r5   rH  r[  rk  r$  )	r-   base_dtr  r  r  r  r   rt  rJ  s	            r.   test_fromisoformat_timezone(TestDateTime.test_fromisoformat_timezoneM  s   --b"b"b&A A	 2Ar*BB7Aq!&I	
	 		2	"b2g	22	IA./1 	959RHRL955C,BLLNE5)33E: *)	  3
 6 *)s   C=DD
D	c           
         / SQnU Hm  nU R                  SSSSSSS5      nUR                  US	9nU R                  US
9   U R                   R                  U5      nU R	                  X55        S S S 5        Mo     g ! , (       d  f       M  = f)N)	r  rA     u   ʁu   ᛇu   時r  rB  rR  r   r  r  r  r  iu r  r  rG  r-   r  r  r   rt  rJ  s         r.   test_fromisoformat_separators*TestDateTime.test_fromisoformat_separatorsf  s    

 CtQBB?BLLSL)EE*33E:  + +*	  +*s   -A99
B	c                    SS/nU Hk  nU R                  SSSSS5      nUR                  US9nU R                  US	9   U R                   R                  U5      nU R	                  X55        S S S 5        Mm     g ! , (       d  f       M  = f)
Nr  r  rR  r   r  r   r  r  r  rG  r  s         r.   test_fromisoformat_ambiguous)TestDateTime.test_fromisoformat_ambiguousw  s|    3Z
CtQB3BLLSL)EE*33E:  + +*	  +*s   -A77
B	c                    SS/nS [         R                  [        [        SS95      [        [        SS95      [        [        SSS95      /n/ S	Qn[        U5       H  u  pEU H  nU H  nUS
:X  a  SUS   S-  -  nUSS U4-   nU R                  " USSU-    SU06n	U	R                  US9n
U R                  U
S9   U R                  R                  U
5      nU R                  X5        S S S 5        M     M     M     g ! , (       d  f       M  = f)N)r8  r   r_   r  r  r  r  )r8  r   r_   r  r  r  r   r?  r   r]   ra   r  r  r   rr   r  r  r  r  r  r   r_   r   r  r  	r   r5   r   r  rw  r[  rk  r$  r,   )r-   datetime_basesr  	timespecsipr  r  rI  new_microsecondsr   rt  rJ  s               r.   test_fromisoformat_timespecs)TestDateTime.test_fromisoformat_timespecs  s   ,') IB/0IA./IAr:;=
5	  	*FB .H^++/8A;$3F+G(#+Aa=4D3F#F!QV)=KsKBLL"L5EE2 $ ; ;E B((3 32 !/  + 32   9-C;	;
D
c                    [         R                  n[        [        SS9S5      n[        [        SS9S5      n[        [        SS9S5      n/ SU R                  S	SS
SS5      4PSU R                  S	SS
SS5      4PSU R                  S	SS
SS5      4PSU R                  S	SS
SS5      4PSU R                  S	SS
SSS5      4PSU R                  S	SS
SSS5      4PSU R                  S	SS
SSSS5      4PSU R                  S	SS
SSSS5      4PSU R                  S	SS
SSSS5      4PSU R                  S	SS
SSSS5      4PSU R                  S	SS
SSSS5      4PSU R                  S	SS
SSSS5      4PSU R                  S	SS
SSSS5      4PSU R                  S	SS
SSSS5      4PSU R                  S SS!SS"S#S$5      4PS%U R                  S SS!SS"S#S&5      4PS'U R                  S	SS
SSSS5      4PS(U R                  S	SS
SS5      4PS)U R                  S	SS
SS5      4PS*U R                  S	SS
SS5      4PS+U R                  S	SS
SSS5      4PS,U R                  S	SS
SSS5      4PS-U R                  S	SS
SSSS5      4PS.U R                  S	SS
SSSS5      4PS/U R                  S	SS
SSSS5      4PS0U R                  S	SS
SSSS5      4PS1U R                  S	SS
SSSS5      4PS2U R                  S	SS
SSSS5      4PS3U R                  S	SS
SSSS5      4PS4U R                  S	SS
SSSS5      4PS5U R                  S6SS5      4PS7U R                  S6S8S9S:S5      4PS;U R                  S<SSS:S5      4PS=U R                  S	S8S>S?S5      4PS@U R                  S	S8SAS?S5      4PSBU R                  SCS8SDSS5      4PSEU R                  S	SS
SS5      4PSFU R                  SCS8SDS8S5      4PSGU R                  S	SS
S8S5      4PSHU R                  S	SS
S8SISA5      4PSJU R                  S	S8SAS?SK5      4PSLU R                  S	S8SAS?SK5      4PSMU R                  S<SSS:SKSN5      4PSOU R                  S<SSS:SKSN5      4PSPU R                  S	SS
S8SISA5      4PSQU R                  S	SS
SSS5      4PSRU R                  S	SS
SSS5      4PSSU R                  STSS
SSS5      4PSUU R                  STSSSSS5      4PSVU R                  S	SS
SSS5      4PSWU R                  S	SS
SSSS5      4PSXU R                  S	SS
S8SISA5      4PSYU R                  S	SS
S8SISASZ5      4PS[U R                  S	S8SAS?SK5      4PS\U R                  S	S8SAS?SK5      4PS]U R                  S<SSS:SKSN5      4PS^U R                  S<SSS:SKSNS_5      4PS`U R                  SCS8SDSSUSa94PSbU R                  S	SS
SSSUSa94PScU R                  S	SS
SSSUSa94PSdU R                  S	SS
SSSSUSa94PSeU R                  SfSSSS[        [        SKS95      Sa94PSgU R                  S	SS
SSSh[        [        SS95      Sa94PSiU R                  S	SS
SSSh[        [        SjS95      Sa94PSkU R                  S	SS
SSSUSa94PSlU R                  S	SS
SSSh[        [        SS95      Sa94PSmU R                  S	SS
SSSh[        [        SjS95      Sa94PSnU R                  SoSSSSSpSqUSa94PSrU R                  SoSSSSSpSqUSa94PSsU R                  SoShSSSShStUSa94PSuU R                  SoShSSSShStUSa94PSvU R                  STSwSASSDUSa94PSxU R                  STSwSASSDUSa94PSyU R                  S	SS
SSSSUSa94PSzU R                  S	SS
SSSS[        [        SwS{95      Sa94PnU HI  u  pgU R	                  US|9   U R                  R                  U5      nU R                  X5        S S S 5        MK     g ! , (       d  f       M]  = f)}Nr   r   BSTr?  r   r`   r  rS  rQ  r]   r   z2025-01-02T03rY   z2025-01-02T03:04r_   z2025-01-02T0304z2025-01-02T03:04:05rZ   z2025-01-02T030405z2025-01-02T03:04:05.6i'	 z2025-01-02T03:04:05,6z2025-01-02T03:04:05.678ipX
 z2025-01-02T03:04:05.678901[
 z2025-01-02T03:04:05,678901z2025-01-02T030405.678901z2025-01-02T030405,678901z2025-01-02T03:04:05.6789010z2009-04-19T03:15:45.2345r8  rq  r  r  i z2009-04-19T03:15:45.1234567r  z2025-01-02T03:04:05,678rP  20250102T03z20250102T03:04z20250102T03:04:0520250102T030405z20250102T03:04:05.6z20250102T03:04:05,6z20250102T03:04:05.678z20250102T03:04:05,678z20250102T03:04:05.678901z20250102T030405.678901z20250102T030405,678901z20250102T030405.67890102022W01rZ  
2022W52520r   r   rv  2022W527520r\  
2026W01516r  r  2026W013516r  
2025W01503rU  rh  2025W014503
2025W015122025W0145122025W014T121431r  2026W013T162100r   z2026W013 1621002022W527T202159r  z2022W527 202159z2025W014 1214312025W014T030405z2025W014 030405z2020-W53-6T03:04:05ra  z2020W537 03:04:05z2025-W01-4T03:04:05z2025-W01-4T03:04:05.678901z2025-W01-4T12:14:31z2025-W01-4T12:14:31.012345i90  z2026-W01-3T16:21:00z2026-W01-3T16:21:00.000000z2022-W52-7T20:21:59z2022-W52-7T20:21:59.999999rc  z2025-W01003+00r   z2025-01-02T03:04:05+00z2025-01-02T03:04:05Zz!2025-01-02003:04:05,6+00:00:00.00z2000-01-01T00+21r  z2025-01-02T03:05:06+0300ra   z2025-01-02T03:05:06-0300rX   z2025-01-02T03:04:05+0000z2025-01-02T03:05:06+03z2025-01-02T03:05:06-03z 2020-01-01T03:05:07.123457-05:00r`  r\   iA z2020-01-01T03:05:07.123457-0500z 2020-06-01T04:05:06.111111-04:00i z2020-06-01T04:05:06.111111-0400z 2021-10-31T01:30:00.000000+01:00r!   z2021-10-31T01:30:00.000000+0100z2025-01-02T03:04:05,6+000000.00z 2025-01-02T03:04:05,678+00:00:10r  rb  )r   r5   r   rw  rk  r$  r,   )	r-   r   r  r   r  re  rc  r`  rf  s	            r.   $test_fromisoformat_datetime_examples1TestDateTime.test_fromisoformat_datetime_examples  st   llyq)51yr*E2yr*E2z
4==q!Q:;z
dmmD!Q1=>z
  tQ1a!@Az
 dAq!Q ?@	z

 #DMM$1aA$FGz
 !$--aAq!"DEz
 %]]4Aq!Q79z
 %]]4Aq!Q79z
 ']]4Aq!Q79z
 *]]4Aq!Q79z
 *]]4Aq!Q79z
" (]]4Aq!Q79#z
& (]]4Aq!Q79'z
* +]]4Aq!Q79+z
. (]]4B2r6:</z
2 +]]4B2r6:<3z
6 ']]4Aq!Q797z
: tQ1a89;z
< DMM$1a;<=z
> t}}T1aA>??z
@ !$--aAq!"DEAz
B dAq!Q BCCz
D #]]4Aq!Q79Ez
H #]]4Aq!Q79Iz
L %]]4Aq!Q79Mz
P %]]4Aq!Q79Qz
T (]]4Aq!Q79Uz
X &]]4Aq!Q79Yz
\ &]]4Aq!Q79]z
` ']]4Aq!Q79az
d dAq12ez
f 4==r2r1=>gz
h DMM$1b!<=iz
j 4==r2r1=>kz
l DMM$BA>?mz
n 4==r2q!<=oz
p DMM$1a;<qz
r 4==r2r1=>sz
t DMM$1b!<=uz
v dAq"b" EFwz
x dBB CDyz
z dBB CD{z
| dAq"b" EF}z
~ dAq"b" EFz
@ dAq"b" EFAz
B dAq!Q BCCz
D dAq!Q BCEz
F #DMM$1aA$FGGz
H !$--aAq!"DEIz
J #DMM$1aA$FGKz
L *]]4Aq!Q79Mz
P #DMM$1b"b$IJQz
R *]]4Ar2r59;Sz
V #DMM$BB$GHWz
X *4==r2r2+NOYz
Z #]]4Ar2r24[z
^ *]]4Ar2r6:<_z
b ]]4RAc]:<cz
f &]]4Aq!Qs];=gz
j $]]4Aq!Qs];=kz
n 1]]4Aq!Qs]CEoz
r  ]]4Aq!HYR=P4Q]RTsz
v (]]4Aq!Q"*91+=">  @Awz
| (]]4Aq!Q"*92+>"?  AB}z
B (]]4Aq!Qs];=Cz
F &]]4Aq!Q"*91+=">  @AGz
L &]]4Aq!Q"*92+>"?  ABMz
R 0]]4Aq!Qs]CESz
V /]]4Aq!Qs]CEWz
Z 0]]4Aq!Qs]CE[z
^ /]]4Aq!Qs]CE_z
b 0]]4RBs];=cz
f /]]4RBs];=gz
j /]]4Aq!Qs]CEkz
n 0]]4Aq!Q"*9R+@"A  CDoz
x $,I	244Y?  2 32 $,22s   ;-_55
`	c                    / SQnU HT  nU R                  US9   U R                  [        5         U R                  R	                  U5        S S S 5        S S S 5        MV     g ! , (       d  f       N= f! , (       d  f       My  = f)N)r4  rB  z2009.04-19T03z2009-04.19T03z2009-04-19T0az2009-04-19T03:1a:45z2009-04-19T03:15:4az2009-04-19T03;15:45z2009-04-19T03:15;45z2009-04-19T03:15:4500:00z 2009-04-19T03:15:45.123456+24:30z 2009-04-19T03:15:45.123456-24:30u   2009-04-10ᛇᛇᛇᛇᛇ12:15u   2009-0410T12:15u   2009-04-10T1215z2009-04-19T1z2009-04-19T12:3z2009-04-19T12:30:4z2009-04-19T12:z2009-04-19T12:30:z2009-04-19T12:30:45.z2009-04-19T12:30:45.123456+z2009-04-19T12:30:45.123456-z!2009-04-19T12:30:45.123456-05:00az2009-04-19T12:30:45.123-05:00az2009-04-19T12:30:45-05:00az2009-04-19T12:30:45.400 +02:30z2009-04-19T12:30:45.400 z2009-04-19T12:30:45. 400rr  rk  r   r$  rw  r$  rp  s      r.   !test_fromisoformat_fails_datetime.TestDateTime.test_fromisoformat_fails_datetime"  sa    
@  Gg.&&z2MM//8 3 /.  22 /."   A1A A1 
A.*A11
B 	c                     SnU R                  [        [        R                  " [	        U5      5      5         U R
                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nu   2018-01-0301:0113)r  r$  reescaper  rw  r$  )r-   rt  s     r.   "test_fromisoformat_fails_surrogate/TestDateTime.test_fromisoformat_fails_surrogateI  sE     *##J		$u+0FGMM''. HGGs   A
A)c                     SnU R                   R                  U5      nU R                  UR                  [        R
                  5        g )Nz2014-04-19T13:21:13+00:00)rw  r$  r4   r   r   r5   )r-   rF  r   s      r.   test_fromisoformat_utc#TestDateTime.test_fromisoformat_utcQ  s1    ,]]((0bii.r1   c                      " S SU R                   5      nU" SSSSSSS	[        [        S
SS95      S9nUR                  UR	                  5       5      nU R                  X#5        U R                  X15        g )Nc                       \ rS rSrSrg)BTestDateTime.test_fromisoformat_subclass.<locals>.DateTimeSubclassiX  r#   Nr/  r#   r1   r.   rg  rB  X  rQ  r1   rg  r   r   r  r  rh  r  i r!   r  r   )rw  r   r   r$  r[  r,   r   )r-   rg  r   rJ  s       r.   rl  (TestDateTime.test_fromisoformat_subclassW  sp    	t}} 	 dBAr2v%-ib".M%NP !..r||~>#e6r1   r#   N)HrN   rh   ri   rj   r   rw  r  r  r  r]  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r%  r   run_with_tzr+  r.  r5  r=  rL  rQ  r$  rV  unittestskipIfrL   platformr[  r^  rf  ru  r~  r   ignore_warningsr#  r  r  r  r  r  r  r  r  rn  r  r  r  r  r	  r  r  r  r0  r5  r;  r>  rl  rk   r#   r1   r.   r  r    s   H,
/& *HX-<5:L #$	73?j$.B4HC'C4$'B62;2 34D 5D6	; "*2 #*2X5&%4N(;T&* __S\\W,.Z[+ \+
 __S\\W,.Z[M \M
H"9@v >D $$.@A= B=*,	?B6;
 'DE4  # !#@:632j.81(!0F*2,"	,44D3L%9N//
7r1   r  c                   H    \ rS rSr\r\R                  " S5      S 5       rSr	g)TestSubclassDateTimeid  znot appropriate for subclassesc                     g r3   r#   r6   s    r.   r  #TestSubclassDateTime.test_roundtripg  s    r1   r#   N)
rN   rh   ri   rj   r  rw  rE  skipr  rk   r#   r1   r.   rJ  rJ  d  s#    H]]34 5r1   rJ  c                       \ rS rSrSrSrg)SubclassTimeik  r   r#   Nr  r#   r1   r.   rO  rO  k  r  r1   rO  c                       \ rS rSr\rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestTimein  c                    U R                  SS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        g )Nr   r   rw  r,   r  rt  rs  r  r\  s     r.   r  TestTime.test_basic_attributesr  sb    MM"a $1%1%*r1   c                    U R                  SSSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        g )Nr   r  r  rS  r\  s     r.   r  &TestTime.test_basic_attributes_nonzeroy  sh     MM"b"d+$2&2&-r1   c                 ^   U R                  SSSS5      n[        U5      nU R                  UR                  S5      5        USS  n[	        U5      nU R                  X5        U R                  UR                  UR                  UR                  UR                  5      nU R                  X5        g )Nr   r]   rY   r_   r  r  )
rw  r  r   rE   r  r,   r  rt  rs  r  )r-   r   r  r  s       r.   r  TestTime.test_roundtrip  s    MM!Q1% G[12abE!W ]]166188QXX==*r1   c                   ^^ / SQnU R                   " U6 mU R                   " U6 nU R                  TU5        U R                  TU:*  5        U R                  TU:  5        U R                  TU:g  5        U R                  TU:  5        U R                  TU:  5        [	        [        U5      5       GH  nUS S  nX   S-   XC'   U R                   " U6 nU R                  TU:  5        U R                  UT:  5        U R                  TU:*  5        U R                  UT:  5        U R                  TU:g  5        U R                  UT:g  5        U R                  TU:H  5        U R                  UT:H  5        U R                  TU:  5        U R                  UT:  5        U R                  TU:  5        U R                  UT:*  5        GM     [         GH0  mU R                  TT:H  S5        U R                  TT:g  S5        U R                  TT:H  S5        U R                  TT:g  S5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S	 j5        U R                  [        UU4S
 j5        U R                  [        UU4S j5        U R                  [        UU4S j5        GM3     g )Nr   r]   rY   r_   r   FTc                     > TT :*  $ r3   r#   r  s   r.   r  )TestTime.test_comparing.<locals>.<lambda>  r  r1   c                     > TT :  $ r3   r#   r  s   r.   r  r\    r  r1   c                     > TT :  $ r3   r#   r  s   r.   r  r\    r  r1   c                     > TT :  $ r3   r#   r  s   r.   r  r\    r  r1   c                     > T T:*  $ r3   r#   r  s   r.   r  r\    r  r1   c                     > T T:  $ r3   r#   r  s   r.   r  r\    r  r1   c                     > T T:  $ r3   r#   r  s   r.   r  r\    r  r1   c                     > T T:  $ r3   r#   r  s   r.   r  r\    r  r1   )	rw  r,   r   r   r  r  r  r   r   )r-   r   r  r  r  r  r  s        @@r.   test_comparingTestTime.test_comparing  ss   ]]D!]]D!R b!b!r"b!b!s4y!A1gG1GJ(BOOBG$OOBG$OOB"H%OOB"H%OOB"H%OOB"H%R2X&R2X&R"W%R"W%R2X&R2X& "" !jFR6\51R6\40Vr\51Vr\40i)=>i)<=i)<=i)=>i)=>i)<=i)<=i)=> !r1   c                 \   U R                  SS5        U R                  SS5        U R                  [        U R                   SS5        U R                  [        U R                   SS5        U R                  SS5        U R                  SS5        U R                  [        U R                   SS5        U R                  [        U R                   SS5        U R                  SSS5        U R                  SSS5        U R                  [        U R                   SSS5        U R                  [        U R                   SSS5        U R                  SSSS5        U R                  SSSS5        U R                  [        U R                   SSSS5        U R                  [        U R                   SSSS5        g )	Nr   r  r@  rh  r  r  rc  r  )rw  r   r$  r6   s    r.   r  'TestTime.test_bad_constructor_arguments  sJ   ab!*dmmR;*dmmR;b!b"*dmmR<*dmmR<b"a b"b!*dmmRR@*dmmRR@b"b!$b"b&)*dmmRRD*dmmRRIr1   c                    U R                  SSS5      nU R                  SSS5      nU R                  X5        U R                  [        U5      [        U5      5        US0nSX2'   U R                  [        U5      S5        U R                  X1   S5        U R                  X2   S5        U R                  SSS5      nU R                  SSS5      nU R                  X5        U R                  [        U5      [        U5      5        US0nSX2'   U R                  [        U5      S5        U R                  X1   S5        U R                  X2   S5        g )Nr  rh  r  r   r]   r   rZ   r  r  s       r.   r  TestTime.test_hash_equality  s&   MM"b"%MM"b"%a$q'*!fS1%##MM!a$MM!a$a$q'*!fS1%##r1   c                    U R                  SSSS5      nU R                  UR                  5       S5        U R                  UR                  5       [        U5      5        U R                  5       nU R                  UR                  5       S5        U R                  UR                  5       [        U5      5        U R                  SS9nU R                  UR                  5       S5        U R                  UR                  5       [        U5      5        U R                  S	S9nU R                  UR                  5       S
5        U R                  UR                  5       [        U5      5        U R                  SS9nU R                  UR                  5       S5        U R                  UR                  5       [        U5      5        U R                  SS9nU R                  UR                  5       S5        U R                  UR                  5       [        U5      5        U R                  SS9nU R                  UR                  5       S5        U R                  UR                  5       [        U5      5        U R                  SS9nU R                  UR                  5       S5        U R                  UR                  5       [        U5      5        U R                  SSSSS9nU R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  SS9S 5        U R                  UR                  S!S9S"5        U R                  UR                  S#S9S"5        U R	                  [
        UR                  S$S9  U R	                  [
        UR                  S%S9  U R                  SSSS&S9nU R                  UR                  SS9S'5        U R                  SSSS(S9nU R                  UR                  SS9S)5        U R                  UR                  S!S9S*5        U R                  UR                  S#S9S5        g )+Nr_   rZ   r   r~  z04:05:01.00012300:00:00rB  z00:00:00.000001r!   z00:00:00.000010r  z00:00:00.000100r  z00:00:00.001000r  z00:00:00.010000順 z00:00:00.100000r   r  r  r  )r  rt  rs  r  r   r  12rr   z12:34r  z12:34:56r  z12:34:56.123r  z12:34:56.123456r  monkeyrB  r  z12:34:56.999r   z12:34:56.000z12:34:56.000000)rw  r,   r[  r	  r   r$  r\  s     r.   r]  TestTime.test_isoformat  s   MM!Q3'(9:A/MMO
3A/MMaM((9:A/MMbM)(9:A/MMcM*(9:A/MMdM+(9:A/MMeM,(9:A/MMfM-(9:A/MMr"RVMLg6=i8'Bi8*En=~Nn=?PQf57HI*akkHE*akkHEMMr"RVMLn=~NMMr"RQMGn=~Nn=?PQf5zBr1   c                    S[        SS94S[        SS94S[        SSS	94S
[        SSSS94S[        SSSSS94/nSS[        R                  4S[        [        S5      5      4/nUU VVVVs/ s H"  u  p4S  H  u  pVXS-   [        Xd-  5      4PM     M$     snnnn-  nU R                  SSS5      nSnU H0  u  pUR	                  U
S9nX-   nU R                  U
S9   S S S 5        M2     g s  snnnnf ! , (       d  f       ML  = f)Nr  rZ   r   r  r]   r  ra   r  r  r  r   r   rh  rb  r  r_   r  r  rd  r  r  r   r  r  z12:37:09r   r  r  )r-   r  r  r`  r  r  r  t_baser  r  r  r   r  s                r.   r   TestTime.test_isoformat_timezone  s#   ia()ia()ia45RDE	1aV\ ]^
	 x||$x	!-.
 	 )
 ) 5  34 5 5 )
 	
 r2q)"KFc*A#C#&& #
 '&s   ,)C)C11
D 	c                 `    U R                  SS9nU R                  [        UR                  SS9  g )Nr   rs  rY   )r  )rw  r   r   r[  r\  s     r.   test_1653736TestTime.test_1653736;  s+    MMM#)Q[[a8r1   c                    U R                  SSSS5      nU R                  UR                  S5      S5        U R                  UR                  S5      S5         UR                  S	5        UR                  S
S9  g ! [         a     Nf = f)Nr   r]   rY   r_   z%H %M %S %fz01 02 03 000004rk  rl  u   %H%Mrn  ro  )rw  r,   rq  rr  r\  s     r.   rt  TestTime.test_strftime@  s    MM!Q1%M24EF$56
C	JJ|$
 	


$
	 " 		s   A9 9
BBc                    U R                  SSSS5      nUR                  S5      nUR                  S5      nU R                  UR                  S5      S5        U R                  UR                  S5      S	U SU 35        U R                  UR                  S
5      U S	U S35        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      SU SU 35        U R                  UR                  S5      U SU S35        U R                  UR                  S5      U SU S35        U R                  UR                  S5      S5        U R                  UR                  S5      U SU 35        U R                  UR                  S5      S5        U R                  UR                  S5      U SU 35        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      SU SU 35        U R                  UR                  S5      U SU S35        g )Nr   r]   rY   r_   z%I%p%Zz%Xr  u   💻%I%p%Z🐍%Xr  u   %I%p%Z💻%X🐍r  r  u   %I%p%Z%Xu   %I%p%Z%Xu   %I%p%Z%Xr  u   %I%p%Z%Xr  u   %I%p%Z%Xr  r  z
 %I%p%Z %Xz
%I%p%Z %X r  r  s       r.   r  TestTime.test_strftime_specialO  sI   MM!Q1%ZZ!ZZ 	L1<@$BCzRTQUU_`b_cEde$BCt:VXUYYcEdeH-x8H-x8$:;vbTPRt=TU$:;t6"V=TU$:;t6"V=TUN3^D$:;t<PRt=TU$>?A[\$FGB4OghjgkIlmD)40I.	:N3r"Rt_EN3t2bT_Er1   c                 .   U R                  SSSS5      nU R                  UR                  S5      [        U5      5        U R	                  [
        S5         UR                  S5        S S S 5         " S S	U R                   5      nU" SSSS5      nU R                  UR                  S5      S	5         " S
 SU R                   5      nU" SSSS5      nU R                  UR                  S5      [        U5      5        S H  nU R                  UR                  U5      UR                  U5      5        U R                  UR                  U5      UR                  U5      5        U R                  UR                  U5      S5        M     g ! , (       d  f       GN%= f)Nr   r]   rY   r_   r4  r}  r~  c                       \ rS rSrS rSrg)TestTime.test_format.<locals>.Air  c                     gr  r#   r6   s    r.   r  'TestTime.test_format.<locals>.A.__str__s  r  r1   r#   Nr  r#   r1   r.   r  r}  r  r  r1   r  c                       \ rS rSrS rSrg)TestTime.test_format.<locals>.Biy  c                     gr  r#   r  s     r.   rq  (TestTime.test_format.<locals>.B.strftimez  r  r1   r#   Nr  r#   r1   r.   r  r  y  r  r1   r  )z%H %M %Sr  )r-   r   r  r  r  r  r  s          r.   r  TestTime.test_formatj  s?   MM!Q1%b)3q62##I/EFLL G	 	 aAqMb)3/	 	 aAqMb)3q62CQ\\#.

3@Q\\#.

3@Q\\#.4	# GFs   F
Fc           
         U R                  [        U R                  SSSS5      5      S5        U R                  [        U R                  SSSS5      5      S5        U R                  [        U R                  S	SSS
5      5      S5        U R                  [        U R                  SSSS	5      5      S5        U R                  [        U R                  SSS	S	5      5      S5        g )Nr   r]   rY   r_   z01:02:03.000004r!   rC  z10:02:03.004000r   r  z00:02:03.400000r   z12:02:03r  r  z23:15:00)r,   r	  rw  r6   s    r.   r  TestTime.test_str  s    T]]1aA679JKT]]2q!T:;=NOT]]1aF;<>OPT]]2q!Q78*ET]]2r1a89:Fr1   c           
         SU R                   R                  -   nU R                  [        U R                  SSSS5      5      SU-  5        U R                  [        U R                  SSSS5      5      S	U-  5        U R                  [        U R                  S
SSS5      5      SU-  5        U R                  [        U R                  SSSS
5      5      SU-  5        U R                  [        U R                  SSS
S
5      5      SU-  5        g )Nr  r   r]   rY   r_   z%s(1, 2, 3, 4)r!   rC  z%s(10, 2, 3, 4000)r   r  z%s(0, 2, 3, 400000)r   z%s(12, 2, 3)r  r  z
%s(23, 15)r  r  s     r.   r  TestTime.test_repr  s    T]]333dmmAq!Q78)D0	2dmmB1d;<-4	6dmmAq!V<=.5	7dmmB1a89'$.	0dmmBAq9:%,	.r1   c                    U R                  U R                  R                  U R                  5        U R                  U R                  R                  U R                  5        U R                  U R                  R                  [
        5        U R                  U R                  R                  U R                  R                  :  5        g r3   )r   rw  r  r   r  r   r   r6   s    r.   r  TestTime.test_resolution_info  s}    dmm//?dmm//?dmm66	B))DMM,=,==>r1   c                 
   SnU R                   " U6 n[         H9  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        M;     U R	                  UR                  5       UR                  S5      5        g )Nrv  r  r  r  r]   r  r  s           r.   r  TestTime.test_pickling  sr     }}d#)7%GMM$.Eooe,GT+ *8 	*D,>,>q,ABr1   c                     Sn[        U6 n[         HX  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        U R                  [        U[         5      5        MZ     g )Nr  )rO  r   r   r   r,   r   rs   r  s           r.   test_pickling_subclass_time$TestTime.test_pickling_subclass_time  s]     T")7%GMM$.Eooe,GT+OOJw=>	 *8r1   c                     / SQn[        U5       HT  u  nu  p4U R                  US9   U R                  " U6 n[         H  nU" USS9nU R	                  Xu5        M     S S S 5        MV     g ! , (       d  f       Mh  = f)N))s,   cdatetime
time
(S'\x14;\x10\x00\x10\x00'
tR.r  )s   cdatetime
time
(U;  tR.r  )s   cdatetime
time
U;  R.r  )s,   cdatetime
time
(S'\x14;\x19\x00\x10\x00'
tR.rv  r  rx  r  )s   cdatetime
time
(U;  tR.r  )s   cdatetime
time
U;  R.r  )r  r  r  )r  rk  rw  r  r,   )r-   r^  r  r  r   r`  r   r   s           r.   r  TestTime.test_compat_unpickle  so    
  )/OA|"==$/)E#D8<G$$W7 * #"  0""s   5A))
A8	c                 :   U R                   nU R                  U" S5      5        U R                  U" SS5      5        U R                  U" SSS5      5        U R                  U" SSSS5      5        U R                  U" S5      5        U R                  U" 5       5        g )Nr   r   )rw  r   )r-   r  s     r.   r;  TestTime.test_bool  su    mmAAq	"Aq!%Aq!Q(Ar1   c           	         U R                   n/ SQnU" U6 nU R                  UR                  5       U5        U R                  [        R                  " U5      U5        Sn[	        U5       Ha  u  nu  pgUS S  nXxU'   U" U6 n	U R                  UR                  " S0 Xg0D6U	5        U R                  [        R                  " U40 Xg0D6U	5        Mc     U" S5      nU R                  [        UR                  SS9  U R                  [        UR                  SS9  U R                  [        UR                  SS	9  U R                  [        UR                  S
S9  U R                  [        [        R                  USS9  U R                  [        [        R                  USS9  U R                  [        [        R                  USS	9  U R                  [        [        R                  US
S9  g )NrZ  )r  r  r  r  r   rh  r  r@  rt  r  rt  r  rB  r#   r  r  s
             r.   r  TestTime.test_replace  s   mmDz.d+T2' "+7!3A~1gGAJG}HT\\;TN;XFT\\$A4.A8L "4 1v*dll<*dll2>*dll3?*dllH*dllDrB*dllDD*dllDE*dllDgNr1   c           	      ~  ^   " U 4S jST R                   5      nU" SS5      nU" SSSS9nSUR                  SS	9S
4SUR                  SS	9S4S[        R                  " USS	9S
4S[        R                  " USS	9S4/nU H  u  pVnT R                  XWS9   T R	                  [        U5      U5        T R                  UR                  S5        T R                  UR                  S5        T R                  UR                  S5        T R                  UR                  U5        S S S 5        M     g ! , (       d  f       M  = f)Nc                   "   > \ rS rSrU 4S jrSrg)4TestTime.test_subclass_replace.<locals>.TimeSubclassi  c                 V   > TR                   R                  " U /UQ70 UD6nSUl        U$ r  r  r  s       r.   r   <TestTime.test_subclass_replace.<locals>.TimeSubclass.__new__  r  r1   r#   Nr  r6   s   r.   TimeSubclassr    r  r1   r  r   rh  r   r  r  r!   r  r   r  r\   )rw  rH  rY  rk  r4   r   r,   r  rt  r!  r  )r-   r  r`  ctime2r@  rH   rM  r  s   `       r.   r  TestTime.test_subclass_replace  s   	4== 	 R$b"1- U]]]3Q7V^^^4a8T\\%b91=T\\&r:A>	

  *ODtd.d3i6  2.  R0  A.  40 /.  *..s   BD--
D<	c                   ^   " U 4S jST R                   5      nSnT R                   " U6 nU" U0 SS0D6nT R                  UR                  U5        T R                  UR                  S5        T R                  UR                  S5        T R                  UR                  5       UR                  5       5        T R                  UR                  S5      UR                  UR                  -   S-
  5        g )Nc                   ,   > \ rS rSrSrU 4S jrS rSrg)&TestTime.test_subclass_time.<locals>.Ci	  r   c                    > UR                  5       nUR                  S5      nTR                  R                  " U /UQ70 UD6nXEl        U$ r
  r  r  s         r.   r   .TestTime.test_subclass_time.<locals>.C.__new__  r  r1   c                 8    XR                   -   U R                  -   $ r3   r  rs  r  s     r.   r  .TestTime.test_subclass_time.<locals>.C.newmeth      yy(4;;66r1   r#   Nr  r6   s   r.   r  r  	      I7r1   r  )r_   rZ   ra   r!  r\   r   r^   )	rw  r,   rM   r  r!  r[  r  r  rs  r  s   `    r.   test_subclass_timeTestTime.test_subclass_time  s    	7 	7 mmT"&'1&*+A&#--/:R#((SZZ*?!*CDr1   c           	      0   SnSS[        S5      S4 H)  nU R                  [        U R                  X!SS  -   5        M+     U R	                  [        S5         U R                  [        S/[        U5      -  5      S5        S S S 5        g ! , (       d  f       g = f)	Nz2:59.0r  9rh     ÿr   r;  r   )chrr   r   rw  r  r<  r  )r-   r  	hour_bytes      r.   r?  !TestTime.test_backdoor_resistance!  s}    c3r7F2Ii)2!"X)=? 3 ##I/GHMM%c$i0%8 IHHs   )B
Br#   N)rN   rh   ri   rj   r   rw  r  r  r  rd  r  r  r]  r  ru  rt  r  r  r  r  r  r  r  r  r;  r  r  r  r?  rk   r#   r1   r.   rQ  rQ  n  s    H+. )?VJ,$.2Ch,<9
 F656G.?C?8,O:12E49r1   rQ  c                   2    \ rS rSrS rS rS rS rS rSr	g)	
TZInfoBasei.  c                    U R                   n " S S[        5      nU" SSSU" 5       S9nU[        L =(       a    S=(       d    SnU R                  UR	                  5       U5        [        U[        L =(       a    S	=(       d    S
S9nU R                  UR                  5       U5        U R                  UR                  5       U5        g )Nc                   $    \ rS rSrS rS r\rSrg)7TZInfoBase.test_argument_passing.<locals>.introspectivei3  c                 *    U=(       a    S=(       d    S$ )Nrealnoner#   r   s     r.   r   >TZInfoBase.test_argument_passing.<locals>.introspective.tzname4  s    BM6,CV%Cr1   c                 8    [        U=(       a    S=(       d    SS9$ )Nr   rq   r   r   s     r.   r   ATZInfoBase.test_argument_passing.<locals>.introspective.utcoffset5  s     29"+;<<r1   r#   N)rN   rh   ri   rj   r   r   r   rk   r#   r1   r.   introspectiver  3  s    C=Cr1   r  r   r]   rY   r   r  r  r  r   rq   )rw  r   r   r,   r   r   r   r   )r-   r  r  objr`  s        r.   test_argument_passing TZInfoBase.test_argument_passing0  s    mm	F 	 !Q-/2$;)63Vx0cTk&9c&?RA(3H-r1   c           	         U R                   nU R                  [        USSSSS9   " S S[        5      nU R                  [        USSSUS9   " S S[        5      nU" 5       nU" SSSUS9nU R                  UR                  U5        g )Nr   r   r   c                        \ rS rSrS rS rSrg)3TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTryiF  c                     g r3   r#   r6   s    r.   r{   <TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTry.__init__G      r1   c                     g r3   r#   r   s     r.   r   =TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTry.utcoffsetH      Tr1   r#   NrN   rh   ri   rj   r{   r   rk   r#   r1   r.   NiceTryr  F      $)r1   r  c                        \ rS rSrS rS rSrg)5TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTryiK  c                     g r3   r#   r6   s    r.   r{   >TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTry.__init__L  r  r1   c                     g r3   r#   r   s     r.   r   ?TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTry.utcoffsetM  r  r1   r#   Nr  r#   r1   r.   	BetterTryr  K  r  r1   r  )rw  r   r   objectr   r4   )r-   r  r  r  r  r   s         r.   test_bad_tzinfo_classes"TZInfoBase.test_bad_tzinfo_classesB  s    mm)S!Q"=	*f 	* 	)S!Q'B	* 	* K1a"ahh"r1   c                     " S S[         5      nU R                  nS H  u  p4U[        L a  U" SSSU" U5      S9nOU[        L a  U" SSSSSSU" U5      S9nU(       az  [	        U5      n[        US	5      u  pxS
US:  =(       a    S=(       d    SXx4-  n	[        W[        5      (       a  UR                  5       nU R                  [        U5      SU	-   5        M  U R                  [        [        W5        M     g )Nc                        \ rS rSrS rS rSrg)6TZInfoBase.test_utc_offset_out_of_bounds.<locals>.EdgyiS  c                      [        US9U l        g rp   r   ry   )r-   ry   s     r.   r{   ?TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgy.__init__T  s    '7r1   c                     U R                   $ r3   ry   r   s     r.   r   @TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgy.utcoffsetV  s    {{"r1   r  Nr  r#   r1   r.   Edgyr  S  s    8#r1   r  ))`F)aT)  T)r  Fr   r]   rY   r   ra   r  z%c%02d:%02dr   r  r  z01:02:03)r   rw  r   r   r  r~  rs   timetzr,   r	  r   r$  )
r-   r  r  ry   legitr   aofsr7  r  tags
             r.   test_utc_offset_out_of_bounds(TZInfoBase.test_utc_offset_out_of_boundsR  s    	#6 	# mm-MF d{1aV51aAqf> 6{dB'#vz'9c'@S!&GGa**
A  Qc)9:!!*c15%-r1   c           	         U R                   n " S S[        5      nU" SSS5      U" SSSS S9U" SSSU" 5       S94 H`  nU R                  UR                  5       5        U R                  UR	                  5       5        U R                  UR                  5       5        Mb      " S S[        5      nU" SSSU" 5       S9nU R                  UR                  5       [        SS95        U R                  UR	                  5       [        S	S95        U R                  UR                  5       S
5         " S S[        5      nU" SSSU" 5       S9nU R                  [        UR                  5        U R                  [        UR                  5        U R                  [        UR
                  5         " S S[        5      nU" SSSU" 5       S9nU R                  [        UR                  5        U R                  [        UR                  5         " S S[        5      nU" SSSU" 5       S9nU R                  UR                  5       [        SS95        U R                  UR	                  5       [        SS95        g )Nc                   &    \ rS rSrS rS rS rSrg)*TZInfoBase.test_tzinfo_classes.<locals>.C1ip  c                     g r3   r#   r   s     r.   r   4TZInfoBase.test_tzinfo_classes.<locals>.C1.utcoffsetq  r  r1   c                     g r3   r#   r   s     r.   r   .TZInfoBase.test_tzinfo_classes.<locals>.C1.dstr  r  r1   c                     g r3   r#   r   s     r.   r   1TZInfoBase.test_tzinfo_classes.<locals>.C1.tznames  s    r1   r#   NrN   rh   ri   rj   r   r   r   rk   r#   r1   r.   C1r  p  s    0*-r1   r  r   r   c                   &    \ rS rSrS rS rS rSrg)*TZInfoBase.test_tzinfo_classes.<locals>.C3i{  c                     [        SS9$ )Nr  rq   r   r   s     r.   r   4TZInfoBase.test_tzinfo_classes.<locals>.C3.utcoffset|  s    Ie,D%Dr1   c                     [        SS9$ )Nr  rq   r   r   s     r.   r   .TZInfoBase.test_tzinfo_classes.<locals>.C3.dst}  s    i&==r1   c                     gNanamer#   r   s     r.   r   1TZInfoBase.test_tzinfo_classes.<locals>.C3.tzname~  s    r1   r#   Nr  r#   r1   r.   C3r  {  s    D=0r1   r  r  rq   r  r   c                   &    \ rS rSrS rS rS rSrg)*TZInfoBase.test_tzinfo_classes.<locals>.C4i  c                     gr  r#   r   s     r.   r   4TZInfoBase.test_tzinfo_classes.<locals>.C4.utcoffset  s    Gr1   c                     gr  r#   r   s     r.   r   .TZInfoBase.test_tzinfo_classes.<locals>.C4.dst  r  r1   c                     gr  r#   r   s     r.   r   1TZInfoBase.test_tzinfo_classes.<locals>.C4.tzname  s    r1   r#   Nr  r#   r1   r.   C4r    s    3'*r1   r  c                        \ rS rSrS rS rSrg)*TZInfoBase.test_tzinfo_classes.<locals>.C6i  c                     [        SS9$ )Nir   r   r   s     r.   r   4TZInfoBase.test_tzinfo_classes.<locals>.C6.utcoffset  s    IC,@%@r1   c                     [        SS9$ )Nrh  r   r   r   s     r.   r   .TZInfoBase.test_tzinfo_classes.<locals>.C6.dst  s    ib&99r1   r#   Nr  r#   r1   r.   C6r    s    @9r1   r  c                        \ rS rSrS rS rSrg)*TZInfoBase.test_tzinfo_classes.<locals>.C7i  c                     [        SS9$ )Nr  r  r   r   s     r.   r   4TZInfoBase.test_tzinfo_classes.<locals>.C7.utcoffset  s    I2,F%Fr1   c                     [        SS9$ )Nr  r   r   s     r.   r   .TZInfoBase.test_tzinfo_classes.<locals>.C7.dst  s    iS&AAr1   r#   Nr  r#   r1   r.   C7r    s    FAr1   r  r  r  r  )rw  r   r;  r   r   r   r,   r   r   r   r$  )r-   r  r  r   r  r  r  r  s           r.   test_tzinfo_classesTZInfoBase.test_tzinfo_classesn  s   mm	. 	. aA,aAd+aAbd+-A akkm,aeeg&ahhj)-	1 	1 1a%	%(@A)D"9:W-	+ 	+ 1a%)Q[[1)QUU+)QXX.	: 	: 1a%*akk2*aee,	B 	B 1a%	r(BC)"=>r1   c                    U R                   n " S S[        5      nU" SSSU" 5       S9nUR                  SS9nUR                  SS9nUR                  S	S9nXEU4 Hk  nXEU4 H`  n[        [        [
        [        [        [        4 H9  n	U	" Xx5      n
U	" UR                  UR                  5      nU R                  X5        M;     Mb     Mm     U[        La  UR                  SU" 5       S
9nUR                  SU" 5       S
9nUR                  S	U" 5       S
9nXEU4 HT  nXEU4 HI  nXx:  Xx:  -
  n
XtL d  XuL a  XL d  XL a  SnOXxs=L a  UL a  O  OSnO	XvL a  SnOSnU R                  X5        MK     MV     g g )Nc                       \ rS rSrS rSrg)=TZInfoBase.test_aware_compare.<locals>.OperandDependentOffseti  c                 Z    UR                   S:  a  [        UR                   S9$ [        SS9$ Nr!   rq   r  rt  r   r\  s     r.   r   GTZInfoBase.test_aware_compare.<locals>.OperandDependentOffset.utcoffset  )    88b=$QXX66 %R00r1   r#   Nr   r#   r1   r.   OperandDependentOffsetr        1r1   r%  r  r  r!   r   rY   r  r   rt  r   r   r@  r   )rw  r   rH  r   r   r   r   r   r	   rt  r,   r   )r-   r  r%  r  d0r]  r  r  r  opr  r`  s               r.   test_aware_compareTZInfoBase.test_aware_compare  sx   mm	1V 	1 1a$:$<=\\\#\\\#\\\$ARZb"b"b0BQ(C!!((AHH5H$$S3 1    d?Q/E/GHBQ/E/GHBR0F0HIBRZA5QU+C17AG#$2#$#% $%$$S3 $  	 r1   r#   N)
rN   rh   ri   rj   r  r  r  r  r*  rk   r#   r1   r.   r  r  .  s    .$# 68.?`-4r1   r  c                   ~    \ rS rSr\rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rSrg)
TestTimeTZi  c                 :   U R                  5       nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  5        g r  )rw  r,   r  rt  rs  r  r;  r   r\  s     r.   
test_emptyTestTimeTZ.test_empty  so    MMO#1%1%*!((#r1   c                 ~  ^^ [        SSS5      n[        SSS5      n[        SSS	5      n[        S
SUS9n[        SSUS9n[        SSUS9n[        SS9m[        SUS9mU R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        U R	                  TR                  5        U R                  TR                  U5        U R                  UR                  5       [        SS95        U R                  UR                  5       [        SS95        U R                  UR                  5       [        SS95        U R	                  TR                  5       5        U R                  [        UR
                  S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R	                  TR                  5       5        U R                  [        UR                  S5        U R                  UR                  5       [        SS95        U R                  UR                  5       [        SS95        U R                  UR                  5       [        S	S95        U R	                  TR                  5       5        U R                  [        UR                  S5        U R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        U R                  XE5        U R                  XF5        U R                  XV5        U R                  TT5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        U5      S5        U R                  [        U5      S5        U R                  [        U5      S5        U R                  [        T5      S5        U R                  [        T5      S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  TR                  5       S5        U R                  TR                  5       S5        SnU R                  [        U5      US-   5        U R                  [        U5      US-   5        U R                  [        U5      US-   5        U R                  [        T5      US-   5        U R                  [        T5      US -   5        U R                  UR!                  S!5      S"5        U R                  UR!                  S#5      S$5        U R                  UR!                  S#5      S%5        [        S&S'5      n[        S(S)US9nU R                  UR!                  S*5      S+5         " S, S-[        5      n	[        S.S	S/U	" 5       S9n
U R                  U
R!                  S05      S15        U R                  [        U
R                   S25        S3U	l        U R                  U
R!                  S25      S35        g )4Nr   r   r   r   r   r[   r  METrY   r\   r  r   r   rk  (   rB  rO  rq   zno argsc                     > T T:  $ r3   r#   rJ  t5s   r.   r  'TestTimeTZ.test_zones.<locals>.<lambda>  r  r1   c                     > TT :  $ r3   r#   r5  s   r.   r  r7    r  r1   z07:47:00-05:00z12:47:00+00:00z13:47:00+01:00z00:00:00.000040z00: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 %:zz12:47:00 UTC +0000 +00:00z13: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                       \ rS rSrSrS rSrg)(TestTimeTZ.test_zones.<locals>.Badtznamei%  r   c                     U R                   $ r3   r  r   s     r.   r   /TestTimeTZ.test_zones.<locals>.Badtzname.tzname'  s
    .r1   r#   N)rN   rh   ri   rj   r   r   rk   r#   r1   r.   	Badtznamer:  %  s
    B0r1   r=  r]   r_   z%H:%M:%Sz02:03:04r  rB  )rm   r   r,   r   r;  r   r   r   r   r   r   r  r#  r	  r[  r  rq  r   )r-   estr5   metr  r  rI  r  yuckr=  r   rJ  r6  s              @@r.   
test_zonesTestTimeTZ.test_zones  s2   $q)!UB'"eQ'1b%"b%"b%b!b-C(C(C("))$C(4)@A1)=>2)>?",,.))R\\9=e,e,e,"))+&)RYY	:9Q#789R#899Q#78"&&(#)RVVY7b48,b48,b48,   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 Aq-J/<)QZZ6  	D)84r1   c           
      |   U R                  SSSS[        SS5      S9nU R                  SSSS[        SS5      S9nU R                  [        U5      [        U5      5        U R                  S	S
SS[        SS5      S9nU R                  S	SSS[        SS5      S9nU R                  [        U5      [        U5      5        g )Nr   r   r]   rY   r  r4  r   i  r  r  ra   r  ir  i)rw  rm   r,   r  r  s      r.   test_hash_edge_casesTestTimeTZ.test_hash_edge_cases0  s    ]]1aAk$.C]D]]1aAk$.C]Db48,]]2r1c+eR2H]I]]2r1c+eR2H]Ib48,r1   c                    SnU R                   " U6 n[         H9  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        M;     U R	                  UR                  5       UR                  S5      5        [        SS5      nU R                  SSSUS9n[         H  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        U R                  UR                  [        5        U R	                  UR                  5       [        SS	95        U R	                  UR                  5       S5        M     U R	                  UR                  5       UR                  S5      5        g )
Nr  r]   r   r   rZ   ra   r\   r   rq   )rw  r   r   r   r,   r  r  r   r   r   r   r   r   	r-   r   r   r   r   r   r   r   tinfos	            r.   r  TestTimeTZ.test_pickling:  s=    }}d#)7%GMM$.Eooe,GT+ *8 	*D,>,>q,AB %T84}}Q1U}3)7%GMM$.Eooe,GT+!!'..2FGW..0)D2IJW^^-x8 *8 	*D,>,>q,ABr1   c           	         / SQn[        SS5      nU R                  SSSSUS9nU H  n[         H  nU" US	S
9nU R                  Xc[	        U5      5        U R                  UR                  [         5        U R                  UR                  5       [        SS95        U R                  UR                  5       S5        M     M     g )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
(JJ0 K tRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.s   cdatetime
time
U@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
JJ0 K RU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubR.r   r   rZ   ra   r\   r  r   r  r  rq   )
r   rw  r  r,   r  r   r   r   r   r   )r-   r^  rH  r`  r  r   r   s          r.   r  TestTimeTZ.test_compat_unpickleP  s    
. %T84==Aq&=?D%x8  DJ?%%gnn6JK  !2!2!4i6MN  !18< & r1   c                 .   U R                   nU" S[        SS5      S9nU R                  U5        U" S[        SS5      S9nU R                  U5        U" S[        SS5      S9nU R                  U5        U" SS[        S	S5      S9nU R                  U5        g )
Nr   r   r4  r   rZ   i,  r  r  r  )rw  rm   r   )r-   r  r   s      r.   test_more_boolTestTimeTZ.test_more_boolr  s    mm+dB/0+dB/0+c2./B{:r:;r1   c           	         U R                   n[        SS5      n[        [        SS9S5      nSSSS	U/nU" U6 nU R                  UR	                  5       U5        U R                  [
        R                  " U5      U5        S
SSSSU44n[        U5       Ha  u  nu  pUS S  n
XU'   U" U
6 nU R                  UR                  " S0 X0D6U5        U R                  [
        R                  " U40 X0D6U5        Mc     U R                  UR                  5       S5        UR	                  S S9nU R                  UR                  5        U R                  UR                  5       5        [
        R                  " US S9nU R                  UR                  5        U R                  UR                  5       5        UR	                  US9nU R                  X^5        U R                  UR                  UR                  5        [
        R                  " XS9nU R                  X_5        U R                  UR                  UR                  5        U" S5      nU R                  [        UR                  SS9  U R                  [        UR                  SS9  U R                  [        UR                  SS9  U R                  [        UR                  SS9  U R                  [        [
        R                  USS9  U R                  [        [
        R                  USS9  U R                  [        [
        R                  USS9  U R                  [        [
        R                  USS9  g )Nr  +1008rq   -200r   r]   rY   r_   r  r  r  r  r   r   rh  r  r@  r  rt  r  rB  r#   rw  rm   r   r,   rH  rY  r  r   r;  r   r4   r   r$  r-   r  z100zm200r   r  r  r  rH   r  r  r`  base2base22base3base32s                   r.   r  TestTimeTZ.test_replace  s   mm3'Id3V<1aD!Dz.d+T2  %e$	&
 "+7!3A~1gGAJG}HT\\;TN;XFT\\$A4.A8L "4 	/D)%,,'%,,.)d40&--(&--/* T*%dkk5<<0f2&dkk6==1 1v*dll<*dll2>*dll3?*dllH*dllDrB*dllDD*dllDE*dllDgNr1   c                    U R                  SSS5      nU R                  SSS5      nU R                  X5        UR                  S S9nU R                  X5        UR                  [        S S5      S9nU R                  X5        UR                  [        SS5      S9nU R	                  X5         " S S[
        5      nU" 5       nUR                  US9nUR                  US9nU R                  UR                  5       [        S	S
95        U R                  UR                  5       [        SS
95        U R                  X5        UR                  U" 5       S9nU R                  X:  5        g )Nr   r]   rY   r   r4  r   c                        \ rS rSrS rS rSrg)-TestTimeTZ.test_mixed_compare.<locals>.Variesi  c                      [        SS9U l        g Nr6  rq   r  r6   s    r.   r{   6TestTimeTZ.test_mixed_compare.<locals>.Varies.__init__      '3r1   c                 R    U =R                   [        SS9-  sl         U R                   $ Nr   rq   ry   r   r\  s     r.   r   7TestTimeTZ.test_mixed_compare.<locals>.Varies.utcoffset      y33{{"r1   r  Nr  r#   r1   r.   Variesr^        4#r1   rh  r  rq   rh  )	rw  r,   rH  rm   r#  r   r   r   r   r-   r  r  rh  vs        r.   r  TestTimeTZ.test_mixed_compare  s7   ]]1a#]]1a# ZZtZ$ ZZ{44Z5 ZZ{1b1Z2B#	#V 	# HZZqZ!ZZqZ!2)>?2)>?  ZZvxZ( r1   c           
         SS/nSnSnSnSnU[        [        R                  " X#XE5      5      -  nS [        R                  [        [        SS95      [        [        S	S
S95      /nU Hr  nU Hi  nU R                  " USU06n	U	R                  5       n
U R                  U
S9   U R                  R                  U
5      nU R                  X5        S S S 5        Mk     Mt     g ! , (       d  f       M  = f)Nr  )r  r  r  rc  )r  r   rv  )rZ   rh  )r_   r  )r   i r   r]   r   ra   r  r  r   r  )r  	itertoolsproductr   r5   r   rw  r[  rk  r$  r,   )r-   time_exampleshhmmssusecr  ttupr  r   r  t_rts               r.   rK  TestTimeTZ.test_fromisoformat  s     

 "i//ABBIA./IAr:;= "DMM444{{}\\t\,==66t<D$$Q- -,	  "
 -,s    -C
C-c                 ,   U R                  SSSS5      n[        SS9[        SS9[        SS	S
9[        SSSS9[        SSSSS9/nX" Vs/ s H  nSU-  PM
     sn-  nS [        R                  [        [        SS95      /nXB Vs/ s H  n[        U5      PM     sn-  nU HU  nUR	                  US9nUR                  5       nU R                  US9   U R                   R                  U5      nS S S 5        MW     g s  snf s  snf ! , (       d  f       Ms  = f)Nr   rh  r  r  rZ   r   r]   ra   r  r  r   rb  r_   r  r  rd  r@  r   r   r  r  )	r-   	base_timer  r  r  r  r   r  rv  s	            r.   r	  &TestTimeTZ.test_fromisoformat_timezone  s   MM"b"f5	 A	 2Ar*BB7Aq!&I	
	 		2	"b2g	22	IA./1 	959RHRL955C!!!-A;;=D4(}}2248 )(	  3
 6 )(s   	C:C?D
D	c                    SS/nS [         R                  [        [        SS95      [        [        SS95      [        [        SSS95      /n/ S	Qn[        U5       H  u  pEU H  nU H  nUS
:X  a  SUS   S-  -  nUSS U4-   nU R                  " USSU-    SU06n	U	R                  US9n
U R                  U
S9   U R                  R                  U
5      nU R                  X5        S S S 5        M     M     M     g ! , (       d  f       M  = f)N)r  r  r  r  )r  r  r  r   r?  r   r]   ra   r  r  r  r  r  r@  r   r   r   r  r  r  )r-   
time_basesr  r  r  r  r  t_tupler  r   r  rv  s               r.   r  'TestTimeTZ.test_fromisoformat_timespecs  s   


 IB/0IA./IAr:;=
5	  	*FB)G^++/72;$3F+G(")!B-3C2E"E1r6(;ISIA;;;3D40#}}::4@((1 10  *  + 10r  c                     / SQnU H@  u  p#U R                   " U6 nU R                   R                  U5      nU R                  XT5        MB     g )N))z
12:30:45.1)r   rh  r  rl  )z12:30:45.12)r   rh  r  i )z12:30:45.123)r   rh  r  ix )z12:30:45.1234)r   rh  r  i )z12:30:45.12345)r   rh  r  i: )z12:30:45.123456r   rh  r  r  )z12:30:45.1234567r  )z12:30:45.12345678r  )rw  r$  r,   )r-   strstime_str
time_compsr`  rf  s         r.   test_fromisoformat_fractions'TestTimeTZ.test_fromisoformat_fractions  sH    	
 %) H}}j1H]]00:FV.	 %)r1   c                    / SU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PS	U R                  SS5      4PS
U R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SS5      4PSU R                  SSS5      4PSU R                  SSS5      4PSU R                  SSSS5      4PSU R                  SSSS5      4PS U R                  SSSS!5      4PS"U R                  SSSS!5      4PS#U R                  SSSS$5      4PS%U R                  SSSS$5      4PS&U R                  SS[        R                  S'94PS(U R                  SS[        R                  S'94PS)U R                  SS[        R                  S'94PS*U R                  SS[        [        S+S,95      S'94PS-U R                  SS[        [        S+S.S/95      S'94PS0U R                  SS[        [        S1S,95      S'94PS2U R                  SS[        [        S1S,95      S'94PS3U R                  SS[        [        SSSS$S49* 5      S'94PnU HI  u  p#U R	                  US59   U R                   R                  U5      nU R                  XC5        S S S 5        MK     g ! , (       d  f       M]  = f)6N0000r   z00:00000000rk  z000000.0z
00:00:00.0z
000000.000z00:00:00.000z000000.000000z00:00:00.0000001200r   z12:00120000z12:00:00z120000.0z
12:00:00.0z
120000.000z12:00:00.000z120000.000000z12:00:00.0000002359r  r  z23:59235959z23:59:59z235959.9i z
23:59:59.9z
235959.999r  z23:59:59.999z235959.999999rc  z23:59:59.999999z	00:00:00Zr   z12:00:00+0000z12:00:00+00:00z00:00:00+05rZ   r   z00:00:00+05:30rh  r  z12:00:00-05:00r?  z12:00:00-0500z00:00:00,000-23:59:59.999999rd  rb  )rw  r   r5   r   rk  r$  r,   rd  s        r.    test_fromisoformat_time_examples+TestTimeTZ.test_fromisoformat_time_examples1  s   ,
T]]1a(),
dmmAq)*,
 t}}Q*+,
 q!,-	,

 q!,-,
 4==A./,
 4==A./,
 T]]1a01,
 dmmAq12,
 a 34,
 T]]2q)*,
 dmmB*+,
 t}}R+,,
 r1-.,
 r1-.,
  4==Q/0!,
" 4==Q/0#,
$ T]]2q12%,
& dmmB23',
( b! 45),
* T]]2r*++,
, dmmB+,-,
. t}}RR01/,
0 r2r231,
2 r2r6:;3,
4 4==RV<=5,
6 4==RV<=7,
8 T]]2r2v>?9,
: dmmBB?@;,
< b"b& AB=,
> $--1X\\-BC?,
@ dmmB(,,mGHA,
B t}}R8<<}HIC,
D ]]1a1C(D]EGE,
H ]]1aB1O(P]QSI,
L ]]2q)"2E)F]GIM,
P ]]2q)"2E)F]GIQ,
T ,]]1a)"bZ\kq2r1r(s]tvU,
\ $,I	244Y?  2 32 $,22s   -O
O	c                    / SQnU HT  nU R                  US9   U R                  [        5         U R                  R	                  U5        S S S 5        S S S 5        MV     g ! , (       d  f       N= f! , (       d  f       My  = f)N)r4  u   1200z12:z12:30:z	12:30:15.1z12:3z12:30:1z1a:30:45.334034z12:a0:45.334034z12:30:a5.334034z12:30:45.123456+24:30z12:30:45.123456-24:30u   12：30：4512:30:45.123456az12:30:45.123456789au   12:30:45․123456z	12:30:45az12:30:45.123ar  z12:30:45.123456-z12:30:45.123456+z12:30:45.123456+12:00:30az12:30:45.400 +02:30z12:30:45.400 z12:30:45. 400r3  r4  rp  s      r.   rs  #TestTimeTZ.test_fromisoformat_failse  s`    
:  Gg.&&z2MM//8 3 /.  22 /.r7  c                     SS [         R                  " S5      /nU H<  nU R                  [        5         U R                  R                  U5        S S S 5        M>     g ! , (       d  f       MP  = f)Ns   12:30:45z12:30:45rv  ry  s      r.   r|  -TestTimeTZ.test_fromisoformat_fails_typeerror  sP     $J(?@	!H""9-++H5 .- "--r~  c                      " S SU R                   5      nU" SSSS[        R                  S9nUR                  UR	                  5       5      nU R                  X#5        U R                  X15        g )Nc                       \ rS rSrSrg)<TestTimeTZ.test_fromisoformat_subclass.<locals>.TimeSubclassi  r#   Nr/  r#   r1   r.   r  r    rQ  r1   r  r   r  r  i r   )rw  r   r5   r$  r[  r,   r   )r-   r  tsctsc_rts       r.   rl  &TestTimeTZ.test_fromisoformat_subclass  s\    	4== 	 2r2vhllC++CMMO<%f3r1   c           	        ^   " U 4S jST R                   5      nSSSS[        SSS	5      4nT R                   " U6 nU" U0 S
S0D6nT R                  UR                  U5        T R                  UR                  S5        T R                  UR
                  S5        T R                  UR                  5       UR                  5       5        T R                  UR                  S5      UR                  UR                  -   S-
  5        g )Nc                   ,   > \ rS rSrSrU 4S jrS rSrg)*TestTimeTZ.test_subclass_timetz.<locals>.Ci  r   c                    > UR                  5       nUR                  S5      nTR                  R                  " U /UQ70 UD6nXEl        U$ r
  r  r  s         r.   r   2TestTimeTZ.test_subclass_timetz.<locals>.C.__new__  r  r1   c                 8    XR                   -   U R                  -   $ r3   r  r  s     r.   r  2TestTimeTZ.test_subclass_timetz.<locals>.C.newmeth  r  r1   r#   Nr  r6   s   r.   r  r    r  r1   r  r_   rZ   ra     r   r   r   r!  r\   r   r^   )
rw  rm   r,   rM   r  r!  r   r  r  rs  r  s   `    r.   test_subclass_timetzTestTimeTZ.test_subclass_timetz  s    	7 	7 !Q[ua88mmT"&'1&*+A&#--/:R#((SZZ*?!*CDr1   r#   N)rN   rh   ri   rj   r   rw  r/  rA  rD  r  r  rM  r  r  rK  r	  r  r  r  rs  r|  rl  r  rk   r#   r1   r.   r-  r-    se    H$T5l-C, =D /Ob!<.4'226/$23h!9F64Er1   r-  c                   &   \ rS rSr\rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS r\R2                  " S5      S 5       r\R2                  " S5      S 5       r\R2                  " S5      S 5       rS rS rS rSr g)TestDateTimeTZi  c           	         U R                  SSSSSSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S 5        g )Nr   r]   rY   r_   rZ   ra   r\   )
rw  r,   r  r  r%  r  rt  rs  r  r   r   s     r.   test_trivialTestDateTimeTZ.test_trivial  s    ]]1aAq!Q/!$1%#!$A&A&+D)r1   c                   ^^ U R                  SSS[        SS5      S9mU R                  [        SSSSSS	[        S
S5      S9mU R                  TT:  5        U R                  TT:g  5        U R                  TT:  5        U R	                  TT5        U R	                  TT5        U R                  SSSSS[        SS5      S9mU R                  SSSSS[        SS5      S9mU R	                  TT5        U R                  SSSSS[        SS5      S9mU R                  TT:  5        U R                  SSSSS[        SS5      S9mU R                  TT:  5        U R                  SSSSS[        SS5      SS9mU R                  TT:  5        U R                  SSSSS[        SS5      SS9mU R                  TT:  5        U R                   R
                  mU R                  TT5        U R	                  TT5        U R                  [        5         TT:    S S S 5         " S S[        5      nU R                  SSSU" 5       S9mU R                  TT5        U R	                  TT5        U R                  SSS5      mU R	                  TT5         " S S[        5      nU R                  SSSU" 5       S9mU R                  SSS[        SS5      S9mU R                  [        UU4S j5        g ! , (       d  f       N= f)Nr   r  r4  r   r   r  r  r  rc  r  r]   rY   rk     r   )r   rs  r8  c                       \ rS rSrS rSrg)4TestDateTimeTZ.test_even_more_compare.<locals>.Naivei  c                     g r3   r#   r   s     r.   r   >TestDateTimeTZ.test_even_more_compare.<locals>.Naive.utcoffset  r  r1   r#   Nr   r#   r1   r.   Naiver    s    0r1   r  rZ   ra   r\   c                       \ rS rSrS rSrg)4TestDateTimeTZ.test_even_more_compare.<locals>.Bogusi  c                     [        SS9$ )Nr  rq   r   r   s     r.   r   >TestDateTimeTZ.test_even_more_compare.<locals>.Bogus.utcoffset  s     ..r1   r#   Nr   r#   r1   r.   r  r    s    /r1   r  c                     > T T:H  $ r3   r#   )r  r  s   r.   r  7TestDateTimeTZ.test_even_more_compare.<locals>.<lambda>  s	    bBhr1   )rw  rm   r   r   r,   r  r#  r   r   r   r$  )r-   r  r  r  r  s      @@r.   test_even_more_compare%TestDateTimeTZ.test_even_more_compare  s   
 ]]1a;tR+@]A]]7BBB"-eR"8  : 	R b!R R R  ]]1b"b"[B5G]H]]1aAr+i2L]MR  ]]1b"b"[B5G]HR  ]]1b"b"[B5G]HR  ]]1b"b"[B5G"#  %R  ]]1b"b"[B5G'(  *R  ]]B#R y)G *	1F 	1]]1a57]3B#R  ]]1a#R 	/F 	/ ]]1a57]3]]1a;q"+=]>*&67+ *)s   
K%%
K3c           
      6   SnU R                   " U6 n[         H9  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        M;     U R	                  UR                  5       UR                  S5      5        [        SS5      nU R                   " U0 SU0D6nU R                  SSS[        SSS5      S	9n[         H  u  p4nUR                  X%5      nUR                  U5      nU R	                  X'5        U R                  UR                  [        5        U R	                  UR                  5       [        SS
95        U R	                  UR                  5       S5        M     U R	                  UR                  5       UR                  S5      5        g )Nr  r]   r   r   r   r   r   r4  r   rq   )rw  r   r   r   r,   r  r  r   rm   r   r   r   r   r   rG  s	            r.   r  TestDateTimeTZ.test_pickling
  s^   )}}d#)7%GMM$.Eooe,GT+ *8 	*D,>,>q,AB %T84}}d8x&78--1aAr10E-F)7%GMM$.Eooe,GT+!!'..2FGW..0)D2IJW^^-x8 *8 	*D,>,>q,ABr1   c           	      z   / SQnSn[        SS5      nU R                  " U0 SU0D6nU H  n[         H  nU" USS9nU R                  Xt5        U R	                  UR
                  [         5        U R                  UR                  5       [        SS95        U R                  UR                  5       S5        M     M     g )	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
(JJ0 K tRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.s   cdatetime
datetime
U
;@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
JJ0 K RU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubR.)r  r   r  rv  r  r   r  r   r   r   r  r  rq   )	r   rw  r  r,   r   r   r   r   r   )r-   r^  r   rH  r`  r  r   r   s           r.   r  #TestDateTimeTZ.test_compat_unpickle!  s    
2 /$T84==$<8U*;<D%x8  3%%gnn6JK  !2!2!4i6MN  !18< & r1   c                    U R                  SSS[        SS5      S9n[        U5        U R                  [        SSSSSS	[        S
S5      S9n[        U5        U R                  SSS[        SS5      S9nU R	                  [
        [        U5        g )Nr   r  r4  r   r   r  r  r  rc  r  rZ   r  )rw  rm   r  r   r   r$  r\  s     r.   test_extreme_hashes"TestDateTimeTZ.test_extreme_hashesF  s     MM!Q+dB*?M@QMM'2r2r2v!,UB!7  9Q MM!Q+eR*@MA*dA.r1   c           	         [        SS5      n[        SS5      n[        SS5      n[        SSS	S
SUS9n[        SSS	SSUS9n[        SSS	SSUS9nU R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        U R                  UR	                  5       [        SS95        U R                  UR	                  5       [        SS95        U R                  UR	                  5       [        SS95        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        U R                  XE5        U R                  XF5        U R                  XV5        U R                  [        U5      S5        U R                  [        U5      S5        U R                  [        U5      S5        SnU R                  [        U5      US-   5        U R                  [        U5      US-   5        U R                  [        U5      US-   5        g )Nr   r   r   r   r  r2  r  rY   rq  r\   r  r   r   rk  rq   z2002-03-19 07:47:00-05:00z2002-03-19 12:47:00+00:00z2002-03-19 13:47:00+01:00zdatetime.datetime(2002, 3, 19, z7, 47, tzinfo=est)z12, 47, tzinfo=utc)z13, 47, tzinfo=met))
rm   r   r,   r   r   r   r   r  r	  r  )r-   r>  r5   r?  r  r  rI  r  s           r.   rA  TestDateTimeTZ.test_zonesT  s5   $&!U#"e$dArAr#6dAr2r#6dAr2r#6C(C(C(4)@A1)=>2)>?e,e,e,b48,b48,b48,   R"=>R"=>R"=>-b1';#;<b1'<#<=b1'<#<=r1   c                     [        SS5      n[        SSS5      n[        SSSSUS	9n[        R                  " X#5      nU R                  U[        SSSSSSSUS	95        g 
Nr  r2  r  rY   r_   r  r  r  r   )rm   r   r   r   r(  r,   )r-   r?  r  r   r   s        r.   r  TestDateTimeTZ.test_combiner  sf    "e$q!"b!T#.a$XdAq"b!T/24 	5r1   c                 L   [        SS5      nU R                  SSSSSSSUS	9nU R                  UR                  5       [        SSS5      5        U R                  UR	                  5       [	        SSSS5      5        U R                  UR                  5       [	        SSSSUS	95        g r  )rm   rw  r,   r   r   r  )r-   r?  r   s      r.   r  TestDateTimeTZ.test_extractz  s    "e$]]4Ar2q$s]CDq!$45DRD$9:d2r1d3&GHr1   c                 ~  ^^^^ U R                   R                  5       m[        SS5      nTR                  5       R	                  US9nU R                   R                  TR                  5       U5      mU R                  TR                  U5        U R                  TR                  5       U5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        U4S j5        U R                  TT-
  [        S	5      5        U R                  TT-
  [        S	5      5        [        S
SSS9mTT-   mU R                  TR                  U5        TT-   nU R                  UR                  U5        U R                  TU5        TT-
  nU R                  UR                  U5        U R                  TU5        U R                  [        UU4S j5        U R                  TT-
  T5        [        [        R                  " SS5      S5      nTR	                  US9mU R                  TR                  U5        TT-
  nTR!                  5       TR!                  5       -
  T-
  nU R                  Xg5        U R                  S
S
S
[        SS5      S9nU R                  ["        SSSSSS[        SS5      S9n	X-
  n
U R                  XR                   R$                  U R                   R&                  -
  [        SS9-   5        [)        [*        S5      n[)        [*        S5      nUR	                  US9U	R	                  US9-
  mU R                  TU R                   R&                  U R                   R$                  -
  5        g )Niz	west 5:30r   c                     > T T-
  $ r3   r#   r   nowawares   r.   r  9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>  	    S8^r1   c                     > TT -
  $ r3   r#   r  s   r.   r  r    	    X^r1   c                     > T T-   $ r3   r#   r  s   r.   r  r    r  r1   c                     > TT -   $ r3   r#   r  s   r.   r  r    r  r1   c                     > T T -   $ r3   r#   )r  s   r.   r  r    s
    X-@r1   r   r   r   i.  )r  rr   r  c                     > T T-
  $ r3   r#   )rg  nowawarepluss   r.   r  r    s
    U\-Ar1   r  r  randomtimezoner  r  r  r  r  rc  r   i>  rq   r  r  )rw  r   rm   r   rH  r(  r   r4   r   r,   r  r   r   r   r   	randranger   r   r   r  r   r5  )r-   tz55	timeawarenowawareplus2r  tzrr  r`  r  r   maxdifftzatzbrg  r   r  r  s                @@@@r.   test_tz_aware_arithmetic'TestDateTimeTZ.test_tz_aware_arithmetic  s!   mm!4-HHJ&&d&3	==((Y?hoot,*I6 	)%;<)%;< 	)%;<)%;<)%@A 	sIaL1H,il; 2DA%'hoot,(m**D1}5 e#dkk4(4()%AB0%8 &**5$79IJ#++3+7l))3/%  ))+h.@.@.BBUJ' mmAq!Ke,DmEmmGRRR#.ue#<  >)--"3"3dmm6G6G"G"+F";#< 	= tS!tS!3'#++S+*AA 1 1DMM4E4E EFr1   c                    U R                   R                  nU" 5       n[        SS5      nU" U5      nU" US9nU R                  UR                  UR                  5        U R                  UR                  5       [        SS95        U R                  [        US5        U R                  [        USS9  U R                  [        XS9  U R                  [        XU5        [        SS	S5      n[        [        S
SS9SS5      [        [        S
SS9S5      4 H  n[        S5       H  n[        R                  " U5      n	U R                  U	R                  U5        U R                  [        5         [        R                  " 5       R!                  US9n
S S S 5        W
R#                  U5      n[%        X-
  5      [        SS9:  d  M    M     U R'                  S5        M     g ! , (       d  f       NT= f)Nr   42r  rq   r  r   rH  r   r5   r  r  r  weirdtzrY   rh  r  z0utcnow(), now(tz), or astimezone() may be broken)rw  r   rm   r4   r   r,   r   r   r   r   r   r  r   r"  r#  ra  rH  r  r  fail)r-   methr  off42anotheragainr5   r  r6  r   ra  now2s               r.   test_tzinfo_nowTestDateTimeTZ.test_tzinfo_now  s   }}  vB%u+gnnell3**,i.CD)T2.)T"5)T7)T%8
 !UA&#IB$CYPQR R!@)LOGqll7+cjj'2%%&89%__.66c6BF :((1sz?Yr%:: " 		LMO
 :9s   *#G
G)c                 B   SS K nU R                  R                  nUR                   " 5       nU" U5      n[        SS5      nU" X55      nU" X5S9nU R	                  UR
                  UR
                  5        U R                  UR                  5       [        SS95        U R                  [        X#S5        U R                  [        X#SS9  U R                  [        X#US9  U R                  [        X#XU5        U R                  [        U5        S	nU R                  [        5         [        R                  " U5      n	S S S 5        [        S
SS9n
[        U
SS5      nW	U
-   n[        R                  " X5      nU R                  XR                  S S95        g ! , (       d  f       N_= f)Nr   r   r  r  rq   r  r   r  r   i'   r  r   )r   rw  r  rm   r4   r   r,   r   r   r   r   r"  r#  r   r$  rH  )r-   r   r  r  r  r  r  r  r)  utcdatetimer   r   r`  r  s                 r.   test_tzinfo_fromtimestamp(TestDateTimeTZ.test_tzinfo_fromtimestamp  s\   }}**YY[BxB%r/R"gnnell3**,i.CD)Tr2)Tb9)TU;)Tu<)T* 	01"33I>K 2 C4	D!,*$$Y3;;d;#;< 21s    F
Fc                    U R                   R                  nU R                  [        5         U" 5       nS S S 5        [	        SS5      nU R                  [        X5        U R                  [        XS9  g ! , (       d  f       NE= f)Nr   r  r   )rw  ra  r"  r#  rm   r   r   )r-   r  r  r  s       r.   test_tzinfo_utcnow!TestDateTimeTZ.test_tzinfo_utcnow  sf    }}##016D 2 B%)T1)T8 21s   A33
Bc                    SS K nU R                  R                  nUR                   " 5       nU R                  [        5         U" U5      nS S S 5        [        SS5      n[        R                  " [        S9   [        R                  " S[        S9  U R                  [        X#U5        U R                  [        X#US9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r  r  ignorer   )r   rw  r$  r"  r#  rm   warningscatch_warningssimplefilterr   r   )r-   r   r  r  r  r  s         r.   test_tzinfo_utcfromtimestamp+TestDateTimeTZ.test_tzinfo_utcfromtimestamp  s    }}--YY[018D 2 B%$$.@A!!(5GHi59i%@ BA 21
 BAs   	C6AC
C
C$c                 z    " S S[         5      nU R                  nS GH$  u  p4U" SSSSSSSU" U5      S	9nUR                  5       nU R                  SUR                  5        U R                  SUR
                  5        U R                  SUR                  5        U R                  SUR                  5        U R                  SUR                  5        U R                  SUR                  5        U R                  S
UR                  5        U R                  SUR                  5        U R                  XFR                  5        GM'     U R                  [        U" SSSU" S5      S	9R                  5        U R                  U" SSSU" S5      S	9R                  5       R                  S5        U R                  U" SSSU" S5      S	9R                  5       R                  S5        U R                  [        U" SSSU" S5      S	9R                  5        U R                  [        U" SSSU" S5      S	9R                  5        g )Nc                        \ rS rSrS rS rSrg)1TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DSTi)  c                 L    [        U[        5      (       a	  [        US9nXl        g rp   rs   rt   r   dstvaluer-   r  s     r.   r{   :TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DST.__init__*      h,,(:H (r1   c                     U R                   $ r3   r  r   s     r.   r   5TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DST.dst.      }}$r1   r  NrN   rh   ri   rj   r{   r   rk   r#   r1   r.   DSTr  )  s    )%r1   r  ))r   )r  r   )r   r   )Nr@  r   r!   rv  rh  r3  r   r   r  r  r  r  r  )r   rw  rx  r,   r  r  r  r  r  r  r  r  r  r   r   r$  )r-   r  r  r  flagr  r   s          r.   test_tzinfo_timetuple$TestDateTimeTZ.test_tzinfo_timetuple&  s   	%& 	% mmCNHAq!RRCMBAAQ		*Q)Q		*R+R*R*Q		*Q		*T::. D 	)SAqS%B%L%LM 	Qq3t95??AJJANQq3u:6@@BKKQO 	*c!AaD	&B&L&LM*c!AaE
&C&M&MNr1   c                 "	  ^  " S S[         5      mU R                  nU R                  [        U" SSST" S5      S9R                  5         " U4S jST5      nS GH  nU" SS	S
SSSSU" SU5      S9nUR                  5       nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  SUR                  5        U R                  SUR                  5        U R                  UR                  UR                   5        U R                  UR#                  5       UR$                  5        U R                  UR'                  5       [)        SSS5      R'                  5       -
  S-   UR*                  5        U R                  SUR,                  5        GM     U" SS	S
SSSS5      nUR                  5       nU R                  US S UR/                  5       S S 5        U R                  SUR,                  5         " S ST5      nU" SS	S
SSSSU" 5       S9nUR                  5       nU R                  US S UR/                  5       S S 5        U R                  SUR,                  5         " S ST5      nU" SS	S
SSSSU" 5       S9nU R                  [0        UR
                  5        U" SSSSSSS5      n[2        R4                  [2        R6                  [2        R8                  4 Hc  nUR;                  US9n	U R                  U	R                  5       S S U	R=                  [2        R6                  5      R/                  5       S S 5        Me     U" [>        SSSSSU" S5      S9n
U R                  [@        U
R
                  5        U" [B        SSS S!SS"U" S#5      S9nU R                  [@        UR
                  5        UR4                  R;                  [3        [D        5      S9n
U R                  [@        U
R
                  5        UR8                  R;                  [3        [D        * 5      S9nU R                  [@        UR
                  5        g )$Nc                   $    \ rS rSrSS jrS rSrg)-TestDateTimeTZ.test_utctimetuple.<locals>.DSTiK  c                 L    [        U[        5      (       a	  [        US9nXl        g rp   r  r   s     r.   r{   6TestDateTimeTZ.test_utctimetuple.<locals>.DST.__init__L  r  r1   c                     U R                   $ r3   r  r   s     r.   r   1TestDateTimeTZ.test_utctimetuple.<locals>.DST.dstP  r  r1   r  N)r   r  r#   r1   r.   r  r  K  s    )%r1   r  r   r   r   c                   ,   > \ rS rSrSU 4S jjrS rSrg).TestDateTimeTZ.test_utctimetuple.<locals>.UOFSiX  Nc                 D   > TR                  X5        [        US9U l        g rp   )r{   r   uofs)r-   r  dofsr  s      r.   r{   7TestDateTimeTZ.test_utctimetuple.<locals>.UOFS.__init__Y  s    T(%d3	r1   c                     U R                   $ r3   r  r   s     r.   r   8TestDateTimeTZ.test_utctimetuple.<locals>.UOFS.utcoffset\  s    yy r1   r  r3   r  )r  s   r.   UOFSr  X  s    4!r1   r  )r	  r  r   Nr]   rY   r!   rv  rh  r3  ir   rk  r@  c                       \ rS rSrS rSrg).TestDateTimeTZ.test_utctimetuple.<locals>.NOFSiu  c                     g r3   r#   r   s     r.   r   8TestDateTimeTZ.test_utctimetuple.<locals>.NOFS.utcoffsetv  s    r1   r#   Nr   r#   r1   r.   NOFSr  u  s    r1   r"  c                       \ rS rSrS rSrg).TestDateTimeTZ.test_utctimetuple.<locals>.BOFSi}  c                     g)Nr   r#   r   s     r.   r   8TestDateTimeTZ.test_utctimetuple.<locals>.BOFS.utcoffset~  s    r1   r#   Nr   r#   r1   r.   BOFSr$  }  s    r1   r'  r  r  r  r  i+ r  r  r   r  r  r  rc  r  )#r   rw  r   r   r   utctimetupler,   r  r  r  r  r%  r  r  r  rs  r  r1  r  r  r   r  r  rx  r   r   r  r5   r   rH  r  r   r!  r   rq  )r-   r  r  r  r  r   r"  r'  r   dtzr$  huger  s               @r.   test_utctimetuple TestDateTimeTZ.test_utctimetupleJ  s   	%& 	% mm-aAc!f5??	A	!3 	! )HAq!RRDh4GHA AQVVQYY/QWWahh/QUUAII.R+R*QXXqxx0QYY[!))4Q[[]T!Q]-D-D-FFJYY( Q

+ )" 1aRR(NN3Bs!34AJJ'	3 	 1aRR7NN3Bs!34AJJ'	3 	 1aRR7)Q^^4 b"b"b&1<<x||<B))2)&CS--/4 ^^HLL9CCEcrJL = 7Aq!Q4:>-):):;7BBBtE{K-):):;wwhv&67-):):;wwhw&78-):):;r1   c                    [        SS5      n[        SS5      n[        SS5      n[        S S5      nU R                  nSnS XX44 GH  nS	 GH  nU" S
SSSSSXS9n	SU=(       a    S=(       d    S-   n
US L=(       a    U	R                  5       =(       d    SnX-   nU	R                  5       nU R	                  XS-   U-   5        U R	                  XR                  S5      5        U R	                  U	R                  S5      US-   U-   5        U R	                  U	R                  S5      US-   U-   5        U R	                  [        U	5      US-   U-   5        GM     GM     g )Nr   r     z+03:40iz-03:51r4  z
0001-02-03)r   iy r   r]   rY   r_   rZ   r  r   z04:05:59z.987001rA  ku   ሴr  )rm   rw  r   r[  r,   r	  )r-   r  plusminusunknownr  datestrofsr  r  timestrofsstrtailstrisos                 r.   test_tzinfo_isoformat$TestDateTimeTZ.test_tzinfo_isoformat  sA   1h'3)D(+dB'mmU3C1aAr2:$(8y(>B?D7QXXZ=2!*kkm  mg&=>  kk#&67  S!17S=73JK  X!6(8JW8TU  Q3)@A   4r1   c           	      (   U R                   n[        SS5      n[        [        SS9S5      nSSSS	S
SSU/nU" U6 nU R                  UR	                  5       U5        U R                  [
        R                  " U5      U5        SSSSSSSSU44n[        U5       Ha  u  nu  pUS S  n
XU'   U" U
6 nU R                  UR                  " S0 X0D6U5        U R                  [
        R                  " U40 X0D6U5        Mc     U R                  UR                  5       S5        UR	                  S S9nU R                  UR                  5        U R                  UR                  5       5        [
        R                  " US S9nU R                  UR                  5        U R                  UR                  5       5        UR	                  US9nU R                  X^5        U R                  UR                  UR                  5        [
        R                  " XS9nU R                  X_5        U R                  UR                  UR                  5        U" SSS5      nU R                  [        UR                  SS9  U R                  [        [
        R                  USS9  g )Nr  rP  rQ  rq   rR  r   r]   rY   r_   rZ   ra   r\   r  r  r  r  r  r  r  r   r   r  r  r  r  r#   rS  rT  s                   r.   r  TestDateTimeTZ.test_replace  s9   mm3'Id3V<1aAq!T*Dz.d+T2  %e$& "+7!3A~1gGAJG}HT\\;TN;XFT\\$A4.A8L "4 	/D)%,,'%,,.)d40&--(&--/* T*%dkk5<<0f2&dkk6==1 4B*dll>*dllDtDr1   c                    [        S S5      n[        SS5      n[        [        SS9* S5      nU R                  R                  US9nU R	                  UR
                  U5        U R                  [        UR                  U5        UR                  UR
                  5      nU R	                  UR
                  U5        U R                  UR                  5       UR                  5       5        U R                  UR                  5       UR                  5       5        UR                  U5      nU R	                  UR
                  U5        U R                  UR                  5       [        SS95        XDR                  5       -
  nXsR                  U5      -  nUR                  US	9nU R                  UR                  5       UR                  5       5        U R                  UR                  5       UR                  5       5        U R                  UR                  5       UR                  5       5        U R	                  UR
                  UR
                  5        U R                  Xg5        g )
NNoner  44rZ   r   m300r  r?  r   )rm   r   rw  r   r4   r   r   r$  r  r,   r   r   r   rH  r  )r-   fnonef44mfm5hr   r  r  r`  s           r.   test_more_astimezone#TestDateTimeTZ.test_more_astimezone  s   D&)2t$IA..7]]$'bii&*bmmU;MM"))$ahh%2779-2779- mmD!cjj$')"*=>&NN2&&##4#0X]]_5X]]_5x'89cjj(//2'r1   r   c                     U R                   R                  [        R                  5      nU R	                  UR                  S 5      U5        U R	                  UR                  5       U5        g r3   )rw  r   r   r5   r,   r  r   s     r.   test_astimezone_default_utc*TestDateTimeTZ.test_astimezone_default_utc  sI    ]]x||,t,b1"-r1   r'  c           	         U R                  SSSSS[        R                  S9nUR                  5       nU R	                  X5        U R	                  UR                  S5      S5        U R                  SSSS	S[        R                  S9nUR                  5       nU R	                  X5        U R	                  UR                  S5      S
5        g )Nr   r   r_   ra   rh  r   rl  z	-0500 ESTrZ   z	-0400 EDT)rw  r   r5   r  r,   rq  )r-   r   rJ  s      r.   test_astimezone_default_eastern.TestDateTimeTZ.test_astimezone_default_eastern  s    ]]4Q2hll]C#0+>]]4Q2hll]C#0+>r1   c                     [        SSSS[        R                  S9nUR                  5       nUR                  5       nU R	                  UR
                  UR
                  5        g )Nr  r   r   rZ   r   )r   r   r5   r  r,   r   )r-   r   r   r  s       r.   !test_astimezone_default_near_fold0TestDateTimeTZ.test_astimezone_default_near_fold  sH     T2q!HLL9LLNLLN188,r1   c                    U R                   n " S S[        5      nU" SSSSSSS	U" 5       S
9nUR                  SS9nUR                  SS9nUR                  SS9nXEU4 HC  nXEU4 H8  nXx-
  n	[        UR                  UR                  -
  S9n
U R                  X5        M:     ME     U" SSSSSSS	5      nUR                  SU" 5       S9nUR                  SU" 5       S9nUR                  SU" 5       S9nXEU4 Ho  nXEU4 Hd  nXx-
  n	XtL d  XuL a  XL d  XL a  [        S5      n
O0Xxs=L a  UL a  O  O[        S5      n
OXvL a
  [        SS9n
O	[        SS9n
U R                  X5        Mf     Mq     g )Nc                       \ rS rSrS rSrg)BTestDateTimeTZ.test_aware_subtract.<locals>.OperandDependentOffseti  c                 Z    UR                   S:  a  [        UR                   S9$ [        SS9$ r!  r"  r\  s     r.   r   LTestDateTimeTZ.test_aware_subtract.<locals>.OperandDependentOffset.utcoffset  r$  r1   r#   Nr   r#   r1   r.   r%  rQ    r&  r1   r%  r  r  r!   r   r   rk  r  r   rY   r  rq   r'  r   ir  )rw  r   rH  r   rt  r,   )r-   r  r%  r  r(  r]  r  r  r  r  r`  s              r.   test_aware_subtract"TestDateTimeTZ.test_aware_subtract  s   mm	1V 	1 1aRR4J4LM\\\#\\\#\\\$ARZe$QXX-@A  /    1aRR,\\+A+C\D\\+A+C\D\\,B,D\EARZeGqwQW(|H\r\(|HW(;H  );H  /   r1   c           	         [        SSSSSSS5      n[        SSSSSSS5      nU R                  X5        UR                  S S9nU R                  X5        UR                  [        S S	5      S9nU R                  X5        UR                  [        S
S	5      S9nU R	                  X5         " S S[
        5      nU" 5       nUR                  US9nUR                  US9nU R                  UR                  5       [        SS95        U R                  UR                  5       [        SS95        U R                  X5        UR                  U" 5       S9nU R                  X:  5        g )Nr   r]   rY   r_   rZ   ra   r\   r   r4  r   c                        \ rS rSrS rS rSrg)1TestDateTimeTZ.test_mixed_compare.<locals>.VariesiM  c                      [        SS9U l        g r`  r  r6   s    r.   r{   :TestDateTimeTZ.test_mixed_compare.<locals>.Varies.__init__N  rb  r1   c                 R    U =R                   [        SS9-  sl         U R                   $ rd  re  r\  s     r.   r   ;TestDateTimeTZ.test_mixed_compare.<locals>.Varies.utcoffsetP  rg  r1   r  Nr  r#   r1   r.   rh  rX  M  ri  r1   rh  r  rq   rh  )	r   r,   rH  rm   r#  r   r   r   r   rj  s        r.   r  !TestDateTimeTZ.test_mixed_compareA  s?   aAq!Q*aAq!Q* ZZtZ$ ZZ{44Z5 ZZ{1b1Z2B#	#V 	# HZZqZ!ZZqZ!2)>?2)>?  ZZvxZ( r1   c                   ^   " U 4S jST R                   5      nSSSSSSS	[        S
SS5      4nT R                   " U6 nU" U0 SS0D6nT R                  UR                  U5        T R                  UR                  S5        T R                  UR
                  S5        T R                  UR                  5       UR                  5       5        T R                  UR                  S5      UR                  UR                  -   S-
  5        g )Nc                   ,   > \ rS rSrSrU 4S jrS rSrg)2TestDateTimeTZ.test_subclass_datetimetz.<locals>.Cia  r   c                    > UR                  5       nUR                  S5      nTR                  R                  " U /UQ70 UD6nXEl        U$ r
  r  r  s         r.   r   :TestDateTimeTZ.test_subclass_datetimetz.<locals>.C.__new__d  r  r1   c                 8    XR                   -   U R                  -   $ r3   )r  r  r  s     r.   r  :TestDateTimeTZ.test_subclass_datetimetz.<locals>.C.newmethk  s    yy(49944r1   r#   Nr  r6   s   r.   r  r`  a  s    I5r1   r  r  r   r  r_   rZ   ra   r  r   r   r   r!  r\   r   r^   )
rw  rm   r,   rM   r  r!  r   r  r  r  r  s   `    r.   test_subclass_datetimetz'TestDateTimeTZ.test_subclass_datetimetz_  s    	5 	5 RQ1c;tUA+FFmmT"&'1&*+A&#--/:R#((SXX*=*ABr1   r#   N)!rN   rh   ri   rj   r   rw  r  r  r  r  r  rA  r  r  r  r  r  r  r  r  r+  r9  r  rD  r   rD  rG  rJ  rM  rT  r  re  rk   r#   r1   r.   r  r    s    H	*C8JC.#=J/><5I?GB$NL"=H	9A"OHN<`B*,E\(: .  . 34? 5? 34- 5-*0X!<Cr1   r  c                 V    SU R                  5       -
  nU(       a  U [        U5      -  n U $ )Nra   )r1  r   )r   
days_to_gos     r.   first_sunday_on_or_afterri  {  s)    RZZ\!J
i
##Ir1   rq   r   r  r_   r]   rx  c                   2    \ rS rSrS rS rS rS rS rSr	g)	
USTimeZonei  c                 D    [        US9U l        X l        X0l        X@l        g Nr   r   	stdoffsetreprnamestdnamedstnamer-   r   rp  rq  rr  s        r.   r{   USTimeZone.__init__      "/ r1   c                     U R                   $ r3   rp  r6   s    r.   r   USTimeZone.__repr__  r   r1   c                 ^    U R                  U5      (       a  U R                  $ U R                  $ r3   r   rr  rq  r   s     r.   r   USTimeZone.tzname  #    88B<<<<<<r1   c                 >    U R                   U R                  U5      -   $ r3   ro  r   r   s     r.   r   USTimeZone.utcoffset      ~~,,r1   c                     Ub  UR                   c  [        $ [        [        R	                  UR
                  S95      n[        [        R	                  UR
                  S95      nX!R	                  S S9s=::  a  U:  a   [        $   [        $ [        $ Nr  r   )r   r  ri  DSTSTARTrH  r  DSTENDr5  r-   r   r  ends       r.   r   USTimeZone.dst  s}    :* K ))9)9rww)9)GH 'v~~277~'CD
 JJdJ+1c1K 2 K4Kr1   rr  rp  rq  ro  N
rN   rh   ri   rj   r{   r   r   r   r   rk   r#   r1   r.   rk  rk    s     -r1   rk  r?  rG  r   r  rb   CentralCSTCDTr^   MountainMSTMDTiPacificPSTPDTr   i0UTCfakec                   n    \ rS rSr\" SSSS5      r\" SSSS5      r\rS	 rS
 r	S r
S rS rS rS rSrg)TestTimezoneConversionsi  r  r_   r\   r]   r!   r  r   c                    U R                  UR                  5       [        5        U R                  UR                  U5      U5        UR                  U5      nUR                  U5      nUR	                  5       UR	                  5       :X  a~  UR
                  S:X  an  U R                  U[        -   U5        U R                  UR                  5       [        5        U R                  UR                  U5      UR                  U5      5        OU R                  X5        U[        -   nUR                  U5      n	UR	                  5       UR	                  5       :X  ag  UR
                  S:X  aW  U R                  XR                  SS95        U[        -  nUR                  U5      n	U R                  XR                  SS95        g U R                  X-
  [        5        g )Nr]   r   r   r  )r,   r   r5  r  r   r  r  rH  )
r-   r   r   r5   dstondstoffasutcthere_and_backnexthour_utcnexthour_tzs
             r.   checkinside#TestTimezoneConversions.checkinside  st   4( 	r*B/c"))"- 779

$A ^d2B7 ^//148^66s;]]3/1 R0 t|"--b1779%"''Q, [**!**<=D L&11"5K[**!**<=[-t4r1   c                     U R                  UR                  5       [        5        U R                  UR                  U5      U5        UR                  U5      nUR                  U5      nU R                  X5        g r3   )r,   r   r  r  )r-   r   r   r5   r  r  s         r.   checkoutside$TestTimezoneConversions.checkoutside  sa    4( 	r*B/ c"))"-,r1   c           	         U R                   R                  US9nU R                  R                  US9n[        SS9[        [
        [        SS9[        SS94 Hk  nU R                  X1X#U5        X5-   XE-
  4 H  nU R                  XaX#U5        M     U R                  XAU5        X5-
  XE-   4 H  nU R                  XqU5        M     Mm     g )Nr   rk  r  r   rq   r  )r  rH  r  r   DAYr5  r  r  )r-   r   r5   r  r  rg  duringoutsides           r.   convert_between_tz_and_utc2TestTimezoneConversions.convert_between_tz_and_utc  s    

""""- $$B$/b)*Q/	1E UF;-7  S@ 8 f#. =&.8!!'s3 91r1   c                 <   U R                  [        [        5        U R                  [        [        5        U R                  [        [        5        U R                  [        [        5        U R                  [        [        5        U R                  [        [        5        g r3   )r  rG  utc_realr  utc_faker6   s    r.   	test_easy!TestTimezoneConversions.test_easy  sd    '':'':'':'': 	''9''9r1   c           
         U R                   [        SS9-
  n[        SSS5      nUR                  US9nU R                   R                  SS9nUR	                  [
        5      R                  S S9nU R                  X45        U R                   R                  S	[        S
9nU R                   R                  SS9nUR	                  [
        5      R                  S S9nU R                  X45        [        [        4 H  n[
        [        4 H  nU R                  [        SS9-
  nXR                  S 5      -  nXR                  S 5      -   n	U	R                  US9n
S H|  nU R                  R                  US9nS HQ  nUR                  US9nU
R                  US9n	U	R	                  U5      nU R                  UR                  S S9U5        MS     U
[        -  n
M~     M     M     g )Nr_   r   iz-0900r   r   rY   r  ra   r  r   r   r]   )r   r   r   r]   r   rh  r  r  )r  r   rm   rH  r  rG  r,   r  r  r  r  r   r5  )r-   fourbackninewestr`  r  sixutcr5   r   first_std_hourr  	asutcbasetzhourexpectedbasert  astzs                  r.   test_tricky#TestTimezoneConversions.test_tricky5  s   ::	 22ugq1##8#4 ::%%1%-!!'*22$2?' ##8#< ::%%1%-(000=' X%Cw&!%yq/A!A,,t"44&t)<< "MMM5	*F#';;#6#6F#6#CL"+#/#7#7v#7#F ) 1 1 1 @$//3((T)BHM	 #,
 %I + ' &r1   c                     " S S[         5      nU R                  R                  5       R                  [        S9nUR                  U" 5       5         " S SU5      nU R                  [        UR
                  U" 5       5         " S SU5      nU R                  SS	S	5      R                  [        S9nU R                  [        UR
                  U" 5       5        g )
Nc                        \ rS rSrS rS rSrg)2TestTimezoneConversions.test_bogus_dst.<locals>.okii  c                     [         $ r3   r5  r   s     r.   r   <TestTimezoneConversions.test_bogus_dst.<locals>.ok.utcoffsetj  s    D[r1   c                     [         $ r3   r  r   s     r.   r   6TestTimezoneConversions.test_bogus_dst.<locals>.ok.dstk  s    d{r1   r#   Nr  r#   r1   r.   okr  i  s    0*r1   r  r   c                       \ rS rSrS rSrg)5TestTimezoneConversions.test_bogus_dst.<locals>.notokir  c                     g r3   r#   r   s     r.   r   9TestTimezoneConversions.test_bogus_dst.<locals>.notok.dsts  r  r1   r#   NrN   rh   ri   rj   r   rk   r#   r1   r.   notokr  r  s    *r1   r  c                       \ rS rSrS rSrg)<TestTimezoneConversions.test_bogus_dst.<locals>.tricky_notokiz  c                 6    UR                   S:X  a  g S[        -  $ )Nr  r!   )r  r5  r   s     r.   r   @TestTimezoneConversions.test_bogus_dst.<locals>.tricky_notok.dst{  s    77d?d7Nr1   r#   Nr  r#   r1   r.   tricky_notokr  z  s    #r1   r  r  r   )r   rw  r   rH  r  r  r   r$  )r-   r  r   r  r  r   s         r.   test_bogus_dst&TestTimezoneConversions.test_bogus_dsth  s    	+ 	+ mm!))):rt	+B 	+*cnneg>	#2 	# ]]4A&..h.?*bmm\^Dr1   c                    U R                  [        [        R                  5        [        R
                  " [        S9nU R                  [        [        R                  U5        UR                  [        S9n[        R                  U5      nU R                  UR                  [        5        U R                  [        [        R                  X5        U R                  [        [        R                  [        R                  " 5       5         " S S[        5      nU" SSSS5      nU R                  R                  S	[        S
9nUR                  US9nS H  nUR                  US9nUS:X  a  U[        SS9-  n[        R                  U5      n	U R                  X5        XdR                   -   nUR                  U5      n	U R                  X5        UR                  [        S9R#                  U5      n	U R                  X5        U[$        -  nU[$        -  nM     U R&                  R                  S	[        S
9nUR                  US9nS H  nUR                  US9n[        R                  U5      n	U R                  X5        XdR                   -   nUR                  U5      n	U R                  X5        UR                  [        S9R#                  U5      n	U R                  X5        U[$        -  nU[$        -  nM     g )Nr  r   c                       \ rS rSrS rSrg)<TestTimezoneConversions.test_fromutc.<locals>.FauxUSTimeZonei  c                     XR                   -   $ r3   )ro  r   s     r.   r   DTestTimezoneConversions.test_fromutc.<locals>.FauxUSTimeZone.fromutc  s    NN**r1   r#   NrN   rh   ri   rj   r   rk   r#   r1   r.   FauxUSTimeZoner    s    +r1   r  r?  FEasternFESTFEDTr_   r  )r  r   r   rY   r_   rZ   r  r  r   r  )r   r   r   r]   rY   r_   )r   r   rG  r   r   r   r  r$  rH  r,   r   r   r  rk  r  r   ro  r  r5  r  )
r-   r   enowr  r  r  fstartwallr`  r  s
             r.   rK  $TestTimezoneConversions.test_fromutc  sf   )W__5llh'*goos;kkk)s#g.)W__c?)W__djjlC	+Z 	+ #2zFFC 

""'":h/%D}}$}/HrzI1--//%(CX+ 2 22H""6*CX+ ...1<<XFCX+TMEdNF! && ##7#;h/$D}}$}/H//%(CX+ 2 22H""6*CX+ ...1<<XFCX+TMEdNF %r1   r#   N)rN   rh   ri   rj   r   r  r  rw  r  r  r  r  r  r  rK  rk   r#   r1   r.   r  r    sM    T1a#EdBA&FH15h	-4,
:00&fE6:r1   r  c                   &    \ rS rSrS rS rS rSrg)Oddballsi  c                   ^^ [         R                  " 5       n[        R                  " U[	        5       5      n[        UR                  UR                  UR                  5      n[        UR                  UR                  UR                  SSS5      nX4 H  nX$4 H  nXV4Xe44 H  u  mmU R                  TT:g  5        U R                  TT:H  5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        U R                  [        UU4S j5        M     M     M     X4X14X$4XB44 H~  u  mmU R                  TT:H  5        U R                  TT:g  5        U R                  TT:  5        U R                  TT:  5        U R                  TT:*  5        U R                  TT:  5        M     X4X!44 H  u  mmU R                  TR                  T5      [         5        U R                  TR#                  T5      [         5        U R                  TR%                  T5      [         5        U R                  TR'                  T5      [         5        U R                  TR'                  T5      [         5        U R                  TR)                  T5      [         5        M     g )Nr   c                     > T T:  $ r3   r#   r  r  s   r.   r  8Oddballs.test_date_datetime_comparison.<locals>.<lambda>  	    Qr1   c                     > T T:*  $ r3   r#   r  s   r.   r  r    	    ar1   c                     > T T:  $ r3   r#   r  s   r.   r  r    r  r1   c                     > T T:  $ r3   r#   r  s   r.   r  r    r  r1   )r   r  r   r(  r   r  r  r  r%  r  r   r   r   r   r,   __eq__NotImplemented__ne____lt____gt____ge__)	r-   as_dateas_datetimedate_scdatetime_scr  r   r  r  s	          @@r.   test_date_datetime_comparison&Oddballs.test_date_datetime_comparison  s2    **,&&w7w||W]]GKKH&w||W]]'.{{Aq!=#A"0GbW,DAqOOAF+$$Q!V,%%i?%%i@%%i?%%i@ - 1 $ ''!/!/1DAq OOAF#Q!V$QU#QU#OOAF#OOAF#1 *[,BBDAqQXXa[.9QXXa[.9QXXa[.9QXXa[.9QXXa[.9QXXa[.9 Cr1   c           	         U R                  [        5         [        R                  " 5       nS S S 5        [        R
                  " 5       [        5       W[        5       [        5       [        [        5       5      4 H(  nU R                  [        5         SUl        S S S 5        M*     g ! , (       d  f       N= f! , (       d  f       MM  = fr)  )r"  r#  r   ra  r   r  r   r   r   r   r   AttributeErrorr"   )r-   ra  r  s      r.   test_extra_attributesOddballs.test_extra_attributes  s    01__&F 2**,&+(9;')A "">2 32) 21 32s   B%B6%
B36
C	c                     " S S5      n " S S[         5      nSU" S5      [        R                  " S5      [        R                  " S5      U" S5      U" S5      S	4 H  nU R                  [        [
        USSSSSS5	        U R                  [        [
        SUSSSSS5	        U R                  [        [
        SSUSSSS5	        U R                  [        [
        SSSUSSS5	        U R                  [        [
        SSSSUSS5	        U R                  [        [
        SSSSSUS5	        U R                  [        [
        SSSSSSU5	        M     g )
Nc                        \ rS rSrS rS rSrg)-Oddballs.test_check_arg_types.<locals>.Numberi  c                     Xl         g r3   value)r-   r  s     r.   r{   6Oddballs.test_check_arg_types.<locals>.Number.__init__   s    "
r1   c                     U R                   $ r3   r  r6   s    r.   __int__5Oddballs.test_check_arg_types.<locals>.Number.__int__  s    zz!r1   r  N)rN   rh   ri   rj   r{   r	  rk   r#   r1   r.   Numberr    s    #"r1   r	  c                       \ rS rSrSrg),Oddballs.test_check_arg_types.<locals>.Floati  r#   Nr/  r#   r1   r.   Floatr	    rQ  r1   r	  g      $@g%@r!   z10.910)r  decimalDecimalr   r   r   )r-   r	  r	  xxs       r.   test_check_arg_typesOddballs.test_check_arg_types  s*   	" 	"	E 	 t??2&(?":vd|B i2r2r2r2Ni2r2r2r2Ni2r2r2r2Ni2r2r2r2Ni2r2r2r2Ni2r2r2r2Ni2r2r2r2Nr1   r#   N)rN   rh   ri   rj   r  r  r	  rk   r#   r1   r.   r  r    s    +:Z
Or1   r  c                       \ rS rSrS rSrg)tzinfo2i  c                    [        U[        5      (       d  [        S5      eUR                  U La  [	        S5      eUR                  SS9R                  5       nUR                  SS9R                  5       nUb  Ub  UR                  5       c  [        eX#:X  a  X-   nUR                  5       nX#:X  a  U$ X#4 HF  nX-   nUR                  5       U:X  a  Us  $ UR                  SS9nUR                  5       U:X  d  MD  Us  $    [	        S5      e)*datetime in UTC -> datetime in local time.&fromutc() requires a datetime argumentdt.tzinfo is not selfr   r  r   zNo suitable local time found)rs   r   r   r   r$  rH  r   r   )r-   r   off0off1ldtoffs         r.   r   tzinfo2.fromutc  s     "h''DEE99D 455 zzqz!++-zzqz!++-<4<2668+;<)C==?D|
 <C(C}}#%
++1+%C}}#%
   788r1   r#   Nr  r#   r1   r.   r	  r	    s    9r1   r	  c                   2    \ rS rSrS rS rS rS rS rSr	g)	USTimeZone2i<  c                 D    [        US9U l        X l        X0l        X@l        g rm  rn  rs  s        r.   r{   USTimeZone2.__init__>  ru  r1   c                     U R                   $ r3   rw  r6   s    r.   r   USTimeZone2.__repr__D  r   r1   c                 ^    U R                  U5      (       a  U R                  $ U R                  $ r3   rz  r   s     r.   r   USTimeZone2.tznameG  r|  r1   c                 >    U R                   U R                  U5      -   $ r3   r~  r   s     r.   r   USTimeZone2.utcoffsetM  r  r1   c                    Ub  UR                   c  [        $ [        [        R	                  UR
                  S95      n[        [        R	                  UR
                  S95      nUR	                  S S9nU[        -   Us=::  a  U:  a   [        $   X1s=::  a  U[        -   :  a   O  OUR                  (       a  [        $ [        $ X!s=::  a  U[        -   :  a%  O  [        $ UR                  (       a  [        $ [        $ [        $ r  )	r   r  ri  r  rH  r  r  r5  r  r  s       r.   r   USTimeZone2.dstP  s    :* K ))9)9rww)9)GH 'v~~277~'CD
 ZZtZ$4<2##K $ #t#774,,'54<'
 K 774,, Kr1   r  Nr  r#   r1   r.   r	  r	  <  s     -r1   r	  Eastern2Central2	Mountain2Pacific2c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
Europe_Vilnius_1941i  c           	      6    [        SSSSU S9[        SSSSU S9/$ )N  ra   r  r   r   r6  r   r6   s    r.   	_utc_foldEurope_Vilnius_1941._utc_fold  s,    q"b6q"b68 	8r1   c           	      6    [        SSSSU S9[        SSSSU S9/$ )Nr+	  ra   r  r   rh  r   r,	  r6   s    r.   	_loc_foldEurope_Vilnius_1941._loc_fold  s,    q"b6q"a57 	7r1   c                     U R                  5       u  p#X:  a	  S[        -  $ X:  a#  UR                  (       a	  S[        -  $ S[        -  $ S[        -  $ )NrY   r]   r0	  r5  r  r-   r   
fold_start	fold_stops       r.   r   Europe_Vilnius_1941.utcoffset  H     $ 0
?t8O>A4//a4//4xr1   c                     U R                  5       u  p#X:  a	  S[        -  $ X:  a#  UR                  (       a	  S[        -  $ S[        -  $ S[        -  $ )Nr   r   r3	  r4	  s       r.   r   Europe_Vilnius_1941.dst  r8	  r1   c                 \    U R                  5       u  p#X:  a  gX:  a  SUR                     $ g)NMSK)r<	  CESTr=	  )r0	  r  r4	  s       r.   r   Europe_Vilnius_1941.tzname  s0     $ 0
?>"277++r1   c                     UR                   S:w  a  [        eU R                  5       u  p#X:  a  US[        -  -   $ X:  a  US[        -  -   R	                  SS9$ US[        -  -   $ )Nr+	  rY   r]   r   r  )r  r   r-	  r5  rH  r4	  s       r.   r   Europe_Vilnius_1941.fromutc  sf     77d?%% $ 0
?D= >TM***22AH}r1   r#   N)rN   rh   ri   rj   r-	  r0	  r   r   r   r   rk   r#   r1   r.   r)	  r)	    s     87r1   r)	  c                   j   \ rS rSrS rS rS rS rS rS r	S r
\R                  " S	5      S
 5       r\R                  " S5      S 5       rS r\R                  " S	5      S 5       r\R                  " S5      S 5       r\R                  " S	5      S 5       rS rS rS rS rS rS rS rS rS rSrg)TestLocalTimeDisambiguationi  c           
      L   [        5       n[        SSSSSS[        R                  S9nUR	                  U5      nU R                  UR                  S5      S5        U R                  UR                  S	5        U R                  UR                  5       5        [        SSSS
[        R                  S9nUR	                  U5      nU R                  UR                  S5      S5        U R                  UR                  S5        U R                  UR                  5       5        [        SSSS[        R                  S9nUR	                  U5      nU R                  UR                  S5      S5        U R                  UR                  S	5        U R                  UR                  5       5        g )Nr+	  ra   r  rv  r  r   z%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300r   r   z"Mon Jun 23 23:00:00 1941 CEST+0200r   r6  z"Tue Jun 24 00:00:00 1941 CEST+0200)r)	  r   r   r5   r  r,   rq  r  r   r   r   )r-   Vilniusgdtr	  s       r.   test_vilnius_1941_fromutc5TestLocalTimeDisambiguation.test_vilnius_1941_fromutc  sB   %'tQBBx||DnnW%i0<	>1%#tQBx||<nnW%i0=	?1%	"tQBx||<nnW%i0=	?1%	"r1   c                    [        5       n[        SSSSSSUS9nUR                  [        R                  5      nU R                  UR                  S5      S5        [        SSSSSSUS9nUR                  [        R                  5      nU R                  UR                  S5      S	5        [        SSSSSSUS
S9nUR                  [        R                  5      nU R                  UR                  S5      S5        [        SSSSUS9nUR                  [        R                  5      nU R                  UR                  S5      S5        g )Nr+	  ra   r  r6  r  r   z%c %ZzMon Jun 23 19:59:59 1941 UTCzMon Jun 23 20:59:59 1941 UTCr   )r   r  zMon Jun 23 21:59:59 1941 UTCrh  r   zMon Jun 23 22:00:00 1941 UTC)r)	  r   r  r   r5   r,   rq  )r-   rD	  r	  rE	  s       r.   test_vilnius_1941_toutc3TestLocalTimeDisambiguation.test_vilnius_1941_toutc  s   %'tQBBw?nnX\\*g.7	9 tQBBw?nnX\\*g.7	9 tQBBwQGnnX\\*g.7	9 tQAg6nnX\\*g.7	9r1   c           	         [        SSS9n[        SSSSS9nU R                  UR                  S5        U R                  UR                  S5        U R	                  [
        5         [        SSSSS S5        S S S 5        g ! , (       d  f       g = fNr   r   r  )r   r   r,   r  r   r   r-   r   r   s      r.   test_constructors-TestLocalTimeDisambiguation.test_constructors  sq    OaAA&#!$y)Aq!T1% *))s   $A>>
Bc                     [        SSSSS9nUR                  5       nU R                  UR                  S5        UR	                  5       nU R                  UR                  S5        g )Nr   r  )r   r   r,   r  r  )r-   r   r   s      r.   test_member'TestLocalTimeDisambiguation.test_member  sP    aAA&GGI#IIK#r1   c                    [        S5      n[        SSS5      nU R                  UR                  SS9R                  S5        U R                  UR                  SS9R                  S5        U R                  UR                  SS9R                  S5        U R                  UR                  SS9R                  S5        UR                  S[
        S9nUR                  S[
        S9nU R                  UR                  S S9R                  S5        U R                  UR                  S S9R                  S5        U R                  [        5         UR                  SS9  S S S 5        U R                  [        5         UR                  SS9  S S S 5        U R                  [        5         UR                  SSSS S5        S S S 5        U R                  [        5         UR                  SSSSSSSS S5	        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nh= f! , (       d  f       g = f)Nr   r   r  )r  r   r   r]   )	r   r   r,   rH  r  rG  r   r$  r   rM	  s      r.   r  (TestLocalTimeDisambiguation.test_replace  s   GaA*//3+00!4*//3+00!4II1WI-ZZQwZ/$/44a84055q9z*II1I +z*JJAJ + y)IIaAtQ' *y)JJq!Q1aD!4 *) +*** *)))s0   G<9H&HH/<
H

H
H,/
H=c                     [        S5      n[        SSS5      nU R                  XR                  SS95        U R                  X"R                  SS95        g rL	  )r   r   r,   rH  rM	  s      r.   rN  +TestLocalTimeDisambiguation.test_comparison	  sK    GaAII1I-.ZZQZ/0r1   c           	          [        S5      n[        SSS5      nU R                  [        U5      [        UR	                  SS95      5        U R                  [        U5      [        UR	                  SS95      5        g rL	  )r   r   r,   r  rH  rM	  s      r.   	test_hash%TestLocalTimeDisambiguation.test_hash  sa    GaAa$qyyay'8"9:b4


(:#;<r1   r'  c                     Sn[         R                  " U5      n[         R                  " US-   5      nU R                  UR                  S5        U R                  UR                  S5        g )NiXUTr  r   r   )r   r  r,   r  )r-   r  dt0r   s       r.   r  .TestLocalTimeDisambiguation.test_fromtimestamp  sS    $$Q'$$QX.1%1%r1   zAustralia/Lord_Howec                 |   [         R                  " S5      n[         R                  " SU5      S:w  a  U R                  S5        Sn[        R
                  " U5      n[        R
                  " US-   5      nU R                  X45        U R                  UR                  S5        U R                  UR                  S5        g )	N   A%Z%z	LHST+1030>Australia/Lord_Howe timezone is not supported on this platformiU  r   r   )rw  r  rq  rO   r   r  r,   r  )r-   tmr  r*  r  s        r.   test_fromtimestamp_lord_howe8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howe  s    __U#>>&"%4MMZ[
 ##A&##AH- !$!$r1   c                 d    U R                  [        R                  " S5      R                  S5        g r  )r,   r   r  r  r6   s    r.   %test_fromtimestamp_low_fold_detectionATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detection-  s%     	//277;r1   c                     [        SSSSS5      nUR                  SS9nU R                  UR                  5       S-   UR                  5       5        g )Nr   r   r]   r   rh  r  r  )r   rH  r,   r)  )r-   r[	  r   s      r.   test_timestamp*TestLocalTimeDisambiguation.test_timestamp2  sH    tRAr*kkqk!4/	*r1   c                 D   [         R                  " S5      n[         R                  " SU5      S:w  a  U R                  S5        [	        SSSSS	5      nUR                  S
S9R                  5       nUR                  SS9R                  5       nU R                  US-   U5        g )Nr^	  r_	  r`	  ra	  r  r_   rZ   r   r  r   r  rb	  )rw  r  rq  rO   r   rH  r)  r,   )r-   rc	  r   s0r  s        r.   test_timestamp_lord_howe4TestLocalTimeDisambiguation.test_timestamp_lord_howe9  s    __U#>>&"%4MMZ[T1aB'YYAY((*YYAY((*dB'r1   c                    [        SSSSS5      nUR                  SS9nUR                  5       nUR                  5       nU R                  UR	                  5       S5        U R                  UR	                  5       S5        U R                  U[
        -   U5        U R                  UR                  S	5        U R                  UR                  S	5        g )
Nr   r   r]   r   rh  r  r  r   r   )r   rH  r  r,   r   r5  r  )r-   r[	  r   adt0adt1s        r.   r  +TestLocalTimeDisambiguation.test_astimezoneC  s    tRAr*kkqk!~~~~..d+A&A&r1   c                 $   [        SS9n[        SSSSS9n[         Hq  u  p4nX4 Hd  nUR                  Xe5      nUR	                  U5      nU R                  Xh5        U R                  US:  a  SOUR                  UR                  5        Mf     Ms     g )Nr   r  r_   r   )r   r   r   r   r   r,   r  )	r-   r   r   r   r   r   r  r  r  s	            r.   test_pickle_fold,TestLocalTimeDisambiguation.test_pickle_foldR  s    aLaAA&)7%GWMM!+OOA&  &  uqy!affqvvF	  *8r1   c                     [        SS9n[        SSSSS9nU R                  [        U5      S5        U R                  [        U5      S5        g )Nr   r  zdatetime.time(0, 0, fold=1)z(datetime.datetime(1, 1, 1, 0, 0, fold=1))r   r   r,   r  rM	  s      r.   r  %TestLocalTimeDisambiguation.test_repr\  sH    aLaAA&a"?@bC	Er1   c           
      ~   [        SSSS[        S9[        R                  -
  n[        SSSS[        S9nU R	                  UR                  5       [        5        U R	                  UR                  5       [        5        U R	                  UR                  SS9R                  5       [        5        U R	                  UR                  SS9R                  5       [        5        S Hj  n[        SSSSU[        S9nU R	                  UR                  5       [        5        U R	                  UR                  SS9R                  5       [        5        Ml     S Hj  n[        SS	S
SU[        S9nU R	                  UR                  5       [        5        U R	                  UR                  SS9R                  5       [        5        Ml     g )Nr  r!   r  r   r   r]   r  r  r_   r\   )	r   r$	  r   r  r,   r   r5  r  rH  )r-   	dt_summer	dt_winterrt  r   s        r.   r<  $TestLocalTimeDisambiguation.test_dstc  s_   T2r1X>AUAUU	T2r1X>	$/$/***2668$?***2668$? "F$B6(CBRVVXt,RZZQZ/335t< " "F$1aABRVVXt,RZZQZ/335t< "r1   c                    [        SSSS[        S9[        R                  -
  n[        SSSS[        S9nU R	                  UR                  5       S[        -  5        U R	                  UR                  5       S[        -  5        U R	                  UR                  SS	9R                  5       S[        -  5        U R	                  UR                  SS	9R                  5       S[        -  5        g )
Nr  r!   r  r   r   r]   r`   r?  r  )r   r$	  r   r  r,   r   r5  rH  )r-   rz	  r{	  s      r.   r8  *TestLocalTimeDisambiguation.test_utcoffset~  s    T2r1X>AUAUU	T2r1X>	,,.T	:,,.T	:***2<<>T	J***2<<>T	Jr1   c           	         [        SSSS[        S9[        R                  -
  n[        SSSS[        S9n[        R	                  U5      n[        R	                  U5      nU R                  X1S[        -  -
  5        U R                  XBS[        -  -
  5        U R                  UR                  S	5        U R                  UR                  S	5        [        SSSSS
[        S9n[        R	                  U5      nU[        -  n[        R	                  U5      nU R                  Xg5        U R                  UR                  S	5        U R                  UR                  S5        [        SSSSS
[        S9n[        R	                  U5      nU R                  UR                  UR                  4S5        [        SSSSS
[        S9n[        R	                  U5      nU R                  UR                  UR                  4S5        [        SSSSS	[        S9n[        R	                  U5      nU R                  UR                  UR                  4S5        g )Nr  r!   r  ra   r   r\   r_   rZ   r   rh  r   )r   r   )r  r   r]   )ra   r   )
r   r$	  r   r  r   r,   r5  r  r%  r  )	r-   u_summeru_wintert_summert_winterr   r*  r  r   s	            r.   rK  (TestLocalTimeDisambiguation.test_fromutc  s   D"b!H=	@T@TTD"b!H=##H-##H-a$h#67a$h#67** T2r1b:a 	T	a  !$!$T2r1b:Q!%%(3T2r1b:Q!%%'2 T1aAh7Q!%%'2r1   c                     [        SSS[        S9nU R                  XR                  [        R
                  5      5        [        SSS[        S9nU R                  XR                  [        R
                  5      5        g )Nr  r   r   ra   )r   r$	  r,   r  r   r5   r\  s     r.   test_mixed_compare_regular6TestLocalTimeDisambiguation.test_mixed_compare_regular  sX    T1a1LL67T1a1LL67r1   c           	          [        SSSSS[        S9nUR                  [        R                  5      nU R                  X5        U R                  X!5        g )Nr  r!   r  r   r  r   r   r$	  r  r   r5   r#  )r-   t_fold
t_fold_utcs      r.   test_mixed_compare_fold3TestLocalTimeDisambiguation.test_mixed_compare_fold  sF    $B2h?&&x||4
F/J/r1   c           	          [        SSSSS[        S9nUR                  [        R                  5      nU R                  X5        U R                  X!5        g )Nr  r_   r\   r]   r  r   r	  )r-   t_gap	t_gap_utcs      r.   test_mixed_compare_gap2TestLocalTimeDisambiguation.test_mixed_compare_gap  sF    q!Q8<$$X\\2	E-I-r1   c           	         [        SSS[        S9nU R                  [        U5      [        UR	                  SS95      5        [        SSSSS[        S9n[        SS	S
SS[        S9nU R                  [        U5      [        UR	                  SS95      5        U R                  [        U5      [        UR	                  SS95      5        g )Nr  r   r   r  r  r!   r  r  r_   r\   r]   )r   r$	  r,   r  rH  )r-   r   r	  r	  s       r.   test_hash_aware+TestLocalTimeDisambiguation.test_hash_aware  s    T1a1a$qyyay'8"9:$B2h?q!Q8<ftFNNN,B'CDed5==a=+@&ABr1   r#   N)rN   rh   ri   rj   rF	  rI	  rN	  rQ	  r  rN  rX	  r   rD  r  rd	  rg	  rj	  rn	  r  ru	  r  r<  r8  rK  r	  r	  r	  r	  rk   r#   r1   r.   rB	  rB	    s    #09.&$5.1= 34& 5& ./% 0%<
 34* 5* ./( 0( 34' 5'GE=6K3B80.Cr1   rB	  c                 `    [         R                  " U 5      u  p[        US 5        [        X5      $ r3   )rn  teenextr  )iterabler  r  s      r.   pairsr	    s%    =="DADMq9r1   c                       \ rS rSrSrS r\S 5       r\S 5       r	\S 5       r
\" SSS5      R                  5       rS	 rS
 rS rS rS r\SS j5       r\SS j5       rS rS r\SS j5       rS rS rS rSrg)ZoneInfoi  z/usr/share/zoneinfoc                 H    Xl         X l        U R                  X5      U l        g)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.   r{   ZoneInfo.__init__  s     ++b%r1   c                 P   [        SU 5      [        SU 5      4nU (       a  US   S   [        -  nUS   S==   U-  ss'   US   S==   U-  ss'   [        S[        U 5      5       H>  nUS   U==   XS-
     S   [        -  -  ss'   US   U==   X   S   [        -  -  ss'   M@     U$ )Nr  r   r   )r   SECr  r  )r	  r	  r   ry   r  s        r.   r	  ZoneInfo.invert  s    CneCn-U1X_FqE!HHqE!HH1c"g&1aBsGAJ#--1aBE!HO+ ' 	r1   c           	         UR                  S5      R                  5       S:w  a  [        S5      eUR                  S5        [	        S5      nUR                  US5        [        R                  S:w  a  UR                  5         [	        S5      nUR                  XS   5        [        R                  S:w  a  UR                  5         [	        S	5      nUR                  XS   5        / n[        US
   5       H8  nUR                  [        R                  " SUR                  S5      5      5        M:     UR                  US   5      n[        U5       H;  u  nu  pn
XzUR                  SU
5       R                  5       n[        SU5      X4XV'   M=     S /[!        U5      -  n[        U5       H  u  pmX]   X'   M     U " X<5      nU$ )Nr_   TZifznot a zoneinfo filer   r  rY   r  r   r  r   z>lbbra   r]   )readdecoder$  seekr   fromfilerL   	byteorderbyteswapr  r=  structunpackr  findr   r  )r  fileobjcountsr	  type_indicesttisr  abbrsgmtoffisdstabbrindabbrr	  idxr-   s                  r.   r	  ZoneInfo.fromfile  s{   <<?!!#v-233Rs#==E!OO3Z
GAY'==E!KKMSzgay1vay!AKKfgll1o>? " VAY' ,5T?'A'wAw!78??AD F+U9DG ,; Vc"g-FAIBE . 2{r1   c                     [         R                  R                  U R                  U5      n[	        US5       nU R                  U5      sS S S 5        $ ! , (       d  f       g = f)Nrb)ospathjoinzonerootopenr	  )r  rH   r	  rs  s       r.   fromnameZoneInfo.fromname
  s=    ww||CLL$/$<<? s   A
A r    r   c                 X   [        U[        5      (       d  [        S5      eUR                  U La  [	        S5      eUR                  5       U R                  -
  S-  UR                  S-  -   UR                  S-  -   UR                  -   nX R                  S   :  a  U R                  S   nSnOa[        R                  " U R                  U5      nU R                  US-
  U u  pcUS   US   -
  nU[        SX R                  US-
     -
  5      :  nXS   -  nU(       a  UR                  SS	9$ U$ )
r	  r	  r	  r  r  r  r   r   r]   r  )rs   r   r   r   r$  r  EPOCHORDINALr  rt  rs  r	  r	  bisectbisect_rightr   rH  )r-   r   r)  ttir  r	  tti_prevshifts           r.   r   ZoneInfo.fromutc  s$    "h''DEE99D 455llnt'8'88EAww~&yy2~& yy!	
 wwqz!''!*CD%%dggy9C !GGCE#.MHQK#a&(EIaWWSU^)CDDD
!f::1:%%Ir1   c                 8   UR                  5       U R                  -
  S-  UR                  S-  -   UR                  S-  -   UR                  -   nU R
                  UR                     n[        R                  " XC5      nU R                  [        SUS-
  5         U   $ )Nr  r  r  r   r   )r  r	  r  rt  rs  r   r  r	  r	  r	  r   )r-   r   r  r)  r   r	  s         r.   _find_tiZoneInfo._find_ti0  s    llnt'8'88EAww~yy2~ yy	 WWRWW!!"0wws1cAg'**r1   c                 &    U R                  US5      $ r  r	  r   s     r.   r   ZoneInfo.utcoffset:      }}R##r1   c                 L    U R                  US5      nU(       a  [        $ [        $ r)  )r	  r  r5  )r-   r   r	  s      r.   r   ZoneInfo.dst=  s!    b!$
 t&$&r1   c                 &    U R                  US5      $ )Nr]   r	  r   s     r.   r   ZoneInfo.tznameE  r	  r1   Nc              #   x  #    Uc  U R                   n[        R                  R                  US5      n [	        U5      nU   U HI  nUR                  5       nU(       d  M  UR                  S5      (       a  M4  UR                  5       S   v   MK     S S S 5        g ! [
         a     g f = f! , (       d  f       g = f7f)Nzzone.tab#r]   )	r	  r	  r	  r	  r	  r3  striprE   rT  )r  zonedirzone_tabrs  lines        r.   	zonenamesZoneInfo.zonenamesH  s     ?llG77<<4	XA zz|4 4 4**,q/)  Q  		QsK   0B:B B: B)B)7B)	B:
B&#B:%B&&B:)
B73B:c                    S=n=n=pE[         R                  =pg[        =p[        R                  =pS =p[        R                  =pS =nn[        USS5      nU R                  5        H  nUS-  nU R                  U5      nUR                  5        H  u  nnUU:  a  M  U[        :  aJ  US-  nUU4X4:  a  UnUnUnU[        R                  U-
  4U[        R                  U
-
  4:  a  UnUnUn
M`  Mb  U[        :  aM  US-  nU* nUU4X4:  a  Un	UnUnU[        R                  U-
  4U[        R                  U-
  4:  a  UnUnUnM  M  US-  nM     M     X4U4n[        SU-  5        [        S[        U5      4U-   -  5        [        SU<S SU
< SU< 35        [        S	U<S SU< SU< 35        [        S
U<S SU< SU< 35        [        SU	<S SU< SU< 35        g )Nr   r   zNumber of zones:       %5dz@Number of transitions: %5d = %d (gaps) + %d (folds) + %d (zeros)zMin gap:         z>16z at z in zMax gap:         zMin fold:        zMax fold:        )
r   r   r  r   r  r	  r	  transitionsprintrE  )r  
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   r   r	  trans_countss                           r.   statsZoneInfo.statsW  s   7888	8J&]]*!!.6ll:&**08<(,,z1a0HQJEh'B^^-	E#4<NIr{g%@@"''/+-(x||b01WhllM]>]4^^"''/+-( _ T\!OJ"FEr{h%BB#((0,.)x||b01Xx||N_?_4``#((0,.) a
  1$K3 . (: "{;*U23PL!#l24 	5W>NP\]^W>NP\]^X?PR_`aX?PR_`ar1   c              #      #    [        [        U R                  U R                  5      5       H)  u  u  pu  p4US   US   -
  n[        [        US9-   U4v   M+     g 7f)Nr   r  )r	  r  r	  r	  EPOCH_NAIVEr   r-   _prev_tir   r	  r	  s         r.   r	  ZoneInfo.transitions  sT     %*3tww+@%A!LQ'1qEGAJ&E1!55== &Bs   AAc              #      #    [        [        U R                  U R                  5      5       HL  u  u  pu  p4US   US   -
  nU[        :  d  M!  US   US   :X  d  M/  [        [        U5      U* US   US   4v   MN     g7f)zLFind all folds with the same value of isdst on both sides of the transition.r   r   r]   N)r	  r  r	  r	  r  _utcfromtimestampr   r	  s         r.   nondst_foldsZoneInfo.nondst_folds  su     %*3tww+@%A!LQ'1qEGAJ&Et|1 3'!5vwqz2a5PP &Bs   AA=
A="A=c                     SnU R                  5        Hb  nU R                  U5      nUR                  5        H:  u  pgpUR                  U:  d  U(       a  X:w  a  M$  US-  n[	        SX4XgX4-  5        M<     Md     g )Nr   r   z%3d) %-30s %s %10s %5s -> %s)r	  r	  r 
  r  r	  )
r  	same_abbrr	  r	  r	  r   r   r	  	prev_abbrr	  s
             r.   print_all_nondst_foldsZoneInfo.print_all_nondst_folds  sw    Hh'B.0oo.?*977Z'99J
49CD E	 /@ (r1   c              #   b   #    U R                  5        H  u  pU[        :  d  M  X* 4v   M     g 7fr3   r	  r  r-   r   r	  s      r.   foldsZoneInfo.folds  s*     ((*HAt|i +s   //c              #   `   #    U R                  5        H  u  pU[        :  d  M  X4v   M     g 7fr3   r
  r	
  s      r.   gapsZoneInfo.gaps  s(     ((*HAt|h +s   .
.c              #   X   #    U R                  5        H  u  pU(       a  M  Uv   M     g 7fr3   )r	  r	
  s      r.   zerosZoneInfo.zeros  s$     ((*HA5 +s   *	*)r   r	  r	  r3   )r   )Fr   )rN   rh   ri   rj   r	  r{   rH  r	  classmethodr	  r	  r   r  r	  r   r	  r   r   r   r	  r	  r	  r 
  r
  r

  r
  r
  rk   r#   r1   r.   r	  r	    s    $H& 	 	 " "H # #
 a#--/L<+$'$ * * -b -b`>
Q 	E 	E 

r1   r	  c                   p    \ rS rSrSrS rS rS rS r\	R                  " \" \S5      S5      S	 5       rS
rg)ZoneInfoTesti  zAmerica/New_Yorkc                 V   [         R                  S:X  a  U R                  S5        [         R                  S:X  a  U R                  S5         [        R	                  U R
                  5      U l        g ! [         a-  nU R                  SU R
                  < SU< 35         S nAg S nAff = f)Nvxworksz"Skipping zoneinfo tests on VxWorksrX  z"Skipping zoneinfo tests on Windowsz	Skipping z: )rL   rG  rO   r	  r	  r	  r   FileNotFoundError)r-   errs     r.   r  ZoneInfoTest.setUp  sz    <<9$MM>?<<7"MM>?	D''6DG  	DMMt}}cBCC	Ds   $A1 1
B(;#B##B(c                     U R                  UR                  S S9UR                  [        UR                  5      4UR                  S S9UR                  [        UR                  5      45        g )Nr   )r,   rH  r  idr   )r-   r  r  s      r.   assertEquivDatetimes!ZoneInfoTest.assertEquivDatetimes  sR    !))4)0!&&"QXX,G))4)0!&&"QXX,G	Ir1   c           	      8   U R                   nUR                  5        GHy  u  p#SU-  SU-  U[        R                  -
  4 H  nX$-   nUR	                  UR                  US95      nU R                  UR                  S5        UR                  [        R                  S9R                  U5      nU R                  Xv5        UR                  5       nU R                  UR                  S S9XX-   5        U R                  UR                  [        R                  5      UR                  [        R                  S95        M     [        R                  * U4 HC  nX$-   nUR                  US9nUR	                  U5      nU R                  UR                  S5        ME     GM|     g )Nr   r  r   r   )r   r

  r   r  r   rH  r,   r  r   r5   r  r
  r   	r-   r   r   r	  r  udtr	  adtr   s	            r.   
test_foldsZoneInfoTest.test_folds  sM   WWIB%iuei6J6J.JKfjjB!78  1-kkk6AA"E))#3MMO	  D!93?K))#..*F*-++X\\+*JL L !+++U3fkkk,jjo  1-	 4 $r1   c           	         U R                   nUR                  5        GH  u  p#SU-  SU-  U[        R                  -
  4 GH0  nX$-   nUR	                  US9nUR                  U5      nU R                  UR                  S5        UR	                  [        R                  S9R                  U5      nU R                  Xv5        UR                  5       nU R                  UR	                  S S9UR	                  S S9U-   5        UR                  UR	                  US95      U-
  U-   nU R                  UR	                  SS9R                  5       UR	                  SS9R                  5       SU-  5        GM3     [        R                  * U4 HA  nX$-   nUR                  UR	                  US95      nU R                  UR                  S5        MC     GM     g )Nr   r  r   r   r  zAt %s.)r   r
  r   r  rH  r   r,   r  r   r5   r  r
  r   
assertLessr
  s	            r.   	test_gapsZoneInfoTest.test_gaps  s   WWIB%iuei6J6J.JKfkkk,jjo  1-kkk6AA"E))#3MMO	  D!93;;d;;SV_;_`jj2!67%?!C 3 = = ? # 3 = = ? (30 L !+++U3fjjB!78  1- 4! #r1   tzsetz"time module has no attribute tzsetc           	         SU R                   ;   d   U R                   R                  S5      (       a  U R                  SU R                   -  5        U R                  n[        R
                  R                  S5      nU R                   [        R
                  S'    [        R                  " 5         UR                  5        GH  u  p4UR                  S:  a    GOU[        SSS5      -
  [        -  nU[        -  nSS	S
SUS-
  US-   US-   4 Hr  nXW-   n[        R                  " U5      n	[        R                  " X5      R                  S S9n
U R                  X5        U	R!                  5       nU R#                  X5        Mt     US:  d  M  [        R                  " U5      US-  -
  nUR!                  5       nUR                  SS9R!                  5       nU R#                  XUS-  -   5        U R#                  XUS-  -
  5        UR%                  [&        R(                  5      nUR                  SS9R%                  [&        R(                  5      nU R#                  UU[+        SU5      -   5        GM     Uc  [        R
                  S	 OU[        R
                  S'   [        R                  " 5         g ! Uc  [        R
                  S	 OU[        R
                  S'   [        R                  " 5         f = f)NRiyadh8zright/zSkipping %sTZi  r    r   iir@  r   i@ i2 r   r]   r  )r	  rE   rO   r   r	  environgetrw  r(
  r	  r  r   r	  r  rH  r
  r)  r,   r  r   r5   r   )r-   r   r+
  r 
  r	  rm	  rs  r  r  sdttzdtr  r   ts0ts1utc0utc1s                    r.   test_system_transitions$ZoneInfoTest.test_system_transitions  sW    & ((22MM-$--78WWZZ^^D!==

4!	KKM nn.
88t# HT1a00S8c\$hAq&"y."y.BAA"003C#11!8@@@MD--c8B$$Q+B 6!//3eai?B,,.C**!*,668C$$SrAv+6$$SrAv+6==6D::1:-88FD$$T4)Ar2B+BC3 /6 zJJt$#%

4 KKM	 zJJt$#%

4 KKMs   C*J* C&J* *?K)r  N)rN   rh   ri   rj   r	  r  r
  r"
  r&
  rE  
skipUnlessr   rw  r4
  rk   r#   r1   r.   r
  r
    sI    !HDI.,.. w!E..r1   r
  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )ZoneInfoCompleteTesti"  c                 6  > / n[        S5      (       aw  [        R                  5        H_  n[        SU-  [        40 5      nX#l        [        U5       H2  nUR                  S5      (       d  M  UR                  U" U5      5        M4     Ma     [        TU ])  U5        g )NtzdatazZoneInfoTest[%s]test_)r   r	  r	  r   r
  r	  r:   rE   r=  superr{   )r-   r^  rH   TestmethodrM   s        r.   r{   ZoneInfoCompleteTest.__init__#  s    x(( **,.5K $!$iF((11T&\2 ( - 	r1   r#   )rN   rh   ri   rj   r{   rk   __classcell__)rM   s   @r.   r8
  r8
  "  s    	  	 r1   r8
  c                       \ rS rSrSrSrg)IranTesti/  zAsia/Tehranr#   N)rN   rh   ri   rj   r	  rk   r#   r1   r.   rB
  rB
  /  s    Hr1   rB
  zneed _testcapi modulec                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)CapiTesti3  c                     U R                   R                  R                  S5      (       a  U R                  S5        [        R
                  " 5         g NPurezNot relevant in pure Python)rM   rN   rF   rO   	_testcapitest_datetime_capir6   s    r.   r  CapiTest.setUp5  s8    >>""++F33MM78 	$$&r1   c                     S HQ  n[         R                  " U5      nU R                  US9   U R                  U[        R
                  5        S S S 5        MS     g ! , (       d  f       Me  = f)NTF)	use_macro)rH
  get_timezone_utc_capirk  r4   r   r5   )r-   rM
  capi_utcs      r.   test_utc_capiCapiTest.test_utc_capi>  sM    &I 66yAH	2h5 32 ' 32s   !A
A(	c           
      d   [         R                  " 5       u  pn[        [        SS9S5      n[        [        SS95      nSX4SX$4SX54/nU H  u  pxn	U R	                  US9   U R                  X5        [        SS	S
US9n
[        SS	S
U	S9nU R                  X5        U R                  U
R                  5       UR                  5       5        [        SS	S
S[        R                  S9nU R                  U
R                  [        R                  5      U5        S S S 5        M     g ! , (       d  f       M  = f)Nr?  r   r   est_capi	est_macroest_macro_nn)rH   r  r]   r_   r   rZ   )
rH
  make_timezones_capir   r   rk  r,   r   r   r5   r  )r-   rS
  rT
  rU
  	exp_namedexp_unnamedcasesrH   tz_acttz_expr   r  r  s                r.   test_timezones_capiCapiTest.test_timezones_capiE  s   ,5,I,I,K)\YR0%8	yr23 -)/\7
 %* D&4(  0tQ&9tQ&9  *  szz|<!$1aE  !=vF )( %*((s    B3D  
D/	c                     " S S[         5      n[         U4 H  nS H  nU" U6 nU R                  X#S9   [        R                  " U5      u  pVnU R	                  XTR
                  5        U R	                  XdR                  5        U R	                  XtR                  5        S S S 5        M     M     g ! , (       d  f       M  = f)Nc                       \ rS rSrSrg)=CapiTest.test_PyDateTime_DELTA_GET.<locals>.TimeDeltaSubclassi`  r#   Nr/  r#   r1   r.   TimeDeltaSubclassr`
  `  rQ  r1   ra
  )r   7   韆 rb
  r  r   )r   rk  rH
  PyDateTime_DELTA_GETr,   r  r  r  )r-   ra
  klassr   r  r  r  r  s           r.   test_PyDateTime_DELTA_GET"CapiTest.test_PyDateTime_DELTA_GET_  s    		 	  !23E:4L\\e\72;2P2PQR2S/D<$$T662$$Wii8$$\>>B 87 ; 4 87   A+B00
B?c                     " S S[         5      n[         U4 H  nS H  nU" U6 nU R                  X#S9   [        R                  " U5      u  pVnU R	                  XTR
                  5        U R	                  XdR                  5        U R	                  XtR                  5        S S S 5        M     M     g ! , (       d  f       M  = f)Nc                       \ rS rSrSrg)2CapiTest.test_PyDateTime_GET.<locals>.DateSubclassin  r#   Nr/  r#   r1   r.   rP  rm
  n  rQ  r1   rP  ))r  r   r]   )r   r]   r  re
  )r   rk  rH
  PyDateTime_GETr,   r  r  r%  )r-   rP  rg
  r   r  r  r  r%  s           r.   test_PyDateTime_GETCapiTest.test_PyDateTime_GETm  s    	4 	 L)E54L\\e\7'0'?'?'B$D$$T662$$UGG4$$S%%0 87 6 * 87rj
  c           
      "    " S S[         5      n[         U4 H  nSSSSSSS	S
[        R                  44 H  nU" U6 nU R                  X#S9   [        R
                  " U5      u  pVpxn	U R                  XTR                  5        U R                  XdR                  5        U R                  XtR                  5        U R                  XR                  5        U R                  XR                  5        S S S 5        M     M     g ! , (       d  f       M  = f)Nc                       \ rS rSrSrg);CapiTest.test_PyDateTime_DATE_GET.<locals>.DateTimeSubclassi|  r#   Nr/  r#   r1   r.   rg  rs
  |  rQ  r1   rg  )  r  r   r6  r   rc
  rd
  rt
  r  r   r6  r   rc
  rd
  re
  )r   r   r5   rk  rH
  PyDateTime_DATE_GETr,   r  rt  rs  r  r4   r   )
r-   rg  rg
  r   r  r  rt  rs  r  r   s
             r.   test_PyDateTime_DATE_GET!CapiTest.test_PyDateTime_DATE_GET{  s    	x 	  01E92r2r5",,() 4L\\e\7,5,I,I!,L >D&v $$T662$$VXX6$$VXX6$$[--@MM&((3 87	) 2
 87s   B"C??
Dc                     " S S[         5      n[         U4 H  nSSSSS[        R                  44 H  nU" U6 nU R                  X#S9   [        R
                  " U5      u  pVpxn	U R                  XTR                  5        U R                  XdR                  5        U R                  XtR                  5        U R                  XR                  5        U R                  XR                  5        S S S 5        M     M     g ! , (       d  f       M  = f)	Nc                       \ rS rSrSrg)7CapiTest.test_PyDateTime_TIME_GET.<locals>.TimeSubclassi  r#   Nr/  r#   r1   r.   r  rz
    rQ  r1   r  )r   rh  rv  r!   r   rh  rv  r!   re
  )r   r   r5   rk  rH
  PyDateTime_TIME_GETr,   r  rt  rs  r  r4   r   )
r-   r  rg
  r   r  r  rt  rs  r  r   s
             r.   test_PyDateTime_TIME_GET!CapiTest.test_PyDateTime_TIME_GET  s    	4 	 L)E)b"b(,,794L\\e\7.7.K.KA.N >D&v $$T662$$VXX6$$VXX6$$[--@MM&((3 879 * 87s   	B"C<<
Dc                    [         R                  " 5       u  pnU R                  SS9   U R                  U[        R
                  5        S S S 5        U R                  SS9   U R                  U[        R
                  5        S S S 5        U R                  SS9   U R                  U[        R
                  5        [	        [        SS9S5      nU R                  X45        [        SS	S
US9n[        SS	S
US9nU R                  XV5        U R                  UR                  5       UR                  5       5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr2
  )testnamer3
  non_utcr   r   r4  r  r]   r_   r   )rH
  get_timezones_offset_zerork  r4   r   r5   r"  r   r,   r   r   )r-   r2
  r3
  r
  non_utc_expr   r  s          r.   test_timezones_offset_zero#CapiTest.test_timezones_offset_zero  s   'AACG\\6\*MM$- + \\6\*MM$- + \\9\-Whll3"91#5r:KW24Ag6C4Ak:CS&SZZ\3::<8 .- +* +* .-s$   !D= !EBE=
E
E
E-c           
          " S S[         5      n[        SSS5      nU" SSS5      n[        SSS5      n[        R                  nU R	                  U" U5      5        U R	                  U" U5      5        U R	                  U" U5      5        U R	                  U" US5      5        U R                  U" US5      5        U R                  U" US5      5        [        5       [        5       SS[        S5      [        R                  [        SS5      /nU H;  nS	 H2  nU R                  XxS
9   U R                  U" Xx5      5        S S S 5        M4     M=     g ! , (       d  f       MJ  = f)Nc                       \ rS rSrSrg).CapiTest.test_check_date.<locals>.DateSubclassi  r#   Nr/  r#   r1   r.   rP  r
    rQ  r1   rP    r   T
2011-01-01r   r   rL
  argexact)r   r   rH
  datetime_check_dater   r   r:  r  r   r   r5   r   rk  )	r-   rP  r  dsr   is_dater   r
  r
  s	            r.   test_check_dateCapiTest.test_check_date  s%   	4 	 q!$1%dAq!// 	
#$$4() 	T*+T*+ L!hllDRL:C&\\c\7$$WS%89 87 ' 77s   $E
Ec                 D    " S S[         5      n[        SS5      nU" SS5      n[        R                  nU R                  U" U5      5        U R                  U" U5      5        U R                  U" US5      5        U R	                  U" US5      5        [        5       [        5       SS[        S5      [        R                  [        SSS5      /nU H;  nS	 H2  nU R                  XgS
9   U R	                  U" Xg5      5        S S S 5        M4     M=     g ! , (       d  f       MJ  = f)Nc                       \ rS rSrSrg).CapiTest.test_check_time.<locals>.TimeSubclassi  r#   Nr/  r#   r1   r.   r  r
    rQ  r1   r  r   rh  Tr   r
  r
  rL
  r
  )r   rH
  datetime_check_timer   r   r:  r  r   r   r5   r   rk  )r-   r  r   r  is_timer   r
  r
  s           r.   test_check_timeCapiTest.test_check_time  s    	4 	 RL"b!// 	
#$4() 	T*+ L!hllDq!,<> C&\\c\7$$WS%89 87 ' 77   'D
Dc                 P    " S S[         5      n[        SSSSS5      nU" SSSSS5      n[        R                  nU R                  U" U5      5        U R                  U" U5      5        U R                  U" US5      5        U R	                  U" US5      5        [        5       [        5       SS[        S5      [        R                  [        SSS5      /nU H;  nS	 H2  nU R                  XgS
9   U R	                  U" Xg5      5        S S S 5        M4     M=     g ! , (       d  f       MJ  = f)Nc                       \ rS rSrSrg)6CapiTest.test_check_datetime.<locals>.DateTimeSubclassi  r#   Nr/  r#   r1   r.   rg  r
    rQ  r1   rg  r
  r   r   rh  Tr
  rL
  r
  )r   rH
  datetime_check_datetimer   r   r:  r  r   r   r5   r   rk  )r-   rg  r   r   is_datetimer   r
  r
  s           r.   test_check_datetimeCapiTest.test_check_datetime  s    	x 	 dAq"b)tQ2r277 	B(C()B-. 	S$/0 L!hllDq!,<> C&\\c\7$$[%<= 87 ' 77s   -D
D%c                 D    " S S[         5      n[        S5      nU" S5      n[        R                  nU R                  U" U5      5        U R                  U" U5      5        U R                  U" US5      5        U R	                  U" US5      5        [        5       [        5       SS[        R                  [        SSS5      [        SSS5      /nU H;  nS H2  nU R                  XgS9   U R	                  U" Xg5      5        S S S 5        M4     M=     g ! , (       d  f       MJ  = f)	Nc                       \ rS rSrSrg)4CapiTest.test_check_delta.<locals>.TimeDeltaSubclassi  r#   Nr/  r#   r1   r.   ra
  r
    rQ  r1   ra
  r   Tr
  r
  rL
  r
  )r   rH
  datetime_check_deltar   r   r:  r  r   r5   r   r   rk  )r-   ra
  r  tdsis_timedeltar   r
  r
  s           r.   test_check_deltaCapiTest.test_check_delta  s    		 	 q\" 55 	R()S)*R./ 	c401 Ld4A.q!0DF C&\\c\7$$\#%=> 87 ' 77r
  c           
          " S S[         5      n[        5       nU" 5       n[        [        SS95      n[        R                  nU R                  U" U5      5        U R                  U" U5      5        U R                  U" U5      5        U R                  U" US5      5        U R                  U" US5      5        U R                  U" US5      5        [        5       [        5       SS[        SSS5      [        SSS5      /nU H;  nS	 H2  nU R                  XxS
9   U R                  U" Xx5      5        S S S 5        M4     M=     g ! , (       d  f       MJ  = f)Nc                       \ rS rSrSrg)2CapiTest.test_check_tzinfo.<locals>.TZInfoSubclassi!  r#   Nr/  r#   r1   r.   TZInfoSubclassr
  !  rQ  r1   r
  r?  r   Tr   r
  r
  rL
  r
  )r   r   r   rH
  datetime_check_tzinfor   r   r:  r  r   r   rk  )	r-   r
  r  tzisr   	is_tzinfor   r
  r
  s	            r.   test_check_tzinfoCapiTest.test_check_tzinfo   s   	V 	 hib)*33	 		#'	"&	$(	#t,- 	2t,-4./ LT1a (4A"68 C&\\c\7$$Ys%:; 87 ' 77s   E  
Ec                    [        SSS5      nS Hc  nU R                  US9   [        R                  " UUR                  UR
                  UR                  5      nU R                  X15        S S S 5        Me     g ! , (       d  f       Mw  = f)Nrt
  r  r   FTmacro)r   rk  rH
  get_date_fromdater  r  r%  r,   r-   exp_dater
  
c_api_dates       r.   test_date_from_dateCapiTest.test_date_from_date=  so    a$ EE*&88MMNNLL	"
   6 +* !**   A	A88
B	c                 t   [        SSSSSSS5      nS H  nU R                  US	9   [        R                  " UUR                  UR
                  UR                  UR                  UR                  UR                  UR                  5      nU R                  X15        S S S 5        M     g ! , (       d  f       M  = f)
Nrt
  r  r   r6  r   rc
  rd
  r
  r
  )r   rk  rH
  get_datetime_fromdateandtimer  r  r%  r  rt  rs  r  r,   r
  s       r.   test_datetime_from_dateandtime'CapiTest.test_datetime_from_dateandtimeJ  s    D!RRU; EE*&CCMMNNLLMMOOOO((*
   6 +* !**s   A5B((
B7	c                    [        SSSSSSS5      nS H  nS	 H  nU R                  X2S
9   [        R                  " UUR                  UR
                  UR                  UR                  UR                  UR                  UR                  UR                  5	      nU R                  XA5        U R                  UR                  UR                  5        S S S 5        M     M     g ! , (       d  f       M  = f)Nrt
  r  r   r6  r   rc
  rd
  r   r   r
  r
  r  )r   rk  rH
  #get_datetime_fromdateandtimeandfoldr  r  r%  r  rt  rs  r  r  r,   )r-   r
  r  r
  r
  s        r.   %test_datetime_from_dateandtimeandfold.CapiTest.test_datetime_from_dateandtimeandfold[  s    D!RRU;D$\\\9!*!N!N       ,, 	"'J $$Z:$$Z__hmmD :9 % 99s   B&C""
C1c           	      ,   [        SSSS5      nS Hn  nU R                  US9   [        R                  " UUR                  UR
                  UR                  UR                  5      nU R                  X15        S S S 5        Mp     g ! , (       d  f       M  = f)Nr6  r   rc
  rd
  r
  r
  )	r   rk  rH
  get_time_fromtimer  rt  rs  r  r,   )r-   exp_timer
  
c_api_times       r.   test_time_from_timeCapiTest.test_time_from_timeo  sz    BE* EE*&88MMOOOO((*
   6 +* !**s   AB
B	c                    [        SSSS5      nS H  nS H  nU R                  X2S9   [        R                  " UUR                  UR
                  UR                  UR                  UR                  5      nU R                  XA5        U R                  UR                  UR                  5        S S S 5        M     M     g ! , (       d  f       M  = f)Nr6  r   rc
  rd
  r
  r
  r
  )
r   rk  rH
  get_time_fromtimeandfoldr  rt  rs  r  r  r,   )r-   r
  r  r
  r
  s        r.   test_time_from_timeandfold#CapiTest.test_time_from_timeandfold}  s    BE*D$\\\9!*!C!C    ,, "'J $$Z:$$Z__hmmD :9 % 99s   BB>>
Cc                    [        SSS5      nS Hc  nU R                  US9   [        R                  " UUR                  UR
                  UR                  5      nU R                  X15        S S S 5        Me     g ! , (       d  f       Mw  = f)Nr   rc
  rd
  r
  r
  )r   rk  rH
  get_delta_fromdsur  r  r  r,   )r-   	exp_deltar
  c_api_deltas       r.   test_delta_from_dsuCapiTest.test_delta_from_dsu  ss    b"e,	 EE*'99NN%%**	,   8 +* !**r
  c           
         [        SSS5      R                  5       nS HX  nU R                  US9   [        R                  " [        U5      U5      nU R                  U[        SSS5      5        S S S 5        MZ     g ! , (       d  f       Ml  = f)N  r_   r   r
  r
  )r   r)  rk  rH
  get_date_fromtimestamprt   r,   r   )r-   r  r
  r  s       r.   test_date_from_timestamp!CapiTest.test_date_from_timestamp  so    dAr",,. EE*44SWeD  Dq"$56 +* !**s   >A;;
B
	c                 ~   SSS[        [        SS95      S4SSS	[        [        SS95      S4/n[        R                  nU Hg  nS
 H^  nU R	                  X4S9   Uu  pVn[        USU06n[        UR                  5       5      n	U" XXt5      n
U R                  X5        S S S 5        M`     Mi     g ! , (       d  f       Mv  = f)N)r
  r_   r   NF)r
  NTr
  r   r   T)r
  r_   r   r  rh  NF)r
  NTr
  r
  )caser
  r   )	r   r   rH
  get_datetime_fromtimestamprk  r   rt   r)  r,   )r-   rY
  re  r
  r
  dtupr   usetzdt_origr  rJ  s              r.   test_datetime_from_timestamp%CapiTest.test_datetime_from_timestamp  s    ('HYQ%78$?0/"HYQ-?$@$G
 #==D$\\t\9*.'D%&<V<GW..01B*2uDE$$W4 :9 % 99s   AB--
B<c                    [         R                  S:X  a  SnOSn[        R                  " S[        S L  SU S35      n[        c)  [
        R                  " U5      nU R                  US5        g S Hf  nU R                  U5         [        R                  " U5      R                  n[
        R                  " U40 UD6nU R                  US5        S S S 5        Mh     g ! , (       d  f       Mz  = f)	NiosAppleFrameworkLoaderExtensionFileLoaderz
            if a_  :
                import _testcapi as module
                module.test_datetime_capi()
            else:
                import importlib.machinery
                import importlib.util
                fullname = '_testcapi_datetime'
                origin = importlib.util.find_spec('_testcapi').origin
                loader = importlib.machinery.a  (fullname, origin)
                spec = importlib.util.spec_from_loader(fullname, loader)
                module = importlib.util.module_from_spec(spec)
                spec.loader.exec_module(module)

            def run(type_checker, obj):
                if not type_checker(obj, True):
                    raise TypeError(f'{type(obj)} is not C API type')

            import _datetime
            run(module.datetime_check_date,     _datetime.date.today())
            run(module.datetime_check_datetime, _datetime.datetime.now())
            run(module.datetime_check_time,     _datetime.time(12, 30))
            run(module.datetime_check_delta,    _datetime.timedelta(1))
            run(module.datetime_check_tzinfo,   _datetime.tzinfo())
        r   )isolatedlegacy)rL   rG  textwrapdedent_interpretersr   run_in_subinterpr,   rk  
new_config__dict__run_in_subinterp_with_config)r-   extension_loaderscriptretrH   configs         r.   test_type_check_in_subinterp%CapiTest.test_type_check_in_subinterp  s     <<5 54 &%& '. /?-? @	" 2  **62CS!$.\\$'*55d;DDF!>>vPPC$$S!, (' /''s   A
C
C)	r#   N)rN   rh   ri   rj   r  rP
  r\
  rh
  ro
  rv
  r|
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  rk   r#   r1   r.   rD
  rD
  3  st    '6G4C14&4$9,:8:4>4?4<:77"E(7E"975,)-r1   rD
  c                   D    \ rS rSrS r\R                  S 5       rS rSr	g)ExtensionModuleTestsi  c                 |    U R                   R                  R                  S5      (       a  U R                  S5        g g rF
  )rM   rN   rF   rO   r6   s    r.   r  ExtensionModuleTests.setUp  s/    >>""++F33MM78 4r1   c                 d   U R                  S5         [        R                  " S5      n[        R                  " SU5        S S S 5        U R                  S5         [        R                  " S5      n[        R                  " SU5        S S S 5        g ! , (       d  f       NV= f! , (       d  f       g = f)Nsimplez
                import datetime
                from _ast import Tuple
                f = lambda: None
                Tuple.dims = property(f, f)

                class tzutc(datetime.tzinfo):
                    pass
                -ccomplexa  
                import asyncio
                import datetime
                from typing import Type

                class tzutc(datetime.tzinfo):
                    pass
                _EPOCHTZ = datetime.datetime(1970, 1, 1, tzinfo=tzutc())

                class FakeDateMeta(type):
                    def __instancecheck__(self, obj):
                        return True
                class FakeDate(datetime.date, metaclass=FakeDateMeta):
                    pass
                def pickle_fake_date(datetime_) -> Type[FakeDate]:
                    # A pickle function for FakeDate
                    return FakeDate
                )rk  r
  r
  r   assert_python_okr-   r
  s     r.   test_gh_120161#ExtensionModuleTests.test_gh_120161  s    \\(#__ & F **48 $ \\)$__ & F$ **48' %$ $# %$s   .B.B!
B!
B/c                 ^    [         R                  " S5      n[        R                  " SU5        g )Na}  
            import sys
            for i in range(5):
                import _datetime
                assert _datetime.date.max > _datetime.date.min
                assert _datetime.time.max > _datetime.time.min
                assert _datetime.datetime.max > _datetime.datetime.min
                assert _datetime.timedelta.max > _datetime.timedelta.min
                assert _datetime.date.__dict__["min"] is _datetime.date.min
                assert _datetime.date.__dict__["max"] is _datetime.date.max
                assert _datetime.date.__dict__["resolution"] is _datetime.date.resolution
                assert _datetime.time.__dict__["min"] is _datetime.time.min
                assert _datetime.time.__dict__["max"] is _datetime.time.max
                assert _datetime.time.__dict__["resolution"] is _datetime.time.resolution
                assert _datetime.datetime.__dict__["min"] is _datetime.datetime.min
                assert _datetime.datetime.__dict__["max"] is _datetime.datetime.max
                assert _datetime.datetime.__dict__["resolution"] is _datetime.datetime.resolution
                assert _datetime.timedelta.__dict__["min"] is _datetime.timedelta.min
                assert _datetime.timedelta.__dict__["max"] is _datetime.timedelta.max
                assert _datetime.timedelta.__dict__["resolution"] is _datetime.timedelta.resolution
                assert _datetime.timezone.__dict__["min"] is _datetime.timezone.min
                assert _datetime.timezone.__dict__["max"] is _datetime.timezone.max
                assert _datetime.timezone.__dict__["utc"] is _datetime.timezone.utc
                assert isinstance(_datetime.timezone.min, _datetime.tzinfo)
                assert isinstance(_datetime.timezone.max, _datetime.tzinfo)
                assert isinstance(_datetime.timezone.utc, _datetime.tzinfo)
                del sys.modules['_datetime']
            r
  )r
  r
  r   r  r  s     r.   test_update_type_cache+ExtensionModuleTests.test_update_type_cache  s'     " 8 	&&tV4r1   r#   N)
rN   rh   ri   rj   r  r   cpython_onlyr  r  rk   r#   r1   r.   r
  r
    s'    9  9  9D5r1   r
  c                 8    UR                  [        5       5        U$ r3   )addTestr8
  )loaderstandard_testspatterns      r.   
load_testsr  0  s    /12r1   __main__)yr   r	  rY  r	  rw  rn  r	  rK  r   r9  r	  rL   r
  rE  r  r   operatorr   r   r   r   r   r	   r
   r   r   testr   test.supportr   r   r   r   r   r   r   r+   r   r   r   r   r   r   r   r   rw  rH
  ImportErrorr
  ModuleNotFoundErrorrn  rc   r   _loadsr  r  r	  r   r	  r  r  r*  r  TestCaser'   rm   r   r   r   r   r   rt  r  r  r  r  r  r  rJ  rO  rQ  r  r-  r  ri  r  rq  r5  r  r  r  rk  rG  r  r  r  r  r  r  r  r	  r	  r$	  r%	  r&	  r'	  r)	  rB	  r	  r	  r	  r
  	TestSuiter8
  rB
  rF  rD
  r
  r  rN   main)r   s   0r.   <module>r     s      	  	   	  
     C C C  J J 7 " %      # 
 	
 fmm,  %V%<%<q%@ACAe 65)AC tQ1a( $r2r*
 ElEl5)"" 5)v &  &<; <
E$8 Ef ^/"" ^/BD8$$ DJ.7 .7fv+X->-> vx)8$$ )B4 U;&(9(9 U;vx e78 e7P+< 4 {9&(9(9 {9@]4 ]4BcE:x'8'8 cEP@C\:x/@/@ @CH |	1	qQAq!Q
 
!RQ	( (T b)eU3b)eU3b*eU3b)eU3q%# vy!,}h// }FOOx   OOn9f 9D1' 1f J6J6K6	J6/& /dOC("3"3 OCb 1o
cv cLo8$$ od
 8-- 
 |  
d"$;<o-x   o- =o-dG58,, G5T
 zMMO [X  I  M  		Cs<   (P -P 6P, )P9PPP)(P),P65P6