a
    d9                     @   s  d dl m Z mZ d dlZd dlZd dlmZm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mZmZmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZmZ ej eddfedddfedddfedddfe!dddfedddfedddfgddd Z"dd eD dd dD  g d  d!d e#dd"D  d#d eD  Z$ej%&d$e$ej%&d%d"d&gd'd( Z'd)d* Z(d+d, Z)d-d. Z*d/d0 Z+d1d2 Z,d3d4 Z-d5d6 Z.d7d8 Z/d9d: Z0d;d< Z1d=d> Z2ej%&d?e#dd"d@dA Z3ej%&dBdCdD dEdD gdFdG Z4ej%&dHg dIdJdK Z5ej%&dLe6g dMg dNg dOg dPg dQg dRdS7 dTdU Z8dVdW Z9ej%&dXdYdZgd[d\gd]d^ggej%&d$g d_d`da Z:dbdc Z;ej%&ddg dedfg dfdgfg dhdgfg didgfgdjdk Z<dldm Z=dndo Z>ej%&dpe?dqe@dqeAdqeBdqgdrds ZCej%jDe dtdudvdw ZEdxdy ZFdzd{ ZGej%&d|dqd}gd~d ZHdd ZIej%&d$ddgdd ZJej%&d$g ddd ZKej%&de	ddD gej%&d$g ddd ZLdd ZMdd ZNdd ZOdS )    )datetime	timedeltaN)DAYSMONTHS)_get_offset)INVALID_FREQ_ERR_MSG)is_platform_windows)DatetimeIndexIndexSeries	Timestamp
date_rangeperiod_range)DatetimeArrayTimedeltaArray)to_datetime)frequenciesoffsets   D)hoursH)minutesT)secondsSnsN)microsecondsUi  L)paramsc                 C   s   | j S N)param)request r%   x/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/tseries/frequencies/test_inference.pybase_delta_code_pair&   s    r'   c                 C   s   g | ]}d | qS )Q-r%   ).0monthr%   r%   r&   
<listcomp>6       r+   c                 C   s$   g | ]}t D ]}| d | qqS )-)r   )r)   Zannualr*   r%   r%   r&   r+   7   r,   )AZBA)MZBMZBMSc                 C   s$   g | ]}t D ]}d | | qqS )zWOM-)r   )r)   countdayr%   r%   r&   r+   9   r,      c                 C   s   g | ]}d | qS )zW-r%   )r)   r1   r%   r%   r&   r+   :   r,   freqperiods   c                 C   s   |  }td| |d}t|j}|ds@t||jksJ nPt|}|dkoZ|jdv }|dkol|jdv }|dko~|jd	v }|s|s|sJ d S )
N1/1/2000r4   r3   r(   Q-DEC)Qr8   zQ-SEPzQ-JUNzQ-MARQ-NOV)r:   zQ-AUGzQ-MAYzQ-FEBQ-OCT)r;   zQ-JULzQ-APRzQ-JAN)upperr   r	   values
startswithr   
infer_freqZfreqstr)r4   r3   genindexZinf_freqZis_dec_rangeZis_nov_rangeZis_oct_ranger%   r%   r&   test_infer_freq_range>   s    


rB   c                  C   sN   t dddd} d}tjt|d t|  W d    n1 s@0    Y  d S )Nz1/1/1990   r/   )startr4   r3   6Check the `freq` attribute instead of using infer_freqmatch)r   pytestraises	TypeErrorr   r?   rA   msgr%   r%   r&   test_raise_if_period_index`   s    rM   c                  C   sL   t ddg} d}tjt|d t|  W d    n1 s>0    Y  d S )N
12/31/19981/3/1999z(Need at least 3 dates to infer frequencyrF   )r	   rH   rI   
ValueErrorr   r?   rK   r%   r%   r&   test_raise_if_too_fewh   s    rQ   c                  C   s"   t g d} t| dksJ d S )N)z
01/01/19991/4/1999z1/5/1999Br	   r   r?   rA   r%   r%   r&   test_business_dailyp   s    rV   c                  C   s"   t g d} t| d u sJ d S )N)rN   rO   rR   rT   rU   r%   r%   r&   test_business_daily_look_alikeu   s    rW   c                  C   s"   t g d} t| dksJ d S N)r6   z1/2/2000z1/3/2000r   rT   rU   r%   r%   r&   test_day_corner}   s    rY   c                  C   s"   t g d} t| dksJ d S rX   )r   r   r?   )datesr%   r%   r&   test_non_datetime_index   s    r[   c                  C   s"   t g d} t| d u sJ d S )N)z
2014-03-31z
2014-06-30z
2015-03-30rT   rU   r%   r%   r&   test_fifth_week_of_month_infer   s    r\   c                  C   s"   t g d} t| dksJ d S )N)z
2013-08-27z
2013-10-01z
2013-10-29z
2013-11-26zWOM-4TUErT   rU   r%   r%   r&   test_week_of_month_fake   s    r]   c                  C   sB   d} t jt| d tddd W d    n1 s40    Y  d S )NzVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedrF   
2014-01-01zWOM-5MONr3   )rH   rI   rP   r   rL   r%   r%   r&   test_fifth_week_of_month   s    ra   c                  C   s   t g d} | jdksJ d S )N)	1/31/2000z	2/29/2000z	3/31/2000r/   r	   inferred_freqrngr%   r%   r&   test_monthly_ambiguous   s    rg   c                  C   s   t g d} | jdksJ d S )Nrb   z	1/31/2001z	1/31/2002zA-JANrc   re   r%   r%   r&   test_annual_ambiguous   s    ri   r0   c                    sh   t t  | \}}|| t fddtdD }|dkrN|d| n|}t||ksdJ d S )Nc                    s   g | ]} |  qS r%   r%   r)   jbincr%   r&   r+      r,   z)test_infer_freq_delta.<locals>.<listcomp>   r   d)r   r   nowr	   ranger   r?   )r'   r0   
base_deltacoderA   Zexp_freqr%   rl   r&   test_infer_freq_delta   s    ru   constructorc                    s*   t  d  g fddtdD  S )Nr5   c                    s   g | ]} |  qS r%   r%   rj   deltarq   r%   r&   r+      r,   <lambda>.<locals>.<listcomp>ro   r	   rr   rq   rx   r%   rw   r&   <lambda>   s   $r|   c                    s*   t  fddtdD  d  g S )Nc                    s   g | ]} |  qS r%   r%   rj   rw   r%   r&   r+      r,   ry   ro   r5   rz   r{   r%   rw   r&   r|      s   $c                 C   s4   t t }| \}}|||}t|d u s0J d S r"   )r   r   rq   r   r?   )r'   rv   rm   rs   _rA   r%   r%   r&   test_infer_freq_custom   s    
r~   zfreq,expected))r9   r8   )r:   r:   )r;   r;   c                 C   s8   t dd| d}t|jdddt}|j|ks4J d S )NZ1959Q2Z2009Q3r_   r   e)how)r   r
   Zto_timestampastypeobjectrd   )r3   expectedrf   r%   r%   r&   test_infer_freq_index   s    r   zexpected,dates)z
2009-01-01z
2010-01-01
2011-01-01z
2012-01-01)z
2009-01-31z
2009-04-30z
2009-07-31z
2009-10-31)z
2010-11-30z
2010-12-31z
2011-01-31z
2011-02-28)z
2010-12-25r   z
2011-01-08z
2011-01-15)r   z
2011-01-02z
2011-01-03z
2011-01-04)z2011-12-31 22:00z2011-12-31 23:00z2012-01-01 00:00z2012-01-01 01:00)zAS-JANr;   r/   zW-SATr   r   c                 C   s"   | }t ||d}|j|ksJ d S )Ntzrc   )tz_naive_fixturer   rZ   r   idxr%   r%   r&   test_infer_freq_tz   s    r   c                 C   s<   | }t dd|d}| jdd}t|}|dks8J d S )Nz
2021-01-01z
2021-01-04r   T)Zdropr   )r   Z	to_seriesZreset_indexr   r?   )r   r   r   Zseriesrd   r%   r%   r&   test_infer_freq_tz_series   s
    
r   	date_pairz
2013-11-02z	2013-11-5z
2014-03-08z
2014-03-11r^   z
2014-01-03)r   3HZ10TZ3601SZ3600001LZ3600000001UZ3600000000001Nc                 C   s.   | }t |d |d ||d}|j|ks*J d S )Nr   r   )r3   r   )r   rd   )r   r   r3   r   r   r%   r%   r&   test_infer_freq_tz_transition   s    r   c                  C   s&   t ddddd} | jd u s"J d S )Nz
2013-11-03r2   r   r7   zAmerica/Chicago)r   Ztz_localizerd   rU   r%   r%   r&   $test_infer_freq_tz_transition_custom
  s    r   zdata,expected)2014-07-01 09:002014-07-01 10:002014-07-01 11:002014-07-01 12:002014-07-01 13:002014-07-01 14:00)r   r   r   r   r   r   z2014-07-01 15:00z2014-07-01 16:00z2014-07-02 09:00z2014-07-02 10:00z2014-07-02 11:00ZBH)2014-07-04 09:002014-07-04 10:002014-07-04 11:002014-07-04 12:002014-07-04 13:002014-07-04 14:002014-07-04 15:002014-07-04 16:002014-07-07 09:002014-07-07 10:002014-07-07 11:00)r   r   r   r   r   r   r   r   r   r   r   z2014-07-07 12:00z2014-07-07 13:00z2014-07-07 14:00z2014-07-07 15:00z2014-07-07 16:00z2014-07-08 09:00z2014-07-08 10:00z2014-07-08 11:00z2014-07-08 12:00z2014-07-08 13:00z2014-07-08 14:00z2014-07-08 15:00z2014-07-08 16:00c                 C   s   t | }|j|ksJ d S r"   rc   )datar   r   r%   r%   r&   test_infer_freq_business_hour  s    Pr   c                  C   s,   t g d} | d d d } | jdks(J d S )Nrh   z-1A-JANrc   re   r%   r%   r&   test_not_monotonice  s    r   c                  C   s0   t g d} |  }t|}|| jks,J d S )Nrh   )r	   Zto_pydatetimer   r?   rd   )rf   valsresultr%   r%   r&   test_non_datetime_index2l  s    
r   r   
   c                 C   sJ   d ddg}tjt|d t|  W d    n1 s<0    Y  d S )N|z(cannot infer freq from a non-convertiblerE   rF   )joinrH   rI   rJ   r   r?   )r   rL   r%   r%   r&   test_invalid_index_typest  s    r   zsee gh-10822: Windows issue)reasonc                  C   sF   d} t jt| d  ttd W d    n1 s80    Y  d S )NUnknown datetime string formatrF   r   )rH   rI   rP   r   r?   tmZmakeStringIndexr`   r%   r%   r&    test_invalid_index_types_unicode  s    r   c                  C   s0   g d} t | }t t| }||ks,J d S )N)z2004-01z2004-02z2004-03z2004-04)r   r?   r
   )r   r   r   r%   r%   r&    test_string_datetime_like_compat  s    
r   c                  C   s(   t tdd} t| }|dks$J d S )N20130101Z20130110r   r   r   r   r?   )sinferredr%   r%   r&   test_series  s    
r   endg      $@c                 C   sN   d}t t| }tjt|d t| W d    n1 s@0    Y  d S )N:cannot infer freq from a non-convertible dtype on a SeriesrF   )r   nparangerH   rI   rJ   r   r?   )r   rL   r   r%   r%   r&   test_series_invalid_type  s    r   c                  C   sH   d} t jt| d" ttddg W d    n1 s:0    Y  d S )Nr   rF   Zfoobar)rH   rI   rP   r   r?   r   r`   r%   r%   r&    test_series_inconvertible_string  s    r   c                 C   sR   d}t tdd| d}tjt|d t| W d    n1 sD0    Y  d S )Nr   Z2013r   r7   rF   )r   r   rH   rI   rJ   r   r?   )r3   rL   r   r%   r%   r&   test_series_period_index  s    r   )r/   r    r   c                 C   s,   t tdd| d}t|}|| ks(J d S )Nr   r   r7   r   )r3   r   r   r%   r%   r&   test_series_datetime_index  s    
r   offset_funcc                 C   s   t dd| dS )Nr   r2   r7   )r   r_   r%   r%   r&   r|     r,   )-ZWEEKDAYZEOMzW@MONzW@TUEzW@WEDzW@THUzW@FRIzW@SATzW@SUNzQ@JANzQ@FEBzQ@MARzA@JANzA@FEBzA@MARzA@APRzA@MAYzA@JUNzA@JULzA@AUGzA@SEPzA@OCTzA@NOVzA@DECzY@JANzWOM@1MONzWOM@2MONzWOM@3MONzWOM@4MONzWOM@1TUEzWOM@2TUEzWOM@3TUEzWOM@4TUEzWOM@1WEDzWOM@2WEDzWOM@3WEDzWOM@4WEDzWOM@1THUzWOM@2THUzWOM@3THUzWOM@4THUzWOM@1FRIzWOM@2FRIzWOM@3FRIzWOM@4FRIc                 C   s:   t jttd | | W d    n1 s,0    Y  d S )NrF   )rH   rI   rP   r   )r   r3   r%   r%   r&   test_legacy_offset_warnings  s    :r   c                  C   s4   t d} t d}| t ks J |t ks0J d S )NmsZMS)r   r   ZMilliZ
MonthBegin)leftrightr%   r%   r&   test_ms_vs_capital_ms	  s    r   c                  C   sr   t dt jd} tj| | jd}t	|}|dks>J | d}t
j||jd}t	|}|dksnJ d S )Nr   zM8[s])dtyper   zm8[ms]r    )r   r   r   int64viewr   Z_simple_newr   r   r?   r   )ZarrdtaresZarr2ZtdaZres2r%   r%   r&   test_infer_freq_non_nano  s    


r   c                 C   s:   | }t ddd|d}|jd}t|}|dks6J d S )Nz
2016-01-01im  rS   )r4   r3   r   r   )r   _dataZas_unitr   r?   )Ztz_aware_fixturer   Zdtir   r   r%   r%   r&    test_infer_freq_non_nano_tzaware  s
    
r   )Pr   r   numpyr   rH   Zpandas._libs.tslibs.ccalendarr   r   Zpandas._libs.tslibs.offsetsr   Zpandas._libs.tslibs.periodr   Zpandas.compatr   Zpandasr	   r
   r   r   r   r   Zpandas._testingZ_testingr   Zpandas.core.arraysr   r   Zpandas.core.tools.datetimesr   Zpandas.tseriesr   r   ZfixtureZtimedelta64r'   rr   ZfreqsmarkZparametrizerB   rM   rQ   rV   rW   rY   r[   r\   r]   ra   rg   ri   ru   r~   r   listitemsr   r   r   r   r   r   r   ZmakeIntIndexZmakeFloatIndexZmakePeriodIndexZmakeRangeIndexr   Zskipifr   r   r   r   r   r   r   r   r   r   r   r%   r%   r%   r&   <module>   s   

	 



	N
	




	

2