U
    ÎZj·ß  ã                   @   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 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_boxc                   @   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ƒƒddddge dd¡e dd¡ e¡e ddddg¡g	¡dd„ ƒZej deejdd „ g¡d!d"„ ƒZdS )#ÚTestPeriodArrayLikeComparisonsÚotherÚ2017ÚD©Úfreqc                 C   s^   t dddgdd�}t ||¡}t||dƒ}t dddg¡}t ||¡}||k}t ||¡ d S )Nr   Z2018r   r   TF©r   ÚtmÚbox_expectedr   ÚnpÚarrayÚassert_equal)Úselfr   Úbox_with_arrayÚidxÚxboxÚexpectedÚresult© r#   úf/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/arithmetic/test_period.pyÚtest_eq_scalar+   s    z-TestPeriodArrayLikeComparisons.test_eq_scalarc                 C   sl   t ddd�}t | ¡ d ¡}t ||¡}t||dƒ}||k}t ddddg¡}t ||¡}t ||¡ d S )NÚ2000é   ©Úperiodsr   TF)r   r   r   Zto_numpyr   r   r   r   )r   r   Úpir   r    r"   r!   r#   r#   r$   Útest_compare_zerodim9   s    z3TestPeriodArrayLikeComparisons.test_compare_zerodimÚscalarZfooz
2021-01-01r'   ©Údaysé	   g      #@iÐ  FNc                 C   s(   t ddd�}t ||¡}t|||ƒ d S ©Nr&   r'   r(   ©r   r   r   r   )r   r   r,   r*   Úparrr#   r#   r$   Útest_compare_invalid_scalarG   s    z:TestPeriodArrayLikeComparisons.test_compare_invalid_scalarr&   r(   Z1DiÑ  iÒ  iÓ  iÔ  c                 C   s(   t ddd�}t ||¡}t|||ƒ d S r0   r1   )r   r   r   r*   r2   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>o   ó    z'TestPeriodArrayLikeComparisons.<lambda>c           	      C   s  t ddd�}t ||¡}||ƒ}t||dƒ}t dddddg¡}t ||¡}||k}t ||¡ ||k}t ||¡ ||k}t ||¡ ||k}t || ¡ ||k }t || ¡ ||k}t || ¡ ||d d d… ƒ}t dddddg¡}t ||¡}||k}t ||¡ t dddddg¡}t ||¡}||k}t ||¡ t dddddg¡}t ||¡}||k}t ||¡ t dddddg¡}t ||¡}||k}t ||¡ t dddddg¡}t ||¡}||k }t ||¡ t dddddg¡}t ||¡}||k}t ||¡ d S )Nr&   é   r(   TéÿÿÿÿF)r   r   r   r   r   r   r   )	r   r   r5   r*   r2   r   r    r!   r"   r#   r#   r$   Útest_compare_object_dtypeo   sV    z8TestPeriodArrayLikeComparisons.test_compare_object_dtype)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer   r%   r+   r   r	   r3   ÚpdÚ
date_ranger   Ztimedelta_ranger   Úaranger7   Zfloat64ÚlistÚranger8   ÚIndexr4   r?   r#   r#   r#   r$   r   &   s@   
øþ



öþ
r   c                   @   sÂ   e Zd Zdd„ Zdd„ Zej ddddg¡d	d
„ ƒZej ddddg¡dd„ ƒZ	ej ddddg¡dd„ ƒZ
ej ddddg¡dd„ ƒZej ddddg¡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   Úvaluesr   Úassert_numpy_array_equalZreshaper   r   )r   r   Úperr"   Ú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-01rQ   r   rP   é   c                    s   g | ]}|ˆ k‘qS r#   r#   ©Ú.0r:   ©Úvalr#   r$   Ú
<listcomp>Á   s     zKTestPeriodIndexComparisons.test_parr_cmp_period_scalar2.<locals>.<listcomp>Tr=   c                    s   g | ]}|ˆ k‘qS r#   r#   rY   r[   r#   r$   r]   Ì   s     )r   r   r   r   r   )r   r   r*   r!   Úserr    r"   r#   r[   r$   Útest_parr_cmp_period_scalar2½   s    z7TestPeriodIndexComparisons.test_parr_cmp_period_scalar2r   rO   Ú2MÚ3Mc                 C   s°  t ddddg|d�}t ||¡}td|d�}t||dƒ}t ddddg¡}t ||¡}t ||k|¡ t ||k|¡ t ddddg¡}t ||¡}t ||k|¡ t ||k|¡ t ddddg¡}t ||¡}t ||k|¡ t ||k |¡ t ddddg¡}t ||¡}t ||k |¡ t ||k|¡ t ddddg¡}t ||¡}t ||k|¡ t ||k|¡ t ddddg¡}t ||¡}t ||k|¡ t ||k|¡ d S )Nú2011-01ú2011-02ú2011-03ú2011-04r   TF)r   r   r   r   r   r   r   r   )r   r   r   ÚbaserU   r    rV   r#   r#   r$   Útest_parr_cmp_period_scalarÐ   s8    z6TestPeriodIndexComparisons.test_parr_cmp_period_scalarc                 C   sX  t ddddg|d�}t ||¡}t ddddg|d�}t||dƒ}t ddddg¡}t ||¡}t ||k|¡ t ddddg¡}t ||¡}t ||k|¡ t ddddg¡}t ||¡}t ||k|¡ t ddddg¡}t ||¡}t ||k |¡ t ddddg¡}t ||¡}t ||k|¡ t ddddg¡}t ||¡}t ||k|¡ d S )	Nrb   rc   rd   re   r   ú2011-05TFr   )r   r   r   rf   r   r    rV   r#   r#   r$   Útest_parr_cmp_piö   s,    z+TestPeriodIndexComparisons.test_parr_cmp_pic              	   C   sŠ  t ddddg|d�}t ||¡}d|› d�}tjt|d�� |td	d
d�k W 5 Q R X tjt|d�� td	d
d�|k W 5 Q R X t d	dddgd
d�}d}|tjtj	fkr¬|n|}tjt|d�� ||k W 5 Q R X d|› d�}tjt|d�� |td	dd�k W 5 Q R X tjt|d�� td	dd�|k W 5 Q R X t d	dddgdd�}d}|tjtj	fk�r`|n|}tjt|d�� ||k W 5 Q R X d S )Nrb   rc   rd   re   r   ú)Invalid comparison between dtype=period\[z\] and Period©ÚmatchÚ2011ÚAÚ2012Ú2013Ú2014z@Invalid comparison between dtype=period\[A-DEC\] and PeriodArrayÚ4Mz=Invalid comparison between dtype=period\[4M\] and PeriodArray)
r   r   r   rC   ÚraisesÚ	TypeErrorr   Úto_arrayrF   r   )r   r   r   rf   Úmsgr   Zrev_msgZidx_msgr#   r#   r$   Ú test_parr_cmp_pi_mismatched_freq  s,    z;TestPeriodIndexComparisons.test_parr_cmp_pi_mismatched_freqc                 C   s¨  t ddddg|d�}|d }||k}t ddddg¡}t ||¡ ||k }t ||¡ |tjk}t ddddg¡}t ||¡ tj|k}t ||¡ |tjk}t ddddg¡}t ||¡ tj|k}t ||¡ t ddd	dg|d�}||k }t ddddg¡}t ||¡ ||k}t ddddg¡}t ||¡ ||k}t ddddg¡}t ||¡ ||k}t ddddg¡}t ||¡ ||k}t ddddg¡}t ||¡ d S )
Nrb   rc   ÚNaTrh   r   é   FTre   )r   r   r   r   rT   rF   rx   )r   r   Úidx1rU   r"   rV   Zidx2r#   r#   r$   Útest_pi_cmp_nat<  sB    



z*TestPeriodIndexComparisons.test_pi_cmp_natc              	   C   s„   t ddddg|d�}t ddddgdd�}d|› d	�}tjt|d
�� ||k W 5 Q R X ||k}tjddddgtd�}t ||¡ d S )Nrb   rc   rx   rh   r   re   rr   rj   z\] and PeriodArrayrk   F©Údtype)	r   rC   rs   rt   r   r   Úboolr   rT   )r   r   rz   Údiffrv   r"   r!   r#   r#   r$   Ú&test_pi_cmp_nat_mismatched_freq_raisesh  s    zATestPeriodIndexComparisons.test_pi_cmp_nat_mismatched_freq_raisesr}   Nc                 C   s2  t tdƒtjtdƒgƒ}t tjtjtdƒgƒ}|d k	rJ| |¡}| |¡}||k}t dddg¡}t ||¡ ||k}t dddg¡}t ||¡ t dddg¡}t |tjk|¡ t tj|k|¡ t dddg¡}t |tjk|¡ t tj|k|¡ t dddg¡}t |tjk |¡ t tj|k|¡ d S )Nú
2011-01-01ú
2011-01-03FT)	r   r   rF   rx   r7   r   r   r   rT   )r   r}   ÚleftÚrightr"   r!   r#   r#   r$   Útest_comp_natv  s(    

z(TestPeriodIndexComparisons.test_comp_nat)r@   rA   rB   rW   r_   rC   rD   rE   rg   ri   rw   r{   r€   r8   r…   r#   r#   r#   r$   rL   ©   s   
%
"
"
+
rL   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 ddddgƒ}t ||k|¡ t ddddgƒ}t ||k|¡ t ddddgƒ}t ||k|¡ t ddddgƒ}t ||k |¡ t ddddgƒ}t ||k|¡ t ddddgƒ}t ||k|¡ d S )Nrm   rn   r   rc   rO   rp   re   ro   rb   rh   FT)r   r   r   Úassert_series_equal)r   rf   r^   rV   r#   r#   r$   Ú(test_cmp_series_period_series_mixed_freq•  s4    



üÿ	



üÿ	zDTestPeriodSeriesComparisons.test_cmp_series_period_series_mixed_freqN)r@   rA   rB   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&t‚t ||¡ t	|ƒ}||ƒ}t	||j
d�}t ||¡ d S ©N©Úname)r   Ú
isinstancerF   rK   r   ZndarrayÚAssertionErrorr   r   r   r�   r‡   )r   rS   Úfuncr!   r   r"   ÚsrV   r#   r#   r$   Ú_checkÁ  s    z1TestPeriodIndexSeriesComparisonConsistency._checkc                    sP  t ddddgddd�}|d ‰ ‡ fd	d
„}tjddddgtjd�}|  |||¡ ‡ fdd
„}|  |||¡ ‡ fdd
„}tjddddgtjd�}|  |||¡ ‡ fdd
„}|  |||¡ ‡ fdd
„}tjddddgtjd�}|  |||¡ ‡ fdd
„}tjddddgtjd�}|  |||¡ ‡ fdd
„}tjddddgtjd�}|  |||¡ d S )Nrb   rc   rd   re   rO   r   ©r   r�   rR   c                    s   | ˆ kS r6   r#   r9   ©rU   r#   r$   r;   ×  r<   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>FTr|   c                    s   ˆ | kS r6   r#   r9   r”   r#   r$   r;   Ú  r<   c                    s   | ˆ kS r6   r#   r9   r”   r#   r$   r;   Ý  r<   c                    s   ˆ | kS r6   r#   r9   r”   r#   r$   r;   à  r<   c                    s   ˆ | kS r6   r#   r9   r”   r#   r$   r;   ã  r<   c                    s   | ˆ kS r6   r#   r9   r”   r#   r$   r;   ç  r<   c                    s   ˆ | kS r6   r#   r9   r”   r#   r$   r;   ë  r<   ©r   r   r   Zbool_r’   ©r   r   ÚfrV   r#   r”   r$   Útest_pi_comp_periodÑ  s2    
  ÿz>TestPeriodIndexSeriesComparisonConsistency.test_pi_comp_periodc                    s  t ddddgddd�}|d ‰ ‡ fd	d
„}tjddddgtjd�}|  |||¡ ‡ fdd
„}|  |||¡ dd
„ }tjddddgtjd�}|  |||¡ dd
„ }|  |||¡ ‡ fdd
„}tjddddgtjd�}|  |||¡ ‡ fdd
„}|  |||¡ dd
„ }tjddddgtjd�}|  |||¡ dd
„ }|  |||¡ ‡ fdd
„}tjddddgtjd�}|  |||¡ ‡ fdd
„}tjddddgtjd�}|  |||¡ dd
„ }tjddddgtjd�}|  |||¡ dd
„ }tjddddgtjd�}|  |||¡ d S )Nrb   rx   rd   re   rO   r   r“   rR   c                    s   | ˆ kS r6   r#   r9   r”   r#   r$   r;   õ  r<   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>FTr|   c                    s   ˆ | kS r6   r#   r9   r”   r#   r$   r;   ø  r<   c                 S   s
   | t jkS r6   ©rF   rx   r9   r#   r#   r$   r;   û  r<   c                 S   s
   t j| kS r6   r™   r9   r#   r#   r$   r;   þ  r<   c                    s   | ˆ kS r6   r#   r9   r”   r#   r$   r;     r<   c                    s   ˆ | kS r6   r#   r9   r”   r#   r$   r;     r<   c                 S   s
   | t jkS r6   r™   r9   r#   r#   r$   r;     r<   c                 S   s
   t j| kS r6   r™   r9   r#   r#   r$   r;   
  r<   c                    s   ˆ | kS r6   r#   r9   r”   r#   r$   r;     r<   c                    s   | ˆ k S r6   r#   r9   r”   r#   r$   r;     r<   c                 S   s
   | t jkS r6   r™   r9   r#   r#   r$   r;     r<   c                 S   s
   t j| kS r6   r™   r9   r#   r#   r$   r;     r<   r•   r–   r#   r”   r$   Útest_pi_comp_period_natï  sL    
  ÿzBTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_natN)r@   rA   rB   Ú__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sJt‚|d
 jd	ks\t‚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t‚|d
 jd	k�s.t‚t  tjd| d| gtd�tjd| d| gtd�dœ¡}t	 
|| |¡ t	 
|| d| ¡ d S )Nz2015-01rO   r   z2015-02ú2014-01z2014-02)rn   ÚBrn   z	Period[M]rž   z2015-03rR   ry   r|   é   é   r>   z2015-05z2015-06r'   é   )rF   Ú	DataFramer   r}   r�   r   r   r   r8   r   Zassert_frame_equal)r   ZdfÚpÚoffrV   Zdf2r#   r#   r$   Útest_ops_frame_period#  s<    þÿþÿþÿþÿz/TestPeriodFrameArithmetic.test_ops_frame_periodN)r@   rA   rB   r¥   r#   r#   r#   r$   rœ   "  s   rœ   c                   @   s,  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
dddg¡dd„ ƒZ
ej 	d	d
dddg¡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 d d!d"g¡g	¡d#d$„ ƒZd%d&„ Zd'd(„ Zej 	d)d*d+d,dg¡ej 	d-ddg¡d.d/„ ƒƒZej 	d0ejejg¡d1d2„ ƒZej 	d0ejejg¡d3d4„ ƒZd5d6„ Z d7d8„ Z!ej 	d9d:ejd:ej"d;�g¡d<d=„ ƒZ#d>d?„ Z$d@dA„ Z%ej 	dBdCdDg¡dEdF„ ƒZ&dGdH„ Z'ej 	dIejejg¡ej 	dJe(j)e*j+g¡dKdL„ ƒƒZ,ej 	dIejejg¡dMdN„ ƒZ-dOdP„ Z.ej 	dQdRdSdTdUdVdWdXg¡dYdZ„ ƒZ/d[d\„ Z0d]d^„ Z1d_d`„ Z2dadb„ Z3dcdd„ Z4dedf„ Z5dgdh„ Z6didj„ Z7dkdl„ Z8dmdn„ Z9ej 	dBdCdDg¡dodp„ ƒZ:ej 	dejdqgdr dsd;�e; <dqgdr ¡g¡dtdu„ ƒZ=dvdw„ Z>dxdy„ Z?dS )zÚTestPeriodIndexArithmeticc              	   C   st   t dddd�}t dddd�}t ||¡}d}tjt|d�� ||  W 5 Q R X tjt|d�� ||7 }W 5 Q R X d S )Nú1/1/2000r   r=   ©r   r)   ú1/6/2000z/unsupported operand type\(s\) for \+: .* and .*rk   )r   r   r   rC   rs   rt   )r   r   Úrngr   rv   r#   r#   r$   Útest_parr_add_iadd_parr_raisesT  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   r=   r¨   r©   éûÿÿÿ)r   r   rF   rK   r   Úassert_index_equal)r   rª   r   r¤   r!   r"   r#   r#   r$   Útest_pi_sub_isub_pie  s    z-TestPeriodIndexArithmetic.test_pi_sub_isub_pic                 C   s†   t dddd�}|dd …  dtj¡}|dd …  |dd … ¡sBt‚|| }|j}t tjd| d| d| d| g¡}t 	||¡ d S )Nr§   r   r=   r¨   ry   r   )
r   ÚinsertrF   rx   Úequalsr�   r   rK   r   r­   )r   rª   r   r"   r¤   r!   r#   r#   r$   Útest_pi_sub_pi_with_natu  s    &z1TestPeriodIndexArithmetic.test_pi_sub_pi_with_natc              	   C   s^   t dddd�}t dddd�}t ||¡}t ||¡}d}tjt|d�� ||  W 5 Q R X d S )	Nr§   r   r=   r¨   r©   ÚHz;Input has different freq=[HD] from PeriodArray\(freq=[DH]\)rk   )r   r   r   rC   rs   r   )r   r   Zbox_with_array2rª   r   rv   r#   r#   r$   Ú test_parr_sub_pi_mismatched_freq  s    z:TestPeriodIndexArithmetic.test_parr_sub_pi_mismatched_freqÚnry   rR   rX   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   rf   r   r­   )r   Ztick_classesr´   Úp1_dÚp2_dÚp1Úp2r!   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 k	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 )NrX   rµ   r¶   Ú	normalizeFr   )r   rf   r   r­   )r   ÚoffsetZkwd_namer´   Úkwdsr·   r¸   r   r¹   rº   r"   r!   r#   r#   r$   Útest_sub_n_gt_1_offsets—  s     ÿz1TestPeriodIndexArithmetic.test_sub_n_gt_1_offsetsr   ú
2016-01-01r²   rP   zEurope/Brussels)r)   ÚtzÚSz
Asia/Tokyog…ëQ¸	@g       @g      @g      @c              	   C   sÄ   t dddd�}t ||¡}d dddd	g¡}t|||ƒ tjt|d
�� ||  W 5 Q R X tjt|d
�� ||  W 5 Q R X tjt|d
�� ||  W 5 Q R X tjt|d
�� ||  W 5 Q R X d S )Nr§   r   rX   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 .*rk   )r   r   r   Újoinr   rC   rs   rt   )r   r   r   rª   rv   r#   r#   r$   Útest_parr_add_sub_invalid´  s$    üÿz3TestPeriodIndexArithmetic.test_parr_add_sub_invalidc              	   C   s¶   t dddd�}tdddgƒ}|j}d}tjt|d�� ||  W 5 Q R X tjt|d�� ||  W 5 Q R X tjt|d�� ||  W 5 Q R X d}tjt|d�� ||  W 5 Q R X d S )	Nr§   ÚQrX   r¨   ú-1 DayzCCannot add or subtract timedelta64\[ns\] dtype from period\[Q-DEC\]rk   z9cannot subtract period\[Q-DEC\]-dtype from TimedeltaArray)r   r
   rS   rC   rs   rt   )r   rª   ÚtdiÚtdarrrv   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dddgƒ}|j}t dddd�}|| }t ||¡ || }t ||¡ || }t ||¡ || }t ||¡ t dddd�}|| }t ||¡ || }t ||¡ d}tjt|d	�� ||  W 5 Q R X tjt|d	�� ||  W 5 Q R X d S )
Nr§   Z90DrX   r¨   rÊ   z
12/31/1999z1/2/2000úcannot subtract .* from .*rk   )r   r
   rS   r   r­   rC   rs   rt   )r   rª   rË   rÌ   r!   r"   rv   r#   r#   r$   Útest_pi_add_sub_td64_array_tickð  s,    z9TestPeriodIndexArithmetic.test_pi_add_sub_td64_array_tickÚpi_freqr   ÚWrÉ   Útdi_freqc              	   C   sr  |}|t jtjfk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�r"d	}tjt|d
�� ||	  W 5 Q R X tjt|d
�� |d |	  W 5 Q R X nLd}tjt|d
�� ||	  W 5 Q R X tjt|d
�� |d |	  W 5 Q R X 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.rk   z"Cannot add or subtract timedelta64)rF   r   r   ru   rK   r
   r   Z	to_periodr   Zto_timestampr   rC   rs   r   rt   )r   r   rÒ   rÐ   Úboxr    rË   Zdtir*   Ztd64objr"   r!   rv   r#   r#   r$   Útest_parr_sub_td64array  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¡� || }W 5 Q R X t ||¡ t t¡� || }W 5 Q R X t ||¡ t	 
tjjdd	�tjjdd	�g¡}d
}tjt|d��$ t t¡� ||  W 5 Q R X W 5 Q R X tjt|d��$ t t¡� ||  W 5 Q R X W 5 Q R X d S )NÚ2015Q1Ú2016Q2ry   é   ©r´   r½   éþÿÿÿZ2015Q2Z2015Q4©r´   z1Input cannot be converted to Period\(freq=Q-DEC\)rk   )r   r   rF   ÚoffsetsÚ
QuarterEndr   Úassert_produces_warningr   r­   r   r   ÚHourZMinuterC   rs   r   )	r   rÔ   r*   Zoffsr!   ÚresZres2Z
unanchoredrv   r#   r#   r$   Útest_pi_add_offset_array@  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	¡� ˆˆ  }W 5 Q R X t 
||¡ |tj ¡ tjjd	d
�gƒ}d}tjt|d��$ t t	¡� ˆ|  W 5 Q R X W 5 Q R X tjt|d��$ t t	¡� |ˆ  W 5 Q R X W 5 Q R X d S )NrÖ   r×   ry   rØ   rÙ   rÚ   c                    s   g | ]}ˆ| ˆ |  ‘qS r#   r#   )rZ   r´   ©r   r*   r#   r$   r]   j  s     zFTestPeriodIndexArithmetic.test_pi_sub_offset_array.<locals>.<listcomp>rR   rÛ   z6Input has different freq=-1M from Period\(freq=Q-DEC\)rk   )r   r   rF   rÜ   rÝ   rJ   Úlenr   rÞ   r   r­   ÚMonthEndÚDayrC   rs   r   )r   rÔ   r!   rà   Zanchoredrv   r#   râ   r$   Útest_pi_sub_offset_array_  s$    þÿ 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²   rQ   r¨   z2000-01-01 10:00©r   r   r­   ©r   Úonerª   r"   r!   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²   rQ   r¨   z2000-01-01 08:00Nrè   ré   r#   r#   r$   Útest_pi_sub_isub_int…  s    z.TestPeriodIndexArithmetic.test_pi_sub_isub_intÚfiver=   r|   c                 C   s.   t ddd�}|| }||  }t ||¡ d S )NrM   é2   r(   rè   )r   rí   rª   r"   rV   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Ã   rQ   Ú2DrP   c                 S   s   g | ]\}}|| ‘qS r#   r#   ©rZ   r:   Úyr#   r#   r$   r]   Ÿ  s     zQTestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1.<locals>.<listcomp>c                 S   s   g | ]\}}|| ‘qS r#   r#   rñ   r#   r#   r$   r]   £  s     )r   r   rH   rF   rK   Úzipr   r­   )r   r*   Zarrr"   r!   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 )Nrq   Ú2024rn   r   r=   Z2009Ú2019r�   ú2016-12rO   z2013-08z2016-07)r   rF   rÜ   ÚYearEndr   r­   rä   ©r   rª   r"   r!   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©rû   )r   r   r   r   r   r   )r   r   rû   rU   r*   r!   r"   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ü   r`   r   z2016-04ra   )r   r   r   r   r   )r   r   r*   r!   r"   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Ö   rx   r'   r>   Z2016Q1)r   r   r   r­   )r   r   r  r*   r   r"   r!   r#   r#   r$   Útest_pi_add_intarrayÝ  s
    
z.TestPeriodIndexArithmetic.test_pi_add_intarrayc              	   C   sr   t tdƒtdƒgƒ}|ddgƒ}|| }t tdƒtdƒgƒ}t ||¡ d}tjt|d�� ||  W 5 Q R X d S )NrÖ   rx   r'   r>   Z2014Q1ú+bad operand type for unary -: 'PeriodArray'rk   )r   r   r   r­   rC   rs   rt   )r   r   r*   r   r"   r!   rv   r#   r#   r$   Útest_pi_sub_intarrayè  s    z.TestPeriodIndexArithmetic.test_pi_sub_intarrayc              	   C   sÊ   |}t dddd�}t ||¡}tdddgdd�}t ||¡}|| }t ||¡ || }t ||¡ td	d
dgdd�}t ||¡}|| }t ||¡ d ddg¡}tjt|d�� ||  W 5 Q R X d S )Nú
2014-05-01rX   rð   rP   ú
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]\]rk   )	r   r   r   r   r   rÇ   rC   rs   rt   )r   Ú
three_daysr   r   rª   r!   r"   rv   r#   r#   r$   Ú&test_parr_add_timedeltalike_minute_gt1ú  s(    þÿz@TestPeriodIndexArithmetic.test_parr_add_timedeltalike_minute_gt1ÚfreqstrZ5nsZ5usZ5msZ5sZ5TZ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 5 Q R X d S )	Nr  é   rP   r   rÆ   r  r  rk   )r   r   r   r   rÇ   rC   rs   rt   )
r   r	  r  r   r   rª   Úfirstr!   r"   rv   r#   r#   r$   Ú$test_parr_add_timedeltalike_tick_gt1  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ª   r!   r"   r#   r#   r$   Ú$test_pi_add_iadd_timedeltalike_daily;  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_dailyG  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 5 Q R X tjt|d�� ||7 }W 5 Q R X tjt|d�� ||  W 5 Q R X tjt|d�� ||8 }W 5 Q R X d S )	Nr  r  r   r   rÆ   z7Input has different freq(=.+)? from Period.*?\(freq=D\)rÓ   rk   ©r   r   r   rÇ   rC   rs   r   )r   Z	not_dailyr   r   rª   rv   r#   r#   r$   Ú3test_parr_add_sub_timedeltalike_freq_mismatch_dailyS  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ª   r!   r"   r#   r#   r$   Ú%test_pi_add_iadd_timedeltalike_hourlyl  s    z?TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_hourlyc              	   C   st   |}t dddd�}t ||¡}d ddg¡}tjt|d�� ||  W 5 Q R X tjt|d�� ||7 }W 5 Q R X d S )	Nr  r  r²   r   rÆ   z7Input has different freq(=.+)? from Period.*?\(freq=H\)rÓ   rk   r  )r   Z
not_hourlyr   r   rª   rv   r#   r#   r$   Ú2test_parr_add_timedeltalike_mismatched_freq_hourlyw  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 )Nr  r  r²   r   z2014-01-01 08:00z2014-01-05 08:00rè   r  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 )Nrq   rõ   rn   r   r=   rö   Z2029)r   rF   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 5 Q R X tjt|d�� ||7 }W 5 Q R X tjt|d�� ||  W 5 Q R X tjt|d�� ||8 }W 5 Q R X d S )Nrq   rõ   rn   r   z;Input has different freq(=.+)? from Period.*?\(freq=A-DEC\)rk   ©r   rC   rs   r   ©r   Zmismatched_freqr   rª   rv   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÷   rO   r   z2014-06z2017-05r=   )r   rF   rÜ   rä   r   r­   )r   rª   r!   r"   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 5 Q R X tjt|d�� ||7 }W 5 Q R X tjt|d�� ||  W 5 Q R X tjt|d�� ||8 }W 5 Q R X d S )Nr�   r÷   rO   r   z7Input has different freq(=.+)? from Period.*?\(freq=M\)rk   r  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 5 Q R X d S )
Nú
1994-04-01r/   Ú19DrP   rx   r   rý   rÎ   rk   )
r   r   Útimedelta64r   r   r   r   rC   rs   rt   )	r   r   rû   r*   r   r!   Úobjr"   rv   r#   r#   r$   Útest_parr_add_sub_td64_natÆ  s    
z4TestPeriodIndexArithmetic.test_parr_add_sub_td64_natrx   r/   zm8[ns]c              	   C   s<  t dddd�}tdgd dd�}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ || }t ||¡ d}tjt|d�� ||  W 5 Q R X | ¡ }t	 
d	d
¡|d	< t|d	 gdgd  dd�}t ||¡}|| }t ||¡ || }t ||¡ || }t ||¡ tjt|d�� ||  W 5 Q R X d S )Nr!  r/   r"  rP   rx   r   rÎ   rk   r   Únsé   )r   r   r   r   r   rC   rs   rt   Úcopyr   r#  )r   r   r   r*   r!   r$  r"   rv   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-31rX   r(   )r   r   r   r­   )r   r*   r2   r"   r!   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 5 Q R X t
dd	d
gdd�j}t ||¡ t t	¡� || }W 5 Q R X t
dgd dd�j}t ||¡ d S )Nr*  rX   r   rP   ry   r-   rR   z
2001-01-01z
2001-01-03z
2001-01-05r   z
2000-12-30)r   r   r   r	   rF   rÜ   rå   r   rÞ   r   r   r   )r   r*   r2   r   r"   r!   r#   r#   r$   Útest_parr_add_sub_object_array  s     ÿz8TestPeriodIndexArithmetic.test_parr_add_sub_object_array)@r@   rA   rB   r«   r®   r±   r³   rC   rD   rE   r»   rF   rÜ   rø   rÝ   rä   ZWeekrÂ   r   Zto_pydatetimeZto_datetime64rG   Ú_datar   r   rÈ   rÍ   rÏ   rÕ   rK   rá   ræ   rë   rì   Zint64rï   rô   rú   rþ   rÿ   ÚoperatorÚaddr   Zraddr  r  r
  r  r  r  r  r  r  r  r  r  r  r   r%  r   Z_from_sequencer)  r+  r,  r#   r#   r#   r$   r¦   M  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.t‚t tddd�td	dd�gdd�}t ||¡}|tjkrv|jdk 	¡ svt‚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   rF   r¢   ZdtypesÚallr   )r   r	  r   r^   r!   r$  r"   r#   r#   r$   Ú"test_parr_add_timedeltalike_scalar#  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.t‚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¬t‚t d| d| gdtd�}t || |¡ t || d| ¡ d S )Nr1  r   r   r2  r3  rŒ   r4  z
2015-01-10r/   r'  )r�   r}   r>   r6  r5  r'   rR   )r   r   r}   r�   r   r8   r   r‡   )r   r^   rU   r¤   r!   Ús2r#   r#   r$   Útest_ops_series_period<  s$    þþz1TestPeriodSeriesArithmetic.test_ops_series_periodN)r@   rA   rB   r8  r:  r#   r#   r#   r$   r0  "  s   r0  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   rS   r�   r!   r   r"   r^   rV   r#   r#   r$   r’   Y  s    z#TestPeriodIndexSeriesMethods._checkc                 C   sô   t ddddgddd�}t dddd	g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 )Nrb   rc   rd   re   rO   r   r“   rh   ú2011-06c                 S   s   | d S ©NrR   r#   r9   r#   r#   r$   r;   m  r<   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>c                 S   s   d|  S r=  r#   r9   r#   r#   r$   r;   n  r<   rR   c                 S   s   | d S r=  r#   r9   r#   r#   r$   r;   p  r<   r   r   ry   rX   rŒ   r>   rÚ   éýÿÿÿ)r   r’   r   r   rF   rK   r   r­   )r   r   r!   r"   r¤   rV   r#   r#   r$   Útest_pi_opsd  s(    
  ÿ
  ÿ&&z(TestPeriodIndexSeriesMethods.test_pi_opsÚngÚstrg      ø?r�   c                 C   s   | | S r6   r#   ©r$  r@  r#   r#   r$   r;     r<   z%TestPeriodIndexSeriesMethods.<lambda>c                 C   s   ||  S r6   r#   rB  r#   r#   r$   r;   €  r<   c                 C   s   | | S r6   r#   rB  r#   r#   r$   r;   �  r<   c                 C   s   ||  S r6   r#   rB  r#   r#   r$   r;   ‚  r<   c                 C   s   t  | |¡S r6   ©r   r/  rB  r#   r#   r$   r;   ƒ  r<   c                 C   s   t  || ¡S r6   rC  rB  r#   r#   r$   r;   „  r<   c                 C   s   t  | |¡S r6   ©r   ÚsubtractrB  r#   r#   r$   r;   …  r<   c                 C   s   t  || ¡S r6   rD  rB  r#   r#   r$   r;   †  r<   c              	   C   s\   t ddddgddd�}t ||¡}d d	d
ddg¡}tjt|d�� |||ƒ W 5 Q R X d S )Nrb   rc   rd   re   rO   r   r“   rÆ   zunsupported operand type\(s\)zcan only concatenatezmust be strzobject to str implicitlyrk   )r   r   r   rÇ   rC   rs   rt   )r   r@  r�   r   r   r$  rv   r#   r#   r$   Útest_parr_ops_errors{  s    
  ÿüÿ	z1TestPeriodIndexSeriesMethods.test_parr_ops_errorsc                 C   s   t ddddgddd�}t dddd	gddd�}|  |d
d„ |¡ |  |dd„ |¡ |  |dd„ |¡ |  |d dd„ |¡ |  |d dd„ |¡ t ddddgddd�}t ddddgddd�}|  |dd„ |¡ |  |dd„ |¡ |  |dd„ |¡ |  |d dd„ |¡ |  |d dd„ |¡ d S )Nrb   rc   rx   re   rO   r   r“   rd   r<  c                 S   s   | d S r=  r#   r9   r#   r#   r$   r;   ¢  r<   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>c                 S   s   d|  S r=  r#   r9   r#   r#   r$   r;   £  r<   c                 S   s   t  | d¡S r=  rC  r9   r#   r#   r$   r;   ¤  r<   rR   c                 S   s   | d S r=  r#   r9   r#   r#   r$   r;   ¦  r<   c                 S   s   t  | d¡S r=  rD  r9   r#   r#   r$   r;   §  r<   r`   z2011-07ú2011-08z2011-10c                 S   s   | d S ©NrX   r#   r9   r#   r#   r$   r;   ±  r<   c                 S   s   d|  S rH  r#   r9   r#   r#   r$   r;   ²  r<   c                 S   s   t  | d¡S rH  rC  r9   r#   r#   r$   r;   ³  r<   rX   c                 S   s   | d S rH  r#   r9   r#   r#   r$   r;   µ  r<   c                 S   s   t  | d¡S rH  rD  r9   r#   r#   r$   r;   ¶  r<   ©r   r’   )r   r   r!   r#   r#   r$   Útest_pi_ops_natš  s<    
  ÿ
  ÿ
  ÿ
  ÿz,TestPeriodIndexSeriesMethods.test_pi_ops_natc                 C   sÊ   t ddddgddd�}dd	„ }t dddd
gddd�}|  |||¡ dd	„ }t ddddgddd�}|  |||¡ dd	„ }t ddddgddd�}|  |||¡ dd	„ }t ddddgddd�}|  |||¡ d S )Nrb   rc   rx   re   rO   r   r“   c                 S   s   | t  ddddg¡ S ©Nry   rR   rX   r'   ©r   r   r9   r#   r#   r$   r;   ½  r<   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>rG  c              	   S   s   t  | t  ddddg¡¡S )Nr'   r>   ry   rR   )r   r/  r   r9   r#   r#   r$   r;   Ã  r<   rh   r<  c                 S   s   | t  ddddg¡ S rK  rL  r9   r#   r#   r$   r;   É  r<   z2010-12c              	   S   s   t  | t  ddddg¡¡S )NrX   rR   rÚ   )r   rE  r   r9   r#   r#   r$   r;   Ï  r<   z2010-10rI  r–   r#   r#   r$   Útest_pi_ops_array_int¸  sB    
  ÿ
  ÿ
  ÿ
  ÿ
  ÿz2TestPeriodIndexSeriesMethods.test_pi_ops_array_intc                 C   sž   t ddddgddd�}dd	„ }t d
dddgddd�}|  |||¡ dd	„ }t ddddgddd�}|  |||¡ dd	„ }t ddddgddd�}|  |||¡ d S )Nr�   ú
2011-02-01ú
2011-03-01ú
2011-04-01r   r   r“   c                 S   s   | t j ¡  S r6   ©rF   rÜ   rå   r9   r#   r#   r$   r;   Û  r<   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=  rQ  r9   r#   r#   r$   r;   ã  r<   r‚   z
2011-02-03z
2011-03-03z
2011-04-03c                 S   s   | t j d¡ S r=  rQ  r9   r#   r#   r$   r;   ë  r<   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 ddddgddd�}t|ƒ}d}||fD ]‚}tjt|d	�� |tj d
¡  W 5 Q R X tjt|d	�� tj d
¡|  W 5 Q R X tjt|d	�� |tj d
¡  W 5 Q R X q*d S )Nr�   rN  rO  rP  r   r   r“   zmCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freqrk   rR   )r   r   rC   rs   r   rF   rÜ   rß   )r   r   r^   rv   r$  r#   r#   r$   Útest_pi_offset_errorsó  s    
ýÿz2TestPeriodIndexSeriesMethods.test_pi_offset_errorsc                 C   s\  t ddddg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*t‚tddd	�| }t ||¡ |j|jk�sXt‚d S )Nrb   rc   rd   re   rO   r   r“   ú2012-01r   éôÿÿÿiõÿÿÿéöÿÿÿé÷ÿÿÿrŒ   rØ   é   rQ   r/   rx   )r   r   r   rF   rK   r   r­   r   rE  r
   Únanr�   ©r   r   r"   r¤   rV   r#   r#   r$   Útest_pi_sub_period	  s.    
  ÿ&&z/TestPeriodIndexSeriesMethods.test_pi_sub_periodc                 C   sR   t ddddgddd�}ttjgd dd	�}t tj| |¡ t |tj |¡ d S )
Nrb   rc   rx   re   rO   r   r“   r'   rŒ   )r   r
   rF   rx   r   r­   )r   r   rV   r#   r#   r$   Útest_pi_sub_pdnat'  s    
  ÿz.TestPeriodIndexSeriesMethods.test_pi_sub_pdnatc                 C   sì   t ddddg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 )Nrb   rx   rd   re   rO   r   r“   rT  r   rU  rV  rW  rŒ   rØ   rQ   r/   )r   r   r   rF   rK   rx   r   r­   r
   r   rY  rZ  r#   r#   r$   Útest_pi_sub_period_nat0  s    
  ÿ$$z3TestPeriodIndexSeriesMethods.test_pi_sub_period_natN)r@   rA   rB   r›   r’   r?  rC   rD   rE   rF  rJ  rM  rR  rS  r[  r\  r]  r#   r#   r#   r$   r;  V  s0   øþ	r;  )%r.  Únumpyr   rC   Zpandas._libs.tslibsr   r   r   r   Zpandas.errorsr   ZpandasrF   r   r   r	   r
   r   Zpandas._testingZ_testingr   Zpandas.corer   Zpandas.core.arraysr   Zpandas.tests.arithmetic.commonr   r   r   r   rL   r†   r‰   rœ   r¦   r0  r;  r#   r#   r#   r$   Ú<module>   s2   
  l(f+     Z4