
    Eg                        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
j        dd          gdd	gf e
j        dd          gdd	gfd
gdd	gfdgdd	gf e
j        dd          ge
j        j                                        d	gf e
j        dd          dgdd	egf e
j         e
j        dd                    dg df e
j        dd          dg df e
j        ddd          dg dfg	          d             Zd Zd Zej                            dd ed          g          d             Zej                            d e
j        dd           e
j        dd          gddf e
j        dd          gddfg          d             Zd Zd Z d Z!d  Z"d! Z#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                     t          | |          j        }t          j        |t          j                  }t          j        ||           d S )Nr   dtype)r   asi8npasarrayint64tmassert_numpy_array_equal)datar   expectedresults       a/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/arrays/period/test_constructors.pytest_period_array_okr#      sH     $T***/Fz("(333H11111    c                     t          t          j        d          g          } t          j        | d          }|                    d           t          |          }t          j        ||            t          j        |          }t          j	        |t          j        |                      t          j
        d|i          }t          j        |t          j
        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!   s      r"   !test_period_array_readonly_objectr3   $   s    	ry../	0	0B
*Rx
(
(
(CLLuL#F ,,,Ys^^F629R==111\3*%%F&",Ry"9"9:::::r$   c                      t          j        ddd          } t          j        | d          }t	          g dd          }t          j        ||           d S )Nr   r   r	   r   Mr   )
2017-01-01r6   r6   )r)   
date_ranger   _from_datetime64r   r   r,   r2   r!   r    s      r"   !test_from_datetime64_freq_changesr:   4   s_    
-
4
4
4C)#C888FFFFSQQQH 22222r$   r   2M   c                     t          j        ddgd          }t          j        ||           }t	          ddg|           }t          j        ||           d S )N2020-01-01T00:00:00z2020-01-02T00:00:00datetime64[ns]r   z2020-01r   )r   arrayr   r8   r   r   r,   )r   r2   r!   r    s       r"   test_from_datetime64_freq_2MrA   <   sh    
(	 56>N  C )#t44FY	2>>>H 22222r$   zdata, freq, msgYzInput has different freqc                     t          j        t          |          5  t          | |           d d d            d S # 1 swxY w Y   d S )Nmatch)pytestraisesr   r   )r   r   msgs      r"   test_period_array_raisesrI   F   s     
,C	8	8	8 ! !T4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   :>>c                      t          j        g d          } t          j        t          d          5  t          | d           d d d            d S # 1 swxY w Y   d S )N)   r<   r   r   rD   z	period[D]r   )r)   r-   rF   rG   	TypeErrorr   )sers    r"   )test_period_array_non_period_series_raiesrN   V   s    
)III

C	y	0	0	0 , ,C{++++, , , , , , , , , , , , , , , , , ,s   AAAc                     t          ddgd          } t          j        t          d          5  t	          | d           d d d            n# 1 swxY w Y   t          j        t
          j        j        	                                          }t          j        t          d          5  t	          | |           d d d            d S # 1 swxY w Y   d S )	N20002001r	   r   r   rD   	period[M]r   )
r   rF   rG   r   r   r)   PeriodDtypetseriesoffsetsr   )r2   r   s     r"   test_period_array_freq_mismatchrV   \   sF   
'c
2
2
2C	,F	;	;	; , ,C{++++, , , , , , , , , , , , , , , N2:-668899E	,F	;	;	; & &Cu%%%%& & & & & & & & & & & & & & & & & &s#   AAA(CCCc                     t          ddgd          } t          | d         j                  }t          j        t
          |          5  t          j        | j        | j	                   d d d            n# 1 swxY w Y   t          j        t
          |          5  t          j        t          | j                  | j	                   d d d            d S # 1 swxY w Y   d S )NrP   rQ   r	   r   r   rD   r   )r   strordinalrF   rG   rL   r   _from_sequencer   r   list)r2   rH   s     r"   test_from_sequence_disallows_i8r\   f   s_   
'c
2
2
2C
c!fn

C	y	,	,	, > >"3839====> > > > > > > > > > > > > > > 
y	,	,	, D D"4>>CCCCD D D D D D D D D D D D D D D D D Ds$   	!A66A:=A:.CCCc                  0   t           j                            d          } t          j        ddd          j        }t          j        d gt                    }| |d<   d}t          j	        t          |	          5  t          j        ||           d d d            n# 1 swxY w Y   t          j	        t          |	          5  t          j        ||           d d d            n# 1 swxY w Y   t          j	        t          |	          5  t          j        ||           d d d            n# 1 swxY w Y   t          j	        t          |	          5  t          j        ||           d d d            n# 1 swxY w Y   t          j	        t          |	          5  t          j        ||           d d d            n# 1 swxY w Y   t          j	        t          |	          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )
Nzm8[ns]z
2005-01-01r   r	   r   r   r   z2Value must be Period, string, integer, or datetimerD   )r)   NaTto_numpyperiod_ranger   r   r@   r&   rF   rG   
ValueErrorr   rZ   PeriodIndexIndexr-   r/   )tdr   r2   rH   s       r"   !test_from_td64nat_sequence_raisesre   q   s^   		"	"BOL!#>>>DE
(D6
(
(
(CCF
>C	z	-	-	- 5 5"3e44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
z	-	-	- ) )
s%(((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	z	-	-	- # #
E""""# # # # # # # # # # # # # # #	z	-	-	- # #
E""""# # # # # # # # # # # # # # #	z	-	-	- $ $
	#U####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	z	-	-	- ' '
S&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'sl   :BB!$B!C&&C*-C*D//D36D3E88E<?E<GGG'HHHc                  @   t          j        d                              t           j                  } d}t	          j        t          |          5  t          | d          }d d d            n# 1 swxY w Y   t          | d          }t	          j        ||           d S )N   z?The 'freq' keyword in the PeriodArray constructor is deprecatedrD   r5   r   rR   r   )	r   arangeastyper   r   assert_produces_warningFutureWarningr   assert_equal)r   rH   resr    s       r"   test_freq_deprecatedrn      s    9Q<<rx((D
KC		#M	=	=	= * *$S)))* * * * * * * * * * * * * * * 4{333HOC"""""s   A--A14A1c                      t          j        ddgd          } t          j        | t	          d                    }t          ddgt	          d                    }t          j        ||           d S )	Nr>   z2020-02-02T00:00:00r?   r   r<   r   z
2020-01-01z
2020-02-01)r   r@   r   r8   r   r   r   r,   r9   s      r"   !test_period_array_from_datetime64rp      sw    
(	 56>N  C )#HQKK@@@F\<8x{{KKKH 22222r$   )%numpyr   rF   pandas._libs.tslibsr   pandas._libs.tslibs.offsetsr   pandas._libs.tslibs.periodr   pandasr)   pandas._testing_testingr   pandas.core.arraysr   r   markparametrizer*   rT   rU   Dayr-   r7   r`   r#   r3   r:   rA   rI   rN   rV   r\   re   rn   rp    r$   r"   <module>r}      s.        $ $ $ $ $ $ 0 0 0 0 0 0 < < < < < <                  
")FC
 
 	!4%1
")FC
 
 	!30
ug
3 
")FC
 
 	!2:#5#9#9#;#;eWE
")FC
 
 $	't}=	=2=333	4	4d<Q<Q<QR	vq	)	)	)41F1F1FG		5	5	5t=Q=Q=QR
 2 2 2; ; ; 3 3 3 $!4553 3 653  RYvs##YRYvs%;%;<&	

 ")FC
 
 	!3(BC
 
! !
 
!
, , ,& & &D D D' ' '2# # #3 3 3 3 3r$   