o
    %j                     @   sb   d dl mZmZ d dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ G dd dZdS )	    )given
strategiesN)lib)iNaT)OutOfBoundsTimedelta)	Timedeltac                   @   s8  e Zd Zejddededfdededfded	ed
fdededfdededfdededfdededfdededfdededfdededfg
d d! Zd"d# Zejj	d$d% Z
ejj	eejed& ejd'd(ejd)ejejejgd*d+ Zejd,g d-d.d/ Zd0S )1TestTimedeltaRoundz
freq,s1,s2ns1 days 02:34:56.789123456-1 days 02:34:56.789123456usz1 days 02:34:56.789123000z-1 days 02:34:56.789123000msz1 days 02:34:56.789000000z-1 days 02:34:56.789000000s1 days 02:34:57z-1 days 02:34:57Z2sz1 days 02:34:56z-1 days 02:34:56Z5sz1 days 02:34:55z-1 days 02:34:55min1 days 02:35:00z-1 days 02:35:00Z12minz1 days 02:36:00z-1 days 02:36:00hz1 days 03:00:00z-1 days 03:00:00dz1 daysz-1 daysc                 C   s@   t d}t d}||}||ksJ ||}||ksJ d S )Nr
   r   )r   round)selffreqs1s2t1t2r1r2 r   q/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/scalar/timedelta/methods/test_round.py
test_round   s   

zTestTimedeltaRound.test_roundc              	   C   sR   t d}dD ] \}}tjt|d || W d    n1 s!w   Y  qd S )Nr
   ))ZYEz,<YearEnd: month=12> is a non-fixed frequency)ZMEz#<MonthEnd> is a non-fixed frequency)ZfoobarzInvalid frequency: foobarmatch)r   pytestraises
ValueErrorr   )r   r   r   msgr   r   r   test_round_invalid5   s   z%TestTimedeltaRound.test_round_invalidc                 C   sL  t jd}t jt dd t d }||ksJ t jd}t jt d }||ks+J d}tjt|d t jd W d    n1 sEw   Y  tjt|d t jd W d    n1 sbw   Y  d}tjt|d t jd W d    n1 sw   Y  tjt|d t jd W d    d S 1 sw   Y  d S )	Nr      )secondsii2zICannot round -106752 days \+00:12:43.145224193 to freq=s without overflowr    zFCannot round 106751 days 23:47:16.854775807 to freq=s without overflow)	r   r   ceilmaxfloorr"   r#   r   r   )r   resultexpectedr%   r   r   r    test_round_implementation_bounds@   s*   "z3TestTimedeltaRound.test_round_implementation_boundsr'   )Z	min_valueZ	max_value)valmethodc                    s   t  tt|} |} fdd}d}|||d d}|||d d}|||d d	}|||d
 d}|||d d}|||d d}|||d d S )Nc                    sJ  |dkrnt | j|\}}t|| }| j| }|| jksJ | j| }|| jks+J d}|dkr2n ju r]| jjkr\tj|d | | W d    d S 1 sUw   Y  d S nz ju r| jjk rtj|d | | W d    d S 1 sw   Y  d S nO||kr| jjkrtj|d | | W d    d S 1 sw   Y  d S n%| jjk rtj|d | | W d    d S 1 sw   Y  d S | |}	|	|  }
t	|
j}||k sJ |	j| dksJ  j
u r||d ksJ d S  ju r|	| ksJ d S  ju r!|	| ks#J d S d S )Nr'   zwithout overflowr   r       )divmod_valueintr)   r*   r"   r#   r+   r   absr   )tsnanosunitdivmoddiffZlbZubr%   restdclserr_clsr0   r   r   checkerf   st   









z5TestTimedeltaRound.test_round_sanity.<locals>.checkerr'   r	   i  r   i@B r   i ʚ;r   l    Xp7 r   l     qar   l     "R: D)r   r   npZint64)r   r/   r0   r=   rA   r7   r   r>   r   test_round_sanityZ   s&   
2z$TestTimedeltaRound.test_round_sanityr8   )r	   r   r   r   c                 C   s   t d|}|d}|t dksJ |j|jksJ |d}|t dks)J |j|jks1J |d}|t dks>J |j|jksFJ d S )Nr   r   r   z1 days 02:34:00)r   Zas_unitr   Z_cresor+   r)   )r   r8   r=   r<   r   r   r   test_round_non_nano   s   


z&TestTimedeltaRound.test_round_non_nanoN)__name__
__module____qualname__r"   markZparametrizer   r   r&   Z
skip_ubsanr.   r   stZintegersr   r   Zi8maxr   r+   r)   rD   rE   r   r   r   r   r      sH    
	
Nr   )Z
hypothesisr   r   rJ   numpyrC   r"   Zpandas._libsr   Zpandas._libs.tslibsr   Zpandas.errorsr   Zpandasr   r   r   r   r   r   <module>   s    