a XC?hg@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl m Z ddlmZmZmZmZmZmZmZmZmZddlmZddlmZmZmZmZddlZ ddlm!Z!m"Z"ddlm#Z#dd lm$Z$dd lm%Z%dd lm&Z&dd lm'Z'mZddl%Z(ddl)Z)ddl*Z*ej+ej,hZ-d de.ej/dDZ0e1e0ej/dkslJdddigdfZ2e3dZ4e3dZ5Gddde j6Z7Gddde$Z8Gddde8Z9Gddde$Z:Gddde j6Z;Gd d!d!e j6ZGd&d'd'e j6Z?Gd(d)d)e'Z@Gd*d+d+e=e j6ZAGd,d-d-eZBGd.d/d/eAZCGd0d1d1eCZDGd2d3d3e%ZEGd4d5d5e=e j6ZFGd6d7d7ZGGd8d9d9eFeGe j6ZHGd:d;d;eCeGe j6ZIdZLe#dd?ZMe#dd@ZNeddAddBZOedddCdZPGdDdEdEe$ZQeQdFdGdHdIZReQdJdKdLdMZSeQdNdOdPdQZTeQdRdSdTdUZUe8ddVdZVe8dWdXdZWGdYdZdZe j6ZXGd[d\d\e j6ZYGd]d^d^e$ZZGd_d`d`eZZ[e[dFdadHdIZ\e[dJdbdLdMZ]e[dNdcdPdQZ^e[dRdddTdUZ_Gdedfdfe$Z`Gdgdhdhe j6Zae#ddZbdidjZcGdkdldle$ZdGdmdndne j6ZeGdodpdpe jfZgGdqdrdreeZhGdsdtdte j6ZidudvZjekdwkre ldS)xzTTest date/time type. See http://www.zope.org/Members/fdrake/DateTimeWiki/TestCases N)array) ltlegtgeeqnetruedivfloordivmod)support)is_resource_enabled ALWAYS_EQLARGESTSMALLEST)MINYEARMAXYEAR timedeltatzinfo)timetimezone)datedatetimecCsg|]}tt|fqS)pickle).0protorr8/opt/alt/python39/lib64/python3.9/test/datetimetester.py *sr! g@A@abcrinfnanc@s,eZdZddZddZddZddZd S) TestModulecCs$t}||jd||jddS)Nr"')datetime_module assertEqualrr)selfrrrr test_constants=szTestModule.test_constantscCs$tt}tjD]}|||qdS)z2Test that __all__ only points to valid attributes.N)dirr)__all__assertIn)r+Z all_attrsattrrrr test_allBs zTestModule.test_allcCsTd|jjvr|dt}tddt|D}tgd}|||tgdS)NZ_Purez"Only run for Fast C implementationcss&|]}|ds|ds|VqdS)__N) startswithendswith)rnamerrr Msz/TestModule.test_name_cleanup..) rrrrZ datetime_CAPIrrrrsys) __class____name__skipTestr)setr-r*)r+rnamesZallowedrrr test_name_cleanupHs    zTestModule.test_name_cleanupcCsd|jjvr|dtj}||ddd||ddd||ddd ||d dd||ddd||d dd ||d d d ||dd d||d d d||dd d ||dd d ||dd d||dd d||dd d dS)N_Fastz'Only run for Pure Python implementationr#)r8r9r:r)Z_divide_and_roundr*)r+Zdarrrr test_divide_and_roundTs"  z TestModule.test_divide_and_roundN)r9 __module__ __qualname__r,r1r=rKrrrr r';s r'c@s6eZdZd ddZddZddZdd Zd d Zd S) FixedOffset*cCs>t|trt|d}t|tr(t|d}||_||_||_dSNminutes) isinstanceintr_FixedOffset__offset_FixedOffset__name_FixedOffset__dstoffsetr+offsetr5Z dstoffsetrrr __init__us    zFixedOffset.__init__cCs |jSN)rVlowerr+rrr __repr__}szFixedOffset.__repr__cCs|jSr[)rUr+dtrrr utcoffsetszFixedOffset.utcoffsetcCs|jSr[)rVr_rrr tznameszFixedOffset.tznamecCs|jSr[)rWr_rrr dstszFixedOffset.dstN)rO)r9rLrMrZr^rarbrcrrrr rNss  rNc@seZdZdddZddZdS)PicklableFixedOffsetNcCst||||dSr[)rNrZrXrrr rZszPicklableFixedOffset.__init__cCs|jSr[)__dict__r]rrr __getstate__sz!PicklableFixedOffset.__getstate__)NNN)r9rLrMrZrfrrrr rds rdc@seZdZddZdS)_TZInfocCstSr[)random)r+r)rrr rasz_TZInfo.utcoffsetNr9rLrMrarrrr rgsrgc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestTZInfoc CsRt}tddddddd|}|t|Wdn1sD0YdS)NrD rAr)rgr assertRaises TypeErrorra)r+Ztz1dt1rrr test_refcnt_crash_bug_22044s z&TestTZInfo.test_refcnt_crash_bug_22044cCs@t}tj}|t|j||t|j||t|j|dSr[)rrmaxroNotImplementedErrorrbrarc)r+Zuselessr`rrr test_non_abstractnesss z TestTZInfo.test_non_abstractnesscCsrGdddt}|t|t|dd}||tt}|t|j||t|j ||t|j |dS)Nc@seZdZddZdS)z9TestTZInfo.test_subclass_must_override..NotEnoughcSs||_||_dSr[)Z_NotEnough__offsetZ_NotEnough__name)r+rYr5rrr rZszBTestTZInfo.test_subclass_must_override..NotEnough.__init__N)r9rLrMrZrrrr NotEnoughsrvrAZNotByALongShot) r assertTrue issubclassassertIsInstancernowrortrbrarc)r+rvrr`rrr test_subclass_must_overrides  z&TestTZInfo.test_subclass_must_overridecCsntdd}||ttdfD]F}|||tdd|||d|| |tddq"dS)NrAZThreerQrO) rNryrrrzr*rarrbrc)r+Zfor`rrr test_normals   zTestTZInfo.test_normalcCsTtt}|t|ttD]0\}}}|||}||}|t|tqdSr[)r__new__assertIstypepickle_choicesdumpsloads)r+origpickler unpicklerrgreenderivedrrr test_pickling_bases    zTestTZInfo.test_pickling_basec Cstdd}t|dfft|fft|dfffD]\}}||}|d}||t|t|||| d|||d|t D]`\}}}| ||} | | } || t|t| ||| d||| d|qq*dS)NrQcookieEST) rrdrrbryrr~rr*rarrr) r+rYZotypeargsrZonamerrrrrrrr test_pickling_subclasss$        z!TestTZInfo.test_pickling_subclasscs`tddGfdddt}|}tddddd|d }||}||||dS) Nr"hourscs0eZdZdZfddZfddZddZdS) z0TestTZInfo.test_issue23600..UKSummerTimez~Simple time zone which pretends to always be in summer time, since that's what shows the failure. csSr[rr_) DSTOFFSETrr rasz:TestTZInfo.test_issue23600..UKSummerTime.utcoffsetcsSr[rr_)DSTDIFFrr rcsz4TestTZInfo.test_issue23600..UKSummerTime.dstcSsdS)N UKSummerTimerr_rrr rbsz7TestTZInfo.test_issue23600..UKSummerTime.tznameN)r9rLrM__doc__rarcrbrrrrr rs  rrkrG r)rrrfromutcr*ra)r+rtzutrrr test_issue23600s  zTestTZInfo.test_issue23600N) r9rLrMrrrur{r|rrrrrrr rjs  rjc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$ TestTimeZonecCs8ttddd|_ttdd d|_tddd|_dS)N#@rACDTrBrr")rrrrrDTr]rrr setUpszTestTimeZone.setUpcCs8|j|jtjtjtjfD]}|t||dqdSr[) rrrutcminrsr*strrbr+rrrr test_strs zTestTimeZone.test_strcCs>t}|j|jtjtjtjfD]}t|}||t |qdSr[) r)rrrrrrsreprr*eval)r+rrZtzreprrr test_reprs  zTestTimeZone.test_reprcCsNtddd}|tjdt|tjd| |tjd|dS)N;rrR)rr*rrraZEROrrs)r+limitrrr test_class_memberss zTestTimeZone.test_class_memberscCs|tjttd|tjttdd|tjttddtddtddfD](}t|}||dtdddqZtddtdfD]"}|t t||t t| q|t tdWdn1s0Y|t tdWdn1s0Y|t tt dWdn1sL0Y|t tt dWdn1s0Y|t tt dd Wdn1s0YdS) NrUTCr" microsecondssecondsrQrOABCextra) r~rrr assertIsNotr*assertNotEqualraro ValueErrorrpr)r+Z subminuterZinvalidrrr test_constructor s2466zTestTimeZone.test_constructorcCs |tjt||jtdSr[)ryrrrrr]rrr test_inheritanceszTestTimeZone.test_inheritancecCs|j}dD]<}|t}||t|||| t| |q |t|jdWdn1st0Y|t|jdWdn1s0YdS)N)rg?rrB)rHOURr*rrarorpr)r+dummyhrYrrr test_utcoffset!s6zTestTimeZone.test_utcoffsetcCs|tj|j|t|jdWdn1s@0Y|t|jdWdn1sv0YdS)NrrB) assertIsNonerrrcrrorprr]rrr test_dst,s6zTestTimeZone.test_dstcCs|dtjd|dttd|dtdtd|dtdtd|dttddd|d tdtd d|d ttd d|d ttd d d|dttd d  d|dttd d dd|dttd d d d|t|j dWdn1sT0Y|t|j dWdn1s0YdS)Nrz UTC-05:00z UTC+09:30rz UTC-00:01rQZXYZz UTC+01:06:40rz UTC-01:06:40zUTC+01:06:40.000001r"zUTC-01:06:40.000001rrB) r*rrrbrrrrorprr]rrr test_tzname2s&8zTestTimeZone.test_tznamecCs|ttj|jWdn1s.0Y|ttjdWdn1sd0Y|j|jt fD]J}|jj |d}||}| ||| || ||jj tjdq|dS)Nz not datetimer) rorrrrrrprrEasternreplacer*ra)r+rZutctimelocalrrr test_fromutcHs , * zTestTimeZone.test_fromutccCsR|tttt|tttt|tdttdtd|t ttttkWdn1sv0Y|tttth|ttdk| ttdktt}||t k| |t k||t k| |t k||t k| |t k| |t k||t k| |t k||t kdS)Nrr) rrrrr*rorpr/rw assertFalserrrrrrr test_comparisonTs$:zTestTimeZone.test_comparisoncCstddd}tjtjtjfD]^}||||j|d||||j|d|| ||j|d qdS)Nr"r) rrrrsrr*rbrrarcr+rrrrr test_aware_datetimeis    z TestTimeZone.test_aware_datetimecCs|j|jtjtjfD]2}tD](\}}}||||}|||qqtj }tD](\}}}||||}| ||qRdSr[) rrrrrsrrrr*rr~)r+rrrrtz_copyrrr test_pickletszTestTimeZone.test_picklecCsP|j|jtjtjfD]}t|}|||qtj}t|}|||dSr[) rrrrrscopyr*rr~r+rrrrr test_copy~s   zTestTimeZone.test_copycCsP|j|jtjtjfD]}t|}|||qtj}t|}| ||dSr[) rrrrrsrZdeepcopyr*rr~rrrr test_deepcopys   zTestTimeZone.test_deepcopyc Cstdddtddddtdddddg}|dd|D|D]:}|jd |d t|Wdq@1sp0Yq@td d td d dg}|dd|D|D]f}|jd|d B|tt|Wdn1s0YWdq1s0YqdS)NrrrrrRr?BrrRrrcSsg|] }| qSrrrdeltarrr r!z7TestTimeZone.test_offset_boundaries..Zgood)Z test_typerrr")rrcSsg|] }| qSrrrrrr r!rZbad)rextendsubTestrror)r+Z time_deltasrZbad_time_deltasrrr test_offset_boundariess   (  z#TestTimeZone.test_offset_boundariescCs,|tjt|ttddtdS)Nr"r)rrrrrr]rrr test_comparison_with_tzinfosz(TestTimeZone.test_comparison_with_tzinfoN)r9rLrMrrrrrrrrrrrrrrrrrrrrr rs"    rc@seZdZddZddZdS)HarmlessMixedComparisoncCs|ddd}||dk||dk|d|k|d|k||ddg|g|g|ddgg||tk||tk||tk||tk||tk||tk||tk||tk||tk||tkdS)Nr"r)theclassrrwr/rrr)r+merrr test_harmless_mixed_comparisons"z6HarmlessMixedComparison.test_harmless_mixed_comparisoncs|ddd|tfdd|tfdd|tfdd|tfdd|tfdd|tfdd|tfd d|tfd ddS) Nr"csdkSNrrrrrr rzGHarmlessMixedComparison.test_harmful_mixed_comparison..csdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rrcsdkSrrrrrr rr)rrorpr]rrr test_harmful_mixed_comparisonsz5HarmlessMixedComparison.test_harmful_mixed_comparisonN)r9rLrMrrrrrr rsrc@seZdZeZddZddZddZej ddZ d d Z d d Z d dZ ddZddZddZddZddZddZddZddZej dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Z d5d6Z!d7S)8 TestTimeDeltac Csv|j}t}|||dddddddd||d|dd||dd|dd||ddd|dd||dd|dd||dd|d d ||dd |d d ||dd |d d||dd|d d||dd|d d||dd|dd||dd|dd ||dd |dd ||dd |dd||dd|dd||dd|dddS)Nr)weeksdaysrrRr millisecondsrr"rrrrrDrr<rQrg$I$I?gUUUUUU?g?gMbP?)r*r)r+rtdrrr rs(zTestTimeDelta.test_constructorcCsb|j}t}|d}|dd}|ddd}|||||ddd||||dd||||dd|| |d|| |d|| |dd|| |dd d |t|||t| |||dd |||ddd |||d |d||d d |||d d |||d |dd|d ||dd||d |dd||d |ddd|d ||ddd||d |ddd||d| ||d| |||d| | ||d|dd||dd|d||d|dd|d||dd||d|d||d |dd||d|ddd||d |dd||d|ddd||d|d||d|dd||d|d||d |dd||d|ddd||d |dd||d|ddd|dd}|d|dd||d|dd||dd|d||dd|d||d|dd||d |dd|||dd!d"|d#d||dd!d$|d%d|d|dd||d|dd||d|d&d||d |d&d||d|dd||d|dd||d|d'd||d|d'd|td(d D]$}|||d|t|dqtd(d D]$}|||d|t|dq||dd!d)|d%d||d*d d+|d*d d,|ddd||d*dd|d*dd|ddddS)-NrDrrrrIiDQrFrQX>Qir#FiX'rCrr"i@i6i@?xrrArErBr@rr翶~Ϛ?@g6+1?iS g@gr?g`""K?-?ɚ;r>B)r*r__rsub__absrangeround)r+rrabcusirrr test_computationss   ""  zTestTimeDelta.test_computationscstddD]\|tfdd|tfdd|tfdd|tfddq d|tfd d|tfd d|tfd d|tfd d|tfd ddS)NrOr"?csSr[rrrr rr rYrz.csSr[rrr rr rZrcsSr[rrr rr r[rcsSr[rrr rr r\rrcsSr[rrrzerorr rarcsSr[rrrrr rbrcsSr[rrrrr rcrcsdS)Nrrrrr rdrcsdS)Nrrrrrr rer)rrorpZeroDivisionErrorr]r)rr rr test_disallowed_computationsTsz*TestTimeDelta.test_disallowed_computationscCs,td}|t|jt|t|jtdS)NrO)rror__mul__NAN __truediv__)r+rrrr test_disallowed_specialgsz%TestTimeDelta.test_disallowed_specialcCsDd\}}}t|||}||j|||j|||j|dS)N)r"rDrr*rrr)r+rrrrrrr test_basic_attributesms   z#TestTimeDelta.test_basic_attributescCsptdd}||ddD]}t|d}|||qdD](}t|d}|||tddqBdS) Nmrg8~A)g ˟ $@g ˟ $rrg.Ar)rrCirr")rr* total_seconds)r+rrZmsrrr test_total_secondsts   z TestTimeDelta.test_total_secondscCs.tddddddd}tdd }|||dS) NdrF8r@rgArrrrRrrr"r)rr*r+t1t2rrr test_carriess zTestTimeDelta.test_carriescCstddddddd}t}|t|t||tdd 7}|td d 7}||||t|t||d i}d ||<|t|d |||d dS)NrrFrr@riz r rDr1rr"rE)rr*hashlen)r+r"r#drrr test_hash_equalitys" z TestTimeDelta.test_hash_equalitycCsBd}t|}tD],\}}}|||}||}|||qdS)N)r"8)rrrrr*r+rrrrrrrrrr test_picklings   zTestTimeDelta.test_picklingcs$tdddtddd}||||k||k||k||k||kdD]}t|}||k||k||k||k||k||k||k||k||k||k||k||kqntD]|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfdd|tfddq(dS)NrErArG)rArArA)rErGrG)rErArBFTcskSr[rrZbadargr"rr rrz,TestTimeDelta.test_compare..cskSr[rrr/rr rrcskSr[rrr/rr rrcskSr[rrr/rr rrcskSr[rrr/rr rrcskSr[rrr/rr rrcskSr[rrr/rr rrcskSr[rrr/rr rr)rr*rwr OTHERSTUFFrorpr+r#rrr/r test_comparesF   zTestTimeDelta.test_comparec Cst}|j}|t|dd|t|dd|t|dd|t|dd|t|d d d d d |t|dddd d|t|ddd ddd|t|ddd|t|ddd|t|ddd d ddddS)Nr"z1 day, 0:00:00rz-1 day, 0:00:00rEz2 days, 0:00:00rCz-2 days, 0:00:00r:rrz12:58:59rArGz2:03:04irr*)rrrRrz-210 days, 23:12:34rz0:00:00.001000rz0:00:00.000003rrrrrRrrz999999999 days, 23:59:59.999999)rr*r)r+rrrrr rs$zTestTimeDelta.test_strcCsd|jj}|t|dd||t|ddd||t|dddd ||t|jd d d ||t|d ||t|jddd||t|jdddd||t|jdddd|dS)N datetime.r"z %s(days=1)r#rEz%s(days=10, seconds=2)r?z,%s(days=-10, seconds=2, microseconds=400000)rrz%s(seconds=60)z%s(0)rrz%s(microseconds=100))rrz%s(days=1, microseconds=100))rrz%s(seconds=1, microseconds=100)rr9r*rr+r5rrr rs2 zTestTimeDelta.test_reprcCstddddddtddtddd tdd d d fD]Z}t|}||d |dd}t|}|||t|j|j|j}|||q2dS)Nrrrrr46err"rrrErArrrr5 ) rrrwr3rr*rrr)r+rsZtd2rrr test_roundtrips    zTestTimeDelta.test_roundtripcCs~|tjt|tjt|tjt|tjtjk|tjtd|tjtddd|tjtddddS)Nr9rrg~.Arr")ryrrrs resolutionrwr*r]rrr test_resolution_infosz"TestTimeDelta.test_resolution_infocCstj}tj|}||8}|t|j||t|j| tj|}||7}|t|j||t|j| |tddtd}|t|jd|t|jd|t|j d|t|j d|t|j ddS) NcSstj Sr[)rrsrrrr rrz-TestTimeDelta.test_overflow..r"ʚ;geAg#B ;g|=gr{>) rr?rro OverflowError__sub____add__rsrr)r+tinyrdayrrr test_overflows   zTestTimeDelta.test_overflowcCs.td}|t|jt|t|jt dSNr")rrorBrINF)r+rFrrr _test_overflow_special'sz$TestTimeDelta._test_overflow_specialcCst}|j}||dd|d||dd|d||dd|dd||dd|dd||dd|d d||d d|d d||d d|d d||dd|dd||dd|dd||dd|dd||dd|dd||dd|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 dd |d!d||d d|jd |j|jdS)"Ng-C6:?rrg-C6:gMb@?rgMb@ga2U0*C?r"ga2U0*Crg~jtX?rEg~jtXrCgƠ>rgƠ?i|tArg?rg?rrrgٿgɿrr )rr*r?)r+rrZ us_per_hourZ us_per_dayrrr test_microsecond_rounding-s0  z'TestTimeDelta.test_microsecond_roundingcCs&tdd}||j|j|jfddS)Nrr)rrrr)r+rrrr test_massive_normalizationNs z(TestTimeDelta.test_massive_normalizationcCsR|td|tdd|tddd|tdd|tddS)Nr"rr)rwrrr]rrr test_boolSs zTestTimeDelta.test_boolcsGfdddtdd}|t|||dddd}|t|||d ||}|t|t|}|t|||j|j||j|j||j|j|t |t |||ddS) Ncs$eZdZefddZddZdS)z0TestTimeDelta.test_subclass_timedelta..Tcs|j|j|jSr[r;)rTrr from_td]sz8TestTimeDelta.test_subclass_timedelta..T.from_tdcSs&|jd|jd|jd}t|S)Nrg @rN)rrrr)r+sumrrr as_hoursas z9TestTimeDelta.test_subclass_timedelta..T.as_hoursN)r9rLrM staticmethodrUrWrrSrr rT\srTr"rrrir:i) rr~rr*rWrUrrrr)r+r"r#t3t4rrSr test_subclass_timedeltaZs    z%TestTimeDelta.test_subclass_timedeltac CsGdddt}|ddd}tdd}ddd |ddd fd d d |ddd fd dd |dddfg}|D]V\}}}||2|||}||||||Wdqj1s0YqjdS)Nc@s eZdZdS)z6TestTimeDelta.test_subclass_date..DateSubclassNr9rLrMrrrr DateSubclasszsr]r"rBraddcSs||Sr[rr(rrrr rrz2TestTimeDelta.test_subclass_date..rIraddcSs||Sr[rr`rrr rrsubcSs||Sr[rr`rrr rrrG)rrrr*ry) r+r]d1rtestsr5funcexpectedactrrr test_subclass_dateys     z TestTimeDelta.test_subclass_datec CsGdddt}|ddddd}tddd}d d d |ddd d fddd |ddd d fddd |ddddfg}|D]V\}}}||2|||}||||||Wdqv1s0YqvdS)Nc@s eZdZdS)z>TestTimeDelta.test_subclass_datetime..DateTimeSubclassNr\rrrr DateTimeSubclasssrir^r"rBr)rrRr_cSs||Sr[rr`rrr rrz6TestTimeDelta.test_subclass_datetime..rI racSs||Sr[rr`rrr rrrbcSs||Sr[rr`rrr rrrG)rrrr*ry) r+rircrrdr5rerfrgrrr test_subclass_datetimes    z$TestTimeDelta.test_subclass_datetimecCstdddd}tdd}|||d|||dtdd d }tdd }|||d |||dtd }|tt|||tt||dS)Nr"rrrgó@irErjrRrrQg@r)rr*rorr r )r+rsecondminutezerotdrrr test_divisions   zTestTimeDelta.test_divisioncCstddd}tdd}||}||tddtddd}||}||tddtd}|tt|||tt|d dS NrErjrnr"rQrrCrr#)rr*rorr rp)r+rrprrqrrr test_remainders   zTestTimeDelta.test_remaindercCstddd}tdd}t||\}}||d||tddtddd}t||\}}||d||tddtd}|tt|||tt|d dSrs)rdivmodr*rorrp)r+rrpqrtrqrrr test_divmods     zTestTimeDelta.test_divmodc Csdd}|t"t|dd>Wdn1s:0Y|t"t|dd>Wdn1sv0YdD]t}|tt||Wdn1s0Y|tt||Wdq1s0YqdS)NcsGfdddt}|S)NcseZdZfddZdS)zFTestTimeDelta.test_issue31293..get_bad_float..BadFloatcsSr[rr] bad_ratiorr as_integer_ratioszWTestTimeDelta.test_issue31293..get_bad_float..BadFloat.as_integer_ratioN)r9rLrMr{rryrr BadFloatsr|)float)rzr|rryr get_bad_floatsz4TestTimeDelta.test_issue31293..get_bad_floatr"r)r)rOr"rErA)rorprr)r+r~rzrrr test_issue31293s 0 0 , zTestTimeDelta.test_issue31293c spGfdddt}GfdddGfdddtdD]*|jdzt|d d WntyxYn0zt|d d WntyYn0zt|d d WnttfyYn0ztd |d WnttfyYn0z|d td WntyYn0ztd |d WntyHYn0Wdq>1s`0Yq>dS) Ncs<eZdZfddZfddZfddZfddZd S) z-TestTimeDelta.test_issue31752..BadIntcsSr[rr+otherProdrr rsz5TestTimeDelta.test_issue31752..BadInt.__mul__csSr[rrrrr __rmul__sz6TestTimeDelta.test_issue31752..BadInt.__rmul__csSr[rrrrr __floordiv__sz:TestTimeDelta.test_issue31752..BadInt.__floordiv__csSr[rrrrr __rfloordiv__sz;TestTimeDelta.test_issue31752..BadInt.__rfloordiv__N)r9rLrMrrrrrrrr BadInts   rcs$eZdZfddZfddZdS)z+TestTimeDelta.test_issue31752..ProdcsSr[rrSumrr rDsz3TestTimeDelta.test_issue31752..Prod.__add__csSr[rrrrr __radd__sz4TestTimeDelta.test_issue31752..Prod.__radd__N)r9rLrMrDrrrrr rs rcseZdZfddZdS)z*TestTimeDelta.test_issue31752..SumcsSr[rr divmodresultrr __divmod__sz5TestTimeDelta.test_issue31752..Sum.__divmod__N)r9rLrMrrrrr rsr)Nr)rr"rE)rrrr"rrr)rTrrrpr)r+rr)rrrr test_issue31752s:    zTestTimeDelta.test_issue31752N)"r9rLrMrrrr rr Zrequires_IEEE_754rrrr$r)r-r2rrr>r@rGrJrPrQrRr[rhrlrrrurxrrrrrr rs<S   (  !rc@seZdZddZdS) TestDateOnlycCstddd}tdddddd}t|j}||td||}||||||}||||||}||||| }t|j}||td||}||||||}||||||}||||dS) Nr"rErArGrBr4rC)rrrr*)r+r`rrdt2rrr test_delta_non_days_ignored!s*    z(TestDateOnly.test_delta_non_days_ignoredN)r9rLrMrrrrr rsrc@seZdZdZdS) SubclassDater"Nr9rLrMZsub_varrrrr r>src@s`eZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Z d9d:Z!d;d<Z"d=d>Z#d?d@Z$dAdBZ%dCdDZ&dEdFZ'dGdHZ(dIdJZ)dKdLZ*dMdNZ+dOdPZ,dQdRZ-dSdTZ.dUS)VTestDatecCs<|ddd}||jd||jd||jddS)NrAr")rr*yearmonthrFr_rrr rGszTestDate.test_basic_attributescCsz|ddd|jfD]\}t|}||d|dd}t|}|||||j|j|j }|||qdS)Nr"rErAr5r<) rtodayrrwr3rr*rrrFr+r`r=rrrr r>Ms   zTestDate.test_roundtripc CsdD]\}}}}||||}||||j|}|||t|dr||jd||jd||jd||jdqt t t ddD]|}||dd}|}|j|}||||dkr|j|d}||ddd}||||||dqgd}d D]\}} ||dd}t t dd |D]r\} } | d krn| rn| d7} t d| dD]@} ||| | }||||||j||d7}q|qNq$dS) N))r"r"r"r")r"rrr)rEr"r"n)irmri hourrr"rDrr) rrrjrrjrrrjrrjr))rT)rFrkrE) rr* toordinal fromordinalhasattrrrpro microsecondrrrzip) r+ymr(nZfromordrd2ZdimZisleaprZmaxdayrFrrr test_ordinal_conversions[s>       z!TestDate.test_ordinal_conversionscs|jj|jjj}|||t fddt dd}||d|||jd|jj |jjj}|||t fddt dd}||d|||jddS)NcsdSrHrrrZaordrr rrz0TestDate.test_extreme_ordinals..r"rcsdSrHrrrrr rr) rrrrrFrrr*rorrrs)r+rrrr test_extreme_ordinalss$    zTestDate.test_extreme_ordinalscCs6|tdd|tdd|t|jtddd|t|jtddd|ddd|ddd|t|jddd|t|jddd|ddd|ddd|d dd|t|jddd |t|jd dd|t|jd dd|t|jd dd|t|jddd|t|jddddS)Nr"rrrrkrE` rj4lrn)rrrrorr]rrr test_bad_constructor_argumentss"z'TestDate.test_bad_constructor_argumentscCs|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||d|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||ddS)Nrrrr"rErrr*r&r'r+r(eZdicrrr r)s$  zTestDate.test_hash_equalityc s2|ddd|ddd}|ddd}|}||jdttddd||jd ||jd tdtd }|dd d||dd d ||dd d ||dd d| |dd d|||dd d |||ddd |d||dd d|d||dd d ||||||| | ||| | |||||||dD]^|t fdd|t fdd|t fdd|t fddq$|t fdd|t fdd|t fdd|t fdd|t fdd|t fdd|t fdd|t fdddS)Nrr"rrrEArGrrDrAr<r4r csSr[rrr rr rrz,TestDate.test_computations..csSr[rrr rr rrcsSr[rrr rr rrcsSr[rrr rr rrcsSr[rrrrFrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rr rr*rr'rrrrrorp)r+rrdiffweekrrrFr r r sPzTestDate.test_computationscCs|jj}|tdtdfD]p}|jj|}||8}|t|j||t|j| |jj|}||7}|t|j||t|j| qdS)Nr"rE) rr?rrrorBrCrDrs)r+rErr`rrr rGs  zTestDate.test_overflowc Cshddl}d\}}}||||ddddddf }|j|}||j|||j|||j|dS)Nr)ir<rmr)rmktimer fromtimestampr*rrrF)r+rrrrFtsr(rrr test_fromtimestamps  zTestDate.test_fromtimestampcCs dD]}|t|jj|qdSN)gZbtgZbtirorBrrr+Zinsanerrr test_insane_fromtimestamps z"TestDate.test_insane_fromtimestampcCslddl}tdD]8}|j}|}|j|}||kr>qJ|dq||krh|j||tddddS)NrrAg?rr)r)rrrrrsleepZassertAlmostEqualr)r+rrrrZ todayagainrrr test_today&s    zTestDate.test_todayc CstdD]}||ddd||||ddd||d||ddd||||ddd||dqdS)NrDrrArGr"rrE)rr*rweekdayZ isoweekday)r+r rrr test_weekdayCs  "zTestDate.test_weekdayc Csgd}g}|D]T\}}|j|}tdD]8}|t|}|dd|d|f}|||fq*q|D]\} } |j| dd || | Wdn1s0Y|j| dd0| } || j| j| j f| Wdqj1s0YqjdS)N)))rr)rrr"))rrrrr"r"))rr"rB)rrEr"))rrl)rrr"))rrr)r5r"))rr"rG)rr"r"rDrrEtuple)r(Z comparisonfields) rrrappendrr* isocalendarrrr) r+Z week_mondays test_casesZcal_dateZiso_dateZ base_dater Znew_dateZnew_isor(Zexp_isorrrr test_isocalendarLs      .zTestDate.test_isocalendarcCsF|ddd}t|}t|}|t|t||ddS)zTest that the result of datetime.isocalendar() can be pickled. The result of a round trip should be a plain tuple. r")rr"rEN)rrrrrr*rr)r+r(presrrr test_isocalendar_picklingjs  z"TestDate.test_isocalendar_picklingcCsd}ttt|}g}tdD]f}|d|dd}|d|dd}||dd|dd|ddkr"||q"|||dS) NaK 4 32 60 88 9 37 65 93 15 43 71 99 20 48 76 26 54 82 105 133 161 189 111 139 167 195 116 144 172 122 150 178 128 156 184 201 229 257 285 207 235 263 291 212 240 268 296 218 246 274 224 252 280 303 331 359 387 308 336 364 392 314 342 370 398 320 348 376 325 353 381 rrri@r"r) sortedmaprTsplitrrr*rr)r+ZISO_LONG_YEARS_TABLEZiso_long_yearsLr r(rcrrr test_iso_long_yearsus $ zTestDate.test_iso_long_yearscCs"|ddd}||ddS)NrErAz 0002-03-02)rr* isoformatr+rrrr test_isoformatszTestDate.test_isoformatcCs"|ddd}||ddS)NrrArEzSat Mar 2 00:00:00 2002)rr*ctimerrrr test_ctimeszTestDate.test_ctimec Cs|ddd}||dd||dd||dd|t|j|t|jdd |t|jd ||d d ||d ddD]&}z||WqtyYq0qz|dWntyYn0|ddS)NrArEm:%m d:%d y:%yzm:03 d:02 y:05rAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoneZtworO%mZ03 '%z' '%Z''' '')z%e%z%#u%y%mz%f)rr*strftimerorprUnicodeEncodeError)r+rfrrr test_strftimes&   zTestDate.test_strftimecCsz|ddd}ztdWnty8|dYn0||dtd|||dtd|dS)NrrArErz'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)r_timerrr:r* timetuplerrrr test_strftime_trailing_percents z'TestDate.test_strftime_trailing_percentcCs|ddd}||dt||td|dWdn1sP0YGddd|j}|ddd}||ddGd d d |j}|ddd}||dt|d D]F}|||||||||||||d qdS) Nr<r#rmust be str, not int{c@seZdZddZdS)zTestDate.test_format..AcSsdSNArr]rrr __str__sz'TestDate.test_format..A.__str__Nr9rLrMrrrrr rsrc@seZdZddZdS)zTestDate.test_format..BcSsdSNBrr+ format_specrrr rsz(TestDate.test_format..B.strftimeNr9rLrMrrrrr rsrrzm:%m d:%d y:%y H:%H M:%M S:%S%z %Zrr* __format__rassertRaisesRegexrprr+r`rrrrfmtrrr test_formats(  zTestDate.test_formatcCs`t|jtrt}nt}||jj|||jj|||jjt| |jj|jjkdSr[) rxrrrryrrsr?rrw)r+Zexpected_classrrr r@s zTestDate.test_resolution_infocCsz|jj|jj}|jdd|jd|j}tdd|}|||||jj||jj||jj||jjdS)Nr@Br)rrsrrrrrr*)r+bigrZ justasbigrrr test_extreme_timedeltas   zTestDate.test_extreme_timedeltac CsrtdD]b}|ddd|}|}||ddd|ddd|d|df |ddd|}|}||ddd|dddd|dd|df |ddd|}|}||ddd|dddd|dd |df ||jd||jd||jd|||jd||jd||j d||j d|d||j d |||j dqdS) NrDrr"rErrrnrA=) rrrr*tm_yeartm_montm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst)r+r r(rrrr test_timetuple s&&..zTestDate.test_timetuplecCsZd}|j|}tD],\}}}|||}||}|||q|||ddS)NrIrDrrErrrrr* __reduce__ __reduce_ex__r,rrr r-%s   zTestDate.test_picklingcCsFgd}d}|j|}|D]&}tD]}||dd}|||q"qdS)N)s'cdatetime date (S'\x07\xdf\x0b\x1b' tR.scdatetime date (U tR.scdatetime date U R.)rmlatin1encodingr pickle_loadsr*r+rdrrfdatarrrrr test_compat_unpickle.s  zTestDate.test_compat_unpicklecs|ddd|ddd}||||k||k||k||k||kdD]}|j|}||k||k||k||k||k||k||k||k||k||k||k||kqrtD]|kd|kd|kd|kd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd d|tfddq.dS)NrErArGr.FTcskSr[rrr/rr rZrz'TestDate.test_compare..cskSr[rrr/rr r[rcskSr[rrr/rr r\rcskSr[rrr/rr r]rcskSr[rrr/rr r^rcskSr[rrr/rr r_rcskSr[rrr/rr r`r)rr*rwrr0rorpr1rr/r r2;sD  zTestDate.test_comparecs|ddd|dkd|dkd|dkd|dkd|tfdd|tfd dGd d d }||kd|kd|kd|kd|tfd d|tfd ddS)NrrGrBr"FTcsdkSrHrrourrr rlrz-TestDate.test_mixed_compare..csdkSrHrrr#rr rmrc@s eZdZdS)z.TestDate.test_mixed_compare..SomeClassNr\rrrr SomeClassqsr%cskSr[rrr$Ztheirrr ryrcskSr[rrr&rr rzr)rr*rorp)r+r%rr&r test_mixed_comparebszTestDate.test_mixed_comparecCs ||jj||jjdSr[)rwrrrsr]rrr rR|szTestDate.test_boolcCsZdD]P}||dd}|dd|kr||dd|||dd|qdS)N)r"r%rcrirr"z%Yz%04d%dz%4Y)rrr*)r+rr(rrr test_strftime_y2ks zTestDate.test_strftime_y2kc Cs|j}gd}||}|||d}dD]L\}}|dd}|||<||}|jfi||i} ||| |d7}q.|ddd}|jt|jdd dS) Nrr)rrErrArFrGr"rrErrrrr*rror r+clsrbaser r5newvalnewargsrfgotrrr test_replaces     zTestDate.test_replacecCs:Gddd|j}|ddd}|t|jdd|dS)Nc@s eZdZdS)z4TestDate.test_subclass_replace..DateSubclassNr\rrrr r]sr]r"ir/rr~rr)r+r]r`rrr test_subclass_replaces zTestDate.test_subclass_replacecsGfdddj}d}j|}||iddi}|j||jd|jd|||d|j|jddS)Ncs$eZdZdZfddZddZdS)z&TestDate.test_subclass_date..CrOcs6|}|d}jj|g|Ri|}||_|SNrrpoprr}rr2rZkwsZtemprresultr]rr r}s  z.TestDate.test_subclass_date..C.__new__cSs||j|jSr[)rrr+startrrr newmethsz.TestDate.test_subclass_date..C.newmethNr9rLrM theAnswerr}rBrr]rr Cs rErrGrrrDrOrF) rr*r8rDrrrBrrr+rErrqrrr]r rhs  zTestDate.test_subclass_datec sGfdddj}d}d}d}||}|||jdt|td}d|ffd |ffd |ffg}|D]\}} ||fD]n} jt | |d Ht | |} | | } | || || jdWdq1s0YqqxdS) NcseZdZfddZdS)zCTestDate.test_subclass_alternate_constructors..DateSubclasscs$jj|g|Ri|}d|_|SNrDrr}rr2rkwargsr?r]rr r}szKTestDate.test_subclass_alternate_constructors..DateSubclass.__new__Nr9rLrMr}rr]rr r]sr]rFi( z 2003-04-14rDrrr fromisoformatZ base_obj_type constr_name) rryr*rrcombiner timestamprrgetattr) r+r]rZd_ord d_isoformatbase_drrrO constr_argsbase_objconstrr`rr]r $test_subclass_alternate_constructorss,       z-TestDate.test_subclass_alternate_constructorscCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)Nr)rrrrr*rwrSr,rrr test_pickling_subclass_dates   z$TestDate.test_pickling_subclass_datec Csd}t|jts|dd}dD],}|t|j|dd||ddq t|jtr|td*|tdgt|dWdn1s0Ytdd D],}||ddt|g|ddqdS) Ns 1995-03-25rG)9 rErA^bad tzinfo state arg$r"rrk) rxrrrorprbytesr'r)r+r3Z month_byteZord_byterrr test_backdoor_resistances     8z!TestDate.test_backdoor_resistancec Cspgd}|D]^}|j|}|}|j|d,|j|}|||Wdq 1s`0Yq dS)N)r"r"r")rrErrr"r")rrErrrmr)rrGrAirBrj)dt_strrrrrMr*)r+ base_datesdt_tupler`redt_rtrrr test_fromisoformats  zTestDate.test_fromisoformatcCs<Gddd|j}|ddd}||}|||dS)Nc@s eZdZdS)z:TestDate.test_fromisoformat_subclass..DateSubclassNr\rrrr r])sr]rkrr)rrMrry)r+r]r`rirrr test_fromisoformat_subclass(s z$TestDate.test_fromisoformat_subclassc CsLgd}|D]:}|t|j|Wdq 1s<0Yq dS)N) rrz 009-03-04Z 123456789z 200a-12-04z 2009-1a-04z 2009-12-0az 2009-01-32z 2009-02-29Z20090228u20090228)rorrrMr+Zbad_strsbad_strrrr test_fromisoformat_fails2s z!TestDate.test_fromisoformat_failsc CsTddtdg}|D]:}|t|j|Wdq1sD0YqdS)Ns 2009-03-01z 2009-03-01ioStringIOrorprrMr+Z bad_typesZbad_typerrr "test_fromisoformat_fails_typeerrorFs z+TestDate.test_fromisoformat_fails_typeerrorcCsddddddddd d d d d tddftddfg}|D]Z}|j|d:|j|}|}|jj|}|||Wdq21s0Yq2dS)N)rGrA)rr"rE)irrj)rr"rE)rrrrb)rrr)rr"r")rrrr)rrrra)r(rrr"rr) datecomps)rrrrrfromisocalendarr*)r+ZdatesruZdobjisocalZ d_roundtriprrr test_fromisocalendarMs,  zTestDate.test_fromisocalendarc Csxgd}|D]f}|j|dF|t|jj|Wdn1sJ0YWdq 1sh0Yq dS)N) )rrr")rrr")r6r")rr"r)rr"r)rr")rrr")rr"r")rr"r")ir"r")r"r")rr{r")rr"r{rw)rrorrrv)r+isocalsrwrrr !test_fromisocalendar_value_errorsks  z*TestDate.test_fromisocalendar_value_errorsc Csttddg}g}d}tdD]4}|D]*}t|}|||||<|t|q&q|D]f}|j|dF|t|j j |Wdn1s0YWdqX1s0YqXdS)NcSsdSr[r)xrrr rrz;TestDate.test_fromisocalendar_type_errors..)rr"r"rAr|) rr}rlistrrrrorprrv)r+Z err_txformersr}r3r ZtxformerZerr_valrwrrr test_fromisocalendar_type_errorss   z)TestDate.test_fromisocalendar_type_errorsN)/r9rLrMrrrr>rrrr)r rGrrrrrrrrrrrrr@r rr-r"r2r'rRr+r7r:rhrXrYr`rjrkrnrsrxr~rrrrr rAsV/2    &'    ' ,  rc@seZdZdZdS)SubclassDatetimer"Nrrrrr rsrc@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zed)d*d+Zd,d-Zed.d/d0Zd1d2Zd3d4Zd5d6Z d7d8Z!d9d:Z"e#$e%j&d;kd<d=d>Z'e#$e%j&d;kd<d?d@Z(dAdBZ)dCdDZ*dEdFZ+dGdHZ,dIdJZ-dKdLZ.dMdNZ/dOdPZ0edQdRdSZ1dTdUZ2dVdWZ3dXdYZ4dZd[Z5d\d]Z6d^d_Z7d`daZ8dbdcZ9dddeZ:dfdgZ;dhdiZs   zTestDateTime.test_roundtripc Csb|ddddddd}||d||dd||d d ||d d ||d d||jddd||jddd||jddd||jddd||jddd||jddd||jd ddd|jt|jdd|jt|jd d|t|d |jdddddddtjd}||jddd|ddddddd}||jddd |dddddd}||jddd||jddd||jddd!|ddd}||d"||dd"||d d#|t|d#tt d$d%d&}|jddd|d}||d'dS)(Nr"rErArGrBrz0001-02-03T04:05:01.000123rT z0001-02-03 04:05:01.000123z0001-02-0304:05:01.000123ru0001-02-0304:05:01.000123rtimespecz 0001-02-03T04rRz0001-02-03T04:05rz0001-02-03T04:05:01rz0001-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:00rZXXXz0002-03-02T00:00:00+00:00:16) rr*rrorrrrrNrrrrr rsD zTestDateTime.test_isoformatc Csdtddfdtddfdtddd fd td d d dfdtdddddfg}ddtjfdttdfg}|dd|D7}|dddd dd}d}|D]X\}}|j|d}||}|j|d ||ksJWdq1s0YqdS)N05:00rBr02:00rE06:27rIrr12:32:30rrnrjr02:04:09.123456rGr<rrrN+00:00rcSs2g|]*\}}dD]\}}||t||fqqS))-r)+r"rrrfrprefixsignrrr r!s z8TestDateTime.test_isoformat_timezone..rtr"%z2016-04-01T12:37:09rtzirrrrrrr) r+ tzoffsetstzinfosZdt_baseexp_baseexp_tzrr`exprrr test_isoformat_timezones(     z$TestDateTime.test_isoformat_timezonec Cs&|ddddddd}||dt||td |dWdn1sX0YGd d d |j}|ddddddd}||dd Gd d d |j}|ddddddd}||dt|dD]F}|||||||||||||d qdS)Nrr<r#rGrBr"rrrc@seZdZddZdS)z#TestDateTime.test_format..AcSsdSrrr]rrr rsz+TestDateTime.test_format..A.__str__Nrrrrr rsrc@seZdZddZdS)z#TestDateTime.test_format..BcSsdSrrrrrr r#sz,TestDateTime.test_format..B.strftimeNrrrrr r"srrrrrrr rs(zTestDateTime.test_formatc Cshddl}|ddddddd}||d|ddd dddd}|||||dS) NrrrArErBrzSat Mar 2 18:03:05 2002r)rrr*rrr)r+rrrrr test_more_ctime0s zTestDateTime.test_more_ctimec Cs|dddddd}|dddddd}|dddddd}||||||k|tddd d d d }tdd }||}|||||||kdS) NrrAr"r<rr#rrrrrr)rr*rwrr)r+rqrdt3rrrr test_tz_independent_comparing@s  z*TestDateTime.test_tz_independent_comparingc CsBGdddt}|ddddddd|dd}|t|jddS) Nc@seZdZddZdS)zDTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfocSsGdddt}|dS)Nc@seZdZddZdS)zZTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStrcWsdSr[r)r+rrrr rWszbTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tzname..MyStr.replaceN)r9rLrMrrrrr MyStrVsrr5)r)r+r`rrrr rbUszKTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tznameN)r9rLrMrbrrrr MyTzInfoTsrrrArErr5%Z)rNrrorpr)r+rrrrr %test_strftime_with_bad_tzname_replaceRsz2TestDateTime.test_strftime_with_bad_tzname_replacec Cs|tdd|tdd|t|jtddd|t|jtddd|ddd|ddd|t|jddd|t|jddd|ddd|ddd|d dd|t|jddd |t|jd dd|t|jd dd|t|jd dd|t|jddd|t|jddd|dddd|dddd|t|jdddd|t|jdddd|ddddd|ddddd|t|jddddd|t|jddddd|dddddd|dddddd|t|jdddddd|t|jdddddd|ddddddd|ddddddd|t|jddddddd |t|jddddddd |jt|jddddd|jt|jddddd|t|jddddddddd dS)Nr"rrrrkrErrrrjrrrrnrrrrrrrrfold)rrrrorrpr]rrr r]s^      z+TestDateTime.test_bad_constructor_argumentscCs|dddddd}|dddddd}||||t|t||di}d||<|t|d|||d|||d|d ddd d d}|d ddd d d}||||t|t||di}d||<|t|d|||d|||ddS) Nrrrrrjr"rErrrBrrrrr r)s$  zTestDateTime.test_hash_equalityc s<|ddd|ddd}|}||jdttddd||jd||jd|ddd d d tddd }tdd }tdtd}|||ddd dd |||ddd dd |d||ddddd |||ddd dd || |ddd dd ||| |d||ddddd ||dddd d ||dddd d |||dddd d |||dd dd d |d||dddd d |d||dddd d ||||||||||||| | ||| ||| ||| | ||| ||| |||||||||||||||ddddd dd ||||||||||||dd ddddd|||||||dD]^|t fdd|t fd d|t fd!d|t fd"dq.|t fd#d|t fd$d|t fd%d|t fd&d|t fd'd|t fd(d|t fd)d|t fd*ddS)+Nrr"rrrrGrrArErrIrrrDrr#rrrlr<rrrrrrBrrr csSr[rrr rr rrz0TestDateTime.test_computations..csSr[rrr rr rrcsSr[rrr rr rrcsSr[rrr rr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrr)r+rrZmillisecrrrrr r s  " """zTestDateTime.test_computationscCsZd}|j|}tD],\}}}|||}||}|||q|||ddS)NrIrDrrrr"rErr,rrr r-s   zTestDateTime.test_picklingc Csn|ddddddd}ttjdD]D}t||}t|}||jd||jd||j dq$dS) NrrErDr0rir") rrrHIGHEST_PROTOCOLrrr*rrrF)r+rrr=rrrr test_more_picklings  zTestDateTime.test_more_picklingcCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)Nr)rrrrr*rwrSr,rrr test_pickling_subclass_datetimes   z,TestDateTime.test_pickling_subclass_datetimecCsFgd}d}|j|}|D]&}tD]}||dd}|||q"qdS)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.)rrmrrrr"rrrrr rrr r" s   z!TestDateTime.test_compat_unpicklecCsRgd}|j|}|j|}||||||k|||k|||k|||k|||ktt|D]}|dd}||d||<|j|}|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||kqzdS)N)rrmrrr3rrr")rr*rwrrr')r+rr"r#r r5rrr test_more_compare s2     zTestDateTime.test_more_comparecCsd||j|j||j|j||j|j||j|j||j |j ||j |j dSr[) r*r rr rr rFrrrrprro)r+rfr6rrr verify_field_equality; s z"TestDateTime.verify_field_equalitycCs6ddl}|}||}|j|}|||dSNr)r localtimerrrr+rrrfr6rrr rC s   zTestDateTime.test_fromtimestampcCs6ddl}|}||}|j|}|||dSr)rgmtimerutcfromtimestamprrrrr test_utcfromtimestampK s   z"TestDateTime.test_utcfromtimestampEST+05EDT,M3.2.0,M11.1.0c Cs,|ddd}||d|ddddddd}||d|ddd dd }|jdd }||j||tdd ||j||tdd |dd ddd }||j|||ddd|d ddfD]:}z |}WntyYq0||j||qdS)Nr)r"g@rErArG6@r8rmrjrri'r)rr*rQrrrrB)r+rt0r"r=rrr test_timestamp_naiveU s,      z!TestDateTime.test_timestamp_naivec Cs|jdddtjd}||d|jdddddddtjd}||d|jdddddddttd d d d}||d dS) Nr)r"rrrErArGg7@rrrr)rrrr*rQrrrrr test_timestamp_awareq s  z!TestDateTime.test_timestamp_awarezMSK-03c Csx|jj|jjfD]`}|d}||jd||jd|d}z |d}Wnty`Yn~0||jd||jd|d}||||d}||||d}||||d }||jd||jd |d }||||d }||||d }||jd||jd|d}||jd||jd|d}||jd||jdqdS)Nrgư>gưrrg:0yEg1E2gHzrMi#gHz>g1E2>g<"2?gP?r"rKrL)rrrr*rorOSError)r+ZftsrrZ minus_onerrrr rP| sF        z&TestDateTime.test_microsecond_roundingcCs|d6|jjjtjd}|}||dWdn1sF0Y|d8|jjjtjdd}|}||dWdn1s0YdS)Nz minimum UTCrlw#o9z maximum UTCrrrg MB) rrrrrrrQr*rs)r+min_dtmin_tsmax_dtmax_tsrrr test_timestamp_limits s *  z"TestDateTime.test_timestamp_limitsc Csz|jdWn ttfy0|dYn0|jjtdd}|}|jjj dd}|jjtddtd d d d  }d ||fd ||ffD]R\}}}|j |||d(|j|}| ||Wdq1s0Yqd|tddd fd|tdd fd|tdd fd|tdd fg} | D]v\}}|j ||dL| ttf|j|Wdn1s0YWdn1s0YqFdS)NTest not valid on this platformr"rrrrrrrrminimummaximumrrfToo small by a littlerrOToo small by a lotrToo big by a littleToo big by a lotr)rrrrBr:rrrQrsrrrr*ror) r+rrrr test_namerrfactualrrrr test_fromtimestamp_limits s2 , z&TestDateTime.test_fromtimestamp_limitsc Csz|jdWn ttfy0|dYn0|jjjtjd}| }|jj jdtjd}| }d||jddfd||jddffD]\}}}|j |||ddz|j|}Wn6ttfy} z|t | WYd} ~ n d} ~ 00| ||Wdq1s0Yqd |d fd |td d fd|d fd|td d fg} | D]v\}}|j ||dL|ttf|j|Wdn1s0YWdn1s0YqbdS)Nrrrrrrrrrrr"rrrrrr)rrrrBr:rrrrrQrsrrr*rrror) r+rrrrrrrfrexcrrrr test_utcfromtimestamp_limits s4$.   z)TestDateTime.test_utcfromtimestamp_limitscCs dD]}|t|jj|qdSrrrrrr r s z&TestDateTime.test_insane_fromtimestampcCs dD]}|t|jj|qdSr)rorBrrrrrr test_insane_utcfromtimestamp s z)TestDateTime.test_insane_utcfromtimestampwin32z*Windows doesn't accept negative timestampscCs|jddS)N)rrr]rrr !test_negative_float_fromtimestamp sz.TestDateTime.test_negative_float_fromtimestampc Cs.|jd}|||ddddddddS) Nrirrrrr3i~)rrr*)r+r(rrr $test_negative_float_utcfromtimestamp s z1TestDateTime.test_negative_float_utcfromtimestampcCsfddl}tdd}tdD]2}|j}|j|}t|||krqNq|t|||dS)Nrr"rrA)rrrrutcnowrrZassertLessEqual)r+rZ tolerancerZfrom_nowfrom_timestamprrr test_utcnow# s   zTestDateTime.test_utcnowc Csd}d}t|j||}|j||}||||t||j|t||jgd}|D]`\}}|j||d:t|j||}|j||}|||Wdqb1s0Yqb|jj}||dddt ||ddd t ||d dt dd d d  ddt j t j dffD]z\}}|dkrXd} | } nd} |} t| dd\} } d| | | |} || d}||t |d|| |q:d\} }|| |}||dtdt || d|||| ||ddjd|t|ddWdn1sF0Y|t|ddWdn1s|0Y|t|ddWdn1s0YdS)Nz2004-12-01 13:02:47.197z%Y-%m-%d %H:%M:%S.%f))u2004-12-0113:02:47.197u%Y-%m-%d%H:%M:%S.%f)u200412-01 13:02:47.197u%Y%m-%d %H:%M:%S.%f)u2004-12-01 13:0247.197u%Y-%m-%d %H:%M%S.%f)stringformatz+0002%zrEz-0002rCz-00:02:01.000003r"rA)rRrr)rr)rZGMTrrrrz{}{:02d}{:02d} {}rr)z +1234 UTCrrr*rrz-2400z-000z) _strptimeZ_strptime_datetimerstrptimer*r~rrraMINUTErrrrbrvrrrrror)r+rrrfr6inputsrZ tzsecondsrbrrrrRdtstrr`rrrr test_strptime1 sX   ,     66zTestDateTime.test_strptimec Cs`|jj}|t|dd}Wdn1s20Y|dddddd}|dddddd}|dddd d d }|ddd d d d }d d d|fd dd|fddd|fddd|fddd|fddd|fddd|fddd|fddd|fd dd!|fg }|D]b\}} } } d"|}|j|| | | d#*|| | }|j|| |d$Wdq1sP0YqdS)%Nz01/02/3 04:05:06z%d/%m/%y %H:%M:%SrrEr"rGrBrIrr*z 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)rrrorrr*) r+rZnewdaterqrrZdt4rrrrrrrr test_strptime_single_digitl s6 (            z'TestDateTime.test_strptime_single_digitcCs$|dddddd}||d|||j|j|j|j|j|j| | t |jdd dd f |}||j |j||j |j||j|j||j|j||j|j||j|j||j| ||j| t |jdd d||jd dS) NrrrrIr!) rrrrIrrrGrrr"r)rr*rrrrFrrprorrrr r r rrrrrr)r+rZttrrr test_more_timetuple s0   z TestDateTime.test_more_timetuplec Cs|ddddddd}||dd d D]B\\}}}ttd ||d  }|j|d }||dd|q,z|dWntyYn0dS)NrrrrIrr/z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)))rrz 33.000123))rrZ33rE)rrrrrz-0200u%y%m %H%M)rr*rrrrr)r+rr=rrrrrr test_more_strftime s   zTestDateTime.test_more_strftimec CsL|ddddddd}||tddd||tdddddS)NrrArGr-)rr*rrr_rrr test_extract szTestDateTime.test_extractc Cstddd}tdddd}|ddddddd}|jj}|||}||||||d}|||||||||||||||t||t|||t||||t|||d|t|||dd |t|d d |t||d |t|d ||||tj}| |j tj|||tjd }| |j tjt}|||}||||||dS) NrrArGrrr)rrr"rErrr) rrrrPr*rorprrr~r)r+r(rrfrPr`rrr test_combine s6       zTestDateTime.test_combinec Cs|j}gd}||}|||d}dD]L\}}|dd}|||<||}|jfi||i} ||| |d7}q.|ddd}|jt|jdd dS) N)r"rErArGrBrIrDr)r,r-r.rrBrprIrorDrrzr"rrErrr/r0r1rrr r7 s     zTestDateTime.test_replaceZEDT4c Cs\|j}tdd}|jttdddd}||||t |j|||t |j||j|dtddd}||||||j|d |Gd d d t }|}|t |j|||j|d||Gd d d t }|}|t |j|Gdddt } | } |j| d} |t | Wdn1sN0YdS)N,Z0044rHrEDTrrGrrc@seZdZddZddZdS)z+TestDateTime.test_astimezone..BoguscSsdSr[rr_rrr ra rz5TestDateTime.test_astimezone..Bogus.utcoffsetcSstdSrrr_rrr rc rz/TestDateTime.test_astimezone..Bogus.dstNr9rLrMrarcrrrr Bogus src@seZdZddZddZdS)z/TestDateTime.test_astimezone..AlsoBoguscSstdSrrr_rrr ra rz9TestDateTime.test_astimezone..AlsoBogus.utcoffsetcSsdSr[rr_rrr rc rz3TestDateTime.test_astimezone..AlsoBogus.dstNrrrrr AlsoBogus src@seZdZddZddZdS)z,TestDateTime.test_astimezone..BrokencSsdSrHrr_rrr ra rz6TestDateTime.test_astimezone..Broken.utcoffsetcSsdSrHrr_rrr rc rz0TestDateTime.test_astimezone..Broken.dstNrrrrr Broken sr) rrzrNrrrr* astimezonerorprr) r+r`rdt_utcZdt_frZbogrZalsobogrZbrokenZ dt_brokenrrr test_astimezone s*    zTestDateTime.test_astimezonecsGfdddj}d}j|}||iddi}|j||jd|jd|||d|j|j|j ddS)Ncs$eZdZdZfddZddZdS)z.TestDateTime.test_subclass_datetime..CrOcs6|}|d}jj|g|Ri|}||_|Sr;r<r>r]rr r} s  z6TestDateTime.test_subclass_datetime..C.__new__cSs||j|j|jSr[)rrror@rrr rB! sz6TestDateTime.test_subclass_datetime..C.newmethNrCrr]rr rE s rE)rrGrrrk)rrDrOrF) rr*r8rDrrrBrrrorGrr]r rl s  z#TestDateTime.test_subclass_datetimec sBGfdddj}d}d}d}||}|||jd|}d|f|fd|tjf|tjfd|f|fd |f|fd |d f|fd t|d dt |ddf|fg}|D]\}} } ||fD]p} j t | |dHt | |} | | } | || | | jdWdq1s00YqqdS)NcseZdZfddZdS)zTTestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclasscs$jj|g|Ri|}d|_|SrHrIrJr]rr r}3 sz\TestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclass.__new__NrLrr]rr ri2 sri)rrGrrrjrz2003-04-14T12:30:15.123456gh͏TMArDrrrMrz%Y-%m-%dT%H:%M:%S.%frPrrArN) rryr*rrQrrrrrrrrR)r+rirrSZutc_tsrTrrrOrUrfrV constructorr`rr]r -test_subclass_alternate_constructors_datetime0 s6       $      z:TestDateTime.test_subclass_alternate_constructors_datetimec sGfdddj}ddifddifdddtjifdddttdd d ifg}|D]f\}}}|Bt||}|fi|}|||jd WdqT1s0YqTdS) NcseZdZfddZdS)z8TestDateTime.test_subclass_now..DateTimeSubclasscs$jj|g|Ri|}d|_|SrHrIrJr]rr r}d sz@TestDateTime.test_subclass_now..DateTimeSubclass.__new__NrLrr]rr ric srirzrZnow_utcrZ now_fixedrrrrD) rrrrrrRryr*r)r+rirr5Z meth_namerKrWr`rr]r test_subclass_nowa s   zTestDateTime.test_subclass_nowc sgd}gdddg}dtjttddttddgfdd |D}|D]^}|D]T}|j|d }j|d (j|}||Wdq\1s0Yq\qTdS) N)rarbrcrd)rrrr)rrrih)rrrG)rrjrrrrTrrrEcs:g|]2}D](}D]}jg||Rd|iqq qSr)r)rZ date_tupleZ time_tuplerZ base_timesr+rrr r! sz.rr)rrrrrrrMr*)r+rg separatorsdtsr`rrrirrr test_fromisoformat_datetimey s     z(TestDateTime.test_fromisoformat_datetimec Cs|ddddddd}tddtddtd d d tdd dd tdddddg}|dd|D7}dtjttddg}|dd|D7}|D]`}|j|d}|}|j|d,|j|}||ksJ|Wdq1s0YqdS)NrkrrjrpQrBrrErIrrrnrrGr<rrcSsg|] }d|qSrrrrrrr r! rz.rcSsg|] }t|qSrrrrrr r! rrtstrrrrrrrrrM)r+Zbase_dtrrrr`rrirrr test_fromisoformat_timezone s"     z(TestDateTime.test_fromisoformat_timezonec Cs|gd}|D]j}|ddddddd}|j|d }|j|d (|j|}|||Wdq 1sl0Yq dS) N) rrT€uʁuᛇu時u🐍rr^r"rrrriurrrfr+rrr`rrirrr test_fromisoformat_separators s  z*TestDateTime.test_fromisoformat_separatorsc Csxddg}|D]f}|ddddd}|j|d}|j|d (|j|}|||Wdq 1sh0Yq dS) Nrrr^r"rrr rrrfr rrr test_fromisoformat_ambiguous s  z)TestDateTime.test_fromisoformat_ambiguousc Csddg}dtjttddttddttdddg}gd }t|D]\}}|D]}|D]}|d krd |dd }|d d|f}|j|d d |d|i} | j|d} |j| d(|j| } || | Wdq\1s0Yq\qTqHdS)N)rrrGrzrrr)rrrGrzrrrrrrErIrrrrRrrrrrrrGrrr rrr enumeraterrrrMr*) r+Zdatetime_basesr timespecsiprrrhnew_microsecondsr`rrirrr test_fromisoformat_timespecs s(    z)TestDateTime.test_fromisoformat_timespecsc Csxgd}|D]f}|j|dF|t|j|Wdn1sJ0YWdq 1sh0Yq dS)N)rrz 2009.04-19T03z 2009-04.19T03z 2009-04-19T0az2009-04-19T03:1a:45z2009-04-19T03:15:4az2009-04-19T03;15:45z2009-04-19T03:15;45z2009-04-19T03:15:4500:00z2009-04-19T03:15:45.2345z2009-04-19T03:15:45.1234567z 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:00armrrorrrMrlrrr !test_fromisoformat_fails_datetime s  z.TestDateTime.test_fromisoformat_fails_datetimecCsJd}|ttt||j|Wdn1s<0YdS)Nu2018-01-0301:0113)rrreescaperrrM)r+rrrr "test_fromisoformat_fails_surrogate sz/TestDateTime.test_fromisoformat_fails_surrogatecCs$d}|j|}||jtjdS)Nz2014-04-19T13:21:13+00:00)rrMr~rrr)r+rer`rrr test_fromisoformat_utc s z#TestDateTime.test_fromisoformat_utcc Cs`Gddd|j}|ddddddd ttd dd d }||}||||||dS) Nc@s eZdZdS)zBTestDateTime.test_fromisoformat_subclass..DateTimeSubclassNr\rrrr ri srirkrrr<rjrir#rr)rrrrMrr*ry)r+rir`rirrr rk s z(TestDateTime.test_fromisoformat_subclassN)>r9rLrMrrrrr>rrrrrrrr)r r-rrr"rrrrr run_with_tzrrrPrrrrrunittestZskipIfr7platformrrrrrrrrrr7r rlr rrrr!r"r)r,r/r0rkrrrr rsr  , 5D   !    (''    ;"" 1# &rc@s"eZdZeZedddZdS)TestSubclassDateTimeznot appropriate for subclassescCsdSr[rr]rrr r>/ sz#TestSubclassDateTime.test_roundtripN)r9rLrMrrr2skipr>rrrr r4, sr4c@seZdZdZdS) SubclassTimer"Nrrrrr r63 sr6c@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-S).TestTimecCsH|dd}||jd||jd||jd||jddS)Nrrrr*rrprorrrrr r: s  zTestTime.test_basic_attributescCsL|dddd}||jd||jd||jd||jddS)Nrrrr8rrrr rA s z&TestTime.test_basic_attributes_nonzerocCsp|dddd}t|}||d|dd}t|}|||||j|j|j|j }|||dS)Nr"rErArGr5r<) rrrwr3rr*rrpror)r+rr=r#rrr r>J s  zTestTime.test_roundtripcsNgd}|j||j|}||||k||k||k||k||ktt|D]}|dd}||d||<|j|}||k||k||k||k||k||k||k||k||k||k||k||kqztD]|kd|kd|kd|kd|tfdd|tfdd|tfdd|tfd d|tfd d|tfd d|tfd d|tfd dqRdS)Nr"rErArGr"FTcskSr[rrr/rr r{ rz)TestTime.test_comparing..cskSr[rrr/rr r| rcskSr[rrr/rr r} rcskSr[rrr/rr r~ rcskSr[rrr/rr r rcskSr[rrr/rr r rcskSr[rrr/rr r rcskSr[rrr/rr r r) rr*rwrrr'r0rorp)r+rr#r r5rr/r test_comparingY sL     zTestTime.test_comparingcCs |dd|dd|t|jdd|t|jdd|dd|dd|t|jdd|t|jdd|ddd|ddd|t|jddd|t|jddd|dddd|dddd|t|jdddd|t|jdddddS) Nrrrrrrrr)rrorr]rrr r s     z'TestTime.test_bad_constructor_argumentscCs|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||d|ddd}|ddd}||||t|t||di}d||<|t|d|||d|||ddS)Nrrjrr"rErrBrrrrr r) s$  zTestTime.test_hash_equalitycCs|dddd}||d||t||}||d||t||jdd}||d||t||jd d}||d ||t||jd d}||d ||t||jd d}||d||t||jdd}||d||t||jdd}||d||t||jddddd}||jddd||jddd||jddd||jddd ||jd!dd"||jd#dd"|jt|jd$d|jt|jd%d|jdddd&d}||jddd'|jdddd(d}||jddd)||jd!dd*||jd#dddS)+NrGrBr"rz04:05:01.000123z00:00:00rz00:00:00.000001r#z00:00:00.000010rz00:00:00.000100rz00:00:00.001000rz00:00:00.010000iz00:00:00.100000rr*r+r)rrprorrrZ12rRz12:34rz12:34:56rz 12:34:56.123rz12:34:56.123456rZmonkeyrrz 12:34:56.999rz 12:34:56.000z12:34:56.000000)rr*rrrorrrrr r sN      zTestTime.test_isoformatc Csdtddfdtddfdtddd fd td d d dfdtdddddfg}ddtjfdttdfg}|dd|D7}|d dd}d}|D]X\}}|j|d}||}|j|d ||ksJWdq1s0YqdS)NrrBrrrErrIrrrrrnrjrrrGr<rrrrrcSs2g|]*\}}dD]\}}||t||fqqSrrrrrr r! s z4TestTime.test_isoformat_timezone..rz12:37:09rrr) r+rrZt_baserrrrrrrr r s(     z TestTime.test_isoformat_timezonecCs"|jdd}|jt|jdddS)Nr"rorA)r)rrorprrrrr test_1653736 s zTestTime.test_1653736cCsZ|dddd}||dd||ddz|d WntyTYn0dS) Nr"rErArGz %H %M %S %fz01 02 03 000004rru%H%M)rr*rrrrrr r s zTestTime.test_strftimecCs|dddd}||dt||td|dWdn1sR0YGdd d |j}|dddd}||dd Gd d d |j}|dddd}||dt|d D]F}|||||||||||||d qdS) Nr"rErArGrrrc@seZdZddZdS)zTestTime.test_format..AcSsdSrrr]rrr r sz'TestTime.test_format..A.__str__Nrrrrr r src@seZdZddZdS)zTestTime.test_format..BcSsdSrrrrrr r$ sz(TestTime.test_format..B.strftimeNrrrrr r# sr)z%H %M %Sr)r+rrrrrrrrr r s(zTestTime.test_formatc Cs|t|ddddd|t|ddddd|t|d ddd d |t|d ddd d |t|ddd d ddS)Nr"rErArGz01:02:03.000004r#rz10:02:03.004000rr6z00:02:03.400000rz12:02:03rr z23:15:00)r*rrr]rrr r/ s zTestTime.test_strc Csd|jj}|t|ddddd||t|ddddd ||t|d ddd d ||t|d ddd d||t|ddd d d|dS)Nr5r"rErArGz%s(1, 2, 3, 4)r#rz%s(10, 2, 3, 4000)rr6z%s(0, 2, 3, 400000)rz %s(12, 2, 3)rr z %s(23, 15)r7r8rrr r6 s  zTestTime.test_reprcCsN||jj|j||jj|j||jjt||jj|jjkdSr[)ryrrrsr?rrwr]rrr r@C szTestTime.test_resolution_infocCsZd}|j|}tD],\}}}|||}||}|||q|||ddS)NrrrrrErr,rrr r-I s   zTestTime.test_picklingcCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)Nr=)r6rrrr*rwrSr,rrr test_pickling_subclass_timeR s   z$TestTime.test_pickling_subclass_timec Cszgd}t|D]d\}\}}|j|d<|j|}tD]}||dd}|||q8Wdq1sj0YqdS)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.rrrr)scdatetime time (U;tR.r?)scdatetime time U;R.r?)r rr)r%rrrr*)r+rdr r!rrfrrrrr r"[ s  zTestTime.test_compat_unpicklecCsh|j}||d||dd||ddd||dddd||d||dS)Nr"r)rrw)r+r2rrr rRq szTestTime.test_boolc Cs|j}gd}||}|||d}dD]L\}}|dd}|||<||}|jfi||i} ||| |d7}q.|d}|jt|jdd|jt|jdd|jt|jd d |jt|jd d dS) Nr9r)rrrrr"rrrrprr;rrr0r1rrr r7{ s"    zTestTime.test_replacecCs8Gddd|j}|dd}|t|jdd|dS)Nc@s eZdZdS)z4TestTime.test_subclass_replace..TimeSubclassNr\rrrr TimeSubclass srBrrjr#r@r9)r+rBrrrr r: s zTestTime.test_subclass_replacecsGfdddj}d}j|}||iddi}|j||jd|jd|||d|j|jddS)Ncs$eZdZdZfddZddZdS)z&TestTime.test_subclass_time..CrOcs6|}|d}jj|g|Ri|}||_|Sr;r<r>r]rr r} s  z.TestTime.test_subclass_time..C.__new__cSs||j|jSr[rror@rrr rB sz.TestTime.test_subclass_time..C.newmethNrCrr]rr rE s rE)rGrBrIrrDrOrF) rr*r8rDrrrBrrorGrr]r test_subclass_time s  zTestTime.test_subclass_timec Csd}ddtddfD] }|t|j||ddq|td*|tdgt|dWdn1sr0YdS) Nz2:59.0r9rÿr"r^r)chrrorprrr_r')r+r3Z hour_byterrr r` s z!TestTime.test_backdoor_resistanceN)r9rLrMrrrrr>r:rr)rrr<rrrrr@r-r>r"rRr7r:rDr`rrrr r76 s. +4     r7c@s4eZdZddZddZddZddZd d Zd S) TZInfoBasecCs|j}Gdddt}|ddd|d}|tur4dp6d}|||t|turVd pXd d }||||||dS) Nc@s eZdZddZddZeZdS)z7TZInfoBase.test_argument_passing..introspectivecSs |rdp dS)Nrealnonerr_rrr rb rz>TZInfoBase.test_argument_passing..introspective.tznamecSst|r dp ddS)NrOrQrr_rrr ra szATZInfoBase.test_argument_passing..introspective.utcoffsetN)r9rLrMrbrarcrrrr introspective srLr"rErArrJrIrKrOrQ)rrrr*rbrrarc)r+r2rLobjrfrrr test_argument_passing sz TZInfoBase.test_argument_passingcCsz|j}|jt|dddddGdddt}|jt|ddd|dGdddt}|}|ddd|d}||j|dS)Nr"rrc@seZdZddZddZdS)z3TZInfoBase.test_bad_tzinfo_classes..NiceTrycSsdSr[rr]rrr rZ rz.NiceTry.__init__cSsdSr[rr_rrr ra rz=TZInfoBase.test_bad_tzinfo_classes..NiceTry.utcoffsetNr9rLrMrZrarrrr NiceTry srPc@seZdZddZddZdS)z5TZInfoBase.test_bad_tzinfo_classes..BetterTrycSsdSr[rr]rrr rZ rz>TZInfoBase.test_bad_tzinfo_classes..BetterTry.__init__cSsdSr[rr_rrr ra rz?TZInfoBase.test_bad_tzinfo_classes..BetterTry.utcoffsetNrOrrrr BetterTry srQ)rrorpobjectrr~)r+r2rPrQrrrrr test_bad_tzinfo_classes sz"TZInfoBase.test_bad_tzinfo_classesc CsGdddt}|j}dD]\}}|tur@|ddd||d}n0|turd|dddddd||d}n d spJd |rt|}t|d \}}d |d krd pd||f} t|tr|}|t |d| q| t t |qdS)Nc@seZdZddZddZdS)z6TZInfoBase.test_utc_offset_out_of_bounds..EdgycSst|d|_dSrPrrY)r+rYrrr rZ sz?TZInfoBase.test_utc_offset_out_of_bounds..Edgy.__init__cSs|jSr[)rYr_rrr ra sz@TZInfoBase.test_utc_offset_out_of_bounds..Edgy.utcoffsetNrOrrrr Edgy srU))`F)aT)T)rFr"rErArrIrZ impossiblerz %c%02d:%02drrz01:02:03) rrrrrrvrStimetzr*rror) r+rUr2rYZlegitrZaofsrrtagrrr test_utc_offset_out_of_bounds s    z(TZInfoBase.test_utc_offset_out_of_boundscCs|j}Gdddt}|ddd|ddddd|ddd|dfD].}||||||qBGdddt}|ddd|d}||tdd||td d||d Gd d d t}|ddd|d}|t |j|t |j|t |jGd ddt}|ddd|d}|t |j|t |jGdddt}|ddd|d}||tdd||tdddS)Nc@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C1cSsdSr[rr_rrr rarz4TZInfoBase.test_tzinfo_classes..C1.utcoffsetcSsdSr[rr_rrr rcrz.TZInfoBase.test_tzinfo_classes..C1.dstcSsdSr[rr_rrr rbrz1TZInfoBase.test_tzinfo_classes..C1.tznameNr9rLrMrarcrbrrrr C1sr]r"rc@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C3cSs tddS)NrWrQrr_rrr rarz4TZInfoBase.test_tzinfo_classes..C3.utcoffsetcSs tddS)NrXrQrr_rrr rcrz.TZInfoBase.test_tzinfo_classes..C3.dstcSsdSNanamerr_rrr rbrz1TZInfoBase.test_tzinfo_classes..C3.tznameNr\rrrr C3sr`rWrQrXr_c@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C4cSsdSr^rr_rrr rarz4TZInfoBase.test_tzinfo_classes..C4.utcoffsetcSsdSrHrr_rrr rcrz.TZInfoBase.test_tzinfo_classes..C4.dstcSsdSrrr_rrr rbrz1TZInfoBase.test_tzinfo_classes..C4.tznameNr\rrrr C4srac@seZdZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C6cSs tddS)Nirrr_rrr ra$rz4TZInfoBase.test_tzinfo_classes..C6.utcoffsetcSs tddS)Nrrrr_rrr rc%rz.TZInfoBase.test_tzinfo_classes..C6.dstNrrrrr C6#srbc@seZdZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C7cSs tddS)Nr rrr_rrr ra,rz4TZInfoBase.test_tzinfo_classes..C7.utcoffsetcSs tddS)Nrrr_rrr rc-rz.TZInfoBase.test_tzinfo_classes..C7.dstNrrrrr C7+srdr rrc) rrrrarcrbr*rrorpr)r+r2r]rr`rarbrdrrr test_tzinfo_classess6 zTZInfoBase.test_tzinfo_classesc Cs|j}Gdddt}|ddd|d}|jdd}|jdd}|jd d}|||fD]N}|||fD]>}ttttttfD](} | ||} | |j |j } | | | qxqdqV|t ur|jd|d }|jd|d }|jd |d }|||fD]}|||fD]}||k||k} ||us ||ur:||us4||ur:d } nD||urR|ur\nnd } n"||urld } n||uszJd } | | | qqdS)Nc@seZdZddZdS)z=TZInfoBase.test_aware_compare..OperandDependentOffsetcSs$|jdkrt|jdStddSdSNr#rQrrprrrrr ra8s  zGTZInfoBase.test_aware_compare..OperandDependentOffset.utcoffsetNrirrrr OperandDependentOffset7srhrzr<r#rrArArmrprrrr") rrrrrrrrrrpr*r) r+r2rhr3d0rcrrropr6rfrrr test_aware_compare2s8      ( zTZInfoBase.test_aware_compareN)r9rLrMrNrSr[rerlrrrr rH s 0rHc@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdS) TestTimeTZcCsP|}||jd||jd||jd||jd||jdSr)rr*rrprorrrrrrr test_emptyfs zTestTimeTZ.test_emptyc s"tddd}tddd}tddd }td d |d }td d |d }tdd |d }tddtd|d||j|||j|||j||j|j|||tdd||tdd||tdd||t|jd|| d|| d|| d| |t|j d|| tdd|| tdd|| td d| |t|j d|t |t ||t |t ||t |t ||||||||||| |tfdd|tfdd|t |d|t |d|t |d|t d|t d||d||d||d|d|dd}|t||d|t||d|t||d|t|d |t|d!||d"d#||d$d%||d$d&td'd(}td)d*|d }||d+d,Gd-d.d.t} td/d d0| d } || d1d2|t| jd3d4|jjvrd5| _|t| jd3dS)6Nrrr"rrrCrMETrArDrrrrk(rrrQzno argscskSr[rrrZZt5rr rrz'TestTimeTZ.test_zones..cskSr[rrrqrr rrz07:47:00-05:00z12:47:00+00:00z13:47:00+01:00z00:00:00.000040z00:00:00.000040+00:00z datetime.timez(7, 47, tzinfo=est)z(12, 47, tzinfo=utc)z(13, 47, tzinfo=met)z (0, 0, 0, 40)z(0, 0, 0, 40, tzinfo=utc)z%H:%M:%S %%Z=%Z %%z=%zz07:47:00 %Z=EST %z=-0500z%H:%M:%S %Z %zz12:47:00 UTC +0000z13:47:00 MET +0100rWz %z %Z %%z%%Zrrz%H:%M %%Z='%Z' %%z='%z'z"23:59 %Z='%z %Z %%z%%Z' %z='-2359'c@seZdZdZddZdS)z(TestTimeTZ.test_zones..BadtznamerOcSs|jSr[rr_rrr rbrz/TestTimeTZ.test_zones..Badtzname.tznameN)r9rLrMrrbrrrr BadtznamesrrrErGz%H:%M:%Sz02:03:04rr>r)rNrr*rrrarrorprbrcr&rrrrrr8r9rr) r+estrmetr"r#rYr(Zyuckrrrrrqr test_zonesns             zTestTimeTZ.test_zonescCs|jddddtddd}|jddddtddd}|t|t||jd d d d td dd}|jd dd d tddd}|t|t|dS)Nrr"rErArXrrirr3rIriri)rrNr*r&r!rrr test_hash_edge_casess zTestTimeTZ.test_hash_edge_casesc Csd}|j|}tD],\}}}|||}||}|||q|||dtdd}|jddd|d}tD]`\}}}|||}||}|||||j t|| t dd || dqv|||ddS) Nr=rErrrBrIrDrrQ) rrrrr*rrrdryrrarrb r+rrrrrrrtinforrr r-s"       zTestTimeTZ.test_picklingcCsgd}tdd}|jdddd|d}|D]`}tD]V}||d d }|||t|||jt||tdd || dq2q*dS) 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.rrrBrIrDrrrrrQ) rdrrr*rryrrarrb)r+rdrxrfr!rrrrr r"s  zTestTimeTZ.test_compat_unpicklecCs||j}|dtddd}|||dtddd}|||dtddd}|||ddtd dd}||dS) NrrrrrBi,rrrX)rrNrw)r+r2rrrr test_more_bools   zTestTimeTZ.test_more_boolcCs\|j}tdd}ttddd}dddd |g}||}|||d }d d d dd|ffD]L\}}|dd} || |<|| } |jfi||i} || | |d7}q\||d|jdd} || j|| | j|d} ||| ||j| j|d}|j t |jdd|j t |jdd|j t |jdd|j t |jdddS)Nr+1008rQ-200r"rErArGrrrrrrrrr@rrAr;rr rrNrr*rrbrrr~rorr+r2Zz100Zzm200rr3r r5r4r5rfr6Zbase2Zbase3rrr r7s>         zTestTimeTZ.test_replacecCs|ddd}|ddd}||||jdd}||||jtddd}||||jtddd}|||Gdddt}|}|j|d}|j|d}||td d ||td d ||||j|d}|||kdS) Nr"rErArrrc@seZdZddZddZdS)z-TestTimeTZ.test_mixed_compare..VariescSstdd|_dSNrrQrTr]rrr rZKsz6TestTimeTZ.test_mixed_compare..Varies.__init__cSs|jtdd7_|jSNr"rQrYrrrrr raMsz7TestTimeTZ.test_mixed_compare..Varies.utcoffsetNrOrrrr VariesJsrrrQr) rr*rrNrrrarrwr+r"r#rvrrr r'>s$        zTestTimeTZ.test_mixed_comparec Csddg}d}d}d}d}|tt||||7}dtjttddttd d d g}|D]j}|D]`}|j|d |i} | } |j| d (|j | } | | | Wdq`1s0Yq`qXdS)Nr)rrrr)r<rr)rBrj)rGr)rii[ rErrIrrrr) r itertoolsproductrrrrrrrMr*) r+Z time_examplesZhhZmmssZusecrZttuprrrt_rtrrr rj\s&  zTestTimeTZ.test_fromisoformatc Cs|dddd}tddtddtdd d tdd dd tdd dddg}|dd|D7}dtjttddg}|dd|D7}|D]`}|j|d}|}|j|d,|j|}||ksJ|Wdq1s0YqdS)NrrjrrrBrrErIrrrnrrGr<rrcSsg|] }d|qSrrrrrr r!rz:TestTimeTZ.test_fromisoformat_timezone..rcSsg|] }t|qSrrrrrr r!rrrr)r+Z base_timerrrrrrrrr rvs"     z&TestTimeTZ.test_fromisoformat_timezonec Csddg}dtjttddttddttdddg}gd }t|D]\}}|D]}|D]}|d krd |d d }|d d |f}|j|d d|d|i} | j|d} |j| d(|j| } || | Wdq\1s0Yq\qTqHdS)N)rzrrr)rzrrrrrrErIrrr#rrrrr"rrrr$) r+Z time_basesrr&r'rrZt_tupler(rrrrrr r)s(    z'TestTimeTZ.test_fromisoformat_timespecsc Csxgd}|D]f}|j|dF|t|j|Wdn1sJ0YWdq 1sh0Yq dS)N)ru1200z12:z12:30:z 12:30:15.1z12:3z12:30:1z1a:30:45.334034z12:a0:45.334034z12:30:a5.334034z 12:30:45.1234z12:30:45.1234567z12:30:45.123456+24:30z12:30:45.123456-24:30u 12:30:45u12:30:45․123456z 12:30:45az 12:30:45.123az12:30:45.123456az12:30:45.123456+12:00:30ar*r+rlrrr rns  z#TestTimeTZ.test_fromisoformat_failsc CsTddtdg}|D]:}|t|j|Wdq1sD0YqdS)Ns12:30:45z12:30:45rorrrrr rss z-TestTimeTZ.test_fromisoformat_fails_typeerrorcCsPGddd|j}|ddddtjd}||}||||||dS)Nc@s eZdZdS)z.TimeSubclassNr\rrrr rBsrBrrrir)rrrrMrr*ry)r+rBZtscZtsc_rtrrr rks  z&TestTimeTZ.test_fromisoformat_subclasscsGfdddj}ddddtddd f}j|}||id d i}|j||jd |jd |||d |j|j d dS)Ncs$eZdZdZfddZddZdS)z*TestTimeTZ.test_subclass_timetz..CrOcs6|}|d}jj|g|Ri|}||_|Sr;r<r>r]rr r}s  z2TestTimeTZ.test_subclass_timetz..C.__new__cSs||j|jSr[rCr@rrr rBsz2TestTimeTZ.test_subclass_timetz..C.newmethNrCrr]rr rEs rErGrBrIrrr"rrDrOrF) rrNr*r8rDrrarBrrorGrr]r test_subclass_timetzs  zTestTimeTZ.test_subclass_timetzN)r9rLrMrrrnrurvr-r"ryr7r'rjrr)rnrsrkrrrrr rmcs W "' rmc@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!d"Zd#d$Zed%d&d'Zed(d)d*Zed(d+d,Zd-d.Zd/d0Zd1d2Zd3S)4TestDateTimeTZc Cs|ddddddd}||jd||jd||jd||jd||jd||jd||jd||j ddS)Nr"rErArGrBrIrD) rr*rrrFrrprorrr_rrr test_trivialszTestDateTimeTZ.test_trivialc sj|jdddtddd|jtdddddd td dd|k|k|k|||jdddddtddd|jd ddd d tddd||jdddddtddd|k|jdddddtd dd|k|jdddddtdddd|k|jdddddtdddd|k|jj|||tkWdn1s0YGdddt }|jddd|d|||ddd|Gdddt }|jd d d |d|jd d d tddd|t fdddS)Nr"rXrrrrrrrrWrErArkr)rrorc@seZdZddZdS)z4TestDateTimeTZ.test_even_more_compare..NaivecSsdSr[rr_rrr ra8rz>TestDateTimeTZ.test_even_more_compare..Naive.utcoffsetNrirrrr Naive7srrBrIrDc@seZdZddZdS)z4TestDateTimeTZ.test_even_more_compare..BoguscSs tddS)NrrQrr_rrr raDsz>TestDateTimeTZ.test_even_more_compare..Bogus.utcoffsetNrirrrr rCsrcskSr[rrr"r#rr rHrz7TestDateTimeTZ.test_even_more_compare..) rrNrrwr*rrrorprr)r+rrrrr test_even_more_comparesN      (   z%TestDateTimeTZ.test_even_more_comparec Csd}|j|}tD],\}}}|||}||}|||q|||dtdd}|j|id|i}|jdddtdddd }tD]`\}}}|||}||}|||| |j t|| t dd || dq|||ddS) NrrErrrr"rrrrQ)rrrrr*rrrdrNryrrarrbrwrrr r-Js$       zTestDateTimeTZ.test_picklingcCsgd}d}tdd}|j|id|i}|D]Z}tD]P}||dd}|||||jt||tdd||dq6q.dS) 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.)rrmrrrr"rrrrrrrQ) rdrrr*ryrrarrb)r+rdrrxrfr!rrrrr r"as   z#TestDateTimeTZ.test_compat_unpicklec Csr|jdddtddd}t||jtdddddd td dd}t||jd d d td dd}|tt|dS) Nr"rXrrrrrrrrWrBrV)rrNr&rrorrrrr test_extreme_hashessz"TestDateTimeTZ.test_extreme_hashescCstdd}tdd}tdd}tddd d d |d }tddd d d |d }tddd dd |d }||j|||j|||j|||tdd||tdd||tdd||d||d||d|t|t||t|t||t|t|||||||||||t|d|t|d|t|dd}|t ||d|t ||d|t ||ddS)NrrrrrrorrArmrDrrrrkrQz2002-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)) rNrr*rrarrbr&rr)r+rsrrtr"r#rYr(rrr rus8      zTestDateTimeTZ.test_zonesc CsXtdd}tddd}tdddd|d }t||}||tddddddd|d dS NrrorrArGrrrr)rNrrrrPr*)r+rtr(rr`rrr rs   zTestDateTimeTZ.test_combinec Csxtdd}|jddddddd|d }||tddd||tdddd||tdddd|d dSr)rNrr*rrrY)r+rtr`rrr rs  zTestDateTimeTZ.test_extractc st|jtdd}j|d}|j||j||  || t fdd| t fdd| t fdd| t fdd| t fd d| t d | t d t d d d d|j|}||j|| |}||j|| || t fdd| ttddd}j|d|j|}}| |||jd d d tddd}|jtd dddddtddd} | |} | | |jj|jjt ddttd} ttd} |j| d| j| d| |jj|jjdS)Niz west 5:30rcsSr[rrrznowawarerr rrz9TestDateTimeTZ.test_tz_aware_arithmetic..csSr[rrrrr rrcsSr[rrrrr rrcsSr[rrrrr rrcsSr[rr)rrr rrrr"ri.)rrRrcsSr[rr)r nowawareplusrr rrrWrZrandomtimezonerXrrrrrrsi> rQrr)rrzrNrrrPrr~rr*rYrorprrhZ randrangerarrsrrr) r+Ztz55Z timeawareZ nowawareplus2rZtzrr6rfrrsZmaxdiffZtzaZtzbr)rrzrrr test_tz_aware_arithmeticsT        z'TestDateTimeTZ.test_tz_aware_arithmeticc Cs.|jj}|}tdd}||}||d}||j|j||tdd|t |d|jt |dd|jt ||d|t |||tdd d}ttd d d d dt td d d d fD]h}t dD]P}t |} || j|t j|d} | |} t| | tddkrqq|dqdS)NrO42rrQrrrxrrr r3rweirdtzrArjrz0utcnow(), now(tz), or astimezone() may be broken)rrzrNr~rr*rarrorprrrrrrrZfail) r+methr3off42anotheragainrrrrzrZnow2rrr test_tzinfo_nows.      zTestDateTimeTZ.test_tzinfo_nowcCs ddl}|jj}|}||}tdd}|||}|||d}||j|j||tdd| t ||d|j t ||dd|j t |||d| t ||||| t |d }t |} td d d } t| d d} | | } t || } || | j dddS)NrrOrrrQrrrrAi'rr)rrrrNr~rr*rarrorprrr)r+rrrr3rrrrQZ utcdatetimerarrfr6rrr test_tzinfo_fromtimestamp's*        z(TestDateTimeTZ.test_tzinfo_fromtimestampcCs:|jj}|}tdd}|t|||jt||ddS)NrOrr)rrrNrorp)r+rr3rrrr test_tzinfo_utcnowJs  z!TestDateTimeTZ.test_tzinfo_utcnowcCsPddl}|jj}|}||}tdd}|t||||jt|||ddS)NrrOrr)rrrrNrorp)r+rrrr3rrrr test_tzinfo_utcfromtimestampTs z+TestDateTimeTZ.test_tzinfo_utcfromtimestampc CshGdddt}|j}dD]\}}|ddddddd||d }|}|d|j|d|j|d|j|d|j|d|j|d|j |d |j |d|j |||j q| t|ddd|d d j||ddd|d d j d||ddd|d d j d| t|ddd|dd j| t|ddd|dd jdS)Nc@seZdZddZddZdS)z1TestDateTimeTZ.test_tzinfo_timetuple..DSTcSst|trt|d}||_dSrPrSrTrdstvaluer+rrrr rZds  z:TestDateTimeTZ.test_tzinfo_timetuple..DST.__init__cSs|jSr[rr_rrr rchsz5TestDateTimeTZ.test_tzinfo_timetuple..DST.dstNr9rLrMrZrcrrrr DSTcsr))r")rr")rr)Nrr"r#rrjrprrrrXrWrrV)rrrr*r r r rrrrrrrorpr)r+rr2rflagr(rrrr test_tzinfo_timetuple`s& ""z$TestDateTimeTZ.test_tzinfo_timetuplec sGdddt|j}|t|dddddjGfddd}dD]}|dd d d d d d|d|d}|}||j|j||j |j ||j |j |d|j |d|j||j|j|||j||tdddd|j|d|jqL|dd d d d d d}|}||dd|dd|d|jGddd}|dd d d d d d|d}|}||dd|dd|d|jGddd}|dd d d d d d|d}|t|j|ddddddd}tjtjtjfD]>}|j|d} || dd| tjddq |tddddd|dd} |t | j|t!ddd d!dd"|d#d} |t | j|jjtt"d} |t | j|jjtt" d} |t | jdS)$Nc@seZdZdddZddZdS)z-TestDateTimeTZ.test_utctimetuple..DSTrcSst|trt|d}||_dSrPrrrrr rZs  z6TestDateTimeTZ.test_utctimetuple..DST.__init__cSs|jSr[rr_rrr rcsz1TestDateTimeTZ.test_utctimetuple..DST.dstN)rrrrrr rs rr"rrcs"eZdZdfdd ZddZdS)z.TestDateTimeTZ.test_utctimetuple..UOFSNcs||t|d|_dSrP)rZruofs)r+rZdofsrrr rZs z7TestDateTimeTZ.test_utctimetuple..UOFS.__init__cSs|jSr[)rr_rrr rasz8TestDateTimeTZ.test_utctimetuple..UOFS.utcoffset)NrOrrrr UOFSsr)rrrNrErAr#rrjrpirmrkrc@seZdZddZdS)z.TestDateTimeTZ.test_utctimetuple..NOFScSsdSr[rr_rrr rasz8TestDateTimeTZ.test_utctimetuple..NOFS.utcoffsetNrirrrr NOFSsrc@seZdZddZdS)z.TestDateTimeTZ.test_utctimetuple..BOFScSsdS)Nrrr_rrr rasz8TestDateTimeTZ.test_utctimetuple..BOFS.utcoffsetNrirrrr BOFSsrrrr ri+rrXrrrrrrW)#rrrortraZ utctimetupler*rr rr rFr rrrorrrrrrrrrprrrrsrrrrBrr) r+r2rrr(rrrrZdtzrEZhugerrr test_utctimetuples\   z TestDateTimeTZ.test_utctimetuplec Cstdd}tdd}tdd}tdd}|j}d}d||||fD]}d D]}|d d d d dd||d} d|rndppd} |dur| pd} | | } | } || |d| || | d|| d|d| || d|d| |t| |d| qHq@dS)Nrrz+03:40iz-03:51rz 0001-02-03)riyr"rErArGrBrrz04:05:59z.987001rTkuሴr)rNrrbrr*r)r+rZplusZminusunknownr2ZdatestrZofsrr(ZtimestrZofsstrZtailstrZisorrr test_tzinfo_isoformats$    z$TestDateTimeTZ.test_tzinfo_isoformatc Cs6|j}tdd}ttddd}dddd d d d |g}||}|||d }dddddddd|ffD]L\}}|dd} || |<|| } |jfi||i} || | |d7}qh||d|jdd} || j|| | j|d} ||| ||j| j|ddd}|j t |jdddS)Nrrzr{rQr|r"rErArGrBrIrDrr,r-r.rrrrrrrrrr/r}r~rrr r7s>          zTestDateTimeTZ.test_replacecCsDtdd}tdd}ttdd d}|jj|d}||j||t|j|||j}||j|| | | | | | ||}||j|| | tdd|| }|| |7}|j |d }| | | | | | | ||||j|j| ||dS) NNonerZ44rBrZm300rrr)rNrrrzr~rrorrr*rrrarrY)r+ZfnoneZf44mZfm5hr`rr6rfrrr test_more_astimezones*      z#TestDateTimeTZ.test_more_astimezonercCs4|jtj}||d||||dSr[)rrzrrr*rr_rrr test_astimezone_default_utc-sz*TestDateTimeTZ.test_astimezone_default_utcrcCs|jdddddtjd}|}|||||dd|jdddd dtjd}|}|||||dd dS) Nr8rmrGrIrjrrz -0500 ESTrBz -0400 EDT)rrrrr*r)r+r`rrrr test_astimezone_default_eastern5s  z.TestDateTimeTZ.test_astimezone_default_easterncCs8tddddtjd}|}|}||j|jdS)Nrrmr"rBr)rrrrr*r)r+rrr=rrr !test_astimezone_default_near_fold@sz0TestDateTimeTZ.test_astimezone_default_near_foldc Cs|j}Gdddt}|ddddddd |d }|jd d }|jdd }|jdd }|||fD]:}|||fD]*}||} t|j|jd } || | qlq^|ddddddd }|jd |d}|jd|d}|jd|d}|||fD]}|||fD]}||} ||us||ur4||us*||ur4td} nT||urL|urZnn td} n.||urptdd } n||us~Jtdd } || | qqdS)Nc@seZdZddZdS)zBTestDateTimeTZ.test_aware_subtract..OperandDependentOffsetcSs$|jdkrt|jdStddSdSrfrgrrrr raNs  zLTestDateTimeTZ.test_aware_subtract..OperandDependentOffset.utcoffsetNrirrrr rhMsrhrzr<r#rmrrkrrrArArQririr)rrrrrpr*) r+r2rhr3rjrcrrrr6rfrrr test_aware_subtractHs6    (     z"TestDateTimeTZ.test_aware_subtractcCstddddddd}tddddddd}||||jdd}||||jtdd d}||||jtd d d}|||Gd d d t}|}|j|d}|j|d}||td d||tdd||||j|d}|||kdS)Nr"rErArGrBrIrDrrrc@seZdZddZddZdS)z1TestDateTimeTZ.test_mixed_compare..VariescSstdd|_dSrrTr]rrr rZsz:TestDateTimeTZ.test_mixed_compare..Varies.__init__cSs|jtdd7_|jSrrrrrr rasz;TestDateTimeTZ.test_mixed_compare..Varies.utcoffsetNrOrrrr rsrrrQr) rr*rrNrrrarrwrrrr r'ts$        z!TestDateTimeTZ.test_mixed_comparec sGfdddj}ddddddd td d d f}j|}||id di}|j||jd|jd|||d|j|j ddS)Ncs$eZdZdZfddZddZdS)z2TestDateTimeTZ.test_subclass_datetimetz..CrOcs6|}|d}jj|g|Ri|}||_|Sr;r<r>r]rr r}s  z:TestDateTimeTZ.test_subclass_datetimetz..C.__new__cSs||j|jSr[)rrr@rrr rBsz:TestDateTimeTZ.test_subclass_datetimetz..C.newmethNrCrr]rr rEs rErrrrGrBrIrrrr"rrDrOrF) rrNr*r8rDrrarBrrrGrr]r test_subclass_datetimetzs  z'TestDateTimeTZ.test_subclass_datetimetzN)r9rLrMrrrrr-r"rrurrrrrrrrrrr7rr r1rrrrr'rrrrr rs8 E%A%#  $P'   ,rcCs d|}|r|t|7}|S)NrI)rr)r`Z days_to_gorrr first_sunday_on_or_afters  rrQrrrGrErc@s4eZdZddZddZddZddZd d Zd S) USTimeZonecCs"t|d|_||_||_||_dSNrr stdoffsetreprnamestdnamedstnamer+rrrrrrr rZs zUSTimeZone.__init__cCs|jSr[rr]rrr r^szUSTimeZone.__repr__cCs||r|jS|jSdSr[rcrrr_rrr rbs zUSTimeZone.tznamecCs|j||Sr[rrcr_rrr raszUSTimeZone.utcoffsetcCs|dus|jdurtS|j|us$Jttj|jd}|dkrV|jdkrV|jdksZJtt j|jd}|dkr|jdkr|jdksJ||jddkr|krnnt StSdSNr/rIrGrDr#rr) rrrDSTSTARTrrrrrFDSTENDrr+r`rAendrrr rcs$$ zUSTimeZone.dstNr9rLrMrZr^rbrarcrrrr rs rrrrrrJCentralZCSTZCDTrFMountainZMSTZMDTiPacificZPSTZPDTri0ZUTCfakec@sdeZdZeddddZeddddZeZdd Zd d Zd d Z ddZ ddZ ddZ ddZ dS)TestTimezoneConversionsrrGrDrEr#rr"c Cs||t||||||}||}||kr|jdkr||t|||t|||||n ||||t}||} ||kr|jdkr|| |jdd|t7}||} || |jddn|| |tdS)NrErr"r@)r*rcrrrrrr) r+r`rrdstondstoffasutcthere_and_backZ nexthour_utcZ nexthour_tzrrr checkinsides&      z#TestTimezoneConversions.checkinsidecCsF||t||||||}||}|||dSr[)r*rcrr)r+r`rrrrrrr checkoutside/s   z$TestTimezoneConversions.checkoutsidec Cs|jj|d}|jj|d}tddtttddtddfD]p}||||||||||fD]}||||||qb||||||||fD]}||||qq.okcSstSr[rr_rrr rarz.ok.utcoffsetcSstSr[rr_rrr rcrz6TestTimezoneConversions.test_bogus_dst..ok.dstNrrrrr oksrrc@seZdZddZdS)z5TestTimezoneConversions.test_bogus_dst..notokcSsdSr[rr_rrr rcrz9TestTimezoneConversions.test_bogus_dst..notok.dstNr9rLrMrcrrrr notoksrc@seZdZddZdS)z.tricky_notokcSs|jdkrdSdtSdS)Nrr#)rrr_rrr rcs z@TestTimezoneConversions.test_bogus_dst..tricky_notok.dstNrrrrr tricky_notoksrrr")rrrzrrrror)r+rrzrrr`rrr test_bogus_dsts z&TestTimezoneConversions.test_bogus_dstc Cs|ttjtjtd}|ttj||jtd}t|}| |j t|ttj|||ttjt Gdddt }|dddd}|jjdtd }|j|d}d D]}|j|d }|d kr|td d8}t|} | || ||j}||} | || |jtd|} | || |t7}|t7}q|jjdtd }|j|d}dD]v}|j|d }t|} | || ||j}||} | || |jtd|} | || |t7}|t7}qbdS)Nrc@seZdZddZdS)z.FauxUSTimeZonecSs ||jSr[)rr_rrr rszDTestTimezoneConversions.test_fromutc..FauxUSTimeZone.fromutcNr9rLrMrrrrr FauxUSTimeZonesrrFEasternZFESTZFEDTrGr)rrr"rArGrBr@rr"r)rr"r"rErArG)rorprrrrrrrr*rrrrrrrrrr) r+rzZenowrrrAZfstartZwallrfr6rrr rsL                   z$TestTimezoneConversions.test_fromutcN)r9rLrMrrrrrrrrrrrrrrr rs4 3rc@s$eZdZddZddZddZdS)Oddballscsttt|k|k|k|k|tfdd|tfdd|tfdd|tfdd|tfdd|tfdd|tfdd|tfd d| d j d d d }j |d }| |dt jjj }| || |tjjj ddd}| || |dS)NcskSr[rrZas_dateZ as_datetimerr rrz+Oddballs.test_bug_1028306..cskSr[rrrrr rrcskSr[rrrrr rrcskSr[rrrrr rrcskSr[rrrrr rrcskSr[rrrrr rrcskSr[rrrrr rrcskSr[rrrrr rrTr"r)rFFr)rrrrPrrwrrorpr*__eq__rFrrrrr)r+Z different_dayZ as_differentZdate_scZ datetime_scrrr test_bug_1028306s4      zOddballs.test_bug_1028306c Cs^tttttttfD]4}|t d|_ Wdq$1sN0Yq$dSrH) rrrrrrrrroAttributeErrorr$)r+rrrr test_extra_attributess zOddballs.test_extra_attributesc CsGddd}tdtd|dfD]Z}|t<|tdddddddt|||||||Wdq(1sx0Yq(|tdtdddWdn1s0Y|d}|tdtdd|Wdn1s0YGd d d t}|d}|td tdd|Wdn1sD0Y| ttd ddWdn1s|0Y| ttdd dWdn1s0Y| ttddd Wdn1s0Y| ttdddd Wdn1s&0Y| t tddddd Wdn1sb0Y| t"tdddddd Wdn1s0Y| t$tddddddd Wdn1s0YdS) Nc@seZdZddZddZdS)z-Oddballs.test_check_arg_types..NumbercSs ||_dSr[value)r+rrrr rZ)sz6Oddballs.test_check_arg_types..Number.__init__cSs|jSr[rr]rrr __int__+sz5Oddballs.test_check_arg_types..Number.__int__N)r9rLrMrZrrrrr Number(srr#z10.9z)^an integer is required \(got type str\)$Z10g%@z)^__int__ returned non-int \(type float\)$c@s eZdZdS)z,Oddballs.test_check_arg_types..FloatNr\rrrr Float>srz&^integer argument expected, got float$g$@) decimalZDecimalZ assertWarnsDeprecationWarningr*rrrpr}ro)r+rZxxZf10rZs10rrr test_check_arg_types's@ $**, , , , . 0 2 zOddballs.test_check_arg_typesN)r9rLrMrrrrrrr rs% rc@seZdZddZdS)tzinfo2cCst|tstd|j|ur$td|jdd}|jdd}|dus`|dus`|durdt||kr||}|}||kr|S||fD]@}||}||kr|S|jdd}||kr|SqtddS)*datetime in UTC -> datetime in local time.&fromutc() requires a datetime argumentdt.tzinfo is not selfrrr"NzNo suitable local time found)rSrrprrrrarc)r+r`Zoff0Zoff1ldtZoffrrr r[s*       ztzinfo2.fromutcNrrrrr rYsrc@s4eZdZddZddZddZddZd d Zd S) USTimeZone2cCs"t|d|_||_||_||_dSrrrrrr rZ}s zUSTimeZone2.__init__cCs|jSr[rr]rrr r^szUSTimeZone2.__repr__cCs||r|jS|jSdSr[rr_rrr rbs zUSTimeZone2.tznamecCs|j||Sr[rr_rrr raszUSTimeZone2.utcoffsetcCs|dus|jdurtS|j|us$Jttj|jd}|dkrV|jdkrV|jdksZJtt j|jd}|dkr|jdkr|jdksJ|jdd}|t |kr|krnnt S||kr|t krnn|j rtSt S||kr|t krnn|j rt StStSdSr) rrrrrrrrrFrrrrrrr rcs$$  zUSTimeZone2.dstNrrrrr r{s rEastern2Central2 Mountain2Pacific2c@s<eZdZddZddZddZddZd d Zd d Zd S)Europe_Vilnius_1941cCs$tdddd|dtdddd|dgS)NrIrrlrrrr]rrr _utc_foldszEurope_Vilnius_1941._utc_foldcCs$tdddd|dtdddd|dgS)NrrIrrrrrr]rrr _loc_foldszEurope_Vilnius_1941._loc_foldcCs>|\}}||krdtS||kr6|jr.dndtSdtS)NrArErrrr+r`Z fold_startZ fold_stoprrr ras  zEurope_Vilnius_1941.utcoffsetcCs>|\}}||krdtS||kr6|jr.dndtSdtS)Nrr"rr rrr rcs  zEurope_Vilnius_1941.dstcCs.|\}}||krdS||kr*d|jSdS)NMSK)r CESTr )rrr rrr rbs   zEurope_Vilnius_1941.tznamecCsr|jdksJ|j|usJ|jdkr*t|\}}||krJ|dtS||krf|dtjddS|dtS)NrrrArEr"r)rrrrtrrrr rrr rs   zEurope_Vilnius_1941.fromutcN) r9rLrMrrrarcrbrrrrr rs    rc@seZdZddZddZddZddZd d Zd d Zd dZ e dddZ e dddZ ddZe dddZe dddZe dddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/S)0TestLocalTimeDisambiguationc Cst}tddddddtjd}||}||dd||jd || tdddd tjd}||}||dd ||jd | | tdddd tjd}||}||dd||jd | | dS)NrrIrrrrz%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300rrlz"Mon Jun 23 23:00:00 1941 CEST+0200r"rz"Tue Jun 24 00:00:00 1941 CEST+0200) rrrrrr*rrrrcrw)r+Vilniusgdtrrrr test_vilnius_1941_fromutcs,      z5TestLocalTimeDisambiguation.test_vilnius_1941_fromutcc Cst}tdddddd|d}|tj}||ddtdddddd|d}|tj}||dd tdddddd|d d }|tj}||dd tddd d|d}|tj}||dddS)NrrIrrrrz%c %ZzMon Jun 23 19:59:59 1941 UTCzMon Jun 23 20:59:59 1941 UTCr")rrzMon Jun 23 21:59:59 1941 UTCrrzMon Jun 23 22:00:00 1941 UTC)rrrrrr*r)r+r rrrrr test_vilnius_1941_toutc s*        z3TestLocalTimeDisambiguation.test_vilnius_1941_toutccCsxtddd}tddddd}||jd||jd|t"tddddddWdn1sj0YdSNrr"r)rrr*rrorpr+rr`rrr test_constructors"s   z-TestLocalTimeDisambiguation.test_constructorscCs@tddddd}|}||jd|}||jddS)Nr"r)rrr*rrY)r+r`rrrr test_member*s z'TestLocalTimeDisambiguation.test_memberc Cstd}tddd}||jddjd||jddjd||jddjd||jddjd|jdtd}|jdtd}||jddjd||jddjd|t|jddWdn1s0Y|t|jddWdn1s0Y|t"|dddddWdn1sV0Y|t*|ddddddddd Wdn1s0YdS)Nrr"r)rrrrE) rrr*rrrrorrprrrr r71s$  * , 2 z(TestLocalTimeDisambiguation.test_replacecCs@td}tddd}|||jdd|||jdddSr)rrr*rrrrr rHs z+TestLocalTimeDisambiguation.test_comparisoncCsPtd}tddd}|t|t|jdd|t|t|jdddSr)rrr*r&rrrrr test_hashNs z%TestLocalTimeDisambiguation.test_hashrcCs<d}t|}t|d}||jd||jddS)NiXUTrrr")rrr*r)r+r=dt0rqrrr rTs  z.TestLocalTimeDisambiguation.test_fromtimestampzAustralia/Lord_HowecCsltd}td|dkr$|dd}t|}t|d}|||||jd||jddS) NA%Z%z LHST+1030>Australia/Lord_Howe timezone is not supported on this platformiUrr")rrrr:rrr*r)r+tmr=rr"rrr test_fromtimestamp_lord_howe\s    z8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howecCs|tdjddSr)r*rrrr]rrr %test_fromtimestamp_low_fold_detectionlszATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detectioncCs8tddddd}|jdd}||d|dS)NrkrmrEr"rjrr)rrr*rQ)r+rrqrrr test_timestampqs  z*TestLocalTimeDisambiguation.test_timestampcCshtd}td|dkr$|dtddddd }|jd d }|jdd }||d |dS) NrrrrrrGrBr"rrrr)rrrr:rrrQr*)r+rrs0s1rrr test_timestamp_lord_howexs  z4TestLocalTimeDisambiguation.test_timestamp_lord_howecCs|tddddd}|jdd}|}|}||d||d||t|||jd ||jd dS) NrkrmrEr"rjrrrr)rrrr*rbrr)r+rrqZadt0Zadt1rrr r s z+TestLocalTimeDisambiguation.test_astimezonec Csztdd}tddddd}tD]V\}}}||fD]B}|||}||}|||||dkrfdn|j|jq0qdS)Nr"rrGr)rrrrrr*r) r+rr`rrrrr=rrrr test_pickle_folds     z,TestLocalTimeDisambiguation.test_pickle_foldcCs>tdd}tddddd}|t|d|t|ddS)Nr"rzdatetime.time(0, 0, fold=1)z(datetime.datetime(1, 1, 1, 0, 0, fold=1))rrr*rrrrr rs   z%TestLocalTimeDisambiguation.test_reprc Cs tddddtdtj}tddddtd}||t||t||jddt||jddtdD]@}tdddd|td}||t||jddtq~dD]@}tdd d d|td}||t||jddtqdS) Nrr#rr"rrErrrGrD) rrrr?r*rcrrr)r+ dt_summer dt_winterrpr`rrr rsz$TestLocalTimeDisambiguation.test_dstcCstddddtdtj}tddddtd}||dt||dt||jdd dt||jdd dtdS) Nrr#rr"rrErHrr)rrrr?r*rarr)r+r$r%rrr rs z*TestLocalTimeDisambiguation.test_utcoffsetc Csttddddtdtj}tddddtd}t|}t|}|||dt|||dt||jd ||jd tddddd td}t|}|t7}t|}|||||jd ||jd tdddd d td}t|}||j|j fd tddddd td}t|}||j|j fd tddddd td}t|}||j|j fddS)Nrr#rrIrrDrGrBrrjr")rrl)rr"rE)rIrl) rrrr?rr*rrrFr) r+Zu_summerZu_winterZt_summerZt_winterrrr"rrrr rs0        z(TestLocalTimeDisambiguation.test_fromutccCsLtdddtd}|||tjtdddtd}|||tjdS)Nrr"rrI)rrr*rrrrrrr test_mixed_compare_regularsz6TestLocalTimeDisambiguation.test_mixed_compare_regularcCs<tdddddtd}|tj}||||||dS)Nrr#rr"rrrrrrrr)r+t_foldZ t_fold_utcrrr test_mixed_compare_folds  z3TestLocalTimeDisambiguation.test_mixed_compare_foldcCs<tdddddtd}|tj}||||||dS)NrrGrDrErrr')r+t_gapZ t_gap_utcrrr test_mixed_compare_gaps  z2TestLocalTimeDisambiguation.test_mixed_compare_gapcCstdddtd}|t|t|jddtdddddtd}tdd d d dtd}|t|t|jdd|t|t|jdddS) Nrr"rrrr#rrrGrDrE)rrr*r&r)r+rr(r*rrr test_hash_awares z+TestLocalTimeDisambiguation.test_hash_awareN)r9rLrMrrrrr7rrr r1rrrrr"r r#rrrrr&r)r+r,rrrr r s6       !r cCs"t|\}}t|dt||Sr[)rteenextr)iterablerrrrr pairss r0c@seZdZdZddZeddZeddZedd Z e d d d  Z d d Z ddZddZddZddZed(ddZed)ddZddZddZed*d d!Zd"d#Zd$d%Zd&d'ZdS)+ZoneInfoz/usr/share/zoneinfocCs||_||_||||_dS)z :param ut: array Array of transition point timestamps :param ti: list A list of (offset, isdst, abbr) tuples :return: None N)uttiinvertr)r+r2r3rrr rZ s zZoneInfo.__init__cCstd|td|f}|r|ddt}|dd|7<|dd|7<tdt|D]H}|d|||ddt7<|d|||dt7<q^|S)Nrwrr")rSECrr')r2r3rrYr rrr r4s$"zZoneInfo.invertc CsH|ddkrtd|dtd}||dtjdkrJ|td}|||dtjdkrt|td }|||dg}t |d D]}| t d |d q||d }t |D]:\}\}} } || |d| } td|| | f||<qdgt|} t |D]\}} || | |<q"||| }|S)NrGZTZifznot a zoneinfo filernr rArrrr"z>lbbrIrE)readdecoderseekrfromfiler7 byteorderZbyteswaprrstructZunpackr%findrr')r2ZfileobjZcountsr2Z type_indicesZttisr ZabbrsZgmtoffisdstZabbrindabbrr3idxr+rrr r9$s2     zZoneInfo.fromfilecCsHtj|j|}t|d}||WdS1s:0YdS)Nrb)ospathjoinzonerootopenr9)r2r5rBrrrr fromnameIs zZoneInfo.fromnamer)r"cCst|tstd|j|ur$td||jd|jd|jd|j }||j dkrn|j d}d}nt |j |}|j |d|ksJ|t|j ks||j |ksJ|j |d|\}}|d|d}|td||j |dk}||d7}|r|jdd S|Sd S) rrrrrrr"rrErN)rSrrprrr EPOCHORDINALrrpror2r3bisect bisect_rightr'rr)r+r`rQZttirr?Ztti_prevshiftrrr rQs0      zZoneInfo.fromutccCs\||jd|jd|jd|j}|j|j}t||}|j t d|d|S)Nrrrrr") rrGrrprorrrHrIr3rs)r+r`r rQrr?rrr _find_tios  zZoneInfo._find_ticCs ||dSrrKr_rrr rayszZoneInfo.utcoffsetcCs||d}|rtStSrH)rKrr)r+r`r=rrr rc|s z ZoneInfo.dstcCs ||dS)NrErLr_rrr rbszZoneInfo.tznameNccs|dur|j}tj|d}z t|}Wnty<YdS0|>|D](}|}|rH|dsH|dVqHWdn1s0YdS)Nzzone.tab#rE) rDrArBrCrErstripr3r)r2ZzonedirZzone_tabrlinerrr zonenamess  zZoneInfo.zonenamescCsd}}}}tj}}t}} tj} } d} } tj}}d}}t|dd}|D]}|d7}||}|D]\}}||krqx|tkr|d7}||f|| fkr|}|} |} |tj|f|tj| fkr|}|} |} qx|tkrB|d7}| }||f| |fkr|} |}|}|tj|f|tj|fkrJ|}|}|}qx|d7}qxqZ|||f}td|tdt |f|td|| | ftd|| | ftd|||ftd| ||fdS) Nrr"zNumber of zones: %5dz@Number of transitions: %5d = %d (gaps) + %d (folds) + %d (zeros)z!Min gap: %16s at %s in %sz!Max gap: %16s at %s in %sz!Min fold: %16s at %s in %sz!Max fold: %16s at %s in %s) rrsrrrrPrF transitionsprintrV)r2 start_yearcountZ gap_countZ fold_countZ zeros_countZmin_gapZmin_foldZmax_gapZmax_foldZmin_gap_datetimeZmax_gap_datetimeZ min_gap_zoneZ max_gap_zoneZmin_fold_datetimeZmax_fold_datetimeZ min_fold_zoneZ max_fold_zoneZ stats_sincezonenamerr`rJZ trans_countsrrr statssZ           zZoneInfo.statsccsHtt|j|jD]0\\}}\}}|d|d}t||fVqdSr)r0rr2r3rrr+_Zprev_tirr3rJrrr rQs"zZoneInfo.transitionsccsntt|j|jD]V\\}}\}}|d|d}|tkr|d|dkrt|| |d|dfVqdS)zLFind all folds with the same value of isdst on both sides of the transition.rr"rEN)r0rr2r3rrrrWrrr nondst_foldss"zZoneInfo.nondst_foldsFc Csnd}|D]\}||}|D]D\}}}} |j|ks"|rF|| krFq"|d7}td|||||| fq"q dS)Nrr"z%3d) %-30s %s %10s %5s -> %s)rPrFrYrrR) r2Z same_abbrrSrTrUrr`rJZ prev_abbrr>rrr print_all_nondst_foldss  zZoneInfo.print_all_nondst_foldsccs*|D]\}}|tkr|| fVqdSr[rQrr+rrJrrr foldsszZoneInfo.foldsccs(|D]\}}|tkr||fVqdSr[r[r\rrr gapssz ZoneInfo.gapsccs |D]\}}|s|VqdSr[)rQr\rrr zerosszZoneInfo.zeros)N)r")Fr")r9rLrMrDrZrXr4 classmethodr9rFrrrGrrKrarcrbrPrVrQrYrZr]r^r_rrrr r1 s2   $    0 r1c@s8eZdZdZddZddZddZdd Zd d Zd S) ZoneInfoTestzAmerica/New_Yorkc Csxtjdkr|dtjdkr(|dzt|j|_Wn8tyr}z |d|j|fWYd}~n d}~00dS)NZvxworksz"Skipping zoneinfo tests on VxWorksrz"Skipping zoneinfo tests on WindowszSkipping %s: %s)r7r3r:r1rFrUrFileNotFoundError)r+errrrr rs    zZoneInfoTest.setUpcCs<||jdd|jt|jf|jdd|jt|jfdS)Nr)r*rridr)r+rrrrr assertEquivDatetimessz!ZoneInfoTest.assertEquivDatetimesc Cs|j}|D]\}}d|d||tjfD]}||}||j|d}||jd|jtj d |}| ||| }||jdd||| | tj |jtj dq.tj |fD]0}||}|j|d}||}||jdqqdS)Nrrrr") rr]rr?rrr*rrrrrera r+rr`rJrudtrZadtrarrr test_foldss$    zZoneInfoTest.test_foldsc Cs.|j}|D]\}}d|d||tjfD]}||}|j|d}||}||jd|jtj d |}| ||| }||jdd|jdd|||j|d||}| |jdd |jdd d|q0tj |fD],}||}||j|d}||jdqqdS)Nrrrr"rzAt %s.)rr^rr?rrr*rrrrreraZ assertLessrfrrr test_gapss(    zZoneInfoTest.test_gapsc Csd|jvs|jdr&|d|j|j}tjd}|jtjd<z4t| D]\}}|j dkrpqR|t dddt }|t }dd d d |d|d |d fD]J}||}t |} t ||jdd} || | | } ||| q|d krXt ||d} | } | jdd}|| ||d||||dqXW|durhtjd=n |tjd<tn(|durtjd=n |tjd<t0dS)NZRiyadh8zright/z Skipping %sTZir)r"iirri@i2rrEr)rUr3r:rrAenvirongetrtzsetrQrrr5rrrerQr*)r+rrjrgrJr rrr=ZsdtZtzdtr!r`Zts0Zts1rrr test_system_transitions-sJ             z$ZoneInfoTest.test_system_transitionsN) r9rLrMrUrrerhrirnrrrr ras  racseZdZfddZZS)ZoneInfoCompleteTestcshg}tdrXtD]B}td|tfi}||_t|D]}|dr8|||q8qt |dS)NZtzdatazZoneInfoTest[%s]Ztest_) r r1rPrrarUr-r3rsuperrZ)r+rdr5ZTestmethodr8rr rZ[s   zZoneInfoCompleteTest.__init__)r9rLrMrZ __classcell__rrrrr roZsroc@seZdZdZdS)IranTestz Asia/TehranN)r9rLrMrUrrrr rtgsrtc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+S),CapiTestcCs$|jjdr|dtdS)NZPurezNot relevant in pure Python)r8r9r4r: _testcapiZtest_datetime_capir]rrr rls zCapiTest.setUpc CsRdD]H}t|}|j|d||tjWdq1sB0YqdS)NTF) use_macro)rvZget_timezone_utc_capirr~rr)r+rxZcapi_utcrrr test_utc_capius zCapiTest.test_utc_capic Cst\}}}ttddd}ttdd}d||fd||fd||fg}|D]\}}} |j|d||| tdd d |d } tdd d | d } || | || | tdd d d tjd } || tj| WdqL1s0YqLdS) Nrrrest_capi est_macro est_macro_nn)r5rrErGrrB) rvZmake_timezones_capirrrr*rrbrr) r+rzr{r|Z exp_namedZ exp_unnamedcasesr5Ztz_actZtz_exprqrrrrr test_timezones_capi|s   zCapiTest.test_timezones_capic CsGdddt}t|fD]~}dD]t}||}|j||dJt|\}}}|||j|||j|||jWdq 1s0Yq qdS)Nc@s eZdZdS)z=CapiTest.test_PyDateTime_DELTA_GET..TimeDeltaSubclassNr\rrrr TimeDeltaSubclasssr)r7韆rr2r)rrrvZPyDateTime_DELTA_GETr*rrr)r+rklassrr(rrrrrr test_PyDateTime_DELTA_GETs z"CapiTest.test_PyDateTime_DELTA_GETc CsGdddt}t|fD]~}dD]t}||}|j||dJt|\}}}|||j|||j|||jWdq 1s0Yq qdS)Nc@s eZdZdS)z2CapiTest.test_PyDateTime_GET..DateSubclassNr\rrrr r]sr]))rr"rE)r8rErr)rrrvZPyDateTime_GETr*rrrF)r+r]rrr(rrrFrrr test_PyDateTime_GETs zCapiTest.test_PyDateTime_GETc CsGdddt}t|fD]}dD]}||}|j||dZt|\}}}}|||j|||j|||j|||jWdq 1s0Yq qdS)Nc@s eZdZdS)z;CapiTest.test_PyDateTime_DATE_GET..DateTimeSubclassNr\rrrr risri)rzrrrrrrr) rrrvZPyDateTime_DATE_GETr*rrpror) r+rirrr(rrprorrrr test_PyDateTime_DATE_GETs z!CapiTest.test_PyDateTime_DATE_GETc CsGdddt}t|fD]}dD]}||}|j||dZt|\}}}}|||j|||j|||j|||jWdq 1s0Yq qdS)Nc@s eZdZdS)z7CapiTest.test_PyDateTime_TIME_GET..TimeSubclassNr\rrrr rBsrB)rrjrr#rr) rrrvZPyDateTime_TIME_GETr*rrpror) r+rBrrr(rrprorrrr test_PyDateTime_TIME_GETs z!CapiTest.test_PyDateTime_TIME_GETcCst\}}}|jdd||tjWdn1s>0Y|jdd||tjWdn1sx0Y|jddz||tjttddd}|||t dd d |d }t dd d |d }||||| | Wdn1s0YdS) Nutc0)Ztestnameutc1non_utcrrrrrErGr) rvZget_timezones_offset_zerorr~rrrrr*rrb)r+rrrZ non_utc_exprqrrrr test_timezones_offset_zeros,,  z#CapiTest.test_timezones_offset_zeroc Cs Gdddt}tddd}|ddd}tddd}tj}||||||||||||d|||d|||dttddtdt j t ddg}|D]L}d D]B}|j ||d  ||||Wdq1s0YqqdS) Nc@s eZdZdS)z.CapiTest.test_check_date..DateSubclassNr\rrrr r]sr]r"T 2011-01-01rrrwargexact) rrrvZdatetime_check_daterwrrrrrrrr) r+r]r(Zdsr`Zis_daterrrrrr test_check_dates$    zCapiTest.test_check_datec CsGdddt}tdd}|dd}tj}|||||||||d|||dttddtdtj t dddg}|D]L}d D]B}|j ||d  ||||Wdq1s0YqqdS) Nc@s eZdZdS)z.CapiTest.test_check_time..TimeSubclassNr\rrrr rBsrBrrjTr"rrrwr) rrvZdatetime_check_timerwrrrrrrrr)r+rBrrZis_timerrrrrr test_check_times   zCapiTest.test_check_timec CsGdddt}tddddd}|ddddd}tj}|||||||||d|||dttddtdtj t dddg}|D]L}d D]B}|j ||d  ||||Wdq1s0YqqdS) Nc@s eZdZdS)z6CapiTest.test_check_datetime..DateTimeSubclassNr\rrrr risrirr"rrjTrrwr) rrvZdatetime_check_datetimerwrrrrrrrr)r+rir`rZ is_datetimerrrrrr test_check_datetimes zCapiTest.test_check_datetimec CsGdddt}td}|d}tj}|||||||||d|||dttddtjt dddt dddg}|D]L}dD]B}|j ||d ||||Wdq1s0YqqdS) Nc@s eZdZdS)z4CapiTest.test_check_delta..TimeDeltaSubclassNr\rrrr r8srr"Trrrwr) rrvZdatetime_check_deltarwrrrrrrrr)r+rrZtdsZ is_timedeltarrrrrr test_check_delta7s zCapiTest.test_check_deltac CsGdddt}t}|}ttdd}tj}||||||||||||d|||d|||dttddt dddt dddg}|D]L}d D]B}|j ||d  ||||Wdq1s0YqqdS) Nc@s eZdZdS)z2CapiTest.test_check_tzinfo..TZInfoSubclassNr\rrrr TZInfoSubclassRsrrrTr"rrrwr) rrrrvZdatetime_check_tzinforwrrrrrr) r+rrZtzisrZ is_tzinforrrrrr test_check_tzinfoQs$ zCapiTest.test_check_tzinfoc Cshtddd}dD]R}|j|d2t||j|j|j}|||Wdq1sX0YqdS)NrrzrFTmacro)rrrvZget_date_fromdaterrrFr*r+exp_dater c_api_daterrr test_date_from_datens zCapiTest.test_date_from_datec Cstddddddd}dD]b}|j|d Bt||j|j|j|j|j|j |j }| ||Wdq1sp0YqdS) Nrrzrrrrrrr) rrrvZget_datetime_fromdateandtimerrrFrrprorr*rrrr test_datetime_from_dateandtime{s z'CapiTest.test_datetime_from_dateandtimecCstddddddd}dD]}d D]x}|j||d Vt||j|j|j|j|j|j |j |j }| ||| |j |j Wdq 1s0Yq qdS) Nrrzrrrrrrr"rrr) rrrvZ#get_datetime_fromdateandtimeandfoldrrrFrrprorrr*)r+rrrrrrr %test_datetime_from_dateandtimeandfolds" z.CapiTest.test_datetime_from_dateandtimeandfoldc Csntdddd}dD]V}|j|d6t||j|j|j|j}|||Wdq1s^0YqdS)Nrrrrrr) rrrvZget_time_fromtimerrprorr*)r+exp_timer c_api_timerrr test_time_from_timeszCapiTest.test_time_from_timec Cstdddd}dD]v}dD]l}|j||dJt||j|j|j|j|j}| ||| |j|jWdq1s|0YqqdS)Nrrrrrrr) rrrvZget_time_fromtimeandfoldrrprorrr*)r+rrrrrrr test_time_from_timeandfolds z#CapiTest.test_time_from_timeandfoldc Cshtddd}dD]R}|j|d2t||j|j|j}|||Wdq1sX0YqdS)Nrrrrr)rrrvZget_delta_fromdsurrrr*)r+Z exp_deltarZ c_api_deltarrr test_delta_from_dsus zCapiTest.test_delta_from_dsuc Csntddd}dD]T}|j|d4tt||}||tdddWdq1s^0YqdS)NrGrrr)rrQrrvZget_date_fromtimestamprTr*r)r+rrr(rrr test_date_from_timestamps z!CapiTest.test_date_from_timestampc Csdddttdddfddd ttdddfg}tj}|D]z}d D]p}|j||d N|\}}}t|d |i}t|} || |||} ||| WdqB1s0YqBq:dS) N)rrGrNF)rNTrr"rT)rrGrrrjNF)rNTrr)caserr) rrrvZget_datetime_fromtimestamprrrTrQr*) r+r}rrrZdtuprZusetzZdt_origrrirrr test_datetime_from_timestamps    z%CapiTest.test_datetime_from_timestampN)r9rLrMrryr~rrrrrrrrrrrrrrrrrrrrrr ruks*    rucCs|t|Sr[)ZaddTestro)loaderZstandard_testspatternrrr load_testss r__main__)mrrprrHrrr7rArrhr-r;r2roperatorrrrrrrr r r testr Z test.supportr rrrrr)rrrrrrrrrvrrZ_loadsrrrrr'r0r}rIrZTestCaser'rNrdrgrjrrrrrrrrr4r6r7rHrmrrrrrrrrrrrrrrrrrrrrrrrrr r5r0r1raZ TestSuiterortrurr9mainrrrr s ,       8_A3=!a"<   *  c"32 gk