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 bYh@sddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z z ddl Z Wne y~dZ Yn0ddlmZedpdZdded>dZe ddZd Zd Zd Zd Zd ZGd d d ejZejejfejejfejejfejejffZGddde j Z!Gddde j Z"GdddZ#GdddZ$GdddZ%Gddde#e%e j Z&Gddde$e%e j Z'Gddde j Z(e )e dudGdd d Z*Gd!d"d"e*e j Z+Gd#d$d$e*e j Z,e -ejd%kd&Gd'd(d(e j Z.e/d)kre 0dS)*)supportN)skip_if_buggy_ucrt_strfptime SIZEOF_INTli@Biʚ;c@seZdZdZdZdZdZdS)_PyTimerrN)__name__ __module__ __qualname__ ROUND_FLOOR ROUND_CEILINGROUND_HALF_EVENROUND_UPrr*/usr/local/lib/python3.9/test/test_time.pyr sr c@seZdZddZddZddZddZee e d d d d Z ee e d d ee e d dddZ ee e ddee e d d ddZ ee e ddddZee e ddddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zed+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zee e d7d8d9d:Zd;d<Zd=d>Z d?d@Z!dAdBZ"dCdDZ#ee$%dEdFkdGdHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*ee e ddRdSdTZ+dUdVZ,dWdXZ-dYS)Z TimeTestCasecCst|_dSN)timetselfrrrsetUp4szTimeTestCase.setUpcCstjtjtjtjdSr)raltzonedaylighttimezonetznamerrrrtest_data_attributes7sz!TimeTestCase.test_data_attributescCs.ttd}||j||jdS)Nr)rget_clock_info assertFalse monotonic assertTrue adjustable)rinforrr test_time=s  zTimeTestCase.test_timecsfdd}|tt|tt|tt|ttttdrp|t t ttdr|t tj t tj dS)Ncs2|tt|d}||d||fdS)NgeAl@F)assertIsInstanceint assertLess)ZsecnsZsec_nsrrrcheck_nsDs  z0TimeTestCase.test_time_ns_type..check_ns thread_time clock_gettime)rtime_nsr$ monotonic_ns perf_counterperf_counter_ns process_timeprocess_time_nshasattrr.thread_time_nsr/CLOCK_REALTIMEclock_gettime_ns)rr-rrrtest_time_ns_typeCs*     zTimeTestCase.test_time_ns_typer/zneed time.clock_gettime()cCsttj}||tdSr)rr/r8r)floatrrrrrtest_clock_realtime\s z TimeTestCase.test_clock_realtimeCLOCK_MONOTONICzneed time.CLOCK_MONOTONICcCs(ttj}ttj}|||dSr)rr/r>assertLessEqual)rabrrrtest_clock_monotonicbs  z!TimeTestCase.test_clock_monotonicpthread_getcpuclockidz!need time.pthread_getcpuclockid()cCstt}|t|tutdkrJt j dkrJ| |tj n*t jdrf| |tj n||tj t|}t|}|||dS)NZAIX Zsunos)rrC threading get_identr%typer*platformsystemsysmaxsize bit_length assertEqualCLOCK_THREAD_CPUTIME_ID startswithassertNotEqualr/r?)rZclk_idt1t2rrrtest_pthread_getcpuclockidks   z'TimeTestCase.test_pthread_getcpuclockid clock_getreszneed time.clock_getres()cCs(ttj}||d||ddS)N?)rrTr8 assertGreaterr?)rresrrrtest_clock_getres~s  zTimeTestCase.test_clock_getres clock_settimezneed time.clock_settime()cCsTttj}zttj|Wnty0Yn0ttdrP|ttjtjddS)Nr>r) rr/r8rZPermissionErrorr6 assertRaisesOSErrorr>r<rrrtest_clock_settimes    zTimeTestCase.test_clock_settimecCsJ|t|jtt|j|ttt|jt|jdSr)rMrctimerasctime localtimer*mktimerrrrtest_conversionss zTimeTestCase.test_conversionscCs.|ttjd|ttjdtddS)Ng333333?)r\ ValueErrorrsleeprrrr test_sleepszTimeTestCase.test_sleepc Csxt|j}dD]>}d|}zt||WqtyL|d|Yq0q|ttjd||ttjd|dS)Nr@ArABcdHIjmMpSUwWxXyYZ%z %z conversion specifier: %r failed.s%Sz%S)rgmtimerstrftimerffailr\ TypeError)rtt directiveformatrrr test_strftimes  zTimeTestCase.test_strftimecCs|d|d|t|d|t|d|d|d|t|d|t|d|d |t|d |t|d |d |t|d |t|d|t|d|d|d|t|d||d|d|t|d|d|d|t|d|t|ddS)N) rrrrrrrrre) r rrrrrrre) rrerrrrrrre) r rrrrrrre) rrrrrrrrre) rrrrrrrre) rrrerrrrrre) rrrDrrrrrre) rrrrrrrre) rrrrerrrrre) rrrrrrrre) rrrr;rrrre) rrrrrerrrre) rrrr<rrrre) rrrrrrerrre) rrrrrrrrre) rrrrr=rrre) rrrrr>rrre) rrrrrrrerre) rrrrrrrre) rrrrrrrdrre) rrrrrrrrre) rrrrrrrinre) rrrrrrrrere) rrrrrrriore)r\rfrM)rfuncrrr_bounds_checkingsh zTimeTestCase._bounds_checkingcCs|dddS)NcSs td|S)Nrr)tuprrrz;TimeTestCase.test_strftime_bounding_check..)rrrrrtest_strftime_bounding_checksz)TimeTestCase.test_strftime_bounding_checkc CsRdD]H}tddD]8}dD].}zt|||WqtyFYq0qqqdS)N)rrjz%Az%AAr)r}zA%zAA%z%A%zA%A%z%#)rangerrrf)rrxrzzrrrtest_strftime_format_checks z'TimeTestCase.test_strftime_format_checkcCsHd}ttdd}Wdn1s.0Y|||dS)Nz2000 01 01 00 00 00 1 001z%Y %m %d %H %M %S %w %j) rrrrrrrr)rZcheck_warningsrrrM)rexpectedresultrrrtest_default_values_for_zeros *z)TimeTestCase.test_default_values_for_zeroc Csdt|j}dD]N}d|}t||}zt||Wqty\|d||fYq0qdS)Nrir}z/conversion specifier %r failed with '%s' input.)rr~rrstrptimerfr)rrrrZ strf_outputrrr test_strptimes   zTimeTestCase.test_strptimecCs(|ttjdd|ttjdddS)Ns2009%YZ2009s%Y)r\rrrrrrrtest_strptime_bytessz TimeTestCase.test_strptime_bytescCs|t}tddWdn1s,0Y||jjd|t}tddWdn1sr0Y||jjddS)Nrz%DTZ19z%Y %)r\rfrrassertIs exception__suppress_context__)rerrrtest_strptime_exception_contexts  * *z,TimeTestCase.test_strptime_exception_contextcCstt|jttfD]:}t|ddfd}||tt| dt|q| t tjtdfd| t tjtdfd| t tjd| t tjd| t tjddS)Nrrrrrrrrrrrrrrrrrr) rrrrrrrrrr) rr`r~r TIME_MAXYEAR TIME_MINYEARrMlenstrr\ OverflowErrorr)rZbigyearZascrrr test_asctimes $    zTimeTestCase.test_asctimecCs|tjdSr)rrr`rrrrtest_asctime_bounding_check-sz(TimeTestCase.test_asctime_bounding_checkc Cstd}|t|dtd}|t|ddD]R}zt|ddfd}WnttfynYq<0|t|d dt|qrz/TimeTestCase.test_monotonic..rrrztimes=%sg?g?r$) rassertGreaterEqualrr$rgrWr%r"r#r&)rtimesrQrRZdtr'rrrtest_monotonics    zTimeTestCase.test_monotoniccCs tdSr)rr2rrrrtest_perf_counterszTimeTestCase.test_perf_countercCsPt}tdt}|||dtd}||j||jdS)N皙?{Gz?r4) rr4rgr+r"r%r$r#r&rstartstopr'rrrtest_process_times   zTimeTestCase.test_process_timecCsttds4tjdr*|dtjfn |dt}tdt}| ||dt d}| |j | |jdS)Nr.)linuxwinz,time.thread_time() should be available on %rzneed time.thread_timerr)r6rrJrHrOrskipTestr.rgr+r"r%r$r#r&rrrrtest_thread_times      zTimeTestCase.test_thread_timezneed time.clock_settimec Cst}ttj}zttj|dWn.tyX}z||WYd}~n d}~00t}ttj||||dS)Ni)rr$r/r8rZr[rr)rrQZrealtimeerrrRrrrtest_monotonic_settimes  z#TimeTestCase.test_monotonic_settimec Csd}dD]J}zt|Wqty6|dYqtyP|}YqTYq0q|durf|d|ttj||ttj||ttjtd|ttjtddS)N)rei@llzneed 64-bit time_tz&unable to find an invalid time_t valuenan) rrarrr]r\r_rfr;)rZinvalid_time_tZtime_trrrtest_localtime_failure s   z#TimeTestCase.test_localtime_failurec Csgd}|D]}|j|d|t|}||jt||jd||jt||j t | |j d| |j d||j tWdq 1s0Yq |ttjddS)N)r$r2r4rr.)namerrUrVZxxx)ZsubTestrr"r)implementationrrPr$boolZ resolutionr;rWr?r&r\rf)rZclocksrr'rrrtest_get_clock_info"s .z TimeTestCase.test_get_clock_infoN).r rrrr!r(r:unittest skipUnlessr6rr=rBrSrYr^rcrhrrrrrrrrrrrrrrrrrrrHZlibc_verrrrrrrrrrrrrr2s            9      I      rc@s$eZdZddZddZddZdS) TestLocalecCsttj|_dSrlocale setlocaleLC_ALLoldlocrrrrr<szTestLocale.setUpcCsttj|jdSrrrrrrtearDown?szTestLocale.tearDowncCsBzttjd}Wntjy0|dYn0tdddS)Nfr_FRz$could not set locale.LC_ALL to fr_FRz%B) ir rrrrrrr)rrrErrorrrr)rtmprrr test_bug_3061Bs zTestLocale.test_bug_3061N)r rrrrrrrrrr;src@s eZdZdZddZddZdS)_TestAsctimeYear%dcCst|fddS)Nrre)rr`splitrrzrrryearstrNsz_TestAsctimeYear.yearstrcCs(||dd||dddS)N9012345[ 123456789)rMrrrrrtest_large_yearQsz _TestAsctimeYear.test_large_yearN)r rr_formatrrrrrrrKsrcsleZdZedddkrdZndZddZdd Zd d Zed fd dZ edfddZ [Z S)_TestStrftimeYearr) rrrrrrrrrZ0001%04drcCstd|fdS)Nrrrrrrrrbsz_TestStrftimeYear.yearstrcCs0|jdkr|dndd}|jd|ddS)NrcSstd|fdS)Nz%4Yrr)rzrrryear4djsz-_TestStrftimeYear.test_4dyear..year4d)r)r test_year)rrrrr test_4dyeares  z_TestStrftimeYear.test_4dyearcCsBd}ztd|fdWnty0d}Yn0d}t||S)Nz5strftime() is limited to [1; 9999] with Visual StudiorrFT)rrrfrr)rzmsgcondrrrskip_if_not_supportedns  z'_TestStrftimeYear.skip_if_not_supportedrcs tSr)superrr __class__rrrysz!_TestStrftimeYear.test_large_yearrcs tSr)r test_negativerrrrr}sz_TestStrftimeYear.test_negative) r rrrrrrrrrr __classcell__rrrrrVs  rc@s*eZdZdZd ddZddZddZdS) _Test4dYearrNcCs|p|j}|p|j}||d|d||d|d||d|d||d|d||d|d||d|ddS)NrDEc')rrrM)rfmtrrrrrs  z_Test4dYear.test_yearcCsd||ddd||ddd||tdtt|t|jtddS)Nr+rrrr)rMrlstriprrr\rrrrrrsz_Test4dYear.test_large_yearcCs||d|jd||dd||dd||dtd||dtd||ttt|t|jtd|t |t dWdn1s0YdS) Nrei.z-1234iz-123456i2i.ir)rMrrrrr\rrrrrrrs z_Test4dYear.test_negative)NN)r rrrrrrrrrrr s r c@s eZdZdS)TestAsctime4dyearNr rrrrrrrsrc@s eZdZdS)TestStrftime4dyearNrrrrrrsrc@s^eZdZeeejdkdddZeejdkdddZ eejdkdddZ d S) TestPytime zneeds tm_zone supportcCs0t}|t|d|t|d|jdurF|ttd n||jtjtjg|j |j dur|ttd n||j tj |jt |}t |dd}|||t|}t|}|||||j|j||j |j |||||j|j||j |j dS)N tm_gmtofftm_zonerr r) rrar%r6rrMrrrrr rb)rltrZt9Znew_ltZnew_lt9rrrtest_localtime_timezones$     z"TestPytime.test_localtime_timezonecCs8tdd}||jdtdd}||jddS)NZUTCrz+0500z%zr)rrrMrrr<rrrtest_strptime_timezones  z!TestPytime.test_strptime_timezonecCs6ddl}d}||}||jd||jddS)NrsLctime struct_time p0 ((I2007 I8 I11 I1 I24 I49 I5 I223 I1 tp1 (dp2 tp3 Rp4 .)pickleloadsrrr)rrstrrrrtest_short_timess  zTestPytime.test_short_timesN) r rrrrrr_STRUCT_TM_ITEMSrrr rrrrrs " rzneed the _testcapi modulec@sReZdZdZdZddZddZddZdd d Zdd d Z dddZ ddZ dS)CPyTimeTestCasez1 Base class to test the C _PyTime_t API. NcCs6ddlm}|dd}d| |_d|d|_dS)Nr) SIZEOF_TIME_Trrr ) _testcapir# time_t_min time_t_max)rr#bitsrrrrs   zCPyTimeTestCase.setUpcCs|j|ko|jkSSr)r%r&)rsecondsrrr time_t_filterszCPyTimeTestCase.time_t_filterc Csdtttg}|r|dd}dg}|D]&}|D]}||}|| |fq0q(dD]<}d|t}|| d| | d|d||dfqTtjtjfD]} || tq|rdD]}d| }|| |fqd tt}|| |f|S) z'Build timestamps used to test rounding.rgMbP?)rr {iirr rrii?Biiiiiii i ir) rr*rrr!r )r r+rr-g@l)US_TO_NSMS_TO_NS SEC_TO_NSappendextendr$INT_MININT_MAX) r use_floatZunitsvalues ns_timestampsZunitvaluer,Zpow2r(rrr_rounding_valuess0     z CPyTimeTestCase._rounding_valuesc s4fdd}|}||}tD]\} } tp} | | _|D]T} | | d} z|| | }|| }Wn ty|d| Yn0|||| qBWdq&1s0Yq&|jt }| |f}||}tD]V\} }|D]H} | | d} |j t | d|| | Wdq1s"0YqqdS)NcsXr$ttfdd|D}ntfdd|D}rLt|}tt|S)Ncsg|] }|qSrrrr,Z unit_to_nsrrr,rzKCPyTimeTestCase._check_rounding..convert_values..csg|] }|qSrrr=r>rrr/r)r3r;filtersortedset)r:r9 unit_to_secr8 value_filterr>rconvert_values)s  z7CPyTimeTestCase._check_rounding..convert_values)r;roundingz!Error on timestamp conversion: %s)r) r<ROUNDING_MODESdecimalZ localcontextrF ExceptionrrMOVERFLOW_SECONDSr3r\r)rpytime_converter expected_funcr8rCrDrEr:Z valid_valuestime_rndZ decimal_rndcontextr;Z debug_inforrr,Zoverflow_values_rrBr_check_rounding&s2       &    zCPyTimeTestCase._check_roundingrcCs|||d||dS)NFrPrrKrLrCrDrrrcheck_int_roundingSsz"CPyTimeTestCase.check_int_roundingcCs|||d||dS)NTrQrRrrrcheck_float_roundingXsz$CPyTimeTestCase.check_float_roundingcCst|}|d}t|S)Nr)rHDecimalZquantizer*)rrxrmrrr decimal_round]s  zCPyTimeTestCase.decimal_round)N)rN)rN) r rr__doc__rJrr)r<rPrSrTrVrrrrr"s4 .  r"c@speZdZdZedeZddZddZ ddZ d d Z d d Z e eed dddZddZddZdS) TestCPyTimez# Test the C _PyTime_t API. lc sxddlmdd}|jfdddd|dtD]>\}}|ttd Wdq41sh0Yq4dS) NrPyTime_FromSecondscSstj|kotjkSSr)r$r6r7secsrrr c_int_filternsz2TestCPyTime.test_FromSeconds..c_int_filtercs|Srr)r\rndrYrrrqrz.TestCPyTime.test_FromSeconds..cSs|tSrr3r[rrrrrrrDr)r$rZrSrGr\rr;)rr]rMrOrrYrtest_FromSecondsjs   zTestCPyTime.test_FromSecondsc szddlm}|dd|fddtD]@\}}t|td|Wdq41sj0Yq4dS)Nr)PyTime_FromSecondsObjectcSs|tSrr_r[rrrrrz4TestCPyTime.test_FromSecondsObject..cs|tSr)rVr3r,rrrrrr)r$rbrSrTrGr\rfr;)rrbrMrOrrrtest_FromSecondsObjectzs    z"TestCPyTime.test_FromSecondsObjectc srddlmdd}|fdd|ttD]>\}}|ttdWdq.1sb0Yq.dS)NrPyTime_AsSecondsDoublecSs,t|tdkrt|tSt|tSdSNr)absr3r;rcrrrfloat_converters z9TestCPyTime.test_AsSecondsDouble..float_convertercs|Srrr,r^rerrrrz2TestCPyTime.test_AsSecondsDouble..r)r$rfrS NS_TO_SECrGr\rr;)rrirMrOrrertest_AsSecondsDoubles   z TestCPyTime.test_AsSecondsDoublecst|fdd}|S)Ncst|}|Sr)rHrUrV)r;rmZdenomrrr convertersz7TestCPyTime.create_decimal_converter..converter)rHrU)r denominatorrnrrmrcreate_decimal_converters z$TestCPyTime.create_decimal_convertercshddlm}|tfdd}tjdkrLddlmmfdd}n|j}|j ||t |d dS) Nr)PyTime_AsTimevalcs|}t|tSr)divmod SEC_TO_US)r,us) us_converterrrtimeval_convertersz5TestCPyTime.test_AsTimeval..timeval_converterwin32)LONG_MINLONG_MAXcs|kokSSrrr[)ryrxrrseconds_filtersz2TestCPyTime.test_AsTimeval..seconds_filterr`) r$rqrpr1rJrHrxryr)rSrk)rrqrvrzr)ryrxrurtest_AsTimevals    zTestCPyTime.test_AsTimevalPyTime_AsTimespecz need _testcapi.PyTime_AsTimespeccs4ddlmdd}|jfdd|t|jddS)Nrr|cSs t|tSr)rrr3rcrrrtimespec_convertersz7TestCPyTime.test_AsTimespec..timespec_convertercs|Srrrjr}rrrrz-TestCPyTime.test_AsTimespec..r`)r$r|rSrkr))rr~rr}rtest_AsTimespecs zTestCPyTime.test_AsTimespeccCs$ddlm}|||ttdS)Nr)PyTime_AsMilliseconds)r$rrSrpr2rk)rrrrrtest_AsMillisecondss  zTestCPyTime.test_AsMillisecondscCs$ddlm}|||ttdS)Nr)PyTime_AsMicroseconds)r$rrSrpr1rk)rrrrrtest_AsMicrosecondss  zTestCPyTime.test_AsMicrosecondsN)r rrrWmathceilr3rJrardrlrpr{rrr6r$rrrrrrrrXcs   rXc@s4eZdZdZdZddZddZddZd d Zd S) TestOldPyTimezH Test the old C _PyTime_t API: _PyTime_ObjectToXXX() functions. lcCs:ddlm}|j|dd|jd|j||j|jddS)Nr)pytime_object_to_time_tcSs|Srrr[rrrrrz5TestOldPyTime.test_object_to_time_t..r`)r$rrSr)rTrV)rrrrrtest_object_to_time_ts z#TestOldPyTime.test_object_to_time_tcsfdd}|S)Ncsbt|\}}t|}|9}|}|dkrB|7}|d8}n|krZ|8}|d7}||fS)Nrr)rmodfr*rV)r\Z floatpartZintpart sec_to_unitrrrrns  z1TestOldPyTime.create_converter..converterr)rrrnrrrcreate_converters zTestOldPyTime.create_converterc Csddlm}|j|dd|jd|j||t|jdtD]@\}}|t |t d|Wdq>1st0Yq>dS)Nr)pytime_object_to_timevalcSs|dfSrgrr[rrrrrz6TestOldPyTime.test_object_to_timeval..r`r) r$rrSr)rTrrsrGr\rfr;)rrrMrOrrrtest_object_to_timevals   z$TestOldPyTime.test_object_to_timevalc Csddlm}|j|dd|jd|j||t|jdtD]@\}}|t |t d|Wdq>1st0Yq>dS)Nr)pytime_object_to_timespeccSs|dfSrgrr[rrrrrz7TestOldPyTime.test_object_to_timespec..r`r) r$rrSr)rTrr3rGr\rfr;)rrrMrOrrrtest_object_to_timespec s   z%TestOldPyTime.test_object_to_timespecN) r rrrWrJrrrrrrrrrs  rdarwinztest weak linking on macOSc@seZdZddZdS)TestTimeWeaklinkingcCsddl}ddl}|}d}||vs,||s*rz;TestTimeWeaklinking.test_clock_functions...)r>r/r9rZclock_settime_nsrT)rrztime.z is available) sysconfigrHZget_config_varsrZSkipTesttuplemac_verrr%r6rr#)rrrHZ config_varsZvar_namerZ clock_namesrrrrtest_clock_functions!s z(TestTimeWeaklinking.test_clock_functionsN)r rrrrrrrrsr__main__)1testrrHenumrrrHrJrrrErr$ ImportErrorZ test.supportrZget_config_varrrrrsr1r2r3rkIntEnumr rrrrrGZTestCaserrrrr rrrZskipIfr"rXrrrr mainrrrrsb            . 8uB