o
    %jW                     @   s  d dl mZ d dl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mZmZmZmZmZ d dlmZ G dd dZd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zejdedddddddd  ejd ej!ej"ej#ej$ej%ej&gd!d" Z'ejd#g d$d%d& Z(d'd( Z)ejd)g d*d+d, Z*ejd)g d-d.d/ Z+ejd0d1ed2d3d4d5d5d6d7fd8ed9d3d4d5d5d6d7fd:ed;d6d<d=d>fd?ed@dAfdBed5dCfdDedEdFfdGedEdHfdIedEdJdKdKd>fdLedEdMfdNed dMfdOedPd dQfdRedEdSfdTedEdEdUfdVedPdSfdWedXdMfdYedEdSfdZed9d4d[fd\ed9d]d[fd^ed2d]d[fgd_d` Z,ejdag dbdcdd Z-ejdeedfdAdgfedEdEdEdEdEdEdEdEdhdifedEdCedEdA djfedEdCedEdA dkfedEdCd=edldA  dmfgdndo Z.dpdq Z/drds Z0dtdu Z1ejdvedwde2dxffedwde2dxffeg dyde2dxffgdzd{ Z3ejd|d}d~ dD dd Z4dd Z5dd Z6dd Z7dS )    )	timedelta)productN)OutOfBoundsTimedelta)NpyDatetimeUnit)IndexNaT	TimedeltaTimedeltaIndexoffsetsto_timedeltac                   @   s   e Zd Zejdg ddd Zejdg ddd Zejd	d
d dD dd dD  dd dD  dd dD  dd dD  dd dD  dd dD  ejdej	e
egdd ZdS )#TestTimedeltaConstructorUnitKeywordunit)YyMc                 C   s   d}t jt|d td| W d    n1 sw   Y  t jt|d td| W d    n1 s5w   Y  t jt|d tddg| W d    d S 1 sTw   Y  d S )Nz/Units 'M', 'Y', and 'y' are no longer supportedmatch
         )pytestraises
ValueErrorr   r   )selfr   msg r   p/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/scalar/timedelta/test_constructors.pytest_unit_m_y_raises   s   "z8TestTimedeltaConstructorUnitKeyword.test_unit_m_y_raiseszunit,unit_depr))hH)minT)sS)msL)nsN)usUc                 C   sb   d| d}t d|d}tjt|d t d|d}W d    n1 s$w   Y  t|| d S )N'8' is deprecated and will be removed in a future version.r   r   r   )r   tmassert_produces_warningFutureWarningZassert_equal)r   r   Z	unit_deprr   expectedresultr   r   r   !test_units_H_T_S_L_N_U_deprecated#   s   zETestTimedeltaConstructorUnitKeyword.test_units_H_T_S_L_N_U_deprecatedzunit, np_unitc                 C      g | ]}|d fqS )Wr   .0valuer   r   r   
<listcomp>9       z.TestTimedeltaConstructorUnitKeyword.<listcomp>)r4   wc                 C   r3   )Dr   r5   r   r   r   r8   :   r9   )r;   ddaysdayZDaysDayc                 C   r3   )mr   r5   r   r   r   r8   ;       )r@   minuter    minutesMinuteZMinZMinutesc                 C   r3   )r"   r   r5   r   r   r   r8   G   rA   )r"   secondssecsecondZSecondsZSecSecondc                 C   r3   )r$   r   r5   r   r   r   r8   S   rA   )
r$   millisecondsZmillisecondZmilliZmillisZMSZMillisecondsZMillisecondMilliZMillisc                 C   r3   )r(   r   r5   r   r   r   r8   b   rA   )r(   microsecondsmicrosecondmicromicrosuZUSZMicrosecondsZMicrosecondMicroZMicrosr)   c                 C   r3   )r&   r   r5   r   r   r   r8   s   rA   )r&   nanosecondsZ
nanosecondZnanoZnanosnZNSZNanosecondsZ
NanosecondNanoZNanosr'   wrapperc           	         s  t  fddtd D dd}d d} fdv r!t}nt}d	}tj||d
 t|tdd}t	|| t |tdd}t	|| fddtdD }t||}t	|| t||}t	|| t
td d}tdd}||ksJ t
dd}||ksJ td }||ksJ t
d }||ksJ W d    d S 1 sw   Y  d S )Nc                    s   g | ]}t | qS r   )nptimedelta64)r6   i)np_unitr   r   r8          zHTestTimedeltaConstructorUnitKeyword.test_unit_parser.<locals>.<listcomp>   m8[ns])dtyper*   r+   ))rO   r(   )r)   r(   )rR   r&   )r'   r&   z?The 'unit' keyword in TimedeltaIndex construction is deprecatedr   r,   c                    s   g | ]}|   qS r   r   )r6   xr,   r   r   r8      rY   r   ztimedelta64[ns]2)r	   rU   Zarangetolistr/   r-   r.   r   rangeZassert_index_equalr   rV   astype)	r   r   rX   rT   r0   r   warnr1   Zstr_reprr   )rX   r   r   test_unit_parser7   s:   R"z4TestTimedeltaConstructorUnitKeyword.test_unit_parserN)__name__
__module____qualname__r   markparametrizer   r2   rU   arraylistr   rc   r   r   r   r   r      sH    

	):Nr   c                  C   s~   d} t jt| d tdd W d    n1 sw   Y  d} t jt| d tdd W d    d S 1 s8w   Y  d S )NzKseconds=86400000000000000000, milliseconds=0, microseconds=0, nanoseconds=0r   i@B r=   zKseconds=60000000000000000000, milliseconds=0, microseconds=0, nanoseconds=0 ʚ;rC   r   r   r   r   r   r   r   r   #test_construct_from_kwargs_overflow   s   "rp   c                   C   sz   t jtdd tddd W d    n1 sw   Y  t jtdd tddd W d    d S 1 s6w   Y  d S )Nzwithout overflowr        NZor4   r,   g NgmCrn   r   r   r   r   'test_construct_with_weeks_unit_overflow   s   "rr   c                  C   s   t dd} tjtdd t| dd W d    n1 sw   Y  tjtdd t| dd W d    n1 s;w   Y  tjtdd t|  W d    d S 1 sWw   Y  d S )Nl    J.mr   z123456789000000000 hoursr   Zpsr,   r&   )rU   rV   r   r   r   r   )objr   r   r   "test_construct_from_td64_with_unit   s   
"rt   c                  C   s   t dd} t| }|j| dksJ |jtjjksJ t dd}t|}|jtj	jks0J ||ks6J |j
dks=J t dd}t|}| dksOJ |jtjjksXJ d S )	Ni90  r$   i8i  r;   rq   r(   l    J))rU   rV   r   _valueview_cresor   	NPY_FR_msr7   NPY_FR_sr=   total_seconds	NPY_FR_us)rs   tdobj2td2Zobj3Ztd3r   r   r    test_from_td64_retain_resolution   s   r   c                  C   s:   t ddd} t| }| | ksJ |jtjjksJ d S )N      )r=   rC   )r   r   Zto_pytimedeltarx   r   r|   r7   )r}   r1   r   r   r   test_from_pytimedelta_us_reso   s   r   c                  C   s   t  } t| jtjjksJ t  } t| jtjjksJ t 	 } t| jtj
jks-J t  } t| jtjjks<J t  } t| jtjjksKJ t  } t| jtjjksZJ t  } t| jtjjksiJ d S N)r
   rS   r   rx   r   Z	NPY_FR_nsr7   rP   r|   rJ   ry   rH   rz   rD   Hourr?   )Ztickr   r   r   test_from_tick_reso   s   r   c                  C   s  t dddd} tdddj| ksJ tdddj| ks"J tdj| ks+J tdd	j| ks5J tdd	j| ks?J | t dd
dd7 } tdj| ksVJ tdddj| ksaJ tdddj| kslJ tdddj| kswJ tdjdksJ dttdv sJ tdjdksJ dttdv sJ tdtddksJ tdtddksJ tdtdd ksJ tdtdd ksJ tdtddksJ tdtddksJ tdtddksJ tdtddksJ td tdd ksJ td!tdd"ksJ td#td$d%ksJ td&tdd"ks(J td'tdd"ks4J td(tdd%ks@J td)tdd%ksLJ td*tdd%ksXJ td+tdd,ksdJ td-tdd,kspJ td.tdd,ks|J td/tdd0ksJ td1tdd0ksJ td2tdd0ksJ td3tdd0ksJ td4td5ksJ td6td7ksJ td8td7ksJ td9td7ksJ td:tddd;ksJ td<tddd;ksJ td=tddddd>ksJ td?tddddd> ksJ td?tddddd> ks!J td@tdddddAdB ks2J tdCtddddDdAdB ksCJ dE}tj	t
|dF tdG W d    n	1 s\w   Y  tj	t
|dF tdH W d    n	1 sxw   Y  dI}tj	t
|dF tdJ W d    n	1 sw   Y  dK}tj	t
|dF t  W d    n	1 sw   Y  dL}tj	t
|dF tdM W d    n	1 sw   Y  dN}tj	t
|dF tddO W d    n	1 sw   Y  t dd
ddt dPdQdd } tdRd
dj| ksJ ttdStdSdks(J ttdStdSdks7J ttdStdSd%ksFJ tdT} tdT}|| ksUJ ttdStdUkscJ dL}tj	t
|dF tdV W d    d S 1 s}w   Y  d S )WNr   r;   r[   ru   r<   r,   g      $@z10 daysrk   r"   z10 days 00:00:10r=   rE   i'  )r=   rI   i )r=   rK   l   >P- z0 days 22:58:59.999850l   @B]? z1 days 10:11:12.001z0:00:00r   )hoursz00:00:00z-1:00:00r   z	-01:00:00z1 hz1 hourz1 hrz1 hoursz-1 hoursz1 mrm   z1.5 mZ   rE   1 minutez	1 minutesz1 sz1 secondz	1 secondsz1 msrI   z1 milliz1 millisecondz1 usrK   u   1 µsz1 microsz1 microsecondz1.5 microsecondz00:00:00.000001500z1 nsz00:00:00.000000001z1 nanoz1 nanosecondz10 days 1 hourr=   r   z10 days 1 hz10 days 1 h 1m 1sr=   r   rC   rE   z-10 days 1 h 1m 1sz-10 days 1 h 1m 1s 3usr   )r=   r   rC   rE   rK   z-10 days 1 h 1.5m 1s 3us   'only leading negative signs are allowedr   z-10 days -1 h 1.5m 1s 3usz10 days -1 h 1.5m 1s 3uszno units specifiedz3.1415zcannot construct a Timedeltazunit abbreviation w/o a numberZfoozMcannot construct a Timedelta from the passed arguments, allowed keywords are )r>   i  r$   g      %@r   Z1hz0 days, 02:00:00zfoo bar)rU   rV   ra   rw   r   rv   strr   r   r   r   r   r
   r   rH   )r0   r   r1   r   r   r   test_construction  s   






$r   itemr;   r"   r(   r$   r@   r   r4   )r=   rE   rK   rI   rC   r   weeksnpdtypec                 C   sD   |\}}t d|dd}tdi || dij|ks J d S )Nr   r[   ru   r   )rU   rV   ra   rw   r   rv   )r   r   ZpykwargZnpkwargr0   r   r   r   #test_td_construction_with_np_dtypes  s   $r   val)Z1sz-1sZ1usz-1usz1 dayz-1 dayz-23:59:59.999999z-1 days +23:59:59.999999z-1nsZ1nsz-23:59:59.999999999c                 C   s^   t | }t |j|ksJ t t||ksJ t |jdd|ks#J t | |ks-J d S )Nall)format)r   rv   r   Z
_repr_base)r   r}   r   r   r   test_td_from_repr_roundtrip  s
   r   c                  C   s   t djd } d}tjt|d t |  W d    n1 sw   Y  d}tjt|d t ddd W d    n1 s>w   Y  t td	d
}|jtjj	ksSJ |j
d	ksZJ d S )NZ1dayi3zCCannot cast 1742682816000000000000 from ns to 'ns' without overflowr   z2Cannot cast 139993 from D to 'ns' without overflowi" r;   r,   i rk   )r   rv   r   r   r   r   rx   r   r|   r7   r=   )r7   r   r}   r   r   r   test_overflow_on_construction  s   
r   z	val, unit))i;  r4   )i  r;   )i ' r   )i)	r@   )l   }K r"   c                 C   s&  t | |}|dddk sJ t|}|dkr!|j|ks!J |jjdks)J d}tjt	|d |
d W d    n1 sBw   Y  t|d	 |d	 ksSJ |d
9 }|dddkscJ t|}d}tjt	|d |
d W d    n1 sw   Y  t|d	 |d	 ksJ d S )Nr[   ru   r   r   zm8[s]z:Cannot cast 1067\d\d days .* to unit='ns' without overflowr   r&   r   z;Cannot cast -1067\d\d days .* to unit='ns' without overflow)rU   rV   ra   rw   r   asm8r\   r   r   r   as_unit)r   r   td64r}   r   r   r   r   r   &test_construction_out_of_bounds_td64ns  s&   r   ))l    ~L{7r4   )l     F\ r;   )l     hH r   )l    r@   c                 C   sb   t | |}tjtt|d t| W d    n1 sw   Y  t|d |d ks/J d S )Nr   rl   )rU   rV   r   r   r   r   r   )r   r   r   r   r   r   %test_construction_out_of_bounds_td64s  s
   

r   zfmt,expzP6DT0H50M3.010010012S   2   r   r      )r=   rC   rE   rI   rK   rQ   zP-6DT0H50M3.010010012SiZP4DT12H30M5Sr      rZ   r   zP0DT0H0M0.000000123S{   rQ   zP0DT0H0M0.00001Sr   zP0DT0H0M0.001Sr   r   Z
P0DT0H1M0Srm   ZP1DT25H61M61S   =   ZPT1Sr   ZPT0SZP1WT0S   r   ZP1Drk   ZP1DT1Hr   ZP1WZPT300Si,  ZP1DT0H0M00000000000SzPT-6H3M)r   rC   z-PT6H3Mz	-PT-6H+3Mc                 C   s   t | |ksJ d S r   r   )fmtexpr   r   r   test_iso_constructor  s   -r   r   )ZPPPPPPPPPPPPZPDTHMSZP0DT999H999M999SzP1DT0H0M0.0000000000000SzP1DT0H0M0.SPz-Pc                 C   sF   d|  }t jt|d t|  W d    d S 1 sw   Y  d S )Nz#Invalid ISO 8601 Duration format - r   r   r   r   r   )r   r   r   r   r   test_iso_constructor_raises4  s   

"r   zconstructed_td, conversiond   Z100ns)r=   r   rC   r   rE   rI   rK   rQ   l   )D^_ Z1us1nsZ999nsZ990nsc                 C   s   | t |ksJ d S r   r   )Zconstructed_td
conversionr   r   r   "test_td_constructor_on_nanosecondsF  s   r   c                  C   sB   d} t jt| d tdd W d    d S 1 sw   Y  d S )Nz1Invalid type <class 'str'>. Must be int or float.r   abcr   )r   r   	TypeErrorr   ro   r   r   r   test_td_constructor_value_errora  s   "r   c                  C   s(   t tdd} t | }|| u sJ d S )Nr   r"   )r   rU   rV   )r0   r1   r   r   r   #test_timedelta_constructor_identityg  s   r   c                  C   sN   t dd} d}tjt|d t | dd W d    d S 1 s w   Y  d S )Nr   rk   zRCannot pass both a Timedelta input and timedelta keyword arguments, got \['days'\]r   r   )r   r   r   r   )r}   r   r   r   r   (test_timedelta_pass_td_and_kwargs_raisesn  s   
"r   z%constructor, value, unit, expectationZ10szunit must not be specified)1r   r   c                 C   sH   |\}}t j||d | ||d}W d    d S 1 sw   Y  d S )Nr   r,   )r   r   )constructorr7   r   Zexpectationr   r   _r   r   r   test_string_with_unity  s   	"r   r7   c                 C   s(   g | ]}t d |dD ]}d|q
qS )z+-, )repeat )r   join)r6   Z
repetitionelementsr   r   r   r8     s    
r8   )r   r   c                 C   sL   | dkrdnd}t jt|d t|  W d    d S 1 sw   Y  d S )Nz--zsymbols w/o a numberr   r   r   )r7   r   r   r   r   test_string_without_numbers  s   
"r   c                  C   s    t dd} t| tu sJ d S )Nr   r   )rU   rV   r   r   )Znatr   r   r   test_timedelta_new_npnat  s   r   c                  C   s*   G dd dt } | d}t|| sJ d S )Nc                   @   s   e Zd ZdS )z2test_subclass_respected.<locals>.MyCustomTimedeltaN)rd   re   rf   r   r   r   r   MyCustomTimedelta  s    r   r   )r   
isinstance)r   r}   r   r   r   test_subclass_respected  s   r   c                  C   s   t ddddj} | dksJ d}t dddd }tjt|d |j W d    n1 s1w   Y  |jd	} | d
ksBJ d S )Nr   r;   r,   r"   l     ,Z6G zCannot convert Timedelta to nanoseconds without overflow. Use `.asm8.view\('i8'\)` to cast represent Timedelta in its own unit \(here, s\).$i  r   ru   l    `;P )r   r   r7   r   r   OverflowErrorr   rw   )r1   r   r}   r   r   r   test_non_nano_value  s   r   )8datetimer   	itertoolsr   numpyrU   r   Zpandas._libs.tslibsr   Zpandas._libs.tslibs.dtypesr   Zpandasr   r   r   r	   r
   r   Zpandas._testingZ_testingr-   r   rp   rr   rt   r   r   r   r   rg   rh   rj   itemsZint64Zint32Zint16Zfloat64Zfloat32Zfloat16r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s     
	}



!
		
,




	