
    i"                         d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
 d dlmZ  G d d      Z G d d      Z G d d	      Zy)
    N)Pandas4Warning)NaTPeriodPeriodIndex
date_rangeperiod_rangec                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestPeriodRangeKeywordsc                     d}t        j                  t        |      5  t        ddd       d d d        y # 1 sw Y   y xY w)NOOf the three parameters: start, end, and periods, exactly two must be specifiedmatchz2011-1-1z2012-1-1Bpytestraises
ValueErrorr   selfmsgs     j/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/indexes/period/test_period_range.pytest_required_argumentsz/TestPeriodRangeKeywords.test_required_arguments   s=      	 ]]:S1 	6Z5	6 	6 	6   5>c                     t        dd      }d}t        j                  t        |      5  t	        |       d d d        y # 1 sw Y   y xY w)N02-Apr-2005Dr   r   start)r   r   r   r   r   )r   r   r   s      r   test_required_arguments2z0TestPeriodRangeKeywords.test_required_arguments2   sE    }c*  	 ]]:S1 	&u%	& 	& 	&s   A  A	c                    d}t        j                  t        |      5  t        d       d d d        t        j                  t        |      5  t        d       d d d        t        j                  t        |      5  t        d       d d d        t        j                  t        |      5  t                d d d        y # 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   PxY w# 1 sw Y   y xY w)Nr   r   2017Q1r   )end   )periodsr   r   s     r   test_required_arguments3z0TestPeriodRangeKeywords.test_required_arguments3"   s    , 	 ]]:S1 	)x(	) ]]:S1 	'X&	' ]]:S1 	$#	$ ]]:S1 	N	 		) 	)	' 	'	$ 	$	 	s/   CC>C.C&CCC#&C/c                     d}t        j                  t        |      5  t        dddd       d d d        y # 1 sw Y   y xY w)Nr   r   r!   2018Q1   Q)r   r"   r$   freqr   r   s     r    test_required_arguments_too_manyz8TestPeriodRangeKeywords.test_required_arguments_too_many4   sC    , 	 ]]:S1 	LxXqsK	L 	L 	Ls	   7A c                    d}t        j                  t        |      5  t        t        d       d d d        t        j                  t        |      5  t        t        dd       d d d        t        j                  t        |      5  t        dt               d d d        t        j                  t        |      5  t        dt        d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   y xY w)Nzstart and end must not be NaTr   r'   r   r"   r)   )r   r"   r*   r!   )r   r   r   r   r   r   s     r   test_start_end_non_natz.TestPeriodRangeKeywords.test_start_end_non_nat<   s    -]]:S1 	2s1	2]]:S1 	<ss;	< ]]:S1 	2xS1	2]]:S1 	<xSs;	< 	<	2 	2	< 	<	2 	2	< 	<s/   CC&	C2>C>C#&C/2C;>Dc                     d}t        j                  t        |      5  t        dd       d d d        y # 1 sw Y   y xY w)Nz#periods must be an integer, got foor   r!   foo)r   r$   )r   r   	TypeErrorr   r   s     r   test_periods_requires_integerz5TestPeriodRangeKeywords.test_periods_requires_integerI   s4    3]]9C0 	8x7	8 	8 	8r   N)	__name__
__module____qualname__r   r   r%   r+   r.   r2        r   r
   r
      s!    6&$L<8r7   r
   c                   f    e Zd Zej                  j                  dg d      d        Zd Zd Zd Z	y)TestPeriodRangezfreq_offset, freq_period))r   r   )Wr:   )QEr)   )YEYc                 N   t        dd|d      j                         }t        |d         t        |d         }}t        |||d      }t	        j
                  ||       t        |d|d      }t	        j
                  ||       t        |d|d      }t	        j
                  ||       t        g |d	      }t        |d|d      }t	        j
                  ||       t        |d|d      }t	        j
                  ||       t        |||d      }t	        j
                  ||       y )
N
2017-01-01r#   r0   r   r$   r*   namer   r   r"   r*   rA   r"   r$   r*   rA   r*   rA   r   	to_periodstrr   tmassert_index_equalr   )r   freq_offsetfreq_periodexpectedr   r"   results          r   test_construction_from_stringz-TestPeriodRange.test_construction_from_stringQ   s    %

)+ 	 !%s8B<'8sEs5Q
fh/E1;US
fh/#q{O
fh/ r%@E1;US
fh/#q{O
fh/CU5Q
fh/r7   c                 N   t        dddd      j                         }t        |d         t        |d         }}t        ||dd	      }t	        j
                  ||       t        |ddd      }t	        j
                  ||       t        |ddd
      }t	        j
                  ||       t        g dd      }t        |ddd      }t	        j
                  ||       t        |ddd
      }t	        j
                  ||       t        ||dd	      }t	        j
                  ||       y )Nr?   r#   MEr0   r@   r   rB   MrC   rD   rE   rF   )r   rM   r   r"   rN   s        r   %test_construction_from_string_monthlyz5TestPeriodRange.test_construction_from_string_monthlyv   s   5

)+ 	 !%s8B<'8sEs5I
fh/E13UK
fh/#qsG
fh/ r%8E13UK
fh/#qsG
fh/CU5I
fh/r7   c                 8   t        dd      t        dd      }}t        dddd	      j                         }t        ||d
d	      }t	        j
                  ||       t        dd
      }t        dd
      }t        dddd	      j                         }t        ||dd	      }t	        j
                  ||       t        dd      }t        dd      }t        ||dd	      }||j                  k(  }t        j                  g d      }t	        j                  ||       t        g dd      }t        |ddd      }t	        j
                  ||       t        |ddd      }t	        j
                  ||       t        ||dd	      }t	        j
                  ||       y )Nr!   r)   )r*   r'   z
2017-03-31z
2018-03-31rQ   r0   rC   rR   z2017-1z2019-12z
2017-01-31z
2019-12-31r;   )TTTTTr:   rE   r   r@   rD   )r   r   rG   r   rI   rJ   valuesnparrayassert_numpy_array_equalr   )r   r   r"   rM   rN   idxs         r   test_construction_from_periodz-TestPeriodRange.test_construction_from_period   sx   H3/s1KsLt%

)+ 	 Es5I
fh/ xc*YS)Lt%

)+ 	 Es5I
fh/ xc*XC(CcF

"88:;
##FH5 r%8E13UK
fh/#qsG
fh/CU5I
fh/r7   c                    d}t        dd      }t        j                  t        |      5  t        dd      }t        dd      }d d d        d}t	        j
                  t        |      5  t        j                  t        |      5  t        |	       d d d        d d d        t        j                  t        |      5  t        	       d d d        y # 1 sw Y   xY w# 1 sw Y   OxY w# 1 sw Y   SxY w# 1 sw Y   y xY w)
Nz#Period with BDay freq is deprecatedz
2006-12-311Wr   r   r   z
2005-05-01z!start and end must have same freqr-   )r   rI   assert_produces_warningFutureWarningr   r   r   r   )r   depr_msgend_wstart_bend_br   s         r   %test_mismatched_start_end_freq_raisesz5TestPeriodRange.test_mismatched_start_end_freq_raises   s    8|T*''XF 	.]C0G<-E	. 2]]:S1 	7++MJ 7767	7
 ''XF 	3wE2	3 	3	. 	.7 7	7 	7
	3 	3s;   C(C,C C,=C8C C)	%C,,C58DN)
r3   r4   r5   r   markparametrizerO   rS   rZ   rc   r6   r7   r   r9   r9   P   s;    [["	
00808$0L3r7   r9   c                   0   e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d	        Z	ej
                  j                  dd
g      d        Z
y)TestPeriodRangeDisallowedFreqsc                     t        j                  t        d      5  t        ddd       d d d        y # 1 sw Y   y xY w)NzInvalid frequency: Xr   z2007-1-1i  Xr$   r*   r   )r   s    r   test_constructor_Uz1TestPeriodRangeDisallowedFreqs.test_constructor_U   s2    ]]:-CD 	<Ss;	< 	< 	<s   4=	freq_depr)2MIN2US2NSc                     d|dd   d|j                         dd   d}t        j                  t        |      5  t	        dd|       d d d        y # 1 sw Y   y xY w)	N'   E' is deprecated and will be removed in a future version, please use '
' instead.r   z2020-01-01 00:00:00 00:00   rj   )lowerrI   r]   r   r   )r   rl   r   s      r   /test_uppercase_freq_deprecated_from_time_serieszNTestPeriodRangeDisallowedFreqs.test_uppercase_freq_deprecated_from_time_series   so     	!" ++4??+<QR+@*AM 	
 ''cB 	Q4aiP	Q 	Q 	Q   AAr*   )2mz2q-sep2y2H2Sc                     d| }t        j                  t        |      5  t        |dd       d d d        y # 1 sw Y   y xY wNzInvalid frequency: r   1/1/2001	12/1/2009r*   r   r"   r   r   r*   r   s      r   0test_incorrect_case_freq_from_time_series_raiseszOTestPeriodRangeDisallowedFreqs.test_incorrect_case_freq_from_time_series_raises   sC     $D6*]]:S1 	Gd*+F	G 	G 	G	   9A)2A2az2A-AUGz2A-augc                     d| }t        j                  t        |      5  t        |dd       d d d        y # 1 sw Y   y xY wr~   r   r   s      r   test_A_raises_from_time_seriesz=TestPeriodRangeDisallowedFreqs.test_A_raises_from_time_series   sA    #D6*]]:S1 	Gd*+F	G 	G 	Gr   2wc                     d|dd   d|j                         dd   d}t        j                  t        |      5  t	        |dd       d d d        y # 1 sw Y   y xY w)	Nrq   rr   rs   rt   r   r   r   r   )upperrI   r]   r   r   r   s      r   /test_lowercase_freq_from_time_series_deprecatedzNTestPeriodRangeDisallowedFreqs.test_lowercase_freq_from_time_series_deprecated   sm     QRz ++/::<+;*<JH 	
 ''cB 	Gd*+F	G 	G 	Grx   N)r3   r4   r5   rk   r   rd   re   rw   r   r   r   r6   r7   r   rg   rg      s    <
 [[[*@AQ BQ [[V%GHG IG [[V%EFG GG [[VdV,G -Gr7   rg   )numpyrV   r   pandas.errorsr   pandasr   r   r   r   r   pandas._testing_testingrI   r
   r9   rg   r6   r7   r   <module>r      sA      (  =8 =8@w3 w3t)G )Gr7   