
    Eg#                         d dl Zd dl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dS )	    N)NaTPeriodPeriodIndex
date_rangeperiod_rangec                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestPeriodRangeKeywordsc                     d}t          j        t          |          5  t          ddd           d d d            d S # 1 swxY w Y   d S )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     b/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/indexes/period/test_period_range.pytest_required_argumentsz/TestPeriodRangeKeywords.test_required_arguments   s      	 ]:S111 	6 	6Z555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6   =AAc                     t          dd          }d}t          j        t          |          5  t	          |           d d d            d S # 1 swxY w Y   d S )N02-Apr-2005Dr   r   start)r   r   r   r   r   )r   r   r   s      r   test_required_arguments2z0TestPeriodRangeKeywords.test_required_arguments2   s    }c**  	 ]:S111 	& 	&u%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   AAAc                     d}t          j        t          |          5  t          d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          d           d d d            n# 1 swxY w Y   t          j        t          |          5  t                       d d d            d S # 1 swxY w Y   d S )Nr   r   2017Q1r   )end   )periodsr   r   s     r   test_required_arguments3z0TestPeriodRangeKeywords.test_required_arguments3    s   , 	 ]:S111 	) 	)x((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) ]:S111 	' 	'X&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' ]:S111 	$ 	$####	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ ]:S111 	 	NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sC   ;??!A>>BB$CCC'DD
Dc                     d}t          j        t          |          5  t          dddd           d d d            d S # 1 swxY w Y   d S )Nr   r   r    2018Q1   Q)r   r!   r#   freqr   r   s     r    test_required_arguments_too_manyz8TestPeriodRangeKeywords.test_required_arguments_too_many2   s    , 	 ]:S111 	L 	LxXqsKKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	Ls   ?AAc                 X   d}t          j        t          |          5  t          t          d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          t          dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dt                     d d d            n# 1 swxY w Y   t          j        t          |          5  t          dt          d           d d d            d S # 1 swxY w Y   d S )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11 	2 	2s1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2]:S111 	< 	<ss;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< ]:S111 	2 	2xS1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2]:S111 	< 	<xSs;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<sG   AAA'BBB1CCC:DD#&D#c                     d}t          j        t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nz!periods must be a number, got foor   r    foo)r   r#   )r   r   	TypeErrorr   r   s     r   test_periods_requires_integerz5TestPeriodRangeKeywords.test_periods_requires_integerG   s    1]9C000 	8 	8x7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8r   N)	__name__
__module____qualname__r   r   r$   r*   r-   r1        r   r	   r	      sq        6 6 6& & &  $L L L< < <8 8 8 8 8r6   r	   c                   l    e Zd Zej                            dg d          d             Zd Zd Zd Z	dS )TestPeriodRangezfreq_offset, freq_period))r   r   )Wr9   )QEr(   )YEYc                    t          dd|d                                          }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        ||           d S )
N
2017-01-01r"   r/   r   r#   r)   namer   r   r!   r)   r@   r!   r#   r)   r@   r)   r@   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_stringO   sb    %
 
 

)++ 	 !%%s8B<'8'8sEs5QQQ
fh///E1;USSS
fh///#q{OOO
fh/// r%@@@E1;USSS
fh///#q{OOO
fh///CU5QQQ
fh/////r6   c                    t          dddd                                          }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        ||           d S )Nr>   r"   MEr/   r?   r   rA   MrB   rC   rD   rE   )r   rL   r   r!   rM   s        r   %test_construction_from_string_monthlyz5TestPeriodRange.test_construction_from_string_monthlyt   s`   5
 
 

)++ 	 !%%s8B<'8'8sEs5III
fh///E13UKKK
fh///#qsGGG
fh/// r%888E13UKKK
fh///#qsGGG
fh///CU5III
fh/////r6   c                    t          dd          t          dd          }}t          dddd	                                          }t          ||d
d	          }t	          j        ||           t          dd
          }t          dd
          }t          dddd	                                          }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        ||           d S )Nr    r(   )r)   r&   z
2017-03-31z
2018-03-31rP   r/   rB   rQ   z2017-1z2019-12z
2017-01-31z
2019-12-31r:   )TTTTTr9   rD   r   r?   rC   )r   r   rF   r   rH   rI   valuesnparrayassert_numpy_array_equalr   )r   r   r!   rL   rM   idxs         r   test_construction_from_periodz-TestPeriodRange.test_construction_from_period   s   H3///s1K1K1KsLt%
 
 

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

)++ 	 Es5III
fh/// xc***XC(((CcFFF
"8:::;;
#FH555 r%888E13UKKK
fh///#qsGGG
fh///CU5III
fh/////r6   c                    d}d}t          j        t          |          5  t          dd          }d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd          }t          dd          }d d d            n# 1 swxY w Y   d	}t	          j        t          |          5  t          j        t          |          5  t          ||
           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  t          ||
           d d d            d S # 1 swxY w Y   d S )Nz#Period with BDay freq is deprecatedz:'w' is deprecated and will be removed in a future version.r   z
2006-12-311wr   r   z
2005-05-01z!start and end must have same freqr,   )rH   assert_produces_warningFutureWarningr   r   r   r   r   )r   depr_msgr   end_wstart_bend_bs         r   %test_mismatched_start_end_freq_raisesz5TestPeriodRange.test_mismatched_start_end_freq_raises   s   8J'SAAA 	/ 	/<..E	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 'XFFF 	. 	.]C00G<--E	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 2]:S111 	7 	7+MJJJ 7 7766667 7 7 7 7 7 7 7 7 7 7 7 7 7 7	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7
 'XFFF 	3 	3wE2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3si   =AA#!BBB8D	C2&D	2C6	6D	9C6	:D		DD/EEEN)
r2   r3   r4   r   markparametrizerN   rR   rY   rb   r5   r6   r   r8   r8   N   s        ["	
 	
 	
 0 0 080 0 08$0 $0 $0L3 3 3 3 3r6   r8   c                       e Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d	             Z	d
S )TestPeriodRangeDisallowedFreqsc                     t          j        t          d          5  t          ddd           d d d            d S # 1 swxY w Y   d S )NzInvalid frequency: Xr   z2007-1-1i  Xr#   r)   r   )r   s    r   test_constructor_Uz1TestPeriodRangeDisallowedFreqs.test_constructor_U   s    ]:-CDDD 	< 	<Ss;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   <A A zfreq,freq_depr))2Y2A)rk   2a)2Y-AUGz2A-AUG)rn   z2A-augc                     d|dd           d}d|dd           d t          j        t          |          5  t          |dd	           d d d            d S # 1 swxY w Y   d S 
N'   )' is deprecated and will be removed in a future version. Please use '
' instead.r   z1/1/2001z	12/1/2009)r)   r   r!   )rH   r\   r]   r   )r   r)   	freq_deprr   s       r   "test_a_deprecated_from_time_serieszATestPeriodRangeDisallowedFreqs.test_a_deprecated_from_time_series   s     K)ABB-JJJ;tABBx;;;;'SAAA 	L 	Liz{KKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	Ls   AAArv   )2H2MIN2S2US2NSc                     d|dd           d}d|                                 dd           d t          j        t          |          5  t	          dd|	           d d d            d S # 1 swxY w Y   d S )
Nrq   rr   rs   rt   ru   r   z2020-01-01 00:00:00 00:00   ri   )lowerrH   r\   r]   r   r   rv   r   s      r   /test_uppercase_freq_deprecated_from_time_serieszNTestPeriodRangeDisallowedFreqs.test_uppercase_freq_deprecated_from_time_series   s     K)ABB-JJJHy'8'8'<HHHH'SAAA 	Q 	Q4aiPPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q   
A**A.1A.)2mz2q-sep2y2wc                     d|dd           d}d|                                 dd           d t          j        t          |          5  t	          |dd	           d d d            d S # 1 swxY w Y   d S rp   )upperrH   r\   r]   r   r   s      r   /test_lowercase_freq_deprecated_from_time_serieszNTestPeriodRangeDisallowedFreqs.test_lowercase_freq_deprecated_from_time_series   s     K)ABB-JJJHy'8'8'<HHHH'SAAA 	L 	Liz{KKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	Lr   N)
r2   r3   r4   rj   r   rc   rd   rw   r   r   r5   r6   r   rf   rf      s        < < <
 [	
 	
 	
 L L L [[*L*L*LMMQ Q NMQ [[*F*F*FGGL L HGL L Lr6   rf   )numpyrU   r   pandasr   r   r   r   r   pandas._testing_testingrH   r	   r8   rf   r5   r6   r   <module>r      s
                          =8 =8 =8 =8 =8 =8 =8 =8@y3 y3 y3 y3 y3 y3 y3 y3x'L 'L 'L 'L 'L 'L 'L 'L 'L 'Lr6   