
    A>io8                        S r SSKJrJr  SSKrSSKJrJr  SSKrSSK	r	SSK
Jr  SSKrSSKJrJrJrJrJr  SSKJr  S rS r\	R2                  R5                  S	S
S/5      S 5       rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(g)z<
Also test support for datetime64[ns] in Series / DataFrame
    )datetime	timedeltaN)gettztzutcindex)	DataFrameSeries	Timestamp
date_rangeperiod_rangec            
          [        S[        SSS5      [        SSS5      S9n [        [        R                  " [        U 5      5      U S9nUS   S:X  d   eUS	   S:X  d   eU[        S
SS5         S:X  d   eU[        [        S
SS5      5         S:X  d   e[        R                  " [        SS9   US     S S S 5        [        R                  " USS U[        S
SS5      [        S
SS5       5        g ! , (       d  f       NB= f)NWOM-1FRI       freqstartendr   1/2/20090   z2009-1-2i     z^'2009-1-3'$matchz2009-1-3z3/6/2009
2009-06-05         )r   r   r
   nparangelenr   pytestraisesKeyErrortmassert_series_equaldtiss     i/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/series/indexing/test_datetime.pytest_fancy_getitemr,      s    
xa3$19MC 	ryyS"#.AZ=BZ=BXdAq!"b(((Yxa+,-333	x	7	* 
8	*\"AhtQ&:XdAq=Q$R 
8	7s   -C//
C=c            	         [        S[        SSS5      [        SSS5      S9n [        [        R                  " [        U 5      5      U S9nSUS'   UR                  S	   S:X  d   eS
USS& US	S S
:H  R                  5       (       d   eg )Nr   r   r   r   r   r   r   r   r   6   )r   r   r
   r    r!   r"   ilocallr(   s     r+   test_fancy_setitemr3   1   s    
xa3$19MC 	ryyS"#.AAjM66":!#AjbHN!!!!    	tz_sourcepytzdateutilc                 ~   U S:X  a#  [         R                  " U 5      nUR                  nOS nSn[        SUSU" S5      S9n[	        [
        R                  R                  S5      R                  U5      US	9nUR                  5       nS
US'   UR                  S   US'   [        R                  " Xe5        UR                  5       nS
US'   UR                  S   US'   [        R                  " Xe5        UR                  5       nS
U[        SSSSU" S5      S9'   UR                  S   U[        SSSSU" S5      S9'   [        R                  " Xe5        UR                  5       n[        SSSS5      R                  U" S5      5      nUR!                  5       nS
Xg'   UR                  S   Xg'   [        R                  " Xe5        g )Nr6   c                 8    U S:X  a
  [        5       $ [        U 5      $ )NUTC)r   r   )xs    r+   <lambda>2test_getitem_setitem_datetime_tz.<locals>.<lambda>E   s    Q%Z%'=U1X=r4   2   1/1/1990h
US/Eastern)periodsr   tzr   r   r   z1990-01-01 09:00:00+00:00   z1990-01-01 03:00:00-06:00  r   	   r:   )tzinfor   
US/Central)r#   importorskiptimezoner   r
   r    randomdefault_rngstandard_normalcopyr1   r&   r'   r   r   tz_localizeto_pydatetime)r5   r6   tzgetNrngtsresultdts           r+    test_getitem_setitem_datetime_tzrW   >   s   F""9- >
A
Z|9L
MC			%%a(88;3	GB WWYF*+F&'*,''!*F&'6&WWYF*+F&'*,''!*F&'6& WWYF;<F8D!Q%,78;=771:F8D!Q%,786&WWYF	4Aq	!	-	-eL.A	BB				BFJFJ6&r4   c            
      
   Sn [        SU SSSS9n[        [        R                  R	                  S5      R                  U 5      US9nUS	   nUR                  S
   nX4:X  d   eUR                  5       nSUS	'   UR                  S
   US	'   [        R                  " X25        US	S nUS
S n[        R                  " X45        UR                  5       nSUS	S& US
S US	S& [        R                  " X25        S	nSnX"R                  U:  UR                  U:*  -     nUS
S n[        R                  " X45        SnSnX"R                  U:  UR                  U:*  -     nUS
S n[        R                  " X45        Sn[        SSSS
5      nU[        U5      [        R                  " US5      4 HF  n	[        R                  " [         ["        R$                  " ['        U	5      5      S9   X)     S S S 5        MH     UR                  5       nUR                  S
   X8'   UR                  R(                  [*        :X  d   e[        R,                  " UR                  S S UR/                  [*        5      5        UR                  S   U:X  d   eSn[        R                  " [0        US9   X([        SSSS5         S S S 5        UR                  5       n[        R                  " [0        US9   SX8[        SSSS5      & S S S 5        [        R                  " [0        US9   SX8[        SSSS5      & S S S 5        [        R                  " X25        Un[        SSSS5      nSn[        R                  " [0        US9   X"R                  U:  UR                  U:*  -       S S S 5        [        U5      R3                  UR4                  5      n[        [        SSSS5      5      R3                  UR4                  5      nX"R                  U:  UR                  U:*  -     nUS
S n[        R                  " X45        X"R                  S
      nUR                  S
   nX4:X  d   eX"R                  S
S    nUS
S n[        R                  " X45        UR                  5       nSX2R                  S
S '   UR                  S
S UR                  S
S& [        R                  " X25        US   nUSS n[        R                  " X45        UR                  5       nSUS'   USS US'   [        R                  " X25        g ! , (       d  f       GM  = f! , (       d  f       GN= f! , (       d  f       GN[= f! , (       d  f       GN;= f! , (       d  f       GN= f)Nr>   r?   r@   rA   ns)rB   r   rC   unitr   r   z1990-01-01 04:00:00rD   r   z1990-01-01 07:00:00   z1990-01-01 04:00:00-0500z1990-01-01 07:00:00-0500z:Cannot compare tz-naive and tz-aware datetime-like objectsrE   r   r      c   zJInvalid comparison between dtype=datetime64\[ns, US/Eastern\] and datetimez
1990-01-02   r   )r   r
   r    rK   rL   rM   r1   rN   r&   r'   r   r   r   
datetime64r#   r$   r%   reescapereprdtypeobjectassert_index_equalastype	TypeErrorrO   rG   )
rR   rS   rT   rU   expectedlbrbmsgnaivekeys
             r+   "test_getitem_setitem_datetimeindexro   e   s   
A
ZD
QC			%%a(88;3	GB%&FwwqzHWWYF$%F !$&GGAJF !6&%&;<F!AwH6,WWYF:;F !67:<Qq'F !676&	B	BRBHHN34F!AwH6,	#B	#BRBHHN34F!AwH6, GCT1a#Ey'ud)CD]]8299T#Y+?@G A@ E
 WWYF GGAJFM<<'''&,,s+SZZ-?@<<u$$$
FC	y	,
8D!Q*+ 
- WWYF	y	,23xaA./ 
- 
y	,24xaA./ 
- 6&	B	$1a	 B
WC	y	, 	HHNrxx2~./ 
-
 
5		%	%cjj	1B	8D!Q*	+	7	7

	CBRBHHN34F!AwH6,_FwwqzH1F!AwH6,WWYFF88Aa=wwq|FKK!6& F"RyH6,WWYFF<b9F<6& A@ 
-	,
 
-	, 
-	, 
-	,s<   TT+T=
U$"U!
T(	+
T:=
U
U!
U0c                     Sn [        SU SS9n[        [        R                  R	                  S5      R                  U 5      US9nUS   nUR                  S   nX4:X  d   eUR                  5       nS	US'   UR                  S   US'   [        R                  " X25        USS
 nUSS n[        R                  " X45        UR                  5       nS	USS
& USS USS
& [        R                  " X25        SnS
nX"R                  U:  UR                  U:*  -     nUSS n[        R                  " X45        X"R                  S      nUR                  S   nX4:X  d   eX"R                  SS    nUSS n[        R                  " X45        UR                  5       nS	X2R                  SS '   UR                  SS UR                  SS& [        R                  " X25        g )Nr>   r?   r@   rB   r   r   r   z1990-01-01 04rD   r   z1990-01-01 07r[   )r   r
   r    rK   rL   rM   r1   rN   r&   r'   r   )rR   rS   rT   rU   ri   rj   rk   s          r+    test_getitem_setitem_periodindexrr      s   
A
z13
7C			%%a(88;3	GB FwwqzHWWYFF? ggajF?6&0F!AwH6,WWYF./F??+.01gF??+6&	B	BRBHHN34F!AwH6, _FwwqzH1F!AwH6,WWYFF88Aa=wwq|FKK!6&r4   c                  8   [        SS5      n U R                  S5      n [        [        U 5      U S9n[	        S5      n[
        R                  " [        [        R                  " [        U5      5      S9   X     S S S 5        SX'   X   S:X  d   e[        [        U 5      U S9nUS S S2   n[
        R                  " [        [        R                  " [        U5      5      S9   X     S S S 5        SX'   X   S:X  d   eg ! , (       d  f       N= f! , (       d  f       N.= f)	N1/1/2000z1/7/2000r   r   z1/8/2000r   r   r\   )r   repeatr
   r"   r   r#   r$   r%   ra   rb   rc   )r   r*   stamps      r+   test_datetime_indexingrw      s    z:.ELLOEs5z'Aj!E	xryye'=	>	 
?AH8q== 	s5z'A	$B$A	xryye'=	>	 
?AH8q== 
?	> 
?	>s   2C:D:
D
Dc                    U nUR                   R                  5       nU H  nX   nUR                   U:H  nUR                   U:H  R                  5       nX   nUS:  a  [        R                  " XG5        O#[        R
                  " XGR                  S   5        UR                  5       nSX'   [        [        R                  " USU5      UR                   S9n[        R                  " X5        M     [        SSS5      n	[        R                  " [        [        R                   " [#        U	5      5      S9   X     S S S 5        SU[        SSS5      '   U[        SSS5         S:X  d   eg ! , (       d  f       N5= f)Nr   r   r   i  r   r   )r   uniquesumr&   r'   assert_almost_equalr1   rN   r
   r    wherer   r#   r$   r%   ra   rb   rc   )
(rand_series_with_duplicate_datetimeindexrT   uniquesdaterU   masktotalri   cprn   s
             r+   *test_indexing_with_duplicate_datetimeindexr     s.    
2BhhooGxx4T!&&(819""64""6==+;<WWY"((4B/rxx@
r,   4A
C	xryyc';	<
 
=  !BxahtQ"#q((( 
=	<s   1E%%
E3c                 .   U R                  [        SS5        / n[        SS9n[        SS9n[        SSS	S
S5      nSn[	        U5       H^  nUR                  U5        UR                  XB-   5        UR                  XB-   U-   5        UR                  XB-   U-   U-   5        USU-  -  nM`     [        R                  R                  S5      R                  S[        U5      S-
  S
5      nU H  nX   XS-   '   M     [        [        R                  R                  S5      R                  [        U5      S45      U[        S5      S9n	US-  n
U	R                  U
   nXR                  ;   d   eU	R                  U     [        U	R                  U/   5      S:  d   eg )N_SIZE_CUTOFF  r   )secondsi  )microsecondsi     r         L  r   r   r   rD   ABCD)r   columns)setattrlibindexr   r   rangeappendr    rK   rL   integersr"   r	   rM   listr   loc)monkeypatchdatessechalf_secdniduplicate_positionspdfpos	timestamps               r+   !test_loc_getitem_over_size_cutoffr   4  sz    .$7 E
A
Cf-Hr1b"%AA1XQQWQWx'(QWs]X-.	QW  ))//2;;As5zA~rR x!e ! 

		a 00#e*aAV
B a%CI    FF9rvvyk"#a'''r4   c                 ~   U R                  [        SS5        Sn[        SSUS9nUR                  R                  (       d   e[        [        R                  R                  S5      R                  [        U5      5      US9nUS	-
  nX$   nXSR                  ;   d   eX5     [        UR                  U/   5      S
:  d   eg )Nr   r   r   rt   min)r   rB   r   r   r   r   )r   r   r   _engineover_size_thresholdr
   r    rK   rL   rM   r"   r   r   )r   r   idxr*   r   r   s         r+   +test_indexing_over_size_cutoff_period_indexr   Z  s     .$7A
zq
9C;;****ryy$$Q'77CAMA
a%CI Lquui[!"Q&&&r4   c            	        ^^ [        SSS9n [        [        R                  R	                  S5      R                  [        U 5      5      U S9m[        R                  " TSS TSS  TSS /5      mTR                   H  nTU   nTU   nX#:X  a  M   e   UU4S	 jn[        SS5      [        S
S5      [        SS5      [        SS5      [        SS5      [        SS5      4 H-  n[        R                  " [        SS9   U" U5        S S S 5        M/     TS   R                  5       nTS   nUR                  R                  S 5      Ul        [        R                   " X25        g ! , (       d  f       M  = f)Nz
2011-01-01z
2011-01-15)r   r   r   r   r   rD   c                    > TU    R                  5       nUR                  5       nTU    nUR                  R                  S 5      Ul        [        R
                  " X5        g )N)rN   
sort_indexr   
_with_freqr&   r'   )slobjrU   ri   rT   ts2s      r+   compare(test_indexing_unordered.<locals>.comparez  sN    U"""$e9!2248
v0r4   z
2010-12-30z
2011-01-16z	2011-01-6z
2011-01-06z	2011-01-8z
2011-01-12z,Value based partial slicing on non-monotonicr   2011)r   r
   r    rK   rL   r"   pdconcatr   slicer#   r$   r%   r   r   r&   r'   )rS   tri   rU   r   rn   rT   r   s         @@r+   test_indexing_unorderedr   n  sN   
<\
:C			%%a(//C9	EB
))R!Wbgr!Bx0
1CXXa5Q!!! 1 	lL)lL)lL)lK(lK(lL) ]]J
 CL
 
 [##%F&zH^^..t4HN6,
 
s   9	E
E,	c                  L   [        [        SSS5      SSS9n [        [        R                  " [        U 5      5      U S9nUR                  [        R                  R                  S5      R                  S5      5      nUS   nUR                   H  nUR                  S:X  a  M   e   g )	Nr   r   r   MErq   r   r   2005)r   r   r
   r    r!   r"   takerK   rL   permutationr   year)rS   rT   rU   r   s       r+   test_indexing_unordered2r     s    
XdAq)2D
AC			#c(#3	/B	&&q)55b9	:BZF\\vv~~ r4   c                     [        SSSS9n [        [        R                  R	                  S5      R                  [        U 5      5      U S9nUS   n[        R                  " X!R                  S S 5        [        S	U05      n[        R                  " [        SS
9   US     S S S 5        [        [        R                  R	                  S5      R                  [        U 5      5      U S9nUR                  5       nSUR                  S S& SUS'   [        R                  " X5        UR                  5       nSUR                  S S2S4'   SUR                  S'   [        R                  " X45        g ! , (       d  f       N= f)Nz2001-1-1r   r   rq   r   r   2001r   Ar   r   r   )r   r   )r   r
   r    rK   rL   r"   r&   r'   r1   r	   r#   r$   r%   rN   r   assert_frame_equal)r   rT   rU   r   ri   s        r+   test_indexingr     s+   
Z$
7C			%%a(//C9	EB
 ZF6773B<0	C9	B 
xv	.
6
 
/ 
		%%a(//C9	EBwwyHHMM#2BvJ2(wwyHHMM#2#q&BFF;"' 
/	.s   E))
E7c                     [        SSSS9n [        [        [        U 5      5      U S9nUS   n[        R
                  " X!5        [        SSSS9n [        [        [        U 5      5      U S9nUS   n[        R
                  " X!5        g )	N2013-05-31 00:00z2013-05-31 23:00r@   )r   r   r   r   z2013-05z2013-05-31 23:59r*   )r   r
   r   r"   r&   r'   r   rT   ri   s      r+   )test_getitem_str_month_with_datetimeindexr     sx    
-3EC
PC	c#hs	+B)}H8(
-3EC
PC	c#hs	+B)}H8(r4   c                      [        S5      [        [        SSSSSSS5      5      /n [        [        [	        U 5      5      U S9nUS	   n[
        R                  " X!5        g )
Nr   i  r         ;   i?B r   2013)r   r   r
   r   r"   r&   r'   r   s      r+   (test_getitem_str_year_with_datetimeindexr     sX    $%(4BBF;<C 
c#hs	+B&zH8(r4   c                     [        [        R                  R                  S5      R                  S5      / SQ[	        SSSSS9S	9n [
        R                  " [        S
S9   U S     S S S 5        Sn[
        R                  " [        US9   X R                  S        S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr   )r   r   )openhighlowclosevolumez2012-01-02 18:01:00r   rH   r*   )rB   rC   r   )r   r   z^'2012-01-02 18:01:02'$r   z2012-01-02 18:01:02z8Timestamp\('2012-01-02 18:01:02-0600', tz='US/Central'\))	r	   r    rK   rL   r   r#   r$   r%   r   )r   rl   s     r+   *test_getitem_str_second_with_datetimeindexr     s    	
		a ''/:.lQTU
B 
x'A	B
 ! 
C FC	xs	+
88A; 
,	+	 
C	B 
,	+s   B!B2!
B/2
C c                      [        SS/SS9n [        S S /5      nX:  n[        SS/5      n[        R                  " X#5        g )Nz
2020-01-01z
2020-01-02zdatetime64[ns])rd   F)r
   r&   r'   )serser2rU   ri   s       r+   #test_compare_datetime_with_all_noner     sE    
,-5E
FC4,DZFuen%H6,r4   ))__doc__r   r   ra   dateutil.tzr   r   numpyr    r#   pandas._libsr   r   pandasr   r	   r
   r   r   r   pandas._testing_testingr&   r,   r3   markparametrizerW   ro   rr   rw   r   r   r   r   r   r   r   r   r   r    r4   r+   <module>r      s    
   *   $
" vz&:;#' <#'Lh'V)'X2)>#(L'(%-P(<
))"-r4   