HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_time.cpython-37.opt-2.pyc
B

��g���@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZyddl
Z
Wnek
r�dZ
YnXe�d�p�dZdded>dZeddZdZd	ZdZd
Zd
ZGdd�dej�ZejejfejejfejejfejejffZGd
d�dej�Z Gdd�dej�Z!Gdd�d�Z"Gdd�d�Z#Gdd�d�Z$Gdd�de"e$ej�Z%Gdd�de#e$ej�Z&Gdd�dej�Z'e�(e
dkd�Gdd�d��Z)Gd d!�d!e)ej�Z*Gd"d#�d#e)ej�Z+e,d$k�r�e�-�dS)%�)�supportN�
SIZEOF_INT���ili@Bi�iʚ;c@seZdZdZdZdZdZdS)�_PyTimerr��N)�__name__�
__module__�__qualname__�ROUND_FLOOR�
ROUND_CEILING�ROUND_HALF_EVEN�ROUND_UP�rr�*/usr/local/lib/python3.7/test/test_time.pyrsrc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Ze�	e
ed�d�d
d��Ze�	e
ed�d�e�	e
ed�d�dd���Z
e�	e
ed�d�e�	e
ed�d�dd���Ze�	e
ed�d�dd��Ze�	e
ed�d�dd��Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Ze�	e
ed9�d:�d;d<��Zd=d>�Zd?d@�Z dAdB�Z!dCdD�Z"dEdF�Z#e�	e$�%�dGdHkdI�dJdK��Z&dLdM�Z'dNdO�Z(dPdQ�Z)dRdS�Z*e�	e
ed�dT�dUdV��Z+dWdX�Z,dYdZ�Z-d[S)\�TimeTestCasecCst��|_dS)N)�time�t)�selfrrr�setUp4szTimeTestCase.setUpcCstjtjtjtjdS)N)r�altzone�daylight�timezone�tzname)rrrr�test_data_attributes7sz!TimeTestCase.test_data_attributescCs.t��t�d�}|�|j�|�|j�dS)Nr)r�get_clock_info�assertFalse�	monotonic�
assertTrue�
adjustable)r�inforrr�	test_time=s
zTimeTestCase.test_timecs��fdd�}|t��t���|t��t���|t��t���|t��t���ttd�rp|t�	�t�
��ttd�r�|t�tj�t�
tj��dS)Ncs2��|t�t|d�}��||d||f�dS)Nge��Al@�F)�assertIsInstance�int�
assertLess)Zsec�nsZsec_ns)rrr�check_nsDsz0TimeTestCase.test_time_ns_type.<locals>.check_ns�thread_time�
clock_gettime)rZtime_nsrZmonotonic_ns�perf_counterZperf_counter_ns�process_timeZprocess_time_ns�hasattrr)Zthread_time_nsr*�CLOCK_REALTIMEZclock_gettime_ns)rr(r)rr�test_time_ns_typeCs






zTimeTestCase.test_time_ns_typec	CsZ|�t��t��WdQRX|�t��t�d�}WdQRX|�|j�|�|j�dS)N�clock)	�assertWarns�DeprecationWarningrr0rr rrr!)rr"rrr�
test_clock\szTimeTestCase.test_clockr*zneed time.clock_gettime()cCst�tj�}|�|t�dS)N)rr*r.r$�float)rrrrr�test_clock_realtimeesz TimeTestCase.test_clock_realtime�CLOCK_MONOTONICzneed time.CLOCK_MONOTONICcCs(t�tj�}t�tj�}|�||�dS)N)rr*r6�assertLessEqual)r�a�brrr�test_clock_monotonicksz!TimeTestCase.test_clock_monotonic�pthread_getcpuclockidz!need time.pthread_getcpuclockid()cCsRt�t���}|�t|�tk�|�|tj�t�	|�}t�	|�}|�
||�dS)N)rr;�	threading�	get_identr �typer%�assertNotEqualZCLOCK_THREAD_CPUTIME_IDr*r7)rZclk_id�t1�t2rrr�test_pthread_getcpuclockidts

z'TimeTestCase.test_pthread_getcpuclockid�clock_getreszneed time.clock_getres()cCs(t�tj�}|�|d�|�|d�dS)Ngg�?)rrCr.�
assertGreaterr7)rZresrrr�test_clock_getres�szTimeTestCase.test_clock_getres�
clock_settimezneed time.clock_settime()cCsVt�tj�}yt�tj|�Wntk
r2YnXttd�rR|�ttjtjd�dS)Nr6r)	rr*r.rF�PermissionErrorr-�assertRaises�OSErrorr6)rrrrr�test_clock_settime�s
zTimeTestCase.test_clock_settimecCsJ|�t�|j�t�t�|j���|�tt�t�|j���t|j��dS)N)�assertEqualr�ctimer�asctime�	localtimer%�mktime)rrrr�test_conversions�szTimeTestCase.test_conversionscCs.|�ttjd�|�ttjd�t�d�dS)N������g333333�?)rH�
ValueErrorr�sleep)rrrr�
test_sleep�szTimeTestCase.test_sleepc	Cs~t�|j�}xHdD]@}d|}yt�||�Wqtk
rP|�d|�YqXqW|�ttjd|�|�ttjd|�dS)N)r8�Ar9�B�c�d�H�I�j�m�M�p�S�U�w�W�x�X�y�Y�Z�%z %z conversion specifier: %r failed.s%Sz%S)r�gmtimer�strftimerS�failrH�	TypeError)r�tt�	directive�formatrrr�
test_strftime�s
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|d�dS)N)	ilrrrrrrrrR)	il�rrrrrrrR)	ilrRrrrrrrrR)	il�
rrrrrrrR)	ilrrrrrrrrR)	ilr�rrrrrrR)	ilrrRrrrrrrR)	ilr� rrrrrrR)	ilrr�rrrrrR)	ilrrrRrrrrrR)	ilrr�rrrrrR)	ilrrr�;rrrrR)	ilrrrrRrrrrR)	ilrrr�<rrrrR)	ilrrrrrRrrrR)	ilrrrrryrrrR)	ilrrrr�=rrrR)	ilrrrr�>rrrR)	ilrrrrrrRrrR)	ilrrrrr�rrR)	ilrrrrrrQrrR)	ilrrrrrrrrR)	ilrrrrrrinrR)	ilrrrrrrrRrR)	ilrrrrrriorR)rHrSrK)r�funcrrr�_bounds_checking�sL

zTimeTestCase._bounds_checkingcCs|�dd��dS)NcSst�d|�S)N�)rrk)�tuprrr�<lambda>��z;TimeTestCase.test_strftime_bounding_check.<locals>.<lambda>)r~)rrrr�test_strftime_bounding_check�sz)TimeTestCase.test_strftime_bounding_checkcCs`xZdD]R}xLtdd�D]>}x8dD]0}yt�|||�Wq tk
rNYq Xq WqWqWdS)N)rrVz%Az%AAr�)rizA%zAA%z%A%zA%A%z%#)�rangerrkrS)rrdrf�zrrr�test_strftime_format_check�s

z'TimeTestCase.test_strftime_format_checkc	Cs4d}t���t�dd�}WdQRX|�||�dS)Nz2000 01 01 00 00 00 1 001z%Y %m %d %H %M %S %w %j)	i�rrrrrrrr)rZcheck_warningsrrkrK)r�expected�resultrrr�test_default_values_for_zero�s
z)TimeTestCase.test_default_values_for_zeroc	Csjt�|j�}xXdD]P}d|}t�||�}yt�||�Wqtk
r`|�d||f�YqXqWdS)N)r8rVr9rWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhririz/conversion specifier %r failed with '%s' input.)rrjrrk�strptimerSrl)rrnrorpZstrf_outputrrr�
test_strptimes
zTimeTestCase.test_strptimecCs(|�ttjdd�|�ttjdd�dS)Ns2009z%YZ2009s%Y)rHrmrr�)rrrr�test_strptime_bytessz TimeTestCase.test_strptime_bytesc	Csh|�t��}t�dd�WdQRX|�|jjd�|�t��}t�dd�WdQRX|�|jjd�dS)Nrz%DTZ19z%Y %)rHrSrr��assertIsZ	exception�__suppress_context__)r�errr�test_strptime_exception_contextsz,TimeTestCase.test_strptime_exception_contextcCs�t�t�|j��xFttfD]:}t�|ddfd�}|�|tt|��d�t|��qW|�	t
tjtdfd�|�	t
tjtdfd�|�	ttjd�|�	ttjd�|�	ttjd�dS)Nr|r)rrrrrr)rrrrrrrrrr)
rrrrrrrrrr)rrMrjr�TIME_MAXYEAR�TIME_MINYEARrK�len�strrH�
OverflowErrorrm)rZbigyearZascrrr�test_asctimes&

zTimeTestCase.test_asctimecCs|�tj�dS)N)r~rrM)rrrr�test_asctime_bounding_check.sz(TimeTestCase.test_asctime_bounding_checkc
Cs�t�d�}|�t�|�d�t�d�}|�t�|�d�x\dD]T}yt�|ddfd�}Wnttfk
rrYq>X|�t�|�d	d�t|��q>WdS)
N)	i��	r�rr	�4rrrRzSun Sep 16 01:03:52 1973)	i�rrrrrrrrRzSat Jan  1 00:00:00 2000)i�����di�i�ii'r�
)rrrrrr�)rrOrKrLrSr�r�)rrZyearZtestvalrrr�
test_ctime1s


zTimeTestCase.test_ctime�tzsetz"time module has no attribute tzsetc	Csddlm}d}d}d}d}|�dd�}�z�||d<t��||d<t��|�t�|�t�|��|�tjd�|�tj	d�|�t�|�j
d�||d<t��|�t�|�t�|��|�tjd�|�t
tj�d	�|�tjd
�|�tj	d�|�tjd�|�t�|�j
d�|�t
tj�d	�||d<t��|�t�|�t�|��|�tjdd
tjd�|�tjd
dkttjd
��|�t
tj�d	�|�tjd
�|�tj	d�|�tjd�|�t�|�j
d
�Wd|dk	�r�||d<nd|k�r|d=t��XdS)Nr)�environg�z�AzEST+05EDT,M4.1.0,M10.5.0zAEST-10AEDT-11,M10.5.0,M3.5.0zUTC+0ZTZ)ZEST�EDTrriPFi@8ZAESTEST)ZAEDTr�i`s��iPe��)�osr��getrr�rKrjrNrr�tm_isdstr?rr�rZassertInr r�)rr�Zxmas2002ZeasternZvictoriaZutcZorg_TZrrr�
test_tzset@sR 


zTimeTestCase.test_tzsetcCs:x4tjtjtjfD] }xdD]}|�t||�qWqWdS)N)gZb���t�gZb���ti)rrLrjrNrHr�)rr}Zunreasonablerrr�test_insane_timestamps�s
z#TimeTestCase.test_insane_timestampscCst��t�d�dS)N)rrL)rrrr�test_ctime_without_arg�sz#TimeTestCase.test_ctime_without_argcCs:t��}t�d�}t�|�}t�|�}|j||dd�dS)Ng�������?)�delta)rrjrO�assertAlmostEqual)rZgt0Zgt1�t0r@rrr�test_gmtime_without_arg�s



z$TimeTestCase.test_gmtime_without_argcCs:t��}t�d�}t�|�}t�|�}|j||dd�dS)Ng�������?)r�)rrNrOr�)rZlt0Zlt1r�r@rrr�test_localtime_without_arg�s



z'TimeTestCase.test_localtime_without_argc
Csbx\dD]T}tj�d�r |dkr qyt�|�}Wnttfk
rFYqX|�t�|�|�qWdS)N)rQrRrrZaixrR)	�sys�platform�
startswithrrNr�rIrKrO)rrrnrrr�test_mktime�s
zTimeTestCase.test_mktimerZglibcz0disabled because of a bug in glibc. Issue #13309cCs`t�|j�}t�d|�}|�|d�yt�d�Wntk
rFYnX|�t�d|�|�dS)Nz%ZZLMT)	rRrrrrrrRrRrR)rrjrrkr?rOr�rK)rrnrrrr�test_mktime_error�szTimeTestCase.test_mktime_errorcCs�dd�td�D�}|d}x*|dd�D]}|�||d|�|}q(Wt��}t�d�t��}||}|�||�|�d|k�t�d	�}|�|j�|�|j	�dS)
NcSsg|]}t���qSr)rr)�.0�nrrr�
<listcomp>�sz/TimeTestCase.test_monotonic.<locals>.<listcomp>r�rrztimes=%sg�?g�������?r)
r��assertGreaterEqualrrrTrDr rrr!)r�timesr@rAZdtr"rrr�test_monotonic�s

zTimeTestCase.test_monotoniccCst��dS)N)rr+)rrrr�test_perf_counter�szTimeTestCase.test_perf_countercCsPt��}t�d�t��}|�||d�t�d�}|�|j�|�|j�dS)Ng�������?g{�G�z�?r,)	rr,rTr&rr rrr!)r�start�stopr"rrr�test_process_time�s

zTimeTestCase.test_process_timecCs�ttd�s4tj�d�r*|�dtjf�n
|�d�t��}t�d�t��}|�	||d�t�
d�}|�|j�|�
|j�dS)Nr))Zlinux�winz,time.thread_time() should be available on %rzneed time.thread_timeg�������?g{�G�z�?)r-rr�r�r�rl�skipTestr)rTr&rr rrr!)rr�r�r"rrr�test_thread_time�s



zTimeTestCase.test_thread_timezneed time.clock_settimec
Cs~t��}t�tj�}yt�tj|d�Wn,tk
rV}z|�|�Wdd}~XYnXt��}t�tj|�|�||�dS)Ni)rrr*r.rFrGr�r�)rr@Zrealtime�errrArrr�test_monotonic_settimesz#TimeTestCase.test_monotonic_settimec	Cs�d}xRdD]J}yt�|�Wq
tk
r:|�d�Yq
tk
rR|}PYq
Xq
W|dkrj|�d�|�ttj|�|�ttj|�|�ttjtd��|�ttjtd��dS)N)rRi@llzneed 64-bit time_tz&unable to find an invalid time_t value�nan)	rrNr�r�rIrHrLrSr4)rZinvalid_time_tZtime_trrr�test_localtime_failures

z#TimeTestCase.test_localtime_failurec
Cs�dddddg}x�|D]�}|dkrB|�t��t�d�}WdQRXn
t�|�}|�|jt�|�|jd�|�|jt	�|�|j
t�|�|j
d�|�
|j
d�|�|jt	�qW|�ttjd	�dS)
Nr0rr+r,rrgg�?Zxxx)r1r2rrr$�implementationr�r?r�boolZ
resolutionr4rDr7r!rHrS)rZclocks�namer"rrr�test_get_clock_info*s

z TimeTestCase.test_get_clock_infoN).r
rrrrr#r/r3�unittest�
skipUnlessr-rr5r:rBrErJrPrUrqr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Zlibc_verr�r�r�r�r�r�r�r�rrrrr2sb		9


J	
rc@s$eZdZdd�Zdd�Zdd�ZdS)�
TestLocalecCst�tj�|_dS)N)�locale�	setlocale�LC_ALL�oldloc)rrrrrBszTestLocale.setUpcCst�tj|j�dS)N)r�r�r�r�)rrrr�tearDownEszTestLocale.tearDowncCsDyt�tjd�}Wn tjk
r2|�d�YnXt�dd�dS)N�fr_FRz$could not set locale.LC_ALL to fr_FRz%B)	i�rrrrrrrr)r�r�r��Errorr�rrk)rZtmprrr�
test_bug_3061Hs
zTestLocale.test_bug_3061N)r
rrrr�r�rrrrr�Asr�c@s eZdZdZdd�Zdd�ZdS)�_TestAsctimeYearz%dcCst�|fd���dS)N)rrrrrrrrrR)rrM�split)rrfrrr�yearstrTsz_TestAsctimeYear.yearstrcCs(|�|�d�d�|�|�d�d�dS)Ni90�12345i�[�	123456789)rKr�)rrrr�test_large_yearWsz _TestAsctimeYear.test_large_yearN)r
rr�_formatr�r�rrrrr�Qsr�csleZdZe�dd�dkrdZndZdd�Zdd	�Zd
d�Zed��fd
d��Z	ed��fdd��Z
[�ZS)�_TestStrftimeYearz%Y)	rrrrrrrrrZ0001z%04dz%dcCst�d|fd�S)Nz%Y)rrrrrrrr)rrk)rrfrrrr�hsz_TestStrftimeYear.yearstrcCs0|jdkr|�d�ndd�}|jd|d�dS)Nz%04dcSst�d|fd�S)Nz%4Y)rrrrrrrr)rrk)rfrrr�year4dpsz-_TestStrftimeYear.test_4dyear.<locals>.year4d)r})r��	test_year)rr�rrr�test_4dyearks
z_TestStrftimeYear.test_4dyearcCsDd}yt�d|fd�Wntk
r2d}YnXd}t�||�S)Nz5strftime() is limited to [1; 9999] with Visual Studioz%Y)rrrrrrrrFT)rrkrSr�r�)rf�msgZcondrrr�skip_if_not_supportedts
z'_TestStrftimeYear.skip_if_not_supportedi'cs
t���S)N)�superr�)r)�	__class__rrr�sz!_TestStrftimeYear.test_large_yearrcs
t���S)N)r��
test_negative)r)r�rrr��sz_TestStrftimeYear.test_negative)r
rrrrkr�r�r�r�r�r��
__classcell__rr)r�rr�\s	r�c@s*eZdZdZd	dd�Zdd�Zdd�ZdS)
�_Test4dYearz%dNcCs�|p|j}|p|j}|�|d�|d�|�|d�|d�|�|d�|d�|�|d�|d�|�|d�|d�|�|d�|d�dS)Nr�D�E�ci�i')r�r�rK)rZfmtr}rrrr��s

z_Test4dYear.test_yearcCsd|�|�d��d�d�|�|�d��d�d�|�|�t��d�tt��|�t|jtd�dS)Ni90�+r�i�[r�r)rKr��lstripr�r�rHr�)rrrrr��sz_Test4dYear.test_large_yearc	Cs�|�|�d�|jd�|�|�d�d�|�|�d�d�|�|�d�td��|�|�d�td��|�|�t�tt��|�t|jtd�|�t��|�td�WdQRXdS)	NrRi.���z-1234i���z-123456i�2��i.�i�r)rKr�r�r�r�rHr�r�)rrrrr��sz_Test4dYear.test_negative)NN)r
rrr�r�r�r�rrrrr��s

r�c@seZdZdS)�TestAsctime4dyearN)r
rrrrrrr��sr�c@seZdZdS)�TestStrftime4dyearN)r
rrrrrrr��sr�c@sZeZdZe�ejdkd�dd��Ze�ejdkd�dd��Ze�ejdkd�dd��Z	d	S)
�
TestPytime�zneeds tm_zone supportcCs0t��}|�t|d��|�t|d��|jdkrF|�ttd��n|�|jtjtjg|j�|j	dkr�|�ttd��n|�|j	tj
|j�t�|�}t�|dd��}|�||�t�|�}t�|�}|�||�|�|j|j�|�|j	|j	�|�||�|�|j|j�|�|j	|j	�dS)N�	tm_gmtoff�tm_zonerrr�)rrNr r-r�rKrrr�r�rrO)r�ltrZt9Znew_ltZnew_lt9rrr�test_localtime_timezone�s(




z"TestPytime.test_localtime_timezonecCs8t�dd�}|�|jd�t�dd�}|�|jd�dS)NZUTCz%Zz+0500z%ziPF)rr�rKr�r�)rrrrr�test_strptime_timezone�sz!TestPytime.test_strptime_timezonecCs6ddl}d}|�|�}|�|jd�|�|jd�dS)NrsLctime
struct_time
p0
((I2007
I8
I11
I1
I24
I49
I5
I223
I1
tp1
(dp2
tp3
Rp4
.)�pickle�loadsr�r�r�)rr��str�rrr�test_short_times�s

zTestPytime.test_short_timesN)
r
rrr�r�rZ_STRUCT_TM_ITEMSr�r�r�rrrrr��s#r�zneed the _testcapi modulec@sNeZdZdZdd�Zdd�Zdd�Zddd	�Zddd�Zdd
d�Z	dd�Z
dS)�CPyTimeTestCaseNcCs6ddlm}|dd}d||_d|d|_dS)Nr)�
SIZEOF_TIME_Trrr)�	_testcapir��
time_t_min�
time_t_max)rr��bitsrrrr�szCPyTimeTestCase.setUpcCs|j|ko|jkSS)N)r�r�)r�secondsrrr�
time_t_filter�szCPyTimeTestCase.time_t_filterc

Csdtttg}|r|�d�d}dg}x2|D]*}x$|D]}||}|�||f�q4Wq*WxDdD]<}d|t}|�|d||d|d||df�q^Wx"tjtjfD]}	|�|	t�q�W|r�x&dD]}d|}|�||f�q�Wd	tt}|�||f�|S)
Nrg����MbP?)rr���{i�i�r�r�i�i'i��i?Bi�i�i�i�i�i�i�	i�
i�r)	rr�r���rvrw��!r)r	r�r�rg@l)�US_TO_NS�MS_TO_NS�	SEC_TO_NS�append�extendr��INT_MIN�INT_MAX)
r�	use_floatZunits�values�
ns_timestampsZunit�valuer'Zpow2r�rrr�_rounding_values�s.





z CPyTimeTestCase._rounding_valuesc
s*���fdd�}|���}||�}x�tD]�\}	}
t���z}|
|_xl|D]d}||
d�}
y|||	�}||�}Wn0tk
r�}z|�d|
�Wdd}~XYnX|�|||
�qFWWdQRXq(W|jt	}||f}||�}xLtD]D\}	}x:|D]2}||	d�}
|j
t|
d��|||	�WdQRXq�Wq�WdS)NcsX�r$tt����fdd�|D�}nt���fdd�|D�}�rLt�|�}tt|��S)Ncsg|]}|��qSrr)r�r')�
unit_to_nsrrr�1szKCPyTimeTestCase._check_rounding.<locals>.convert_values.<locals>.<listcomp>csg|]}|��qSrr)r�r')rrrr�4s)rr4�filter�sorted�set)rr
)�unit_to_secr�value_filter)rr�convert_values.s
z7CPyTimeTestCase._check_rounding.<locals>.convert_values)r�roundingz!Error on timestamp conversion: %s)r�)r�ROUNDING_MODES�decimalZlocalcontextr�	ExceptionrlrK�OVERFLOW_SECONDSrrHr�)r�pytime_converter�
expected_funcrrrrrZvalid_values�time_rndZdecimal_rnd�contextrZ
debug_infor�r��excr'Zoverflow_values�_r)rrrr�_check_rounding+s0




 



zCPyTimeTestCase._check_roundingrcCs|�||d||�dS)NF)r#)rrrrrrrr�check_int_roundingXsz"CPyTimeTestCase.check_int_roundingcCs|�||d||�dS)NT)r#)rrrrrrrr�check_float_rounding]sz$CPyTimeTestCase.check_float_roundingcCst�|�}|�d�}t|�S)Nr)r�DecimalZquantizer%)rrdrYrrr�
decimal_roundbs

zCPyTimeTestCase.decimal_round)N)rN)rN)r
rrrrr�rr#r$r%r'rrrrr��s4
-

r�c@sleZdZe�de�Zdd�Zdd�Zdd�Z	dd	�Z
d
d�Ze�
eed�d
�dd��Zdd�Zdd�ZdS)�TestCPyTimelc
shddlm�dd�}|j�fdd�dd�|d�x2tD]*\}}|�t���td	��WdQRXq6WdS)
Nr)�PyTime_FromSecondscSstj|kotjkSS)N)r�r
r)�secsrrr�c_int_filterssz2TestCPyTime.test_FromSeconds.<locals>.c_int_filtercs�|�S)Nr)r*�rnd)r)rrr�vr�z.TestCPyTime.test_FromSeconds.<locals>.<lambda>cSs|tS)N)r)r*rrrr�wr�)rr�)r�r)r$rrHrmr4)rr+rr"r)r)r�test_FromSecondsoszTestCPyTime.test_FromSecondsc
sjddlm}��|dd����|�fdd��x4tD],\}}��t��|td�|�WdQRXq6WdS)Nr)�PyTime_FromSecondsObjectcSs|tS)N)r)r*rrrr��r�z4TestCPyTime.test_FromSecondsObject.<locals>.<lambda>cs��|t�S)N)r'r)r')rrrr��r�r�)r�r.r$r%rrHrSr4)rr.rr"r)rr�test_FromSecondsObjects
z"TestCPyTime.test_FromSecondsObjectc
sbddlm�dd�}|��fdd�|t�x2tD]*\}}|�t���td��WdQRXq0WdS)Nr)�PyTime_AsSecondsDoublecSs,t|�tdkrt|t�St|�tSdS)Nr)�absrr4)r'rrr�float_converter�sz9TestCPyTime.test_AsSecondsDouble.<locals>.float_convertercs�|�S)Nr)r'r,)r0rrr��r�z2TestCPyTime.test_AsSecondsDouble.<locals>.<lambda>r�)r�r0r$�	NS_TO_SECrrHrmr4)rr2rr"r)r0r�test_AsSecondsDouble�sz TestCPyTime.test_AsSecondsDoublecst�|����fdd�}|S)Ncst�|��}��|�S)N)rr&r')rrY)�denomrrr�	converter�sz7TestCPyTime.create_decimal_converter.<locals>.converter)rr&)r�denominatorr6r)r5rr�create_decimal_converter�s
z$TestCPyTime.create_decimal_convertercshddlm}|�t���fdd�}tjdkrLddlm�m���fdd�}n|j}|j	||t
|d	�dS)
Nr)�PyTime_AsTimevalcs�|�}t|t�S)N)�divmod�	SEC_TO_US)r'�us)�us_converterrr�timeval_converter�sz5TestCPyTime.test_AsTimeval.<locals>.timeval_converter�win32)�LONG_MIN�LONG_MAXcs�|ko�kSS)Nr)r*)rAr@rr�seconds_filter�sz2TestCPyTime.test_AsTimeval.<locals>.seconds_filter)r)r�r9r8rr�r�r@rAr�r$r3)rr9r>rBr)rAr@r=r�test_AsTimeval�s

zTestCPyTime.test_AsTimeval�PyTime_AsTimespecz need _testcapi.PyTime_AsTimespeccs4ddlm�dd�}|j�fdd�|t|jd�dS)Nr)rDcSs
t|t�S)N)r:r)r'rrr�timespec_converter�sz7TestCPyTime.test_AsTimespec.<locals>.timespec_convertercs�|�S)Nr)r'r,)rDrrr��r�z-TestCPyTime.test_AsTimespec.<locals>.<lambda>)r)r�rDr$r3r�)rrEr)rDr�test_AsTimespec�szTestCPyTime.test_AsTimespeccCs$ddlm}|�||�t�t�dS)Nr)�PyTime_AsMilliseconds)r�rGr$r8rr3)rrGrrr�test_AsMilliseconds�szTestCPyTime.test_AsMillisecondscCs$ddlm}|�||�t�t�dS)Nr)�PyTime_AsMicroseconds)r�rIr$r8rr3)rrIrrr�test_AsMicroseconds�szTestCPyTime.test_AsMicrosecondsN)r
rr�mathZceilrrr-r/r4r8rCr�r�r-r�rFrHrJrrrrr(hs	r(c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�
TestOldPyTimelcCs:ddlm}|j|dd�|jd�|j||j|jd�dS)Nr)�pytime_object_to_time_tcSs|S)Nr)r*rrrr��r�z5TestOldPyTime.test_object_to_time_t.<locals>.<lambda>)r)r�rMr$r�r%r')rrMrrr�test_object_to_time_t�s
z#TestOldPyTime.test_object_to_time_tcs��fdd�}|S)Ncsbt�|�\}}t|�}|�9}��|�}|dkrB|�7}|d8}n|�krZ|�8}|d7}||fS)Nrr)rKZmodfr%r')r*Z	floatpartZintpart)�sec_to_unitrrrr6�s

z1TestOldPyTime.create_converter.<locals>.converterr)rrOr6r)rOrr�create_converter�szTestOldPyTime.create_converterc
Cstddlm}|j|dd�|jd�|j||�t�|jd�x4tD],\}}|�t	��|t
d�|�WdQRXq@WdS)Nr)�pytime_object_to_timevalcSs|dfS)Nrr)r*rrrr�r�z6TestOldPyTime.test_object_to_timeval.<locals>.<lambda>)rr�)r�rQr$r�r%rPr;rrHrSr4)rrQrr"rrr�test_object_to_timeval�s

z$TestOldPyTime.test_object_to_timevalc
Cstddlm}|j|dd�|jd�|j||�t�|jd�x4tD],\}}|�t	��|t
d�|�WdQRXq@WdS)Nr)�pytime_object_to_timespeccSs|dfS)Nrr)r*rrrr�r�z7TestOldPyTime.test_object_to_timespec.<locals>.<lambda>)rr�)r�rSr$r�r%rPrrrHrSr4)rrSrr"rrr�test_object_to_timespecs

z%TestOldPyTime.test_object_to_timespecN)r
rrrrNrPrRrTrrrrrL�s
rL�__main__).Ztestrr�enumr�rKr�r�Z	sysconfigrr<r��warningsr��ImportErrorZget_config_varrr�r�r;rrrr3�IntEnumrr
rrrrZTestCaserr�r�r�r�r�r�r�ZskipIfr�r(rLr
�mainrrrr�<module>s\



. 7uC