a ze@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_UPrrB/opt/bitninja-python-dojo/embedded/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|tutdks<| |tj n,t j dkrZ| |tj n||tj t|}t|}|||dS)NZAIX )rrC threading get_identr%typer*platformsystemassertNotEqualCLOCK_THREAD_CPUTIME_IDsysmaxsize bit_length assertEqualr/r?)rZclk_idt1t2rrrtest_pthread_getcpuclockidks   z'TimeTestCase.test_pthread_getcpuclockid clock_getreszneed time.clock_getres()cCs(ttj}||d||ddS)N?)rrSr8 assertGreaterr?)rresrrrtest_clock_getres}s  zTimeTestCase.test_clock_getres clock_settimezneed time.clock_settime()cCsTttj}zttj|Wnty0Yn0ttdrP|ttjtjddS)Nr>r) rr/r8rYPermissionErrorr6 assertRaisesOSErrorr>r<rrrtest_clock_settimes    zTimeTestCase.test_clock_settimecCsJ|t|jtt|j|ttt|jt|jdSr)rOrctimerasctime 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)rgmtimerstrftimerefailr[ 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) rrrrrrrrrd) r rrrrrrrd) rrdrrrrrrrd) r rrrrrrrd) rrrrrrrrrd) rrrrrrrrd) rrrdrrrrrrd) rrrDrrrrrrd) rrrrrrrrd) rrrrdrrrrrd) rrrrrrrrd) rrrr;rrrrd) rrrrrdrrrrd) rrrr<rrrrd) rrrrrrdrrrd) rrrrrrrrrd) rrrrr=rrrd) rrrrr>rrrd) rrrrrrrdrrd) rrrrrrrrd) rrrrrrrcrrd) rrrrrrrrrd) rrrrrrrinrd) rrrrrrrrdrd) rrrrrrriord)r[rerO)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)rriz%Az%AAr)r|zA%zAA%z%A%zA%A%z%#)rangerr~re)rrwryzrrrtest_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_warningsrr~rO)rexpectedresultrrrtest_default_values_for_zeros *z)TimeTestCase.test_default_values_for_zeroc Csdt|j}dD]N}d|}t||}zt||Wqty\|d||fYq0qdS)Nrhr|z/conversion specifier %r failed with '%s' input.)rr}rr~strptimerer)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[rerrassertIs 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_MINYEARrOlenstrr[ 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|qs^         zTimeTestCase.test_tzsetcCs2tjtjtjfD]}dD]}|t||qqdS)N)gZbtgZbti)rr^r}r`r[r)rrZ unreasonablerrrtest_insane_timestampssz#TimeTestCase.test_insane_timestampscCsttddSr)rr^rrrrtest_ctime_without_argsz#TimeTestCase.test_ctime_without_argcCs:t}td}t|}t|}|j||dddSNg?)Zdelta)rr}raassertAlmostEqual)rZgt0Zgt1t0rPrrrtest_gmtime_without_args    z$TimeTestCase.test_gmtime_without_argcCs:t}td}t|}t|}|j||dddSr)rr`rar)rZlt0Zlt1rrPrrrtest_localtime_without_args    z'TimeTestCase.test_localtime_without_argc CsFdD]<}zt|}Wnttfy,Yq0|t||qdS)N)rcrdrr)rr`rr\rOra)rrrrrr test_mktimes zTimeTestCase.test_mktimerglibcz0disabled because of a bug in glibc. Issue #13309cCs^t|j}td|}||dztdWntyDYn0|td||dS)N%ZZLMT) rdrrrrrrdrdrd)rr}rr~rJrarrO)rrr rrrtest_mktime_errors    zTimeTestCase.test_mktime_errorcCsddtdD}|d}|ddD]}|||d||}q&t}tdt}||}||||d|ktd }||j||j dS) NcSsg|] }tqSr)rr$).0nrrr rz/TimeTestCase.test_monotonic..rrrztimes=%sg?g?r$) rassertGreaterEqualrr$rfrVr%r"r#r&)rtimesrPrQZdtr'rrrtest_monotonics    zTimeTestCase.test_monotoniccCs tdSr)rr2rrrrtest_perf_counterszTimeTestCase.test_perf_countercCsPt}tdt}|||dtd}||j||jdS)N皙?{Gz?r4) rr4rfr+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)r6rrLrH startswithrskipTestr.rfr+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/r8rYrZrr)rrPZrealtimeerrrQrrrtest_monotonic_settimes  z#TimeTestCase.test_monotonic_settimec Csd}dD]J}zt|Wqty6|dYqtyP|}YqTYq0q|durf|d|ttj||ttj||ttjtd|ttjtddS)N)rdi@llzneed 64-bit time_tz&unable to find an invalid time_t valuenan) rr`rrr\r[r^rer;)rZinvalid_time_tZtime_trrrtest_localtime_failure s   z#TimeTestCase.test_localtime_failurecCsgd}|D]p}t|}||jt||jd||jt||jt | |jd| |jd||j tq | ttjddS)N)r$r2r4rrrTrUZxxx)rr"r)implementationrrJr$boolZ resolutionr;rVr?r&r[re)rZclocksnamer'rrrtest_get_clock_info!s z TimeTestCase.test_get_clock_infoN).r rrrr!r(r:unittest skipUnlessr6rr=rBrRrXr]rbrgrrrrrrrrrrrrrrrrrrrHZlibc_verrrrrrrrrrrrrr2s            9      I      rc@s$eZdZddZddZddZdS) TestLocalecCsttj|_dSrlocale setlocaleLC_ALLoldlocrrrrr5szTestLocale.setUpcCsttj|jdSrrrrrrtearDown8szTestLocale.tearDowncCsBzttjd}Wntjy0|dYn0tdddS)Nfr_FRz$could not set locale.LC_ALL to fr_FRz%B) ir rrrrrrr)rrrErrorrrr~)rtmprrr test_bug_3061;s zTestLocale.test_bug_3061N)r rrrrrrrrrr4src@s eZdZdZddZddZdS)_TestAsctimeYear%dcCst|fddS)Nrrd)rr_splitrryrrryearstrGsz_TestAsctimeYear.yearstrcCs(||dd||dddS)N9012345[ 123456789)rOrrrrrtest_large_yearJsz _TestAsctimeYear.test_large_yearN)r rr_formatrrrrrrrDsrcsleZdZedddkrdZndZddZdd Zd d Zed fd dZ edfddZ [Z S)_TestStrftimeYearr) rrrrrrrrrZ0001%04drcCstd|fdS)Nrrrrrrrr[sz_TestStrftimeYear.yearstrcCs0|jdkr|dndd}|jd|ddS)NrcSstd|fdS)Nz%4Yrr)ryrrryear4dcsz-_TestStrftimeYear.test_4dyear..year4d)r)r test_year)rrrrr test_4dyear^s  z_TestStrftimeYear.test_4dyearcCsBd}ztd|fdWnty0d}Yn0d}t||S)Nz5strftime() is limited to [1; 9999] with Visual StudiorrFT)rr~rerr)rymsgcondrrrskip_if_not_supportedgs  z'_TestStrftimeYear.skip_if_not_supportedrcs tSr)superrr __class__rrrrsz!_TestStrftimeYear.test_large_yearrcs tSr)r test_negativerrrrrvsz_TestStrftimeYear.test_negative) r rrrr~rrrrrr __classcell__rrrrrOs  rc@s*eZdZdZd ddZddZddZdS) _Test4dYearrNcCs|p|j}|p|j}||d|d||d|d||d|d||d|d||d|d||d|ddS)NrDEc')rrrO)rfmtrrrrrs  z_Test4dYear.test_yearcCsd||ddd||ddd||tdtt|t|jtddS)Nr+rrrr)rOrlstriprrr[rrrrrrsz_Test4dYear.test_large_yearcCs||d|jd||dd||dd||dtd||dtd||ttt|t|jtd|t |t dWdn1s0YdS) Nrdi.z-1234iz-123456i2i.ir)rOrrrrr[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) rr`r%r6rrOrrrrr ra)rltrZt9Znew_ltZnew_lt9rrrtest_localtime_timezones$     z"TestPytime.test_localtime_timezonecCs8tdd}||jdtdd}||jddS)NZUTCrz+0500z%zr)rrrOrrr<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@sNeZdZdZddZddZddZddd Zdd d Zdd dZ ddZ dS)CPyTimeTestCaseNcCs6ddlm}|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) NrgMbP?)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 ExceptionrrOOVERFLOW_SECONDSr3r[r)rpytime_converter expected_funcr8rCrDrEr:Z valid_valuestime_rndZ decimal_rndcontextr;Z debug_inforrr,Zoverflow_values_rrBr_check_roundings2       &    zCPyTimeTestCase._check_roundingrcCs|||d||dS)NFrPrrKrLrCrDrrrcheck_int_roundingLsz"CPyTimeTestCase.check_int_roundingcCs|||d||dS)NTrQrRrrrcheck_float_roundingQsz$CPyTimeTestCase.check_float_roundingcCst|}|d}t|S)Nr)rHDecimalZquantizer*)rrwrlrrr decimal_roundVs  zCPyTimeTestCase.decimal_round)N)rN)rN) r rrrJrr)r<rPrSrTrVrrrrr"s4 .  r"c@sleZdZedeZddZddZddZ dd Z d d Z e eed d ddZddZddZdS) TestCPyTimelc sxddlmdd}|jfdddd|dtD]>\}}|ttd Wdq41sh0Yq4dS) NrPyTime_FromSecondscSstj|kotjkSSr)r$r6r7secsrrr c_int_filtergsz2TestCPyTime.test_FromSeconds..c_int_filtercs|Srr)r[rndrXrrrjrz.TestCPyTime.test_FromSeconds..cSs|tSrr3rZrrrrkrrDr)r$rYrSrGr[rr;)rr\rMrOrrXrtest_FromSecondscs   zTestCPyTime.test_FromSecondsc szddlm}|dd|fddtD]@\}}t|td|Wdq41sj0Yq4dS)Nr)PyTime_FromSecondsObjectcSs|tSrr^rZrrrrxrz4TestCPyTime.test_FromSecondsObject..cs|tSr)rVr3r,rrrr|rr)r$rarSrTrGr[rer;)rrarMrOrrrtest_FromSecondsObjectss    z"TestCPyTime.test_FromSecondsObjectc srddlmdd}|fdd|ttD]>\}}|ttdWdq.1sb0Yq.dS)NrPyTime_AsSecondsDoublecSs,t|tdkrt|tSt|tSdSNr)absr3r;rbrrrfloat_converters z9TestCPyTime.test_AsSecondsDouble..float_convertercs|Srrr,r]rdrrrrz2TestCPyTime.test_AsSecondsDouble..r)r$rerS NS_TO_SECrGr[rr;)rrhrMrOrrdrtest_AsSecondsDoubles   z TestCPyTime.test_AsSecondsDoublecst|fdd}|S)Ncst|}|Sr)rHrUrV)r;rlZdenomrrr convertersz7TestCPyTime.create_decimal_converter..converter)rHrU)r denominatorrmrrlrcreate_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|kokSSrrrZ)rxrwrrseconds_filtersz2TestCPyTime.test_AsTimeval..seconds_filterr_) r$rpror1rLrHrwrxr)rSrj)rrpruryr)rxrwrtrtest_AsTimevals    zTestCPyTime.test_AsTimevalPyTime_AsTimespecz need _testcapi.PyTime_AsTimespeccs4ddlmdd}|jfdd|t|jddS)Nrr{cSs t|tSr)rqr3rbrrrtimespec_convertersz7TestCPyTime.test_AsTimespec..timespec_convertercs|Srrrir|rrrrz-TestCPyTime.test_AsTimespec..r_)r$r{rSrjr))rr}rr|rtest_AsTimespecs zTestCPyTime.test_AsTimespeccCs$ddlm}|||ttdS)Nr)PyTime_AsMilliseconds)r$rrSror2rj)rrrrrtest_AsMillisecondss  zTestCPyTime.test_AsMillisecondscCs$ddlm}|||ttdS)Nr)PyTime_AsMicroseconds)r$rrSror1rj)rrrrrtest_AsMicrosecondss  zTestCPyTime.test_AsMicrosecondsN)r rrmathceilr3rJr`rcrkrorzrrr6r$r~rrrrrrrW\s   rWc@s0eZdZdZddZddZddZdd Zd S) TestOldPyTimelcCs:ddlm}|j|dd|jd|j||j|jddS)Nr)pytime_object_to_time_tcSs|SrrrZrrrrrz5TestOldPyTime.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_unitrrrrms  z1TestOldPyTime.create_converter..converterr)rrrmrrrcreate_converters zTestOldPyTime.create_converterc Csddlm}|j|dd|jd|j||t|jdtD]@\}}|t |t d|Wdq>1st0Yq>dS)Nr)pytime_object_to_timevalcSs|dfSrfrrZrrrrrz6TestOldPyTime.test_object_to_timeval..r_r) r$rrSr)rTrrrrGr[rer;)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|dfSrfrrZrrrrrz7TestOldPyTime.test_object_to_timespec..r_r) r$rrSr)rTrr3rGr[rer;)rrrMrOrrrtest_object_to_timespecs   z%TestOldPyTime.test_object_to_timespecN)r rrrJrrrrrrrrrs  rdarwinztest weak linking on macOSc@seZdZddZdS)TestTimeWeaklinkingcCsddl}ddl}|}d}||vs,||s#rz;TestTimeWeaklinking.test_clock_functions...)r>r/r9rYclock_settime_nsrS)rrztime.z is available) sysconfigrHZget_config_varsrZSkipTesttuplemac_verrr%r6rr#)rrrHZ config_varsZvar_namerZ clock_namesrrrrtest_clock_functionss z(TestTimeWeaklinking.test_clock_functionsN)r rrrrrrrrsr__main__)1testrrHenumrrrHrLrrrErr$ ImportErrorZ test.supportrZget_config_varrrrrrr1r2r3rjIntEnumr rrrrrGZTestCaserrrrr rrrZskipIfr"rWrrrr mainrrrrsb           . 8uB