python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
datetimetester.cpython-311.pyc

edZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZmZmZmZmZmZmZmZmZddlmZddlmZmZmZmZddl Z!ddl m"Z"m#Z#ddl m$Z$dd	l m%Z%dd
l m&Z&ddl m'Z'ddl m(Z(dd
l m)Z)m Z ddl&Z*	ddl+Z+n
#e,$rdZ+YnwxYwddl-Z-e	j.e	j/hZ0de1e	j2dzDZ3e4e3e	j2dzksJdddigdfZ5e6dZ7e6dZ8Gdde
j9Z:Gdde%Z;Gdde;Z<Gdde<Z=Gdde%Z>Gd d!e
j9Z?Gd"d#e
j9Z@Gd$d%ZAGd&d'eAe
j9ZBGd(d)e
j9ZCGd*d+e)ZDGd,d-eAe
j9ZEGd.d/e ZFGd0d1eEZGGd2d3eGZHGd4d5e&ZIGd6d7eAe
j9ZJGd8d9ZKGd:d;eJeKe
j9ZLGd<d=eGeKe
j9ZMd>ZNe$dZOe$d?ZPe$d@ZQe$dAZRe ddBddCZSe dddDdZTGdEdFe%ZUeUdGdHdIdJZVeUdKdLdMdNZWeUdOdPdQdRZXeUdSdTdUdVZYe;ddWdZZe;dXdYdZ[GdZd[e
j9Z\Gd\d]e
j9Z]Gd^d_e%Z^Gd`dae^Z_e_dGdbdIdJZ`e_dKdcdMdNZae_dOdddQdRZbe_dSdedUdVZcGdfdge%ZdGdhdie
j9Zee$ddZfdjZgGdkdle%ZhGdmdne
j9ZiGdodpe
jjZkGdqdreiZle
jme+dudsGdtdue
j9ZndvZoepdwkre
jqdSdS)xzUTest date/time type.

See https://www.zope.dev/Members/fdrake/DateTimeWiki/TestCases
N)array)	ltlegtgeeqnetruedivfloordivmod)support)is_resource_enabled	ALWAYS_EQLARGESTSMALLEST)MINYEARMAXYEAR	timedeltatzinfo)timetimezone)UTC)datedatetimec,g|]}tt|fS)pickle).0protos  G/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/datetimetester.py
<listcomp>r$/s5CCC65)CCC
g@A@abcrinfnanc,eZdZdZdZdZdZdZdS)
TestModulect}||jd||jddS)Nr&')datetime_moduleassertEqualrr)selfrs  r#test_constantszTestModule.test_constantsBs?")1---)400000r%cP|ttjdSN)assertIsrrutcr1s r#test_utc_aliaszTestModule.test_utc_aliasGs

c8<(((((r%cxtt}tjD]}|||dS)z2Test that __all__ only points to valid attributes.N)dirr/__all__assertIn)r1	all_attrsattrs   r#test_allzTestModule.test_allJsB((	#+	+	+DMM$	****	+	+r%cd|jjvr|dt}t	dt|D}t	gd}|||z
t	gdS)N_Purez"Only run for Fast C implementationc3nK|]0}|d|d,|V1dS)__N)
startswithendswith)r!names  r#	<genexpr>z/TestModule.test_name_cleanup.<locals>.<genexpr>UsdNNT??400N9=t9L9LNDNNNNNNr%)rrrr
datetime_CAPIrrrrrsys)	__class____name__skipTestr/setr:r0)r1rnamesalloweds    r#test_name_cleanupzTestModule.test_name_cleanupPsdn---MM>???"NNS]]NNNNN///00	
#b''22222r%cd|jjvr|dtj}||ddd||ddd||ddd	||d
dd||ddd||d
dd	||ddd	||ddd||dd
d||dd
d	||ddd	||ddd||dd
d||dd
d	dS)N_Fastz'Only run for Pure Python implementationr')rJrKrLr/_divide_and_roundr0)r1dars  r#test_divide_and_roundz TestModule.test_divide_and_round\sdn---MMCDDD/S"q)))QR(((	
QA&&&RR(((QR(((Ra(((	
RQ'''S!b)))Rb)))S"q)))QA&&&RR(((QR(((Ra(((((r%N)rK
__module____qualname__r2r8r?rPrarr%r#r,r,@s_111
)))+++
3
3
3)))))r%r,c.eZdZddZdZdZdZdZdS)	FixedOffset*ct|trt|}t|trt|}||_||_||_dSNminutes)
isinstanceintr_FixedOffset__offset_FixedOffset__name_FixedOffset__dstoffsetr1offsetrF	dstoffsets    r#__init__zFixedOffset.__init__}sbfc""	/v...Fi%%	5!)444I
$r%c4|jSr4)rnlowerr7s r#__repr__zFixedOffset.__repr__s{  """r%c|jSr4)rmr1dts  r#	utcoffsetzFixedOffset.utcoffset
}r%c|jSr4)rnrxs  r#tznamezFixedOffset.tznames
{r%c|jSr4)rorxs  r#dstzFixedOffset.dstsr%Nrf)rKrbrcrsrvrzr}rrr%r#rere{sd%%%%###     r%receZdZddZdS)PicklableFixedOffsetNc@t||||dSr4)rersrps    r#rszPicklableFixedOffset.__init__s"T64;;;;;r%)NNNrKrbrcrsrr%r#rrs(<<<<<<r%rceZdZdZdS)PicklableFixedOffsetWithSlots)rmrnspamN)rKrbrc	__slots__rr%r#rrsDIIIr%rceZdZdZdS)_TZInfoc(tjSr4)random)r1r/s  r#rzz_TZInfo.utcoffsets}r%NrKrbrcrzrr%r#rrs#r%rc8eZdZdZdZdZdZdZdZdZ	dS)	
TestTZInfoc
t}tddddddd|}|t5|ddddS#1swxYwYdS)NrX rUr)rrassertRaises	TypeErrorrz)r1tz1dt1s   r#test_refcnt_crash_bug_22044z&TestTZInfo.test_refcnt_crash_bug_22044siitQBAq#66


y
)
)		MMOOO																		sA!!A%(A%ct}tj}|t|j||t|j||t|j|dSr4)rrmaxrNotImplementedErrorr}rzr)r1uselessrys   r#test_non_abstractnessz TestTZInfo.test_non_abstractnesssl((
\-w~rBBB-w/@"EEE-w{B?????r%cGddt}|t|t|dd}||tt	j}|t|j||t|j	||t|j
|dS)NceZdZdZdS)9TestTZInfo.test_subclass_must_override.<locals>.NotEnoughc"||_||_dSr4)_NotEnough__offset_NotEnough__name)r1rqrFs   r#rszBTestTZInfo.test_subclass_must_override.<locals>.NotEnough.__init__s &
"r%Nrrr%r#	NotEnoughrs#
#
#
#
#
#r%rrUNotByALongShot)r
assertTrue
issubclassassertIsInstancernowrrr}rzr)r1rr	rys    r#test_subclass_must_overridez&TestTZInfo.test_subclass_must_overrides	#	#	#	#	#	#	#	#	

9f55666
Yq*
+
+b&)))
\^^-ry"===-r|R@@@-rvr:::::r%ctdd}||ttjdfD]}|||td|||d||	|tddS)NrUThreerirf)
rerrrrr0rzrr}r)r1forys   r#test_normalzTestTZInfo.test_normals
G
$
$b&))),..$&	@	@BR\\"--y/C/C/CDDDRYYr]]G444RVVBZZ2)>)>)>????	@	@r%cJtjt}|t|ttD]Y\}}}|||}||}|t|tZdSr4)r__new__r5typepickle_choicesdumpsloads)r1origpickler	unpicklerr"greenderiveds       r#test_pickling_basezTestTZInfo.test_pickling_bases~f%%

d4jj&))))7	1	1%GYMM$..Eooe,,GMM$w--0000	1	1r%ctd}t|dfft|dfft|fft|dfffD]\}}||}|d}||t|t|||	|
d||	|d|tD]\}}}|||}	|
|	}
||
t|t|
||	|

d||	|
d||t|
ddS)NricookieESTr)rrrrr}rrr5rr0rzrrrassertFalsehasattr)r1rqotypeargsronamerrr"rrs           r#test_pickling_subclassz!TestTZInfo.test_pickling_subclasss4(((
!FH#56
*VX,>?
y!
'	)	;	;KE4
5$<DKK%%E!!$///MM$t**e,,,T^^D116:::T[[..666-;
;
;)E

dE22#//%00%%gv666

d7mmU333  !2!24!8!8&AAA  !5!5u===  &!9!9::::
;	;	;r%ctdxGfddt}|}tddddd|	}||}|||z
|dS)
Nr&hoursc.eZdZdZfdZfdZdZdS)0TestTZInfo.test_issue23600.<locals>.UKSummerTimez~Simple time zone which pretends to always be in summer time, since
                that's what shows the failure.
            cSr4r)r1ry	DSTOFFSETs  r#rzz:TestTZInfo.test_issue23600.<locals>.UKSummerTime.utcoffsets	  r%cSr4r)r1ryDSTDIFFs  r#rz4TestTZInfo.test_issue23600.<locals>.UKSummerTime.dstsr%cdS)NUKSummerTimerrxs  r#r}z7TestTZInfo.test_issue23600.<locals>.UKSummerTime.tznames%~r%N)rKrbrc__doc__rzrr})rrsr#rrs`


!
!
!
!
!





&
&
&
&
&r%rrr[r)rrrfromutcr0rz)r1rtzutrrs     @@r#test_issue23600zTestTZInfo.test_issue23600s'a0000)	&	&	&	&	&	&	&	&6	&	&	&\^^T1b"a333JJqMMQ[[]]*A.....r%N)
rKrbrcrrrrrrrrr%r#rrs@@@;;;@@@	1	1	1;;;./////r%rcteZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdS)TestTimeZonecttdd|_ttdd|_t	ddd|_dS)N#@rACDTrVrr&)rrrrrDTr7s r#setUpzTestTimeZone.setUpsTYS1116::	YQ////774A&&r%c|j|jtjtjtjfD]8}|t||d9dSr4)	rrrr6minrr0strr}r1rs  r#test_strzTestTimeZone.test_strs\9dh</	7	7BSWWbiioo6666	7	7r%ct}|j|jtjtjtjfD]4}t|}||t|5dSr4)
r/rrrr6rrreprr0eval)r1rrtzreps    r#	test_reprzTestTimeZone.test_reprsd"9dh</	.	.BHHERe----		.	.r%cftdd}|tjdt
|tjd||tjd|dS)N;rrj)rr0rr6rzZEROrr)r1limits  r#test_class_memberszTestTimeZone.test_class_memberssB/////55t<<<//55v>>>//55u=====r%c|tjttd|tjttdd|tjttddtdtdfD]K}t|}||dtdzdLtddtdfD]E}|tt||tt|F|t5tddddn#1swxYwY|t5tddddn#1swxYwY|t5ttddddn#1swxYwY|t5ttddddn#1swxYwY|t5ttdd	ddddS#1swxYwYdS)
Nrrr&microsecondssecondsrirfABCextra)r5rr6rassertIsNotr0assertNotEqualrzr
ValueErrorrr)r1	subminuterinvalids    r#test_constructorzTestTimeZone.test_constructors

hlHYq\\$:$:;;;x	!e'D'DEEEx	!e'D'DEEE#333Yq5I5I5IJ	N	NI)$$BT 2 2Yq5I5I5I I1MMMM!!Q16	>	>Gj(G<<<j(WH====


y
)
)998D>>>999999999999999


y
)
)778B<<<777777777777777


y
)
)??8D$+?+?+????????????????


y
)
)==8D"+=+=+================


y
)
)II8D%+I+I+IIIIIIIIIIIIIIIIIIIsZF88F<?F<G99G=G=III%JJJ,KKKc|tjt||jtdSr4)rrr6rrr7s r#test_inheritancezTestTimeZone.test_inheritance's8hlF333dh/////r%c@|j}dD]z}|tz}||t||||t||{|t5|jddddn#1swxYwY|t5|jdddddS#1swxYwYdS)N)rg?rrV)rHOURr0rrzrrr)r1dummyhrqs    r#test_utcoffsetzTestTimeZone.test_utcoffset+sC	J	JAXFVXf%5%5%?%?%F%FGGGfWhw&7&7&A&A%&H&HIIII


y
)
)AA48+=+=b+A+A+AAAAAAAAAAAAAAAA


y
)
)@@48+=+=a+@+@+@@@@@@@@@@@@@@@@@@@s$CC

C
+DDDc|tj|j|t5|jddddn#1swxYwY|t5|jdddddS#1swxYwYdS)NrrV)assertIsNonerr6rrrrrr7s r#test_dstzTestTimeZone.test_dst6s(,**4733444


y
)
);;48<<+;+;+;;;;;;;;;;;;;;;;


y
)
)::48<<???::::::::::::::::::s$A99A=A=CC

C
c
|dtjd|dt	jd|dtt
d|dtdtzd|dtdtzd|dttdd|d	tdtzd	d|d
tt
d
d|dttdd
d|dttdd
d|dttdd
dd|dttdd
dd|t5|j
ddddn#1swxYwY|t5|j
dddddS#1swxYwYdS)Nrz	UTC-05:00z	UTC+09:30rz	UTC-00:01riXYZzUTC+01:06:40rzUTC-01:06:40zUTC+01:06:40.000001r&zUTC-01:06:40.000001rrV)r0rr6r}rrrrrrrr7s r#test_tznamezTestTimeZone.test_tzname<s, 3 3D 9 9:::
4 0 0111 5 5d ; ;<<<hrDy&9&9&@&@&F&FGGGhsTz&:&:&A&A$&G&GHHHhy/D/D/D&E&E&L&LT&R&RSSSdE : : A A$ G GHHH8D(#;#;#B#B4#H#HIII	
)At2D2D)E)E)L)LT)R)RSSS!9Q#5#5"566==dCC	E	E	E.!)AtQ"7"788??EE	G	G	G.!9Qa#8#8"899@@FF	H	H	H

y
)
)>>48??2+>+>+>>>>>>>>>>>>>>>>


y
)
)==48??1+=+=+===================s$L''L+.L+M44M8;M8c|t5tj|jdddn#1swxYwY|t5tjddddn#1swxYwY|j|jtfD]}|j
|}||}|||z
|||||j
tjdS)Nznot datetimer)
rrrr6rrrrrEasternreplacer0rz)r1rutctimelocals    r#test_fromutczTestTimeZone.test_fromutcSs


z
*
*	*	*L  )))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*


y
)
)	1	1L  000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	18TY0	C	CBgooRo00GJJw''EUW_bll5.A.ABBBU!W__HL_AA
C
C
C
C		C	Cs#%AAA1 BB!$B!c|tttt|tttt|tdtztdtzd|t5ttttkdddn#1swxYwY|tttth|ttdk|	ttdktt}||tk|	|tk||tk|	|tk||tk|	|tk|	|tk||tk|	|tk||tkdS)Nrr)
rrrrr0rrr<rrrrrrs  r#test_comparisonzTestTimeZone.test_comparison_s)HTNNHTNN;;;$$888"t),,hrDy%.H.HIII


y
)
)JJ8D>>HTNN+J+JJJJJJJJJJJJJJJJ

htnnx~~&6777$.///$4/000
d^^i(((y)))W%%%g&&&g
&&&w'''h'''X
&&&x(((h'''''s+DDDcNtddd}tjtjtjfD]}||||||||||||	|||	dS)Nr&r)
rrrrr6r0r}rrzrr1rrs   r#test_aware_datetimez TestTimeZone.test_aware_datetimetsQ1<x|<	9	9BRYYq\\YYbY1188::
<
<
<R\\!__YYbY11;;==
?
?
?RVVAYYYYbY115577
9
9
9
9	9	9r%c|j|jtjtjfD]O}t
D]E\}}}||||}|||FPtj	}t
D]E\}}}||||}|
||FdSr4)rrrrrrrrr0r6r5)r1rrrr"tz_copys      r#test_picklezTestTimeZone.test_pickles)TXx|X\A	.	.B-;
.
.)E#//'--E*B*BCC  "----
.\)7	'	'%GYoogmmB&>&>??GMM'2&&&&	'	'r%c|j|jtjtjfD],}tj|}|||-tj}tj|}|||dSr4)	rrrrrcopyr0r6r5r1rrs   r#	test_copyzTestTimeZone.test_copysv)TXx|X\A	*	*BimmGWb))))
\)B--

gr"""""r%c|j|jtjtjfD],}tj|}|||-tj}tj|}|	||dSr4)
rrrrrr deepcopyr0r6r5r!s   r#
test_deepcopyzTestTimeZone.test_deepcopysz)TXx|X\A	*	*BmB''GWb))))
\-##

gr"""""r%ctddtdddtddddg}|d|D|D]@}|d|	5t|dddn#1swxYwYAtd
td
d
g}|d|D|D]r}|d|	5|t
5t|dddn#1swxYwYdddn#1swxYwYsdS)Nrrrrrjr?Brrjrrcg|]}|Srrr!deltas  r#r$z7TestTimeZone.test_offset_boundaries.<locals>.<listcomp>s<<<uUF<<<r%good)	test_typer,rr&)rrcg|]}|Srrr+s  r#r$z7TestTimeZone.test_offset_boundaries.<locals>.<listcomp>sDDD5DDDr%bad)rextendsubTestrrr)r1time_deltasr,bad_time_deltass    r#test_offset_boundariesz#TestTimeZone.test_offset_boundariess1
B+++BB777BBVLLL

	<<<<<=== 	 	 Ee<<
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

BBQ///
	DDODDDEEE$	$	$EU;;
$
$&&z22$$UOOO$$$$$$$$$$$$$$$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$	$	$sH0BB	B	3ED*E*D..E1D.2EE	E	c|tjt|tt	dtdS)Nr&r)rrr6rrr7s r#test_comparison_with_tzinfoz(TestTimeZone.test_comparison_with_tzinfosS	
HL&((333HYQ%7%7%788&((CCCCCr%N)rKrbrcrrrrrrrr	rrrrrr"r%r6r8rr%r#rrs!'''
777
...>>>JJJ$000AAA;;;>>>.
C
C
C(((*	9	9	9'''######$$$2DDDDDr%rceZdZdZdZdS)HarmlessMixedComparisonc|ddd}||dk||dk|d|k|d|k||ddg|g|g|ddgg||tk||tk||t
k||t
k||t
k||t
k||tk||tk||tk||tkdS)Nr&r)theclassrrr<rrrr1mes  r#test_harmless_mixed_comparisonz6HarmlessMixedComparison.test_harmless_mixed_comparisons
]]1a
#
#r"""b!!!r"""b!!!

b1b"b/***

b2q"b/***	
i(((y)))	
W%%%g&&&g
&&&w'''h'''X
&&&x(((h'''''r%c|ddd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd	dS)
Nr&cdkSNrrr?sr#<lambda>zGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>R"Wr%cdkSrCrrDsr#rEzGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>R2Xr%cdkSrCrrDsr#rEzGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>rFr%cdkSrCrrDsr#rEzGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>rHr%cdkSrCrrDsr#rEzGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>rFr%cdkSrCrrDsr#rEzGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>rHr%cdkSrCrrDsr#rEzGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>rFr%cdkSrCrrDsr#rEzGHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>rHr%)r=rrr>s @r#test_harmful_mixed_comparisonz5HarmlessMixedComparison.test_harmful_mixed_comparisons
]]1a
#
#)____555)%5%5%5%5666)____555)%5%5%5%5666)____555)%5%5%5%5666)____555)%5%5%5%566666r%N)rKrbrcr@rOrr%r#r:r:s2(((:77777r%r:ceZdZeZdZdZdZej	dZ
dZdZdZ
dZd	Zd
ZdZdZd
ZdZdZej	dZdZdZdZdZdZdZdZdZdZdZ dZ!dS)
TestTimeDeltac*|j}t}|||ddddddd||d|d||dd|d||ddd|d||d|d||d|d	
||d
|d||d|d||d|d
||d|d
||d|d||d|d
||d
|d||d|d||d|d||d|ddS)Nr)weeksdaysrrjrmillisecondsrr&rTrrrSrXr/r<rirUg$I$I?gUUUUUU?g?gMbP?)r0r)r1rtds   r#rzTestTimeDelta.test_constructors


	2244!!1a!"444	5	5	5
22a55""!***
22a88RR]]]###
22aA;;***+++
22A;;;


###
221:::rr|||$$$
22A;;;2'''
22a===""R...)))
22a===""$///000
221rrt444555	22E???BBAJJJ'''
226???BBQKKK(((
22FRR]]]+++
22frr!}}}---
22ebba000111
225!!!221#5#5#566666r%c|j}t}|d}|dd}|ddd}|||z|z|ddd|||z
|dd||||dd|||d||
|d|||dd|||dd	d
|t|||t||||dd|||ddd|||d
z|d||d
zd
|z||d
zd
|z||d
z|dd|d
|z|dd||d
z|dd||d
z|ddd|d
|z|ddd||d
z|ddd||dz|||dz||z
||dz||z||dz|dzdz||dzd|zdz||dz|dd|d|z|dd||dz|d||d
z|dd||dz|ddd||d
z|dd||dz|ddd||dz|d||dz|dd||dz|d||d
z|dd||dz|ddd||d
z|dd||dz|ddd|d}|d|zdzd|z|d|zdzd|z|dd|zzd|z|dd|zzd|z|d|zdzd|z|d |zdzd|z||d!d"z|d#||d!d$z|d%|d|zdzd|z|d|zdzd|z|d|zd&zd|z|d |zd&zd|z|d|zdzd|z|d|zdzd|z|d|zd'zd|z|d|zd'zd|zt	d(d
D]'}|||zdz|zt|dz(t	d(d
D]'}|||zdz|zt|dz(||d!d)z|d%||d*d	d+|d*d	d,z
|ddd||d*dd|d*ddz
|ddddS)-NrXrrXrYr]iDQrZrQX>Qir'FiX'rWr/r&i@i6i@?xrrUrYrVrTrr翶~Ϛ?@g6+1?iS	g@grSg`""K?-?ɚ;r(>B)r0r__rsub__absrangeround)r1rr[abcusis        r#test_computationszTestTimeDelta.test_computationssC


BqEEBq"IIBq!TNN
1Q3q5""QD//"""
1Q31l##$$$
1::a==""Q--...
A2rr"vv
A2rr!uu



A2rr"l##$$$
A2rr"k6**+++
3q661



3r77A
22a>>1
22aJ###
1R4B
1R4A
1R4A
1R4As
2a4As
1R4As
1R4Aq%!!!
2a4Aq%!!!
1R4Aq%!!!
1R4!
1R4!A
1R4!QB
1e9qtRi   
1e9r!tRi   
1T622a88
4622a88
1a4A
1b5""Q((
1d7BBq!QKK   
1b5""Q//"""
1g:rr!Q	**+++
1S5""R&&
1S5""Q**
1Q31
1R4Aq
1T622aA;;
1R4Ax!!!
1W9bbAy))***RQ



AbDC<2
AbDC<2
3!B$<2
3!B$<2
BrES="R%   
BrES="R%   	22a===8#RRV%<%<%<===
22a===9$bbf&=&=&=>>>	AbDA:qt
AbDA:qt
BrES="R%   
BrES="R%   
AbDB;2
AbDB;2
AbDD="R%   
AbDD="R%   sB	)	)AB"Q|U1Q3ZZ((((sB	+	+AB"R"}eAbDkk****	22a===M*BBF,C,C,CDDD	22i''""Yv*F*FF
2aA;;			
22iAIq!!4!44
2aA;;					r%cbtddD]~|tfd|tfd|tfd|tfdd|tfd|tfd	|tfd
|tfd|tfddS)
Nrfr&?czSr4rrnrrsr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>d1r%cz
Sr4rrxsr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>eryr%czSr4rrxsr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>fryr%cz
Sr4rrxsr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>gryr%rczSr4rrnzerosr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>lsTQYr%czSr4rr~sr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>msQ$Yr%czSr4rr~sr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>nsQXr%cdzS)Nrrnsr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>osQWr%cdzS)Nrrrsr#rEz<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>psQVr%)rrrZeroDivisionError)r1rnrrrs @@@r#test_disallowed_computationsz*TestTimeDelta.test_disallowed_computations_sMbMM	6	6Ai555i555i555i5555)%6%6%6%6%6777+->->->->->???+-=-=-=-=-=>>>+____===)^^^^44444r%ctd}|t|jt|t|jtdS)Nrf)rrr__mul__NAN__truediv__)r1rns  r#test_disallowed_specialz%TestTimeDelta.test_disallowed_specialrsGbMM*ai555*amS99999r%cd\}}}t|||}||j|||j|||j|dS)N)r&rXrr0rTrr)r1rTrrqr[s     r#test_basic_attributesz#TestTimeDelta.test_basic_attributesxsm$gr
tWb
)
)$'''W---"-----r%ctd}||ddD]:}t|}|||;dD]K}t|}|||tdzLdS)	NmrVg8~A)g˟$@g˟$rfrg.Ar)rrWirr&)rr0
total_seconds)r1r[rmss    r#test_total_secondsz TestTimeDelta.test_total_secondss
C
 
 
 ))++Z888N	@	@M=111BR--//????!	L	LB+++BR--//i6J6J6J1JKKKK	L	Lr%c|tdddddd}td	}|||dS)
NdrZ8rTrgArTrSrrjrrr&r)rr0r1t1t2s   r#test_carrieszTestTimeDelta.test_carriessU
C)!!$9;;;A
&
&
&R     r%ctdddddd}t}|t|t||td	z
}|td
z
}||||t|t||di}d
||<|t|d|||d
dS)NrrZrrTriz
rrXrW1rVr&rY)rr0hashlen)r1rrds    r#test_hash_equalityz TestTimeDelta.test_hash_equalitys
C)!!$9;;;[[b488,,,
ia    
iS!!!!R   b488,,,
G"Q###2"""""r%cd}t|}tD]G\}}}|||}||}|||HdS)N)r"8)rrrrr0r1rrrrr"rrs        r#
test_picklingzTestTimeDelta.test_picklingsn$)7	,	,%GYMM$..Eooe,,GT7++++	,	,r%ctdddtddd}||||k||k||k||k||kdD]8}t|}||k||k||k||k||k||k||k||k||k||k||k||k:tD]c|kd|kd|kd|kd|tfd|tfd|tfd	|tfd
|tfd|tfd|tfd
|tfdedS)NrYrUr[)rUrUrU)rYr[r[)rYrUrVFTckSr4rbadargrsr#rEz,TestTimeDelta.test_compare.<locals>.<lambda>vr%ckSr4rrsr#rEz,TestTimeDelta.test_compare.<locals>.<lambda>fr%ckSr4rrsr#rEz,TestTimeDelta.test_compare.<locals>.<lambda>rr%ckSr4rrsr#rEz,TestTimeDelta.test_compare.<locals>.<lambda>rr%ckSr4rrsr#rEz,TestTimeDelta.test_compare.<locals>.<lambda>2r%ckSr4rrsr#rEz,TestTimeDelta.test_compare.<locals>.<lambda>"r%ckSr4rrsr#rEz,TestTimeDelta.test_compare.<locals>.<lambda>rr%ckSr4rrsr#rEz,TestTimeDelta.test_compare.<locals>.<lambda>rr%)rr0rr
OTHERSTUFFrrr1rrrrs   @@r#test_comparezTestTimeDelta.test_compares|
q!Q


q!Q

R   b!!!b!!!r"""b!!!b!!!3
	'
	'DD!BOOBG$$$OOBG$$$OOB"H%%%OOB"H%%%OOB"H%%%OOB"H%%%R2X&&&R2X&&&R"W%%%R"W%%%R2X&&&R2X&&&& 
	?
	?FR6\5111R6\4000Vr\5111Vr\4000i)=)=)=)=)=>>>i)<)<)<)<)<===i)<)<)<)<)<===i)=)=)=)=)=>>>i)=)=)=)=)=>>>i)<)<)<)<)<===i)<)<)<)<)<===i)=)=)=)=)=>>>>
	?
	?r%ct}|j}|t|dd|t|dd|t|dd|t|dd|t|d	d
dd
|t|dddd|t|ddd	dd|t|dd|t|dd|t|dddddddS)Nr&z1 day, 0:00:00rz-1 day, 0:00:00rYz2 days, 0:00:00rWz-2 days, 0:00:00r:rr'z12:58:59rUr[z2:03:04irr)rSrrjrz-210 days, 23:12:34rZz0:00:00.001000rz0:00:00.000003rhr(rTrrjrrz999999999 days, 23:59:59.999999)rr0r)r1r[rs   r#rzTestTimeDelta.test_strs



3rr!uu::'(((
3rr"vv;;)***
3rr!uu::()))
3rr"vv;;*+++
3rrB33344jAAA
3rr1a000119===
3rr2r2>>>?? 	"	"	"	3rrq!!!""$4555
3rrq!!!""$4555
3rryB &((()),	.	.	.	.	.r%c	d|jjz}|t|dd|z|t|ddd|z|t|dddd	|z|t|d
d|z|t|d
|z|t|dd|z|t|ddd|z|t|ddd|zdS)N	datetime.r&z
%s(days=1)r'rYz%s(days=10, seconds=2)rSz,%s(days=-10, seconds=2, microseconds=400000)rXrz%s(seconds=60)z%s(0)rrz%s(microseconds=100))rTrz%s(days=1, microseconds=100))rrz%s(seconds=1, microseconds=100)r=rKr0rr1rFs  r#rzTestTimeDelta.test_reprsT]33dmmA..//%,	.	.	.dmmB22331D8	:	:	:dmmCF;;<<G$N	P	P	PdmmBm7788)D0	2	2	2dmmoo.. 4	)	)	)dmmm==>>/$6	8	8	8dmmmEEFF7$>	@	@	@dmmACmHHII:TA	C	C	C	C	Cr%ctdddddtdtdd	tdd
dfD]}t|}||d
|dd}t	|}|||t|j|j|j}|||dS)Nrhrrr(r6erVr&rTrrYrUrTrrr	)	rrrrDrr0rTrr)r1r[std2s    r#test_roundtripzTestTimeDelta.test_roundtrips)2r%'f>>>*---*a888!QQ???	A	&	&BRAOOALL55666!""Aq''CR%%%BGRZAACR%%%%	&	&r%cT|tjt|tjt|tjt|tjtjk|tjtd|tjtddd|tjtddddS)Nrrhr]g~.Arr&)rrrr
resolutionrr0r7s r#test_resolution_infoz"TestTimeDelta.test_resolution_infosimY777imY777i2I>>>	
	
5666	*(=(=>>>	)Y(N(NOOO-yAq/A/ABBBBBr%ctj}tj|z}||z}|t|j||t|j|tj|z
}||z
}|t|j||t|j||tdtd}|t|jd|t|jd|t|j	d|t|j	d|t|j	ddS)NctjSr4)rrrr%r#rEz-TestTimeDelta.test_overflow.<locals>.<lambda>)s
)-r%r&ʚ;geAg#B;g|=gr{>)
rrrr
OverflowError__sub____add__rrr)r1tinyr[days    r#
test_overflowzTestTimeDelta.test_overflowsM#
]T
!
d
-T:::-dU;;;
]T
!
d
-T:::-dU;;;-)?)?@@@ll-e<<<-c:::-%@@@-%@@@-%@@@@@r%ctd}|t|jt|t|jtdSNr&)rrrrINF)r1rs  r#_test_overflow_specialz$TestTimeDelta._test_overflow_special2sIll-c:::-sd;;;;;r%czt}|j}||d|d||d|d||d|d||d|d||d|d	||d
|d||d|d
||d|d||d|d||d|d||d|d||d|dd}|dz}||d|z|d||d|z|d||d|zd|z|d	||d|z|d||d|z|d||d|zd|z|d||d d |d!z||d |jzd |jz|jzdS)"Ng-C6:?rZrg-C6:gMb@?rgMb@ga2U0*C?r&ga2U0*Crg~jtX?rYg~jtXrWgƠ>rgƠ?i|tAr/g?rVg?rrTrgٿgɿrcrv)rr0r)r1r[rus_per_hour
us_per_days     r#test_microsecond_roundingz'TestTimeDelta.test_microsecond_rounding8s


	228$$$bbee,,,
229%%%rr!uu---
228$$$bba&8&8&8999
229%%%rrr':':':;;;
228$$$bba&8&8&8999
229%%%rrr':':':;;;
228$$$bba&8&8&8999
229%%%rrr':':':;;;
22i   ""!"4"4"4555
22j!!!222#6#6#6777
22frrt444555
22g 6 6 6777 2%

222j=!!!22a55)))
22B{N###RRUU+++
222j=;7779K9K9KLLL
223z>"""BBqEE***
22CO$$$bbee,,,
223z>[999222;N;N;NOOO	223RRS%9%9%9!9:::
223.BM0A2=0PQQQQQr%cvtd}||j|j|jfddS)Nrr)rr]r(r)r1r[s  r#test_massive_normalizationz(TestTimeDelta.test_massive_normalizationYsF
B
'
'
'"'2:r?0	2	2	2	2	2r%cb|td|tdd|tddd|td|tddS)Nr&rr)rrrr7s r#	test_boolzTestTimeDelta.test_bool^s	!%%%	!Q(((	!Q**+++	q1112221&&&&&r%cGfddtd}|t|||ddd}|t|||d	||z}|t|t|}|t|||j|j||j|j||j|j|t|t|||ddS)
Nc0eZdZefdZdZdS)0TestTimeDelta.test_subclass_timedelta.<locals>.Tc<|j|j|jSr4r)r[Ts r#from_tdz8TestTimeDelta.test_subclass_timedelta.<locals>.T.from_tdhsq"*bo>>>r%c`|jdz|jdzz|jdzz}t|S)Nr/g @r)rTrrrm)r1sums  r#as_hoursz9TestTimeDelta.test_subclass_timedelta.<locals>.T.as_hoursls:y2~|f,-(612Szz!r%N)rKrbrcstaticmethodrr)rsr#rrgsG

?
?
?
?\
?
"
"
"
"
"r%rr&rVr/riri)
rr5rr0rrrTrrr)r1rrt3t4rs     @r#test_subclass_timedeltaz%TestTimeDelta.test_subclass_timedeltaes		"		"		"		"		"		"		"			"		"		"QAYYY

d2hh"""+++
QB
&
&
&

d2hh""",,,
"W

d2hh	***
YYr]]

d2hh""""'***RZ000"/:::R#b''***+++++r%c	Gddt}|ddd}td}dd|ddd	fd
d|ddd	fdd
|dddfg}|D]k\}}}||5|||}||||||dddn#1swxYwYldS)NceZdZdS)6TestTimeDelta.test_subclass_date.<locals>.DateSubclassNrKrbrcrr%r#DateSubclassrDr%rr&rVrVaddc||zSr4rrrs  r#rEz2TestTimeDelta.test_subclass_date.<locals>.<lambda>
Qr%r]raddc||zSr4rrs  r#rEz2TestTimeDelta.test_subclass_date.<locals>.<lambda>
!a%r%subc||z
Sr4rrs  r#rEz2TestTimeDelta.test_subclass_date.<locals>.<lambda>rr%r[)rrr3r0r)	r1rd1r[testsrFfuncexpectedacts	         r#test_subclass_datez TestTimeDelta.test_subclass_datess					4			\$1
%
%
A


&&T1a(@(@A
''dAq)A)AB
&&T1a(@(@A
%*	9	9 D$d##
9
9d2rll  h///%%c<888
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9	9	9s9CC		C		c
Gddt}|ddddd}tdd}d	d
|ddddfd
d|ddddfdd|ddddfg}|D]k\}}}||5|||}||||||dddn#1swxYwYldS)NceZdZdS)>TestTimeDelta.test_subclass_datetime.<locals>.DateTimeSubclassNrrr%r#DateTimeSubclassrrr%rrr&rVr)rTrjrc||zSr4rrs  r#rEz6TestTimeDelta.test_subclass_datetime.<locals>.<lambda>rr%r]
rc||zSr4rrs  r#rEz6TestTimeDelta.test_subclass_datetime.<locals>.<lambda>rr%rc||z
Sr4rrs  r#rEz6TestTimeDelta.test_subclass_datetime.<locals>.<lambda>rr%r[)rrr3r0r)	r1rrr[rrFrr	r
s	         r#test_subclass_datetimez$TestTimeDelta.test_subclass_datetimes					x			
dAq"b
1
1
Ar
*
*
*&&(8(8q!R(H(HI
'')9)9$1b)I)IJ
&&(8(8q!R(H(HI
%*	=	= D$d##
=
=d2rll  h///%%c+;<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=	=	=s9CC	C	ctddd}td}|||zd|||zdtdd	
}td}|||zd|||zdtd
}|tt|||tt
||dS)Nr&r/r'rgó@irYrrjrrig@r)rr0rrr
r)r1rsecondminutezerotds     r#
test_divisionzTestTimeDelta.test_divisionsAr26661%%%VV,,,fd+++a,,,1%%%VS)))fa(((1+Wa@@@+Xq&AAAAAr%ctdd}td}||z}||tdtdd}||z}||tdtd}|tt|||t
t|d	dS
NrYrrr&rirrWrr')rr0rrrr)r1rrrrs     r#test_remainderzTestTimeDelta.test_remaindersa,,,1%%%
JIb111222b"---
KIb1112221+S!V<<<)S!R00000r%cDtdd}td}t||\}}||d||tdtdd}t||\}}||d||tdtd}|tt|||t
t|d	dSr)rdivmodr0rrr)r1rrqrrs      r#test_divmodzTestTimeDelta.test_divmodsa,,,1%%%a  1AIb111222b"---a  1BIb1112221+VQ???)VQ33333r%cd}|t5t|ddzzdddn#1swxYwY|t5t|ddzzdddn#1swxYwYdD]}|t5t||zdddn#1swxYwY|t5t||zdddn#1swxYwYdS)NcBGfddt}|S)NceZdZfdZdS)FTestTimeDelta.test_issue31293.<locals>.get_bad_float.<locals>.BadFloatcSr4r)r1	bad_ratios r#as_integer_ratiozWTestTimeDelta.test_issue31293.<locals>.get_bad_float.<locals>.BadFloat.as_integer_ratios	$$r%N)rKrbrcr+)r*sr#BadFloatr(s.%%%%%%%r%r,)float)r*r,s` r#
get_bad_floatz4TestTimeDelta.test_issue31293.<locals>.get_bad_floatsE
%
%
%
%
%
%
%5
%
%
%8::r%r&rY)rrr&rYrU)rrrr)r1r.r*s   r#test_issue31293zTestTimeDelta.test_issue31293s?			

y
)
)	3	3KK--T	2222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3


y
)
)	3	3KK--T	2222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	31	7	7I"":..
7
7mmI6666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7"":..
7
7mmI6666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7sGAAA-BBBC''C+	.C+	D33D7	:D7	cGfddt}GfddGfddtdD]G|5	t|d	
n#t$rYnwxYw	t|d	n#t$rYnwxYw	t|d	n#ttf$rYnwxYw	td	|d	zn#ttf$rYnwxYw	|d	td	zn#t$rYnwxYw	td	|d	zn#t$rYnwxYwdddn#1swxYwYIdS)
Nc8eZdZfdZfdZfdZfdZdS)-TestTimeDelta.test_issue31752.<locals>.BadIntcSr4rr1otherProds  r#rz5TestTimeDelta.test_issue31752.<locals>.BadInt.__mul__tvv
r%cSr4rr5s  r#__rmul__z6TestTimeDelta.test_issue31752.<locals>.BadInt.__rmul__r8r%cSr4rr5s  r#__floordiv__z:TestTimeDelta.test_issue31752.<locals>.BadInt.__floordiv__r8r%cSr4rr5s  r#
__rfloordiv__z;TestTimeDelta.test_issue31752.<locals>.BadInt.__rfloordiv__r8r%N)rKrbrcrr:r<r>)r7sr#BadIntr3sy





















r%r?c$eZdZfdZfdZdS)+TestTimeDelta.test_issue31752.<locals>.ProdcSr4rr1r6Sums  r#rz3TestTimeDelta.test_issue31752.<locals>.Prod.__add__suur%cSr4rrCs  r#__radd__z4TestTimeDelta.test_issue31752.<locals>.Prod.__radd__rEr%N)rKrbrcrrG)rDsr#r7rAsG











r%r7ceZdZfdZdS)*TestTimeDelta.test_issue31752.<locals>.SumcSr4r)r1r6divmodresults  r#
__divmod__z5TestTimeDelta.test_issue31752.<locals>.Sum.__divmod__s	##r%N)rKrbrcrLrKsr#rDrIs.
$
$
$
$
$
$
$r%rD)Nr)rr&rY)rrrMr&rrrW)rlr3rrr)r1r?r7rDrKs  @@@r#test_issue31752zTestTimeDelta.test_issue31752s							S														$	$	$	$	$	$	$#	$	$	$;		L<88

66!9955555 DFF1II..... DFF1II.....!:.DaLL66!99,,,!:.DF1II	!,,, DaLLFF1II--- D1














		sE;A43E;4
B>E;BE;BE;
B,)E;+B,,E;0C
	E;
CE;CE;"C>=E;>DE;DE;D21E;2
D?<E;>D??E;EE;
E,)E;+E,,E;;E?	E?	N)"rKrbrcrr=rrsrr
requires_IEEE_754rrrrrrrrrrrrrrrrrrrrr r$r0rNrr%r#rQrQsH7772QQQf555&
:::
...
L
L
L!!!###(,,,&?&?&?P...*CCC&&&&$CCCAAA,
<<<
RRRB222
''',,,>999&===&
B
B
B&
1
1
1444"777(11111r%rQceZdZdZdS)TestDateOnlyctddd}tddddd}t|j}||td||z}||||z||z}||||z||z
}||||z
|}t|j}||td||z}||||z||z}||||z||z
}||||z
dS)	Nr&rYrUr[rVrrW)rrrTr0)r1ryr,rTdt2s     r#test_delta_non_days_ignoredz(TestDateOnly.test_delta_non_days_ignored,sg
$1

q1a'(***$$y||,,,5jb4i(((bjb4i(((5jb4i((($$y}}---5jb4i(((bjb4i(((5jb4i(((((r%N)rKrbrcrUrr%r#rQrQ(s#)))))r%rQceZdZdZdS)SubclassDater&NrKrbrcsub_varrr%r#rWrWIGGGr%rWceZdZeZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)d&Z*d'Z+d(Z,d)Z-d*Z.d+Z/d,S)-TestDatec|ddd}||jd||jd||jddS)NrUr&)r=r0yearmonthrrxs  r#rzTestDate.test_basic_attributesRse
]]4A
&
&$'''1%%%#####r%c|ddd|jfD]}t|}||d|dd}t|}|||||j|j|j	}|||dS)Nr&rYrUrr)
r=todayrrrDrr0r_r`rr1ryrrTs    r#rzTestDate.test_roundtripXs==Aq))=&&((*	&	&BRAOOALL55666!""Aq''CR%%%--26::CR%%%%	&	&r%c	dD]\}}}}||||}||||j|}|||t	|drl||jd||jd||jd||jdtttdzdD]}||dd}|}|j|}||||dkrx|j|dz
}||dz
dd}||||||dz
gd}d	D]\}}	||dd}ttdd
|D]\}
}|
dkr|	r|dz
}td|dzD]t}|||
|}||||||j||dz
}udS)N))r&r&r&r&)r&rrr)rYr&r&n)irri
hourrr&rXrr)rrrrrrrrrrr))rST)r^FrrY)
r=r0	toordinalfromordinalrrfrrmicrosecondrlrrzip)
r1ymrnfromordr_d2dimisleapr`maxdayrs
             r#test_ordinal_conversionsz!TestDate.test_ordinal_conversionsfs3	9	9JAq!Q


aA&&AQ

...m//22GQ(((w''
9  q111  333  333  !4a888'719a00	6	6D

dAq))A

A**1--BQ###axxM--ac22]]462r22  B'''  1555?>>7				LD&

dAq))3355A!$U1b\\3!7!7


vA::&:aKF F1H--C

dE377A$$Q[[]]A666$$Q
(A(A!(D(DEEEFAA	
				r%c|jj|jjj}|||tfdtdz}||dz|||jdz|jj|jjj}|||tfdtdz
}||dz
|||jdz
dS)Nc4dz
Srrirnaordsr#rEz0TestDate.test_extreme_ordinals.<locals>.<lambda>ammD1H.E.Er%r&rVc4dzSrrwrxsr#rEz0TestDate.test_extreme_ordinals.<locals>.<lambda>rzr%)r=rr_r`rrhrir0rrrr)r1rornrys  @@r#test_extreme_ordinalszTestDate.test_extreme_ordinalssMMM!&!'1511{{}}
MM$A*&E&E&E&E&EFFF
	q!!!!q111DM55dQh??@@@MMM!&!'1511{{}}
MM$A*&E&E&E&E&EFFF
	q!!!!q111DM55dQh??@@@@@r%c8|tdd|tdd|t|jtdz
dd|t|jtdzdd|ddd|ddd|t|jddd|t|jddd|ddd|ddd|d	dd|t|jddd
|t|jddd|t|jddd|t|jd
dd|t|jddd|t|jddddS)Nr&rSrrrrY`	r4lr)r=rrrrr7s r#test_bad_constructor_argumentsz'TestDate.test_bad_constructor_argumentss

gq!$$$

gq!$$$*dmWQY1EEE*dmWQY1EEE

dAq!!!

dB"""*dmT1a@@@*dmT2qAAA

dAr"""

dAr"""

dAr"""*dmT1bAAA*dmT1bAAA*dmT1bAAA*dmT1bAAA*dmT1a@@@*dmT1bAAAAAr%cf|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||d|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||ddS)NrSrrr&rYrr=r0rrr1redics    r#rzTestDate.test_hash_equalitysMM$B''MM$B''Aa$q''***!fAS1%%%Q###Q###MM$Q''MM$Q''Aa$q''***!fAS1%%%Q###Q#####r%c	|ddd|ddd}|ddd}|z
}||jdtt	dddz||jd	||jd	tdtd
}|ddd|z|ddd|z|ddd|z
|ddd|z|ddd||z|ddd||z
|ddd
|d|zz|ddd|d|zz
|ddd||zz
||zz
||z
z
||z
z
||zz
||zz
||z
z
||z
z
|||z
z
dD]~|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfddS)Nr^r&rrrYAr[rrXrUrr4ruczSr4rrxsr#rEz,TestDate.test_computations.<locals>.<lambda>ryr%cz
Sr4rrxsr#rEz,TestDate.test_computations.<locals>.<lambda>ryr%czSr4rrxsr#rEz,TestDate.test_computations.<locals>.<lambda>ryr%cz
Sr4rrxsr#rEz,TestDate.test_computations.<locals>.<lambda>ryr%cz
Sr4rrnrsr#rEz,TestDate.test_computations.<locals>.<lambda>S1Wr%czSr4rrsr#rEz,TestDate.test_computations.<locals>.<lambda>rr%czSr4rrsr#rEz,TestDate.test_computations.<locals>.<lambda>QWr%czSr4rrsr#rEz,TestDate.test_computations.<locals>.<lambda>SAXr%czSr4rrsr#rEz,TestDate.test_computations.<locals>.<lambda>	Q#Xr%czSr4rrsr#rEz,TestDate.test_computations.<locals>.<lambda>
QUr%czSr4rrsr#rEz,TestDate.test_computations.<locals>.<lambda>Q!Vr%czSr4rrsr#rEz,TestDate.test_computations.<locals>.<lambda>
rr%
r=r0rTrrlrrrrr)r1rorpdiffweekrnrrrs     @@@r#rszTestDate.test_computationssMM$2&&MM$2&&MM$q##sFStT11E1E-F-F$FGGGq)))*A...ll||MM$1%%S$--a";";<<<q$--a";";<<<S$--a";";<<<#4==q!#<#<===T4==q!#<#<===T4==q"#=#=>>>RWdmmD!Q&?&?@@@RWdmmD!Q&?&?@@@!d(a...!c'Q,,,!d(a$///!c'Q---a$h$///a#g---a$h...a#g,,,a#g,,,	6	6Ai555i555i555i5555	
)_____555)_____555)_____555)%5%5%5%5%5666)%5%5%5%5%5666)]]]]333)^^^^444)]]]]33333r%c|jj}|tdtdfD]}|jj|z}||z}|t
|j||t
|j||jj|z
}||z
}|t
|j||t
|j|dS)Nr&rY)	r=rrrrrrrr)r1rr,rys    r#rzTestDate.test_overflows}'IaLL)A,,7		A		AE"U*B%KBmRZ???mRZ%@@@"U*B%KBmRZ???mRZ%@@@@		A		Ar%c"ddl}d\}}}|j|||ddddddf	}|j|}||j|||j|||j|dS)Nr)irrr)rmktimer=
fromtimestampr0r_r`r)r1rr_r`rtsrs       r#test_fromtimestampzTestDate.test_fromtimestamps'eS
T[$sAq!Q2>
?
?M''++&&&%((($$$$$r%c\dD](}|t|jj|)dSN)gZbtgZbtirrr=rr1insanes  r#test_insane_fromtimestampz"TestDate.test_insane_fromtimestamp(F
$	&	&FmT]-H$
&
&
&
&	&	&r%cBddl}tdD]\}|j}|j}|j|}||krn|jd]||kr(|||tddSdS)NrrUg?rcr)r,)rrlr=rbrsleepassertAlmostEqualr)r1rrrbr
todayagains      r#
test_todayzTestDate.test_today1s1XX		EM''))EB44R88J
""
DJsOOOOJ"":u)23)?)?)?
#
A
A
A
A
Ar%c	:tdD]	}||ddd|z|||ddd|z|dz||ddd|z|||ddd|z|dzdS)NrXr^rUr[r&rrY)rlr0r=weekday
isoweekday)r1rrs  r#test_weekdayzTestDate.test_weekdayNsq	L	LAT]]4AaC88@@BBAFFFT]]4AaC88CCEEqsKKKT]]4AaC88@@BBAFFFT]]4AaC88CCEEqsKKKK
	L	Lr%cngd}g}|D]a\}}|j|}tdD]B}|t|z}|dd|d|zfz}|||fCb|D]\}	}
||	d5||	|
dddn#1swxYwY||	d5|	}||j|j|j	f|
dddn#1swxYwYdS)N)))rr)rrr&))rrr~rr&r&))rr&rV)rrYr&))rr)rrr&))rrrg)r5r&))rr&r[)rr&r&rXrrYtuple)r
comparisonfields)
r=rlrappendr3r0isocalendarr_rr)r1week_mondays
test_casescal_dateiso_date	base_daterrnew_datenew_isorexp_isors            r#test_isocalendarzTestDate.test_isocalendarWs



".	7	7Hh%
x0I1XX
7
7$y||3"1Q3-8A;?*<<!!8W"56666
7
%	G	GJAwg66
;
;  ':::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;h77
G
GMMOO  !&!&!)!<gFFF
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G	G	Gs$	)B>>C	C	 =D))D-	0D-	c$|ddd}tj|}tj|}|t
|t||ddS)zTest that the result of datetime.isocalendar() can be pickled.

        The result of a round trip should be a plain tuple.
        r&)rr&rYN)r=r rrrr0rr)r1rpress    r#test_isocalendar_picklingz"TestDate.test_isocalendar_picklingusu

MM$1%%L))l1oocE***l+++++r%c(d}ttt|}g}t	dD]}|d|zdd}|d|zdd}||dd|dd|ddkr|||||dS)	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
        rSrri@r&r)	sortedmaprlsplitrlr=r0rr)r1ISO_LONG_YEARS_TABLEiso_long_yearsLrrrrs       r#test_iso_long_yearszTestDate.test_iso_long_yearss 2 C)=)C)C)E)E F FGGs		A

d1fb"--AtAvr2..BQ]]__QRR0"..2B2B1222FGGG}}q!R''N+++++r%c|ddd}||ddS)NrYrUz
0002-03-02)r=r0	isoformatr1rs  r#test_isoformatzTestDate.test_isoformats;MM!Q""55555r%c|ddd}||ddS)Nr^rUrYzSat Mar  2 00:00:00 2002)r=r0ctimers  r#
test_ctimezTestDate.test_ctimes<MM$1%%$>?????r%cb|ddd}||dd||dd||dd|t|j|t|jdd	|t|jd
||dd||d
ddD](}	||#t
$rY%wxYw	|dn#t$rYnwxYw|ddS)NrUrYm:%m d:%d y:%yzm:03 d:02 y:05rxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxonetworf%m03	'%z' '%Z''' '')z%e%z%#u%y%mz%f)r=r0strftimerrrUnicodeEncodeError)r1rfs   r#
test_strftimezTestDate.test_strftimesMM$1%%$4557GHHHB,,,H--x888)QZ000)QZ>>>)QZ444	
D))4000	
K00':::#		A


1







	
JJ|$$$$!			D		


4s$
E##
E0/E04F


FFc|ddd}	tjdn%#t$r|dYnwxYw||dtjd|||dtjd|dS)NrrUrYrz'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)r=_timerrrLr0	timetuplers  r#test_strftime_trailing_percentz'TestDate.test_strftime_trailing_percents

MM$1%%	EN3	E	E	EMMCDDDDD	EC%.akkmm*L*LMMM
JJ)**N-q{{}}==	
	
	
	
	
s.AAc|ddd}||dt||t
d5|ddddn#1swxYwYGdd|j}|ddd}||ddGd	d
|j}|ddd}||dt|dD]}|||||||||||||d
dS)Nrr'rmust be str, not int{ceZdZdZdS)TestDate.test_format.<locals>.AcdSNArr7s r#__str__z'TestDate.test_format.<locals>.A.__str__sr%NrKrbrcrrr%r#rr#




r%rceZdZdZdS)TestDate.test_format.<locals>.BcdSNBrr1format_specs  r#rz(TestDate.test_format.<locals>.B.strftimerr%NrKrbrcrrr%r#rrrr%rrzm:%m d:%d y:%y H:%H M:%M S:%S%z %Zr=r0
__format__rassertRaisesRegexrrr1ryrrnrrofmts       r#test_formatzTestDate.test_formats#
]]4B
'
'r**CGG444

#
#I/E
F
F		MM#																				
			
AdArNNb))3///					
			
AdArNNb))3r77333	5	5C
R]]3//S1A1ABBBQ\\#..C0@0@AAAQ\\#..4444
	5	5s)BBBc|t|jtrt}nt}||jj|||jj|||jjt|	|jj|jjkdSr4)
rr=rrrrrrrr)r1expected_classs  r#rzTestDate.test_resolution_infosdmX..	"%NN!Ndm/@@@dm/@@@dm6	BBB
)DM,==>>>>>r%cz|jj|jjz
}|jdzdz|jzdz|jz}t
dd|}|||||jj|z|jj||jj|z
|jjdS)Nr/@Br)r=rrrTrrrr0)r1bigrn	justasbigs    r#test_extreme_timedeltazTestDate.test_extreme_timedelta
sm$-"33
Xb[

+W4s7GGaA&&	i(((*S0$-2CDDD*S0$-2CDDDDDr%c
6tdD]}|ddd|z}|}||ddd|zddd|d|zdf	|ddd|z}|}||ddd|zdddd|zdzd|zdf	|ddd|z}|}||ddd|zdddd|zdzd	|zdf	||jd||jd||jd|z||jd||jd||j	d||j
d|zdz||jd	|z||jd	dS)
NrXrr&rYrrrrU=)
rlr=rr0tm_yeartm_montm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst)r1rrrrs    r#test_timetuplezTestDate.test_timetuples#q	-	-A

dAqs++A

AQq!A#q!Q1Q3 CDDD

dAqs++A

AQq!A#q!Q1aAr JKKK

dAqs++A

AQq!A#q!Q1aAr JKKKQY---QXq)))QY!,,,QY***QXq)))QXq)))QY1a000QY1---QZ,,,,-	-	-r%c2d}|j|}tD]G\}}}|||}||}|||H|||ddS)Nr]rXrrYr=rrrr0
__reduce__
__reduce_ex__rs        r#rzTestDate.test_pickling0st}d#)7	,	,%GYMM$..Eooe,,GT7++++**D,>,>q,A,ABBBBBr%cgd}d}|j|}|D]/}tD]%}||d}|||&0dS)N)s'cdatetime
date
(S'\x07\xdf\x0b\x1b'
tR.scdatetime
date
(UtR.scdatetime
date
UR.)rlatin1encodingr=pickle_loadsr0r1rrr	datarrs       r#test_compat_unpicklezTestDate.test_compat_unpickle9s



 4=$'	4	4D%
4
4%x888  (3333
4	4	4r%c|ddd|ddd}||||k||k||k||k||kdD]9}|j|}||k||k||k||k||k||k||k||k||k||k||k||k;tD]D|kd|kd|kd|kd|tfd|tfd|tfd	|tfd
|tfd|tfd|tfd
FdS)NrYrUr[rFTckSr4rrsr#rEz'TestDate.test_compare.<locals>.<lambda>err%ckSr4rrsr#rEz'TestDate.test_compare.<locals>.<lambda>frr%ckSr4rrsr#rEz'TestDate.test_compare.<locals>.<lambda>grr%ckSr4rrsr#rEz'TestDate.test_compare.<locals>.<lambda>hrr%ckSr4rrsr#rEz'TestDate.test_compare.<locals>.<lambda>irr%ckSr4rrsr#rEz'TestDate.test_compare.<locals>.<lambda>jrr%ckSr4rrsr#rEz'TestDate.test_compare.<locals>.<lambda>krr%)r=r0rrrrrrs   @@r#rzTestDate.test_compareFse
]]1a
#
#
]]1a
#
#R   b!!!b!!!r"""b!!!b!!!3
	'
	'D%BOOBG$$$OOBG$$$OOB"H%%%OOB"H%%%OOB"H%%%OOB"H%%%R2X&&&R2X&&&R"W%%%R"W%%%R2X&&&R2X&&&& 	?	?FR6\5111R6\4000Vr\5111Vr\4000i)<)<)<)<)<===i)<)<)<)<)<===i)=)=)=)=)=>>>i)=)=)=)=)=>>>i)<)<)<)<)<===i)<)<)<)<)<===i)=)=)=)=)=>>>>	?	?r%c|ddd|dkd|dkd|dkd|dkd|tfd|tfdGd	d
}||kd|kd|kd|kd|tfd|tfddS)
NrSr[rVr&FTcdkSrroursr#rEz-TestDate.test_mixed_compare.<locals>.<lambda>wsS1Wr%cdkSrrrAsr#rEz-TestDate.test_mixed_compare.<locals>.<lambda>xsQWr%ceZdZdS).TestDate.test_mixed_compare.<locals>.SomeClassNrrr%r#	SomeClassrE|rr%rFckSr4rrBtheirsr#rEz-TestDate.test_mixed_compare.<locals>.<lambda>sS5[r%ckSr4rrHsr#rEz-TestDate.test_mixed_compare.<locals>.<lambda>sUS[r%)r=r0rr)r1rFrBrIs  @@r#test_mixed_comparezTestDate.test_mixed_comparemsmmD!Q''	
5)))c5)))4(((c4(((	
)____555)____555									u---#u---t,,,#t,,,)%8%8%8%8%8999)%8%8%8%8%899999r%c||jj||jjdSr4)rr=rrr7s r#rzTestDate.test_bools6
)***
)*****r%c>dD]}||dd}|dd|zkrd||dd|ztjr,||dd|zdS)N)r&rr`crirYr&z%Yz%04d%dz%4Y)r=rr0r
has_strftime_extensions)r1rlrs   r#test_strftime_y2kzTestDate.test_strftime_y2ks6	D	DA

aA&&A
zz$6A:--  D!1!14!8<<<2D$$QZZ%6%6
CCC	D	Dr%cd|j}gd}||}|||d}dD]C\}}|dd}|||<||}|jd
i||i}	|||	|dz
}D|ddd}|t|jd	dS)Nr/r)r_rYr`rUrr[r&rSrYr~rr_rr=r0rrr
r1clsrbaserrrFnewvalnewargsr	gots
          r#test_replacezTestDate.test_replacesmyysDzt||~~...
)		LD&111gGGAJsG}H$,00$00CXs+++
FAAs4B*dl>>>>>r%cGdd|j}|ddd}|t|d|dS)NceZdZdS)4TestDate.test_subclass_replace.<locals>.DateSubclassNrrr%r#rrbrr%rr&irWr=r5rr)r1rrys   r#test_subclass_replacezTestDate.test_subclass_replacess					4=			\$1
%
%

d2::4:0011<@@@@@r%cGfddj}d}j|}||iddi}|j||jd|jd|||d|j|jzdz
dS)Nc$eZdZdZfdZdZdS)&TestDate.test_subclass_date.<locals>.Crfc|}|d}jj|g|Ri|}||_|SNrr popr=rrrZrkwstemprresultr1s      r#rz.TestDate.test_subclass_date.<locals>.C.__new__Qxxzz))..sBTBBBTBB$
r%c&||jz|jzSr4)r_r`r1starts  r#newmethz.TestDate.test_subclass_date.<locals>.C.newmethsty(4:55r%NrKrbrc	theAnswerrrur7sr#CrhsBI





6
6
6
6
6r%rxrr[rdrrXrfrZ)	r=r0rJrwrrhrur_r`r1rxrrrTs`    r#rzTestDate.test_subclass_dates	6	6	6	6	6	6	6
	6	6	6dmT"a&'1&&***+++A&&&#--//:::R#(SY*>*BCCCCCr%c|Gfddj}d}d}d}||}|||jdt	j|t
d}d|ffd	|ffd
|ffg}|D]\}}	||fD]}
t|
|5t|
|}||	}|||||jddddn#1swxYwYdS)NceZdZfdZdS)CTestDate.test_subclass_alternate_constructors.<locals>.DateSubclasscBjj|g|Ri|}d|_|SNrXr=rrrZrkwargsrpr1s    r#rzKTestDate.test_subclass_alternate_constructors.<locals>.DateSubclass.__new__3..sDTDDDVDD 
r%NrKrbrcrr7sr#rr}.






r%rryi(z
2003-04-14rXrrir
fromisoformat
base_obj_typeconstr_name)r=rr0rrcombiner	timestampr3rgetattr)
r1rrd_ordd_isoformatbase_drrrconstr_argsbase_objconstrrys
`            r#$test_subclass_alternate_constructorsz-TestDate.test_subclass_alternate_constructorss							4=			"t$fl333q)))
fd1gg
.
.
8
8
:
:UH%
re$
{n-

)3	2	2$K)62
2
2\\X.9";;
2
2$X{;;F-B))"l;;;$$R000$$RXq111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2	2	2sAD//D36D3c
d}t|}tD]o\}}}|||}||}||||t
|tpdS)Nr()rWrrrr0rrkrs        r#test_pickling_subclass_datez$TestDate.test_pickling_subclass_datesT")7	?	?%GYMM$..Eooe,,GT7+++OOJw==>>>>		?	?r%c	dd}t|jts
|dd}dD]9}|t|j|dd|z|ddz:t|jtrg|td5|t
dgt|zddddn#1swxYwYtdd	D];}||ddt
|gz|ddz<dS)
Ns
1995-03-25r[)9
rYrU^bad tzinfo state arg$r&rr)	rr=rrrrbytesrrl)r1r[
month_byteord_bytes    r#test_backdoor_resistancez!TestDate.test_backdoor_resistances$-22	8D5	K	KJi)-bqbJ)>abb)I
K
K
K
KdmX..	=''	3KLL
=
=

eQC#d))O44e<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=a	C	CH
MM$rr(UH:%6%66abbABBBB		C	Cs5CC Cc4gd}|D]}|j|}|}||5|j|}|||dddn#1swxYwYdS)N)r&r&r&)rYrYrdrr&r&)rSrYr~rrr)rr[rUirVr)dt_strr=rr3rr0)r1
base_datesdt_tupleryrdt_rts      r#test_fromisoformatzTestDate.test_fromisoformat s



#	,	,H)B\\^^FV,,
,
,
33BLLNNCC  U+++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,	,	,sABB	B	cd|dddfd|dddfd|dddfd|d	d
dfd|dddfd
|dddfd|dddfd|d	d
dfd|dd
dfd|dd
dfd|dddfd|dddfd|dd
dfd|dd
dfd|dd
dfd|dd
dfd|dd
dfd|dd
dfd|d ddfd!|d ddfd"|d#d
dfd$|d#d
dfd%|d&ddfd'|d(d
d)fd*|d(d
d)fd+|d,ddfg}|D]c\}}||-5|j|}|||dddn#1swxYwYddS).N00010101r&20000101rS20250102rY99991231r.rrz
0001-01-01z
2000-01-01
2025-01-02z
9999-12-312025W01rz2025-W012025W014z
2025-W01-42026W01r~z2026-W012026W013z
2026-W01-32022W52rz2022-W522022W527z
2022-W52-72015W534r-z
2015-W53-4z
2015-W53-52020W531rgz
2020-W53-1z
2020-W53-6	input_str)r=r3rr0r1examplesrr	actuals     r# test_fromisoformat_date_examplesz)TestDate.test_fromisoformat_date_examples4s.
q!Q//0
tQ223
tQ223
tR445
4==Aq112
4==q!445
4==q!445
4==r2667


dB334
tR445
tQ223
4==q!445


dB334
tR445
tR445
4==r2667


dB334
tR445
tQ223
4==q!445
tR445
4==r2667
4==q!445
tR445
4==r2667
4==q!4455
:$,	3	3Ix	22
3
344Y??  222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3	3	3s1K

K	K	cGdd|j}|ddd}||}|||dS)NceZdZdS):TestDate.test_fromisoformat_subclass.<locals>.DateSubclassNrrr%r#rrXrr%rrrrd)r=rrr)r1rryrs    r#test_fromisoformat_subclassz$TestDate.test_fromisoformat_subclassWsz					4=			\$B
'
'**2<<>>::e\22222r%cgd}|D]N}|t5|j|dddn#1swxYwYOdS)N)rrz	009-03-04	123456789z
200a-12-04z
2009-1a-04z
2009-12-0az
2009-01-32z
2009-02-29z
2019-W53-1z
2020-W54-1u20090228)rrr=rr1bad_strsbad_strs   r#test_fromisoformat_failsz!TestDate.test_fromisoformat_failsas





 	5	5G"":..
5
5
++G444
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5	5	5sA

A	A	cddtjdg}|D]N}|t5|j|dddn#1swxYwYOdS)Ns
2009-03-01z
2009-03-01ioStringIOrrr=rr1	bad_typesbad_types   r#"test_fromisoformat_fails_typeerrorz+TestDate.test_fromisoformat_fails_typeerrorvs"D"+l*C*CD	!	6	6H""9--
6
6
++H555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6	6	6AA!	$A!	c4ddddddddd	d
ddd
tddftddfg}|D]s}||5|j|}|}|jj|}|||dddn#1swxYwYtdS)N)rr[rU)rr&rY)irr)rr&rY)rrrr)rrr)rSr&r&)rSrrr)rrrr)r.rrr&rr)	datecomps)rrr3r=rfromisocalendarr0)r1datesrdobjisocald_roundtrips      r#test_fromisocalendarzTestDate.test_fromisocalendar}s

aO
b"
$	4	4I	22
4
4$t}i0))++;dm;VD  {333

4
4
4
4
4
4
4
4
4
4
4
4
4
4
4	4	4sABB	B	cgd}|D]q}||5|t5|jj|dddn#1swxYwYdddn#1swxYwYrdS)N)
)rrr&)rrr&)r6r&)rr&r)rr&r)rr&)rrr&)rar&r&)rr&r&)ir&r&)r&r&)rrr&)rr&rr)r3rrr=r)r1isocalsrs   r#!test_fromisocalendar_value_errorsz*TestDate.test_fromisocalendar_value_errorss


 	;	;FV,,
;
;&&z22;;1DM16::;;;;;;;;;;;;;;;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;	;	;s4A-A
A-AA-AA--A1	4A1	cttdg}g}d}tdD]L}|D]G}t|}|||||<|t|HM|D]q}||5|t5|j	j
|dddn#1swxYwYdddn#1swxYwYrdS)NcdSr4r)xs r#rEz;TestDate.test_fromisocalendar_type_errors.<locals>.<lambda>sdr%)rr&r&rUr)rr-rllistrrr3rrr=r)r1
err_txformersrr[rrtxformererr_valrs        r# test_fromisocalendar_type_errorsz)TestDate.test_fromisocalendar_type_errorssN

q	/	/A)
/
/t**%Xgaj11
uW~~....
/
	;	;FV,,
;
;&&y11;;1DM16::;;;;;;;;;;;;;;;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;	;	;s6C&C6CCC	C
CC	 C	N)0rKrbrcrr=rrrtr|rrrsrrrrrrrrrrrrrrrr&rr6rrKrrRr_rerrrrrrrrrrrrrr%r#r\r\LsH$$$&&&---^AAA2BBB,$$$2040404dAAA	%	%	%&&&AAA:LLLGGG<	,	,	,$,$,$,L666@@@%%%N


 555:	?	?	?EEE---2CCC444%?%?%?N:::4+++
DDD???*AAADDD4*2*2*2X???CCC4,,,(!3!3!3F333555*666444<;;;,;;;;;r%r\ceZdZdZdS)SubclassDatetimer&NrXrr%r#rrrZr%rcNeZdZeZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZejddZdZejddZdZdZdZ dZ!dZ"e#j$e%j&dkd d!Z'e#j$e%j&dkd d"Z(d#Z)d$Z*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0ejd+d,Z1d-Z2d.Z3d/Z4d0Z5d1Z6d2Z7d3Z8d4Z9d5Z:d6Z;d7Z<d8Z=d9Z>d:S);TestDateTimec|ddddd}||jd||jd||jd||jd||jd||jd||jddS)Nr^rUr&rr	r=r0r_r`rrfrrrjrxs  r#rz"TestDateTime.test_basic_attributess
]]4Ar1
-
-$'''1%%%###"%%%A&&&A&&&+++++r%c	|ddddddd}||jd||jd||jd||jd||jd||jd||jddS)Nr^rUr&rr@rrxs  r#test_basic_attributes_nonzeroz*TestDateTime.test_basic_attributes_nonzeros]]4Ar2r4
8
8$'''1%%%###"%%%B'''B'''.....r%c
|ddddddd|jfD]}t|}||d|d	d}t|}|||||j|j|j	|j
|j|j|j
}|||dS)
Nr&rYrUr[rVr]rXrr)r=rrrrDrr0r_r`rrfrrrjrcs    r#rzTestDateTime.test_roundtrips==Aq!Q155=$$&&(
	&
	&BRAOOALL55666!""Aq''CR%%%--26 "BI "00C
R%%%%
	&
	&r%c
r	|ddddddd}||d||dd||d	d
||dd||d
d||dd||dd||dd||dd||dd||dd||d	dd|t|jd|t|jd
|t|d
|dddddddtj}||dd|ddddddd}||dd |dddddd}||dd||dd||dd!|ddd}||d"||dd"||d	d#|t|d#ttd$%d&}|ddd|}||d'dS)(Nr&rYrUr[rVrz0001-02-03T04:05:01.000123r z0001-02-03 04:05:01.000123z0001-02-0304:05:01.000123ru0001-02-0304:05:01.000123rtimespecz
0001-02-03T04rjz0001-02-03T04:05rz0001-02-03T04:05:01rUz0001-02-03T04:05:01.000rauto)seprz0001-02-03 04:05fooL@rz0001-02-03T04:05:01.999+00:00z0001-02-03T04:05:01.999z0001-02-03T04:05:01.000000z0002-03-02T00:00:00z0002-03-02 00:00:00rXXXz0002-03-02T00:00:00+00:00:16)
r=r0rrrrrr6rerrs   r#rzTestDateTime.test_isoformats.MM!Q1aC00+GHHHS))+GHHHS))+GHHHV,,.MNNNX..:	<	<	<g66HHHi88:LMMMi88:OPPPn==?XYYYn==?[\\\f557STTTyAACUVVV*akEBBB*akHEEEQ!=>>>MM!Q1aF8<MHHn==?^___MM!Q1aF33n==?XYYYMM!Q1a++f557LMMMn==?XYYYn==?[\\\MM!Q""+@AAAS))+@AAAS))+@AAAQ!6777
2...
6
6MM!Q"M--(FGGGGGr%cHdtdfdtdfdtdd	fd
tddd
fdtddddfg}ddtjfdttdfg}|d|Dz
}|dddddd}d}|D]i\}}||}||z}||5||ksJ	dddn#1swxYwYjdS)N05:00rVr02:00rY06:27r]r.r12:32:30rrrr'02:04:09.123456r[rrgr)rN+00:00rcRg|]$\}}dD]\}}||zt||zf%S))-r)+r&rr!r	r[prefixsigns     r#r$z8TestDateTime.test_isoformat_timezone.<locals>.<listcomp>4]


" 5

h
 3 34



r%rr&%z2016-04-01T12:37:09rtzirrr6r=rr3r)	r1	tzoffsetstzinfosdt_baseexp_baseexp_tzrryexps	         r#test_isoformat_timezonez$TestDateTime.test_isoformat_timezone%s
ia((()
ia((()
ia4445
RDDDE
	1aV\ ] ] ]^
	

x|$
x	!--.
	

 )


	
--aBA66("	-	-KFC,,BV#C#&&
-
-||~~,,,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-s.DD	D	c	|ddddddd}||dt||t
d	5|ddddn#1swxYwYGd
d|j}|ddddddd}||ddGdd
|j}|ddddddd}||dt|dD]}|||||||||||||d
dS)Nrrr'r[rVr&rrrceZdZdZdS)#TestDateTime.test_format.<locals>.AcdSrrr7s r#rz+TestDateTime.test_format.<locals>.A.__str__Lrr%Nrrr%r#rr"Krr%rceZdZdZdS)#TestDateTime.test_format.<locals>.BcdSrrrs  r#rz,TestDateTime.test_format.<locals>.B.strftimeSrr%Nr
rr%r#rr%Rrr%rrr
rs       r#rzTestDateTime.test_formatCs?
]]4B1a
5
5r**CGG444

#
#I/E
F
F		MM#																				
			
AdAr1aC((b))3///					
			
AdAr1aC((b))3r77333	5	5C
R]]3//S1A1ABBBQ\\#..C0@0@AAAQ\\#..4444
	5	5s-BBBc	vddl}|ddddddd}||d|ddd	dddd}|||j|j|dS)
Nrr^rUrYrVrzSat Mar  2 18:03:05 2002r)rr=r0rrr)r1rrs   r#test_more_ctimezTestDateTime.test_more_ctime`sMM$1b!Q44$>???
MM$2r1a55JDJ{t{1;;==/I/I$J$JKKKKKr%c	|dddddd}|dddddd}|dddddd}||||||k|tddd	d
d
d}t	d}||z}|||z
||||kdS)
Nr^rUr&rrr'rrrrrir)r=r0rrr)r1rrTdt3rqs     r#test_tz_independent_comparingz*TestDateTime.test_tz_independent_comparingpsmmD!Q1a00mmD!QAq11mmD!Q1a00c"""c	"""mmGRRR@@
A
&
&
&BhsB'''c	"""""r%c
Gddt}|ddddddd|dd}|t|jddS)	NceZdZdZdS)DTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfoc>Gddt}|dS)NceZdZdZdS)ZTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname.<locals>.MyStrcdSr4r)r1rs  r#rzbTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname.<locals>.MyStr.replaces#tr%N)rKrbrcrrr%r#MyStrr2s#$$$$$r%r4rF)r)r1ryr4s   r#r}zKTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tznames<$$$$$C$$$uV}}$r%N)rKrbrcr}rr%r#MyTzInfor/s#
%
%
%
%
%r%r5rrUrYrrF%Z)rer=rrr)r1r5rs   r#%test_strftime_with_bad_tzname_replacez2TestDateTime.test_strftime_with_bad_tzname_replacesy	%	%	%	%	%{	%	%	%
MM$1aAq((1f2E2EFF)QZ66666r%c
	|tdd|tdd|t|jtdz
dd|t|jtdzdd|ddd|ddd|t|jddd|t|jddd|ddd|ddd|d	dd|t|jddd
|t|jddd|t|jddd|t|jd
dd|t|jddd|t|jddd|dddd|dddd|t|jdddd|t|jdddd|ddddd|ddddd|t|jddddd|t|jddddd|dddddd|dddddd|t|jdddddd|t|jdddddd|ddddddd|ddddddd|t|jddddddd		|t|jddddddd		|t|jdddd|t|jdddd|t
|jddddddddddS)Nr&rSrrrrYr~rrrrrrrrrrr/rrXr(rfold)r=rrrrrr7s r#rz+TestDateTime.test_bad_constructor_argumentssf

gq!$$$

gq!$$$*dmWQY1EEE*dmWQY1EEE

dAq!!!

dB"""*dmT1a@@@*dmT2qAAA

dAr"""

dAr"""

dAr"""*dmT1bAAA*dmT1bAAA*dmT1bAAA*dmT1bAAA*dmT1a@@@*dmT1bAAA

dAr1%%%

dAr2&&&*dmT1b"EEE*dmT1b"EEE

dAr2q)))

dAr2r****dmT1b"bIII*dmT1b"bIII

dAr2r1---

dAr2r2...*dmT1b"b"MMM*dmT1b"b"MMM

dAr2r2q111

dAr2r2v666*dm2r2r2	7	7	7*dm2r2r!	#	#	#	
*dm2B		0	0	0*dm2A		/	/	/	
)T]2r2r1dA	?	?	?	?	?r%c~|dddddd}|dddddd}||||t|t||di}d||<|t|d|||d|||d|d	ddd
dd}|d	ddd
dd}||||t|t||di}d||<|t|d|||d|||ddS)NrSrrrrr&rYrrrVrrs    r#rzTestDateTime.test_hash_equalitysMM$BB33MM$BB33Aa$q''***!fAS1%%%Q###Q###MM$QQ33MM$QQ33Aa$q''***!fAS1%%%Q###Q#####r%c|ddd|ddd}|z
}||jdtt	dddz||jd||jd|ddd	d
dtddd}tdd
}tdtd}||z|ddd	dd||z|ddd	dd|d|zz|ddddd||z
|ddd	dd||z|ddd	dd||z
|z|d|zz
|ddddd|z|dddd
d|z
|dddd
d||z|dddd
d||z
|dd	dd
d|d|zz|dddd
d|d|zz
|dddd
d||zz
||zz
||zz
|||zz
|||z
z
||z
z
||z
z
|||z
z
|||zz
||zz
||zz
|||zz
|||z
z
||z
z
||z
z
|||z
z
|||z|z|zz|ddddddd||z|z|zz|zz|z|z||z|z|zz
|dd	ddddd||z|z|zz
|z
z
|z
|z
dD]~|tfd|tfd|tfd |tfd!|tfd"|tfd#|tfd$|tfd%|tfd&|tfd'|tfd(|tfd)dS)*Nr^r&rrrr[rrUrYr<r]rYrrXr(r'rr<rrrrrrrrVrr^ruczSr4rrxsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	ryr%cz
Sr4rrxsr#rEz0TestDateTime.test_computations.<locals>.<lambda>
	ryr%czSr4rrxsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	ryr%cz
Sr4rrxsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	ryr%cz
Sr4rrsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	rr%czSr4rrsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	rr%czSr4rrsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	rr%czSr4rrsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	rr%czSr4rrsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	rr%czSr4rrsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	rr%czSr4rrsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	rr%czSr4rrsr#rEz0TestDateTime.test_computations.<locals>.<lambda>	rr%r)	r1rormillisecrfrrnrrrs	      @@@r#rszTestDateTime.test_computationssMM$2&&MM$2&&sFStT11E1E-F-F$FGGGq)))*A...MM$1b!,,Q4((D!!ll||T4==q!R#C#CDDD4==q!R#C#CDDDRWdmmD!Q1&E&EFFFT4==q!R#C#CDDD$DMM$1b!$D$DEEET1u9---RWdmmD!QA&F&FGGGS$--aB"B"BCCCS$--aB"B"BCCCT4==q!R#C#CDDDT4==q"b!#D#DEEERWdmmD!QA&F&FGGGRWdmmD!QA&F&FGGG!d(a...!c'Q,,,!d(a...!h,!+X666!d(a$///!c'Q---!d(a$///!h,!+hY777a$h$///a#g---a$h$///a(l+hY777a$h...a#g,,,a$h...a(l+X666dSj4/(:;tQB1dCC	E	E	EdSj4/(:;H+t3x?	A	A	AdSj4/(:;tQB2vFF	H	H	HdSj4/(:;H+t3x?	A	A	A	6	6Ai555i555i555i5555	
)_____555)_____555)_____555)%5%5%5%5%5666)%5%5%5%5%5666)]]]]333)^^^^444)]]]]33333r%c2d}|j|}tD]G\}}}|||}||}|||H|||ddS)Nr]rXrr<rr&rYr)rs        r#rzTestDateTime.test_pickling	s)t}d#)7	,	,%GYMM$..Eooe,,GT7++++**D,>,>q,A,ABBBBBr%c	n|ddddddd}ttjdzD]|}tj||}tj|}||jd||jd||j	d}dS)	NrrYrXr0rir&)
r=rlr HIGHEST_PROTOCOLrrr0r_r`r)r1rnr"rros     r#test_more_picklingzTestDateTime.test_more_pickling&	sMM$1b"b&9962Q677	'	'EQ&&AQAQVT***QWa(((QUA&&&&	'	'r%c
d}t|}tD]o\}}}|||}||}||||t
|tpdS)NrL)rrrrr0rrkrs        r#test_pickling_subclass_datetimez,TestDateTime.test_pickling_subclass_datetime/	s)&)7	C	C%GYMM$..Eooe,,GT7+++OOJw0@AABBBB		C	Cr%cgd}d}|j|}|D]/}tD]%}||d}|||&0dS)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-rr.r<rr&rMr/r0r2r4s       r#r6z!TestDateTime.test_compat_unpickle8	s	
	
	
. 4=$'	4	4D%
4
4%x888  (3333
4	4	4r%c:gd}|j|}|j|}||||||k|||k|||k|||k|||kt	t|D]Q}|dd}||dz||<|j|}|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||kSdS)N)rSrr~r<rrrir&)r=r0rrrlr)r1rrrrrr]s      r#test_more_comparezTestDateTime.test_more_compareJ	s211
T]D
!
T]D
!R   b!!!b!!!r"""b!!!b!!!s4yy!!	'	'A111gGa1GAJ(BOOBG$$$OOBG$$$OOB"H%%%OOB"H%%%OOB"H%%%OOB"H%%%R2X&&&R2X&&&R"W%%%R"W%%%R2X&&&R2X&&&&	'	'r%c||j|j||j|j||j|j||j|j||j	|j
||j|jdSr4)
r0rr_rr`rrr rfr!rr"r)r1r	r^s   r#verify_field_equalityz"TestDateTime.verify_field_equalityk	s)38444#)444)37333)38444#*555#*55555r%cddl}|j}|j|}|j|}|||dSNr)r	localtimer=rrXr1rrr	r^s     r#rzTestDateTime.test_fromtimestamps	sZ
TY[[!4>"%%m))"--""8S11111r%cddl}|j}|j|}|j|}|||dSrZ)rgmtimer=utcfromtimestamprXr\s     r#test_utcfromtimestampz"TestDateTime.test_utcfromtimestamp{	sX
TY[[4;r??m,,R00""8S11111r%EST+05EDT,M3.2.0,M11.1.0c	f|ddd}||d|ddddddd}||d|ddd	dd
}|d}||j||tdz
||j||tdz|dd	ddd
}||j|||ddd|d
ddfD]U}	|}||j||F#t$rYRwxYwdS)NrOr&g@rYrUr[6@rcrrr9ri'r)r=r0rrrrr)r1rt0rrs     r#test_timestamp_naivez!TestDateTime.test_timestamp_naive	sMM$1%%000MM$1aAq11;	=	=	=]]4B2
.
.
ZZQZ

44R\\^^DDia0000	2	2	244R\\^^DDia0000	2	2	2
MM$Aq"--44Q[[]]CCQGGG--!A&&

d2b(A(AB	D	DA
DKKMM  !<!<Q!?!?CCCC!



	D	DsH!!
H.-H.c|dddtj}||d|dddddddtj}||d|dddddddttd	
d}||ddS)
NrOr&rrrYrUr[g7@rrrrc)r=rr6r0rrrs  r#test_timestamp_awarez!TestDateTime.test_timestamp_aware	sMM$1X\M::,,,MM$1aAqMFF1	3	3	3MM$1aAq!))"*=*=*=u!E!E

G
G9	;	;	;	;	;r%zMSK-03c|jj|jjfD]K}|d}||jd||jd|d}	|d}||jd||jd|d}||||d}||||d}||||d	}||jd||jd
n#t$rYnwxYw|d}||||d}||||d
}||jd||jd|d}||jd||jd|d}||jd||jdMdS)Nrgư>gưrr(g:0yEg1E2gHzri#gHz>g1E2>g<"2?gP?r&rr)r=rr_r0rrjOSError)r1ftsrr	minus_oners      r#rz&TestDateTime.test_microsecond_rounding	sM/M24%	2%	2C3q66DT[!,,,T-q111#d))C
8CJJ	
  !12666  !6???CJJ  D)))CJJ  I...CJJ  D)))CLL  2...  7777



"D		AQ%%%D		AQ$$$JAQXq)))Q]F333IAQXq)))Q]A...FAQXq)))Q]D1111K%	2%	2s)E
EEc|d5|jjtj}|}||ddddn#1swxYwY|d5|jjtjd}|}||dddddS#1swxYwYdS)Nzminimum UTCrlw#o9zmaximum UTCrrrjg MB)	r3r=rrrr6rr0r)r1min_dtmin_tsmax_dtmax_tss     r#test_timestamp_limitsz"TestDateTime.test_timestamp_limits	sv
\\-
(
(	3	3]&..hl.CCF%%''F
V\222
	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3\\-
(
(	5	5]&..hl;</>>F%%''F
V^444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5s%AA77A;>A;AC::C>C>c	|jdn,#ttf$r|dYnwxYw|jjt
dz}|}|jj	d}|jjt
dz
t
d	d
d

z}d||fd
||ffD]f\}}}||||5|j|}|||dddn#1swxYwYgd|t
dd
z
fd|t
d
z
fd|t
d
zfd|t
d
zfg}	|	D]\}}|||5|
ttf5|j|dddn#1swxYwYdddn#1swxYwYdS)NTest not valid on this platformr&rVrrjrrrrr'minimummaximumrr	Too small by a littlerrToo small by a lotrToo big by a littleToo big by a lotr)r=rrirrLrrrrrrr3r0rr)
r1rnrorprq	test_namerr	rrs
          r#test_fromtimestamp_limitsz&TestDateTime.test_fromtimestamp_limits	s`	=M''
3333'	=	=	=MM;<<<<<	=
"YA%6%6%66!!##"**q*99=$yr':':'::EEGG"b"===KKMMNFF+FF+*
	3	3%YHiBBB
3
344R88  222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3%fyar/J/J/J/X/X/Z/Z&Z[
!6I3,?,?,?,M,M,O,O#OP
"FYA->->->-L-L-N-N$NO
)*=*=*=*K*K*M*M!MN	

(	4	4MIriB//
4
4&&
M'BCC44M//333444444444444444
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4	4	4sW&AA1EE	E	"I8:I!I8!I%%I8(I%)I88I<	?I<	c	|jdn,#ttf$r|dYnwxYw|jjtj}|	}|jj
dtj}|	}d||dfd||dffD]\}}}||||5	|j|}n@#ttf$r,}	|t|	Yd}	~	nd}	~	wwxYw|
||dddn#1swxYwYd	|d
z
fd|td
z
fd|d
zfd|td
zfg}
|
D]\}}|||5|t"tf5|j|dddn#1swxYwYdddn#1swxYwYdS)Nrtrurrrjrrwrxryrzr&r{rrVr|r}r~)r=r_rirrLrrrr6rrr3rr0rrrr)r1rnrorprqrrr	rexcrs           r#test_utcfromtimestamp_limitsz)TestDateTime.test_utcfromtimestamp_limits
sl	=M**:6666'	=	=	=MM;<<<<<	="**(,*??!!##"**q*NN!!##FFNN$N$?$?@FFNN$N$?$?@*

	3
	3%YHiBBB
3
3,!];;B??FF/,,,MM#c((++++++++,  222

3
3
3
3
3
3
3
3
3
3
3
3
3
3
3%fqj1
!6I3,?,?,?,M,M,O,O#OP
"FQJ/
)*=*=*=*K*K*M*M!MN	

(	7	7MIriB//
7
7&&
M'BCC77M222666777777777777777
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7s&AAFD32F3E0"E+&F+E00FF	F	"I9;I"I9"I&&I9)I&*I99I=	I=	c\dD](}|t|jj|)dSrrrs  r#rz&TestDateTime.test_insane_fromtimestamp6
rr%c\dD](}|t|jj|)dSr)rrr=r_rs  r#test_insane_utcfromtimestampz)TestDateTime.test_insane_utcfromtimestamp?
sF
$	&	&FmT]-K$
&
&
&
&	&	&r%win32z*Windows doesn't accept negative timestampsc:|jddS)N)r=rr7s r#!test_negative_float_fromtimestampz.TestDateTime.test_negative_float_fromtimestampH
s 	

##E*****r%c|jd}|||ddddddddS)	Nrirrrrri~)r=r_r0)r1rs  r#$test_negative_float_utcfromtimestampz1TestDateTime.test_negative_float_utcfromtimestampN
sKM**511DMM$BBFKKLLLLLr%cNddl}td}tdD]Z}|j}|j|j}t
||z
|krn[|t
||z
|dS)Nrr&rrU)rrrlr=utcnowr_rkassertLessEqual)r1r	tolerancerfrom_nowfrom_timestamps      r#test_utcnowzTestDateTime.test_utcnowS
sa(((	1XX		E}++--H!];;IDIKKHHN>H,--::;	
S(!:;;YGGGGGr%ctd}d}tj|j||}|j||}||||t
||j|t
||jgd}|D]\}}|||5tj|j||}|j||}|||dddn#1swxYwY|jj}||dddtz||ddd	tz||d
dtddd
ddtjtj
dffD]\}}|dkrd}	|}
nd}	|}
t|
dzd\}}d|	|||}
||
d}||t|||
|d\}
}||
|}||dt zdtzz||
d||||
||ddjd|t(5|dddddn#1swxYwY|t(5|dddddn#1swxYwY|t(5|ddddddS#1swxYwYdS)Nz2004-12-01 13:02:47.197z%Y-%m-%d %H:%M:%S.%f))u2004-12-0113:02:47.197u%Y-%m-%d%H:%M:%S.%f)u200412-01 13:02:47.197u%Y%m-%d %H:%M:%S.%f)u2004-12-01 13:0247.197u%Y-%m-%d %H:%M%S.%f)stringformatz+0002%zrYz-0002rWz-00:02:01.000003r&rU)rjrr)rr)rGMTrrrrXz{}{:02d}{:02d} {}rr)z	+1234 UTCrrrrr6z-2400z-000z)	_strptime_strptime_datetimer=strptimer0r5rr3rzMINUTErrrr}r"rrrrrr)r1rrr	r^inputsr	tzsecondsr}rrrrjdtstrryrs                r#
test_strptimezTestDateTime.test_strptimea
s*'/
vvNNm$$VV443'''

d8nndm444

d3ii///



%	0	0NFFVF;;
0
0$7
v8>@@m,,VV<<  3///	
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0=)'400::<<a&jIII'400::<<b6kJJJH'..88::
q!!
<
<
<<	
	
	

#-j#(>/5<?!C"E	2	2Iv1}}$*##GRK44NE7'..tUGVLLE%))BR\\^^Yy-I-I-IJJJRYY[[&1111)
s
XeS
!
!dR&[)@AAAe,,,S))5111	
%..5t<<<


z
*
*CCHHWd,C,C,CCCCCCCCCCCCCCCC


z
*
*BBHHVT,B,B,BBBBBBBBBBBBBBBB


z
*
*??HHS$,?,?,???????????????????sIA
DD 	#D 	
N00N47N4
O..O25O2
P--P14P1c
|jj}|t5|dd}dddn#1swxYwY|dddddd}|dddddd}|dddd	d	d	}|ddd
d	d	d	}ddd|fd
dd|fddd|fddd|fddd|fddd|fddd|fddd|fddd|fd dd!|fg
}|D]a\}}	}
}d"|z}|||	|
|#5||	|
}||||$dddn#1swxYwYbdS)%Nz01/02/3 04:05:06z%d/%m/%y %H:%M:%SrrYr&r[rVr]rrPz
1/02/03 4:5:6rz
01/2/03 4:5:6z%Hz01/02/03 4:05:06z%Mz01/02/03 04:5:06z%Sz01/02/03 04:05:6z%jz2/03 04am:05:06z%j/%y %I%p:%M:%Sz%Iz02/03 4am:05:06z%wz6/04/03z%w/%U/%yz%Wz6/4/2003z%u/%W/%Yz%Vz%u/%V/%Gztest single digit )reasonrrtarget)msg)r=rrrr3r0)r1rnewdaterrTr+dt4rrrrrs            r#test_strptime_single_digitz'TestDateTime.test_strptime_single_digit
sj=)


z
*
*	H	Hh13FGGG	H	H	H	H	H	H	H	H	H	H	H	H	H	H	HmmD!Q1a00mmD!Q1a00mmD!Q1a00mmD!RAq11
?$7=
?$7=
%':C@
%':C@
%':C@
$&8=
$&8=
9j#.
:z3/
:z3/
/5	>	>*FFFF)F2FV%+%+%+--
>
>#(6622  &f ===
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>	>	>s#
AAA%D??E	E	c|dddddd}||d|||j|j|j|j|j|j|	|
t|jdd
z
dzd	f	|}||j|j||j
|j||j|j||j|j||j|j||j|j||j|	||j|
t|jdd
z
dz||jd	dS)
Nrrrr]r!)	rrrr]rrr[rerr&r)r=r0rr_r`rrfrrrrhrrrrr r!r"r#r$r%)r1rtts   r#test_more_timetuplez TestDateTime.test_more_timetuple
sMM$B2r22(MNNN&!'15&!(AH))++++--$qvq!*<*<*F*F*H*HH1L				[[]]QV,,,AG,,,QU+++QV,,,AH---AH---QYY[[111Q[[]]%)!&!Q%7%7%A%A%C%C&DFG&H	I	I	Ib)))))r%c	|ddddddd}||dd	d
D]j\\}}}tt	d||}||
}||dd|zk	|ddS#t$rYdSwxYw)Nrrrr]rr/z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)))rrz	33.000123))rr33rY)rrrrrz-0200u%y%m %H%M)r=r0rrrrr)r1rrrqrrs      r#test_more_strftimezTestDateTime.test_more_strftime
sMM$B2r266$=>>$B	D	D	DF	<	<JGQQ91abIIIIJJB			$$AQZZ--w{;;;;	
JJ./////!			DD	s3C


CCc	|ddddddd}||tddd||tdddddS)Nr^rUr[r(-)r=r0rrrxs  r#test_extractzTestDateTime.test_extract
s{
]]4Ar2q$
7
7Dq!$4$4555DRD$9$9:::::r%c	tddd}tdddd}|ddddddd}|jj}|||}||||||}|||||||||||||||t||t|||t||||t|||d|t|||dd	|t|d
d|t||d|t|d
||||tj}|	|j
tj|||tj}|	|j
tjt}|||}||||||dS)
Nr^rUr[r(rr)rrr&rYrrr)rrr=rr0rrrr6r5r)r1rrr	rrys      r#test_combinezTestDateTime.test_combine
sq!RD!!==q!RQ==-'
WQ]]X&&&
W!!
$
$
$X&&&BGGII&&&BGGII&&&WWRWWYY		::;;;)W---)Wa000)Wa333)WaA666)WaAq999)Wff===)Wa888)Wfa888WQ8<
(
(

bi...
WQ(,
/
/
/

bi...FF
WR^^A&&&A&&&&&r%cd|j}gd}||}|||d}dD]C\}}|dd}|||<||}|jd
i||i}	|||	|dz
}D|ddd}|t|jd	dS)N)r&rYrUr[rVr]rXr)rTrUrVrfrVrr]rrXrjrr&rSrYr~rrWrrXrYs
          r#r_zTestDateTime.test_replacesm$$$sDzt||~~...
1		LD&111gGGAJsG}H$,00$00CXs+++
FAAs4B*dl>>>>>r%EDT4c|j}tdd}|t	tdd}||||t|j|||t|j|||tddz}|||||||	|Gd
dt}|}|t|j||||||Gdd
t}|}|t|j|Gddt}	|	}
||
}|t5|ddddS#1swxYwYdS)N,0044r\rEDTrr[rrceZdZdZdZdS)+TestDateTime.test_astimezone.<locals>.BoguscdSr4rrxs  r#rzz5TestDateTime.test_astimezone.<locals>.Bogus.utcoffset1DDr%c tdSrZrrxs  r#rz/TestDateTime.test_astimezone.<locals>.Bogus.dst2s
ill2r%NrKrbrcrzrrr%r#Bogusr0s"00022222r%rceZdZdZdZdS)/TestDateTime.test_astimezone.<locals>.AlsoBogusc tdSrZrrxs  r#rzz9TestDateTime.test_astimezone.<locals>.AlsoBogus.utcoffset8s
IaLL%8r%cdSr4rrxs  r#rz3TestDateTime.test_astimezone.<locals>.AlsoBogus.dst9ddr%Nrrr%r#	AlsoBogusr7s"888*****r%rceZdZdZdZdS),TestDateTime.test_astimezone.<locals>.BrokencdSrrrxs  r#rzz6TestDateTime.test_astimezone.<locals>.Broken.utcoffset>sAAr%cdSrrrxs  r#rz0TestDateTime.test_astimezone.<locals>.Broken.dst?aar%Nrrr%r#Brokenr=s"---'''''r%r)r=rrerrrr0
astimezonerrrr)r1ryrdt_utcdt_frbogralsobogrbroken	dt_brokens            r#test_astimezonezTestDateTime.test_astimezone$s
]


 
 F##8IB,?,?,?#G#GHH&111)R]Aq999)R]B777zzz##ia&D&D&DDq))4000!,,d333	3	3	3	3	3F	3	3	3egg*bmS9993//::1==tDDD	+	+	+	+	+	+	+	+)++*bmW===	(	(	(	(	(V	(	(	(JJfJ--	


y
)
)	#	#  """	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#sI**I.1I.cGfddj}d}j|}||iddi}|j||jd|jd|||d|j|jz|j	zdz
dS)Nc$eZdZdZfdZdZdS).TestDateTime.test_subclass_datetime.<locals>.Crfc|}|d}jj|g|Ri|}||_|Srjrkrms      r#rz6TestDateTime.test_subclass_datetime.<locals>.C.__new__Jrqr%c6||jz|jz|jzSr4)r_r`rrss  r#ruz6TestDateTime.test_subclass_datetime.<locals>.C.newmethQsty(4:5CCr%Nrvr7sr#rxrGsGI





D
D
D
D
Dr%rx)rr[rdrr)rrXrfrZ)
r=r0rJrwrrhrur_r`rrzs`    r#rz#TestDateTime.test_subclass_datetimeEs)	D	D	D	D	D	D	D
	D	D	D'dmT"a&'1&&***+++A&&&#--//:::R#(SY*>*-*+578+9	:	:	:	:	:r%cGfddj}d}d}d}||}|||jd|}d|f|fd|t
jf|t
jfd|f|fd	|f|fd
|df|fdt|d
dt|ddf|fg}|D]\}}	}
||fD]}
t||5t||}||	}
|
||
|
|
jddddn#1swxYwYdS)NceZdZfdZdS)TTestDateTime.test_subclass_alternate_constructors_datetime.<locals>.DateTimeSubclasscBjj|g|Ri|}d|_|Srrrs    r#rz\TestDateTime.test_subclass_alternate_constructors_datetime.<locals>.DateTimeSubclass.__new__crr%Nrr7sr#rrbrr%r)rr[rdrrrgz2003-04-14T12:30:15.123456gh͏TMArXrr_rrz%Y-%m-%dT%H:%M:%S.%frrrUr)
r=rr0rrrr6rrrr3rr)r1rrrutc_tsrrrrrr	rconstructorrys`             r#-test_subclass_alternate_constructors_datetimez:TestDateTime.test_subclass_alternate_constructors_datetime`s>							t}			12"!!4(f&6777q)))



reV,
r8<0%00>>
@
&F3
{nf5
+'=>G
tAaCy)4abb?;VD	

3=	2	2.Kh-v6
2
2\\X.9";;
2
2")(K"@"@K$k2B))".>???$$R222$$RXq111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2	2	2sAE**E.1E.cGfddj}ddifddifdddtjifdddttd	d
ifg}|D]|\}}}|5t||}|di|}|||jddddn#1swxYwY}dS)
NceZdZfdZdS)8TestDateTime.test_subclass_now.<locals>.DateTimeSubclasscBjj|g|Ri|}d|_|Srrrs    r#rz@TestDateTime.test_subclass_now.<locals>.DateTimeSubclass.__new__rr%Nrr7sr#rrrr%rrrnow_utcr	now_fixedrrrrXr)	r=rr6rr3rrr0r)r1rrrF	meth_namerrrys`       r#test_subclass_nowzTestDateTime.test_subclass_nowsi							t}			E2
x$
hl34
%$1D1D1De(L(L!MN	

(2	.	.#D)Vd##
.
. !19==V%%f%%%%b*:;;;  1---
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.	.	.s0A
CC
	
C
	c	gd}gdddg}dtjttdttdg		fd|D}|D]{}|D]v}||	}|
5j|}||dddn#1swxYwYw|dS)N)rrrr)rrrr)rrrih)rrrG)rrrrrrrrrYc	Hg|]}D]}D]}jg||Rd|iSr)r=)r!
date_tuple
time_tupler
base_timesr1rs    r#r$z<TestDateTime.test_fromisoformat_datetime.<locals>.<listcomp>st###!+##!##t}BjB:BBBcBB#####r%rr)rr6rrr3r=rr0)
r1r
separatorsdtsryrrrrrs
`       @@r#test_fromisoformat_datetimez(TestDateTime.test_fromisoformat_datetimesu







3Z
IB///00IA...//1######!+###
	0	0B!
0
0--\\\..00 M77>>E$$R///000000000000000
0	0	0s1CCCc
|ddddddd}tdtdtd	d
tddd
tddddg}|d|Dz
}dtjttdg}|d|Dz
}|D]}||}|}||5|j|}||ks
J|	dddn#1swxYwYdS)NrrrrpQrVrrYr]r.rrr'r[rrgr)cg|]}d|zSrrr!r[s  r#r$z<TestDateTime.test_fromisoformat_timezone.<locals>.<listcomp>222"b2g222r%rc,g|]}t|Srrrs  r#r$z<TestDateTime.test_fromisoformat_timezone.<locals>.<listcomp>555RHRLL555r%rtstrr=rrr6rrr3r)r1base_dtrrrryrrs        r#test_fromisoformat_timezonez(TestDateTime.test_fromisoformat_timezones--b"b"b&AA
A	 2 2 2Ar***BB777Aq!&III	
		22	2222	IA...//1	5595555	*	*C,,BLLNNE5))
*
*
33E::U{{{E{{{{
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*		*	*s;+D33D7	:D7	c
6gd}|D]}|ddddddd}||	}||
5|j|}|||dddn#1swxYwYdS)N)	rr€uʁuᛇu時u🐍rrr&rrrriurrrr1rrryrrs      r#test_fromisoformat_separatorsz*TestDateTime.test_fromisoformat_separatorss



	,	,CtQBB??BLLSL))EE**
,
,
33E::  U+++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,		,	,s1B

B	B	c2ddg}|D]}|ddddd}||}||	5|j|}|||dddn#1swxYwYdS)
Nrrrr&rrrrrrrs      r#test_fromisoformat_ambiguousz)TestDateTime.test_fromisoformat_ambiguouss3Z
	,	,CtQB33BLLSL))EE**
,
,
33E::  U+++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,		,	,s1BB	B	c
vddg}dtjttdttdttddg}gd	}t|D]\}}|D]}|D]}|d
krd|ddzz}|dd|fz}|j|dd
|zd|i}	|	|}
||
5|j|
}||	|dddn#1swxYwYdS)N)rrr[rr<rrg)rrr[rr<rrrrrYr]r.rrrjrrUrrUrYrr[rrr	rr6r	enumerater=rr3rr0)r1datetime_basesr	timespecsiprrrnew_microsecondsryrrs            r#test_fromisoformat_timespecsz)TestDateTime.test_fromisoformat_timespecss,')IB///00IA...//IAr:::;;=
555	 	**	4	4FB

4

4 .	4	4H^+++/8A;$3F+G(#+AaC=4D3F#F&!QV*)=KsKKBLL"L55EE2244 $
 ; ;E B B((U333444444444444444	4

4	4	4.1D+	+D/
2D/
ctj}ttdd}ttdd}ttdd}gd|d	dd
ddfd|d	dd
d
dfd|d	dd
d
dfd|d	dd
d
dfd|d	dd
d
ddfd|d	dd
d
ddfd|d	dd
d
dddfd|d	dd
d
dddfd|d	dd
d
dddfd|d	dd
d
dddfd|d	dd
d
dddfd|d	dd
d
dddfd|d	dd
d
dddfd|d	dd
d
dddfd|d dd!d
d"d#d$fd%|d dd!d
d"d#d&fd'|d	dd
d
dddfd(|d	dd
ddfd)|d	dd
d
dfd*|d	dd
d
dfd+|d	dd
d
ddfd,|d	dd
d
ddfd-|d	dd
d
dddfd.|d	dd
d
dddfd/|d	dd
d
dddfd0|d	dd
d
dddfd1|d	dd
d
dddfd2|d	dd
d
dddfd3|d	dd
d
dddfd4|d	dd
d
dddfd5|d6dd
fd7|d6d8d9d:dfd;|d<ddd:dfd=|d	d8d>d?dfd@|d	d8dAd?dfdB|dCd8dDd
dfdE|d	dd
d
dfdF|dCd8dDd8dfdG|d	dd
d8dfdH|d	dd
d8dIdAfdJ|d	d8dAd?dKfdL|d	d8dAd?dKfdM|d<ddd:dKdNfdO|d<ddd:dKdNfdP|d	dd
d8dIdAfdQ|d	dd
d
ddfdR|d	dd
d
ddfdS|dTdd
d
ddfdU|dTdd
d
ddfdV|d	dd
d
ddfdW|d	dd
d
dddfdX|d	dd
d8dIdAfdY|d	dd
d8dIdAdZfd[|d	d8dAd?dKfd\|d	d8dAd?dKfd]|d<ddd:dKdNfd^|d<ddd:dKdNd_fd`|dCd8dDd
d|afdb|d	dd
d
dd|afdc|d	dd
d
dd|afdd|d	dd
d
ddd|afde|dfddddttdKafdg|d	dd
d
ddhttd
afdi|d	dd
d
ddhttdjafdk|d	dd
d
dd|afdl|d	dd
d
ddhttd
afdm|d	dd
d
ddhttdjafdn|doddd
ddpdq|afdr|doddd
ddpdq|afds|dodhddddhdt|afdu|dodhddddhdt|afdv|dTdwdAddD|afdx|dTdwdAddD|afdy|d	dd
d
ddd|afdz|d	dd
d
dddttdw{af}|D]c\}}|||5|j|}|||dddn#1swxYwYddS)}Nr&rBSTrrr\rrrrYrz
2025-01-02T03rUz2025-01-02T03:04r[z2025-01-02T0304z2025-01-02T03:04:05rVz2025-01-02T030405z2025-01-02T03:04:05.6i'	z2025-01-02T03:04:05,6z2025-01-02T03:04:05.678ipX
z2025-01-02T03:04:05.678901[
z2025-01-02T03:04:05,678901z2025-01-02T030405.678901z2025-01-02T030405,678901z2025-01-02T03:04:05.6789010z2009-04-19T03:15:45.2345rrrriz2009-04-19T03:15:45.1234567rgz2025-01-02T03:04:05,678r20250102T03z20250102T03:04z20250102T03:04:0520250102T030405z20250102T03:04:05.6z20250102T03:04:05,6z20250102T03:04:05.678z20250102T03:04:05,678z20250102T03:04:05.678901z20250102T030405.678901z20250102T030405,678901z20250102T030405.67890102022W01r
2022W52520rrr<2022W527520r
2026W01516r~r2026W013516r
2025W01503rr2025W014503
2025W015122025W0145122025W014T121431rd2026W013T162100rz2026W013 1621002022W527T202159rz2022W527 202159z2025W014 1214312025W014T030405z2025W014 030405z2020-W53-6T03:04:05rz2020W537 03:04:05z2025-W01-4T03:04:05z2025-W01-4T03:04:05.678901z2025-W01-4T12:14:31z2025-W01-4T12:14:31.012345i90z2026-W01-3T16:21:00z2026-W01-3T16:21:00.000000z2022-W52-7T20:21:59z2022-W52-7T20:21:59.999999r(z2025-W01003+00rz2025-01-02T03:04:05+00z2025-01-02T03:04:05Zz!2025-01-02003:04:05,6+00:00:00.00z2000-01-01T00+21rSz2025-01-02T03:05:06+0300r]z2025-01-02T03:05:06-0300rTz2025-01-02T03:04:05+0000z2025-01-02T03:05:06+03z2025-01-02T03:05:06-03z 2020-01-01T03:05:07.123457-05:00rrXiAz2020-01-01T03:05:07.123457-0500z 2020-06-01T04:05:06.111111-04:00iz2020-06-01T04:05:06.111111-0400z 2021-10-31T01:30:00.000000+01:00r'z2021-10-31T01:30:00.000000+0100z2025-01-02T03:04:05,6+000000.00z 2025-01-02T03:04:05,678+00:00:10rr)rr6rr=r3rr0)	r1rr rrrrr	rs	         r#$test_fromisoformat_datetime_examplesz1TestDateTime.test_fromisoformat_datetime_examplesslyq)))511yr***E22yr***E22z

4==q!Q::;z

dmmD!Q1==>z
 tQ1a!@!@Az


dAq!Q ? ?@	z

#DMM$1aA$F$FGz
!$--aAq!"D"DE
z
%
]]4Aq!Q
7
7
9z
%
]]4Aq!Q
7
7
9z
'
]]4Aq!Q
7
7
9z
*
]]4Aq!Q
7
7
9z
*
]]4Aq!Q
7
7
9z
"(
]]4Aq!Q
7
7
9#z
&(
]]4Aq!Q
7
7
9'z
*+
]]4Aq!Q
7
7
9+z
.(
]]4B2r6
:
:
</z
2+
]]4B2r6
:
:
<3z
6'
]]4Aq!Q
7
7
97z
:tQ1a889;z
<DMM$1a;;<=z
>t}}T1aA>>??z
@!$--aAq!"D"DEAz
B

dAq!Q B BCCz
D#
]]4Aq!Q
7
7
9Ez
H#
]]4Aq!Q
7
7
9Iz
L%
]]4Aq!Q
7
7
9Mz
P%
]]4Aq!Q
7
7
9Qz
T(
]]4Aq!Q
7
7
9Uz
X&
]]4Aq!Q
7
7
9Yz
\&
]]4Aq!Q
7
7
9]z
`'
]]4Aq!Q
7
7
9az
d

dAq112ez
f4==r2r1==>gz
hDMM$1b!<<=iz
j4==r2r1==>kz
lDMM$BA>>?mz
n4==r2q!<<=oz
pDMM$1a;;<qz
r4==r2r1==>sz
tDMM$1b!<<=uz
v

dAq"b" E EFwz
x

dBB C CDyz
z

dBB C CD{z
|

dAq"b" E EF}z
~

dAq"b" E EFz
@

dAq"b" E EFAz
B

dAq!Q B BCCz
D

dAq!Q B BCEz
F#DMM$1aA$F$FGGz
H!$--aAq!"D"DEIz
J#DMM$1aA$F$FGKz
L*
]]4Aq!Q
7
7
9Mz
P#DMM$1b"b$I$IJQz
R*
]]4Ar2r5
9
9
;Sz
V#DMM$BB$G$GHWz
X*4==r2r2+N+NOYz
Z#
]]4Ar2r
2
2
4[z
^*
]]4Ar2r6
:
:
<_z
b
]]4RAc]
:
:
<cz
f&
]]4Aq!Qs]
;
;
=gz
j$
]]4Aq!Qs]
;
;
=kz
n1
]]4Aq!Qs]
C
C
Eoz
r 
]]4Aq!HYR=P=P=P4Q4Q]
R
R
Tsz
v(
]]4Aq!Q"*91+=+=+=">">@@
Awz
|(
]]4Aq!Q"*92+>+>+>"?"?AA
B}z
B(
]]4Aq!Qs]
;
;
=Cz
F&
]]4Aq!Q"*91+=+=+=">">@@
AGz
L&
]]4Aq!Q"*92+>+>+>"?"?AA
BMz
R0
]]4Aq!Qs]
C
C
ESz
V/
]]4Aq!Qs]
C
C
EWz
Z0
]]4Aq!Qs]
C
C
E[z
^/
]]4Aq!Qs]
C
C
E_z
b0
]]4RBs]
;
;
=cz
f/
]]4RBs]
;
;
=gz
j/
]]4Aq!Qs]
C
C
Ekz
n0
]]4Aq!Q"*9R+@+@+@"A"ACC
Doz
x$,	3	3Ix	22
3
344Y??  222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3	3	3s1gg	g	cgd}|D]|}||5|t5|j|dddn#1swxYwYdddn#1swxYwY}dS)N)rrz
2009.04-19T03z
2009-04.19T03z
2009-04-19T0az2009-04-19T03:1a:45z2009-04-19T03:15:4az2009-04-19T03;15:45z2009-04-19T03:15;45z2009-04-19T03:15:4500:00z 2009-04-19T03:15:45.123456+24:30z 2009-04-19T03:15:45.123456-24:30u2009-04-10ᛇᛇᛇᛇᛇ12:15u2009-0410T12:15u2009-04-10T1215z2009-04-19T1z2009-04-19T12:3z2009-04-19T12:30:4z2009-04-19T12:z2009-04-19T12:30:z2009-04-19T12:30:45.z2009-04-19T12:30:45.123456+z2009-04-19T12:30:45.123456-z!2009-04-19T12:30:45.123456-05:00az2009-04-19T12:30:45.123-05:00az2009-04-19T12:30:45-05:00arr3rrr=rrs   r#!test_fromisoformat_fails_datetimez.TestDateTime.test_fromisoformat_fails_datetimes


: 	9	9Gg..
9
9&&z2299M//888999999999999999
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9	9	94A8A!A8!A%%A8(A%)A88A<	?A<	cd}|ttjt	|5|j|ddddS#1swxYwYdS)Nu2018-01-0301:0113)rrreescaperr=r)r1rs  r#"test_fromisoformat_fails_surrogatez/TestDateTime.test_fromisoformat_fails_surrogates*

#
#J	$u++0F0F
G
G	/	/M''...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sA%%A),A)cd}|j|}||jtjdS)Nz2014-04-19T13:21:13+00:00)r=rr5rrr6)r1rrys   r#test_fromisoformat_utcz#TestDateTime.test_fromisoformat_utcs:,
]
(
(
0
0

bi.....r%c0Gdd|j}|ddddddd	ttd
d}||}||||||dS)
NceZdZdS)BTestDateTime.test_fromisoformat_subclass.<locals>.DateTimeSubclassNrrr%r#rr?rr%rrrrdrrrir'rr)r=rrrrr0r)r1rryrs    r#rz(TestDateTime.test_fromisoformat_subclasss					t}			
dBAr2v%-ib".M.M.M%N%NPPP!..r||~~>>U###e%566666r%N)?rKrbrcrr=rrrrrrr)r,r7rrrsrrQrSr6rVrXrr`r
run_with_tzrergrrrrrrrunittestskipIfrIplatformrrrrrrrrrr_rrrrrr
rrrr1r5r:r<rrr%r#rrsH,,,
/
/
/&&& *H*H*HX---<555:LLL ###$	7	7	73?3?3?j$$$.B4B4B4HCCC'''CCC444$'''B666222222W344DD54D6	;	;	;W""&2&2#"&2P555&%4%4%4N%7%7%7N&&&&&&X_S\W,.Z[[++\[+
X_S\W,.Z[[MM\[MHHH9@9@9@v > > >D***, ;;;
 ' ' 'D???2W  ##! #@:::6/2/2/2b...0!0!0!0F***2,,,"	,	,	,4444D3D3D3L"9"9"9H//////
7
7
7
7
7r%rcDeZdZeZejddZdS)TestSubclassDateTimeznot appropriate for subclassescdSr4rr7s r#rz#TestSubclassDateTime.test_roundtripsr%N)rKrbrcrr=rAskiprrr%r#rErEs@HX]344

54


r%rEceZdZdZdS)SubclassTimer&NrXrr%r#rIrIrZr%rIceZdZeZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdS)TestTimec
|dd}||jd||jd||jd||jddS)Nrrr=r0rfrrrjrs  r#rzTestTime.test_basic_attributess{MM"a  $$$1%%%1%%%*****r%c|dddd}||jd||jd||jd||jddS)NrrrrMrs  r#rz&TestTime.test_basic_attributes_nonzeros
MM"b"d++$$$2&&&2&&&-----r%c|dddd}t|}||d|dd}t	|}|||||j|j|j|j	}|||dS)Nr&rYrUr[rr)
r=rrrDrr0rfrrrj)r1rrrs    r#rzTestTime.test_roundtripsMM!Q1%%
GG[11222
abbE
!WWB]]1618QX=**Br%cgd}|j||j|}||||k||k||k||k||kt	t|D]Q}|dd}||dz||<|j|}||k||k||k||k||k||k||k||k||k||k||k||kStD]c|kd|kd|kd|kd|tfd|tfd|tfd|tfd|tfd	|tfd
|tfd|tfdedS)
Nr&rYrUr[r&FTckSr4rrsr#rEz)TestTime.test_comparing.<locals>.<lambda>/
rr%ckSr4rrsr#rEz)TestTime.test_comparing.<locals>.<lambda>0
rr%ckSr4rrsr#rEz)TestTime.test_comparing.<locals>.<lambda>1
rr%ckSr4rrsr#rEz)TestTime.test_comparing.<locals>.<lambda>2
rr%ckSr4rrsr#rEz)TestTime.test_comparing.<locals>.<lambda>3
rr%ckSr4rrsr#rEz)TestTime.test_comparing.<locals>.<lambda>4
rr%ckSr4rrsr#rEz)TestTime.test_comparing.<locals>.<lambda>5
rr%ckSr4rrsr#rEz)TestTime.test_comparing.<locals>.<lambda>6
rr%)	r=r0rrrlrrrr)r1rrrrr]rrs     @@r#test_comparingzTestTime.test_comparing

s||
T]D
!
T]D
!R   b!!!b!!!r"""b!!!b!!!s4yy!!	'	'A111gGa1GAJ(BOOBG$$$OOBG$$$OOB"H%%%OOB"H%%%OOB"H%%%OOB"H%%%R2X&&&R2X&&&R"W%%%R"W%%%R2X&&&R2X&&&& 
	?
	?FR6\5111R6\4000Vr\5111Vr\4000i)=)=)=)=)=>>>i)<)<)<)<)<===i)<)<)<)<)<===i)=)=)=)=)=>>>i)=)=)=)=)=>>>i)<)<)<)<)<===i)<)<)<)<)<===i)=)=)=)=)=>>>>
	?
	?r%c|dd|dd|t|jdd|t|jdd|dd|dd|t|jdd|t|jdd|ddd|ddd|t|jddd|t|jddd|dddd|dddd|t|jdddd|t|jdddddS)	Nrrrr/rrXr(r)r=rrr7s r#rz'TestTime.test_bad_constructor_arguments8
s

a

b!*dmR;;;*dmR;;;

b!

b"*dmR<<<*dmR<<<

b"a   

b"b!!!*dmRR@@@*dmRR@@@

b"b!$$$

b"b&)))*dmRRDDD*dmRRIIIIIr%cf|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||d|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||ddS)Nrrr<r&rYrrVrrs    r#rzTestTime.test_hash_equalityN
sMM"b"%%MM"b"%%Aa$q''***!fAS1%%%Q###Q###MM!a$$MM!a$$Aa$q''***!fAS1%%%Q###Q#####r%c|dddd}||d||t||}||d||t||d}||d||t||d	}||d
||t||d}||d||t||d
}||d||t||d}||d||t||d}||d||t||dddd}||dd||dd||dd||dd ||d!d"||d#d"|t
|jd$|t
|jd%|dddd&}||dd'|dddd(}||dd)||d!d*||d#ddS)+Nr[rVr&rz04:05:01.00012300:00:00rvz00:00:00.000001r'z00:00:00.000010rz00:00:00.000100rYz00:00:00.001000raz00:00:00.010000順z00:00:00.100000rrrrg)rfrrrjrr12rjz12:34rz12:34:56rUz12:34:56.123rz12:34:56.123456rmonkeyrrz12:34:56.999rz12:34:56.000z12:34:56.000000)r=r0rrrrrs  r#rzTestTime.test_isoformate
sMM!Q3''(9:::A///MMOO
333A///MMaM(((9:::A///MMbM))(9:::A///MMcM**(9:::A///MMdM++(9:::A///MMeM,,(9:::A///MMfM--(9:::A///MMr"RVMLLg66===i88'BBBi88*EEEn==~NNNn==?PQQQf557HIII*akHEEE*akHEEEMMr"RVMLLn==~NNNMMr"RQMGGn==~NNNn==?PQQQf55zBBBBBr%cBdtdfdtdfdtdd	fd
tddd
fdtddddfg}ddtjfdttdfg}|d|Dz
}|ddd}d}|D]i\}}||}||z}||5||ksJ	dddn#1swxYwYjdS)NrrVrrrYrr]r.rr	rrrr'r
r[rrgr)rrrcRg|]$\}}dD]\}}||zt||zf%Srrrs     r#r$z4TestTime.test_isoformat_timezone.<locals>.<listcomp>
rr%rz12:37:09rrr)	r1rrt_baserrrrrs	         r#rz TestTime.test_isoformat_timezone
s
ia((()
ia((()
ia4445
RDDDE
	1aV\ ] ] ]^
	

x|$
x	!--.
	

 )


	
r2q))"	,	,KFCc**AV#C#&&
,
,{{}}+++++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,	,	,s+DD	D	cv|d}|t|jddS)Nr&rrU)r)r=rrrrs  r#test_1653736zTestTime.test_1653736
s8MMM##)Q[a88888r%c(|dddd}||dd||dd	|d	dS#t$rYdSwxYw)
Nr&rYrUr[z%H %M %S %fz01 02 03 000004rru%H%M)r=r0rrrs  r#rzTestTime.test_strftime
sMM!Q1%%M224EFFFK00':::	
JJ|$$$$$!			DD	s,B
BBc|dddd}||dt||t
d5|ddddn#1swxYwYGdd	|j}|dddd}||dd	Gd
d|j}|dddd}||dt|dD]}|||||||||||||ddS)
Nr&rYrUr[rrrceZdZdZdS)TestTime.test_format.<locals>.AcdSrrr7s r#rz'TestTime.test_format.<locals>.A.__str__
rr%Nrrr%r#rrk
rr%rceZdZdZdS)TestTime.test_format.<locals>.BcdSrrrs  r#rz(TestTime.test_format.<locals>.B.strftime
rr%Nr
rr%r#rrn
rr%r)z%H %M %Sr
)r1rrrnrrors       r#rzTestTime.test_format
s#MM!Q1%%b))3q66222

#
#I/E
F
F		
LL																				
			
AaAqMMb))3///					
			
AaAqMMb))3q66222	5	5CQ\\#..

3@@@Q\\#..

3@@@Q\\#..4444		5	5s*BBBc
@|t|ddddd|t|ddddd|t|d	ddd
d|t|dddd	d
|t|ddd	d	ddS)Nr&rYrUr[z01:02:03.000004r'rz10:02:03.004000rrz00:02:03.400000rz12:02:03rrz23:15:00)r0rr=r7s r#rzTestTime.test_str
sT]]1aA66779JKKKT]]2q!T::;;=NOOOT]]1aF;;<<>OPPPT]]2q!Q7788*EEET]]2r1a8899:FFFFFr%c
|d|jjz}|t|ddddd|z|t|ddddd	|z|t|d
dddd|z|t|d
ddd
d|z|t|ddd
d
d|zdS)Nrr&rYrUr[z%s(1, 2, 3, 4)r'rz%s(10, 2, 3, 4000)rrz%s(0, 2, 3, 400000)rz%s(12, 2, 3)rrz
%s(23, 15)rrs  r#rzTestTime.test_repr
sGT]33dmmAq!Q7788)D0	2	2	2dmmB1d;;<<-4	6	6	6dmmAq!V<<==.5	7	7	7dmmB1a8899'$.	0	0	0dmmBAq99::%,	.	.	.	.	.r%c>||jj|j||jj|j||jjt
||jj|jjkdSr4)rr=rrrrrr7s r#rzTestTime.test_resolution_info
s~dm/???dm/???dm6	BBB
)DM,==>>>>>r%c2d}|j|}tD]G\}}}|||}||}|||H|||ddS)Nr<rrrMrYr)rs        r#rzTestTime.test_pickling
s t}d#)7	,	,%GYMM$..Eooe,,GT7++++**D,>,>q,A,ABBBBBr%c
d}t|}tD]o\}}}|||}||}||||t
|tpdS)Nrt)rIrrrr0rrkrs        r#test_pickling_subclass_timez$TestTime.test_pickling_subclass_times T")7	?	?%GYMM$..Eooe,,GT7+++OOJw==>>>>		?	?r%c
gd}t|D]n\}\}}||5|j|}tD]%}||d}|||&	dddn#1swxYwYodS)N))s,cdatetime
time
(S'\x14;\x10\x00\x10\x00'
tR.rt)scdatetime
time
(U;tR.rt)scdatetime
time
U;R.rt)s,cdatetime
time
(S'\x14;\x19\x00\x10\x00'
tR.r<rrrM)scdatetime
time
(U;tR.rx)scdatetime
time
U;R.rx)rrr/r0)rr3r=r3r0)r1rrrr5rr	rrs        r#r6zTestTime.test_compat_unpickles





 )//	8	8OA|d""
8
8(4=$/)88E#eD8<<<G$$Wh77778
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8	8	8s8A77A;	>A;	c|j}||d||dd||ddd||dddd||d||dS)Nr&r)r=r)r1rZs  r#rzTestTime.test_bool%smAAq		"""Aq!%%%Aq!Q(((Ar%c,|j}gd}||}|||d}dD]C\}}|dd}|||<||}|jd
i||i}	|||	|dz
}D|d}|t|jd|t|jd|t|jd	
|t|jddS)NrQr)rrrrr&r/rfrrrrfrrvrrXrYs
          r#r_zTestTime.test_replace/s=m||sDzt||~~...
1				LD&111gGGAJsG}H$,00$00CXs+++
FAAs1vv*dl<<<*dl2>>>*dl3???*dlHHHHHr%cGdd|j}|dd}|t|d|dS)NceZdZdS)4TestTime.test_subclass_replace.<locals>.TimeSubclassNrrr%r#TimeSubclassrIrr%rrrr'r{rd)r1rrs   r#rezTestTime.test_subclass_replaceHsq					4=			R$$

d5==b=1122LAAAAAr%cGfddj}d}j|}||iddi}|j||jd|jd|||d|j|jzdz
dS)Nc$eZdZdZfdZdZdS)&TestTime.test_subclass_time.<locals>.Crfc|}|d}jj|g|Ri|}||_|Srjrkrms      r#rz.TestTime.test_subclass_time.<locals>.C.__new__Trqr%c&||jz|jzSr4rfrrss  r#ruz.TestTime.test_subclass_time.<locals>.C.newmeth[ty(4;66r%Nrvr7sr#rxrQBI





7
7
7
7
7r%rx)r[rVr]rrXrfrZ)	r=r0rJrwrrrurfrrzs`    r#test_subclass_timezTestTime.test_subclass_timeOs	7	7	7	7	7	7	7
	7	7	7dmT"a&'1&&***+++A&&&#--//:::R#(SZ*?!*CDDDDDr%c	^d}ddtddfD].}|t|j||ddz/|td5|tdgt
|zdddddS#1swxYwYdS)	Nz2:59.0r9r/ÿr&rr)chrrrr=rrr)r1r[	hour_bytes   r#rz!TestTime.test_backdoor_resistanceisc3r77F2	?	?Ii)2T!""X)=
?
?
?
?
#
#I/G
H
H	9	9MM%c$ii00%888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s 5B""B&)B&N)rKrbrcrr=rrrrZrrrrrgrrrrrrrvr6rr_rerrrr%r#rKrKszH+++...
 
 
 )?)?)?VJJJ,$$$.2C2C2Ch,,,<999



5556GGG...???CCC???888,III2BBBEEE499999r%rKc,eZdZdZdZdZdZdZdS)
TZInfoBasec|j}Gddt}|ddd|}|turdpd}|||t|turd	pd
}||||||dS)NceZdZdZdZeZdS)7TZInfoBase.test_argument_passing.<locals>.introspectivec|rdpdS)Nrealnonerrxs  r#r}z>TZInfoBase.test_argument_passing.<locals>.introspective.tzname|sBM6,CV%Cr%c*t|rdpdS)Nrfrirrxs  r#rzzATZInfoBase.test_argument_passing.<locals>.introspective.utcoffset}s 29"+;<<<<r%N)rKrbrcr}rzrrr%r#
introspectiver{s+CCC
=
=
=CCCr%rr&rYrUrrrrrfri)r=rrr0r}rrzr)r1rZrobjr	s     r#test_argument_passingz TZInfoBase.test_argument_passingxsm					F			c!Q--//222$;)63Vx000cTk&9c&?RAAA(333H-----r%cH|j}|t|ddddGddt}|t|ddd|Gddt}|}|ddd|}||j|dS)Nr&rrceZdZdZdZdS)3TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTrycdSr4rr7s r#rsz<TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTry.__init__r%cdSr4rrxs  r#rzz=TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTry.utcoffsetrr%NrKrbrcrsrzrr%r#NiceTryr"$$$)))))r%rceZdZdZdZdS)5TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTrycdSr4rr7s r#rsz>TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTry.__init__rr%cdSr4rrxs  r#rzz?TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTry.utcoffsetrr%Nrrr%r#	BetterTryrrr%r)r=rrobjectrr5)r1rZrrrors      r#test_bad_tzinfo_classesz"TZInfoBase.test_bad_tzinfo_classessm)S!Q"===	*	*	*	*	*f	*	*	*	
)S!Q'BBB	*	*	*	*	*	*	*	*
IKKC1a"""

ah"""""r%c6Gddt}|j}dD]\}}|tur|ddd||}n/|tur|dddddd||}n
Jd
|rt	|}t|d\}}d|d	krd
pd||fz}	t
|tr|}|t|d|	z|
tt|dS)NceZdZdZdZdS)6TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgyc0t||_dSrhrrq)r1rqs  r#rsz?TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgy.__init__s'777r%c|jSr4)rqrxs  r#rzz@TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgy.utcoffsets
{"r%Nrrr%r#Edgyrs2
8
8
8
#
#
#
#
#r%r))`F)aT)T)rbFr&rYrUrr]r
impossiblerXz%c%02d:%02drrz01:02:03)rr=rrrkr"rktimetzr0rrr)
r1rrZrqlegitraofsrrmtags
          r#test_utc_offset_out_of_boundsz(TZInfoBase.test_utc_offset_out_of_boundssc	#	#	#	#	#6	#	#	#m-	6	6MFEd{{C1aV555C1aAqf>>>&,&&&
66{{dB''1#vz'9c'@S!Q&GGa**#

A  Qc)9::::!!*c15555%	6	6r%c	|j}Gddt}|ddd|dddd|ddd|fD]w}||||||xGddt}|ddd|}||td||td	||d
Gddt}|ddd|}|t|j|t|j|t|jGd
dt}|ddd|}|t|j|t|jGddt}|ddd|}||td||tddS)Nc eZdZdZdZdZdS)*TZInfoBase.test_tzinfo_classes.<locals>.C1cdSr4rrxs  r#rzz4TZInfoBase.test_tzinfo_classes.<locals>.C1.utcoffsetrr%cdSr4rrxs  r#rz.TZInfoBase.test_tzinfo_classes.<locals>.C1.dstrr%cdSr4rrxs  r#r}z1TZInfoBase.test_tzinfo_classes.<locals>.C1.tznamesr%NrKrbrcrzrr}rr%r#C1rs+000***-----r%rr&rc eZdZdZdZdZdS)*TZInfoBase.test_tzinfo_classes.<locals>.C3c"tdS)Nrrirrxs  r#rzz4TZInfoBase.test_tzinfo_classes.<locals>.C3.utcoffsetsIe,D,D,D%Dr%c"tdS)Nrrirrxs  r#rz.TZInfoBase.test_tzinfo_classes.<locals>.C3.dstsi&=&=&==r%cdSNanamerrxs  r#r}z1TZInfoBase.test_tzinfo_classes.<locals>.C3.tznamesr%Nrrr%r#C3rs+DDD===00000r%rrrirrc eZdZdZdZdZdS)*TZInfoBase.test_tzinfo_classes.<locals>.C4cdSrrrxs  r#rzz4TZInfoBase.test_tzinfo_classes.<locals>.C4.utcoffsetsGGr%cdSrrrxs  r#rz.TZInfoBase.test_tzinfo_classes.<locals>.C4.dstrr%cdSrZrrxs  r#r}z1TZInfoBase.test_tzinfo_classes.<locals>.C4.tznamesr%Nrrr%r#C4rs+333'''*****r%rceZdZdZdZdS)*TZInfoBase.test_tzinfo_classes.<locals>.C6c"tdS)Nirrrxs  r#rzz4TZInfoBase.test_tzinfo_classes.<locals>.C6.utcoffsetsIC,@,@,@%@r%c"tdS)Nr/rrrxs  r#rz.TZInfoBase.test_tzinfo_classes.<locals>.C6.dstsib&9&9&99r%Nrrr%r#C6rs"@@@99999r%rceZdZdZdZdS)*TZInfoBase.test_tzinfo_classes.<locals>.C7c"tdS)Nrrrrxs  r#rzz4TZInfoBase.test_tzinfo_classes.<locals>.C7.utcoffsetsI2,F,F,F%Fr%c"tdS)Nrrrxs  r#rz.TZInfoBase.test_tzinfo_classes.<locals>.C7.dstsiS&A&A&AAr%Nrrr%r#C7rs"FFFAAAAAr%rrrr)r=rrrzrr}r0rrrr)r1rZrrrrrrs        r#test_tzinfo_classeszTZInfoBase.test_tzinfo_classessPm	.	.	.	.	.	.	.	.#aA,,#aAd+++#aAbbdd+++-	*	*A
akkmm,,,aeegg&&&ahhjj))))	1	1	1	1	1	1	1	1
C1a%%%	%(@(@(@AAA)D"9"9"9:::W---	+	+	+	+	+	+	+	+
C1a%%%)Q[111)QU+++)QX...	:	:	:	:	:	:	:	:
C1a%%%*ak222*ae,,,	B	B	B	B	B	B	B	B
C1a%%%	r(B(B(BCCC)"="="=>>>>>r%cf|j}Gddt}|ddd|}|d}|d}|d	}|||fD]k}|||fD]c}ttt
tttfD]:}	|	||}
|	|j	|j	}|
|
|;dl|tur|d|
}|d|
}|d	|
}|||fD]`}|||fD]V}||k||kz
}
||us||ur||us||urd}n||cxur|urnnd}n||urd}n||usJd
}|
|
|W_dSdS)NceZdZdZdS)=TZInfoBase.test_aware_compare.<locals>.OperandDependentOffsetcb|jdkrt|jStdSNr'rirrrrs  r#rzzGTZInfoBase.test_aware_compare.<locals>.OperandDependentOffset.utcoffset38b==$QX6666%R0000r%Nrrr%r#OperandDependentOffsetr#
1
1
1
1
1r%rrrr'rrUr|rrrrrr&)r=rrrrrrrr	rr0r)r1rZrr[d0rrprrlopr^r	s            r#test_aware_comparezTZInfoBase.test_aware_comparesZm	1	1	1	1	1V	1	1	1s1a$:$:$<$<===
\\\
#
#
\\\
#
#
\\\
$
$R	4	4ARZ
4
4b"b"b044B"Q((C!r!(AH55H$$S(33334
4d??Q/E/E/G/GHHBQ/E/E/G/GHHBR0F0F0H0HIIBRZ
4
4R44Aq5QU+CR177bAGG#$a2#$b#% Bwwww#$$$S(33334?
4
4r%N)rKrbrcrrrrrrr%r#rrvs`...$### 6668.?.?.?`-4-4-4-4-4r%rcxeZdZeZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdS)
TestTimeTZc:|}||jd||jd||jd||jd||jdSrZ)r=r0rfrrrjrrrs  r#
test_emptyzTestTimeTZ.test_emptysMMOO###1%%%1%%%***!(#####r%ctddd}tddd}tddd	}td
d|}td
d|}tdd|}tdtd|||j|||j|||j||j|j|||t
d||t
d||t
d||t|jd||	d||	d||	d|	|t|j	d||
t
d||
t
d||
t
d	|
|t|j
d|t|t||t|t||t|t||||||||||||tfd|tfd|t|d|t|d|t|d|td|td||d||d||d|d|dd}|t||dz|t||dz|t||dz|t|dz|t|d z||d!d"||d#d$||d#d%td&d'}td(d)|}||d*d+Gd,d-t}	td.d	d/|	}
||
d0d1|t|
jd2d3|jjvr*d4|	_|t(|
jd2dSdS)5Nrrr&rrrWrXMETrUrXrrrr(rvrrizno argsckSr4rrt5sr#rEz'TestTimeTZ.test_zones.<locals>.<lambda>LrFr%ckSr4rrsr#rEz'TestTimeTZ.test_zones.<locals>.<lambda>MrFr%z07:47:00-05:00z12:47:00+00:00z13:47:00+01:00z00:00:00.000040z00:00:00.000040+00:00z
datetime.timez(7, 47, tzinfo=est)z(12, 47, tzinfo=utc)z(13, 47, tzinfo=met)z
(0, 0, 0, 40)z(0, 0, 0, 40, tzinfo=utc)z%H:%M:%S %%Z=%Z %%z=%zz07:47:00 %Z=EST %z=-0500z%H:%M:%S %Z %zz12:47:00 UTC +0000z13:47:00 MET +0100rz%z %Z %%z%%Zrrz%H:%M %%Z='%Z' %%z='%z'z"23:59 %Z='%z %Z %%z%%Z' %z='-2359'ceZdZdZdZdS)(TestTimeTZ.test_zones.<locals>.Badtznamerfc|jSr4rrxs  r#r}z/TestTimeTZ.test_zones.<locals>.Badtzname.tznameos.r%N)rKrbrcrr}rr%r#	BadtznamermsB00000r%rrYr[z%H:%M:%Sz02:03:04r6rRr)rerr0rrrzrrrr}rrrrrrrrJrKrr)
r1estr6metrrrryuckrrrrs
           @@r#
test_zoneszTestTimeTZ.test_zones"s[$q))!UB''"eQ''
1b
%
%
%
"b
%
%
%
"b
%
%
%
b
!
!
!
b
-
-
-C(((C(((C(((")$$$C(((4)@)@)@AAA1)=)=)=>>>2)>)>)>???",,..))))R\9===e,,,e,,,e,,,"))++&&&)RY	:::9Q#7#7#78889R#8#8#89999Q#7#7#7888"&&((###)RVY777b488,,,b488,,,b488,,,R   R   R   B###)_____555)_____555R"2333R"2333R"2333R"3444R"9:::)9:::)9:::)9:::):;;;)@AAAb1'<#<===b1'=#=>>>b1'=#=>>>b1#6777b1'B#BCCC%=>>%?	A	A	A%5668LMMM%5668LMMM5.11
"b
&
&
&%>??%I	K	K	K	1	1	1	1	1	1	1	1
Aq---J//<<<)QZ666dn---#ILj!*d;;;;;.-r%c
|ddddtdd}|ddddtdd}|t|t||d	d
ddtd
d}|d	dddtdd}|t|t|dS)Nrr&rYrUrrrirrr]rirOi)r=rer0rrs   r#test_hash_edge_caseszTestTimeTZ.test_hash_edge_casesys
]]1aAk$.C.C]
D
D
]]1aAk$.C.C]
D
Db488,,,
]]2r1c+eR2H2H]
I
I
]]2r1c+eR2H2H]
I
Ib488,,,,,r%cd}|j|}tD]G\}}}|||}||}|||H|||dtdd}|ddd|}tD]\}}}|||}||}|||||j	t||
td	||d|||ddS)
NrtrYrrrVr]rXrri)
r=rrrr0r*r+rrrrzrr}	r1rrrrr"rrtinfos	         r#rzTestTimeTZ.test_picklings t}d#)7	,	,%GYMM$..Eooe,,GT7++++**D,>,>q,A,ABBB%T844}}Q1U}33)7	9	9%GYMM$..Eooe,,GT7+++!!'.2FGGGW..00)D2I2I2IJJJW^^--x8888**D,>,>q,A,ABBBBBr%c	gd}tdd}|dddd|}|D]}tD]}||d	
}|||t	|||jt||td||	ddS)N)scdatetime
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.scdatetime
time
(U@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
(JJ0KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.scdatetime
time
U@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
JJ0KRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubR.rrrVr]rXrgrr/r0ri)
rr=r3r0rrrrzrr})r1rrr	r5rrs       r#r6zTestTimeTZ.test_compat_unpickles


.%T844==Aq&=??	=	=D%
=
=%x888  (DJJ???%%gn6JKKK  !2!2!4!4i6M6M6MNNN  !1!18<<<<
=	=	=r%c|j}|dtdd}|||dtdd}|||dtdd}|||ddtd	d}||dS)
NrrrrrVi,rrr)r=rer)r1rZrs   r#test_more_boolzTestTimeTZ.test_more_boolsmC+dB//000C+dB//000C+c2..///CB{:r::;;;r%c2|j}tdd}ttdd}dddd	|g}||}|||d
}ddd
dd|ffD]C\}}|dd}	||	|<||	}
|jdi||i}||
||dz
}D||d|d}||j||||}
|||
||j|
j|d}|	t|jd|	t|jd|	t|jd|	t|jddS)Nr+1008ri-200r&rYrUr[rrrrrrrr/r{rr|rfrrvrr=rerr0rr}rrr5rrr1rZz100zm200rr[rrrFr\r]r	r^base2base3s              r#r_zTestTimeTZ.test_replaces)m3''Id333V<<1aD!sDzt||~~...
(**/&.	0
	
	LD&
111gGGAJsG}H$,00$00CXs+++
FAA	
///D))%,'''%,,..)))

T
**u%%%

dk5<000s1vv*dl<<<*dl2>>>*dl3???*dlHHHHHr%c|ddd}|ddd}||||d}||||tdd}||||tdd}|||Gddt
}|}||}||}||td	
||td
|||||}|||kdS)Nr&rYrUrrrceZdZdZdZdS)-TestTimeTZ.test_mixed_compare.<locals>.Variesc0td|_dSNrrirr7s r#rsz6TestTimeTZ.test_mixed_compare.<locals>.Varies.__init__'333r%cL|xjtdz
c_|jSNr&rirqrrs  r#rzz7TestTimeTZ.test_mixed_compare.<locals>.Varies.utcoffset%y3333{"r%Nrrr%r#Variesr2
4
4
4
#
#
#
#
#r%rrrir/)	r=r0rrerrrzrrr1rrrvs     r#rKzTestTimeTZ.test_mixed_compares
]]1a
#
#
]]1a
#
#R   
ZZtZ
$
$R   
ZZ{444Z
5
5R   
ZZ{1b11Z
2
2B###	#	#	#	#	#V	#	#	#
FHH
ZZqZ
!
!
ZZqZ
!
!2)>)>)>???2)>)>)>???R   ZZvvxxZ
(
(R     r%c	ddg}d}d}d}d}|ttj||||z
}dtjttdttd	d
g}|D]}|D]}|j|d|i}	|	}
||

5|j	|
}|
|	|dddn#1swxYwYdS)Nr)rrrr()rrr<)rVr)r[r)rir!rYrr]r.rrr	)r	itertoolsproductrr6rr=rr3rr0)r1
time_exampleshhmmssusecrttuprrr
t_rts            r#rzTestTimeTZ.test_fromisoformatsk 



"i/BDAABBB
IA...//IAr:::;;="	.	.D
.
.!DM4444{{}}\\t\,,..=66t<<D$$Q---...............	
.	.	.s:1C77C;>C;c
||dddd}tdtdtdd	
tdddtdd
ddg}|d|Dz
}dtjttdg}|d|Dz
}|D]}||}|}||5|j|}||ks
J|	dddn#1swxYwYdS)NrrrrrVrrYr]r.rrr'r[rrgr)cg|]}d|zSrrrs  r#r$z:TestTimeTZ.test_fromisoformat_timezone.<locals>.<listcomp>4rr%rc,g|]}t|Srrrs  r#r$z:TestTimeTZ.test_fromisoformat_timezone.<locals>.<listcomp>9rr%rr	r)r1	base_timerrrrr
r's        r#r
z&TestTimeTZ.test_fromisoformat_timezone*sMM"b"f55	
A	 2 2 2Ar***BB777Aq!&III	
		22	2222	IA...//1	5595555	'	'C!!!--A;;==D4((
'
'}22488Dyyy$yyyy
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'		'	's8+D00D4	7D4	c
vddg}dtjttdttdttddg}gd	}t|D]\}}|D]}|D]}|d
krd|ddzz}|d
d|fz}|j|d
d|zd|i}	|	|}
||
5|j|
}||	|dddn#1swxYwYdS)N)rr<rrg)rr<rrrrrYr]r.rrrUrYrrr&rrr	r)r1
time_basesrrrrrt_tuplerrr
r's            r#rz'TestTimeTZ.test_fromisoformat_timespecsCs


IB///00IA...//IAr:::;;=
555	 	**	2	2FB

2

2)	2	2G^+++/72;$3F+G(")!B$-3C2E"E%
1r6
(;ISIIA;;;33D40022#}::4@@((D111222222222222222	2

2	2	2rcgd}|D]?\}}|j|}|j|}|||@dS)N))z
12:30:45.1)rrrr_)z12:30:45.12)rrri)z12:30:45.123)rrrix)z
12:30:45.1234)rrri)z12:30:45.12345)rrri:)z12:30:45.123456rrrrg)z12:30:45.1234567r0)z12:30:45.12345678r0)r=rr0)r1strstime_str
time_compsr	rs      r#test_fromisoformat_fractionsz'TestTimeTZ.test_fromisoformat_fractions^so	
	
	
%)	/	/ Hj$t}j1H]00::FVX....		/	/r%c	gd|ddfd|ddfd|ddfd|ddfd|ddfd|ddfd|ddfd	|ddfd
|ddfd|ddfd|d
dfd|d
dfd|d
dfd|d
dfd|d
dfd|d
dfd|d
dfd|d
dfd|d
dfd|d
dfd|ddfd|ddfd|dddfd|dddfd|ddddfd|ddddfd |dddd!fd"|dddd!fd#|dddd$fd%|dddd$fd&|ddtj'fd(|d
dtj'fd)|d
dtj'fd*|ddttd+,'fd-|ddttd+d./'fd0|d
dttd1,'fd2|d
dttd1,'fd3|ddttdddd$4'f}|D]c\}}||55|j|}|||dddn#1swxYwYddS)6N0000rz00:00000000r^z000000.0z
00:00:00.0z
000000.000z00:00:00.000z
000000.000000z00:00:00.0000001200rz12:00120000z12:00:00z120000.0z
12:00:00.0z
120000.000z12:00:00.000z
120000.000000z12:00:00.0000002359rrz23:59235959z23:59:59z235959.9i
z
23:59:59.9z
235959.999r^z23:59:59.999z
235959.999999r(z23:59:59.999999z	00:00:00Zrz
12:00:00+0000z12:00:00+00:00z00:00:00+05rVrz00:00:00+05:30rrz12:00:00-05:00rz
12:00:00-0500z00:00:00,000-23:59:59.999999r)r)r=rr6rr3rr0rs     r# test_fromisoformat_time_examplesz+TestTimeTZ.test_fromisoformat_time_examplesps,

T]]1a((),

dmmAq))*,
t}}Q**+,
q!,,-	,

q!,,-,
4==A../
,
4==A../,
T]]1a001,
dmmAq112,


a 3 34,
T]]2q))*,
dmmB**+,
t}}R++,,
r1--.,
r1--.,
 4==Q//0!,
"4==Q//0#,
$T]]2q112%,
&dmmB223',
(

b! 4 45),
*T]]2r**++,
,dmmB++,-,
.t}}RR001/,
0r2r2231,
2r2r6::;3,
44==RV<<=5,
64==RV<<=7,
8T]]2r2v>>?9,
:dmmBB??@;,
<

b"b& A AB=,
>$--1X\-BBC?,
@dmmB(,mGGHA,
Bt}}R8<}HHIC,
D
]]1a1C1C1C(D(D]
E
E
GE,
H
]]1aB1O1O1O(P(P]
Q
Q
SI,
L
]]2q)"2E2E2E)F)F]
G
G
IM,
P
]]2q)"2E2E2E)F)F]
G
G
IQ,
T,
]]1a)"bZ\kq2r2r2r1r(s(s]
t
t
vU,
\$,	3	3Ix	22
3
344Y??  222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3	3	3s81R55R9	<R9	cgd}|D]|}||5|t5|j|dddn#1swxYwYdddn#1swxYwY}dS)N)ru1200z12:z12:30:z	12:30:15.1z12:3z12:30:1z1a:30:45.334034z12:a0:45.334034z12:30:a5.334034z12:30:45.123456+24:30z12:30:45.123456-24:30u12:30:4512:30:45.123456az12:30:45.123456789au12:30:45․123456z	12:30:45az
12:30:45.123ar?z12:30:45.123456-z12:30:45.123456+z12:30:45.123456+12:00:30ar3r4rs   r#rz#TestTimeTZ.test_fromisoformat_failss


4 	9	9Gg..
9
9&&z2299M//888999999999999999
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9	9	9r6cddtjdg}|D]N}|t5|j|dddn#1swxYwYOdS)Ns12:30:45z12:30:45rrs   r#rz-TestTimeTZ.test_fromisoformat_fails_typeerrors $J(?(?@	!	6	6H""9--
6
6
++H555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6	6	6rcGdd|j}|ddddtj}||}||||||dS)NceZdZdS)<TestTimeTZ.test_fromisoformat_subclass.<locals>.TimeSubclassNrrr%r#rrCrr%rrrdrir)r=rr6rrr0r)r1rtsctsc_rts    r#rz&TestTimeTZ.test_fromisoformat_subclasss					4=			l2r2vhlCCC++CMMOO<<f%%%fl33333r%c	Gfddj}ddddtddd	f}j|}||id
di}|j||jd|jd|||d
|j|j	zdz
dS)Nc$eZdZdZfdZdZdS)*TestTimeTZ.test_subclass_timetz.<locals>.Crfc|}|d}jj|g|Ri|}||_|Srjrkrms      r#rz2TestTimeTZ.test_subclass_timetz.<locals>.C.__new__rqr%c&||jz|jzSr4rrss  r#ruz2TestTimeTZ.test_subclass_timetz.<locals>.C.newmethrr%Nrvr7sr#rxrHrr%rxr[rVr]rrr&rrXrfrZ)
r=rer0rJrwrrzrurfrrzs`    r#test_subclass_timetzzTestTimeTZ.test_subclass_timetzs	7	7	7	7	7	7	7
	7	7	7!Q[ua888dmT"a&'1&&***+++A&&&#--//:::R#(SZ*?!*CDDDDDr%N)rKrbrcrr=rrrrr6rr_rKrr
rr4r<rrrrLrr%r#rrs+H$$$U<U<U<n---CCC, = = =D %I%I%IN!!!<...4'''22226///$232323h999@666444EEEEEr%rc&eZdZeZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZejddZejddZejddZdZdZdZdS)TestDateTimeTZc	|ddddddd}||jd||jd||jd||jd||jd||jd||jd||j	ddS)Nr&rYrUr[rVr]rX)
r=r0r_r`rrfrrrjrrxs  r#test_trivialzTestDateTimeTZ.test_trivials
]]1aAq!Q
/
/!$$$1%%%###!$$$A&&&A&&&+++D)))))r%c
x|dddtdd|tdddddd	td
d|k|k|k|||dddddtdd|ddddd
tdd||dddddtdd|k|dddddtdd|k|dddddtddd|k|dddddtddd|k|jj|||t5kdddn#1swxYwYGddt}|ddd||||ddd|Gddt}|ddd||dddtdd|tfddS)Nr&rrrrrrrr(rrYrUrr)rrrmceZdZdZdS)4TestDateTimeTZ.test_even_more_compare.<locals>.NaivecdSr4rrxs  r#rzz>TestDateTimeTZ.test_even_more_compare.<locals>.Naive.utcoffset4rr%Nrrr%r#NaiverT3s00000r%rVrVr]rXceZdZdZdS)4TestDateTimeTZ.test_even_more_compare.<locals>.Bogusc"tdS)Nrbrirrxs  r#rzz>TestDateTimeTZ.test_even_more_compare.<locals>.Bogus.utcoffset@s ....r%Nrrr%r#rrX?s#
/
/
/
/
/r%rckSr4r)rrsr#rEz7TestDateTimeTZ.test_even_more_compare.<locals>.<lambda>DsbBhr%)r=rerrr0rrrrrr)r1rVrrrs   @@r#test_even_more_comparez%TestDateTimeTZ.test_even_more_compares%
]]1a;tR+@+@]
A
A
]]7BBB"-eR"8"8::	
R   b!!!R   R   R   ]]1b"b"[B5G5G]
H
H
]]1aAr+i2L2L]
M
MR   ]]1b"b"[B5G5G]
H
HR   ]]1b"b"[B5G5G]
H
HR   ]]1b"b"[B5G5G"#%%R   ]]1b"b"[B5G5G'(**R   ]
B###R   


y
)
)		GG																1	1	1	1	1F	1	1	1
]]1a5577]
3
3B###R   ]]1a
#
#R   	/	/	/	/	/F	/	/	/]]1a5577]
3
3
]]1a;q"+=+=]
>
>*&6&6&6&6&677777sJ((J,/J,c
d}|j|}tD]G\}}}|||}||}|||H|||dtdd}|j|id|i}|dddtddd	}tD]\}}}|||}||}||||	|j
t||td
||
d|||ddS)NrLrYrrrr&rrrri)r=rrrr0r*r+rrerrrzrr}rs	         r#rzTestDateTimeTZ.test_picklingFs)t}d#)7	,	,%GYMM$..Eooe,,GT7++++**D,>,>q,A,ABBB%T844t}d8x&788--1aAr10E0E-FF)7	9	9%GYMM$..Eooe,,GT7+++!!'.2FGGGW..00)D2I2I2IJJJW^^--x8888**D,>,>q,A,ABBBBBr%cgd}d}tdd}|j|id|i}|D]}tD]}||d}|||||jt||td||ddS)	N)scdatetime
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.scdatetime
datetime
(U
;@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
(JJ0KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.scdatetime
datetime
U
;@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
JJ0KRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubR.)r-rr.r<rr&rgrrrr/r0ri)	rr=r3r0rrrzrr})r1rrrr	r5rrs        r#r6z#TestDateTimeTZ.test_compat_unpickle]s


2/$T844 4=$<8U*;<<	=	=D%
=
=%x888  (333%%gn6JKKK  !2!2!4!4i6M6M6MNNN  !1!18<<<<
=	=	=r%c
|dddtdd}t||tdddddd	td
d}t||dddtdd}|t
t|dS)
Nr&rrrrrrrr(rrVr)r=rerrrrrs  r#test_extreme_hashesz"TestDateTimeTZ.test_extreme_hashess
MM!Q+dB*?*?M@@QMM'2r2r2v!,UB!7!7

9
9Q
MM!Q+eR*@*@MAA*dA.....r%ctdd}tdd}tdd}tddd	d
d|}tddd	d
d|}tddd	dd|}||j|||j|||j|||td||td||td||d||d||d|t|t||t|t||t|t|||||||||||t|d|t|d|t|dd}|t||dz|t||dz|t||dzdS)NrrrrrXrr^rUrrXrrrrriz2002-03-19 07:47:00-05:00z2002-03-19 12:47:00+00:00z2002-03-19 13:47:00+01:00zdatetime.datetime(2002, 3, 19, z7, 47, tzinfo=est)z12, 47, tzinfo=utc)z13, 47, tzinfo=met))
rerr0rrzrr}rrr)r1rr6rrrrrs        r#rzTestDateTimeTZ.test_zoness
$&&!U##"e$$
dArAr#
6
6
6
dAr2r#
6
6
6
dAr2r#
6
6
6C(((C(((C(((4)@)@)@AAA1)=)=)=>>>2)>)>)>???e,,,e,,,e,,,b488,,,b488,,,b488,,,R   R   R   R"=>>>R"=>>>R"=>>>-b1';#;<<<b1'<#<===b1'<#<=====r%c
tdd}tddd}tdddd|	}tj||}||tddddddd|	dS
NrXrr^rUr[r(rrr)rerrrrr0)r1rrrrys     r#rzTestDateTimeTZ.test_combines"e$$q!
"b!T#
.
.
.

a
$
$XdAq"b!T/2444	5	5	5	5	5r%c
tdd}|ddddddd|	}||tddd||t	dddd||t	dddd|	dSrb)rer=r0rrr)r1rrys   r#rzTestDateTimeTZ.test_extracts"e$$
]]4Ar2q$s]
C
CDq!$4$4555DRD$9$9:::d2r1d3&G&G&GHHHHHr%c
z
|jtdd}|}|j||j||	
||tfd|tfd|tfd|tfd|tfd|	z
td	|	z
td	td
dd


z|j|
z}||j||	|
z
}||j||	||t
fd|	z

ttjddd}||j|z
}z

z
}|	|||d
d
d
tdd}|t"ddddddtdd}	|	|z
}
|	|
|jj|jjz
tdzt)t*d}t)t*d}|||	|z

|	
|jj|jjz
dS)Niz	west 5:30rcz
Sr4rrnowawaresr#rEz9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>S8^r%cz
Sr4rrfsr#rEz9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>X^r%czSr4rrfsr#rEz9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>rhr%czSr4rrfsr#rEz9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>rjr%czSr4r)rgsr#rEz9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>sX-@r%rr&ri.)rSrjrcz
Sr4r)r,nowawareplussr#rEz9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>sU\-Ar%rrbrandomtimezonerrrrrr(ri>rirr)r=rrerrrrr5rr0rrrrr	randrangerzrrrrr)r1tz55	timeaware
nowawareplus2rtzrr^r	rrmaxdifftzatzbr,rrgros             @@@@r#test_tz_aware_arithmeticz'TestDateTimeTZ.test_tz_aware_arithmeticsm!!4--HHJJ&&d&33	=((Y??

hot,,,**I666	
)%;%;%;%;%;<<<)%;%;%;%;%;<<<	
)%;%;%;%;%;<<<)%;%;%;%;%;<<<)%@%@%@%@AAA	
sIaLL111H,ill;;;2DAAA%'

hot,,,(


m*D111}555e#

dk4(((4((()%A%A%A%A%ABBB0%888&*5$779IJJ#++3+77

l)3///% ))++h.@.@.B.BBUJh'''mmAq!Ke,D,DmEEmmGRRR#.ue#<#<>>)$-"3dm6G"G"+F";";";#<	=	=	=tS!!tS!!3''#++S+*A*AA
 1DM4E EFFFFFr%c(|jj}|}tdd}||}||}||j|j||td|t|d|t|d|t|||t|||tdd	d}ttd
dd
dttd
dd
fD]}tdD]}tj|}	||	j|tj
|}
|
|}t!|	|z
tdkrn|ddS)Nrf42rrirrrrr6rrrweirdtzrUrrz0utcnow(), now(tz), or astimezone() may be broken)r=rrer5rr0rzrrrrrlrrrrrkfail)r1methr[off42anotheragainr6r}rrrnow2s            r#test_tzinfo_nowzTestDateTimeTZ.test_tzinfo_nows} tvvB%%$u++

gnel333**,,i.C.C.CDDD)T2...)T"555)T777)T5%888
!UA&&#IB$C$C$CYPQRR R!@!@!@)LLO
	N
	NGq
N
Nl7++

cj'222!**22#2>>((11sTz??Yr%:%:%:::E;		LMMM
	N
	Nr%ctddl}|jj}|j}||}tdd}|||}|||}||j|j||td|	t||d|	t||d|	t||||	t|||||	t|d	}tj|}	td
d}
t|
d
d}|	|
z}tj||}
|||

ddS)Nrrfr{rrirrr|ri'rr)rr=rrer5rr0rzrrrrr_r)r1rrrr[rrrrutcdatetimerzrr	r^s              r#test_tzinfo_fromtimestampz(TestDateTimeTZ.test_tzinfo_fromtimestamp#s}*
TY[[tBxxB%%$r5//RE"""

gnel333**,,i.C.C.CDDD)T2r222)T2b999)T2U;;;)T2ue<<<)T***	/	::
C444	
D!
,
,*$Y333;;d;#;#;<<<<<r%c|jj}|}tdd}|t|||t||dS)Nrfr{r)r=rrerr)r1rr[rs    r#test_tzinfo_utcnowz!TestDateTimeTZ.test_tzinfo_utcnowFsa}#tvvB%%)T5111)T%88888r%cddl}|jj}|j}||}tdd}|t
||||t
|||dS)Nrrfr{r)rr=r_rerr)r1rrrr[rs      r#test_tzinfo_utcfromtimestampz+TestDateTimeTZ.test_tzinfo_utcfromtimestampPs}}-
TY[[tBxxB%%)T2u555)T2e<<<<<r%c
Gddt}|j}dD])\}}|ddddddd||	}|}|d|j|d|j|d|j|d|j|d|j|d|j	|d
|j
|d|j|||j+|
t|ddd|d	j||ddd|d	jd||ddd|d
	jd|
t|ddd|d	j|
t|ddd|d	jdS)NceZdZdZdZdS)1TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DSTc^t|trt|}||_dSrhrkrlrdstvaluer1rs  r#rsz:TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DST.__init__`/h,,;(:::H (


r%c|jSr4rrxs  r#rz5TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DST.dstd
}$r%NrKrbrcrsrrr%r#DSTr_s2
)
)
)
%
%
%
%
%r%r))r&)rr&)rr)Nrr&r'r<rrrrrrrrbr)rr=rr0rrrr r!r"r#r$r%rrr)r1rrZrflagrrs       r#test_tzinfo_timetuplez$TestDateTimeTZ.test_tzinfo_timetuple\s	%	%	%	%	%&	%	%	%mC	/	/NHdAq!RRCCMMBBBA

AQ	***Q)))Q	***R+++R***R***Q	***Q	***T1:....	
)SSAqS%B%B%B%LMMM	
Qq33t99555??AAJANNNQq33u::666@@BBKQOOO	
*cc!AaD		&B&B&B&LMMM*cc!AaE

&C&C&C&MNNNNNr%c
Gddt|j}|t|ddddjGfdd}dD]}|dd	d
ddd
d|d|}|}||j|j||j	|j
||j|j|d|j
|d|j||j|j|||j||t)dddz
dz|j|d|j|dd	d
ddd
d}|}||dd|dd|d|jGdd}|dd	d
ddd
d|}|}||dd|dd|d|jGdd}|dd	d
ddd
d|}|t0|j|ddddddd}t2jt2jt2jfD]}||}	||	dd|	t2jdd|t>ddddd|d}
|t@|
j|tBddd d!dd"|d#}|t@|j|jt3tD}
|t@|
j|jt3tD}|t@|jdS)$NceZdZddZdZdS)-TestDateTimeTZ.test_utctimetuple.<locals>.DSTrc^t|trt|}||_dSrhrrs  r#rsz6TestDateTimeTZ.test_utctimetuple.<locals>.DST.__init__rr%c|jSr4rrxs  r#rz1TestDateTimeTZ.test_utctimetuple.<locals>.DST.dstrr%N)rrrr%r#rrs7
)
)
)
)
%
%
%
%
%r%rr&rrc"eZdZdfd	ZdZdS).TestDateTimeTZ.test_utctimetuple.<locals>.UOFSNc^||t||_dSrh)rsruofs)r1rdofsrs   r#rsz7TestDateTimeTZ.test_utctimetuple.<locals>.UOFS.__init__s-T4(((%d333			r%c|jSr4)rrxs  r#rzz8TestDateTimeTZ.test_utctimetuple.<locals>.UOFS.utcoffsets
y r%r4r)rsr#UOFSrsB
4
4
4
4
4
4
!
!
!
!
!r%r)rrrNrYrUr'r<rrirrrceZdZdZdS).TestDateTimeTZ.test_utctimetuple.<locals>.NOFScdSr4rrxs  r#rzz8TestDateTimeTZ.test_utctimetuple.<locals>.NOFS.utcoffsetstr%Nrrr%r#NOFSrs#




r%rceZdZdZdS).TestDateTimeTZ.test_utctimetuple.<locals>.BOFScdS)Nrrrxs  r#rzz8TestDateTimeTZ.test_utctimetuple.<locals>.BOFS.utcoffsetsur%Nrrr%r#BOFSrs#




r%rrrdrri+rrrrrrr(r)#rr=rrrzutctimetupler0r_rr`rrrr r!rr"rr#rhrr$r%rrrrr6rrrrrrr)
r1rZrrrrrrrdtzrhugers
            @r#test_utctimetuplez TestDateTimeTZ.test_utctimetuples8	%	%	%	%	%&	%	%	%m-#aAcc!ff555?	A	A	A	!	!	!	!	!	!	!3	!	!	!)	,	,HAq!RRDDh4G4GHHHA  AQVQY///QWah///QUAI...R+++R***QXqx000QYY[[!)444Q[[]]T!Q]]-D-D-F-FFJY
(
(
(
Q
++++
C1aRR((
NN3B3ss!3444AJ'''					3			
C1aRR777
NN3B3ss!3444AJ'''					3			
C1aRR777)Q^444
Cb"b"b&11<x|<	L	LB))2)&&CS--//4 ^^HL99CCEEcrcJ
L
L
L
L
s7Aq!Q44::>>>-):;;;s7BBBttE{{KKK-):;;;whv&6&677-):;;;whw&7&788-):;;;;;r%ctdd}tdd}tdd}tdd}|j}d}d||||fD]%}d	D]}|d
ddd
dd||}	d|rdpdz}
|dur|	pd}|
|z}|	}
||
|dz|z||
|	d||	d|dz|z||	d|dz|z|t|	|dz|z 'dS)Nrrz+03:40iz-03:51rz
0001-02-03)riyr&rYrUr[rVrrz04:05:59z.987001rkuሴr)rer=r}rr0r)r1rplusminusunknownrZdatestrofsrqrtimestrofsstrtailstrisos              r#test_tzinfo_isoformatz$TestDateTimeTZ.test_tzinfo_isoformats1h''3))D(++dB''mtUG3	B	BC

B

BC1aAr2c:::$(8y(>B?D7QXXZZ=2!F*kkmm  gmg&=>>>  akk#&6&6777  S!1!17S=73JKKK  X!6!6(8JW8TUUU  Q3)@AAAA

B	B	Br%c	v|j}tdd}ttdd}dddd	d
dd|g}||}|||d
}dddddddd|ffD]C\}}|dd}	||	|<||	}
|jdi||i}||
||dz
}D||d|d}||j||||}
|||
||j|
j|ddd}|	t|jddS)Nrrrrir	r&rYrUr[rVr]rXrrTrUrVrrrrrrrSr~rrWrr
rs              r#r_zTestDateTimeTZ.test_replacesm3''Id333V<<1aAq!T*sDzt||~~...
()'(**/&.0
	
	LD&111gGGAJsG}H$,00$00CXs+++
FAA	
///D))%,'''%,,..)))

T
**u%%%

dk5<000s4B*dl>>>>>r%ctdd}tdd}ttdd}|j|}||j||t|j|||j}||j||	|
|
|	||||}||j||	|td||z
}|||z
}|
|	}|	|
|
|	|||	||||j|j|	||dS)
NNoner44rVrm300rrr)rerr=rr5rrrrr0rrrzrr)r1fnonef44mfm5hryrr^r	s        r#test_more_astimezonez#TestDateTimeTZ.test_more_astimezones2D&))2t$$IA....77
]

$

'
'

bi&&&*bmU;;;MM")$$

ah%%%27799---27799---mmD!!

cj$''')"*=*=*=>>>&DNN2&&&##4#00X]]__555X]]__555x'8'8999

cj(/222h'''''r%rc|jtj}||d||||dSr4)r=rrr6r0rrxs  r#test_astimezone_default_utcz*TestDateTimeTZ.test_astimezone_default_utc)s_
]

x|
,
,t,,b111"-----r%rac|dddddtj}|}|||||dd|dddd	dtj}|}|||||dd
dS)Nrcrr[r]rrrz	-0500 ESTrVz	-0400 EDT)r=rr6rr0r)r1ryrs   r#test_astimezone_default_easternz.TestDateTimeTZ.test_astimezone_default_eastern1s
]]4Q2hl]
C
C

U###00+>>>
]]4Q2hl]
C
C

U###00+>>>>>r%ctddddtj}|}|}||j|jdS)Nr-rr&rVr)rrr6rr0r)r1rrrs    r#!test_astimezone_default_near_foldz0TestDateTimeTZ.test_astimezone_default_near_fold<sX
T2q!HL999
LLNN
LLNN18,,,,,r%c|j}Gddt}|ddddddd	|
}|d}|d}|d}|||fD]B}|||fD]:}||z
}	t|j|jz

}
||	|
;C|ddddddd	}|d|}|d|}|d|}|||fD]}|||fD]}||z
}	||us||ur||us||urtd}
nG||cxur|urnntd}
n+||urtd
}
n||usJtd
}
||	|
dS)NceZdZdZdS)BTestDateTimeTZ.test_aware_subtract.<locals>.OperandDependentOffsetcb|jdkrt|jStdSrrrs  r#rzzLTestDateTimeTZ.test_aware_subtract.<locals>.OperandDependentOffset.utcoffsetJrr%Nrrr%r#rrIrr%rrrr'rrrrdrrUr|rirrirO)r=rrrrr0)r1rZrr[rrrprrlr^r	s           r#test_aware_subtractz"TestDateTimeTZ.test_aware_subtractDscm	1	1	1	1	1V	1	1	1s1aRR4J4J4L4LMMM
\\\
#
#
\\\
#
#
\\\
$
$R	0	0ARZ
0
0!e$QX-@AAA  h////
0s1aRR,,
\\+A+A+C+C\
D
D
\\+A+A+C+C\
D
D
\\,B,B,D,D\
E
ER	0	0ARZ
0
0!eGGqBwwQ"WWR(||HH!\\\\r\\\\\(||HH"WW(;;;HH7777(;;;H  h////
0	0	0r%c	tddddddd}tddddddd}||||d}||||tdd	}||||td
d	}|||Gddt
}|}||}||}||td
||td|||||}|||kdS)Nr&rYrUr[rVr]rXrrrceZdZdZdZdS)1TestDateTimeTZ.test_mixed_compare.<locals>.Variesc0td|_dSrrr7s r#rsz:TestDateTimeTZ.test_mixed_compare.<locals>.Varies.__init__}rr%cL|xjtdz
c_|jSrrrs  r#rzz;TestDateTimeTZ.test_mixed_compare.<locals>.Varies.utcoffsetrr%Nrrr%r#rr|rr%rrrir/)	rr0rrerrrzrrrs     r#rKz!TestDateTimeTZ.test_mixed_compareps
aAq!Q
*
*
aAq!Q
*
*R   
ZZtZ
$
$R   
ZZ{444Z
5
5R   
ZZ{1b11Z
2
2B###	#	#	#	#	#V	#	#	#
FHH
ZZqZ
!
!
ZZqZ
!
!2)>)>)>???2)>)>)>???R   ZZvvxxZ
(
(R     r%cGfddj}ddddddd	td
ddf}j|}||id
di}|j||jd|jd|||d|j|j	zdz
dS)Nc$eZdZdZfdZdZdS)2TestDateTimeTZ.test_subclass_datetimetz.<locals>.Crfc|}|d}jj|g|Ri|}||_|Srjrkrms      r#rz:TestDateTimeTZ.test_subclass_datetimetz.<locals>.C.__new__rqr%c&||jz|jzSr4)rfr_rss  r#ruz:TestDateTimeTZ.test_subclass_datetimetz.<locals>.C.newmethsty(4944r%Nrvr7sr#rxrsBI





5
5
5
5
5r%rxr^rrr[rVr]rKrrr&rrXrfrZ)
r=rer0rJrwrrzrurfr_rzs`    r#test_subclass_datetimetzz'TestDateTimeTZ.test_subclass_datetimetzs%	5	5	5	5	5	5	5
	5	5	5RQ1c;tUA+F+FFdmT"a&'1&&***+++A&&&#--//:::R#(SX*=*ABBBBBr%N)rKrbrcrr=rPr[rr6r_rrrryrrrrrrrr_rr
r@rrrrrKrrr%r#rNrNsH	*	*	*C8C8C8JCCC.#=#=#=J///>>><555III?G?G?GB#N#N#NJ!=!=!=F999
=
=
="O"O"OHN<N<N<`BBB*%?%?%?N(((:W.. .W344??54?W344--54-*0*0*0X!!!<CCCCCr%rNc\d|z
}|r|t|z
}|S)Nr])rr)ry
days_to_gos  r#first_sunday_on_or_afterrs3RZZ\\!J$
i
###
Ir%rirrVr[rYrc,eZdZdZdZdZdZdZdS)
USTimeZonecZt||_||_||_||_dSNrr	stdoffsetreprnamestdnamedstnamer1rrrrs     r#rszUSTimeZone.__init__-"/// 
r%c|jSr4rr7s r#rvzUSTimeZone.__repr__r{r%cH||r|jS|jSr4rrrrxs  r#r}zUSTimeZone.tzname$88B<<	 <<r%c<|j||zSr4rrrxs  r#rzzUSTimeZone.utcoffset~,,r%c||jtS|j|usJtt|j}|dkr|jdkr|jdksJtt|j}|dkr|jdkr|jdksJ||dcxkr|kr
nntStSNrWr]r[rXr'rr)rrrDSTSTARTrr_rr`rDSTENDrr1ryrtends    r#rzUSTimeZone.dsts
:*KyD    ))9)9rw)9)G)GHH}}!##q(8(8UY!^^^^'v~~27~'C'CDD{{}}!!ci2oo#'R----BJJdJ++1111c11111KKr%NrKrbrcrsrvr}rzrrr%r#rrs_   ---r%rrrrrr^CentralCSTCDTrZMountainMSTMDTiPacificPSTPDTri0UTCfakecteZdZeddddZeddddZeZdZd	Zd
Z	dZ
dZd
ZdZ
dS)TestTimezoneConversionsr^r[rXrYr'r.r&cz||t||||||}||}||kr|jdkr||tz|||t|||||n||||tz}||}	||kr|jdkru||	|d|tz
}||}	||	|ddS||	|z
tdS)NrYrr&r{)r0rrrrrfrr)
r1ryrr6dstondstoffasutcthere_and_backnexthour_utcnexthour_tzs
          r#checkinsidez#TestTimezoneConversions.checkinsides4(((	
r**B///

c""))"--7799

$$A
^d2B777
^//114888^66s;;]]3//
1
1
1
1
R000t|"--b11
7799

%%"'Q,,
["**!**<*<===D L&11"55K["**!**<*<=====[2-t44444r%c2||t||||||}||}|||dSr4)r0rrr)r1ryrr6r
rs      r#checkoutsidez$TestTimezoneConversions.checkoutside+s4(((	
r**B///

c""))"--^,,,,,r%c	|j|}|j|}tdtt
tdtdfD]|}||||||||z||z
fD]}||||||||||||z
||zfD]}||||}dS)NrrrWr&rir)rrrrDAYrrr)r1rr6rrr,duringoutsides        r#convert_between_tz_and_utcz2TestTimezoneConversions.convert_between_tz_and_utc6s.
""""--$$B$//b)))***Q///	1	4	4E
UBUF;;;%-%7
A
A  S%@@@@fb#... 5=&5.8
4
4!!'2s3333
4	4	4r%c|tt|tt|tt|tt|tt|ttdSr4)rrutc_realrutc_faker7s r#	test_easyz!TestTimezoneConversions.test_easyLs'':::'':::'':::'':::	
''999''99999r%c	z|jtdz
}tddd}||}|jd}|t
d}||||jd	t
}|jd}|t
d}|||ttfD]}t
tfD]}|j
tdz
}||dz}||dz}	|	|}
d
D]}|j
|}dD]m}
||
}|
|
}	|	|}||d|n|
tz
}
dS)Nr[riz-0900rrrUr{r]rfrr&rY)rr&r&rYrrrr|)
rrrerrrr0rrrrrzr)r1fourbackninewestr	r^sixutcr6rfirst_std_hourr
	asutcbasetzhourexpectedbaserastzs               r#test_trickyz#TestTimezoneConversions.test_trickydsD:	 2 2 22ugq11##8#44:%%1%--!!'**22$2??3'''##8#<<:%%1%--((000==3'''X%	&	&Cw&
&
&!%yq/A/A/A!A",,t"4"44&t)<)<<"MMM55	*&&F#';#6#6F#6#C#CL"+NN#/#7#7v#7#F#F ) 1 1 1 @ @$//33((T)B)BHMMMM%II&
&	&	&r%cGddt}|jt}||Gdd|}|t|j|Gdd|}|dd	d	t}|t|j|dS)
NceZdZdZdZdS)2TestTimezoneConversions.test_bogus_dst.<locals>.okctSr4rrxs  r#rzz<TestTimezoneConversions.test_bogus_dst.<locals>.ok.utcoffsetsD[r%ctSr4r-rxs  r#rz6TestTimezoneConversions.test_bogus_dst.<locals>.ok.dstsd{r%Nrrr%r#okr+s"000*****r%r/rceZdZdZdS)5TestTimezoneConversions.test_bogus_dst.<locals>.notokcdSr4rrxs  r#rz9TestTimezoneConversions.test_bogus_dst.<locals>.notok.dstrr%NrKrbrcrrr%r#notokr1s*****r%r4ceZdZdZdS)<TestTimezoneConversions.test_bogus_dst.<locals>.tricky_notokc0|jdkrdSdtzS)NrSr')r_rrxs  r#rz@TestTimezoneConversions.test_bogus_dst.<locals>.tricky_notok.dsts7d??4d7Nr%Nr3rr%r#tricky_notokr6s#
#
#
#
#
#r%r8rr&)rr=rrrrrr)r1r/rr4r8rys      r#test_bogus_dstz&TestTimezoneConversions.test_bogus_dsts,	+	+	+	+	+	+	+	+m!!)))::rrtt	+	+	+	+	+B	+	+	+*cneegg>>>	#	#	#	#	#2	#	#	#]]4A
&
&
.
.h
.
?
?*bm\\^^DDDDDr%c
|ttjt	jt}|ttj||t}t|}|	|j
t|ttj|||ttjtjGddt}|dddd}|jdt	}||}d
D]}||}|dkr|td
z}t|}	|	||	||jz}||}	|	||	|t|}	|	||	|t$z
}|t$z
}|jdt	}||}dD]}||}t|}	|	||	||jz}||}	|	||	|t|}	|	||	|t$z
}|t$z
}dS)NrceZdZdZdS)<TestTimezoneConversions.test_fromutc.<locals>.FauxUSTimeZonec||jzSr4)rrxs  r#rzDTestTimezoneConversions.test_fromutc.<locals>.FauxUSTimeZone.fromutcsDN**r%NrKrbrcrrr%r#FauxUSTimeZoner<s#
+
+
+
+
+r%r?rFEasternFESTFEDTr[r)rrr&rUr[rVr{rr&rV)rr&r&rYrUr[)rrrrrrrrrr0rrrbrrrrrrr)
r1renowr?r@rtfstartwallr	r^s
          r#rz$TestTimezoneConversions.test_fromutcs))W_555o''x'88*gos;;;kkk))s##g...)W_c3???)W_djllCCC	+	+	+	+	+Z	+	+	+#N2zFFCC
""'"::h//%		D}}$}//HrzzI1----//%((CXs+++ 22H""6**CXs+++...11<<XFFCXs+++TMEdNFF##7#;;h//$		D}}$}//H//%((CXs+++ 22H""6**CXs+++...11<<XFFCXs+++TMEdNFF		r%N)rKrbrcrrrr=rrrrr(r9rrr%r#r	r	sHT1a##E
XdBA
&
&FH151515h	-	-	-444,
:
:
:00&0&0&fEEE6:::::r%r	c eZdZdZdZdZdS)OddballscPtjtjt	|k|k|k|k|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|	
d	jd
zdzd
z}|}|	
|d
tjjj}|	||	|t!jjjddd}|	||	|dS)NckSr4ras_dateas_datetimesr#rEz+Oddballs.test_bug_1028306.<locals>.<lambda>W{-Br%ckSr4rrJsr#rEz+Oddballs.test_bug_1028306.<locals>.<lambda>[7-Br%ckSr4rrJsr#rEz+Oddballs.test_bug_1028306.<locals>.<lambda>W-Cr%ckSr4rrJsr#rEz+Oddballs.test_bug_1028306.<locals>.<lambda>[G-Cr%ckSr4rrJsr#rEz+Oddballs.test_bug_1028306.<locals>.<lambda>rMr%ckSr4rrJsr#rEz+Oddballs.test_bug_1028306.<locals>.<lambda>rOr%ckSr4rrJsr#rEz+Oddballs.test_bug_1028306.<locals>.<lambda>rQr%ckSr4rrJsr#rEz+Oddballs.test_bug_1028306.<locals>.<lambda>rSr%Tr&r<)rFr)rrbrrrrrrrr0__eq__rrrWr_r`r)r1
different_dayas_differentdate_scdatetime_scrKrLs     @@r#test_bug_1028306zOddballs.test_bug_1028306s*,,&w77;.///w.///K/000/000)%B%B%B%B%BCCC)%B%B%B%B%BCCC)%C%C%C%C%CDDD)%C%C%C%C%CDDD)%B%B%B%B%BCCC)%B%B%B%B%BCCC)%C%C%C%C%CDDD)%C%C%C%C%CDDD	
44d;;; qB.2
"**
*>>55u===w|W]GKHH'***'***'{'79J'.{Aq!==k222k22222r%c	Ltjttjtt
ttfD];}|t5d|_
dddn#1swxYwY<dSr)rrbrrrrrrrAttributeErrorr()r1rs  r#test_extra_attributeszOddballs.test_extra_attributess*,,&&/##++((9;;'')		A"">22

















		sBB	B	cGdd}Gddt}d|dtjdtjd|d|dd	fD]}|tt
|dddddd		|tt
d|ddddd		|tt
dd|dddd		|tt
ddd|ddd		|tt
dddd|dd		|tt
ddddd|d		|tt
dddddd|		dS)
NceZdZdZdZdS)-Oddballs.test_check_arg_types.<locals>.Numberc||_dSr4value)r1rfs  r#rsz6Oddballs.test_check_arg_types.<locals>.Number.__init__%s
"


r%c|jSr4rer7s r#__int__z5Oddballs.test_check_arg_types.<locals>.Number.__int__'s
z!r%N)rKrbrcrsrhrr%r#Numberrc$s2
#
#
#
"
"
"
"
"r%riceZdZdS),Oddballs.test_check_arg_types.<locals>.FloatNrrr%r#Floatrk*rr%rlg$@g%@r'z10.910)r-decimalDecimalrrr)r1rirlxxs    r#test_check_arg_typeszOddballs.test_check_arg_types#s	"	"	"	"	"	"	"	"					E			t?2&&(?(?6"::vvd||
	O
	OB
i2r2r2r2NNNi2r2r2r2NNNi2r2r2r2NNNi2r2r2r2NNNi2r2r2r2NNNi2r2r2r2NNNi2r2r2r2NNNN
	O
	Or%N)rKrbrcr]r`rqrr%r#rGrGsG#3#3#3JOOOOOr%rGceZdZdZdS)tzinfo2cxt|tstd|j|urt	d|d}|d}|||t||kr!||z}|}||kr|S||fD]U}||z}||kr|cS|d}||kr|cSVt	d)*datetime in UTC -> datetime in local time.&fromutc() requires a datetime argumentdt.tzinfo is not selfrr9r&NzNo suitable local time found)rkrrrrrrzr)r1ryoff0off1ldtoffs      r#rztzinfo2.fromutcAsJ"h''	FDEEE
9D  4555zzqz!!++--zzqz!!++--<4<26688+;4<<t)C==??Dt||
$<		Cs(C}}#%%


++1+%%C}}#%%


&7888r%Nr>rr%r#rsrs?s#99999r%rsc,eZdZdZdZdZdZdZdS)USTimeZone2cZt||_||_||_||_dSrrrs     r#rszUSTimeZone2.__init__crr%c|jSr4rr7s r#rvzUSTimeZone2.__repr__ir{r%cH||r|jS|jSr4rrxs  r#r}zUSTimeZone2.tznamelrr%c<|j||zSr4rrxs  r#rzzUSTimeZone2.utcoffsetrrr%c||jtS|j|usJtt|j}|dkr|jdkr|jdksJtt|j}|dkr|jdkr|jdksJ|d}|tz|cxkr|kr
nntS||cxkr|tzkrnn|jrtntS||cxkr|tzkrnn|jrtntStSr)rrrrrr_rr`rrrr:rs    r#rzUSTimeZone2.dstusv
:*KyD    ))9)9rw)9)G)GHH}}!##q(8(8UY!^^^^'v~~27~'C'CDD{{}}!!ci2oo#'R----ZZtZ
$
$4<2#########K
B
#
#
#
#t
#
#
#
#
#7,44,
b
'
'
'
'54<
'
'
'
'
'7,44,Kr%Nrrr%r#r}r}as_   ---r%r}Eastern2Central2	Mountain2Pacific2c2eZdZdZdZdZdZdZdZdS)Europe_Vilnius_1941cRtdddd|tdddd|gS)Nr]rrrrrr7s r#	_utc_foldzEurope_Vilnius_1941._utc_folds8q"b666q"b6668	8r%cRtdddd|tdddd|gS)Nrr]rrr/rrr7s r#	_loc_foldzEurope_Vilnius_1941._loc_folds8q"b666q"a5557	7r%c|\}}||kr
dtzS||kr|jrdndtzSdtzS)NrUrYrrr:r1ry
fold_start	fold_stops    r#rzzEurope_Vilnius_1941.utcoffsetP $ 0 0
I
??t8O
	>>'AAa4//4xr%c|\}}||kr
dtzS||kr|jrdndtzSdtzS)Nrr&rrs    r#rzEurope_Vilnius_1941.dstrr%cj|\}}||krdS||kr
d|jSdS)NMSK)rCESTr)rr:rs    r#r}zEurope_Vilnius_1941.tznames? $ 0 0
I
??5
	>>"27++vr%c|jdksJ|j|usJ|jdkrt|\}}||kr
|dt
zzS||kr!|dt
zzdS|dt
zzS)NrrrUrYr&r9)r:rr_rrrrrs    r#rzEurope_Vilnius_1941.fromutcsw!||||yD    
7d??%% $ 0 0
I
??D= 
	>>TM***222AH}r%N)	rKrbrcrrrzrr}rrr%r#rrsn888777r%rcneZdZdZdZdZdZdZdZdZ	e
jdd	Ze
jd
dZ
dZe
jdd
Ze
jd
dZe
jddZdZdZdZdZdZdZdZdZdZdS)TestLocalTimeDisambiguationc	t}tddddddtj}||}||dd||jd	||	tdddd
tj}||}||dd||jd|
|	tdddd
tj}||}||dd||jd	|
|	dS)Nrr]rr<rrz%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300rrz"Mon Jun 23 23:00:00 1941 CEST+0200r&rz"Tue Jun 24 00:00:00 1941 CEST+0200)rrrr6rr0rr:rrr)r1Vilniusgdtrzs    r#test_vilnius_1941_fromutcz5TestLocalTimeDisambiguation.test_vilnius_1941_fromutcs%''tQBBx|DDDnnW%%i00<	>	>	>1%%%###tQBx|<<<nnW%%i00=	?	?	?1%%%		"""tQBx|<<<nnW%%i00=	?	?	?1%%%		"""""r%c
t}tdddddd|}|tj}||ddtdddddd|}|tj}||dd	tdddddd|d
}|tj}||ddtddd
d|}|tj}||dddS)Nrr]rrrrz%c %ZzMon Jun 23 19:59:59 1941 UTCzMon Jun 23 20:59:59 1941 UTCr&)rr:zMon Jun 23 21:59:59 1941 UTCr/rzMon Jun 23 22:00:00 1941 UTC)rrrrr6r0r)r1rrzrs    r#test_vilnius_1941_toutcz3TestLocalTimeDisambiguation.test_vilnius_1941_toutcs{%''tQBBw???nnX\**g..7	9	9	9tQBBw???nnX\**g..7	9	9	9tQBBwQGGGnnX\**g..7	9	9	9tQAg666nnX\**g..7	9	9	9	9	9r%c	Htdd}tdddd}||jd||jd|t
5tddddddddddS#1swxYwYdSNrr&r9)rrr0r:rrr1rrys   r#test_constructorsz-TestLocalTimeDisambiguation.test_constructorssOOO
aAA
&
&
&###!$$$


y
)
)	&	&Aq!T1%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&s5BBBctdddd}|}||jd|}||jddS)Nr&r9)rrr0r:r)r1ryrs   r#test_memberz'TestLocalTimeDisambiguation.test_membersh
aAA
&
&
&GGII###IIKK#####r%c@td}tddd}||djd||djd||djd||djd|dt
}|dt
}||djd||djd|t5|ddddn#1swxYwY|t5|ddddn#1swxYwY|t5|ddddddddn#1swxYwY|t5|ddddddddd		ddddS#1swxYwYdS)Nrr&r9)r:rrrY)	rrr0rr:rrrrrs   r#r_z(TestLocalTimeDisambiguation.test_replacesKGG
aA

**/333++0!444**/333++0!444
II1WI--
ZZQwZ
/
/$//4a8884005q999


z
*
*		
II1I															


z
*
*		JJAJ															

y
)
)	(	(
IIaAtQ'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(


y
)
)	5	5JJq!Q1aD!444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sH
F00F47F4G88G<?G<II
I(JJJctd}tddd}|||d|||ddSr)rrr0rrs   r#rz+TestLocalTimeDisambiguation.test_comparison.slGG
aA

AII1I--...RZZQZ//00000r%cVtd}tddd}|t|t|d|t|t|ddSr)rrr0rrrs   r#	test_hashz%TestLocalTimeDisambiguation.test_hash4sGG
aA

a$qyyay'8'8"9"9:::b4


(:(:#;#;<<<<<r%racd}tj|}tj|dz}||jd||jddS)NiXUTrrr&)rrr0r:)r1rdt0rs    r#rz.TestLocalTimeDisambiguation.test_fromtimestamp:sa$Q''$QX..1%%%1%%%%%r%zAustralia/Lord_Howec|tjd}tjd|dkr|dd}t	j|}t	j|dz}|||||jd||jddS)	NA%Z%z	LHST+1030>Australia/Lord_Howe timezone is not supported on this platformiUrr&)rr[rrLrrr0r:)r1tmrrdrs     r#test_fromtimestamp_lord_howez8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howeBs
_U
#
#>&"%%44MMZ[[[



#A
&
&

#AH
-
-R   !$$$!$$$$$r%c`|tjdjddSrZ)r0rrr:r7s r#%test_fromtimestamp_low_fold_detectionzATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detectionRs.	
/227;;;;;r%ctddddd}|d}||dz|dS)NrrrYr&rr9r)rrr0r)r1rrs   r#test_timestampz*TestLocalTimeDisambiguation.test_timestampWsftRAr**kkqk!!4/	*	*	*	*	*r%ctjd}tjd|dkr|dt	ddddd	}|d
}|d}||dz|dS)
Nrrrrr-r[rVr&rrr9r)rr[rrLrrrr0)r1rrs0s1s     r#test_timestamp_lord_howez4TestLocalTimeDisambiguation.test_timestamp_lord_howe^s
_U
#
#>&"%%44MMZ[[[T1aB''
YYAY


(
(
*
*
YYAY


(
(
*
*dB'''''r%ctddddd}|d}|}|}||d||d||t
z|||jd	||jd	dS)
NrrrYr&rr9rrr)rrrr0r}rr:)r1rradt0adt1s     r#rz+TestLocalTimeDisambiguation.test_astimezonehstRAr**kkqk!!~~~~......d+++A&&&A&&&&&r%cHtd}tdddd}tD]v\}}}||fD]k}|||}||}|||||dkrdn|j|jlwdS)Nr&r9r[r)rrrrrr0r:)	r1rryrrr"rrrls	         r#test_pickle_foldz,TestLocalTimeDisambiguation.test_pickle_foldwsaLLL
aAA
&
&
&)7	G	G%GYW
G
GMM!U++OOA&&  A&&&  uqyy!!afqvFFFF	
G	G	Gr%ctd}tdddd}|t|d|t|ddS)Nr&r9zdatetime.time(0, 0, fold=1)z(datetime.datetime(1, 1, 1, 0, 0, fold=1))rrr0rrs   r#rz%TestLocalTimeDisambiguation.test_reprstaLLL
aAA
&
&
&a"?@@@bC	E	E	E	E	Er%c	ptddddttjz
}tddddt}||t||t||dt||dtdD]}tdddd|t}||t||dtdD]}tdd	d
d|t}||t||dtdS)Nr^r'r.r&rrYr9rr[rX)	rrrrr0rrrr)r1	dt_summer	dt_winterrrys     r#r	z$TestLocalTimeDisambiguation.test_dstsT2r1X>>>AUU	T2r1X>>>	$///$///***226688$???***226688$???"	=	=F$B6(CCCBRVVXXt,,,RZZQZ//3355t<<<<"	=	=F$1aAAABRVVXXt,,,RZZQZ//3355t<<<<	=	=r%cTtddddttjz
}tddddt}||dtz||dtz||d	dtz||d	dtzdS)
Nr^r'r.r&rrYr\rr9)rrrrr0rzrr)r1rrs   r#rz*TestLocalTimeDisambiguation.test_utcoffsetsT2r1X>>>AUU	T2r1X>>>	,,..T	:::,,..T	:::***22<<>>T	JJJ***22<<>>T	JJJJJr%c(tddddttjz
}tddddt}t|}t|}|||dtzz
|||dtzz
||jd	||jd	tddddd
t}t|}|tz
}t|}|||||jd	||jdtddddd
t}t|}||j|j	fdtddddd
t}t|}||j|j	fd
tddddd	t}t|}||j|j	fddS)Nr^r'r.r]rrXr[rVrrr&)rr)r.r&rY)r]r)
rrrrrr0rr:rrf)	r1u_summeru_wintert_summert_winterrrdrrs	         r#rz(TestLocalTimeDisambiguation.test_fromutcsHD"b!H===	@TTD"b!H===##H--##H--8a$h#67778a$h#6777******
T2r1b:::


a
 
 	T	


a
 
 R   !$$$!$$$T2r1b:::Q!%(333T2r1b:::Q!%'222
T1aAh777Q!%'22222r%c2tdddt}|||tjtdddt}|||tjdS)NrSr&rr])rrr0rrr6rs  r#test_mixed_compare_regularz6TestLocalTimeDisambiguation.test_mixed_compare_regulars|T1a111ALL66777T1a111ALL6677777r%ctdddddt}|tj}||||||dS)Nr^r'r.r&rrrrrrr6r)r1t_fold
t_fold_utcs   r#test_mixed_compare_foldz3TestLocalTimeDisambiguation.test_mixed_compare_foldsc$B2h???&&x|44
FJ///J/////r%ctdddddt}|tj}||||||dS)Nr^r[rXrYrrr)r1t_gap	t_gap_utcs   r#test_mixed_compare_gapz2TestLocalTimeDisambiguation.test_mixed_compare_gapscq!Q8<<<$$X\22	E9---Iu-----r%c6tdddt}|t|t|dtdddddt}tdd	d
ddt}|t|t|d|t|t|ddS)NrSr&rr9r^r'r.rr[rXrY)rrr0rr)r1rrrs    r#test_hash_awarez+TestLocalTimeDisambiguation.test_hash_awaresT1a111a$qyyay'8'8"9"9:::$B2h???q!Q8<<<ftFNNN,B,B'C'CDDDed5==a=+@+@&A&ABBBBBr%N)rKrbrcrrrrr_rrr
r@rrrrrrrrr	rrrrrrrr%r#rrs###0999.&&&$$$555.111===W344&&54&W.//
%
%0/
%<<<
W344**54*W.//((0/(W344''54'GGGEEE===6KKK333B888000...CCCCCr%rcptj|\}}t|dt||Sr4)rteenextrk)iterablernros   r#pairsrs0=""DAqDMMMq!99r%ceZdZdZdZedZedZedZ	e
dddZdZ
d	Zd
ZdZdZeddZeddZdZdZeddZdZdZdZd
S)ZoneInfoz/usr/share/zoneinfocX||_||_||||_dS)z

        :param ut: array
            Array of transition point timestamps
        :param ti: list
            A list of (offset, isdst, abbr) tuples
        :return: None
        N)uttiinvertr)r1rrs   r#rszZoneInfo.__init__s+++b"%%r%ctd|td|f}|r|ddtz}|ddxx|z
cc<|ddxx|z
cc<tdt|D]Y}|d|xx||dz
dtzz
cc<|d|xx||dtzz
cc<Z|S)Nr#rr&)rSECrlr)rrrrqrrs     r#rzZoneInfo.invertsCnneCnn
-
	,U1X_FqE!HHHHHHqE!HHHHHH1c"gg&&
,
,1aBqsGAJ#--1aBqE!HO+	r%c	F|ddkrtd|dt	d}||dtjdkr|t	d}|||dtjdkr|t	d	}|||dg}t|d
D]=}|
tjd|d>||d
}t|D]O\}\}}	}
||
|d|
}td||	|f||<Pdgt!|z}t|D]\}}
||
||<|||}|S)Nr[TZifznot a zoneinfo filerrrrUrrrr&z>lbbr]rY)readdecoderseekrfromfilerI	byteorderbyteswaprlrstructunpackrfindrr)rZfileobjcountsrtype_indicesttisrrabbrsgmtoffisdstabbrindabbrridxr1s               r#rzZoneInfo.fromfile
s<<??!!##v--2333Rs###=E!!OO
3ZZ
GVAY'''=E!!KKMMMSzzgvay111vay!!	@	@AKK
fgll1oo>>????VAY'',5T??	:	:'A'wAw!7!778??AAD F++UD9DGGVc"gg
--		FAsIBqEEs2r{{r%ctj|j|}t	|d5}||cdddS#1swxYwYdS)Nrb)ospathjoinzonerootopenr)rZrFrrs    r#fromnamezZoneInfo.fromname/sw||CL$//
$

	#<<??	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#sAAArOr&ct|tstd|j|urt	d||jz
dz|jdzz|jdzz|j	z}||j
dkr|jd}d}ntj
|j
|}|j
|dz
|ksJ|t|j
ks||j
|ksJ|j|dz
|\}}|d|dz
}|td||j
|dz
z
k}||dz
}|r|d	S|S)
rurvrwr_rrXr&rrYr9)rkrrrrrhEPOCHORDINALrfrrrrbisectbisect_rightrrr)r1ryrttir:rtti_prevshifts        r#rzZoneInfo.fromutc7s|"h''	FDEEE
9D  4555llnnt'88EAw~&y2~&y!	
twqz!!'!*CDD%dgy99C73q5>Y....#dg,,&&)dgcl*B*B*B*B GCE#I.MHcQK#a&(EIaTWSU^)CDDDD
c!f	::1:%%%Ir%c||jz
dz|jdzz|jdzz|jz}|j|j}tj||}|j	td|dz
|S)Nr_rrXrr&)rhrrfrrrr:rrrr)r1ryrrrrrs      r#_find_tizZoneInfo._find_tiUsllnnt'88EAw~y2~y	WRW
!"i00ws1cAg'**r%c.||dSrZrrxs  r#rzzZoneInfo.utcoffset_}}R###r%cN||d}|rtntSr)rrr)r1ryrs   r#rzZoneInfo.dstbs&

b!$$
&tt$&r%c.||dS)NrYrrxs  r#r}zZoneInfo.tznamejrr%Nc#pK||j}tj|d}	t	|}n#t
$rYdSwxYw|5|D]I}|}|r1|ds|dVJ	ddddS#1swxYwYdS)Nzzone.tab#rY)	rrrrrristriprDr)rZzonedirzone_tabrlines     r#	zonenameszZoneInfo.zonenamesms?lG7<<44	XAA			FF	
	*	*
*
*zz||* 4 4***,,q/)))
*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*s"=
A
AA
B++B/2B/cdx}x}x}}tjx}}tx}}	tjx}
}dx}}
tjx}}dx}}t|dd}|D]}|dz
}||}|D]\}}||kr|tkr@|dz
}||f||fkr|}|}
|}|tj|z
f|tj|
z
fkr|}|}|}
W|tkrC|dz
}|}||f|	|fkr|}	|}|}|tj|z
f|tj|z
fkr|}|}|}|dz
}|||f}td|ztdt|f|zztd|dd|
d|td	|dd|d|
td
|dd|d|td|	dd|d|dS)Nrr&zNumber of zones:       %5dz@Number of transitions: %5d = %d (gaps) + %d (folds) + %d (zeros)zMin gap:         z>16z at z in zMax gap:         zMin fold:        zMax fold:        )
rrrrrrrtransitionsprintr)rZ
start_yearcount	gap_count
fold_countzeros_countmin_gapmin_foldmax_gapmax_foldmin_gap_datetimemax_gap_datetimemin_gap_zonemax_gap_zonemin_fold_datetimemax_fold_datetime
min_fold_zone
max_fold_zonestats_sincezonenamerryr
trans_countss                        r#statszZoneInfo.stats|s7888	8J&]*(!!(.6l:+&**|08<-(,,

z1a00

	%	%HQJEh''B^^--
%
%	E##4<<NIr{g/?%@@@"''/+-(x|b01WhlM]>]4^^^"''/+-(T\\!OJ"FEr{h0A%BBB#((0
,.)x|b01Xx|N_?_4```#((0
,.)1$KK3
%4":{;
*U2333
PL!!#l24	5	5	5
WWWW>N>N>NP\P\]^^^
WWWW>N>N>NP\P\]^^^
XXXX?P?P?PR_R_`aaa
XXXX?P?P?PR_R_`aaaaar%c#Ktt|j|jD]4\\}}\}}|d|dz
}t	j||fV5dSrZ)rrkrrrr_r1_prev_tirrr
s      r#rzZoneInfo.transitionsss%*3tw+@+@%A%A	6	6!LQ'1bqEGAJ&E+A..55555	6	6r%c#Ktt|j|jD]`\\}}\}}|d|dz
}|tkr9|d|dkr'tj|||d|dfVadS)zLFind all folds with the same value of isdst on both sides of the transition.rr&rYN)rrkrrrrr_r2s      r#nondst_foldszZoneInfo.nondst_foldss%*3tw+@+@%A%A	N	N!LQ'1bqEGAJ&Et||1 3 3/22UFGAJ1MMMM	N	Nr%Fcd}|D]d}||}|D]8\}}}}	|j|ks|r||	kr|dz
}t	d||||||	fz9edS)Nrr&z%3d) %-30s %s %10s %5s -> %s)rrr6r_r)
rZ	same_abbrrrr.rryr
	prev_abbrrs
          r#print_all_nondst_foldszZoneInfo.print_all_nondst_foldss

	E	EHh''B.0oo.?.?
E
E*E9d7Z''9'd9J9J
4hE9dCDEEEE	
E	E	Er%c#bK|D]\}}|tkr||fVdSr4rrr1rr
s   r#foldszZoneInfo.foldssH((**	 	 HAut||%i	 	 r%c#`K|D]\}}|tkr||fVdSr4r<r=s   r#gapsz
ZoneInfo.gapssF((**		HAut||h		r%c#JK|D]\}}|s|VdSr4)rr=s   r#zeroszZoneInfo.zerossA((**		HAu
		r%r4)r&)Fr&)rKrbrcrrsrrclassmethodrrrrhrrrrzrr}rr0rr6r:r>r@rBrr%r#rrs$H&&&		\	""["H##[#
4a##--//L<+++$$$'''$$$***[*-b-b-b[-b`666
NNN	E	E	E[	E   

r%rcreZdZdZdZdZdZdZej	e
edddZd	S)
ZoneInfoTestzAmerica/New_YorkcTtjdkr|dtjdkr|d	t|j|_dS#t$r+}|d|jd|Yd}~dSd}~wwxYw)Nvxworksz"Skipping zoneinfo tests on VxWorksrz"Skipping zoneinfo tests on Windowsz	Skipping z: )rIrCrLrrr.rFileNotFoundError)r1errs  r#rzZoneInfoTest.setUps<9$$MM>???<7""MM>???	D''
66DGGG 	D	D	DMMMt}}}ccBCCCCCCCCC	Ds$A22
B'< B""B'c||d|jt|jf|d|jt|jfdS)Nr)r0rr:idr)r1rnros   r#assertEquivDatetimesz!ZoneInfoTest.assertEquivDatetimessl!))4)00!&"QX,,G))4)00!&"QX,,G	I	I	I	I	Ir%c|j}|D]\}}d|zd|z|tjz
fD]'}||z}|||}||jd|tj	
|}||||}||d||z||
tj	|tj	)tj|fD]M}||z}||}||}||jdNdS)Nrrcrr&)
rr>rrrrr0r:rr6rrLrz	r1rryr
rudtrzadtrzs	         r#
test_foldszZoneInfoTest.test_foldss
W	.	.IB%iuei6J.JK

L

L1fjjB!7!788  1---kkk66AA"EE))#s333MMOO	  D!9!93?KKK))#..*F*F*-++X\+*J*JLLLL!++U3
.
.1fkkk,,jjoo  1----	
.	.	.r%c8|j}|D]\}}d|zd|z|tjz
fD]}||z}||}||}||jd|tj	
|}||||}||d|d|z||||z
|z}|
|d|dd|ztj|fD]K}||z}|||}||jdLdS)Nrrcrr&r9zAt %s.)rr@rrrrr0r:rr6rrLrz
assertLessrNs	         r#	test_gapszZoneInfoTest.test_gapss
W	.	.IB%iuei6J.JK

0

01fkkk,,jjoo  1---kkk66AA"EE))#s333MMOO	  D!9!93;;d;;S;SV_;_```jj2!6!677%?!C 3 3 = = ? ? # 3 3 = = ? ? (30000!++U3
.
.1fjjB!7!788  1----
.!	.	.r%tzsetz"time module has no attribute tzsetc	d|jvs|jdr|d|jz|j}tjd}|jtjd<	tj|	D]e\}}|j
dkrnS|tdddz
tz}|tz}dd	d
d|dz
|dz|d
zfD]}||z}tj
|}	tj
||d}
||	|
|	}||||dkrtj
||dzz
}|}
|d}||
||dzz||||dzz
g|tjd=n|tjd<tjdS#|tjd=n|tjd<tjwxYw)NRiyadh8zright/zSkipping %sTZirOr&iirri@i2rrYr9)r.rDrLrrenvirongetrrUrr_rrrrrLrr0)r1rrXrOr
rr$rrsdttzdtrryts0ts1s               r#test_system_transitionsz$ZoneInfoTest.test_system_transitionssb
&&
((22
'
MM-$-7888
W
Z^^D
!
!=
4	KMMM nn..
7
7
U8t##EHT1a000S8c\$hAq&"y."y.B,,AQA"033C#1!R88@@@MMD--c4888B$$Q++++66!/33eai?B,,..C**!*,,6688C$$S"rAv+666$$S"rAv+666zJt$$#%
4 KMMMMM	zJt$$#%
4 KMMMMs
<FH>>4I2N)
rKrbrcr.rrLrQrTrA
skipUnlessrrr_rr%r#rErEs!HDDDIII...,....Xg D*****r%rEceZdZfdZxZS)ZoneInfoCompleteTestcpg}tdrtD]h}td|ztfi}||_t
|D]5}|dr|||6it
|dS)NtzdatazZoneInfoTest[%s]test_)rrrrrEr.r:rDrsuperrs)r1rrFTestmethodrJs     r#rszZoneInfoCompleteTest.__init__Dsx((	3 **,,
3
3.5KK $
!$ii33F((113TT&\\2223	r%)rKrbrcrs
__classcell__)rJs@r#rbrbCs8	 	 	 	 	 	 	 	 	 r%rbceZdZdZdS)IranTestzAsia/TehranN)rKrbrcr.rr%r#rkrkPsHHHr%rkzneed _testcapi moduleceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdS)CapiTestc|jjdr|dt	jdS)NPurezNot relevant in pure Python)rJrKrErL	_testcapitest_datetime_capir7s r#rzCapiTest.setUpVsG>"++F33	9MM7888	$&&&&&r%cdD]d}tj|}||5||tjdddn#1swxYwYedS)NTF)	use_macro)rpget_timezone_utc_capir3r5rr6)r1rtcapi_utcs   r#
test_utc_capizCapiTest.test_utc_capi_s&	6	6I 6yAAH	22
6
6

h555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6	6	6s!AA 	#A 	c	tj\}}}ttdd}ttd}d||fd||fd||fg}|D]\}}}	||5|||	t
dd	d
|}
t
dd	d
|	}||
|||
|t
dd	d
dtj}||
	tj|dddn#1swxYwYdS)
Nrrrest_capi	est_macroest_macro_nn)rFrSrYr[rrV)
rpmake_timezones_capirrr3r0rr}r6r)
r1ryrzr{	exp_namedexp_unnamedcasesrFtz_acttz_exprrTrs
             r#test_timezones_capizCapiTest.test_timezones_capifs,5,I,K,K))\YR000%88	yr222339-
)Y/
\;7
%*	G	G D&&4((
G
G  000tQ&999tQ&999  c***  szz||<<<!$1aEEE  !=!=vFFF
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G	G	GsCE**E.	1E.	cGddt}t|fD]}dD]}||}|||5tj|\}}}|||j|||j|||jdddn#1swxYwYdS)NceZdZdS)=CapiTest.test_PyDateTime_DELTA_GET.<locals>.TimeDeltaSubclassNrrr%r#TimeDeltaSubclassrrr%r)r7韆rrZr)rr3rpPyDateTime_DELTA_GETr0rTrr)r1rklassrrrTrrs        r#test_PyDateTime_DELTA_GETz"CapiTest.test_PyDateTime_DELTA_GETsP									 !23	C	CE:
C
CE4L\\e$\77CC2;2PQR2S2S/D'<$$T16222$$Wai888$$\1>BBBCCCCCCCCCCCCCCC
C	C	CA*B55B9<B9cGddt}t|fD]}dD]}||}|||5tj|\}}}|||j|||j|||jdddn#1swxYwYdS)NceZdZdS)2CapiTest.test_PyDateTime_GET.<locals>.DateSubclassNrrr%r#rrrr%r))rSr&rY)rcrYr~r)rr3rpPyDateTime_GETr0r_r`r)r1rrrrr_r`rs        r#test_PyDateTime_GETzCapiTest.test_PyDateTime_GETs6					4			L)	1	1E5
1
1E4L\\e$\7711'0'?'B'B$D%$$T16222$$UAG444$$S!%000111111111111111
1	1	1rc
 Gddt}t|fD]}ddddddd	d
tjffD]}||}|||5t	j|\}}}}}	|||j|||j|||j	|||j
||	|jdddn#1swxYwY،dS)NceZdZdS);CapiTest.test_PyDateTime_DATE_GET.<locals>.DateTimeSubclassNrrr%r#rrrr%r)rrrrrrrrrrrrrr)
rrr6r3rpPyDateTime_DATE_GETr0rfrrrjr5r)
r1rrrrrfrrrjrs
          r#test_PyDateTime_DATE_GETz!CapiTest.test_PyDateTime_DATE_GETs					x			 01
	4
	4E92r2r5",()
4
4E4L\\e$\7744,5,I!,L,L>D&&+v$$T16222$$VQX666$$VQX666$$[!-@@@MM&!(333444444444444444	
4
	4
	4sB"DDDcGddt}t|fD]}dddddtjffD]}||}|||5t	j|\}}}}}	|||j|||j|||j	|||j
||	|jdddn#1swxYwY،dS)	NceZdZdS)7CapiTest.test_PyDateTime_TIME_GET.<locals>.TimeSubclassNrrr%r#rrrr%r)rrr<r'rrr<r'r)
rrr6r3rpPyDateTime_TIME_GETr0rfrrrjr5r)
r1rrrrrfrrrjrs
          r#test_PyDateTime_TIME_GETz!CapiTest.test_PyDateTime_TIME_GETs					4			L)	4	4E)b"b(,79
4
4E4L\\e$\7744.7.KA.N.N>D&&+v$$T16222$$VQX666$$VQX666$$[!-@@@MM&!(333444444444444444
4	4	4sB"C>>DDc^tj\}}}|d5||tjdddn#1swxYwY|d5||tjdddn#1swxYwY|d5||tjt	tdd}|||tdd	d
|}tdd	d
|}|||||
|
ddddS#1swxYwYdS)Nutc0)testnameutc1non_utcrrrrSrYr[r)rpget_timezones_offset_zeror3r5rr6rrr0rr})r1rrrnon_utc_exprrTs       r#test_timezones_offset_zeroz#CapiTest.test_timezones_offset_zerosA'ACCdG
\\6\
*
*	.	.MM$---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.\\6\
*
*	.	.MM$---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.\\9\
-
-	9	9Whl333"91#5#5#5r::KWk2224Ag666C4Ak:::CS#&&&SZZ\\3::<<888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s6!AA"A<!B))B-0B-
CF""F&)F&c
LGddt}tddd}|ddd}tddd}tj}||||||||||||d|||d|||dt
tddtdtj
tddg}|D]U}d	D]P}|||
5||||dddn#1swxYwYQVdS)NceZdZdS).CapiTest.test_check_date.<locals>.DateSubclassNrrr%r#rrrr%rr&T
2011-01-01rrrsargexact)
rrrpdatetime_check_daterrrrrrr6rr3)	r1rrdsryis_daterrrs	         r#test_check_datezCapiTest.test_check_dates					4			
q!
\$1
%
%
dAq
!
!/	


###$$$$$$4(()))	
T**+++T**+++L!hlDRLL:	:	:C&
:
:\\c\77::$$WWS%%8%8999:::::::::::::::
:	:	:s+ FFFcGddt}tdd}|dd}tj}|||||||||d|||dtt
ddtdtj	tdddg}|D]U}d	D]P}|||
5||||dddn#1swxYwYQVdS)NceZdZdS).CapiTest.test_check_time.<locals>.TimeSubclassNrrr%r#rrrr%rrrTr&rrrsr)rrpdatetime_check_timerrrrrrr6rr3)r1rrris_timerrrs        r#test_check_timezCapiTest.test_check_times					4			
RLL
\"b
!
!/	


###$$$4(()))	
T**+++L!hlDq!,<,<>	:	:C&
:
:\\c\77::$$WWS%%8%8999:::::::::::::::
:	:	: EEEcGddt}tddddd}|ddddd}tj}|||||||||d|||dtt
ddtdtj	tdddg}|D]U}d	D]P}|||
5||||dddn#1swxYwYQVdS)NceZdZdS)6CapiTest.test_check_datetime.<locals>.DateTimeSubclassNrrr%r#rrrr%rrr&rrTrrsr)rrpdatetime_check_datetimerrrrrrr6rr3)r1rryris_datetimerrrs        r#test_check_datetimezCapiTest.test_check_datetime
s					x			dAq"b
)
)tQ2r227	
B(((C(()))B--...	
S$//000L!hlDq!,<,<>	>	>C&
>
>\\c\77>>$$[[e%<%<===>>>>>>>>>>>>>>>
>	>	>s" EEEcGddt}td}|d}tj}|||||||||d|||dtt
ddtjtdddtdddg}|D]U}dD]P}|||5||||dddn#1swxYwYQVdS)	NceZdZdS)4CapiTest.test_check_delta.<locals>.TimeDeltaSubclassNrrr%r#rr(rr%rr&Trrrsr)rrpdatetime_check_deltarrrrrr6rrr3)r1rr[tdsis_timedeltarrrs        r#test_check_deltazCapiTest.test_check_delta's									q\\"" 5	
R(()))S))***R..///	
c400111Ld4A..q!0D0DF	?	?C&
?
?\\c\77??$$\\#u%=%=>>>???????????????
?	?	?rc
HGddt}t}|}ttd}tj}||||||||||||d|||d|||dttddtdddtdddg}|D]U}d	D]P}|||
5||||dddn#1swxYwYQVdS)NceZdZdS)2CapiTest.test_check_tzinfo.<locals>.TZInfoSubclassNrrr%r#TZInfoSubclassrBrr%rrrTr&rrrsr)rrrrpdatetime_check_tzinforrrrrrr3)	r1rrtzisr	is_tzinforrrs	         r#test_check_tzinfozCapiTest.test_check_tzinfoAs					V			hh~
ib)))
*
*3		
		#'''		"

&&&		$(((		#t,,---	
2t,,---4..///LT1a  (4A"6"68	<	<C&
<
<\\c\77<<$$YYsE%:%:;;;<<<<<<<<<<<<<<<
<	<	<s) FFFctddd}dD]l}||5tj||j|j|j}|||dddn#1swxYwYmdS)NrrrFTmacro)rr3rpget_date_fromdater_r`rr0r1exp_dater
c_api_dates    r#test_date_from_datezCapiTest.test_date_from_date^sa$$ 	7	7EE**
7
7&8MNL	""
  X666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7=A55A9	<A9	c>tddddddd}dD]}||	5tj||j|j|j|j|j|j	|j
}|||dddn#1swxYwYdS)
Nrrrrrrrrr)rr3rpget_datetime_fromdateandtimer_r`rrfrrrjr0rs    r#test_datetime_from_dateandtimez'CapiTest.test_datetime_from_dateandtimeksD!RRU;; 	7	7EE**
7
7&CMNLMOO(**
  X666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7sABB	B	ctddddddd}dD]}d	D]}|||
5tj||j|j|j|j|j|j	|j
|j		}|||||j|jdddn#1swxYwYdS)Nrrrrrrrrr&rrr:)
rr3rp#get_datetime_fromdateandtimeandfoldr_r`rrfrrrjr:r0)r1rr:rrs     r#%test_datetime_from_dateandtimeandfoldz.CapiTest.test_datetime_from_dateandtimeandfold|s<D!RRU;;	E	ED$
E
E\\D\99
E
E!*!N 
   
   , 
	"'	"'J$$Z:::$$Z_hmDDD
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E	E	EsA;B<<CCc	tdddd}dD]r}||5tj||j|j|j|j}|||dddn#1swxYwYsdS)Nrrrrrr)	rr3rpget_time_fromtimerfrrrjr0)r1exp_timer
c_api_times    r#test_time_from_timezCapiTest.test_time_from_timesBE** 		7		7EE**
7
7&8MOO(**
  X666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7		7		7sAA<<B	B	cltdddd}dD]}dD]}|||5tj||j|j|j|j|j}|	|||	|j|jdddn#1swxYwYdS)Nrrrrrrr)
rr3rpget_time_fromtimeandfoldrfrrrjr:r0)r1rr:rrs     r#test_time_from_timeandfoldz#CapiTest.test_time_from_timeandfolds'BE**	E	ED$
E
E\\D\99
E
E!*!C 
   , 

"'"'J$$Z:::$$Z_hmDDD
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E	E	EsA)B''B+.B+ctddd}dD]l}||5tj||j|j|j}|||dddn#1swxYwYmdS)Nrrrrr)rr3rpget_delta_fromdsurTrrr0)r1	exp_deltarc_api_deltas    r#test_delta_from_dsuzCapiTest.test_delta_from_dsusb"e,,	 	9	9EE**
9
9'9N%*	,,  i888
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9	9	9rc
@tddd}dD]w}||5tjt||}||tddddddn#1swxYwYxdS)Nr[rrr)rrr3rpget_date_fromtimestamprlr0r)r1rrrs    r#test_date_from_timestampz!CapiTest.test_date_from_timestamps
dAr
"
"
,
,
.
. 	7	7EE**
7
74SWWeDD  Dq"$5$5666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7sABB	B	cdddttddfddd	ttddfg}tj}|D]}d
D]}|||5|\}}}t|d|i}t
|}	||	|||}
|||
dddn#1swxYwYdS)
N)rr[rNF)rNTrr&rT)rr[rrdrNF)rNTrr)caserr)	rrrpget_datetime_fromtimestampr3rrlrr0)r1rrrrdtuprusetzdt_origrrs           r#test_datetime_from_timestampz%CapiTest.test_datetime_from_timestampsT('
HYQ%7%7%788$?0/
"HYQ-?-?-?$@$@$G

#=		5		5D$
5
5\\t5\9955*.'D&%&<V<<GW..0011B*N2vueDDE$$We444555555555555555
5		5		5s0ACCCN)rKrbrcrrwrrrrrrrrrrrrrrrrrrrrr%r#rmrmTs['''666GGG4CCC111444&444$999,:::8:::4>>>4???4<<<:777777"EEE(777EEE"99977755555r%rmcH|t|Sr4)addTestrb)loaderstandard_testspatterns   r#
load_testsr	s#/11222r%__main__)rrrrrr rn	functoolsrIrr rr8rrAroperatorrrrrrr	r
rrtestr
test.supportrrrrrr/rrrrrrrrrrpImportErrorrr_loadsr3rlrPrrrr-rrTestCaser,rerrrrrr:rQrQrWr\rrrErIrKrrrNrrrrrrrrrrrrrrr	rGrsr}rrrrrrrrrrE	TestSuiterbrkrBrmr	rKmainrr%r#<module>r	s

			







				







				



CCCCCCCCCCCCCCCCCCCCCCJJJJJJJJJJJJ""""%%%%%%%%########IIIfm,CC$uV%<q%@AACCC
s>f599999$r2r
*
eElleEll5)5)5)5)5)"5)5)5)v     &   &<<<<<;<<<
EEEEE$8EEEf^/^/^/^/^/"^/^/^/B{D{D{D{D{D8${D{D{DB.7.7.7.7.7.7.7.7fsssss+X->sssr)))))8$)))B4z
;z
;z
;z
;z
;&(9z
;z
;z
;@xN7N7N7N7N78N7N7N7b(




<


4G9G9G9G9G9&(9G9G9G9X]4]4]4]4]4]4]4]4BWEWEWEWEWE:x'8WEWEWExs
Cs
Cs
Cs
Cs
C\:x/@s
Cs
Cs
Cny||	1			yqiQ8Aq!Q

!RQ		((((((((T:b)eU33:b)eU33:b*eU33:b)eU33;q%##;vy!,,}}}}}h/}}}FEOEOEOEOEOx EOEOEOZ99999f999D11111'111f
KJ66KJ66KK66	KJ66/////&///dOCOCOCOCOC("3OCOCOCbi1oo
cccccvcccLkkkkk8$kkk\
 
 
 
 
 8-
 
 
 |d"$;<<D5D5D5D5D5x D5D5=<D5N
zHMOOOOOsB!!B+*B+