Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_time.cpython-38.pyc
U

>��g���@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZzddlZWne
k
r�dZYnXddlmZe�d�p�dZdded>dZeddZd	Zd
Zd	ZdZdZGdd
�d
ej�ZejejfejejfejejfejejffZGdd�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)�skip_if_buggy_ucrt_strfptime�
SIZEOF_INT����li@B��iʚ;c@seZdZdZdZdZdZdS)�_PyTimerr��N)�__name__�
__module__�__qualname__�ROUND_FLOOR�
ROUND_CEILING�ROUND_HALF_EVEN�ROUND_UP�rr�-/opt/cppython/lib/python3.8/test/test_time.pyr
sr
c@s�eZdZdd�Zdd�Zdd�Zdd�Ze�e	e
d	�d
�dd��Ze�e	e
d	�d
�e�e	e
d
�d�dd���Ze�e	e
d�d�e�e	e
d	�d
�dd���Z
e�e	e
d�d�dd��Ze�e	e
d�d�dd��Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zed+d,��Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Ze�e	e
d7�d8�d9d:��Zd;d<�Zd=d>�Z d?d@�Z!dAdB�Z"dCdD�Z#e�e$�%�dEdFkdG�dHdI��Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*e�e	e
d�dR�dSdT��Z+dUdV�Z,dWdX�Z-dYS)Z�TimeTestCasecCst��|_dS�N)�time�t��selfrrr�setUp4szTimeTestCase.setUpcCstjtjtjtjdSr)r�altzone�daylight�timezone�tznamerrrr�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_nsrrr�check_nsDsz0TimeTestCase.test_time_ns_type.<locals>.check_ns�thread_time�
clock_gettime)r�time_nsr$�monotonic_ns�perf_counter�perf_counter_ns�process_time�process_time_ns�hasattrr.�thread_time_nsr/�CLOCK_REALTIME�clock_gettime_ns)rr-rrr�test_time_ns_typeCs*����
�

�zTimeTestCase.test_time_ns_typer/zneed time.clock_gettime()cCst�tj�}|�|t�dSr)rr/r8r)�float�rrrrr�test_clock_realtime\sz TimeTestCase.test_clock_realtime�CLOCK_MONOTONICzneed time.CLOCK_MONOTONICcCs(t�tj�}t�tj�}|�||�dSr)rr/r>�assertLessEqual)r�a�brrr�test_clock_monotonicbsz!TimeTestCase.test_clock_monotonic�pthread_getcpuclockidz!need time.pthread_getcpuclockid()cCs�t�t���}|�t|�tk�t��dks<|�	|tj
�n,tj�
�dkrZ|�	|tj
�n|�|tj
�t�|�}t�|�}|�||�dS)NZAIX� )rrC�	threading�	get_identr%�typer*�platform�system�assertNotEqual�CLOCK_THREAD_CPUTIME_ID�sys�maxsize�
bit_length�assertEqualr/r?)rZclk_id�t1�t2rrr�test_pthread_getcpuclockidks

z'TimeTestCase.test_pthread_getcpuclockid�clock_getreszneed time.clock_getres()cCs(t�tj�}|�|d�|�|d�dS)N���?)rrSr8�
assertGreaterr?)r�resrrr�test_clock_getres}szTimeTestCase.test_clock_getres�
clock_settimezneed time.clock_settime()cCsVt�tj�}zt�tj|�Wntk
r2YnXttd�rR|�ttjtjd�dS)Nr>r)	rr/r8rY�PermissionErrorr6�assertRaises�OSErrorr>r<rrr�test_clock_settime�s
�zTimeTestCase.test_clock_settimecCsJ|�t�|j�t�t�|j���|�tt�t�|j���t|j��dSr)rOr�ctimer�asctime�	localtimer*�mktimerrrr�test_conversions�s��zTimeTestCase.test_conversionscCs.|�ttjd�|�ttjd�t�d�dS)N������g333333�?)r[�
ValueErrorr�sleeprrrr�
test_sleep�szTimeTestCase.test_sleepc	Cszt�|j�}dD]@}d|}zt�||�Wqtk
rN|�d|�YqXq|�ttjd|�|�ttjd|�dS)N�r@�ArA�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�strftimere�failr[�	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)	rrrrrrrrrd)	r�rrrrrrrd)	rrdrrrrrrrd)	r�
rrrrrrrd)	rrrrrrrrrd)	rr�rrrrrrd)	rrrdrrrrrrd)	rrrDrrrrrrd)	rrr�rrrrrd)	rrrrdrrrrrd)	rrr�rrrrrd)	rrrr�;rrrrd)	rrrrrdrrrrd)	rrrr�<rrrrd)	rrrrrrdrrrd)	rrrrrr�rrrd)	rrrrr�=rrrd)	rrrrr�>rrrd)	rrrrrrrdrrd)	rrrrrr�rrd)	rrrrrrrcrrd)	rrrrrrrrrd)	rrrrrrrinrd)	rrrrrrrrdrd)	rrrrrrriord)r[rerO)r�funcrrr�_bounds_checking�sh����������
����zTimeTestCase._bounds_checkingcCs|�dd��dS)NcSst�d|�S)N��rr~)�tuprrr�<lambda>��z;TimeTestCase.test_strftime_bounding_check.<locals>.<lambda>)r�rrrr�test_strftime_bounding_check�sz)TimeTestCase.test_strftime_bounding_checkcCsTdD]J}tdd�D]:}dD]0}zt�|||�Wqtk
rHYqXqqqdS)N)r�riz%Az%AAr�)r|zA%zAA%z%A%zA%A%z%#)�rangerr~re)rrwry�zrrr�test_strftime_format_check�sz'TimeTestCase.test_strftime_format_checkc	Cs4d}t���t�dd�}W5QRX|�||�dS)Nz2000 01 01 00 00 00 1 001z%Y %m %d %H %M %S %w %j)	��rrrrrrrr)rZcheck_warningsrr~rO)r�expected�resultrrr�test_default_values_for_zero�s
z)TimeTestCase.test_default_values_for_zeroc	Csft�|j�}dD]P}d|}t�||�}zt�||�Wqtk
r^|�d||f�YqXqdS)Nrhr|z/conversion specifier %r failed with '%s' input.)rr}rr~�strptimerer)rr�r�r�Zstrf_outputrrr�
test_strptime�s�zTimeTestCase.test_strptimecCs(|�ttjdd�|�ttjdd�dS)Ns2009�%YZ2009s%Y)r[r�rr�rrrr�test_strptime_bytessz TimeTestCase.test_strptime_bytesc	Csh|�t��}t�dd�W5QRX|�|jjd�|�t��}t�dd�W5QRX|�|jjd�dS)Nr�z%DTZ19z%Y %)r[rerr��assertIs�	exception�__suppress_context__)r�errr�test_strptime_exception_contextsz,TimeTestCase.test_strptime_exception_contextcCs�t�t�|j��ttfD]:}t�|ddfd�}|�|tt|��d�t|��q|�	t
tjtdfd�|�	t
tjtdfd�|�	ttjd�|�	ttjd�|�	ttjd�dS)Nr�r�rrrrrr�rrrrrrrrrr)
rrrrrrrrrr)rr_r}r�TIME_MAXYEAR�TIME_MINYEARrO�len�strr[�
OverflowErrorr�)rZbigyearZascrrr�test_asctimes$
�
�zTimeTestCase.test_asctimecCs|�tj�dSr)r�rr_rrrr�test_asctime_bounding_check,sz(TimeTestCase.test_asctime_bounding_checkc
Cs�t�d�}|�t�|�d�t�d�}|�t�|�d�dD]T}zt�|ddfd�}Wnttfk
rpYq<X|�t�|�d	d�t|��q<dS)
N)	i��	r�rr�4rrrdzSun Sep 16 01:03:52 1973)	r�rrrrrrrrdzSat Jan  1 00:00:00 2000)i�����dr	r�i�'r�
r��)rrarOr^rer�r�)rrZyearZtestvalrrr�
test_ctime/s

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
�W5|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�EDTrr�PFi@8ZAESTEST)ZAEDTr�i`s��iPe��)�osr��getrr�rOr}r`rr�tm_isdstrJr r�rZassertInr%r�)rr�Zxmas2002ZeasternZvictoriaZutcZorg_TZrrr�
test_tzset>sV� 


zTimeTestCase.test_tzsetcCs2tjtjtjfD]}dD]}|�t||�qqdS)N)gZb���t�gZb���ti)rr^r}r`r[r�)rr�Zunreasonablerrr�test_insane_timestamps�sz#TimeTestCase.test_insane_timestampscCst��t�d�dSr)rr^rrrr�test_ctime_without_arg�sz#TimeTestCase.test_ctime_without_argcCs:t��}t�d�}t�|�}t�|�}|j||dd�dS�Ng�������?)Zdelta)rr}ra�assertAlmostEqual)rZgt0Zgt1�t0rPrrr�test_gmtime_without_arg�s



z$TimeTestCase.test_gmtime_without_argcCs:t��}t�d�}t�|�}t�|�}|j||dd�dSr�)rr`rar�)rZlt0Zlt1r�rPrrr�test_localtime_without_arg�s



z'TimeTestCase.test_localtime_without_argc
CsHdD]>}zt�|�}Wnttfk
r.YqX|�t�|�|�qdS)N)rcrdrr)rr`r�r\rOra)rrr�rrr�test_mktime�szTimeTestCase.test_mktimer�glibcz0disabled because of a bug in glibc. Issue #13309cCs`t�|j�}t�d|�}|�|d�zt�d�Wntk
rFYnX|�t�d|�|�dS)N�%ZZLMT)	rdrrrrrrdrdrd)rr}rr~rJrar�rO)rr�r rrr�test_mktime_error�szTimeTestCase.test_mktime_errorcCs�dd�td�D�}|d}|dd�D]}|�||d|�|}q&t��}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��assertGreaterEqualrr$rfrVr%r"r#r&)r�timesrPrQZdtr'rrr�test_monotonic�s

zTimeTestCase.test_monotoniccCst��dSr)rr2rrrr�test_perf_counter�szTimeTestCase.test_perf_countercCsPt��}t�d�t��}|�||d�t�d�}|�|j�|�|j�dS)N皙�����?�{�G�z�?r4)	rr4rfr+r"r%r$r#r&�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.)�linux�winz,time.thread_time() should be available on %rzneed time.thread_timer�r�)r6rrLrH�
startswithr�skipTestr.rfr+r"r%r$r#r&r�rrr�test_thread_time�s
�


zTimeTestCase.test_thread_timezneed time.clock_settimec
Cs~t��}t�tj�}zt�tj|d�Wn,tk
rV}z|�|�W5d}~XYnXt��}t�tj|�|�||�dS)Ni)rr$r/r8rYrZr�r�)rrPZrealtime�errrQrrr�test_monotonic_settime�sz#TimeTestCase.test_monotonic_settimec	Cs�d}dD]N}zt�|�Wqtk
r8|�d�Yqtk
rT|}YqXYqXq|dkrj|�d�|�ttj|�|�ttj|�|�ttjtd��|�ttjtd��dS)N)rdi@llzneed 64-bit time_tz&unable to find an invalid time_t value�nan)	rr`r�r�r\r[r^rer;)rZinvalid_time_tZtime_trrr�test_localtime_failures
z#TimeTestCase.test_localtime_failurecCs�ddddg}|D]p}t�|�}|�|jt�|�|jd�|�|jt�|�|jt	�|�
|jd�|�|jd�|�|jt�q|�
ttjd�dS)	Nr$r2r4rr�rTrUZxxx)rr"r)�implementationr�rJr$�boolZ
resolutionr;rVr?r&r[re)rZclocks�namer'rrr�test_get_clock_info!s
z TimeTestCase.test_get_clock_infoN).r
rrrr!r(r:�unittest�
skipUnlessr6rr=rBrRrXr]rbrgr�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�rHZlibc_verr�r�r�r�r�r�r�r�rrrrr2s��
�����
�
9



�
I	�


�

rc@s$eZdZdd�Zdd�Zdd�ZdS)�
TestLocalecCst�tj�|_dSr��locale�	setlocale�LC_ALL�oldlocrrrrr5szTestLocale.setUpcCst�tj|j�dSrr�rrrr�tearDown8szTestLocale.tearDowncCsDzt�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�rr~)r�tmprrr�
test_bug_3061;s
zTestLocale.test_bug_3061N)r
rrrr�r�rrrrr�4sr�c@s eZdZdZdd�Zdd�ZdS)�_TestAsctimeYear�%dcCst�|fd���dS)Nr�rd)rr_�split�rryrrr�yearstrGsz_TestAsctimeYear.yearstrcCs(|�|�d�d�|�|�d�d�dS)N�90�12345��[�	123456789)rOr�rrrr�test_large_yearJsz _TestAsctimeYear.test_large_yearN)r
rr�_formatr�r�rrrrr�Dsr�csleZdZe�dd�dkrdZndZdd�Zdd	�Zd
d�Zed��fd
d��Z	ed��fdd��Z
[�ZS)�_TestStrftimeYearr�)	rrrrrrrrrZ0001�%04dr�cCst�d|fd�S)Nr�r�r�r�rrrr�[sz_TestStrftimeYear.yearstrcCs0|jdkr|�d�ndd�}|jd|d�dS)Nr�cSst�d|fd�S)Nz%4Yr�r�)ryrrr�year4dcsz-_TestStrftimeYear.test_4dyear.<locals>.year4d)r�)r��	test_year)rr�rrr�test_4dyear^s
z_TestStrftimeYear.test_4dyearcCsDd}zt�d|fd�Wntk
r2d}YnXd}t�||�S)Nz5strftime() is limited to [1; 9999] with Visual Studior�r�FT)rr~rer�r�)ry�msg�condrrr�skip_if_not_supportedgs
z'_TestStrftimeYear.skip_if_not_supportedr�cs
t���Sr)�superr�r��	__class__rrr�rsz!_TestStrftimeYear.test_large_yearrcs
t���Sr)r�
test_negativerrrrrvsz_TestStrftimeYear.test_negative)r
rrrr~r�r�rrr�r�
__classcell__rrrrr�Os	r�c@s*eZdZdZd	dd�Zdd�Zdd�ZdS)
�_Test4dYearr�NcCs�|p|j}|p|j}|�|d�|d�|�|d�|d�|�|d�|d�|�|d�|d�|�|d�|d�|�|d�|d�dS)Nr�D�E�c���')r�r�rO)r�fmtr�rrrr�s

z_Test4dYear.test_yearcCsd|�|�d��d�d�|�|�d��d�d�|�|�t��d�tt��|�t|jtd�dS)Nr��+r�r�r�r)rOr��lstripr�r�r[r�rrrrr��sz_Test4dYear.test_large_yearc	Cs�|�|�d�|jd�|�|�d�d�|�|�d�d�|�|�d�td��|�|�d�td��|�|�t�tt��|�t|jtd�|�t��|�td�W5QRXdS)	Nrdi.���z-1234i���z-123456i�2��i.�i�r)rOr�r�r�r�r[r�r�rrrrr�sz_Test4dYear.test_negative)NN)r
rrr�rr�rrrrrr
}s

r
c@seZdZdS)�TestAsctime4dyearN�r
rrrrrrr�src@seZdZdS)�TestStrftime4dyearNrrrrrr�src@s^eZdZee�ejdkd�dd���Ze�ejdkd�dd��Z	e�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_zonerr r�)rr`r%r6rrOrrr�rr ra)r�ltrZt9Znew_ltZnew_lt9rrr�test_localtime_timezone�s(




z"TestPytime.test_localtime_timezonecCs8t�dd�}|�|jd�t�dd�}|�|jd�dS)NZUTCr�z+0500z%zr�)rr�rOrrr<rrr�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�rr)rr�strrrr�test_short_times�s

zTestPytime.test_short_timesN)r
rrrr�r�r�_STRUCT_TM_ITEMSrrr rrrrr�s"
rzneed the _testcapi modulec@sReZdZdZdZdd�Zdd�Zdd�Zdd	d
�Zddd
�Z	ddd�Z
dd�ZdS)�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#�bitsrrrr�szCPyTimeTestCase.setUpcCs|j|ko|jkSSr)r%r&)r�secondsrrr�
time_t_filter�szCPyTimeTestCase.time_t_filterc

Cs�dtttg}|r|�d�d}dg}|D]&}|D]}||}|�||f�q0q(dD]<}d|t}|�|d||d|d||df�qTtjtjfD]}	|�|	t�q�|r�dD]}d|}|�||f�q�d	tt}|�||f�|S)
z'Build timestamps used to test rounding.rg����MbP?)rr���{i�i�r�r
rri��i?Bi�i�i�i�i�i�i�	i�
i�r)	rr*r���r�r���!r)rr+r�r-g@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�s8
�
z CPyTimeTestCase._rounding_valuesc
s���fdd�}|���}||�}tD]�\}	}
t���v}|
|_|D]d}||
d�}
z|||	�}||�}Wn0tk
r�}z|�d|
�W5d}~XYnX|�|||
�qBW5QRXq&|jt	}||f}||�}tD]@\}	}|D]2}||	d�}
|j
t|
d��|||	�W5QRXq�q�dS)NcsX�r$tt����fdd�|D�}nt���fdd�|D�}�rLt�|�}tt|��S)Ncsg|]}|��qSrr�r�r,�Z
unit_to_nsrrr�%szKCPyTimeTestCase._check_rounding.<locals>.convert_values.<locals>.<listcomp>csg|]}|��qSrrr=r>rrr�(s)r3r;�filter�sorted�set)r:r9��unit_to_secr8�value_filterr>r�convert_values"s
z7CPyTimeTestCase._check_rounding.<locals>.convert_values)r;�roundingz!Error on timestamp conversion: %s)r)r<�ROUNDING_MODES�decimalZlocalcontextrF�	ExceptionrrO�OVERFLOW_SECONDSr3r[r�)r�pytime_converter�
expected_funcr8rCrDrEr:Zvalid_values�time_rndZdecimal_rnd�contextr;Z
debug_infor�r��excr,Zoverflow_values�_rrBr�_check_roundings2



 �


zCPyTimeTestCase._check_roundingrcCs|�||d||�dS)NF�rQ�rrKrLrCrDrrr�check_int_roundingLs
�z"CPyTimeTestCase.check_int_roundingcCs|�||d||�dS)NTrRrSrrr�check_float_roundingQs
�z$CPyTimeTestCase.check_float_roundingcCst�|�}|�d�}t|�S)Nr)rH�DecimalZquantizer*)rrwrlrrr�
decimal_roundVs

zCPyTimeTestCase.decimal_round)N)rN)rN)r
rr�__doc__rJrr)r<rQrTrUrWrrrrr"�s4�
.�
�
r"c@speZdZdZe�de�Zdd�Zdd�Z	dd�Z
d	d
�Zdd�Ze
�eed
�d�dd��Zdd�Zdd�ZdS)�TestCPyTimez#
    Test the C _PyTime_t API.
    lc
sdddlm�dd�}|j�fdd�dd�|d�tD]*\}}|�t���td	��W5QRXq4dS)
Nr��PyTime_FromSecondscSstj|kotjkSSr)r$r6r7��secsrrr�c_int_filtergsz2TestCPyTime.test_FromSeconds.<locals>.c_int_filtercs�|�Srr)r]�rndrZrrr�jr�z.TestCPyTime.test_FromSeconds.<locals>.<lambda>cSs|tSr�r3r\rrrr�kr��rDr�)r$r[rTrGr[r�r;)rr^rMrPrrZr�test_FromSecondscs�zTestCPyTime.test_FromSecondsc
sfddlm}��|dd����|�fdd��tD],\}}��t��|td�|�W5QRXq4dS)Nr)�PyTime_FromSecondsObjectcSs|tSrr`r\rrrr�xr�z4TestCPyTime.test_FromSecondsObject.<locals>.<lambda>cs��|t�Sr)rWr3�r,rrrr�|r�r�)r$rcrTrUrGr[rer;)rrcrMrPrrr�test_FromSecondsObjectss�
�z"TestCPyTime.test_FromSecondsObjectc
s^ddlm�dd�}|��fdd�|t�tD]*\}}|�t���td��W5QRXq.dS)Nr��PyTime_AsSecondsDoublecSs,t|�tdkrt|t�St|�tSdS�Nr)�absr3r;rdrrr�float_converter�sz9TestCPyTime.test_AsSecondsDouble.<locals>.float_convertercs�|�Srr�r,r_rfrrr��r�z2TestCPyTime.test_AsSecondsDouble.<locals>.<lambda>r�)r$rgrT�	NS_TO_SECrGr[r�r;)rrjrMrPrrfr�test_AsSecondsDouble�s�z TestCPyTime.test_AsSecondsDoublecst�|����fdd�}|S)Ncst�|��}��|�Sr)rHrVrW)r;rl�Zdenomrrr�	converter�sz7TestCPyTime.create_decimal_converter.<locals>.converter)rHrV)r�denominatorrorrnr�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�Sr)�divmod�	SEC_TO_US)r,�us)�us_converterrr�timeval_converter�sz5TestCPyTime.test_AsTimeval.<locals>.timeval_converter�win32)�LONG_MIN�LONG_MAXcs�|ko�kSSrrr\)rzryrr�seconds_filter�sz2TestCPyTime.test_AsTimeval.<locals>.seconds_filterra)r$rrrqr1rLrHryrzr)rTrl)rrrrwr{r)rzryrvr�test_AsTimeval�s

�zTestCPyTime.test_AsTimeval�PyTime_AsTimespecz need _testcapi.PyTime_AsTimespeccs4ddlm�dd�}|j�fdd�|t|jd�dS)Nr�r}cSs
t|t�Sr)rsr3rdrrr�timespec_converter�sz7TestCPyTime.test_AsTimespec.<locals>.timespec_convertercs�|�Srrrkr~rrr��r�z-TestCPyTime.test_AsTimespec.<locals>.<lambda>ra)r$r}rTrlr))rrrr~r�test_AsTimespec�s�zTestCPyTime.test_AsTimespeccCs$ddlm}|�||�t�t�dS)Nr)�PyTime_AsMilliseconds)r$r�rTrqr2rl)rr�rrr�test_AsMilliseconds�s
�zTestCPyTime.test_AsMillisecondscCs$ddlm}|�||�t�t�dS)Nr)�PyTime_AsMicroseconds)r$r�rTrqr1rl)rr�rrr�test_AsMicroseconds�s
�zTestCPyTime.test_AsMicrosecondsN)r
rrrX�math�ceilr3rJrbrermrqr|r�r�r6r$r�r�r�rrrrrY\s	�
rYc@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�
TestOldPyTimezH
    Test the old C _PyTime_t API: _PyTime_ObjectToXXX() functions.
    lcCs:ddlm}|j|dd�|jd�|j||j|jd�dS)Nr)�pytime_object_to_time_tcSs|Srrr\rrrr��r�z5TestOldPyTime.test_object_to_time_t.<locals>.<lambda>ra)r$r�rTr)rUrW)rr�rrr�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)r��modfr*rW)r]Z	floatpartZintpart��sec_to_unitrrrro�s

z1TestOldPyTime.create_converter.<locals>.converterr)rr�rorr�r�create_converter�szTestOldPyTime.create_converterc
Cspddlm}|j|dd�|jd�|j||�t�|jd�tD],\}}|�t	��|t
d�|�W5QRXq>dS)Nr)�pytime_object_to_timevalcSs|dfSrhrr\rrrr��r�z6TestOldPyTime.test_object_to_timeval.<locals>.<lambda>rar�)r$r�rTr)rUr�rtrGr[rer;)rr�rMrPrrr�test_object_to_timeval�s��z$TestOldPyTime.test_object_to_timevalc
Cspddlm}|j|dd�|jd�|j||�t�|jd�tD],\}}|�t	��|t
d�|�W5QRXq>dS)Nr)�pytime_object_to_timespeccSs|dfSrhrr\rrrr�r�z7TestOldPyTime.test_object_to_timespec.<locals>.<lambda>rar�)r$r�rTr)rUr�r3rGr[rer;)rr�rMrPrrr�test_object_to_timespecs��z%TestOldPyTime.test_object_to_timespecN)	r
rrrXrJr�r�r�r�rrrrr��sr��__main__)/�testrrH�enumr�r�rHrLZ	sysconfigrrEr�r$�ImportErrorZtest.supportrZget_config_varrr�r�rtr1r2r3rl�IntEnumr
rrrrrGZTestCaserr�r�r�r
rrrZskipIfr"rYr�r
�mainrrrr�<module>s^




�	. 8uC


F1le Man4ger