python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_time.cpython-312.opt-1.pyc

ΑeƩJddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
	ddlZddlmZe
j"dxsdZddezdz
zdz
Zedz
d	zZd
ZdZd
ZdZdZGd
dej4ZdZdZej<ej<fej>ej>fej@ej@fejBejBffZ"Gdde
jFZ$Gdde
jFZ%GddZ&GddZ'GddZ(Gdde&e(e
jFZ)Gdde'e(e
jFZ*Gdd e
jFZ+e
jXedud!Gd"d#Z-Gd$d%e-e
jFZ.Gd&d'e-e
jFZ/e
j`e	jd(k(d)Gd*d+e
jFZ1e2d,k(re
jfyy#e$rdZYwxYw)-)support)warnings_helperN)skip_if_buggy_ucrt_strfptime
SIZEOF_INTli@Biʚ;ceZdZdZdZdZdZy)_PyTimerrN)__name__
__module____qualname__ROUND_FLOOR
ROUND_CEILINGROUND_HALF_EVENROUND_UPB/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_time.pyr
r
sKMOHrr
llceZdZdZdZdZdZeje	e
dddZeje	e
ddeje	e
dd	d
Zeje	e
ddeje	e
ddd
Z
eje	e
dddZeje	e
dddZdZdZdZdZdZdZdZdZedZdZdZdZd Zej<ej@d!d"Z!eje	e
d#d$d%Z"d&Z#d'Z$d(Z%d)Z&d*Z'eje(jRd+d,k7d-d.Z*d/Z+d0Z,ej<ejZd1d2Z.d3Z/eje	e
dd4d5Z0d6Z1d7Z2y8)9TimeTestCasec6tj|_yN)timetselfs rsetUpzTimeTestCase.setUp9srctjtjtjtjyr)raltzonedaylighttimezonetznamer s rtest_data_attributesz!TimeTestCase.test_data_attributes<s



rctjtjd}|j|j|j	|j
y)Nr)rget_clock_infoassertFalse	monotonic
assertTrue
adjustable)r!infos  r	test_timezTimeTestCase.test_timeBs=		""6*((rcfd}|tjtj|tjtj|tjtj
|tjtjttdr-|tjtjttdrL|tjtjtjtjyy)Nc~j|tt|dz}j||z
d||fy)NgeAl@F)assertIsInstanceint
assertLess)secnssec_nsr!s   rcheck_nsz0TimeTestCase.test_time_ns_type.<locals>.check_nsIs8!!"c*s^FOOVb[7S"I>rthread_time
clock_gettime)rtime_nsr,monotonic_nsperf_counterperf_counter_nsprocess_timeprocess_time_nshasattrr:thread_time_nsr;CLOCK_REALTIMEclock_gettime_ns)r!r9s` rtest_time_ns_typezTimeTestCase.test_time_ns_typeHs	?		!!""$	&""$%%'	)""$%%'	)4'T%%'((*
,4)T''(;(;<**4+>+>?
A*rr;zneed time.clock_gettime()cvtjtj}|j|tyr)rr;rDr3floatr!rs  rtest_clock_realtimez TimeTestCase.test_clock_realtimeas*
t223a'rCLOCK_MONOTONICzneed time.CLOCK_MONOTONICctjtj}tjtj}|j||yr)rr;rKassertLessEqual)r!abs   rtest_clock_monotonicz!TimeTestCase.test_clock_monotonicgs@

t334t334Q"rpthread_getcpuclockidz!need time.pthread_getcpuclockid()c|tjtj}|j	t|tutjdk(rBtjjdkr!|j|tjn`tjjdr!|j|tjn |j|tjtj |}tj |}|j#||y)NAIX sunos)rrQ	threading	get_identr-typer4platformsystemsysmaxsize
bit_lengthassertEqualCLOCK_THREAD_CPUTIME_ID
startswithassertNotEqualr;rM)r!clk_idt1t2s    rtest_pthread_getcpuclockidz'TimeTestCase.test_pthread_getcpuclockidps
++I,?,?,ABV+,??%3;;+A+A+Cr+IVT%A%AB
\\
$
$W
-VT%A%AB(D(DE



'



'R$rclock_getreszneed time.clock_getres()ctjtj}|j|d|j	|dy)N?)rrfrD
assertGreaterrM)r!ress  rtest_clock_getreszTimeTestCase.test_clock_getress: 3 343$S#&r
clock_settimezneed time.clock_settime()c<tjtj}	tjtj|ttdr5|j
ttjtjdyy#t$rYQwxYw)NrKr)	rr;rDrmPermissionErrorrBassertRaisesOSErrorrKrIs  rtest_clock_settimezTimeTestCase.test_clock_settimes
t223	t22A64*+g"00$2F2F
K,		s$B	BBc	~|jtj|jtjtj
|j|jt
tjtj
|jt
|jyr)r^rctimerasctime	localtimer4mktimer s rtest_conversionszTimeTestCase.test_conversionssnDFF+dnnTVV&<=	?T[[)?@ATVV	&rc|jttjd|jttjdtjdy)Ng333333?)rp
ValueErrorrsleepr s r
test_sleepzTimeTestCase.test_sleeps9*djj"5*djj"5

3rcltjd}|jt|ddd|y)Nr)irrrrr)rgmtimer^tuple)r!epochs  r
test_epochzTimeTestCase.test_epochs/Aubq)+@%Hrcftj|j}dD]}d|z}	tj|| |j
ttjd||j
ttjd|y#t$r|jd|zYwxYw)NrNArOBcdHIjmMpSUwWxXyYZ%z %z conversion specifier: %r failed.s%Sz%S)rrrstrftimer|failrp	TypeError)r!tt	directiveformats    r
test_strftimezTimeTestCase.test_strftimes
[[
 G	GII%F
G

fb)	G	
)T]]E2>*dmmVR@
G		<vEF
GsBB0/B0c6|d|d|jt|d|jt|d|d|d|jt|d|jt|d|d	|jt|d
|jt|d|d|jt|d
|jt|d|jt|d|d|d|jt|d|j|d|d|jt|d|d|d|jt|d|jt|dy)N)	r
rrrrrrrr{)	r
rrrrrrr{)	r
r{rrrrrrr{)	r

rrrrrrr{)	r
rrrrrrrr{)	r
rrrrrrr{)	r
rr{rrrrrr{)	r
rrTrrrrrr{)	r
rrrrrrr{)	r
rrr{rrrrr{)	r
rrrrrrr{)	r
rrr;rrrr{)	r
rrrr{rrrr{)	r
rrr<rrrr{)	r
rrrrr{rrr{)	r
rrrrrrrr{)	r
rrrr=rrr{)	r
rrrr>rrr{)	r
rrrrrr{rr{)	r
rrrrrrrr{)	r
rrrrrrzrr{)	r
rrrrrrrr{)	r
rrrrrrinr{)	r
rrrrrrr{r{)	r
rrrrrrior{)rpr|r^)r!funcs  r_bounds_checkingzTimeTestCase._bounds_checkings	

,-
-.*d<	>*d<	>	

,-
-.*d<	>*d<	>	

-.*d<	>*d<	>	

-.*d<	>*d<	>	
*d<	>	

-.
-.*d<	>	
>?>?	A*d<	>	

,-
./*d<	>*d=	?rc(|jdy)Nc.tjd|S)Nrr)tups r<lambda>z;TimeTestCase.test_strftime_bounding_check.<locals>.<lambda>s$--C*@r)rr s rtest_strftime_bounding_checkz)TimeTestCase.test_strftime_bounding_checks@ArcdD]6}tddD]%}dD]}	tj||z|z '8y#t$rY1wxYw)N)rrz%Az%AAr)rzA%zAA%z%A%zA%A%z%#)rangerrr|)r!rrzs    rtest_strftime_format_checkz'TimeTestCase.test_strftime_format_checkse
*	A3%
BA

a!eai0
	
&s=	A		A		cd}tj5tjdd}ddd|j	|y#1swYxYw)Nz2000 01 01 00 00 00 1 001z%Y %m %d %H %M %S %w %j)	rrrrrrrr)rcheck_warningsrrr^)r!expectedresults   rtest_default_values_for_zeroz)TimeTestCase.test_default_values_for_zerosO
/

+
+
-	N]]#<nMF	N6*	N	NsA		Ac	tj|j}dD]4}d|z}tj||}	tj||6y#t
$r|j
d|d|dY[wxYw)Nrrzconversion specifier z failed with 'z' input.)rrrrstrptimer|r)r!rrrstrf_outputs     r
test_strptimezTimeTestCase.test_strptimes}[[
 G		1I9_F--3K
1

k62
		1
1		!;01
1sA!A>=A>c|jttjdd|jttjddy)Ns2009%Y2009s%Y)rprrrr s rtest_strptime_bytesz TimeTestCase.test_strptime_bytess2)T]]GTB)T]]FEBrc|jt5}tjddddd|j	j
jd|jt5}tjddddd|j	|j
jdy#1swYxYw#1swY<xYw)Nrz%DT19z%Y %)rpr|rrassertIs	exception__suppress_context__)r!es  rtest_strptime_exception_contextz,TimeTestCase.test_strptime_exception_context s


z
*	$aMM"d#	$

akk66=


z
*	(aMM$'	(

akk66=
	$	$	(	(sB60C6B?Cc	tjtj|jtt
fD]N}tj|ddfdz}|j
|tt|dt|P|jttjtdzfdz|jttjt
dz
fdz|jttjd|jttjd|jttjdy)Nrrrrrrrrrrrrrrrrrr)
rrrrrrrrrr)rrurrTIME_MAXYEARTIME_MINYEARr^lenstrrp
OverflowErrorr)r!bigyearascs   rtest_asctimezTimeTestCase.test_asctime*sT[[()$\1	EG,,A9:CS#c'l"3!3!45s7|D	E	
-'!+-8	:-'!+-8	:)T\\15)T\\26)T\\9=rcB|jtjyr)rrrur s rtest_asctime_bounding_checkz(TimeTestCase.test_asctime_bounding_check9sdll+r(musl libc issue on Emscripten, bpo-46390ctjd}|jtj|dtjd}|jtj|ddD]O}	tj|ddfdz}|jtj|d	dt	|Qy#t
tf$rYdwxYw)
N)	i	rrr4rrr{zSun Sep 16 01:03:52 1973)	rrrrrrrrr{zSat Jan  1 00:00:00 2000)idrri'r
r)rrwr^rtrr|r)r!ryeartestvals    r
test_ctimezTimeTestCase.test_ctime<s
KK9:A(BCKK78A(BC8	FD
F++tQmf&<=  G!4RS!93t9E	F
.

s;C

CCtzsetz"time module has no attribute tzsetc,ddlm}d}d}d}d}|jdd}	||d<tj||d<tj|jtj|tj||jtjd|jtjd|jtj|jd||d<tj|jtj|tj||jtjd|jttjd	|jtjd
|jtjd|jtjd|jtj|jd|jttjd	||d<tj|jtj|tj||jtjdd
tjd|j!tjd
dvt#tjd
|jttjd	|jtjd
|jtjd|jtjd|jtj|jd
|||d<nd|vr|d=tjy#|||d<nd|vr|d=tjwxYw)Nr)environgzAzEST+05EDT,M4.1.0,M10.5.0zAEST-10AEDT-11,M10.5.0,M3.5.0zUTC+0TZ)ESTEDTrrPFi@8AESTEST)AEDTri`siPe)osrgetrrr^rrvr%r&tm_isdstrar'rr$assertInr-r)r!rxmas2002easternvictoriautcorg_TZs       r
test_tzsetzTimeTestCase.test_tzsetNs	 -2T$'5	$GDMJJLGDMJJLH%t~~h'?

T]]A.T]]A.T^^H5>>B$GDMJJLH 5t~~h7OPT[[.9S-q1T]]A.T]]E2T\\51T^^H5>>BS-q1%GDMJJLH 5t~~h7OP
MM$++a.<$++a.IOODKKNo=s4;;q>?RSS-q1T]]A.T]]F3T\\62T^^H5>>B
! &
DMJJL	! &
DMJJLsN(O..%PctjtjtjfD] }dD]}|j	t
||"y)N)gZbtgZbti)rrtrrvrpr)r!runreasonables   rtest_insane_timestampsz#TimeTestCase.test_insane_timestampssK
JJT^^;	ED -
E!!-|D
E	ErcVtjtjdyr)rrtr s rtest_ctime_without_argz#TimeTestCase.test_ctime_without_args	



4rctj}tjd}tj|}tj|}|j||dyNg?)delta)rrrwassertAlmostEqual)r!gt0gt1t0rcs     rtest_gmtime_without_argz$TimeTestCase.test_gmtime_without_argsLkkmkk$
[[

[[
r2S1rctj}tjd}tj|}tj|}|j||dyr)rrvrwr)r!lt0lt1rrcs     rtest_localtime_without_argz'TimeTestCase.test_localtime_without_argsMnnnnT"
[[

[[
r2S1rcdD]=}	tj|}|jtj||?y#tt
f$rYRwxYw)N)rzr{rr)rrvr^rwrrq)r!rrs   rtest_mktimezTimeTestCase.test_mktimesW	5A
5^^A&  R!4
	5"7+

sAAArglibcz0disabled because of a bug in glibc. Issue #13309c(tj|j}tjd|}|j	|d	tj
d|jtjd||y#t$rY2wxYw)N%ZLMT)	r{rrrrrr{r{r{)rrrrrarwrr^)r!rr's   rtest_mktime_errorzTimeTestCase.test_mktime_errorsy[[
 tR(FE*	KK78	
tR0&9		s	B	BBctdDcgc]}tj}}|d}|ddD]}|j||d|z|}tj}tjdtj}||z
}|j|||j
d|ktjd}|j
|j|j|jycc}w)Nrrrztimes=%sg?g?r,)
rrr,assertGreaterEqualr}rjr-r*r+r.)r!ntimesrcrddtr/s       rtest_monotoniczTimeTestCase.test_monotonics+0:6a!66
1X)	B##BJ,>?B	
^^


3
^^

"W2r"	
$"";/')'7sDc,tjyr)rr>r s rtest_perf_counterzTimeTestCase.test_perf_countersrz"process_time not available on WASIc>tj}tjdtj}|j||z
dtjd}|j|j|j|jy)N皙?{Gz?r@)	rr@r}r5r*r-r,r+r.r!startstopr/s    rtest_process_timezTimeTestCase.test_process_timesr
!!#

5  "	
ue,"">2')rcttdsStjj	dr#|jdtjn|j
dtj}tjdtj}|j||z
dtjd}|j|j|j|jy)Nr:)linuxwinz*time.thread_time() should be available on zneed time.thread_timerr)rBrr[rYr`rskipTestr:r}r5r*r-r,r+r.rs    rtest_thread_timezTimeTestCase.test_thread_timest]+||&&'78		 \\,-

56  "

5!	
ue,""=1')rzneed time.clock_settimectj}tjtj}	tjtj|dz
tj}tjtj||j||y#t
$r}|j
|Yd}~jd}~wwxYw)Ni)rr,r;rDrmror$r)r!rcrealtimeerrrds     rtest_monotonic_settimez#TimeTestCase.test_monotonic_settimes^^
%%d&9&9:	t22HtOD^^
4..9B'	MM#	s'B++	C4C

Ccd}dD]}	tj|||jd|jttj||jttj||jttjtd|jttjtdy#t$r|jdYt$r|}YwxYw)N)r{i@llzneed 64-bit time_tz&unable to find an invalid time_t valuenan)	rrvrr$rqrprtr|rH)r!invalid_time_ttime_ts   rtest_localtime_failurez#TimeTestCase.test_localtime_failures/	F
v&	!MMBC'4>>>B'4::~>	
*dnneElC*djj%,?!
4

23
!'
sCD6
DDcgd}ttdr|jd|D]}|j|5tj|}|j|jt|j|jd|j|jt|j|jt|j|jd|j|jd|j|jtddd
|j!t"tjdy#1swY;xYw)N)r,r>r@rr:)namerrhrixxx)rBrappendsubTestr*r3implementationrrar,bool
resolutionrHrjrMr.rpr|)r!clocksr0r/s    rtest_get_clock_infoz TimeTestCase.test_get_clock_info4s
4'MM-(	=D4(

=**40%%d&9&93?##D$7$7<%%dnnd;%%doou=""4??C8$$T__c:%%doot<

=

=	=	
*d&9&95A

=

=sC*EE#	N)3rrrr"r(r0rFunittest
skipUnlessrBrrJrPrerlrrrxr~rrrrrrrrrrrrskipIfr
is_emscriptenrrrrrr
rrYlibc_verrrris_wasir r%r)r.r8rrrrr7s)A2X746(6(X746X'8946#66#
X'>?<>X746
%6>
%X~635'5'
X746	K6	K&
I
A7?rB+"
1"
1C
>
>,X__I
F
FXw/=?G?GRE225X***,Q/7:KM:M:*.X__=***(X724(4(@*BrrceZdZdZdZdZy)
TestLocalecTtjtj|_yrlocale	setlocaleLC_ALLoldlocr s rr"zTestLocale.setUpOs&&v}}5rc`tjtj|jyrrBr s rtearDownzTestLocale.tearDownRs4rc	tjtjd}tjddy#tj$r|j	dY=wxYw)Nfr_FRz$could not set locale.LC_ALL to fr_FRz%B)	irrrrrrrr)rCrDrEErrorr$rr)r!tmps  r
test_bug_3061zTestLocale.test_bug_3061UsS	B""6==':C	


d23||	BMM@A	Bs$=$A$#A$N)rrrr"rHrMrrrr@r@Ns654rr@ceZdZdZdZdZy)_TestAsctimeYear%dcVtj|fdzjdS)Nrr{)rrusplitr!rs  ryearstrz_TestAsctimeYear.yearstras%||QD8O,224R88rc|j|jdd|j|jddy)N9012345[	123456789)r^rTr s rtest_large_yearz _TestAsctimeYear.test_large_yeards4e,g6i0+>rN)rrr_formatrTrZrrrrOrO^sG9?rrOceZdZejdddk(rdZndZdZeje	jddZd	Zed
fdZ
edfd
Z[xZS)_TestStrftimeYearr)	rrrrrrrrr0001%04drPc6tjd|fdzS)NrrrrSs  rrTz_TestStrftimeYear.yearstrus}}TA4(?33rzrequires strftime extensioncr|jdk(r|jdyd}|jd|y)Nr_c6tjd|fdzS)Nz%4Yrr)rs ryear4dz-_TestStrftimeYear.test_4dyear.<locals>.year4ds}}UQD8O<<r)r)r[	test_year)r!rcs  rtest_4dyearz_TestStrftimeYear.test_4dyearxs1
<<6!NN6"
=NN6N/rcd}	tjd|fdzd}tj||S#t$rd}Y#wxYw)Nz5strftime() is limited to [1; 9999] with Visual StudiorrTF)rrr|r9r:)rmsgconds   rskip_if_not_supportedz'_TestStrftimeYear.skip_if_not_supportedsPE	MM$x0D""4--		D	s6AArc t|Sr)superrZr!	__class__s rrZz!_TestStrftimeYear.test_large_yearsw&((rrc t|Sr)rk
test_negativerls rroz_TestStrftimeYear.test_negativesw$&&r)rrrrrr[rTr9r:rhas_strftime_extensionsrerirZro
__classcell__)rms@rr]r]ist}}T?+v54X'')F00	.5!)")1''	rr]c$eZdZdZddZdZdZy)_Test4dYearrPNc|xs|j}|xs|j}|j|d|dz|j|d|dz|j|d|dz|j|d|dz|j|d|dz|j|d|dzy)NrDEc')r[rTr^)r!fmtrs   rrdz_Test4dYear.test_years!T\\#t||aS1W-bS2X.bS2X.bS2X.cS3Y/dS4Z0rc|j|jdjdd|j|jdjdd|j|jtjdt	t|jt|jtdzy)NrV+rWrXrYr)r^rTlstriprrrprr s rrZz_Test4dYear.test_large_yearse,33C8'Bi077<kJl3::3?\ARS-|a7GHrc|j|jd|jdz|j|jdd|j|jdd|j|jdtd|j|jdtd|j|jttt|jt|jtdz
|jt5|jtdz
dddy#1swYyxYw)	Nr{i.z-1234iz-123456i2i.ir)r^rTr[rrrprrr s rroz_Test4dYear.test_negativesb)4<<"+<=e,g6g.	:j13z?Ck2C4DEl3S5FG-|a7GH


}
-	,LL,*+	,	,	,s4EE )NN)rrrr[rdrZrorrrrsrssG1I
,rrsceZdZy)TestAsctime4dyearNrrrrrrrrrrceZdZy)TestStrftime4dyearNrrrrrrrrrc:eZdZeej
ejdk(deje	jddZej
ejdk(ddZej
ejdk(ddZ
y)
TestPytimezneeds tm_zone supportrctj}|jt|d|jt|d|j!|jttdnH|j|jtjtjg|j|j!|jttdn7|j|jtj|jtj|}tj|dd}|j||tj|}tj|}|j|||j|j|j|j|j|j|j|||j|j|j|j|j|jy)N	tm_gmtofftm_zoner&r'r)rrvr-rBrr^r&r$rrr'rw)r!ltrt9new_ltnew_lt9s      rtest_localtime_timezonez"TestPytime.test_localtime_timezones^^
K01I./<<OOj 99:R\\T]]DLL,I"++,V+VW
::OOh 778RZZR[[)AB

KKO$++b!f"5RB"dnnR.@G$))2<<84"%))2<<8"**5rctjdd}|j|jdtjdd}|j|jdy)NUTCrz+0500z%zr)rrr^rrrIs  rtest_strptime_timezonez!TestPytime.test_strptime_timezonesJMM%&E*MM'4(h/rcddl}d}|j|}|j|jd|j|jdy)NrsLctime
struct_time
p0
((I2007
I8
I11
I1
I24
I49
I5
I223
I1
tp1
(dp2
tp3
Rp4
.)pickleloadsrrr)r!rstrs    rtest_short_timeszTestPytime.test_short_timessA	m
\\"


bllD)

bjj$'rN)rrrrr9r:r_STRUCT_TM_ITEMSr;rr<rrrrrrrrs!X.."46MNX__I 6O"
 6DX.."46MN0O0X.."46MN(O(rrzneed the _testcapi modulecJeZdZdZdZdZdZdZ	d
dZ	ddZ		ddZ
d	Zy)CPyTimeTestCasez1
    Base class to test the C _PyTime_t API.
    NcPddlm}|dzdz
}d|z|_d|zdz
|_y)Nr)
SIZEOF_TIME_Tr	rr)	_testcapir
time_t_min
time_t_max)r!rbitss   rr"zCPyTimeTestCase.setUps0+q 1$9*t)a-rcJ|j|cxkxr|jkScSr)rr)r!secondss  r
time_t_filterzCPyTimeTestCase.time_t_filter	s 7=doo=>=>rc
"dtttg}|r|jdd}dg}|D]"}|D]}||z}|j	||f$dD]4}d|ztz}|j	|dz
||dz|dz
||dzf6t
jt
jfD]}	|j|	tz|r!dD]}d|z}|j	||fd	tztz}|j	||f|S)
z'Build timestamps used to test rounding.rgMbP?)rr{iirrwrxryii?Biiiiiii	i
ir)	rrrrr!r)rrrrg@l)US_TO_NSMS_TO_NS	SEC_TO_NSr2extendrINT_MININT_MAX)
r!	use_floatunitsvalues
ns_timestampsunitvaluer7pow2rs
          r_rounding_valuesz CPyTimeTestCase._rounding_valuessSHh	2LL
$
	0D
0T\$$rc2Y/
0	07	Dt)y(B  AsRCE1b"Q$"
	"))9+<+<=	6G  9!45	6&
0dU^$$rc2Y/
0
"i
/rc2Y'rcNfd}|j}||}tD][\}	}
tj5}|
|_|D],}||
d}
	|||	}||}|j|
.	ddd]|jtz}||f}||}tD]:\}	}|D]0}||	d}
|jt|
5|||	ddd2<y#t
$r|j
d|
zYwxYw#1swYxYw#1swYnxYw)Ncr%ttz}|Dcgc]}||z	}}ntz}|Dcgc]}||z	}}rt|}tt	|Scc}wcc}wr)rrHfiltersortedset)r
unit_to_nsr7runit_to_secrvalue_filters    rconvert_valuesz7CPyTimeTestCase._check_rounding.<locals>.convert_valuesBsz&{);;
4ABb"z/BB&+5
5BCr"
*CCf5#f+&&CDs
A&A+)rroundingz!Error on timestamp conversion: %s)rg)rROUNDING_MODESdecimallocalcontextr	Exceptionrr^OVERFLOW_SECONDSrrpr)r!pytime_converter
expected_funcrrrrrvalid_valuestime_rnddecimal_rndcontextr
debug_inforrr7overflow_values_s   ```             r_check_roundingzCPyTimeTestCase._check_rounding?sd	'--i8
%m4%3
	1!Hk%%'
17#. )	1E+0k!JJT!1%!B#0#7$$V%-%/1	1
1
1
	1 
"
"Y
.b	
(7)	6KHa(
6',(C
&&}*&E6$UH566
6	6%T		"E
"RST
1
1*66s<DC,(D
D,D		DD	DD	D$c.|j||d||y)NFrr!rrrrs     rcheck_int_roundingz"CPyTimeTestCase.check_int_roundingls-}"K	?rc.|j||d||y)NTrrs     rcheck_float_roundingz$CPyTimeTestCase.check_float_roundingqs-}!;	>rcdtj|}|jd}t|S)Nr)rDecimalquantizer4)r!rrs   r
decimal_roundzCPyTimeTestCase.decimal_roundvs&OOA
JJqM1v
rr)rN)rrr__doc__rr"rrrrrrrrrrrsD(?1h>B+6\8<?:>>
rrc$eZdZdZej
dezZdZdZ	dZ
dZdZe
jeedd	d
Ze
jeeddd
Ze
jeedddZdZdZy)TestCPyTimez#
    Test the C _PyTime_t API.
    lcddlmd}|jfdd|tD]4\}}|j	t
5t
dddd6y#1swYAxYw)Nr)PyTime_FromSecondscZtj|cxkxrtjkScSr)rrrsecss rc_int_filterz2TestCPyTime.test_FromSeconds.<locals>.c_int_filters$%%B1B1BBCBCrc|Srr)rrndrs  rrz.TestCPyTime.test_FromSeconds.<locals>.<lambda>s
2DT2Jrc|tzSrrrs rrz.TestCPyTime.test_FromSeconds.<locals>.<lambda>sTI-=rrr+)rrrrrprrH)r!rrrrs    @rtest_FromSecondszTestCPyTime.test_FromSecondsss0	D	
 J =-9	 	;
*	1KHa""9-
1"5<0
1
1	1
1
1sA!!A*	cddlm}j|dj|fdtD]5\}}jt5|td|ddd7y#1swYBxYw)Nr)PyTime_FromSecondsObjectc|tzSrrrs rrz4TestCPyTime.test_FromSecondsObject.<locals>.<lambda>s	)rc4j|tzSr)rr)r7r!s rrz4TestCPyTime.test_FromSecondsObject.<locals>.<lambda>st))"y.9rr+)rrrrrrpr|rH)r!rrrs`   rtest_FromSecondsObjectz"TestCPyTime.test_FromSecondsObjects6$)	+	
!!$9	;
*	AKHa"":.
A(ux@
A
A	A
A
AsA//A8	cddlmd}|jfd|ttD]4\}}|jt5tdddd6y#1swYAxYw)Nr)PyTime_AsSecondsDoublectt|tzdk(rt|tzSt|tzSNr)absrrHr7s rfloat_converterz9TestCPyTime.test_AsSecondsDouble.<locals>.float_converters12w"a'R9_--Ry9,,rc|Srr)r7rrs  rrz2TestCPyTime.test_AsSecondsDouble.<locals>.<lambda>s
0Fr0Jrr+)rrr	NS_TO_SECrrprrH)r!rrrrs    @rtest_AsSecondsDoublez TestCPyTime.test_AsSecondsDoublesm4	-	
 J / )	+
*	5KHa""9-
5&uU|4
5
5	5
5
5sA##A,	c@tj|fd}|S)NcVtj|z}j|Sr)rrr)rrdenomr!s  r	converterz7TestCPyTime.create_decimal_converter.<locals>.converters'&.A%%a((r)rr)r!denominatorrrs`  @rcreate_decimal_converterz$TestCPyTime.create_decimal_converters,	)rcddlm}|jtfd}tj
dk(rddlmmfd}n|j}|j||t|y)Nr)PyTime_AsTimevalc4|}t|tSr)divmod	SEC_TO_US)r7usus_converters  rtimeval_converterz5TestCPyTime.test_AsTimeval.<locals>.timeval_convertersb!B"i((rwin32LONG_MINLONG_MAXc$|cxkxrkScSrr)rrrs rseconds_filterz2TestCPyTime.test_AsTimeval.<locals>.seconds_filters4383333rr)rrrrr[rYrrrrr)r!rrrrrrs    @@@rtest_AsTimevalzTestCPyTime.test_AsTimevals].44X>	)<<7"4
4"//N 0 1 )-;	 	=rPyTime_AsTimespecz need _testcapi.PyTime_AsTimespeccdddlmd}|jfd|t|jy)Nr)rc"t|tSr)rrrs rtimespec_converterz7TestCPyTime.test_AsTimespec.<locals>.timespec_converters"i((rc|Srr)r7rrs  rrz-TestCPyTime.test_AsTimespec.<locals>.<lambda>s
0A"0Err)rrrrr)r!rrs  @rtest_AsTimespeczTestCPyTime.test_AsTimespecs5	0	)	
 E 2 )-1-?-?	 	ArPyTime_AsTimeval_clampz%need _testcapi.PyTime_AsTimeval_clampcddlm}tjdk(r
ddlm}m}|}|}n|j}|j}ttfD]}||tj}tj5}tj|_|jtj |t"z}	dddt%	t&\}
}||
kr|}
d}n	|
|kr|}
d}|j)||
|fy#1swYFxYw)Nr)rr	r
)rrr[rYrrrr_PyTime_MIN_PyTime_MAXr
rrrrrrrrrr^)r!rrr
tv_sec_max
tv_sec_minrtsrrtv_sectv_usecs            rtest_AsTimeval_clampz TestCPyTime.test_AsTimeval_clamps	5<<7"4!J!JJJ{+	4A'7+@+@AB%%'
G7#*#8#8 ''(:X(EF
G%R3OFGF"#*$#R&'!23	4
G
Gs
9AC??D	PyTime_AsTimespec_clampz&need _testcapi.PyTime_AsTimespec_clampcddlm}ttfD]l}||}t	|t
\}}|j|kr|j}d}n||jkr|j}d}|j|||fny)Nr)r )	rr rrrrrrr^)r!r rrrtv_nsecs      rtest_AsTimespec_clampz!TestCPyTime.test_AsTimespec_clamps~	6{+		4A(+B$Q	2OFG'$//)R&'!23		4rcdddlm}|j||jtt
y)Nr)PyTime_AsMilliseconds)rr%rrrr)r!r%s  rtest_AsMillisecondszTestCPyTime.test_AsMilliseconds
'3 5 $ = =h G )	+rcdddlm}|j||jtt
y)Nr)PyTime_AsMicroseconds)rr)rrrr)r!r)s  rtest_AsMicrosecondszTestCPyTime.test_AsMicrosecondsr'rN)rrrrmathceilrrrrrrrr9r:rBrrrr#r&r*rrrrr|s!tyy)y!891 A 5$=.X,?@;=	A=	AX,DE@B4B42X,EFAC4C4++rrc,eZdZdZdZdZdZdZdZy)
TestOldPyTimezH
    Test the old C _PyTime_t API: _PyTime_ObjectToXXX() functions.
    lcddlm}|j|d|j|j	||j
|jy)Nr)pytime_object_to_time_tc|Srrrs rrz5TestOldPyTime.test_object_to_time_t.<locals>.<lambda>(sTrr)rr0rrrr)r!r0s  rtest_object_to_time_tz#TestOldPyTime.test_object_to_time_t$sS5 7 1-1-?-?	 	A	
!!"9"&"4"4/3/A/A	"	Crcfd}|S)Nctj|\}}t|}|z}j|}|dkr|z
}|dz}||fS|k\r
|z}|dz
}||fS)Nrr)r+modfr4r)r	floatpartintpartsec_to_unitr!s   rrz1TestOldPyTime.create_converter.<locals>.converter0s!%4Iw'lG$I**95I1}[(	1Y''k)[(	1Y''rr)r!r8rs`` rcreate_converterzTestOldPyTime.create_converter/s	(rcDddlm}|j|d|j|j	||jt|jtD]5\}}|jt5|td|ddd7y#1swYBxYw)Nr)pytime_object_to_timevalc
|dfSrrrs rrz6TestOldPyTime.test_object_to_timeval.<locals>.<lambda>B
dAYrrr+)rr;rrrr9rrrpr|rH)r!r;rrs    rtest_object_to_timevalz$TestOldPyTime.test_object_to_timeval>s6 8 6-1-?-?	 	A	
!!":"&"7"7	"B/3/A/A	"	C
*	AKHa"":.
A(ux@
A
A	A
A
A8BB	cDddlm}|j|d|j|j	||jt|jtD]5\}}|jt5|td|ddd7y#1swYBxYw)Nr)pytime_object_to_timespecc
|dfSrrrs rrz7TestOldPyTime.test_object_to_timespec.<locals>.<lambda>Rr=rrr+)rrArrrr9rrrpr|rH)r!rArrs    rtest_object_to_timespecz%TestOldPyTime.test_object_to_timespecNs7 9 6-1-?-?	 	A	
!!";"&"7"7	"B/3/A/A	"	C
*	BKHa"":.
B)%,A
B
B	B
B
Br?N)	rrrrrr2r9r>rCrrrr.r.s&
	C
A Brr.darwinztest weak linking on macOSceZdZdZy)TestTimeWeaklinkingcddl}ddl}|j}d}||vs||stj|dtd|jdjdD}gd}|dk\r,|D]&}|jtt|d|d(y|D]&}|jtt|d|d	(y)
NrHAVE_CLOCK_GETTIMEz is not availablec32K|]}t|ywr)r4).0rs  r	<genexpr>z;TestTimeWeaklinking.test_clock_functions.<locals>.<genexpr>nsI1AIs.)rKr;rErmclock_settime_nsrf)rrztime.z
 is available)	sysconfigrYget_config_varsr9SkipTestrmac_verrRr-rBrr+)r!rNrYconfig_varsvar_namerQclock_namesr0s        rtest_clock_functionsz(TestTimeWeaklinking.test_clock_functionses/i//1';&k(.C##xj0A$BCCI(8(8(8(:1(=(C(CC(HII0h#
Vd 3uTFBS5TU
V$
S  t!4dV=6QR
SrN)rrrrUrrrrFrF^sSrrF__main__)4testrtest.supportrrenumrCr+rYr[rNrrVr9rImportErrorrget_config_varrrrrrrrrIntEnumr
rrrrrrrTestCaserr@rOr]rsrrrr;rrr.r:rFrmainrrr<module>r_s`(

6&Y
%
%l
3
8q
Q^a''1,}q 4'			dll

'--.G112g556w''(TB8$$TBn
4""
4 	?	?..b,,@	(+x7H7H		*K9J9J	8(""8(vd"$?@||A|~]+/8#4#4]+@@BOX%6%6@BDS\\X-/KLS(++SMS<zHMMO]#IsHH"!H"