o
    Û­jáè  ã                   @   s˜  d dl Z d dlZd dlZd dlmZmZmZmZ d dl	m
Z
 d dlZd dlmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZmZ ej d¡ej d	¡ej  ¡ gZ!ej"ed
d� #¡ e $d
d¡ed
d�ge! d�dd„ ƒZ%ej"e $dd¡edd� #¡ edd�ge! d�dd„ ƒZ&G dd„ dƒZ'G dd„ dƒZ(G dd„ dƒZ)G dd„ dƒZ*G dd„ dƒZ+G d d!„ d!ƒZ,G d"d#„ d#ƒZ-G d$d%„ d%ƒZ.dS )&é    N)ÚIncompatibleFrequencyÚPeriodÚ	TimestampÚ	to_offset)ÚPerformanceWarning)ÚPeriodIndexÚSeriesÚ	TimedeltaÚTimedeltaIndexÚperiod_range)Úops)ÚTimedeltaArray)Úassert_invalid_addsub_typeÚassert_invalid_comparisonÚget_upcast_boxé   é   é   )ÚminutesÚs)Úseconds)Úparamsc                 C   ó   | j S )zp
    Several timedelta-like and DateOffset instances that are _not_
    compatible with Hourly frequencies.
    ©Úparam©Úrequest© r   ú`/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/arithmetic/test_period.pyÚ
not_hourly)   ó   r   im  ÚD©Údaysc                 C   r   )z{
    Several timedelta-like and DateOffset instances that are _not_
    compatible with Monthly or Annual frequencies.
    r   r   r   r   r   Úmismatched_freq9   r    r$   c                   @   s  e Zd Zej ddeddd�g¡dd„ ƒZdd„ Zej d	d
e	dƒe
dd�dddddg¡dd„ ƒZej dejddd�jejddd�je d¡e d¡ ej¡eedƒƒg d¢e dd¡e dd¡ e¡e g d¢¡g	¡dd„ ƒZej deejdd„ g¡dd „ ƒZdS )!ÚTestPeriodArrayLikeComparisonsÚotherÚ2017r!   ©Úfreqc                 C   sZ   t g d¢dd�}t ||¡}t||dƒ}t g d¢¡}t ||¡}||k}t ||¡ d S )N)r'   r'   Ú2018r!   r(   T©TTF©r   ÚtmÚbox_expectedr   ÚnpÚarrayÚassert_equal)Úselfr&   Úbox_with_arrayÚidxÚxboxÚexpectedÚresultr   r   r   Útest_eq_scalarR   s   z-TestPeriodArrayLikeComparisons.test_eq_scalarc                 C   sh   t ddd�}t | ¡ d ¡}t ||¡}t||dƒ}||k}t g d¢¡}t ||¡}t ||¡ d S )NÚ2000é   ©Úperiodsr   T©TFFF)r   r/   r0   Úto_numpyr-   r.   r   r1   )r2   r3   Úpir&   r5   r7   r6   r   r   r   Útest_compare_zerodim_   s   z3TestPeriodArrayLikeComparisons.test_compare_zerodimÚscalarÚfooz
2021-01-01r:   r"   é	   g      #@éÐ  FNc                 C   ó(   t ddd�}t ||¡}t|||ƒ d S ©Nr9   r:   r;   ©r   r-   r.   r   )r2   r3   rA   r?   Úparrr   r   r   Útest_compare_invalid_scalarm   ó   z:TestPeriodArrayLikeComparisons.test_compare_invalid_scalarr9   r;   Ú1D)rD   iÑ  iÒ  iÓ  iÔ  c                 C   rE   rF   rG   )r2   r3   r&   r?   rH   r   r   r   Útest_compare_invalid_listlike�   rJ   z<TestPeriodArrayLikeComparisons.test_compare_invalid_listlikeÚ	other_boxc                 C   s
   |   t¡S ©N)ÚastypeÚobject©Úxr   r   r   Ú<lambda>•   ó   
 z'TestPeriodArrayLikeComparisons.<lambda>c           	      C   sî  t ddd�}t ||¡}||ƒ}t||dƒ}t g d¢¡}t ||¡}||k}t ||¡ ||k}t ||¡ ||k}t ||¡ ||k}t || ¡ ||k }t || ¡ ||k}t || ¡ ||d d d… ƒ}t g d¢¡}t ||¡}||k}t ||¡ t g d¢¡}t ||¡}||k}t ||¡ t g d	¢¡}t ||¡}||k}t ||¡ t g d
¢¡}t ||¡}||k}t ||¡ t g d¢¡}t ||¡}||k }t ||¡ t g d¢¡}t ||¡}||k}t ||¡ d S )Nr9   é   r;   T)TTTTTéÿÿÿÿ)FFTFF)TTTFF)FFTTT)TTFTT)TTFFF)FFFTT)r   r-   r.   r   r/   r0   r1   )	r2   r3   rM   r?   rH   r&   r5   r6   r7   r   r   r   Útest_compare_object_dtype•   sV   z8TestPeriodArrayLikeComparisons.test_compare_object_dtype)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer   r8   r@   r   r	   rI   ÚpdÚ
date_ranger0   Útimedelta_ranger/   ÚarangerO   Úfloat64ÚlistÚrangerP   ÚIndexrL   rW   r   r   r   r   r%   M   sB    
øþ


öþ
r%   c                   @   s¸   e Zd Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZej dg d¢¡d	d
„ ƒZ	ej dg d¢¡dd„ ƒZ
ej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZej dedg¡dd„ ƒZdS )ÚTestPeriodIndexComparisonsc                 C   s~   t dddd�}|d }||k }|j|jd k }t ||¡ |j dd¡|k }t || dd¡¡ |t |¡k }t ||¡ d S )Nú2007-01é   ÚM©r<   r)   é
   r   )r   Úvaluesr-   Úassert_numpy_array_equalÚreshaper/   r0   )r2   r4   Úperr7   Úexpr   r   r   Útest_pi_cmp_periodÒ   s   z-TestPeriodIndexComparisons.test_pi_cmp_periodc                    sž   t dddd�}|d ‰ ‡ fdd„|D ƒ}t ||¡}t|ˆ dƒ}t ||¡}|ˆ k}t ||¡ |d	 ‰ |ˆ k}‡ fd
d„|D ƒ}t ||¡}t ||¡ d S )Nz
2000-01-01rk   r!   rj   é   c                    ó   g | ]}|ˆ k‘qS r   r   ©Ú.0rR   ©Úvalr   r   Ú
<listcomp>ç   ó    zKTestPeriodIndexComparisons.test_parr_cmp_period_scalar2.<locals>.<listcomp>TrU   c                    rs   r   r   rt   rv   r   r   rx   ò   ry   )r   r-   r.   r   r1   )r2   r3   r?   r6   Úserr5   r7   r   rv   r   Útest_parr_cmp_period_scalar2ã   s   z7TestPeriodIndexComparisons.test_parr_cmp_period_scalar2r)   )ri   Ú2MÚ3Mc                 C   s”  t g d¢|d�}t ||¡}td|d�}t||dƒ}t g d¢¡}t ||¡}t ||k|¡ t ||k|¡ t g d¢¡}t ||¡}t ||k|¡ t ||k|¡ t g d¢¡}t ||¡}t ||k|¡ t ||k |¡ t g d¢¡}t ||¡}t ||k |¡ t ||k|¡ t g d	¢¡}t ||¡}t ||k|¡ t ||k|¡ t g d
¢¡}t ||¡}t ||k|¡ t ||k|¡ d S )N©ú2011-01ú2011-02ú2011-03ú2011-04r(   r€   T©FTFF©TFTT)FFTTr=   )FTTT)TTFF)r   r-   r.   r   r   r/   r0   r1   )r2   r)   r3   Úbasero   r5   rp   r   r   r   Útest_parr_cmp_period_scalarö   s8   z6TestPeriodIndexComparisons.test_parr_cmp_period_scalarc                 C   s8  t g d¢|d�}t ||¡}t g d¢|d�}t||dƒ}t g d¢¡}t ||¡}t ||k|¡ t g d¢¡}t ||¡}t ||k|¡ t g d¢¡}t ||¡}t ||k|¡ t g d¢¡}t ||¡}t ||k |¡ t g d	¢¡}t ||¡}t ||k|¡ t g d
¢¡}t ||¡}t ||k|¡ d S )Nr~   r(   )r€   r   r�   ú2011-05T©FFTF©TTFTrƒ   ©TFFT©FTTFr„   r,   )r2   r)   r3   r…   r4   r5   rp   r   r   r   Útest_parr_cmp_pi  s,   z+TestPeriodIndexComparisons.test_parr_cmp_pic                 C   sö  t g d¢|d�}t ||¡}d|› d�}tjt|d�� |tddd�k W d   ƒ n1 s.w   Y  tjt|d�� tddd�|k W d   ƒ n1 sMw   Y  t g d¢dd�}d	}|tjtj	fv rf|n|}tjt|d�� ||k W d   ƒ n1 s~w   Y  d|› d�}tjt|d�� |tdd
d�k W d   ƒ n1 s£w   Y  tjt|d�� tdd
d�|k W d   ƒ n1 sÂw   Y  t g d¢d
d�}d}|tjtj	fv rÛ|n|}tjt|d�� ||k W d   ƒ d S 1 sôw   Y  d S )Nr~   r(   ú)Invalid comparison between dtype=period\[z\] and Period©ÚmatchÚ2011ÚY)r�   Ú2012Ú2013Ú2014z@Invalid comparison between dtype=period\[Y-DEC\] and PeriodArrayÚ4Mz=Invalid comparison between dtype=period\[4M\] and PeriodArray)
r   r-   r.   r[   ÚraisesÚ	TypeErrorr   Úto_arrayr^   r0   )r2   r)   r3   r…   Úmsgr4   Úrev_msgÚidx_msgr   r   r   Ú test_parr_cmp_pi_mismatched_freq?  s8   ÿÿ
ÿÿÿ
"ÿz;TestPeriodIndexComparisons.test_parr_cmp_pi_mismatched_freqc                 C   s€  t g d¢|d�}|d }||k}t g d¢¡}t ||¡ ||k }t ||¡ |tjk}t g d¢¡}t ||¡ tj|k}t ||¡ |tjk}t g d¢¡}t ||¡ tj|k}t ||¡ t g d¢|d�}||k }t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ ||k}t g d	¢¡}t ||¡ ||k}t g d
¢¡}t ||¡ d S )N©r   r€   ÚNaTr‡   r(   r   ©FFFT©FFFF©TTTT©r€   r   r‚   rž   r=   r‰   rˆ   )r   r/   r0   r-   rm   r^   rž   )r2   r)   Úidx1ro   r7   rp   Úidx2r   r   r   Útest_pi_cmp_natb  sB   



z*TestPeriodIndexComparisons.test_pi_cmp_natc                 C   sŒ   t g d¢|d�}t g d¢dd�}d|› d�}tjt|d�� ||k W d   ƒ n1 s,w   Y  ||k}tjg d¢td	�}t ||¡ d S )
Nr�   r(   r¢   r•   r�   z\] and PeriodArrayrŽ   r    ©Údtype)	r   r[   r–   r—   r/   r0   Úboolr-   rm   )r2   r)   r£   Údiffr™   r7   r6   r   r   r   Ú&test_pi_cmp_nat_mismatched_freq_raisesŽ  s   
ÿzATestPeriodIndexComparisons.test_pi_cmp_nat_mismatched_freq_raisesr§   Nc                 C   s(  t tdƒtjtdƒgƒ}t tjtjtdƒgƒ}|d ur%| |¡}| |¡}||k}t g d¢¡}t ||¡ ||k}t g d¢¡}t ||¡ t g d¢¡}t |tjk|¡ t tj|k|¡ t g d¢¡}t |tjk|¡ t tj|k|¡ t g d¢¡}t |tjk |¡ t tj|k|¡ d S )Nú
2011-01-01ú
2011-01-03)FFTr+   )FFF)TTT)	r   r   r^   rž   rO   r/   r0   r-   rm   )r2   r§   ÚleftÚrightr7   r6   r   r   r   Útest_comp_natœ  s(   

z(TestPeriodIndexComparisons.test_comp_nat)rX   rY   rZ   rq   r{   r[   r\   r]   r†   rŒ   rœ   r¥   rª   rP   r¯   r   r   r   r   rf   Ï   s    
%
"
"
+
rf   c                   @   ó   e Zd Zdd„ ZdS )ÚTestPeriodSeriesComparisonsc                 C   s  t tddd�tddd�tddd�tddd�gƒ}t tddd�td	dd�tddd�td
dd�gƒ}t g d¢ƒ}t ||k|¡ t g d¢ƒ}t ||k|¡ t g d¢ƒ}t ||k|¡ t g d¢ƒ}t ||k |¡ t g d¢ƒ}t ||k|¡ t g d¢ƒ}t ||k|¡ d S )Nr�   r‘   r(   r€   ri   r“   r‚   r’   r   r‡   rˆ   r‰   rƒ   rŠ   r‹   r„   )r   r   r-   Úassert_series_equal)r2   r…   rz   rp   r   r   r   Ú(test_cmp_series_period_series_mixed_freq»  s4   



üÿ	



üÿ	zDTestPeriodSeriesComparisons.test_cmp_series_period_series_mixed_freqN)rX   rY   rZ   r³   r   r   r   r   r±   º  ó    r±   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	Ú*TestPeriodIndexSeriesComparisonConsistencyú2Test PeriodIndex and Period Series Ops consistencyc                 C   s`   t |ƒ}||ƒ}t|tjtjfƒsJ ‚t ||¡ t|ƒ}||ƒ}t||j	d�}t 
||¡ d S ©N©Úname)r   Ú
isinstancer^   re   r/   Úndarrayr-   r1   r   r¹   r²   )r2   rl   Úfuncr6   r4   r7   r   rp   r   r   r   Ú_checkç  s   z1TestPeriodIndexSeriesComparisonConsistency._checkc                    s8  t g d¢ddd�}|d ‰ ‡ fdd„}tjg d¢tjd	�}|  |||¡ ‡ fd
d„}|  |||¡ ‡ fdd„}tjg d¢tjd	�}|  |||¡ ‡ fdd„}|  |||¡ ‡ fdd„}tjg d¢tjd	�}|  |||¡ ‡ fdd„}tjg d¢tjd	�}|  |||¡ ‡ fdd„}tjg d¢tjd	�}|  |||¡ d S )Nr~   ri   r4   ©r)   r¹   r   c                    ó   | ˆ kS rN   r   rQ   ©ro   r   r   rS   ý  ó    zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>rˆ   r¦   c                    ó   ˆ | kS rN   r   rQ   rÀ   r   r   rS      rÁ   c                    ó   | ˆ kS rN   r   rQ   rÀ   r   r   rS     rÁ   r‰   c                    ó   ˆ | kS rN   r   rQ   rÀ   r   r   rS     rÁ   c                    ó   ˆ | kS rN   r   rQ   rÀ   r   r   rS   	  rÁ   )TTTFc                    s   | ˆ kS rN   r   rQ   rÀ   r   r   rS     rÁ   rŸ   c                    rÅ   rN   r   rQ   rÀ   r   r   rS     rÁ   ©r   r/   r0   Úbool_r½   ©r2   r4   Úfrp   r   rÀ   r   Útest_pi_comp_period÷  s.   
ÿz>TestPeriodIndexSeriesComparisonConsistency.test_pi_comp_periodc                    sÞ  t g d¢ddd�}|d ‰ ‡ fdd„}tjg d¢tjd	�}|  |||¡ ‡ fd
d„}|  |||¡ dd„ }tjg d¢tjd	�}|  |||¡ dd„ }|  |||¡ ‡ fdd„}tjg d¢tjd	�}|  |||¡ ‡ fdd„}|  |||¡ dd„ }tjg d¢tjd	�}|  |||¡ dd„ }|  |||¡ ‡ fdd„}tjg d¢tjd	�}|  |||¡ ‡ fdd„}tjg d¢tjd	�}|  |||¡ dd„ }tjg d¢tjd	�}|  |||¡ dd„ }tjg d¢tjd	�}|  |||¡ d S )N©r   rž   r�   r‚   ri   r4   r¾   r   c                    r¿   rN   r   rQ   rÀ   r   r   rS     rÁ   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>rˆ   r¦   c                    rÂ   rN   r   rQ   rÀ   r   r   rS     rÁ   c                 S   s
   | t jkS rN   ©r^   rž   rQ   r   r   r   rS   !  rT   r    c                 S   s
   t j| kS rN   rÌ   rQ   r   r   r   rS   $  rT   c                    rÃ   rN   r   rQ   rÀ   r   r   rS   '  rÁ   r‰   c                    rÄ   rN   r   rQ   rÀ   r   r   rS   *  rÁ   c                 S   s
   | t jkS rN   rÌ   rQ   r   r   r   rS   -  rT   r¡   c                 S   s
   t j| kS rN   rÌ   rQ   r   r   r   rS   0  rT   c                    rÅ   rN   r   rQ   rÀ   r   r   rS   3  rÁ   )TFTFc                    s   | ˆ k S rN   r   rQ   rÀ   r   r   rS   7  rÁ   r=   c                 S   s
   | t jkS rN   rÌ   rQ   r   r   r   rS   ;  rT   c                 S   s
   t j| kS rN   rÌ   rQ   r   r   r   rS   ?  rT   rÆ   rÈ   r   rÀ   r   Útest_pi_comp_period_nat  sH   
ÿzBTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_natN)rX   rY   rZ   Ú__doc__r½   rÊ   rÍ   r   r   r   r   rµ   â  s
    rµ   c                   @   r°   )ÚTestPeriodFrameArithmeticc                 C   sŽ  t  tddd�tddd�gtddd�tddd�gdœ¡}|d jd	ks%J ‚|d
 jd	ks.J ‚tddd�}|j}t  tjd| d| gtd�tjd| d| gtd�dœ¡}t 	|| |¡ t 	|| d| ¡ t  tddd�tddd�gtddd�tddd�gdœ¡}|d jd	ksŒJ ‚|d
 jd	ks•J ‚t  tjd| d| gtd�tjd| d| gtd�dœ¡}t 	|| |¡ t 	|| d| ¡ d S )Nz2015-01ri   r(   z2015-02ú2014-01z2014-02)ÚAÚBrÑ   ú	Period[M]rÒ   z2015-03r   r   r¦   é   é   rV   z2015-05z2015-06r:   é   )
r^   Ú	DataFramer   r§   r)   r/   r0   rP   r-   Úassert_frame_equal)r2   ÚdfÚpÚoffrp   Údf2r   r   r   Útest_ops_frame_periodI  s<   þÿþÿþÿþÿz/TestPeriodFrameArithmetic.test_ops_frame_periodN)rX   rY   rZ   rÝ   r   r   r   r   rÏ   H  r´   rÏ   c                   @   s   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡dd„ ƒZ
ej 	d	g d
¢¡ej 	dejjdfejjdfejjdfejjdfg¡dd„ ƒƒZej 	dedƒedƒ ¡ edƒ ¡ ejdddd�ejdddd�ejdddd�jejdddd�jde g d¢¡g	¡dd „ ƒZd!d"„ Zd#d$„ Zej 	d%g d&¢¡ej 	d'ddg¡d(d)„ ƒƒZej 	d*ejejg¡d+d,„ ƒZej 	d*ejejg¡d-d.„ ƒZd/d0„ Z d1d2„ Z!ej 	d3d4ejd4ej"d5�g¡d6d7„ ƒZ#d8d9„ Z$d:d;„ Z%ej 	d<d=d>g¡d?d@„ ƒZ&dAdB„ Z'ej 	dCejejg¡ej 	dDe(j)e*j+g¡dEdF„ ƒƒZ,ej 	dCejejg¡dGdH„ ƒZ-dIdJ„ Z.ej 	dKg dL¢¡dMdN„ ƒZ/dOdP„ Z0dQdR„ Z1dSdT„ Z2dUdV„ Z3dWdX„ Z4dYdZ„ Z5d[d\„ Z6d]d^„ Z7d_d`„ Z8dadb„ Z9ej 	d<d=d>g¡dcdd„ ƒZ:ej 	dejdegdf dgd5�e;j<degdf dgd5�g¡dhdi„ ƒZ=djdk„ Z>dldm„ Z?dndo„ Z@dS )pÚTestPeriodIndexArithmeticc                 C   sž   t dddd�}t dddd�}t ||¡}d}tjt|d�� ||  W d   ƒ n1 s,w   Y  tjt|d�� ||7 }W d   ƒ d S 1 sHw   Y  d S )Nú1/1/2000r!   rU   ©r)   r<   ú1/6/2000z/unsupported operand type\(s\) for \+: .* and .*rŽ   )r   r-   r.   r[   r–   r—   )r2   r3   Úrngr&   r™   r   r   r   Útest_parr_add_iadd_parr_raisesz  s   
ÿ
"ÿz8TestPeriodIndexArithmetic.test_parr_add_iadd_parr_raisesc                 C   sb   t dddd�}t dddd�}|j}t d| gd ¡}|| }t ||¡ ||8 }t ||¡ d S )Nrß   r!   rU   rà   rá   éûÿÿÿ)r   r)   r^   re   r-   Úassert_index_equal)r2   râ   r&   rÛ   r6   r7   r   r   r   Útest_pi_sub_isub_pi‹  s   z-TestPeriodIndexArithmetic.test_pi_sub_isub_pic                 C   s†   t dddd�}|dd …  dtj¡}|dd …  |dd … ¡s!J ‚|| }|j}t tjd| d| d| d| g¡}t ||¡ d S )Nrß   r!   rU   rà   r   r   )	r   Úinsertr^   rž   Úequalsr)   re   r-   rå   )r2   râ   r&   r7   rÛ   r6   r   r   r   Útest_pi_sub_pi_with_nat›  s   &z1TestPeriodIndexArithmetic.test_pi_sub_pi_with_natc                 C   st   t dddd�}t dddd�}t ||¡}t ||¡}d}tjt|d�� ||  W d   ƒ d S 1 s3w   Y  d S )	Nrß   r!   rU   rà   rá   Úhz;Input has different freq=[hD] from PeriodArray\(freq=[Dh]\)rŽ   )r   r-   r.   r[   r–   r   )r2   r3   Úbox_with_array2râ   r&   r™   r   r   r   Ú test_parr_sub_pi_mismatched_freq¥  s   
"ÿz:TestPeriodIndexArithmetic.test_parr_sub_pi_mismatched_freqÚn©r   r   rr   r:   c                 C   sd   d}d}t |g||ƒd�}t |g||ƒd�}t |g|jjd�t |g|jjd� }t || |¡ d S )NÚ19910905Ú19920406r(   )r   r)   r…   r-   rå   )r2   Útick_classesrí   Úp1_dÚp2_dÚp1Úp2r6   r   r   r   Útest_sub_n_gt_1_ticks¯  s   
ÿz/TestPeriodIndexArithmetic.test_sub_n_gt_1_tickszoffset, kwd_nameÚmonthÚstartingMonthNÚweekdayc                 C   s„   |d ur|dini }d}d}||fddi|¤Ž}t |g|d�}t |g|d�}	|	| }
t |g|jd�t |g|jd� }t |
|¡ d S )Nrr   rï   rð   Ú	normalizeFr(   )r   r…   r-   rå   )r2   ÚoffsetÚkwd_namerí   Úkwdsrò   ró   r)   rô   rõ   r7   r6   r   r   r   Útest_sub_n_gt_1_offsets½  s   ÿz1TestPeriodIndexArithmetic.test_sub_n_gt_1_offsetsr&   ú
2016-01-01rr   rê   rj   zEurope/Brussels)r<   Útzr   z
Asia/Tokyog…ëQ¸	@)g       @g      @g      @c                 C   s  t dddd�}t ||¡}d g d¢¡}t|||ƒ tjt|d�� ||  W d   ƒ n1 s0w   Y  tjt|d�� ||  W d   ƒ n1 sKw   Y  tjt|d�� ||  W d   ƒ n1 sfw   Y  tjt|d�� ||  W d   ƒ d S 1 s‚w   Y  d S )Nrß   r!   rr   rà   ú|)z!(:?cannot add PeriodArray and .*)z&(:?cannot subtract .* from (:?a\s)?.*)z3(:?unsupported operand type\(s\) for \+: .* and .*)z1unsupported operand type\(s\) for [+-]: .* and .*rŽ   )r   r-   r.   Újoinr   r[   r–   r—   )r2   r&   r3   râ   r™   r   r   r   Útest_parr_add_sub_invalidÚ  s$   ÿ
ÿ
ÿ
ÿ
"ÿz3TestPeriodIndexArithmetic.test_parr_add_sub_invalidc                 C   s  t dddd�}tg d¢ƒ}|j}d}tjt|d�� ||  W d   ƒ n1 s(w   Y  tjt|d�� ||  W d   ƒ n1 sCw   Y  tjt|d�� ||  W d   ƒ n1 s^w   Y  d}tjt|d�� ||  W d   ƒ d S 1 s|w   Y  d S )	Nrß   ÚQrr   rà   ©ú-1 Dayr  r  zCCannot add or subtract timedelta64\[ns\] dtype from period\[Q-DEC\]rŽ   z/cannot subtract PeriodArray from TimedeltaArray)r   r
   rl   r[   r–   r—   )r2   râ   ÚtdiÚtdarrr™   r   r   r   Ú*test_pi_add_sub_td64_array_non_tick_raises  s"   
ÿ
ÿ
ÿ
"ÿzDTestPeriodIndexArithmetic.test_pi_add_sub_td64_array_non_tick_raisesc                 C   s*  t dddd�}tg d¢ƒ}|j}t dddd�}|| }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ t dddd�}|| }t ||¡ || }t ||¡ d}tjt|d	�� ||  W d   ƒ n1 srw   Y  tjt|d	�� ||  W d   ƒ d S 1 sŽw   Y  d S )
Nrß   Ú90Drr   rà   r  z
12/31/1999z1/2/2000úcannot subtract .* from .*rŽ   )r   r
   rl   r-   rå   r[   r–   r—   )r2   râ   r  r  r6   r7   r™   r   r   r   Útest_pi_add_sub_td64_array_tick  s0   
ÿ
"ÿz9TestPeriodIndexArithmetic.test_pi_add_sub_td64_array_tickÚpi_freq)r!   ÚWr  rê   Útdi_freqc                 C   sÈ  |}|t jtjfvr|nt j}tddg|d�}tdƒ| }| |¡}t ||¡}	|dkrf||	 }
| 	d¡|  |¡}t ||¡}t 
|
|¡ |d |	 }
|d  	d¡|  |¡}t ||¡}t 
|
|¡ d S |dkr§d	}tjt|d
�� ||	  W d   ƒ n1 s‚w   Y  tjt|d
�� |d |	  W d   ƒ d S 1 s w   Y  d S d}tjt|d
�� ||	  W d   ƒ n1 s¿w   Y  tjt|d
�� |d |	  W d   ƒ d S 1 sÝw   Y  d S )Nz1 hoursz2 hoursr(   z2018-03-07 17:16:40rê   r   r   r!   únCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freq.rŽ   z"Cannot add or subtract timedelta64)r^   r0   r-   r˜   re   r
   r   Ú	to_periodr.   Úto_timestampr1   r[   r–   r   r—   )r2   r3   r  r  Úboxr5   r  Údtir?   Útd64objr7   r6   r™   r   r   r   Útest_parr_sub_td64array5  s>   
ÿ
ÿ"ÿ
ÿ"ÿz1TestPeriodIndexArithmetic.test_parr_sub_td64arrayr  c           	   	   C   sÊ  t tdƒtdƒgƒ}|tjjddd�tjjddd�gƒ}t tdƒtdƒgƒ t¡}t t	¡� || }W d   ƒ n1 s=w   Y  t 
||¡ t t	¡� || }W d   ƒ n1 s\w   Y  t 
||¡ t tjjdd	�tjjdd	�g¡}d
}tjt|d��! t t	¡� ||  W d   ƒ n1 s–w   Y  W d   ƒ n1 s¥w   Y  tjt|d��* t t	¡� ||  W d   ƒ n1 sÆw   Y  W d   ƒ d S W d   ƒ d S 1 sÞw   Y  d S )NÚ2015Q1Ú2016Q2r   é   ©rí   rø   éþÿÿÿÚ2015Q2Ú2015Q4©rí   z1Input cannot be converted to Period\(freq=Q-DEC\)rŽ   )r   r   r^   ÚoffsetsÚ
QuarterEndrO   rP   r-   Úassert_produces_warningr   rå   r/   r0   ÚHourÚMinuter[   r–   r   )	r2   r  r?   Úoffsr6   ÚresÚres2Ú
unanchoredr™   r   r   r   Útest_pi_add_offset_arrayf  s<   þÿ
ÿ
ÿ"
ÿ€ÿ
ÿÿ"ÿz2TestPeriodIndexArithmetic.test_pi_add_offset_arrayc              	      s–  t tdƒtdƒgƒ‰|tjjddd�tjjddd�gƒ‰ t ‡ ‡fdd„ttˆƒƒD ƒƒ}| t¡}t	 
t¡� ˆˆ  }W d   ƒ n1 sEw   Y  t	 ||¡ |tj ¡ tjjd	d
�gƒ}d}tjt|d��! t	 
t¡� ˆ|  W d   ƒ n1 s|w   Y  W d   ƒ n1 s‹w   Y  tjt|d��* t	 
t¡� |ˆ  W d   ƒ n1 s¬w   Y  W d   ƒ d S W d   ƒ d S 1 sÄw   Y  d S )Nr  r  r   r  r  r  c                    s   g | ]
}ˆ| ˆ |  ‘qS r   r   )ru   rí   ©r&   r?   r   r   rx   �  s    zFTestPeriodIndexArithmetic.test_pi_sub_offset_array.<locals>.<listcomp>r   r  z6Input has different freq=-1M from Period\(freq=Q-DEC\)rŽ   )r   r   r^   r  r   rd   ÚlenrO   rP   r-   r!  r   rå   ÚMonthEndÚDayr[   r–   r   )r2   r  r6   r%  Úanchoredr™   r   r)  r   Útest_pi_sub_offset_array…  s6   þÿ 

ÿ
ÿ€ÿ
ÿÿ"ÿz2TestPeriodIndexArithmetic.test_pi_sub_offset_arrayc                 C   sH   t dddd�}|| }t dddd�}t ||¡ ||7 }t ||¡ d S )Nú2000-01-01 09:00rê   rk   rà   z2000-01-01 10:00©r   r-   rå   ©r2   Úonerâ   r7   r6   r   r   r   Útest_pi_add_iadd_int£  s   z.TestPeriodIndexArithmetic.test_pi_add_iadd_intc                 C   sH   t dddd�}|| }t dddd�}t ||¡ ||8 }t ||¡ dS )z‹
        PeriodIndex.__sub__ and __isub__ with several representations of
        the integer 1, e.g. int, np.int64, np.uint8, ...
        r/  rê   rk   rà   z2000-01-01 08:00Nr0  r1  r   r   r   Útest_pi_sub_isub_int¬  s   z.TestPeriodIndexArithmetic.test_pi_sub_isub_intÚfiverU   r¦   c                 C   s.   t ddd�}|| }||  }t ||¡ d S )Nrg   é2   r;   r0  )r2   r5  râ   r7   rp   r   r   r   Útest_pi_sub_intlike¸  s   
z-TestPeriodIndexArithmetic.test_pi_sub_intlikec                 C   sx   t dddd�}t d¡}|| }t dd„ t||ƒD ƒ¡}t ||¡ || }t dd„ t||ƒD ƒ¡}t ||¡ d S )Nrÿ   rk   Ú2Drj   c                 S   s   g | ]\}}|| ‘qS r   r   ©ru   rR   Úyr   r   r   rx   Æ  ó    zQTestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1.<locals>.<listcomp>c                 S   s   g | ]\}}|| ‘qS r   r   r9  r   r   r   rx   Ê  r;  )r   r/   ra   r^   re   Úzipr-   rå   )r2   r?   Úarrr7   r6   r   r   r   Ú#test_pi_add_sub_int_array_freqn_gt1À  s   
z=TestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1c                 C   s¬   t dddd�}|tj d¡ }t dddd�}t ||¡ |tj d¡8 }t ||¡ t dd	d
d�}|tj d¡ }t ddd
d�}t ||¡ |tj d¡8 }t ||¡ d S )Nr”   Ú2024r‘   r(   rU   Ú2009Ú2019rÐ   ú2016-12ri   z2013-08z2016-07)r   r^   r  ÚYearEndr-   rå   r+  ©r2   râ   r7   r6   r   r   r   Útest_pi_sub_isub_offsetÍ  s   z1TestPeriodIndexArithmetic.test_pi_sub_isub_offsetÚ	transposeTFc                 C   st   t ddd�}t|gƒ}tdgdd�}tj|||d�}tj|||d�}||j }t ||¡ |j| }t ||¡ d S )Nú2016-01r|   r(   z2016-03©rF  )r   r   r-   r.   r)   r1   )r2   r3   rF  ro   r?   r6   r7   r   r   r   Útest_pi_add_offset_n_gt1ß  s   


z2TestPeriodIndexArithmetic.test_pi_add_offset_n_gt1c                 C   sh   t dgdd�}t dgdd�}t ||¡}t ||¡}|tdƒ }t ||¡ tdƒ| }t ||¡ d S )NrG  r|   r(   z2016-04Ú3ME)r   r-   r.   r   r1   )r2   r3   r?   r6   r7   r   r   r   Ú&test_pi_add_offset_n_gt1_not_divisibleò  s   z@TestPeriodIndexArithmetic.test_pi_add_offset_n_gt1_not_divisibleÚ
int_holderÚopc                 C   sN   t tdƒtdƒgƒ}|ddgƒ}|||ƒ}t tdƒtdƒgƒ}t ||¡ d S )Nr  rž   r:   rV   Ú2016Q1)r   r   r-   rå   )r2   rL  rM  r?   r&   r7   r6   r   r   r   Útest_pi_add_intarray  s
   
z.TestPeriodIndexArithmetic.test_pi_add_intarrayc                 C   sˆ   t tdƒtdƒgƒ}|ddgƒ}|| }t tdƒtdƒgƒ}t ||¡ d}tjt|d�� ||  W d   ƒ d S 1 s=w   Y  d S )Nr  rž   r:   rV   Ú2014Q1ú+bad operand type for unary -: 'PeriodArray'rŽ   )r   r   r-   rå   r[   r–   r—   )r2   rL  r?   r&   r7   r6   r™   r   r   r   Útest_pi_sub_intarray  s   
"ÿz.TestPeriodIndexArithmetic.test_pi_sub_intarrayc                 C   sÜ   |}t dddd�}t ||¡}tg d¢dd�}t ||¡}|| }t ||¡ || }t ||¡ tg d¢dd�}t ||¡}|| }t ||¡ d d	d
g¡}tjt|d�� ||  W d   ƒ d S 1 sgw   Y  d S )Nú
2014-05-01rr   r8  rj   )ú
2014-05-04z
2014-05-06z
2014-05-08r(   )ú
2014-04-28z
2014-04-30z
2014-05-02r  rQ  ú4cannot subtract PeriodArray from timedelta64\[[hD]\]rŽ   )	r   r-   r.   r   r1   r  r[   r–   r—   )r2   Ú
three_daysr3   r&   râ   r6   r7   r™   r   r   r   Ú&test_parr_add_timedeltalike_minute_gt1!  s*   þÿ
"ÿz@TestPeriodIndexArithmetic.test_parr_add_timedeltalike_minute_gt1Úfreqstr)Ú5nsÚ5usÚ5msÚ5sÚ5minÚ5hÚ5dc           
      C   sè   |}t dd|d�}|d }t ||¡}t || d|d�}t ||¡}|| }t ||¡ || }t ||¡ t || d|d�}t ||¡}|| }t ||¡ d ddg¡}	tjt|	d�� ||  W d   ƒ d S 1 smw   Y  d S )	NrS  é   rj   r   r  rQ  rV  rŽ   )r   r-   r.   r1   r  r[   r–   r—   )
r2   rW  rY  r3   r&   râ   Úfirstr6   r7   r™   r   r   r   Ú$test_parr_add_timedeltalike_tick_gt1B  s,   þÿ
"ÿz>TestPeriodIndexArithmetic.test_parr_add_timedeltalike_tick_gt1c                 C   óL   |}t dddd�}t dddd�}|| }t ||¡ ||7 }t ||¡ d S )NrS  ú
2014-05-15r!   r(   rT  z
2014-05-18r0  ©r2   rW  r&   râ   r6   r7   r   r   r   Ú$test_pi_add_iadd_timedeltalike_dailyb  ó   z>TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_dailyc                 C   óL   |}t dddd�}t dddd�}|| }t ||¡ ||8 }t ||¡ d S )NrS  re  r!   r(   rU  z
2014-05-12r0  rf  r   r   r   Ú$test_pi_sub_isub_timedeltalike_dailyn  rh  z>TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_dailyc                 C   s
  |}t dddd�}t ||¡}d ddg¡}tjt|d�� ||  W d   ƒ n1 s,w   Y  tjt|d�� ||7 }W d   ƒ n1 sGw   Y  tjt|d�� ||  W d   ƒ n1 sbw   Y  tjt|d�� ||8 }W d   ƒ d S 1 s~w   Y  d S )	NrS  re  r!   r(   r  z7Input has different freq(=.+)? from Period.*?\(freq=D\)r  rŽ   ©r   r-   r.   r  r[   r–   r   )r2   Ú	not_dailyr3   r&   râ   r™   r   r   r   Ú3test_parr_add_sub_timedeltalike_freq_mismatch_dailyz  s(   üÿ	
ÿ
ÿ
ÿ
"ÿzMTestPeriodIndexArithmetic.test_parr_add_sub_timedeltalike_freq_mismatch_dailyc                 C   rd  )Nú2014-01-01 10:00ú2014-01-05 10:00rê   r(   z2014-01-01 12:00z2014-01-05 12:00r0  ©r2   Ú	two_hoursr&   râ   r6   r7   r   r   r   Ú%test_pi_add_iadd_timedeltalike_hourly“  ó   z?TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_hourlyc                 C   sž   |}t dddd�}t ||¡}d ddg¡}tjt|d�� ||  W d   ƒ n1 s,w   Y  tjt|d�� ||7 }W d   ƒ d S 1 sHw   Y  d S )	Nrn  ro  rê   r(   r  z7Input has different freq(=.+)? from Period.*?\(freq=h\)r  rŽ   rk  )r2   r   r3   r&   râ   r™   r   r   r   Ú2test_parr_add_timedeltalike_mismatched_freq_hourlyž  s   üÿ

ÿ
"ÿzLTestPeriodIndexArithmetic.test_parr_add_timedeltalike_mismatched_freq_hourlyc                 C   ri  )Nrn  ro  rê   r(   z2014-01-01 08:00z2014-01-05 08:00r0  rp  r   r   r   Ú%test_pi_sub_isub_timedeltalike_hourly´  rs  z?TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_hourlyc                 C   sX   t dddd�}|tj d¡ }t dddd�}t ||¡ |tj d¡7 }t ||¡ d S )Nr”   r?  r‘   r(   rU   rA  Ú2029)r   r^   r  rC  r-   rå   rD  r   r   r   Ú"test_add_iadd_timedeltalike_annual¿  s   z<TestPeriodIndexArithmetic.test_add_iadd_timedeltalike_annualc                 C   óô   |}t dddd�}d}tjt|d�� ||  W d   ƒ n1 s!w   Y  tjt|d�� ||7 }W d   ƒ n1 s<w   Y  tjt|d�� ||  W d   ƒ n1 sWw   Y  tjt|d�� ||8 }W d   ƒ d S 1 ssw   Y  d S )Nr”   r?  r‘   r(   z;Input has different freq(=.+)? from Period.*?\(freq=Y-DEC\)rŽ   ©r   r[   r–   r   ©r2   r$   r&   râ   r™   r   r   r   Ú2test_pi_add_sub_timedeltalike_freq_mismatch_annualÉ  ó   
ÿ
ÿ
ÿ
"ÿzLTestPeriodIndexArithmetic.test_pi_add_sub_timedeltalike_freq_mismatch_annualc                 C   sX   t dddd�}t dddd�}|tj d¡ }t ||¡ |tj d¡7 }t ||¡ d S )NrÐ   rB  ri   r(   z2014-06z2017-05rU   )r   r^   r  r+  r-   rå   )r2   râ   r6   r7   r   r   r   Ú test_pi_add_iadd_timedeltalike_MÖ  s   z:TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_Mc                 C   rx  )NrÐ   rB  ri   r(   z7Input has different freq(=.+)? from Period.*?\(freq=M\)rŽ   ry  rz  r   r   r   Ú3test_pi_add_sub_timedeltalike_freq_mismatch_monthlyà  r|  zMTestPeriodIndexArithmetic.test_pi_add_sub_timedeltalike_freq_mismatch_monthlyc           	      C   sÆ   t dddd�}t d¡}tdgd dd�}tj|||d�}tj|||d�}|| }t ||¡ || }t ||¡ || }t ||¡ d}tjt	|d	�� ||  W d   ƒ d S 1 s\w   Y  d S )
Nú
1994-04-01rC   Ú19Drj   rž   r(   rH  r  rŽ   )
r   r/   Útimedelta64r   r-   r.   r1   r[   r–   r—   )	r2   r3   rF  r?   r&   r6   Úobjr7   r™   r   r   r   Útest_parr_add_sub_td64_natí  s   

"ÿz4TestPeriodIndexArithmetic.test_parr_add_sub_td64_natrž   rC   zm8[ns]c                 C   sf  t dddd�}tdgd dd�}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ || }t ||¡ d}tjt|d�� ||  W d   ƒ n1 sRw   Y  | ¡ }t	 
d	d
¡|d	< t|d	 gdgd  dd�}t ||¡}|| }t ||¡ || }t ||¡ || }t ||¡ tjt|d�� ||  W d   ƒ d S 1 s¬w   Y  d S )Nr  rC   r€  rj   rž   r(   r  rŽ   r   Únsé   )r   r   r-   r.   r1   r[   r–   r—   Úcopyr/   r�  )r2   r3   r&   r?   r6   r‚  r7   r™   r   r   r   Ú!test_parr_add_sub_tdt64_nat_array  s6   
ÿ
"ÿz;TestPeriodIndexArithmetic.test_parr_add_sub_tdt64_nat_arrayc                 C   s2   t ddd�}|j}|| }|| }t ||¡ d S )Nú
2000-12-31rr   r;   )r   r0   r-   rå   )r2   r?   rH   r7   r6   r   r   r   Útest_parr_add_sub_index+  s
   z1TestPeriodIndexArithmetic.test_parr_add_sub_indexc                 C   sä   t dddd�}|j}t tdd�tj d¡dg¡}t t	¡� || }W d   ƒ n1 s-w   Y  t
g d¢dd	�j t¡}t ||¡ t t	¡� || }W d   ƒ n1 sXw   Y  t
d
gd dd	�j t¡}t ||¡ d S )Nrˆ  rr   r!   rj   r   r"   r   )z
2001-01-01z
2001-01-03z
2001-01-05r(   z
2000-12-30)r   r0   r/   r	   r^   r  r,  r-   r!  r   r   Ú_datarO   rP   r1   )r2   r?   rH   r&   r7   r6   r   r   r   Útest_parr_add_sub_object_array4  s"   
ÿÿþ
ÿz8TestPeriodIndexArithmetic.test_parr_add_sub_object_arrayc                 C   sD  t dƒ}tddd�}tj|gdd�}t ||¡}d}tjt|d�� ||  W d   ƒ n1 s0w   Y  tjt|d�� ||  W d   ƒ n1 sKw   Y  d}tjt|d�� |t	|gƒ  W d   ƒ n1 skw   Y  tjt|d�� t	|gƒ|  W d   ƒ n1 s‰w   Y  tjt|d�� |t |g¡  W d   ƒ n1 s¨w   Y  tjt|d�� t |g¡|  W d   ƒ n1 sÇw   Y  |tj
u rÔd}nd	}tjt|d�� |t 
|g¡  W d   ƒ n1 sðw   Y  |tj
u rýd}nd
}tjt|d�� t 
|g¡|  W d   ƒ d S 1 �sw   Y  d S )Nr'   ri   r(   rÓ   r¦   z$cannot add PeriodArray and TimestamprŽ   z(cannot add PeriodArray and DatetimeArrayzAunsupported operand type\(s\) for \+: 'Period' and 'DatetimeArrayzBunsupported operand type\(s\) for \+: 'DatetimeArray' and 'Period')r   r   r^   re   r-   r.   r[   r–   r—   r   r×   )r2   r3   Útsro   r=  r™   r   r   r   Ú test_period_add_timestamp_raisesH  sH   
ÿ
ÿÿÿÿÿ
ÿ
$ÿz:TestPeriodIndexArithmetic.test_period_add_timestamp_raises)ArX   rY   rZ   rã   ræ   ré   rì   r[   r\   r]   rö   r^   r  rC  r   r+  ÚWeekrþ   r   Úto_pydatetimeÚto_datetime64r_   rŠ  r/   r0   r  r	  r  r  re   r(  r.  r3  r4  Úint64r7  r>  rE  rI  rK  ÚoperatorÚaddr   ÚraddrO  rR  rX  rc  rg  rj  rm  rr  rt  ru  rw  r{  r}  r~  rƒ  r   Ú_from_sequencer‡  r‰  r‹  r�  r   r   r   r   rÞ   s  sž    






üþ	

ôþ
/

	

	
!



þþ
#	rÞ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestPeriodSeriesArithmeticc                 C   s®   t tddd�tddd�gdd�}|jdksJ ‚t tddd�td	dd�gdd�}t ||¡}|tju r;|jdk ¡ s;J ‚t ||¡}|| }t 	||¡ || }t 	||¡ d S )
Nú
2015-01-01r!   r(   ú
2015-01-02Úxxxr¸   ú	Period[D]ú
2015-01-04ú
2015-01-05)
r   r   r§   r-   r.   r^   r×   ÚdtypesÚallr1   )r2   rW  r3   rz   r6   r‚  r7   r   r   r   Ú"test_parr_add_timedeltalike_scalarn  s"   þþ
z=TestPeriodSeriesArithmetic.test_parr_add_timedeltalike_scalarc                 C   sî   t tddd�tddd�gdd�}|jdksJ ‚tddd�}|j}t d	| d
| gdtd�}t || |¡ t || d| ¡ t tddd�tddd�gdd�}|jdksVJ ‚t d| d| gdtd�}t || |¡ t || d| ¡ d S )Nr—  r!   r(   r˜  r™  r¸   rš  z
2015-01-10rC   r…  )r¹   r§   rV   rœ  r›  r:   r   )r   r   r§   r)   rP   r-   r²   )r2   rz   ro   rÛ   r6   Ús2r   r   r   Útest_ops_series_period‡  s$   þþz1TestPeriodSeriesArithmetic.test_ops_series_periodN)rX   rY   rZ   rŸ  r¡  r   r   r   r   r–  m  s    r–  c                   @   s°   e Zd ZdZdd„ Zdd„ Zej dddg¡ej d	d
d„ dd„ dd„ dd„ dd„ dd„ dd„ dd„ g¡dd„ ƒƒZ	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#S )$ÚTestPeriodIndexSeriesMethodsr¶   c                 C   sJ   t |ƒ}||ƒ}t ||¡ t|ƒ}||ƒ}t||jd�}t ||¡ d S r·   )r   r-   r1   r   r¹   r²   )r2   rl   r¼   r6   r4   r7   rz   rp   r   r   r   r½   ¤  s   z#TestPeriodIndexSeriesMethods._checkc                 C   sì   t g d¢ddd�}t g d¢ddd�}|  |dd„ |¡ |  |dd„ |¡ |  |d	 d
d„ |¡ |tddd� }|j}tjd| d| d	| d| gdd�}t ||¡ tddd�| }tjd| d| d| d| gdd�}t ||¡ d S )Nr~   ri   r4   r¾   )r�   r‚   r‡   ú2011-06c                 S   ó   | d S ©Nr   r   rQ   r   r   r   rS   ¸  rÁ   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>c                 S   ó   d|  S r¥  r   rQ   r   r   r   rS   ¹  rÁ   r   c                 S   ó   | d S r¥  r   rQ   r   r   r   rS   »  rÁ   r   r(   r   r   rr   r¸   rV   r  éýÿÿÿ)r   r½   r   r)   r^   re   r-   rå   )r2   r4   r6   r7   rÛ   rp   r   r   r   Útest_pi_ops¯  s    
ÿ
ÿ&&z(TestPeriodIndexSeriesMethods.test_pi_opsÚngÚstrg      ø?r¼   c                 C   s   | | S rN   r   ©r‚  rª  r   r   r   rS   Ê  rÁ   z%TestPeriodIndexSeriesMethods.<lambda>c                 C   s   ||  S rN   r   r¬  r   r   r   rS   Ë  rÁ   c                 C   s   | | S rN   r   r¬  r   r   r   rS   Ì  rÁ   c                 C   s   ||  S rN   r   r¬  r   r   r   rS   Í  rÁ   c                 C   ó   t  | |¡S rN   ©r/   r“  r¬  r   r   r   rS   Î  ó    c                 C   ó   t  || ¡S rN   r®  r¬  r   r   r   rS   Ï  r¯  c                 C   r­  rN   ©r/   Úsubtractr¬  r   r   r   rS   Ð  r¯  c                 C   r°  rN   r±  r¬  r   r   r   rS   Ñ  r¯  c                 C   sj   t g d¢ddd�}t ||¡}d g d¢¡}tjt|d�� |||ƒ W d   ƒ d S 1 s.w   Y  d S )Nr~   ri   r4   r¾   r  )zunsupported operand type\(s\)zcan only concatenatezmust be strzobject to str implicitlyrŽ   )r   r-   r.   r  r[   r–   r—   )r2   rª  r¼   r3   r4   r‚  r™   r   r   r   Útest_parr_ops_errorsÆ  s   
ÿÿ	"ÿz1TestPeriodIndexSeriesMethods.test_parr_ops_errorsc                 C   s  t g d¢ddd�}t g d¢ddd�}|  |dd„ |¡ |  |dd„ |¡ |  |d	d„ |¡ |  |d
 dd„ |¡ |  |d
 dd„ |¡ t g d¢ddd�}t g d¢ddd�}|  |dd„ |¡ |  |dd„ |¡ |  |dd„ |¡ |  |d dd„ |¡ |  |d dd„ |¡ d S )N©r   r€   rž   r‚   ri   r4   r¾   )r�   r‚   rž   r£  c                 S   r¤  r¥  r   rQ   r   r   r   rS   í  rÁ   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>c                 S   r¦  r¥  r   rQ   r   r   r   rS   î  rÁ   c                 S   ó   t  | d¡S r¥  r®  rQ   r   r   r   rS   ï  r¯  r   c                 S   r§  r¥  r   rQ   r   r   r   rS   ñ  rÁ   c                 S   rµ  r¥  r±  rQ   r   r   r   rS   ò  r¯  r|   )z2011-07ú2011-08rž   z2011-10c                 S   r¤  ©Nrr   r   rQ   r   r   r   rS   ü  rÁ   c                 S   r¦  r·  r   rQ   r   r   r   rS   ý  rÁ   c                 S   rµ  r·  r®  rQ   r   r   r   rS   þ  r¯  rr   c                 S   r§  r·  r   rQ   r   r   r   rS      rÁ   c                 S   rµ  r·  r±  rQ   r   r   r   rS     r¯  ©r   r½   )r2   r4   r6   r   r   r   Útest_pi_ops_natå  s,   
ÿ
ÿ
ÿ
ÿz,TestPeriodIndexSeriesMethods.test_pi_ops_natc                 C   s¶   t g d¢ddd�}dd„ }t g d¢ddd�}|  |||¡ dd„ }t g d	¢ddd�}|  |||¡ d
d„ }t g d¢ddd�}|  |||¡ dd„ }t g d¢ddd�}|  |||¡ d S )Nr´  ri   r4   r¾   c                 S   s   | t  g d¢¡ S ©Nrî   ©r/   r0   rQ   r   r   r   rS     ó    zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>)r€   r‚   rž   r¶  c                 S   ó   t  | t  g d¢¡¡S )N)r:   rV   r   r   )r/   r“  r0   rQ   r   r   r   rS     ó    )r‡   r   rž   r£  c                 S   s   | t  g d¢¡ S rº  r»  rQ   r   r   r   rS     r¼  )ú2010-12r¿  rž   r¿  c                 S   r½  )N)rr   r   rr   r  )r/   r²  r0   rQ   r   r   r   rS     r¾  )z2010-10r¿  rž   r£  r¸  rÈ   r   r   r   Útest_pi_ops_array_int  s.   
ÿ
ÿ
ÿ
ÿ
ÿz2TestPeriodIndexSeriesMethods.test_pi_ops_array_intc                 C   sŽ   t g d¢ddd�}dd„ }t g d¢ddd�}|  |||¡ dd„ }t g d	¢ddd�}|  |||¡ d
d„ }t g d¢ddd�}|  |||¡ d S )N©r«   z
2011-02-01z
2011-03-01z
2011-04-01r!   r4   r¾   c                 S   s   | t j ¡  S rN   ©r^   r  r,  rQ   r   r   r   rS   %  s    zATestPeriodIndexSeriesMethods.test_pi_ops_offset.<locals>.<lambda>)z
2011-01-02z
2011-02-02z
2011-03-02z
2011-04-02c                 S   s   | t j d¡ S r¥  rÂ  rQ   r   r   r   rS   -  ó    )r¬   z
2011-02-03z
2011-03-03z
2011-04-03c                 S   s   | t j d¡ S r¥  rÂ  rQ   r   r   r   rS   5  rÃ  )z
2010-12-30z
2011-01-30z
2011-02-27z
2011-03-30r¸  rÈ   r   r   r   Útest_pi_ops_offset  s4   ýýýýz/TestPeriodIndexSeriesMethods.test_pi_ops_offsetc              	   C   sê   t g d¢ddd�}t|ƒ}d}||fD ]_}tjt|d�� |tj d¡  W d   ƒ n1 s/w   Y  tjt|d�� tj d¡|  W d   ƒ n1 sNw   Y  tjt|d�� |tj d¡  W d   ƒ n1 smw   Y  qd S )NrÁ  r!   r4   r¾   zmCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freqrŽ   r   )r   r   r[   r–   r   r^   r  r"  )r2   r4   rz   r™   r‚  r   r   r   Útest_pi_offset_errors=  s(   ýÿÿÿÿ€ùz2TestPeriodIndexSeriesMethods.test_pi_offset_errorsc                 C   sT  t g d¢ddd�}|tddd� }|j}tjd| d| d	| d
| gdd�}t ||¡ t |tddd�¡}t ||¡ tddd�| }tjd| d| d| d| gdd�}t ||¡ t tddd�|¡}t ||¡ t	tj
tj
tj
tj
gdd�}|tddd� }t ||¡ |j|jks’J ‚tddd�| }t ||¡ |j|jks¨J ‚d S )Nr~   ri   r4   r¾   ú2012-01r(   éôÿÿÿiõÿÿÿéöÿÿÿé÷ÿÿÿr¸   r  é   rk   rC   rž   )r   r   r)   r^   re   r-   rå   r/   r²  r
   Únan©r2   r4   r7   rÛ   rp   r   r   r   Útest_pi_sub_periodS  s*   
ÿ&&z/TestPeriodIndexSeriesMethods.test_pi_sub_periodc                 C   sN   t g d¢ddd�}ttjgd dd�}t tj| |¡ t |tj |¡ d S )Nr´  ri   r4   r¾   r:   r¸   )r   r
   r^   rž   r-   rå   )r2   r4   rp   r   r   r   Útest_pi_sub_pdnatq  s   
ÿz.TestPeriodIndexSeriesMethods.test_pi_sub_pdnatc                 C   sè   t g d¢ddd�}|tddd� }|j}tjd| tjd| d	| gdd
�}t ||¡ tddd�| }tjd| tjd| d| gdd
�}t ||¡ tt	j
t	j
t	j
t	j
gdd
�}t |tddd� |¡ t tddd�| |¡ d S )NrË   ri   r4   r¾   rÆ  r(   rÇ  rÈ  rÉ  r¸   r  rk   rC   rž   )r   r   r)   r^   re   rž   r-   rå   r
   r/   rË  rÌ  r   r   r   Útest_pi_sub_period_natz  s   
ÿ$$z3TestPeriodIndexSeriesMethods.test_pi_sub_period_natN)rX   rY   rZ   rÎ   r½   r©  r[   r\   r]   r³  r¹  rÀ  rÄ  rÅ  rÍ  rÎ  rÏ  r   r   r   r   r¢  ¡  s2    øþ	r¢  )/r’  Únumpyr/   r[   Úpandas._libs.tslibsr   r   r   r   Úpandas.errorsr   Úpandasr^   r   r   r	   r
   r   Úpandas._testingÚ_testingr-   Úpandas.corer   Úpandas.core.arraysr   Úpandas.tests.arithmetic.commonr   r   r   r  Ú	YearBeginÚ
MonthBeginr#  Ú_common_mismatchÚfixtureÚto_pytimedeltar�  r   r$   r%   rf   r±   rµ   rÏ   rÞ   r–  r¢  r   r   r   r   Ú<module>   s`   

ý
ýûÿ

ýûÿ
  l(f+     4