
    Mh #                       % 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	J
r
  S SKJr  S SKJs  Jr  S SKrS SKJrJrJrJrJrJrJr  S SKJr  S SKJr  S S	KJ r   S S
K!J"r"J#r#  S SK$J%r%J&r&  S SK'J(r(  S SK)J*r*  \RV                  " 5       S 5       r,\RV                  S 5       r-\RV                  S 5       r.\RV                  " / SQS9S 5       r/\RV                  S 5       r0S r1S r2\Rf                  Ri                  SS/5      \Rf                  Ri                  SSS 4SS 4/5      S 5       5       r5S r6S  r7\Rf                  Rq                  S!5      \Rf                  Ri                  SS/5      \Rf                  Ri                  S"/ S#Q5      S$ 5       5       5       r9\Rf                  Ri                  SS/5      S% 5       r:\Rf                  Ri                  SS/5      S& 5       r;S' r<S( r=S) r>S* r?\Rf                  Ri                  S+/ S,Q5      S- 5       r@\Rf                  Ri                  S.S/S0/5      S1 5       rA\Rf                  Ri                  S.S2S0/5      S3 5       rBS4 rCS5 rDS6 rES7 rF\Rf                  Ri                  S./ S8Q5      \Rf                  Ri                  S9/ S:Q5      S; 5       5       rGS< rHS= rIS> rJS? rKS@ rLSA rM\Rf                  Ri                  SBSCSDSESFSG./SHSDSESISG./S0SJSKSLSG.//5      SM 5       rNSN rOSO rPSP rQSQ rR\Rf                  Ri                  S./ SRQ5      SS 5       rS\Rf                  Ri                  STSUSV/5      SW 5       rTSX rUSY rV\Rf                  Ri                  SZS[S\0S[\" S]5      0S^S_S`.S[Sa0SbSc0/5      Sd 5       rW\Rf                  Ri                  S[SeSfSgShSi\X" 5       /5      Sj 5       rY\Rf                  Ri                  SbSeSkSi\X" 5       /5      Sl 5       rZSm r[Sn r\So r]Sp r^Sq r_Sr r`Ss raSt rbSu rcSv rdSw reSx rfSy rgSz rhS{ riS| rj\Rf                  Ri                  S./ S}Q5      S~ 5       rk\Rf                  Ri                  SSS/SS//5      S 5       rlS rmS rnS roS rpS rq\Rf                  Ri                  SSSS\R                  " S\Rf                  R                  SS9S9/5      S 5       rtS ruS rvS rw\ " SSSU5      \ " SSS5      \ " SSS5      \ " SSS5      \ " SSS5      \ " SSS5      /rx\y\
   \zS'   \xSSV \R                  /-   \xSVS -   \R                  /-   \xSS -   r|\y\
   \zS'   \R                  /\x-   \R                  /-   r}\Rf                  Ri                  S\x\|\}/5      S 5       r~\Rf                  Ri                  S\x\|\}/5      S 5       rS rS r\Rf                  Ri                  SS S S // SQS9S 5       r\Rf                  Ri                  SSS/5      \Rf                  Ri                  S/ SQ5      S 5       5       rS rS rS rS rS rS rS rS rS rS rS rS rS r\Rf                  Ri                  S/ SQ5      \Rf                  Ri                  S/ SQ5      S 5       5       r\Rf                  Ri                  S/ SQ5      S 5       r\Rf                  Ri                  SSS/5      S 5       r\Rf                  Ri                  S/ SQ5      S\S\S\S\S\4
S j5       r\Rf                  Ri                  S/ SQ5      S 5       rS rS rS r\Rf                  Ri                  S/ SQ5      S 5       r\Rf                  Ri                  S/ SQ5      S 5       rS r\Rf                  Ri                  S.SS/5      S.\4S j5       rS r\GR>                  " S5      \Rf                  Ri                  SS\R                  " S\Rf                  R                  \" 5       SS9S9/5      S 5       5       rg)    )datetime)partialN)lib)DatetimeNaTType)is_platform_windows)	DataFrameIndexSeries	Timedelta	Timestampisnanotna)Grouper
date_range)Periodperiod_range)DatetimeIndex_get_timestamp_range_edges)offsets)Minutec                      [         $ Nr        [/var/www/html/env/lib/python3.13/site-packages/pandas/tests/resample/test_datetime_index.py_index_factoryr   '   s    r   c                      g)NMinr   r   r   r   _index_freqr    ,   s    r   c                 p    [         R                  R                  S5      R                  [        U 5      5      $ )N   )nprandomdefault_rnglenindexs    r   _static_valuesr)   1   s&    99  #**3u:66r   )smsusns)paramsc                     U R                   $ r   )param)requests    r   unitr2   6   s    ==r   c                      SS jn U $ )zA
Series with date range index and random data for test purposes.
c                     [        XUS9n[        [        R                  R	                  S5      R                  [        U5      5      US9$ )Nfreqr"   r'   )r   r
   r#   r$   r%   standard_normalr&   )startendr6   rngs       r   _simple_date_range_series;simple_date_range_series.<locals>._simple_date_range_seriesA   s:    $/bii++A.>>s3xHPSTTr   Dr   )r;   s    r   simple_date_range_seriesr?   ;   s    U %$r   c                 $   U R                  U5      n[        [        R                  " S/[	        U5      -  5      USS9n[        [        S5      S9nUR                  U5      nUR                  5         / SQnU H  nUR                  US SS9  M     [        [        S5      S	S	S
9nUR                  U5      nUR                  5         / SQnU H  nUR                  US SS9  M     UR                  S:X  d   e[        UR                  5       5      R                  5       (       d   eS/S/S-  -   nUSSS2   n	U	R                  USS  5      n	[        U	SS9R                  U5      n	[        XS9n
UR!                  S5      n["        R$                  " X5        g )N   int64r(   dtype   r5   summeanprodminmaxvarTaltnumeric_onlyrightr6   closedlabel!
  i 
  r   5minr'   rG   )as_unitr
   r#   arrayr&   r   r   groupbyohlc_cython_agg_generalngroupsr   rH   allappendr   aggtmassert_series_equal)r(   r2   dtir*   bgfuncsfarridxexpectresults               r   test_custom_grouperrk   H   sq   
--
Crxxc#h's'BAVAYA			!A FFH8E	aT=  	VAYwg>A			!AFFH8E	aT=  99?     #d

C
a1f+C
**SX
C
&
)
1
1$
7CC#F UU5\F6*r   c                 ~   [        [        S5      SSS9nU R                  U5      n[        [        R
                  R                  S5      R                  [        U5      S45      USS9nUR                  U5      R                  S5      n[        UR                  5      S:X  d   e[        UR                  5      S	:X  d   eg )
NrE   rP   rQ   r"   
   float64rC   rG   rT   )r   r   rW   r   r#   r$   r%   r&   rY   r_   columnsr(   )r(   r2   rc   rb   dfrs         r   test_custom_grouper_dfrr   l   s    VAYwg>A
--
C	
		a ''S27s)
B 	

1% Aqyy>Rqww<4r   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r(   zclosed, expectedrP   c           
          [        U R                  S   U SS R                  5       U SS R                  5       U SS  R                  5       /[        SSSSS	9S
9$ )Nr   rA         1/1/2000   rV   r(   periodsr6   namer'   )r
   ilocrH   r   r*   s    r   <lambda>r~      sO    fAaFKKM1Qr7<<>1RS6;;=I QV'Rr   leftc           
          [        U S S R                  5       U SS R                  5       U SS  R                  5       /[        SSSSS9S9$ )	NrE   rm   1/1/2000 00:05   rV   r(   ry   r'   )r
   rH   r   r}   s    r   r~   r~      sH    f2Aq2w||~qv{{}= $af7r   c                    U nUR                   R                  U5      Ul         U" U5      nUR                   R                  U5      Ul         UR                  SUSS9R                  5       n[        R
                  " XR5        g )NrV   rP   rR   rS   )r(   rW   resamplerH   r`   ra   )seriesrR   expectedr2   r*   rj   s         r   test_resample_basicr   x   sg    4 	Aggood#AG{H^^++D1HNZZvWZ=BBDF6,r   c           	         [        [        S5      [        SSSS9R                  U 5      SS9nUR	                  S5      R                  5       n[        / SQ[        SS	SS9R                  U 5      SS9n[        R                  " X#5        UR	                  S5      R                  5       n[        / S
Q[        SS	SS9R                  U 5      SS9n[        R                  " X#5        g )N	   rw   rJ   rz   r6   Int64rC   3min)r         r   )rA   rx      Float64)	r
   ranger   rW   r   rG   r`   ra   rH   )r2   tsrj   r   s       r   test_resample_integerarrayr      s    	aQU;CCDI
B
 [[ $$&FQV<DDTJH
 6,[[ %%'FQV<DDTJH
 6,r   c                    U nUR                   R                  U5      Ul         UR                  S5      R                  5       n[	        [        S5      SSS9nUR                  U5      R                  S 5      n[        R                  " X55        g )N5MinrE   r   rQ   c                      U R                   S   $ NrU   r|   xs    r   r~   -test_resample_basic_grouper.<locals>.<lambda>   s    r
r   )
r(   rW   r   lastr   r   rY   r_   r`   ra   )r   r2   r*   rj   grouperr   s         r   test_resample_basic_grouperr      sl    Aggood#AGZZ$$&F6!9V6BGyy!%%&:;H6,r   z@ignore:The 'convention' keyword in Series.resample:FutureWarningzkeyword,value))rS   righttt)rR   r   )
conventionstartttc                     U R                   R                  U5      U l         SU SU S3n[        R                  " [        US9   U R
                  " S0 X0D6  S S S 5        g ! , (       d  f       g = f)NzUnsupported value z for ``matchrV   )r(   rW   pytestraises
ValueErrorr   )r   keywordvaluer2   msgs        r   test_resample_string_kwargsr      sZ     <<''-FLugVG9A
6C	z	-5G#35 
.	-	-s   A  
A.c                    US:X  a  [         R                  " S5        U nUR                  R                  U5      Ul        [        R
                  " U5      nSUS'   SUSS& SUSS& SUSS & UR                  U5      R                  U5      n[        S	S
SSS9R                  U5      Ul        [        UR                  SSSS9U5      " 5       n[        R                  " Xe5        g )NrZ   z!covered by test_resample_how_ohlcr   rA   ru   r"   rv   r   rw   rx   rV   r(   ry   rP   r   )r   skipr(   rW   r#   	ones_likerY   r_   r   getattrr   r`   ra   )r   downsample_methodr2   r*   	grouplistr   rj   s          r   test_resample_howr      s    
 F"78Aggood#AGQIIaLIaNIaOIbcNyy#''(9:HAFgdm N 	

6'
9;L F 6,r   c           
         U nUR                   R                  U5      Ul         [        R                  " U5      nSUS'   SUSS& SUSS& SUSS & S n[	        UR                  U5      R                  U5      R                  R                  5       [        SS	S
SS9R                  U5      / SQS9nUR                  S
SSS9R                  5       n[        R                  " Xe5        g )Nr   rA   ru   r"   rv   r   c                     [        U 5      R                  5       (       a%  [        R                  " [        R                  S5      $ U R
                  S   U R                  5       U R                  5       U R
                  S   /$ Nrx   r   rU   r   r]   r#   repeatnanr|   rK   rJ   groups    r   _ohlc%test_resample_how_ohlc.<locals>._ohlc   S    ;??99RVVQ''

1uyy{EIIKBHHr   rw   rx   rV   r(   ry   )openhighlowcloser(   ro   rP   r   )r(   rW   r#   r   r   rY   r_   valuestolistr   r   rZ   r`   assert_frame_equal)r   r2   r*   r   r   r   rj   s          r   test_resample_how_ohlcr      s    
 	Aggood#AGQIIaLIaNIaOIbcNI
 			)  '..557QV'JRR
 1H ZZwgZ>CCEF&+r   c                    [         R                  " S[         R                  S9n[        S[	        U5      SS9R                  U 5      n[        XS.US9nSS jn " S	 S
5      nUR                  S5      R                  U5      nUR                  S5      R                  S 5      nUR                  S5      R                  [        U5      5      nUR                  S5      R                  [        USS95      n	UR                  S5      R                  U" 5       5      n
[        R                  " Xg5        [        R                  " Xh5        [        R                  " Xi5        [        R                  " Xj5        g )NrE   rD   
2014-01-01dr8   rz   r6   ABr'   c                 *    [        [        U 5      5      $ r   strtype)r   as     r   fn'test_resample_how_callables.<locals>.fn  s    47|r   c                       \ rS rSrS rSrg),test_resample_how_callables.<locals>.FnClassi  c                 *    [        [        U5      5      $ r   r   )selfr   s     r   __call__5test_resample_how_callables.<locals>.FnClass.__call__  s    tAw<r   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   FnClassr     s    	 r   r   MEc                 *    [        [        U 5      5      $ r   r   r   s    r   r~   -test_resample_how_callables.<locals>.<lambda>  s    #d1g,r   r"   )r   )rA   )r#   arangerB   r   r&   rW   r   r   applyr   r`   r   )r2   dataindrp   r   r   df_standard	df_lambda
df_partialdf_partial2df_classs              r   test_resample_how_callablesr     s   99Qbhh'D
<T
E
M
Md
SC	)	5B    ++d#))"-KD!''(>?IT"((5J++d#))'"*:;K{{4 &&wy1H+1+2+3+0r   c           	      "   / SQn[        SS/S-  0[        R                  " U5      S9nUR                  R	                  U 5      Ul        UR                  S5      R                  5       n[        S/ SQ0[        SSS	S
9R	                  U 5      S9n[        R                  " X45        UR                  S5      R                  5       n[        S/ SQ0[        SSS	S
9R	                  U 5      S9n[        R                  " X45        UR                  S5      R                  5       n[        SSS/0[        SSSS
9R	                  U 5      S9n[        R                  " X45        UR                  S5      R                  5       n[        SSS/0[        SSSS
9R	                  U 5      S9n[        R                  " X45        UR                  S5      R                  5       n[        SSS/0[        SSSS
9R	                  U 5      S9n[        R                  " X45        g )N)z2014-11-08 00:00:012014-11-08 00:00:02r   z2014-11-08 00:00:032014-11-08 00:00:07r   2014-11-08 00:00:08r   r   z2014-11-08 00:00:09z2014-11-08 00:00:102014-11-08 00:00:11r   z2014-11-08 00:00:13z2014-11-08 00:00:14z2014-11-08 00:00:15z2014-11-08 00:00:17z2014-11-08 00:00:20z2014-11-08 00:00:21r   rA      r'   6s)rx   r   rx   r"   z
2014-11-08rx   r6   rz   7s)rx   rm   rx   rA   11srv      r"   13s   ru   17s   r   )
r   pdto_datetimer(   rW   r   rG   r   r`   r   )r2   r   rp   rj   r   s        r   test_resample_roundingr     s   
B* 
GaS2X&bnnR.@	ABxx%BH[[""$F	,D!<DDTJH &+[[""$F	- D!<DDTJH &+[[##%F	2q'E1=EEdKH &+[[##%F	2q'E1=EEdKH &+[[##%F	2q'E1=EEdKH &+r   c                 t	   [        [        SSS5      [        SSS5      SSS9R                  U 5      n[        [        R
                  R                  S5      R                  [        U5      5      U5      nUR                  S5      R                  5       n[        U5      S	:X  d   eUR                  R                  / S
Q:H  R                  5       (       d   eUR                  S   US   :X  d   eUR                  S   US   :X  d   eUR                  S   UR                  S   :X  d   eUR                  S5      R                  5       n[        U5      S:X  d   eUR                  R                  SS/:H  R                  5       (       d   eUR                  S   US   :X  d   eUR                  S   US   :X  d   eUR                  S5      R                  5       n[        U5      S:X  d   eUR                  R                  SS/:H  R                  5       (       d   eUR                  S   US   :X  d   eUR                  S   US   :X  d   eUR                  S5      R                  5       n[        U5      S:X  d   eUR                  R                  SS/:H  R                  5       (       d   eUR                  S   US   :X  d   eUR                  S   US   :X  d   eUR                  S5      R                  5       n[        U5      S:X  d   eUR                  R                  S	S	/:H  R                  5       (       d   eUR                  S   US   :X  d   eUR                  S   US   :X  d   eUR                  S5      R                  5       n[        U5      S:X  d   eUR                  R                  SS/:H  R                  5       (       d   eUR                  S   US   :X  d   eUR                  S   US   :X  d   eUR                  S5      R                  5       n[        U5      S:X  d   eUR                  R                  / SQ:H  R                  5       (       d   eUR                  S   US   :X  d   eUR                  S   US   :X  d   eUR                  S   US   :X  d   eUR                  R                  S:X  d   eg )N  rA   rm   r>   r(   r8   r9   r6   r{   r"   zw-sunr   )ru   ru   ru   r   z1/2/2005z1/9/2005rU   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrx   z1/7/2005r   r   )rx   r   rA   r"   r   rx   r   rE   )r   r   rW   r
   r#   r$   r%   r&   r   r   r(   	dayofweekr]   r|   r{   r2   rb   r*   rj   s       r   test_resample_basic_from_dailyr  `  sN   
tQ"q"(=Cggdm  	ryy$$Q'..s3x8#>A ZZ %%'Fv;!LL""i/446666;;q>Qz]***;;q>Qz]***;;q>QVVBZ'''ZZ %%'Fv;!LL""q!f,113333;;q>Qz]***;;q>Q{^+++ZZ %%'Fv;!LL""q!f,113333;;q>Qz]***;;q>Q{^+++ZZ %%'Fv;!LL""q!f,113333;;q>Qz]***;;q>Q{^+++ZZ %%'Fv;!LL""q!f,113333;;q>Qz]***;;q>Q{^+++ZZ %%'Fv;!LL""q!f,113333;;q>Qz]***;;q>Q{^+++ ZZ_!!#Fv;!LL""&;;@@BBBB;;q>Qz]***;;q>Qz]***;;q>Qz]***<<'''r   c                 d   [        SSSS9R                  U 5      n[        SUS9nUR                  S5      R	                  5       nUR
                  S   US   :X  d   e[        [        R                  " SS	5      [        SS	5       Vs/ s H  n[        S
SUSS5      PM     snS9nUR
                  R                  U 5      Ul        [        [        R                  " SS	5      [        SSSS9R                  U 5      S9nUR                  S5      R                  5       n[        R                  " U[        SUR
                  S95        UR                  S5      R                  5       nUR                  S5      R	                  5       n[        R                  " Xv5        [        R                  " X5        g s  snf )Nz01-Jan-2014z05-Jan-2014r>   r5   rA   r'   r         ?ru   i  r   19750101rE   r   )r   rW   r
   r   rH   r(   r#   r   r   r   countr`   ra   rG   )	r2   datesr   rj   ir*   r   result1result2s	            r   /test_resample_upsampling_picked_but_not_correctr    s]   }m#>FFtLEAU#F__S!&&(F<<?eAh&&& 	
		#quQPQ{!S{!(4Ar1"={!S	A ggood#AG
		#qQS9AA$GH
 ZZ_""$F66!8>>#BCjjo!!#Gjjo""$G7-7- "Ts   F-
rf   rF   c           
      D   [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9nUR                  R                  U5      Ul	        [        S
S9nUR                  U5      nUR                  U S SS9  g )Nr"   2   rx   ABCDr   
2000-01-01r  r   r   ro   r(   r   r5   TrM   )r   r#   r$   r%   r7   r	   listobjectr   r(   rW   r   rY   r[   )rf   r2   rp   rc   rd   s        r   "test_resample_frame_basic_cy_funcsr    s    	
		a 009d6l&1r<
B
 xx%BHTA


1A !D9r   r6   YEr   c           
         [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9nUR                  R                  U5      Ul	        UR                  U 5      R                  5       n[        R                  " US
   US
   R                  U 5      R                  5       5        g )Nr"   r  r  r   r  r  r   r   r  r   )r   r#   r$   r%   r7   r	   r  r  r   r(   rW   r   rH   r`   ra   )r6   r2   rp   rj   s       r   test_resample_frame_basic_M_Ar     s    	
		a 009d6l&1r<
B
 xx%BH[[##%F6#;3(8(8(>(C(C(EFr   r  c           
         [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9nUR                  R                  U5      Ul	        S
n[        R                  " [        US9   UR                  U SS9R                  5         S S S 5        g ! , (       d  f       g = f)Nr"   )rm   rx   r  r   r  rm   r   r   r  6The 'kind' keyword in DataFrame.resample is deprecatedr   periodkind)r   r#   r$   r%   r7   r	   r  r  r   r(   rW   r`   assert_produces_warningFutureWarningr   rH   )r6   r2   rp   r   s       r   test_resample_frame_basic_kindr(    s    	
		a 009d6l&1r<
B
 xx%BH
BC		#	#M	=
Dx(--/ 
>	=	=s   B99
Cc                    [        [        SSS5      [        SSS5      SSS9R                  U 5      n[        [        R
                  R                  S5      R                  [        U5      5      U5      nUR                  S5      R                  5       n[        U5      S	:X  d   eUR                  S
   UR                  S
   :X  d   eUR                  S   UR                  S   :X  d   eUR                  R                  S:X  d   eg )Nr  rA   rm   r>   r(   r  r"   r   i2  r   rU   )r   r   rW   r
   r#   r$   r%   r&   r   ffillr|   r(   r{   r
  s       r   test_resample_upsampler+    s    
tQ"q"(=Cggdm  	ryy$$Q'..s3x8#>A ZZ$$&Fv;%;;q>QVVAY&&&;;r?affRj(((<<'''r   c                 v   [        SS/[        S5      [        S5      /S9nUR                  R                  U 5      Ul        [        S[        R
                  [        R
                  [        R
                  [        R
                  [        R
                  S/[        [        S5      [        S5      [        S5      [        S	5      [        S
5      [        S5      [        S5      /SS9S9nUR                  R                  U 5      Ul        [        R                  " UR                  S5      R                  5       U5        g )Nrv      z2015-03-31 21:48:52.672000z2015-03-31 21:49:52.739000r'   z2015-03-31 21:48:50z2015-03-31 21:49:00z2015-03-31 21:49:10z2015-03-31 21:49:20z2015-03-31 21:49:30z2015-03-31 21:49:40z2015-03-31 21:49:5010sr5   )r
   r   r(   rW   r#   r   r   r`   ra   r   rH   )r2   r*   r   s      r   test_resample_how_methodr/    s    	R2323
	A ggood#AG	RVVRVVRVVRVVRVVR8/0/0/0/0/0/0/0 
H ^^++D1HN1::e,113X>r   c           
      P   [        SSSS9R                  U 5      n[        S[        / SQUS905      n[        SSSS9R                  U 5      n[        S[        [	        [        U5      5      US90S	S
9nUR                  S5      R                  5       n[        R                  " XB5        g )N2015010120150331BMEr8   r9   r6   r   )r   )   ?   r'   r   rB   r   )
r   rW   r   r
   r   r&   r   r   r`   r   )r2   r(   r   rp   rj   s        r   test_resample_extra_index_pointr7    s    ZZeDLLTRE#vl%@ABHZZcBJJ4PE	Cc%j 1?@	PB[[$$&F&+r   c                 X   [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      U5      nUR                  S5      R                  SS9nUR                  UR                  SSS	9n[        R                  " X45        g )
Nrw   r   rV   r   r"   rJ   limitr*  methodr:  )r   rW   r
   r#   r$   r%   r7   r&   r   r*  reindexr(   r`   ra   r2   r:   r   rj   r   s        r   test_upsample_with_limitr?    s    
Z
8
@
@
FC			%%a(88SBC	HB[[%%A%.Fzz&,,waz@H6,r   )1D10hr   r.  rule)r  3ME15D30h15Min30sc                 X   [        SSXS9R                  U5      n[        [        R                  R                  S5      R                  [        U5      5      U5      nUR                  U5      R                  SS9nUR                  UR                  SSS9n[        R                  " Xg5        g )Nrw   r   )rz   r6   tzr"   r9  nearestr;  )r   rW   r
   r#   r$   r%   r7   r&   r   rJ  r=  r(   r`   ra   )tz_aware_fixturer6   rB  r2   r:   r   rj   r   s           r    test_nearest_upsample_with_limitrL  #  s     Z
K
S
SC 
		%%a(88SBC	HB[[&&Q&/Fzz&,,yzBH6,r   c                 2   U nUR                   R                  U5      Ul         [        [        S5      S9nUR	                  U5      R                  S 5      nUR                  S5      R                  5       n[        U5      [        U5      :X  d   e[        UR                  5      S:X  d   eUR                  S   nUS   UR                  S   :X  d   eUS	   USS
 R                  5       :X  d   eUS   USS
 R                  5       :X  d   eUS   UR                  S   :X  d   eUR                  S   nUS   UR                  S   :X  d   eUS	   US S R                  5       :X  d   eUS   US S R                  5       :X  d   eUS   UR                  S   :X  d   eg )NrE   r5   c                      U R                   S   $ r   r   r   s    r   r~   $test_resample_ohlc.<locals>.<lambda>6  s    affRjr   r   rx   r   ir   rU   r   r   r   )r(   rW   r   r   rY   r_   r   rZ   r&   ro   r|   rK   rJ   )r   r2   r*   r   ri   rj   xss          r   test_resample_ohlcrR  1  s   Aggood#AG6!9%GYYw##$89FZZ$$&Fv;#f+%%%v~~!###	RBf:###f:2b'''e9"R&&&g;!&&*$$$	QBf:"""f:2A$$$e9"1		###g;!&&)###r   c                    [        SSSS9R                  U 5      nUR                  [        SSSS9R                  U 5      5      n[        [	        [        U5      5      US9nUR                  S S R                  S5      R                  5       n[        U[        5      (       d   eUR                  S S	 R                  S5      R                  5       n[        U[        5      (       d   eg )
N1-1-2000	2-15-2000hr5   	4-15-2000	5-15-2000r'   30minz	4-14-2000)r   rW   unionr
   r   r&   locr   rZ   
isinstancer   )r2   r(   r*   r   rc   s        r   test_resample_ohlc_resultr]  I  s    z;S9AA$GEKK
;#FNNtTUEuSZ .A	l{$$W-224Aa####	l{$$W-224Aa####r   c                    [        SS5      R                  U 5      nUR                  [        S5      [        S5      [        S5      [        S5      /5      n[	        [
        R                  " [        U5      5      US9nUR                  S5      R                  5       nUR                  [        US	   US
   SS9R                  U 5      S9n[        R                  " XE5        g )Nz
2013-12-30z
2014-01-07r   z
2013-12-31z
2014-01-04z
2014-01-05)r   r(   r   r   rU   r5   r'   )r   rW   dropr   r   r#   r   r&   r   rH   r=  r`   r   )r2   r:   r(   rp   rj   r   s         r   $test_resample_ohlc_result_odd_periodr`  V  s     \<
0
8
8
>CHHl#l#l#l#		
E 
		#e*-U	;B[[""$Fzz
3q63r7 E M Md SzTH&+r   c                 V   [        [        SS S9S[        SS S9S[        SS S9S0[        SS S9S[        SS S9S[        SS S9S	0S
.5      R                  SS/SS9nUR                  R	                  U 5      Ul        SUR
                  l        UR                  S5      R                  5       n[        R                  " US   R                  S5      R                  5       US   R                  S5      R                  5       /SUR
                  S9nUR
                  R                  S   S:X  d   e[        R                  " X25        SS/SS//Ul        UR                  S5      R                  5       n[        R                  R                  / SQ5      Ul        [        R                  " X25        g )Nz2011-01-06 10:59:05rI  ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMErd  rc  rA   axisColsrV  )rf  keysr   r   rc   cr   ))r   ri  r   )r   ri  r   )r   ri  r   )r   ri  r   )rc   r   r   )rc   r   r   )rc   r   r   )rc   r   r   )r   r   r=  r(   rW   ro   r{   r   rZ   r  concatnamesr`   r   
MultiIndexfrom_tuples)r2   rp   resexps       r   test_resample_ohlc_dataframerp  h  s    3=u3=u3=u 3=z3=z3=y	
 gx!g*   xx%BHBJJO
++c



!C
))	H		s	#	(	(	*BwK,@,@,E,J,J,LMZZC
 ;;Q6)))##*sCj)BJ
++c



!C--++		
CK ##r   c                     [        [        R                  R                  S5      R	                  S5      / SQ[        S5       V s/ s H  n [        SU S-   SS9PM     sn S	9n[        R                  UR                  S
S S 24'   Sn[        R                  " [        US9   UR                  SSS9R                  5       nS S S 5        Sn[        R                  " [        US9   UR                  S SS9R                  5       nS S S 5        [        S5       V s/ s H  n [        SU S-   SS9PM     sn Wl        [        R                   " WU5        g s  sn f ! , (       d  f       N= f! , (       d  f       Ni= fs  sn f )Nr"   )rx   r   )  rr  rr  rr  r   rr  rA   M)yearmonthr6   r   r   -DataFrame.resample with axis=1 is deprecated.r   QEre  z+DataFrame.groupby with axis=1 is deprecatedc                 8    [        U R                  S-
  S-  5      $ )NrA   r   )intru  r   s    r   r~   )test_resample_dup_index.<locals>.<lambda>  s    QWWq[A,=(>r   rx   Q)rt  quarterr6   )r   r#   r$   r%   r7   r   r   r   r|   r`   r&  r'  r   rH   rY   ro   r   )r  rp   warning_msgrj   r   r   s         r   test_resample_dup_indexr~    s*    

		a 009&CH9M9aTQS99M
B
 FFBGGAqDMAK		#	#M	ET*//1 
F 8C		#	#M	=::>Q:GLLN 
>LQRSHUHqD!a%cBHUH&(+ N 
F	E 
>	=Us$   EE E!E2
E!
E/c                 N   [        [        SSS5      [        SSS5      SS9R                  U 5      n[        [        R
                  R                  S5      R                  [        U5      5      U5      nUR                  SSSS	9R                  5       nUR                  S
5      R                  5       n[        U5      S:X  d   e[        UR                  R                  [        R                  5      (       d   eUR                  R                  [        R                  " S5      :X  d   eg )Nr  rA   rm   r>   r4  r"   r   rP   r   8h   r   )r   r   rW   r
   r#   r$   r%   r&   r   rH   r\  r(   r6   r   
DateOffsetHour)r2   rb   r*   bsrj   s        r   test_resample_reresampler    s    
tQ"q"(=Cgdm  	ryy$$Q'..s3x8#>A	
Cw	7	<	<	>B[[##%Fv;"fll''););<<<<<<Q///r   zfreq, expected_kwargszYE-DEC19902000zY-DECr4  zYE-JUNzY-JUNz1990-01z2000-01rs  c                    U " SS5      nUR                   R                  U5      Ul         Sn[        R                  " [        US9   UR                  USS9R                  5       nS S S 5        UR                  U5      R                  5       n[        S0 UD6Ul         [        R                  " WU5        g ! , (       d  f       NU= f)Nz1/1/1990rw   3The 'kind' keyword in Series.resample is deprecatedr   r#  r$  r   )	r(   rW   r`   r&  r'  r   rH   r   ra   )r?   r6   expected_kwargsr2   r   r   rj   r   s           r   !test_resample_timestamp_to_periodr    s     
"*j	9Bxx%BH
?C		#	#M	=T1668 
>{{4 %%'H!4O4HN68,	 
>	=s   B33
Cc                 *   S n[        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  SS	S	S
9R                  5       nUR                  S   UR                  S   :H  R                  5       (       d   eU" USS 5      nUR                  S   U:H  R                  5       (       d   eU" USS  5      nUR                  S   U:H  R                  5       (       d   eg )Nc                     [        U 5      R                  5       (       a%  [        R                  " [        R                  S5      $ U R
                  S   U R                  5       U R                  5       U R
                  S   /$ r   r   r   s    r   r   test_ohlc_5min.<locals>._ohlc  r   r   rs   z1/1/2000 5:59:50r.  r5   r"   r'   rV   rP   r   z1/1/2000 00:00r   rA      r   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rW   r
   r#   r$   r%   r7   r&   r   rZ   r[  r|   r]   )r2   r   r:   r   	resampledro  s         r   test_ohlc_5minr    s   I
 (*<5
I
Q
QRV
WC			%%a(88SB#	NBF7'BGGIIMM*+rwwqz9>>@@@@
1R/CMM*+s2779999
%&'
(CMM,-499;;;;r   c                 *   [        SS5      R                  U 5      nUR                  S5      R                  n[	        [
        R                  R                  S5      R                  [        U5      5      US9nUR                  S5      R                  5       nUR                  S 5      R                  5       n[        U5      S:X  d   e[        R                  " UR                  S   US	   5        [        R                  " UR                  S	   US   5        g )
Nrw   	2/29/2000rE   r"   r'   r   c                     U R                   $ r   )ru  r   s    r   r~   ,test_downsample_non_unique.<locals>.<lambda>  s    AGGr   r   rA   )r   rW   r   r   r
   r#   r$   r%   r7   r&   r   rH   rY   r`   assert_almost_equalr|   )r2   r:   rng2r   rj   r   s         r   test_downsample_non_uniquer    s    
Z
-
5
5d
;C::a=D			%%a(88TC4	PB[[##%Fzz+,113Hv;!6;;q>8A;76;;q>8A;7r   c                 z   [        SS5      R                  U 5      nUR                  S5      R                  n[	        [
        R                  R                  S5      R                  [        U5      5      US9nSn[        R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)Nrw   r  r"   r'   z/cannot reindex on an axis with duplicate labelsr   r   )r   rW   r   r   r
   r#   r$   r%   r7   r&   r   r   r   asfreq)r2   r:   r  r   r   s        r   test_asfreq_non_uniquer    s    
Z
-
5
5d
;C::a=D			%%a(88TC4	PB
;C	z	-
		# 
.	-	-s   B,,
B:c                    [        SS5      R                  U 5      n[        [        R                  R                  S5      R                  S[        U5      45      U/ SQS9nSn[        R                  " [        US9   UR                  S	S
S9R                  5       nS S S 5        UR                  R                  S	5      R                  5       R                  n[        R                  " WU5        g ! , (       d  f       NY= f)Nrw   r  r"   r   r   rc   ri  r  rv  r   r   rA   re  )r   rW   r   r#   r$   r%   r7   r&   r`   r&  r'  r   rH   Tr   )r2   r:   rp   r}  rj   r   s         r   test_resample_axis1r    s    
Z
-
5
5d
;C	
		a 00!SX?
B BK		#	#M	ET*//1 
Ftt}}T"'')++H&(+ 
F	Es   ;C--
C;)rJ   rV   15minrY  4h12hc                    [        SSSS9R                  U5      n[        [        R                  R                  S5      R                  [        U5      5      US9n[        R                  US S& USS  R                  U SSS9R                  5       nUR                  U SSS9R                  5       n[        R                  " XE5        g )	Nz1/1/2000 04:00:00Q r*   r   r"   r'   r   r   r   rW   r
   r#   r$   r%   r7   r&   r   r   rH   r`   ra   )r6   r2   r:   r   rj   r   s         r   test_resample_anchored_ticksr  	  s     (%c
B
J
J4
PC			%%a(88SB#	NBVVBrFV__T&_?DDFF{{4f{=BBDH6,r   r9   rA   r"   c                 h   S n[        SSU  S3SS9R                  U5      n[        [        R                  R                  S5      R                  [        U5      5      US9n[        R                  " UR                  S	5      R                  5       UR                  S	5      R                  U5      5        g )
Nc                 "    U R                  5       $ r   )rG   r   s    r   r~   ,test_resample_single_group.<locals>.<lambda>  s
    aeegr   z2000-1-1z2000-z-10r>   r5   r"   r'   r   )r   rW   r
   r#   r$   r%   r7   r&   r`   ra   r   rG   r   )r9   r2   mysumr:   r   s        r   test_resample_single_groupr    s    E
Z5S!1
<
D
DT
JC			%%a(88SB#	NB2;;t,002BKK4E4K4KE4RSr   c                 J   [        SS/[        S5      [        S5      /S9nUR                  R                  U 5      Ul        [        S/[	        [        S5      /SS	9R                  U 5      S9nUR                  S5      R                  S
 5      n[        R                  " X25        g )Ng>@g?@z20070915 15:30:00z20070915 15:40:00r'   g      ?20070915r>   r5   c                 .    [         R                  " U 5      $ r   )r#   stdr   s    r   r~   0test_resample_single_group_std.<locals>.<lambda>+  s    RVVAYr   )	r
   r   r(   rW   r   r   r   r`   ra   )r2   r*   r   rj   s       r   test_resample_single_group_stdr  !  s    	t,-y9L/MN	A ggood#AG	mYz%:$;#FNNtTH ZZ_""#67F6,r   c                 h   [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  SSS	9R                  5       n[        S
SSS9R                  U 5      n[        R                  " UR                  U5        g )Nrs   z1/1/2000 02:00r*   r5   r"   r'   rV   2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rW   r
   r#   r$   r%   r7   r&   r   rH   r`   assert_index_equalr(   )r2   r:   r   r  exp_rngs        r   test_resample_offsetr  /  s     (*:
E
M
Md
SC			%%a(88SB#	NBF62779I.0@vNVVG )//73r   kwargsorigin1999-12-31 23:57:00z1970-01-01 00:02:00epoch2mr  r  z1999-12-31 12:02:00r  z-3mc                 l   [        SSSS9R                  U5      n[        [        R                  R                  S5      R                  [        U5      5      US9n[        SSS	S9R                  U5      nUR                  " S
0 U D6R                  5       n[        R                  " UR                  U5        g )N2000-01-01 00:00:002000-01-01 02:00r*   r5   r"   r'   r  2000-01-01 01:57rV   r   r  )r  r2   r:   r   r  r  s         r   test_resample_originr  <  s     *,>S
I
Q
QRV
WC			%%a(88SB#	NB1gdm  -f-224I)//73r   invalid_valueepchstartdaystarttz
2000-30-30c                 H   [        SSSS9R                  U5      n[        [        R                  R                  S5      R                  [        U5      5      US9nSU  S3n[        R                  " [        US	9   UR                  S
U S9  S S S 5        g ! , (       d  f       g = f)Nr  r  r*   r5   r"   r'   z|'origin' should be equal to 'epoch', 'start', 'start_day', 'end', 'end_day' or should be a Timestamp convertible type. Got '
' instead.r   rV   r  r   rW   r
   r#   r$   r%   r7   r&   r   r   r   r   )r  r2   r:   r   r   s        r   test_resample_bad_originr  T  s     *,>S
I
Q
QRV
WC			%%a(88SB#	NB	8:	 
 
z	-
F6* 
.	-	-   9B
B!12dayysc                 H   [        SSSS9R                  U5      n[        [        R                  R                  S5      R                  [        U5      5      US9nSU  S3n[        R                  " [        US	9   UR                  S
U S9  S S S 5        g ! , (       d  f       g = f)Nr  r  r*   r5   r"   r'   z6'offset' should be a Timedelta convertible type. Got 'r  r   rV   r  r  )r  r2   r:   r   r   s        r   test_resample_bad_offsetr  c  s    
*,>S
I
Q
QRV
WC			%%a(88SB#	NBB6(*
UC	z	-
F6* 
.	-	-r  c                    Su  p[        XSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9n[        SSSS9R                  U 5      nUR                  S5      R                  5       n[        R                  " UR                  U5        UR                  SS	S
9R                  5       n[        R                  " UR                  U5        [        SSSS9R                  U 5      nUR                  SSS
9R                  5       n[        R                  " UR                  U5        UR                  SSS9R                  5       n[        R                  " UR                  U5        UR                  SS	SS9R                  5       n[        R                  " UR                  U5        [        SSSS9R                  U 5      nUR                  SSS
9R                  5       n[        R                  " UR                  U5        [        SSSS9R                  U 5      nUR                  SSS
9R                  5       n[        R                  " UR                  U5        g )N)2000-10-01 23:30:00z2000-10-02 00:30:007minr5   r"   r'   z2000-10-01 23:14:00z2000-10-02 00:22:0017min	start_dayr  r  z2000-10-02 00:21:00r8   23h30minr  r  z2000-10-01 23:18:00z2000-10-02 00:26:00r  z2000-10-01 23:24:00z2000-10-02 00:15:00r  r  )r2   r8   r9   r:   r   r  r  s          r   test_resample_origin_prime_freqr  l  s   =JE
Uf
-
5
5d
;C			%%a(88SB#	NB47gdm  G$))+I)//73GK8==?I)//7347gdm  GG499;I)//73GJ7<<>I)//73GK
KPPRI)//7347gdm  GG499;I)//7347gdm  GL9>>@I)//73r   c                 h   SnSn[        SSSUS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9n[        S	S
SUS9R                  U 5      nUR                  SSS9R                  5       n[        R                  " UR                  U5        UR                  SSS9R                  5       n[        R                  " UR                  U5        UR                  SSSS9R                  5       n[        R                  " UR                  U5        [        R                  " [        US9   UR                  SSS9R                  5         S S S 5        [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9n[        R                  " [        US9   UR                  SSS9R                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz4The origin must have the same timezone as the index.Europe/Parisr  r  r*   r6   rI  r"   r'   r  r  rV   z1999-12-31 23:57:00+00:00r  z1999-12-31 12:02:00+03:00r  r  r  r   r  r5   z12/31/1999 23:57:00+03:00)r   rW   r
   r#   r$   r%   r7   r&   r   rH   r`   r  r(   r   r   r   )r2   r   rI  r:   r   r  r  s          r   test_resample_origin_with_tzr    s   
@C	B
1gdm  
		%%a(88SB#	NB12gdm  F+FGLLNI)//73 F+FGLLNI)//73F74@EEGI)//73	z	-
F#89>>@ 
. *,>S
I
Q
QRV
WC			%%a(88SB#	NB	z	-
F#>?DDF 
.	- 
.	- 
.	-s   H*H#
H #
H1c                 L   Su  p[        XSS9R                  U 5      n[        R                  R	                  S5      R                  [        U5      5      n[        XCS9nUR                  SSS9R                  5       nUR                  S	SS9R                  5       n[        R                  " Xg5        UR                  S 5      nUR                  SSS9R                  5       n	UR                  S	SS9R                  5       n
[        R                  " XiR                  UR                  5      S
S9  [        R                  " XjR                  UR                  5      S
S9  Su  p[        XSS9R                  U 5      n[        XCS9nUR                  SSS9R                  5       nUR                  S	SS9R                  5       n[        R                  " UR                  S 5      UR                  S 5      5        [        R                  " UR                  S 5      UR                  S 5      5        g )N)z2000-10-01 23:30:00+0500z2000-12-02 00:30:00+0500r  r5   r"   r'   r>   r  r  24hF)
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rW   r#   r$   r%   r7   r&   r
   r   rH   r`   ra   tz_localizerI  )r2   r8   r9   r:   random_valuests_1result_1result_2ts_no_tzresult_3result_4ts_2result_5result_6s                 r   -test_resample_origin_epoch_with_tz_day_vs_24hr    s   GJE
Uf
-
5
5d
;CII))!,<<SXFM-+D}}S}1668H}}U7}388:H8. %H  W 5::<H  w 7<<>H8%9%9#&&%AeT8%9%9#&&%AeT HJE
Uf
-
5
5d
;C-+D}}S}1668H}}U7}388:H8//5x7K7KD7QR8//5x7K7KD7QRr   c                   ^ ^
 Sm
S$U
U 4S jjn[        ST
S9n[        ST
S9n[        X#SS9R                  T 5      n[        [        R
                  " [        U5      5      US	9nU" S
S/SS/5      nSSSUS 4 H7  nUR                  SUS9R                  5       n[        R                  " X5        M9     [        ST
S9n[        ST
S9n[        X#SS9R                  T 5      n[        [        R
                  " [        U5      5      US	9nSS/n	U" SS/U	5      nUR                  SSSS9R                  5       n[        R                  " X5        SS/n	U" SS/U	SS9nUR                  SSSS9R                  5       n[        R                  " X5        SS/n	U" SS/U	5      nUR                  SSSS9R                  5       n[        R                  " X5        SS/n	U" S
S /U	5      nUR                  SSS!S9R                  5       n[        R                  " X5        S"S#/n	U" S S
/U	5      nUR                  SSSS9R                  5       n[        R                  " X5        g )%NAmerica/Chicagor>   c                    > [        U [        U Vs/ s H  n[        UTS9PM     snUSS9R                  T5      S9$ s  snf )Nrb  T)r6   	ambiguousr'   )r
   r   r   rW   )r   
timestampsr6   trI  r2   s       r   _create_seriesAtest_resample_origin_with_day_freq_on_dst.<locals>._create_series  sG    .89j1$j9PTgdm	
 	
 :s   =
2013-11-02rb  z2013-11-03 23:591hr5   r'   g      8@g      9@z
2013-11-03r  r8   r  r  z2013-11-02 22:00-05:00z2013-11-03 22:00-06:00g      7@       @z-2hr  z2013-11-03 21:00-06:00g      6@      @r  z2013-11-02 02:00-05:00z2013-11-03 02:00-06:002hz2013-11-02 23:00-05:00z2013-11-03 23:00-06:00r  z-1hz2013-11-02 01:00-05:00z2013-11-03 01:00:00-0500r=   )r   r   rW   r
   r#   onesr&   r   rG   r`   ra   )r2   r  r8   r9   r:   r   r   r  rj   expected_tsrI  s   `         @r   )test_resample_origin_with_day_freq_on_dstr    s[   	B
 
 lr*E
&2
.C
Ud
+
3
3D
9C	C!	-BtTl\<,HIHG[%>S0446
v0 ?
 lr*E
&2
.C
Ud
+
3
3D
9C	C!	-B+-EFKtSk;7H[[WU[;??AF6,+-EFKtSk;UCH[[wu[=AACF6,+-EFKsDk;7H[[WT[:>>@F6,+-EFKtSk;7H[[WU[;??AF6,+-GHKsDk;7H[[WT[:>>@F6,r   c                    [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9n[        R                  US S& USS  R                  SSSS	9R                  5       nUR                  SSSS	9R                  5       n[        R                  " X45        g )
Nz1/1/2000 0:00:00'  rJ   r   r"   r'   r>   r   r   r  r>  s        r   test_resample_daily_anchoredr    s    
'U
C
K
KD
QC			%%a(88SB#	NBVVBrFV__Sv_>CCEF{{3vV{<AACH6,r   c                    [        SS5      R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nSn[        R                  " [        US9   UR                  SSS	9R                  5       nS S S 5        [        S
SSS9n[        R                  " WR                  U5        g ! , (       d  f       N;= f)Nrw   z
12/31/2000r"   r'   r  r   r   r#  r$  zJan-2000zDec-2000rs  r5   )r   rW   r
   r#   r$   r%   r7   r&   r`   r&  r'  r   rH   r   r  r(   )r2   r:   r   r   rj   	exp_indexs         r   &test_resample_to_period_monthly_bugletr    s     Z
.
6
6t
<C			%%a(88SB#	NB
?C		#	#M	=T1668 
>Z#>I&,,	2 
>	=s   6C


Cc            	         [        [        R                  R                  S5      R	                  SSS5      [        SSSS9SS	9n U R                  5       R                  S
5      R                  5       R                  5       nSn[        R                  " [        US9   U R                  S
5      nS S S 5        WR                  S 5      n[        R                  " XA5        g ! , (       d  f       N7= f)Nr"   r   rE   r  z
2012-01-01rV  r   rn   rC   r>   z+Resampling with a PeriodIndex is deprecatedr   c                 "    U R                  5       $ r   rH   r   s    r   r~   &test_period_with_agg.<locals>.<lambda>(  s
    affhr   )r
   r#   r$   r%   integersr   to_timestampr   rH   	to_periodr`   r&  r'  r_   ra   )s2r   r   rsrj   s        r   test_period_with_aggr    s    	
		a ))!Q3<c2>
B  ))#.335??AH
7C		#	#M	=[[ 
>VV&'F6, 
>	=s   C
C*c                    S[        SSSSS5      SS4S[        SSSSS5      SS4S[        SSSSS	5      SS4S[        SSSSSS
5      SS4/n[        R                  " USS9R                  S5      nUR                  R                  U 5      Ul        Sn[        R                  " [        US9   UR                  S5      R                  S5      R                  5       nS S S 5        Sn[        R                  " [        US9   UR                  S5      R                  S 5      nS S S 5        [        R                  " WW5        g ! , (       d  f       Nk= f! , (       d  f       N7= f)NrA   i  rm   r      r   r"         r  )ID	timestampr   r   ro   r  :DataFrameGroupBy.resample operated on the grouping columnsr   r  rV   z7DataFrameGroupBy.apply operated on the grouping columnsc                 @    U R                  S5      R                  5       $ )NrV   )r   rG   r   s    r   r~   (test_resample_segfault.<locals>.<lambda>?  s    AJJv4F4J4J4Lr   )r   r   from_records	set_indexr(   rW   r`   r&  DeprecationWarningrY   r   rG   r   r   )r2   all_wins_and_wagersrp   r   rj   r   s         r   test_resample_segfaultr  ,  sG    
HT2q"b)1a0	
HT2q"b)1a0	
HT2q"b)1a0	
HT2q"b"-q!4	 
		%B
i  xx%BH
FC		#	#$6c	BD!**62668 
C
CC		#	#$6c	B::d#))*LM 
C&(+ 
C	B 
C	Bs   +/D?="E?
E
Ec           	      4   [        [        SSSS9R                  U 5      / SQ[        / SQSS9S	.5      R	                  S
5      nUR                  S5      R                  5       nUR                  R                  [        R                  :X  d   eSn[        R                  " [        US9   UR                  S5      R                  S5      R                  5       nS S S 5        UR                  R                  [        R                  :X  d   eg ! , (       d  f       N9= f)Nz
2016-01-01rx   Wr   )rA   rA   r"   r"   )rE   ru   r   r   int32r   )dater   valr  r@  r  r   r   )r   r   rW   r
   r  r   r*  r   rD   r#   r  r`   r&  r  rY   )r2   rp   rj   r   s       r    test_resample_dtype_preservationr!  C  s     
\13GOOPTU!,g6	

 i  [[$$&F::rxx'''
FC		#	#$6c	BG$--d399; 
C::rxx''' 
C	Bs   '/D		
Dc                    [         R                  " S5        S/ SQ0n[        U[        SS5      R	                  U 5      S9nUR                  S5      R                  S5      R                  5       S   R                  S	5      nUR                  S5      S   R                  5       R                  S	5      n[        R                  " X25        UR                  S5      R                  5       S   R                  S	5      n[        R                  " X25        g )
Nzscipy.interpolater   )rA   r   rA   rx   z
2017-01-01z
2017-01-04r'   rn   rV  cubic)r   importorskipr   r   rW   astyper   rH   interpolater`   ra   )r2   rp   r   rj   s       r   test_resample_dtype_coercionr'  X  s    
+, |	B	2ZlCKKDQ	RByy#,,S1668=II'RH[[c"'')55g>F6,[[""$S)55g>F6,r   c                 ^   [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  S5      R                  5       nUR                  S5      R                  5       n[        R                  " X45        g )	Nrw   r   r  r   r"   r'   r  zW-SUN)r   rW   r
   r#   r$   r%   r7   r&   r   rH   r`   ra   )r2   r:   r   r  r   s        r   test_weekly_resample_bugletr)  h  s    
Zc2
6
>
>t
DC			%%a(88SB#	NBC %%'I{{7#((*H9/r   c                     [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  S5        g )N4/16/2012 20:00i  rV  r   r"   r'   r   )	r   rW   r
   r#   r$   r%   r7   r&   r   r2   r  r   s      r   test_monthly_resample_errorr-  r  sR    ($SAII$OE			%%a(88UDE	RBKKr   c                     Sn Sn[        [        R                  " U 5      SSS9n[        [	        [        U5      5      US9nUR                  [        R                  R                  R                  S5      5      nUR                  S5      n[        [        R                  " U5      SSS9n[        [	        [        U5      5      U[        S	9n[        R                  " XW5        g )
Nl   *dG@l   *dG@rm   100nsr   r'   d   rH   rC   )r   r  r  r
   r   r&   r   tseriesr   Nanor_   floatr`   ra   )r8   	exp_startindxr   rq   rj   exp_indxro  s           r   test_nanosecond_resample_errorr7  z  s     EIBNN512GLD	c$i 	-B
BJJ&&++C01AUU6]Fy 92GTH
s8}%XU
CC6'r   c                    [        SSSS9R                  U 5      n[        UR                  US9nUR	                  S5      R                  5       nSn[        R                  " [        US9   UR	                  SS	S
9R                  5       R                  SS9nS S S 5        W=R                  [        SS5      [        SS5      -
  -  sl
        UR                  R                  U 5      R                  S5      Ul
        UR                  R                  S:X  d   e[        R                  " X55        UR	                  SSS9R                  5       nSn[        R                  " [        US9   UR                  SSS9R	                  SS	S
9R                  5       nS S S 5        WR                  SS9nUR                  [        SS5      -   [        SS5      -
  Ul
        UR                  R                  U 5      R                  S5      Ul
        UR                  R                  S:X  d   e[        R                  " X65        g ! , (       d  f       GN= f! , (       d  f       N= f)N1/1/20124/1/2012100minr5   r'   r   r"  r   r#  r$  r9   howrA   r-   r>   inferr   rR   )r   rW   r   ru  r   rH   r`   r&  r'  r  r(   r   
_with_freqr6   r   shift)r2   r:   rp   rj   r   r   ro  s          r   test_resample_anchored_intradayrB    s    Z(
;
C
CD
IC	399C	(B[[##%F
BC		#	#M	=;;t(;388:GGEGR 
>NNi4(9Q+<<<N^^++D1<<WEHN>>$&&&&+[[f[-224F
BC		#	#M	=hhqsh#,,T,AFFH 
>


u

%C		Ia..1c1BBCI		!!$'227;CI99>>T!!!&&! 
>	= 
>	=s   ),H4#-I4
I
Ic                    [        SSSS9R                  U 5      n[        UR                  US9nUR	                  S5      R                  5       nSn[        R                  " [        US9   UR	                  SS	S
9R                  5       R                  SS9nS S S 5        W=R                  [        SS5      [        SS5      -
  -  sl
        SUR                  R                  l        [        R                  UR                  l        UR                  R                  U 5      Ul
        [        R"                  " X55        UR	                  SSS9R                  5       nSn[        R                  " [        US9   UR%                  SSS9R	                  SS	SS9R                  5       nS S S 5        UR                  SS9nU=R                  [        SS5      [        SS5      -
  -  sl
        SUR                  R                  l        [        R                  UR                  l        UR                  R                  U 5      Ul
        [        R"                  " X55        g ! , (       d  f       GN= f! , (       d  f       N= f)Nr9  r:  r;  r5   r'   rw  r"  r   r#  r$  r9   r<  rA   r-   r>   r   r?  )r%  rR   )r   rW   r   ru  r   rH   r`   r&  r'  r  r(   r   _datar6   r   
no_default_freqr   rA  )r2   r:   rp   rj   r   r   s         r    test_resample_anchored_intraday2rG    s   
Z(
;
C
CD
IC	399C	(B[[##%F
BC		#	#M	=;;t(;388:GGEGR 
>NNi4(9Q+<<<N $HNN>>HNN^^++D1HN&+[[f[-224F
BC		#	#M	=HHQSH!**4hv*NSSU 	 
> $$$/HNNi4(9Q+<<<N $HNN>>HNN^^++D1HN&+' 
>	= 
>	=s   ),I2.I&
I#&
I4c                     U " SSSS9nUR                   R                  U5      Ul         UR                  S5      R                  5       n[	        U5      S:X  d   eg )Nz2012-04-29 23:00z2012-04-30 5:00rV  r5   r   rA   )r(   rW   r   rH   r&   )r?   r2   r   r  s       r    test_resample_anchored_intraday3rI    sQ    	!"46Gc	RBxx%BHD!&&(Iy>Qr   )MSBMSzQS-MARzYS-DECzYS-JUNc                     U " SS5      nUR                   R                  U5      Ul         UR                  U5      R                  5         g )Nrw   z
12/31/2002)r(   rW   r   rH   )r?   r6   r2   r   s       r   !test_resample_anchored_monthstartrM    s9    	!*l	;Bxx%BHKKr   z
label, secr  z4.2c                 >   [        SSSS9n[        SSSS9nUR                  U5      n[        [        R                  R                  S5      R                  S5      US	9nUR                  SU S
9R                  5       nUR                  S   [        SU S35      :X  d   eg )Nz2014-10-14 23:06:23.206r   400msr   z2014-10-15 23:00:00r"   2200msrE   r'   )rS   rU   z2014-10-15 23:00:00)r   rZ  r
   r#   r$   r%   r7   r   rH   r(   r   )rS   secindex1index2r(   r*   rj   s          r   test_resample_anchored_multidayrU    s     117KF-qxHFLL Eryy$$Q'77:%HA ZZZ.335F<<y+<SE)DEEEEr   c                 j   [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  SSS	S
9R                  5       n[        SSSS9R                  U 5      n[        R                  " UR                  U5        g )Nrw   r   rJ   r   r"   r'   rV   rP   r   r   z1999-12-31 23:55rx   r  )r2   r:   r   rj   ex_indexs        r   test_corner_casesrX    s     Z%
8
@
@
FC			%%a(88SB#	NB[[v[>CCEF,afEMMdSH&,,1r   c                 V   U " SSSS9nUR                   R                  U5      Ul         Sn[        R                  " [        US9   UR                  SSS	9R                  5       nS S S 5        [        W5      S
:X  d   eUR                   S   [        SSS9:X  d   eg ! , (       d  f       N== f)Nz
2000-04-28z2000-04-30 11:00rV  r5   r  r   r   r#  r$  rA   r   z2000-04rs  )	r(   rW   r`   r&  r'  r   rH   r&   r   )r?   r2   r   r   rj   s        r   test_corner_cases_daterZ    s    	!,0B	MBxx%BH
?C		#	#M	=T1668 
>v;!<<?fYS9999 
>	=s   B
B(c                     [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  S5      R                  5         g )Nr+  iP  r*   r   r"   r'   r   )
r   rW   r
   r#   r$   r%   r7   r&   r   rH   r,  s      r   test_anchored_lowercase_bugletr\    s[    (%cBJJ4PE			%%a(88UDE	RBKKr   c                 (   [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  S5      R                  SS	/5      n[        U[        5      (       d   eg )
N
2012-06-12rx   rV  r   r"   r'   20minrH   rG   )r   rW   r
   r#   r$   r%   r7   r&   r   	aggregater\  r   )r2   r:   r   rj   s       r   test_upsample_apply_functionsra    su    
\13
7
?
?
EC			%%a(88SB#	NB[[!++VUO<Ffi((((r   c                    [        SSSS9R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  [        R                  R                  S5      R                  [        U5      5      5      nUR                  S5      R                  5       nUR                  5       R                  S5      R                  5       n[        R                  " X45        g )Nr^     rV  r   r"   r'   r>   )r   rW   r
   r#   r$   r%   r7   r&   takepermutationr   rG   
sort_indexr`   ra   )r2   r:   r   rj   ro  s        r   test_resample_not_monotonicrg  	  s    
\3S
9
A
A$
GC			%%a(88SB#	NB	&&q)55c"g>	?B[[!!#F
--/
"
"3
'
+
+
-C6'r   rD   rB   r  rn   float32z-Empty groups cause x.mean() to return float64)reason)marksc                    [        [        SSSSSS5      [        SSSSSS5      /5      R                  U5      n[        SS/UU S9nUR	                  S5      R                  S 5      nUR                  S5      n[        R                  " XE5        UR	                  S5      R                  5       nUR                  S5      n[        R                  " XE5        g )	N  rA   r   rE   r"   rC   rJ   c                 "    U R                  5       $ r   r  r   s    r   r~   /test_resample_median_bug_1688.<locals>.<lambda>-  
    r   )
r   r   rW   r   r   r   r  r`   r   median)rD   r2   rb   rp   rj   ro  s         r   test_resample_median_bug_1688rq    s      	$1aA	&q!Q1(EFgdm  
	
A
B [[%%&89F
))E
C&&[[&&(F
))E
C&&r   c                 
   U " SS5      nUR                   R                  U5      Ul         UR                  S5      R                  S 5      nUR                  S5      R	                  5       n[
        R                  " X45        UR                  S5      R	                  5       nSUl        UR                  S5      R                  5       nSUl        UR                  S5      R                  S S /5      nSS/Ul	        [
        R                  " US   U5        [
        R                  " US   U5        UR                  S5      R                  S	 S
 S.5      n[
        R                  " US   USS9  [
        R                  " US   USS9  g )Nrw   z4/1/2000r   c                 "    U R                  5       $ r   r  r   s    r   r~   +test_how_lambda_functions.<locals>.<lambda>:  s
    qvvxr   foobarc                 "    U R                  5       $ r   r  r   s    r   r~   rt  C  ro  r   c                      U R                  SS9$ NrA   )ddofr  r   s    r   r~   rt  C  s    AEEqEMr   c                 "    U R                  5       $ r   r  r   s    r   r~   rt  K  s
    !&&(r   c                      U R                  SS9$ ry  r{  r   s    r   r~   rt  K  s    QUUU]r   )ru  rv  F)check_names)r(   rW   r   r   rH   r`   ra   r{   r  ro   r`  )r?   r2   r   rj   ro  foo_expbar_exps          r   test_how_lambda_functionsr  6  sD   	!*j	9Bxx%BH[[$$%78F
++d

 
 
"C6'kk$$$&GGLkk$##%GGL[[$$&8:Q%RSFU^FN6%='26%='2 [[(("+BCF 6%='uE6%='uEr   c                     [        SSSS5      n[        SSSS5      n[        XS	S
9R                  U 5      n[        SS0US9nUR	                  S5      R                  5         g )Ni  r   rA   rE   rl  r   r  rx   rY  r5   r   r'   YS)r   r   rW   r   r   rG   )r2   r8   r9   bad_indrp   s        r   test_resample_unequal_timesr  Q  s`    T1a#E
4B
"C'2::4@G	GQ<w	/B KKr   c                 P   [        SSSS9R                  U 5      n[        [        R                  " S5      US9n[        R
                  UR                  S'   [        US   US	   S
S9R                  U 5      nUR                  USS9nUR                  USSS9nUR                  USSS9nUR                  S5      R                  SS9nUR                  S5      R                  5       n[        R                  " XX5        [        R                  " XW5        [        R                  " XV5        g )Nz
2002-02-02rx   rY  r         @r'   r"   r   rU   10minr5   bfill)r(   r<  )r(   r<  r:  r;  10Minr9  )r   rW   r
   r#   r   r   r|   r=  reindex_liker   r  r`   ra   )	r2   i30r*   i10s10s10_2rlr10_2r10s	            r   test_resample_consistencyr  ]  s     \17
;
C
CD
ICryy~S)AAFF1I SVSW7
3
;
;D
AC
))#g)
.CIICqI9E	
G1	5BJJw%%A%.E
**W

#
#
%C 5&5(5%r     rm   r   r   rv   rE   r   r   r  dates1rx   dates2r  c                 p   [        U 5      R                  U5      n [        U [        R                  " [        U 5      5      S.5      nUR                  S5      R                  S5      R                  5       n[        / SQSSS9R                  U5      n[        S/ SQ0US9nUS   R                  5       R                  5       (       a   UR                  R                  S 5      Ul        [        R                  " X55        UR                  [!        SSS	95      R                  5       n[        R                  " X55        g )
Nr   r   r   z
2014-07-31z
2014-08-31z
2014-09-30z
2014-10-31z
2014-11-30r6   r{   r   rA   r   r"   r"   rA   r'   r6   keyr   rW   r   r#   r   r&   r  r   r  r   anyr(   r@  r`   r   rY   r   r  r2   rp   rj   exp_idxr   s         r   test_resample_timegrouperr    s     % ((.E	RYYs5z%:;	<B\\#''-335FN gdm	 
 #/w?H	#w||~!2248&+ZZTs34::<F&+r   c           	         [        U 5      R                  U5      n [        U [        R                  " [        U 5      5      [        R                  " [        U 5      5      S.5      nUR                  S5      R                  S5      R                  5       n[        / SQSSS9R                  U5      n[        / SQ/ SQS.USS	/S
9nUS   R                  5       R                  5       (       a   UR                  R                  S 5      Ul        [        R                  " X55        UR                  [!        SSS95      R                  5       n[        R                  " X55        g )N)r   r   Cr   r   r  r  r  )r   r  r   r  r   r  r  r  s         r   test_resample_timegrouper2r    s   % ((.E	RYYs5z%:3u:AVW	XB\\#''-335FN gdm	 
 O4c
H
 
#w||~!2248&+ZZTs34::<F&+r   c                    [        [        S5      S[        S5      S0[        S5      S[        S5      S0S.5      nUR                  R                  U 5      Ul        UR	                  S5      nUR                  [        SS	95      nUR                  [        SS	95      R                  R                  S
 5      nUR                  S:X  d   eX#4 H3  nUR                  R                  5       n[        R                  " Xd5        M5     UR                  R	                  S5      R                  5       n[        R                  " Xd5        UR                  R                  [        SS	95      R                  5       n[        R                  " Xd5        g )Nz2015-06-05 00:00:00
0010100903z2015-06-08 00:00:00
0010150847z
2015-06-05z
2015-06-08)r  DATEr>   r5   c                 "    U R                  5       $ r   nuniquer   s    r   r~   'test_resample_nunique.<locals>.<lambda>  s
    		r   r  )r   r   r(   rW   r   rY   r   r  r   r{   r  r`   ra   )r2   rp   rq   rd   r   r  rj   s          r   test_resample_nuniquer    s=   	 /0,/0,
 /0,/0,		

B xx%BH
CA


7$%Azz's+,//556KLH==D   V
v0  UU^^C ((*F6,UU]]7,-557F6,r   c           
          [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9R                  5       nUR                  R                  U 5      Ul
        [        R                  R                  UR                  R!                  5       /S-  S
S/S9Ul        UR#                  S5      R%                  5       n[&        R(                  " UR                  UR                  5        g )Nr"   )rE   rx   r  r   r  rE   r>   r   r  lev0lev1)rk  r  )r   r#   r$   r%   r7   r	   r  r  r   absr(   rW   r  rl  from_arraysro   r   r   r  r`   r  )r2   rp   rj   s      r   2test_resample_nunique_preserves_column_level_namesr    s    	
		a 008d6l&1qs;
 
ce	 
 xx%BH**				!&&)9 + BJ [[&&(F"**fnn5r   funcc                 "    U R                  5       $ r   r  r   s    r   r~   r~     s
    !))+r   c                 @    U R                  [        R                  5      $ r   )r_   r
   r  r   s    r   r~   r~     s    !%%'r   c                 $    U R                  S5      $ )Nr  )r_   r   s    r   r~   r~     s    !%%	"r   )r  series_nuniquenunique_str)idsc                 F   [        SSSS9R                  U5      n[        SSSS9R                  U5      nUR                  U5      n[        [	        [        U5      5      USS9nUR                  S	5      nUR                  5       nU " U5      n[        R                  " Xx5        g )
NrT  rU  rV  r5   rW  rX  rB   rC   r   )
r   rW   r^   r
   r   r&   r   r  r`   ra   )	r  r2   r(   rT  index3r*   rq   rj   r   s	            r   #test_resample_nunique_with_date_gapr    s     z;S9AA$GE[s;CCDIF\\&!FuS[!w?A	

4AWWYFAwH6,r   nr  i k)rm   r0  i  c                    [         R                  R                  S5      n[        SU S-  SS9R	                  U5      n[        UR                  SX-  U 5      R                  S5      UR                  X@5      S9nUR                  S	5      R                  5       n[        UR                  R                  5       UR                  R                  5       S	S
9R	                  U5      nUR                  n[         R                  " UR                  UR                  SS9n	[         R                   " X45      n
X   X   p[         R"                  SUSS  US S :g  4   nU[         R"                  SU	SS  U	S S :g  4   -  n[         R$                  " X   S-
  ['        U5      S9R                  SSS9n[        XS9n[(        R*                  " Xm5        g )Nr"   z
2015-08-27rm   rJ   r   r   rB   r'   rY  r4  rP   sideTrA   rU   	minlengthFcopy)r#   r$   r%   r   rW   r
   r  r%  choicer   r  r(   rJ   rK   r   searchsortedlexsortr_bincountr&   r`   ra   )r  r  r2   prngdrr   r   ixvalsbinssortermaskrg   rP   s                 r   test_resample_group_infor    sz    99  #D	,Re	D	L	LT	RB	a+227;4;;rCU	VB;;w'')D	"((,,.bhhlln7	K	S	S
B 99D??299bhhW=DZZ%Ft|$55tABx49,,-DBEE$QRD"I--..D
++dj1nB
8
?
?e
?
TC3!E4'r   c                    Sn[        SUSS9R                  U 5      n[        [        R                  R                  S5      R                  U5      [        R                  R                  S5      R                  X!5      S9nUR                  S5      R                  5       n[        UR                  R                  5       UR                  R                  5       SS9R                  U 5      n[        R                  " UR                  UR                  R                  S	S
9n[        R                  " U[!        U5      S-   S9SS  R#                  SSS9n[        XuS9n[$        R&                  " XH5        g )Nr  z
2015-09-19rJ   r   r"   r'   r  r4  rP   r  rA   r  rB   Fr  )r   rW   r
   r#   r$   r%   r7   r  r   sizer(   rJ   rK   r  r   r  r&   r%  r`   ra   )	r2   r  r  r   r   r  r  r   rP   s	            r   test_resample_sizer    s   A	L!%	8	@	@	FB	
		a 003ii##A&--b4
B
 ;;v##%D	$**..*V	L	T	T
B ??299bhhooGDD
++dc"gk
212
6
=
=gE
=
RC3!E4'r   c                  4   [        SS/S/S9n [        [        R                  " U R                  SS9R
                  R                  S5      R
                  R                  S5      5      n[        S	S
/S/S9n[        [        R                  " UR                  SS9R
                  R                  S5      R
                  R                  S5      SS9n[        SS/US9nUR                  SS9R                  5       n[        SS/US9n[        R                  " XV5        g )Nid=XitKXr   r  r*   r2   UTCzEurope/Madridi 8XiFXrV  r5   rE   r'   rB  )r   r   r  r  r   dtr  
tz_convertr   rG   r`   r   )df1dti1df2dti2rp   rj   r   s          r   test_resample_across_dstr  '  s     Z,tf
=C
svvC(	KK	JJ'D Z,tf
=C
svvC(	KK	JJ'	D 
Aq6	&B[[c["&&(F!Qt,H&+r   c                 |   [        SS/SS9R                  S5      R                  U 5      n[        SS/US9nUR	                  [        S	S
95      R                  5       n[        SSSSS9R                  U 5      n[        U5      n[        S/[        R                  /S-  -   S/-   US9n[        R                  " X55        g )Nl   @j$ l   S*~Q$ r  rb  r  rA   r"   r'   1dr5   z
2016-11-02z
2016-11-24r   r  r  r   r  )r   r  rW   r   rY   r   r   r   r#   r   r`   r   )r2   r(   rp   rj   expected_index_valuesr   s         r   !test_groupby_with_dst_time_changer  G  s     	*,?@UK	%	&	 
 
Aq6	'BZZT*+002F&l1Bgdm  /0E#266(R-0C58FH&+r   c                 :   [        [        SSSS5      /SS9R                  U 5      n[        S/US9n[        UR                  R                  5       S	S
9R                  U 5      n[        S/US9n[        R                  " UR                  S	S9R                  5       U5        UR                  SS9R                  5         [        R                  " UR                  SS9R                  5       [        S/[        [        SSS5      /SSS9R                  U 5      S95        g )Nrl  rv   rx      z
US/Easternrb  rE   r'   r>   r5   r  rJ  rA   rI  r6   )
r   r   rW   r   r(   	normalizer`   r   r   rG   )r2   rb   rp   r   s       r   test_resample_dst_anchorr  Z  s    
$Ar23
E
M
Md
SC	A3c	"B
**,3
7
?
?
EC!C(H"++3+/335x@KKTK 
""$C$A&'Ltgdm		
r   c           
         [        SSSSS9R                  U 5      n[        UR                  5      n[	        X"US.USS9nS	S
SS.nUR                  S5      nUR                  U5      / SQ   n[	        / SQ/ SQ/ SQS.[        SSSSS9R                  U 5      S9n[        R                  " UUS5        UR                  S5      nUR                  U5      / SQ   n	[	        / SQ/ SQ/ SQS.[        SSSSS9R                  U 5      S9n
[        R                  " U	U
S5        UR                  S5      nUR                  U5      / SQ   n[	        / SQ/ SQ/ SQS.[        SSSSS9R                  U 5      S9n[        R                  " UUS 5        UR                  S!5      nUR                  U5      / SQ   n[	        S"S#/S$S%/S#S&/S.[        SSS!SS9R                  U 5      S9n[        R                  " UUS'5        US(S) nUR                  S*5      nUR                  S	S
SS.5      / SQ   n[	        / S+Q/ S,Q/ S-QS.[        S(S)S*SS9R                  U 5      S9n[        R                  " UUS.5        g )/Nz
2013-09-30r  30Minr  r  r  rB   rC   rJ   rK   r  r  )r   0   i    i   r  )/   i    i  q  2  )r  P  r  r  iR     z	9/30/2013z	11/4/2013r'   zW-MON Frequencyz2W-MON)r   r  r  r  )r  r  r  r  )r  i  i  r  z
11/11/2013z2W-MON FrequencyrJ  )r   r    )r    r  )r  i  1   z9/1/2013z	11/1/2013zMS Frequency2MSr   r  r  r  r  z2MS Frequencyz
10/26/2013z
10/29/2013r>   )i  i  iB  r  )i  iA  r  i  )r  r  r  r  zD Frequency)	r   rW   r   r  r   r   r_   r`   r   )r2   rb   r   rp   r=  r  rj   r   rs2r  	expected2rs3result3	expected3rs4result4	expected4df_dailyrs_dresult_d
expected_ds                        r   test_resample_dst_anchor2r  n  s   
l^gdm  388_F	6:#W	UBE
0C	W	BVVC[)F.1.	

 7~

'$-	H  ++h
Cggcl?+G#&$	

 H

'$-	I  ++d
Cggcl?+G"2H[tOWW
I  ++e
Cggcl?+G$itTl$<%N

'$-	I  ,|,HS!Dxxe%g>?PH))!	

 ,S^

'$-	J r   c           	         [         R                  " S5      n[        SSS5      n[        UR	                  U5      SSS9R                  U 5      n[        SUS	9R                  S
5      R                  5       n[        S[        R                  /S-  S/-   [        UR	                  U5      SS
S9R                  U 5      S	9n[        R                  " XE5        g )NzEurope/Berlinr  rm      rx   r  r   rE   r'   rV        @r   r   )pytztimezoner   r   localizerW   r
   r   rH   r#   r   r`   ra   )r2   rI  r  r  rj   r   s         r   test_downsample_across_dstr    s    		'B	$B	Br{{2=EEdKEAU#,,S1668F	bffSE!R!#>FFtLH 6,r   c           	         [        [        / SQSS9R                  U 5      / SQS9nUR                  S5      R	                  5       n[        SS/[        S	S
/SSS9R                  U 5      S9n[
        R                  " X#5        g )N)z
2017-03-25
2017-03-26z
2017-03-27z
2017-03-28z
2017-03-29Europe/Amsterdamrb  )rv   r   r      r  )r(   r   1Wr  *   r  z
2017-04-02r  r  r'   )r   r   rW   r   rG   r`   r   )r2   rp   rj   r   s       r   !test_downsample_across_dst_weeklyr    s    	R!
 '$-!
B [[""$F	R<(-?c

'$-	H &+r   c           	      6   [        SSSSS9R                  U 5      n[        U[        R                  S9nUR                  S5      R                  5       n[        [        SSS	SS
9R                  U 5      [        R                  S9n[        R                  " X45        g )Nz
2013-04-01z
2013-05-01zEurope/LondonrV  r  rC   r  z
2013-04-07rE   )r6   rz   rI  )	r   rW   r
   r#   rn   r   rH   r`   ra   )r2   rh   r*   rj   r   s        r   #test_downsample_across_dst_weekly_2r    s    
\<O#
N
V
VC 	S

+AZZ_!!#FCOWW
 jj	H 6,r   c                    [        SSSS5      n[        SSSS5      n[        XSS9R                  U 5      nUR                  S5      R	                  S	5      n[        [        [        U5      5      5      n[        XCS
9nUR                  [        SS95      R                  5       n[        SSS9R                  S	SS9n[        USS9R                  U 5      n[        / SQUS
9n[        R                  " Xh5        g )Ni  rv   r   r   rE   r  r5   r  zAmerica/Havanar'   r@  z
2018-11-03rz   T)r  r>   )g      @g      <@g     @F@)r   r   rW   r  r  r  r   r&   r   rY   r   rH   r   r`   r   )	r2   r8   r9   r(   r   	dataframerj   rb   r   s	            r   test_downsample_dst_at_midnightr    s    T2q"%E
4Q
#Cu-55d;Ee$//0@AEc%j!"D$,IwD12779F
\1
-
9
9D : C #
&
.
.t
4C*#6H&+r   c                    [        [        R                  S[        R                  SS/5      R                  U 5      n[	        / SQUS9n[        / SQ5      R                  U 5      n[	        / SQUS9n[
        R                  " UR                  S5      R                  5       U5        [        SS/5      R                  U 5      n[	        S	S
/US9n[
        R                  " UR                  S5      R                  5       U5        [        S/5      R                  U 5      n[	        S/US9n[
        R                  " UR                  S5      R                  5       U5        [
        R                  " UR                  S5      R                  5       U5        g )N1970-01-01 00:00:001970-01-01 00:00:011970-01-01 00:00:02)r"   r   rE   r   rv   r'   )r  r  r  )r        @      &@1sr	  r   2sr  3s60s)	r   r  NaTrW   r   r`   r   r   rH   )	r2   r(   frameindex_1sframe_1sindex_2sframe_2sindex_3sframe_3ss	            r   test_resample_with_natr-    sM   FF!FF!!	
 gdm 
 &e4EMgdm  ):H%...335x@35JKLTTH #tH5H%...335x@345==dCH#h/H%...335x@%../446Ar   c           	         [        SSS5      [        SSS5      /n[        SU0US9nUR                  R                  U 5      Ul        [	        [        SSS5      [
        R                  [        SSS5      /[        SSS	S
9R                  U 5      SS9nUR                  S	5      R                  5       S   n[        R                  " XC5        US   R                  S	5      R                  5       n[        R                  " XC5        g )Ni  rA   r  r   r  r'   z
2016-01-15r   2Dr   )r(   r{   )r   r   r(   rW   r
   r  r%  r   r   firstr`   ra   )r2   r  rp   ro  rn  s        r   test_resample_datetime_valuesr1  ,  s    
 dAr"HT1b$9:E	K'u	5Bxx%BH
	$2	q"(=>qt<DDTJC ++d

!
!
#K
0C3$
[/
"
"4
(
.
.
0C3$r   c                    S nU R                   R                  U5      U l         SnU R                  S5      R                  X#5      nU R                  S5      R	                  5       R                  U5      n[        R                  " XE5        U R                  S5      R                  X#S9nU R                  S5      R	                  5       R                  U5      n[        R                  " XE5        g )Nc                 4    [         R                  " U 5      U-  $ r   r#   rH   r   add_args     r   rf   3test_resample_apply_with_additional_args.<locals>.fC      wwt}w&&r   rm   r>   )r6  )r(   rW   r   r   rH   multiplyr`   ra   )r   r2   rf   
multiplierrj   r   s         r   (test_resample_apply_with_additional_argsr;  A  s    ' <<''-FLJ__S!''6Fs#((*33J?H6, __S!'''>Fs#((*33J?H6,r   c                  8   S n Sn[        SSS.[        SSS9S9nS	n[        R                  " [        US
9   UR                  S5      R                  S5      R                  X5      R                  [        5      nS S S 5        S	n[        R                  " [        US
9   UR                  S5      R                  S5      R                  5       R                  U5      nS S S 5        [        R                  " WW5        g ! , (       d  f       N= f! , (       d  f       N7= f)Nc                 4    [         R                  " U 5      U-  $ r   r4  r5  s     r   rf   4test_resample_apply_with_additional_args2.<locals>.fU  r8  r   rm   rA   r"   r   2017r  r'   r  r   r   r>   )r   r   r`   r&  r  rY   r   r_   r%  r3  rH   r9  r   )rf   r:  rp   r   rj   r   s         r   )test_resample_apply_with_additional_args2r@  S  s    ' J	#:fb+I	JB
FC		#	#$6c	BC))#.221AHHO 
C
FC		#	#$6c	B::c?++C0557@@L 
C&(+ 
C	B 
C	Bs   AC:>D:
D
D)rA   r"   r   zn1, freq1, n2, freq2)
)   r*         ?r   )<   r*   rA   r   )i  r*   rA   rV  )rC  r   rA   rV  )i`T  r*   g      ?r>   )r  r*   rA   r>   )i  r*   rB  r>   )i  r   rA   r>   )r   rV  rB  r>   )   rV  rA   r>   c                 X   X-  nX$-  n[        SSUS9R                  U5      n[        [        [	        U5      5      US9n	U	R                  [        U5      U-   5      R                  5       n
U	R                  [        U5      U-   5      R                  5       n[        R                  " X5        g )Nz
1991-09-05z
1991-09-12r5   r'   )
r   rW   r
   r   r&   r   r   rH   r`   ra   )n1freq1n2freq2r  r2   n1_n2_rb   serr  r  s               r    test_resample_equivalent_offsetsrM  d  s    $ &C
&C
\<e
<
D
DT
JC
s3x
,Cll3s8e+,113Gll3s8e+,113G7,r   z"first,last,freq,exp_first,exp_last))1991090519920406r>   rN  19920407)z19910905 00:0019920406 06:00r>   rN  rP  )19910905 06:00rQ  rV  rR  z19920406 07:00)19910906rO  r   1991083119920430)rT  rU  r   rT  19920531)z1991-08z1992-04r   rT  rV  c                    [        U 5      n U R                  U R                  5      R                  U5      n [        U5      nUR                  UR                  5      R                  U5      n[	        U5      n[	        U5      n[
        R                  R                  R                  U5      n[        XUSS9nX44nXg:X  d   eg )Nr-   r  )
r   r  r6   rW   r   r  r1  frequencies	to_offsetr   )r0  r   r6   	exp_firstexp_lastr2   rj   r   s           r   test_get_timestamp_range_edgesr\    s     5MEuzz*2248E$<DTYY'//5D)$I"H::!!++D1D'TEF$Hr   
duplicatesTFc           	      H   [        SSSS9R                  U5      n[        [        S5      US9n[	        X3S-   S.5      nU (       a	  SS/Ul        S	n[        R                  " [        US
9   UR                  S5      R                  [        R                  5      nS S S 5        [	        [        R                  " SS/SS/SS/SS//[        R                  S9[        / SQSS9R                  U5      UR
                  S9n[        R                   " WU5        g ! , (       d  f       N= f)Nz
2012-01-31r   r   r8   r6   rz   r'   r"   r   r   z!using DatetimeIndexResampler.prodr   rw  r   rD  rC     r  r  i  i  r   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31QE-DECr5   r   )r   rW   r
   r   r   ro   r`   r&  r'  r   r   r#   rI   rX   rB   r   r   )r]  r2   r(   r   rp   r   rj   r   s           r   test_resample_apply_productrb    s     \bAII$OE	b		'B	q&)	*B3Z

-C		#	#M	=T"((1 
>
1b'B9sCj3+>bhhOD8

'$-

H &(+ 
>	=s   )/D
D!z$first,last,freq_in,freq_out,exp_last))
2020-03-28
2020-03-31r>   r  z2020-03-30 01:00)rc  
2020-10-27r>   r  2020-10-27 00:00)
2020-10-25re  r>   r  z2020-10-26 23:00)rc  rd  r  r>   z2020-03-30 00:00)rc  re  r  r>   rf  )rg  re  r  r>   z2020-10-26 00:00r0  r   freq_infreq_outr[  c           
          [        S[        XUSS9R                  U5      5      nUR                  U5      R	                  5       n[        S[        XUSS9R                  U5      5      n[
        R                  " Xx5        g )Nr  r  r  )r
   r   rW   r   r*  r`   ra   )	r0  r   rh  ri  r[  r2   r   rj   r   s	            r   #test_resample_calendar_day_with_dstrk    sy    N 
Z'6HIQQRVW
B [["((*F56HIQQRVWH 6,r   )rJ   rK   r0  r   c                 Z   [        SSSS9R                  U5      n[        S[        R                  [        R                  /U5      n[        UR                  S5      U 5      " SS9n[        [        R                  /[        S	/S
S9R                  U5      S9n[        R                  " XE5        g )N2020r   r   r_  rA   rw  r"   )	min_countrd  ra  r5   r'   )
r   rW   r
   r#   r   r   r   r   r`   ra   )r  r2   r(   rL  rj   r   s         r   +test_resample_aggregate_functions_min_countro    s     V$:BB4HE
!RVVRVV$e
,CS\\$'.;F	\N:BB4HH 6,r   c           
         [        [        SSSS9R                  U5      S// SQS-  U S9nUR                  UR                  S	:  UR                  S
:  -  S S 24   nUR                  S5      R                  5       n[        S[        R                  S/S/[        SSSS9R                  U5      S9n[        R                  " X45        g )Nr  z2000-01-03 23r  r4  r   )r   rA   r   r"   )r(   ro   r   rD   z
2000-01-02z
2000-01-03r>   rA   r   r  )r   r   rW   r[  r(   r   rK   r#   r   r`   r   )any_unsigned_int_numpy_dtyper2   rp   rj   r   s        r   test_resample_unsigned_intrr    s    	|uMUU
 ]*
B 
L(RXX-DEqH	IB[[!!#F	
BFFA|sKSS
H &+r   c                     [        SSSSS9n [        / SQU S9nUR                  S5      R                  5       n[	        [
        R                  " / S	Q5      R                  S
5      SS9n[        / SQUS9n[        R                  " X$5        g )Nz
0300-01-01r  r*   100YE)r2   r6   )rA   rx   r"   r   rE   r   rA   rx   r"   r   rE   r   rA   rx   r"   r   rE   r'   200YE)	z
0300-12-31z
0500-12-31z
0700-12-31z
0900-12-31z
1100-12-31z
1300-12-31z
1500-12-31z
1700-12-31z
1900-12-31zdatetime64[s]z	200YE-DECr5   )	r  r        @r  r  rv  r  r  rv  )
r   r
   r   rH   r   r#   rX   r%  r`   ra   )rh   rL  rj   expected_idxr   s        r   test_long_rule_non_nanorx    s}    
\<c
HC
DC
PC\\'"'')F 

	
 &
!L  C<XH6,r   c                      [        / / S.5      R                  SS05      n U R                  SSSSSS9S   R                  5       n[	        / SSSS	9n[        / USS
S9n[        R                  " X5        g )N)r   r   r   zdatetime64[ns, Atlantic/Faroe]r  r   r8   )onrR   rS   r  r   )r6   r{   rD   rn   )r(   r{   rD   )r   r%  r   rG   r   r
   r`   ra   )rp   rj   rw  r   s       r   "test_resample_empty_series_with_tzr{  !  s    	"+	,	3	3	/0
B [[4fW[U	ce  !
T)IL b89MH6,r   zfreq, freq_depr))2ME2M)2QE2Q)z2QE-SEPz2Q-SEP)1YE1Y)2YE-MARz2Y-MAR)r  1A)r  z2A-MARc           	      p   SUSS   S3nSU SS   S3  [        [        S5      [        SSSS	9S
9nUR                  U 5      R	                  5       n[
        R                  " [        US9   UR                  U5      R	                  5       nS S S 5        [
        R                  " WU5        g ! , (       d  f       N&= fN'rA   z$' is deprecated and will be removed z!in a future version, please use 'r  rm   20130101r   r   r'   r   	r
   r   r   r   rH   r`   r&  r'  ra   r6   	freq_deprdepr_msgr*   r   rj   s         r    test_resample_M_Q_Y_A_deprecatedr  1  s     9QR=/!EFH'QRz<uRy
:C LMAzz$$$&H		#	#M	BI&++- 
C68, 
C	B   ' B''
B5))2BME2BM)2BQE2BQ)z2BQE-MARz2BQ-MARc           	      p   SUSS   S3nSU SS   S3  [        [        S5      [        SSSS	9S
9nUR                  U 5      R	                  5       n[
        R                  " [        US9   UR                  U5      R	                  5       nS S S 5        [
        R                  " WU5        g ! , (       d  f       N&= fr  r  r  s         r   test_resample_BM_BQ_deprecatedr  I  s     9QR=/!EFH'QRz<uRy
:C LMAzz$$$&H		#	#M	BI&++- 
C68, 
C	Br  c                 t   [        SSSU S9n[        SU0US9nUR                  SSS	9nUR                  5       n[	        [        S
SS5      [        S
SS5      /SS9R                  U 5      n[        S[        S
SS5      [        S
SSSS5      /0US9R                  SU  S35      n[        R                  " XF5        g )N
2020-01-311minp  r8   r6   rz   r2   r   r'   rJ  rP   r?    rA   r"   r5   rx   r   ;   M8[]
r   r   r   r   r   r   rW   r%  r`   r   )r2   rb   rp   groupedrj   exp_dtir   s          r   test_resample_ms_closed_rightr  ]  s    
<fd
NC	D#;c	*Bkk$wk/G\\^F	$1	xa344gdm  	q!$htQ1b&ABC fs4&]  &+r   r   r  c                    [        SSSUS9n[        SU0US9nUR                  U SS9nUR                  5       n[	        [        S	S
S5      [        S	S
S5      [        S	SS5      [        S	SS5      /U S9R                  U5      n[        S[        S	S
S5      [        S	SS5      [        S	SS5      [        S	SSSS5      /0US9R                  SU S35      n[        R                  " XW5        g )Nr  r  r  r  r   r'   rP   r?  r  rA   rA  r  r"   r   rx   r5   r  r  r  r  )r6   r2   rb   rp   r  rj   r  r   s           r   test_resample_c_b_closed_rightr  m  s    <fd
NC	D#;c	*Bkk$wk/G\\^FT1b!T1b!T1a T1a 		
  gdm  q"%q!$q!$q!Q+		
 
 fs4&]  &+r   c           
      H   [        SSSU S9n[        / SQUS9nUR                  SSSS	9R                  5       n[	        [        S
SS5      [        S
SS5      [        S
SS5      [        S
SS5      /SS9R                  U 5      n[        / SQUS9n[        R                  " X55        g )Nz
2023-09-26ru   r  )rz   r6   r2   )rA   r"   r   rx   rE   ru   r'   r   rP   r   i  r   r           r5   )r  g      @g      @g      @)	r   r
   r   rH   r   r   rW   r`   ra   )r2   rb   rL  rj   r  r   s         r   test_resample_b_55282r    s    
\15t
DC
#3
/C\\#gW\=BBDFT1b!T1b!T1b!T1b!		
  gdm  H 6,r   pyarrowrI  r  z/TODO: Set ARROW_TIMEZONE_DATABASE env var in CI)	conditionri  c                 $   [        [        SSS9SS9nU b  UR                  R                  U 5      n[        [        R
                  " S[        R                  S9US9nUR                  S5      R                  5       n[        R                  " X25        g )Nz
2020-01-01rE   r  ztimestamp[ns][pyarrow]r   r'   r@  )r
   r   r  r  r#   r   rn   r   rH   r`   ra   )rI  rh   r   rj   s       r   test_arrow_timestamp_resampler    ss      L!4<T
UC	~ff  $bii4C@Ht$))+F6,r   )r   	functoolsr   numpyr#   r   r
  pandas._libsr   pandas._typingr   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr  r   r	   r
   r   r   r   r   pandas._testing_testingr`   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   pandas.core.resampler   r   pandas.tseriesr   pandas.tseries.offsetsr   fixturer   r    r)   r2   r?   rk   rr   markparametrizer   r   r   filterwarningsr   r   r   r   r  r  r  r  r   r(  r+  r/  r7  r?  rL  rR  r]  r`  rp  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r'  r)  r-  r7  rB  rG  rI  rM  rU  rX  rZ  r\  ra  rg  r0   xfailrq  r  r  r  r  r  __annotations__r%  r  dates3r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r1  r;  r@  rM  r\  rb  r   rk  ro  rr  rx  r{  r  r  r  r  r  
skip_if_nor  r   r   r   <module>r     s	         * - ) )     / 4
 # )     7 7 ./ 0 	% 	%!+H	  )89  	
 	
*-+	2--0- F )89 L6		6 )89-	-, )89,	,412=,@7(t.< JK: L: $.G /G '41	0 2	0("?:,- !=>!LM	- N ?	-$0
$,$*$`,(	0 	VFGDE	VFGDE	9cBC--<(
8, !OP- Q- A'T (T-
4 	()	9234d+	()	5

4

4 
HlFHU	+	+ OYfh#WX+ Y+"4JGBS84-n-
3- ,.(*- 0( '6,8 !LM N sgu5E'FGF HF$2:)( ++##F $ 	
	
''(F6	&0 T2qT1aT2qT1aT2qT1b!_  2AJ"&&F1QK'266(2VABZ? _  &&F	bffX	% 666":;, <,& 666":;, <,0->6 
'"
 	5  
-
- ufo.o.( / /(:((,@,&(Yx
-,&- ,$B@%*-$," i(	- ) 	- (

 e}5, 6,, *"F---$'-36-BE-G"F- !@A	- B	-,0-2-  	-	- 	-	-,  #s,, , -,<-, y++##-/H $ 	
	- -r   