
    I j?                        S SK Jr  S SKJrJrJr  S SKJr  S SKJr  S SK	r	S SK
r
S SKr
S SKJr  S SKrS SKrS SKJrJr  S SKrS SKJrJrJrJrJrJr  S SKJr  S S	KJr   " S
 S5      r  " S S5      r!g)    )annotations)datetime	timedeltatimezone)partial)
attrgetterN)gettz)astype_overflowsafe	timezones)DatetimeIndexIndex	Timestamp
date_rangeoffsetsto_datetime)period_arrayc                     \ rS rSrS rS rS r\R                  R                  S\
" SSSS	S
9\R                  " SSS9/5      S 5       rS rS rS rS rS r\R                  R                  SSS0SS0SSS./5      S 5       r\R                  R                  SSS0SS0SSS./5      S 5       rS rS rS rS rS r\R                  R                  SS /\" S!S"S"5      //5      S# 5       rS$ rS% rS& r\R                  R                  S'S(S)/5      S* 5       rS+ r S, r!\R                  R                  S\"\#RH                  \#RJ                  /5      S- 5       r&S. r'S/ r(\R                  R                  SS0S1\)RT                  " S15      \+" S2S1S39RX                  /5      S4 5       r-\R                  R                  S/ S5Q5      S6 5       r.S7 r/\R                  R                  S8\0\1/5      \R                  R                  S9\#Rd                  \3" \#Rd                  \"S:9\4/5      \R                  R                  S;S<S=/5      S> 5       5       5       r5S? r6S@ r7SA r8SB r9SC r:SD r;SE r<SF r=SG r>\R                  R                  S\)RT                  " SH5      \?" SH5      /5      SI 5       r@\R                  R                  SJSHSK/5      SL 5       rASM rB\R                  R                  SNSOSP/5      SQ 5       rC\R                  R                  SJSHSK/5      SR 5       rD\R                  R                  SSS\?" SH5      /5      \R                  R                  STSUSV/5      \R                  R                  SW\+\1/5      SX 5       5       5       rE\R                  R                  S/ SYQ5      SZ 5       rFS[ rGS\ rH\R                  R                  SS]S^/5      S_ 5       rIS`rJg0)aTestDatetimeIndex$   c                    [         R                  " SS5      n[        U/SS9n[        UR                  S5      /SS9n[        R
                  " X#5        g )N   D
US/PacifictzM8[s])np
datetime64r   astypetmassert_index_equal)selfvalresultexpecteds       ځ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/indexes/datetimes/test_constructors.pytest_from_dt64_unsupported_unit1TestDatetimeIndex.test_from_dt64_unsupported_unit%   sF    mmAs#u6 #**W"5!6<H
f/    c                   [        SSSSS9nSn[        R                  " [        US9   [	        US S9  S S S 5        [        R                  " [        US9   [	        [
        R                  " U5      S S9  S S S 5        S	n[        R                  " [        US9   [	        / S
S S9  S S S 5        g ! , (       d  f       N~= f! , (       d  f       NO= f! , (       d  f       g = f)N
2016-01-01
   UTCnsperiodsr   unitz:Passed data is timezone-aware, incompatible with 'tz=None'matchr   z3Cannot pass both a timezone-aware dtype and tz=NoneM8[ns, UTC]dtyper   )r   pytestraises
ValueErrorr   r   arrayr"   dtimsgs      r&   test_explicit_tz_none'TestDatetimeIndex.test_explicit_tz_none-   s    re$GJ]]:S1#$' 2 ]]:S1"((3-D1 2 D]]:S1"Md; 21 21 21 21s#   B+B<C+
B9<
C

Cc                t   Sn[         R                  " [        US9   [        [        R
                  [        S5      /SS9  S S S 5        [         R                  " [        US9   [        [        R
                  [        S5      R                  /SS9  S S S 5        g ! , (       d  f       N^= f! , (       d  f       g = f)NQInferred frequency None from passed values does not conform to passed frequency Dr2   
2011-01-01r   freq)r7   r8   r9   r   pdNaTr   _valuer"   r=   s     r&   test_freq_validation_with_nat/TestDatetimeIndex.test_freq_validation_with_nat<   s}    $ 	 ]]:S12669\#:;#F 2]]:S12669\#:#A#ABM 21 2111s   $B!.B)
B&)
B7indexr+      r   r.   r/   z1 Day)r0   c                    UR                   nU/ SQ   nUR                  b   eUR                  U5      nUR                  b   eg )N)r            r   )_datarD   _shallow_copy)r"   rK   r:   arrr$   s        r&   %test_shallow_copy_inherits_array_freq7TestDatetimeIndex.test_shallow_copy_inherits_array_freqI   sG     O$xx$$S){{"""r)   c                @   [        [        R                  SSS/SS9nXR                  4 Hq  n[        R                  " U5      n[        R
                  " U5      n[        R                  " U5      nX4U4 H$  n[        U5      n[        R                  " Xq5        M&     Ms     g )Nz
2015-01-01z1999-04-06 15:14:13
US/Easternr   )	r   rE   rF   rQ   CategoricalIndexCategoricalSeriesr    r!   )r"   r<   dtobjcicarrcserobjr$   s           r&   test_categorical_preserves_tz/TestDatetimeIndex.test_categorical_preserves_tz[   s    VV\#8,GL
 99%E $$U+B>>%(D99R=D$'&s+%%f2 ( &r)   c                F   [         R                  " SS/SS9n[        R                  " [        SS9   [        U5        S S S 5        [        R                  " [        SS9   [        U5        S S S 5        [        R                  " [        SS9   [        [        U5      5        S S S 5        [        R                  " [        SS9   [        [        U5      5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ng= f! , (       d  f       g = f)N2016Q12016Q2QrC   zPeriodDtype data is invalidr2   )rE   PeriodIndexr7   r8   	TypeErrorr   r   r   r"   datas     r&    test_dti_with_period_data_raises2TestDatetimeIndex.test_dti_with_period_data_raisesl   s    ~~x2=]]9,IJ$ K ]]9,IJ K ]]9,IJ,t,- K ]]9,IJT*+ KJ KJ KJ KJ KJs/   CC0DD
C-0
C>
D
D c                t   [         R                  " S/SS9nSn[        R                  " [        US9   [        U5        S S S 5        [        R                  " [        US9   [        U5        S S S 5        [        R                  " [        US9   [        [        R                  " U5      5        S S S 5        [        R                  " [        US9   [        [        R                  " U5      5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nr= f! , (       d  f       g = f)Nr   zm8[ns]r6   z3timedelta64\[ns\] cannot be converted to datetime64r2   )	r   r:   r7   r8   rg   r   r   rE   TimedeltaIndex)r"   ri   r=   s      r&   %test_dti_with_timedelta64_data_raises7TestDatetimeIndex.test_dti_with_timedelta64_data_raises|   s    xx8,D]]9C0$ 1 ]]9C0 1 ]]9C0"++D12 1 ]]9C0))$/0 10 10 10 10 10s/   C6D D D)6
D
D
D&)
D7c                    [        S5      [        S5      /n[        R                  R                  U5      n[	        U5      n[        U5      [        L d   eUR                  UR                  :X  d   eg )Nz2012-05-01T01:00:00.000000z2016-05-01T01:00:00.000000)r   rE   arraysSparseArrayr   typer6   )r"   valuesrS   r$   s       r&   "test_constructor_from_sparse_array4TestDatetimeIndex.test_constructor_from_sparse_array   sd     2323
 ii##F+sF|u$$$||syy(((r)   c                B   [         R                  " [        SSSS9[        SS[        R                  " S5      SS9[        S5      [         R                  [        S5      /[        SSSSS9S	.5      nUR                  R                  R                  R                  S:X  d   eg )
N20130101rN   r.   )r0   r1   rW   r/   20130103)r0   rD   r1   )dtdttzdt_with_nulldtns)rE   	DataFramer   zoneinfoZoneInfor   rF   r|   r6   r   key)r"   dfs     r&   test_construction_caching+TestDatetimeIndex.test_construction_caching   s    \\ QTB"h.?.?.MTX j)FFj)!
 #:qt$O
 ww}}##|333r)   kwargsr   zdtype.tzr6   r5   c                    Un[        SSSUSS9nUR                  5        VVs0 s H  u  pVU[        U5      " U5      _M     nnn[        U40 UD6n[        R
                  " XG5        g s  snnf )Nry   rL   hr.   r0   rD   r   r1   )r   itemsr   r   r    r!   )r"   r   tz_aware_fixturer   ir   r#   r$   s           r&   test_construction_with_alt,TestDatetimeIndex.test_construction_with_alt   sh    
 z132DI:@,,.I.hc#z#q)).Iq+F+
a( Js   A'c                   Un[        SSSUSS9nUR                  S 5      nUR                  5        VVs0 s H  u  pVU[        U5      " U5      _M     nnnSU;   aH  [	        UR
                  SS9R                  US   5      n[	        U40 UD6n[        R                  " Xx5        [	        UR                  S 5      R
                  SS9n	UR                  S 5      R                  S5      n[        R                  " X5        S	n
[        R                  " [        U
S
9   [	        UR                  S 5      R
                  UR                  [        R                  " S5      S9  S S S 5        g s  snnf ! , (       d  f       g = f)Nry   rL   r   r.   r   r   r-   r   -cannot supply both a tz and a dtype with a tzr2   z	US/Hawaiir5   )r   
_with_freqr   r   r   asi8
tz_convertr    r!   tz_localizer7   r8   r9   r6   r   r   )r"   r   r   r   r   r   r#   r$   r%   i2r=   s              r&   &test_construction_with_alt_tz_localize8TestDatetimeIndex.test_construction_with_alt_tz_localize   s5   
 z132DILL:@,,.I.hc#z#q)).I6>"166e4??tMF$Q1&1H!!&3 1==.33>==&2259
b+ >]]:S1d#((gg$$[1 21 J 21s   E#AE))
E7c                   [        [        S5      [        S5      /SS9n[        [        S5      [        S5      /SS9n[        R                  " XSS9  [        U[        5      (       d   eUR                  b   e[        [        SSS	9[        S
SS	9/SS9n[        [        S5      [        S
5      /SSS9n[        R                  " XSS9  [        U[        5      (       d   eUR                  c   eUR                  UR                  :X  d   e[        [        SSS	9[        SSS	9/SS9n[        [        S5      [        S5      /SSS9n[        R                  " XSS9  [        U[        5      (       d   eUR                  c   eUR                  UR                  :X  d   e[        [        S5      [        S
SS	9/SS9n[        [        S5      [        S
SS	9/SSS9n[        R                  " XSS9  [        U[        5      (       a   e[        [        SSS	9[        S
SS	9/SS9n[        [        SSS	9[        S
SS	9/SSS9n[        R                  " XSS9  [        U[        5      (       a   eSn[        R                  " [        US9   [        SS/5        S S S 5        [        [        S5      /SS9n[        [        S5      /SS9n[        R                  " XSS9  [        U[        5      (       d   eUR                  b   e[        [        SSS	9/SS9n[        [        S5      /SSS9n[        R                  " XSS9  [        U[        5      (       d   eUR                  c   eUR                  UR                  :X  d   eg ! , (       d  f       N= f)NrB   
2011-01-02idxnameTexact2011-01-01 10:00
Asia/Tokyor   2011-01-02 10:00r   r   rW   2011-08-01 10:00objectr6   r   z6Mixed timezones detected. Pass utc=True in to_datetimer2   z2013-11-02 22:00-05:00z2013-11-03 22:00-06:00)
r   r   r   r    r!   
isinstancer   r7   r8   r9   )r"   r$   expr=   s       r&   ,test_construction_index_with_mixed_timezones>TestDatetimeIndex.test_construction_index_with_mixed_timezones   s   	,/<1HIPUV|$i&=>U
 	f6&-0000yy    ,>,> 
 )*I6H,IJ

 	f6&-0000yy$$$yyCFF""" ,>,> 
 )*I6H,IJ

 	f6&-0000yy$$$yyCFF""" ,-,> 
 ,-,> 
 	f6fm4444,>,> 
 ,>,> 
 	f6fm4444F]]:S135MNO 2 	,/0u=Y|45EB
f6&-0000yy    	"4FGeT)*+5
 	f6&-0000yy$$$yyCFF"""% 21s   M<<
N
c           
        [        [        R                  [        S5      [        R                  [        S5      /SS9n[	        [        R                  [        S5      [        R                  [        S5      /SS9n[
        R                  " XSS9  [        U[        5      (       d   eUR                  b   e[        [        R                  [        SSS	9[        R                  [        S
SS	9/SS9n[	        [        R                  [        S5      [        R                  [        S
5      /SSS9n[
        R                  " XSS9  [        U[        5      (       d   eUR                  c   eUR                  UR                  :X  d   e[        [        SSS	9[        R                  [        SSS	9/SS9n[	        [        S5      [        R                  [        S5      /SSS9n[
        R                  " XSS9  [        U[        5      (       d   eUR                  c   eUR                  UR                  :X  d   e[        [        R                  [        S5      [        R                  [        S
SS	9/SS9n[        [        R                  [        S5      [        R                  [        S
SS	9/SSS9n[
        R                  " XSS9  [        U[        5      (       a   e[        [        R                  [        SSS	9[        R                  [        S
SS	9/SS9n[        [        R                  [        SSS	9[        R                  [        S
SS	9/SSS9n[
        R                  " XSS9  [        U[        5      (       a   e[        [        R                  [        R                  /SS9n[	        [        R                  [        R                  /SS9n[
        R                  " XSS9  [        U[        5      (       d   eUR                  b   eg )NrB   r   r   r   Tr   r   r   r   r   r   rW   r   r   r   )	r   rE   rF   r   r   r    r!   r   r   )r"   r$   r   s      r&   5test_construction_index_with_mixed_timezones_with_NaTGTestDatetimeIndex.test_construction_index_with_mixed_timezones_with_NaT9  s   VVY|,bffi6MN
 VVY|,bffi6MN
 	f6&-0000yy    ,>,>	 
 ,-,-	 	
 	f6&-0000yy$$$yyCFF""" ,>,>
 
 )*BFFI>P4QR

 	f6&-0000yy$$$yyCFF""" ,-,>	 
 ,-,>	 	
 	f6fm4444,>,>	 
 ,>,>	 	
 	f6fm4444 'e4RVVRVV,59
f6&-0000yy   r)   c           	        [        [        S5      [        S5      /SS9n[        [        S5      [        S5      /SS9n[        R                  " XSS9  [	        U[         5      (       d   e[        [        SSS	9[        S
SS	9/SS9n[        [        S5      [        S
5      /SSS9n[        R                  " XSS9  [	        U[         5      (       d   e[        [        SSS	9[        SSS	9/SS9n[        [        S5      [        S5      /SSS9n[        R                  " XSS9  [	        U[         5      (       d   eSn[
        R                  " [        US9   [        [        SSS	9[        S
SS	9/SS9  S S S 5        [        [        S5      [        S
SS	9/SSS9n[        [        SSS	9[        S
SS	9R                  S5      /SSS9n[        R                  " XE5        [        [        SSS	9[        S
SS	9/SSS9n[        [        SSS	9R                  S5      [        S
SS	9/SSS9n[        R                  " XE5        [        [        SSS	9[        S
SS	9/SSS9n[        R                  " XE5        g ! , (       d  f       GN= f)NrB   r   r   r   Tr   r   r   r   r   r   rW   r   z!cannot be converted to datetime64r2   zM8[us, US/Eastern]r   )	r   r   r    r!   r   r7   r8   r9   r   )r"   r$   r   r=   r<   r%   s         r&   *test_construction_dti_with_mixed_timezones<TestDatetimeIndex.test_construction_dti_with_mixed_timezones  s    |$i&=>U
 |$i&=>U
 	f6&-0000 ,>,> 
 )*I6H,IJ

 	f6&-0000 ,>,> 
 )*I6H,IJ

 	f6&-0000 2]]:S10\B0\B  2 ,-,> 
 !,>,>II,W 
 	c, ,>,> 
 !,>II,W,> 
 	c, ,>,> '
 	c,w 21s   I**
I9c                   [        S5      [        R                  [        S5      /n[        R                  " [        U5      [        U5      5        [        R                  " [        [        R                  " U5      5      [        [        R                  " U5      5      5        [        R                  [        R                  [        S5      /n[        R                  " [        U5      [        U5      5        [        R                  " [        [        R                  " U5      5      [        [        R                  " U5      5      5        g )NrB   z
2011-01-03)
r   rE   rF   r    r!   r   r   r   r:   nan)r"   rS   s     r&   "test_construction_base_constructor4TestDatetimeIndex.test_construction_base_constructor  s    &	,0GH
eCj-*<=
eBHHSM2M"((3-4PQvvrvvy67
eCj-*<=
eBHHSM2M"((3-4PQr)   c                    [        SSS5      [        SSS5      [        SSS5      [        SSS5      /n[        USS9n[        U5      n[        R                  " X25        [	        U5        g )Ni  r   i  i  ip  M8[us]rm   )r   r   r    r!   r   )r"   datesr   ress       r&   test_construction_outofbounds/TestDatetimeIndex.test_construction_outofbounds  sh     T1a T1a T1a T1a 	
 E*El
c'er)   ri   z
1400-01-01ix  r   c                    [        U5        g )N)r   rh   s     r&   test_dti_date_out_of_range,TestDatetimeIndex.test_dti_date_out_of_range+  s     	dr)   c                   [        SSS5      [        SSS5      [        SSS5      /n[        U[        R                  " 5       S9R                  n[        U[        R                  " 5       S9n[        / SQSS	S
9n[
        R                  " X45        g )Ni  r,         	   rC   )z
2013-10-07z
2013-10-08z
2013-10-09r   Br6   rD   )r   r   r   BDayru   r    r!   )r"   r   ri   r$   r%   s        r&   test_construction_with_ndarray0TestDatetimeIndex.test_construction_with_ndarray0  su    $A&r1(=xbRS?TUU8??t',,.9 6hS
 	f/r)   c                   [         R                  " SS5      n[         R                  " UR                  S5      /5      n[	        U5      R                  S5      n[	        S/SS9n[        R                  " X45        [        R                  " S 5         [	        USS	9nS S S 5        [	        S/S
S9n[        R                  " X45        g ! , (       d  f       N0= f)Nz2000-01-01 00:00:00r.   i8
US/Centralz2000-01-01T00:00:00zM8[ns, US/Central]rm   r-   r   r4   )	r   r   r:   viewr   r   r    r!   assert_produces_warning)r"   r#   ru   r$   r%   s        r&   -test_integer_values_and_tz_interpreted_as_utc?TestDatetimeIndex.test_integer_values_and_tz_interpreted_as_utc:  s    mm148388D>*+v&22<@ "7!8@TU
f/ ''-"6e4F . "7!8N
f/ .-s   C
Cc           
     `   Sn[         R                  " [        US9   [        S5        S S S 5        S [	        S5       5       n[        U5      n[        [	        S5       Vs/ s H  n[        SSS5      [        U5      -   PM     sn5      n[        R                  " X55        [        R                  " / SQ5      n[        U5      n[        UR                  S	5      5      n[        R                  " X55        [        UR                  S
5      R                  5      R                  S5      n[        R                  " Xu5        [        R                  " / SQ5      n[        U5      n[        UR                  S	5      5      n[        R                  " X55        [        UR                  S
5      R                  5      R                  S5      n[        R                  " Xu5        Sn[         R                  " [        US9   [        / SQSS9  S S S 5        g ! , (       d  f       GN= fs  snf ! , (       d  f       g = f)Nz8DatetimeIndex\(\.\.\.\) must be called with a collectionr2   1/1/2000c              3  T   #    U  H  n[        S SS5      [        U5      -   v   M      g7f)  r   N)r   r   ).0r   s     r&   	<genexpr>>TestDatetimeIndex.test_constructor_coverage.<locals>.<genexpr>P  s"     FIqxa#il2Is   &(r,   r   r   )
2000-01-01
2000-01-02z
2000-01-03Or.   us)r   r   rF   rA   )r   r   z
2000-01-04r   rC   )r7   r8   rg   r   ranger   r   r    r!   r   r:   r   as_unitr   r9   )r"   r=   genr$   r   r%   strings	from_intss           r&   test_constructor_coverage+TestDatetimeIndex.test_constructor_coverageJ  s   I]]9C0*% 1 GE"IFs# :?)D)QXdAq!IaL0)D
 	f/ ((EFw' !45
f/!("2"24"8"="=>FFtL	
i2 ((>?w' !45
f/!("2"24"8"="=>FFtL	
i2$ 	 ]]:S1D3O 21E 10 E6 21s   H#H2H
H
H-rD   YSzW-SUNc                   [        SSUS9n[        SSU[        [        SS95      S9n[        R                  " X#5        [        SSUS	S9n[        R
                  " UR                  UR                  5        [        S
SUS9n[        SSU[        [        SS95      S9n[        R                  " X#5        [        SSUSS9n[        R
                  " UR                  UR                  5        [        SSUS9n[        SSU[        [        SS95      S9n[        R                  " X#5        [        SSUS	S9n[        R
                  " UR                  UR                  5        [        SSUS9n[        SSU[        [        SS95      S9n[        R                  " X#5        [        SSUSS9n[        R
                  " UR                  UR                  5        g )Nz2013-01-01T00:00:00-05:00z2016-01-01T23:59:59-05:00rC   z2013-01-01T00:00:00z2016-01-01T23:59:59i)minutesrD   r   zAmerica/Limaz2013-01-01T00:00:00+09:00z2016-01-01T23:59:59+09:00i  r   z2013/1/1 0:00:00-5:00z2016/1/1 23:59:59-5:00z2013/1/1 0:00:00+9:00z2016/1/1 23:59:59+09:00)r   r   r   r    r!   assert_numpy_array_equalr   )r"   rD   r   r%   expected_i8s        r&   $test_constructor_datetime64_tzformat6TestDatetimeIndex.test_constructor_datetime64_tzformatq  s    ')D4
 !!	$/0	
 	c, !#8t
 	##CHHk.>.>?')D4
 !!	#./	
 	c, !#8t
 	##CHHk.>.>? 02JQUV!!	$/0	
 	c, !#8t
 	##CHHk.>.>?02KRVW!!	#./	
 	c, !#8t
 	##CHHk.>.>?r)   c                    [        SS/SS9n[        SS/5      R                  S5      R                  S5      n[        R                  " X5        [        SS/SS9R                  S5      n[        R                  " X5        g )N
2013-01-01
2013-01-02datetime64[ns, US/Eastern]rm   r.   rW   r   )r   r   r   r    r!   )r"   r   r%   s      r&   test_constructor_dtype(TestDatetimeIndex.test_constructor_dtype  sy    <(0L
 <67WT][& 	
 	c,\<8\JRRSWX
c,r)   c                   [        SS/SS9nSn[        R                  " [        US9   [        USS9  S S S 5        Sn[        R                  " [        US9   [        US	S9  S S S 5        S
n[        R                  " [        US9   [        USSS9  S S S 5        [        USS9n[
        R                  " X5        g ! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       NQ= f)Nr   r   r   rm   zNcannot supply both a tz and a timezone-naive dtype \(i\.e\. datetime64\[ns\]\)r2   datetime64[ns]zDdata is already tz-aware US/Eastern, unable to set specified tz: CETzdatetime64[ns, CET]r   CET)r   r6   )r   r7   r8   r9   rg   r    r!   )r"   r   r=   r$   s       r&   )test_constructor_dtype_tz_mismatch_raises;TestDatetimeIndex.test_constructor_dtype_tz_mismatch_raises  s    <(0L

+ 	 ]]:S1#%56 2 U]]9C0#%:; 1=]]:S1#%/KL 2 s*FG
c* 21
 10 21s#   B9C
C9
C

C
C)c                    Sn[         R                  " [        US9   [        SS/US9  S S S 5        g ! , (       d  f       g = f)NzUnexpected value for 'dtype'r2   r   rO   rm   )r7   r8   r9   r   )r"   r6   r=   s      r&   %test_constructor_invalid_dtype_raises7TestDatetimeIndex.test_constructor_invalid_dtype_raises  s1     -]]:S11a&. 211s	   2
A c                p    [        S5      n[        U/5      nUR                  S   UR                  :X  d   eg )Nl   )b0Z4 r   )r   r   
nanosecond)r"   t1r   s      r&   test_000constructor_resolution0TestDatetimeIndex.test_000constructor_resolution  s4    EFRD!~~a BMM111r)   c                    [        S/SS9nSn[        R                  " [        US9   [        R
                  " S5      Ul        S S S 5        g ! , (       d  f       g = f)N2010r-   r   zCannot directly set timezoner2   r   )r   r7   r8   AttributeErrorr   r   r   r;   s      r&   test_disallow_setting_tz*TestDatetimeIndex.test_disallow_setting_tz  sA    VH/,]]>5&&|4CF 655s   A
ANAmerica/Los_Angeles2000r   c                    [        SSS9n[        SSS9n[        SX#USS9n[        SS/SSS	9n[        R                  " XE5        [
        R                  " S5      UR                  L d   eg )
Nz2013-01-01 06:00:00r   r   z2013-01-02 06:00:00r   r.   )rD   startendr   r1   zM8[ns, America/Los_Angeles]r   )r   r   r   r    r!   r   r   r   )r"   r   r  r  r$   r%   s         r&   "test_constructor_start_end_with_tz4TestDatetimeIndex.test_constructor_start_end_with_tz  sw     /4IJ-2GHErM "$9:/

 	f/  !67699DDDr)   )r   rW   r   c                    [         R                  " S5      nUR                  U5      n[        SUS9R                  n[        S/US9nUR                  U5      UR                  L d   eg )Npytzr   r   )r7   importorskipr   r   r   r   )r"   r   r  tz_innon_norm_tzr$   s         r&   )test_constructor_with_non_normalized_pytz;TestDatetimeIndex.test_constructor_with_non_normalized_pytz  s]     ""6*b!5144xK8}}R FII---r)   c                   [        SSS9[        SSS9/n[        U5      R                  S5      n[        US   R                  5       US   R                  5       /5      R                  S5      n[        R
                  " X#5        g )Nz2016-10-30 03:00:00+0300zEurope/Helsinkir   z2016-10-30 03:00:00+0200r.   r   r   )r   r   r   to_pydatetimer    r!   )r"   tsr$   r%   s       r&   #test_constructor_timestamp_near_dst5TestDatetimeIndex.test_constructor_timestamp_near_dst  s     05FG05FG
 r"**40 U  "BqE$7$7$9:

'$- 	 	f/r)   klassboxrm   z	tz, dtype)r   zdatetime64[ns, US/Pacific])Nr   c                    [        SUS9R                  S5      nU" U" UR                  /5      US9nU" U/5      nXg:X  d   eg )Nz
2018-01-01r   r.   rm   )r   r   rG   )r"   r  r  r   r6   r  r$   r%   s           r&   test_constructor_with_int_tz.TestDatetimeIndex.test_constructor_with_int_tz  sI     |+33D9sBII;'u5";!!!r)   c                J    UnSn[        U/US9R                  S   nX4:X  d   eg )Nl     _S r   r   )r   r   )r"   tz_naive_fixturer   r$   r%   s        r&   test_construction_int_rountrip0TestDatetimeIndex.test_construction_int_rountrip$  s1    $ &b166q9!!!r)   c           
        [        [        SSS5      [        SSS5      SSSS9n[        U Vs/ s H  o"R                  S	S
S9PM     sn5      n[        / SQSS9R	                  S5      n[
        R                  " X45        g s  snf )Nr           zYE-DECzAustralia/Melbourner.   )rD   r   r1      r   )monthday)z2000-06-01 00:00:00z2001-06-01 00:00:00z2002-06-01 00:00:00z2003-06-01 00:00:00z2004-06-01 00:00:00z2005-06-01 00:00:00r   )r   r   r   replacer   r    r!   )r"   rK   xr$   r%   s        r&   3test_construction_from_replaced_timestamps_with_dstETestDatetimeIndex.test_construction_from_replaced_timestamps_with_dst,  s    dB#dB#$
 5I5a		q	 95IJ  %

 '$- 	 	f/  Js   A?c                    [        SSSS9nSn[        R                  " [        US9   [	        USS9  S S S 5        g ! , (       d  f       g = f)	Nr+   rN   r   )r0   r   z?data is already tz-aware US/Central, unable to set specified tzr2   r   r   )r   r7   r8   rg   r   r;   s      r&   *test_construction_with_tz_and_tz_aware_dti<TestDatetimeIndex.test_construction_with_tz_and_tz_aware_dtiC  s9    q\BO]]9C0#,/ 100s	   ;
A	c                   [         R                  R                  5       n[        SS/US9R	                  S5      n[        [        SUS9[        R                  /5      R	                  S5      n[        R                  " X#5        g )N2018rF   r   r.   )
dateutilr   tzlocalr   r   r   rE   rF   r    r!   )r"   r   r$   r%   s       r&   &test_construction_with_nat_and_tzlocal8TestDatetimeIndex.test_construction_with_nat_and_tzlocalJ  sb    [[  "26>>tD )Fr":BFF!CDLLTR
f/r)   c                   [        SS/SSSS9nSn[        SS	S
S
S9R                  USS9n[        USSSS9n[        R
                  " XA5        Sn[        SS	SS
S9R                  USS9n[        USSSS9n[        R
                  " XA5        g )Nz2020-11-01 01:00:00z2020-11-02 01:00:00z datetime64[ns, America/New_York]r   F)r6   rD   	ambiguouszAmerica/New_Yorki     r   )yearr   r!  hour)r0  rO   r.   )r  r0   r0  r1   )r  r0   r0  r1   )r   r   r   r   r    r!   )r"   r%   r   r  r$   r  s         r&   +test_constructor_with_ambiguous_keyword_arg=TestDatetimeIndex.test_constructor_with_ambiguous_keyword_argP  s     !"$9:4	
 &t211=II J 
 %e$O
f/ &T;GG H 
 Q%dK
f/r)   c                v   Un[        S5      R                  USS9n[        USSSS9n[        [        SUS	9[        S
US	9/5      R	                  S5      n[
        R                  " XE5        Un[        USSSS9n[        [        SUS	9[        SUS	9/5      R	                  S5      n[
        R                  " XE5        g )Nz2015-03-29 02:30:00shift_forward)nonexistentrO   r   r.   )r  r0   rD   r1   z2015-03-29 03:00:00+02:00r   z2015-03-29 04:00:00+02:00)r  r0   rD   r1   z2015-03-29 01:00:00+01:00)r   r   r   r   r   r    r!   )r"   warsawr   r  r$   r%   r  s          r&   -test_constructor_with_nonexistent_keyword_arg?TestDatetimeIndex.test_constructor_with_nonexistent_keyword_argj  s     /0<</ = 
 %4H 5(C5(C

 '$- 	 	f/ QStD 5(C5(C

 '$- 	 	f/r)   c                   Sn[         R                  " [        US9   [        S/SS9  S S S 5        Sn[         R                  " [        US9   [	        S/SS9  S S S 5        g ! , (       d  f       N>= f! , (       d  f       g = f)Nz with no precision is not allowedr2   r   r   rm   z2The 'datetime64' dtype has no unit. Please pass in)r7   r8   r9   r   r   rH   s     r&   $test_constructor_no_precision_raises6TestDatetimeIndex.test_constructor_no_precision_raises  sd     1]]:S16(,7 2 C]]:S16(,/ 21	 21 21s   A A1 
A.1
A?c                j    [        S/SS9nUR                  S:X  d   eUS   [        SSS5      :X  d   eg )Nr   zdatetime64[us]rm   r   r   r   r   )r   r6   r   )r"   r<   s     r&   'test_constructor_wrong_precision_raises9TestDatetimeIndex.test_constructor_wrong_precision_raises  s>    VH,<=yyH$$$1v4A....r)   c           	         [        [        R                  " [        SSS9[        R                  /[
        S95      n[        [        SSS9[        R                  /5      n[        R                  " X5        g )N2019r-   r   rm   )r   r   r:   r   r   r   r   rE   rF   r    r!   )r"   r$   r%   s      r&   Htest_index_constructor_with_numpy_object_array_and_timestamp_tz_with_nanZTestDatetimeIndex.test_index_constructor_with_numpy_object_array_and_timestamp_tz_with_nan  sO    rxx6e!<bff EVTU )Fu"=rvv!FG
f/r)   rW   c                    [        SSSUS9/n[        U5      n[        R                  " UR                  U5      (       d   eg )N  r      )tzinfo)r   r   r   
tz_comparer   )r"   r   drK   s       r&   test_dti_from_tzaware_datetime0TestDatetimeIndex.test_dti_from_tzaware_datetime  s>     dAr"-.a ##EHHb1111r)   tzstrzdateutil/US/Easternc                N   SS/n[        U5      R                  U5      n[        SSSUSS9nUR                  S5      n[	        X!S	9n[	        [
        R                  " U5      US	9n[        R                  " X45        [        R                  " X55        [        R                  " X65        g)
zNTest different DatetimeIndex constructions with timezone
Follow-up of GH#4229
z11/10/2005 08:00:00z11/10/2005 09:00:00z2005-11-10 08:00:00r   rO   r   )r  rD   r0   r   r1   Nr   )	r   r   r   r   r   r   r:   r    r!   )r"   rN  rS   idx1idx2idx3idx4s          r&   test_dti_tz_constructors*TestDatetimeIndex.test_dti_tz_constructors  s    
 %&;<3++E2'c1T
 t$S+RXXc]u5
d)
d)
d)r)   c                ^    [        SSSSUS9n[        USS9n[        R                  " X#5        g )Nz03/12/2012 00:00r,   zW-FRIrW   r   )ri   r   r   r   r    r!   )r"   r1   rngrng2s       r&    test_dti_construction_idempotent2TestDatetimeIndex.test_dti_construction_idempotent  s4    \PT
 #,7
c(r)   prefix z	dateutil/c                X    [        [        SSS5      /US-   S9nUR                    US     g )NrG  r   ESTr   r   )r   r   r3  )r"   r\  rK   s      r&   "test_dti_constructor_static_tzinfo4TestDatetimeIndex.test_dti_constructor_static_tzinfo  s.     xa34%H

ar)   c                p    [        SSUSS9n[        [        U5      SSS9n[        R                  " X#5        g )Nz
2012-06-02r,   foo)r0   r   r   r   )r   rD   )r   r   listr    r!   )r"   rN  drdr2s       r&   test_dti_convert_datetime_list0TestDatetimeIndex.test_dti_convert_datetime_list  s2    bUGDH5s;
b&r)   zpytz/US/Easternuse_strTFbox_clsc                T   [        U[        5      (       aL  UR                  S5      (       a6  [        R                  " S5      nUR                  UR                  S5      5      nSnUnU(       d  [        U5      R                  5       nU[        La  U/nU(       dW  [        U[        R                  R                  5      (       a.  [        R                  R                  SS9nUR                  U5        [        R                  " [         US9   U" XqS9  S S S 5        g ! , (       d  f       g = f)Nzpytz/r  z2013-11-03 01:59:59.999999zWe implicitly get fold=0.)reasonr2   r   )r   str
startswithr7   r  r   removeprefixr   r  r+  r   tzfilemarkxfailapplymarkerr8   r9   )	r"   r   ri  rj  requestr  dtstritemrq  s	            r&   $test_dti_ambiguous_matches_timestamp6TestDatetimeIndex.test_dti_ambiguous_matches_timestamp  s     b#2==#9#9&&v.Drw78B,U#113D)#6D:b(++*<*<==
 ;;$$,G$HD%]]:U3D  433s   	D
D')Nr-   r   c                B   [        S5      nSnUb  SU S3nUSS/n[        XCS9nUS   R                  U5      [        US	   US
9[        US   SSS9R	                  U5      /nU Vs/ s H  owR                  S5      R                  PM     nn[        R                  " USS9n	[        U	SS9n
Ub   U
R                  S5      R	                  U5      n
[        R                  " XZ5        [        [        R                  " U[        S9US9n[        R                  " X5        g s  snf )Nz
2999-01-01r   zM8[us, ]z2999-01-02 03:04:05.678910i	  rm   r   r   r   rO   r   T)r1   utcr-   )r   r   r   r   r   r   asm8r   r:   r    r!   r   )r"   r   r  r6   valsr$   	pointwiser#  exp_valsexp_arrr%   result2s               r&   (test_dti_constructor_with_non_nano_dtype:TestDatetimeIndex.test_dti_constructor_with_non_nano_dtype  s    |$>bTOE0$7t1
 G#d1g"%Qd5@@D
	
 3<<)QIIdO(()<((884 9>++E2==bAH
f/V <EJ
g0 =s   &$Dc                >   [         R                  " 5       n[         R                  " 5       n[        SS/SS9nUR                  S:X  d   eUS   UR                  S5      -
  nUS   UR                  S5      -
  nU[        R                  " S5      :  d
   SU 35       eU[        R                  " S5      :  d
   SU 35       eUR                  [        R                  R                  S	S
S95        [        R                  " SS9nXW:  d
   SU 35       eXg:  d
   SU 35       eg )Nnowtodayr   rm   r   sr   zThe difference is z)result may not exactly match [now, today]F)rl  strict)seconds)r   r  r  r   r6   r   rE   	Timedeltars  r7   rq  rr  )r"   rt  r  r  r$   diff0diff1	tolerances           r&   ,test_dti_constructor_with_non_nano_now_today>TestDatetimeIndex.test_dti_constructor_with_non_nano_now_today
  s   mmo!w/w?||w&&&q	CKK,,q	EMM#..Q'E+=eW)EE'Q'E+=eW)EE'
 	KKB5  	

 LL+	 >$6ug">>  >$6ug">> r)   c                    [         R                  " S[         R                  /[         R                  S9nUR	                  [
        5      n[        USS9n[        USS9n[        R                  " X45        g )Nr   rm   r   r   )	r   r:   r   float64r   r   r   r    r!   )r"   rS   arr2dti1dti2s        r&   5test_dti_constructor_object_float_matches_float_dtypeGTestDatetimeIndex.test_dti_constructor_object_float_matches_float_dtype"  sR    hh266{"**5zz&!SU+Te,
d)r)   r   zM8[us, US/Pacific]c                   [         R                  " SSS9S-  n[        R                  R                  US'   UR                  [         R                  5      n[         R                  US'   UR                  [        5      n[        R                  US'   UR                  [        5      n[        X!S9n[        X1S9n[        XAS9n[        XQS9n	[        UR                  S5      5      n
UR                  b*  U
R                  S5      R                  UR                  5      n
[        R                  " Xj5        [        R                  " Xz5        [        R                  " X5        [        R                  " X5        g )NrL   r   rm     r   r   r-   )r   arangerE   rF   valuer   r  r   r   r   r   r   r   r   r    r!   )r"   r6   vals1vals2vals3vals4res1res2res3res4r%   s              r&   <test_dti_constructor_with_dtype_object_int_matches_int_dtypeNTestDatetimeIndex.test_dti_constructor_with_dtype_object_int_matches_int_dtype+  s    		!4(4/66<<aRZZ(66aV$ 66aV$U0U0U0U0 H!5677++E2==dggFH
d-
d-
d-
d-r)    )K__name__
__module____qualname____firstlineno__r'   r>   rI   r7   rq  parametrizer   rE   timedelta_rangerT   r`   rj   ro   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   int32int64r   r   r   r   r   r   r   r  r  r  r   r   r:   r   rd  r  r  r$  r'  r-  r4  r:  r=  r@  rD  r	   rL  rT  rZ  r`  rg  rw  r  r  r  r  __static_attributes__r  r)   r&   r   r   $   s   0<
N [[|Q<dKw2	
	#	#3", 1 	)4" [[

	gw/7*1UV)	) [[

	gw/7*1UV	4f#Pl!\k-ZR [[V|nxa7K6L%MN O00 %PN [[VdG_5;@ 6;@z-+0 [[Wvrxx&BC/ D/25 [[!34f!67::		
EE [[T#MN. O.
0 [[Wum&<=[[URXXwrxxv/NPT$UV[[	57OP"	 W >""0.00040<	0/
0 [[x  .l0CD22 [[W|5J&KL* M*$) [[XK'89 : [[W|5J&KL' M'
 [[,	
 [[Yu6[[YM(BC! D 7!0 [[T#>?1 @14?0* [[Wx1E&FG. H.r)   r   c                      \ rS rSrS rS rS rS rS rS r	\
R                  R                  S/ S	Q5      S
 5       rS rS rSrg)TestTimeSeriesiJ  c                h    [        SSSS9n[        U5      nUR                  UR                  :X  d   eg Nr   z1/2/20005minrC   )r   r   rD   )r"   rX  rY  s      r&   &test_dti_constructor_preserve_dti_freq5TestTimeSeries.test_dti_constructor_preserve_dti_freqK  s0    Zf=S!xx499$$$r)   c                    [        SSSS9n[        US S9nUR                  b   e[        UR                  S S9nUR                  b   eg r  )r   r   rD   rQ   )r"   rX  r$   s      r&   test_explicit_none_freq&TestTimeSeries.test_explicit_none_freqQ  sL    Zf=s.{{"""syyt4{{"""r)   c                    [        / SQ5      n[        R                  " / SQUS9n[        R                  " [        U5      U5        g )N)z1970-01-01 00:00:00.00000000z1970-01-01 00:00:00.00000001z1970-01-01 00:00:00.00000002)r   r,      rm   )r   r   r:   r    r!   )r"   any_int_numpy_dtyper   rS   s       r&   test_dti_constructor_small_int-TestTimeSeries.test_dti_constructor_small_int[  s9    
 hh{*=>
mC0#6r)   c                F    [        S/5      nUS   R                  S:X  d   eg )Nz1-1-2000 00:00:01r   r   )r   second)r"   rX  s     r&   test_ctor_str_intraday%TestTimeSeries.test_ctor_str_intradayh  s&    0121v}}!!!r)   c                   [         R                  " SSS[         R                  S9R                  S5      n[	        U5      nUR
                  [        U[         R                  " S5      S9:H  R                  5       (       d   eg )Nr   d   r,   rm   zM8[D]zM8[ns])	r   r  r  r   r   ru   r
   r6   all)r"   rS   r   s      r&   &test_index_cast_datetime64_other_units5TestTimeSeries.test_index_cast_datetime64_other_unitsl  s]    ii3"((388ACj

1#RXXh=OPPUUWWWWr)   c                h   [         R                  " S[         R                  S9n[        USS9nSUSS& UR                  SS S:H  R                  5       (       d   e[         R                  " S[         R                  S9n[        USS9nSUSS& UR                  SS S:g  R                  5       (       d   eg )	Nr  rm   F)copy2   r  T)r   r  r  r   r   r  )r"   rS   rK   s      r&   test_constructor_int64_nocopy,TestTimeSeries.test_constructor_int64_nocopyr  s    iiBHH-c.Bs

2c"b(--////iiBHH-c-Bs

2c"b(--////r)   rD   )MEQEYEr   r   bhminr  msr   r   r.   Cc                    [        SUSS9n[        X!S9n[        R                  " X25        [        SUSSS9n[        X!SS9n[        R                  " X25        g )Nz2001/02/01 09:00r   )r  rD   r0   rC   r   )r  rD   r   r0   r   rW  )r"   rD   orgr   s       r&   !test_from_freq_recreate_from_data0TestTimeSeries.test_from_freq_recreate_from_data  sZ    
 1aHC+
c'$4L!
 C|<
c'r)   c                @   / SQnSn[         R                  " [        US9   [        U5        S S S 5        / SQn[        U5      n[	        SSS5      SSS	/n[        U5      n[        [	        SSS5      5      SSS	/n[        U5      n[        R                  " / SQS
S9n[        U5      n[        SS/SS9n[        SS/SSS9n[        R                  " Xx5        XEU4 H1  n	UR                  U	R                  :H  R                  5       (       a  M1   e   g ! , (       d  f       N= f)N)1/1/20051/2/2005z
Jn 3, 2005
2005-01-04z9(\(')?Unknown datetime string format(:', 'Jn 3, 2005'\))?r2   )r  r  1/3/2005r  r  r   r  r  r  r   rm   z
12/05/2007z
25/01/2008T)dayfirstz
2007/05/12z
2008/01/25F)r  	yearfirst)r7   r8   r9   r   r   r   r   r:   r    r!   ru   r  )
r"   rS   r=   rP  rQ  rR  rS  idx5idx6others
             r&   #test_datetimeindex_constructor_misc2TestTimeSeries.test_datetimeindex_constructor_misc  s   BJ]]:S1# 2 AS!a#Z\JS!$1-.
JUS!hhIQTUS!lL9DI<(5D
 	d)$'EKK5<</446666 (+ 21s   D
Dc                    Sn[        SSSSS9n[        SSSSS9n[        U/SS	S
9n[        U/5      n[        R                  " XE5        [        U/SS	S9n[        U/5      n[        R                  " Xg5        g )Nz5/10/16i  r,   rL   r   r   r     T)r   r  )r   r  )r   r   r    r!   )r"   r#   dfirstyfirstresult1	expected1r  	expected2s           r&   <test_dti_constructor_object_dtype_dayfirst_yearfirst_with_tzKTestTimeSeries.test_dti_constructor_object_dtype_dayfirst_yearfirst_with_tz  s{    4Q<84RL9,F!6(+	
g1,$G!6(+	
g1r)   r  N)r  r  r  r  r  r  r  r  r  r  r7   rq  r  r  r  r  r  r  r)   r&   r  r  J  sT    %#7"X0 [[R	(		(762r)   r  )"
__future__r   r   r   r   	functoolsr   operatorr   r   r+  dateutil.tzr	   numpyr   r7   pandas._libs.tslibsr
   r   pandasrE   r   r   r   r   r   r   pandas._testing_testingr    pandas.core.arraysr   r   r  r  r)   r&   <module>r     sa    " 
        
    +c. c.L!m2 m2r)   