asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a bYhg@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).0protorr//usr/local/lib/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+rnamesallowedrrr 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>rLrrrr 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)rWlowerr+rrr __repr__}szFixedOffset.__repr__cCs|jSr\)rVr+dtrrr utcoffsetszFixedOffset.utcoffsetcCs|jSr\)rWr`rrr tznameszFixedOffset.tznamecCs|jSr\)rXr`rrr dstszFixedOffset.dstN)rP)r9rMrNr[r_rbrcrdrrrr rOss  rOc@seZdZdddZddZdS)PicklableFixedOffsetNcCst||||dSr\)rOr[rYrrr r[szPicklableFixedOffset.__init__cCs|jSr\)__dict__r^rrr __getstate__sz!PicklableFixedOffset.__getstate__)NNN)r9rMrNr[rgrrrr res rec@seZdZddZdS)_TZInfocCstSr\)random)r+r)rrr rbsz_TZInfo.utcoffsetNr9rMrNrbrrrr rhsrhc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestTZInfoc CsRt}tddddddd|}|t|Wdn1sD0YdS)NrE rBr)rhr assertRaises TypeErrorrb)r+Ztz1dt1rrr test_refcnt_crash_bug_22044s z&TestTZInfo.test_refcnt_crash_bug_22044cCs@t}tj}|t|j||t|j||t|j|dSr\)rrmaxrpNotImplementedErrorrcrbrd)r+Zuselessrarrr 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+rZr5rrr r[szBTestTZInfo.test_subclass_must_override..NotEnough.__init__N)r9rMrNr[rrrr NotEnoughsrwrBZNotByALongShot) r assertTrue issubclassassertIsInstancernowrprurcrbrd)r+rwrrarrr test_subclass_must_overrides  z&TestTZInfo.test_subclass_must_overridecCsntdd}||ttdfD]F}|||tdd|||d|| |tddq"dS)NrBZThreerRrP) rOrzrrr{r*rbrrcrd)r+forarrr 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)NrRcookieEST) rrerrcrzrrrr*rbrrr) r+rZZotypeargsrZonamerrrrrrrr 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 rbsz:TestTZInfo.test_issue23600..UKSummerTime.utcoffsetcsSr\rr`)DSTDIFFrr rdsz4TestTZInfo.test_issue23600..UKSummerTime.dstcSsdS)N UKSummerTimerr`rrr rcsz7TestTZInfo.test_issue23600..UKSummerTime.tznameN)r9rMrN__doc__rbrdrcrrrrr rs  rrlrH r)rrrfromutcr*rb)r+rtzutrrr test_issue23600s  zTestTZInfo.test_issue23600N) r9rMrNrsrvr|r~rrrrrrr rks  rkc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#S)$ TestTimeZonecCs8ttddd|_ttdd d|_tddd|_dS)N#@rACDTrCrr")rrrrrDTr^rrr setUpszTestTimeZone.setUpcCs8|j|jtjtjtjfD]}|t||dqdSr\) rrrutcminrtr*strrcr+rrrr test_strs zTestTimeZone.test_strcCs>t}|j|jtjtjtjfD]}t|}||t |qdSr\) r)rrrrrrtreprr*eval)r+rrZtzreprrr test_reprs  zTestTimeZone.test_reprcCsNtddd}|tjdt|tjd| |tjd|dS)N;rrS)rr*rrrbZEROrrt)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" microsecondssecondsrRrPABCextra) rrrr assertIsNotr*assertNotEqualrbrp ValueErrorrqr)r+Z subminuterinvalidrrr test_constructor s2466zTestTimeZone.test_constructorcCs |tjt||jtdSr\)rzrrrrr^rrr test_inheritanceszTestTimeZone.test_inheritancecCs|j}dD]<}|t}||t|||| t| |q |t|jdWdn1st0Y|t|jdWdn1s0YdS)N)rg?rrC)rHOURr*rrbrprqr)r+dummyhrZrrr test_utcoffset!s6zTestTimeZone.test_utcoffsetcCs|tj|j|t|jdWdn1s@0Y|t|jdWdn1sv0YdS)NrrC) assertIsNonerrrdrrprqrr^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:01rRZXYZz UTC+01:06:40rz UTC-01:06:40zUTC+01:06:40.000001r"zUTC-01:06:40.000001rrC) r*rrrcrrrrprqrr^rrr test_tzname2s&8zTestTimeZone.test_tznamecCs|ttj|jWdn1s.0Y|ttjdWdn1sd0Y|j|jt fD]J}|jj |d}||}| ||| || ||jj tjdq|dS)Nz not datetimer) rprrrrrrqrrEasternreplacer*rb)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*rprqr/rx assertFalserrrrrrr test_comparisonTs$:zTestTimeZone.test_comparisoncCstddd}tjtjtjfD]^}||||j|d||||j|d|| ||j|d qdS)Nr"r) rrrrtrr*rcrrbrdr+rrrrr test_aware_datetimeis    z TestTimeZone.test_aware_datetimecCs|j|jtjtjfD]2}tD](\}}}||||}|||qqtj }tD](\}}}||||}| ||qRdSr\) rrrrrtrrrr*rr)r+rrrrtz_copyrrr test_pickletszTestTimeZone.test_picklecCsP|j|jtjtjfD]}t|}|||qtj}t|}|||dSr\) rrrrrtcopyr*rrr+rrrrr test_copy~s   zTestTimeZone.test_copycCsP|j|jtjtjfD]}t|}|||qtj}t|}| ||dSr\) rrrrrtrdeepcopyr*rrrrrr 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)NrrrrrSr?BrrSrrcSsg|] }| qSrrrdeltarrr r!z7TestTimeZone.test_offset_boundaries..Zgood)Z test_typerrr")rrcSsg|] }| qSrrrrrr r!rZbad)rextendsubTestrrpr)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)r9rMrNrrrrrrrrrrrrrrrrrrrrr 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)theclassrrxr/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)rrprqr^rrr test_harmful_mixed_comparisonsz5HarmlessMixedComparison.test_harmful_mixed_comparisonN)r9rMrNrrrrrr 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)weeksdaysrrSr millisecondsrr"rrrrrErr<rRrg$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)-NrErrrrJiDQrGrQX>Qir#FiX'rDrr"i@i6i@?xrrBrFrCrArr翶~Ϛ?@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)NrPr"?csSr\rrr r rr rYrz.csSr\rrrrr rZrcsSr\rrrrr r[rcsSr\rrrrr r\rrcsSr\rrr zerorr rarcsSr\rrrrr rbrcsSr\rrrrr rcrcsdS)Nrrr rr rdrcsdS)Nrrrrrr rer)rrprqZeroDivisionErrorr^r)r r rr test_disallowed_computationsTsz*TestTimeDelta.test_disallowed_computationscCs,td}|t|jt|t|jtdS)NrP)rrpr__mul__NAN __truediv__)r+r rrr test_disallowed_specialgsz%TestTimeDelta.test_disallowed_specialcCsDd\}}}t|||}||j|||j|||j|dS)N)r"rErr*rrr)r+rrr rrrr test_basic_attributesms   z#TestTimeDelta.test_basic_attributescCsptdd}||ddD]}t|d}|||qdD](}t|d}|||tddqBdS) Nmrg8~A)g ˟ $@g ˟ $rrg.Ar)rrDirr")rr* total_seconds)r+rr msrrr test_total_secondsts   z TestTimeDelta.test_total_secondscCs.tddddddd}tdd }|||dS) NdrG8rArgArrrrSrrr"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)Nr#rGr$rAriz r%rEr1rr"rF)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)NrFrBrH)rBrBrB)rFrHrH)rFrBrCFTcskSr\rrZbadargr'rr rrz,TestTimeDelta.test_compare..cskSr\rrr4rr rrcskSr\rrr4rr rrcskSr\rrr4rr rrcskSr\rrr4rr rrcskSr\rrr4rr rrcskSr\rrr4rr rrcskSr\rrr4rr rr)rr*rxr OTHERSTUFFrprqr+r(rrr4r 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:00rFz2 days, 0:00:00rDz-2 days, 0:00:00r:rrz12:58:59rBrHz2:03:04irr/)rrrSrz-210 days, 23:12:34rz0:00:00.001000rz0:00:00.000003rrrrrSrrz999999999 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#rFz%s(days=10, seconds=2)r@z,%s(days=-10, seconds=2, microseconds=400000)rrz%s(seconds=60)z%s(0)r#rz%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)Nrrrrr96err"rrrFrBrrrr: ) rrrxr3rr*rrr)r+rsZtd2rrr test_roundtrips    zTestTimeDelta.test_roundtripcCs~|tjt|tjt|tjt|tjtjk|tjtd|tjtddd|tjtddddS)Nr>rrg~.Arr")rzrrrt resolutionrxr*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\)rrtrrrr rrz-TestTimeDelta.test_overflow..r"ʚ;geAg#B ;g|=gr{>) rrDrrp OverflowError__sub____add__rtrr)r+tinyrdayrrr test_overflows   zTestTimeDelta.test_overflowcCs.td}|t|jt|t|jt dSNr")rrprGrINF)r+rKrrr _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?rFg~jtXrDgƠ>rgƠ?i|tArg?rg?rrrgٿgɿrr)rr*rD)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)rxrrr^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 @rS)rrrr)r+sumrrr as_hoursas z9TestTimeDelta.test_subclass_timedelta..T.as_hoursN)r9rMrN staticmethodrZr\rrXrr rY\srYr"rrrir?i) rrrr*r\rZrrrr)r+r'r(t3t4rrXr 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..DateSubclassNr9rMrNrrrr DateSubclasszsrbr"rCraddcSs||Sr\rr-rrrr rrz2TestTimeDelta.test_subclass_date..rJraddcSs||Sr\rrerrr rrsubcSs||Sr\rrerrr rrrH)rrrr*rz) r+rbd1rtestsr5funcexpectedactrrr 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..DateTimeSubclassNrarrrr DateTimeSubclasssrnrcr"rCr)rrSrdcSs||Sr\rrerrr rrz6TestTimeDelta.test_subclass_datetime..rJ rfcSs||Sr\rrerrr rrrgcSs||Sr\rrerrr rrrH)rrrr*rz) r+rnrhrrir5rjrkrlrrr test_subclass_datetimes    z$TestTimeDelta.test_subclass_datetimecCstdddd}tdd}|||d|||dtdd d }tdd }|||d |||dtd }|tt|||tt||dS)Nr"rrrgó@irFrorSrrRg@r)rr*rprr r )r+rsecondminutezerotdrrr test_divisions   zTestTimeDelta.test_divisioncCstddd}tdd}||}||tddtddd}||}||tddtd}|tt|||tt|d dS NrFrorsr"rRrrDrr#)rr*rprr rq)r+rrurrvrrr test_remainders   zTestTimeDelta.test_remaindercCstddd}tdd}t||\}}||d||tddtddd}t||\}}||d||tddtd}|tt|||tt|d dSrx)rdivmodr*rprrq)r+rruqryrvrrr 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)r9rMrNrrr~rr BadFloatsr)float)rrrr~r get_bad_floatsz4TestTimeDelta.test_issue31293..get_bad_floatr"r)r)rPr"rFrB)rprqrr)r+rrrrr 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)r9rMrNrrrrrrrr BadInts   rcs$eZdZfddZfddZdS)z+TestTimeDelta.test_issue31752..ProdcsSr\rrSumrr rIsz3TestTimeDelta.test_issue31752..Prod.__add__csSr\rrrrr __radd__sz4TestTimeDelta.test_issue31752..Prod.__radd__N)r9rMrNrIrrrrr rs rcseZdZfddZdS)z*TestTimeDelta.test_issue31752..SumcsSr\rr divmodresultrr __divmod__sz5TestTimeDelta.test_issue31752..Sum.__divmod__N)r9rMrNrrrrr rsr)Nr)rr"rF)rrrr"rrr)rUrrrqr)r+rr)rrrr test_issue31752s:    zTestTimeDelta.test_issue31752N)"r9rMrNrrrrrr Zrequires_IEEE_754rrr"r)r.r2r7rrrCrErLrOrUrVrWr`rmrqrwrzr}rrrrrr rs<S   (  !rc@seZdZddZdS) TestDateOnlycCstddd}tdddddd}t|j}||td||}||||||}||||||}||||| }t|j}||td||}||||||}||||||}||||dS) Nr"rFrBrHrCr9rD)rrrr*)r+rarrdt2rrr test_delta_non_days_ignored!s*    z(TestDateOnly.test_delta_non_days_ignoredN)r9rMrNrrrrr rsrc@seZdZdZdS) SubclassDater"Nr9rMrNZsub_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)NrBr")rr*yearmonthrKr`rrr rGszTestDate.test_basic_attributescCsz|ddd|jfD]\}t|}||d|dd}t|}|||||j|j|j }|||qdS)Nr"rFrBr:rA) rtodayrrxr3rr*rrrKr+rarBrrrr rCMs   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)rFr"r"n)irnri hourrr"rErr) rrrorrorrrorror))rT)rFrprF) rr* toordinal fromordinalhasattrrrurt microsecondrrrzip) r+ymr-nZfromordrd2ZdimZisleaprZmaxdayrKrrr test_ordinal_conversions[s>       z!TestDate.test_ordinal_conversionscs|jj|jjj}|||t fddt dd}||d|||jd|jj |jjj}|||t fddt dd}||d|||jddS)NcsdSrMrrr Zaordrr rrz0TestDate.test_extreme_ordinals..r"rcsdSrMrrrrr rr) rrrrrKrrr*rprrrt)r+r rrr 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"rrrrprF` ro4lro)rrrrprr^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"rFrrr*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"rrrFArHrrErBrAr4rcsSr\rrrrr rrz,TestDate.test_computations..csSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrr rKrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rr rr*rr,rrrrrprq)r+r r diffweekrr rKr r rsPzTestDate.test_computationscCs|jj}|tdtdfD]p}|jj|}||8}|t|j||t|j| |jj|}||7}|t|j||t|j| qdS)Nr"rF) rrDrrrprGrHrIrt)r+rJrrarrr rLs  zTestDate.test_overflowc Cshddl}d\}}}||||ddddddf }|j|}||j|||j|||j|dS)Nr)irArrr)rmktimer fromtimestampr*rrrK)r+rrrrKtsr-rrr test_fromtimestamps  zTestDate.test_fromtimestampcCs dD]}|t|jj|qdSN)gZbtgZbtirprGrrr+Zinsanerrr test_insane_fromtimestamps z"TestDate.test_insane_fromtimestampcCslddl}tdD]8}|j}|}|j|}||kr>qJ|dq||krh|j||tddddS)NrrBg?rr)r)rrrrrsleepZassertAlmostEqualr)r+rrrrZ todayagainrrr test_today&s    zTestDate.test_todayc CstdD]}||ddd||||ddd||d||ddd||||ddd||dqdS)NrErrBrHr"rrF)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"rC)rrFr"))rrm)rrr"))rrr)r5r"))rr"rH)rr"r"rErrFtuple)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"rFN)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) sortedmaprUsplitrrr*rr)r+ZISO_LONG_YEARS_TABLEZiso_long_yearsLr r-rhrrr test_iso_long_yearsus $ zTestDate.test_iso_long_yearscCs"|ddd}||ddS)NrFrBz 0002-03-02)rr* isoformatr+rrrr test_isoformatszTestDate.test_isoformatcCs"|ddd}||ddS)NrrBrFzSat 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)NrBrFm:%m d:%d y:%yzm:03 d:02 y:05rAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoneZtworP%mZ03 '%z' '%Z''' '')z%e%z%#u%y%mz%f)rr*strftimerprqrUnicodeEncodeError)r+rfrrr test_strftimes&   zTestDate.test_strftimecCsz|ddd}ztdWnty8|dYn0||dtd|||dtd|dS)NrrBrFrz'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) NrAr#rmust be str, not int{c@seZdZddZdS)zTestDate.test_format..AcSsdSNArr^rrr __str__sz'TestDate.test_format..A.__str__Nr9rMrNrrrrr rsrc@seZdZddZdS)zTestDate.test_format..BcSsdSNBrr+ format_specrrr rsz(TestDate.test_format..B.strftimeNr9rMrNrrrrr rsrrzm:%m d:%d y:%y H:%H M:%M S:%S%z %Zrr* __format__rassertRaisesRegexrqrr+rarr rr fmtrrr test_formats(  zTestDate.test_formatcCs`t|jtrt}nt}||jj|||jj|||jjt| |jj|jjkdSr\) ryrrrrzrrtrDrrx)r+Zexpected_classrrr rEs zTestDate.test_resolution_infocCsz|jj|jj}|jdd|jd|j}tdd|}|||||jj||jj||jj||jjdS)Nr@Br)rrtrrrrrr*)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) NrErr"rFrrrorB=) 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)NrJrErrFrrrrr* __reduce__ __reduce_ex__r1rrr r2%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.)rnlatin1encodingr pickle_loadsr*r+rirrkdatarrrrr 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)NrFrBrHr3FTcskSr\rrr4rr rZrz'TestDate.test_compare..cskSr\rrr4rr r[rcskSr\rrr4rr r\rcskSr\rrr4rr r]rcskSr\rrr4rr r^rcskSr\rrr4rr r_rcskSr\rrr4rr r`r)rr*rxrr5rprqr6rr4r r7;sD  zTestDate.test_comparecs|ddd|dkd|dkd|dkd|dkd|tfdd|tfd dGd d d }||kd|kd|kd|kd|tfd d|tfd ddS)NrrHrCr"FTcsdkSrMrrourrr rlrz-TestDate.test_mixed_compare..csdkSrMrrr(rr rmrc@s eZdZdS)z.TestDate.test_mixed_compare..SomeClassNrarrrr SomeClassqsr*cskSr\rrr)Ztheirrr ryrcskSr\rrr+rr rzr)rr*rprq)r+r*rr+r test_mixed_comparebszTestDate.test_mixed_comparecCs ||jj||jjdSr\)rxrrrtr^rrr rW|szTestDate.test_boolcCsZdD]P}||dd}|dd|kr||dd|||dd|qdS)N)r"r*rcr#irr"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)rrFrrBrKrHr"rrFrrrrr*rrpr r+clsrbaser r5newvalnewargsrkgotrrr test_replaces     zTestDate.test_replacecCs:Gddd|j}|ddd}|t|jdd|dS)Nc@s eZdZdS)z4TestDate.test_subclass_replace..DateSubclassNrarrrr rbsrbr"ir4rrrr)r+rbrarrr test_subclass_replaces zTestDate.test_subclass_replacecsGfdddj}d}j|}||iddi}|j||jd|jd|||d|j|jddS)Ncs$eZdZdZfddZddZdS)z&TestDate.test_subclass_date..CrPcs6|}|d}jj|g|Ri|}||_|SNrrpoprrrr7rkwsZtemprresultr^rr rs  z.TestDate.test_subclass_date..C.__new__cSs||j|jSr\)rrr+startrrr newmethsz.TestDate.test_subclass_date..C.newmethNr9rMrN theAnswerrrHrr^rr Cs rKrrHrrrErPrG) rr*r8rJrrrHrrr+rKrrrrrr^r rms  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|_|SNrErrrr7rkwargsrEr^rr rszKTestDate.test_subclass_alternate_constructors..DateSubclass.__new__Nr9rMrNrrr^rr rbsrbrLi( z 2003-04-14rErrr fromisoformatZ base_obj_type constr_name) rrzr*rrcombiner timestamprrgetattr) r+rbrZd_ord d_isoformatbase_drrrU constr_argsbase_objconstrrarr^r $test_subclass_alternate_constructorss,       z-TestDate.test_subclass_alternate_constructorscCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)Nr)rrrrr*rxrTr1rrr 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-25rH)9 rFrB^bad tzinfo state arg$r"rrp) ryrrrprqrbytesr,r)r+r8Z 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")rrFrrr"r")rrFrrrnr)rrHrBirCro)dt_strrrrrSr*)r+ base_datesdt_tuplerarkdt_rtrrr test_fromisoformats  zTestDate.test_fromisoformatcCs<Gddd|j}|ddd}||}|||dS)Nc@s eZdZdS)z:TestDate.test_fromisoformat_subclass..DateSubclassNrarrrr rb)srbrlrr)rrSrrz)r+rbrarorrr 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)rprrrSr+Zbad_strsbad_strrrr test_fromisoformat_fails2s z!TestDate.test_fromisoformat_failsc CsTddtdg}|D]:}|t|j|Wdq1sD0YqdS)Ns 2009-03-01z 2009-03-01ioStringIOrprqrrSr+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)rHrB)rr"rF)irro)rr"rF)rrrrh)rrr)rr"r")rrrr)rrrrg)r(rrr"rr) datecomps)rrrrrfromisocalendarr*)r+Zdatesr{ZdobjisocalZ 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")rrr")rr"rr})rrprrr|)r+isocalsr}rrr !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"rBr) rrrlistrrrrprqrr|)r+Z err_txformersrr8r ZtxformerZerr_valr}rrr test_fromisocalendar_type_errorss   z)TestDate.test_fromisocalendar_type_errorsN)/r9rMrNrrrrCrrrr.rrLrrrrrrrrrrrr rErrr2r'r7r,rWr0r<r?rmr^r_rfrprqrtryr~rrrrrr 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;dhdiZ.rzr"%z2016-04-01T12:37:09rtzirrrrrrr) r+ tzoffsetstzinfosZdt_baseexp_baseexp_tzrraexprrr 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)NrrAr#rHrCr"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 r s(zTestDateTime.test_formatc Cshddl}|ddddddd}||d|ddd dddd}|||||dS) NrrrBrFrCrzSat 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) NrrBr"rArr#rrrrrr)rr*rxrr)r+rrrdt3r rrr 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)r9rMrNrrrrr MyStrVsrr5)r)r+rarrrr rcUszKTestDateTime.test_strftime_with_bad_tzname_replace..MyTzInfo.tznameN)r9rMrNrcrrrr MyTzInfoTsrrrBrFrr5%Z)rOrrprqr)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"rrrrprFrrrrorrrrorrrrrrrr fold)rrrrprrqr^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) Nrrrrror"rFrrrCrrrrr 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"rrrrHrrBrFrrJrr rErr#rrrmrArrrrrrCrrrcsSr\rrrrr rrz0TestDateTime.test_computations..csSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrr)r+r rZmillisecrrrrr rs  " """zTestDateTime.test_computationscCsZd}|j|}tD],\}}}|||}||}|||q|||ddS)NrJrErrrr"rFrr1rrr r2s   zTestDateTime.test_picklingc Csn|ddddddd}ttjdD]D}t||}t|}||jd||jd||j dq$dS) NrrFrEr0rir") rrrHIGHEST_PROTOCOLrrr*rrrK)r+r rrBr rrr test_more_picklings  zTestDateTime.test_more_picklingcCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)Nr)rrrrr*rxrTr1rrr 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.)rrnrrrr"rr r!r#r%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)rrnrrr8rrr")rr*rxrrr,)r+rr'r(r r:rrr test_more_compare s2     zTestDateTime.test_more_comparecCsd||j|j||j|j||j|j||j|j||j |j ||j |j dSr\) r*rrrrrrKrrrrurrt)r+rkr;rrr verify_field_equality; s z"TestDateTime.verify_field_equalitycCs6ddl}|}||}|j|}|||dSNr)r localtimerrrr+rrrkr;rrr 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@rFrBrH6@r=rnrorri'r)rr*rWrrrrG)r+rt0r'rBrrr test_timestamp_naiveU s,      z!TestDateTime.test_timestamp_naivec Cs|jdddtjd}||d|jdddddddtjd}||d|jdddddddttd d d d}||d dS) Nr.r"rrrFrBrHg7@rrrr)rrrr*rWrrrrr 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:0yEg1E2gHzrRi#gHz>g1E2>g<"2?gP?r"rPrQ)rrrr*rtrOSError)r+ZftsrrZ minus_onerrrr rU| sF        z&TestDateTime.test_microsecond_roundingcCs|d6|jjjtjd}|}||dWdn1sF0Y|d8|jjjtjdd}|}||dWdn1s0YdS)Nz minimum UTCrlw#o9z maximum UTCrrrg MB) rrrrrrrWr*rt)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"rrrrrrrrminimummaximumrrkToo small by a littlerrTToo small by a lotrToo big by a littleToo big by a lotr)rrrrGr:rrrWrtrr rr*rpr) r+rrrr test_namerrkactualrrrr 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)rrrrGr:rrrrrWrtrrr*rr rpr) r+rrrrrrrkrexcrrrr test_utcfromtimestamp_limits s4$.   z)TestDateTime.test_utcfromtimestamp_limitscCs dD]}|t|jj|qdSrrrrrr r s z&TestDateTime.test_insane_fromtimestampcCs dD]}|t|jj|qdSr)rprGrrrrrr 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) Nrirrrrr8i~)rrr*)r+r-rrr $test_negative_float_utcfromtimestamp s z1TestDateTime.test_negative_float_utcfromtimestampcCsfddl}tdd}tdD]2}|j}|j|}t|||krqNq|t|||dS)Nrr"rrB)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%zrFz-0002rDz-00:02:01.000003r"rB)rSrr)rr)rZGMTrrrrz{}{:02d}{:02d} {}rr)z +1234 UTCrrr/rrz-2400z-000z) _strptimeZ_strptime_datetimerstrptimer*rrrrbMINUTErrrrcr{rrrrrpr)r+rrrkr;inputsrZ tzsecondsrcrrrrSdtstrrar rrr 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:%SrrFr"rHrCrJrr/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)rrrprrr*) r+rZnewdaterrrrZdt4rrrrrrrr 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) NrrrrJr!) rrrrJrrrHrrr"r)rr*rrrrKrrurtrrrrrrrrrrrr)r+rttrrr test_more_timetuple s0   z TestDateTime.test_more_timetuplec Cs|ddddddd}||dd d D]B\\}}}ttd ||d  }|j|d }||dd|q,z|dWntyYn0dS)NrrrrJrr/z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)))rrz 33.000123))rrZ33rF)rrrrrz-0200u%y%m %H%M)rr*rrrrr)r+rrBr rrrrr test_more_strftime s   zTestDateTime.test_more_strftimec CsL|ddddddd}||tddd||tdddddS)NrrBrHr-)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) NrrBrHrrr)rrr"rFrrr) rrrrVr*rprqrrrr)r+r-rrkrVrarrr test_combine s6       zTestDateTime.test_combinec Cs|j}gd}||}|||d}dD]L\}}|dd}|||<||}|jfi||i} ||| |d7}q.|ddd}|jt|jdd dS) N)r"rFrBrHrCrJrEr)r1r2r3rrCrurJrtrErrr"rrFrrr4r5r6rrr r< 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,Z0044rIrEDTrrHrrc@seZdZddZddZdS)z+TestDateTime.test_astimezone..BoguscSsdSr\rr`rrr rb rz5TestDateTime.test_astimezone..Bogus.utcoffsetcSstdSrrr`rrr rd rz/TestDateTime.test_astimezone..Bogus.dstNr9rMrNrbrdrrrr Bogus sr c@seZdZddZddZdS)z/TestDateTime.test_astimezone..AlsoBoguscSstdSrrr`rrr rb rz9TestDateTime.test_astimezone..AlsoBogus.utcoffsetcSsdSr\rr`rrr rd rz3TestDateTime.test_astimezone..AlsoBogus.dstNr rrrr AlsoBogus sr c@seZdZddZddZdS)z,TestDateTime.test_astimezone..BrokencSsdSrMrr`rrr rb rz6TestDateTime.test_astimezone..Broken.utcoffsetcSsdSrMrr`rrr rd rz0TestDateTime.test_astimezone..Broken.dstNr rrrr Broken sr ) rr{rOrrrr* astimezonerprqrr) r+rardt_utcZdt_fr Zbogr Zalsobogr brokenZ 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..CrPcs6|}|d}jj|g|Ri|}||_|Sr@rArCr^rr r s  z6TestDateTime.test_subclass_datetime..C.__new__cSs||j|j|jSr\)rrrtrFrrr rH! sz6TestDateTime.test_subclass_datetime..C.newmethNrIrr^rr rK s rK)rrHrrrp)rrErPrG) rr*r8rJrrrHrrrtrMrr^r rq 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|_|SrNrOrPr^rr r3 sz\TestDateTime.test_subclass_alternate_constructors_datetime..DateTimeSubclass.__new__NrRrr^rr rn2 srn)rrHrrrorz2003-04-14T12:30:15.123456gh͏TMArErrrSrz%Y-%m-%dT%H:%M:%S.%frVrrBrT) rrzr*rrWrrrrrrrrX)r+rnrrYZutc_tsrZrrrUr[rkr\ constructorrarr^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|_|SrNrOrPr^rr rd sz@TestDateTime.test_subclass_now..DateTimeSubclass.__new__NrRrr^rr rnc srnr{rZnow_utcrZ now_fixedrrrrE) rrrrrrXrzr*r)r+rnrr5Z meth_namerQr]rarr^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)rgrhrirj)rrrr)rrrih)rrrG)rrorrrrYrrrFcs:g|]2}D](}D]}jg||Rd|iqq qSr)r)rZ date_tupleZ time_tuplerZ base_timesr+rrr r! sz.rr)rrrrrrrSr*)r+rm separatorsdtsrarrrorrr 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)NrlrrorpQrCrrFrJrrrorrHrArrcSsg|] }d|qSrrrrrrr r! rz.rcSsg|] }t|qSrrr!rrr r! rrtstrrrrrrrrrS)r+Zbase_dtrrrrarrorrr test_fromisoformat_timezone s"     z(TestDateTime.test_fromisoformat_timezonec Cs|gd}|D]j}|ddddddd}|j|d }|j|d (|j|}|||Wdq 1sl0Yq dS) N) rrY€uʁuᛇu時u🐍rrcr"rrrriurrrlr+rrrarrorrr test_fromisoformat_separators s  z*TestDateTime.test_fromisoformat_separatorsc Csxddg}|D]f}|ddddd}|j|d}|j|d (|j|}|||Wdq 1sh0Yq dS) Nrrrcr"rrrrrrlr(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)rrrHrrrr)rrrHrrrrrrrFrJrrrrSrrrrrrrHrrr rrr enumeraterrrrSr*) r+Zdatetime_basesr timespecsiprrrnnew_microsecondsrarrorrr 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:00arsrrprrrSrrrrr !test_fromisoformat_fails_datetime s  z.TestDateTime.test_fromisoformat_fails_datetimecCsJd}|ttt||j|Wdn1s<0YdS)Nu2018-01-0301:0113)rrreescaperrrS)r+rrrr "test_fromisoformat_fails_surrogate sz/TestDateTime.test_fromisoformat_fails_surrogatecCs$d}|j|}||jtjdS)Nz2014-04-19T13:21:13+00:00)rrSrrrr)r+rkrarrr test_fromisoformat_utc s z#TestDateTime.test_fromisoformat_utcc Cs`Gddd|j}|ddddddd ttd dd d }||}||||||dS) Nc@s eZdZdS)zBTestDateTime.test_fromisoformat_subclass..DateTimeSubclassNrarrrr rn srnrlrrrArorir#rr)rrrrSrr*rz)r+rnrarorrr rq s z(TestDateTime.test_fromisoformat_subclassN)>r9rMrNrrrrrCrrr rrrrr.rr2rrr'rrrrr run_with_tzrrrUrrrrrunittestZskipIfr7platformrrrrrrrrrr<rrqrrrr%r)r*r1r4r7r8rqrrrr rsr  , 5D   !    (''    ;"" 1# &rc@s"eZdZeZedddZdS)TestSubclassDateTimeznot appropriate for subclassescCsdSr\rr^rrr rC/ sz#TestSubclassDateTime.test_roundtripN)r9rMrNrrr:skiprCrrrr r<, sr<c@seZdZdZdS) SubclassTimer"Nrrrrr r>3 sr>c@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*rrurtrrrrr r: s  zTestTime.test_basic_attributescCsL|dddd}||jd||jd||jd||jddS)Nrrrr@rrrr rA s z&TestTime.test_basic_attributes_nonzerocCsp|dddd}t|}||d|dd}t|}|||||j|j|j|j }|||dS)Nr"rFrBrHr:rA) rrrxr3rr*rrurtr)r+rrBr(rrr rCJ 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"rFrBrHr"FTcskSr\rrr4rr r{ rz)TestTime.test_comparing..cskSr\rrr4rr r| rcskSr\rrr4rr r} rcskSr\rrr4rr r~ rcskSr\rrr4rr r rcskSr\rrr4rr r rcskSr\rrr4rr r rcskSr\rrr4rr r r) rr*rxrrr,r5rprq)r+rr(r r:rr4r 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 )rrprr^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)Nrrorr"rFrrCrrrrr 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)+NrHrCr"rz04:05:01.000123z00:00:00rz00:00:00.000001r#z00:00:00.000010r#z00:00:00.000100rz00:00:00.001000rz00:00:00.010000iz00:00:00.100000rr/r0r)rrurtrrrZ12rSz12:34rz12:34:56rz 12:34:56.123rz12:34:56.123456rZmonkeyrrz 12:34:56.999rz 12:34:56.000z12:34:56.000000)rr*rrrprrrrr r sN      zTestTime.test_isoformatc Csdtddfdtddfdtddd fd td d d dfdtdddddfg}ddtjfdttdfg}|dd|D7}|d dd}d}|D]X\}}|j|d}||}|j|d ||ksJWdq1s0YqdS)NrrCrrrFrrJrrrrrororrrHrArrrrrcSs2g|]*\}}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"rtrB)r)rrprqrrrrr test_1653736 s zTestTime.test_1653736cCsZ|dddd}||dd||ddz|d WntyTYn0dS) Nr"rFrBrHz %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"rFrBrHrrrc@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+rrr rr r rrr r  s(zTestTime.test_formatc Cs|t|ddddd|t|ddddd|t|d ddd d |t|d ddd d |t|ddd d ddS)Nr"rFrBrHz01:02:03.000004r#rz10:02:03.004000rr;z00:02:03.400000rz12:02:03rrz23: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)Nr:r"rFrBrHz%s(1, 2, 3, 4)r#rz%s(10, 2, 3, 4000)rr;z%s(0, 2, 3, 400000)rz %s(12, 2, 3)rrz %s(23, 15)r<r=rrr r6 s  zTestTime.test_reprcCsN||jj|j||jj|j||jjt||jj|jjkdSr\)rzrrrtrDrrxr^rrr rEC szTestTime.test_resolution_infocCsZd}|j|}tD],\}}}|||}||}|||q|||ddS)NrrrrrFrr1rrr r2I s   zTestTime.test_picklingcCsRd}t|}tD]<\}}}|||}||}||||t|tqdS)NrE)r>rrrr*rxrTr1rrr 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.rE)scdatetime time (U;tR.rE)scdatetime time U;R.rE)s,cdatetime time (S'\x14;\x19\x00\x10\x00' tR.rrrr)scdatetime time (U;tR.rG)scdatetime time U;R.rG)r r r!)r-rrr$r*)r+rir r&rrkrrrrr r'[ s  zTestTime.test_compat_unpicklecCsh|j}||d||dd||ddd||dddd||d||dS)Nr"r)rrx)r+r7rrr rWq 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) NrAr)rrrrr"rrrrur#rCr rr5r6rrr r<{ s"    zTestTime.test_replacecCs8Gddd|j}|dd}|t|jdd|dS)Nc@s eZdZdS)z4TestTime.test_subclass_replace..TimeSubclassNrarrrr TimeSubclass srJrror#rHr>)r+rJrrrr r? s zTestTime.test_subclass_replacecsGfdddj}d}j|}||iddi}|j||jd|jd|||d|j|jddS)Ncs$eZdZdZfddZddZdS)z&TestTime.test_subclass_time..CrPcs6|}|d}jj|g|Ri|}||_|Sr@rArCr^rr r s  z.TestTime.test_subclass_time..C.__new__cSs||j|jSr\rrtrFrrr rH sz.TestTime.test_subclass_time..C.newmethNrIrr^rr rK s rK)rHrCrJrrErPrG) rr*r8rJrrrHrrtrMrr^r test_subclass_time s  zTestTime.test_subclass_timec Csd}ddtddfD] }|t|j||ddq|td*|tdgt|dWdn1sr0YdS) Nz2:59.0r9rÿr"rdr)chrrprqrrrer,)r+r8Z hour_byterrr rf s z!TestTime.test_backdoor_resistanceN)r9rMrNrrrrrCrBrr.rrrDrr rrrEr2rFr'rWr<r?rLrfrrrr r?6 s. +4     r?c@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 rc rz>TZInfoBase.test_argument_passing..introspective.tznamecSst|r dp ddS)NrPrRrr`rrr rb szATZInfoBase.test_argument_passing..introspective.utcoffsetN)r9rMrNrcrbrdrrrr introspective srTr"rFrBrrRrQrSrPrR)rrrr*rcrrbrd)r+r7rTobjrkrrr 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 r[ rz.NiceTry.__init__cSsdSr\rr`rrr rb rz=TZInfoBase.test_bad_tzinfo_classes..NiceTry.utcoffsetNr9rMrNr[rbrrrr NiceTry srXc@seZdZddZddZdS)z5TZInfoBase.test_bad_tzinfo_classes..BetterTrycSsdSr\rr^rrr r[ rz>TZInfoBase.test_bad_tzinfo_classes..BetterTry.__init__cSsdSr\rr`rrr rb rz?TZInfoBase.test_bad_tzinfo_classes..BetterTry.utcoffsetNrWrrrr BetterTry srY)rrprqobjectrr)r+r7rXrYr rrrr 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|_dSrQrrZ)r+rZrrr r[ sz?TZInfoBase.test_utc_offset_out_of_bounds..Edgy.__init__cSs|jSr\)rZr`rrr rb sz@TZInfoBase.test_utc_offset_out_of_bounds..Edgy.utcoffsetNrWrrrr Edgy sr]))`F)aT)T)rFr"rFrBrrJrZ impossiblerz %c%02d:%02drrz01:02:03) rrrrrr{rTtimetzr*rrpr) r+r]r7rZZlegitrZaofsrrtagrrr 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 rbrz4TZInfoBase.test_tzinfo_classes..C1.utcoffsetcSsdSr\rr`rrr rdrz.TZInfoBase.test_tzinfo_classes..C1.dstcSsdSr\rr`rrr rcrz1TZInfoBase.test_tzinfo_classes..C1.tznameNr9rMrNrbrdrcrrrr C1srer"rc@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C3cSs tddS)Nr_rRrr`rrr rbrz4TZInfoBase.test_tzinfo_classes..C3.utcoffsetcSs tddS)Nr`rRrr`rrr rdrz.TZInfoBase.test_tzinfo_classes..C3.dstcSsdSNanamerr`rrr rcrz1TZInfoBase.test_tzinfo_classes..C3.tznameNrdrrrr C3srhr_rRr`rgc@s$eZdZddZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C4cSsdSrfrr`rrr rbrz4TZInfoBase.test_tzinfo_classes..C4.utcoffsetcSsdSrNrr`rrr rdrz.TZInfoBase.test_tzinfo_classes..C4.dstcSsdSrrr`rrr rcrz1TZInfoBase.test_tzinfo_classes..C4.tznameNrdrrrr C4sric@seZdZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C6cSs tddS)Nirrr`rrr rb$rz4TZInfoBase.test_tzinfo_classes..C6.utcoffsetcSs tddS)Nrrrr`rrr rd%rz.TZInfoBase.test_tzinfo_classes..C6.dstNr rrrr C6#srjc@seZdZddZddZdS)z*TZInfoBase.test_tzinfo_classes..C7cSs tddS)Nrrrr`rrr rb,rz4TZInfoBase.test_tzinfo_classes..C7.utcoffsetcSs tddS)Nrrr`rrr rd-rz.TZInfoBase.test_tzinfo_classes..C7.dstNr rrrr C7+srlrrrk) rrrrbrdrcr*rrprqr)r+r7rerrhrirjrlrrr 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#rRrrurrrrr rb8s  zGTZInfoBase.test_aware_compare..OperandDependentOffset.utcoffsetNrjrrrr OperandDependentOffset7srprrAr#rrBrIrnrurrrr") rrrrrrrrrrur*r) r+r7rpr8d0rhrrropr;rkrrr test_aware_compare2s8      ( zTZInfoBase.test_aware_compareN)r9rMrNrVr[rcrmrtrrrr rP s 0rPc@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdS) TestTimeTZcCsP|}||jd||jd||jd||jd||jdSr)rr*rrurtrrrrrrr 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"rrrDrMETrBrErrrrp(rrrRzno argscskSr\rrr_Zt5rr rrz'TestTimeTZ.test_zones..cskSr\rrryrr 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 +0100r_z %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..BadtznamerPcSs|jSr\r r`rrr rcrz/TestTimeTZ.test_zones..Badtzname.tznameN)r9rMrNrrcrrrr BadtznamesrzrFrHz%H:%M:%Sz02:03:04rr?r)rOrr*rrrbrrprqrcrdr+rrrrrr8r9rr) r+estrmetr'r(r^r-Zyuckrzrrryr test_zonesns             zTestTimeTZ.test_zonescCs|jddddtddd}|jddddtddd}|t|t||jd d d d td dd}|jd dd d tddd}|t|t|dS)Nrr"rFrBr`rrirr8rJr#iri)rrOr*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) NrErFrrrCrJrErrR) rrrrr*rrrerzrrbrrc r+rrrrrrrtinforrr r2s"       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.rrrCrJrErrr r!rR) rerr$r*rrzrrbrrc)r+rirrkr&rrrrr r's  zTestTimeTZ.test_compat_unpicklecCs||j}|dtddd}|||dtddd}|||dtddd}|||ddtd dd}||dS) NrrrrrCi,rrr`)rrOrx)r+r7rrrr 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#+1008rR-200r"rFrBrHrrrrrrrrrHrrIrCr r rrOrr*rrcrrrrprr+r7Zz100Zzm200rr8r r5r9r:rkr;Zbase2Zbase3rrr r<s>         zTestTimeTZ.test_replacecCs|ddd}|ddd}||||jdd}||||jtddd}||||jtddd}|||Gdddt}|}|j|d}|j|d}||td d ||td d ||||j|d}|||kdS) Nr"rFrBrrrc@seZdZddZddZdS)z-TestTimeTZ.test_mixed_compare..VariescSstdd|_dSNrrRr\r^rrr r[Ksz6TestTimeTZ.test_mixed_compare..Varies.__init__cSs|jtdd7_|jSNr"rRrZrrrrr rbMsz7TestTimeTZ.test_mixed_compare..Varies.utcoffsetNrWrrrr VariesJsrrrRr) rr*rrOrrrbrrxr+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)rArr)rCro)rHr)rii[ rFrrJrrrr") r itertoolsproductrrrrrrrSr*) r+Z time_examplesZhhZmmssZusecrZttuprrr#t_rtrrr rp\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)NrrorrrCrrFrJrrrorrHrArrcSsg|] }d|qSr rr!rrr r!rz:TestTimeTZ.test_fromisoformat_timezone..rcSsg|] }t|qSrrr!rrr r!rrr"r$)r+Z base_timerrrrr#rrrr r%vs"     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)rrrr)rrrrrrrFrJrrr+rrrrr"rrr"r,) r+Z time_basesrr.r/rrZt_tupler0rr#rrrr r1s(    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:30ar2r3rrrrr rts  z#TestTimeTZ.test_fromisoformat_failsc CsTddtdg}|D]:}|t|j|Wdq1sD0YqdS)Ns12:30:45z12:30:45rurxrrr rys z-TestTimeTZ.test_fromisoformat_fails_typeerrorcCsPGddd|j}|ddddtjd}||}||||||dS)Nc@s eZdZdS)z.TimeSubclassNrarrrr rJsrJrrrir)rrrrSrr*rz)r+rJZtscZtsc_rtrrr rqs  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..CrPcs6|}|d}jj|g|Ri|}||_|Sr@rArCr^rr rs  z2TestTimeTZ.test_subclass_timetz..C.__new__cSs||j|jSr\rKrFrrr rHsz2TestTimeTZ.test_subclass_timetz..C.newmethNrIrr^rr rKs rKrHrCrJrrr"rrErPrG) rrOr*r8rJrrbrHrrtrMrr^r test_subclass_timetzs  zTestTimeTZ.test_subclass_timetzN)r9rMrNrrrvr}r~r2r'rr<r,rpr%r1rtryrqrrrrr rucs W "' ruc@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"rFrBrHrCrJrE) rr*rrrKrrurtrrr`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"r`rrrrrrrr_rFrBrpr)rrtrc@seZdZddZdS)z4TestDateTimeTZ.test_even_more_compare..NaivecSsdSr\rr`rrr rb8rz>TestDateTimeTZ.test_even_more_compare..Naive.utcoffsetNrjrrrr Naive7srrCrJrEc@seZdZddZdS)z4TestDateTimeTZ.test_even_more_compare..BoguscSs tddS)NrrRrr`rrr rbDsz>TestDateTimeTZ.test_even_more_compare..Bogus.utcoffsetNrjrrrr r Csr cskSr\rrr'r(rr rHrz7TestDateTimeTZ.test_even_more_compare..) rrOrrxr*rrrprqrr)r+rr rrr 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) NrrFrrrr"rrrrR)rrrrr*rrrerOrzrrbrrcrrrr r2Js$       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.)rrnrrrr"rrrrr r!rR) rerr$r*rzrrbrrc)r+rirrrkr&rrrrr r'as   z#TestDateTimeTZ.test_compat_unpicklec Csr|jdddtddd}t||jtdddddd td dd}t||jd d d td dd}|tt|dS) Nr"r`rrrrrrrr_rCr^)rrOr+rrprrrrr 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)NrrrrrrwrrBrrrErrrrprRz2002-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)) rOrr*rrbrrcr+rr)r+r{rr|r'r(r^r-rrr r}s8      zTestDateTimeTZ.test_zonesc CsXtdd}tddd}tdddd|d }t||}||tddddddd|d dS NrrwrrBrHrrrr)rOrrrrVr*)r+r|r-rrarrr rs   zTestDateTimeTZ.test_combinec Csxtdd}|jddddddd|d }||tddd||tdddd||tdddd|d dSr)rOrr*rrra)r+r|rarrr 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\rrr{nowawarerr rrz9TestDateTimeTZ.test_tz_aware_arithmetic..csSr\rrrrr rrcsSr\rrrrr rrcsSr\rrrrr rrcsSr\rr)rrr rrrr"ri.)rrSrcsSr\rr)r nowawareplusrr rrr_rZrandomtimezoner`rrrrrrti> rRrr)rr{rOrrrVrrrr*rarprqrri randrangerbrrtrrr) r+Ztz55Z timeawareZ nowawareplus2rZtzrr;rkrrtZmaxdiffZtzaZtzbr)rr{rrr 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)NrP42r rRrrrrrrr8rweirdtzrBrorz0utcnow(), now(tz), or astimezone() may be broken)rr{rOrrr*rbrrprqrrrrrrrZfail) r+methr8off42anotheragainrrrr{rZnow2rrr 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)NrrPrr rRrrrrFi'rr)rrrrOrrr*rbrrprqrrr)r+rrrr8rrrrWZ utcdatetimerbrrkr;rrr test_tzinfo_fromtimestamp's*        z(TestDateTimeTZ.test_tzinfo_fromtimestampcCs:|jj}|}tdd}|t|||jt||ddS)NrPrr)rrrOrprq)r+rr8rrrr test_tzinfo_utcnowJs  z!TestDateTimeTZ.test_tzinfo_utcnowcCsPddl}|jj}|}||}tdd}|t||||jt|||ddS)NrrPrr)rrrrOrprq)r+rrrr8rrrr 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}||_dSrQrTrUrdstvaluer+rrrr r[ds  z:TestDateTimeTZ.test_tzinfo_timetuple..DST.__init__cSs|jSr\rr`rrr rdhsz5TestDateTimeTZ.test_tzinfo_timetuple..DST.dstNr9rMrNr[rdrrrr DSTcsr))r")rr")rr)Nrr"r#rrorxrrrr`r_rr^)rrrr*rrrrrrrrrrprqr)r+rr7rflagr-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}||_dSrQrrrrr r[s  z6TestDateTimeTZ.test_utctimetuple..DST.__init__cSs|jSr\rr`rrr rdsz1TestDateTimeTZ.test_utctimetuple..DST.dstN)rrrrrr rs rr"rrcs"eZdZdfdd ZddZdS)z.TestDateTimeTZ.test_utctimetuple..UOFSNcs||t|d|_dSrQ)r[ruofs)r+rZdofsrrr r[s z7TestDateTimeTZ.test_utctimetuple..UOFS.__init__cSs|jSr\)rr`rrr rbsz8TestDateTimeTZ.test_utctimetuple..UOFS.utcoffset)NrWrrrr UOFSsr)rrrNrFrBr#rrorxirnrprc@seZdZddZdS)z.TestDateTimeTZ.test_utctimetuple..NOFScSsdSr\rr`rrr rbsz8TestDateTimeTZ.test_utctimetuple..NOFS.utcoffsetNrjrrrr NOFSsrc@seZdZddZdS)z.TestDateTimeTZ.test_utctimetuple..BOFScSsdS)Nrrr`rrr rbsz8TestDateTimeTZ.test_utctimetuple..BOFS.utcoffsetNrjrrrr BOFSsrrrrri+rr`rrrrrr_)#rrrprurbZ utctimetupler*rrrrrKrrrrtrrrrrrrrrqrrrrtrrrrGrr) r+r7rrr-rrrrZdtzrJZhugerrr 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"rFrBrHrCrrz04:05:59z.987001rYkuሴr)rOrrcrr*r)r+rZplusZminusunknownr7ZdatestrZofsr r-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)Nr#rrrRrr"rFrBrHrCrJrErr1r2r3rrrrrrrrrr4rrrrr r<s>          zTestDateTimeTZ.test_replacecCsDtdd}tdd}ttdd d}|jj|d}||j||t|j|||j}||j|| | | | | | ||}||j|| | tdd|| }|| |7}|j |d }| | | | | | | ||||j|j| ||dS) NNonerZ44rCrZm300r rr)rOrrr{rrrprrr*rrrbrra)r+ZfnoneZf44mZfm5hrarr;rkrrr test_more_astimezones*      z#TestDateTimeTZ.test_more_astimezonercCs4|jtj}||d||||dSr\)rr{rrr*rr`rrr test_astimezone_default_utc-sz*TestDateTimeTZ.test_astimezone_default_utcrcCs|jdddddtjd}|}|||||dd|jdddd dtjd}|}|||||dd dS) Nr=rnrHrJrorrz -0500 ESTrCz -0400 EDT)rrrrr*r)r+rarrrr test_astimezone_default_eastern5s  z.TestDateTimeTZ.test_astimezone_default_easterncCs8tddddtjd}|}|}||j|jdS)Nrrnr"rCr)rrrrr*r)r+rrrBrrr !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|jdStddSdSrnrorrrr rbNs  zLTestDateTimeTZ.test_aware_subtract..OperandDependentOffset.utcoffsetNrjrrrr rpMsrprrAr#rnrrprrrBrIrRrqrir)rrrrrur*) r+r7rpr8rrrhrrrr;rkrrr 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"rFrBrHrCrJrErrrc@seZdZddZddZdS)z1TestDateTimeTZ.test_mixed_compare..VariescSstdd|_dSrr\r^rrr r[sz:TestDateTimeTZ.test_mixed_compare..Varies.__init__cSs|jtdd7_|jSrrrrrr rbsz;TestDateTimeTZ.test_mixed_compare..Varies.utcoffsetNrWrrrr rsrrrRr) rr*rrOrrrbrrxrrrr 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..CrPcs6|}|d}jj|g|Ri|}||_|Sr@rArCr^rr rs  z:TestDateTimeTZ.test_subclass_datetimetz..C.__new__cSs||j|jSr\)rrrFrrr rHsz:TestDateTimeTZ.test_subclass_datetimetz..C.newmethNrIrr^rr rKs rKrrrrHrCrJrrrr"rrErPrG) rrOr*r8rJrrbrHrrrMrr^r test_subclass_datetimetzs  z'TestDateTimeTZ.test_subclass_datetimetzN)r9rMrNrrrrr2r'rr}rrrrrrrrrrr<rr r9rrrrr,rrrrr rs8 E%A%#  $P'   ,rcCs d|}|r|t|7}|S)NrJ)rr)raZ days_to_gorrr first_sunday_on_or_afters  rrRrrrHrFrc@s4eZdZddZddZddZddZd d Zd S) USTimeZonecCs"t|d|_||_||_||_dSNrr stdoffsetreprnamestdnamedstnamer+rrrrrrr r[s zUSTimeZone.__init__cCs|jSr\rr^rrr r_szUSTimeZone.__repr__cCs||r|jS|jSdSr\rdrrr`rrr rcs zUSTimeZone.tznamecCs|j||Sr\rrdr`rrr rbszUSTimeZone.utcoffsetcCs|dus|jdurtS|j|us$Jttj|jd}|dkrV|jdkrV|jdksZJtt j|jd}|dkr|jdkr|jdksJ||jddkr|krnnt StSdSNr4rJrHrEr#rr) rrrDSTSTARTrrrrrKDSTENDrr+rarGendrrr rds$$ zUSTimeZone.dstNr9rMrNr[r_rcrbrdrrrr rs rrrrrrKCentralZCSTZCDTrGMountainZMSTZMDTiPacificZPSTZPDTri0ZUTCfakec@sdeZdZeddddZeddddZeZdd Zd d Zd d Z ddZ ddZ ddZ ddZ dS)TestTimezoneConversionsrrHrErFr#rr"c Cs||t||||||}||}||kr|jdkr||t|||t|||||n ||||t}||} ||kr|jdkr|| |jdd|t7}||} || |jddn|| |tdS)NrFrr"rH)r*rdrrrrrr) r+rarrdstondstoffasutcthere_and_backZ nexthour_utcZ nexthour_tzrrr checkinsides&      z#TestTimezoneConversions.checkinsidecCsF||t||||||}||}|||dSr\)r*rdrr)r+rarrrrrrr checkoutside/s   z$TestTimezoneConversions.checkoutsidec Cs|jj|d}|jj|d}tddtttddtddfD]p}||||||||||fD]}||||||qb||||||||fD]}||||qq.okcSstSr\rr`rrr rbrz.ok.utcoffsetcSstSr\rr`rrr rdrz6TestTimezoneConversions.test_bogus_dst..ok.dstNr rrrr oksrrc@seZdZddZdS)z5TestTimezoneConversions.test_bogus_dst..notokcSsdSr\rr`rrr rdrz9TestTimezoneConversions.test_bogus_dst..notok.dstNr9rMrNrdrrrr notoksrc@seZdZddZdS)z.tricky_notokcSs|jdkrdSdtSdS)Nrr#)rrr`rrr rds z@TestTimezoneConversions.test_bogus_dst..tricky_notok.dstNrrrrr tricky_notoksrrr")rrr{rrrrpr)r+rr{rrrarrr 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.fromutcNr9rMrNrrrrr FauxUSTimeZonesrrFEasternZFESTZFEDTrHr)rrr"rBrHrCrHrr"r)rr"r"rFrBrH)rprqrrrrrrrr*rrrrrrrrrr) r+r{ZenowrrrGZfstartZwallrkr;rrr rsL                   z$TestTimezoneConversions.test_fromutcN)r9rMrNrrrrrrrrrrrrrrr 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)rKFr)rrrrVrrxrrprqr*__eq__rKrrrrr)r+Z different_dayZ as_differentZdate_scZ datetime_scrrr test_bug_1028306s4      zOddballs.test_bug_1028306c Cs^tttttttfD]4}|t d|_ Wdq$1sN0Yq$dSrM) rrrrrrrrrpAttributeErrorr$)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 r[)sz6Oddballs.test_check_arg_types..Number.__init__cSs|jSr\rr^rrr __int__+sz5Oddballs.test_check_arg_types..Number.__int__N)r9rMrNr[rrrrr 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..FloatNrarrrr Float>srz&^integer argument expected, got float$g$@) decimalZDecimalZ assertWarnsDeprecationWarningr*rrrqrrp)r+rxxZf10rZs10rrr test_check_arg_types's@ $**, , , , . 0 2 zOddballs.test_check_arg_typesN)r9rMrNrrrrrrr 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)rTrrqrrrrbrd)r+raZoff0Zoff1ldtZoffrrr r[s*       ztzinfo2.fromutcNrrrrr rYsrc@s4eZdZddZddZddZddZd d Zd S) USTimeZone2cCs"t|d|_||_||_||_dSrrrrrr r[}s zUSTimeZone2.__init__cCs|jSr\rr^rrr r_szUSTimeZone2.__repr__cCs||r|jS|jSdSr\rr`rrr rcs zUSTimeZone2.tznamecCs|j||Sr\rr`rrr rbszUSTimeZone2.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) rrrrrrrrrKrrrrrrr rds$$  zUSTimeZone2.dstNrrrrr r{s rEastern2Central2 Mountain2Pacific2c@s<eZdZddZddZddZddZd d Zd d Zd S)Europe_Vilnius_1941cCs$tdddd|dtdddd|dgS)NrJrrmrrrr^rrr _utc_foldszEurope_Vilnius_1941._utc_foldcCs$tdddd|dtdddd|dgS)NrrJrrrrrr^rrr _loc_foldszEurope_Vilnius_1941._loc_foldcCs>|\}}||krdtS||kr6|jr.dndtSdtS)NrBrFrrrr+raZ fold_startZ fold_stoprrr rbs  zEurope_Vilnius_1941.utcoffsetcCs>|\}}||krdtS||kr6|jr.dndtSdtS)Nrr"rrrrr rds  zEurope_Vilnius_1941.dstcCs.|\}}||krdS||kr*d|jSdS)NMSK)rCESTr)rrrrrr rcs   zEurope_Vilnius_1941.tznamecCsr|jdksJ|j|usJ|jdkr*t|\}}||krJ|dtS||krf|dtjddS|dtS)NrrrBrFr"r)rrrrurrrrrrr rs   zEurope_Vilnius_1941.fromutcN) r9rMrNrrrbrdrcrrrrr r s    r c@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)NrrJrrrrz%c %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300rrmz"Mon Jun 23 23:00:00 1941 CEST+0200r"rz"Tue Jun 24 00:00:00 1941 CEST+0200) r rrrrr*rrrrdrx)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)NrrJrrrrz%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)r rrrrr*r)r+rrrrrr test_vilnius_1941_toutc s*        z3TestLocalTimeDisambiguation.test_vilnius_1941_toutccCsxtddd}tddddd}||jd||jd|t"tddddddWdn1sj0YdSNrr"r)rrr*rrprqr+rrarrr test_constructors"s   z-TestLocalTimeDisambiguation.test_constructorscCs@tddddd}|}||jd|}||jddS)Nr"r)rrr*rra)r+rarrrr 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)rrrrF) rrr*rrrrprrqrrrr r<1s$  * , 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)NiXUTr rr")rrr*r)r+rBdt0rrrrr 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+tmrBrr'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)NrlrnrFr"rorr )rrr*rW)r+r rrrrr test_timestampqs  z*TestLocalTimeDisambiguation.test_timestampcCshtd}td|dkr$|dtddddd }|jd d }|jdd }||d |dS) Nr!r"r#r$rrHrCr"rrrr%)rrrr:rrrWr*)r+r&rs0s1rrr test_timestamp_lord_howexs  z4TestLocalTimeDisambiguation.test_timestamp_lord_howecCs|tddddd}|jdd}|}|}||d||d||t|||jd ||jd dS) NrlrnrFr"rorrrr)rrrr*rcrr)r+r rrZadt0Zadt1rrr rs z+TestLocalTimeDisambiguation.test_astimezonec Csztdd}tddddd}tD]V\}}}||fD]B}|||}||}|||||dkrfdn|j|jq0qdS)Nr"rrHr)rrrrrr*r) r+rrarrrrrBrrrr 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"rrFrrrHrE) rr rrDr*rdrrr)r+ dt_summer dt_winterrurarrr rsz$TestLocalTimeDisambiguation.test_dstcCstddddtdtj}tddddtd}||dt||dt||jdd dt||jdd dtdS) Nrr#rr"rrFrIrr)rr rrDr*rbrr)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#rrJrrErHrCrror")rrm)rr"rF)rJrm) rr rrDrr*rrrKr) r+Zu_summerZu_winterZt_summerZt_winterrrr'rrrr rs0        z(TestLocalTimeDisambiguation.test_fromutccCsLtdddtd}|||tjtdddtd}|||tjdS)Nrr"rrJ)rr r*rrrrrrr test_mixed_compare_regularsz6TestLocalTimeDisambiguation.test_mixed_compare_regularcCs<tdddddtd}|tj}||||||dS)Nrr#rr"rrrr rrrr)r+t_foldZ t_fold_utcrrr test_mixed_compare_folds  z3TestLocalTimeDisambiguation.test_mixed_compare_foldcCs<tdddddtd}|tj}||||||dS)NrrHrErFrrr1)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#rrrHrErF)rr r*r+r)r+rr2r4rrr test_hash_awares z+TestLocalTimeDisambiguation.test_hash_awareN)r9rMrNrrrrr<rrr r9rr'r(r)r,rr-rrrrr0r3r5r6rrrr rs6       !rcCs"t|\}}t|dt||Sr\)rteenextr)iterabler r rrr pairss r:c@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+r<r=rrr r[ s zZoneInfo.__init__cCstd|td|f}|r|ddt}|dd|7<|dd|7<tdt|D]H}|d|||ddt7<|d|||dt7<q^|S)Nr|rr")rSECrr,)r<r=rrZr rrr r>s$"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)NrHZTZifznot a zoneinfo fileror rBr rrr"z>lbbrJrF)readdecoderseekrfromfiler7 byteorderbyteswaprrstructunpackr-findrr,)r7fileobjcountsr<Z type_indicesZttisr ZabbrsZgmtoffisdstZabbrindabbrr=idxr+rrr rC$s2     zZoneInfo.fromfilecCsHtj|j|}t|d}||WdS1s:0YdS)Nrb)ospathjoinzonerootopenrC)r7r5rPrrrr 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) rrrrr rr"rrFrN)rTrrqrrr EPOCHORDINALrrurtr<r=bisect bisect_rightr,rr)r+rarWZttirrMZtti_prevshiftrrr rQs0      zZoneInfo.fromutccCs\||jd|jd|jd|j}|j|j}t||}|j t d|d|S)Nrr rrr") rrUrrurtrrrVrWr=rt)r+rar rWrrMrrr _find_tios  zZoneInfo._find_ticCs ||dSrrYr`rrr rbyszZoneInfo.utcoffsetcCs||d}|rtStSrM)rYrr)r+rarKrrr rd|s z ZoneInfo.dstcCs ||dS)NrFrZr`rrr rcszZoneInfo.tznameNccs|dur|j}tj|d}z t|}Wnty<YdS0|>|D](}|}|rH|dsH|dVqHWdn1s0YdS)Nzzone.tab#rF) rRrOrPrQrSrstripr3r)r7ZzonedirZzone_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) rrtrrrr^rT transitionsprintr[)r7 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_sincezonenamerrarXZ trans_countsrrr statssZ           zZoneInfo.statsccsHtt|j|jD]0\\}}\}}|d|d}t||fVqdSr)r:rr<r=rrr+_Zprev_tirr=rXrrr r_s"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"rFN)r:rr<r=rrrrerrr 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)r^rTrgrr`) r7Z same_abbrrarbrcrrarXZ prev_abbrrLrrr print_all_nondst_foldss  zZoneInfo.print_all_nondst_foldsccs*|D]\}}|tkr|| fVqdSr\r_rr+rrXrrr foldsszZoneInfo.foldsccs(|D]\}}|tkr||fVqdSr\rirjrrr gapssz ZoneInfo.gapsccs |D]\}}|s|VqdSr\)r_rjrrr zerosszZoneInfo.zeros)N)r")Fr")r9rMrNrRr[r]r> classmethodrCrTrrrUrrYrbrdrcr^rdr_rgrhrkrlrmrrrr r; s2   $    0 r;c@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)r7r;r:r;rTrcrFileNotFoundError)r+errrrr rs    zZoneInfoTest.setUpcCs<||jdd|jt|jf|jdd|jt|jfdS)Nr)r*rridr)r+r r rrr 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") rrkrrDrrr*rrrrrsrb r+rrarXrudtrZadtrbrrr 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.)rrlrrDrrr*rrrrrsrbZ assertLessrtrrr 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@i2rrFr)rcr3r:rrOenvirongetrtzsetr_rrr?rrrsrWr*)r+rrxrurXr*rrrBZsdtZtzdtr+raZts0Zts1rrr test_system_transitions-sJ             z$ZoneInfoTest.test_system_transitionsN) r9rMrNrcrrsrvrwr|rrrr ros  rocseZdZfddZZS)ZoneInfoCompleteTestcshg}tdrXtD]B}td|tfi}||_t|D]}|dr8|||q8qt |dS)NZtzdatazZoneInfoTest[%s]Ztest_) r r;r^rrorcr-r3rsuperr[)r+rir5ZTestmethodr8rr r[[s   zZoneInfoCompleteTest.__init__)r9rMrNr[ __classcell__rrrr r}Zsr}c@seZdZdZdS)IranTestz Asia/TehranN)r9rMrNrcrrrr rgsrc@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)rZget_timezone_utc_capirrrr)r+rZcapi_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)r5rrFrHrrC) rZmake_timezones_capirrrr*rrcrr) r+rrrZ exp_namedZ exp_unnamedcasesr5Ztz_actZtz_exprrrrrrr 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..TimeDeltaSubclassNrarrrr TimeDeltaSubclasssr)r7韆rr7r)rrrZPyDateTime_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..DateSubclassNrarrrr rbsrb))rr"rF)r=rFrr)rrrZPyDateTime_GETr*rrrK)r+rbrrr-rrrKrrr 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..DateTimeSubclassNrarrrr rnsrn)rrrrrrrr) rrrZPyDateTime_DATE_GETr*rrurtr) r+rnrrr-rrurtrrrr 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..TimeSubclassNrarrrr rJsrJ)rrorr#rr) rrrZPyDateTime_TIME_GETr*rrurtr) r+rJrrr-rrurtrrrr 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_utcrrrrrFrHr) rZget_timezones_offset_zerorrrrrrr*rrc)r+rrrZ non_utc_exprrrrrr 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..DateSubclassNrarrrr rbsrbr"T 2011-01-01rrrargexact) rrrZdatetime_check_daterxrrrrrrrr) r+rbr-ZdsraZis_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..TimeSubclassNrarrrr rJsrJrroTr"rrrr) rrZdatetime_check_timerxrrrrrrrr)r+rJrrZis_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..DateTimeSubclassNrarrrr rnsrnrr"rroTrrr) rrZdatetime_check_datetimerxrrrrrrrr)r+rnrarZ 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..TimeDeltaSubclassNrarrrr r8srr"Trrrr) rrZdatetime_check_deltarxrrrrrrrr)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..TZInfoSubclassNrarrrr TZInfoSubclassRsrrrTr"rrrr) rrrrZdatetime_check_tzinforxrrrrrr) r+rrZtzisrZ is_tzinforrrrrr test_check_tzinfoQs$ zCapiTest.test_check_tzinfoc Cshtddd}dD]R}|j|d2t||j|j|j}|||Wdq1sX0YqdS)NrrrFTmacro)rrrZget_date_fromdaterrrKr*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) Nrrrrrrrrr) rrrZget_datetime_fromdateandtimerrrKrrurtrr*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) Nrrrrrrrrr"rrr) rrrZ#get_datetime_fromdateandtimeandfoldrrrKrrurtrrr*)r+rrrrrrr %test_datetime_from_dateandtimeandfolds" z.CapiTest.test_datetime_from_dateandtimeandfoldc Csntdddd}dD]V}|j|d6t||j|j|j|j}|||Wdq1s^0YqdS)Nrrrrrr) rrrZget_time_fromtimerrurtrr*)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) rrrZget_time_fromtimeandfoldrrurtrrr*)r+rrrrrrr test_time_from_timeandfolds z#CapiTest.test_time_from_timeandfoldc Cshtddd}dD]R}|j|d2t||j|j|j}|||Wdq1sX0YqdS)Nrrrrr)rrrZget_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)NrHrrr)rrWrrZget_date_fromtimestamprUr*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)rrHrNF)rNTrr"rT)rrHrrroNF)rNTrr)caserr) rrrZget_datetime_fromtimestamprrrUrWr*) r+rrrrZdtuprZusetzZdt_origrrorrr test_datetime_from_timestamps    z%CapiTest.test_datetime_from_timestampN)r9rMrNrrrrrrrrrrrrrrrrrrrrrrrrr rks*    rcCs|t|Sr\)ZaddTestr})loaderZstandard_testspatternrrr load_testss r__main__)mrrvrrVrrr7rOrrir5rFr:roperatorrrrrrrr r r testr Z test.supportr rrrrr)rrrrrrrrrrr_loadsr$rrrr,r5rrNrZTestCaser'rOrerhrkrrrrrrrrr<r>r?rPrurrrrrrrrrrrrrrrrrrrr r r r r rr?r:r;roZ TestSuiter}rrrr9mainrrrr s ,       8_A3=!a"<   *  c"32 gk