a
    é´«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   s   | j S )zp
    Several timedelta-like and DateOffset instances that are _not_
    compatible with Hourly frequencies.
    ©Úparam©Úrequest© r   úb/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/arithmetic/test_period.pyÚ
not_hourly)   s    r   im  ÚD©Údaysc                 C   s   | j S )z{
    Several timedelta-like and DateOffset instances that are _not_
    compatible with Monthly or Annual frequencies.
    r   r   r   r   r   Úmismatched_freq9   s    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%   Z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,   r-   Zto_numpyr*   r+   r   r.   )r/   r0   Úpir$   r2   r4   r3   r   r   r   Útest_compare_zerodim_   s    z3TestPeriodArrayLikeComparisons.test_compare_zerodimÚscalarZfooz
2021-01-01r7   r    é	   g      #@éÐ  FNc                 C   s(   t ddd�}t ||¡}t|||ƒ d S ©Nr6   r7   r8   ©r   r*   r+   r   )r/   r0   r=   r;   Úparrr   r   r   Útest_compare_invalid_scalarm   s    z:TestPeriodArrayLikeComparisons.test_compare_invalid_scalarr6   r8   Z1D)r?   iÑ  iÒ  iÓ  iÔ  c                 C   s(   t ddd�}t ||¡}t|||ƒ d S r@   rA   )r/   r0   r$   r;   rB   r   r   r   Útest_compare_invalid_listlike�   s    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 )Nr6   é   r8   T)TTTTTéÿÿÿÿ)FFTFF)TTTFF)FFTTT)TTFTT)TTFFF)FFFTT)r   r*   r+   r   r,   r-   r.   )	r/   r0   rE   r;   rB   r$   r2   r3   r4   r   r   r   Útest_compare_object_dtype•   sV    z8TestPeriodArrayLikeComparisons.test_compare_object_dtype)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer   r5   r<   r   r	   rC   ÚpdÚ
date_ranger-   Ztimedelta_ranger,   ÚarangerG   Zfloat64ÚlistÚrangerH   ÚIndexrD   rO   r   r   r   r   r#   M   s@   
øþ


öþ
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©r9   r'   é
   r   )r   Úvaluesr*   Úassert_numpy_array_equalZreshaper,   r-   )r/   r1   Úperr4   Ú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-01ra   r   r`   é   c                    s   g | ]}|ˆ k‘qS r   r   ©Ú.0rJ   ©Úvalr   r   Ú
<listcomp>ç   rL   zKTestPeriodIndexComparisons.test_parr_cmp_period_scalar2.<locals>.<listcomp>TrM   c                    s   g | ]}|ˆ k‘qS r   r   rh   rj   r   r   rl   ò   rL   )r   r*   r+   r   r.   )r/   r0   r;   r3   Úserr2   r4   r   rj   r   Útest_parr_cmp_period_scalar2ã   s    z7TestPeriodIndexComparisons.test_parr_cmp_period_scalar2r'   )r_   Ú2MZ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&   rr   T©FTFF©TFTT)FFTTr:   )FTTT)TTFF)r   r*   r+   r   r   r,   r-   r.   )r/   r'   r0   Úbaserd   r2   re   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 )Nrp   r&   )rr   rq   rs   ú2011-05T©FFTF©TTFTru   ©TFFT©FTTFrv   r)   )r/   r'   r0   rw   r1   r2   re   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\0    Y  tjt|d��  tddd�|k W d   ƒ n1 sš0    Y  t g d¢dd�}d	}|tjtj	fv rÌ|n|}tjt|d�� ||k W d   ƒ n1 sü0    Y  d|› d�}tjt|d��  |tdd
d�k W d   ƒ n1 �sH0    Y  tjt|d��  tdd
d�|k W d   ƒ n1 �sˆ0    Y  t g d¢d
d�}d}|tjtj	fv �r¼|n|}tjt|d�� ||k W d   ƒ n1 �sî0    Y  d S )Nrp   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+   rS   ÚraisesÚ	TypeErrorr   Úto_arrayrV   r-   )r/   r'   r0   rw   Úmsgr1   Zrev_msgZidx_msgr   r   r   Ú test_parr_cmp_pi_mismatched_freq?  s,    ..&00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©rq   rr   ÚNaTry   r&   r   ©FFFT©FFFF©TTTT©rr   rq   rt   rŽ   r:   r{   rz   )r   r,   r-   r*   rc   rV   rŽ   )r/   r'   Úidx1rd   r4   re   Z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 sX0    Y  ||k}tjg d¢td	�}t ||¡ d S )
Nr�   r&   r’   r‡   r   z\] and PeriodArrayr€   r�   ©Údtype)	r   rS   rˆ   r‰   r,   r-   Úboolr*   rc   )r/   r'   r“   Údiffr‹   r4   r3   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rJ| |¡}| |¡}||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   rV   rŽ   rG   r,   r-   r*   rc   )r/   r–   ÚleftÚrightr4   r3   r   r   r   Útest_comp_natœ  s(    

z(TestPeriodIndexComparisons.test_comp_nat)rP   rQ   rR   rf   rn   rS   rT   rU   rx   r~   rŒ   r”   r™   rH   rž   r   r   r   r   r\   Ï   s   
%
"
"
+
r\   c                   @   s   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&   rr   r_   r…   rt   r„   rq   ry   rz   r{   ru   r|   r}   rv   )r   r   r*   Úassert_series_equal)r/   rw   rm   re   r   r   r   Ú(test_cmp_series_period_series_mixed_freq»  s4    



üÿ	



üÿ	zDTestPeriodSeriesComparisons.test_cmp_series_period_series_mixed_freqN)rP   rQ   rR   r¡   r   r   r   r   rŸ   º  s   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   Ú
isinstancerV   r[   r,   Zndarrayr*   r.   r   r¦   r    )r/   rb   Úfuncr3   r1   r4   r   re   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 )Nrp   r_   r1   ©r'   r¦   r   c                    s   | ˆ kS rF   r   rI   ©rd   r   r   rK   ý  rL   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>rz   r•   c                    s   ˆ | kS rF   r   rI   r«   r   r   rK      rL   c                    s   | ˆ kS rF   r   rI   r«   r   r   rK     rL   r{   c                    s   ˆ | kS rF   r   rI   r«   r   r   rK     rL   c                    s   ˆ | kS rF   r   rI   r«   r   r   rK   	  rL   )TTTFc                    s   | ˆ kS rF   r   rI   r«   r   r   rK     rL   r�   c                    s   ˆ | kS rF   r   rI   r«   r   r   rK     rL   ©r   r,   r-   Zbool_r©   ©r/   r1   Úfre   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©rq   rŽ   rs   rt   r_   r1   rª   r   c                    s   | ˆ kS rF   r   rI   r«   r   r   rK     rL   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>rz   r•   c                    s   ˆ | kS rF   r   rI   r«   r   r   rK     rL   c                 S   s
   | t jkS rF   ©rV   rŽ   rI   r   r   r   rK   !  rL   r�   c                 S   s
   t j| kS rF   r±   rI   r   r   r   rK   $  rL   c                    s   | ˆ kS rF   r   rI   r«   r   r   rK   '  rL   r{   c                    s   ˆ | kS rF   r   rI   r«   r   r   rK   *  rL   c                 S   s
   | t jkS rF   r±   rI   r   r   r   rK   -  rL   r‘   c                 S   s
   t j| kS rF   r±   rI   r   r   r   rK   0  rL   c                    s   ˆ | kS rF   r   rI   r«   r   r   rK   3  rL   )TFTFc                    s   | ˆ k S rF   r   rI   r«   r   r   rK   7  rL   r:   c                 S   s
   | t jkS rF   r±   rI   r   r   r   rK   ;  rL   c                 S   s
   t j| kS rF   r±   rI   r   r   r   rK   ?  rL   r¬   r­   r   r«   r   Útest_pi_comp_period_nat  sH    
ÿzBTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_natN)rP   rQ   rR   Ú__doc__r©   r¯   r²   r   r   r   r   r¢   â  s   r¢   c                   @   s   e Zd Zdd„ ZdS )Ú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sJJ ‚|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-01r_   r&   z2015-02ú2014-01z2014-02)ÚAÚBr¶   ú	Period[M]r·   z2015-03r   r   r•   é   é   rN   z2015-05z2015-06r7   é   )
rV   Ú	DataFramer   r–   r'   r,   r-   rH   r*   Zassert_frame_equal)r/   ZdfÚpÚoffre   Zdf2r   r   r   Útest_ops_frame_periodI  s<    þÿþÿþÿþÿz/TestPeriodFrameArithmetic.test_ops_frame_periodN)rP   rQ   rR   r¿   r   r   r   r   r´   H  s   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 sX0    Y  tjt|d�� ||7 }W d   ƒ n1 sŽ0    Y  d S )Nú1/1/2000r   rM   ©r'   r9   ú1/6/2000z/unsupported operand type\(s\) for \+: .* and .*r€   )r   r*   r+   rS   rˆ   r‰   )r/   r0   Ú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   rM   rÂ   rÃ   éûÿÿÿ)r   r'   rV   r[   r*   Úassert_index_equal)r/   rÄ   r$   r¾   r3   r4   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 … ¡sBJ ‚|| }|j}t tjd| d| d| d| g¡}t ||¡ d S )NrÁ   r   rM   rÂ   r   r   )	r   ÚinsertrV   rŽ   Úequalsr'   r[   r*   rÇ   )r/   rÄ   r$   r4   r¾   r3   r   r   r   Útest_pi_sub_pi_with_nat›  s    &z1TestPeriodIndexArithmetic.test_pi_sub_pi_with_natc                 C   sr   t dddd�}t dddd�}t ||¡}t ||¡}d}tjt|d�� ||  W d   ƒ n1 sd0    Y  d S )	NrÁ   r   rM   rÂ   rÃ   Úhz;Input has different freq=[hD] from PeriodArray\(freq=[Dh]\)r€   )r   r*   r+   rS   rˆ   r   )r/   r0   Z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   rg   r7   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'   rw   r*   rÇ   )r/   Ztick_classesrÎ   Úp1_dÚp2_dÚp1Úp2r3   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 )Nrg   rÐ   rÑ   Ú	normalizeFr&   )r   rw   r*   rÇ   )r/   ÚoffsetZkwd_namerÎ   ÚkwdsrÒ   rÓ   r'   rÔ   rÕ   r4   r3   r   r   r   Útest_sub_n_gt_1_offsets½  s    ÿz1TestPeriodIndexArithmetic.test_sub_n_gt_1_offsetsr$   ú
2016-01-01rg   rÌ   r`   zEurope/Brussels)r9   Ú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 s`0    Y  tjt|d�� ||  W d   ƒ n1 s–0    Y  tjt|d�� ||  W d   ƒ n1 sÌ0    Y  tjt|d�� ||  W d   ƒ n1 �s0    Y  d S )NrÁ   r   rg   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   rS   rˆ   r‰   )r/   r$   r0   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 sP0    Y  tjt|d�� ||  W d   ƒ n1 s†0    Y  tjt|d�� ||  W d   ƒ n1 s¼0    Y  d}tjt|d�� ||  W d   ƒ n1 sö0    Y  d S )	NrÁ   ÚQrg   rÂ   ©ú-1 Dayrå   rå   zCCannot add or subtract timedelta64\[ns\] dtype from period\[Q-DEC\]r€   z/cannot subtract PeriodArray from TimedeltaArray)r   r
   rb   rS   rˆ   r‰   )r/   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 sä0    Y  tjt|d	�� ||  W d   ƒ n1 �s0    Y  d S )
NrÁ   Z90Drg   rÂ   rä   z
12/31/1999z1/2/2000úcannot subtract .* from .*r€   )r   r
   rb   r*   rÇ   rS   rˆ   r‰   )r/   rÄ   ræ   rç   r3   r4   r‹   r   r   r   Útest_pi_add_sub_td64_array_tick  s,    &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rÊ||	 }
| 	d¡|  |¡}t ||¡}t 
|
|¡ |d |	 }
|d  	d¡|  |¡}t ||¡}t 
|
|¡ nü|dk�rNd	}tjt|d
�� ||	  W d   ƒ n1 �s0    Y  tjt|d
�� |d |	  W d   ƒ n1 �sB0    Y  nxd}tjt|d
�� ||	  W d   ƒ n1 �s€0    Y  tjt|d
�� |d |	  W d   ƒ n1 �s¼0    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)rV   r-   r*   rŠ   r[   r
   r   Z	to_periodr+   Zto_timestampr.   rS   rˆ   r   r‰   )r/   r0   rí   rë   Úboxr2   ræ   Zdtir;   Ztd64objr4   r3   r‹   r   r   r   Útest_parr_sub_td64array5  s6    

ÿ(.(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 sz0    Y  t 
||¡ t t	¡� || }W d   ƒ n1 s¸0    Y  t 
||¡ t tjjdd	�tjjdd	�g¡}d
}tjt|d��D t t	¡� ||  W d   ƒ n1 �s.0    Y  W d   ƒ n1 �sN0    Y  tjt|d��D t t	¡� ||  W d   ƒ n1 �s’0    Y  W d   ƒ n1 �s²0    Y  d S )NÚ2015Q1Ú2016Q2r   é   ©rÎ   rØ   éþÿÿÿZ2015Q2Z2015Q4©rÎ   z1Input cannot be converted to Period\(freq=Q-DEC\)r€   )r   r   rV   ÚoffsetsÚ
QuarterEndrG   rH   r*   Úassert_produces_warningr   rÇ   r,   r-   ÚHourÚMinuterS   rˆ   r   )	r/   rï   r;   Zoffsr3   ÚresZres2Z
unanchoredr‹   r   r   r   Útest_pi_add_offset_arrayf  s*    þÿ&&"H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 sŠ0    Y  t	 ||¡ |tj ¡ tjjd	d
�gƒ}d}tjt|d��B t	 
t¡� ˆ|  W d   ƒ n1 sø0    Y  W d   ƒ n1 �s0    Y  tjt|d��D t	 
t¡� |ˆ  W d   ƒ n1 �s\0    Y  W d   ƒ n1 �s|0    Y  d S )Nrñ   rò   r   ró   rô   rõ   c                    s   g | ]}ˆ| ˆ |  ‘qS r   r   )ri   rÎ   ©r$   r;   r   r   rl   �  rL   zFTestPeriodIndexArithmetic.test_pi_sub_offset_array.<locals>.<listcomp>r   rö   z6Input has different freq=-1M from Period\(freq=Q-DEC\)r€   )r   r   rV   r÷   rø   rZ   ÚlenrG   rH   r*   rù   r   rÇ   ÚMonthEndÚDayrS   rˆ   r   )r/   rï   r3   rü   Zanchoredr‹   r   rþ   r   Útest_pi_sub_offset_array…  s&    þÿ 
&F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Ì   ra   rÂ   z2000-01-01 10:00©r   r*   rÇ   ©r/   ÚonerÄ   r4   r3   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Ì   ra   rÂ   z2000-01-01 08:00Nr  r  r   r   r   Útest_pi_sub_isub_int¬  s    z.TestPeriodIndexArithmetic.test_pi_sub_isub_intÚfiverM   r•   c                 C   s.   t ddd�}|| }||  }t ||¡ d S )Nr]   é2   r8   r  )r/   r	  rÄ   r4   re   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Þ   ra   Ú2Dr`   c                 S   s   g | ]\}}|| ‘qS r   r   ©ri   rJ   Úyr   r   r   rl   Æ  rL   zQTestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1.<locals>.<listcomp>c                 S   s   g | ]\}}|| ‘qS r   r   r  r   r   r   rl   Ê  rL   )r   r,   rX   rV   r[   Úzipr*   rÇ   )r/   r;   Úarrr4   r3   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&   rM   Z2009Ú2019rµ   ú2016-12r_   z2013-08z2016-07)r   rV   r÷   ÚYearEndr*   rÇ   r   ©r/   rÄ   r4   r3   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-01ro   r&   z2016-03©r  )r   r   r*   r+   r'   r.   )r/   r0   r  rd   r;   r3   r4   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 )Nr  ro   r&   z2016-04Z3ME)r   r*   r+   r   r.   )r/   r0   r;   r3   r4   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Ž   r7   rN   Z2016Q1)r   r   r*   rÇ   )r/   r  r  r;   r$   r4   r3   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   ƒ n1 sx0    Y  d S )Nrñ   rŽ   r7   rN   Z2014Q1ú+bad operand type for unary -: 'PeriodArray'r€   )r   r   r*   rÇ   rS   rˆ   r‰   )r/   r  r;   r$   r4   r3   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   ƒ n1 sÌ0    Y  d S )Nú
2014-05-01rg   r  r`   )ú
2014-05-04z
2014-05-06z
2014-05-08r&   )ú
2014-04-28z
2014-04-30z
2014-05-02rà   r   ú4cannot subtract PeriodArray from timedelta64\[[hD]\]r€   )	r   r*   r+   r   r.   rá   rS   rˆ   r‰   )r/   Ú
three_daysr0   r$   rÄ   r3   r4   r‹   r   r   r   Ú&test_parr_add_timedeltalike_minute_gt1!  s(    þÿz@TestPeriodIndexArithmetic.test_parr_add_timedeltalike_minute_gt1Úfreqstr)Z5nsZ5usZ5msZ5sZ5minZ5hZ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   ƒ n1 sØ0    Y  d S )	Nr"  é   r`   r   rà   r   r%  r€   )r   r*   r+   r.   rá   rS   rˆ   r‰   )
r/   r&  r(  r0   r$   rÄ   Úfirstr3   r4   r‹   r   r   r   Ú$test_parr_add_timedeltalike_tick_gt1B  s*    þÿz>TestPeriodIndexArithmetic.test_parr_add_timedeltalike_tick_gt1c                 C   sL   |}t dddd�}t dddd�}|| }t ||¡ ||7 }t ||¡ d S )Nr"  ú
2014-05-15r   r&   r#  z
2014-05-18r  ©r/   r&  r$   rÄ   r3   r4   r   r   r   Ú$test_pi_add_iadd_timedeltalike_dailyb  s    z>TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_dailyc                 C   sL   |}t dddd�}t dddd�}|| }t ||¡ ||8 }t ||¡ d S )Nr"  r,  r   r&   r$  z
2014-05-12r  r-  r   r   r   Ú$test_pi_sub_isub_timedeltalike_dailyn  s    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 sX0    Y  tjt|d�� ||7 }W d   ƒ n1 sŽ0    Y  tjt|d�� ||  W d   ƒ n1 sÄ0    Y  tjt|d�� ||8 }W d   ƒ n1 sú0    Y  d S )	Nr"  r,  r   r&   rà   z7Input has different freq(=.+)? from Period.*?\(freq=D\)rî   r€   ©r   r*   r+   rá   rS   rˆ   r   )r/   Z	not_dailyr0   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   sL   |}t dddd�}t dddd�}|| }t ||¡ ||7 }t ||¡ d S )Nú2014-01-01 10:00ú2014-01-05 10:00rÌ   r&   z2014-01-01 12:00z2014-01-05 12:00r  ©r/   Z	two_hoursr$   rÄ   r3   r4   r   r   r   Ú%test_pi_add_iadd_timedeltalike_hourly“  s    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 sX0    Y  tjt|d�� ||7 }W d   ƒ n1 sŽ0    Y  d S )	Nr2  r3  rÌ   r&   rà   z7Input has different freq(=.+)? from Period.*?\(freq=h\)rî   r€   r0  )r/   r   r0   r$   rÄ   r‹   r   r   r   Ú2test_parr_add_timedeltalike_mismatched_freq_hourlyž  s    üÿ
&zLTestPeriodIndexArithmetic.test_parr_add_timedeltalike_mismatched_freq_hourlyc                 C   sL   |}t dddd�}t dddd�}|| }t ||¡ ||8 }t ||¡ d S )Nr2  r3  rÌ   r&   z2014-01-01 08:00z2014-01-05 08:00r  r4  r   r   r   Ú%test_pi_sub_isub_timedeltalike_hourly´  s    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&   rM   r  Z2029)r   rV   r÷   r  r*   rÇ   r  r   r   r   Ú"test_add_iadd_timedeltalike_annual¿  s    z<TestPeriodIndexArithmetic.test_add_iadd_timedeltalike_annualc                 C   sò   |}t dddd�}d}tjt|d�� ||  W d   ƒ n1 sB0    Y  tjt|d�� ||7 }W d   ƒ n1 sx0    Y  tjt|d�� ||  W d   ƒ n1 s®0    Y  tjt|d�� ||8 }W d   ƒ n1 sä0    Y  d S )Nr†   r  rƒ   r&   z;Input has different freq(=.+)? from Period.*?\(freq=Y-DEC\)r€   ©r   rS   rˆ   r   ©r/   r"   r$   rÄ   r‹   r   r   r   Ú2test_pi_add_sub_timedeltalike_freq_mismatch_annualÉ  s    &&&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µ   r  r_   r&   z2014-06z2017-05rM   )r   rV   r÷   r   r*   rÇ   )r/   rÄ   r3   r4   r   r   r   Ú test_pi_add_iadd_timedeltalike_MÖ  s    z:TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_Mc                 C   sò   |}t dddd�}d}tjt|d�� ||  W d   ƒ n1 sB0    Y  tjt|d�� ||7 }W d   ƒ n1 sx0    Y  tjt|d�� ||  W d   ƒ n1 s®0    Y  tjt|d�� ||8 }W d   ƒ n1 sä0    Y  d S )Nrµ   r  r_   r&   z7Input has different freq(=.+)? from Period.*?\(freq=M\)r€   r9  r:  r   r   r   Ú3test_pi_add_sub_timedeltalike_freq_mismatch_monthlyà  s    &&&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   ƒ n1 s¶0    Y  d S )
Nú
1994-04-01r>   Ú19Dr`   rŽ   r&   r  ré   r€   )
r   r,   Útimedelta64r   r*   r+   r.   rS   rˆ   r‰   )	r/   r0   r  r;   r$   r3   Úobjr4   r‹   r   r   r   Útest_parr_add_sub_td64_natí  s    
z4TestPeriodIndexArithmetic.test_parr_add_sub_td64_natrŽ   r>   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 s¤0    Y  | ¡ }t	 
d	d
¡|d	< t|d	 gdgd  dd�}t ||¡}|| }t ||¡ || }t ||¡ || }t ||¡ tjt|d�� ||  W d   ƒ n1 �sX0    Y  d S )Nr>  r>   r?  r`   rŽ   r&   ré   r€   r   Únsé   )r   r   r*   r+   r.   rS   rˆ   r‰   Úcopyr,   r@  )r/   r0   r$   r;   r3   rA  r4   r‹   r   r   r   Ú!test_parr_add_sub_tdt64_nat_array  s2    &z;TestPeriodIndexArithmetic.test_parr_add_sub_tdt64_nat_arrayc                 C   s2   t ddd�}|j}|| }|| }t ||¡ d S )Nú
2000-12-31rg   r8   )r   r-   r*   rÇ   )r/   r;   rB   r4   r3   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 sZ0    Y  t
g d¢dd	�j t¡}t ||¡ t t	¡� || }W d   ƒ n1 s°0    Y  t
d
gd dd	�j t¡}t ||¡ d S )NrG  rg   r   r`   r   r    r   )z
2001-01-01z
2001-01-03z
2001-01-05r&   z
2000-12-30)r   r-   r,   r	   rV   r÷   r  r*   rù   r   r   Ú_datarG   rH   r.   )r/   r;   rB   r$   r4   r3   r   r   r   Útest_parr_add_sub_object_array4  s    &ÿþ&z8TestPeriodIndexArithmetic.test_parr_add_sub_object_arrayc                 C   sN  t dƒ}tddd�}tj|gdd�}t ||¡}d}tjt|d�� ||  W d   ƒ n1 s`0    Y  tjt|d�� ||  W d   ƒ n1 s–0    Y  d}tjt|d�� |t	|gƒ  W d   ƒ n1 sÖ0    Y  tjt|d�� t	|gƒ|  W d   ƒ n1 �s0    Y  tjt|d��  |t |g¡  W d   ƒ n1 �sT0    Y  tjt|d��  t |g¡|  W d   ƒ n1 �s”0    Y  |tj
u �r°d}nd	}tjt|d��  |t 
|g¡  W d   ƒ n1 �sê0    Y  |tj
u �rd}nd
}tjt|d��  t 
|g¡|  W d   ƒ n1 �s@0    Y  d S )Nr%   r_   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   rV   r[   r*   r+   rS   rˆ   r‰   r   r¼   )r/   r0   Útsrd   r  r‹   r   r   r   Ú test_period_add_timestamp_raisesH  s8    &&,.000z:TestPeriodIndexArithmetic.test_period_add_timestamp_raises)ArP   rQ   rR   rÅ   rÈ   rË   rÍ   rS   rT   rU   rÖ   rV   r÷   r  rø   r   ZWeekrÝ   r   Zto_pydatetimeZto_datetime64rW   rI  r,   r-   râ   rè   rê   rð   r[   rý   r  r  r  Zint64r  r  r  r  r  ÚoperatorÚaddr   Zraddr  r!  r'  r+  r.  r/  r1  r5  r6  r7  r8  r;  r<  r=  rB  r   Z_from_sequencerF  rH  rJ  rL  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 rv|jdk ¡ svJ ‚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+   rV   r¼   ZdtypesÚallr.   )r/   r&  r0   rm   r3   rA  r4   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s¬J ‚t d| d| gdtd�}t || |¡ t || d| ¡ d S )NrP  r   r&   rQ  rR  r¥   rS  z
2015-01-10r>   rD  )r¦   r–   rN   rU  rT  r7   r   )r   r   r–   r'   rH   r*   r    )r/   rm   rd   r¾   r3   Ús2r   r   r   Útest_ops_series_period‡  s$    þþz1TestPeriodSeriesArithmetic.test_ops_series_periodN)rP   rQ   rR   rW  rY  r   r   r   r   rO  m  s   rO  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*   r.   r   r¦   r    )r/   rb   r¨   r3   r1   r4   rm   re   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 )Nrp   r_   r1   rª   )rs   rt   ry   ú2011-06c                 S   s   | d S ©Nr   r   rI   r   r   r   rK   ¸  rL   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>c                 S   s   d|  S r\  r   rI   r   r   r   rK   ¹  rL   r   c                 S   s   | d S r\  r   rI   r   r   r   rK   »  rL   rq   r&   r   r   rg   r¥   rN   rõ   éýÿÿÿ)r   r©   r   r'   rV   r[   r*   rÇ   )r/   r1   r3   r4   r¾   re   r   r   r   Útest_pi_ops¯  s     
ÿ
ÿ&&z(TestPeriodIndexSeriesMethods.test_pi_opsÚngÚstrg      ø?r¨   c                 C   s   | | S rF   r   ©rA  r_  r   r   r   rK   Ê  rL   z%TestPeriodIndexSeriesMethods.<lambda>c                 C   s   ||  S rF   r   ra  r   r   r   rK   Ë  rL   c                 C   s   | | S rF   r   ra  r   r   r   rK   Ì  rL   c                 C   s   ||  S rF   r   ra  r   r   r   rK   Í  rL   c                 C   s   t  | |¡S rF   ©r,   rN  ra  r   r   r   rK   Î  rL   c                 C   s   t  || ¡S rF   rb  ra  r   r   r   rK   Ï  rL   c                 C   s   t  | |¡S rF   ©r,   Úsubtractra  r   r   r   rK   Ð  rL   c                 C   s   t  || ¡S rF   rc  ra  r   r   r   rK   Ñ  rL   c                 C   sh   t g d¢ddd�}t ||¡}d g d¢¡}tjt|d�� |||ƒ W d   ƒ n1 sZ0    Y  d S )Nrp   r_   r1   rª   rà   )zunsupported operand type\(s\)zcan only concatenatezmust be strzobject to str implicitlyr€   )r   r*   r+   rá   rS   rˆ   r‰   )r/   r_  r¨   r0   r1   rA  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©rq   rr   rŽ   rt   r_   r1   rª   )rs   rt   rŽ   r[  c                 S   s   | d S r\  r   rI   r   r   r   rK   í  rL   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>c                 S   s   d|  S r\  r   rI   r   r   r   rK   î  rL   c                 S   s   t  | d¡S r\  rb  rI   r   r   r   rK   ï  rL   r   c                 S   s   | d S r\  r   rI   r   r   r   rK   ñ  rL   c                 S   s   t  | d¡S r\  rc  rI   r   r   r   rK   ò  rL   ro   )z2011-07ú2011-08rŽ   z2011-10c                 S   s   | d S ©Nrg   r   rI   r   r   r   rK   ü  rL   c                 S   s   d|  S rh  r   rI   r   r   r   rK   ý  rL   c                 S   s   t  | d¡S rh  rb  rI   r   r   r   rK   þ  rL   rg   c                 S   s   | d S rh  r   rI   r   r   r   rK      rL   c                 S   s   t  | d¡S rh  rc  rI   r   r   r   rK     rL   ©r   r©   )r/   r1   r3   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 )Nrf  r_   r1   rª   c                 S   s   | t  g d¢¡ S ©NrÏ   ©r,   r-   rI   r   r   r   rK     rL   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>)rr   rt   rŽ   rg  c                 S   s   t  | t  g d¢¡¡S )N)r7   rN   r   r   )r,   rN  r-   rI   r   r   r   rK     rL   )ry   rq   rŽ   r[  c                 S   s   | t  g d¢¡ S rk  rl  rI   r   r   r   rK     rL   )ú2010-12rm  rŽ   rm  c                 S   s   t  | t  g d¢¡¡S )N)rg   r   rg   rõ   )r,   rd  r-   rI   r   r   r   rK     rL   )z2010-10rm  rŽ   r[  ri  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   r1   rª   c                 S   s   | t j ¡  S rF   ©rV   r÷   r  rI   r   r   r   rK   %  rL   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\  rp  rI   r   r   r   rK   -  rL   )r›   z
2011-02-03z
2011-03-03z
2011-04-03c                 S   s   | t j d¡ S r\  rp  rI   r   r   r   rK   5  rL   )z
2010-12-30z
2011-01-30z
2011-02-27z
2011-03-30ri  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^0    Y  tjt|d��  tj d¡|  W d   ƒ n1 sœ0    Y  tjt|d��  |tj d¡  W d   ƒ q&1 sÚ0    Y  q&d S )Nro  r   r1   rª   zmCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freqr€   r   )r   r   rS   rˆ   r   rV   r÷   rú   )r/   r1   rm   r‹   rA  r   r   r   Útest_pi_offset_errors=  s    ýÿ..z2TestPeriodIndexSeriesMethods.test_pi_offset_errorsc                 C   sX  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�sTJ ‚d S )Nrp   r_   r1   rª   ú2012-01r&   éôÿÿÿiõÿÿÿéöÿÿÿé÷ÿÿÿr¥   ró   é   ra   r>   rŽ   )r   r   r'   rV   r[   r*   rÇ   r,   rd  r
   Únan©r/   r1   r4   r¾   re   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 )Nrf  r_   r1   rª   r7   r¥   )r   r
   rV   rŽ   r*   rÇ   )r/   r1   re   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°   r_   r1   rª   rs  r&   rt  ru  rv  r¥   ró   ra   r>   rŽ   )r   r   r'   rV   r[   rŽ   r*   rÇ   r
   r,   rx  ry  r   r   r   Útest_pi_sub_period_natz  s    
ÿ$$z3TestPeriodIndexSeriesMethods.test_pi_sub_period_natN)rP   rQ   rR   r³   r©   r^  rS   rT   rU   re  rj  rn  rq  rr  rz  r{  r|  r   r   r   r   rZ  ¡  s0   øþ	rZ  )/rM  Únumpyr,   rS   Zpandas._libs.tslibsr   r   r   r   Zpandas.errorsr   ZpandasrV   r   r   r	   r
   r   Zpandas._testingZ_testingr*   Zpandas.corer   Zpandas.core.arraysr   Zpandas.tests.arithmetic.commonr   r   r   r÷   Z	YearBeginZ
MonthBeginrû   Z_common_mismatchZfixtureZto_pytimedeltar@  r   r"   r#   r\   rŸ   r¢   r´   rÀ   rO  rZ  r   r   r   r   Ú<module>   s`   

ý
ýûÿ

ýûÿ
  l(f+       4