
    ajqt                        d Z ddlmZ ddlmZ ddlZddlZddlZddl	m
Z
 ddlmZm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          Z G d d          Z G d d          Zd ZdS )z
Tests for DatetimeArray
    )annotations)	timedeltaN)
tz_compare)is_numpy_devnp_version_gt2_5)Pandas4Warning)DatetimeTZDtype)DatetimeArrayTimedeltaArrayc                     e Zd Z ej        g d          d             Zej        d             Zej        d             Zej        d             Zd Z	ej
                            dej        ej        z             d	             Zd
 Zd Zd Zd Zej
                            d          d             Zd Zd Zd Zej
                            dg d          d             Zd Zd Zd Zd Zej
                            d ed           ej         d           e!j"        dd           e!j"        dd          ej#        $                    d           ej#        %                    d          g          d!             Z&d" Z'd# Z(d$S )%TestNonNano)smsus)paramsc                    |j         S )z)Fixture returning parametrized time units)param)selfrequests     f/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/pandas/tests/arrays/test_datetimes.pyunitzTestNonNano.unit   s     }    c                \    |}|t          j        d| d          S t          ||          S )Nzdatetime64[])r   tz)npdtyper	   )r   r   tz_naive_fixturer   s       r   r   zTestNonNano.dtype$   s;    :81$111222"4444r   c                   t          |dd           }t          j        ddd|d          }|,t          j        |                              d| d          }nQt          j        |                    d	                              d                                         d| d          }t          j	        ||
          }||fS )Nr   
2016-01-017   Dnsperiodsfreqr   r   M8[r   UTCr   )
getattrpd
date_ranger   asarrayastype
tz_converttz_localizer
   _simple_new)r   r   r   r   dtiarrdtas          r   dta_dtizTestNonNano.dta_dti,   s    UD$''mL"32DQQQ:*S//((t77CC*S^^E22>>tDDEELLd C '5999Cxr   c                    |\  }}|S N )r   r5   r4   r2   s       r   r4   zTestNonNano.dta;   s    S
r   c                t   t          j        dt           j                                      d| d          }t	          j        ||          }|j        |k    sJ |d         j        |k    sJ t          |j	        |d         j	                  sJ |d         |d d         k    
                                sJ d S )N   r)   r'   r   r      )r   arangeint64viewr
   r1   r   r   r   r   all)r   r   r   r3   r4   s        r   test_non_nanozTestNonNano.test_non_nano@   s    i***//d>>'5999yE!!!!1v{d""""#&#a&),,,,,A#bqb'!&&(((((((r   fieldc                    |\  }}||k                                     sJ t          ||          }t          |j        |          }t          j        ||           d S r7   )r?   r*   _datatmassert_numpy_array_equal)	r   r   rA   r   r5   r4   r2   resexpecteds	            r   test_fieldszTestNonNano.test_fieldsI   sb     Ss
!!!!!c5!!39e,,
#C22222r   c                   t          j        ddd          }t          j        |                              d| d          }t          j        ||j                  }|j        rJ t          j        |	                                                              d| d          }t          j        ||j                  }|	                                }t          j        ||           d S )Nz2016-01-01 06:00:00r!   r"   r%   r&   r'   r   r)   )r+   r,   r   r-   r.   r
   r1   r   is_normalized	normalizerD   assert_extension_array_equal)r   r   r2   r3   r4   exprG   rF   s           r   test_normalizezTestNonNano.test_normalizeU   s    m12CHHHjoo$$]4]]]33'39===$$$$ j))00t?? ,S	BBBmmoo
'X66666r   c                    t           j        j        }t          j        |gd          }d}t          j        t          |          5  |                                 d d d            d S # 1 swxY w Y   d S )NM8[ns]r)   z3Cannot normalize Timestamp without integer overflowmatch)	r+   	Timestampminr
   _from_sequencepytestraises
ValueErrorrL   )r   tsr4   msgs       r   test_normalize_overflow_raisesz*TestNonNano.test_normalize_overflow_raisesd   s    \*B4x@@@C]:S111 	 	MMOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A((A,/A,c                   t          j        dt           j                                      d| d          }t	          |d          }t          j        ||          }|j        |k    sJ t	          dd          }t          j	        t          d          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )	Nr:   r)   r'   r   r(   r#   z^$rR   )r   r<   r=   r>   r	   r
   r1   r   rW   rX   AssertionError)r   r   r3   r   r4   wrongs         r   test_simple_new_requires_matchz*TestNonNano.test_simple_new_requires_matchm   s   i***//d>>e,,'5999yE!!!!e,,]>666 	8 	8%c7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   B::B>B>c                h   t          j        dddd          }t          j        |                              d| d          }t          j        ||j                  }|                                }|j	        |j	        k    sJ ||                                
                    |          k    sJ d S )	Nr    r!   r"   r#   )r%   r&   r   r'   r   r)   )r+   r,   r   r-   r.   r
   r1   r   std_cresofloor)r   r   r2   r3   r4   rF   s         r   test_std_non_nanozTestNonNano.test_std_non_nanox   s    mL"3TJJJjoo$$]4]]]33'39=== ggiizSZ''''cggiiood++++++++r   z.ignore:Converting to PeriodArray.*:UserWarningc                    |\  }}|                     d          }|j                             d          }t          j        ||           d S )Nr"   )	to_periodrC   rD   rM   r   r5   r4   r2   resultrG   s         r   test_to_periodzTestNonNano.test_to_period   sJ    Ss##9&&s++
'99999r   c                    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+   rT   _valuerc   )r   r4   rF   rG   s       r   	test_iterzTestNonNano.test_iter   sp    499ooq6CyyBL((((zX_,,,,zX_,,,,hr   c                                         t                    }t          fd|D                       sJ t          d t          |d          D                       sJ d S )Nc              3  8   K   | ]}|j         j         k    V  d S r7   )rc   ).0xr4   s     r   	<genexpr>z1TestNonNano.test_astype_object.<locals>.<genexpr>   s,      ::a18sz)::::::r   c              3  (   K   | ]\  }}||k    V  d S r7   r8   )rs   rt   ys      r   ru   z1TestNonNano.test_astype_object.<locals>.<genexpr>   s*      DDda16DDDDDDr   T)strict)r.   objectr?   zip)r   r4   ri   s    ` r   test_astype_objectzTestNonNano.test_astype_object   su    F##::::6::::::::DDc&#d&C&C&CDDDDDDDDDDr   c                    |\  }}|                                 }|                                 }t          j        ||           d S r7   )to_pydatetimerD   rE   rh   s         r   test_to_pydatetimezTestNonNano.test_to_pydatetime   sF    S""$$$$&&
#FH55555r   meth)timetimetzdatec                z    |\  }}t          ||          }t          ||          }t          j        ||           d S r7   )r*   rD   rE   )r   r5   r   r4   r2   ri   rG   s          r   test_time_datezTestNonNano.test_time_date   sB    Sd##3%%
#FH55555r   c                    |\  }}|                                 }|j                                         }t          j        ||           d S r7   )_format_native_typesrC   rD   rE   )r   r   r   r5   r4   r2   rF   rN   s           r   test_format_native_typesz$TestNonNano.test_format_native_types   sJ     S&&((i,,..
#C-----r   c                    |\  }}t          |          t          |j                                      dd|           k    sJ d S )Nz[ns[)reprrC   replace)r   r5   r   r4   r2   s        r   	test_reprzTestNonNano.test_repr   sF    SCyyDOO33E:t::FFFFFFFFr   c                   |}t          j        t           j                  }t          j        |j        |j        dz   |j        gt           j                  }t          j        |                              d          }|                    d          }t          j        ||j	                  }t          j        ||j	                  }|t          j        u rt          j        g d          }	nl|t          j        u rt          j        g d          }	nG|t          j        t          j        fv rt          j        g d          }	nt          j        g d          }	 |||          }
t          j        |
|	            ||d         |          }
t          j        |
|	           |t          j        t          j        fvrt"          st$          rLt'          j        t*          d	
          5   ||j        |j                   d d d            d S # 1 swxY w Y   d S  ||j        |j                  }t          j        |dd          |	dd                      d S d S )Nr;   r)   rQ   M8[s])FFF)TTT)FFT)FTFOverflowrR   )r   iinfor=   arrayrU   maxr>   r
   r1   r   operatoreqneltlerD   rE   r   r   rW   rX   OverflowError_ndarray)r   comparison_opopr   valsr3   arr2leftrightrG   ri   np_ress               r   #test_compare_mismatched_resolutionsz/TestNonNano.test_compare_mismatched_resolutions   sr   ""xEIM59=RXNNN htnn!!(++xx  (CI>>>)$djAAAHK''x 5 5 566HHhk))x 2 2 233HHx{HK888x 4 4 455HHx 4 4 455HD%
#FH555DGU##
#FH555hk8;/// 	G/ 	G ]=
CCC 6 6Bt}en5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
 DM5>::+F122J!""FFFFF 0/s   $HHHc                    t          j        d          }t          j        dd          |z
  }|j                            d          }||                    d          z   }|j        dk    sJ d S )Nr;   )microsecondsr       r%   r   )r+   	Timedeltar,   rC   as_unitr   )r   tdr2   r4   rF   s        r   (test_add_mismatched_reso_doesnt_downcastz4TestNonNano.test_add_mismatched_reso_doesnt_downcast   ss    \q)))mL!444r9i%%BJJt$$$ x4r   scalar   )hourshi m r   x   c                   |\  }}t          j        |          }t          j        |j        |j                  }||z   j                            |          }||z   }t          j        ||           ||z   }t          j        ||           ||z
  j                            |          }||z
  }t          j        ||           d S r7   )r+   r   rD   get_finest_unitr   rC   r   rM   )	r   r5   r   r4   r2   r   exp_unitrG   ri   s	            r   -test_add_timedeltalike_scalar_mismatched_resoz9TestNonNano.test_add_timedeltalike_scalar_mismatched_reso   s     S\&!!%ch88"H#++H55v
'999#
'999"H#++H55v
'99999r   c                0   t          j        dd          }|j                            d          }|d                             d          }||z
  }||d         z
  j                            d          }|j        dk    sJ t          j        ||           d S )Nr    r   r   r   r   r   zm8[us])r+   r,   rC   r   r   rD   rM   )r   r2   r4   rZ   ri   rG   s         r   %test_sub_datetimelike_scalar_mismatchz1TestNonNano.test_sub_datetimelike_scalar_mismatch  s    mL!444i%%V^^C  r#a&L'//55|x''''
'99999r   c                ^   t          j        dd          }|j                            d          }|                    d          }||z
  }t	          j        g dd          }t          j        ||j                  }t          j
        ||           ||z
  }t          j
        ||           d S )	Nr    r   r   r   r   )r   r   r   zm8[ms]r)   )r+   r,   rC   r   r   r   r   r1   r   rD   rM   )r   r2   r   r   ri   
exp_valuesrG   result2s           r   !test_sub_datetime64_reso_mismatchz-TestNonNano.test_sub_datetime64_reso_mismatch  s    mL!444y  %%T""Xiiix888
!-"
 
 
 	'999$,
':::::r   N))__name__
__module____qualname__rW   fixturer   r   r5   r4   r@   markparametrizer
   
_field_ops	_bool_opsrH   rO   r\   r`   re   filterwarningsrj   rp   r{   r~   r   r   r   r   r   r   r+   r   r   timedelta64offsetsMinuteHourr   r   r   r8   r   r   r   r      s       V^,,,---  .- ^5 5 ^5 ^  ^ ^  ^) ) ) [)M,CC 3 3 37 7 7  	8 	8 	8	, 	, 	, [ PQQ: : RQ:  E E E
6 6 6 [V%?%?%?@@6 6 A@6. . .G G G'G 'G 'GR	  	  	  [IABLq!!!BN1c""BN?D11Jc""JOOA	

 
: :
 
:"	: 	: 	:; ; ; ; ;r   r   c                      e Zd Zd ZdS )TestDatetimeArrayComparisonsc                ^   |}t          j        dddd           }|j        }|j        |j        k    sJ |j        |j        k    sJ |}t          j        t          |          t                    }|j	        dv r| } |||          }t          j        ||           |t          j        |          t          |          t          |          |                    t                     fD ]D} |||          }t          j        ||            |||          }t          j        ||           Ed S )Nz	2016-01-1MS	   )r&   r%   r   r)   )r   gtr   )r+   r,   rC   r&   r   r   oneslenboolr   rD   rE   r   listtupler.   ry   )	r   r   r   r2   r3   r   rG   ri   others	            r   test_cmp_dt64_arraylike_tznaivez<TestDatetimeArrayComparisons.test_cmp_dt64_arraylike_tznaive&  s:   mKdA$GGGix38####v73s884000!%777 yHC
#FH555HUOOKK%LLLL  
 	: 	:E RU^^F'999Rs^^F'9999	: 	:r   N)r   r   r   r   r8   r   r   r   r   "  s#        : : : : :r   r   c                     e Zd Zd Zd Zd Zd Zej        	                    dddg          ej        	                    dg d	          d
                         Z
ej        	                    deej        ej        ddg          d             Zd Zd Zd Zd Zd Zej        	                    d ej        d           ej        d                                           ej        d                                          g          d             Zd Zd Zej        	                    dddg          d             Zd Zd Zd Zej        	                    dd d!g          d"             Z ej        	                    dd d!g          d#             Z!ej        	                    dd$ ej        d$          d% ej"        d&d'           ej#        d()          d* ej$        d+d,-          d.z  d/z  d0z   ej$        d+          %                    d1          d.z  d/z  d0z   ej        d          &                    d2          g	          ej        	                    dd d!g          d3                         Z'd4 Z(d5 Z)d6 Z*d7 Z+ej        	                    d8g d9          d:             Z,ej        	                    d;g d<          d=             Z-ej        	                    d>g d?          d@             Z.ej        	                    d;g dA          dB             Z/dC Z0ej        	                    d;g dD          dE             Z1ej        	                    d;g dF          dG             Z2dHS )ITestDatetimeArrayc                   t          j        d          }|                    d          }t          j        |gd          }|                    d          |                    d          j        k                                    sJ |                    d          }|d         |k    sJ t          j        |gd          }|                    d          |j	        k                                    sJ t          j        ||           d S )	Nz1677-09-21 00:12:43.145225r   rQ   r)   i8r#   zM8[ms]r   )r+   rT   r   r
   rV   r>   valuer?   r.   ro   rD   assert_datetime_array_equal)r   rZ   targetr4   ri   rG   s         r    test_astype_ns_to_ms_near_boundsz2TestDatetimeArray.test_astype_ns_to_ms_near_boundsG  s    \677D!!*B4x@@@"**T"2"2"88==?????H%%ayF"""" /HEEEd##v}499;;;;;
&vx88888r   c                   t          j        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   r   )	r+   r,   r.   r   rC   
isinstancecorearraysr
   )r   r2   rF   r4   s       r   test_astype_non_nano_tznaivez.TestDatetimeArray.test_astype_non_nano_tznaiveW  s    mL!444jj!!yG####ijj!!yG#####rw~;<<<<<<<r   c                   t          j        ddd          }|                    d          }|j        dk    sJ |j        }|                    d          }|j        dk    sJ |                    d          }|j        dk    sJ t          j        ||          rJ |                    dd          }|j        dk    sJ t          j        ||          sJ d S )	Nr    r   r(   r%   r   zM8[s, US/Pacific]z
M8[s, UTC]Fcopy)r+   r,   r.   r   rC   rD   shares_memory)r   r2   rF   r4   res2res3s         r   test_astype_non_nano_tzawarez.TestDatetimeArray.test_astype_non_nano_tzawareb  s    mL!>>>jj,--y/////ijj,--y///// zz,''z\))))#D#.....zz,Uz33z\))))c*******r   c                    t          j        dgt          d                    }|                    t          d          d          }||u sJ d S )N2000
US/Centralr   r)   Fr   )r
   rV   r	   r.   )r   r3   ri   s      r   test_astype_to_samez%TestDatetimeArray.test_astype_to_sameu  s^    *HO|<<<
 
 
 O|<<<5II}}}}}}r   r   datetime64[ns]datetime64[ns, UTC]r   )r   r   zdatetime64[ns, CET]c                   t          j        ddg|          }|                                }d}|dk    |dk    z  rd}|rV|dk    rd}nd}t          j        t
          |	          5  |                    |           d d d            d S # 1 swxY w Y   d S |                    |          }t           j        |d d <   t          j	        ||           d S )
Nr;   r   r)   Fr   Tz<Use obj.tz_localize instead or series.dt.tz_localize insteadz1from timezone-aware dtype to timezone-naive dtyperR   )
r+   Seriesr   rW   rX   	TypeErrorr.   NaTrD   assert_series_equal)r   r   r   serorigerrr[   ts           r   test_astype_copiesz$TestDatetimeArray.test_astype_copies|  s2    iAe,,,xxzz%%%3C*CD 	C 
	.(((TIy444 " "

5!!!" " " " " " " " " " " " " " " " " " 

5!!A6AaaaD"3-----s   &B		BBuint32uint64c                   t          j        t          j        d          t          j        d          gd          }t	          j        |          t          j        k    rJt          j        t          d          5  |
                    |           d d d            n# 1 swxY w Y   d S |
                    |          }|j                            d          }t          j        ||           d S )Nr   2001rQ   r)   zDo obj.astype\('int64'\)rR   r   )r
   rV   r+   rT   r   r   r=   rW   rX   r   r.   r   r>   rD   rE   )r   r   r3   ri   rG   s        r   test_astype_intz!TestDatetimeArray.test_astype_int  s   *\&!!2<#7#78
 
 
 8E??bh&&y0KLLL " "

5!!!" " " " " " " " " " " " " " "FE""<$$T**
#FH55555s   :BB #B c                    t          j        dd          }|j        }|                    d          }|j        dk    sJ ||k                                    sJ d S )Nr       r   zSparse[datetime64[ns]])r+   r,   rC   r.   r   r?   )r   r2   r4   ri   s       r   test_astype_to_sparse_dt64z,TestDatetimeArray.test_astype_to_sparse_dt64  se    mL!444i455|77777#""$$$$$$$r   c                    t          j        dgt          d                    }t          j        t
          d          5  d|_        d d d            d S # 1 swxY w Y   d S )Nr   r   r   r)   r0   rR   r(   )r
   rV   r	   rW   rX   AttributeErrorr   )r   r3   s     r   test_tz_setter_raisesz'TestDatetimeArray.test_tz_setter_raises  s    *HO|<<<
 
 
 ]>??? 	 	CF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                   |}t          j        g dd          }||j        nt          |          }t	          j        ||          }|                                }t          j        d          	                    |          }t          |	                    d                     }||d<   ||d<   t          j        ||           ||d<   ||g|d d<   t          j        ||           d S )	Nr;   r   r   rQ   r)   r   z2020-09-08 16:50r   r;   r   )r   r   r   r	   r
   rV   r   r+   rT   r0   strrD   assert_equal)	r   r   r   datar   r3   rG   rZ   setters	            r   test_setitem_str_impute_tzz,TestDatetimeArray.test_setitem_str_impute_tz  s     x			222 j

o.D.D.D*4u===88::\,--99"==R^^D))** A
X&&& 6"BQB
X&&&&&r   c                   t          j        g dd          }t          j        |dt	          d                    }t          j        t          d	          5  t          j	        d
          |d<   d d d            n# 1 swxY w Y   t          j	        d
d          }||d<   |d         |
                    d          k    sJ d S )Nr  rQ   r)   Fr   r   )r   r   z$Cannot compare tz-naive and tz-awarerR   r   r   
US/Eastern)r   r   r
   rV   r	   rW   rX   r   r+   rT   r/   )r   r  r3   rZ   s       r    test_setitem_different_tz_raisesz2TestDatetimeArray.test_setitem_different_tz_raises  s    x			222*uO|$D$D$D
 
 
 ]9,RSSS 	* 	*\&))CF	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* \&\222A1v|44444444s   A==BBc                    t          j        dddd          j        }t          j        dd          |d<   |j        J d S )Nr   r   r"   r   r%   r&   r   r   r   )r+   r,   rC   rT   r&   )r   as     r   test_setitem_clears_freqz*TestDatetimeArray.test_setitem_clears_freq  sD    M&!#,GGGM|F|444!v~~~~~r   objz
2021-01-01c                h    t          j        ddd          }|j        }||d<   |d         |k    sJ d S )Nr   r   r"   rJ   r   )r+   r,   rC   )r   r  r2   r3   s       r   test_setitem_objectsz&TestDatetimeArray.test_setitem_objects  s?     mFAC888iA1v}}}}}}r   c                    t          j        dddd          }|j        }|                    ddg          }t	          j        |j        |j                  }t          j	        ||           d S )Nr   r   r"   r   r  r;   r)   )
r+   r,   rC   repeatr
   rV   asi8r   rD   r  )r   r2   r3   repeatedrG   s        r   test_repeat_preserves_tzz*TestDatetimeArray.test_repeat_preserves_tz  si    mFACLIIIi::q!f%% !/	JJJ
(+++++r   c                   t          j        dddd          }|j                            ddg          }|                                }|j                            |          sJ t           j        |d<   |                    d	
          }t          j        g d|d         |d         t           j        gd          }t          j
        ||           d S )Nr   r   r"   r   r  r   r   F)dropna)r   r   r;   r   r;   count)indexname)r+   r,   rC   r  value_countsr  equalsr   r   rD   r   )r   r2   r3   ri   rG   s        r   test_value_counts_preserves_tzz0TestDatetimeArray.test_value_counts_preserves_tz  s    mFACLIIIi1v&&!!## |""3'''''&B!!!//9YYYs1vs1vrv.FWUUU
vx00000r   methodpadbackfillc                   t          j        ddddd          }t          j        ||j        d          }t           j        |d	<   |d
k    r|d         n|d         }t          j        |d         |d         ||d         |d         gt          d                    }|                    |          }t          j	        ||           |d	         t           j        u sJ |d	         t          j
        dd          k    sJ d S )Nz
2000-01-01r:   r"   r   r#   r$   T)r   r   r   r$  r;   r   r   r   r   r)   r#  z
2000-01-03)r+   r,   r
   rV   r   r   r	   _pad_or_backfillrD   rM   rT   )r   r#  r2   r3   fill_valrG   ri   s          r   test_fillna_preserves_tzz*TestDatetimeArray.test_fillna_preserves_tz  s   m!#,T
 
 
 *3cidKKKA#u__3q66#a& /VSVXs1vs1v6!\222
 
 

 %%V%44
'999 1v1vl|DDDDDDDDDr   c                   t          j        ddd          }|j                            dd                                          }t           j        |d<   t           j        |d<   |                    d	
          }|                                }|d         |d<   t          j        ||           |                    d
          }|                                }|                                }|d         |d<   |d         |d<   t          j        ||           |	                    |j
                            d                    }|j
        j        d         sJ |j
        j        d         rJ t          j        ||           |                    d	
          }t          j        ||           |                    d
          }	t          j        |	|           t          j        |          }
|
                                }t          j        |          }t          j        ||           |
                                }t          j        |          }t          j        ||           d S )Nr       
US/Pacificr   r   r   )r   r;   )r;   r   r$  r'  )r   r   r%  )r   r   )r;   r;   F)orderF_CONTIGUOUSC_CONTIGUOUS)r+   r,   rC   reshaper   r   r(  rD   rM   _from_backing_datar   flags	DataFrameffillassert_frame_equalbfill)r   r2   r4   res1	expected1r   	expected2dta2r   res4dfrF   rG   s                r   test_fillna_2dz TestDatetimeArray.test_fillna_2d  s   mL!EEEi1%%**,,FD	FD	##5#11HHJJ	d)	$
'i888##:#66HHJJ	HHJJ	d)	$d)	$
'i888 %%cl&7&7c&7&B&BCC}">2222=&~6666
'T222$$E$22
'i888$$J$77
'i888 \#hhjj<	**
c8,,,hhjj<	**
c8,,,,,r   c                   d}t          j        dd|d          j        }t          j        |          }t          j        t          j        d|          t          j        d|          gt          	          }t          j	        ||           t          j        |t          	          }t          j	        ||           t          j        |d
	          }t          j        ddgd
	          }t          j	        ||           d S )Nr   2017r   r#   )r%   r   r   2017-01-01T00:00:00r   2017-01-02T00:00:00r)   rQ   z2017-01-01T06:00:00z2017-01-02T06:00:00)
r+   r,   rC   r   r-   r   rT   ry   rD   rE   )r   r   r  ri   rG   s        r   test_array_interface_tzz)TestDatetimeArray.test_array_interface_tzE  s   }VQ2DAAAGD!!82r:::2r::: 
 
 
 	#FH555D///
#FH555D1118"$9:(
 
 
 	#FH55555r   c                   t          j        ddd          j        }t          j        ddgd          }t          j        |          }t          j        ||           t          j        |t                    }t          j        t          j	        d          t          j	        d          gt                    }t          j        ||           d S )	NrA  r   r#   )r%   r   rB  rC  r   r)   )
r+   r,   rC   r   r   r-   rD   rE   ry   rT   )r   r  rG   ri   s       r   test_array_interfacez&TestDatetimeArray.test_array_interface]  s    }VQT:::@8"$9:BR
 
 
 D!!
#FH555D///8\/00",?T2U2UV
 
 
 	#FH55555r   r  TFc                2   t          j        dd          dz  dz  dz  }t          j        |d          j                            d	          }|rt          j        |          }|                    |d
                   }|                    |d
                             d                    }||k    sJ |                    |d
d                   }|                    |d
d                             d                    }t          j
        ||           d S )N
   r   r)         ʚ;r"   r&   
Asia/Tokyor   r(   r,  )r   r<   r+   DatetimeIndexrC   r0   Indexsearchsortedr/   rD   r  )r   r  r  r3   rG   ri   s         r   test_searchsorted_different_tzz0TestDatetimeArray.test_searchsorted_different_tzm  s	   y4(((2-4u<t#...4@@NN 	 (3--C##CF++!!#a&"3"3E":":;;!!!!##C!H--!!#ac("5"5e"<"<==
)))))r   c                .   t          j        dd          dz  dz  dz  }t          j        |d          j        }|rt          j        |          }|                    d	          }d
}t          j        t          |          5  |
                    |d                    d d d            n# 1 swxY w Y   t          j        t          |          5  |
                    |           d d d            n# 1 swxY w Y   t          j        t          |          5  |
                    |d                    d d d            n# 1 swxY w Y   t          j        t          |          5  |
                    |           d d d            d S # 1 swxY w Y   d S )NrH  r   r)   rI  rJ  rK  r"   rL  rM  z:Cannot compare tz-naive and tz-aware datetime-like objectsrR   r   )r   r<   r+   rN  rC   rO  r0   rW   rX   r   rP  )r   r  r  r3   mismatchr[   s         r   $test_searchsorted_tzawareness_compatz6TestDatetimeArray.test_searchsorted_tzawareness_compat|  sy   y4(((2-4u<t#...4 	 (3--C??<00J]9C000 	* 	*Xa[)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*]9C000 	' 	'X&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' ]9C000 	* 	*!!#a&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*]9C000 	' 	'!!#&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'sH   B++B/2B/C33C7:C7EEE'F

FFr;   g      ?r   r#   r   )daysinvalidrH  r   r)   rI  rJ  rK  ztimedelta64[ns]r"   c                f   t          j        dd          dz  dz  dz  }t          j        |d          j        }|rt          j        |          }d	                    d
dg          }t          j        t          |          5  |
                    |           d d d            d S # 1 swxY w Y   d S )NrH  r   r)   rI  rJ  rK  r"   rL  |z0searchsorted requires compatible dtype or scalarz<value should be a 'Timestamp', 'NaT', or array of those. GotrR   )r   r<   r+   rN  rC   rO  joinrW   rX   r   rP  )r   r   r  r  r3   r[   s         r   test_searchsorted_invalid_typesz1TestDatetimeArray.test_searchsorted_invalid_types  s     y4(((2-4u<t#...4 	 (3--ChhBN
 
 ]9C000 	$ 	$U###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   B&&B*-B*c                T   t          j        dd          }|j        }t          j        t          j        |j        d          |j                  }|d         }||	                                |
                                fD ].}|                    d|          }t          j        ||           /|                    d          }|                    d          }|d         }||	                                fD ].}|                    d|          }t          j        ||           /d S )	Nr    r   r   r;   r)   
fill_valuer(   )r+   r,   rC   r
   rV   r   rollr   r   r}   to_datetime64shiftrD   r   r0   )r   r2   r4   rG   fvr^  ri   s          r   test_shift_fill_valuez'TestDatetimeArray.test_shift_fill_value  s/   mL!444i /GCL!$$CI
 
 
 Wr//1123C3C3E3EF 	= 	=JYYqZY88F*68<<<<ooe$$''..Wr//112 	= 	=JYYqZY88F*68<<<<	= 	=r   c                   t          j        dd          }|j        }|d                             d          }||                                fD ]L}t          j        t          d          5  |                    d|	           d d d            n# 1 swxY w Y   M|                    d          }|d                             d           }||                                |	                                fD ]L}t          j        t          d          5  |                    d|	           d d d            n# 1 swxY w Y   Md S )
Nr    r   r   r\  r(   zCannot comparerR   r;   r]  )
r+   r,   rC   r0   r}   rW   rX   r   ra  r`  )r   r2   r4   rb  rV  s        r   %test_shift_value_tzawareness_mismatchz7TestDatetimeArray.test_shift_value_tzawareness_mismatch  s   mL!444iW  ''B,,../ 	1 	1Gy0@AAA 1 1		!	0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ooe$$W  &&B,,..0@0@0B0BC 	1 	1Gy0@AAA 1 1		!	0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1	1 	1s$   ,BB	B	D66D:	=D:	c                   t          j        ddd          }|j        }t          j        dd          }|                    d|	          }|                    d|                    d          	          }t          j        ||           d S )
Nr    r   r(   r   z2020-10-18 18:44r-  r   r;   r]  )r+   r,   rC   rT   ra  r/   rD   r  )r   r2   r4   r^  ri   rG   s         r   test_shift_requires_tzmatchz-TestDatetimeArray.test_shift_requires_tzmatch  s     mL!>>>i\"4FFF
14499Q:+@+@+G+G9HH
)))))r   c                   t          j        ddd          }|j                            dd          }|                    d           }|                                                    d                               |j                  }t          j        ||           |                    d          }t          j        ||           d S )Nz
1994-05-12   r-  r   r   r   )	r+   r,   rC   r2  r0   ravelshaperD   r   )r   r2   r4   ri   rG   	roundtrips         r   test_tz_localize_t2dz&TestDatetimeArray.test_tz_localize_t2d  s    mL"FFFi1%%&&99;;**40088CC
&vx888((66	
&y#66666r   r   )r  zdateutil/US/Easternzpytz/US/Easternc                D   |                     d          r<t          j        d          }|                    |                    d                    }t          j        g dt
          j                  }|dz  }t          j	        |t          j
        d                                        d                              |          }|d         }t          |          d         }t          |          t          |          k    sJ |                                |                                k    sJ |                    t"                    d         }t          |          t          |          k    sJ |                                |                                k    sJ d S )	Nzpytz/pytz)i@NiPNi`"Nip0Nr)   rK  rQ   r(   r   )
startswithrW   importorskiptimezoneremoveprefixr   r   r=   r
   rV   r   r0   r/   r   r  	utcoffsetr.   ry   )r   r   ro  utc_valsr4   r   r   right2s           r   test_iter_zoneinfo_foldz)TestDatetimeArray.test_iter_zoneinfo_fold  sp   
 ==!! 	9&v..Drw7788B8<<<BH
 
 
 	M! ((9K9KLLL[Z^^ 	 1vS		!4yyCJJ&&&& ~~5??#4#44444 F##A&4yyCKK''''~~6#3#3#5#5555555r   r&   )
2M2SM2sm2Qz2Q-SEP1Yz2Y-MAR2mz2q-sep2yc                    d| }t          j        t          |          5  t          j        dd|           d d d            d S # 1 swxY w Y   d S NzInvalid frequency: rR   1/1/2000r   rJ   rW   rX   rY   r+   r,   r   r&   r[   s      r   &test_date_range_frequency_M_Q_Y_raisesz8TestDatetimeArray.test_date_range_frequency_M_Q_Y_raises  s    
 +D**]:S111 	< 	<M*ad;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<   AA
A
	freq_depr)2MIN2nS2Usc                l   d|dd           d|                                 dd           d}t          j        dd|                                           }t          j        t
          |          5  t          j        dd|          }d d d            n# 1 swxY w Y   t          j        ||           d S )	N'r;   zE' is deprecated and will be removed in a future version, please use 'z
' instead.r  r   rJ   rR   )lowerr+   r,   rD   assert_produces_warningr   assert_index_equal)r   r  depr_msgrG   ri   s        r   .test_date_range_uppercase_frequency_deprecatedz@TestDatetimeArray.test_date_range_uppercase_frequency_deprecated  s   M	!"" M M+4??+<+<QRR+@M M M 	
 =QY__=N=NOOO'hGGG 	J 	J]:qyIIIF	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J
fh/////s   0BBB)	z2ye-mar2ys2qez2qs-feb2bqs2sms2bms2cbme2mec                    d| }t          j        t          |          5  t          j        dd|           d d d            d S # 1 swxY w Y   d S r  r  r  s      r   *test_date_range_lowercase_frequency_raisesz<TestDatetimeArray.test_date_range_lowercase_frequency_raises$  s     +D**]:S111 	< 	<M*ad;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<r  c                    d}t          j        ddd          }t          j        t          |          5  t          j        ddd          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nz9'w' is deprecated and will be removed in a future versionr  r   2WrJ   rR   2w)r+   r,   rD   r  r   r  )r   r  rG   ri   s       r   .test_date_range_lowercase_frequency_deprecatedz@TestDatetimeArray.test_date_range_lowercase_frequency_deprecated8  s    N=QTBBB'hGGG 	E 	E]:qtDDDF	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E
fh/////s   AA A)1Az2A-MARz2a-marc                    d| }t          j        t          |          5  t          j        dd|           d d d            d S # 1 swxY w Y   d S r  r  r  s      r   "test_date_range_frequency_A_raisesz4TestDatetimeArray.test_date_range_frequency_A_raisesA      *D**]:S111 	< 	<M*ad;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<r  )2H2CBH2Sc                    d| }t          j        t          |          5  t          j        dd|           d d d            d S # 1 swxY w Y   d S r  r  r  s      r   *test_date_range_uppercase_frequency_raisesz<TestDatetimeArray.test_date_range_uppercase_frequency_raisesH  r  r  N)3r   r   r   r   r   r   r   rW   r   r   r   intr   int32r=   r   r   r  r
  r  r  r+   rT   r`  r}   r  r  r"  r*  r?  rD  rF  rQ  rT  r   r   r<   r>   rg   rZ  rc  re  rg  rm  rw  r  r  r  r  r  r  r8   r   r   r   r   F  sC       9 9 9 	= 	= 	=+ + +&   [W'79N&OPP[QQQ . .  QP., [WsBHbh(&STT6 6 UT6% % %  ' ' '.5 5 5  
 [BL&&BL&&4466BL&&4466	
   , , ,1 1 1 [Xz':;;E E <;E('- '- '-R6 6 606 6 6  [WtUm44* * 54* [WtUm44' ' 54'& [BHQKKBN5$''BLa   BIb%%%*T1E9BIbMM011B6=EBL&&0055
	
  [WtUm44$ $ 54 $= = =(1 1 1 
* 
* 
*	7 	7 	7 [FFF 6 6 6B [RRR < <	 < [[*@*@*@AA
0 
0 BA
0 [
	
 
	
 
	
 < < <0 0 0 [V%?%?%?@@< < A@< [V%9%9%9::< < ;:< < <r   r   c                 v   t          j        g dd          } d}t          j        t          |          5  |                     d           d d d            n# 1 swxY w Y   | | d         z
  }t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )	N)r   r   r;   rQ   r)   z+call pd.factorize\(obj, sort=True\) insteadrR   T)sortr   )r
   rV   rW   rX   NotImplementedError	factorize)r4   r[   tdas      r    test_factorize_sort_without_freqr  P  s<   

&yyy
A
A
AC
8C	*#	6	6	6 ! !4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! A,C	*#	6	6	6 ! !4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s#   AA A
B..B25B2)__doc__
__future__r   datetimer   r   numpyr   rW   pandas._libs.tslibsr   pandas.compat.numpyr   r   pandas.errorsr   pandas.core.dtypes.dtypesr	   pandasr+   pandas._testing_testingrD   pandas.core.arraysr
   r   r   r   r   r  r8   r   r   <module>r     s    # " " " " "             * * * * * *        ) ( ( ( ( ( 5 5 5 5 5 5                 A; A; A; A; A; A; A; A;H!: !: !: !: !: !: !: !:HG< G< G< G< G< G< G< G<T
! 
! 
! 
! 
!r   