o
    Û­j¸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)Úparam)ÚselfÚrequest© r   ú_/var/www/html/CropPilot/venv/lib/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.   )r4   r"   Ú_dataÚtmÚassert_numpy_array_equal)	r   r   r6   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   Úis_normalizedÚ	normalizer8   Úassert_extension_array_equal)r   r   r*   r+   r,   Úexpr;   r:   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   r1   r2   r3   r   r   r)   r   ÚpytestÚraisesÚAssertionError)r   r   r+   r   r,   Ú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   ÚstdÚ_cresoÚfloor)r   r   r*   r+   r,   r:   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_periodr7   r8   r@   ©r   r-   r,   r*   Úresultr;   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Ú_valuerM   )r   r,   r:   r;   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.   )rM   )Ú.0Úx©r,   r   r   Ú	<genexpr>�   ó   € z1TestNonNano.test_astype_object.<locals>.<genexpr>c                 s  s   � | ]	\}}||kV  qd S r.   r   )rZ   r[   Úyr   r   r   r]   Ž   r^   )r&   Úobjectr4   Úzip)r   r,   rR   r   r\   r   Útest_astype_object‹   s   
 zTestNonNano.test_astype_objectc                 C  s(   |\}}|  ¡ }|  ¡ }t ||¡ d S r.   )Úto_pydatetimer8   r9   rQ   r   r   r   Útest_to_pydatetime�   s   zTestNonNano.test_to_pydatetimeÚmeth)ÚtimeÚtimetzÚdatec                 C  s,   |\}}t ||ƒ}t ||ƒ}t ||¡ d S r.   )r"   r8   r9   )r   r-   re   r,   r*   rR   r;   r   r   r   Útest_time_date—   s   

zTestNonNano.test_time_datec                 C  s*   |\}}|  ¡ }|j  ¡ }t ||¡ d S r.   )Ú_format_native_typesr7   r8   r9   )r   r   r   r-   r,   r*   r:   rA   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ú[)Úreprr7   Ú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 )	Nr0   r!   úM8[ns]úM8[s])FFF)TTT)FFT)FTF)r   Úiinfor2   ÚarrayÚminÚmaxr3   r   r)   r   ÚoperatorÚeqÚneÚltÚler8   r9   Ú_ndarray)r   Úcomparison_opÚoprr   Úvalsr+   Úarr2ÚleftÚrightr;   rR   Ú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 )Nr0   )Úmicrosecondsr   é   ©r   r   )r#   Ú	Timedeltar$   r7   Úas_unitr   )r   Útdr*   r,   r:   r   r   r   Ú(test_add_mismatched_reso_doesnt_downcastÑ   s
   z4TestNonNano.test_add_mismatched_reso_doesnt_downcastÚscalaré   )ÚhoursÚhi Ým r   éx   c           	      C  s‚   |\}}t  |¡}t |j|j¡}|| j |¡}|| }t ||¡ || }t ||¡ || j |¡}|| }t ||¡ d S r.   )r#   r‡   r8   Úget_finest_unitr   r7   rˆ   r@   )	r   r-   r‹   r,   r*   r‰   Úexp_unitr;   rR   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   r…   r†   r   r   r
   zm8[us])r#   r$   r7   rˆ   r   r8   r@   )r   r*   r,   ÚtsrR   r;   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   r…   r†   r
   r   )r   r   r   zm8[ms]r!   )r#   r$   r7   rˆ   r   rs   r   r)   r   r8   r@   )r   r*   r€   r�   rR   Ú
exp_valuesr;   Úresult2r   r   r   Ú!test_sub_datetime64_reso_mismatch  s   
þz-TestNonNano.test_sub_datetime64_reso_mismatchN)(Ú__name__Ú
__module__Ú__qualname__rG   Úfixturer   r   r-   r,   r5   ÚmarkÚparametrizer   Ú
_field_opsÚ	_bool_opsr<   rB   rK   rO   ÚfilterwarningsrS   rY   rb   rd   ri   rk   ro   rƒ   rŠ   r   r#   r‡   r   Útimedelta64ÚoffsetsÚMinuteÚ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-1ÚMSé	   )r   r   r   r!   )rx   Úgtry   )r#   r$   r7   r   r   r   ÚonesÚlenÚboolr˜   r8   r9   rs   ÚlistÚtupler&   r`   )	r   r|   r}   r*   r+   r�   r;   rR   Ú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   rp   r!   Úi8rC   zM8[ms]r   )r#   rW   rˆ   r   Ú_from_sequencer3   Úvaluer4   r&   rX   r8   Úassert_datetime_array_equal)r   r“   Útargetr,   rR   r;   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   r…   r†   rq   )	r#   r$   r&   r   r7   Ú
isinstanceÚcoreÚarraysr   )r   r*   r:   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   r…   r    ©r   r   zM8[s, US/Pacific]z
M8[s, UTC]F©Úcopy)r#   r$   r&   r   r7   r8   Úshares_memory)r   r*   r:   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+   rR   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 )
Nr0   rŒ   r!   FrÆ   Tz<Use obj.tz_localize instead or series.dt.tz_localize insteadz1from timezone-aware dtype to timezone-naive dtyperE   )
r#   ÚSeriesr½   rG   rH   Ú	TypeErrorr&   ÚNaTr8   Úassert_series_equal)r   r   r®   ÚserÚorigÚerrÚmsgÚtr   r   r   Útest_astype_copiesm  s   "ÿ
z$TestDatetimeArray.test_astype_copiesÚuint32Ú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Â   Ú2001rp   r!   zDo obj.astype\('int64'\)rE   r±   )r   r²   r#   rW   r   r   r2   rG   rH   rÉ   r&   r{   r3   r8   r9   )r   r   r+   rR   r;   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   é   r†   zSparse[datetime64[ns]])r#   r$   r7   r&   r   r4   )r   r*   r,   rR   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(   rE   r    )r   r²   r   rG   rH   Ú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©r0   rŒ   r…   rp   r!   rÄ   z2020-09-08 16:50r   r0   rŒ   )r   rs   r   r   r   r²   r½   r#   rW   r(   Ústrr8   Úassert_equal)	r   r   r   Údatar   r+   r;   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Ú   rp   r!   FrÃ   rÄ   )r½   r   z$Cannot compare tz-naive and tz-awarerE   rÂ   r   ú
US/Eastern)r   rs   r   r²   r   rG   rH   rÉ   r#   rW   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$   r7   rW   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$   r7   )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   r0   r!   )
r#   r$   r7   Úrepeatr   r²   Úasi8r   r8   rÜ   )r   r*   r+   Úrepeatedr;   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Ö   r…   éþÿÿÿF)Údropna)rÖ   rŒ   r0   r   r0   Úcount)ÚindexÚname)r#   r$   r7   ræ   Úvalue_countsrí   ÚequalsrÊ   rÈ   r8   rË   )r   r*   r+   rR   r;   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ó   r0   r…   r   rÖ   rÄ   r!   ©rò   z
2000-01-03)
r#   r$   r   r²   rÊ   r   Ú_pad_or_backfillr8   r@   rW   )r   rò   r*   r+   Úfill_valr;   rR   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»   r…   rŒ   )r   r0   )r0   r   ró   rõ   )r   r   rô   )rŒ   r   )r0   r0   ÚF)ÚorderÚF_CONTIGUOUSÚC_CONTIGUOUS)r#   r$   r7   Úreshaper½   rÊ   rö   r8   r@   Ú_from_backing_datar{   ÚflagsÚ	DataFrameÚffillÚassert_frame_equalÚbfill)r   r*   r,   Úres1Ú	expected1r¿   Ú	expected2Údta2rÀ   Úres4Údfr:   r;   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!   rp   z2017-01-01T06:00:00z2017-01-02T06:00:00)
r#   r$   r7   r   r%   rs   rW   r`   r8   r9   )r   r   rÝ   rR   r;   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Œ   r†   r  r  rÆ   r!   )
r#   r$   r7   r   rs   r%   r8   r9   r`   rW   )r   rÝ   r;   rR   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   r1   r#   ÚDatetimeIndexr7   r(   ÚIndexÚsearchsortedr'   r8   rÜ   )r   rí   rÝ   r+   r;   rR   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 objectsrE   r   )r   r1   r#   r  r7   r  r(   rG   rH   rÉ   r  )r   rí   rÝ   r+   ÚmismatchrÏ   r   r   r   Ú$test_searchsorted_tzawareness_compatk  s$   

ÿÿÿ"ÿz6TestDatetimeArray.test_searchsorted_tzawareness_compatr0   g      ð?rÊ   rŒ   )Ú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. GotrE   )r   r1   r#   r  r7   r  ÚjoinrG   rH   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   r…   r†   r0   éÿÿÿÿ©Ú
fill_valuer    )r#   r$   r7   r   r²   r   Úrollr{   rc   Úto_datetime64Úshiftr8   r´   r(   )r   r*   r,   r;   Úfvr%  rR   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   r…   r†   r#  r    zCannot comparerE   r0   r$  )
r#   r$   r7   r(   rc   rG   rH   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   r…   r    r»   z2020-10-18 18:44rú   rÄ   r0   r$  )r#   r$   r7   rW   r(  r'   r8   rÜ   )r   r*   r,   r%  rR   r;   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»   r…   rÖ   )	r#   r$   r7   rÿ   r(   ÚravelÚshaper8   r´   )r   r*   r,   rR   r;   Ú	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   rs   r2   r   r²   r(   r'   r¬   rÛ   Ú	utcoffsetr&   r`   )r   r   Úutc_valsr,   r€   r�   Úright2r   r   r   Útest_iter_zoneinfo_foldâ  s   
ÿz)TestDatetimeArray.test_iter_zoneinfo_foldzfreq, freq_depr))Ú2MEÚ2M)Ú2SMEÚ2SM)r8  Ú2sm)Ú2QEÚ2Q)ú2QE-SEPz2Q-SEP)Ú1YEÚ1Y)ú2YE-MARz2Y-MAR)r>  Ú1A)r@  z2A-MAR)r6  Ú2m)r=  z2q-sep)r@  z2a-mar)Ú2YEÚ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ú'r0   z$' is deprecated and will be removed z!in a future version, please use 'ú
' instead.ú1/1/2000rÖ   r=   rE   )r#   r$   r8   Úassert_produces_warningÚFutureWarningÚassert_index_equal)r   r   Ú	freq_deprÚdepr_msgr;   rR   r   r   r   Ú,test_date_range_frequency_M_Q_Y_A_deprecatedý  s   ÿz>TestDatetimeArray.test_date_range_frequency_M_Q_Y_A_deprecatedrK  )Ú2HÚ2CBHÚ2MINÚ2SÚ2mSÚ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 )
NrE  r0   ú)' is deprecated and will be removed in a zfuture version. Please use 'rF  rG  rÖ   r=   rE   )Úlowerr#   r$   r8   rH  rI  rJ  ©r   rK  rL  r;   rR   r   r   r   Ú.test_date_range_uppercase_frequency_deprecated  s   ÿz@TestDatetimeArray.test_date_range_uppercase_frequency_deprecated)
z2ye-marÚ2ysÚ2qez2qs-febÚ2bqsÚ2smsÚ2bmsÚ2cbmeÚ2meÚ2wc                 C  rT  )
NrE  r0   rU  zfuture version, please use 'rF  rG  rÖ   r=   rE   )Úupperr#   r$   r8   rH  rI  rJ  rW  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Å   rG   rœ   r�   rÑ   Úintr   Úint32r2   rÕ   r×   rÙ   rß   rá   rã   r#   rW   r'  rc   rå   ré   rñ   rø   r  r  r  r  r  r¡   r‡   r1   r3   rP   r"  r*  r+  r,  r1  Úeastsr   r   ÚKeyErrorÚappendr5  rM  rX  rb  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Œ   r0   rp   r!   z+call pd.factorize\(obj, sort=True\) insteadrE   T)Úsortr   )r   r²   rG   rH   ÚNotImplementedErrorÚ	factorize)r,   rÏ   Útdar   r   r   Ú test_factorize_sort_without_freq>  s   ÿ"ÿrl  )Ú__doc__Ú
__future__r   Údatetimer   rv   Úzoneinfor   ÚImportErrorÚnumpyr   rG   Úpandas._libs.tslibsr   Úpandas.core.dtypes.dtypesr   Úpandasr#   Úpandas._testingÚ_testingr8   Úpandas.core.arraysr   r   r	   r¥   r°   rl  r   r   r   r   Ú<module>   s2    þ v$    