o
    ҷh                     @   sb   d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ dZG dd dZdS )	    N)_period_code_map)INVALID_FREQ_ERR_MSG)OutOfBoundsDatetime)Period	Timestampoffsetsz#Period with BDay freq is deprecatedc                   @   s   e Zd ZdZejdejd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dd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)S )*TestFreqConversionz)Test frequency conversion of date objectsz%ignore:Period with BDay:FutureWarningfreq)AQMWBDc                 C   sX   t d|d}|j|j|jf}|d }|j|jd ksJ |j|j|jf}||k s*J d S )N
0001-01-01r	      )r   yearhourdayordinalmonth)selfr	   pertup1prevtup2 r   Y/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/scalar/period/test_asfreq.pytest_asfreq_near_zero   s   z(TestFreqConversion.test_asfreq_near_zeroc                 C   sh   t ddd }t ddd }|d}|d}||ksJ |dd|ks(J |dd|ks2J d S )Nr   r      r   ES)r   asfreq)r   per1per2week1week2r   r   r   test_asfreq_near_zero_weekly    s   

z/TestFreqConversion.test_asfreq_near_zero_weeklyc              	   C   s   t jttd tddd}W d    n1 sw   Y  d}tjt|d, t jttd |  W d    n1 s=w   Y  W d    d S W d    d S 1 sUw   Y  d S )Nmatchr   r   r   z"Out of bounds nanosecond timestamp)	tmassert_produces_warningFutureWarningbday_msgr   pytestraisesr   to_timestamp)r   r   msgr   r   r   test_to_timestamp_out_of_bounds*   s   
"z2TestFreqConversion.test_to_timestamp_out_of_boundsc                 C   sl   t ddd}|d}|d}t ddd}|j|jksJ |jdks%J |j|jks-J |jd	ks4J d S )
Nr
     r	   r   5ttz2007-12-31 23:59r   5TT)r   r#   r   freqstr)r   valresult1result2expectedr   r   r   test_asfreq_corner3   s   

z%TestFreqConversion.test_asfreq_cornerc              	   C   s"  t ddd}t ddd}t ddd}t ddd}t dddd	}t ddd
d	}t dddd}t dddd}t ddddd}	t ddddd}
tjttd t ddddd}t ddddd}W d    n1 sfw   Y  t ddddd}t ddddd}t dddddd}t dddddd}t ddddddd}t ddddddd}t dddddddd}t dddddddd}t ddddd}t ddddd}t dddd d}t ddd!dd}t ddd"d d}t ddddd}|dd|ksJ |dd#|ksJ |dd$|ksJ |dd%|ksJ |dd|	ksJ |dd%|
ks'J tjttd |dd|ks:J |dd%|ksEJ W d    n	1 sPw   Y  |dd|ks`J |dd%|kskJ |dd|ksvJ |dd%|ksJ |d&d|ksJ |d&d%|ksJ |d'd|ksJ |d'd%|ksJ |dd|ksJ |dd%|ksJ |dd|ksJ |dd%|ksJ |dd|ksJ |dd%|ksJ |dd|ksJ |dd%|ksJ |d|ksJ d S )(Nr
   r4   r5   A-JANA-JUNzA-NOVr   r   r	   r   quarter   r   r	   r   r      r   r	   r   r   r      r)   r   r   Hr   r	   r   r   r   r      Minr	   r   r   r   r   minute;   r"   r	   r   r   r   r   rN   second     r             esr!   minr9   r   r+   r,   r-   r.   r#   )r   ival_A	ival_AJAN	ival_AJUN	ival_ANOVival_A_to_Q_startival_A_to_Q_endival_A_to_M_startival_A_to_M_endival_A_to_W_startival_A_to_W_endival_A_to_B_startival_A_to_B_endival_A_to_D_startival_A_to_D_endival_A_to_H_startival_A_to_H_endival_A_to_T_startival_A_to_T_endival_A_to_S_startival_A_to_S_endival_AJAN_to_D_endival_AJAN_to_D_startival_AJUN_to_D_endival_AJUN_to_D_startival_ANOV_to_D_endival_ANOV_to_D_startr   r   r   test_conv_annual=   s~   z#TestFreqConversion.test_conv_annualc              	   C   s  t dddd}t dddd}t dddd}t dddd}t ddd	}t d
ddd}t d
ddd}t ddddd}t ddddd}	tjttd t ddddd}
t ddddd}W d    n1 sbw   Y  t ddddd}t ddddd}t dddddd}t dddddd}t ddddddd}t ddddddd}t dddddddd}t dddddddd}t ddddd}t ddddd}t ddddd}t ddd dd}|d|ksJ |d|ksJ |d
d|ksJ |d
d!|ksJ |dd|ksJ |dd!|	ksJ tjttd |dd|
ks"J |dd!|ks-J W d    n	1 s8w   Y  |dd|ksHJ |dd!|ksSJ |dd|ks^J |dd!|ksiJ |dd|kstJ |dd!|ksJ |dd|ksJ |dd!|ksJ |dd|ksJ |dd!|ksJ |dd|ksJ |dd!|ksJ |d|ksJ d S )"Nr   r4   r   rB   rD   Q-JANQ-JUNr
   r5   r   rE      r   rG   rH   r)   r   rT   r   rI   r   rJ   rK   rL   rM   rO   r"   rP   rR   rS   rU   	   r!   rZ   )r   ival_Qival_Q_end_of_year
ival_QEJAN
ival_QEJUNival_Q_to_Aival_Q_to_M_startival_Q_to_M_endival_Q_to_W_startival_Q_to_W_endival_Q_to_B_startival_Q_to_B_endival_Q_to_D_startival_Q_to_D_endival_Q_to_H_startival_Q_to_H_endival_Q_to_T_startival_Q_to_T_endival_Q_to_S_startival_Q_to_S_endival_QEJAN_to_D_startival_QEJAN_to_D_endival_QEJUN_to_D_startival_QEJUN_to_D_endr   r   r   test_conv_quarterly   sp   z&TestFreqConversion.test_conv_quarterlyc              	   C   s  t dddd}t dddd}t dddd}t ddd}t d	ddd
}t ddddd}t ddddd}tjttd t ddddd}t ddddd}	W d    n1 sTw   Y  t ddddd}
t ddddd}t dddddd}t dddddd}t ddddddd}t ddddddd}t dddddddd}t dddddddd}|d|ksJ |d|ksJ |d	|ksJ |d	|ksJ |dd|ksJ |dd|ksJ tjttd |dd|ksJ |dd|	ksJ W d    n	1 sw   Y  |dd|
ksJ |dd|ksJ |dd|ks*J |dd|ks5J |dd|ks@J |dd|ksKJ |dd|ksVJ |dd|ksaJ |d|kskJ d S )Nr   r4   r   rE   rF   rx   r
   r5   r   rB   r   rG   rH   r)   r   r   rI   r   rJ   rK   rL   rM   rO   r"   rP   r!   rZ   )r   ival_Mival_M_end_of_yearival_M_end_of_quarterival_M_to_Aival_M_to_Qival_M_to_W_startival_M_to_W_endival_M_to_B_startival_M_to_B_endival_M_to_D_startival_M_to_D_endival_M_to_H_startival_M_to_H_endival_M_to_T_startival_M_to_T_endival_M_to_S_startival_M_to_S_endr   r   r   test_conv_monthly   s\   z$TestFreqConversion.test_conv_monthlyc           +   	   C   sL  t ddddd}t ddddd}t ddddd}t dddd	d}t d
dddd}t ddddd}t ddddd}t ddddd}t ddddd}	t ddddd}
t ddddd}t ddddd}t ddddd}t dddd	d}t ddddd}t ddddd}t ddddd}t ddddd}t ddddd}t ddddd}t ddddd}t ddddd}t ddddd}t ddddd}t ddddd}t ddd}t dddd}t dddd}t dddddjdkrt ddd}nt dd d}t dddddjdkrt dddd}nt dddd}t dddddjdkr#t dddd}nt dddd}tjttd! t d"dddd} t d"ddd	d}!W d    n	1 sMw   Y  t ddddd}"t ddddd}#t d#dddd$d%}$t d#dddd&d%}%t d'dddd$d$d(}&t d'dddd&d)d(}'t d*dddd$d$d$d+}(t d*dddd&d)d)d+})|d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ tjttd! |d"d*| ksJ |d"d,|!ksJ W d    n	1 sw   Y  |dd*|"ksJ |dd,|#ksJ |dd*|	ks)J |dd,|
ks4J |dd*|ks?J |dd,|ksJJ |dd*|ksUJ |dd,|ks`J |dd*|kskJ |dd,|ksvJ |dd*|ksJ |dd,|ksJ |dd*|ksJ |dd,|ksJ |dd*|ksJ |dd,|ksJ |d#d*|$ksJ |d#d,|%ksJ |d'd*|&ksJ |d'd,|'ksJ |d*d*|(ksJ |d*d,|)ksJ |d|ksJ t}*tj	t
|*d! |d- W d    d S 1 sw   Y  d S ).Nr   r4   r   rG   rU   zW-SATr    zW-FRI   zW-THUrD   zW-WEDrx   zW-TUErS   zW-MONr   rR   rF   rH   rT               r
   r5   r   rB   r   rE     r)   r   rI   r   rJ   rK   rL   rM   rO   r"   rP   r!   WK)r   weekdayr+   r,   r-   r.   r#   r   r/   r0   
ValueError)+r   ival_W	ival_WSUN	ival_WSAT	ival_WFRI	ival_WTHU	ival_WWED	ival_WTUE	ival_WMONival_WSUN_to_D_startival_WSUN_to_D_endival_WSAT_to_D_startival_WSAT_to_D_endival_WFRI_to_D_startival_WFRI_to_D_endival_WTHU_to_D_startival_WTHU_to_D_endival_WWED_to_D_startival_WWED_to_D_endival_WTUE_to_D_startival_WTUE_to_D_endival_WMON_to_D_startival_WMON_to_D_endival_W_end_of_yearival_W_end_of_quarterival_W_end_of_monthival_W_to_Aival_W_to_Qival_W_to_Mival_W_to_A_end_of_yearival_W_to_Q_end_of_quarterival_W_to_M_end_of_monthival_W_to_B_startival_W_to_B_endival_W_to_D_startival_W_to_D_endival_W_to_H_startival_W_to_H_endival_W_to_T_startival_W_to_T_endival_W_to_S_startival_W_to_S_endr2   r   r   r   test_conv_weekly   s   $z#TestFreqConversion.test_conv_weeklyc                 C   s  t }tjt|d tddddd W d    n1 sw   Y  tjt|d tddddd W d    n1 s;w   Y  tjt|d tdddd	d W d    n1 sZw   Y  tjt|d td
dddd W d    n1 syw   Y  tjt|d tddddd W d    n1 sw   Y  tjt|d tddddd W d    n1 sw   Y  tjt|d tddddd W d    d S 1 sw   Y  d S )Nr)   r   r4   r   rG   zWK-SATr    zWK-FRIr   zWK-THUrD   zWK-WEDrx   zWK-TUErS   zWK-MON)r   r/   r0   r   r   )r   r2   r   r   r   test_conv_weekly_legacyl  s,   "z*TestFreqConversion.test_conv_weekly_legacyc              	   C   s  t jttd0 tddddd}tddddd}tdddd	d}tddddd}tdddd
d}W d    n1 s:w   Y  tddd}tdddd}tdddd}tddddd}	tddddd}
tdddddd}tdddddd}tddddddd}tddddddd}tdddddddd}tdddddddd}|d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|	ksJ |d|	ksJ |d|
ksJ |dd|ksJ |dd|ksJ |dd|ksJ |dd|ksJ |dd|ks&J |dd|ks1J t jttd |d|ksCJ W d    d S 1 sOw   Y  d S )Nr)   r   r4   r   rG   rF   rH   rx   rT   r   r
   r5   r   rB   r   rE   r   rU   r   rI   r   rJ   rK   rL   rM   rO   r"   rP   r!   )r+   r,   r-   r.   r   r#   )r   ival_Bival_B_end_of_yearival_B_end_of_quarterival_B_end_of_monthival_B_end_of_weekival_B_to_Aival_B_to_Qival_B_to_Mival_B_to_Wival_B_to_Dival_B_to_H_startival_B_to_H_endival_B_to_T_startival_B_to_T_endival_B_to_S_startival_B_to_S_endr   r   r   test_conv_business  sX   $z%TestFreqConversion.test_conv_businessc              	   C   s  t ddddd}t ddddd}t ddddd}t ddddd}t ddddd}t dddd	d}t dddd
d}t ddddd}tjttd t dddd	d}	t ddddd}
W d    n1 sbw   Y  t ddd}t ddd}t ddd}t ddd}t dddd}t dddd}t dddd}t dddd}t ddddd}t dddddd}t dddddd}t d dddddd!}t d ddddd"d!}t d#ddddddd$}t d#ddddd"d"d$}|d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d%|ksJ |d|ks"J |d|ks,J |d|ks6J |d|ks@J |d|ksJJ |d|ksTJ |d|ks^J tjttd> |d|	kspJ |dd#|	ks{J |dd&|
ksJ |dd#|	ksJ |dd&|
ksJ W d    n	1 sw   Y  |dd#|ksJ |dd&|ksJ |d d#|ksJ |d d&|ksJ |d#d#|ksJ |d#d&|ksJ |d|ksJ d S )'Nr   r4   r   rG   rF   rH   rx   rU   r   r    r)   r      r
   r5   r@   r   rA   zA-DECrv   rD   rB   rw   zQ-DECr   rE   r   rI   r   rJ   rK   rL   rM   rO   r"   rP   r   r!   rZ   )r   ival_Dival_D_end_of_yearival_D_end_of_quarterival_D_end_of_monthival_D_end_of_weekival_D_fridayival_D_saturdayival_D_sundayival_B_fridayival_B_mondayival_D_to_Aival_Deoq_to_AJANival_Deoq_to_AJUNival_Deoq_to_ADECival_D_to_QEJANival_D_to_QEJUNival_D_to_QEDECival_D_to_Mival_D_to_Wival_D_to_H_startival_D_to_H_endival_D_to_T_startival_D_to_T_endival_D_to_S_startival_D_to_S_endr   r   r   test_conv_daily  s|   z"TestFreqConversion.test_conv_dailyc              	   C   s  t dddddd}t dddddd}t ddd	ddd}t dddddd}t dddd
dd}t dddddd}t dddddd}t ddd}t dddd}	t dddd}
t dddd
d}t ddddd}tjttd t ddddd}W d    n1 s}w   Y  t ddddddd}t ddddddd}t dddddddd}t dddddddd}|d|ksJ |d|ksJ |d|	ksJ |d|	ksJ |d|
ksJ |d|
ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ tjttd |d|ksJ |d|ks#J W d    n	1 s.w   Y  |dd|ks>J |dd|ksIJ |dd|ksTJ |dd|ks_J |d|ksiJ d S )NrI   r4   r   r   rJ   rF   rH   rK   rx   rU   r
   r5   r   rB   r   rE   r   rG   r   r)   r   rL   rM   rO   r"   rP   r!   rZ   )r   ival_Hival_H_end_of_yearival_H_end_of_quarterival_H_end_of_monthival_H_end_of_weekival_H_end_of_dayival_H_end_of_busival_H_to_Aival_H_to_Qival_H_to_Mival_H_to_Wival_H_to_Dival_H_to_Bival_H_to_T_startival_H_to_T_endival_H_to_S_startival_H_to_S_endr   r   r   test_conv_hourly  s\   z#TestFreqConversion.test_conv_hourlyc              	   C   s  t ddddddd}t dddddd	d}t ddd
ddd	d}t dddddd	d}t dddddd	d}t dddddd	d}t dddddd	d}t dddddd	d}t ddd}	t dddd}
t dddd}t ddddd}t ddddd}tjttd t ddddd}W d    n1 sw   Y  t dddddd}t dddddddd}t ddddddd	d}|d|	ksJ |d|	ksJ |d|
ksJ |d|
ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ tjttd |d|ks J |d|ks*J W d    n	1 s5w   Y  |d|ksDJ |d|ksNJ |dd|ksYJ |dd|ksdJ |d|ksnJ d S )NrL   r4   r   r   rM   rF   rH   rK   rO   rx   rU   r
   r5   r   rB   r   rE   r   rG   r   r)   r   rI   rJ   r"   rP   r!   rZ   )r   ival_Tival_T_end_of_yearival_T_end_of_quarterival_T_end_of_monthival_T_end_of_weekival_T_end_of_dayival_T_end_of_busival_T_end_of_hourival_T_to_Aival_T_to_Qival_T_to_Mival_T_to_Wival_T_to_Dival_T_to_Bival_T_to_Hival_T_to_S_startival_T_to_S_endr   r   r   test_conv_minutely4  sp   z%TestFreqConversion.test_conv_minutelyc              	   C   s  t dddddddd}t dddddd	d	d}t ddd
ddd	d	d}t dddddd	d	d}t dddddd	d	d}t dddddd	d	d}t dddddd	d	d}t dddddd	d	d}t ddddddd	d}	t ddd}
t dddd}t dddd}t ddddd}t ddddd}tjttd t ddddd}W d    n1 sw   Y  t dddddd}t ddddddd}|d|
ksJ |d|
ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ |d|ksJ tjttd |d|ks(J |d|ks2J W d    n	1 s=w   Y  |d|ksLJ |d|ksVJ |d|ks`J |	d|ksjJ |d|kstJ d S )Nr"   r4   r   r   rP   rF   rH   rK   rO   rx   rU   r
   r5   r   rB   r   rE   r   rG   r   r)   r   rI   rJ   rL   rM   rZ   )r   ival_Sival_S_end_of_yearival_S_end_of_quarterival_S_end_of_monthival_S_end_of_weekival_S_end_of_dayival_S_end_of_busival_S_end_of_hourival_S_end_of_minuteival_S_to_Aival_S_to_Qival_S_to_Mival_S_to_Wival_S_to_Dival_S_to_Bival_S_to_Hival_S_to_Tr   r   r   test_conv_secondlys  sl   z%TestFreqConversion.test_conv_secondlyc                 C   s   t ddd}|jdksJ |j}td}||ksJ |j|jd ks$J t dd}d}tjt|d |j W d    n1 s@w   Y  tjt|d |j W d    d S 1 s[w   Y  d S )	Nz2020-01-30 15:57:27.576166Ur   l   f	vu, i  z
2300-01-01usr)   )	r   r   
start_timer   _valuer/   r0   r   end_time)r   r   startr>   r%   r2   r   r   r   test_conv_microsecond  s   
"z(TestFreqConversion.test_conv_microsecondc                 C   s  t ddd}dtdfD ]#}||}t ddd}||ks J |j|jks(J |j|jks0J qdtdfD ]%}|j|dd	}t ddd}||ksMJ |j|jksUJ |j|jks]J q8t ddd}dt fD ]#}||}t d
dd}||ks}J |j|jksJ |j|jksJ qjdt fD ]%}|j|dd	}t ddd}||ksJ |j|jksJ |j|jksJ qt ddd}dtdfD ]#}||}t ddd}||ksJ |j|jksJ |j|jksJ qdtdfD ](}|j|dd	}t ddd}||ksJ |j|jksJ |j|jksJ qt ddd}dtdfD ]'}||}t ddd}||ks<J |j|jksEJ |j|jksNJ q(dtdfD ])}|j|dd	}t ddd}||ksmJ |j|jksvJ |j|jksJ qWd S )Nr
   r4   r5   3Arx   2007r   r"   how20092MrS   z2007-12z2007-01z2009-12)r   r   YearEndr#   r   r	   MonthEnd)r   pr	   resultr>   r   r   r   test_asfreq_mult  sj   



z#TestFreqConversion.test_asfreq_multc           
      C   s  t ddd}t ddd}tddgddgD ]!\}}|j||d	}||ks&J |j|jks.J |j|jks6J qt dd
d}t dd
d}|d}|d}	t ddd}||ksYJ |j|jksaJ |j|jksiJ |	|ksoJ |	j|jkswJ |	j|jksJ |jddd	}|jddd	}	t ddd}||ksJ |j|jksJ |j|jksJ |	|ksJ |	j|jksJ |	j|jksJ d S )NrB  rI   r   25H1D1H1H1Dr!   r"   rC  r4   r5   z
2007-01-02z
2007-01-01)r   zipr#   r   r	   )
r   rI  r>   r	   rD  rJ  p1p2r<   r=   r   r   r   test_asfreq_combined  s6   

z'TestFreqConversion.test_asfreq_combinedc                 C   s   t d}|jdddt ddksJ t}tjt|d |jddd W d    n1 s-w   Y  tjt|d t dd W d    n1 sIw   Y  tdd u sWJ d S )N2013r   r"   )r	   rD  z2013-01r)   MS)r   r#   r   r/   r0   r   r   get)r   initialr2   r   r   r   test_asfreq_MS-  s   z!TestFreqConversion.test_asfreq_MSN)__name__
__module____qualname____doc__r/   markfilterwarningsparametrizer   r(   r3   r?   ru   r   r   r   r   r   r  r  r'  r9  r@  rK  rR  rW  r   r   r   r   r      s,    


	
IB3q3M5?;G&r   )r/   pandas._libs.tslibs.dtypesr   pandas._libs.tslibs.periodr   pandas.errorsr   pandasr   r   r   pandas._testing_testingr+   r.   r   r   r   r   r   <module>   s    