HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.6/test/__pycache__/test_time.cpython-36.pyc
3


 \ϒ�@s
ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
yddlZWnek
rxdZYnXyddl
Z
Wnek
r�dZ
YnXejd�p�dZdded>dZeddZd&Zd'Zd(Zd)Zd*ZGdd
�d
ej�ZejejfejejfejejfejejffZGdd�de
j�ZGdd�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
j'e
dkd�Gdd �d ��Z(Gd!d"�d"e(e
j�Z)Gd#d$�d$e(e
j�Z*e+d%k�re
j,�dS)+�)�supportN�
SIZEOF_INT���il�
���	c@seZdZdZdZdZdZdS)�_PyTimerr�r	N)�__name__�
__module__�__qualname__�ROUND_FLOOR�
ROUND_CEILING�ROUND_HALF_EVEN�ROUND_UP�rr�!/usr/lib64/python3.6/test_time.pyr src@s�eZdZdd�Zdd�Zdd�Zdd�Zeje	e
d	�d
�dd��Zeje	e
d	�d
�eje	e
d
�d�dd���Zeje	e
d�d�dd��Z
eje	e
d�d�dd��Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zeje	e
d3�d4�d5d6��Zd7d8�Zd9d:�Zd;d<�Zd=d>�Z d?d@�Z!eje"j#�dAdBkdC�dDdE��Z$eje	e
dF�dG�dHdI��Z%dJdK�Z&dLdM�Z'eje	e
dF�dG�eje	e
d�dN�dOdP���Z(dQdR�Z)dSdT�Z*dUS)V�TimeTestCasecCstj�|_dS)N)�time�t)�selfrrr�setUp6szTimeTestCase.setUpcCstjtjtjtjdS)N)r�altzone�daylight�timezone�tzname)rrrr�test_data_attributes9sz!TimeTestCase.test_data_attributescCs.tj�tjd�}|j|j�|j|j�dS)Nr)r�get_clock_info�assertFalse�	monotonic�
assertTrue�
adjustable)r�inforrr�	test_time?s
zTimeTestCase.test_timecCs.tj�tjd�}|j|j�|j|j�dS)N�clock)rr'r r#r"r!r$)rr%rrr�
test_clockEs
zTimeTestCase.test_clock�
clock_gettimezneed time.clock_gettime()cCstjtj�dS)N)rr)�CLOCK_REALTIME)rrrr�test_clock_realtimeLsz TimeTestCase.test_clock_realtime�CLOCK_MONOTONICzneed time.CLOCK_MONOTONICcCs(tjtj�}tjtj�}|j||�dS)N)rr)r,�assertLessEqual)r�a�brrr�test_clock_monotonicQsz!TimeTestCase.test_clock_monotonic�clock_getreszneed time.clock_getres()cCs(tjtj�}|j|d�|j|d�dS)Ngg�?)rr1r*�
assertGreaterr-)r�resrrr�test_clock_getresZszTimeTestCase.test_clock_getres�
clock_settimezneed time.clock_settime()c
CsVtjtj�}ytjtj|�Wntk
r2YnXttd�rR|jttjtjd�dS)Nr,r)	rr)r*r5�PermissionError�hasattr�assertRaises�OSErrorr,)rrrrr�test_clock_settimeas
zTimeTestCase.test_clock_settimecCsJ|jtj|j�tjtj|j���|jttjtj|j���t|j��dS)N)�assertEqualr�ctimer�asctime�	localtime�int�mktime)rrrr�test_conversionsnszTimeTestCase.test_conversionscCs.|jttjd�|jttjd�tjd�dS)Nrrg333333�?������)r8�
ValueErrorr�sleep)rrrr�
test_sleeptszTimeTestCase.test_sleepcCs~tj|j�}xHdD]@}d|}ytj||�Wqtk
rP|jd|�YqXqW|jttjd|�|jttjd|�dS)Nr.�Ar/�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.rGr/rHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZ)r�gmtimer�strftimerD�failr8�	TypeError)r�tt�	directive�formatrrr�
test_strftimeyszTimeTestCase.test_strftimecCs|d�|d�|jt|d�|jt|d�|d�|d�|jt|d!�|jt|d#�|d%�|jt|d(�|jt|d*�|d,�|jt|d/�|jt|d1�|jt|d4�|d6�|d8�|jt|d:�|j|d=�|d@��|jt|dC�|dE�|dG�|jt|dJ�|jt|dL�dS)MN�lrr��
�� ���;�<�=�>rr�n�orC)	rcrrrrrrrrCrC)	rcrdrrrrrrrCrCrC)	rcrCrrrrrrrCrC)	rcrerrrrrrrCrC)	rcrrrrrrrrCrC)	rcrrfrrrrrrCrCrC)	rcrrCrrrrrrCrC)	rcrrgrrrrrrCrC)	rcrrrhrrrrrCrCrC)	rcrrrCrrrrrCrC)	rcrrrirrrrrCrC)	rcrrrrjrrrrCrCrC)	rcrrrrCrrrrCrC)	rcrrrrkrrrrCrCrC)	rcrrrrrCrrrCrC)	rcrrrrrkrrrCrC)	rcrrrrrlrrrCrC)	rcrrrrrmrrrCrCrC)	rcrrrrrrCrrCrrC)	rcrrrrrrrrCrBrC)	rcrrrrrrBrrCrC)	rcrrrrrrrrCrC)	rcrrrrrrrnrCrCrC)	rcrrrrrrrCrCrC)	rcrrrrrrrorC)r8rDr;)r�funcrrr�_bounds_checking�sL

zTimeTestCase._bounds_checkingcCs|jdd��dS)NcSstjd|�S)N�)rr\)�tuprrr�<lambda>�sz;TimeTestCase.test_strftime_bounding_check.<locals>.<lambda>)rq)rrrr�test_strftime_bounding_check�sz)TimeTestCase.test_strftime_bounding_checkcCs`xZd
D]R}xLtdd�D]>}x8dD]0}ytj|||�Wq tk
rNYq Xq WqWqWdS)NrrrG�%A�%AAr�rZ�A%�AA%�%A%�A%A%�%#)rrrGrvrw)rZryrzr{r|r})�rangerr\rD)rrUrW�zrrr�test_strftime_format_check�s

z'TimeTestCase.test_strftime_format_checkcCs4d}tj��tjdd	�}WdQRX|j||�dS)
Nz2000 01 01 00 00 00 1 001z%Y %m %d %H %M %S %w %j��rr)r�)r)rrrrrrrr)	r�rrrrrrrr)rZcheck_warningsrr\r;)r�expected�resultrrr�test_default_values_for_zero�s
z)TimeTestCase.test_default_values_for_zerocCsjtj|j�}xXdD]P}d|}tj||�}ytj||�Wqtk
r`|jd||f�YqXqWdS)Nr.rGr/rHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZz/conversion specifier %r failed with '%s' input.)r.rGr/rHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZ)rr[rr\�strptimerDr])rr_r`raZstrf_outputrrr�
test_strptime�szTimeTestCase.test_strptimecCs(|jttjdd�|jttjdd�dS)Ns2009z%YZ2009s%Y)r8r^rr�)rrrr�test_strptime_bytes�sz TimeTestCase.test_strptime_bytescCsh|jt��}tjdd�WdQRX|j|jjd�|jt��}tjdd�WdQRX|j|jjd�dS)Nrrz%DTZ19z%Y %)r8rDrr��assertIsZ	exception�__suppress_context__)r�errr�test_strptime_exception_context�sz,TimeTestCase.test_strptime_exception_contextcCs�tjtj|j��xFttfD]:}tj|ddfd�}|j|tt|��d�t|��qW|j	t
tjtdfd	�|j	t
tjtdfd�|j	ttjd�|j	ttjf�|j	ttjd
�dS)Nrrrrr)r)rrrrrr)r)rrrrrrrr)r)rrrrrrrr)r)
rrrrrrrrrr)rr=r[r�TIME_MAXYEAR�TIME_MINYEARr;�len�strr8�
OverflowErrorr^)rZbigyearZascrrr�test_asctime�s&

zTimeTestCase.test_asctimecCs|jtj�dS)N)rqrr=)rrrr�test_asctime_bounding_checksz(TimeTestCase.test_asctime_bounding_checkc
Cs�tjd�}|jtj|�d�tjd�}|jtj|�d
�x\dD]T}ytj|ddfd�}Wnttfk
rrYq>X|jtj|�dd�t|��q>WdS)N�r
rxrr	�4rzSun Sep 16 01:03:52 1973��zSat Jan  1 00:00:00 2000�d����'rr�rC)	r�r
rxrr	r�rrrCrC)	r�rrrrrrrrC���)r�r�r�r�r�r�)r)rrrrrr)rr@r;r<rDr�r�)rrZyearZtestvalrrr�
test_ctimes


zTimeTestCase.test_ctime�tzsetz"time module has no attribute tzsetcCsddlm}d}d}d}d}|jdd�}�z�||d<tj�||d<tj�|jtj|�tj|��|jtjd�|jtj	d�|jtj|�j
d�||d<tj�|jtj|�tj|��|jtjd�|jt
tj�d
�|jtjd�|jtj	d�|jtjd
�|jtj|�j
d�|jt
tj�d
�||d<tj�|jtj|�tj|��|jtjddtjd�|jtjddkttjd��|jt
tj�d
�|jtjd�|jtj	d�|jtjd�|jtj|�j
d�Wd|dk	�r�||d<nd|k�r|d=tj�XdS)Nr)�environg�z�AzEST+05EDT,M4.1.0,M10.5.0zAEST-10AEDT-11,M10.5.0,M3.5.0zUTC+0ZTZ�EST�EDTrriPFi@8ZAESTEST�AEDTi��i��)r�r�)r�r�i`s��iPe��)�osr��getrr�r;r[r>rr�tm_isdst�assertNotEqualrr�rZassertInr#r�)rr�Zxmas2002ZeasternZvictoriaZutcZorg_TZrrr�
test_tzsetsR 


zTimeTestCase.test_tzsetcCs:x4tjtjtjfD] }xdD]}|jt||�qWqWdS)N�Zb���ti�Zb���t�)r�r�)rr<r[r>r8r�)rrpZunreasonablerrr�test_insane_timestampses
z#TimeTestCase.test_insane_timestampscCstj�tjd�dS)N)rr<)rrrr�test_ctime_without_argnsz#TimeTestCase.test_ctime_without_argcCs:tj�}tjd�}tj|�}tj|�}|j||dd�dS)Ng�������?)�delta)rr[r@�assertAlmostEqual)rZgt0Zgt1�t0�t1rrr�test_gmtime_without_argus



z$TimeTestCase.test_gmtime_without_argcCs:tj�}tjd�}tj|�}tj|�}|j||dd�dS)Ng�������?)r�)rr>r@r�)rZlt0Zlt1r�r�rrr�test_localtime_without_arg|s



z'TimeTestCase.test_localtime_without_argc
Csbx\dD]T}tjjd�r |dkr qytj|�}Wnttfk
rFYqX|jtj|�|�qWdS)	Nrrr�aixrBrC)rBrCrrrC)	�sys�platform�
startswithrr>r�r9r;r@)rrr_rrr�test_mktime�s
zTimeTestCase.test_mktimerZglibcz0disabled because of a bug in glibc. Issue #13309cCs`tj|j�}tjd|�}|j|d�ytjd	�Wntk
rFYnX|jtjd|�|�dS)
Nz%ZZLMTrrrCrCrCrC)	rCrrrrrrCrCrC)rr[rr\r�r@r�r;)rr_rrrr�test_mktime_error�szTimeTestCase.test_mktime_errorr"zneed time.monotoniccCs�dd�td�D�}|d}x*|dd�D]}|j||d|�|}q(Wtj�}tjd�tj�}||}|j||�|jd|ko�d	kn|�tjd
�}|j|j�|j|j	�dS)NcSsg|]}tj��qSr)rr")�.0�nrrr�
<listcomp>�sz/TimeTestCase.test_monotonic.<locals>.<listcomp>r�rrztimes=%sg�?g�������?g�?r")
r~�assertGreaterEqualrr"rEr2r#r r!r$)r�timesr��t2Zdtr%rrr�test_monotonic�s
 
zTimeTestCase.test_monotoniccCstj�dS)N)r�perf_counter)rrrr�test_perf_counter�szTimeTestCase.test_perf_countercCsPtj�}tjd�tj�}|j||d�tjd�}|j|j�|j|j�dS)Ng�������?g{�G�z�?�process_time)	rr�rEZ
assertLessr r#r"r!r$)r�start�stopr%rrr�test_process_time�s

zTimeTestCase.test_process_timezneed time.clock_settimecCs~tj�}tjtj�}ytjtj|d�Wn,tk
rV}z|j|�WYdd}~XnXtj�}tjtj|�|j||�dS)Ni)rr"r)r*r5r6�skipTestr�)rr�Zrealtime�errr�rrr�test_monotonic_settime�sz#TimeTestCase.test_monotonic_settimecCs�d}xRd
D]J}ytj|�Wq
tk
r:|jd�Yq
tk
rR|}PYq
Xq
W|dkrj|jd�|jttj|�|jttj|�|jttjtd��|jttjtd��dS)Nrr��!rkzneed 64-bit time_tz&unable to find an invalid time_t value�nanrC�@��)rCr�r�r�)	rr>r�r�r9r8r<rD�float)rZinvalid_time_tZtime_trrr�test_localtime_failure�s

z#TimeTestCase.test_localtime_failurecCs�ddddg}ttd�r |jd�xx|D]p}tj|�}|j|jt�|j|jd�|j|jt	�|j|j
t�|j|j
d�|j
|j
d�|j|jt	�q&W|jttjd	�dS)
Nr'r�r�rr"rrgg�?Zxxx)r7r�appendr ZassertIsInstance�implementationr�r�r"�boolZ
resolutionr�r2r-r$r8rD)rZclocks�namer%rrr�test_get_clock_info�s



z TimeTestCase.test_get_clock_infoN)+r
rrrrr&r(�unittest�
skipUnlessr7rr+r0r4r:rArFrbrqrur�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Zlibc_verr�r�r�r�r�r�r�rrrrr4s\9


J	
rc@s$eZdZdd�Zdd�Zdd�ZdS)�
TestLocalecCstjtj�|_dS)N)�locale�	setlocale�LC_ALL�oldloc)rrrrrszTestLocale.setUpcCstjtj|j�dS)N)r�r�r�r�)rrrr�tearDownszTestLocale.tearDowncCsDytjtjd�}Wn tjk
r2|jd�YnXtjdd�dS)	NZfr_FRz$could not set locale.LC_ALL to fr_FRz%B��rrr)	r�rrrrrrrr)r�r�r��Errorr�rr\)rZtmprrr�
test_bug_3061s
zTestLocale.test_bug_3061N)r
rrrr�r�rrrrr�sr�c@s eZdZdZdd�Zdd�ZdS)�_TestAsctimeYearz%dcCstj|fd�j�dS)Nrrr)r)rrrrrrrrrC)rr=�split)rrWrrr�yearstrsz_TestAsctimeYear.yearstrcCs(|j|jd�d�|j|jd�d�dS)Ni90�12345i�[�	123456789)r;r�)rrrr�test_large_yearsz _TestAsctimeYear.test_large_yearN)r
rr�_formatr�r�rrrrr�sr�csleZdZejdd�dkrdZndZdd	�Zd
d�Zdd
�Zed��fdd��Z	ed��fdd��Z
[�ZS)�_TestStrftimeYearz%YrrrZ0001z%04dz%dcCstjd|fd�S)Nz%Yrr)r)rrrrrrrr)rr\)rrWrrrr�.sz_TestStrftimeYear.yearstrcCs0|jdkr|jd�ndd�}|jd|d�dS)Nz%04dcSstjd|fd�S)Nz%4Yrr)r)rrrrrrrr)rr\)rWrrr�year4d6sz-_TestStrftimeYear.test_4dyear.<locals>.year4d)rp)r��	test_year)rr�rrr�test_4dyear1s
z_TestStrftimeYear.test_4dyearcCsDd}ytjd|fd�Wntk
r2d}YnXd}tj||�S)	Nz5strftime() is limited to [1; 9999] with Visual Studioz%YrrFT)r)rrrrrrrr)rr\rDr�r�)rW�msgZcondrrr�skip_if_not_supported:s
z'_TestStrftimeYear.skip_if_not_supportedi'cs
t�j�S)N)�superr�)r)�	__class__rrr�Esz!_TestStrftimeYear.test_large_yearcs
t�j�S)N)r��
test_negative)r)r�rrr�Isz_TestStrftimeYear.test_negative)r)r)rrrrrrrr)	rrrrrrrrr)r
rrrr\r�r�r�r�r�r��
__classcell__rr)r�rr�"s	r�c@s*eZdZdZd	dd�Zdd�Zdd�ZdS)
�_Test4dYearz%dNcCs�|p|j}|p|j}|j|d�|d�|j|d�|d�|j|d�|d�|j|d�|d�|j|d�|d�|j|d�|d�dS)Nr�D�E�ci�i')r�r�r;)rZfmtrprrrr�Ss

z_Test4dYear.test_yearcCsd|j|jd�jd�d�|j|jd�jd�d�|j|jt�jd�tt��|jt|jtd�dS)Ni90�+r�i�[r�r)r;r��lstripr�r�r8r�)rrrrr�]sz_Test4dYear.test_large_yearc
Cs�|j|jd�|jd	�|j|jd
�d�|j|jd�d�|j|jd�td
��|j|jd�td��|j|jt�tt��|jt|jtd�|jt��|jtd�WdQRXdS)Nri�z-1234i@�z-123456i�[i��IrCrCi.���i���i�2��i�2��i.�i�i.�i�)r;r�r�r�r�r8r�r�)rrrrr�csz_Test4dYear.test_negative)NN)r
rrr�r�r�r�rrrrr�Ps

r�c@seZdZdS)�TestAsctime4dyearN)r
rrrrrrr�psr�c@seZdZdS)�TestStrftime4dyearN)r
rrrrrrr�ssr�c@sZeZdZejejdkd�dd��Zejejdkd�dd��Zejejdkd�dd��Z	d	S)
�
TestPytime�zneeds tm_zone supportcCs0tj�}|jt|d��|jt|d��|jdkrF|jttd��n|j|jtjtjg|j�|j	dkr�|jttd��n|j|j	tj
|j�tj|�}tj|dd��}|j||�tj|�}tj|�}|j||�|j|j|j�|j|j	|j	�|j||�|j|j|j�|j|j	|j	�dS)N�	tm_gmtoff�tm_zonerrr
)rr>r#r7r�r;rrr�r�rr@)r�ltrZt9Znew_ltZnew_lt9rrr�test_localtime_timezonexs(




z"TestPytime.test_localtime_timezonecCs8tjdd�}|j|jd�tjdd�}|j|jd�dS)NZUTCz%Zz+0500z%z�iiPF)rr�r;r�r�)rrrrr�test_strptime_timezone�sz!TestPytime.test_strptime_timezonecCs6ddl}d}|j|�}|j|jd�|j|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
rrr�r�rZ_STRUCT_TM_ITEMSr�r�rrrrrr�ws#r�zneed 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|jkSS)N)rr)r�secondsrrr�
time_t_filter�szCPyTimeTestCase.time_t_filterc
Csdtttg}|r|jd�d#}dg}x2|D]*}x$|D]}||}|j||f�q4Wq*WxDd$D]<}d|t}|j|d||d|d||df�q^Wx"tjtjfD]}	|j|	t�q�W|�r�x(d%D] }d!|}|j||f��q�Wd&tt}|j||f�|S)'z'Build timestamps used to test rounding.rg����MbP?rr���{����r
r����'韆�?B�������������	�
�rr��rhrir�r�r	g@�?)rrr�rr
rrr
r�rrrrrrrrrrrrr)	rr�rrrrhrir�r�)r	rrrl)�US_TO_NS�MS_TO_NS�	SEC_TO_NSr��extendr�INT_MIN�INT_MAX)
r�	use_floatZunits�values�
ns_timestampsZunit�value�nsZpow2r
rrr�_rounding_values�sD





z CPyTimeTestCase._rounding_valuescs*���fdd�}|j��}||�}x�tD]�\}	}
tj��z}|
|_xl|D]d}||
d�}
y|||	�}||�}Wn0tk
r�}z|jd|
�WYdd}~XnX|j|||
�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��szKCPyTimeTestCase._check_rounding.<locals>.convert_values.<locals>.<listcomp>csg|]}|��qSrr)r�r*)r,rrr��s)r"r��filter�sorted�set)r(r')�unit_to_secr&�value_filter)r,r�convert_values�s
z7CPyTimeTestCase._check_rounding.<locals>.convert_values)r)�roundingz!Error on timestamp conversion: %s)r�)r+�ROUNDING_MODES�decimalZlocalcontextr3�	Exceptionr]r;�OVERFLOW_SECONDSr"r8r�)r�pytime_converter�
expected_funcr&r0r1r2r(Zvalid_values�time_rndZdecimal_rnd�contextr)Z
debug_infor�r��excr*Zoverflow_values�_r)r0r&r1r�_check_rounding�s0




 



zCPyTimeTestCase._check_roundingrcCs|j||d||�dS)NF)r>)rr8r9r0r1rrr�check_int_roundingsz"CPyTimeTestCase.check_int_roundingcCs|j||d||�dS)NT)r>)rr8r9r0r1rrr�check_float_rounding#sz$CPyTimeTestCase.check_float_roundingcCstj|�}|jd�}t|�S)Nr)r5�DecimalZquantizer?)rrUrJrrr�
decimal_round(s

zCPyTimeTestCase.decimal_round)N)rN)rN)r
rr�__doc__r7rrr+r>r?r@rBrrrrr�s4
-

rc@speZdZdZejde�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Ze
jeed�d�dd��Zdd�Zdd�ZdS)�TestCPyTimez#
    Test the C _PyTime_t API.
    rrrcshddlm�dd�}|j�fdd�dd�|d�x2tD]*\}}|jt���td	��WdQRXq6WdS)
Nr)�PyTime_FromSecondscSstj|kotjkSS)N)rr$r%)�secsrrr�c_int_filter9sz2TestCPyTime.test_FromSeconds.<locals>.c_int_filtercs�|�S)Nr)rF�rnd)rErrrt<sz.TestCPyTime.test_FromSeconds.<locals>.<lambda>cSs|tS)N)r")rFrrrrt=s)r1r�)rrEr?r4r8r^r�)rrGr:r=r)rEr�test_FromSeconds5szTestCPyTime.test_FromSecondscsjddlm}�j|dd���j|�fdd��x4tD],\}}�jt��|td�|�WdQRXq6WdS)Nr)�PyTime_FromSecondsObjectcSs|tS)N)r")rFrrrrtJsz4TestCPyTime.test_FromSecondsObject.<locals>.<lambda>cs�j|t�S)N)rBr")r*)rrrrtNsr�)rrJr?r@r4r8rDr�)rrJr:r=r)rr�test_FromSecondsObjectEs
z"TestCPyTime.test_FromSecondsObjectcsbddlm�dd�}|j�fdd�|t�x2tD]*\}}|jt���td��WdQRXq0WdS)Nr)�PyTime_AsSecondsDoublecSs,t|�tdkrt|t�St|�tSdS)Nr)�absr"r�)r*rrr�float_converterXsz9TestCPyTime.test_AsSecondsDouble.<locals>.float_convertercs�|�S)Nr)r*rH)rLrrrt^sz2TestCPyTime.test_AsSecondsDouble.<locals>.<lambda>r�)rrLr?�	NS_TO_SECr4r8r^r�)rrNr:r=r)rLr�test_AsSecondsDoubleUsz TestCPyTime.test_AsSecondsDoublecstj|����fdd�}|S)Ncstj|��}�j|�S)N)r5rArB)r)rJ)�denomrrr�	converterjsz7TestCPyTime.create_decimal_converter.<locals>.converter)r5rA)r�denominatorrRr)rQrr�create_decimal_convertergs
z$TestCPyTime.create_decimal_convertercshddlm}|jt���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_converterusz5TestCPyTime.test_AsTimeval.<locals>.timeval_converterZwin32)�LONG_MIN�LONG_MAXcs�|ko�kSS)Nr)rF)r\r[rr�seconds_filter}sz2TestCPyTime.test_AsTimeval.<locals>.seconds_filter)r1)rrUrTr r�r�r[r\rr?rO)rrUrZr]r)r\r[rYr�test_AsTimevalps

zTestCPyTime.test_AsTimeval�PyTime_AsTimespecz need _testcapi.PyTime_AsTimespeccs4ddlm�dd�}|j�fdd�|t|jd�dS)Nr)r_cSs
t|t�S)N)rVr")r*rrr�timespec_converter�sz7TestCPyTime.test_AsTimespec.<locals>.timespec_convertercs�|�S)Nr)r*rH)r_rrrt�sz-TestCPyTime.test_AsTimespec.<locals>.<lambda>)r1)rr_r?rOr)rr`r)r_r�test_AsTimespec�szTestCPyTime.test_AsTimespeccCs$ddlm}|j||jt�t�dS)Nr)�PyTime_AsMilliseconds)rrbr?rTr!rO)rrbrrr�test_AsMilliseconds�szTestCPyTime.test_AsMillisecondscCs$ddlm}|j||jt�t�dS)Nr)�PyTime_AsMicroseconds)rrdr?rTr rO)rrdrrr�test_AsMicroseconds�szTestCPyTime.test_AsMicrosecondsNll)r
rrrC�mathZceilr"r7rIrKrPrTr^r�r�r7rrarcrerrrrrD.s	rDc@s4eZdZdZd
Zdd�Zdd�Zdd	�Zd
d�ZdS)�
TestOldPyTimezH
    Test the old C _PyTime_t API: _PyTime_ObjectToXXX() functions.
    r�@cCs:ddlm}|j|dd�|jd�|j||j|jd�dS)Nr)�pytime_object_to_time_tcSs|S)Nr)rFrrrrt�sz5TestOldPyTime.test_object_to_time_t.<locals>.<lambda>)r1)rrir?rr@rB)rrirrr�test_object_to_time_t�s
z#TestOldPyTime.test_object_to_time_tcs��fdd�}|S)Ncsbtj|�\}}t|�}|�9}�j|�}|dkrB|�7}|d8}n|�krZ|�8}|d7}||fS)Nrr)rfZmodfr?rB)rFZ	floatpartZintpart)�sec_to_unitrrrrR�s

z1TestOldPyTime.create_converter.<locals>.converterr)rrkrRr)rkrr�create_converter�szTestOldPyTime.create_convertercCstddlm}|j|dd�|jd�|j||jt�|jd�x4tD],\}}|jt	��|t
d�|�WdQRXq@WdS)Nr)�pytime_object_to_timevalcSs|dfS)Nrr)rFrrrrt�sz6TestOldPyTime.test_object_to_timeval.<locals>.<lambda>)r1r�)rrmr?rr@rlrWr4r8rDr�)rrmr:r=rrr�test_object_to_timeval�s

z$TestOldPyTime.test_object_to_timevalcCstddlm}|j|dd�|jd�|j||jt�|jd�x4tD],\}}|jt	��|t
d�|�WdQRXq@WdS)Nr)�pytime_object_to_timespeccSs|dfS)Nrr)rFrrrrt�sz7TestOldPyTime.test_object_to_timespec.<locals>.<lambda>)r1r�)rror?rr@rlr"r4r8rDr�)rror:r=rrr�test_object_to_timespec�s

z%TestOldPyTime.test_object_to_timespecNl)	r
rrrCr7rjrlrnrprrrrrg�srg�__main__i@Bi�i@Biʚ;iʚ;)-Ztestrr5�enumr�rfr�r��	sysconfigrr�Z	threading�ImportErrorr�get_config_varrr�r�rWr r!r"rO�IntEnumrrrrrr4ZTestCaserr�r�r�r�r�r�r�ZskipIfrrDrgr
�mainrrrr�<module>s^




V. 7uC