
    Owg                        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j0                  j3                  dd g ej4                  dd      g dfd gdeddgfd gej6                  eddgfg d ej4                  dd      dgdz  fg d ej4                  dd       ej4                  dd       ej4                  dd      gg dfg      d        Zd Zd Zd Zd Z d Z!ej0                  j3                  d ej4                  dd        ejD                  g d!d"#      g      d$        Z#d% Z$d& Z%y)'    N)iNaT)IncompatibleFrequency)	_registry)PeriodDtype)PeriodArrayc                      t         t        j                  v sJ t        j                  d      } t        d      }| |k(  sJ y )Nz	Period[D]D)r   registrydtypesfindresultexpecteds     V/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/test_period.pytest_registeredr      s:    (//)))]];'F3HX    c                      t        j                  g dd      j                  } t        j                  ddt
        g      }t        j                  | |       y )N)20002001N	period[D]dtype*  ;,  )r   _from_sequenceasi8nparrayr   tmassert_numpy_array_equalr   s     r   	test_asi8r!      s@    ''(>kRWWFxxt,-H1r   c            	      |   t        j                  ddgd      } t        j                  t        d      5  | j                  ddgd	t        j                  dd
             d d d        d}t        j                  t        |      5  | j                  ddgd	d       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)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[
IC	,F	; S!RTbiiS6QRS CC	y	, =!RTe<= =	S S= =s   ,B&B2&B/2B;c                      t        j                  g dd      } t        j                  t        d      5  | j                  | d d        d d d        y # 1 sw Y   y xY w)Nr   r   2002r   r   Lengthr$      )r   r   r,   r-   
ValueErrorfillnar2   s    r   test_fillna_raisesr=   -   sJ    

$
$%=[
QC	z	2 

3r7  s   AAc                      t        j                  g dd      } | j                  t        j                  dd            }|| usJ y )Nr6   r   r   r   r	   )r   r   r;   r/   r0   )r2   r   s     r   test_fillna_copiesr?   3   s<    

$
$%=[
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                  ||       y )NrA   r   r   )r   r   aranger   assert_period_array_equal)keyvaluer   r2   s       r   test_setitemrG   =   s=     biil+
6C8;7HCH  h/r   c                  x   t        t        j                  d      d      } t        j                  t
        d      5  t        j                  dd      | d	<   d d d        t        j                  dd
gd      }t        j                  t
        d      5  || d	dg<   d d d        y # 1 sw Y   NxY w# 1 sw Y   y xY w)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   s    
biil+
6C	,F	; -6,A- &&'7{KE	,F	; QF 	- - s   B$B0$B-0B9c                      t        t        j                  d      d      } t        j                  t
        d      5  t        j                  dd      g| d	d
g<   d d d        y # 1 sw Y   y xY w)NrA   r   r   lengthr$   r   r	   r(   r   r@   )r   r   rC   r,   r-   r:   r/   r0   r<   s    r   test_setitem_raises_lengthrO   \   sT    
biil+
6C	z	2 4yyc23QF4 4 4s   A##A,c                      t        t        j                  d      d      } t        j                  t
        d      5  d| d<   d d d        y # 1 sw Y   y xY w)NrA   r   r   intr$   r@   r   )r   r   rC   r,   r-   r1   r<   s    r   test_setitem_raises_typerR   b   sB    
biil+
6C	y	. A  s   AAc                      t        j                  ddgd      } t        j                  dd      }t	        j
                  t        d      5  | |z
   d d d        y # 1 sw Y   y xY w)	Nr   r   r   r   Mr(   r#   r$   )r   r   r/   r0   r,   r-   r   rJ   s     r   test_sub_periodrU   l   sT    

$
$ff%5[
ICIIf3'E	,F	; e  s   AA$c                  ~   t        j                  ddd      } | j                  d      }t         j                  j	                  d|j
                        }t        j                  t        d      5  ||z
   d d d        t        j                  t        d      5  ||z
   d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)	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
))
!
!&"''
2C	},H	I 
S 
},H	I b   s   /B'B3'B03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
                  j                  ||        d d d        |j                  ||       }|j                  t              j                  ||       }t        j                  ||       y # 1 sw Y   WxY w)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C 88'(D	,F	; &		u%& ))D%
 Czz&!''e4H3)& &s   CCc                  ^    t        j                  ddgd      } t        |       }d}||k(  sJ y )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      s:    

$
$ff%5[
ICXFR  Xr   c                  d    t        j                  ddgdz  d      } t        |       }d}||k(  sJ y )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      sA    

$
$ff%5%;;
OCXF
	)  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      so     $ < 9 1   *2= 
ibii$m4
dT1aL!
bfftQl#	IBIIfc*UGaK8RYYvs#YRYYvs%;YRYYvs=ST!	

004$ 		&s#"""#;;O**&r   