o
    Û­j�` ã                   @   sž  d dl m Z mZmZ d dlmZmZ d dlZd dlZd dl	Z	d dl
Z
d dlmZ d dlmZ d dlmZ d dlZd dlmZmZmZmZ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"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-e	j. /dg d¢¡e	j. /dg d¢¡e	j. /dg d¢¡d d!„ ƒƒƒZ0d"d#„ Z1d$d%„ Z2d&d'„ Z3d(d)„ Z4dS )*é    )ÚdatetimeÚtimeÚ	timedelta)ÚproductÚstarmapN)Úlocalize_pydatetime)Úshift_months)ÚPerformanceWarning)	Ú
DateOffsetÚDatetimeIndexÚNaTÚPeriodÚSeriesÚ	TimedeltaÚTimedeltaIndexÚ	TimestampÚ
date_range)Ú	roperator)Úassert_cannot_addÚassert_invalid_addsub_typeÚassert_invalid_comparisonÚget_upcast_boxc                   @   s  e Zd Zdd„ Zej dddddeƒ edd	�e	d
ddƒ 
¡ dejg	¡dd„ ƒZej deedƒƒe d¡e d¡ ej¡e d¡ e¡ejddd�je ejddd�¡eejddd�ƒejddd� e¡ejdddd�jejdddd� e¡g
¡dd„ ƒZdd„ Zdd„ ZdS )Ú"TestDatetime64ArrayLikeComparisonsc                 C   sr   |}|}t dd|d�}t | ¡ d ¡}t ||¡}t||dƒ}||k}	t g d¢¡}
t |
|¡}
t |	|
¡ d S )NÚ20130101é   ©ÚperiodsÚtzr   T©TFF)r   ÚnpÚarrayÚto_numpyÚtmÚbox_expectedr   Úassert_equal)ÚselfÚtz_naive_fixtureÚbox_with_arrayr   ÚboxÚdtiÚotherÚdtarrÚxboxÚresultÚexpected© r/   úd/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/arithmetic/test_datetime64.pyÚtest_compare_zerodim5   s   z7TestDatetime64ArrayLikeComparisons.test_compare_zerodimr*   Úfooéÿÿÿÿéc   g      @é   ©ÚdaysiÑ  é   Nc                 C   s.   |}t dd|d�}t ||¡}t|||ƒ d S )Nú1/1/2000é
   r   )r   r"   r#   r   )r%   r*   r&   r'   r   Úrngr+   r/   r/   r0   Útest_dt64arr_cmp_scalar_invalidD   s   zBTestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_scalar_invalidr:   Ú1ns©r   ú1 Dayz
1971-01-01ÚD©Úfreqr   c                 C   s2   |}t ddd|d�j}t ||¡}t|||ƒ d S )Nú
1970-01-01Únsr:   ©rB   r   r   )r   Ú_datar"   r#   r   )r%   r*   r&   r'   r   ÚdtaÚobjr/   r/   r0   Ú"test_dt64arr_cmp_arraylike_invalid^   s   zETestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_arraylike_invalidc              	   C   sN  |}t ddd|d�j}t ddd|d tdd	�g¡}||k}t g d
¢¡}t ||¡ ||k}t || ¡ d}tjt	|d�� ||k  W d   ƒ n1 sNw   Y  tjt	|d�� ||k W d   ƒ n1 siw   Y  tjt	|d�� ||k W d   ƒ n1 s„w   Y  tjt	|d�� ||k W d   ƒ d S 1 s w   Y  d S )NrC   Úhé   rE   r   r8   r5   r   r6   )FFFTFzDInvalid comparison between|Cannot compare type|not supported between©Úmatch)
r   rF   r   r    r   r"   Úassert_numpy_array_equalÚpytestÚraisesÚ	TypeError)r%   r&   r   rG   r*   r-   r.   Úmsgr/   r/   r0   Útest_dt64arr_cmp_mixed_invalidw   s*   
ÿ
ÿ
ÿ
"ÿzATestDatetime64ArrayLikeComparisons.test_dt64arr_cmp_mixed_invalidc                 C   sn   |}|}t d|d�}t|tgƒ}t ||¡}t||dƒ}tddgtjd�}	t |	|¡}	||k}
t |
|	¡ d S )Nz
2021-01-01©r   TF©Údtype)	r   r   r   r"   r#   r   r   Úbool_r$   )r%   r&   r'   r   r(   ÚtsÚserrH   r,   r.   r-   r/   r/   r0   Útest_dt64arr_nat_comparisonŽ   s   z>TestDatetime64ArrayLikeComparisons.test_dt64arr_nat_comparison)Ú__name__Ú
__module__Ú__qualname__r1   rO   ÚmarkÚparametrizeÚobjectr   r   Údater   Únanr<   ÚlistÚrangeÚarangeÚastypeÚfloat32ÚpdÚtimedelta_ranger    Úperiod_rangerI   rS   rZ   r/   r/   r/   r0   r   0   sB    óþ

õþ
	r   c                   @   s4  e Zd Zej dedƒeedƒgeeedƒgfedƒeedƒgeeedƒgfe	ddd�ee	d	dd�geee	d	dd�gfg¡ej d
ddg¡ej dde
g¡ej dejeg d¢ƒfejeg d¢ƒfejeg d¢ƒfejeg d¢ƒfejeg d¢ƒfejeg d¢ƒfg¡dd„ ƒƒƒƒZej dedƒeedƒgedƒeedƒge	ddd�ee	d	dd�gg¡ej dde
g¡dd„ ƒƒZej dedddƒedddƒg¡dd„ ƒZej dg d ¢¡d!d"„ ƒZd#d$„ Zej d%ed&ƒed'ddƒe d(d)¡g¡ej d*ejg d+¢fejg d,¢fejg d-¢fejg d.¢fg¡d/d0„ ƒƒZdS )1ÚTestDatetime64SeriesComparisonÚpairú
2011-01-01ú
2011-01-03ú1 daysz3 daysz2011-01ÚM©rB   z2011-03ÚreverseTFrV   Nzop, expected©FFT©TTF©FFFc                 C   sL   |}|\}}	|r|	|}}	t ||d�}
||	|d�}||
|ƒ}t ||¡ d S )NrU   )r   r"   Úassert_series_equal)r%   rV   Úindex_or_seriesrr   rl   Úopr.   r(   ÚlhsÚrhsÚleftÚrightr-   r/   r/   r0   Útest_nat_comparisons£   s   '

z3TestDatetime64SeriesComparison.test_nat_comparisonsÚdatac                 C   sˆ  |}t ||d�}t ||¡}t|tdƒ}g d¢}t ||¡}|tju r.|tu r.tj|dd�}t |tk|¡ t t|k|¡ g d¢}t ||¡}|tju rX|tu rXtj|dd�}t |tk|¡ t t|k|¡ g d¢}t ||¡}|tju r‚|tu r‚tj|dd�}t |tk |¡ t t|k|¡ t |tk|¡ t t|k|¡ t |tk|¡ t t|k |¡ t |tk|¡ t t|k|¡ d S )NrU   Tru   Úbool©TTT)	r   r"   r#   r   r   rh   r    r`   r$   )r%   rV   r~   r'   r(   r{   r,   r.   r/   r/   r0   Útest_nat_comparisons_scalar×   s8   
z:TestDatetime64SeriesComparison.test_nat_comparisons_scalarÚvaliÐ  r8   é   rK   c                    s>   t tddd�ƒ}|ˆ k}t ‡ fdd„|D ƒƒ}t ||¡ d S )Nr9   r:   r>   c                    s   g | ]}|ˆ k‘qS r/   r/   ©Ú.0Úx©r‚   r/   r0   Ú
<listcomp>	  ó    zQTestDatetime64SeriesComparison.test_series_comparison_scalars.<locals>.<listcomp>)r   r   r"   rv   )r%   r‚   Úseriesr-   r.   r/   r‡   r0   Útest_series_comparison_scalars  s   z=TestDatetime64SeriesComparison.test_series_comparison_scalarsz
left,right))ÚltÚgt)ÚleÚge)Úeqr�   )Úner‘   c           	      C   sè   t tddd�dd�}|jdd�}tdƒ|d	< tdƒ|d
< tt|ƒ}tt|ƒ}||tdƒƒ}|tdƒ|ƒ}t ||¡ ||tdƒƒ}|tdƒ|ƒ}t ||¡ ||tdƒƒ}|tdƒ|ƒ}t ||¡ ||tƒ}|t|ƒ}t ||¡ d S )NÚ20010101r:   r>   Údates©ÚnameT)ÚdeepÚnatr   r   Ú20010109)	r   r   Úcopyr   ÚgetattrÚoperatorr"   rv   r   )	r%   r{   r|   rY   Ús_natÚleft_fÚright_fr.   r-   r/   r/   r0   Útest_timestamp_compare_series  s$   



z<TestDatetime64SeriesComparison.test_timestamp_compare_seriesc                 C   s>  |}t tdƒtdƒtgƒ}t ||¡}t||dƒ}||k}t g d¢|¡}t ||¡ |tju rNt	j
tdd�� ||d k W d   ƒ n1 sHw   Y  n||d k}t g d¢|¡}t ||¡ |tju r…t	j
tdd�� ||d	 k W d   ƒ n1 sw   Y  n||d	 k}t g d
¢|¡}t ||¡ ||k}t g d¢|¡}t ||¡ |tju rÎt	j
tdd�� ||d k W d   ƒ n1 sÈw   Y  n||d k}t g d¢|¡}t ||¡ |tju �r	t	j
tdd�� ||d	 k W d   ƒ d S 1 �sw   Y  d S ||d	 k}t g d¢|¡}t ||¡ d S )Nz2000-01-29 01:59:00z
2000-01-30Trs   znot alignedrL   r   )FTTr5   r€   rt   r   ru   )r   r   r   r"   r#   r   r$   rh   Ú	DataFramerO   rP   Ú
ValueError)r%   r'   r(   rY   r,   r-   r.   r/   r/   r0   Útest_dt64arr_timestamp_equality/  sR   
ÿ€
ÿ€
ÿ€$ÿz>TestDatetime64SeriesComparison.test_dt64arr_timestamp_equalityÚdatetimeliker   iÝ  z2013-01-01T00:00rD   zop,expected)TFFF)TTFF)FTFF)FFFTc                 C   sH   t tdƒtdƒtjtdƒgdd�}|||ƒ}t |dd�}t ||¡ d S )NÚ20120101r   Ú20130103ÚAr”   )r   r   r   rb   r"   rv   )r%   r£   rx   r.   rY   r-   r/   r/   r0   Ú!test_dt64_compare_datetime_scalarh  s   üù
	z@TestDatetime64SeriesComparison.test_dt64_compare_datetime_scalar)r[   r\   r]   rO   r^   r_   r   r   r   r   r`   r›   r�   r   r‘   rŒ   r�   r�   rŽ   r}   r�   r   r‹   rŸ   r¢   r   Ú
datetime64r§   r/   r/   r/   r0   rk       sv    þþþ÷þúþýþ $
ÿ
 9

ýþüþ	rk   c                   @   s  e Zd Zdd„ Zej dedddƒedƒe	 
d¡g¡dd„ ƒZej d	d
eg¡dd„ ƒZdd„ Zdd„ Zdd„ Zej dedddƒedƒe	 
d¡g¡ej d¡dd„ ƒƒZdd„ Zdd„ Zdd„ Zejjdejddd�ejddd� ¡ ejddd�j d¡gd d!„ d"�d#d$„ ƒZd%d&„ Zd
S )'ÚTestDatetimeIndexComparisonsc                 C   sf   t ddd�}|t|ƒd  }t|ƒ ¡ }t |¡}|||ƒ}|||ƒ}t|tjƒs+J ‚t 	||¡ d S )Nz
2020-01-01r:   r>   r5   )
r   Úlenr   Úto_datetime64r   r    Ú
isinstanceÚndarrayr"   rN   )r%   Úcomparison_opÚindexÚelementÚarrÚ
arr_resultÚindex_resultr/   r/   r0   Útest_comparatorsŒ  s   


z-TestDatetimeIndexComparisons.test_comparatorsr*   éà  r8   ú
2016-01-01c                 C   sö   |}t dd|d�}|d ur$t|tjƒrt t|ƒj› d�¡ t||j	ƒ}||k}t 
ddg¡}t ||¡ ||k}t 
ddg¡}t ||¡ ||k}t 
ddg¡}t ||¡ ||k }t 
ddg¡}t ||¡ ||k}t 
ddg¡}t ||¡ d S )Nr¶   r5   r   z is not tz awareTF)r   r¬   r   r¨   rO   ÚskipÚtyper[   r   Útzinfor    r"   rN   )r%   r*   r&   r   r)   r-   r.   r/   r/   r0   Útest_dti_cmp_datetimelike˜  s*   z6TestDatetimeIndexComparisons.test_dti_cmp_datetimelikerV   Nc           
      C   s‚  t tdƒttdƒgƒ}t tttdƒgƒ}t ||¡}t ||¡}t||dƒ}||}}|tu r:| t¡| t¡}}||k}t 	g d¢¡}	t |	|¡}	t 
||	¡ ||k}t 	g d¢¡}	t |	|¡}	t 
||	¡ t 	g d¢¡}	t |	|¡}	t 
|tk|	¡ t 
t|k|	¡ t 	g d¢¡}	t |	|¡}	t 
|tk|	¡ t 
t|k|	¡ t 	g d¢¡}	t |	|¡}	t 
|tk |	¡ t 
t|k|	¡ d S )Nrm   rn   Trs   rt   ru   r€   )r   r   r   r"   r#   r   r`   rf   r   r    r$   )
r%   rV   r'   r{   r|   r,   ry   rz   r-   r.   r/   r/   r0   Útest_dti_cmp_nat¸  s8   
z-TestDatetimeIndexComparisons.test_dti_cmp_natc              
   C   s®  t  dtjdtjddg¡}t  ddtjtjddg¡}tdtdtd	d
gƒ}tddttdd
gƒ}t t d¡t d¡t d¡t d¡t d¡t d¡g¡}||f||f||fg}t 	d ¡�u |D ]j\}}||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}	t g d¢¡}
t 
|	|
¡ q^W d   ƒ n1 sÓw   Y  t 	d ¡�` |tjf|tffD ]N\}}||k }	t g d¢¡}
t 
|	|
¡ ||k}	t 
|	|
¡ ||k}	t 
|	|
¡ ||k}	t 
|	|
¡ ||k}	t 
|	|
¡ ||k}	t g d¢¡}
t 
|	|
¡ qçW d   ƒ n	1 �sAw   Y  t 	d ¡�� |df|tdddƒffD ]k\}}||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}	t g d ¢¡}
t 
|	|
¡ �qXW d   ƒ d S 1 �sÐw   Y  d S )!Nç      ð?ç      @g      @g      @ç       @g      @ú
2014-01-01ú
2014-03-01ú
2014-05-01ú
2014-07-01z
2014-02-01z
2014-06-01z2014-02-01 00:00z2014-03-01 00:00r—   z2014-06-01 00:00z2014-07-01 00:00)TFFFTF)TFFFTT)FFFFFT)TTTTTF)FFFFFF)TTTTTTr   iÞ  r8   )TFFFFF)FFFFTT)TFTFFF)FFTFTT)FFTFFF)TTFTTT)rh   ÚIndexr   rb   r   r   r    r¨   r"   Úassert_produces_warningrN   r   )r%   Úfidx1Úfidx2Údidx1Údidx2ÚdarrÚcasesÚidx1Úidx2r-   r.   r‚   r/   r/   r0   Ú+test_dti_cmp_nat_behaves_like_float_cmp_nanÞ  s    ÿÿúÿéÿïÿ ë$ÿzHTestDatetimeIndexComparisons.test_dti_cmp_nat_behaves_like_float_cmp_nanc           	      C   sæ  |}|}t ddd�}| d¡}t ||¡}t ||¡}|tju r%dd„ }nt}|tjtj	fvrëd}t
jt|d�� |||ƒ W d   ƒ n1 sHw   Y  t
jt|d�� ||||ƒƒ W d   ƒ n1 sfw   Y  t
jt|d�� ||tj||ƒtd	�ƒ W d   ƒ n1 s‰w   Y  t
jt|d�� |||ƒ W d   ƒ n1 s¥w   Y  t
jt|d�� ||||ƒƒ W d   ƒ n1 sÃw   Y  t
jt|d�� ||tj||ƒtd	�ƒ W d   ƒ n1 sæw   Y  t ||k¡sôJ ‚t |||ƒk¡sÿJ ‚t ||ƒ|k¡�sJ ‚t tj||ƒtd	�|k¡�sJ ‚t |tj||ƒtd	�k¡�s-J ‚t ||k¡�s7J ‚t |||ƒk¡�sCJ ‚t ||ƒ|k¡�sOJ ‚t tj||ƒtd	�|k¡�s`J ‚t |tj||ƒtd	�k¡�sqJ ‚d S )
Nr¶   é   r>   ú
US/Pacificc                 S   s   |   t¡j ¡ d S )Nr   )rf   r`   ÚvaluesÚtolist©r†   r/   r/   r0   Ú<lambda>I  r‰   zQTestDatetimeIndexComparisons.test_comparison_tzawareness_compat.<locals>.<lambda>z^Invalid comparison between dtype=datetime64\[ns.*\] and (Timestamp|DatetimeArray|list|ndarray)rL   rU   )r   Útz_localizer"   r#   rh   r    rc   r›   r�   r‘   rO   rP   rQ   r   r    r`   Úall)	r%   r®   r'   rx   r(   ÚdrÚdzrÑ   rR   r/   r/   r0   Ú"test_comparison_tzawareness_compat=  sP   


ÿÿÿÿÿÿÿ"""&z?TestDatetimeIndexComparisons.test_comparison_tzawareness_compatc           	      C   sP  |}t ddd�}| d¡}t ||¡}t ||¡}tdƒ}tddd�}t ||k¡s,J ‚d}|tjtj	fvrRt
jt|d	�� |||ƒ W d   ƒ n1 sMw   Y  t ||k¡s[J ‚|tjtj	fvrt
jt|d	�� |||ƒ W d   ƒ n1 szw   Y  |tjtj	fvr¦t
jt|d	�� |||ƒ W d   ƒ d S 1 sŸw   Y  d S d S )
Nr¶   rÎ   r>   rÏ   z2000-03-14 01:59zEurope/AmsterdamrT   zAInvalid comparison between dtype=datetime64\[ns.*\] and TimestamprL   )r   rÔ   r"   r#   r   r   rÕ   r›   r�   r‘   rO   rP   rQ   )	r%   r®   r'   rx   rÖ   r×   rX   Úts_tzrR   r/   r/   r0   Ú*test_comparison_tzawareness_compat_scalarsn  s.   
ÿÿ"ÿþzGTestDatetimeIndexComparisons.test_comparison_tzawareness_compat_scalarsz*ignore:elementwise comp:DeprecationWarningc                 C   s  |}|}t dd|d�}t ||¡}t||dƒ}	|tjtjfv rK|tju }
tj|
|
gt	d�}t ||	¡}|||ƒ}t 
||¡ |||ƒ}t 
||¡ d S dt|ƒj› �}tjt|d�� |||ƒ W d   ƒ n1 sjw   Y  tjt|d�� |||ƒ W d   ƒ d S 1 s‡w   Y  d S )Nr¶   r5   r   TrU   z:Invalid comparison between dtype=datetime64\[ns, .*\] and rL   )r   r"   r#   r   r›   r�   r‘   r   r    r   r$   r¸   r[   rO   rP   rQ   )r%   r®   r*   Útz_aware_fixturer'   rx   r   r)   r+   r,   Úexboolr.   r-   rR   r/   r/   r0   Ú"test_scalar_comparison_tzawarenessŒ  s.   


ÿÿÿ"ÿz?TestDatetimeIndexComparisons.test_scalar_comparison_tzawarenessc                 C   sh   |}t dtdtddgƒ}t |tjkgt|ƒ ¡}||tƒ}t ||¡ || 	d¡tƒ}t ||¡ d S )Nr¿   rÀ   rÁ   rÂ   rÏ   )
r   r   r   r    r›   r‘   rª   r"   rN   rÔ   )r%   r®   rx   r)   r.   r-   r/   r/   r0   Útest_nat_comparison_tzawareness±  s   ÿ
z<TestDatetimeIndexComparisons.test_nat_comparison_tzawarenessc                 C   s
  |}t dd|d�}d}||k}t dgdgd  ¡}t ||¡ ||k}t dgdgd  ¡}t ||¡ ||k }t dgd ¡}t ||¡ ||k}t dgdgd  ¡}t ||¡ ||k}t dgdgd  ¡}t ||¡ ||k}t dgd ¡}t ||¡ d S )Nr9   r:   r   TFé	   )r   r   r    r"   rN   )r%   r&   r   r;   r*   r-   r.   r/   r/   r0   Útest_dti_cmp_strÀ  s*   z-TestDatetimeIndexComparisons.test_dti_cmp_strc                 C   s0   t ddd�}|t|ƒk}||k}t ||¡ d S )Nr9   r:   r>   )r   rc   r"   rN   )r%   r;   r-   r.   r/   r/   r0   Útest_dti_cmp_listß  s   z.TestDatetimeIndexComparisons.test_dti_cmp_listÚ1Dr:   r>   úm8[ns]c                 C   s
   t | ƒjS ©N)r¸   r[   rÒ   r/   r/   r0   rÓ   í  s   
 z%TestDatetimeIndexComparisons.<lambda>)Úidsc                 C   s8  t dddd�}||k}t dgd ¡}t ||¡ ||k}t dgd ¡}t ||¡ d}tjt|d�� ||k  W d   ƒ n1 sCw   Y  tjt|d�� ||k W d   ƒ n1 s^w   Y  tjt|d�� ||k W d   ƒ n1 syw   Y  tjt|d�� ||k W d   ƒ d S 1 s•w   Y  d S )	Nú
2000-01-01r:   ú
Asia/Tokyor   FTzInvalid comparison betweenrL   )r   r   r    r"   rN   rO   rP   rQ   )r%   r*   r)   r-   r.   rR   r/   r/   r0   Útest_dti_cmp_tdi_tzawarenessæ  s(   
ÿ
ÿ
ÿ
"ÿz9TestDatetimeIndexComparisons.test_dti_cmp_tdi_tzawarenessc                 C   sî   t dddd�}| d¡}||k}t dgd ¡}t ||¡ | d ¡}||k}t ||¡ t t|d d… ƒtdd	�gd  ¡}||k}t dgd d
gd  ¡}t ||¡ d}t	j
t|d�� ||k W d   ƒ d S 1 spw   Y  d S )Nræ   r:   rç   r   ÚOTrK   r8   r6   FzB>=' not supported between instances of 'Timestamp' and 'Timedelta'rL   )r   rf   r   r    r"   rN   rÔ   rc   r   rO   rP   rQ   )r%   r)   r*   r-   r.   rR   r/   r/   r0   Útest_dti_cmp_object_dtype  s    

&
"ÿz6TestDatetimeIndexComparisons.test_dti_cmp_object_dtype)r[   r\   r]   r´   rO   r^   r_   r   r   r   r¨   rº   r`   r»   rÍ   rØ   rÚ   ÚfilterwarningsrÝ   rÞ   rà   rá   rh   ri   Ú	to_seriesÚasi8Úviewrè   rê   r/   r/   r/   r0   r©   Š  s>    þ

%_1þ
ýù
	r©   c                
   @   sÂ  e Zd Zejjdd„ ƒZdd„ Zdd„ Zdd„ Z	d	d
„ Z
dd„ Zej dedƒedƒ ¡ edƒ ¡ e dd¡g¡dd„ ƒZdd„ Zdd„ Zdd„ Z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%d&e d'd(g¡ed)dd*�ed+d,d-ƒg¡ej d.d!dg¡d/d0„ ƒƒZej d1g d2¢¡ej d.d!dg¡d3d4„ ƒƒZej d5¡d6d7„ ƒZ ej d8e!ed9ƒed9ƒgƒe!e"ed9ƒgƒe!e"e"gd:d;�g¡ej d<d+d=e d+¡g¡d>d?„ ƒƒZ#d!S )@ÚTestDatetime64Arithmeticc                 C   sx   |}t dd|d�}t dd|d�}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ ||7 }t ||¡ d S )Nræ   ú
2000-02-01rT   z2000-01-01 02:00z2000-02-01 02:00©r   r"   r#   r$   ©r%   r&   Ú	two_hoursr'   r   r;   r.   r-   r/   r/   r0   Ú%test_dt64arr_add_timedeltalike_scalar(  s   z>TestDatetime64Arithmetic.test_dt64arr_add_timedeltalike_scalarc                 C   sd   |}t dd|d�}t dd|d�}t ||¡}t ||¡}|| }t ||¡ ||8 }t ||¡ d S )Nræ   rð   rT   z1999-12-31 22:00z2000-01-31 22:00rñ   rò   r/   r/   r0   Ú%test_dt64arr_sub_timedeltalike_scalar>  s   z>TestDatetime64Arithmetic.test_dt64arr_sub_timedeltalike_scalarc                 C   s  t ddd� d¡}t ||¡}tdƒ d¡}tdƒ}|| }tg d¢ƒ}t ||¡}t ||¡ || }tg d¢ƒ}t ||¡}t ||¡ d	}tjt	|d
�� ||  W d   ƒ n1 s^w   Y  tjt	|d
�� ||  W d   ƒ d S 1 szw   Y  d S )Nr   r   r>   ú
US/EasternÚCETi5)3)ú0 days 06:00:00z1 days 06:00:00z2 days 06:00:00)ú-1 days +18:00:00z-2 days +18:00:00z-3 days +18:00:00ú;Cannot subtract tz-naive and tz-aware datetime-like objectsrL   )
r   rÔ   r"   r#   r   r   r$   rO   rP   rQ   ©r%   r'   Út1Út2Útnaiver-   r.   rR   r/   r/   r0   Ú.test_dt64_array_sub_dt_with_different_timezoneO  s.   ÿÿ
ÿ
"ÿzGTestDatetime64Arithmetic.test_dt64_array_sub_dt_with_different_timezonec                 C   s  t ddd� d¡}t ||¡}t ddd� d¡}t ||¡}t ddd�}|| }tg d¢ƒ}t ||¡}t ||¡ || }tg d¢ƒ}t ||¡}t ||¡ d}tjt|d	�� ||  W d   ƒ n1 shw   Y  tjt|d	�� ||  W d   ƒ d S 1 s„w   Y  d S )
Nr   r   r>   rö   r÷   )rø   rø   rø   )rù   rù   rù   rú   rL   )	r   rÔ   r"   r#   r   r$   rO   rP   rQ   rû   r/   r/   r0   Ú6test_dt64_array_sub_dt64_array_with_different_timezonej  s0   ÿÿ
ÿ
"ÿzOTestDatetime64Arithmetic.test_dt64_array_sub_dt64_array_with_different_timezonec           
      C   sÊ   |}t dd|dd�}t d¡}tdgd |d� d¡}t ||¡}t ||¡}|| }t ||¡ || }t ||¡ || }t ||¡ d}	tj	t
|	d	�� ||  W d   ƒ d S 1 s^w   Y  d S )
Nz
1994-04-01rß   ÚQS©r   r   rB   r   rT   rD   úcannot subtractrL   )r   r   Útimedelta64r   Úas_unitr"   r#   r$   rO   rP   rQ   )
r%   r'   r&   r   r)   r*   r.   rH   r-   rR   r/   r/   r0   Útest_dt64arr_add_sub_td64_nat†  s    

"ÿz6TestDatetime64Arithmetic.test_dt64arr_add_sub_td64_natc                 C   sä   |}t 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   ƒ d S 1 skw   Y  d S )
Nr¶   r   r   )ú-1 Dayr  r  z
2015-12-31z
2016-01-02z
2016-01-04z8cannot subtract|(bad|unsupported) operand type for unaryrL   )	r   r   rÐ   r"   r#   r$   rO   rP   rQ   )r%   r&   r'   r   r)   ÚtdiÚtdarrr.   r+   r-   rR   r/   r/   r0   Ú test_dt64arr_add_sub_td64ndarray›  s&   
"ÿz9TestDatetime64Arithmetic.test_dt64arr_add_sub_td64ndarrayrX   ú
2013-01-01r@   c                 C   sr   t ddd� d ¡}t ||¡}tg d¢ƒ}t ||¡}|| }t ||¡ || }t || ¡ t || ¡ d S )Nr  r   r>   )z0 Daysr?   z2 Days)r   Ú
_with_freqr"   r#   r   r$   )r%   r'   rX   Úidxr.   r-   r/   r/   r0   Útest_dt64arr_sub_dtscalar·  s   z2TestDatetime64Arithmetic.test_dt64arr_sub_dtscalarc                 C   s|   t ddddd�}| d ¡}|d }t ||¡}tt dd¡t dd¡gƒ}t ||¡}t || |¡ t || | ¡ d S )Nz
2014-03-17r5   r@   rö   ©r   rB   r   r   r8   )r   r  r"   r#   r   r   r  r$   )r%   r'   rY   rX   Údelta_seriesr.   r/   r/   r0   Ú"test_dt64arr_sub_timestamp_tzawareÑ  s   
z;TestDatetime64Arithmetic.test_dt64arr_sub_timestamp_tzawarec           	      C   s¬   t ttdƒgƒ |¡}t ||¡}|t }tttgd|› d�d�}t ||¡}t ||¡ | d¡}t ||¡}|t }tttgd|› d�d�}t ||¡}t ||¡ d S )NÚ19900315útimedelta64[ú]rU   rç   )	r   r   r   r  r"   r#   r   r$   rÔ   )	r%   r'   Úunitr)   rY   r-   r.   Údti_tzÚser_tzr/   r/   r0   Útest_dt64arr_sub_NaTÞ  s   
z-TestDatetime64Arithmetic.test_dt64arr_sub_NaTc                 C   s|   t dd|d�}|| }t ||¡}t ||¡ t¡}t t¡� || t¡ }W d   ƒ n1 s1w   Y  t ||¡ d S ©Nr¶   r   r   )r   r"   r#   rf   r`   rÄ   r	   r$   )r%   r'   r&   r)   r.   rH   r-   r/   r/   r0   Ú!test_dt64arr_sub_dt64object_arrayó  s   ÿz:TestDatetime64Arithmetic.test_dt64arr_sub_dt64object_arrayc                 C   sT   t ddd d�}|j}t ||¡}|| }|| }t ||¡ || }t ||¡ d S r  )r   rÐ   r"   r#   r$   )r%   r'   r)   Údt64valsr+   r.   r-   r/   r/   r0   Ú"test_dt64arr_naive_sub_dt64ndarrayþ  s   z;TestDatetime64Arithmetic.test_dt64arr_naive_sub_dt64ndarrayc                 C   sš   |}t dd|d�}|j}t ||¡}d}tjt|d�� ||  W d   ƒ n1 s*w   Y  tjt|d�� ||  W d   ƒ d S 1 sFw   Y  d S )Nr¶   r   r   z.Cannot subtract tz-naive and tz-aware datetimerL   )r   rÐ   r"   r#   rO   rP   rQ   )r%   rÛ   r'   r   r)   r  r+   rR   r/   r/   r0   Ú)test_dt64arr_aware_sub_dt64ndarray_raises
  s   
ÿ
"ÿzBTestDatetime64Arithmetic.test_dt64arr_aware_sub_dt64ndarray_raisesc                 C   sÄ   |}t dd|d�}|d u r| d¡}n| d ¡}t ||¡}t||jƒ t||ƒ t||ƒ t||d ƒ t||d  ¡ ƒ t||d  ¡ ƒ t||d ƒ t||d  ¡ ƒ t|t 	dd¡ƒ d S )Nr¶   r   r   rö   r   rm   r@   )
r   rÔ   r"   r#   r   rÐ   Úto_pydatetimer«   r   r¨   )r%   r&   r'   r   r)   Údti2r+   r/   r/   r0   Útest_dt64arr_add_dtlike_raises  s   


z7TestDatetime64Arithmetic.test_dt64arr_add_dtlike_raisesrB   )rJ   r@   ÚWÚ2MEÚMSÚQEÚBNrV   NÚuint8c                 C   s  |}|d u rt ddg|d�}ntdd||d�}||ƒ}t ddg¡}	|d ur+|	 |¡}	d	 g d
¢¡}
t|d|
ƒ t|t d¡|
ƒ t|tjdtjd�|
ƒ t||	|
ƒ t|t |	¡|
ƒ t|t |	¡|
ƒ t|t 	|	¡|
ƒ t|t 
|	¡|
ƒ t|t|	ƒ|
ƒ d S )Nr   z2017-04-05 06:07:08rT   r¶   r5   r  rƒ   r3   ú|)z Addition/subtraction of integersz"cannot subtract DatetimeArray fromz(can only perform ops with numeric valuesz%unsupported operand type.*Categoricalz:unsupported operand type\(s\) for -: 'int' and 'Timestamp'r8   r   rU   )r   r   r   r    rf   Újoinr   Úint64rh   ÚCategoricalrÃ   r   )r%   ÚrequestrV   Úindex_or_series_or_arrayrB   r&   r   r)   rH   r*   rR   r/   r/   r0   Útest_dt64arr_addsub_intlike7  s(   
ÿ
z4TestDatetime64Arithmetic.test_dt64arr_addsub_intliker*   g…ëQ¸	@r¾   r½   rm   rq   r8   r5   r   Údti_freqc                 C   s:   t ddg|d�}t ||¡}d g d¢¡}t|||ƒ d S )Nrm   ú
2011-01-02rq   r'  )zunsupported operand typeúcannot (add|subtract)zcannot use operands with typesz7ufunc '?(add|subtract)'? cannot use operands with typesz;Concatenation operation is not implemented for NumPy arrays)r   r"   r#   r(  r   )r%   r.  r*   r'   r)   r+   rR   r/   r/   r0   Útest_dt64arr_add_sub_invalid_  s   ÿ	z5TestDatetime64Arithmetic.test_dt64arr_add_sub_invalidÚpi_freq)r@   r!  ÚQrJ   c           
      C   sP   t ddg|d�}| |¡}t ||¡}t ||¡}d g d¢¡}	t|||	ƒ d S )Nrm   r/  rq   r'  )r0  úunsupported operandzdescriptor.*requireszufunc.*cannot use operands)r   Ú	to_periodr"   r#   r(  r   )
r%   r.  r2  r'   Úbox_with_array2r)   Úpir+   ÚparrrR   r/   r/   r0   Útest_dt64arr_add_sub_parry  s   
ÿz2TestDatetime64Arithmetic.test_dt64arr_add_sub_parrú(ignore::pandas.errors.PerformanceWarningc                 C   s\   |}t dd|d�}dd„ tdƒD ƒ}t ||¡}t ||¡}d ddg¡}t|||d	� d S )
Nú
2012-01-01r   r   c                 S   s   g | ]}t |||ƒ‘qS r/   )r   )r…   Úir/   r/   r0   rˆ   •  s    zTTestDatetime64Arithmetic.test_dt64arr_addsub_time_objects_raises.<locals>.<listcomp>r'  r4  z*cannot subtract DatetimeArray from ndarray)rR   )r   rd   r"   r#   r(  r   )r%   r'   r&   r   Úobj1Úobj2rR   r/   r/   r0   Ú'test_dt64arr_addsub_time_objects_raisesŽ  s   þÿ	z@TestDatetime64Arithmetic.test_dt64arr_addsub_time_objects_raisesÚdt64_seriesr  údatetime64[ns]rU   Úoner¼   c                 C   sî   t  ||¡}d}tjt|d�� ||  W d   ƒ n1 sw   Y  tjt|d�� ||  W d   ƒ n1 s9w   Y  tjt|d�� ||  W d   ƒ n1 sTw   Y  tjt|d�� ||  W d   ƒ d S 1 spw   Y  d S )Nz&cannot perform .* with this index typerL   )r"   r#   rO   rP   rQ   )r%   rB  r@  r'   rH   rR   r/   r/   r0   Ú!test_dt64_mul_div_numeric_invalid¨  s   

ÿ
ÿ
ÿ
"ÿz:TestDatetime64Arithmetic.test_dt64_mul_div_numeric_invalid)$r[   r\   r]   rO   r^   Úarm_slowrô   rõ   rÿ   r   r  r
  r_   r   r  r«   r   r¨   r  r  r  r  r  r  r   r-  r    r   r   r1  r9  rë   r?  r   r   rC  r/   r/   r/   r0   rï   !  sd    



úþ
&

úþ

ýþrï   c                   @   sþ  e Zd Zej dg d¢¡dd„ ƒZdd„ Zej dg d¢¡d	d
„ ƒZdd„ Z	ej dg d¢¡dd„ ƒZ
ej d¡ej dg d‘dddif‘d‘dddif‘d‘d‘d‘d‘d‘dddif‘d‘dddif‘d‘d‘d‘d ‘d!‘d"‘d#‘d$‘d%‘d&‘d'‘d(‘d)‘d*‘d+dd,if‘d-d.d.d,d/d0œf‘d1d2d,d/d3œf‘d4d,d,d5œf‘d6‘d7d8d9if‘d7ddif‘¡ej d:d;d<g¡ej d=d2dg¡ej dg d¢¡ej d>d?d@g¡dAdB„ ƒƒƒƒƒƒZej dCe ej ¡ ejjd,dD�g¡e ejjd.dE�ej ¡ g¡e ejjd.dE�ejjd.dE�g¡g¡ej dFejejejg¡dGdH„ ƒƒZej dIdJeddKdL�edMƒedNƒedOƒedPƒgd?fdJeddQ�edRƒedSƒedTƒedUƒgdVfdWeddKdL�edXƒedYƒedZƒed[ƒgd?fdWeddQ�ed\ƒed]ƒed^ƒed_ƒgd`fg¡dadb„ ƒZdcdd„ Zd?S )eÚ"TestDatetime64DateOffsetArithmeticr  ©ÚsÚmsÚusrD   c                 C   sŒ   t tdƒtdƒgƒj |¡}t tdƒtdƒgƒj |¡}t ||¡}t ||¡}|tj d¡ }t 	||¡ tj d¡| }t 	||¡ d S )Nú20130101 9:01ú20130101 9:02z20130101 9:01:05z20130101 9:02:05rK   )
r   r   Údtr  r"   r#   rh   ÚoffsetsÚSecondr$   )r%   r'   r  rY   r.   r-   Úresult2r/   r/   r0   Ú'test_dt64arr_series_add_tick_DateOffsetÈ  s    ÿþÿþzJTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_tick_DateOffsetc                 C   sÂ   t tdƒtdƒgƒ}t tdƒtdƒgƒ}t ||¡}t ||¡}|tj d¡ }t ||¡ tj d¡ | }t ||¡ d}tj	t
|d�� tj d¡|  W d   ƒ d S 1 sZw   Y  d S )NrJ  rK  z20130101 9:00:55z20130101 9:01:55rK   ú((bad|unsupported) operand type for unaryrL   )r   r   r"   r#   rh   rM  rN  r$   rO   rP   rQ   )r%   r'   rY   r.   r-   rO  rR   r/   r/   r0   Ú'test_dt64arr_series_sub_tick_DateOffsetÜ  s   ÿ"ÿzJTestDatetime64DateOffsetArithmetic.test_dt64arr_series_sub_tick_DateOffsetÚcls_name)ÚDayÚHourÚMinuterN  ÚMilliÚMicroÚNanoc                 C   sT   t tdƒtdƒgƒ}t ||¡}ttj|ƒ}||dƒ  |dƒ|  ||dƒ  d S )NrJ  rK  rK   )r   r   r"   r#   rš   rh   rM  )r%   rS  r'   rY   Ú
offset_clsr/   r/   r0   Ú*test_dt64arr_add_sub_tick_DateOffset_smokeð  s   zMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_tick_DateOffset_smokec           
   	   C   s4  |}|dkr%t dd|d�}|tj d¡ }|d tj d¡ |d ks%J ‚t dd|dd	�}tg d
¢d|d� d¡}t ||¡}t ||¡}tj d¡t 	dd¡t
dd�fD ]B}|| }t ||¡ || }t ||¡ || }t ||¡ d ddg¡}	tjt|	d�� ||  W d   ƒ n1 s’w   Y  qUd S )NrÏ   z
2012-11-01r   r   rK   r   z2010-11-01 00:00rJ   r  )z2010-11-01 05:00z2010-11-01 06:00z2010-11-01 07:00)rB   r   rD   )Úhoursr'  zbad operand type for unary -zcannot subtract DatetimeArrayrL   )r   rh   rM  rU  r   r  r"   r#   r   r  r   r$   r(  rO   rP   rQ   )
r%   rÛ   r'   r   r“   Úoffsetr.   ÚscalarÚ	roundtriprR   r/   r/   r0   Útest_dti_add_tick_tzawareþ  s<    ýü$ÿ
ÿ€ôz<TestDatetime64DateOffsetArithmetic.test_dti_add_tick_tzawarec              
      sæ  t tdƒtdƒtdƒtdƒtdƒtdƒtdƒtdƒgƒ |¡}t ||¡}|tju r/|jd	 n|}g d
¢}t|ƒD ]·\}\}}t	di ||i¤Ž‰ |}	|dkrT|dkrTd}	t ‡ fdd„|D ƒƒ |	¡}
t |
|¡}
t 
|
|ˆ  ¡ t ‡ fdd„|D ƒƒ |	¡}
t |
|¡}
t 
|
|ˆ  ¡ t	di t|d |d … ƒ¤Ž‰ t ‡ fdd„|D ƒƒ |	¡}
t |
|¡}
t 
|
|ˆ  ¡ t ‡ fdd„|D ƒƒ |	¡}
t |
|¡}
t 
|
|ˆ  ¡ d}tjt|d�� ˆ |  W d   ƒ n1 sëw   Y  q9d S )Nú2000-01-05 00:15:00ú2000-01-31 00:23:00ræ   ú
2000-03-31ú
2000-02-29ú
2000-12-31ú
2000-05-15ú
2001-06-15r   ))Úyearsr5   )ÚmonthsrK   )r7   r   )r\  rK   )Úminutesr:   )Úsecondsr5   )ÚmicrosecondsrK   rl  rD   rI  c                    ó   g | ]}|ˆ  ‘qS r/   r/   r„   ©Úoffr/   r0   rˆ   F  r‰   zaTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsets.<locals>.<listcomp>c                    ó   g | ]}|ˆ  ‘qS r/   r/   r„   rn  r/   r0   rˆ   J  r‰   r8   c                    rm  r/   r/   r„   rn  r/   r0   rˆ   P  r‰   c                    rp  r/   r/   r„   rn  r/   r0   rˆ   T  r‰   rQ  rL   r/   )r   r   r  r"   r#   rh   r    ÚilocÚ	enumerater
   r$   ÚdictrO   rP   rQ   )r%   r'   r  ÚvecÚ	vec_itemsÚrelative_kwargsr<  Úoffset_unitÚvalueÚexp_unitr.   rR   r/   rn  r0   Ú*test_dt64arr_add_sub_relativedelta_offsets"  sP   øÿõ	
ÿ€æzMTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_relativedelta_offsetsr:  Úcls_and_kwargsÚ	YearBeginÚmonthrK   ÚYearEndÚ
MonthBeginÚMonthEndÚSemiMonthEndÚSemiMonthBeginÚWeekÚweekdayr   rÎ   ÚBusinessDayÚBDayÚ
QuarterEndÚQuarterBeginÚCustomBusinessDayÚCDayÚ
CBMonthEndÚCBMonthBeginÚBMonthBeginÚ	BMonthEndÚBusinessHourÚ
BYearBeginÚBYearEndÚBQuarterBeginÚLastWeekOfMonthr5   ÚFY5253Quarterr8   Únearest)Úqtr_with_extra_weekÚstartingMonthr„  Ú	variationÚFY5253r   )r„  r—  r˜  ÚWeekOfMonth)r„  ÚweekÚEasterr
   Údayrƒ   Ú	normalizeTFÚnr   Nz
US/Centralc              
      s°  t |tƒr
|\}}n|}i }|dkr|dv rd S ttdƒtdƒtdƒtdƒtdƒtdƒtd	ƒtd
ƒgƒ |¡ |¡}	t |	|¡}	|tj	u rJ|	j
d n|	}
ttj|ƒ}||fd|i|¤Ž‰ t‡ fdd„|
D ƒƒ |¡}t ||¡}t ||	ˆ  ¡ t |ˆ |	 ¡ t‡ fdd„|
D ƒƒ |¡}t ||¡}t ||	ˆ  ¡ t‡ fdd„|
D ƒƒ |¡}t ||¡}t |ˆ |	 ¡ d}tjt|d�� ˆ |	  W d   ƒ d S 1 sÑw   Y  d S )Nr   )rš  r“  r”  r™  ra  rb  ræ   rc  rd  re  rf  rg  rž  c                    rm  r/   r/   r„   ©r]  r/   r0   rˆ   Á  r‰   zWTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsets.<locals>.<listcomp>c                    rp  r/   r/   r„   r   r/   r0   rˆ   Æ  r‰   c                    s   g | ]}ˆ | ‘qS r/   r/   r„   r   r/   r0   rˆ   Ê  r‰   rQ  rL   )r¬   Útupler   r   r  rÔ   r"   r#   rh   r    rq  rš   rM  r$   rO   rP   rQ   )r%   r'   rŸ  rž  r{  r  r   rS  Úkwargsrt  ru  rZ  r.   rR   r/   r   r0   Ú test_dt64arr_add_sub_DateOffsets`  sL   
9
øÿò
"ÿzCTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_DateOffsetsr*   ©rŸ  )rh  rx   c           	         s  |}t dd|d�‰ t ˆ |¡}t‡ ‡‡fdd„ttˆ ƒƒD ƒƒ}t ||¡ t¡}t t	¡� ˆ|ˆƒ}W d   ƒ n1 s>w   Y  t 
||¡ t ˆ|¡‰|tju r`ˆtju r`tj|td�}t t	¡� ˆ|ˆƒ}W d   ƒ n1 suw   Y  t 
||¡ d S )Nú
2017-01-01r5   r   c                    ó   g | ]}ˆˆ | ˆ| ƒ‘qS r/   r/   ©r…   rŸ  ©r)   rx   r*   r/   r0   rˆ   æ  ó    zXTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_offset_array.<locals>.<listcomp>rU   )r   r"   r#   r   rd   rª   rf   r`   rÄ   r	   r$   rh   r    r   Úradd)	r%   r&   r'   rx   r*   r   r+   r.   Úresr/   r¨  r0   Ú!test_dt64arr_add_sub_offset_arrayÑ  s    "ÿÿzDTestDatetime64DateOffsetArithmetic.test_dt64arr_add_sub_offset_arrayzop, offset, exp, exp_freqÚ__add__r:   )ri  r7   z
2014-04-11z
2015-04-11z
2016-04-11z
2017-04-11)ri  z
2014-04-01z
2015-04-01z
2016-04-01z
2017-04-01zYS-APRÚ__sub__z
2013-09-21z
2014-09-21z
2015-09-21z
2016-09-21z
2013-10-01z
2014-10-01z
2015-10-01z
2016-10-01zYS-OCTc                 C   sd   |}t ddd|d�}t ||d¡}t||ƒ}	|	|ƒ}
t||d� d¡}t ||d¡}t |
|¡ d S )Nz01 Jan 2014z01 Jan 2017ÚYS)ÚstartÚendrB   r   FrT   rD   )r   r"   r#   rš   r   r  r$   )r%   rx   r]  ÚexpÚexp_freqrÛ   r'   r   ra   Úmthr-   r.   r/   r/   r0   Ú#test_dti_add_sub_nonzero_mth_offsetö  s   5
zFTestDatetime64DateOffsetArithmetic.test_dti_add_sub_nonzero_mth_offsetc                 C   sj   t g d¢dd�}|tdd� }t g d¢dd�}t ||¡ |tddd� }t g d	¢dd�}t ||¡ d S )
N)z2000-01-01 00:00:00.012345678z2000-01-31 00:00:00.012345678z2000-02-29 00:00:00.012345678rA  rU   rƒ   )Úmilliseconds)z2000-01-01 00:00:00.016345678z2000-01-31 00:00:00.016345678z2000-02-29 00:00:00.016345678r8   )r7   r¶  )z2000-01-02 00:00:00.016345678z2000-02-01 00:00:00.016345678z2000-03-01 00:00:00.016345678)r   r
   r"   Úassert_index_equal)r%   r)   r-   r.   r/   r/   r0   Ú-test_dt64arr_series_add_DateOffset_with_milli5  s    úúúzPTestDatetime64DateOffsetArithmetic.test_dt64arr_series_add_DateOffset_with_milli)r[   r\   r]   rO   r^   r_   rP  rR  r[  r`  rz  rë   r£  r   r    rh   rM  r€  rT  r
   r›   Úaddr   rª  Úsubr¬  r   rµ  r¸  r/   r/   r/   r0   rE  Ã  s$   
ÿ
$

=ÿ
þý
üûúùø	÷

öõ
ôóòñðïîíìëêéèçæ
åüþä%Û&Ú'Ù
(Ø
)×þ.>ÿýþ

ü÷ü÷
ü÷ü÷Þþ
1rE  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestDatetime64OverflowHandlingc                 C   sf   t tdƒgdd�}t tgƒ}t ||¡}t ||¡}ttgdd�}t ||¡}|| }t ||¡ d S )Nz
1969-12-31úM8[ns]rU   rã   )r   r   r   r"   r#   r   r$   )r%   r'   r{   r|   r.   r-   r/   r/   r0   Útest_dt64_overflow_maskingY  s   
z9TestDatetime64OverflowHandling.test_dt64_overflow_maskingc                 C   s�  t dƒ}tdƒ}tdddd�}t|ƒ}d}tjt|d�� ||  W d   ƒ n1 s+w   Y  tjt|d�� ||  W d   ƒ n1 sFw   Y  tjt|d�� ||  W d   ƒ n1 saw   Y  tjt|d�� ||  W d   ƒ n1 s|w   Y  t|jd	< tg d
¢dd�}|| }t	 
||¡ || }t	 
||¡ t|jdd …< tg d¢dd�}|| }t	 
||¡ || }t	 
|| ¡ d S )Nz
1700-01-31z
20000 Daysz
1949-09-30Ú100YErƒ   rA   úOverflow in int64 additionrL   r3   )z
2004-10-03z
2104-10-04z
2204-10-04r   rA  rU   r8   )z
91279 Daysr   r   r   útimedelta64[ns])r   r   r   r   rO   rP   ÚOverflowErrorr   rq  r"   rv   )r%   rL  Útdr)   rY   rR   r.   r«  r/   r/   r0   Útest_dt64_series_arith_overflowg  s>   
ÿ
ÿ
ÿ
ÿ
ÿz>TestDatetime64OverflowHandling.test_dt64_series_arith_overflowc              	   C   s|  t  dtjg¡ d¡}t  dtjg¡ d¡}tdƒ d¡}|| ¡ | ¡  d¡| ¡  d¡g}tdƒ d¡}|| ¡ | ¡  d¡| ¡  d¡g}d}|D ]}t	j
t|d�� ||  W d   ƒ n1 sdw   Y  qLtjj|j }	|D ]}|| }
|
d	 j|	ks‚J ‚qstjj|j }	|D ]}|| }
|
d	 j|	ks›J ‚qŒ|D ]}t	j
t|d�� ||  W d   ƒ n1 s¶w   Y  qžd S )
Nú2021-12-28 17:19rD   ú
1950-01-01rA  zdatetime64[D]ú
1980-01-01r¿  rL   r8   )rh   Úto_datetimer   Úmaxr  Úminr  r«   rf   rO   rP   rÁ  Ú_value)r%   ÚdtimaxÚdtiminÚtsnegÚts_neg_variantsÚtsposÚts_pos_variantsrR   Úvariantr.   r«  r/   r/   r0   Ú)test_datetimeindex_sub_timestamp_overflow‡  sD   üü
ÿ€
ÿ€ÿzHTestDatetime64OverflowHandling.test_datetimeindex_sub_timestamp_overflowc                 C   sÎ  t  dtjg¡ d¡}t  dtjg¡ d¡}t  ddg¡ d¡}t  ddg¡ d¡}tjj|d j }|| }|d j|ks@J ‚tjj|d j }|| }|d j|ksVJ ‚d}tjt	|d�� ||  W d   ƒ n1 snw   Y  tjt	|d�� ||  W d   ƒ n1 s‰w   Y  t  tjg¡}|t
j t
dƒ }	tjt	|d�� |	|  W d   ƒ n1 s´w   Y  t  tjg¡}
|
t
j t
dƒ }tjt	|d�� |
|  W d   ƒ d S 1 sàw   Y  d S )	NrÄ  rD   rÅ  rÆ  r8   r¿  rL   Ú1us)rh   rÇ  r   rÈ  r  rÉ  rÊ  rO   rP   rÁ  r   )r%   rË  rÌ  Úts_negÚts_posr.   r-   rR   Útminrü   Útmaxrý   r/   r/   r0   Ú-test_datetimeindex_sub_datetimeindex_overflow­  s6   
ÿ
ÿ
ÿ
"ÿzLTestDatetime64OverflowHandling.test_datetimeindex_sub_datetimeindex_overflowN)r[   r\   r]   r½  rÃ  rÒ  rØ  r/   r/   r/   r0   r»  V  s
     &r»  c                   @   sþ   e Zd Zdd„ Zdd„ Zdd„ Zej de	dƒe	d	ƒe
ge	d
ƒe	dƒe	dƒgddgge	dƒe	d	ƒe
geddd�eddd�e
gg d¢ge	ddd�e	ddd�e
geddd�e
eddd�gg d¢gg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#S )$ÚTestTimestampSeriesArithmeticc                 C   s”   t dd�}t dd�}||ƒ}||ƒ}t ||| ¡ t ||| ¡ t ||| ¡ d}tjt|d�� ||  W d   ƒ d S 1 sCw   Y  d S )Nr¼  rU   rã   r  rL   )r   r"   r$   rO   rP   rQ   )r%   r'   ÚaÚbrR   r/   r/   r0   Útest_empty_series_add_subÑ  s   


"ÿz7TestTimestampSeriesArithmetic.test_empty_series_add_subc                 C   sž   t tddd�gd ƒ}tj|jd< t tdƒtdƒtdƒgƒ}tj|jd< t tdƒtd	ƒtd
ƒgƒ}||  ||  ||  ||  ||  ||  ||  d S )NrK   r   ©rj  rk  r5   Ú20111230r¤   Ú20120103Ú20111231Ú20120102Ú20120104)r   r   r   rb   rq  r   )r%   Útd1Údt1Údt2r/   r/   r0   Útest_operators_datetimelikeÞ  s,   ýÿýÿz9TestTimestampSeriesArithmetic.test_operators_datetimelikec                 C   sj   t tddddddƒƒ}tdddddƒ}t|gd	|› d
�d�}|| }t |d¡}|jd|› d
�ks3J ‚d S )NiÉ  r8   é   é   é   r   rÎ   é   úM8[r  rU   rI  r  )r   r   r   r"   Úget_finest_unitrV   )r%   r  rX   rL  rY   r-   ry  r/   r/   r0   Útest_dt64ser_sub_datetime_dtypeÿ  s   z=TestTimestampSeriesArithmetic.test_dt64ser_sub_datetime_dtypezleft, right, op_failrÞ  r¤   rà  rá  râ  r®  Ú__rsub__rK   r   rÝ  )r­  Ú__radd__r®  rö   rT   c           	      C   sp   |}t |ƒ}t |ƒ}t||d ƒ}||vr2tjtdd�� ||ƒ W d   ƒ d S 1 s+w   Y  d S ||ƒ d S )Nz%operate|[cC]annot|unsupported operandrL   )r   rš   rO   rP   rQ   )	r%   r{   r|   Úop_failÚall_arithmetic_operatorsÚop_strÚarg1Úarg2rx   r/   r/   r0   Ú#test_operators_datetimelike_invalid  s   ÿ
"ýzATestTimestampSeriesArithmetic.test_operators_datetimelike_invalidc                 C   sŒ   t tddd�gƒj |¡}t tddd�gƒj |¡}|| }t tdƒgƒj |¡}t ||¡ || }t tdƒgƒj |¡}t ||¡ d S )Nz
2016-02-10zAmerica/Sao_PaulorT   z
2016-02-08Ú2daysz-2days)r   r   rL  r  r   r"   rv   )r%   r  Ús1Ús2r-   r.   r/   r/   r0   Útest_sub_single_tz<  s   z0TestTimestampSeriesArithmetic.test_sub_single_tzc                 C   sT   t dddd�}t|ƒ}ttdgd ƒƒ}|| }t ||¡ || }t ||¡ d S )Nz
1999-09-30r:   rÏ   r   Ú0days)r   r   r   r"   rv   )r%   r)   rY   r.   r«  r/   r/   r0   Útest_dt64tz_series_sub_dtitzG  s   z:TestTimestampSeriesArithmetic.test_dt64tz_series_sub_dtitzc                 C   sŒ   t tddddtjd�tgƒj |¡}tddddtjd�}t |d¡}t t	dƒtgƒj |¡}|| }t 
||¡ |t|ƒ }t 
||¡ d S )	Nrµ   é   é   é   )r¹   rê  rI  ro   )r   r   ÚpytzÚutcr   rL  r  r"   rì  r   rv   r   )r%   r  rY   rL  ry  r²  r-   rO  r/   r/   r0   Útest_sub_datetime_compatS  s   $z6TestTimestampSeriesArithmetic.test_sub_datetime_compatc                 C   s    t tdƒtdƒgƒ}|tj d¡ }tj d¡| }t tdƒtdƒgƒ}t ||¡ t ||¡ |tj d¡ tj d¡ }t tdƒtdƒgƒ}t ||¡ d S )NrJ  rK  rK   z20130101 9:01:00.005z20130101 9:02:00.005z20130101 9:06:00.005z20130101 9:07:00.005)r   r   rh   rM  rW  r"   rv   rV  )r%   rG  r-   rO  r.   r/   r/   r0   Ú*test_dt64_series_add_mixed_tick_DateOffset_  s   ÿÿzHTestTimestampSeriesArithmetic.test_dt64_series_add_mixed_tick_DateOffsetc                 C   s"  t ttdƒgƒj |¡}t ttgd|› d�d�}t tgd|› d�d�}t t | |¡ d}tjt	|d�� | |  W d   ƒ n1 sEw   Y  t t | |¡ tjt	|d�� | |  W d   ƒ n1 sjw   Y  t |t |¡ t t| |¡ t |t |¡ t t| |¡ d S )Nr  zdatetime64[r  rU   z-bad operand type for unary -: 'DatetimeArray'rL   )
r   r   r   rL  r  r"   rv   rO   rP   rQ   )r%   r  Údatetime_seriesÚnat_series_dtype_timestampÚsingle_nat_dtype_datetimerR   r/   r/   r0   Útest_datetime64_ops_natr  s4   ÿ
ÿÿÿÿÿÿz5TestTimestampSeriesArithmetic.test_datetime64_ops_natc           	      C   sB  d}t tdd|d�dd�}| ¡ }tj|jd< t tjddd	d
�ƒ}| ¡ }tj|jd< |jj	d u s3J ‚||d  }|j
 d ¡|d  j
 |¡}t ||¡ ||d  }|j
 d ¡|d  j
 |¡}t ||¡ |d | }|j
 d ¡|d  j
 |¡}t ||¡ |d | }|j
 d ¡|d  j
 |¡}t ||¡ ||d  }|j
 d ¡|d  j
 |¡}t ||¡ d}tjt|d�� |d |  W d   ƒ n1 sÏw   Y  ||d  }|j
 d ¡|d  j
 |¡}t ||¡ tjt|d�� |d |  W d   ƒ n	1 �sw   Y  || }|j
 d ¡| j
 |¡}t ||¡ || }|j
 d ¡| j
 |¡}t ||¡ || }|j
 d ¡| j
 |¡}t ||¡ || }|j
 d ¡| j
 |¡}t ||¡ d}tjt|d�� ||  W d   ƒ n	1 �s}w   Y  tjt|d�� ||  W d   ƒ d S 1 �sšw   Y  d S )Nrö   z2000-01-01 09:00:00rK   r   r2   r”   r5   z1 days 1 minrJ   )r   rB   r8   r   rQ  rL   r0  )r   r   r™   r   rb   rq  rh   ri   Ú_valuesrB   rL  rÔ   r"   rv   rO   rP   rQ   )	r%   r   rä  rå  rã  Útd2r-   r²  rR   r/   r/   r0   Ú*test_operators_datetimelike_with_timezones–  sh   ÿÿ
ÿ
$ÿzHTestTimestampSeriesArithmetic.test_operators_datetimelike_with_timezonesN)r[   r\   r]   rÜ  ræ  rí  rO   r^   r_   r   r   r   rõ  rù  rû  r  r  r  r	  r/   r/   r/   r0   rÙ  Ð  s<    !ýý

ýùõþ
$rÙ  c                   @   s²   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	j
 dejejg¡dd„ ƒZdd„ Zdd„ Zdd„ Ze	j
 dejejejg¡dd„ ƒZe	j
 dejejg¡dd„ ƒZdS )ÚTestDatetimeIndexArithmeticc                 C   s˜   |}t td|d�gd ƒ}tjddd�}tdd|d�}| d ¡}|| }t ||¡ || }t ||¡ ||j }t ||¡ |j| }t ||¡ d S ©Nr¥  rT   r:   ú0 daysr>   r   ©	r   r   rh   ri   r   r  r"   r·  rÐ   ©r%   r&   r   r)   r  r.   r-   r/   r/   r0   Útest_dti_add_tdiÙ  s   


z,TestDatetimeIndexArithmetic.test_dti_add_tdic                 C   sÞ   |}t td|d�gd ƒ}tjddd�}tdd|d�}| d ¡}t td|d�gd ƒ}||7 }t ||¡ tjddd�}||7 }t ||¡ t td|d�gd ƒ}||j7 }t ||¡ tjddd�}||7 }t ||¡ d S r  r  r  r/   r/   r0   Útest_dti_iadd_tdiï  s"   

z-TestDatetimeIndexArithmetic.test_dti_iadd_tdic                 C   sè   |}t td|d�gd ƒ}tjddd�}tdd|dd�}| d ¡}|| }t ||¡ d}tj	t
|d	�� ||  W d   ƒ n1 sCw   Y  ||j }t ||¡ d
}tj	t
|d	�� |j|  W d   ƒ d S 1 smw   Y  d S )Nr¥  rT   r:   r  r>   ú-1Dr  z cannot subtract .*TimedeltaArrayrL   ú0cannot subtract a datelike from a TimedeltaArray)r   r   rh   ri   r   r  r"   r·  rO   rP   rQ   rÐ   )r%   r&   r   r)   r  r.   r-   rR   r/   r/   r0   Útest_dti_sub_tdi	  s"   

ÿ
"ÿz,TestDatetimeIndexArithmetic.test_dti_sub_tdic                 C   s®  |}t td|d�gd ƒ |¡}tjdd|d�}tdd|d|d�}| d ¡}t td|d�gd ƒ |¡}||8 }t ||¡ |j	 
¡ }||8 }t ||j	¡ |j	 
¡ }	tj|	||	d� t |	|j	¡ d	}
tjt|
d
�� ||8 }W d   ƒ n1 szw   Y  t td|d�gd ƒ |¡}||j8 }t ||¡ tjt|
d
�� | j|8  _W d   ƒ n1 s±w   Y  tjt|
d
�� | j|8  _W d   ƒ d S 1 sÐw   Y  d S )Nr¥  rT   r:   r  ©r   r  r  )r   r   rB   r  )Úoutr  rL   )r   r   r  rh   ri   r   r  r"   r·  rF   r™   Úassert_datetime_array_equalr   ÚsubtractrO   rP   rQ   rÐ   r  )r%   r&   r  r   r)   r  r.   r-   rG   r  rR   r/   r/   r0   Útest_dti_isub_tdi!  s6   



ÿ
ÿ"ÿz-TestDatetimeIndexArithmetic.test_dti_isub_tdic                 C   sp   t dd|d�}|j}|| }|| }t ||¡ |}|| }|| }t ||¡ || }|| }t ||¡ d S )Nr   r   r   )r   r    r"   r·  )r%   r&   r)   rG   r-   r.   r  r/   r/   r0   Útest_dta_add_sub_indexM  s   z2TestDatetimeIndexArithmetic.test_dta_add_sub_indexc           	      C   s’  t dd|d�}t dd|d� d¡}tg d¢ƒ |¡}|| }t ||¡ || }t ||¡ d}tjt|d�� ||  W d   ƒ n1 sFw   Y  tjt|d�� ||  W d   ƒ n1 saw   Y  ||8 }t ||¡ t dd|d�}t dd|d�}d	}tjt	|d�� ||  W d   ƒ n1 s–w   Y  t
d
tjdgƒ |¡}t
ddtjgƒ |¡}tdtjtjgƒ |¡}|| }t ||¡ d S )Nr   r   r  rö   )r   r   r   rú   rL   rƒ   z$cannot add indices of unequal lengthr;  z
2012-01-03z
2012-01-02ro   )r   rÔ   r   r  r"   r·  rO   rP   rQ   r¡   r   r   rb   )	r%   r  r)   r  r.   r-   rR   Údti1r  r/   r/   r0   Útest_sub_dti_dti^  s6   
ÿ
ÿ
ÿz,TestDatetimeIndexArithmetic.test_sub_dti_dtirx   c                    s¤   t tdƒtdƒtdƒtdƒgƒ}||ƒ}g d¢‰ ‡ fdd„}ttdƒgd	 Ž D ](\}}}}	}
|||||	|
ƒ}t||||	|
d
�}|||ƒ}|||ƒ}t ||¡ q'd S )NÚ20130301z20130228 23:00:00z20130228 22:00:00z20130228 21:00:00)r@   rJ   ÚmrG  rI  c                     s   t  ttt jt| ˆ ƒƒƒ¡S rä   )r   Úsumrc   r   r  Úzip)Úargs©Ú	intervalsr/   r0   r  –  s   z_TestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_ops.<locals>.timedelta64r5   rK   )r7   r\  rj  rk  rl  )r   r   r   rd   r   r"   r$   )r%   rx   r'   rY   rH   r  ÚdrJ   r  rG  rI  ÚnptdÚpytdry   rz   r/   r!  r0   Ú.test_timedelta64_equal_timedelta_supported_opsˆ  s"   üÿ 

úzJTestDatetimeIndexArithmetic.test_timedelta64_equal_timedelta_supported_opsc                 C   s^  t ttdƒgƒ}t ttdƒgƒ}t ttgdd�}t ttgdd�}t tgdd�}t tgdd�}t || |¡ t || |¡ t | | |¡ t || |¡ t || |¡ t | | |¡ d}tjt|d�� ||  W d   ƒ n1 sxw   Y  t || |¡ t || |¡ t || |¡ t || |¡ t || |¡ t || |¡ d S )NÚ1sr  rÀ  rU   rA  zcannot subtract a datelikerL   )	r   r   r   r   r"   rv   rO   rP   rQ   )r%   Útimedelta_seriesr  Únat_series_dtype_timedeltar  r  Úsingle_nat_dtype_timedeltarR   r/   r/   r0   Ú)test_ops_nat_mixed_datetime64_timedelta64¢  sn   ÿÿ
ÿþþþ
ÿþþþþþþzETestDatetimeIndexArithmetic.test_ops_nat_mixed_datetime64_timedelta64c                 C   s¢  t dddd|d�}t dd¡}t dddd|d�}|| t ||¡fD ]}t|tƒs+J ‚t ||¡ |jdks8J ‚q"t d	ddd|d�}|| t 	||¡fD ]}t|tƒsUJ ‚t ||¡ |jdksbJ ‚qL| 
d ¡}t t dd¡t d
d¡t dd¡g¡}tg d¢dd� |¡}|| t ||¡fD ]}t ||¡ |j|jks¡J ‚q‘tg d¢dd� |¡}|| t 	||¡fD ]}t|tƒsÀJ ‚t ||¡ |j|jksÎJ ‚q·d S )Nrm   r   Ú2Dr†   )r   rB   r•   r  r8   r@   r/  ú
2010-12-31r5   )r/  z
2011-01-05z
2011-01-08r”   )r-  rm   r/  )r   r   r  r¹  r¬   r   r"   r·  rB   r  r  r    r  )r%   r  r  Údeltar²  r-   r/   r/   r0   Útest_ufunc_coercionsç  sD   
 ÿÿþÿþýz0TestDatetimeIndexArithmetic.test_ufunc_coercionsc                 C   sÚ   |}t ddg||d d� d¡}ttdd�gd ||d	 d
�}t|tdd� ||d d
�}|d |_|j|jks:J ‚|| }t ||¡ || }t ||¡ |tdd� }|j| }	t 	|	|¡ ||j }
t 	|
|¡ d S )Nz2016-06-28 05:30z2016-06-28 05:31r   )r   r•   rD   rK   )rk  r5   r8   )r¯   r•   )
r   r  r   r   r•   rV   r"   rv   rÐ   r·  )r%   r&   Únamesr   r¯   rY   r.   r-   rO  Úresult3Úresult4r/   r/   r0   Útest_dti_add_series	  s&   ÿþ


z/TestDatetimeIndexArithmetic.test_dti_add_seriesc           
         sÌ   |}|}t dd||d d�‰ |tj ¡ tjjdd�g|d d�‰tˆ ˆƒ}t t¡� ˆˆ ˆƒ}W d   ƒ n1 s:w   Y  t	‡ ‡‡fdd	„t
tˆ ƒƒD ƒ|d d
d�}	t |	|¡ t¡}	t ||	¡ d S )Nr¥  r5   r   )r   r   r•   r¤  r8   r”   c                    r¦  r/   r/   r§  r¨  r/   r0   rˆ   6	  r©  zPTestDatetimeIndexArithmetic.test_dti_addsub_offset_arraylike.<locals>.<listcomp>Úinfer)r•   rB   )r   rh   rM  r€  rT  r   r"   rÄ   r	   r   rd   rª   r#   rf   r`   r$   )
r%   r&   r0  rx   rw   Ú	other_boxr   r,   r«  r.   r/   r¨  r0   Ú test_dti_addsub_offset_arraylike%	  s   $
ÿ$ÿz<TestDatetimeIndexArithmetic.test_dti_addsub_offset_arrayliker5  c                 C   s  |}t dd|d�}t ||¡}|tj ¡ tdd�gƒ}t||ƒ}tddg|d�}	t |	|¡ 	t
¡}	t t¡� || }
W d   ƒ n1 sEw   Y  t |
|	¡ td	d
g|d�}	t |	|¡ 	t
¡}	t t¡� || }
W d   ƒ n1 suw   Y  t |
|	¡ d S )Nr¥  r5   r   rƒ   r6   z
2017-01-31z
2017-01-06rT   z
2016-12-31z
2016-12-29)r   r"   r#   rh   rM  r€  r   r   r   rf   r`   rÄ   r	   r$   )r%   r&   r'   r5  r   r)   r+   r*   r,   r.   r-   r/   r/   r0   Ú test_dti_addsub_object_arraylike;	  s"   

ÿ
ÿz<TestDatetimeIndexArithmetic.test_dti_addsub_object_arraylikeN)r[   r\   r]   r  r  r  r  r  r  rO   r^   r_   r›   r¹  rº  r&  r+  r/  r3  r   rª  r6  rh   rÃ   r   r    r7  r/   r/   r/   r0   r
  Õ  s     ,*
E'
r
  rh  )r3   r   r8   ri  )éþÿÿÿr   r5   r  rF  c           	         s˜   t tdƒtdƒtdƒtdƒtdƒgƒ |¡}t|jˆd ˆ  |jjd�}| d|j› d	�¡}t |ƒ}‡ ‡fd
d„|D ƒ}t |ƒ |j¡}t	 
||¡ d S )Nra  rb  ræ   rd  re  rþ  )Úresorë  r  c                    s    g | ]}|t jjˆˆ d � ‘qS ))rh  ri  )rh   rM  r
   r„   ©ri  rh  r/   r0   rˆ   f	  s     z%test_shift_months.<locals>.<listcomp>)r   r   r  r   rí   rF   Ú_cresorî   r  r"   r·  )	rh  ri  r  r)   ÚshiftedÚshifted_dt64ÚactualÚrawr.   r/   r:  r0   Útest_shift_monthsU	  s    ûÿø	r@  c                  C   s6  t dddd�} | j d¡}t dd„ tdƒD ƒ¡}|j|jks!J ‚t t	¡� || }W d   ƒ n1 s5w   Y  t t	¡� |d d …df |d d …df   d	d
¡}W d   ƒ n1 s^w   Y  t 
||¡ t t	¡� || t¡ }W d   ƒ n1 s€w   Y  |jdksŒJ ‚tdd„ | ¡ D ƒƒs™J ‚d S )Nz
1994-02-13Ú2Wrƒ   rA   )rƒ   r8   c                 S   s   g | ]	}t j |¡g‘qS r/   )rh   rM  rT  r§  r/   r/   r0   rˆ   q	  s    z7test_dt64arr_addsub_object_dtype_2d.<locals>.<listcomp>r   r3   r8   c                 s   s   � | ]}|j d kV  qdS )r   N)rÊ  )r…   rÂ  r/   r/   r0   Ú	<genexpr>€	  s   € z6test_dt64arr_addsub_object_dtype_2d.<locals>.<genexpr>)r   rF   Úreshaper   r    rd   Úshaper"   rÄ   r	   rN   rf   r`   rÕ   Úravel)r)   rG   r*   r-   r.   rO  r/   r/   r0   Ú#test_dt64arr_addsub_object_dtype_2dk	  s    
ÿ*ÿþrF  c                  C   óp   t g d¢dd�} | t dd¡ }t tgd dd�}t ||¡ | t dd¡ }t tgd dd�}t ||¡ d S )N©l   ÈCñE|l   ”|<Ø l   ({?M5údatetime64[ms]rU   r—   rH  r   ztimedelta64[ms]©r   r   r¨   r   r"   rv   r  ©rY   r-   r.   r/   r/   r0   Ú(test_non_nano_dt64_addsub_np_nat_scalarsƒ	  ó   rL  c                  C   sl   t g d¢dd�} | t d¡ }t tgd dd�}t ||¡ | t d¡ }t tgd dd�}t ||¡ d S )NrH  rI  rU   r—   r   rÀ  rA  rJ  rK  r/   r/   r0   Ú1test_non_nano_dt64_addsub_np_nat_scalars_unitless�	  s   rN  c                  C   rG  )N)i,0  iËZ  iÛ�  zdatetime64[s]rU   r—   r@   r   ztimedelta64[s]rJ  rK  r/   r/   r0   Ú9test_non_nano_dt64_addsub_np_nat_scalars_unsupported_unitœ	  rM  rO  )5r   r   r   Ú	itertoolsr   r   r›   Únumpyr   rO   rÿ  Úpandas._libs.tslibs.conversionr   Úpandas._libs.tslibs.offsetsr   Úpandas.errorsr	   Úpandasrh   r
   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingr"   Úpandas.corer   Úpandas.tests.arithmetic.commonr   r   r   r   r   rk   r©   rï   rE  r»  rÙ  r
  r^   r_   r@  rF  rL  rN  rO  r/   r/   r/   r0   Ú<module>   sZ   ,p k      %   z     