E:X2LdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlmZddlmZmZmZmZmZmZmZmZmZddlmZddlmZmZmZmZddl Z!ddl m"Z"m#Z#ddl m$Z$dd l m%Z%dd l m&Z&dd l m'Z'dd l m(Z(dd l m)Z)m Z ddl&Z* ddl+Z+ddl-Z- ddl.Z.ej^ej`hZ1e2ejfdzDcgc]}ee|f c}Z4e5e4ejfdzk(sJe dddddZ6dddigdfZ7e8dZ9e8dZ:Gdde jvZ<Gdde%Z=Gdde=Z>Gdde>Z?Gdde%Z@Gd d!e jvZAGd"d#e jvZBGd$d%ZCGd&d'eCe jvZDGd(d)e jvZEGd*d+e)ZFGd,d-eCe jvZGGd.d/e ZHGd0d1eGZIGd2d3eIZJGd4d5e&ZKGd6d7eCe jvZLGd8d9ZMGd:d;eLeMe jvZNGd<d=eIeMe jvZOd>ZPe$dZQe$d?ZRe$d@ZSe$dAZTe ddBddCZUe dddDdZVGdEdFe%ZWeWdGdHdIdJZXeWdKdLdMdNZYeWdOdPdQdRZZeWdSdTdUdVZ[e=ddWdZ\e=dXdYdZ]GdZd[e jvZ^Gd\d]e jvZ_Gd^d_e%Z`Gd`dae`ZaeadGdbdIdJZbeadKdcdMdNZceadOdddQdRZdeadSdedUdVZeGdfdge%ZfGdhdie jvZge$ddZhdjZiGdkdle%ZjGdmdne jvZkGdodpe jZmGdqdrekZne je+dudsGdtdue jvZpdvZqerdwk(re jyy#e,$rdZ+YqwxYw#e,$rYtwxYwcc}w)xzUTest date/time type. See https://www.zope.dev/Members/fdrake/DateTimeWiki/TestCases N)array) ltlegtgeeqnetruedivfloordivmod)support)is_resource_enabled ALWAYS_EQLARGESTSMALLEST)MINYEARMAXYEAR timedeltatzinfo)time)timezone)UTC)datedatetime g@A@abcinfnanc*eZdZdZdZdZdZdZy) TestModulect}|j|jd|j|jdy)Nr')datetime_module assertEqualrr)selfrs :/opt/alt/python312/lib64/python3.12/test/datetimetester.pytest_constantszTestModule.test_constantsGs3" ))1- ))40cL|jttjyN)assertIsrrutcr*s r+test_utc_aliaszTestModule.test_utc_aliasLs c8<<(r-cptt}tjD]}|j||y)z2Test that __all__ only points to valid attributes.N)dirr(__all__assertIn)r* all_attrsattrs r+test_allzTestModule.test_allOs*( #++D MM$ *,r-cd|jjvr|jdt}t dt |D}t gd}|j ||z t gy)N_Purez"Only run for Fast C implementationc3dK|](}|jds|jds|*yw)__N) startswithendswith).0names r+ z/TestModule.test_name_cleanup..Zs.N]T??40t9L]s.0) rrrr datetime_CAPIrrrrrsys) __class____name__skipTestr(setr5r))r*rnamesalloweds r+test_name_cleanupzTestModule.test_name_cleanupUsl dnn-- - MM> ?"NS]NN/0 #b'2r-c2d|jjvr|jdtj}|j |ddd|j |ddd|j |ddd |j |d dd|j |ddd|j |d dd |j |d d d |j |dd d|j |d d d|j |dd d |j |dd d |j |dd d|j |dd d|j |dd d y)N_Fastz'Only run for Pure Python implementationr)rFrGrH _pydatetime_divide_and_roundr))r*dars r+test_divide_and_roundz TestModule.test_divide_and_roundasd dnn-- - MMC D++ S"q) QR( QA& RR( QR( Ra( RQ' S!b) Rb) S"q) QA& RR( QR( Ra(r-N)rG __module__ __qualname__r,r3r:rLr^r!r-r+r%r%Es1 )+ 3)r-r%c,eZdZddZdZdZdZdZy) FixedOffsetct|tr t|}t|tr t|}||_||_||_yNminutes) isinstanceintr_FixedOffset__offset_FixedOffset__name_FixedOffset__dstoffsetr*offsetrB dstoffsets r+__init__zFixedOffset.__init__s@ fc "v.F i %!)4I  $r-c6|jjSr/)rjlowerr2s r+__repr__zFixedOffset.__repr__s{{  ""r-c|jSr/)rir*dts r+ utcoffsetzFixedOffset.utcoffset }}r-c|jSr/)rjrts r+tznamezFixedOffset.tznames {{r-c|jSr/)rkrts r+dstzFixedOffset.dstsr-N*)rGr_r`rorrrvryr{r!r-r+rbrbs%# r-rbceZdZddZy)PicklableFixedOffsetNc4tj||||yr/)rbrorls r+rozPicklableFixedOffset.__init__sT64;r-)NNNrGr_r`ror!r-r+rrs.NotEnoughc ||_||_yr/)_NotEnough__offset_NotEnough__name)r*rmrBs r+rozBTestTZInfo.test_subclass_must_override..NotEnough.__init__s & " r-Nrr!r-r+ NotEnoughrs #r-rrQNotByALongShot) r assertTrue issubclassassertIsInstancernowrrryrvr{)r*rr rus r+test_subclass_must_overridez&TestTZInfo.test_subclass_must_overrides # #  9f56 q* + b&) \\^ -ryy"= -r||R@ -rvvr:r-cltdd}|j|ttjdfD]y}|j |j |td|j |j|d|j |j|td{y)NrQThreerer}) rbrrrrr)rvrryr{)r*forus r+ test_normalzTestTZInfo.test_normals G $ b&),,.$&B   R\\"-y/C D   RYYr]G 4   RVVBZ2)> ?'r-ctjt}|jt|ttD]H\}}}|j ||}|j |}|jt|tJyr/)r__new__r0typepickle_choicesdumpsloads)r*origpickler unpicklerprotogreenderiveds r+test_pickling_basezTestTZInfo.test_pickling_basese~~f% d4j&))7 %GYMM$.Eooe,G MM$w- 0*8r-c td}t|dfft|dfft|fft|dfffD]O\}}||}|j d}|j |t |jt|||j|jd||j|j d|tD]\}}}|j||} |j| } |j | t |jt| ||j| jd||j| j d||jt| dRy)NrecookieESTr)rrrrryrrr0rr)rvrrr assertFalsehasattr) r*rmotypeargsronamerrrrrs r+test_pickling_subclassz!TestTZInfo.test_pickling_subclasssS4( !FH#5 6 *VX,> ? y !  ' )KE4 $.UKSummerTimez~Simple time zone which pretends to always be in summer time, since that's what shows the failure. cSr/r!)r*ru DSTOFFSETs r+rvz:TestTZInfo.test_issue23600..UKSummerTime.utcoffsets   r-cSr/r!)r*ruDSTDIFFs r+r{z4TestTZInfo.test_issue23600..UKSummerTime.dstsr-cy)N UKSummerTimer!rts r+ryz7TestTZInfo.test_issue23600..UKSummerTime.tznames%r-N)rGr_r`__doc__rvr{ry)rrsr+rrs  !  &r-rrrW r)rrrfromutcr)rv)r*rtzutrrs @@r+test_issue23600zTestTZInfo.test_issue23600sc'a00) &6 &^ T1b"a 3 JJqM Q[[]*A.r-N) rGr_r`rrrrrrrr!r-r+rrs' @ ;@ 1;./r-rcreZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZy) TestTimeZonecttdd|_ttd d|_t ddd|_y)N#@rACDTrRrr)rrrrrDTr2s r+setUpzTestTimeZone.setUps;YS16: YQ//74A&r-c|j|jtjtjtj fD],}|j t||jd.yr/) rrrr1minrr)strryr*rs r+test_strzTestTimeZone.test_strsJ99dhh <</B   SWbiio 6/r-ct}|j|jtjtj tj fD](}t|}|j|t|*yr/) r(rrrr1rrreprr)eval)r*rrtzreps r+ test_reprzTestTimeZone.test_repr sR"99dhh <</BHE   Re - /r-cBtdd}|jtjj dt |jtj j d| |jtjj d|y)N;rrf)rr)rr1rvZEROrr)r*limits r+test_class_memberszTestTimeZone.test_class_memberssmB/ //5t< //5v> //5u=r-c|jtjttd|j tjttdd|j tjttddtdtdfD];}t|}|j |jdtdzd=tddtdfD]9}|jtt||jtt| ;|jt5tdddd|jt5tdddd|jt5ttdddd|jt5ttdddd|jt5ttdd dddy#1swYxYw#1swYxYw#1swYxYw#1swY]xYw#1swYyxYw) Nrrr microsecondssecondsrer}ABCextra) r0rr1r assertIsNotr)assertNotEqualrvr ValueErrorrr)r* subminuterinvalids r+test_constructorzTestTimeZone.test_constructors hllHYq\$:; x ! e'DE x ! e'DE#3Yq5IJI)$B    T 2Yq5I I1 MK"!Q16G   j(G <   j(WH =7  y )8D> )   y )8B< )   y )8D$+? )   y )8D"+= )   y )8D%+I ) ) * ) ) ) ) ) ) ) ) )s< H  H,)H8II H),H58II Ic|jtjt|j|jtyr/)rrr1rrr2s r+test_inheritancezTestTimeZone.test_inheritance,s* hllF3 dhh/r-c|j}dD]a}|tz}|j|t|j ||j| t| j |c|j t 5|jj dddd|j t 5|jj ddddy#1swYCxYw#1swYyxYw)N)rg?rrR)rHOURr)rrvrrr)r*dummyhrms r+test_utcoffsetzTestTimeZone.test_utcoffset0sAXF   VXf%5%?%?%F G   fWhw&7&A&A%&H I   y )488+=+=b+A )   y )488+=+=a+@ ) )* ) ) )sC&C2&C/2C;c|jtjj|j|j t 5|jjdddd|j t 5|jjddddy#1swYCxYw#1swYyxYw)NrrR) assertIsNonerr1r{rrrrr2s r+test_dstzTestTimeZone.test_dst;su (,,**47734   y )488<<+; )   y )488<<? ) )* ) ) )sB,B8,B58Cc |jdtjjd|jdt jd|jdtt jd|jdtdt zjd|jdtdt zjd|jdttdjd|jd tdt zd jd|jd tt d jd|jd ttd d jd|jdttd d  jd|jdttd d djd|jdttd d d jd|jt5|jjdddd|jt5|jjddddy#1swYCxYw#1swYyxYw)Nrz UTC-05:00z UTC+09:30rz UTC-00:01reXYZz UTC+01:06:40rz UTC-01:06:40zUTC+01:06:40.000001rzUTC-01:06:40.000001rrR) r)rr1ryrrrrrrrr2s r+ test_tznamezTestTimeZone.test_tznameAs  3 3D 9:  4 01  5 5d ;< hrDy&9&@&@&FG hsTz&:&A&A$&GH hy/D&E&L<&RS dE : A A$ GH 8D(#;#B#B4#HI )At2D)E)L)LT)RS !9Q#5"56==dC E .!)AtQ"78??E G .!9Qa#8"89@@F H  y )488??2+> )   y )488??1+= ) )* ) ) )s#KK K  Kc|jt5tjj |j ddd|jt 5tjj dddd|j|jtfD]}|j j|}|j |}|j||z |j||j||j jtjy#1swYxYw#1swYxYw)Nz not datetimer) rrrr1rrrrrEasternreplacer)rv)r*rutctimelocals r+ test_fromutczTestTimeZone.test_fromutcXs   z * LL  )+   y ) LL  0*88TYY0BggooRo0GJJw'E   UW_bll5.A B   U!WW__HLL_A C 1 + * ) )s*D3 D?3D<?Ec|jtttt|j tttt|j tdtztdtzd|j t 5ttttkddd|jtttth|jttdk7|jttdk(tt}|j|tk(|j|tk7|j|tk|j|tkD|j|tk|j|tk\|j|tk|j|tkD|j|tk|j|tk\y#1swYyxYw)Nr r) rrrrr)rrr7rrrrrrs r+test_comparisonzTestTimeZone.test_comparisondsw HTNHTN; $$8 "t),hrDy%.HI   y )8D>HTN+J ) htnx~&67 $./ $4/0 d^ i( y) W % g& g & w' h' X & x( h'* )s ! H88Ictddd}tjtjtjfD]}|j |j ||j|j |j |j||j|j|j |j||j|jy)Nrr) rrrrr1r)ryrrvr{r*rrs r+test_aware_datetimez TestTimeZone.test_aware_datetimeys Q1 <<x||?G MM'2 &*8r-c6|j|jtjtjfD])}t j |}|j ||+tj}t j |}|j||yr/) rrrrrcopyr)r1r0r*rrs r+ test_copyzTestTimeZone.test_copysi))TXXx||X\\ABiimG   Wb )B\\))B- gr"r-c6|j|jtjtjfD])}t j |}|j||+tj}t j |}|j||yr/) rrrrrrdeepcopyr)r1r0rs r+ test_deepcopyzTestTimeZone.test_deepcopysk))TXXx||X\\ABmmB'G   Wb )B\\--# gr"r-cXtddtdddtddddg}|j|Dcgc]}| c}|D])}|jd|5t|ddd+td td d g}|j|Dcgc]}| c}|D]G}|jd |5|j t 5t|ddddddIycc}w#1swYxYwcc}w#1swY*xYw#1swYvxYw)Nrrrrrfr?Brrfrrgood) test_typedeltarr)rrbad)rextendsubTestrrr)r* time_deltasr*bad_time_deltass r+test_offset_boundariesz#TestTimeZone.test_offset_boundariess B + BB 7 BBV L  < uUF <= Ee<=<! B  BQ /  ODO5ODE$EU;&&z2UO3<;%==< E32<;s; C>" D D D  D+D D D D  D) c|jtjt|jtt dty)Nrr)rrr1rrr2s r+test_comparison_with_tzinfoz(TestTimeZone.test_comparison_with_tzinfos6 HLL&(3 HYQ%78&(Cr-N)rGr_r`rrrrrrrrrrrrrr r#r1r3r!r-r+rrs[' 7 .> J$0A; >. C(* 9'##$2Dr-rceZdZdZdZy)HarmlessMixedComparisonc|jddd}|j|dk(|j|dk7|jd|k(|jd|k7|j|ddg|g|jg|ddgg|j|tk(|j|tk7|j|t k|j|t kD|j|t k|j|t k\|j|t k|j|t kD|j|t k|j|t k\y)Nrr!)theclassrrr7rrrr*mes r+test_harmless_mixed_comparisonz6HarmlessMixedComparison.test_harmless_mixed_comparisons2 ]]1a # r" b! r" b! b1b"b/* b2q"b/* i( y) W % g& g & w' h' X & x( h'r-c|jddd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd y) NrcdkSNr!r!r:sr+zGHarmlessMixedComparison.test_harmful_mixed_comparison.. R"Wr-cdkSr>r!r?sr+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison.. R2Xr-cdkDSr>r!r?sr+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison..rAr-cdk\Sr>r!r?sr+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison..rCr-cdkSr>r!r?sr+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison..rAr-cdkSr>r!r?sr+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison..rCr-cdkDSr>r!r?sr+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison..rAr-cdk\Sr>r!r?sr+r@zGHarmlessMixedComparison.test_harmful_mixed_comparison..rCr-)r8rrr9s @r+test_harmful_mixed_comparisonz5HarmlessMixedComparison.test_harmful_mixed_comparisons ]]1a # )_5 )%56 )_5 )%56 )_5 )%56 )_5 )%56r-N)rGr_r`r;rJr!r-r+r5r5s (: 7r-r5ceZdZeZdZdZdZejdZ dZ dZ dZ dZd Zd Zd Zd Zd ZdZdZejdZdZdZdZdZdZdZdZdZdZdZ dZ!y) TestTimeDeltac |j}t}|||ddddddd||d|d||dd|d||ddd|d||d|d||d|d ||d |d ||d |d ||d|d ||d|d ||d|d||d|d ||d |d ||d |d||d|d||d|dy)Nr)weeksdaysrrfr millisecondsrrrOrrrNrTr+r<rerPg$I$I?gUUUUUU?g?gMbP?)r)r)r*rtds r+rzTestTimeDelta.test_constructorsV     24!!1a!"4 5 2a5"!* 2a8R]# 2aA;*+ 2A; # 21:r|$ 2A;2' 2a="R.) 2a="$/0 21 rt45 2E?BAJ' 26?BQK( 2F R]+ 2f r!}- 2e ba01 25 !21#56r-c |j}t}|d}|dd}|ddd}|||z|z|ddd|||z |dd||j||dd|| |d|||d|| |dd|| |dd d |t|||t| |||dd |||ddd |||d z|d||d zd |z||d zd |z||d z|dd|d |z|dd||d z|dd||d z|ddd|d |z|ddd||d z|ddd||dz| ||dz| |z ||dz| | z||dz|dzdz||dzd|zdz||dz|dd|d|z|dd||dz|d||d z|dd||dz|ddd||d z|dd||dz|ddd||dz |d||dz |dd||dz |d||d z |dd||dz |ddd||d z |dd||dz |ddd|d}|d|zdzd|z|d|zdzd|z|dd|zzd|z|dd|zzd|z|d|zdzd|z|d |zdzd|z||d!d"z|d#||d!d$z|d%|d|zdz d|z|d|zdz d|z|d|zd&z d|z|d |zd&z d|z|d|zdz d|z|d|zdz d|z|d|zd'z d|z|d|zd'z d|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 |dddy)-NrTrrSrTrYiDQrVr QX>QirFiX'rSr+ri@i6i@?xrrQrUrRrPr r翶~Ϛ?@g6+1?iS g@grOg`""K?-?ɚ;r&>B)r)r__rsub__absrangeround)r*rrVabcusis r+test_computationszTestTimeDelta.test_computationsss     qE q"I q!TN 1Q3q5"QD/" 1Q31l#$ 1::a="Q -. A2r"v A2r!u  A2r"l#$ A2r"k6*+ 3q61  3r7A 2a>1 2aJ # 1R4B 1R4A 1R4A 1R4As 2a4As 1R4As 1R4Aq%! 2a4Aq%! 1R4Aq%! 1R4!  1R4!A 1R4!QB 1e9qtRi  1e9r!tRi  1T62a8 462a8 1a4A 1b5"Q( 1d7Bq!QK  1b5"Q/" 1g:r!Q *+ 1S5"R& 1S5"Q* 1Q31 1R4Aq 1T62aA; 1R4Ax! 1W9bAy)*Q  AbDC<2 AbDC<2 3!B$<2 3!B$<2 BrES="R%  BrES="R%  2a=8 #RV%<= 2a=9 $bf&=> AbDA:qt AbDA:qt BrES="R%  BrES="R%  AbDB;2 AbDB;2 AbDD="R%  AbDD="R% sBA "Q|U1Q3Z ( sBA "R"}eAbDk *  2a=M *BF,CD 2i '"Yv*F F aA;  2iA Iq!!4 4 aA; r-ctddD]j|jtfd|jtfd|jtfd|jtfdld|jtfd|jtfd |jtfd |jtfd |jtfd y) Nr}r?czSr/r!rirmsr+r@z.i 1r-cz Sr/r!rssr+r@z.jrtr-czSr/r!rssr+r@z.krtr-cz Sr/r!rssr+r@z.lrtr-rczSr/r!rizerosr+r@z.qs TQYr-czSr/r!rysr+r@z.rs Q$Yr-cz Sr/r!rysr+r@z.ss QXr-cdz S)Nr!risr+r@z.ts QWr-cdz S)Nrr!rsr+r@z.us QVr-)rrrZeroDivisionError)r*rirmrzs @@@r+test_disallowed_computationsz*TestTimeDelta.test_disallowed_computationsds bMA   i 5   i 5   i 5   i 5  )%67 +->? +-=> +_= )^4r-ctd}|jt|jt|jt|j ty)Nr})rrr__mul__NAN __truediv__)r*ris r+test_disallowed_specialz%TestTimeDelta.test_disallowed_specialws7 bM *aii5 *ammS9r-cd\}}}t|||}|j|j||j|j||j|j|y)N)rrTrr)rOrr)r*rOrrlrVs r+test_basic_attributesz#TestTimeDelta.test_basic_attributes}sX$gr tWb ) $' W- "-r-cBtd}|j|jddD].}t|}|j|j|0dD];}t|}|j|j|tdz =y) NmrQg8~A)g ˟ $@g ˟ $rarg.Ar)r rSirr)rr) total_seconds)r*rVrmss r+test_total_secondsz TestTimeDelta.test_total_secondss C  ))+Z8NM=1B   R--/ ?O !B+B   R--/i6J1J K!r-cbtdddddd}td }|j||y) NdrV8rPrgArOrNrrfrrrr)rr)r*t1t2s r+ test_carrieszTestTimeDelta.test_carriess9 C)!!$9 ; A & R r-ctdddddd}t}|jt|t||td z }|td z }|j|||jt|t||d i}d ||<|jt|d |j||d y)NrrVrrPriz rrTrR1rQrrU)rr)hashlen)r*rrds r+test_hash_equalityz TestTimeDelta.test_hash_equalitys C)!!$9 ; [ b48, ia   iS!! R  b48, G" Q# 2"r-cd}t|}tD];\}}}|j||}|j|}|j ||=y)N)r"8)rrrrr)r*rrrrrrrs r+ test_picklingzTestTimeDelta.test_picklingsP$)7 %GYMM$.Eooe,G   T7 +*8r-ctdddtddd}|j||j|k|j|k\|j|k7|j|k|j|kDdD]}t|}|j|k|j|kD|j|k|j|k\|j|k7|j|k7|j|k(|j|k(|j|kD|j|k|j|k\|j|ktD]'|jk(d|jk7d|jk(d|jk7d|j t fd|j t fd|j t fd |j t fd |j t fd |j t fd |j t fd |j t fd*y)NrUrQrW)rQrQrQ)rUrWrW)rUrQrRFTckSr/r!badargrsr+r@z,TestTimeDelta.test_compare.. vr-ckSr/r!rsr+r@z,TestTimeDelta.test_compare.. fr-ckDSr/r!rsr+r@z,TestTimeDelta.test_compare..rr-ck\Sr/r!rsr+r@z,TestTimeDelta.test_compare..rr-ckSr/r!rsr+r@z,TestTimeDelta.test_compare.. 2r-ckSr/r!rsr+r@z,TestTimeDelta.test_compare.. "r-ckDSr/r!rsr+r@z,TestTimeDelta.test_compare..rr-ck\Sr/r!rsr+r@z,TestTimeDelta.test_compare..rr-)rr)rr OTHERSTUFFrrr*rrrrs @@r+ test_comparezTestTimeDelta.test_comparesK q!Q  q!Q  R  b! b! r" b! b!3DD!B OOBG $ OOBG $ OOB"H % OOB"H % OOB"H % OOB"H %   R2X &   R2X &   R"W %   R"W %   R2X &   R2X &4!jF   R6\5 1   R6\4 0   Vr\5 1   Vr\4 0   i)= >   i)< =   i)< =   i)= >   i)= >   i)< =   i)< =   i)= >!r-c *t}|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|ddd d ddy)Nrz1 day, 0:00:00r z-1 day, 0:00:00rUz2 days, 0:00:00rSz-2 days, 0:00:00r:rr%z12:58:59rQrWz2:03:04irr)rNrrfrz-210 days, 23:12:34rUz0:00:00.001000rz0:00:00.000003rcr&rOrrfrrz999999999 days, 23:59:59.999999)rr)r)r*rVrs r+rzTestTimeDelta.test_strs     3r!u:'( 3r"v;)* 3r!u:() 3r"v;*+ 3rB3 4jA 3r1a0 19= 3r2r2> ?  " 3rq! "$45 3rq! "$45 3ryB &( ) , .r-c d|jjz}|jt|jdd|z|jt|jddd|z|jt|jdddd |z|jt|jd d |z|jt|jd |z|jt|jdd|z|jt|jddd|z|jt|jddd|zy)N datetime.rz %s(days=1)rrUz%s(days=10, seconds=2)rOz,%s(days=-10, seconds=2, microseconds=400000)rSrz%s(seconds=60)z%s(0)rrz%s(microseconds=100))rOrz%s(days=1, microseconds=100))rrz%s(seconds=1, microseconds=100)r8rGr)rr*rBs r+rzTestTimeDelta.test_reprsWT]]333 dmmA./%, . dmmB231D8 : dmmCF;<G$N P dmmBm78)D0 2 dmmo. 4 ) dmmm=>/$6 8 dmmmEF7$> @ dmmACmHI:TA Cr-ctdddddtdtdd tdd d fD]}t|}|j|jd |dd}t |}|j ||t|j |j|j}|j ||y)Nrcrrr&r6erQrrOrrUrQrOrrr ) rrrr?rr)rOrr)r*rVstd2s r+test_roundtripzTestTimeDelta.test_roundtrips)2r%'f>*-*a8!QQ? ABRA OOALL5 6!"Aq'C   R %BGGRZZAC   R %Ar-c:|jtjt|jtjt|jtjt|j tjtjkD|j tjtd|j tjtddd|j tjtdddy)NrrcrXg~.Arr)rrrr resolutionrr)r2s r+test_resolution_infoz"TestTimeDelta.test_resolution_infos immY7 immY7 i22I>  56  *(=>  )Y(NO --yAq/ABr-ctj}tj|z}||z}|jt|j ||jt|j | tj|z }||z }|jt|j ||jt|j | |jtdtd}|jt|jd|jt|jd|jt|jd|jt|jd|jt|jdy)Nc$tj Sr/)rrr!r-r+r@z-TestTimeDelta.test_overflow...s )--r-rʚ;geAg#B ;g|=gr{>) rrrr OverflowError__sub____add__rrr)r*tinyrVdays r+ test_overflowzTestTimeDelta.test_overflow!s## ]]T ! d  -T: -dU; ]]T ! d  -T: -dU; -)?@l -e< -c: -%@ -%@ -%@r-ctd}|jt|jt|jt|jt yNr)rrrrINF)r*rs r+_test_overflow_specialz$TestTimeDelta._test_overflow_special7s9l -c: -sd;r-c<t}|j}||d|d||d|d||d|d||d|d||d|d ||d |d ||d |d ||d|d||d|d||d|d||d|d||d|dd}|dz}||d|z |d||d|z |d||d|z d|z |d ||d|z |d||d|z |d||d|z d|z |d ||d d |d!z||d |jzd |jz|jzy)"Ng-C6:?rUrg-C6:gMb@?rgMb@ga2U0*C?rga2U0*Cr g~jtX?rUg~jtXrSgƠ>rgƠ?i|tAr+g?rQg?rrOrgٿgɿr^rq)rr)r)r*rVr us_per_hour us_per_days r+test_microsecond_roundingz'TestTimeDelta.test_microsecond_rounding=s     28 $be, 29 %r!u- 28 $ba&89 29 %rr':; 28 $ba&89 29 %rr':; 28 $ba&89 29 %rr':; 2i "!"45 2j !22#67 2f rt45 2g  67  2%  22j= !2a5) 2B{N #RU+ 22j=; 79KL 23z> "BqE* 2C O $be, 23z>[ 922;NO 23 RS%9!9: 23  .BMM0A2==0PQr-ctd}|j|j|j|jfdy)Nr r)r rXr&r)r*rVs r+test_massive_normalizationz(TestTimeDelta.test_massive_normalization^s2 B ' "''2::r?0 2r-c|jtd|jtdd|jtddd|jtd|jtdy)Nrrr)rrrr2s r+ test_boolzTestTimeDelta.test_boolcs\  ! %  !Q(  !Q*+  q12 1&r-cFGfddtd}|jt||j|j ddd}|jt||j|j d ||z}|jt|tj |}|jt||j|j |j |j|j|j|j|j|j|jt|t||j|j dy) Nc(eZdZefdZdZy)0TestTimeDelta.test_subclass_timedelta..TcT|j|j|jSr/r)rVTs r+from_tdz8TestTimeDelta.test_subclass_timedelta..T.from_tdms"**boo>>r-cv|jdz|jdz z|jdz z}t|S)Nr+g @r)rOrrrh)r*sums r+as_hoursz9TestTimeDelta.test_subclass_timedelta..T.as_hoursqs?yy2~||f,-((612Sz!r-N)rGr_r` staticmethodrr)rsr+rrls  ? ? "r-rrrQr+r iri) rr0rr)rrrOrrr)r*rrt3t4rs @r+test_subclass_timedeltaz%TestTimeDelta.test_subclass_timedeltajs& " "AY d2h" + B & d2h" , "W d2h * YYr] d2h" "''* RZZ0 "//: R#b'* +r-c \Gddt}|ddd}td}dd|ddd fd d |ddd fd d |dddfg}|D]M\}}}|j|5|||}|j|||j ||dddOy#1swYZxYw)Nc eZdZy)6TestTimeDelta.test_subclass_date..DateSubclassNrGr_r`r!r-r+ DateSubclassr r-rrrRrQaddc ||zSr/r!rrs r+r@z2TestTimeDelta.test_subclass_date..Qr-rYraddc ||zSr/r!rs r+r@z2TestTimeDelta.test_subclass_date..!a%r-subc ||z Sr/r!rs r+r@z2TestTimeDelta.test_subclass_date..rr-rW)rrr.r)r) r*rd1rVtestsrBfuncexpectedacts r+test_subclass_datez TestTimeDelta.test_subclass_dates 4 $1 % A & T1a(@ A 'dAq)A B & T1a(@ A  %* D$d#2rl  h/%%c<8$#%*##s ).B""B+ c hGddt}|ddddd}tdd}d d |ddd d fd d|ddd d fdd|ddddfg}|D]M\}}}|j|5|||}|j|||j ||dddOy#1swYZxYw)Nc eZdZy)>TestTimeDelta.test_subclass_datetime..DateTimeSubclassNrr!r-r+DateTimeSubclassr rr-r rrrRr)rOrfrc ||zSr/r!rs r+r@z6TestTimeDelta.test_subclass_datetime..rr-rY rc ||zSr/r!rs r+r@z6TestTimeDelta.test_subclass_datetime..rr-rc ||z Sr/r!rs r+r@z6TestTimeDelta.test_subclass_datetime..rr-rW)rrr.r)r) r*r rrVrrBrrrs r+test_subclass_datetimez$TestTimeDelta.test_subclass_datetimes x dAq"b 1 Ar *&(8q!R(H I ')9$1b)I J &(8q!R(H I  %* D$d#2rl  h/%%c+;<$#%*##s /.B((B1 ctddd}td}|j||z d|j||zdtdd }td }|j||z d |j||zdtd }|jtt|||jtt ||y)Nrr+r%rgó@irUr rfrreg@r)rr)rrr r )r*rsecondminutezerotds r+ test_divisionzTestTimeDelta.test_divisions Ar2 61% VV, fd+ a ,1% VS) fa(1 +Wa@ +Xq&Ar-cZtdd}td}||z}|j|tdtdd}||z}|j|tdtd}|jtt|||jt t|d y NrUr rrrerrSrr)rr)rrr r)r*rrrrs r+test_remainderzTestTimeDelta.test_remainders a ,1% J Ib12 b" - K Ib121 +S!V< )S!R0r-ctdd}td}t||\}}|j|d|j|tdtdd}t||\}}|j|d|j|tdtd}|jtt|||jt t|d yr)rdivmodr)rrr)r*rrqrrs r+ test_divmodzTestTimeDelta.test_divmods a ,1%a 1 A Ib12 b" -a 1 B Ib121 +VQ? )VQ3r-c d}|jt5t|ddzz ddd|jt5t|ddzzddddD]d}|jt5t||z ddd|jt5t||zdddfy#1swYxYw#1swYxYw#1swYUxYw#1swYxYw)Nc4Gfddt}|S)NceZdZfdZy)FTestTimeDelta.test_issue31293..get_bad_float..BadFloatcSr/r!)r* bad_ratios r+as_integer_ratiozWTestTimeDelta.test_issue31293..get_bad_float..BadFloat.as_integer_ratios $$r-N)rGr_r`r&)r%sr+BadFloatr#s%r-r')float)r%r's` r+ get_bad_floatz4TestTimeDelta.test_issue31293..get_bad_floats %5 %: r-rrT)r!r|rrUrQ)rrrr)r*r)r%s r+test_issue31293zTestTimeDelta.test_issue31293s    y ) K-T 2 2*   y ) K-T 2 2*1I"":. mI66/"":. mI66/.1 * ) ) )/...s/C C"C.7C:C"C+.C7 :D cGfddt}GfddGfddtdD]|j5 t|d   t|d   t|d   td |d z |d td z td |d zdddy#t$rY{wxYw#t$rYwwxYw#ttf$rYywxYw#ttf$rYywxYw#t$rYswxYw#t$rYmwxYw#1swY xYw) Nc6eZdZfdZfdZfdZfdZy)-TestTimeDelta.test_issue31752..BadIntcSr/r!r*otherProds r+rz5TestTimeDelta.test_issue31752..BadInt.__mul__ v r-cSr/r!r0s r+__rmul__z6TestTimeDelta.test_issue31752..BadInt.__rmul__r3r-cSr/r!r0s r+ __floordiv__z:TestTimeDelta.test_issue31752..BadInt.__floordiv__r3r-cSr/r!r0s r+ __rfloordiv__z;TestTimeDelta.test_issue31752..BadInt.__rfloordiv__r3r-N)rGr_r`rr5r7r9)r2sr+BadIntr.s    r-r:c"eZdZfdZfdZy)+TestTimeDelta.test_issue31752..ProdcSr/r!r*r1Sums r+rz3TestTimeDelta.test_issue31752..Prod.__add__ u r-cSr/r!r>s r+__radd__z4TestTimeDelta.test_issue31752..Prod.__radd__r@r-N)rGr_r`rrB)r?sr+r2r<s   r-r2ceZdZfdZy)*TestTimeDelta.test_issue31752..SumcSr/r!)r*r1 divmodresults r+ __divmod__z5TestTimeDelta.test_issue31752..Sum.__divmod__ s ##r-N)rGr_r`rGrFsr+r?rD s $r-r?)Nr!)rrrU)rr rHrrrrR)rhr.rrr)r*r:r2r?rFs @@@r+test_issue31752zTestTimeDelta.test_issue31752s? S     $# $;L<86!95F1I.F1I.aL6!9,1I ! ,aLF1I-/98; !!":.":.!!198s D3 C C1C+DD.D$ CD3CD3 C(%D3'C((D3+C=:D3<C==D3DD3DD3 D!D3 D!!D3$ D0-D3/D00D33D= N)"rGr_r`rr8rrnrr requires_IEEE_754rrrrrrrrrrrrrrrrrrrrrrr+rIr!r-r+rLrLsH72Qf5& :: . L!#(,&?P.*C&&$CA, << RB2 ',>9&=& B& 14"7(1r-rLceZdZdZy) TestDateOnlyc<tddd}tddddd}t|j}|j|td||z}|j|||z||z}|j|||z||z }|j|||z | }t|j}|j|td||z}|j|||z||z}|j|||z||z }|j|||z y) NrrUrQrWrRrrS)rrrOr))r*rur*rOdt2s r+test_delta_non_days_ignoredz(TestDateOnly.test_delta_non_days_ignored1s $1 q1a'(*$ y|,5j b4i(bj b4i(5j b4i($ y}-5j b4i(bj b4i(5j b4i(r-N)rGr_r`rPr!r-r+rLrL-s)r-rLceZdZdZy) SubclassDaterNrGr_r`sub_varr!r-r+rRrRNGr-rRceZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd 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,Z0y-).TestDatec|jddd}|j|jd|j|jd|j|jdy)NrQr)r8r)yearmonthrrts r+rzTestDate.test_basic_attributesWsP ]]4A & $' 1% #r-c|jddd|jjfD]}t|}|j|j d|dd}t |}|j |||j|j|j|j}|j ||y)NrrUrQrr) r8todayrrr?rr)rZr[rr*rurrOs r+rzTestDate.test_roundtrip]s==Aq)==&&(*BRA OOALL5 6!"Aq'C   R %--266:C   R %*r-c .dD]\}}}}|j|||}|j||j|jj|}|j||t |dsu|j|j d|j|j d|j|jd|j|jdtttdzdD]}|j|dd}|j}|jj|}|j|||dkDsY|jj|dz }|j|dz dd}|j|||j|j|dz gd}d D]\}} |j|ddj}ttdd |D]\} } | d k(r| r| dz } td| dzD]e} |j|| | }|j|j||j||jj||dz }gy) N))rrrr)rrrr)rUrrn)irri hourrrrTrr) rrr rr rrr rr r))rNT)rYFr rU) r8r) toordinal fromordinalrrarr microsecondrgrrzip) r*ymrnfromordrZd2dimisleapr[maxdayrs r+test_ordinal_conversionsz!TestDate.test_ordinal_conversionsks=3JAq!Q  aA&A   Q .mm//2G   Q (w'  q1  3  3  !4!4a83&'719a0D dAq)A A**1-B   Q #axMM--ac2]]462r2  B'  151?7LD& dAq)335A!$U1b\3!7 vA:&aKF F1H-C dE37A$$Q[[]A6$$Q (A(A!(DEFA ."88r-c|jj|jjjjj j }|j||jtfdtdz}|j|j dz|j||jj dz|jj|jjjjj j }|j||jtfdtdz }|j|j dz |j||jj dz y)Nc,jdz Srrdriaordsr+r@z0TestDate.test_extreme_ordinals..ammD1H.Er-rrQc,jdzSrrrrssr+r@z0TestDate.test_extreme_ordinals..rur-) r8rrZr[rrcrdr)rrrr)r*rjrirts @@r+test_extreme_ordinalszTestDate.test_extreme_ordinalssi MM   MM!&&!''155 1{{} MM$  A *&EF q! ! q1 DMM55dQh?@ MM   MM!&&!''155 1{{} MM$  A *&EF q! ! q1 DMM55dQh?@r-c|jtdd|jtdd|jt|jtdz dd|jt|jtdzdd|jddd|jddd|jt|jddd|jt|jddd|jddd|jddd|jd dd|jt|jddd |jt|jd dd|jt|jd dd|jt|jd dd|jt|jddd|jt|jdddy)NrrNrrr rU` r 4lr)r8rrrrr2s r+test_bad_constructor_argumentsz'TestDate.test_bad_constructor_argumentss~ gq!$ gq!$ *dmmWQY1E *dmmWQY1E dAq! dB" *dmmT1a@ *dmmT2qA dAr" dAr" dAr" *dmmT1bA *dmmT1bA *dmmT1bA *dmmT1bA *dmmT1a@ *dmmT1bAr-c|jddd}|jddd}|j|||jt|t||di}d||<|jt|d|j||d|j||d|jddd}|jddd}|j|||jt|t||di}d||<|jt|d|j||d|j||dy)NrNrrrrUr|r8r)rrr*redics r+rzTestDate.test_hash_equalitys6 MM$B ' MM$B ' A a$q'*!fA S1% Q# Q# MM$Q ' MM$Q ' A a$q'*!fA S1% Q# Q#r-c L|jddd|jddd}|jddd}|z }|j|jdtt dddz|j|j d |j|j d tdtd }|jdd d|jz|jdd d |jz|jdd d |jz |jdd d|j z|jdd d|j|z|jdd d |j|z |jddd |jd|zz|jdd d|jd|zz |jdd d |j|zz ||jzz |j|z z | |jz z  |j|zz | |jzz  |j|z z ||jz z |j||z z dD]j|jtfd|jtfd|jtfd|jtfdl|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfdy)NrYrrr|rUArWrrTrQrr4rpczSr/r!rssr+r@z,TestDate.test_computations..rtr-cz Sr/r!rssr+r@z,TestDate.test_computations..rtr-czSr/r!rssr+r@z,TestDate.test_computations..rtr-cz Sr/r!rssr+r@z,TestDate.test_computations..rtr-cz Sr/r!rirsr+r@z,TestDate.test_computations..  S1Wr-czSr/r!rsr+r@z,TestDate.test_computations.. rr-czSr/r!rsr+r@z,TestDate.test_computations..  QWr-czSr/r!rsr+r@z,TestDate.test_computations..  SAXr-czSr/r!rsr+r@z,TestDate.test_computations.. Q#Xr-czSr/r!rsr+r@z,TestDate.test_computations.. QUr-czSr/r!rsr+r@z,TestDate.test_computations.. Q!Vr-czSr/r!rsr+r@z,TestDate.test_computations..rr- r8r)rOrrgrrrrr)r*rjrkdiffweekrirrms @@@r+rnzTestDate.test_computationssy MM$2 & MM$2 & MM$q #s FStT11E-F$FG q) **A.l| 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,A   i 5   i 5   i 5   i 5  )_5 )_5 )_5 )%56 )%56 )]3 )^4 )]3r-c|jj}|tdtdfD]}|jj|z}||z}|j t |j ||j t |j| |jj|z }||z }|j t |j||j t |j | y)NrrU) r8rrrrrrrr)r*rr*rus r+rzTestDate.test_overflows}}''IaL)A,7E""U*B %KB   mRZZ ?   mRZZ% @""U*B %KB   mRZZ ?   mRZZ% @8r-c ,ddl}d\}}}|j|||ddddddf }|jj|}|j |j ||j |j ||j |j|y)Nr)irrr )rmktimer8 fromtimestampr)rZr[r)r*rrZr[rtsrs r+test_fromtimestampzTestDate.test_fromtimestamp"s'eS T[[$sAq!Q2> ? MM ' ' + & %( $r-chdD]-}|jt|jj|/yN)gZbtgZbtirrr8rr*insanes r+test_insane_fromtimestampz"TestDate.test_insane_fromtimestamp-- $F   mT]]-H-H$ &$r-c|jt5|jjddddy#1swYyxYwr/)rrr8rr2s r+ test_fromtimestamp_with_none_argz)TestDate.test_fromtimestamp_with_none_arg6s.   y ) MM ' ' -* ) )s ;Ac2ddl}tdD]a}|jj}|j}|jj |}||k(rn|j dck7r|j ||tdyy)NrrQg?r^r)r*)rrgr8r]rsleepassertAlmostEqualr)r*rrr]r todayagains r+ test_todayzTestDate.test_today;s1XEMM'')EB44R8J " DJJsO!( J   " ":u)23)? # A r-c tdD]}|j|jddd|zj||j|jddd|zj |dz|j|jddd|zj||j|jddd|zj |dzy)NrTrYrQrWrrrU)rgr)r8weekday isoweekday)r*rms r+ test_weekdayzTestDate.test_weekdayXsqA   T]]4AaC8@@BA F   T]]4AaC8CCEqs K   T]]4AaC8@@BA F   T]]4AaC8CCEqs K r-c<gd}g}|D]T\}}|j|}tdD]2}|t|z}|dd|d|zfz}|j||f4V|D]\} } |j | d5|j | j | ddd|j | d5| j } |j | j| j| jf| dddy#1swYkxYw#1swYxYw)N)))rr)rrr))rrryrzrr))rzrrR)rzrUr))rr)rrr))rrrb)r5r))rrrW)rrrrTrrUtuple)r comparisonfields) r8rgrappendr.r) isocalendarrZrr) r* week_mondays test_casescal_dateiso_date base_datermnew_datenew_isorexp_isors r+test_isocalendarzTestDate.test_isocalendaras   ". Hh% x0I1X$y|3"1Q-8A;?*<<!!8W"56#/%JAwg6  ':7h7MMO  !&&!&&!))!?r-c|jddd}|j|jdd|j|jdd|j|jdd|jt|j|jt|jdd |jt|jd |j|jd d |j|jd ddD]} |j| |jd|jd|jdy#t $rYXwxYw#t $rY>wxYw)NrQrUm:%m d:%d y:%yzm:03 d:02 y:05rxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxonetwor}%m03'%z' '%:z' '%Z''' '' '')z%e%z%#u%y%m%fformat)r8r)strftimerrrUnicodeEncodeError)r*rfs r+ test_strftimezTestDate.test_strftimesK MM$1 % $457GH B, H-x8 )QZZ0 )QZZ> )QZZ4 D)40 $56 C#A  1 #  JJ| $ 4 $    "   s$"E+6E:+ E76E7: FFc|jddd} tjd|j |jdtjd|j |j |jdtjd|j y#t$r|j dYwxYw)NrrQrUrz'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)r8_timerrrHr) timetuplers r+test_strftime_trailing_percentz'TestDate.test_strftime_trailing_percents MM$1 % E NN3  C%..akkm*LM  JJ) * NN-q{{} =  E MMC D EsB11C Cc|jddd}|j|jdt||j t d5|jddddGdd|j}|ddd}|j|jddGd d |j}|ddd}|j|jdt|d D]}|j|j||j ||j|j||j ||j|j|d y#1swYxYw) Nrrrmust be str, not int{ceZdZdZy)TestDate.test_format..AcyNAr!r2s r+__str__z'TestDate.test_format..A.__str__r-NrGr_r`rr!r-r+rr r-rceZdZdZy)TestDate.test_format..BcyNBr!r* format_specs r+rz(TestDate.test_format..B.strftimerr-NrGr_r`rr!r-r+rrrr-rrzm:%m d:%d y:%y H:%H M:%M S:%Sz %z %:z %Zr8r) __format__rassertRaisesRegexrrr*rurrirrjfmts r+ test_formatzTestDate.test_formats= ]]4B ' r*CG4  # #I/E F MM# G    dArN b)3/    dArN b)3r73C   R]]3/S1A B   Q\\#. C0@ A   Q\\#. 4 #G Fs FF ct|jtrt}nt}|j |jj ||j |jj ||j |jjt|j|jj |jj kDyr/) rr8rrrrrrrr)r*expected_classs r+rzTestDate.test_resolution_infos dmmX .%N!N dmm//@ dmm//@ dmm66 B  ))DMM,=,==>r-c|jj|jjz }|jdzdz|jzdz|j z}t dd|}|j|||j|jj|z|jj|j|jj|z |jjy)Nr+@Br)r8rrrOrrrr))r*bigri justasbigs r+test_extreme_timedeltazTestDate.test_extreme_timedeltasmm$--"3"33 XXb[  +W 4s7G7G GaA&  i( **S0$--2C2CD **S0$--2C2CDr-c tdD]}|jddd|z}|j}|j|ddd|zddd|d|zdf |jddd|z}|j}|j|ddd|zdddd|zdzd|zdf |jddd|z}|j}|j|ddd|zdddd|zdzd |zdf |j|jd|j|j d|j|j d|z|j|jd|j|jd|j|jd|j|jd|zdz|j|jd |z|j|jdy) NrTrrrUrr rrQ=) rgr8rr)tm_yeartm_montm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst)r*rmrrs r+test_timetuplezTestDate.test_timetuple$sqA dAqs+A A   Qq!A#q!Q1Q3 C D dAqs+A A   Qq!A#q!Q1aAr J K dAqs+A A   Qq!A#q!Q1aAr J K   QYY -   QXXq )   QYY! ,   QYY *   QXXq )   QXXq )   QYY1a 0   QYY1 -   QZZ ,-r-c d}|j|}tD];\}}}|j||}|j|}|j ||=|j |j |j dy)NrYrTrrUr8rrrr) __reduce__ __reduce_ex__rs r+rzTestDate.test_pickling=szt}}d#)7 %GYMM$.Eooe,G   T7 +*8 *D,>,>q,ABr-cgd}d}|j|}|D])}tD]}||d}|j|| +y)N)s'cdatetime date (S'\x07\xdf\x0b\x1b' tR.scdatetime date (U tR.scdatetime date U R.)rlatin1encodingr8 pickle_loadsr)r*rrrdatarrs r+test_compat_unpicklezTestDate.test_compat_unpickleFsP   4==$'D%x8  (3&r-c~|jddd|jddd}|j||j|k|j|k\|j|k7|j|k|j|kDdD]}|j|}|j|k|j|kD|j|k|j|k\|j|k7|j|k7|j|k(|j|k(|j|kD|j|k|j|k\|j|ktD] |jk(d|jk7d|jk(d|jk7d|j t fd|j t fd|j t fd |j t fd |j t fd |j t fd |j t fd y)NrUrQrWrFTckSr/r!rsr+r@z'TestDate.test_compare..rrr-ckDSr/r!rsr+r@z'TestDate.test_compare..srr-ck\Sr/r!rsr+r@z'TestDate.test_compare..trr-ckSr/r!rsr+r@z'TestDate.test_compare..urr-ckSr/r!rsr+r@z'TestDate.test_compare..vrr-ckDSr/r!rsr+r@z'TestDate.test_compare..wrr-ck\Sr/r!rsr+r@z'TestDate.test_compare..xrr-)r8r)rrrrrrs @@r+rzTestDate.test_compareSsH ]]1a # ]]1a # R  b! b! r" b! b!3D%B OOBG $ OOBG $ OOB"H % OOB"H % OOB"H % OOB"H %   R2X &   R2X &   R"W %   R"W %   R2X &   R2X &4!jF   R6\5 1   R6\4 0   Vr\5 1   Vr\4 0   i)< =   i)< =   i)= >   i)= >   i)< =   i)< =   i)= >!r-cl|jddd|jdk(d|jdk(d|jdk7d|jdk7d|jtfd|jtfdGd d }||jk(d|jk(d|jk7d|jk7d|jtfd |jtfd y) NrNrWrRrFTcdkSrr!oursr+r@z-TestDate.test_mixed_compare..rr-cdkSrr!rAsr+r@z-TestDate.test_mixed_compare..rr-c eZdZy).TestDate.test_mixed_compare..SomeClassNrr!r-r+ SomeClassrErr-rFckSr/r!rBtheirsr+r@z-TestDate.test_mixed_compare..s S5[r-ckSr/r!rHsr+r@z-TestDate.test_mixed_compare..s US[r-)r8r)rr)r*rFrBrIs @@r+test_mixed_comparezTestDate.test_mixed_comparezsmmD!Q' 5) c5) 4( c4( )_5 )_5    u- #u- t, #t, )%89 )%89r-c|j|jj|j|jjyr/)rr8rrr2s r+rzTestDate.test_bools.  ))*  ))*r-cdD]}|j|dd}|jdd|zk7s.|j|jdd|ztjsc|j|jdd|zy)N)rrr[crirTrrz%Yz%04d%dz%4Y)r8rr)r has_strftime_extensions)r*rgrs r+test_strftime_y2kzTestDate.test_strftime_y2ksx6A aA&A zz$6A:-  D!14!8<22$$QZZ%6 C7r-cR|j}gd}||}|j||jd}dD]?\}}|dd}|||<||}|jd i||i} |j|| |dz }A|ddd}|jt|jd y) Nr*r)rZrUr[rQrrWrrNrUryr|rZr!r8r)rrr r*clsrbasermrBnewvalnewargsrgots r+ test_replacezTestDate.test_replacesmmDz t||~. )LD&1gGGAJG}H$,,0$0C   Xs + FA)4B *dll>r-cJGfddj}|ddd}|jd}jt||j |j dj |j dj |jdy)NceZdZfdZy)4TestDate.test_subclass_replace..DateSubclasscVjj|g|i|}d|_|SNrTr8rrrYrkwargsresultr*s r+rz.DateSubclass.__new__/...sDTDVD   r-NrGr_r`rr2sr+rra r-rrrVrT)r8rr0rr)rZr[r)r*rrurs` r+test_subclass_replacezTestDate.test_subclass_replaces 4==  $1 %jjdj# d3i. 4( A& A&r-cGfddj}d}j|}||iddi}j|j|j|jdj|jdj|j |j j|j d|j|jzdz y)Nc"eZdZdZfdZdZy)&TestDate.test_subclass_date..Cr}c|j}|jd}jj|g|i|}||_|SNrrpopr8rrrYrkwstemprrgr*s r+rz.TestDate.test_subclass_date..C.__new__Hxxz)...sBTBTB$  r-c:||jz|jzSr/)rZr[r*starts r+newmethz.TestDate.test_subclass_date..C.newmethstyy(4::55r-NrGr_r` theAnswerrr|r2sr+CrpsI  6r-rrrWr_rrTr}rV) r8r)rFr~rrcr|rZr[r*rrrrOs` r+rzTestDate.test_subclass_dates 6 6dmmT"&'1& * + A& #--/: R#((SYY*>*BCr-cFGfddj}d}d}d}||}j||j|jdt j |t dj}d|ffd |ffd |ffg}|D]\}} ||fD]x} jt| | 5t| |} | | } j| |j| |j| jddddzy#1swYxYw) NceZdZfdZy)CTestDate.test_subclass_alternate_constructors..DateSubclasscVjj|g|i|}d|_|Srcrdres r+rzKTestDate.test_subclass_alternate_constructors..DateSubclass.__new__/...sDTDVD   r-Nrir2sr+rr r-rri( z 2003-04-14rTrrdr fromisoformat base_obj_type constr_name) r8rr)rrcombiner timestampr.rgetattr) r*rrd_ord d_isoformatbase_drrr constr_argsbase_objconstrrus ` r+$test_subclass_alternate_constructorsz-TestDate.test_subclass_alternate_constructorss9 4== " t$ fl3 q)  fd1g . 8 8 :UH % re $ {n - )3 $K)62\\X.9";$X{;F-B))"l;$$R0$$RXXq1;;3)3;;s 8ADD cd}t|}tD]Z\}}}|j||}|j|}|j |||j t |t\y)Nr()rRrrrr)rrgrs r+test_pickling_subclass_datez$TestDate.test_pickling_subclass_datescT")7 %GYMM$.Eooe,G   T7 + OOJw = > *8r-c d}t|jts|dd}dD]/}|jt|j|dd|z|ddz1t|jtrG|j td5|jt dgt|zddddtdd D])}|j|ddt |gz|ddz+y#1swYBxYw) Ns 1995-03-25rW)9 rUrQ^bad tzinfo state arg$rrr ) rr8rrrrbytesrrg)r*rZ month_byteord_bytes r+test_backdoor_resistancez!TestDate.test_backdoor_resistances$--28D5J   i)-bqJ)>ab)I K6 dmmX .'' 3KL eQC#d)O4e<Ma H MM$r(UH:%66abA B %MLs )C00C9cgd}|D]w}|j|}|j}|j|5|jj|j}|j ||dddyy#1swYxYw)N)rrr)rTrUr_r~rr)rNrUryrzrr)rzrWrQirRr )dt_strr8rr.rr))r* base_datesdt_tuplerurdt_rts r+test_fromisoformatzTestDate.test_fromisoformat4sy #H)B\\^FV, 33BLLNC  U+-,#-,s .DateSubclassNrr!r-r+rrlrr-rrrr_)r8rrr)r*rrurs r+test_fromisoformat_subclassz$TestDate.test_fromisoformat_subclassksH 4== $B '**2<<>: e\2r-cgd}|D];}|jt5|jj|ddd=y#1swYHxYw)N)rr z 009-03-04 123456789z 200a-12-04z 2009-1a-04z 2009-12-0az 2009-01-32z 2009-02-29z 2019-W53-1z 2020-W54-1z 0000-W25-1z 10000-W25-1z 2020-W25-0z 2020-W25-8u20090228)rrr8rr*bad_strsbad_strs r+test_fromisoformat_failsz!TestDate.test_fromisoformat_failsusD & G"":. ++G4/. ..s AA cddtjdg}|D];}|jt5|jj |ddd=y#1swYHxYw)Ns 2009-03-01z 2009-03-01ioStringIOrrr8rr* bad_typesbad_types r+"test_fromisoformat_fails_typeerrorz+TestDate.test_fromisoformat_fails_typeerrorsP"D"++l*CD !H""9- ++H5.-"-- AA# c2ddddddddd d d d d tddftddfg}|D]g}|j|5|j|}|j }|jj |}|j ||dddiy#1swYtxYw)N)rrWrQ)rrrU)irr )rrrU)rrrr)r~rr)rNrr)rNrrr)rzrrr)r'rrrrr) datecomps)rrr.r8rfromisocalendarr))r*datesrdobjisocal d_roundtrips r+test_fromisocalendarzTestDate.test_fromisocalendars              aO b"  $I 2$t}}i0))+;dmm;;VD   {3 3222s A B  B cgd}|D]T}|j|5|jt5|jj|ddddddVy#1swYxYw#1swYmxYw)N) )rrr)rr r)r6r)rrr)rrr )rr)rrr)r\rr)rrr)irr)rr)rrr)rrrr)r.rrr8r)r*isocalsrs r+!test_fromisocalendar_value_errorsz*TestDate.test_fromisocalendar_value_errorssb  FV,&&z21DMM116:3-,22-,s"A+A A+A( $A++A4 cttdg}g}d}tdD]<}|D]5}t|}|||||<|j t |7>|D]T}|j |5|jt5|jj|ddddddVy#1swYxYw#1swYmxYw)Ncyr/r!)xs r+r@z;TestDate.test_fromisocalendar_type_errors..sdr-)rrrrQr) rr(rglistrrr.rrr8r)r* err_txformersrrZrmtxformererr_valrs r+ test_fromisocalendar_type_errorsz)TestDate.test_fromisocalendar_type_errorss    qA)t*%gaj1 uW~.* FV,&&y11DMM116:2-,11-,s$4C B7$C7C <CC N)1rGr_r`rr8rrrorwrrrnrrrrrrrrrrrrrrrrr&rr6rrKrrQr^rmrrrrrrrrrrrrr!r-r+rWrWQsH$ &-^A2B,$204d A %&. A:LG< ,$,L6@( T 5: ?E-2C 4%?N:4+ D?* 'D4*2X?C4,(!3F35264<;,;r-rWceZdZdZy)SubclassDatetimerNrSr!r-r+rrrUr-rcdeZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZej6ddZdZej6ddZdZdZ dZ!dZ"dZ#e$jJe&jNd k(d!d"Z(e$jJe&jNd k(d!d#Z)d$Z*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0d+Z1d,Z2ej6d-d.Z3d/Z4d0Z5d1Z6d2Z7d3Z8d4Z9d5Z:d6Z;d7Zd:Z?d;Z@d<ZAy=)> TestDateTimec|jddddd}|j|jd|j|jd|j|jd|j|j d|j|j d|j|jd|j|jdy)NrYrQrrr r8r)rZr[rrarrrerts r+rz"TestDateTime.test_basic_attributess ]]4Ar1 - $' 1% # "% A& A& +r-c |jddddddd}|j|jd|j|jd|j|jd|j|j d|j|j d|j|jd|j|jdy)NrYrQrrr@rrts r+test_basic_attributes_nonzeroz*TestDateTime.test_basic_attributes_nonzeros]]4Ar2r4 8 $' 1% # "% B' B' .r-c |jddddddd|jjfD]}t|}|j|j d|d d}t |}|j |||j|j|j|j|j|j|j|j}|j ||y) NrrUrQrWrRrYrTrr)r8rrrr?rr)rZr[rrarrrer^s r+rzTestDateTime.test_roundtrips==Aq!Q15==$$&(BRA OOALL5 6!"Aq'C   R %--266 "BII "0C   R %(r-c |jddddddd}|j|jd|j|jdd|j|jd d |j|jd d |j|jd d|j|jdd|j|jdd|j|jdd|j|jdd|j|jdd|j|jdd|j|jd dd|jt|jd|jt|jd |jt |d |jdddddddt j}|j|jdd|jddddddd}|j|jdd |jdddddd}|j|jdd|j|jdd|j|jdd!|jddd}|j|jd"|j|jdd"|j|jd d#|jt |d#ttd$%d&}|jddd|}|j|jd'y)(NrrUrQrWrRrz0001-02-03T04:05:01.000123r z0001-02-03 04:05:01.000123z0001-02-0304:05:01.000123r u0001-02-0304:05:01.000123rtimespecz 0001-02-03T04rfz0001-02-03T04:05rz0001-02-03T04:05:01rPz0001-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) r8r)rrrrrr1rbrrs r+rzTestDateTime.test_isoformats9 MM!Q1aC 0 +GH S)+GH S)+GH V,.MN X.: < g6H i8:LM i8:OP n=?XY n=?[\ f57ST yACUV *akkEB *akkHE Q!=> MM!Q1aF8<.Acyrr!r2s r+rz+TestDateTime.test_format..A.__str__drr-Nrr!r-r+rr!crr-rceZdZdZy)#TestDateTime.test_format..Bcyrr!r s r+rz,TestDateTime.test_format..B.strftimekrr-Nr r!r-r+rr$jrr-rr r rs r+rzTestDateTime.test_format[sW ]]4B1a 5 r*CG4  # #I/E F MM# G    dAr1aC ( b)3/    dAr1aC ( b)3r73C   R]]3/S1A B   Q\\#. C0@ A   Q\\#. 4 #G Fs F  Fc Dddl}|jddddddd}|j|jd|jddd dddd}|j|j|j|j|j y) NrrYrQrUrRrzSat Mar 2 18:03:05 2002r)rr8r)rrr)r*rrs r+test_more_ctimezTestDateTime.test_more_ctimexs MM$1b!Q 4 $>? MM$2r1a 5 JDJJ{t{{1;;=/I$JKr-c ~|jdddddd}|jdddddd}|jdddddd}|j|||j||kD|jtddd d d d }t d }||z}|j||z ||j||ky) NrYrQrrrrrrrrrdr)r8r)rrr)r*rrOdt3rls r+test_tz_independent_comparingz*TestDateTime.test_tz_independent_comparingsmmD!Q1a0mmD!QAq1mmD!Q1a0 c" c "mmGRRR@ A &Bh sB' c "r-c Gddt}|jddddddd|dd}|jt|jdy) NceZdZdZy)DTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfoc0Gddt}|dS)NceZdZdZy)ZTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStrcyr/r!)r*rs r+rzbTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStr.replaces#r-N)rGr_r`rr!r-r+MyStrr1s$r-r3rB)r)r*rur3s r+ryzKTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tznames$C$V}$r-N)rGr_r`ryr!r-r+MyTzInfor.s %r-r4rrQrUrrB%Z)rbr8rrr)r*r4rs r+%test_strftime_with_bad_tzname_replacez2TestDateTime.test_strftime_with_bad_tzname_replacesI %{ % MM$1aAq(1f2E F )QZZ6r-c |jtdd|jtdd|jt|jtdz dd|jt|jtdzdd|jddd|jddd|jt|jddd|jt|jddd|jddd|jddd|jd dd|jt|jddd |jt|jd dd|jt|jd dd|jt|jd dd|jt|jddd|jt|jddd|jdddd|jdddd|jt|jdddd|jt|jdddd|jddddd|jddddd|jt|jddddd|jt|jddddd|jdddddd|jdddddd|jt|jdddddd|jt|jdddddd|jddddddd|jddddddd|jt|jddddddd |jt|jddddddd |jt|jdddd|jt|jdddd|jt |jddddddddd y)NrrNrrr rUryrzr{r r|r}r~rrrr r+rrSr&rfold)r8rrrrrr2s r+rz+TestDateTime.test_bad_constructor_argumentss gq!$ gq!$ *dmmWQY1E *dmmWQY1E dAq! dB" *dmmT1a@ *dmmT2qA dAr" dAr" dAr" *dmmT1bA *dmmT1bA *dmmT1bA *dmmT1bA *dmmT1a@ *dmmT1bA dAr1% dAr2& *dmmT1b"E *dmmT1b"E dAr2q) dAr2r* *dmmT1b"bI *dmmT1b"bI dAr2r1- dAr2r2. *dmmT1b"b"M *dmmT1b"b"M dAr2r2q1 dAr2r2v6 *dmm2r2r2 7 *dmm2r2r! # *dmm2B  0 *dmm2A  / )T]]2r2r1dA ?r-c|jdddddd}|jdddddd}|j|||jt|t||di}d||<|jt|d|j||d|j||d|jd ddd d d}|jd ddd d d}|j|||jt|t||di}d||<|jt|d|j||d|j||dy) NrNrrrr rrUr|rrRrrs r+rzTestDateTime.test_hash_equalitysN MM$BB 3 MM$BB 3 A a$q'*!fA S1% Q# Q# MM$QQ 3 MM$QQ 3 A a$q'*!fA S1% Q# Q#r-c  |jddd|jddd}|z }|j|jdtt dddz|j|j d|j|j d|jddd d d tddd }tdd }tdtd}|j|z|jddd dd |j|z|jddd dd |jd|zz|jddddd |j|z |jddd dd |j| z|jddd dd |j|z | z|jd|zz |jddddd |jz|jdddd d |jz |jdddd d |j|z|jdddd d |j|z |jdd dd d |jd|zz|jdddd d |jd|zz |jdddd d |j|zz ||jzz |j|zz ||j|zz ||j|z z | |jz z  |j|z z | |j|z z | |j|zz | |jzz  |j|zz | |j|zz | |j|z z ||jz z |j|z z ||j|z z ||j|z|z|zz|jddddd dd |j|z|z|zz|zz|z|z|j|z|z|zz |jdd ddddd|j|z|z|zz |z z |z |z dD]j|jtfd|jtfd|jtfd |jtfd!l|jtfd"|jtfd#|jtfd$|jtfd%|jtfd&|jtfd'|jtfd(|jtfd)y)*NrYrrrrrWrrQrUr;rYrTrrTr'rrr7rrrrrr|rrRrrYrpczSr/r!rssr+r@z0TestDateTime.test_computations..$ rtr-cz Sr/r!rssr+r@z0TestDateTime.test_computations..% rtr-czSr/r!rssr+r@z0TestDateTime.test_computations..& rtr-cz Sr/r!rssr+r@z0TestDateTime.test_computations..' rtr-cz Sr/r!rsr+r@z0TestDateTime.test_computations..* rr-czSr/r!rsr+r@z0TestDateTime.test_computations.., rr-czSr/r!rsr+r@z0TestDateTime.test_computations..- rr-czSr/r!rsr+r@z0TestDateTime.test_computations... rr-czSr/r!rsr+r@z0TestDateTime.test_computations../ rr-czSr/r!rsr+r@z0TestDateTime.test_computations..0 rr-czSr/r!rsr+r@z0TestDateTime.test_computations..1 rr-czSr/r!rsr+r@z0TestDateTime.test_computations..3 rr-r) r*rjrmillisecrarrirrms @@@r+rnzTestDateTime.test_computationss MM$2 & MM$2 &s FStT11E-F$FG q) **A. MM$1b! ,Q4(D!l| T4==q!R#CD 4==q!R#CD RWdmmD!Q1&EF T4==q!R#CD $DMM$1b!$DE T1u9- RWdmmD!QA&FG S$--aB"BC S$--aB"BC T4==q!R#CD T4==q"b!#DE RWdmmD!QA&FG RWdmmD!QA&FG !d(a. !c'Q, !d(a. !h,!+X6 !d(a$/ !c'Q- !d(a$/ !h,!+hY7 a$h$/ a#g- a$h$/ a(l+hY7 a$h. a#g, a$h. a(l+X6 dSj4/(:;tQB1dC E dSj4/(:;H+t3x? A dSj4/(:;tQB2vF H dSj4/(:;H+t3x? AA   i 5   i 5   i 5   i 5  )_5 )_5 )_5 )%56 )%56 )]3 )^4 )]3r-c d}|j|}tD];\}}}|j||}|j|}|j ||=|j |j |j dy)NrYrTrr7rrrUr)rs r+rzTestDateTime.test_pickling5 sz)t}}d#)7 %GYMM$.Eooe,G   T7 +*8 *D,>,>q,ABr-c r|jddddddd}ttjdzD]}tj||}tj |}|j |jd|j |jd|j |jdy) NrrUrTr0rir) r8rgrHIGHEST_PROTOCOLrrr)rZr[r)r*rirrrjs r+test_more_picklingzTestDateTime.test_more_pickling> s MM$1b"b& 9622Q67E Q&A QA   QVVT *   QWWa (   QUUA & 8r-cd}t|}tD]Z\}}}|j||}|j|}|j |||j t |t\y)NrK)rrrrr)rrgrs r+test_pickling_subclass_datetimez,TestDateTime.test_pickling_subclass_datetimeG sd)&)7 %GYMM$.Eooe,G   T7 + OOJw0@A B *8r-cgd}d}|j|}|D])}tD]}||d}|j|| +y)N)s@cdatetime datetime (S'\x07\xdf\x0b\x1b\x14;\x01\x00\x10\x00' tR.s#cdatetime datetime (U  ;tR.s$cdatetime datetime U  ;R.)r-rr.r7rrrLr/r0r2r4s r+r6z!TestDateTime.test_compat_unpickleP sP  . 4==$'D%x8  (3&r-cgd}|j|}|j|}|j|||j||k|j||k\|j||k7|j||k|j||kDt t |D]}|dd}||dz||<|j|}|j||k|j||kD|j||k|j||k\|j||k7|j||k7|j||k(|j||k(|j||kD|j||k|j||k\|j||ky)N)rNrryr7rrrdr)r8r)rrrgr)r*rrrrmr\s r+test_more_comparezTestDateTime.test_more_compareb s2 T]]D ! T]]D ! R  b! b! r" b! b!s4y!A1gGa1GAJ(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|j|j|j|j|j|jyr/) r)rrZrr[rrr rar!rr"r)r*rr]s r+verify_field_equalityz"TestDateTime.verify_field_equality s ))3884 #))4 ))3773 ))3884 #**5 #**5r-cddl}|j}|j|}|jj|}|j ||yNr)r localtimer8rrWr*rrrr]s r+rzTestDateTime.test_fromtimestamp sF TYY[!4>>"%mm))"- ""8S1r-cbddl}|jj|jy)Nr)r)rr8r)r*rs r+test_fromtimestamp_keyword_argz+TestDateTime.test_fromtimestamp_keyword_arg s$ ##idiik#:r-cddl}|j}|j|}|jt5|jj |}ddd|j |y#1swYxYwrY)rgmtime assertWarnsDeprecationWarningr8utcfromtimestamprWr[s r+test_utcfromtimestampz"TestDateTime.test_utcfromtimestamp sb TYY[4;;r?   0 1--004C2 ""8S12 1s A44A=EST+05EDT,M3.2.0,M11.1.0c |jddd}|j|jd|jddddddd}|j|jd|jddd dd }|jd }|j|jj |j|t d z |j|jj |j|t d z|jdd ddd }|j|jj |j||jddd|jd ddfD]>} |j}|j|jj ||@y#t $rYMwxYw)Nrrg@rUrQrW6@rkrr r8ri'r)r8r)rrrrr)r*rt0rrs r+test_timestamp_naivez!TestDateTime.test_timestamp_naive s MM$1 % 0 MM$1aAq 1 ; =]]4B2 . ZZQZ  44R\\^Dia00 2 44R\\^Dia00 2 MM$Aq" - 44Q[[]CQG--!A& d2b(ABA DKKM  !.utcfromtimestamp s7!!"455t}}55tFvF655s =Argư>gưrr&g:0yEg1E2gHzri#gHz>g1E2>g<"2?gP?rrr)r8rr)rreOSError)r*rbftsrzr minus_oners` r+rz&TestDateTime.test_microsecond_rounding s GMM//$&Cq6D   T[[! ,   T--q 1d)C 8J   !1!126  !6!6?J  D)J  I.J  D)L  2.  7D A   Q %D A   Q $JA   QXXq )   Q]]F 3IA   QXXq )   Q]]A .F A   QXXq )   Q]]D 1K&  s,H22 H?>H?c|jd5|jjjtj }|j }|j|dddd|jd5|jjjtj d}|j }|j|ddddy#1swY{xYw#1swYyxYw)Nz minimum UTCrlw#o9z maximum UTCrrreg MB) r.r8rrrr1rr)r)r*min_dtmin_tsmax_dtmax_tss r+test_timestamp_limitsz"TestDateTime.test_timestamp_limits s \\- (]]&&..hll.CF%%'F   V\ 2 )\\- (]]&&..hll;</>F%%'F   V^ 4) () () (sAC#AC/#C,/C8c |jjd|jj t dz}|j}|jjjd}|jjt dz jt d d d jz}d ||fd ||ffD]P\}}}|j|||5|jj|}|j||dddRd|t ddjz fd|t djz fd|t djzfd|t djzfg} | D]`\}}|j||5|jttf5|jj|ddddddby#ttf$r|j dYwxYw#1swYexYw#1swYHxYw#1swYxYw)NTest not valid on this platformrrQrrerrrrr%minimummaximumrrToo small by a littlerrToo small by a lotrToo big by a littleToo big by a lotr)r8rrmrrHrrrrrrr.r)rr) r*rrrsrtru test_namerrrrs r+test_fromtimestamp_limitsz&TestDateTime.test_fromtimestamp_limits s = MM ' ' 3 ""YA%66!!#""**q*9==$$yr'::EEG"b"=KKMNFF+FF+* %YHiBB44R8  2CB * %fyar/J/X/X/Z&Z [ !6I3,?,M,M,O#O P "FYA->-L-L-N$N O )*=*K*K*M!M N  (MIriB/&& M'BCMM//3D0/(;' = MM; < = CBDC0/sAH).H)7IH6/I H&%H&)H3 6H? ;II c |jt5 |jjdddd|jjjtj}|j}|jjjdtj}|j}d||jdfd||jdffD]o\}}}|j|||5|jt5 |jj|}ddd|j|dddqd |d z fd |t!d j#z fd|d zfd|t!d j#zfg} | D]~\}}|j||5|j%t&t f5|jt5|jj|dddddddddy#tt f$r|j dYwxYw#1swY$xYw#tt f$r%} |j t| Yd} ~ Ud} ~ wwxYw#1swY_xYw#1swYxYw#1swYxYw#1swYxYw#1swY)xYw)Nrxryrrrerr{r|r}r~rrrrQrrr)r`rar8rbrmrrHrrrr1rrr.rr)rrrr) r*rrrsrtrurrrrexcrs r+test_utcfromtimestamp_limitsz)TestDateTime.test_utcfromtimestamp_limits2 sq   0 1 A ..z:2 ""**(,,*?!!#""**q*N!!#FFNN$N$?@FFNN$N$?@* %YHiBB%%&890!%!?!?!C:   2CB * %fqj 1 !6I3,?,M,M,O#O P "FQJ / )*=*K*K*M!M N  (MIriB/&& M'BC))*<= 66r:>D0/(=]+ A ?@ A2 1($]30 c#h//0:9CB(>=DC0/sIH. J&J!I"<J&K !J?7J3 J?K . IIIII"J 1J JJ JJ# J&&J0 3J< 8J??K K  K chdD]-}|jt|jj|/yrrrs r+rz&TestDateTime.test_insane_fromtimestamp\ rr-cdD]K}|jt5|jt|jj |dddMy#1swYXxYwr)r`rarrr8rbrs r+test_insane_utcfromtimestampz)TestDateTime.test_insane_utcfromtimestampe sK $F!!"45!!-1O1O"(*65$55s ,AA win32z*Windows doesn't accept negative timestampsc:|jjdy)N)r8rr2s r+!test_negative_float_fromtimestampz.TestDateTime.test_negative_float_fromtimestampo s ##E*r-c |jt5|jjd}ddd|j |jdddddddy#1swY1xYw) Nrirrrrri~)r`rar8rbr))r*rs r+$test_negative_float_utcfromtimestampz1TestDateTime.test_negative_float_utcfromtimestampu sX   0 1 ..u5A2 DMM$BBFKL2 1s A""A+cddl}td}tdD]}|jt5|j j }ddd|jt5|j j|j}dddtz |ksn|jtz |y#1swYxYw#1swYIxYw)NrrrrQ) rrrgr`rar8utcnowrbrfassertLessEqual)r*r tolerancerfrom_nowfrom_timestamps r+ test_utcnowzTestDateTime.test_utcnow{ sa( 1XE!!"45==//16!!"45!%!?!?  !L6>H,-: S(!:;YG6565sC,+CC C( c|d}d}tj|j||}|jj||}|j |||j t ||j|j t ||jgd}|D]p\}}|j||5tj|j||}|jj||}|j ||dddr|jj}|j |ddjdtz|j |ddjd tz|j |d djtdd d  ddtj tjdffD]\}}|dkrd} | } nd} |} t| dzd\} } dj| | | |} || d}|j |jt||j |j|d\} }|| |}|j |jdt zdtzz|j |jd|j |j#|| |j |ddj$d|j't(5|ddddd|j't(5|ddddd|j't(5|dddddy#1swYxYw#1swYexYw#1swYJxYw#1swYyxYw)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)stringrz+0002%zrUz-0002rSz-00:02:01.000003rrQ)rfrr)rr)rGMTrrrrSz{}{:02d}{:02d} {}%z %Zr)z +1234 UTCrrrrr5z-2400z-000z) _strptime_strptime_datetimer8strptimer)r0rr.rvMINUTErrrryrrrrrrr)r*rrrr]inputsr tzsecondsryrrrrfdtstrrurs r+ test_strptimezTestDateTime.test_strptime s *'// vvNmm$$VV4 3' d8ndmm4 d3i/  %NFFVF;$77 v8>@mm,,VV<  3/ <;%==)) '40::>/5<<?!C"E Iv1}$*##GRK4NE7'..tUGVLE%)B   R\\^Yy-I J   RYY[& 1"E* s eS ! dR&[)@A e, S)51 %.55t<   z *HWd,C *   z *HVT,B *   z *HS$,? * *S<;N+ * * * * *s1=AN , N N&: N2 N N#&N/2N;c ^|jj}|jt5|dd}ddd|jdddddd}|jdddddd}|jdddd d d }|jddd d d d }d d d|fd dd|fddd|fddd|fddd|fddd|fddd|fddd|fddd|fd dd!|fg }|D]G\}} } } d"|z}|j || | | #5|| | }|j || |$dddIy#1swYxYw#1swY`xYw)%Nz01/02/3 04:05:06z%d/%m/%y %H:%M:%SrrUrrWrRrYrrOz 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)r8rrrr.r)) r*rnewdaterrOr*dt4rrrrrs r+test_strptime_single_digitz'TestDateTime.test_strptime_single_digit s==))   z *13FGG+mmD!Q1a0mmD!Q1a0mmD!Q1a0mmD!RAq1 ?$7 = ?$7 = %':C @ %':C @ %':C @ $&8 = $&8 = 9j# . :z3 / :z3 /  /5 *FFFF)F2FV%+%+%+-#662  &f = --/5)+ *,--s D.D#D #D, c|jdddddd}|j|jd|j|j|j|j|j |j |j|j|j|jt|jddjz dzd f |j}|j|j|j|j|j|j|j|j|j |j|j|j |j|j |j|j|j"|j|j|j$|j|j|j&|jt|jddjz dz|j|j(d y) NrzrrrYr!) rzrrrYrrrWr`r rr )r8r)rrZr[rrarrrrcrrrrr r!r"r#r$r%)r*rtts r+test_more_timetuplez TestDateTime.test_more_timetuple s MM$B2r 2 (MN &&!''155&&!((AHH))+++-$qvvq!*<*F*F*HH1L   [[] QVV, AGG, QUU+ QVV, AHH- AHH- QYY[1 Q[[]%)!&&!Q%7%A%A%C&DFG&H I b)r-c r|jddddddd}|j|jdd d D]z\\}}}tt d ||  }|j | }|j|jdd|z|j|jdd|z|y)NrzrrrYrr/z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)))rrz 33.000123))rr33rU)rrrrrz-0200z%:zz-02:00:)r8r)rrrr)r*rrrlrrs r+test_more_strftimezTestDateTime.test_more_strftime s MM$B2r2 6 $=>$B DFJGQQ91abIIJB  $A   QZZ-w{ ;   QZZ. A > Gr-c |jddddddd}|jd}|jd }|j|jd d |j|jd d |d ||j|jd |d |d |j|jdd|j|jdd|j|jdd|d||j|jd|d|d|j|jd|d|d|j|jdd|j|jd|d||j|jdd|j|jd|d||j|jdd|j|jdd|j|jdd|d||j|jd|d|dy)NrzrrrYrrrz%cz%B🐍u 💻%c🐍%B💻u %c💻%B🐍u %c%Bu %c%Bu %c%Bu %c%B u%c%Brz%c%Bz%c%Br8rr)r*rs1s2s r+test_strftime_specialz"TestDateTime.test_strftime_special sK MM$B2r2 6 ZZ  ZZ  L1<@ $>?:bTQ[\^[_A`a $>?B4zRTQUU_A`a H-x8 H-x8 $676"VB49PQ $67B4vbT9PQ $67B4vbT9PQ N3^D $67B4|B49PQ $>?A[\ $BCtKcdfcgEhi D)40 I. : J/2bTB4A J/B4r"RAr-c |jddddddd}|j|jtddd|j|jtddddy)NrYrQrWr'-)r8r)rrrts r+ test_extractzTestDateTime.test_extract% s\ ]]4Ar2q$ 7 Dq!$45 DRD$9:r-c tddd}tdddd}|jddddddd}|jj}|||}|j |||||}|j |||j ||j|j ||j|j |||j|j|j t ||j t |||j t ||||j t |||d|j t |||dd |j t |d d |j t ||d |j t |d ||||tj}|j|jtj|||tj }|j|jtjt}|||}|j |j||j |j|y) NrYrQrWr'rr)rrrrUrrr) rrr8rr)rrrr1r0r)r*rrrrrus r+ test_combinezTestDateTime.test_combine* s q!  RD !==q!RQ=--'' Q] X& !! $ X& BGGI& BGGI& WRWWY :; )W- )Wa0 )Wa3 )WaA6 )WaAq9 )Wff= )Wa8 )Wfa8Q8<< ( bii. Q(,, / bii. F R^ A& A&r-cR|j}gd}||}|j||jd}dD]?\}}|dd}|||<||}|jd i||i} |j|| |dz }A|ddd}|jt|jd y) N)rrUrQrWrRrYrTr)rSrTrUrarRrrYrrTrerrrNrUryr|rVr!rWrXs r+r^zTestDateTime.test_replaceL smm$Dz t||~. 1LD&1gGGAJG}H$,,0$0C   Xs + FA14B *dll>r-EDT4c*|jj}tdd}|jt t dd}|j |j||jt|j|||jt|j||j|t ddz}|j |j|||j |j| |Gd d t}|}|jt|j||j |j|j||Gd d t}|}|jt|j|Gddt} | } |j| } |jt5| jdddy#1swYyxYw)N,0044rXrEDTrrWrrceZdZdZdZy)+TestDateTime.test_astimezone..Boguscyr/r!rts r+rvz5TestDateTime.test_astimezone..Bogus.utcoffsetr Dr-ctdSrYrrts r+r{z/TestDateTime.test_astimezone..Bogus.dsts s il2r-NrGr_r`rvr{r!r-r+Bogusrq s 0 2r-rceZdZdZdZy)/TestDateTime.test_astimezone..AlsoBogusctdSrYrrts r+rvz9TestDateTime.test_astimezone..AlsoBogus.utcoffsety s IaL%8r-cyr/r!rts r+r{z3TestDateTime.test_astimezone..AlsoBogus.dstz dr-Nrr!r-r+ AlsoBogusrx s 8 *r-rceZdZdZdZy),TestDateTime.test_astimezone..Brokencyrr!rts r+rvz6TestDateTime.test_astimezone..Broken.utcoffset sAr-cyrr!rts r+r{z0TestDateTime.test_astimezone..Broken.dst ar-Nrr!r-r+Brokenr~ s - 'r-r) r8rrbrrrr) astimezonerrrr) r*rurdt_utcdt_frbogralsobogrbroken dt_brokens r+test_astimezonezTestDateTime.test_astimezonee s ]]    F #8IB,?#GH &1 )R]]Aq9 )R]]B7zzz#ia&DD q)40 !,d3 3F 3g *bmmS9 3/::1=tD + ++ *bmmW= (V (JJfJ-   y )  "* ) )s /H  HcGfddj}d}j|}||iddi}j|j|j|jdj|jdj|j |j j|j d|j|jz|jzdz y)Nc"eZdZdZfdZdZy).TestDateTime.test_subclass_datetime..Cr}c|j}|jd}jj|g|i|}||_|Srrrsrus r+rz6TestDateTime.test_subclass_datetime..C.__new__ rxr-cT||jz|jz|jzSr/)rZr[rrzs r+r|z6TestDateTime.test_subclass_datetime..C.newmeth s#tyy(4::5 CCr-Nr}r2sr+rr sI  Dr-r)rrWr_rr )rrTr}rV) r8r)rFr~rrcr|rZr[rrs` r+rz#TestDateTime.test_subclass_datetime s D D'dmmT"&'1& * + A& #--/: R#((SYY*>*-**+578+9 :r-c Gfddj}d}d}d}||}j||j|jd|j }d|f|fd|t j f|jt j fd|f|fd |f|fd |d f|fd t|d dt|ddf|fg}|D]\}} } ||fD]} jt| |5t| |} |dk(r$jt5| | } dddn| | } j |j| | j| jddddy#1swYVxYw#1swYxYw)NceZdZfdZy)TTestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclasscVjj|g|i|}d|_|Srcrdres r+rz\TestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclass.__new__ rr-Nrir2sr+r r rr-r )rrWr_rr rbz2003-04-14T12:30:15.123456gh͏TMArTrrbrrz%Y-%m-%dT%H:%M:%S.%frrrQr)r8rr)rrrr1rrrr.rrr`ra)r*r rrutc_tsrrrrrrr constructorrus` r+-test_subclass_alternate_constructors_datetimez:TestDateTime.test_subclass_alternate_constructors_datetime s t}} 12 "!4( f&67 q)   reV , r8<<0%00> @ &F 3 {nf 5 +'=> G tAay)4ab?;V D  3= .Kh-v6\\X.9";")(K"@K"&88!--.@A!,k!:BBA)+6))".>?$$R2$$RXXq1#;;73=BA ;;s%.'FE6 AF6E? ;FF c Gfddj}ddifddifdddtjifdddttd d ifg}|D]\}}}j |5t ||}|dk(r'j t5|d i|}dddn|d i|}j|j|jd dddy#1swYBxYw#1swYxYw) NceZdZfdZy)8TestDateTime.test_subclass_now..DateTimeSubclasscVjj|g|i|}d|_|Srcrdres r+rz@TestDateTime.test_subclass_now..DateTimeSubclass.__new__ rr-Nrir2sr+r r rr-r rrnow_utcr now_fixedr rrrTr!) r8rr1rr.rr`rarr)r)r*r rrB meth_namerfrrus` r+test_subclass_nowzTestDateTime.test_subclass_now s t}} E2  x $ hll3 4 %$1De(L!M N  (2 #D)Vd# !19=())*<=#-f->= )&)B%%b*:;  1-$#(2>=$#s$+'C1 C%?C1%C. *C11C: cGdd|j}|ddd}|dddd}d|jdd fd|jddfg}|D]u\}}}|j||5|jt |||j |j d|j |j|dddwy#1swYxYw) Nc eZdZy)ATestDateTime.test_subclass_replace_fold..DateTimeSubclassNrr!r-r+r r rr-r rkrr8 self.replacerlrVr)r8rr.r0rr)rZr9)r*r rurOrrBrr9s r+test_subclass_replace_foldz'TestDateTime.test_subclass_replace_fold s t}} dAq )tQ2RZZTZ2A 6 S[[d[3Q 7 *OD#td. d3i)9:  40  40/. *..s 2ACC c gd}gd}ddg}dtjttdttdg}|Dcgc]'}|D] }|D]}|jg||d|i")}}}}|D]c} |D]\} | j | } |j | 5|jj | } |j| | ddd^eycc}}}w#1swYrxYw) N)rrrr)rrrr)rrrih)rrrG)rr rr rrr rrUrrr)rr1rr8rr.rr)) r*r base_times separatorsr date_tuple time_tuplerdtsrurrrs r+test_fromisoformat_datetimez(TestDateTime.test_fromisoformat_datetime s   3Z IB/0IA./1 ",#!+:!+:!3t}}BjB:BcB"C!+C!+ # B!  -\\\. MM77>E$$R//." #/.s ,C&+.C--C6 c d|jddddddd}tdtdtd d tdd d tddddg}||Dcgc]}d|z c}z }dtjttdg}||Dcgc] }t|c}z }|D]g}|j |}|j }|j |5|jj|}||k(sJ| dddiycc}wcc}w#1swY~xYw)Nrrr rpQrRrrUrYr.rrr%rWrrbr'r rrtstrr8rrr1rrr.r) r*base_dtrrVrrrurrs r+test_fromisoformat_timezonez(TestDateTime.test_fromisoformat_timezone' s&--b"b"b&A A   2 Ar * BB 7 Aq!& I    2 "b2g 22 IA./1 959RHRL955C,BLLNE5) 33E:U{)E){*) 3 6 *)s DD!((D&&D/ c gd}|D]s}|jddddddd}|j| }|j| 5|jj|}|j ||ddduy#1swYxYw) N) rr€uʁuᛇu時rr rrrrrriurrrr*rrrurrs r+test_fromisoformat_separatorsz*TestDateTime.test_fromisoformat_separators@ s CtQBB?BLLSL)EE* 33E:  U++* +*s .A>>B cddg}|D]q}|jddddd}|j|}|j| 5|jj|}|j ||dddsy#1swY~xYw) Nrrrrrrrrrrr s r+test_fromisoformat_ambiguousz)TestDateTime.test_fromisoformat_ambiguousQ s~3Z CtQB3BLLSL)EE* 33E:  U++* +*s .A<<B c "ddg}dtjttdttdttddg}gd }t|D]\}}|D]}|D]}|d k(rd |dd zz}|d d|fz}|j|d d |zd|i} | j |} |j | 5|jj| } |j| | dddy#1swYxYw)N)rrrWrr;rrb)rrrWrr;rrr rrUrYr.rrrfrrPrrPrTrrWrrr rr1r enumerater8rr.rr)) r*datetime_basesr timespecsiprrrnew_microsecondsrurrs r+test_fromisoformat_timespecsz)TestDateTime.test_fromisoformat_timespecs\ s , ')IB/0IA./IAr:;= 5  *FB .H^++/8A;$3F+G(#+Aa=4D3F#F&!QV)=KsKBLL"L5EE2 $ ; ;E B((U332!/+32 .D D ctj}ttdd}ttdd}ttdd}gd|jd dd d d fd |jd dd d d fd|jd dd d dfd|jd dd d dfd|jd dd d ddfd|jd dd d ddfd|jd dd d dddfd|jd dd d dddfd|jd dd d dddfd|jd dd d dddfd|jd dd d dddfd|jd dd d dddfd|jd dd d dddfd|jd dd d dddfd|jd dd!d d"d#d$fd%|jd dd!d d"d#d&fd'|jd dd d dddfd(|jd dd d d fd)|jd dd d d fd*|jd dd d dfd+|jd dd d ddfd,|jd dd d ddfd-|jd dd d dddfd.|jd dd d dddfd/|jd dd d dddfd0|jd dd d dddfd1|jd dd d dddfd2|jd dd d dddfd3|jd dd d dddfd4|jd dd d dddfd5|jd6dd fd7|jd6d8d9d:d fd;|jdd?d fd@|jd d8dAd?d fdB|jdCd8dDd d fdE|jd dd d d fdF|jdCd8dDd8d fdG|jd dd d8d fdH|jd dd d8dIdAfdJ|jd d8dAd?dKfdL|jd d8dAd?dKfdM|jdz  tQ1a!@ Az  dAq!Q ? @ z #DMM$1aA$F G z !$--aAq!"D E z % ]]4Aq!Q 7 9z % ]]4Aq!Q 7 9z ' ]]4Aq!Q 7 9z * ]]4Aq!Q 7 9z * ]]4Aq!Q 7 9z "( ]]4Aq!Q 7 9#z &( ]]4Aq!Q 7 9'z *+ ]]4Aq!Q 7 9+z .( ]]4B2r6 : t}}T1aA> ??z @!$--aAq!"D EAz B dAq!Q B CCz D# ]]4Aq!Q 7 9Ez H# ]]4Aq!Q 7 9Iz L% ]]4Aq!Q 7 9Mz P% ]]4Aq!Q 7 9Qz T( ]]4Aq!Q 7 9Uz X& ]]4Aq!Q 7 9Yz \& ]]4Aq!Q 7 9]z `' ]]4Aq!Q 7 9az d dAq1 2ez f4==r2r1= >gz hDMM$1b!< =iz j4==r2r1= >kz lDMM$BA> ?mz n4==r2q!< =oz pDMM$1a; sz tDMM$1b!< =uz v dAq"b" E Fwz x dBB C Dyz z dBB C D{z | dAq"b" E F}z ~ dAq"b" E Fz @ dAq"b" E FAz B dAq!Q B CCz D dAq!Q B CEz F#DMM$1aA$F GGz H!$--aAq!"D EIz J#DMM$1aA$F GKz L* ]]4Aq!Q 7 9Mz P#DMM$1b"b$I JQz R* ]]4Ar2r5 9 ;Sz V#DMM$BB$G HWz X*4==r2r2+N OYz Z# ]]4Ar2r 2 4[z ^* ]]4Ar2r6 : <_z b ]]4RAc] : "?A B}z B( ]]4Aq!Qs] ; =Cz F& ]]4Aq!Q"*91+=">@ AGz L& ]]4Aq!Q"*92+>"?A BMz R0 ]]4Aq!Qs] C ESz V/ ]]4Aq!Qs] C EWz Z0 ]]4Aq!Qs] C E[z ^/ ]]4Aq!Qs] C E_z b0 ]]4RBs] ; =cz f/ ]]4RBs] ; =gz j/ ]]4Aq!Qs] C Ekz n0 ]]4Aq!Q"*9R+@"AC Doz x$, Ix 244Y?  232$,22s .a  a cgd}|D]V}|j|5|jt5|jj |ddddddXy#1swYxYw#1swYoxYw)N)rr z 2009.04-19T03z 2009-04.19T03z 2009-04-19T0az2009-04-19T03:1a:45z2009-04-19T03:15:4az2009-04-19T03;15:45z2009-04-19T03:15;45z2009-04-19T03:15:4500:00z 2009-04-19T03:15:45.123456+24:30z 2009-04-19T03:15:45.123456-24:30u2009-04-10ᛇᛇᛇᛇᛇ12:15u2009-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:00az2009-04-19T12:30:45.400 +02:30z2009-04-19T12:30:45.400 z2009-04-19T12:30:45. 400rr.rrr8rrs r+!test_fromisoformat_fails_datetimez.TestDateTime.test_fromisoformat_fails_datetime sa @ Gg.&&z2MM//83/. 22/."A-A!A-!A* &A--A6 cd}|jttjt |5|j j |dddy#1swYyxYw)Nu2018-01-0301:0113)rrreescaperr8r)r*rs r+"test_fromisoformat_fails_surrogatez/TestDateTime.test_fromisoformat_fails_surrogate# sE*  # #J $u+0F G MM ' ' .H G Gs AA#cd}|jj|}|j|jtj y)Nz2014-04-19T13:21:13+00:00)r8rr0rrr1)r*rrus r+test_fromisoformat_utcz#TestDateTime.test_fromisoformat_utc+ s1, ]] ( ( 0 bii.r-cGdd|j}|ddddddd ttd d  }|j|j }|j |||j ||y) Nc eZdZy)BTestDateTime.test_fromisoformat_subclass..DateTimeSubclassNrr!r-r+r rN2 rr-r rrr_rr rirrr)r8rrrrr)r)r*r rurs r+rz(TestDateTime.test_fromisoformat_subclass1 su t}} dBAr2v%-ib".M%NP!..r||~> U# e%56r-N)BrGr_r`rr8rrrrrrr(r+r6rrrnrrPrRr6rUrWrr]rcr run_with_tzrhrjrrvrrrrunittestskipIfrEplatformrrrrrrrrrrr^rrrrr rrr!r#r,r@rDrIrKrr!r-r+rrsH, /& *HX-<5:L #$ 73?j$.B4HC'C4$'B62; 2W34D5D6 ;W"*2#*2X5&%4N(;T&*X__S\\W,.Z[+\+ X__S\\W,.Z[M\M H"9@v >D*, ?B6; 'D?2W #!#@:632j.81$!0F*2," ,44D3L%9N// 7r-rc@eZdZeZej ddZy)TestSubclassDateTimeznot appropriate for subclassescyr/r!r2s r+rz#TestSubclassDateTime.test_roundtripA s r-N)rGr_r`rr8rPskiprr!r-r+rTrT> s%HX]]34 5 r-rTceZdZdZy) SubclassTimerNrSr!r-r+rXrXE rUr-rXceZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZy)TestTimec|jdd}|j|jd|j|jd|j|jd|j|j dy)Nrrr8r)rarrrers r+rzTestTime.test_basic_attributesL sb MM"a  $ 1% 1% *r-c |jdddd}|j|jd|j|jd|j|jd|j|j dy)Nrrrr\rs r+rz&TestTime.test_basic_attributes_nonzeroS sh MM"b"d + $ 2& 2& -r-cb|jdddd}t|}|j|jd|dd}t |}|j |||j|j |j|j|j}|j ||y)NrrUrQrWrr) r8rrr?rr)rarrre)r*rrrs r+rzTestTime.test_roundtrip\ s MM!Q1 % G  [12 abE !W B]]166188QXX==* Br-cgd}|j||j|}|j||j|k|j|k\|j|k7|j|k|j|kDt t |D]}|dd}||dz||<|j|}|j|k|j|kD|j|k|j|k\|j|k7|j|k7|j|k(|j|k(|j|kD|j|k|j|k\|j|kt D]'|jk(d|jk7d|jk(d|jk7d|jtfd|jtfd|jtfd|jtfd|jtfd |jtfd |jtfd |jtfd *y) NrrUrQrWrFTckSr/r!rsr+r@z)TestTime.test_comparing.. rr-ckSr/r!rsr+r@z)TestTime.test_comparing.. rr-ckDSr/r!rsr+r@z)TestTime.test_comparing.. rr-ck\Sr/r!rsr+r@z)TestTime.test_comparing.. rr-ckSr/r!rsr+r@z)TestTime.test_comparing.. rr-ckSr/r!rsr+r@z)TestTime.test_comparing.. rr-ckDSr/r!rsr+r@z)TestTime.test_comparing.. rr-ck\Sr/r!rsr+r@z)TestTime.test_comparing.. rr-) r8r)rrrgrrrr)r*rrrmr\rrs @@r+test_comparingzTestTime.test_comparingk s} T]]D ! T]]D ! R  b! b! r" b! b!s4y!A1gGa1GAJ(B OOBG $ OOBG $ OOB"H % OOB"H % OOB"H % OOB"H %   R2X &   R2X &   R"W %   R"W %   R2X &   R2X &""!jF   R6\5 1   R6\4 0   Vr\5 1   Vr\4 0   i)= >   i)< =   i)< =   i)= >   i)= >   i)< =   i)< =   i)= >!r-c\|jdd|jdd|jt|jdd|jt|jdd|jdd|jdd|jt|jdd|jt|jdd|jddd|jddd|jt|jddd|jt|jddd|jdddd|jdddd|jt|jdddd|jt|jddddy) Nrrr r+rrSr&r)r8rrr2s r+rz'TestTime.test_bad_constructor_arguments sJ a b! *dmmR; *dmmR; b! b" *dmmR< *dmmR< b"a  b"b! *dmmRR@ *dmmRR@ b"b!$ b"b&) *dmmRRD *dmmRRIr-c|jddd}|jddd}|j|||jt|t||di}d||<|jt|d|j||d|j||d|jddd}|jddd}|j|||jt|t||di}d||<|jt|d|j||d|j||dy)Nrr r;rrUrrRrrs r+rzTestTime.test_hash_equality s6 MM"b" % MM"b" % A a$q'*!fA S1% Q# Q# MM!a $ MM!a $ A a$q'*!fA S1% Q# Q#r-cb |jdddd}|j|jd|j|jt||j}|j|jd|j|jt||jd}|j|jd|j|jt||jd }|j|jd |j|jt||jd }|j|jd |j|jt||jd }|j|jd|j|jt||jd}|j|jd|j|jt||jd}|j|jd|j|jt||jdddd}|j|jdd|j|jdd|j|jdd|j|jdd |j|jd!d"|j|jd#d"|j t |jd$|j t |jd%|jdddd&}|j|jdd'|jdddd(}|j|jdd)|j|jd!d*|j|jd#dy)+NrWrRrrz04:05:01.00012300:00:00rzz00:00:00.000001rz00:00:00.000010rz00:00:00.000100rTz00:00:00.001000r\z00:00:00.010000順z00:00:00.100000rrrrb)rarrrerr12rfz12:34rz12:34:56rPz 12:34:56.123rz12:34:56.123456rmonkeyr rz 12:34:56.999rz 12:34:56.000z12:34:56.000000)r8r)rrrrrs r+rzTestTime.test_isoformat s MM!Q3 ' (9: A/ MMO  3 A/ MMaM ( (9: A/ MMbM ) (9: A/ MMcM * (9: A/ MMdM + (9: A/ MMeM , (9: A/ MMfM - (9: A/ MMr"RVM L g6= i8'B i8*E n=~N n=?PQ f57HI *akkHE *akkHE MMr"RVM L n=~N MMr"RQM G n=~N n=?PQ f5zBr-c Ldtdfdtdfdtdd fd td d d fdtddddfg}ddtjfdttdfg}||Dcgc]"\}}dD]\}}||zt||zf$c}}}}z }|jd dd}d}|D]M\} } |j | } || z} |j | 5| j | k(sJ dddOycc}}}}w#1swYbxYw)NrrRrr rUr rYr.rr rrr r%r rWrrbr'r rrrrz12:37:09rrr) r*rrrrVrrt_baserrrrrs r+rz TestTime.test_isoformat_timezone sH ia( ) ia( ) ia4 5 RD E  1aV\ ] ^    x|| $ x ! - .   ) ) " 5 h  3 4 5 5 )   r2q)"KFCc*AV#C#&{{}+++'&# '&s;'D 0DD# cl|jd}|jt|jdy)NrrrQ)r)r8rrrrs r+ test_1653736zTestTime.test_1653736s+ MMM # )Q[[a8r-c|jdddd}|j|jdd|j|jdd |jd |jd y#t$rYwxYw) NrrUrQrWz %H %M %S %fz01 02 03 000004rru%H%Mrr)r8r)rrrs r+rzTestTime.test_strftimes MM!Q1 % M24EF $56 C  JJ| $ $  "   sA<< BBc|jdddd}|jd}|jd}|j|jdd|j|jdd |d||j|jd |d |d|j|jd d |j|jd d |j|jd d |d ||j|jd|d |d |j|jd|d |d |j|jdd|j|jd|d||j|jdd|j|jd|d||j|jdd|j|jdd|j|jdd|d||j|jd|d|dy)NrrUrQrWz%I%p%Zz%Xru💻%I%p%Z🐍%Xru%I%p%Z💻%X🐍rru%I%p%Z%Xu%I%p%Z%Xu%I%p%Z%Xru%I%p%Z%Xru%I%p%Z%Xrrz %I%p%Z%Xz %I%p%Z%Xrrs r+rzTestTime.test_strftime_special)sI MM!Q1 % ZZ ! ZZ  L1<@ $BCzRTQUU_`b_cEde $BCt:VXUYYcEde H-x8 H-x8 $:;vbTPRt=TU $:;t6"V=TU $:;t6"V=TU N3^D $:;t?A[\ $FGB4OghjgkIlm D)40 I. : N3r"Rt_E N3t2bT_Er-c |jdddd}|j|jdt||j t d5|jddddGdd |j}|dddd}|j|jdd Gd d |j}|dddd}|j|jdt|d D]}|j|j||j ||j|j||j ||j|j|d y#1swYxYw) NrrUrQrWrrrceZdZdZy)TestTime.test_format..Acyrr!r2s r+rz'TestTime.test_format..A.__str__Mrr-Nrr!r-r+rrzLrr-rceZdZdZy)TestTime.test_format..Bcyrr!r s r+rz(TestTime.test_format..B.strftimeTrr-Nr r!r-r+rr}Srr-r)z%H %M %Sr )r*rrrirrjrs r+rzTestTime.test_formatDs? MM!Q1 % b)3q62  # #I/E F LL G    aAqM b)3/    aAqM b)3q62C   Q\\#. 3 @   Q\\#. 3 @   Q\\#. 4 #G Fs FF c |jt|jddddd|jt|jddddd|jt|jd ddd d |jt|jd ddd d |jt|jddd d dy)NrrUrQrWz01:02:03.000004rr z10:02:03.004000rrz00:02:03.400000rz12:02:03rrz23:15:00)r)rr8r2s r+rzTestTime.test_str_s T]]1aA679JK T]]2q!T:;=NO T]]1aF;<>OP T]]2q!Q78*E T]]2r1a89:Fr-c d|jjz}|jt|jddddd|z|jt|jddddd |z|jt|jd ddd d |z|jt|jd ddd d|z|jt|jddd d d|zy)NrrrUrQrWz%s(1, 2, 3, 4)rr z%s(10, 2, 3, 4000)rrz%s(0, 2, 3, 400000)rz %s(12, 2, 3)rrz %s(23, 15)rrs r+rzTestTime.test_reprfsT]]333 dmmAq!Q78)D0 2 dmmB1d;<-4 6 dmmAq!V<=.5 7 dmmB1a89'$. 0 dmmBAq9:%, .r-c|j|jj|j|j|jj|j|j|jjt |j |jj|jjkDyr/)rr8rrrrrr2s r+rzTestTime.test_resolution_infoss} dmm//? dmm//? dmm66 B  ))DMM,=,==>r-c d}|j|}tD];\}}}|j||}|j|}|j ||=|j |j |j dy)Nr7rrrLrUr)rs r+rzTestTime.test_picklingysz t}}d#)7 %GYMM$.Eooe,G   T7 +*8 *D,>,>q,ABr-cd}t|}tD]Z\}}}|j||}|j|}|j |||j t |t\y)Nr)rXrrrr)rrgrs r+test_pickling_subclass_timez$TestTime.test_pickling_subclass_timesc T")7 %GYMM$.Eooe,G   T7 + OOJw = > *8r-cgd}t|D]Z\}\}}|j|5|j|}tD]}||d}|j ||  ddd\y#1swYgxYw)N))s,cdatetime time (S'\x14;\x10\x00\x10\x00' tR.r)scdatetime time (U;tR.r)scdatetime time U;R.r)s,cdatetime time (S'\x14;\x19\x00\x10\x00' tR.r7rrrL)scdatetime time (U;tR.r)scdatetime time U;R.r)rmr/r0)r'r.r8r3r))r*rrmr5rrrrs r+r6zTestTime.test_compat_unpicklesu   )/OA|d"(4==$/)E#D8 *dll3? *dllHr-c,Gfddj}|dd}|ddd}d|jd d fd|jd dfg}|D]\}}}j||5jt ||j |j dj |jdj |jd j |j|dddy#1swYxYw) NceZdZfdZy)4TestTime.test_subclass_replace..TimeSubclasscVjj|g|i|}d|_|Srcrdres r+rz.TimeSubclass.__new__rhr-Nrir2sr+ TimeSubclassrrjr-rrr rr8r rrrrT) r8rr.r0rr)rarrr9)r*rrctime2rrBrr9s` r+rmzTestTime.test_subclass_replaces 4==  R$b"1-U]]]3Q 7 V^^^4a 8 *OD#td. d3i6  2.  R0  A.  40 /. *..s 3B D  D cGfddj}d}j|}||iddi}j|j|j|jdj|jdj|j |j j|j d|j|jzdz y)Nc"eZdZdZfdZdZy)&TestTime.test_subclass_time..Cr}c|j}|jd}jj|g|i|}||_|Srrrsrus r+rz.TestTime.test_subclass_time..C.__new__rxr-c:||jz|jzSr/rarrzs r+r|z.TestTime.test_subclass_time..C.newmethtyy(4;;66r-Nr}r2sr+rrI  7r-r)rWrRrYrrTr}rV) r8r)rFr~rrr|rarrs` r+test_subclass_timezTestTime.test_subclass_times 7 7dmmT"&'1& * + A& #--/: R#((SZZ*?!*CDr-c $d}ddtddfD])}|jt|j||ddz+|j td5|jt dgt |zddddy#1swYyxYw) Nz2:59.0r9r+ÿrrr)chrrrr8rrr)r*rZ hour_bytes r+rz!TestTime.test_backdoor_resistancesc3r7F2I   i)2T!"X)= ?3 # #I/G H MM%c$i0% 8I H Hs )BBN)rGr_r`rr8rrrrirrrrrurrrrrrrrr6rr^rmrrr!r-r+rZrZH sH+.  )?VJ,$.2Ch,<9  F656G .? C?8,I21.E49r-rZc*eZdZdZdZdZdZdZy) TZInfoBasecp|j}Gddt}|ddd|}|tuxrdxsd}|j|j |t |tuxrd xsd }|j|j ||j|j|y) NceZdZdZdZeZy)7TZInfoBase.test_argument_passing..introspectivec|xrdxsdS)Nrealnoner!rts r+ryz>TZInfoBase.test_argument_passing..introspective.tznamesBM6,CV%Cr-c*t|xrdxsdS)Nr}rerrts r+rvzATZInfoBase.test_argument_passing..introspective.utcoffset s 29"+;<.NiceTrycyr/r!r2s r+roz.NiceTry.__init__r-cyr/r!rts r+rvz=TZInfoBase.test_bad_tzinfo_classes..NiceTry.utcoffsetTr-NrGr_r`rorvr!r-r+NiceTryr $ )r-rceZdZdZdZy)5TZInfoBase.test_bad_tzinfo_classes..BetterTrycyr/r!r2s r+roz>TZInfoBase.test_bad_tzinfo_classes..BetterTry.__init__ rr-cyr/r!rts r+rvz?TZInfoBase.test_bad_tzinfo_classes..BetterTry.utcoffset!rr-Nrr!r-r+ BetterTryrrr-r)r8rrobjectrr0)r*rYrrrjrs r+test_bad_tzinfo_classesz"TZInfoBase.test_bad_tzinfo_classessmm )S!Q"= *f * )S!Q'B * * K 1a " ahh"r-c Gddt}|j}dD]\}}|tur|ddd||}n%|tur|dddddd||}nJd |rlt |}t |d \}}d |d kxrd xsd||fz} t |tr|j}|jt|d| z|jtt|y)NceZdZdZdZy)6TZInfoBase.test_utc_offset_out_of_bounds..Edgyc&t||_yrdrrm)r*rms r+roz?TZInfoBase.test_utc_offset_out_of_bounds..Edgy.__init__(s'7 r-c|jSr/)rmrts r+rvz@TZInfoBase.test_utc_offset_out_of_bounds..Edgy.utcoffset*s {{"r-Nrr!r-r+Edgyr's  8 #r-r))`F)aT)T)r]FrrUrQrrYr impossiblerSz %c%02d:%02drrz01:02:03) rr8rrrfrrgtimetzr)rrr) r*rrYrmlegitraofsrrhtags r+test_utc_offset_out_of_boundsz(TZInfoBase.test_utc_offset_out_of_bounds&s #6 # mm-MFEd{1aV 51aAqf>&,&q6{dB'1#vz'9c'@S!Q&GGa* A  Qc)9:!!*c15%-r-c |j}Gddt}|ddd|dddd|ddd|fD]_}|j|j|j|j |j|j aGddt}|ddd|}|j |jtd|j |j td |j |j d Gd d t}|ddd|}|jt|j|jt|j|jt|j Gd dt}|ddd|}|jt|j|jt|jGddt}|ddd|}|j |jtd|j |j tdy)NceZdZdZdZdZy)*TZInfoBase.test_tzinfo_classes..C1cyr/r!rts r+rvz4TZInfoBase.test_tzinfo_classes..C1.utcoffsetErr-cyr/r!rts r+r{z.TZInfoBase.test_tzinfo_classes..C1.dstFrr-cyr/r!rts r+ryz1TZInfoBase.test_tzinfo_classes..C1.tznameGsr-NrGr_r`rvr{ryr!r-r+C1rDs 0 * -r-rrrceZdZdZdZdZy)*TZInfoBase.test_tzinfo_classes..C3ctdS)Nrrerrts r+rvz4TZInfoBase.test_tzinfo_classes..C3.utcoffsetPs Ie,D%Dr-ctdS)Nrrerrts r+r{z.TZInfoBase.test_tzinfo_classes..C3.dstQs i&==r-cyNanamer!rts r+ryz1TZInfoBase.test_tzinfo_classes..C3.tznameRsr-Nrr!r-r+C3rOs D = 0r-rrrerrceZdZdZdZdZy)*TZInfoBase.test_tzinfo_classes..C4cyrr!rts r+rvz4TZInfoBase.test_tzinfo_classes..C4.utcoffsetZsGr-cyrcr!rts r+r{z.TZInfoBase.test_tzinfo_classes..C4.dst[rr-cyrYr!rts r+ryz1TZInfoBase.test_tzinfo_classes..C4.tzname\sr-Nrr!r-r+C4rYs 3 ' *r-rceZdZdZdZy)*TZInfoBase.test_tzinfo_classes..C6ctdS)Nirrrts r+rvz4TZInfoBase.test_tzinfo_classes..C6.utcoffsetds IC,@%@r-ctdS)Nr+rrrts r+r{z.TZInfoBase.test_tzinfo_classes..C6.dstes ib&99r-Nrr!r-r+C6rcs @ 9r-rceZdZdZdZy)*TZInfoBase.test_tzinfo_classes..C7ctdS)Nrrrrts r+rvz4TZInfoBase.test_tzinfo_classes..C7.utcoffsetls I2,F%Fr-ctdS)Nrrrts r+r{z.TZInfoBase.test_tzinfo_classes..C7.dstms iS&AAr-Nrr!r-r+C7rks F Ar-rrrr) r8rrrvr{ryr)rrrr)r*rYrrrrrrs r+test_tzinfo_classeszTZInfoBase.test_tzinfo_classesBsmm . .aA,aAd+aAbd+-A   akkm ,   aeeg &   ahhj ) - 1 1 1a %  %(@A )D"9: W- + + 1a % )Q[[1 )QUU+ )QXX. : : 1a % *akk2 *aee, B B 1a %  r(BC )"=>r-c|j}Gddt}|ddd|}|jd}|jd}|jd }|||fD]i}|||fD]_}ttt t ttfD]:} | ||} | |j|j} |j| | <ak|tur|jd| }|jd| }|jd | }|||fD]Z}|||fD]P}||kD||kz } ||us||ur ||us||urd } n||cxur|urnnd } n||urd } n||usJd } |j| | R\yy)NceZdZdZy)=TZInfoBase.test_aware_compare..OperandDependentOffsetcd|jdkrt|jStdSNrrerrrrs r+rvzGTZInfoBase.test_aware_compare..OperandDependentOffset.utcoffsetx)88b=$QXX66%R00r-Nrr!r-r+OperandDependentOffsetrw 1r-rrrrrrQrrrrrr r) r8rrrrrrrr rr)r) r*rYrrZd0rrkrrgopr]rs r+test_aware_comparezTZInfoBase.test_aware_comparersmm 1V 11a$:$<= \\\ # \\\ # \\\ $RARZb"b"b0BQ(C!!((AHH5H$$S(31  d?Q/E/GHBQ/E/GHBR0F0HIBRZRAq5QU+CR17bAG#$a2#$b#% Bww#$$$S(3$ r-N)rGr_r`rrrrrr!r-r+rrs.$# 68.?`-4r-rcveZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZy) TestTimeTZc:|j}|j|jd|j|jd|j|jd|j|j d|j |jyrY)r8r)rarrrerrrs r+ test_emptyzTestTimeTZ.test_emptyso MMO # 1% 1% * !((#r-c tddd}tddd}tddd }td d | }td d | }tdd | }td td| |j|j||j|j||j|j||j j|j j||j|j t d|j|j t d|j|j t d|j j |jt|j d|j|jd|j|jd|j|jd|j j|jt|jd|j|jt d|j|jt d|j|jt d |j j|jt|jd|jt|t||jt|t||jt|t||j|||j|||j|||j |jt fd|jt fd|jt|d|jt|d|jt|d|jt d|jt d|j|jd|j|jd|j|jd|j jd|j jdd}|jt||dz|jt||dz|jt||dz|jt |dz|jt |d z|j|j!d!d"|j|j!d#d$|j|j!d#d%td&d'}td(d)| }|j|j!d*d+Gd,d-t} td.d d/| } |j| j!d0d1|jt| j d2d3| _|j| j!d2d3y)4NrrrrrrSrSMETrQrTrrrr (rzrrezno argsckSr/r!rt5sr+r@z'TestTimeTZ.test_zones..rAr-ckSr/r!rsr+r@z'TestTimeTZ.test_zones..rAr-z07:47:00-05:00z12:47:00+00:00z13:47:00+01:00z00:00:00.000040z00:00:00.000040+00:00z datetime.timez(7, 47, tzinfo=est)z(12, 47, tzinfo=utc)z(13, 47, tzinfo=met)z (0, 0, 0, 40)z(0, 0, 0, 40, tzinfo=utc)z%H:%M:%S %%Z=%Z %%z=%z %%:z=%:zz#07:47:00 %Z=EST %z=-0500 %:z=-05:00z%H:%M:%S %Z %z %:zz12:47:00 UTC +0000 +00:00z13:47:00 MET +0100 +01:00rz %z %Z %%z%%Zrrz%H:%M %%Z='%Z' %%z='%z'z"23:59 %Z='%z %Z %%z%%Z' %z='-2359'ceZdZdZdZy)(TestTimeTZ.test_zones..Badtznamer}c|jSr/rrts r+ryz/TestTimeTZ.test_zones..Badtzname.tznames .r-N)rGr_r`rryr!r-r+ Badtznamer s B 0r-r rUrWz%H:%M:%Sz02:03:04r5r )rbrr)rrrvrrrryr{rrrrrrr) r*estr1metrrrryuckr rrrs @@r+ test_zoneszTestTimeTZ.test_zoness8$q)!UB'"eQ' 1b % "b % "b % b ! b - C( C( C( "))$ C( 4)@A 1)=> 2)>? ",,.) )R\\9= e, e, e, "))+& )RYY : 9Q#78 9R#89 9Q#78 "&&(# )RVVY7 b48, b48, b48, R  R  R  B# )_5 )_5 R"23 R"23 R"23 R"34 R"9: )9: )9: )9: ):; )@A  b1'<#<= b1'=#=> b1'=#=> b1#67 b1'B#BC %FG%J L %9:?%I K 1 1 Aq - J/< )QZZ6  D)84r-c |jddddtdd}|jddddtdd}|jt|t||jd d d d td d}|jd dd d tdd}|jt|t|y)NrrrUrQrrrirrrYrirNi)r8rbr)rrs r+test_hash_edge_caseszTestTimeTZ.test_hash_edge_casess ]]1aAk$.C] D ]]1aAk$.C] D b48, ]]2r1c+eR2H] I ]]2r1c+eR2H] I b48,r-cd}|j|}tD];\}}}|j||}|j|}|j ||=|j |j |j dtdd}|jddd|}tD]\}}}|j||}|j|}|j |||j|jt|j |jtd |j |jd|j |j |j dy) NrrUrrrRrYrTrre) r8rrrr)r*r+rrrrvrry r*rrrrrrrtinfos r+rzTestTimeTZ.test_picklingsK t}}d#)7 %GYMM$.Eooe,G   T7 +*8 *D,>,>q,AB%T84}}Q1U}3)7 %GYMM$.Eooe,G   T7 +  ! !'..2F G   W..0)D2I J   W^^-x 8 *8 *D,>,>q,ABr-c gd}tdd}|jdddd|}|D]}tD]}||d }|j||t ||j |j t|j|jtd |j|jdy) 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 (JJ0 KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.scdatetime time U@ctest.datetimetester PicklableFixedOffset )R}(U_FixedOffset__offsetcdatetime timedelta JJ0 KRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubR.rrrRrYrTrbrr/r0re) rr8r3r)rrrrvrry)r*rrrr5rrs r+r6zTestTimeTZ.test_compat_unpickle$s .%T84==Aq&=?D%x8  (DJ?%%gnn6JK  !2!2!4i6MN  !18< &r-cF|j}|dtdd}|j||dtdd}|j||dtdd}|j||ddtd d}|j|y) NrrrrrRi,rrr)r8rbr)r*rYrs r+test_more_boolzTestTimeTZ.test_more_boolFsmm +dB/ 0  +dB/ 0  +c2. /  B{:r: ; r-c|j}tdd}ttdd}dddd |g}||}|j||j d }d d d dd|ffD]?\}}|dd} || |<|| } |jdi||i} |j| | |dz }A|j|j d|j d} |j | j|j | j | j |} |j|| |j|j| j|d}|jt|jd|jt|jd|jt|jd|jt|jdy)Nr+1008re-200rrUrQrWrrrrrrrr+rr rrtrrzr! r8rbrr)rryrrr0rrr*rYz100zm200rrZrmrBr[r\rr]base2base3s r+r^zTestTimeTZ.test_replaceVsmm3'Id3V<1aD!Dz t||~. (**/&. 0LD& 1gGGAJG}H$,,0$0C   Xs + FA0 / D ) %,,' %,,.) T * u% dkk5<<01v *dll< *dll2> *dll3? *dllHr-c |jddd}|jddd}|j|||jd}|j|||jtdd}|j|||jtdd}|j ||Gddt }|}|j|}|j|}|j|j td |j|j td |j|||j|}|j||ky) NrrUrQrrrceZdZdZdZy)-TestTimeTZ.test_mixed_compare..Variesc&td|_yNrrerr2s r+roz6TestTimeTZ.test_mixed_compare..Varies.__init__'3 r-cX|xjtdz c_|jSNrrermrrs r+rvz7TestTimeTZ.test_mixed_compare..Varies.utcoffset y33 {{"r-Nrr!r-r+Variesr$  4 #r-r,rrer+) r8r)rrbrrrvrrr*rrr,vs r+rKzTestTimeTZ.test_mixed_compare}sC ]]1a # ]]1a # R ZZtZ $ R ZZ{44Z 5 R ZZ{1b1Z 2 B# #V # H ZZqZ ! ZZqZ ! 2)>? 2)>? R ZZvxZ ( R r-c ddg}d}d}d}d}|ttj||||z }dtjtt dtt d d g}|D]s}|D]l}|j |d |i} | j} |j| 5|j j| } |j| | dddnuy#1swY{xYw)Nr )rrrr&)rrr7)rRr )rWr)rir0rUrrYr.rrr) r itertoolsproductrr1rr8rr.rr)) r* time_exampleshhmmssusecrttuprrrt_rts r+rzTestTimeTZ.test_fromisoformats     "i//BDABB IA./IAr:;="D!DMM444{{}\\t\,==66t ?9, :dmmBB? @;, < b"b& A B=, >$--1X\\-B C?, @dmmB(,,mG HA, Bt}}R8<<}H IC, D ]]1a1C(D] E GE, H ]]1aB1O(P] Q SI, L ]]2q)"2E)F] G IM, P ]]2q)"2E)F] G IQ, T, ]]1a)"bZ\kq2r1r(s] t vU, \$, Ix 244Y?  232$,22s .O::P cgd}|D]V}|j|5|jt5|jj |ddddddXy#1swYxYw#1swYoxYw)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.123arOz12:30:45.123456-z12:30:45.123456+z12:30:45.123456+12:00:30az12:30:45.400 +02:30z 12:30:45.400 z 12:30:45. 400rBrCrs r+rz#TestTimeTZ.test_fromisoformat_fails/s` : Gg.&&z2MM//83/. 22/.rEcddtjdg}|D];}|jt5|jj |ddd=y#1swYHxYw)Ns12:30:45z12:30:45rrs r+rz-TestTimeTZ.test_fromisoformat_fails_typeerrorRsP $ J(?@ !H""9- ++H5.-"--rcGdd|j}|ddddtj}|j|j }|j |||j ||y)Nc eZdZy).TimeSubclassNrr!r-r+rrS[rr-rrr_rir)r8rr1rrr)r)r*rtsctsc_rts r+rz&TestTimeTZ.test_fromisoformat_subclassZs` 4== 2r2vhllC++CMMO< f% fl3r-c Gfddj}ddddtddd f}j|}||id d i}j|j|j|jd j|j d j|j |j j|jd |j|jzd z y)Nc"eZdZdZfdZdZy)*TestTimeTZ.test_subclass_timetz..Cr}c|j}|jd}jj|g|i|}||_|Srrrsrus r+rz2TestTimeTZ.test_subclass_timetz..C.__new__irxr-c:||jz|jzSr/rrzs r+r|z2TestTimeTZ.test_subclass_timetz..C.newmethprr-Nr}r2sr+rrXfrr-rrWrRrYrrrrrTr}rV) r8rbr)rFr~rrvr|rarrs` r+test_subclass_timetzzTestTimeTZ.test_subclass_timetzds 7 7!Q[ua88dmmT"&'1& * + A& #--/: R#((SZZ*?!*CDr-N)rGr_r`rr8rrrrr6rr^rKrrr,rDrLrrrr\r!r-r+rrseH$T5l-C, =D %IN!<.4'226/$23h!9F64Er-rceZdZeZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZej0ddZej0ddZej0ddZdZdZdZy)TestDateTimeTZc |jddddddd}|j|jd|j|jd|j|jd|j|j d|j|j d|j|jd|j|jd|j|jdy)NrrUrQrWrRrYrT) r8r)rZr[rrarrrerrts r+ test_trivialzTestDateTimeTZ.test_trivials ]]1aAq!Q / !$ 1% # !$ A& A& + D)r-c "|jdddtdd|jtdddddd td d|jk|jk7|jkD|j |j |jdddddtdd|jd ddd d tdd|j |jdddddtdd|jkD|jdddddtd d|jk|jdddddtddd|jkD|jdddddtddd|jkD|jj |j |j |jt5kDdddGddt}|jddd||j |j |jddd|j Gddt}|jd d d ||jd d d tdd|jtfdy#1swYxYw)Nrrrrrrrrr&rrUrQr r)rrrqceZdZdZy)4TestDateTimeTZ.test_even_more_compare..Naivecyr/r!rts r+rvz>TestDateTimeTZ.test_even_more_compare..Naive.utcoffsetrr-Nrr!r-r+Naiverds 0r-rfrRrYrTceZdZdZy)4TestDateTimeTZ.test_even_more_compare..BogusctdS)Nr]rerrts r+rvz>TestDateTimeTZ.test_even_more_compare..Bogus.utcoffsets  ..r-Nrr!r-r+rrhs /r-rck(Sr/r!)rrsr+r@z7TestDateTimeTZ.test_even_more_compare..s bBhr-) r8rbrrr)rrrrrr)r*rfrrrs @@r+test_even_more_comparez%TestDateTimeTZ.test_even_more_compares ]]1a;tR+@] A ]]7BBB"-eR"8: R  b! R  R  R ]]1b"b"[B5G] H ]]1aAr+i2L] M R ]]1b"b"[B5G] H R ]]1b"b"[B5G] H R ]]1b"b"[B5G"#% R ]]1b"b"[B5G'(* R ]]   B# R   y ) G* 1F 1 ]]1a57] 3 B# R ]]1a # R  /F /]]1a57] 3 ]]1a;q"+=] > *&67+* )s "LLc Fd}|j|}tD];\}}}|j||}|j|}|j ||=|j |j |j dtdd}|j|id|i}|jdddtddd }tD]\}}}|j||}|j|}|j |||j|jt|j |jtd |j |jd|j |j |j dy) NrKrUrrrrrrrre)r8rrrr)r*r+rrbrrrvrryrs r+rzTestDateTimeTZ.test_picklingsn)t}}d#)7 %GYMM$.Eooe,G   T7 +*8 *D,>,>q,AB%T84t}}d8x&78--1a Ar10E-F)7 %GYMM$.Eooe,G   T7 +  ! !'..2F G   W..0)D2I J   W^^-x 8 *8 *D,>,>q,ABr-cgd}d}tdd}|j|id|i}|D]}tD]}||d}|j|||j |j t|j|j td|j|jdy) 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 (JJ0 KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.scdatetime datetime U  ;@ctest.datetimetester PicklableFixedOffset )R}(U_FixedOffset__offsetcdatetime timedelta JJ0 KRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubR.)r-rr.r7rrrbrrrr/r0re) rr8r3r)rrrvrry)r*rrrrr5rrs r+r6z#TestDateTimeTZ.test_compat_unpickles 2/$T84 4==$<8U*;<D%x8  (3%%gnn6JK  !2!2!4i6MN  !18< &r-c 0|jdddtdd}t||jtdddddd td d}t||jd d d td d}|j t t|y) Nrrrrrrrrr&rrRr)r8rbrrrrrs r+test_extreme_hashesz"TestDateTimeTZ.test_extreme_hashess MM!Q+dB*?M @ Q MM'2r2r2v!,UB!7  9 Q MM!Q+eR*@M A *dA.r-ctdd}tdd}tdd}tddd d d | }tddd d d | }tddd dd | }|j|j||j|j||j|j||j|j t d|j|j t d|j|j t d|j|j d|j|j d|j|j d|jt|t||jt|t||jt|t||j|||j|||j|||jt|d|jt|d|jt|dd}|jt||dz|jt||dz|jt||dzy)NrrrrrSrrYrQrrTrrrr rez2002-03-19 07:47:00-05:00z2002-03-19 12:47:00+00:00z2002-03-19 13:47:00+01:00zdatetime.datetime(2002, 3, 19, z7, 47, tzinfo=est)z12, 47, tzinfo=utc)z13, 47, tzinfo=met)) rbrr)rrvrryrrr)r*r r1r rrrrs r+rzTestDateTimeTZ.test_zoness;$&!U#"e$ dArAr# 6 dAr2r# 6 dAr2r# 6 C( C( C( 4)@A 1)=> 2)>? e, e, e, b48, b48, b48, R  R  R  R"=> R"=> R"=> - b1';#;< b1'<#<= b1'<#<=r-c tdd}tddd}tdddd| }tj||}|j |tddddddd| y NrSrrYrQrWr'rrr)rbrrrrr))r*r rrrus r+rzTestDateTimeTZ.test_combine<sh"e$ q!  "b!T# .   a $ XdAq"b!T/24 5r-c Xtdd}|jddddddd| }|j|jtddd|j|j t dddd|j|j t dddd| yrr)rbr8r)rrr)r*r rus r+rzTestDateTimeTZ.test_extractDs"e$ ]]4Ar2q$s] C Dq!$45 DRD$9: d2r1d3&GHr-c  |jjtdd}jj |}|jj j ||jj||jj||jtfd|jtfd|jtfd|jtfd|jtfd|jz td |jz td td d d   z|jj| z}|j|j||j| z }|j|j||j||jt fd|jz ttjddd}j ||jj|z }j!j!z z }|j|||jd d d tdd}|jt"d dddddtdd} | |z } |j| |jj$|jj&z tdzt)t*d} t)t*d} |j | | j | z |j |jj&|jj$z y)Niz west 5:30rcz Sr/r!rnowawaresr+r@z9TestDateTimeTZ.test_tz_aware_arithmetic..T S8^r-cz Sr/r!rvsr+r@z9TestDateTimeTZ.test_tz_aware_arithmetic..U X^r-czSr/r!rvsr+r@z9TestDateTimeTZ.test_tz_aware_arithmetic..Xrxr-czSr/r!rvsr+r@z9TestDateTimeTZ.test_tz_aware_arithmetic..Yrzr-czSr/r!)rwsr+r@z9TestDateTimeTZ.test_tz_aware_arithmetic..Zs X-@r-rrri.)rNrfrcz Sr/r!)r* nowawareplussr+r@z9TestDateTimeTZ.test_tz_aware_arithmetic..ms U\-Ar-rr]randomtimezonerrrrrr&ri> rerr)r8rrbrrrrr0rr)rrrrr randrangervrrrrr)r*tz55 timeaware nowawareplus2rtzrr]rrrmaxdifftzatzbr*rrwrs @@@@r+test_tz_aware_arithmeticz'TestDateTimeTZ.test_tz_aware_arithmeticKs'mm!4-HHJ&&d&3 ==((Y? hoot, *I6 )%;< )%;< )%;< )%;< )%@A sIaL1 H,il;2DA%'  hoot,(  m**D1 }5e# dkk4( 4( )%AB 0%8&**5$79IJ#++3+7  l))3/%  ))+h.@.@.BBUJ h'mmAq!Ke,DmEmmGRRR#.ue#<>) $--"3"3dmm6G6G"G"+F";#< =tS!tS! 3 '#++S+*AA  1 1DMM4E4E EFr-c|jj}|}tdd}||}||}|j|j|j|j |j td|jt|d|jt|d|jt|||jt|||tdd d}ttd d d dttd d d fD]}tdD]}tj|} |j| j||jt5tjj!|} ddd j#|} t%| | z tdks|j'dy#1swYMxYw)Nr}42rrerrrrr1rrrweirdtzrQr rz0utcnow(), now(tz), or astimezone() may be broken)r8rrbr0rr)rvrrrrrgrr`rarrrrffail) r*methrZoff42anotheragainr1rrrrnow2s r+test_tzinfo_nowzTestDateTimeTZ.test_tzinfo_nows}}  vB%u+ gnnell3 **,i.CD )T2. )T"5 )T7 )T5%8 !UA&#IB$CYPQR R!@)LOGqll7+ cjj'2%%&89%__.66c6BF:((1sTz?Yr%::" LMO :9s =%G..G7 cjddl}|jj}|j}||}tdd}|||}|||}|j |j |j |j |jtd|jt||d|jt||d|jt||||jt|||||jt|d }|jt5tj|} dddtd d } t| d d}  | z} tj|| } |j | | jdy#1swYaxYw)Nrr}rrrerrrri'rr)rr8rrbr0rr)rvrrrr`rarrbr)r*rrrrZrrrr utcdatetimervrrr]s r+test_tzinfo_fromtimestampz(TestDateTimeTZ.test_tzinfo_fromtimestampsp}}** TYY[BxB%r5/RE" gnnell3 **,i.CD )T2r2 )T2b9 )T2U; )T2ue< )T*   0 1"33I>K2 C4 D! ,*$$Y3 3;;d;#;<2 1s 3F))F2c|jj}|jt5|}dddt dd}|j t |||j t ||y#1swYExYw)Nr}rr)r8rr`rarbrr)r*rrZrs r+test_tzinfo_utcnowz!TestDateTimeTZ.test_tzinfo_utcnowsj}}##   0 16D2B% )T51 )T%8 2 1s A88Bcddl}|jj}|j}|jt5||}dddt dd}t jt5t jdt|jt||||jt|||dddy#1swYxYw#1swYyxYw)Nrr}r)categoryignorer) rr8rbr`rarbwarningscatch_warnings simplefilterrr)r*rrrrZrs r+test_tzinfo_utcfromtimestampz+TestDateTimeTZ.test_tzinfo_utcfromtimestamps}}-- TYY[   0 18D2B%  $ $.@ A  ! !(5G H   ir5 9   ir%  @B A 2 1 B As C8A CCC#c Gddt}|j}dD](\}}|ddddddd|| }|j}|jd|j|jd|j |jd|j |jd|j|jd|j|jd|j|jd |j|jd|j|j||j+|jt|ddd|d  j|j|ddd|d  jjd|j|ddd|d  jjd|jt|ddd|d j|jt|ddd|d jy)NceZdZdZdZy)1TestDateTimeTZ.test_tzinfo_timetuple..DSTcJt|tr t|}||_yrdrgrhrdstvaluer*rs r+roz:TestDateTimeTZ.test_tzinfo_timetuple..DST.__init__h,(:H ( r-c|jSr/rrts r+r{z5TestDateTimeTZ.test_tzinfo_timetuple..DST.dst }}$r-NrGr_r`ror{r!r-r+DSTrs  ) %r-r))r)rr)rr)Nr rrr7r rrrrrrr]r)rr8rr)rrrr r!r"r#r$r%rrr)r*rrYrflagrrs r+test_tzinfo_timetuplez$TestDateTimeTZ.test_tzinfo_timetuples %& %mmCNHdAq!RRCMBA A   Q *   Q )   Q *   R +   R *   R *   Q *   Q *   T1:: .D )SAqS%B%L%LM Qq3t95??AJJAN Qq3u:6@@BKKQO *c!AaD &B&L&LM *c!AaE &C&M&MNr-cN Gddt |j}|jt|ddd djG fdd }dD]}|dd d d d d d|d|}|j }|j |j|j|j |j|j|j |j|j|j d|j|j d|j|j |j|j |j |j#|j$|j |j't)dddj'z dz|j*|j d|j,|dd d d d d d}|j }|j |dd|j/dd|j d|j,Gdd }|dd d d d d d|}|j }|j |dd|j/dd|j d|j,Gdd }|dd d d d d d|}|jt0|j |ddddddd}t2j4t2j6t2j8fD]e}|j;|} |j | j dd| j=t2j6j/ddg|t>ddddd|d} |jt@| j |tBddd d!dd"|d#} |jt@| j |j4j;t3tD} |jt@| j |j8j;t3tD } |jt@| j y)$NceZdZddZdZy)-TestDateTimeTZ.test_utctimetuple..DSTcJt|tr t|}||_yrdrrs r+roz6TestDateTimeTZ.test_utctimetuple..DST.__init__rr-c|jSr/rrts r+r{z1TestDateTimeTZ.test_utctimetuple..DST.dstrr-N)rrr!r-r+rrs  ) %r-rrrrc eZdZdfd ZdZy).TestDateTimeTZ.test_utctimetuple..UOFSNcLj||t||_yrd)roruofs)r*rdofsrs r+roz7TestDateTimeTZ.test_utctimetuple..UOFS.__init__#s T4(%d3 r-c|jSr/)rrts r+rvz8TestDateTimeTZ.test_utctimetuple..UOFS.utcoffset&s yy r-r/r)rsr+UOFSr"s  4 !r-r)rrrNrUrQrr7r rirr r ceZdZdZy).TestDateTimeTZ.test_utctimetuple..NOFScyr/r!rts r+rvz8TestDateTimeTZ.test_utctimetuple..NOFS.utcoffset@sr-Nrr!r-r+NOFSr?s r-rceZdZdZy).TestDateTimeTZ.test_utctimetuple..BOFScy)Nrr!rts r+rvz8TestDateTimeTZ.test_utctimetuple..BOFS.utcoffsetHsr-Nrr!r-r+BOFSrGs r-rrr_rri+rrrrrrr&r)#rr8rrrv utctimetupler)rZrr[rrrr r!rr"rr#rcrr$r%rrrrr1rrrrrrr) r*rYrrrrrrrdtzrhugers @r+test_utctimetuplez TestDateTimeTZ.test_utctimetuples %& %mm -aAc!f5?? A !3 !)HAq!RRDh4GHA A   QVVQYY /   QWWahh /   QUUAII .   R +   R *   QXXqxx 0   QYY[!)) 4   Q[[]T!Q]-D-D-FFJYY (   Q +)" 1aRR ( NN  3Bs!34 AJJ' 3  1aRR 7 NN  3Bs!34 AJJ' 3  1aRR 7 )Q^^4 b"b"b& 1<<x|| -):):;7BBBtE{K -):):;wwhv&67 -):):;wwhw&78 -):):;r-c tdd}tdd}tdd}tdd}|j}d}d||||fD]}d D]}|d d d d dd||} d|xrdxsdz} |duxr| jxsd} | | z} | j} |j | |dz| z|j | | jd|j | jd|dz| z|j | jd|dz| z|j t | |dz| zy)Nrrz+03:40iz-03:51rz 0001-02-03)riyrrUrQrWrRrrz04:05:59z.987001rkuሴr)rbr8ryrr)r)r*rzplusminusunknownrYdatestrofsrlrtimestrofsstrtailstrisos r+test_tzinfo_isoformatz$TestDateTimeTZ.test_tzinfo_isoformatdsM1h'3)D(+dB'mmtUG3C1aAr2c:$(8y(>B?D7QXXZ=2!F*kkm  gmg&=>  akk#&67  S!17S=73JK  X!6(8JW8TU  Q3)@A 4r-c "|j}tdd}ttdd}dddd d d d |g}||}|j||j d }dddddddd|ffD]?\}}|dd} || |<|| } |jdi||i} |j| | |dz }A|j|j d|j d} |j | j|j | j | j |} |j|| |j|j| j|ddd}|jt|jdy)NrrrrerrrUrQrWrRrYrTrrSrTrUrrrrrrrNryr|rVr!rrs r+r^zTestDateTimeTZ.test_replaceysmm3'Id3V<1aAq!T*Dz t||~. ()'(**/&.0LD&1gGGAJG}H$,,0$0C   Xs + FA0 / D ) %,,' %,,.) T * u% dkk5<<04B *dll>r-ctdd}tdd}ttd d}|jj|}|j |j ||j t|j||j|j }|j |j ||j|j|j|j|j|j|j|}|j |j ||j|jtd||jz }||j|z }|j| }|j|j|j|j|j|j|j|j|j|j |j |j |j||y) NNoner44rRrm300rr r)rbrr8rr0rrrrr)rrrvrr)r*fnonef44mfm5hrurr]rs r+test_more_astimezonez#TestDateTimeTZ.test_more_astimezonesD&)2t$IA..7 ]]  $  ' bii& *bmmU; MM")) $ ahh% 2779- 2779-mmD! cjj$' )"*=> &DNN2&&##4#0 X]]_5 X]]_5 x'89 cjj(//2 h'r-rc|jjtj}|j |j d||j |j |yr/)r8rrr1r)rrts r+test_astimezone_default_utcz*TestDateTimeTZ.test_astimezone_default_utcsI ]]  x|| , t,b1 "-r-rdc|jdddddtj}|j}|j |||j |j dd|jdddd dtj}|j}|j |||j |j dd y) NrkrrWrYr rrz -0500 ESTrRz -0400 EDT)r8rr1rr)r)r*rurs r+test_astimezone_default_easternz.TestDateTimeTZ.test_astimezone_default_easterns ]]4Q2hll] C  U# 0+> ]]4Q2hll] C  U# 0+>r-ctddddtj}|j}|j}|j |j |j y)Nr-rrrRr)rrr1rr)r)r*rrrs r+!test_astimezone_default_near_foldz0TestDateTimeTZ.test_astimezone_default_near_foldsH T2q!HLL 9 LLN LLN 188,r-c |j}Gddt}|ddddddd | }|jd }|jd }|jd }|||fD]F}|||fD]<}||z } t|j|jz } |j | | >H|ddddddd }|jd |}|jd|}|jd|}|||fD]z}|||fD]p}||z } ||us||ur||us||ur td} n;||cxur|urnn td} n#||ur td } n||usJtd } |j | | r|y)NceZdZdZy)BTestDateTimeTZ.test_aware_subtract..OperandDependentOffsetcd|jdkrt|jStdSrrrs r+rvzLTestDateTimeTZ.test_aware_subtract..OperandDependentOffset.utcoffsetrr-Nrr!r-r+rrrr-rrrrrrr r_rrQrrerrirN)r8rrrrr)) r*rYrrZrrrkrrgr]rs r+test_aware_subtractz"TestDateTimeTZ.test_aware_subtractsmm 1V 11aRR4J4LM \\\ # \\\ # \\\ $RARZ!e$QXX-@A  h/ 1aRR, \\+A+C\ D \\+A+C\ D \\,B,D\ ERARZ!eGqBwQ"WR(|H!\r\(|H"W(;H7N7(;H  h/ r-c tddddddd}tddddddd}|j|||jd}|j|||jtdd }|j|||jtd d }|j ||Gd d t }|}|j|}|j|}|j|j td |j|j td|j|||j|}|j||ky)NrrUrQrWrRrYrTrrrceZdZdZdZy)1TestDateTimeTZ.test_mixed_compare..Variesc&td|_yr&rr2s r+roz:TestDateTimeTZ.test_mixed_compare..Varies.__init__r'r-cX|xjtdz c_|jSr)r*rs r+rvz;TestDateTimeTZ.test_mixed_compare..Varies.utcoffsetr+r-Nrr!r-r+r,rr-r-r,rrer+) rr)rrbrrrvrrr.s r+rKz!TestDateTimeTZ.test_mixed_comparesK aAq!Q * aAq!Q * R ZZtZ $ R ZZ{44Z 5 R ZZ{1b1Z 2 B# #V # H ZZqZ ! ZZqZ ! 2)>? 2)>? R ZZvxZ ( R r-c  Gfddj}ddddddd td d d f}j|}||id di}j|j|j|jdj|j dj|j |j j|jd|j|jzdz y)Nc"eZdZdZfdZdZy)2TestDateTimeTZ.test_subclass_datetimetz..Cr}c|j}|jd}jj|g|i|}||_|Srrrsrus r+rz:TestDateTimeTZ.test_subclass_datetimetz..C.__new__'rxr-c:||jz|jzSr/)rarZrzs r+r|z:TestDateTimeTZ.test_subclass_datetimetz..C.newmeth.styy(49944r-Nr}r2sr+rr$sI  5r-rrYrrrWrRrYr[rrrrrTr}rV) r8rbr)rFr~rrvr|rarZrs` r+test_subclass_datetimetzz'TestDateTimeTZ.test_subclass_datetimetz"s 5 5RQ1c;tUA+FFdmmT"&'1& * + A& #--/: R#((SXX*=*ABr-N)rGr_r`rr8r`rkrr6rorrrrrrrrrrrr^rr rOrrrrrKrr!r-r+r^r^sH *C8JC.#=J /><5I?GB$NL"=H 9 A"OHN<`B*%?N(:W. .W34?5?W34-5-*0X!<Cr-r^cLd|jz }|r|t|z }|S)NrY)rr)ru days_to_gos r+first_sunday_on_or_afterr>s)RZZ\!J i ## Ir-rerrQrWrUrc*eZdZdZdZdZdZdZy) USTimeZonecPt||_||_||_||_yNrr stdoffsetreprnamestdnamedstnamer*rrrrs r+rozUSTimeZone.__init__R#"/    r-c|jSr/rr2s r+rrzUSTimeZone.__repr__Xrwr-cT|j|r |jS|jSr/r{rrrts r+ryzUSTimeZone.tzname[! 88B<<< << r-c>|j|j|zSr/rr{rts r+rvzUSTimeZone.utcoffseta~~ ,,r-c| |jtS|j|usJttj |j }|j dk(r|jdk(r|jdksJttj |j }|j dk(r|jdk(r|jdk\sJ||j dcxkr |kr tStStSNrVrYrWrTrrr) rrrDSTSTARTrrZrr[rDSTENDrr*rur{ends r+r{zUSTimeZone.dstds :*KyyD   ))9)9rww)9)GH}}!# q(8UYY!^KK'v~~277~'CD{{}!cii2o#''R-GG BJJdJ+ 1c 1K 2K4Kr-NrGr_r`rorrryrvr{r!r-r+rrPs  -r-rr rrrrZCentralCSTCDTrVMountainMSTMDTiPacificPSTPDTri0UTCfakecfeZdZeddddZeddddZeZdZd Zd Z d Z d Z d Z dZ y)TestTimezoneConversionsrYrWrTrUrr.rc|j|jt|j|j|||j|}|j|}|j |j k(r}|j dk(rn|j|tz||j|jt |j|j||j|n|j|||tz}|j|} |j |j k(rn|j dk(r_|j| |jd|tz }|j|} |j| |jdy|j| |z ty)NrUrrr)r)r{rrrrarr) r*rurr1dstondstoffasutcthere_and_back nexthour_utc nexthour_tzs r+ checkinsidez#TestTimezoneConversions.checkinsides| 4( r*B/ c"))"- 779 $A   ^d2B 7   ^//14 8   ^66s;]]3/ 1   R 0t| "--b1 779 %"''Q,   ["**!**< = D L&11"5K   ["**!**< =   [2-t 4r-c|j|jt|j|j|||j|}|j|}|j||yr/)r)r{rr)r*rurr1r"r#s r+ checkoutsidez$TestTimezoneConversions.checkoutsidesc 4( r*B/ c"))"- ^,r-c |jj|}|jj|}tdtt tdtdfD]p}|j |||||||z||z fD]}|j ||||||j|||||z ||zfD]}|j|||ry)Nrr rRrrer)r rr!rDAYrr&r()r*rr1r r!r*duringoutsides r+convert_between_tz_and_utcz2TestTimezoneConversions.convert_between_tz_and_utcs """"- $$B$/b)*Q/ 1E   UBUF ;%-%7  S%@8   fb# . 5=&5.8!!'2s391r-c<|jtt|jtt|jtt|jtt|jtt|jttyr/)r-rutc_realrutc_faker2s r+ test_easyz!TestTimezoneConversions.test_easysd '': '': '': '': ''9 ''9r-c |jtdz }tddd}|j|}|jjd}|j t jd}|j |||jjd t }|jjd }|j t jd}|j ||ttfD]}t tfD]}|jtd z }||jdz}||jdz} | j|} d D]} |jj| } dD]Y} | j| }| j| } | j |}|j |jd|[| tz } y)NrWriz-0900rrrQrrYrarrrU)rrrrUrr rr) r rrbrrrr)r/r0rr!rvr)r*fourbackninewestrr]sixutcr1rfirst_std_hourr" asutcbasetzhour expectedbaserastzs r+ test_trickyz#TestTimezoneConversions.test_trickys::  22ugq1##8#4::%%1%-!!'*22$2? 3'##8#<::%%1%-(000= 3'X%Cw&!%yq/A!A",,t"44&t)<<"MMM5 *F#';;#6#6F#6#CL"+#/#7#7v#7#F ) 1 1 1 @$//3((T)BHM #, %I+'&r-cGddt}|jjjt}|j |Gdd|}|j t|j |Gdd|}|jdd d jt}|j t|j |y) NceZdZdZdZy)2TestTimezoneConversions.test_bogus_dst..okctSr/rrts r+rvz.ok.utcoffset-sD[r-ctSr/rBrts r+r{z6TestTimezoneConversions.test_bogus_dst..ok.dst.sd{r-Nrr!r-r+okr@,s 0 *r-rDrceZdZdZy)5TestTimezoneConversions.test_bogus_dst..notokcyr/r!rts r+r{z9TestTimezoneConversions.test_bogus_dst..notok.dst6rr-NrGr_r`r{r!r-r+notokrF5s *r-rIceZdZdZy).tricky_notokc4|jdk(rydtzS)NrNr)rZrrts r+r{z@TestTimezoneConversions.test_bogus_dst..tricky_notok.dst>s77d?d7Nr-NrHr!r-r+ tricky_notokrK=s #r-rMr|r)rr8rrr/rrr)r*rDrrIrMrus r+test_bogus_dstz&TestTimezoneConversions.test_bogus_dst+s + +mm!))): rt +B + *cnneg>  #2 # ]]4A & . .h . ? *bmm\^Dr-c.|jttjt j t }|jttj||jt}tj|}|j|jt|jttj|||jttjtjGddt}|dddd}|jjd t }|j|}d D]}|j| }|d k(r|tdz}tj|} |j|| ||j z}|j|} |j|| |jt j#|} |j|| |t$z }|t$z }|j&jd t }|j|}dD]}|j| }tj|} |j|| ||j z}|j|} |j|| |jt j#|} |j|| |t$z }|t$z }y)NrrceZdZdZy).FauxUSTimeZonec ||jzSr/)rrts r+rzDTestTimezoneConversions.test_fromutc..FauxUSTimeZone.fromutcRsDNN**r-NrGr_r`rr!r-r+FauxUSTimeZonerQQs +r-rTr FEasternFESTFEDTrWr3)rrrrQrWrRrrrrQ)rrrrUrQrW)rrrrrrr/rrr)rrr]rr rrrrr!) r*renowrTrUr{fstartwallrr]s r+rz$TestTimezoneConversions.test_fromutcFsx )W__5llh' *goos;kkk)s# g. )W__c3? )W__djjlC +Z +#2zFFC ""'":h/%D}}$}/HrzI1--//%(C   Xs + 2 22H""6*C   Xs +...1<. W{-Br-ckSr/r!r_sr+r@z+Oddballs.test_bug_1028306.. [7-Br-ckSr/r!r_sr+r@z+Oddballs.test_bug_1028306.. W -Cr-ckSr/r!r_sr+r@z+Oddballs.test_bug_1028306.. [G-Cr-ckDSr/r!r_sr+r@z+Oddballs.test_bug_1028306..rbr-ckDSr/r!r_sr+r@z+Oddballs.test_bug_1028306..rdr-ck\Sr/r!r_sr+r@z+Oddballs.test_bug_1028306..rfr-ck\Sr/r!r_sr+r@z+Oddballs.test_bug_1028306..rhr-Trr7)rFr)rr]rrrrrrrr)__eq__rrrRrZr[r)r* different_day as_differentdate_sc datetime_scr`ras @@r+test_bug_1028306zOddballs.test_bug_1028306s**,&&w7  ;./  w./ K/0 /0 )%BC )%BC )%CD )%CD )%BC )%BC )%CD )%CD  4d; qB.2 "** *>   5u=w||W]]GKKH '* '*'{'7'79J9J'.{{Aq!=  k2 k2r-c r|jt5tj}dddt j t ttttfD]'}|jt5d|_ ddd)y#1swYwxYw#1swY@xYwr) r`rarrrr]rrrrrAttributeErrorr )r*rrs r+test_extra_attributeszOddballs.test_extra_attributess   0 1__&F2**,&+(9;' )A "">232 )2 132sB!B-!B*-B6 c Gdd}Gddt}d|dtjdtjd|d|dd fD]}|jtt |dddddd |jtt d|ddddd |jtt dd|dddd |jtt ddd|ddd |jtt dddd|dd |jtt ddddd|d |jtt dddddd| y) NceZdZdZdZy)-Oddballs.test_check_arg_types..Numberc||_yr/value)r*r{s r+roz6Oddballs.test_check_arg_types..Number.__init__s " r-c|jSr/rzr2s r+__int__z5Oddballs.test_check_arg_types..Number.__int__s zz!r-N)rGr_r`ror}r!r-r+Numberrxs  # "r-r~c eZdZy),Oddballs.test_check_arg_types..FloatNrr!r-r+Floatrrr-rg$@g%@rz10.910)r(decimalDecimalrrr)r*r~rxxs r+test_check_arg_typeszOddballs.test_check_arg_typess* " "  E t??2&(?":vd|B   i2r2r2r2 N   i2r2r2r2 N   i2r2r2r2 N   i2r2r2r2 N   i2r2r2r2 N   i2r2r2r2 N   i2r2r2r2 Nr-N)rGr_r`rrrurr!r-r+r\r\s#3J Or-r\ceZdZdZy)tzinfo2ct|ts td|j|ur t d|j dj }|j dj }|||jt||k(r||z}|j }||k(r|S||fD]G}||z}|j |k(r|cS|j d}|j |k(sE|cSt d)*datetime in UTC -> datetime in local time.&fromutc() requires a datetime argumentdt.tzinfo is not selfrr8rzNo suitable local time found)rgrrrrrrvr{)r*ruoff0off1ldtoffs r+rztzinfo2.fromutcs"h'DE E 99D 45 5zzqz!++-zzqz!++- <4<2668+;  4<t)C==?Dt| $|j|j|zSr/r rts r+rvzUSTimeZone2.utcoffsetr r-c| |jtS|j|usJttj |j }|j dk(r|jdk(r|jdksJttj |j }|j dk(r|jdk(r|jdk\sJ|j d}|tz|cxkr |krtS||cxkr |tzkrnn|jrtStS||cxkr |tzkr ntS|jrtStStSr ) rrrrrrZrr[rrrr9rs r+r{zUSTimeZone2.dst s6 :*KyyD   ))9)9rww)9)GH}}!# q(8UYY!^KK'v~~277~'CD{{}!cii2o#''R-GGZZtZ $ 4<2 # #K $B #t #774 , , b '54< ' K774 , ,Kr-Nrr!r-r+rrs  -r-rEastern2Central2 Mountain2Pacific2c0eZdZdZdZdZdZdZdZy)Europe_Vilnius_1941cBtdddd|tdddd|gS)NrYrrrrrr2s r+ _utc_foldzEurope_Vilnius_1941._utc_fold<s,q"b6q"b68 8r-cBtdddd|tdddd|gS)NrrYrrr+rrr2s r+ _loc_foldzEurope_Vilnius_1941._loc_fold@s,q"b6q"a57 7r-c|j\}}||kr dtzS||kr|jr dtzSdtzSdtzS)NrQrUrrr9r*ru fold_start fold_stops r+rvzEurope_Vilnius_1941.utcoffsetDN $ 0 I ?t8O >A4/ /a4/ /4xr-c|j\}}||kr dtzS||kr|jr dtzSdtzSdtzS)Nrrrrs r+r{zEurope_Vilnius_1941.dstMrr-c^|j\}}||kry||krd|jSy)NMSK)rCESTr)rr9rs r+ryzEurope_Vilnius_1941.tznameVs6 $ 0 I ? >"277+ +r-c|jdk(sJ|j|usJ|jdk7rt|j \}}||kr |dt zzS||kr|dt zzj dS|dt zzS)NrrrQrUrr8)r9rrZrrrrrs r+rzEurope_Vilnius_1941.fromutc_sww!||yyD   77d?% % $ 0 I ?D= >TM***2 2AH}r-N) rGr_r`rrrvr{ryrr!r-r+rr;s 87 r-rcbeZdZdZdZdZdZdZdZdZ e jdd Z e jd d Z d Ze jdd Ze jd dZe jddZdZdZdZdZdZdZdZdZdZy)TestLocalTimeDisambiguationc ^t}tddddddtj}|j |}|j |j dd|j |jd |j|jtdddd tj}|j |}|j |j dd |j |jd |j|jtdddd tj}|j |}|j |j dd|j |jd |j|jy)NrrYrr7rrz%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300rrz"Mon Jun 23 23:00:00 1941 CEST+0200rrz"Tue Jun 24 00:00:00 1941 CEST+0200) rrrr1rr)rr9rr{r)r*Vilniusgdtrs r+test_vilnius_1941_fromutcz5TestLocalTimeDisambiguation.test_vilnius_1941_fromutcosB%'tQBBx||DnnW% i0< > 1% #tQBx||<nnW% i0= ? 1%  "tQBx||<nnW% i0= ? 1%  "r-c t}tdddddd|}|jtj}|j |j ddtdddddd|}|jtj}|j |j dd tdddddd|d }|jtj}|j |j dd tddd d|}|jtj}|j |j ddy)NrrYrrrrz%c %ZzMon Jun 23 19:59:59 1941 UTCzMon Jun 23 20:59:59 1941 UTCr)rr9zMon Jun 23 21:59:59 1941 UTCr+rzMon Jun 23 22:00:00 1941 UTC)rrrrr1r)r)r*rrrs r+test_vilnius_1941_toutcz3TestLocalTimeDisambiguation.test_vilnius_1941_toutcs%'tQBBw?nnX\\* g.7 9tQBBw?nnX\\* g.7 9tQBBwQGnnX\\* g.7 9tQAg6nnX\\* g.7 9r-c  tdd}tdddd}|j|jd|j|jd|j t 5tdddddddddy#1swYyxYwNrrr8)rrr)r9rrr*rrus r+test_constructorsz-TestLocalTimeDisambiguation.test_constructorssq O aAA & # !$   y ) Aq!T1 %* ) )s *BB ctdddd}|j}|j|jd|j }|j|jdy)Nrr8)rrr)r9r)r*rurs r+ test_memberz'TestLocalTimeDisambiguation.test_membersP aAA & GGI # IIK #r-c td}tddd}|j|jdjd|j|jdjd|j|jdjd|j|jdjd|jdt }|jdt }|j|jdjd|j|jdjd|j t5|jdddd|j t5|jdddd|j t5|jdddddddd|j t5|jddddddddd dddy#1swYxYw#1swYxYw#1swYYxYw#1swYyxYw)Nrrr8)r9rrrU) rrr)rr9rrrrrs r+r^z(TestLocalTimeDisambiguation.test_replaces G aA  *//3 +00!4 *//3 +00!4 II1WI - ZZQwZ / $/44a8 4055q9   z * II1I +   z * JJAJ +  y ) IIaAtQ '*   y ) JJq!Q1aD! 4* )+ * * ** ) ) )s0$HH&H27H>H#&H/2H;>Ictd}tddd}|j||jd|j||jdyr)rrr)rrs r+rz+TestLocalTimeDisambiguation.test_comparisonsO G aA  AII1I-. RZZQZ/0r-ctd}tddd}|jt|t|j d|jt|t|j dyr)rrr)rrrs r+ test_hashz%TestLocalTimeDisambiguation.test_hashsa G aA  a$qyyay'8"9: b4  (:#;Australia/Lord_Howe timezone is not supported on this platformiUrr)rrZrrHrrr)r9)r*tmrrgrs r+test_fromtimestamp_lord_howez8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howes __U # >>&" % 4 MMZ [   # #A &  # #AH - R  !$ !$r-cb|jtjdjdyrY)r)rrr9r2s r+%test_fromtimestamp_low_fold_detectionzATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detections% //277;r-ctddddd}|jd}|j|jdz|jy)NrrrUrr r8r)rrr)r)r*rrs r+test_timestampz*TestLocalTimeDisambiguation.test_timestampsHtRAr*kkqk! 4/ *r-cJtjd}tjd|dk7r|jdt ddddd }|j d j }|j d j }|j|d z|y) Nrrrrr-rWrRrrrr8r)rrZrrHrrrr))r*rrs0rs r+test_timestamp_lord_howez4TestLocalTimeDisambiguation.test_timestamp_lord_howes __U # >>&" % 4 MMZ [ T1aB ' YYAY  ( ( * YYAY  ( ( * dB'r-ctddddd}|jd}|j}|j}|j|j d|j|j d|j|t z||j|j d |j|j d y) NrrrUrr r8rrr)rrrr)ryrr9)r*rradt0adt1s r+rz+TestLocalTimeDisambiguation.test_astimezonestRAr*kkqk!~~~~ . . d+ A& A&r-c.td}tdddd}tD]q\}}}||fD]d}|j||}|j |}|j |||j |dkrdn |j |j fsy)Nrr8rWr)rrrrrr)r9) r*rrurrrrrrgs r+test_pickle_foldz,TestLocalTimeDisambiguation.test_pickle_fold s aL aAA &)7 %GYWMM!U+OOA&  A&  uqy!affqvvF *8r-ctd}tdddd}|jt|d|jt|dy)Nrr8zdatetime.time(0, 0, fold=1)z(datetime.datetime(1, 1, 1, 0, 0, fold=1))rrr)rrs r+rz%TestLocalTimeDisambiguation.test_reprsH aL aAA & a"?@ bC Er-c tddddttjz }tddddt}|j |j t |j |j t|j |jdj t |j |jdj tdD]o}tdddd|t}|j |j t |j |jdj tqdD]o}tdd d d|t}|j |j t|j |jdj t qy) NrYrr.rrrUr8r4rWrT) rrrrr)r{rrr)r* dt_summer dt_winterrrus r+rz$TestLocalTimeDisambiguation.test_dsts_T2r1X>AUAUU T2r1X>  $/ $/ ***2668$? ***2668$?"F$B6(CB   RVVXt ,   RZZQZ/335t < ""F$1aAB   RVVXt ,   RZZQZ/335t < "r-ctddddttjz }tddddt}|j |j dt z|j |j dt z|j |jd j dt z|j |jd j dt zy) NrYrr.rrrUrXr r8)rrrrr)rvrr)r*rrs r+rz*TestLocalTimeDisambiguation.test_utcoffset9sT2r1X>AUAUU T2r1X>  ,,.T : ,,.T : ***2<<>T J ***2<<>T Jr-ctddddttjz }tddddt}tj |}tj |}|j ||dt zz |j ||dt zz |j |jd |j |jd tddddd t}tj |}|t z }tj |}|j |||j |jd |j |jd tdddd d t}tj |}|j |j|jfd tddddd t}tj |}|j |j|jfd tddddd t}tj |}|j |j|jfdy)NrYrr.rYrrTrWrRrr r)rr)r.rrU)rYr) rrrrrr)rr9rra) r*u_summeru_wintert_summert_winterrrgrrs r+rz(TestLocalTimeDisambiguation.test_fromutcCsD"b!H= @T@TTD"b!H=##H-##H- 8a$h#67 8a$h#67 * * T2r1b :   a  T    a  R  !$ !$ T2r1b :   Q  !%%(3 T2r1b :   Q  !%%'2 T1aAh 7   Q  !%%'2r-c tdddt}|j||jtj tdddt}|j||jtj y)NrNrrrY)rrr)rrr1rs r+test_mixed_compare_regularz6TestLocalTimeDisambiguation.test_mixed_compare_regulards\ T1a 1 ALL67 T1a 1 ALL67r-ctdddddt}|jtj}|j |||j ||y)NrYrr.rrrrrrrr1r)r*t_fold t_fold_utcs r+test_mixed_compare_foldz3TestLocalTimeDisambiguation.test_mixed_compare_foldjsJ$B2h?&&x||4  FJ/ J/r-ctdddddt}|jtj}|j |||j ||y)NrYrWrTrUrrr)r*t_gap t_gap_utcs r+test_mixed_compare_gapz2TestLocalTimeDisambiguation.test_mixed_compare_gappsJq!Q8<$$X\\2  E9- Iu-r-ctdddt}|jt|t|j dtdddddt}tdd d d dt}|jt|t|j d|jt|t|j dy) NrNrrr8rYrr.rrWrTrU)rrr)rr)r*rrrs r+test_hash_awarez+TestLocalTimeDisambiguation.test_hash_awarevs T1a 1 a$qyyay'8"9:$B2h?q!Q8< ftFNNN,B'CD ed5==a=+@&ABr-N)rGr_r`rrrrr^rrr rOrrrrrrrrrrrrrrrr!r-r+rrms#09.&$5.1 = W34&5&W./ %0 %< W34*5* W./(0(W34 '5 'GE=6K3B8 0 . Cr-rcbtj|\}}t|dt||Sr/)r1teenextrf)iterablerirjs r+pairsrs) == "DAqDM q!9r-ceZdZdZdZedZedZedZ e dddjZ dZ d Zd Zd Zd ZeddZeddZdZdZeddZdZdZdZy )ZoneInfoz/usr/share/zoneinfocN||_||_|j|||_y)z :param ut: array Array of transition point timestamps :param ti: list A list of (offset, isdst, abbr) tuples :return: None N)uttiinvertr)r*rrs r+rozZoneInfo.__init__s$++b"%r-cFtd|td|f}|r|ddtz}|ddxx|z cc<|ddxx|z cc<tdt|D]?}|d|xx||dz dtzz cc<|d|xx||dtzz cc<A|S)Nrrr)rSECrgr)rrrrmrms r+rzZoneInfo.invertsCneCn - U1X_F qE!H H qE!H H1c"g&1aBqsGAJ#--1aBqE!HO+' r-c |jdjdk7r td|jdt d}|j |dt jdk7r|jt d}|j ||dt jdk7r|jt d }|j ||dg}t|d D]6}|jtjd |jd 8|j|d }t|D]>\}\}} } || |jd| j} td|| | f||<@dgt!|z} t|D] \}} || | |<||| }|S)NrWTZifznot a zoneinfo filerrmrQrrrrz>lbbrYrU)readdecoderseekrfromfilerE byteorderbyteswaprgrstructunpackr'findrr)rYfileobjcountsr type_indicesttisrmabbrsgmtoffisdstabbrindabbrridxr*s r+rzZoneInfo.fromfiles <<? ! ! #v -23 3 Rs# ==E ! OO  3Z GVAY' ==E ! KKMSz gvay1vay!A KK fgll1o> ?" VAY',5T? 'A'wAw!78??AD F+UD9DG,;Vc"g  -FAsIBqE.2r{ r-ctjj|j|}t |d5}|j |cdddS#1swYyxYw)Nrb)ospathjoinzonerootopenr)rYrBrrs r+fromnamezZoneInfo.fromnames=ww||CLL$/ $ <<?  s AArrct|ts td|j|ur t d|j |j z dz|jdzz|jdzz|jz}||jdkr|jd}d}ntj|j|}|j|dz |ksJ|t|jk(s||j|ksJ|j|dz |\}}|d|dz }|td||j|dz z kD}||dz }|r|j!d S|S) rrrrZrrSrrrUr8)rgrrrrrc EPOCHORDINALrarrrrbisect bisect_rightrrr)r*rurttir9rtti_prevshifts r+rzZoneInfo.fromutcsf"h'DE E 99D 45 5llnt'8'88EAww~&yy2~&yy! twwqz !''!*CD%%dggy9C773q5>Y. ..#dgg,&)dggcl*B BB GGCE#.MHcQK#a&(EIaTWWSU^)CDDD c!f  ::1:% %Ir-c8|j|jz dz|jdzz|jdzz|jz}|j |j }tj||}|jtd|dz |S)NrZrrSrr) rcrrarrrr9rrrr)r*rurmrrrs r+_find_tizZoneInfo._find_tisllnt'8'88EAww~yy2~yy WWRWW !!"i0wws1cAg'**r-c&|j|dSrYr rts r+rvzZoneInfo.utcoffset}}R##r-cB|j|d}|rtStSr)r rr)r*rur s r+r{z ZoneInfo.dsts! b!$ t&$&r-c&|j|dS)NrUr"rts r+ryzZoneInfo.tznamer#r-Nc#PK| |j}tjj|d} t |}|5|D]<}|j }|s|jdr(|jd> dddy#t $rYywxYw#1swYyxYww)Nzzone.tab#rU) rrrrrrmstripr?r)rYzonedirzone_tabrlines r+ zonenameszZoneInfo.zonenamess ?llG77<<4 XAzz| 4**,q/)Q    QsJ/B& B B&BB*B B& BB&BB&B#B&cdx}x}x}}tjx}}tx}} tjx} } dx} } tjx}}dx}}t|dd}|j D]}|dz }|j |}|jD]\}}||kr |tkDrG|dz }||f|| fkDr|}|} |} |tj|z f|tj| z fksU|}|} |} \|tkrJ|dz }| }||f| |fkDr|} |}|}|tj|z f|tj|z fks|}|}|}|dz }|||f}td|ztdt|f|zztd|dd| d| td |dd| d| td |dd|d|td | dd|d|y) NrrzNumber of zones: %5dz@Number of transitions: %5d = %d (gaps) + %d (folds) + %d (zeros)zMin gap: z>16z at z in zMax gap: zMin fold: zMax fold: ) rrrrrr,r transitionsprintr)rY start_yearcount gap_count fold_count zeros_countmin_gapmin_foldmax_gapmax_foldmin_gap_datetimemax_gap_datetime min_gap_zone max_gap_zonemin_fold_datetimemax_fold_datetime min_fold_zone max_fold_zone stats_sincezonenamerrur trans_countss r+statszZoneInfo.statss7888 8J&]]*(!!(.6ll:+&** |08 <-(,, z1a0  H QJEh'B^^- E #4<NIr{g/?%@@"''/ +-(x||b01WhllM]>]4^^"''/ +-(T\!OJ"FEr{h0A%BB#((0 ,.)x||b01Xx||N_?_4``#((0 ,.)1$K3.(:":{;  *U23 PL!#l24 5 W>NP\]^ W>NP\]^ X?PR_`a X?PR_`ar-c#Ktt|j|jD]-\\}}\}}|d|dz }tt |z|f/yw)Nrr)rrfrr EPOCH_NAIVErr*_prev_tirrrs r+r.zZoneInfo.transitionsCsY%*3tww+@%A !LQ'1bqEGAJ&E1!55= =&BsAAc#Ktt|j|jD]I\\}}\}}|d|dz }|tks!|d|dk(s-t t || |d|dfKyw)zLFind all folds with the same value of isdst on both sides of the transition.rrrUN)rrfrrr_utcfromtimestamprrGs r+ nondst_foldszZoneInfo.nondst_foldsHsz%*3tww+@%A !LQ'1bqEGAJ&Et|1 3'!5vwqz2a5PP&BsA A9 A9 A9c d}|jD]]}|j|}|jD]7\}}}} |j|ks|r|| k7r|dz }t d|||||| fz9_y)Nrrz%3d) %-30s %s %10s %5s -> %s)r,rrLrZr/) rY same_abbrr0r1rBrrur prev_abbrrs r+print_all_nondst_foldszZoneInfo.print_all_nondst_foldsOs Hh'B.0oo.?*E9d77Z'9d9J 4hE9dCDE /@(r-c#^K|jD]\}}|tks|| fywr/r.rr*rrs r+foldszZoneInfo.folds[s/((*HAut|%i+s - -c#\K|jD]\}}|tkDs||fywr/rRrSs r+gapsz ZoneInfo.gaps`s-((*HAut|h+s , ,c#JK|jD] \}}|r |ywr/)r.rSs r+zeroszZoneInfo.zeroses%((*HAu+s##r/)r)Fr)rGr_r`rrorr classmethodrrrrcrrr rvr{ryr,rDr.rLrPrTrVrXr!r-r+rrs$H &  ""H## a#--/L<+$'$ * *-b-b`> Q E E  r-rcheZdZdZdZdZdZdZeje e dddZ y ) ZoneInfoTestzAmerica/New_YorkcLtjdk(r|jdtjdk(r|jd tj |j |_y#t$r+}|jd|j d|Yd}~yd}~wwxYw)Nvxworksz"Skipping zoneinfo tests on VxWorksrz"Skipping zoneinfo tests on Windowsz Skipping z: )rErRrHrrrBrFileNotFoundError)r*errs r+rzZoneInfoTest.setUpnsz <<9 $ MM> ? <<7 " MM> ? D'' 6DG  D MMt}}cB C C Ds $A// B#8!BB#c|j|jd|jt|jf|jd|jt|jfy)Nr)r)rr9idr)r*rirjs r+assertEquivDatetimesz!ZoneInfoTest.assertEquivDatetimesxsR !))4)0!&&"QXX,G))4)0!&&"QXX,G Ir-cX|j}|jD]\}}d|zd|z|tjz fD]}||z}|j |j |}|j |jd|j tjj|}|j|||j}|j |j d||z|j|jtj|j tj tj |fD]F}||z}|j |}|j |}|j |jdHy)Nrr^rr) rrTrrrrr)r9rr1rrbrv r*rrurrudtradtrvs r+ test_foldszZoneInfoTest.test_folds|sW WWIB%iuei6J6J.JK1fjjB!78  1-kkk6AA"E))#s3MMO   D!93?K))#..*F*-++X\\+*JLL!+++U31fkkk,jjo  1- 4$r-c|j}|jD]\}}d|zd|z|tjz fD]F}||z}|j |}|j |}|j |jd|j tjj|}|j|||j}|j |j d|j d|z|j |j ||z |z}|j|j dj|j djd|zItj |fD]D}||z}|j |j |}|j |jdFy)Nrr^rrr8zAt %s.)rrVrrrrr)r9rr1rrbrv assertLessrds r+ test_gapszZoneInfoTest.test_gapss WWIB%iuei6J6J.JK1fkkk,jjo  1-kkk6AA"E))#s3MMO   D!93;;d;;SV_;_`jj2!67%?!C  3 = = ? #  3 = = ? (30L!+++U31fjjB!78  1-4!#r-tzsetz"time module has no attribute tzsetc d|jvs|jjdr|jd|jz|j}tj j d}|jtj d< tj|jD]\}}|jdk\rn|tdddz tz}|tz}dd d d |dz |d z|d zfD]v}||z}tj|} tj||jd} |j| | | j!} |j#|| x|d kDstj||dz z } | j!} | jdj!}|j#| ||dz z|j#|||dz z | j%t&j(}| jdj%t&j(}|j#||t+d |z|tj d=n|tj d<tjy#|tj d=n|tj d<tjwxYw)NRiyadh8zright/z Skipping %sTZirriir ri@i2rrUr8)rBr?rHrrenvirongetrrkr.rZrrrrrbrr)rrr1r)r*rrnrerrr6rrsdttzdtrruts0ts1utc0utc1s r+test_system_transitionsz$ZoneInfoTest.test_system_transitionssb  & ((2 MM-$--7 8 WW ZZ^^D !== 4!  KKM nn. U88t#HT1a00S8c\$hAq&"y."y.BAQA"003C#11!R8@@@MD--c48B$$Q+B6!//3eai?B,,.C**!*,668C$$S"rAv+6$$S"rAv+6==6D::1:-88FD$$T4)Ar2B+BC3/6zJJt$#% 4 KKM zJJt$#% 4 KKMsC-J&?C+J&&=K#N) rGr_r`rBrrbrgrjrP skipUnlessrrrwr!r-r+r[r[ksK!HDI.,..Xw!E..r-r[ceZdZfdZxZS)ZoneInfoCompleteTestcg}tdrntjD]W}td|ztfi}||_t |D]+}|jds|j||-Yt|)|y)NtzdatazZoneInfoTest[%s]test_) rrr,rr[rBr5r?rsuperro)r*rrBTestmethodrFs r+rozZoneInfoCompleteTest.__init__s{ x ( **,.5 K $ !$iF((1 T&\2(- r-)rGr_r`ro __classcell__)rFs@r+rzrzs    r-rzceZdZdZy)IranTestz Asia/TehranN)rGr_r`rBr!r-r+rrsHr-rzneed _testcapi moduleceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZy)CapiTestc|jjjdr|jdt j y)NPurezNot relevant in pure Python)rFrGr@rH _testcapitest_datetime_capir2s r+rzCapiTest.setUps5 >> " " + +F 3 MM7 8 $$&r-cdD]R}tj|}|j|5|j|tj dddTy#1swY_xYw)NTF) use_macro)rget_timezone_utc_capir.r0rr1)r*rcapi_utcs r+ test_utc_capizCapiTest.test_utc_capisM&I 66yAH 2 h 532'32s !AA" c tj\}}}ttdd}ttd}d||fd||fd||fg}|D]\}}} |j |5|j || t dd d | } t dd d | } |j | | |j | j| jt dd d d tj } |j | jtj| dddy#1swYxYw) Nr rrest_capi est_macro est_macro_nn)rBrNrUrWrrR) rmake_timezones_capirrr.r)rryr1r) r*rrr exp_named exp_unnamedcasesrBtz_acttz_exprrOrs r+test_timezones_capizCapiTest.test_timezones_capis,5,I,I,K))\YR0%8 yr23 9 - )Y / \; 7  %* D&&4(  0tQ&9tQ&9  c*  szz|<!$1a E   !=vF)(%*((s -B>D66D? c~Gddt}t|fD]}dD]}||}|j||5tj|\}}}|j ||j |j ||j |j ||jdddy#1swYxYw)Nc eZdZy)=CapiTest.test_PyDateTime_DELTA_GET..TimeDeltaSubclassNrr!r-r+TimeDeltaSubclassrrr-r)r7韆rrYr)rr.rPyDateTime_DELTA_GETr)rOrr)r*rklassrrrOrrs r+test_PyDateTime_DELTA_GETz"CapiTest.test_PyDateTime_DELTA_GETs    !23E:4L\\e$\72;2P2PQR2S/D'<$$T1662$$Waii8$$\1>>B 87;487 A.B33B< c~Gddt}t|fD]}dD]}||}|j||5tj|\}}}|j ||j |j ||j |j ||jdddy#1swYxYw)Nc eZdZy)2CapiTest.test_PyDateTime_GET..DateSubclassNrr!r-r+rr)rr-r))rNrrU)rkrUryr)rr.rPyDateTime_GETr)rZr[r)r*rrrrrZr[rs r+test_PyDateTime_GETzCapiTest.test_PyDateTime_GET(s 4 L)E54L\\e$\7'0'?'?'B$D%$$T1662$$UAGG4$$S!%%0 876*87rc "Gddt}t|fD]}ddddddd d tjffD]}||}|j|| 5t j |\}}}}} |j ||j|j ||j|j ||j|j ||j|j| |jdddy#1swYxYw) Nc eZdZy);CapiTest.test_PyDateTime_DATE_GET..DateTimeSubclassNrr!r-r+r r7rr-r )rrrrrrrrrrrrrr) rrr1r.rPyDateTime_DATE_GETr)rarrrer0r) r*r rrrrarrrers r+test_PyDateTime_DATE_GETz!CapiTest.test_PyDateTime_DATE_GET6s x  01E92r2r5",,()4L\\e$\7,5,I,I!,L>D&&+v$$T1662$$VQXX6$$VQXX6$$[!--@MM&!((387 )2 87s B(DD cGddt}t|fD]}dddddtjffD]}||}|j||5t j |\}}}}} |j ||j|j ||j|j ||j|j ||j|j| |jdddy#1swYxYw) Nc eZdZy)7CapiTest.test_PyDateTime_TIME_GET..TimeSubclassNrr!r-r+rrJrr-r)rr r7rrr r7rr) rrr1r.rPyDateTime_TIME_GETr)rarrrer0r) r*rrrrrarrrers r+test_PyDateTime_TIME_GETz!CapiTest.test_PyDateTime_TIME_GETIs 4 L)E)b"b(,,794L\\e$\7.7.K.KA.N>D&&+v$$T1662$$VQXX6$$VQXX6$$[!--@MM&!((3879*87s B(DD ctj\}}}|jd5|j|tj ddd|jd5|j|tj ddd|jd5|j |tj t tdd}|j||tdd d | }tdd d | }|j|||j|j|jdddy#1swYxYw#1swYxYw#1swYyxYw) Nru)testnamervnon_utcrrrrNrUrWr) rget_timezones_offset_zeror.r0rr1rrr)rry)r*rurvr non_utc_exprrOs r+test_timezones_offset_zeroz#CapiTest.test_timezones_offset_zero[s'AACdG \\6\ * MM$ -+\\6\ * MM$ -+\\9\ -   Whll 3"91#5r:K   Wk 24Ag6C4Ak:C   S# &   SZZ\3::< 8. - + *+ *. -s$!E&!E!B'E*EE'*E3c Gddt}tddd}|ddd}tddd}tj}|j |||j |||j |||j ||d|j ||d|j ||dt tddtdtjtddg}|D]=}d D]6}|j|| 5|j |||ddd8?y#1swYExYw) Nc eZdZy).CapiTest.test_check_date..DateSubclassNrr!r-r+rrrrr-rrT 2011-01-01rrrargexact) rrrdatetime_check_daterrrrrrr1rr.) r*rrdsruis_daterrrs r+test_check_datezCapiTest.test_check_dateqs) 4  q!  $1 % dAq !//  #  $  $ 4() T*+ T*+L! hllDRL:C&\\c\7$$WS%%8987'77s (EE c :Gddt}tdd}|dd}tj}|j|||j|||j||d|j ||dt t ddtdtjtdddg}|D]=}d D]6}|j|| 5|j |||ddd8?y#1swYExYw) Nc eZdZy).CapiTest.test_check_time..TimeSubclassNrr!r-r+rrrr-rrr Trrrrr) rrdatetime_check_timerrrrrrr1rr.)r*rrris_timerrrs r+test_check_timezCapiTest.test_check_times 4  RL "b !//  #  $ 4() T*+L! hllDq!,<>C&\\c\7$$WS%%8987'77 +DD c FGddt}tddddd}|ddddd}tj}|j|||j|||j||d|j ||dt t ddtdtjtdddg}|D]=}d D]6}|j|| 5|j |||ddd8?y#1swYExYw) Nc eZdZy)6CapiTest.test_check_datetime..DateTimeSubclassNrr!r-r+r rrr-r rrrr Trrr) rrdatetime_check_datetimerrrrrrr1rr.)r*r rur is_datetimerrrs r+test_check_datetimezCapiTest.test_check_datetimes x dAq"b )tQ2r277   B(  C()  B-. S$/0L! hllDq!,<>C&\\c\7$$[e%<=87'77s 1DD c :Gddt}td}|d}tj}|j|||j|||j||d|j ||dt t ddtjtdddtdddg}|D]=}dD]6}|j||5|j |||ddd8?y#1swYExYw) Nc eZdZy)4CapiTest.test_check_delta..TimeDeltaSubclassNrr!r-r+rrrr-rrTrrrr) rrdatetime_check_deltarrrrrr1rrr.)r*rrVtds is_timedeltarrrs r+test_check_deltazCapiTest.test_check_deltas   q\" 55   R()  S)*  R./ c401L d4A.q!0DFC&\\c\7$$\#u%=>87'77rc Gddt}t}|}ttd}tj}|j |||j |||j |||j ||d|j ||d|j ||dttddtdddtdddg}|D]=}d D]6}|j|| 5|j |||ddd8?y#1swYExYw) Nc eZdZy)2CapiTest.test_check_tzinfo..TZInfoSubclassNrr!r-r+TZInfoSubclassrrr-rr rTrrrrr) rrrrdatetime_check_tzinforrrrrrr.) r*rrtzisr is_tzinforrrs r+test_check_tzinfozCapiTest.test_check_tzinfos! V h ib) *33   #'  " &  $(  #t,- 2t,- 4./LT1a (4A"68C&\\c\7$$YsE%:;87'77s EE c tddd}dD]e}|j|5tj||j|j |j }|j||dddgy#1swYrxYw)NrrrFTmacro)rr.rget_date_fromdaterZr[rr)r*exp_dater c_api_dates r+test_date_from_datezCapiTest.test_date_from_datesqa$ EE*&88MMNNLL "   X6+*!** A A99B c jtddddddd}dD]}|j| 5tj||j|j |j |j|j|j|j}|j||dddy#1swYxYw) Nrrrrrrrrr) rr.rget_datetime_fromdateandtimerZr[rrarrrer)rs r+test_datetime_from_dateandtimez'CapiTest.test_datetime_from_dateandtimesD!RRU; EE*&CCMMNNLLMMOOOO((*   X6+*!**s A5B))B2 ctddddddd}dD]}d D]}|j|| 5tj||j|j |j |j|j|j|j|j }|j|||j|j|jdddy#1swYxYw) Nrrrrrrrrrrrr9) rr.r#get_datetime_fromdateandtimeandfoldrZr[rrarrrer9r))r*rr9rrs r+%test_datetime_from_dateandtimeandfoldz.CapiTest.test_datetime_from_dateandtimeandfoldsD!RRU;D$\\D\9!*!N!N       ,,  "'J$$Z:$$Z__hmmD:9%99s B&C""C+ c "tdddd}dD]p}|j|5tj||j|j |j |j}|j||dddry#1swY}xYw)Nrrrrrr) rr.rget_time_fromtimerarrrer))r*exp_timer c_api_times r+test_time_from_timezCapiTest.test_time_from_time*s|BE* EE*&88MMOOOO(( *   X6+*!**s ABB c tdddd}dD]}dD]}|j||5tj||j|j |j |j|j}|j|||j|j|jdddy#1swYxYw)Nrrrrrrr) rr.rget_time_fromtimeandfoldrarrrer9r))r*rr9rrs r+test_time_from_timeandfoldz#CapiTest.test_time_from_timeandfold8sBE*D$\\D\9!*!C!C    ,, "'J$$Z:$$Z__hmmD:9%99s BB>>C c tddd}dD]e}|j|5tj||j|j |j }|j||dddgy#1swYrxYw)Nrrrrr)rr.rget_delta_fromdsurOrrr))r* exp_deltar c_api_deltas r+test_delta_from_dsuzCapiTest.test_delta_from_dsuIsub"e,  EE*'99NN%%** ,   i8+*!**rc tdddj}dD]Y}|j|5tjt ||}|j |tdddddd[y#1swYfxYw)NrWrrr)rrr.rget_date_fromtimestamprhr)r)r*rrrs r+test_date_from_timestampz!CapiTest.test_date_from_timestampVso dAr " , , . EE*44SWeD  Dq"$56+*!**s =A;;B c dddttddfddd ttddfg}tj}|D]l}d D]e}|j || 5|\}}}t |d |i}t |j} || |||} |j|| dddgny#1swYtxYw) N)r rWrNF)r NTr rrT)r rWrr_r NF)r NTr r)caserr) rrrget_datetime_fromtimestampr.rrhrr)) r*rrr rdtuprusetzdt_origrrs r+test_datetime_from_timestampz%CapiTest.test_datetime_from_timestamp_s ( ' HYQ%78$ ? 0 / "HYQ-?$@$ G  #==D$\\t5\9*.'D&%&4?4<: 77"E( 7E" 975r-rc8|jt|Sr/)addTestrz)loaderstandard_testspatterns r+ load_testsr vs/12 r-__main__)trrrrrr1rrrrGrrErPrroperatorrrrrrr r r r testr test.supportrrrrrr(rrrrrrrrrr ImportErrorrr[r_loadsr3rgrOrrrFrr(rrTestCaser%rbrrrrrr5rLrLrRrWrrrTrXrZrrr^rrrrr*rrrrrrrr/r0rr\rrrrrrrrrrrr[ TestSuiterzrrQrr rGmain)rs0r+r s   CCCJJ"%#    fmm,  %V%<%f559999tQ1a( $r2r *  El El 5)""5)v & &<;< E$8Ef^/""^/B{D8$${DB.7.7fs+X->->sr)8$$)B4M;&(9(9M;fxT78T7n* < 4u9&(9(9u9t ]4]4BYE:x'8'8YE|y C\:x/@/@y Cz | 1 qQ Aq!Q  !RQ ((T b)eU 3 b)eU 3 b*eU 3 b)eU 3 q% # vy! ,}h//}FGOx  GO^9f9D1'1f J 6 J 6 K 6 J 6/&/dOC("3"3OCb1o cvcLo8$$od  8--  |d"$;<D5x  D5=D5N   zHMMOkRI  Cs*P%P P!PPPP