Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.144.84.91
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_time.cpython-310.pyc
o

abE��@s*ddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
zddlZWneyEdZYnwddlmZe
�d�pRdZdded>dZedd	Zd
ZdZd
ZdZdZGd
d�dej�ZejejfejejfejejfejejffZ Gdd�de
j!�Z"Gdd�de
j!�Z#Gdd�d�Z$Gdd�d�Z%Gdd�d�Z&Gdd�de$e&e
j!�Z'Gdd�de%e&e
j!�Z(Gdd�de
j!�Z)e
�*edud�Gd d!�d!��Z+Gd"d#�d#e+e
j!�Z,Gd$d%�d%e+e
j!�Z-e
�.e	jd&kd'�Gd(d)�d)e
j!��Z/e0d*k�re
�1�dSdS)+�)�support)�warnings_helperN)�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�7/usr/local/python-3.10/lib/python3.10/test/test_time.pyrs
rc@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�setUp5szTimeTestCase.setUpcCstjtjtjtjdSr)r�altzone�daylight�timezone�tznamerrrr�test_data_attributes8s
z!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�r8|t�	�t�
��ttd�rL|t�tj�t�
tj��dSdS)Ncs2��|t�t|d�}��||d||f�dS)Nge��Al@�F)�assertIsInstance�int�
assertLess)Zsec�nsZsec_nsrrr�check_nsEs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_nsr0�CLOCK_REALTIME�clock_gettime_ns)rr.rrr�test_time_ns_typeDs,����
�

��zTimeTestCase.test_time_ns_typer0zneed time.clock_gettime()cCst�tj�}|�|t�dSr)rr0r9r*�float�rrrrr�test_clock_realtime]sz TimeTestCase.test_clock_realtime�CLOCK_MONOTONICzneed time.CLOCK_MONOTONICcCs(t�tj�}t�tj�}|�||�dSr)rr0r?�assertLessEqual)r�a�brrr�test_clock_monotoniccsz!TimeTestCase.test_clock_monotonic�pthread_getcpuclockidz!need time.pthread_getcpuclockid()cCs�t�t���}|�t|�tu�t��dkr%t	j
��dkr%|�|tj
�nt	j�d�r3|�|tj
�n|�|tj
�t�|�}t�|�}|�||�dS)NZAIX� Zsunos)rrD�	threading�	get_identr&�typer+�platform�system�sys�maxsize�
bit_length�assertEqual�CLOCK_THREAD_CPUTIME_ID�
startswith�assertNotEqualr0r@)rZclk_id�t1�t2rrr�test_pthread_getcpuclockidls

z'TimeTestCase.test_pthread_getcpuclockid�clock_getreszneed time.clock_getres()cCs(t�tj�}|�|d�|�|d�dS)N���?)rrUr9�
assertGreaterr@)r�resrrr�test_clock_getresszTimeTestCase.test_clock_getres�
clock_settimezneed time.clock_settime()cCsXt�tj�}z	t�tj|�Wn	tyYnwttd�r*|�ttjtjd�dSdS)Nr?r)	rr0r9r[�PermissionErrorr7�assertRaises�OSErrorr?r=rrr�test_clock_settime�s�

��zTimeTestCase.test_clock_settimecCsJ|�t�|j�t�t�|j���|�tt�t�|j���t|j��dSr)rNr�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	Csvt�|j�}dD]}d|}zt�||�Wqty&|�d|�Yqw|�ttjd|�|�ttjd|�dS)N�rA�ArB�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�strftimerg�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)	r	rrrrrrrrf)	r	�rrrrrrrf)	r	rfrrrrrrrf)	r	�
rrrrrrrf)	r	rrrrrrrrf)	r	r�rrrrrrf)	r	rrfrrrrrrf)	r	rrErrrrrrf)	r	rr�rrrrrf)	r	rrrfrrrrrf)	r	rr�rrrrrf)	r	rrr�;rrrrf)	r	rrrrfrrrrf)	r	rrr�<rrrrf)	r	rrrrrfrrrf)	r	rrrrr�rrrf)	r	rrrr�=rrrf)	r	rrrr�>rrrf)	r	rrrrrrfrrf)	r	rrrrr�rrf)	r	rrrrrrerrf)	r	rrrrrrrrf)	r	rrrrrrinrf)	r	rrrrrrrfrf)	r	rrrrrriorf)r]rgrN)r�funcrrr�_bounds_checking�sh����������
����zTimeTestCase._bounds_checkingcCs|�dd��dS)NcSst�d|�S)N��rr�)�tuprrr�<lambda>�sz;TimeTestCase.test_strftime_bounding_check.<locals>.<lambda>)r�rrrr�test_strftime_bounding_check��z)TimeTestCase.test_strftime_bounding_checkcCsPdD]#}tdd�D]}dD]}zt�|||�Wq
ty#Yq
wq	qdS)N)r�rkz%Az%AAr�)r~zA%zAA%z%A%zA%A%z%#)�rangerr�rg)rryr{�zrrr�test_strftime_format_check�s����z'TimeTestCase.test_strftime_format_checkcCsHd}t���t�dd�}Wd�n1swY|�||�dS)Nz2000 01 01 00 00 00 1 001z%Y %m %d %H %M %S %w %j)	��rrrrrrrr)rZcheck_warningsrr�rN)r�expected�resultrrr�test_default_values_for_zero�s

�z)TimeTestCase.test_default_values_for_zeroc	Csbt�|j�}dD]&}d|}t�||�}zt�||�Wqty.|�d||f�YqwdS)Nrjr~z/conversion specifier %r failed with '%s' input.)rrrr��strptimergr�)rr�r�r�Zstrf_outputrrr�
test_strptimes
���zTimeTestCase.test_strptimecCs(|�ttjdd�|�ttjdd�dS)Ns2009�%YZ2009s%Y)r]r�rr�rrrr�test_strptime_bytes�z TimeTestCase.test_strptime_bytescCs�|�t��}t�dd�Wd�n1swY|�|jjd�|�t��}t�dd�Wd�n1s9wY|�|jjd�dS)Nr�z%DTZ19z%Y %)r]rgrr��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)rrarr�TIME_MAXYEAR�TIME_MINYEARrN�len�strr]�
OverflowErrorr�)rZbigyearZascrrr�test_asctimes$
�
�zTimeTestCase.test_asctimecCs|�tj�dSr)r�rrarrrr�test_asctime_bounding_check.sz(TimeTestCase.test_asctime_bounding_checkc
Cs�t�d�}|�t�|�d�t�d�}|�t�|�d�dD])}zt�|ddfd�}Wnttfy7Yqw|�t�|�d	d�t|��qdS)
N)	i��	r�rr
�4rrrfzSun Sep 16 01:03:52 1973)	r�rrrrrrrrfzSat Jan  1 00:00:00 2000)i�����dr
r�i�'r�
r��)rrcrNr`rgr�r�)rrZyearZtestvalrrr�
test_ctime1s

� �zTimeTestCase.test_ctime�tzsetz"time module has no attribute tzsetc	Cs8ddlm}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
dvttjd
��|�t
tj�d	�|�tjd
�|�tj	d�|�tjd�|�t�|�j
d
�W|dur�||d<nd|vr�|d=t��dS|du�r||d<nd|v�r|d=t��w)Nr)�environg�z�AzEST+05EDT,M4.1.0,M10.5.0zAEST-10AEDT-11,M10.5.0,M3.5.0zUTC+0ZTZ)ZEST�EDTrr�PFi@8ZAESTEST)ZAEDTr�i`s��iPe��)�osr��getrr�rNrrbrr �tm_isdstrQr!r�rZassertInr&r�)rr�Zxmas2002ZeasternZvictoriaZutcZorg_TZrrr�
test_tzset@s^� 

�


zTimeTestCase.test_tzsetcCs2tjtjtjfD]}dD]	}|�t||�qqdS)N)gZb���t�gZb���ti)rr`rrbr]r�)rr�Zunreasonablerrr�test_insane_timestamps�s
��z#TimeTestCase.test_insane_timestampscCst��t�d�dSr)rr`rrrr�test_ctime_without_arg�sz#TimeTestCase.test_ctime_without_argcC�:t��}t�d�}t�|�}t�|�}|j||dd�dS�Ng�������?)Zdelta)rrrc�assertAlmostEqual)rZgt0Zgt1�t0rRrrr�test_gmtime_without_arg��



z$TimeTestCase.test_gmtime_without_argcCr�r�)rrbrcr�)rZlt0Zlt1r�rRrrr�test_localtime_without_arg�r�z'TimeTestCase.test_localtime_without_argc
CsFdD]}zt�|�}WnttfyYqw|�t�|�|�qdS)N)rerfrr)rrbr�r^rNrc)rrr�rrr�test_mktime�s��zTimeTestCase.test_mktimer�glibcz0disabled because of a bug in glibc. Issue #13309cCs^t�|j�}t�d|�}|�|d�zt�d�Wn	ty"Ynw|�t�d|�|�dS)N�%ZZLMT)	rfrrrrrrfrfrf)rrrr�rQrcr�rN)rr�r!rrr�test_mktime_error�s�zTimeTestCase.test_mktime_errorcCs�dd�td�D�}|d}|dd�D]
}|�||d|�|}qt��}t�d�t��}||}|�||�|�d|k�t�d	�}|�|j�|�|j	�dS)
NcSsg|]}t���qSr)rr%)�.0�nrrr�
<listcomp>��z/TimeTestCase.test_monotonic.<locals>.<listcomp>r�rrztimes=%sg�?g�������?r%)
r��assertGreaterEqualrr%rhrXr&r#r$r')r�timesrRrSZdtr(rrr�test_monotonic�s

zTimeTestCase.test_monotoniccCst��dSr)rr3rrrr�test_perf_counter�szTimeTestCase.test_perf_countercCsPt��}t�d�t��}|�||d�t�d�}|�|j�|�|j�dS)N皙�����?�{�G�z�?r5)	rr5rhr,r#r&r%r$r'�r�start�stopr(rrr�test_process_time�s

zTimeTestCase.test_process_timecCs�ttd�stj�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�)r7rrKrIrPr��skipTestr/rhr,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�Wnty,}z|�|�WYd}~nd}~wwt��}t�tj|�|�||�dS)Ni)rr%r0r9r[r\r�r�)rrRZrealtime�errrSrrr�test_monotonic_settime�s��z#TimeTestCase.test_monotonic_settimec	Cs�d}dD]"}zt�|�Wqty|�d�Yqty&|}Yq'w|dur0|�d�|�ttj|�|�ttj|�|�ttjtd��|�ttjtd��dS)N)rfi@llzneed 64-bit time_tz&unable to find an invalid time_t value�nan)	rrbr�r�r^r]r`rgr<)rZinvalid_time_tZtime_trrr�test_localtime_failures �
z#TimeTestCase.test_localtime_failurecCs�gd�}|D]8}t�|�}|�|jt�|�|jd�|�|jt�|�|jt	�|�
|jd�|�|jd�|�|jt�q|�
ttjd�dS)N)r%r3r5rr�rVrWZxxx)rr#r*�implementationr�rQr%�boolZ
resolutionr<rXr@r'r]rg)rZclocks�namer(rrr�test_get_clock_info#s
z TimeTestCase.test_get_clock_infoN).rrrrr"r)r;�unittest�
skipUnlessr7rr>rCrTrZr_rdrir�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�rIZlibc_verr�r�r�r�r�r�r�r�rrrrr3s��
�����
�
9



�
I	�


�

rc@s$eZdZdd�Zdd�Zdd�ZdS)�
TestLocalecCst�tj�|_dSr��locale�	setlocale�LC_ALLZoldlocrrrrr7r�zTestLocale.setUpcCst�tj|j�dSrr�rrrr�tearDown:szTestLocale.tearDowncCsBz	t�tjd�}Wntjy|�d�Ynwt�dd�dS)N�fr_FRz$could not set locale.LC_ALL to fr_FRz%B)	i�rrrrrrrr)r�r�r��Errorr�rr�)r�tmprrr�
test_bug_3061=s�zTestLocale.test_bug_3061N)rrrrr�r�rrrrr�6sr�c@s eZdZdZdd�Zdd�ZdS)�_TestAsctimeYear�%dcCst�|fd���dS)Nr�rf)rra�split�rr{rrr�yearstrI�z_TestAsctimeYear.yearstrcCs(|�|�d�d�|�|�d�d�dS)N�90�12345��[�	123456789)rNr�rrrr�test_large_yearLr�z _TestAsctimeYear.test_large_yearN)rrr�_formatr�rrrrrr�Fsr�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�]r�z_TestStrftimeYear.yearstrcCs2|jdkr|�d�dSdd�}|jd|d�dS)NrcSst�d|fd�S)Nz%4Yr�r�)r{rrr�year4der�z-_TestStrftimeYear.test_4dyear.<locals>.year4d)r�)r�	test_year)rrrrr�test_4dyear`s
z_TestStrftimeYear.test_4dyearcCsBd}zt�d|fd�Wntyd}Ynwd}t�||�S)Nz5strftime() is limited to [1; 9999] with Visual Studior�r�FT)rr�rgr�r�)r{�msgZcondrrr�skip_if_not_supportedis�z'_TestStrftimeYear.skip_if_not_supportedr�c�
t���Sr)�superrr��	__class__rrrt�
z!_TestStrftimeYear.test_large_yearrcr	r)r
�
test_negativerrrrrxr
z_TestStrftimeYear.test_negative)rrrrr�rr�rrrr�
__classcell__rrrrrQs	
rc@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���')rr�rN)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)rNr��lstripr�r�r]r�rrrrr�sz_Test4dYear.test_large_yearcCs�|�|�d�|jd�|�|�d�d�|�|�d�d�|�|�d�td��|�|�d�td��|�|�t�tt��|�t|jtd�|�t��|�td�Wd�dS1sbwYdS)	Nrfi.���z-1234i���z-123456i�2��i.�i�r)rNr�rr�r�r]r�r�rrrrr�s"�z_Test4dYear.test_negative)NN)rrrrrrrrrrrrs


rc@�eZdZdS)�TestAsctime4dyearN�rrrrrrrr��rc@r)�TestStrftime4dyearNrrrrrr�rrc@s^eZdZee�ejdkd�dd���Ze�ejdkd�dd��Z	e�ejdkd�dd��Z
d	S)
�
TestPytime�zneeds tm_zone supportcCs0t��}|�t|d��|�t|d��|jdur#|�ttd��n|�|jtjtjg|j�|j	durA|�ttd��n|�|j	tj
|j�t�|�}t�|dd��}|�||�t�|�}t�|�}|�||�|�|j|j�|�|j	|j	�|�||�|�|j|j�|�|j	|j	�dS)N�	tm_gmtoff�tm_zoner r!r�)rrbr&r7r rNr rr�r!r!rc)r�ltrZt9Znew_ltZnew_lt9rrr�test_localtime_timezone�s$

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

zTestPytime.test_short_timesN)rrrrr�r�r�_STRUCT_TM_ITEMSr#r$r(rrrrr�s"
rzneed the _testcapi modulec@sXeZdZdZdZdd�Zdd�Zdd�Z	dd	d
�Z	dd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��zCPyTimeTestCase.time_t_filterc

Cs�dtttg}|r
|�d�d}dg}|D]}|D]}||}|�||f�qqdD]}d|t}|�|d||d|d||df�q*tjtjfD]	}	|�|	t�qO|rmdD]}d|}|�||f�q]d	tt}|�||f�|S)
z'Build timestamps used to test rounding.rg����MbP?)rr���{i�i�r�rrri��i?Bi�i�i�i�i�i�i�	i�
i�r)	rr3r���r�r���!r)r
r4r�r6g@l)�US_TO_NS�MS_TO_NS�	SEC_TO_NS�append�extendr,�INT_MIN�INT_MAX)
r�	use_floatZunits�values�
ns_timestampsZunit�valuer-Zpow2r0rrr�_rounding_values�s2
��
z CPyTimeTestCase._rounding_valuescs2���fdd�}|���}||�}tD]H\}	}
t���8}|
|_|D]*}||
d�}
z|||	�}||�}WntyC|�d|
�Ynw|�|||
�q!Wd�n1sVwYq|jt	}||f}||�}tD]*\}	}|D]#}||	d�}
|j
t|
d��
|||	�Wd�n1s�wYqrqldS)NcsX�rtt����fdd�|D�}n
t���fdd�|D�}�r&t�|�}tt|��S)Ncsg|]}|��qSrr�r�r-�Z
unit_to_nsrrr�'r�zKCPyTimeTestCase._check_rounding.<locals>.convert_values.<locals>.<listcomp>csg|]}|��qSrrrFrGrrr�*r�)r<r<�filter�sorted�set)rCrB��unit_to_secrA�value_filterrGr�convert_values$s
z7CPyTimeTestCase._check_rounding.<locals>.convert_values)rD�roundingz!Error on timestamp conversion: %s)r)rE�ROUNDING_MODES�decimalZlocalcontextrO�	Exceptionr�rN�OVERFLOW_SECONDSr<r]r�)r�pytime_converter�
expected_funcrArLrMrNrCZvalid_values�time_rndZdecimal_rnd�contextrDZ
debug_infor�r�r-Zoverflow_values�_rrKr�_check_rounding!sB



�����


����zCPyTimeTestCase._check_roundingrcC�|�||d||�dS)NF�rY�rrTrUrLrMrrr�check_int_roundingN��z"CPyTimeTestCase.check_int_roundingcCrZ)NTr[r\rrr�check_float_roundingSr^z$CPyTimeTestCase.check_float_roundingcCst�|�}|�d�}t|�S)Nr)rQ�DecimalZquantizer+)rryrnrrr�
decimal_roundXs

zCPyTimeTestCase.decimal_roundr)rN)rrr�__doc__rSrr1rErYr]r_rarrrrr*�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	sxddlm�dd�}|j�fdd�dd�|d�tD]\}}|�t���td	��Wd�n1s4wYqdS)
Nr��PyTime_FromSecondscSstj|kotjkSSr)r,r?r@��secsrrr�c_int_filterir2z2TestCPyTime.test_FromSeconds.<locals>.c_int_filterc��|�Srr)rg�rndrdrrr�l�z.TestCPyTime.test_FromSeconds.<locals>.<lambda>cS�|tSr�r<rfrrrr�mrk�rMr�)r,rer]rPr]r�r<)rrhrVrXrrdr�test_FromSecondses����zTestCPyTime.test_FromSecondsc	szddlm}��|dd����|�fdd��tD] \}}��t��|td�|�Wd�n1s5wYqdS)Nr)�PyTime_FromSecondsObjectcSrlrrmrfrrrr�zrkz4TestCPyTime.test_FromSecondsObject.<locals>.<lambda>cs��|t�Sr)rar<�r-rrrr�~sr�)r,rpr]r_rPr]rgr<)rrprVrXrrr�test_FromSecondsObjectus�
����z"TestCPyTime.test_FromSecondsObjectc	srddlm�dd�}|��fdd�|t�tD]\}}|�t���td��Wd�n1s1wYqdS)Nr��PyTime_AsSecondsDoublecSs(t|�tdkrt|t�St|�tS�Nr)�absr<r<rqrrr�float_converter�sz9TestCPyTime.test_AsSecondsDouble.<locals>.float_convertercrirr�r-rjrsrrr��rkz2TestCPyTime.test_AsSecondsDouble.<locals>.<lambda>r�)r,rtr]�	NS_TO_SECrPr]r�r<)rrwrVrXrrsr�test_AsSecondsDouble�s����z TestCPyTime.test_AsSecondsDoublecst�|����fdd�}|S)Ncst�|��}��|�Sr)rQr`ra)rDrn�Zdenomrrr�	converter�s
z7TestCPyTime.create_decimal_converter.<locals>.converter)rQr`)r�denominatorr|rr{r�create_decimal_converter�s
z$TestCPyTime.create_decimal_convertercshddlm}|�t���fdd�}tjdkr&ddlm�m���fdd�}n|j}|j	||t
|d	�dS)
Nr)�PyTime_AsTimevalcs�|�}t|t�Sr)�divmod�	SEC_TO_US)r-�us)�us_converterrr�timeval_converter�s
z5TestCPyTime.test_AsTimeval.<locals>.timeval_converter�win32)�LONG_MIN�LONG_MAXcs�|ko	�kSSrrrf)r�r�rr�seconds_filter�r�z2TestCPyTime.test_AsTimeval.<locals>.seconds_filterrn)r,rr~r:rKrIr�r�r1r]ry)rrr�r�r)r�r�r�r�test_AsTimeval�s


�zTestCPyTime.test_AsTimeval�PyTime_AsTimespecz need _testcapi.PyTime_AsTimespeccs4ddlm�dd�}|j�fdd�|t|jd�dS)Nr�r�cSs
t|t�Sr)r�r<rqrrr�timespec_converter�s
z7TestCPyTime.test_AsTimespec.<locals>.timespec_convertercrirrrxr�rrr��rkz-TestCPyTime.test_AsTimespec.<locals>.<lambda>rn)r,r�r]ryr1)rr�rr�r�test_AsTimespec�s
�zTestCPyTime.test_AsTimespeccC�$ddlm}|�||�t�t�dS)Nr)�PyTime_AsMilliseconds)r,r�r]r~r;ry)rr�rrr�test_AsMilliseconds��
�zTestCPyTime.test_AsMillisecondscCr�)Nr)�PyTime_AsMicroseconds)r,r�r]r~r:ry)rr�rrr�test_AsMicroseconds�r�zTestCPyTime.test_AsMicrosecondsN)rrrrb�math�ceilr<rSrorrrzr~r�r�r�r7r,r�r�r�rrrrrc^s	�
rcc@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|Srrrfrrrr��sz5TestOldPyTime.test_object_to_time_t.<locals>.<lambda>rn)r,r�r]r1r_ra)rr�rrr�test_object_to_time_t�s�
�z#TestOldPyTime.test_object_to_time_tcs��fdd�}|S)Ncsht�|�\}}t|�}|�9}��|�}|dkr$|�7}|d8}||fS|�kr0|�8}|d7}||fS)Nrr)r��modfr+ra)rgZ	floatpartZintpart��sec_to_unitrrrr|�s
�z1TestOldPyTime.create_converter.<locals>.converterr)rr�r|rr�r�create_converter�szTestOldPyTime.create_converterc	C�ddlm}|j|dd�|jd�|j||�t�|jd�tD] \}}|�t	��|t
d�|�Wd�n1s:wYqdS)Nr)�pytime_object_to_timevalcS�|dfSrurrfrrrr��rkz6TestOldPyTime.test_object_to_timeval.<locals>.<lambda>rnr�)r,r�r]r1r_r�r�rPr]rgr<)rr�rVrXrrr�test_object_to_timeval�������z$TestOldPyTime.test_object_to_timevalc	Cr�)Nr)�pytime_object_to_timespeccSr�rurrfrrrr�	rkz7TestOldPyTime.test_object_to_timespec.<locals>.<lambda>rnr�)r,r�r]r1r_r�r<rPr]rgr<)rr�rVrXrrr�test_object_to_timespecr�z%TestOldPyTime.test_object_to_timespecN)	rrrrbrSr�r�r�r�rrrrr��sr��darwinztest weak linking on macOSc@seZdZdd�ZdS)�TestTimeWeaklinkingcCs�ddl}ddl}|��}d}||vs||st�|�d���tdd�|��d�d�D��}gd�}|dkrJ|D]}|�t	t
|�d	|�d��q8dS|D]}|�t	t
|�d	|�d
��qLdS)NrZHAVE_CLOCK_GETTIMEz is not availablecss�|]}t|�VqdSr)r+)r�ryrrr�	<genexpr>%s�z;TestTimeWeaklinking.test_clock_functions.<locals>.<genexpr>�.)r?r0r:r[�clock_settime_nsrU)r�r�ztime.z
 is available)�	sysconfigrIZget_config_varsr�ZSkipTest�tuple�mac_verr�r&r7rr$)rr�rIZconfig_varsZvar_namer�Zclock_namesr�rrr�test_clock_functionss ��z(TestTimeWeaklinking.test_clock_functionsN)rrrr�rrrrr�sr��__main__)2�testrZtest.supportrrQ�enumr�r�rIrKr�rrFr�r,�ImportErrorrZget_config_varrr�r�r�r:r;r<ry�IntEnumrrrrrrPZTestCaserr�r�rrrrrZskipIfr*rcr�r�r�r�mainrrrr�<module>sj�



�	. 8uB
�
© 2025 GrazzMean