
    bMh                     ~   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
mZ d dlZd dlmZ d dlmZ d Zd Zd	 Zd
 Zd Zej                            dd g ej        dd          g dfd gdeddgfd gej        eddgfg d ej        dd          dgdz  fg d ej        dd           ej        dd           ej        dd          gg dfg          d             Zd Zd Zd Zd Z d Z!ej                            d ej        dd            ej"        g d!d"#          g          d$             Z#d% Z$d& Z%dS )'    N)iNaT)IncompatibleFrequency)	_registry)PeriodDtype)PeriodArrayc                      t           t          j        v sJ t          j        d          } t          d          }| |k    sJ d S )Nz	Period[D]D)r   registrydtypesfindresultexpecteds     _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/arrays/test_period.pytest_registeredr      sH    (/))))];''F3HX    c                      t          j        g dd          j        } t          j        ddt
          g          }t          j        | |           d S )N)20002001N	period[D]dtype*  ;,  )r   _from_sequenceasi8nparrayr   tmassert_numpy_array_equalr   s     r   	test_asi8r!      sP    '(>(>(>kRRRWFxt,--H11111r   c            	         t          j        ddgd          } t          j        t          d          5  |                     ddgd	t          j        dd
                     d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     ddgd	d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   freqmatchr   TWr#   )
allow_fill
fill_valuez6value should be a 'Period' or 'NaT'. Got 'str' insteadfoo)	r   r   pytestraisesr   takepdPeriod	TypeError)arrmsgs     r   test_take_raisesr4   #   s`   

$ff%5[
I
I
IC	,F	;	;	; S S!RTbiS6Q6Q6QRRRS S S S S S S S S S S S S S S CC	y	,	,	, = =!RTe<<<= = = = = = = = = = = = = = = = = =s#   /A//A36A3B??CCc                      t          j        g dd          } t          j        t          d          5  |                     | d d                    d d d            d S # 1 swxY w Y   d S )Nr   r   2002r   r   Lengthr$      )r   r   r,   r-   
ValueErrorfillnar2   s    r   test_fillna_raisesr=   -   s    

$%=%=%=[
Q
Q
QC	z	2	2	2  

3rr7                 s   AA#&A#c                      t          j        g dd          } |                     t          j        dd                    }|| usJ d S )Nr6   r   r   r   r	   )r   r   r;   r/   r0   )r2   r   s     r   test_fillna_copiesr?   3   sR    

$%=%=%=[
Q
Q
QCZZ	&#..//Fr   zkey, value, expectedr   r	   )r      r9   r@   r9   )r   r@   r9   r      r   r7   )r   r   i-  c                     t          t          j        d          d          }t          |d          }||| <   t          j        ||           d S )NrA   r   r   )r   r   aranger   assert_period_array_equal)keyvaluer   r2   s       r   test_setitemrG   =   sR     bill+
6
6
6C8;777HCH h/////r   c                     t          t          j        d          d          } t          j        t
          d          5  t          j        dd          | d	<   d d d            n# 1 swxY w Y   t          j        dd
gd          }t          j        t
          d          5  || d	dg<   d d d            d S # 1 swxY w Y   d S )NrA   r   r   r#   r$   r   Yr(   r   r   z	period[Y]r@   )	r   r   rC   r,   r-   r   r/   r0   r   r2   others     r   %test_setitem_raises_incompatible_freqrL   R   sB   
bill+
6
6
6C	,F	;	;	; - -6,,,A- - - - - - - - - - - - - - - &'7{KKKE	,F	;	;	;  QF                 s#   A%%A),A)#B88B<?B<c                      t          t          j        d          d          } t          j        t
          d          5  t          j        dd          g| d	d
g<   d d d            d S # 1 swxY w Y   d S )NrA   r   r   lengthr$   r   r	   r(   r   r@   )r   r   rC   r,   r-   r:   r/   r0   r<   s    r   test_setitem_raises_lengthrO   \   s    
bill+
6
6
6C	z	2	2	2 4 4yc2223QF4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   A))A-0A-c                      t          t          j        d          d          } t          j        t
          d          5  d| d<   d d d            d S # 1 swxY w Y   d S )NrA   r   r   intr$   r@   r   )r   r   rC   r,   r-   r1   r<   s    r   test_setitem_raises_typerR   b   s    
bill+
6
6
6C	y	.	.	.  A                 s   AAAc                      t          j        ddgd          } t          j        dd          }t	          j        t          d          5  | |z
   d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r   Mr(   r#   r$   )r   r   r/   r0   r,   r-   r   rJ   s     r   test_sub_periodrU   l   s    

$ff%5[
I
I
ICIf3'''E	,F	;	;	;  e                 s   
AA!$A!c                     t          j        ddd          } |                     d          }t           j                            d|j                  }t          j        t          d          5  ||z
   d d d            n# 1 swxY w Y   t          j        t          d          5  ||z
   d d d            d S # 1 swxY w Y   d S )	Nz
1677-09-22r9   r	   )periodsr#   nsl    @ k zOverflow in int64 additionr$   )	r/   
date_range	to_periodr0   _from_ordinalr#   r,   r-   OverflowError)dtipipers      r   test_sub_period_overflowr`   s   s;   
-ac
:
:
:C	t		B
)
!
!&"'
2
2C	},H	I	I	I  
S               
},H	I	I	I  b                 s$   -A??BB%B88B<?B<rK   hr(   )r   r   r   z	period[h]r   c                    t          j        t          j        g dd                    }t	          j        g d          }t          j        t          d          5  |j        	                    ||            d d d            n# 1 swxY w Y   |
                    ||           }|                    t                    
                    ||           }t          j        ||           d S )Nr6   r   r   )TFTr#   r$   )r/   Seriesr   r   r   r   r,   r-   r   _wherewhereastypeobjectr   assert_series_equal)rK   sercondresr   s        r    test_where_different_freq_raisesrl      s    )"#;#;#;;OOO C 8'''((D	,F	;	;	; & &	u%%%& & & & & & & & & & & & & & & ))D%
 
 Czz&!!''e44H3)))))s   BBBc                  h    t          j        ddgd          } t          |           }d}||k    sJ d S )Nr   r   r   r   zF<PeriodArray>
['2000-01-01', '2001-01-01']
Length: 2, dtype: period[D]r   r   strr2   r   r   s      r   test_repr_smallrq      sH    

$ff%5[
I
I
ICXXFR  Xr   c                  n    t          j        ddgdz  d          } t          |           }d}||k    sJ d S )Nr   r   i  r   r   aM  <PeriodArray>
['2000-01-01', '2001-01-01', '2000-01-01', '2001-01-01', '2000-01-01',
 '2001-01-01', '2000-01-01', '2001-01-01', '2000-01-01', '2001-01-01',
 ...
 '2000-01-01', '2001-01-01', '2000-01-01', '2001-01-01', '2000-01-01',
 '2001-01-01', '2000-01-01', '2001-01-01', '2000-01-01', '2001-01-01']
Length: 1000, dtype: period[D]rn   rp   s      r   test_repr_largers      sO    

$ff%5%;;
O
O
OCXXF
	)  Xr   )&numpyr   r,   pandas._libs.tslibsr   pandas._libs.tslibs.periodr   pandas.core.dtypes.baser   r
   pandas.core.dtypes.dtypesr   pandasr/   pandas._testing_testingr   pandas.core.arraysr   r   r!   r4   r=   r?   markparametrizer0   nanrG   rL   rO   rR   rU   r`   r   rl   rq   rs    r   r   <module>r      s        $ $ $ $ $ $ < < < < < < 9 9 9 9 9 9 1 1 1 1 1 1           * * * * * *  2 2 2= = =     
ibi$$mmm4
dT1aL!
bftQl#	IBIfc**UGaK8IIRYvs##YRYvs%;%;YRYvs=S=ST!!!	

 0 0 0  4 4 4      $ 	&s###""#;#;#;;OOO * * *&      r   