o
    ŀg                     @   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tmassert_numpy_array_equal)datar   expectedresult r    `/var/www/html/myenv/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   r6   r   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   r4   r   r   r)   )r   r/   r   r   r    r    r!   test_from_datetime64_freq_2M<   s   r<   zdata, freq, msgYz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   "rC   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)   r8   r
   r   r>   z	period[D]r   )r&   r*   r@   rA   	TypeErrorr   )serr    r    r!   )test_period_array_non_period_series_raiesV   s   "rG   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@   rA   r   r   r&   PeriodDtypetseriesoffsetsr   )r/   r   r    r    r!   test_period_array_freq_mismatch\   s   "rN   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 )NrH   rI   r   r   r   r>   r   )r   strordinalr@   rA   rE   r   _from_sequencer   r   list)r/   rB   r    r    r!   test_from_sequence_disallows_i8f   s   "rS   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   r;   r#   r@   rA   
ValueErrorr   rQ   PeriodIndexIndexr*   r,   )tdr   r/   rB   r    r    r!   !test_from_td64nat_sequence_raisesq   s.   "r[   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   rJ   r   )	r   arangeastyper   r   assert_produces_warningFutureWarningr   assert_equal)r   rB   resr   r    r    r!   test_freq_deprecated   s   rc   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 )	Nr9   z2020-02-02T00:00:00r:   r   r8   r   z
2020-01-01z
2020-02-01)r   r;   r   r4   r   r   r   r)   r5   r    r    r!   !test_period_array_from_datetime64   s   rd   )%numpyr   r@   pandas._libs.tslibsr   pandas._libs.tslibs.offsetsr   pandas._libs.tslibs.periodr   pandasr&   pandas._testing_testingr   pandas.core.arraysr   r   markparametrizer'   rL   rM   Dayr*   r3   rV   r"   r0   r6   r<   rC   rG   rN   rS   r[   rc   rd   r    r    r    r!   <module>   sT    

	

