a
    Pf                     @   s  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	Z
d dlmZ d dlmZmZ ejde
ddgdd	gfe
ddgdd	gfd
gdd	gfdgdd	gfe
ddge
jj d	gfe
dddgdd	egfe
e
jddddg dfe
jddddg dfe
jdddddg dfg	dd Zdd Zdd Zejddedgdd Zejde
dde
ddgddfe
ddgddfgd d! Zd"d# Zd$d% Z d&d' Z!d(d) Z"d*d+ Z#d,d- Z$dS ).    N)iNaT)MonthEnd)IncompatibleFrequency)PeriodArrayperiod_arrayzdata, freq, expected2017DC  i     )periods)r	   iC  iC     Qr   freq)            c                 C   s.   t | |dj}tj|tjd}t|| d S )Nr   dtype)r   asi8npasarrayint64tmZassert_numpy_array_equal)datar   expectedresult r   e/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/arrays/period/test_constructors.pytest_period_array_ok   s    r!   c                  C   s   t tdg} tj| dd}|jdd t |}t||  t|}t	|t|  t
d|i}t|t
d| i d S )Nz
2019-01-01objectr   F)writeA)r   pdPeriodr   r   Zsetflagsr   assert_period_array_equalSeriesZassert_series_equal	DataFrameZassert_frame_equal)paarrr   r   r   r    !test_period_array_readonly_object$   s    
r,   c                  C   s>   t jdddd} tj| dd}tg ddd}t|| d S )Nr   r
   r   r   Mr   )
2017-01-01r.   r.   )r%   
date_ranger   _from_datetime64r   r   r'   r+   r   r   r   r   r    !test_from_datetime64_freq_changes4   s    r2   r   Z2M   c                 C   s>   t jddgdd}t|| }tddg| d}t|| d S )N2020-01-01T00:00:00z2020-01-02T00:00:00datetime64[ns]r   z2020-01r   )r   arrayr   r0   r   r   r'   )r   r+   r   r   r   r   r    test_from_datetime64_freq_2M<   s    r7   zdata, freq, msgYzInput has different freqc                 C   s<   t jt|d t| | W d    n1 s.0    Y  d S )Nmatch)pytestraisesr   r   )r   r   msgr   r   r    test_period_array_raisesF   s    r>   c                  C   sL   t g d} tjtdd t| dd W d    n1 s>0    Y  d S )N)   r3   r
   r   r9   z	period[D]r   )r%   r(   r;   r<   	TypeErrorr   )Zserr   r   r    )test_period_array_non_period_series_raiesV   s    rA   c                  C   s   t ddgdd} tjtdd t| dd W d    n1 s@0    Y  ttjj	 }tjtdd t| |d W d    n1 s0    Y  d S )	N20002001r   r   r   r9   	period[M]r   )
r   r;   r<   r   r   r%   ZPeriodDtypetseriesoffsetsr   )r+   r   r   r   r    test_period_array_freq_mismatch\   s    *rG   c                  C   s   t ddgdd} t| d j}tjt|d" tj| j| j	d W d    n1 sT0    Y  tjt|d& tjt
| j| j	d W d    n1 s0    Y  d S )NrB   rC   r   r   r   r9   r   )r   strZordinalr;   r<   r@   r   _from_sequencer   r   list)r+   r=   r   r   r    test_from_sequence_disallows_i8f   s    0rK   c                  C   s  t jd} t jddddj}tjd gtd}| |d< d}tj	t
|d	 tj||d W d    n1 sl0    Y  tj	t
|d	 t j||d W d    n1 s0    Y  tj	t
|d	 t j||d W d    n1 s0    Y  tj	t
|d	 t j||d W d    n1 s"0    Y  tj	t
|d	 t j||d W d    n1 s`0    Y  tj	t
|d	 t j||d W d    n1 s0    Y  d S )
Nzm8[ns]z
2005-01-01r
   r   r   r   r   z2Value must be Period, string, integer, or datetimer9   )r%   ZNaTZto_numpyperiod_ranger   r   r6   r"   r;   r<   
ValueErrorr   rI   ZPeriodIndexIndexr(   r)   )tdr   r+   r=   r   r   r    !test_from_td64nat_sequence_raisesq   s"    ,,,..rP   c                  C   sl   t dt j} d}tjt|d t| dd}W d    n1 sF0    Y  t| dd}t|| d S )N   z?The 'freq' keyword in the PeriodArray constructor is deprecatedr9   r-   r   rD   r   )	r   ZarangeZastyper   r   Zassert_produces_warningFutureWarningr   Zassert_equal)r   r=   resr   r   r   r    test_freq_deprecated   s    *rT   c                  C   sH   t jddgdd} tj| tdd}tddgtdd}t|| d S )	Nr4   z2020-02-02T00:00:00r5   r   r3   r   z
2020-01-01z
2020-02-01)r   r6   r   r0   r   r   r   r'   r1   r   r   r    !test_period_array_from_datetime64   s    rU   )%numpyr   r;   Zpandas._libs.tslibsr   Zpandas._libs.tslibs.offsetsr   Zpandas._libs.tslibs.periodr   Zpandasr%   Zpandas._testingZ_testingr   Zpandas.core.arraysr   r   markZparametrizer&   rE   rF   ZDayr(   r/   rL   r!   r,   r2   r7   r>   rA   rG   rK   rP   rT   rU   r   r   r   r    <module>   sR   

	

