
    Mh9                     &   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
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\	R4                  R7                  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Sn[        R                  " [        US9   US	   S	:X  d   e S S S 5        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       N= f! , (       d  f       NS= f)NWOM-1FRI       freqstartendr   z;Series.__getitem__ treating keys as positions is deprecatedmatch0   1/2/2009z2009-1-2i     z^'2009-1-3'$z2009-1-3z3/6/2009
2009-06-05         )r   r   r
   nparangelentmassert_produces_warningFutureWarningr   pytestraisesKeyErrorassert_series_equaldtismsgs      \/var/www/html/env/lib/python3.13/site-packages/pandas/tests/series/indexing/test_datetime.pytest_fancy_getitemr/      s*   
xa3$19MC 	ryyS"#.A
GC		#	#M	=u{{ 
>Z=BZ=BXdAq!"b(((Yxa+,-333	x	7	* 
8	*\"AhtQ&:XdAq=Q$R 
>	= 
8	7s   $DD0
D-0
D>c            	         [        S[        SSS5      [        SSS5      S9n [        [        R                  " [        U 5      5      U S9nSn[        R                  " [        US9   S	US
'   S S S 5        UR                  S
   S	:X  d   eSUS'   UR                  S
   S:X  d   eSUSS& US
S S:H  R                  5       (       d   eg ! , (       d  f       N`= f)Nr   r   r   r   r   r   z;Series.__setitem__ treating keys as positions is deprecatedr   r   r   r   6   )r   r   r
   r    r!   r"   r#   r$   r%   ilocallr*   s      r.   test_fancy_setitemr7   4   s    
xa3$19MC 	ryyS"#.A
GC		#	#M	=" 
>66":AjM66":!#AjbHN!!!! 
>	=s   $C
C	tz_sourcepytzdateutilc                 Z   U S:X  a  [         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                  " XT5        UR                  5       nS
US'   UR                  S   US'   [        R                  " XT5        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                  " XT5        UR                  5       n[        SSSS5      R                  U" S5      5      nUR                  5       nS
XV'   UR                  S   XV'   [        R                  " XT5        g )Nr9   c                 8    U S:X  a
  [        5       $ [        U 5      $ )NUTC)r   r   )xs    r.   <lambda>2test_getitem_setitem_datetime_tz.<locals>.<lambda>K   s    Q%Z%'=U1X=    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)r9   timezoner   r
   r    randomdefault_rngstandard_normalcopyr5   r#   r)   r   r   tz_localizeto_pydatetime)r8   tzgetNrngtsresultdts          r.    test_getitem_setitem_datetime_tzr[   E   s   F >
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&rA   c            
      
   Sn [        SU 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)NrB   rC   rD   rE   rF   r   r   z1990-01-01 04:00:00rI   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 objectsrJ   r   nsr   r1      c   zJInvalid comparison between dtype=datetime64\[ns, US/Eastern\] and datetimez
1990-01-02   r   )r   r
   r    rO   rP   rQ   r5   rR   r#   r)   r   r   r   
datetime64r&   r'   r(   reescapereprdtypeobjectassert_index_equalastype	TypeErrorrS   rL   )
rV   rW   rX   rY   expectedlbrbr-   naivekeys
             r.   "test_getitem_setitem_datetimeindexrp   k   s   
A
Z
FC			%%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'	*
T9<
U
U 
U/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 )NrB   rC   rD   rG   r   r   r   z1990-01-01 04rI   r   z1990-01-01 07r]   )r   r
   r    rO   rP   rQ   r5   rR   r#   r)   r   )rV   rW   rX   rY   rk   rl   rm   s          r.    test_getitem_setitem_periodindexrs      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&rA   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   r1   )r   repeatr
   r"   r   r&   r'   r(   rc   rd   re   )r   r,   stamps      r.   test_datetime_indexingrx     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_equalr5   rR   r
   r    wherer   r&   r'   r(   rc   rd   re   )
(rand_series_with_duplicate_datetimeindexrX   uniquesdaterY   masktotalrk   cpro   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   rI   ABCD)r   columns)setattrlibindexr   r   rangeappendr    rO   rP   integersr"   r	   rQ   listr   loc)monkeypatchdatessechalf_secdniduplicate_positionspdfpos	timestamps               r.   !test_loc_getitem_over_size_cutoffr   :  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'''rA   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   ru   min)r   rG   r   r   r   r   )r   r   r   _engineover_size_thresholdr
   r    rO   rP   rQ   r"   r   r   )r   r   idxr,   r   r   s         r.   +test_indexing_over_size_cutoff_period_indexr   `  s     .$7A
zq
9C;;****ryy$$Q'77CAMA
a%CI Lquui[!"Q&&&rA   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   rI   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)rR   
sort_indexr   
_with_freqr#   r)   )slobjrY   rk   rX   ts2s      r.   compare(test_indexing_unordered.<locals>.compare  sN    U"""$e9!2248
v0rA   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    rO   rP   r"   pdconcatr   slicer&   r'   r(   r   r   r#   r)   )rW   trk   rY   r   ro   rX   r   s         @@r.   test_indexing_unorderedr   t  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   MErr   r   r   2005)r   r   r
   r    r!   r"   takerO   rP   permutationr   year)rW   rX   rY   r   s       r.   test_indexing_unordered2r     s    
XdAq)2D
AC			#c(#3	/B	&&q)55b9	:BZF\\vv~~ rA   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R                  5       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   rr   r   r   2001r   Ar   r   r   )r   r   )r   r
   r    rO   rP   r"   r#   r)   r5   r	   rR   r&   r'   r(   r   assert_frame_equal)r   rX   rY   r   rk   s        r.   test_indexingr     s2   
Z$
7C			%%a(//C9	EB
 ZF6773B<0	C#	$B 
xv	.
6
 
/ 
		%%a(//C9	EBwwyHHMM#2BvJ2(wwyHHMM#2#q&BFF;"' 
/	.s   'E77
F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:00rD   )r   r   r   r   z2013-05z2013-05-31 23:59r,   )r   r
   r   r"   r#   r)   r   rX   rk   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(rA   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(rA   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   rM   r,   )rG   rH   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    rO   rP   r   r&   r'   r(   r   )r   r-   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])rf   F)r
   r#   r)   )serser2rY   rk   s       r.   #test_compare_datetime_with_all_noner     sE    
,-5E
FC4,DZFuen%H6,rA   )*__doc__r   r   rc   dateutil.tzr   r   numpyr    r&   r9   pandas._libsr   r   pandasr   r	   r
   r   r   r   pandas._testing_testingr#   r/   r7   markparametrizer[   rp   rs   rx   r   r   r   r   r   r   r   r   r   r    rA   r.   <module>r      s    
    *   *"" vz&:;"' <"'Jh'V)'X2)>#(L'(%-P(<
))"-rA   