o
    ҷh                     @   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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tmassert_numpy_array_equal)datar   expectedresult r    _/var/www/html/venv/lib/python3.10/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   setflagsr   assert_period_array_equalSeriesassert_series_equal	DataFrameassert_frame_equal)paarrr   r    r    r!   !test_period_array_readonly_object$   s   
r0   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-01r2   r2   )r&   
date_ranger   _from_datetime64r   r   r)   )r/   r   r   r    r    r!   !test_from_datetime64_freq_changes4   s   r5   r   2M   c                 C   s>   t jddgdd}t|| }tddg| d}t|| d S )Nz2020-01-01T00:00:00z2020-01-02T00:00:00zdatetime64[ns]r   z2020-01r   )r   arrayr   r4   r   r   r)   )r   r/   r   r   r    r    r!   test_from_datetime64_freq_2M<   s   r9   zdata, freq, msgr%   zInput has different freqc                 C   s>   t jt|d t| | W d    d S 1 sw   Y  d S )Nmatch)pytestraisesr   r   )r   r   msgr    r    r!   test_period_array_raisesF   s   "r?   c                  C   sN   t g d} tjtdd t| dd W d    d S 1 s w   Y  d S )N)   r7   r
   r   r:   z	period[D]r   )r&   r*   r<   r=   	TypeErrorr   )serr    r    r!   )test_period_array_non_period_series_raiesV   s   "rC   c                  C   s   t ddgdd} tjtdd t| dd W d    n1 s w   Y  ttjj	 }tjtdd t| |d W d    d S 1 sGw   Y  d S )	N20002001r   r   r   r:   	period[M]r   )
r   r<   r=   r   r   r&   PeriodDtypetseriesoffsetsr   )r/   r   r    r    r!   test_period_array_freq_mismatch\   s   "rJ   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 s*w   Y  tjt|d tjt
| j| j	d W d    d S 1 sMw   Y  d S )NrD   rE   r   r   r   r:   r   )r   strordinalr<   r=   rA   r   _from_sequencer   r   list)r/   r>   r    r    r!   test_from_sequence_disallows_i8f   s   "rO   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 s6w   Y  tj	t
|d	 t j||d W d    n1 sTw   Y  tj	t
|d	 t j||d W d    n1 srw   Y  tj	t
|d	 t j||d W d    n1 sw   Y  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 )
Nzm8[ns]z
2005-01-01r
   r   r   r   r   z2Value must be Period, string, integer, or datetimer:   )r&   NaTto_numpyperiod_ranger   r   r8   r#   r<   r=   
ValueErrorr   rM   PeriodIndexIndexr*   r,   )tdr   r/   r>   r    r    r!   !test_from_td64nat_sequence_raisesq   s.   "rW   c                  C   sl   t dt j} d}tjt|d t| dd}W d    n1 s#w   Y  t| dd}t|| d S )N   z?The 'freq' keyword in the PeriodArray constructor is deprecatedr:   r1   r   rF   r   )	r   arangeastyper   r   assert_produces_warningFutureWarningr   assert_equal)r   r>   resr   r    r    r!   test_freq_deprecated   s   r_   )$numpyr   r<   pandas._libs.tslibsr   pandas._libs.tslibs.offsetsr   pandas._libs.tslibs.periodr   pandasr&   pandas._testing_testingr   pandas.core.arraysr   r   markparametrizer'   rH   rI   Dayr*   r3   rR   r"   r0   r5   r9   r?   rC   rJ   rO   rW   r_   r    r    r    r!   <module>   sR    

	

