
    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	Z
d dlmZ d dlmZmZ ej"                  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*                  j-                         d	gf e
j&                  dd      dgdd	egf e
j.                   e
j0                  dd            dg df e
j0                  dd      dg df e
j2                  ddd      dg dfg	      d        Zd Zd Zej"                  j%                  dd ed      g      d        Zej"                  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$y)#    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                  ||       y )Nr   dtype)r   asi8npasarrayint64tmassert_numpy_array_equal)datar   expectedresults       c/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/period/test_constructors.pytest_period_array_okr#      s:     $T*//Fzz("((3H1    c                     t        t        j                  d      g      } t        j                  | d      }|j                  d       t        |      }t        j                  ||        t        j                  |      }t        j                  |t        j                  |              t        j                  d|i      }t        j                  |t        j                  d| i             y )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    	ryy./	0B
**Rx
(CLLuL#F  ,YYs^F6299R=1\\3*%F&",,Ry"9:r$   c                      t        j                  ddd      } t        j                  | d      }t	        g dd      }t        j                  ||       y )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   sC    
--
4C))#C8FFSQH  2r$   r   2M   c                     t        j                  ddgd      }t        j                  ||       }t	        ddg|       }t        j                  ||       y )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   <   sQ    
((	 56>NC ))#t4FY	2>H  2r$   zdata, freq, msgYzInput has different freqc                 |    t        j                  t        |      5  t        | |       d d d        y # 1 sw Y   y xY w)Nmatch)pytestraisesr   r   )r   r   msgs      r"   test_period_array_raisesrI   F   s2     
,C	8 !T4 ! ! !s   2;c                      t        j                  g d      } t        j                  t        d      5  t        | d       d d d        y # 1 sw Y   y xY w)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=    
))I
C	y	0 ,C{+, , ,s   A

Ac                     t        ddgd      } t        j                  t        d      5  t	        | d       d d d        t        j                  t
        j                  j                  j                               }t        j                  t        d      5  t	        | |       d d d        y # 1 sw Y   vxY w# 1 sw Y   y xY w)	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   \   s    
'c
2C	,F	; ,C{+, NN2::--6689E	,F	; &Cu%& &	, ,& &s   B.B:.B7:Cc                     t        ddgd      } t        | d   j                        }t        j                  t
        |      5  t        j                  | j                  | j                         d d d        t        j                  t
        |      5  t        j                  t        | j                        | j                         d d d        y # 1 sw Y   bxY w# 1 sw Y   y xY w)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
2C
c!fnn
C	y	, >""388399=> 
y	, D""4>CD D> >D Ds   ,C5CCC%c                  $   t         j                  j                  d      } t        j                  ddd      j                  }t        j                  d gt              }| |d<   d}t        j                  t        |	      5  t        j                  ||       d d d        t        j                  t        |	      5  t        j                  ||       d d d        t        j                  t        |	      5  t        j                  ||       d d d        t        j                  t        |	      5  t        j                  ||       d d d        t        j                  t        |	      5  t        j                  ||       d d d        t        j                  t        |	      5  t        j                   ||       d d d        y # 1 sw Y   2xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   y xY w)
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OOL!#>DDE
((D6
(CCF
>C	z	- 5""3e45 
z	- )
s%()	z	- #
E"#	z	- #
E"#	z	- $
		#U#$	z	- '
S&' '5 5) )# ## #$ $' 'sH    G;G6G"1G.,G:'HGG"G+.G7:HHc                  ,   t        j                  d      j                  t         j                        } d}t	        j
                  t        |      5  t        | d      }d d d        t        | d      }t	        j                  |       y # 1 sw Y   -xY w)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      sp    99Q<rxx(D
KC		#	#M	= *$S)* 4{3HOOC"	* *s   B

Bc                      t        j                  ddgd      } t        j                  | t	        d            }t        ddgt	        d            }t        j                  ||       y )	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      sY    
((	 56>NC ))#HQK@F\<8x{KH  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 <   
"))FC
 	!4%1
"))FC
 	!30
ug
3 
"))FC
 	!2::#5#5#9#9#;eWE
"))FC
 $	't}=	=2==3	4d<QR	vq	)41FG		5t=QR
22; 3 $!453 63  RYYvs#YRYYvs%;<&	

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