o
    EÜh¸q  ã                   @  sÎ   d Z ddlmZ ddlmZ ddlZzddlmZ W n ey%   dZY nw ddl	Z
ddlZddlmZ ddlmZ ddlZddlmZ ddlmZmZ G d	d
„ d
ƒZG dd„ dƒZG dd„ dƒZdd„ ZdS )z
Tests for DatetimeArray
é    )Úannotations)Ú	timedeltaN)ÚZoneInfo)Ú
tz_compare)ÚDatetimeTZDtype)ÚDatetimeArrayÚTimedeltaArrayc                   @  sR  e Zd Zejg d¢ddd„ ƒZejdd„ ƒZejdd„ ƒZejd	d
„ ƒZdd„ Z	ej
 dejej ¡dd„ ƒZdd„ Zdd„ Zdd„ Zej
 d¡dd„ ƒZdd„ Zdd„ Zdd„ Zej
 dg d ¢¡d!d"„ ƒZd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zej
 d+ed,d-ejd,d-e  !d,d.¡e  !d/d0¡ej" #d1¡ej" $d,¡g¡d2d3„ ƒZ%d4d5„ Z&d6d7„ Z'd8S )9ÚTestNonNano)ÚsÚmsÚus)Úparamsc                 C  s   |j S )z)Fixture returning parametrized time units)Zparam)ÚselfZrequest© r   úBlib/python3.10/site-packages/pandas/tests/arrays/test_datetimes.pyÚunit   s   zTestNonNano.unitc                 C  s*   |}|d u rt  d|› d¡S t||dS )Nzdatetime64[ú])r   Útz)ÚnpÚdtyper   )r   r   Útz_naive_fixturer   r   r   r   r   $   s   zTestNonNano.dtypec                 C  sz   t |dd ƒ}tjddd|d}|d u r t |¡ d|› d¡}nt | d¡ d ¡¡ d|› d¡}tj	||d	}||fS )
Nr   ú
2016-01-01é7   ÚD©ÚperiodsÚfreqr   úM8[r   ÚUTC©r   )
ÚgetattrÚpdÚ
date_ranger   ÚasarrayÚastypeÚ
tz_convertÚtz_localizer   Ú_simple_new)r   r   r   r   ÚdtiÚarrÚdtar   r   r   Údta_dti,   s   
ÿzTestNonNano.dta_dtic                 C  s   |\}}|S ©Nr   )r   r+   r*   r(   r   r   r   r*   ;   s   zTestNonNano.dtac                 C  s‚   t jdt jd d|› d¡}tj||d}|j|ksJ ‚|d j|ks&J ‚t|j	|d j	ƒs1J ‚|d |d d… k 
¡ s?J ‚d S )Né   r   r   r   r   é   )r   ÚarangeÚint64Úviewr   r'   r   r   r   r   Úall)r   r   r   r)   r*   r   r   r   Útest_non_nano@   s    zTestNonNano.test_non_nanoÚfieldc           	      C  s>   |\}}||k  ¡ sJ ‚t||ƒ}t|j|ƒ}t ||¡ d S r,   )r2   r    Ú_dataÚtmÚassert_numpy_array_equal)	r   r   r4   r   r+   r*   r(   ÚresÚexpectedr   r   r   Útest_fieldsI   s
   
zTestNonNano.test_fieldsc                 C  s†   t jdddd}t |¡ d|› d¡}tj||jd}|jr!J ‚t | 	¡ ¡ d|› d¡}tj||jd}| 	¡ }t
 ||¡ d S )Nz2016-01-01 06:00:00r   r   ©r   r   r   r   r   )r!   r"   r   r#   r$   r   r'   r   Zis_normalizedÚ	normalizer6   Úassert_extension_array_equal)r   r   r(   r)   r*   Úexpr9   r8   r   r   r   Útest_normalizeU   s   
zTestNonNano.test_normalizec                 C  s   t jdt jd d|› d¡}t|dƒ}tj||d}|j|ks"J ‚tddƒ}tj	t
dd tj||d W d   ƒ d S 1 sAw   Y  d S )	Nr-   r   r   r   r   ÚnsÚ ©Úmatch)r   r/   r0   r1   r   r   r'   r   ÚpytestÚraisesÚAssertionError)r   r   r)   r   r*   Zwrongr   r   r   Útest_simple_new_requires_matchd   s   

"ÿz*TestNonNano.test_simple_new_requires_matchc                 C  sj   t jdddd}t |¡ d|› d¡}tj||jd}| ¡ }|j	|j	ks(J ‚|| ¡  
|¡ks3J ‚d S )Nr   r   r   r;   r   r   r   )r!   r"   r   r#   r$   r   r'   r   ZstdÚ_cresoZfloor)r   r   r(   r)   r*   r8   r   r   r   Útest_std_non_nanoo   s   zTestNonNano.test_std_non_nanoz.ignore:Converting to PeriodArray.*:UserWarningc                 C  s.   |\}}|  d¡}|j  d¡}t ||¡ d S )Nr   )Ú	to_periodr5   r6   r=   ©r   r+   r*   r(   Úresultr9   r   r   r   Útest_to_periodz   s   
zTestNonNano.test_to_periodc                 C  sV   t t|ƒƒ}|d }t|ƒtju sJ ‚|j|jksJ ‚|j|jks#J ‚||ks)J ‚d S )Nr   )ÚnextÚiterÚtyper!   Ú	TimestampÚ_valuerH   )r   r*   r8   r9   r   r   r   Ú	test_iter‚   s   zTestNonNano.test_iterc                   sD   ˆ   t¡}t‡ fdd„|D ƒƒsJ ‚tdd„ t|ˆ ƒD ƒƒs J ‚d S )Nc                 3  s    | ]	}|j ˆ j kV  qd S r,   )rH   )Ú.0Úx©r*   r   r   Ú	<genexpr>   ó   € z1TestNonNano.test_astype_object.<locals>.<genexpr>c                 s  s    | ]	\}}||kV  qd S r,   r   )rT   rU   Úyr   r   r   rW   Ž   rX   )r$   Úobjectr2   Úzip)r   r*   rL   r   rV   r   Útest_astype_object‹   s   
 zTestNonNano.test_astype_objectc                 C  s(   |\}}|  ¡ }|  ¡ }t ||¡ d S r,   )Úto_pydatetimer6   r7   rK   r   r   r   Útest_to_pydatetime   s   zTestNonNano.test_to_pydatetimeÚmeth)ÚtimeZtimetzÚdatec                 C  s,   |\}}t ||ƒ}t ||ƒ}t ||¡ d S r,   )r    r6   r7   )r   r+   r_   r*   r(   rL   r9   r   r   r   Útest_time_date—   s   

zTestNonNano.test_time_datec                 C  s*   |\}}|  ¡ }|j  ¡ }t ||¡ d S r,   )Z_format_native_typesr5   r6   r7   )r   r   r   r+   r*   r(   r8   r>   r   r   r   Útest_format_native_typesŸ   s   
z$TestNonNano.test_format_native_typesc                 C  s0   |\}}t |ƒt |jƒ dd|› ¡ksJ ‚d S )Nz[nsú[)Úreprr5   Úreplace)r   r+   r   r*   r(   r   r   r   Ú	test_repr¨   s   (zTestNonNano.test_reprc                 C  s@  |}t  t j¡}t j|j|jd |jgt jd}t  |¡ d¡}| d¡}tj||j	d}tj||j	d}|t
ju rBt  g d¢¡}	n$|t
ju rOt  g d¢¡}	n|t
jt
jfv r_t  g d¢¡}	nt  g d¢¡}	|||ƒ}
t |
|	¡ ||d |ƒ}
t |
|	¡ |t
jt
jfvrž||j|jƒ}t |dd … |	dd …  ¡ d S d S )	Nr.   r   úM8[ns]úM8[s])FFF)TTT)FFT)FTF)r   Úiinfor0   ÚarrayÚminÚmaxr1   r   r'   r   ÚoperatorÚeqÚneÚltÚler6   r7   Ú_ndarray)r   Úcomparison_opÚoprj   Zvalsr)   Zarr2ÚleftÚrightr9   rL   Znp_resr   r   r   Ú#test_compare_mismatched_resolutions®   s,    



"üz/TestNonNano.test_compare_mismatched_resolutionsc                 C  sJ   t jdd}t jddd| }|j d¡}|| d¡ }|jdks#J ‚d S )Nr.   )Zmicrosecondsr   é   ©r   r   )r!   Ú	Timedeltar"   r5   Úas_unitr   )r   Útdr(   r*   r8   r   r   r   Ú(test_add_mismatched_reso_doesnt_downcastÑ   s
   z4TestNonNano.test_add_mismatched_reso_doesnt_downcastÚscalaré   )ZhoursÚhi Ým r   éx   c           	      C  s‚   |\}}t  |¡}t |j|j¡}|| j |¡}|| }t ||¡ || }t ||¡ || j |¡}|| }t ||¡ d S r,   )r!   r{   r6   Zget_finest_unitr   r5   r|   r=   )	r   r+   r   r*   r(   r}   Zexp_unitr9   rL   r   r   r   Ú-test_add_timedeltalike_scalar_mismatched_resoÜ   s   
z9TestNonNano.test_add_timedeltalike_scalar_mismatched_resoc                 C  sb   t jddd}|j d¡}|d  d¡}|| }||d  j d¡}|jdks)J ‚t ||¡ d S )Nr   ry   rz   r   r   r
   zm8[us])r!   r"   r5   r|   r   r6   r=   )r   r(   r*   ÚtsrL   r9   r   r   r   Ú%test_sub_datetimelike_scalar_mismatchø   s   z1TestNonNano.test_sub_datetimelike_scalar_mismatchc                 C  sr   t jddd}|j d¡}| d¡}|| }tjg d¢dd}tj||jd}t	 
||¡ || }t	 
||¡ d S )	Nr   ry   rz   r
   r   )r   r   r   zm8[ms]r   )r!   r"   r5   r|   r   rk   r   r'   r   r6   r=   )r   r(   rv   rw   rL   Z
exp_valuesr9   Zresult2r   r   r   Ú!test_sub_datetime64_reso_mismatch  s   
þz-TestNonNano.test_sub_datetime64_reso_mismatchN)(Ú__name__Ú
__module__Ú__qualname__rD   Zfixturer   r   r+   r*   r3   ÚmarkÚparametrizer   Z
_field_opsZ	_bool_opsr:   r?   rG   rI   ÚfilterwarningsrM   rS   r\   r^   rb   rc   rg   rx   r~   r   r!   r{   r   Útimedelta64ZoffsetsZMinuteZHourrƒ   r…   r†   r   r   r   r   r	      sR    



	ÿ
	

	
	#




úþ
r	   c                   @  s   e Zd Zdd„ ZdS )ÚTestDatetimeArrayComparisonsc           	      C  sÐ   |}t jdddd d}|j}|j|jksJ ‚|j|jksJ ‚|}tjt|ƒtd}|j	dv r1| }|||ƒ}t
 ||¡ |t |¡t|ƒt|ƒ| t¡fD ]}|||ƒ}t
 ||¡ |||ƒ}t
 ||¡ qMd S )Nz	2016-01-1ZMSé	   )r   r   r   r   )rp   Úgtrq   )r!   r"   r5   r   r   r   ZonesÚlenÚboolr‡   r6   r7   rk   ÚlistÚtupler$   rZ   )	r   rt   ru   r(   r)   rw   r9   rL   Úotherr   r   r   Útest_cmp_dt64_arraylike_tznaive  s,   

û

õz<TestDatetimeArrayComparisons.test_cmp_dt64_arraylike_tznaiveN)r‡   rˆ   r‰   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g¡ej 	dg d¢¡dd„ ƒƒZ
ej 	d	eejejddg¡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¡ ¡ g¡d d!„ ƒZd"d#„ Zd$d%„ Zej 	d&d'd(g¡d)d*„ ƒZd+d,„ Zd-d.„ Zd/d0„ Zej 	d1d2d3g¡d4d5„ ƒZ ej 	d1d2d3g¡d6d7„ ƒZ!ej 	dd8e d8¡d9e "d:¡ej#d;d<d=ej$d>d?d@dA dB dC e $d>¡ %dD¡dA dB dC e d¡ &dE¡g	¡ej 	d1d2d3g¡dFdG„ ƒƒZ'dHdI„ Z(dJdK„ Z)dLdM„ Z*dNdO„ Z+dPdQgZ,e-dRurze-dPƒZ.W n
 e/y   Y nw e, 0e.¡ ej 	dSe,¡dTdU„ ƒZ1ej 	dVg dW¢¡dXdY„ ƒZ2ej 	dZg d[¢¡d\d]„ ƒZ3ej 	dZg d^¢¡d_d`„ ƒZ4dRS )aÚTestDatetimeArrayc                 C  s”   t  d¡}| d¡}tj|gdd}| d¡| d¡jk ¡ s!J ‚| d¡}|d |ks.J ‚tj|gdd}| d¡|j	k ¡ sBJ ‚t
 ||¡ d S )	Nz1677-09-21 00:12:43.145225r   rh   r   Úi8r@   zM8[ms]r   )r!   rQ   r|   r   Ú_from_sequencer1   Úvaluer2   r$   rR   r6   Úassert_datetime_array_equal)r   r„   Útargetr*   rL   r9   r   r   r   Ú test_astype_ns_to_ms_near_bounds8  s   


z2TestDatetimeArray.test_astype_ns_to_ms_near_boundsc                 C  s\   t jddd}| d¡}|jdksJ ‚|j}| d¡}|jdks"J ‚t|t jjjƒs,J ‚d S )Nr   ry   rz   ri   )	r!   r"   r$   r   r5   Ú
isinstanceÚcoreZarraysr   )r   r(   r8   r*   r   r   r   Útest_astype_non_nano_tznaiveH  s   

z.TestDatetimeArray.test_astype_non_nano_tznaivec                 C  sž   t jdddd}| d¡}|jdksJ ‚|j}| d¡}|jdks#J ‚| d¡}|jdks/J ‚t ||¡r7J ‚|jddd}|jdksEJ ‚t ||¡sMJ ‚d S )	Nr   ry   r   ©r   r   zM8[s, US/Pacific]z
M8[s, UTC]F©Úcopy)r!   r"   r$   r   r5   r6   Zshares_memory)r   r(   r8   r*   Úres2Úres3r   r   r   Útest_astype_non_nano_tzawareS  s   


z.TestDatetimeArray.test_astype_non_nano_tzawarec                 C  s:   t jdgtddd}|jtdddd}||u sJ ‚d S )NÚ2000ú
US/Central©r   r   Fr¢   )r   r™   r   r$   )r   r)   rL   r   r   r   Útest_astype_to_samef  s
   ÿz%TestDatetimeArray.test_astype_to_samer   údatetime64[ns]údatetime64[ns, UTC]r•   )r«   r¬   zdatetime64[ns, CET]c                 C  s®   t jddg|d}| ¡ }d}|dk|dkA rd}|rC|dkr"d}nd}tjt|d	 | |¡ W d   ƒ d S 1 s<w   Y  d S | |¡}t j|d d …< t 	||¡ d S )
Nr.   r€   r   Fr«   Tz<Use obj.tz_localize instead or series.dt.tz_localize insteadz1from timezone-aware dtype to timezone-naive dtyperB   )
r!   ÚSeriesr£   rD   rE   Ú	TypeErrorr$   ÚNaTr6   Úassert_series_equal)r   r   r•   ZserZorigÚerrÚmsgÚtr   r   r   Útest_astype_copiesm  s   "ÿ
z$TestDatetimeArray.test_astype_copiesZuint32Zuint64c                 C  s’   t jt d¡t d¡gdd}t |¡tjkr6tjt	dd | 
|¡ W d   ƒ d S 1 s/w   Y  d S | 
|¡}|j d¡}t ||¡ d S )Nr§   Z2001rh   r   zDo obj.astype\('int64'\)rB   r˜   )r   r™   r!   rQ   r   r   r0   rD   rE   r®   r$   rs   r1   r6   r7   )r   r   r)   rL   r9   r   r   r   Útest_astype_int‡  s   ÿ
ÿþ
z!TestDatetimeArray.test_astype_intc                 C  s@   t jddd}|j}| d¡}|jdksJ ‚||k ¡ sJ ‚d S )Nr   é   rz   zSparse[datetime64[ns]])r!   r"   r5   r$   r   r2   )r   r(   r*   rL   r   r   r   Útest_astype_to_sparse_dt64–  s
   
z,TestDatetimeArray.test_astype_to_sparse_dt64c                 C  sP   t jdgtddd}tjtdd d|_W d   ƒ d S 1 s!w   Y  d S )Nr§   r¨   r©   r   r&   rB   r   )r   r™   r   rD   rE   ÚAttributeErrorr   )r   r)   r   r   r   Útest_tz_setter_raisesŸ  s   ÿ"ÿz'TestDatetimeArray.test_tz_setter_raisesc           	      C  s¦   |}t jg d¢dd}|d u r|jnt|d}tj||d}| ¡ }t d¡ 	|¡}t
| 	d ¡ƒ}||d< ||d< t ||¡ ||d< ||g|d d…< t ||¡ d S )	N©r.   r€   ry   rh   r   r©   z2020-09-08 16:50r   r.   r€   )r   rk   r   r   r   r™   r£   r!   rQ   r&   Ústrr6   Úassert_equal)	r   r   r   Údatar   r)   r9   r„   Úsetterr   r   r   Útest_setitem_str_impute_tz¦  s   z,TestDatetimeArray.test_setitem_str_impute_tzc                 C  s”   t jg d¢dd}tj|dtddd}tjtdd	 t 	d
¡|d< W d   ƒ n1 s-w   Y  tj	d
dd}||d< |d | 
d¡ksHJ ‚d S )Nrº   rh   r   Fr¨   r©   )r£   r   z$Cannot compare tz-naive and tz-awarerB   r§   r   ú
US/Eastern)r   rk   r   r™   r   rD   rE   r®   r!   rQ   r%   )r   r½   r)   r„   r   r   r   Ú test_setitem_different_tz_raises½  s   ÿÿz2TestDatetimeArray.test_setitem_different_tz_raisesc                 C  s8   t jdddddj}t jddd|d< |jd u sJ ‚d S )Nr§   r€   r   r¨   r   r©   r   )r!   r"   r5   rQ   r   )r   Úar   r   r   Útest_setitem_clears_freqË  s   z*TestDatetimeArray.test_setitem_clears_freqÚobjz
2021-01-01c                 C  s2   t jdddd}|j}||d< |d |ksJ ‚d S )Nr§   r€   r   r;   r   )r!   r"   r5   )r   rÄ   r(   r)   r   r   r   Útest_setitem_objectsÐ  s   
z&TestDatetimeArray.test_setitem_objectsc                 C  sH   t jddddd}|j}| ddg¡}tj|j|jd}t 	||¡ d S )Nr§   r€   r   r¨   r   r.   r   )
r!   r"   r5   Úrepeatr   r™   Zasi8r   r6   r¼   )r   r(   r)   Zrepeatedr9   r   r   r   Útest_repeat_preserves_tzà  s
   z*TestDatetimeArray.test_repeat_preserves_tzc                 C  s„   t jddddd}|j ddg¡}| ¡ }|j |¡sJ ‚t j|d< |jd	d
}t jg d¢|d |d t jgdd}t	 
||¡ d S )Nr§   r€   r   r¨   r   r¶   ry   éþÿÿÿF)Zdropna)r¶   r€   r.   r   r.   Úcount)ÚindexÚname)r!   r"   r5   rÆ   Zvalue_countsrÊ   Zequalsr¯   r­   r6   r°   )r   r(   r)   rL   r9   r   r   r   Útest_value_counts_preserves_tzê  s   
$z0TestDatetimeArray.test_value_counts_preserves_tzÚmethodÚpadÚbackfillc                 C  s¸   t jddddd}tj|dd}t j|d< |d	kr|d
 n|d }tj|d |d
 ||d |d gtddd}|j|d}t ||¡ |d t ju sMJ ‚|d t j	dddksZJ ‚d S )Nz
2000-01-01r-   r   r¨   r   Tr¢   r€   rÎ   r.   ry   r   r¶   r©   r   ©rÍ   z
2000-01-03)
r!   r"   r   r™   r¯   r   Ú_pad_or_backfillr6   r=   rQ   )r   rÍ   r(   r)   Zfill_valr9   rL   r   r   r   Útest_fillna_preserves_tzø  s   
þz*TestDatetimeArray.test_fillna_preserves_tzc                 C  s\  t jdddd}|j dd¡ ¡ }t j|d< t j|d< |jd	d
}| ¡ }|d |d< t ||¡ |jdd
}| ¡ }| ¡ }|d |d< |d |d< t ||¡ | 	|j
jdd¡}|j
jd scJ ‚|j
jd rkJ ‚t ||¡ |jd	d
}t ||¡ |jdd
}	t |	|¡ t  |¡}
|
 ¡ }t  |¡}t ||¡ |
 ¡ }t  |¡}t ||¡ d S )Nr   é   ú
US/Pacificr¡   ry   r€   )r   r.   )r.   r   rÎ   rÐ   )r   r   rÏ   )r€   r   )r.   r.   ÚF)ZorderZF_CONTIGUOUSZC_CONTIGUOUS)r!   r"   r5   Úreshaper£   r¯   rÑ   r6   r=   Z_from_backing_datars   ÚflagsZ	DataFrameZffillZassert_frame_equalZbfill)r   r(   r*   Zres1Z	expected1r¤   Z	expected2Zdta2r¥   Zres4Zdfr8   r9   r   r   r   Útest_fillna_2d  s:   




z TestDatetimeArray.test_fillna_2dc                 C  sœ   d}t jdd|dj}t |¡}tjt jd|dt jd|dgtd}t 	||¡ tj|td}t 	||¡ tj|d	d}tjd
dgd	d}t 	||¡ d S )Nr¨   Ú2017r€   r¡   ú2017-01-01T00:00:00r©   ú2017-01-02T00:00:00r   rh   z2017-01-01T06:00:00z2017-01-02T06:00:00)
r!   r"   r5   r   r#   rk   rQ   rZ   r6   r7   )r   r   r½   rL   r9   r   r   r   Útest_array_interface_tz4  s"   
þûÿz)TestDatetimeArray.test_array_interface_tzc                 C  st   t jdddj}tjddgdd}t |¡}t ||¡ tj|td}tjt  	d¡t  	d¡gtd}t ||¡ d S )NrÙ   r€   rz   rÚ   rÛ   r«   r   )
r!   r"   r5   r   rk   r#   r6   r7   rZ   rQ   )r   r½   r9   rL   r   r   r   Útest_array_interfaceL  s   ÿ
þz&TestDatetimeArray.test_array_interfacerÊ   TFc                 C  s¦   t jdddd d d }tj|ddj d	¡}|rt |¡}| |d
 ¡}| |d
  d¡¡}||ks6J ‚| |d
d… ¡}| |d
d…  d¡¡}t	 
||¡ d S )Né
   r˜   r   é   é  é Êš;r   ©r   ú
Asia/Tokyor€   r   rÓ   )r   r/   r!   ÚDatetimeIndexr5   r&   ÚIndexÚsearchsortedr%   r6   r¼   )r   rÊ   r½   r)   r9   rL   r   r   r   Útest_searchsorted_different_tz\  s   
z0TestDatetimeArray.test_searchsorted_different_tzc                 C  s4  t jdddd d d }tj|ddj}|rt |¡}| d	¡}d
}tjt	|d | 
|d ¡ W d   ƒ n1 s<w   Y  tjt	|d | 
|¡ W d   ƒ n1 sXw   Y  tjt	|d | 
|d ¡ W d   ƒ n1 svw   Y  tjt	|d | 
|¡ W d   ƒ d S 1 s“w   Y  d S )NrÞ   r˜   r   rß   rà   rá   r   râ   rã   z:Cannot compare tz-naive and tz-aware datetime-like objectsrB   r   )r   r/   r!   rä   r5   rå   r&   rD   rE   r®   ræ   )r   rÊ   r½   r)   Zmismatchr²   r   r   r   Ú$test_searchsorted_tzawareness_compatk  s$   

ÿÿÿ"ÿz6TestDatetimeArray.test_searchsorted_tzawareness_compatr.   g      ð?r¯   r€   )ZdaysÚinvalidrÞ   r˜   r   rß   rà   rá   ztimedelta64[ns]r   c                 C  s„   t jdddd d d }tj|ddj}|rt |¡}d	 d
dg¡}tjt	|d | 
|¡ W d   ƒ d S 1 s;w   Y  d S )NrÞ   r˜   r   rß   rà   rá   r   râ   ú|z0searchsorted requires compatible dtype or scalarz<value should be a 'Timestamp', 'NaT', or array of those. GotrB   )r   r/   r!   rä   r5   rå   ÚjoinrD   rE   r®   ræ   )r   r•   rÊ   r½   r)   r²   r   r   r   Útest_searchsorted_invalid_types  s   
þÿ"ÿz1TestDatetimeArray.test_searchsorted_invalid_typesc                 C  s®   t jddd}|j}t t |jd¡¡}|d }|| ¡ | 	¡ fD ]}|j
d|d}t ||¡ q!| d¡}| d¡}|d }|| ¡ fD ]}|j
d|d}t ||¡ qEd S )Nr   ry   rz   r.   éÿÿÿÿ©Ú
fill_valuer   )r!   r"   r5   r   r™   r   Zrollrs   r]   Úto_datetime64Úshiftr6   r›   r&   )r   r(   r*   r9   Úfvrï   rL   r   r   r   Útest_shift_fill_value  s   

þz'TestDatetimeArray.test_shift_fill_valuec              	   C  sà   t jddd}|j}|d  d¡}|| ¡ fD ] }tjtdd |jd|d	 W d   ƒ n1 s2w   Y  q| d¡}|d  d ¡}|| ¡ | 	¡ fD ] }tjtdd |jd|d	 W d   ƒ n1 shw   Y  qMd S )
Nr   ry   rz   rí   r   zCannot comparerB   r.   rî   )
r!   r"   r5   r&   r]   rD   rE   r®   rñ   rð   )r   r(   r*   rò   ré   r   r   r   Ú%test_shift_value_tzawareness_mismatch¯  s    ÿ€
ÿ€ÿz7TestDatetimeArray.test_shift_value_tzawareness_mismatchc                 C  sV   t jdddd}|j}t jddd}|jd|d	}|jd| d¡d	}t ||¡ d S )
Nr   ry   r   r¡   z2020-10-18 18:44rÔ   r©   r.   rî   )r!   r"   r5   rQ   rñ   r%   r6   r¼   )r   r(   r*   rï   rL   r9   r   r   r   Útest_shift_requires_tzmatch¿  s   z-TestDatetimeArray.test_shift_requires_tzmatchc                 C  sd   t jdddd}|j dd¡}| d ¡}| ¡  d ¡ |j¡}t ||¡ | d¡}t ||¡ d S )Nz
1994-05-12é   rÔ   r¡   ry   r¶   )	r!   r"   r5   rÖ   r&   ZravelÚshaper6   r›   )r   r(   r*   rL   r9   Z	roundtripr   r   r   Útest_tz_localize_t2dË  s   

z&TestDatetimeArray.test_tz_localize_t2drÀ   zdateutil/US/EasternNr   c                 C  s¨   t jg d¢t jd}|d9 }t |¡ d¡ |¡}|d }t|ƒd }t|ƒt|ƒks-J ‚| 	¡ | 	¡ ks7J ‚| 
t¡d }t|ƒt|ƒksHJ ‚| 	¡ | 	¡ ksRJ ‚d S )N)i@¶NiP¶Ni`"¶Nip0¶Nr   rá   r   r€   )r   rk   r0   r   r™   r&   r%   r“   r»   Z	utcoffsetr$   rZ   )r   r   Zutc_valsr*   rv   rw   Zright2r   r   r   Útest_iter_zoneinfo_foldâ  s   
ÿz)TestDatetimeArray.test_iter_zoneinfo_foldzfreq, freq_depr))Ú2MEZ2M)Ú2SMEZ2SM)rû   Z2sm)Z2QEZ2Q)ú2QE-SEPz2Q-SEP)Ú1YEZ1Y)ú2YE-MARz2Y-MAR)rý   Z1A)rþ   z2A-MAR)rú   Z2m)rü   z2q-sep)rþ   z2a-mar)Z2YEZ2yc                 C  s†   d|dd … › d}d|dd … › d t jdd|d}tjt|d	 t jdd|d}W d   ƒ n1 s6w   Y  t ||¡ d S )
Nú'r.   z$' is deprecated and will be removed z!in a future version, please use 'ú
' instead.ú1/1/2000r¶   r;   rB   )r!   r"   r6   Úassert_produces_warningÚFutureWarningÚassert_index_equal)r   r   Ú	freq_deprÚdepr_msgr9   rL   r   r   r   Ú,test_date_range_frequency_M_Q_Y_A_deprecatedý  s   ÿz>TestDatetimeArray.test_date_range_frequency_M_Q_Y_A_deprecatedr  )Z2HZ2CBHZ2MINZ2SZ2mSZ2Usc                 C  óŽ   d|dd … › d}d|  ¡ dd … › d tjdd|  ¡ d}tjt|d	 tjdd|d}W d   ƒ n1 s:w   Y  t ||¡ d S )
Nrÿ   r.   ú)' is deprecated and will be removed in a zfuture version. Please use 'r   r  r¶   r;   rB   )Úlowerr!   r"   r6   r  r  r  ©r   r  r  r9   rL   r   r   r   Ú.test_date_range_uppercase_frequency_deprecated  s   ÿz@TestDatetimeArray.test_date_range_uppercase_frequency_deprecated)
z2ye-marZ2ysZ2qez2qs-febZ2bqsZ2smsZ2bmsZ2cbmeZ2meZ2wc                 C  r  )
Nrÿ   r.   r	  zfuture version, please use 'r   r  r¶   r;   rB   )Úupperr!   r"   r6   r  r  r  r  r   r   r   Ú.test_date_range_lowercase_frequency_deprecated$  s   ÿz@TestDatetimeArray.test_date_range_lowercase_frequency_deprecated)5r‡   rˆ   r‰   r   r    r¦   rª   rD   rŠ   r‹   r´   Úintr   Zint32r0   rµ   r·   r¹   r¿   rÁ   rÃ   r!   rQ   rð   r]   rÅ   rÇ   rÌ   rÒ   rØ   rÜ   rÝ   rç   rè   r   r{   r/   r1   rJ   rì   ró   rô   rõ   rø   Zeastsr   r   ÚKeyErrorÚappendrù   r  r  r  r   r   r   r   r—   7  sš    ÿ
	ýþ


)


÷þ
þ

þ



þr—   c                  C  sœ   t jg d¢dd} d}tjt|d | jdd W d   ƒ n1 s#w   Y  | | d  }tjt|d |jdd W d   ƒ d S 1 sGw   Y  d S )	N)r   r€   r.   rh   r   z+call pd.factorize\(obj, sort=True\) insteadrB   T)Úsortr   )r   r™   rD   rE   ÚNotImplementedErrorZ	factorize)r*   r²   Ztdar   r   r   Ú test_factorize_sort_without_freq>  s   ÿ"ÿr  )Ú__doc__Z
__future__r   Zdatetimer   rn   Zzoneinfor   ÚImportErrorZnumpyr   rD   Zpandas._libs.tslibsr   Zpandas.core.dtypes.dtypesr   Zpandasr!   Zpandas._testingZ_testingr6   Zpandas.core.arraysr   r   r	   rŽ   r—   r  r   r   r   r   Ú<module>   s2    þ v$    