
    .ik                        d dl mZm Z mZmZ d dlZd dlZd dlmZ	 d dl
mZ d dlmZ d dlmc mZ d dlZd dlmZmZmZmZmZmZ d dlmZ d dlmZ  e dd	d	       e d
d	d	      cZZ  G d d      Z! G d d      Z" G d d      Z# G d d      Z$ G d d      Z% G d d      Z& G d d      Z' G d d      Z( G d d      Z)y)    )datedatetimetime	timedeltaNindex)np_long)Pandas4Warning)DatetimeIndexIndex	Timestampbdate_range
date_rangenotna)	to_offseti       c                       e Zd Zd Zej
                  j                  dddg      d        Zej
                  j                  dddg      d	        Zej
                  j                  dddg      d
        Z	d Z
y)TestGetItemc                     t        dd      }t        dd      }t        ||dd      }|dd  j                  |j                  k(  sJ y )	Nz2013-07-01 00:00:00zAmerica/Los_Angelestzz2013-07-02 00:00:00h
timebucketfreqnamer   )r   r   r   )selfstetdrs       j/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/indexes/datetimes/test_indexing.pytest_getitem_slice_keeps_namez)TestGetItem.test_getitem_slice_keeps_name!   sJ    ,1FG,1FGBS|<!"v{{bgg%%%    r   N
Asia/Tokyoc                    t        ddd|d      }|d   }|t        d|j                        k(  sJ |dd }t        dd	d|j                  d      }t        j                  ||       |j
                  |j
                  k(  sJ |dd
d   }t        ddd|j                  d      }t        j                  ||       |j
                  |j
                  k(  sJ |ddd   }t        ddd|j                  d      }t        j                  ||       |j
                  |j
                  k(  sJ |dd d   }t        g d|j                  dd      }t        j                  ||       |j
                  |j
                  k(  sJ y )N
2011-01-01
2011-01-31Didxr   r   r   r   r      
2011-01-05
      z
2011-01-092Di   z
2011-01-12z
2011-01-243D   )r-   
2011-01-04
2011-01-03
2011-01-02r'   z-1Ddtyper   r   )r   r   r   tmassert_index_equalr   r   r:   r   r   r*   resultexpecteds        r"   test_getitemzTestGetItem.test_getitem(   ss   |#"5QQ<CFF;;;;Qq,SSVV%
 	fh/{{hmm+++Qr!V,Tcff5
 	fh/{{hmm+++SAX,Tcff5
 	fh/{{hmm+++QUU R))	
 	fh/{{hmm+++r$   r   BCc                    t        t        t        |      }|d d }t        |j	                  t
        j                        d d |      }t        j                  ||       |j                  |j                  k(  sJ |j                  |j                  k(  sJ |d d d   }|j                  t        |      dz  k(  sJ |g d   }t        |      dk(  sJ t        |t              sJ |j                  J |d   |t        d         k(  sJ y )Nr   r,   )r4   r2   r/   r   r   r4   )r   STARTENDr   viewnpndarrayr;   r<   r   r   len
isinstancer	   )r   r   rngsmallerexpslicedfancy_indexeds          r"   test_dti_business_getitemz%TestGetItem.test_dti_business_getitemN   s    %40bq'CHHRZZ0!44@
gs+||sxx'''||sxx'''SqS{{io1111O,=!Q&&&-777!!))) 1vWQZ(((r$   c                     t        t        t        |      }t        j                  t
        d      5  |d d d f    d d d        y # 1 sw Y   y xY w)NrD   zMulti-dimensional indexingmatch)r   rE   rF   pytestraises
ValueError)r   r   rL   s      r"   /test_dti_business_getitem_matplotlib_hackaroundz;TestGetItem.test_dti_business_getitem_matplotlib_hackaroundb   s?    %40]]:-IJ 	4L	 	 	s   
AAc                     t        ddd      }|g d   }|d   }|d   }|d   }|t        d	      k(  sJ |t        d
      k(  sJ |t        d      k(  sJ |j                  J y )Nz1/1/2005z	12/1/2005ME)startendr   )r   r2   r,   r   r   r/   z	2/28/2005z	4/30/2005z	6/30/2005)r   r   r   )r   dtidti2v1v2v3s         r"   test_getitem_int_listz!TestGetItem.test_getitem_int_listi   s    z{F9~!W!W!WY{++++Y{++++Y{++++ yy   r$   )__name__
__module____qualname__r#   rU   markparametrizer@   rQ   rX   rb    r$   r"   r   r       s    & [[TD,#78#, 9#,J [[Vc3Z0) 1)& [[Vc3Z0 1!r$   r   c                   r    e Zd Zej                  j                  dddg      d        Zd Zd Zd Z	d Z
d	 Zy
)	TestWhereis_tdTFc                     t        ddd      }|r||d   z
  }t        t        j                  t        j                  g|dd  j	                               }|j                  t        |      |      }|j                  J y )N20130101r2   
US/Easternperiodsr   r   r/   )r   r   pdNaTtolistwherer   r   )r   rk   r   otherr>   s        r"   test_where_freq_invalidationz&TestWhere.test_where_freq_invalidationz   sr     :q\BE!H$Ervvrvv;ab	(8(8(:;<U5\51{{"""r$   c                     t        dddd      }g d}t        |d   |d   |d   gd d	      }|j                  ||d d d
         }t        j                  ||       y )Nrm   r2   r)   r*   )rp   r   r   )TTFr   r   r   r5   )r   r   rt   r;   r<   )r   r]   condr?   r>   s        r"   test_where_doesnt_retain_freqz'TestWhere.test_where_doesnt_retain_freq   s`    QSuE" #a&#a&#a&!95Q4TrT+
fh/r$   c                    t        ddd      }t        j                  t        j                  fD ]6  }|j                  t        |      |      }|}t        j                  ||       8 |j                         }t        t        j                  t        j                  g|dd  j                               }|j                  t        |      |      }t        j                  ||       |j                         }t        t        j                  t        j                  g|dd  j                               }|j                  t        |      |j                        }t        j                  ||       y )Nrm   r2   rn   ro   )ru   r/   )r   rH   nanrq   rr   rt   r   r;   r<   copyr   rs   _values)r   iarrr>   r?   i2s         r"   test_where_otherzTestWhere.test_where_other   s   z1>FFBFF# 	4CWWU1XSW1FH!!&(3	4
 VVXBFFBFF4QqrU\\^45rB'
fb)VVXBFFBFF4QqrU\\^45rBJJ/
fb)r$   c                    t        dddd      }|dd  j                         }t        t        j                  t        j                  g|      }t        |      }|j                  ||j                        }t        t        j                  j                  t        j                  j                  g|t              }t        j                  ||       |j                  d       }|j                  ||      }t        |d   |d	   g|dd  j                         t              }t        j                  ||       |j                  d       j                  d
      }|j                  ||      }t        |d   |d	   g|t              }t        j                  ||       |j                  j                  d      }	|j                  ||	      }t        |	d   |	d	   g|t              }t!        |d   t"        j$                        sJ t        j                  ||       |j                  ||j                        }t        t        j                  j&                  t        j                  j&                  g|t              }t!        |d   t(              sJ t        j                  ||       t        j*                  d      }
|j                  ||
      }t        |
|
g|t              }|d   |
u sJ t        j                  ||       y )Nrm   r2   rn   ns)rp   r   unitr/   r:   r   r   r)   ztimedelta64[ns]r4   )days)r   rs   r   rq   rr   r   rt   valuesasm8objectr;   r<   tz_localize	to_periodasi8rG   rK   rH   timedelta64_valueint	Timedelta)r   r]   tailr   maskr>   r?   naivepitdatds              r"   test_where_invalid_dtypesz#TestWhere.test_where_invalid_dtypes   sf   Q<dK12w~~BFFBFF*T*+Ry 4+"&&++rvv{{:T:&I
fh/ %T2&"Q%A<qr)9)9);<FK
fh/^^D!++C04$"Q%A..f=
fh/ggll,-4%#a&#a&040?(1+r~~666
fh/4)"&&-->>fM(1+s+++
fh/ \\q!4$"b47{b   
fh/r$   c                    |}t        dd|      }t        j                  g d      }t        j                  dd      }t	        |d   ||d   gt
        	      }|d
   |u sJ |j                  ||      }t        j                  ||       y )Nz
2013-01-01r2   ro   )TFTrr   r   r   r/   r   r   )	r   rH   arrayr   r   r   rt   r;   r<   )r   tz_aware_fixturer   r]   rx   tdnatr?   r>   s           r"   test_where_mismatched_natz#TestWhere.test_where_mismatched_nat   s    qR8xx+,ud+#a&%Q0?{e###4'
fh/r$   c                    t        ddd      }|j                  t        |            }|}t        j                  ||       |j                         }t        t        j                  t        j                  g|dd  j                               }|j                  t        |            }|}t        j                  ||       y )Nrm   r2   rn   ro   r/   )
r   rt   r   r;   r<   r|   r   rq   rr   rs   )r   r~   r>   r?   r   s        r"   test_where_tzzTestWhere.test_where_tz   s    z1>q"
fh/VVXBFFBFF4QqrU\\^45r#
fh/r$   N)rc   rd   re   rU   rf   rg   rv   ry   r   r   r   r   rh   r$   r"   rj   rj   y   sC    [[WtUm4# 5#0*&(0T
0
0r$   rj   c                       e Zd Zej                  j                  dddg      d        Zd Zej                  j                  dddg      d	        Zd
 Z	ej                  j                  dg d      d        Z
d Zd Zy)TestTaketzstrrn   zdateutil/US/Easternc                     t        dd|      }|j                  t        d            }|j                  |j                  k(  sJ |j                  |j                  k(  sJ y )N1/1/2000   ro   r,   )r   takeranger   r   )r   r   rL   r>   s       r"   test_dti_take_dont_lose_metaz%TestTake.test_dti_take_dont_lose_meta   sN    RE:%(#yyCFF"""{{chh&&&r$   c                     t        t        j                  t        d      t        d      g      }|j	                  g d      }t        |d   |d   |d   g      }t        j                  ||       y )Nrm   20130102r5   r   r   r5   r   r   )r   rq   rr   r   r   r;   r<   )r   r   r>   r?   s       r"   test_take_nan_first_datetimez%TestTake.test_take_nan_first_datetime   s\    rvvy'<i
>STUJ' %)U1XuQx!@A
fh/r$   r   Nr%   c                    t        dddd|      }|j                  dg      }|t        d|j                        k(  sJ |j                  g d      }t        dd	d|j                  d
      }t	        j
                  ||       |j                  |j                  k(  sJ |j                  g d      }t        ddd|j                  d
      }t	        j
                  ||       |j                  |j                  k(  sJ |j                  g d      }t        ddd|j                  d
      }t	        j
                  ||       |j                  |j                  k(  sJ |j                  g d      }t        g d|j                  d d      }t	        j
                  ||       |j                  J |j                  g d      }t        g d|j                  d d      }t	        j
                  ||       |j                  J y )Nr'   r(   r)   r*   )r   r   r   r   r   r   r   r/   r7   r+   )r   r/   r4   r-   r0   )   r4   r   z
2011-01-08r8   z-3D)r2   r/   r,   )r6   r7   
2011-01-06r9   )r/   r,   )z
2011-01-29r7   r   )	r   r   r   r   r;   r<   r   r   r:   r=   s        r"   	test_takezTestTake.test_take   s    |#EbQ1#<CFF;;;;)$,SSVV%
 	fh/{{hmm+++)$,Tcff5
 	fh/{{hmm+++)$,UsvvE
 	fh/{{hmm+++)$ 6))	
 	fh/{{"""*% 6))	
 	fh/{{"""r$   c                    t        dddd      }g d}d}t        j                  t        |      5  |j	                  |d	
       d d d        d}t        j                  t
        |      5  |j	                  ||       d d d        d}t        j                  t
        |      5  |j	                  |d       d d d        y # 1 sw Y   |xY w# 1 sw Y   OxY w# 1 sw Y   y xY w)Nr'   r(   r)   r*   r   )r      r,   	   r.         r2   z1take\(\) got an unexpected keyword argument 'foo'rS   r/   )fooz$the 'out' parameter is not supported)outz%the 'mode' parameter is not supportedclip)mode)r   rU   rV   	TypeErrorr   rW   )r   r*   indicesmsgs       r"   test_take_invalid_kwargsz!TestTake.test_take_invalid_kwargs#  s    |#EJ-B]]9C0 	%HHW!H$	% 5]]:S1 	+HHW'H*	+ 6]]:S1 	+HHW6H*	+ 	+	% 	%	+ 	+	+ 	+s#   C *C#C C	CC!)Nrn   r%   c           	         t        dddd      t        dddd      t        dddd      t        dddd      g}t        ddd	|d
      }t        |d d
|j                        }|j	                  g d      }|g d   }||fD ]n  }t        j                  ||       t        |t              sJ |j                  J |j                  |j                  k(  sJ |j                  |j                  k(  rnJ  y )Nr   r      r         z2010-01-01 09:00z2010-02-01 09:00r   r*   )r[   r\   r   r   r   )r   r   r:   )r,   r         )r   r   r   r:   r   r;   r<   rK   r   r   r   )r   r   datesr*   r?   taken1taken2takens           r"   
test_take2zTestTake.test_take24  s     T1a$T1a$T1a$T1a$	
 $"
 !TSYYO-(]#f% 	/E!!%2e]333::%%%88x{{***::...	/r$   c                    t        g dd      }|j                  t        j                  g d            }t        g dd      }t	        j
                  ||       |j                  t        j                  g d      d      }t        g dd      }t	        j
                  ||       |j                  t        j                  g d      d	d
      }t        g dd      }t	        j
                  ||       d}t        j                  t        |      5  |j                  t        j                  g d      d       d d d        t        j                  t        |      5  |j                  t        j                  g d      d       d d d        d}t        j                  t        |      5  |j                  t        j                  ddg             d d d        y # 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)Nr'   
2011-02-01
2011-03-01xxx)r   r   r   r5   r   r'   r   T
fill_valuer   r'   rr   F
allow_fillr   JWhen allow_fill=True and fill_value is not None, all indices must be >= -1rS   r   r   r   r   r1   out of boundsr   r1   
r   r   rH   r   r;   r<   rU   rV   rW   
IndexErrorr   r*   r>   r?   r   s        r"   test_take_fill_valuezTestTake.test_take_fill_valueP  s   FUS"((:./ !KRWX
fh/ "((:.4@ !D5Q
fh/ "((:.5TR !KRWX
fh/ Y 	 ]]:S1 	<HHRXXj)dH;	<]]:S1 	<HHRXXj)dH;	< ]]:S1 	(HHRXXq"g&'	( 	(	< 	<	< 	<	( 	(s$   )G)G)-'G5G&)G25G>c                 
   t        g ddd      }|j                  t        j                  g d            }t        g ddd      }t	        j
                  ||       |j                  t        j                  g d      d      }t        g d	dd      }t	        j
                  ||       |j                  t        j                  g d      d
d      }t        g ddd      }t	        j
                  ||       d}t        j                  t        |      5  |j                  t        j                  g d      d       d d d        t        j                  t        |      5  |j                  t        j                  g d      d       d d d        d}t        j                  t        |      5  |j                  t        j                  ddg             d d d        y # 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)Nr   r   rn   )r   r   r   r   Tr   r   Fr   r   rS   r   r   r   r   r1   r   r   s        r"   "test_take_fill_value_with_timezonez+TestTake.test_take_fill_value_with_timezonem  s   6U|
 "((:./ 6U|
 	fh/ "((:.4@ /e
 	fh/ "((:.5TR 6U|
 	fh/ Y 	 ]]:S1 	<HHRXXj)dH;	<]]:S1 	<HHRXXj)dH;	< ]]:S1 	(HHRXXq"g&'	( 	(	< 	<	< 	<	( 	(s$   )G!#)G-1'G9!G*-G69H)rc   rd   re   rU   rf   rg   r   r   r   r   r   r   r   rh   r$   r"   r   r      s    [[W|5J&KL' M'0 [[TD,#78.# 9.#`+" [[T#EF/ G/6(:"(r$   r   c                      e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	d Z
d	 Zej                  j                  d
 ej                  d       ej                  d       ed      g      d        Zd Zd Zy)
TestGetLocc                     t        dd      }|d   j                  d      }|j                  |      }|dk(  sJ ||v sJ y )N
2000-01-01r2   rp   r   ms)r   as_unitget_loc)r   r*   keylocs       r"   test_get_loc_key_unit_mismatchz)TestGetLoc.test_get_loc_key_unit_mismatch  sE    q1!fnnT"kk#axxczzr$   c                 H   t        dd      j                  j                  d      }t        |      }|d   j	                  d      t        j                  d      z   }t        j                  t        d	      5  |j                  |       d d d        ||vsJ y # 1 sw Y   xY w)
Nr   r2   r   zM8[s]r   r   r   z,Timestamp\('2000-01-01 00:00:00.000000001'\)rS   )r   _dataastyper   r   rq   r   rU   rV   KeyErrorr   )r   dtar]   r   s       r"   +test_get_loc_key_unit_mismatch_not_castablez6TestGetLoc.test_get_loc_key_unit_mismatch_not_castable  s    q177>>wGC !fnnT"R\\!_4]]K
 	 KK	
 #~~	 	s   7BB!c                 @   t        ddd      }|j                  t        d            }t        j                  dg      }t        j                  ||d       |j                  t        dd            }t        j                  g       }t        j                  ||d       y )	Nr      r   rp   r   r   F)check_dtype   )r   r   r   rH   r   r;   assert_numpy_array_equalr   r*   r>   r?   s       r"   test_get_loc_time_objz TestGetLoc.test_get_loc_time_obj  sv    r<T"X&88RD>
##FH%HT"b\*88B<
##FH%Hr$   offsetr.   c                 R   d}||z   }t        ddd      }|j                  dz  |j                  dz  z   |j                  z   }d}|j	                         5  |j                  t        d|       t        d	|d
      }t        j                  t        j                  j                  d      j                  |      |      }	t        j                  |||t        j                        }
|	j                   j#                  |      }t%        j&                  ||
       t%        j(                  |	|   |	j*                  |
          |	j-                         |	j-                         }}||xx   dz  cc<   |j*                  |
xx   dz  cc<   t%        j(                  ||       d d d        y # 1 sw Y   y xY w)N2   r      r   i  <   iQ _SIZE_CUTOFFz
2014-11-26sr   r/   r   r   r   )r   hourminutesecondcontextsetattrlibindexr   rq   SeriesrH   randomdefault_rngstandard_normalarangeintpr   r   r;   r   assert_series_equalilocr|   )r   monkeypatchr   size_cutoffnr   r[   stepr*   tslocsr>   leftrights                 r"   test_get_loc_time_obj2z!TestGetLoc.test_get_loc_time_obj2  sS    & 2r24#**r/1CJJ>  " 	0.+F\13?C299003CCAFcRB99UAt277;DXX%%c*F''5""2c7BGGDM:'')RWWY%DIIJJt#""4/	0 	0 	0s   EFF&c                     t        ddd      }t        t        j                  g      }|j	                  |      }t        j                  g t
        j                        }t        j                  ||       y )Nr   +   iH7 )r  r  microsecondr   )
r   r   rq   rr   r   rH   r   r  r;   r   )r   ticr]   r   r?   s        r"   test_get_loc_time_natz TestGetLoc.test_get_loc_time_nat  sT     "RV<RVVH%kk#88Bbgg.
##C2r$   c                    t        ddg      }|j                  t        j                        dk(  sJ |j                  d       dk(  sJ |j                  t        j
                        dk(  sJ |j                  t        j                        dk(  sJ |j                  t	        j                  d            dk(  sJ t        j                  t        d      5  |j                  t	        j                  d             d d d        y # 1 sw Y   y xY w)N1/3/2000rr   r   rS   )r   r   rq   rr   rH   r{   NA
datetime64rU   rV   r   r   r   r   s     r"   test_get_loc_natzTestGetLoc.test_get_loc_nat  s    z512}}RVV$)))}}T"a'''}}RVV$)))}}RUU#q(((}}R]]512a777]]851 	1MM"../0	1 	1 	1s   %DDr   r   r   c                     t        dd      }d}t        j                  t        |      5  |j	                  |       d d d        y # 1 sw Y   y xY w)Nz
1970-01-01r.   r   z,Cannot index DatetimeIndex with [Tt]imedeltarS   )r   rU   rV   r   r   )r   r   r]   r   s       r"   "test_get_loc_timedelta_invalid_keyz-TestGetLoc.test_get_loc_timedelta_invalid_key  sD     r2<]]9C0 	KK	 	 	s   AAc                     t        dg      }t        j                  t        d      5  |j	                  d       d d d        y # 1 sw Y   y xY w)Nr  2000rS   r   )r   rU   rV   r   r   r"  s     r"   !test_get_loc_reasonable_key_errorz,TestGetLoc.test_get_loc_reasonable_key_error  s=    zl+]]862 	&MM*%	& 	& 	&s   AAc                 d    t        dd      }|j                  d      }t        dd      }||k(  sJ y )Nr   z1/1/20102009i  iE  )r   r   slicer   rL   r>   r?   s       r"   test_get_loc_year_strz TestGetLoc.test_get_loc_year_str  s6    Z0V$t$!!!r$   N)rc   rd   re   r   r   r   rU   rf   rg   r  r  r#  rq   r   r   r%  r(  r-  rh   r$   r"   r   r     s    

I [[XRy10 20.31  [[U\R\\!_lbll1oyQR|$TU V&"r$   r   c            	       t    e Zd Zd Zej
                  j                  dg dg dg dg dg dg      d        Zy	)
TestContainsc                 H    t        ddddd      }t        ||g      }||v sJ y )Ni  r   r,   r   r   )r   r   )r   dixs      r"   !test_dti_contains_with_duplicatesz.TestContains.test_dti_contains_with_duplicates  s-    T2q"b)Aq6"Bwwr$   vals)r   r   r   )r   r   r5   )r   r5   r5   )2015r5  2016)r5  r5  2014c                 ,    t        |      }|d   |v sJ y )Nr   )r   )r   r4  r*   s      r"   test_contains_nonuniquez$TestContains.test_contains_nonunique   s     D!1v}}r$   N)rc   rd   re   r3  rU   rf   rg   r9  rh   r$   r"   r/  r/    sA    
 [[$$	
		r$   r/  c                      e Zd Z ej                  d      ej                  j                  dddg      d               Zd Z	d Z
ej                  j                  d ed	d
d
       ed      g ed       ed	d
d      gg      d        Zej                  j                  d edd
d
       ed      gddgf ed       edd
d
      gddgf edd
d
       edd
d
      gddgfg      d        Zd Zy)TestGetIndexerpyarrowas_tdTFc                 Z   t        dd      }|j                  d      d d d   }|r||d   z
  }||d   z
  }|j                  |      }t        j                  g dt        j
                        }t        j                  ||       |j                  |      }t        j                  ||       y )	Nz
2016-01-01r2   r   ztimestamp[ns][pyarrow]r5   r   )r/   r   r   r   )r   r   get_indexerrH   r   r  r;   r   )r   r=  r   targetr>   r?   result2s          r"   test_get_indexer_pyarrowz'TestGetIndexer.test_get_indexer_pyarrow  s     <367"=E!H$EfRj(F""6*88IRWW5
##FH5 $$U+
##GX6r$   c                     t        dd      }|j                  |j                  d             }|j                  |      }t        j                  ||       y )Nr   r   r   c                 "    | j                         S )N)r   )xs    r"   <lambda>z;TestGetIndexer.test_get_indexer_date_objs.<locals>.<lambda>(  s    1668 r$   )r   r?  mapr;   r   r,  s       r"   test_get_indexer_date_objsz)TestGetIndexer.test_get_indexer_date_objs%  sD    R0);!<=??3'
##FH5r$   c                    t        dd      }t        j                  g dt        j                        }t	        j
                  |j                  |      |       |d   t        j                  g d      z   }t	        j
                  |j                  |d      t        j                  g d	t        j                               t	        j
                  |j                  |d
      t        j                  g dt        j                               t	        j
                  |j                  |d      t        j                  g dt        j                               t	        j
                  |j                  |dt        j                  d            t        j                  g dt        j                               t        j                  d      t        j                  d      t        j                  d      j                         g}t	        j
                  |j                  |d|D cg c]  }t        j                  |       c}      t        j                  g dt        j                               t        j                  d      j                         t        j                  d      j                         dg}d}t        j                  t        |      5  |j                  |d|       d d d        t        j                  t        d      5  |j                  |dg   dd       d d d        y c c}w # 1 sw Y   KxY w# 1 sw Y   y xY w)Nr   r2   r   r   r   r   )z-1 hourz12 hoursz1 day 1 hourpadr   backfillnearest)r   r   r   z1 hour)	tolerance)r   r5   r   z2 hourr   z*Could not convert 'foo' to NumPy timedeltarS   zabbreviation w/o a number)methodrM  )r   rH   r   r  r;   r   r?  rq   to_timedeltar   to_timedelta64r   rU   rV   rW   )r   r*   rN   r@  tol_rawrE  tol_badr   s           r"   test_get_indexerzTestGetIndexer.test_get_indexer,  sc   q1hhy0
##COOC$8#>Q"//*QRR
##OOFE*BHHZrww,O	
 	##OOFJ/)2771S	
 	##OOFI."''0R	
 	##OOFIh9OOPHHZrww/	

 LL"LL"LL"113

 	##OO	-QAbnnQ.?-Q   HHZrww/		
 LL"113LL"113

 ;]]:S1 	BOOFIOA	B]]:-HI 	IOOCHY%OH	I 	I .R	B 	B	I 	Is   $L0L5M5L>M
r@    r   
2020-01-02
2020-01-01r/   c                     t        t        d      t        d      g      }|j                  |      }t        j                  ddgt        j
                        }t        j                  ||       y )NrV  rU  r   r   r   r   r   r?  rH   r   r  r;   r   )r   r@  r   r>   r?   s        r"   test_get_indexer_mixed_dtypesz,TestGetIndexer.test_get_indexer_mixed_dtypesU  sU     	, 7<9PQR##F+88QF"''2
##FH5r$   ztarget, positionsi'  r5   r   c                     t        t        d      t        d      g      }|j                  |      }t        j                  |t        j
                        }t        j                  ||       y )NrV  rU  r   rX  )r   r@  	positionsr   r>   r?   s         r"   #test_get_indexer_out_of_bounds_datez2TestGetIndexer.test_get_indexer_out_of_bounds_datec  sQ     	, 7<9PQR##F+88IRWW5
##FH5r$   c                     t        ddd      }|g d   }d}t        j                  t        |      5  |j	                  |d	       d d d        y # 1 sw Y   y xY w)
Nr   z3/1/2000rA   rD   )r   r   r/   z0index must be monotonic increasing or decreasingrS   rJ  )rN  )r   rU   rV   rW   r?  )r   rL   rng2r   s       r"   *test_get_indexer_pad_requires_monotonicityz9TestGetIndexer.test_get_indexer_pad_requires_monotonicityr  sV    Zc: 9~@]]:S1 	0S/	0 	0 	0s   AAN)rc   rd   re   r   
skip_if_norU   rf   rg   rB  rH  rS  r   r   rY  r\  r_  rh   r$   r"   r;  r;    s0   R]]9[[WtUm47 5 7$6'IR [[$1y67|$d4A&67	
66 [[4A	, 782q'B%tD!Q'781b'B4AT1a 01B8<	
660r$   r;  c                       e Zd Zd Zd Zy)TestMaybeCastSliceBoundc                     t        dddd      }|j                  dd      }t        d      }||k(  sJ |j                  dd	      }t        d
      }||k(  sJ y )N1hr   r5  r   )r   rp   r\   r   z
2015-01-02r  z2015-01-02 23:59:59.999999999r  z2015-01-02 00:00:00)r   _maybe_cast_slice_boundr   )r   	empty_idxr  rN   r  s        r"   "test_maybe_cast_slice_bounds_emptyz:TestMaybeCastSliceBound.test_maybe_cast_slice_bounds_empty~  sd    D!dK	11,H78||00vF-.s{{r$   c                 f    t        ddg      }|j                  dd      }t        d      }||k(  sJ y )N2017z
2017-01-01r  )r   re  r   r   s       r"   )test_maybe_cast_slice_duplicate_monotoniczATestMaybeCastSliceBound.test_maybe_cast_slice_duplicate_monotonic  s;    VV,-,,\6B\*!!!r$   N)rc   rd   re   rg  rj  rh   r$   r"   rb  rb  }  s    
"r$   rb  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  deee	g      ej                  j                  dddg      d	               Z
ej                  j                  dee	g      ej                  j                  d
ddg      ej                  j                  dddg      d                      Zej                  j                  dee	g      d        Zy)TestGetSliceBoundsr=  TFc                 $   t        ddd      }t        j                  d      }t        d      }||z
  }||z   }|rW|t        d      j	                  d      z
  }|t        d      j	                  d      z
  }|t        d      j	                  d      z
  }|j                  |d	
      }|dk(  sJ |j                  |d
      }|dk(  sJ t        j                  d|      }	|	j                  || }
|	j                  dd }t        j                  |
|       y )Nr   r   r   )r[   r   rp   r   z2000-01-01 01:00:00r   usr  sider  r/   r   )r   rq   r   r   r   get_slice_boundr  r   r  r;   r  )r   r=  r   r   r  r[   stopr  r  serr>   r?   s               r"   $test_get_slice_bound_mismatched_unitz7TestGetSliceBounds.test_get_slice_bound_mismatched_unit  s    CC\\!_,-RBwIaL0066EIaL0066E)A,..t44D$$U$8qyy%%d%9zz ii't$88Aa=
vx0r$   boxzside, expected)r  r4   )r  r,   c                    |}t        dd      j                  |      } |ddd      }|t        urd nt        }d}	t	        j
                  ||	      5  |8t        j                  t        d	      5  |j                  ||
       d d d        n|j                  ||
      }
|
|k(  sJ d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N
2000-01-03
2000-02-11i  r   r   yearmonthdayz1Slicing with a datetime.date object is deprecatedrS   Cannot compare tz-naivero  )
r   r   r   r
   r;   assert_produces_warningrU   rV   r   rq  )r   ru  rp  r?   r   r   r   r   warnr   r>   s              r"   %test_get_slice_bounds_datetime_withinz8TestGetSliceBounds.test_get_slice_bounds_datetime_within  s     L,7CCBGt1!,$tNA''C8 	*~]]94MN :))#D)9: : ..s.>)))	* 	*: :	* 	*s$   B<0B0#B<0B9	5B<<Crp  r  r  zyear, expected)i  r   )rT  r   c                    |}t        dd      j                  |      } ||dd      }|8t        j                  t        d      5  |j                  ||       d d d        y |j                  ||      }	|	|k(  sJ y # 1 sw Y   y xY w)	Nrw  rx  r   r   ry  r}  rS   ro  )r   r   rU   rV   r   rq  )
r   ru  rp  rz  r?   r   r   r   r   r>   s
             r"   &test_get_slice_bounds_datetime_outsidez9TestGetSliceBounds.test_get_slice_bounds_datetime_outside  s     L,7CCBGt1!,>y0IJ 6%%c%56 6 **3T*:FX%%%6 6s   A>>Bc           	      4   |}t        ddg      j                  |      } |ddd      }|?t        j                  t        d      5  |j                  | |ddd             d d d        y |j                  | |ddd            }d}||k(  sJ y # 1 sw Y   y xY w)	Nz
2010-01-01z
2010-01-03r   r   r}  rS   r/   )r   r   )r   r   rU   rV   r   
slice_locs)r   ru  r   r   r   r   r>   r?   s           r"   test_slice_datetime_locsz+TestGetSliceBounds.test_slice_datetime_locs  s     |\:;GGK$1o>y0IJ 7  c$1o67 7 %%c3tQ?;FHX%%%7 7s   BBN)rc   rd   re   rU   rf   rg   rt  r   r   r   r  r  r  rh   r$   r"   rl  rl    s   [[WtUm41 512 [[UT8Y$?@[[-\/JK* L A*& [[UXy$9:[[Vfg%67[[-	:/FG& H 8 ;&  [[UXy$9:& ;&r$   rl  c                   Z    e Zd Zd Zej
                  j                  dg d      d        Zy)TestIndexerBetweenTimec           
          t        ddd      }d}t        j                  t        |      5  |j	                  t        ddd	d      t        ddd	d
             d d d        y # 1 sw Y   y xY w)Nr   1/5/20005minrD   zGCannot convert arg \[datetime\.datetime\(2010, 1, 2, 1, 0\)\] to a timerS   r   r   r/   r,   )r   rU   rV   rW   indexer_between_timer   )r   rL   r   s      r"   test_indexer_between_timez0TestIndexerBetweenTime.test_indexer_between_time  sd    Zf=X]]:S1 	W$$XdAq!%<htQPQST>UV	W 	W 	Ws   +A  A)r   )rn  r   r  c                 r   t        ddd      }|j                  j                  }|j                  d| d      }t	        |j                        j                  ||j                        }t        |      }|j                  |j                  k(  sJ t        dd	      }t        d
d      }|j                  ||      }	|j                  ||      }
t        j                  |	|
       t        dd	dd      }t        d
ddd      }|j                  ||      }	|j                  ||      }
t        j                  |	|
       y )Nr   r  r  rD   zM8[]r   r      r/      r   in  i  )r   r   _ndarrayr   type_simple_newr:   r   r   r  r;   r   )r   r   rL   arr_nanor   r   r]   r  tocr>   r?   s              r"   "test_indexer_between_time_non_nanoz9TestIndexerBetweenTime.test_indexer_between_time_non_nano  s   
 Zf=99%%ooD6m,399o))#SYY)?C yyCII%%%1bk1bk))#s3++C5
##FH5 1b!U#1b!T"))#s3++C5
##FH5r$   N)rc   rd   re   r  rU   rf   rg   r  rh   r$   r"   r  r    s.    W [[V%676 86r$   r  )*r   r   r   r   numpyrH   rU   pandas._libsr   r  pandas.compat.numpyr	   pandas.errorsr
   pandas.util._test_decoratorsutil_test_decoratorsr   pandasrq   r   r   r   r   r   r   pandas._testing_testingr;   pandas.tseries.frequenciesr   rE   rF   r   rj   r   r   r/  r;  rb  rl  r  rh   r$   r"   <module>r     s       * ' ( ) )    0dAq!8D!Q#7
sV! V!rg0 g0Tl( l(^e" e"P ,j0 j0Z" "*Q& Q&h#6 #6r$   