
    A>i                       % 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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.  S SK/J0r0  \Rb                  S 5       r2S r3S r4\Rj                  Rm                  SSS 4SS 4/5      S 5       r7S r8S r9\Rj                  Rm                  S/ SQ5      S 5       r:S r;S  r<S! r=S" r>S# r?S$ r@\Rj                  Rm                  S%/ S&Q5      S' 5       rA\Rj                  Rm                  S(S)S*/5      S+ 5       rBS, rCS- rDS. rES/ rF\Rj                  Rm                  S(/ S0Q5      \Rj                  Rm                  S1/ S2Q5      S3 5       5       rGS4 rHS5 rIS6 rJS7 rKS8 rL\Rj                  Rm                  S9S:S;S<S=S>./S?S;S<S@S>./S*SASBSCS>.//5      SD 5       rMSE rNSF rOSG rP\Rj                  Rm                  S(/ SHQ5      SI 5       rQ\Rj                  Rm                  SJSKSL/5      SM 5       rRSN rSSO rT\Rj                  Rm                  SPSQSR0SQ\" SS5      0STSUSV.SQSW0SXSY0/5      SZ 5       rU\Rj                  Rm                  SQS[S\S]S^S_\V" 5       /5      S` 5       rW\Rj                  Rm                  SXS[SaS_\V" 5       /5      Sb 5       rXSc rYSd rZSe r[Sf r\Sg r]Sh r^Si r_Sj r`Sk raSl rbSm rcSn rdSo reSp rfSq rgSr rhSs ri\Rj                  Rm                  S(/ StQ5      Su 5       rj\Rj                  Rm                  SvSSw/SSx//5      Sy 5       rkSz rlS{ rmS| rnS} roS~ rp\Rj                  Rm                  S/ SQ5      S 5       rqS rrS rsS rt\ " SSSK5      \ " SSS5      \ " SSS5      \ " SSS5      \ " SSS5      \ " SSS5      /ru\v\   \wS'   / \uSSL Q\R                  P\uSLS Q\R                  P\uSS Qry\v\   \wS'   \R                  /\uQ\R                  Prz\Rj                  Rm                  S\u\y\z/5      S 5       r{\Rj                  Rm                  S\u\y\z/5      S 5       r|S r}S r~\Rj                  Rm                  SS S S // SQS9S 5       rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\Rj                  Rm                  S/ SQ5      \Rj                  Rm                  S/ SQ5      S 5       5       r\Rj                  Rm                  S/ SQ5      S 5       r\Rj                  Rm                  SSS/5      S 5       r\Rj                  Rm                  S/ SQ5      S\S\S\S\S\4
S j5       r\Rj                  Rm                  S/ SQ5      S 5       rS rS rS r\Rj                  Rm                  S(/ SQ5      S 5       r\Rj                  Rm                  S(/ SQ5      S 5       r\Rj                  Rm                  SSSS/4SSS/4SSS/4SSS/4/5      S 5       rS r\Rj                  Rm                  S(SS/5      S(\4S j5       rS r\GR:                  " S5      \Rj                  Rm                  SS\GR<                  " S\Rj                  GR?                  \" 5       SS9S9/5      S 5       5       r\GR:                  " S5      S 5       rS r\Rj                  Rm                  S(SS/5      S 5       rg)    )datetime)partialN)lib)Day)DatetimeNaTType)is_platform_windows)Pandas4Warning)	DataFrameIndexSeries	Timedelta	Timestampisnanotna)Grouper)
date_range)Periodperiod_range)DatetimeIndex_get_timestamp_range_edges)offsets)	to_offset)Minutec                      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freq   index)r   r   nprandomdefault_rngstandard_normallen)startendr   rngs       h/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/resample/test_datetime_index.py_simple_date_range_series;simple_date_range_series.<locals>._simple_date_range_series0   s:    $/bii++A.>>s3xHPSTT    D )r*   s    r)   simple_date_range_seriesr0   *   s    U %$r,   c                 f   [        [        SSS5      [        SSS5      SS9n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     
   Minr   int64r    dtype   summeanprodminmaxvarTaltnumeric_onlyrightr   closedlabel!
  i 
  r   5minr   r;   )r   r   as_unitr   r!   arrayr%   r   r   groupbyohlc_cython_agg_generalngroupsr   r<   allappendr   aggtmassert_series_equal)unitr    dtisbgfuncsfarridxexpectresults               r)   test_custom_grouperra   7   s   xa+XdAr-BOE
--
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SS5      [        SSS5      SS9n[        [        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 )Nr2   r3   r4   r.   r   r9   rD   rE   r   float64r7   r;   rH   )r   r   r   r   rK   r
   r!   r"   r#   r%   rM   rS   columnsr    )rV   r    rY   rW   dfrs         r)   test_custom_grouper_dfrg   \   s    xa+XdAr-BMEVAYwg>A
--
C	
		a ''S27s)
B 	

1% Aqyy>Rqww<4r,   zclosed, expectedrD   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   r3         1/1/2000   rJ   r    periodsr   namer   )r   ilocr<   r   rX   s    r)   <lambda>rr   n   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$ )	Nr9   r4   1/1/2000 00:05   rJ   r    rm   r   )r   r<   r   rq   s    r)   rr   rr   u   sH    f2Aq2w||~qv{{}= $af7r,   c                 n   [        SSSS9n[        [        [        U5      5      US9nSUR                  l        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                  " XQ5        g )
N1/1/2000 00:00:001/1/2000 00:13:00r5   r   r   r    rJ   rD   rF   rG   )r   r   ranger%   r    ro   rK   resampler<   rT   rU   )rF   expectedrV   r    rX   r`   s         r)   test_resample_basicr~   i   s    , *,?eLEuSZ .AAGGL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	   rk   r>   rn   r   Int64r7   3min)rv         rv   )r3   rl      Float64)	r   r{   r   rK   r|   r;   rT   rU   r<   )rV   tsr`   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                    [        SSSS9n[        [        [        U5      5      US9nSUR                  l        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 )Nrx   ry   r5   r   r   r    5Minr9   rs   rE   c                      U R                   S   $ NrI   rp   xs    r)   rr   -test_resample_basic_grouper.<locals>.<lambda>   s    r
r,   )r   r   r{   r%   r    ro   rK   r|   lastr   r   rM   rS   rT   rU   )rV   r    rX   r`   grouperr}   s         r)   test_resample_basic_grouperr      s    *,?eLEuSZ .AAGGLggood#AGZZ$$&F6!9V6BGyy!%%&:;H6,r,   zkeyword,value))rG   righttt)rF   r   )
conventionstartttc                 R   [        SSSS9n[        [        [        U5      5      US9nSUR                  l        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)Nrx   ry   r5   r   r   r    zUnsupported value z for ``matchrJ   )r   r   r{   r%   r    ro   rK   pytestraises
ValueErrorr|   )keywordvaluerV   r    seriesmsgs         r)   test_resample_string_kwargsr      s     *,?eLEE#e*%U3FFLL<<''-FLugVG9A
6C	z	-5G#35 
.	-	-s   ;B
B&c                 ,   U S:X  a  [         R                  " S5        [        SSSS9n[        [	        [        U5      5      US9nSUR                  l        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 )NrN   z!covered by test_resample_how_ohlcrx   ry   r5   r   r   r    r   r3   ri   r   rj   rv   rk   rl   rJ   rm   rD   rz   )r   skipr   r   r{   r%   r    ro   rK   r!   	ones_likerM   rS   getattrr|   rT   rU   )downsample_methodrV   r    rX   	grouplistr}   r`   s          r)   test_resample_howr      s   F"78*,?eLEuSZ .AAGGLggood#AGQIIaLIaNIaOIbcNyy#''(9:HAFgdm N 	

6'
9;L F 6,r,   c           
      0   [        SSSS9n[        [        [        U5      5      US9nSUR                  l        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 )Nrx   ry   r5   r   r   r    r   r3   ri   r   rj   rv   c                     [        U 5      R                  5       (       a%  [        R                  " [        R                  S5      $ U R
                  S   U R                  5       U R                  5       U R
                  S   /$ Nrl   r   rI   r   rQ   r!   repeatnanrp   r?   r>   groups    r)   _ohlc%test_resample_how_ohlc.<locals>._ohlc   S    ;??99RVVQ''

1uyy{EIIKBHHr,   rk   rl   rJ   rm   )openhighlowcloser    rd   rD   rz   )r   r   r{   r%   r    ro   rK   r!   r   r
   rM   rS   valuestolistr|   rN   rT   assert_frame_equal)rV   r    rX   r   r   r}   r`   s          r)   test_resample_how_ohlcr      s   *,?eLEuSZ .AAGGL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                 P   [         R                  " S[         R                  S9nSn[        R                  " [
        US9   [        S[        U5      SS9R                  U 5      nS S S 5        [        XS.W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                  " Xx5        [        R                  " Xy5        [        R                  " Xz5        [        R                  " X{5        g ! , (       d  f       GN:= f)Nr9   r8   :'d' is deprecated and will be removed in a future version.r   
2014-01-01dr&   rn   r   ABr   c                 *    [        [        U 5      5      $ N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>.FnClass   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)   rr   -test_resample_how_callables.<locals>.<lambda>   s    #d1g,r,   r   )r   )r3   )r!   aranger6   rT   assert_produces_warningr	   r   r%   rK   r
   r|   applyr   r   )rV   datar   indre   r   r   df_standard	df_lambda
df_partialdf_partial2df_classs               r)   test_resample_how_callablesr      s:   99Qbhh'D
FC		#	#N#	>|SYSIQQRVW 
?	)	5B    ++d#))"-KD!''(>?IT"((5J++d#))'"*:;K{{4 &&wy1H+1+2+3+0) 
?	>s   $F
F%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   r3      r   6s)rl   r   rl   r   z
2014-11-08rl   r   rn   7s)rl   r4   rl   r3   11srj      r   13s   ri   17s   rv   )
r
   pdto_datetimer    rK   r|   r;   r   rT   r   )rV   r   re   r`   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                 	   [        [        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Sn[        R                  " [        US	9   UR                  S
5      R                  5       nS S S 5        [        W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 ! , (       d  f       GN7= f)!Nr2   r3   r4   r.   r    r&   r'   r   ro   r   z>'w-sun' is deprecated and will be removed in a future version.r   zw-sunrv   )ri   ri   ri   r   z1/2/2005z1/9/2005rI   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005zW-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrl   z1/7/2005r   r   )rl   r   r3   r   rv   rl   r   r9   )r   r   rK   r   r!   r"   r#   r%   rT   r   r	   r|   r   r    	dayofweekrQ   rp   ro   )rV   rW   rX   r   r`   s        r)   test_resample_basic_from_dailyr  J  su   
tQ"q"(=Cggdm  	ryy$$Q'..s3x8#>A KC		#	#N#	>G$))+ 
? 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]***<<'''_ 
?	>s    S
S-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.   r   r3   r   r         ?ri   i  r   19750101r9   r   )r   rK   r   r|   r<   r    r!   r   r{   r   countrT   rU   r;   )	rV   datesr   r`   irX   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-
r\   r:   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   rl   ABCDr   
2000-01-01r  r   r   rd   r    r   r   TrA   )r
   r!   r"   r#   r$   r   listobjectr   r    rK   r   rM   rO   )r\   rV   re   rY   rZ   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,   r   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#   r$   r   r  r  r   r    rK   r|   r<   rT   rU   )r   rV   re   r`   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,   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 )Nr2   r3   r4   r.   r    r   r   r5   i2  r   rI   )r   r   rK   r   r!   r"   r#   r%   r|   ffillrp   r    ro   )rV   rW   rX   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 )Nrj      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10sr   )r   r   r    rK   r!   r   r   rT   rU   r|   r<   )rV   rX   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r&   r'   r   r   )r   )   ?   r   r   r6   r   )
r   rK   r
   r   r{   r%   r|   r   rT   r   )rV   r    r}   re   r`   s        r)   test_resample_extra_index_pointr&    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 )
Nrk   rv   rJ   r   r   r>   limitr  methodr)  )r   rK   r   r!   r"   r#   r$   r%   r|   r  reindexr    rT   rU   rV   r(   r   r`   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 )Nrk   rv   )rn   r   tzr   r(  nearestr*  )r   rK   r   r!   r"   r#   r$   r%   r|   r9  r,  r    rT   rU   )tz_aware_fixturer   r1  rV   r(   r   r`   r}   s           r)    test_nearest_upsample_with_limitr;    s     Z
K
S
SC 
		%%a(88SBC	HB[[&&Q&/Fzz&,,yzBH6,r,   c                    [        [        SSS5      [        SSS5      SS9n[        [        [	        U5      5      US9nSUR
                  l        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 )Nr2   r3   r   r5   r   r   r    r9   c                      U R                   S   $ r   r   r   s    r)   rr   $test_resample_ohlc.<locals>.<lambda>  s    affRjr,   r   rl   r   ir   rI   r   r   r   )r   r   r   r{   r%   r    ro   rK   r   r   rM   rS   r|   rN   rd   rp   r?   r>   )rV   r    rX   r   r_   r`   xss          r)   test_resample_ohlcrA    s   xa+XdAq-ANEuSZ .AAGGL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hr   	4-15-2000	5-15-2000r   30minz	4-14-2000)r   rK   unionr   r{   r%   locr|   rN   
isinstancer
   )rV   r    rX   r   rY   s        r)   test_resample_ohlc_resultrL  *  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   rI   r   r   )r   rK   dropr   r
   r!   r   r%   r|   r<   r,  rT   r   )rV   r(   r    re   r`   r}   s         r)   $test_resample_ohlc_result_odd_periodrO  7  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r8  ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMErS  rR  r3   )axisColsrE  )rT  keysr   r   rY   cr   ))r   rW  r   )r   rW  r   )r   rW  r   )r   rW  r   )rY   r   r   )rY   r   r   )rY   r   r   )rY   r   r   )r
   r   r,  r    rK   rd   ro   r|   rN   r   concatnamesrT   r   
MultiIndexfrom_tuples)rV   re   resexps       r)   test_resample_ohlc_dataframer^  I  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                 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 )Nr2   r3   r4   r.   r#  r   r   rD   rz   8h   r   )r   r   rK   r   r!   r"   r#   r%   r|   r<   rK  r    r   r   
DateOffsetHour)rV   rW   rX   bsr`   s        r)   test_resample_reresamplere  y  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-DECr#  zYE-JUNzY-JUNz1990-01z2000-01Mc                 :   U " SS5      nUR                   R                  U5      Ul         UR                  U5      R                  5       R	                  5       nUR                  U5      R                  5       n[        S0 UD6Ul         [        R                  " XV5        g )Nz1/1/1990rk   r/   )r    rK   r|   r<   	to_periodr   rT   rU   )r0   r   expected_kwargsrV   r   r`   r}   s          r)   !test_resample_timestamp_to_periodrl    sz     
"*j	9Bxx%BH[[##%//1F{{4 %%'H!4O4HN6,r,   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,   rx   z1/1/2000 5:59:50r  r   r   r   rJ   rD   rz   z1/1/2000 00:00r   r3      ru   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rK   r   r!   r"   r#   r$   r%   r|   rN   rJ  rp   rQ   )rV   r   r(   r   	resampledr]  s         r)   test_ohlc_5minrr    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 )
Nrk   	2/29/2000r9   r   r   r   c                     U R                   $ r   )monthr   s    r)   rr   ,test_downsample_non_unique.<locals>.<lambda>  s    AGGr,   r   r3   )r   rK   r   r   r   r!   r"   r#   r$   r%   r|   r<   rM   rT   assert_almost_equalrp   )rV   r(   rng2r   r`   r}   s         r)   test_downsample_non_uniquerz    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)Nrk   rt  r   r   z/cannot reindex on an axis with duplicate labelsr   r   )r   rK   r   r   r   r!   r"   r#   r$   r%   r   r   r   asfreq)rV   r(   ry  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:)r>   rJ   15minrH  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 rX   r   r   r   rs   rz   r   rK   r   r!   r"   r#   r$   r%   r   r|   r<   rT   rU   )r   rV   r(   r   r`   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,   r'   r3   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   )r;   r   s    r)   rr   ,test_resample_single_group.<locals>.<lambda>  s
    aeegr,   z2000-1-1z2000-z-10r.   r   r   r   r   )r   rK   r   r!   r"   r#   r$   r%   rT   rU   r|   r;   r   )r'   rV   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.   r   c                 .    [         R                  " U 5      $ r   )r!   stdr   s    r)   rr   0test_resample_single_group_std.<locals>.<lambda>  s    RVVAYr,   )	r   r   r    rK   r   r|   r   rT   rU   )rV   rX   r}   r`   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 )Nrx   z1/1/2000 02:00rX   r   r   r   rJ   2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rK   r   r!   r"   r#   r$   r%   r|   r<   rT   assert_index_equalr    )rV   r(   r   rq  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:00rX   r   r   r   r  2000-01-01 01:57rJ   r   r  )r  rV   r(   r   r  rq  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  rX   r   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   rJ   r  r   rK   r   r!   r"   r#   r$   r%   r   r   r   r|   )r  rV   r(   r   r   s        r)   test_resample_bad_originr    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  rX   r   r   r   z6'offset' should be a Timedelta convertible type. Got 'r  r   rJ   r  r  )r  rV   r(   r   r   s        r)   test_resample_bad_offsetr    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7minr   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:00r&   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  )rV   r&   r'   r(   r   r  rq  s          r)   test_resample_origin_prime_freqr  (  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  rX   r   r8  r   r   r  r  rJ   z1999-12-31 23:57:00+00:00r  z1999-12-31 12:02:00+03:00r  r  r  r   r  r   z12/31/1999 23:57:00+03:00)r   rK   r   r!   r"   r#   r$   r%   r|   r<   rT   r  r    r   r   r   )rV   r   r8  r(   r   r  rq  s          r)   test_resample_origin_with_tzr  M  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                 P   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5      R                  5       nUR                  SSS	9R                  5       n[        R                  " XgS
S9  UR                  S 5      nUR                  S5      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5      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  r   r   r   r.   24hr  r  F
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rK   r!   r"   r#   r$   r%   r   r|   r<   rT   rU   tz_localizer8  )rV   r&   r'   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  n  s   GJE
Uf
-
5
5d
;CII))!,<<SXFM-+D}}S!&&(H}}U7}388:H8%@ %H  %**,H  w 7<<>H8%9%9#&&%AeT8%9%9#&&%AeT HJE
Uf
-
5
5d
;C-+D}}S!&&(H}}U7}388:H8//5x7K7KD7QR8//5x7K7KD7QRr,   c                   ^ ^ SmSnSUU 4S jjn[        STS9n[        STS9n[        X4S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 Hc  nUS:w  a  [        OS n	[        R                  " XS9   UR                  SUS9R                  5       n
S S S 5        [        R                  " W
U5        Me     [        STS9n[        STS9n[        X4SS	9R                  T 5      n[        [        R
                  " [        U5      5      US
9nS/nU" S/U5      n[        R                  " [        US9   UR                  SSSS9R                  5       n
S S S 5        [        R                  " W
U5        SS/nU" SS/USS	9nUR                  SSSS9R                  5       n
[        R                  " X5        S/nU" S/U5      n[        R                  " [        US9   UR                  SSSS9R                  5       n
S S S 5        [        R                  " X5        S/nU" S/U5      n[        R                  " [        US9   UR                  SSSS9R                  5       n
S S S 5        [        R                  " X5        S/nU" S/U5      n[        R                  " [        US9   UR                  SSSS9R                  5       n
S S S 5        [        R                  " X5        g ! , (       d  f       GNS= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nl= f)NAmerica/Chicagoz2The '(origin|offset)' keyword does not take effectr.   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 )NrQ  T)r   	ambiguousr   )r   r   r   rK   )r   
timestampsr   tr8  rV   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-02rQ  z2013-11-03 23:591hr   r   g      8@g      9@z
2013-11-03r  r&   r  r   r  z2013-11-03 00:00-05:00z-2hr  z2013-11-02 22:00-05:00z2013-11-03 21:00-06:00g      6@      @r  2hz-1hr-   )r   r   rK   r   r!   onesr%   RuntimeWarningrT   r   r|   r;   rU   )rV   r   r  r&   r'   r(   r   r}   r  warnr`   expected_tsr8  s   `           @r)   )test_resample_origin_with_day_freq_on_dstr    s   	B
>C
 
 lr*E
&2
.C
Ud
+
3
3D
9C	C!	-BtTl\<,HIHG[%>!';!6~D''8[[V[488:F 9
vx0	 ? lr*E
&2
.C
Ud
+
3
3D
9C	C!	-B ,,Ktfk2H		#	#N#	>S?CCE 
?68,+-EFKtSk;UCH[[wu[=AACF6, ,,Ktfk2H		#	#N#	>S>BBD 
?6,+,Ktfk2H		#	#N#	>S?CCE 
?6,+,Ktfk2H		#	#N#	>S>BBD 
?6,O 98 
?	> 
?	> 
?	> 
?	>s<   L L L,% L>	 M
L	
L),
L;>
M
Mc            
          [        S[        SSSSS95      n [        [        U 5      /[        U R                  S   /SS	9S
9nU R                  S5      R                  5       n[        R                  " X!5        g )Nr3   z
2024-04-19z
2024-04-20zAfrica/Cairor~  r8  r   r   7Dr   r   )	r   r   r%   r   r    r|   r;   rT   rU   )r   r}   r`   s      r)   +test_resample_dst_midnight_last_nonexistentr    sg    		<.wO
B
 s2wi}bhhqk]'NOH[[""$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'  r>   r   r   r   r.   rs   rz   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                 j   [        SS5      R                  U 5      n[        [        R                  R                  S5      R                  [        U5      5      US9nUR                  S5      R                  5       R                  5       n[        SSSS	9n[        R                  " UR                  U5        g )
Nrk   z
12/31/2000r   r   r   zJan-2000zDec-2000rh  r   )r   rK   r   r!   r"   r#   r$   r%   r|   r<   rj  r   rT   r  r    )rV   r(   r   r`   	exp_indexs        r)   &test_resample_to_period_monthly_bugletr    s     Z
.
6
6t
<C			%%a(88SB#	NB[[##%//1FZ#>I&,,	2r,   c            	      l   [        [        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U R                  S
5      R                  S 5      n[        R                  " X!5        g )Nr   r   r9   r  z
2012-01-01rE  r   rc   r7   r.   c                 "    U R                  5       $ r   r<   r   s    r)   rr   &test_period_with_agg.<locals>.<lambda>  s
    AFFHr,   )r   r!   r"   r#   integersr   to_timestampr|   r<   rj  rS   rT   rU   )s2r}   r`   s      r)   test_period_with_aggr    s    	
		a ))!Q3<c2>
B  ))#.335??AH[[!!"45F6,r,   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        UR                  S5      R                  S5      R                  5       nUR                  S5      R                  S 5      n[        R                  " X45        g )Nr3   i  r4   r      r   r         rp  )ID	timestampr   r   rd   r  r  rJ   c                 @    U R                  S5      R                  5       $ )NrJ   )r|   r;   r   s    r)   rr   (test_resample_segfault.<locals>.<lambda>	  s    

60B0F0F0Hr,   )r   r
   from_records	set_indexr    rK   rM   r|   r;   r   rT   r   )rV   all_wins_and_wagersre   r`   r}   s        r)   test_resample_segfaultr    s     
HT2q"b)1a0	
HT2q"b)1a0	
HT2q"b)1a0	
HT2q"b"-q!4	 
		%B
i  xx%BHZZ&&v.224Fzz$%%&HIH&+r,   c           	         [        [        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UR                  S5      R                  S5      R                  5       nUR                  R                  [        R                  :X  d   eg )Nz
2016-01-01rl   Wr   )r3   r3   r   r   )r9   ri   r   r   int32r   )dater   valr  r/  r   )r
   r   rK   r   r  r|   r  r   r8   r!   r  rM   rV   re   r`   s      r)    test_resample_dtype_preservationr    s     
\13GOOPTU!,g6	

 i  [[$$&F::rxx'''ZZ ))$/557F::rxx'''r,   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   )r3   rv   r3   rl   z
2017-01-01z
2017-01-04r   rc   rE  cubic)r   importorskipr
   r   rK   astyper|   r<   interpolaterT   rU   )rV   re   r}   r`   s       r)   test_resample_dtype_coercionr     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 )	Nrk   r   r  r   r   r   r  zW-SUN)r   rK   r   r!   r"   r#   r$   r%   r|   r<   rT   rU   )rV   r(   r   rq  r}   s        r)   test_weekly_resample_bugletr
  0  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  rE  r   r   r   r   )	r   rK   r   r!   r"   r#   r$   r%   r|   )rV   r  r   s      r)   test_monthly_resample_errorr  :  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@r4   100nsr   r   d   r<   r7   )r   r   r   r   r{   r%   r|   tseriesr   NanorS   floatrT   rU   )r&   	exp_startindxr   rf   r`   exp_indxr]  s           r)   test_nanosecond_resample_errorr  B  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UR	                  S5      R                  5       R                  5       nUR                  SS9nU=R                  [        S	S
S9[        S	SS9-
  -  sl        UR                  R                  U 5      R                  S5      Ul        UR                  R                  S:X  d   e[        R                  " X45        UR	                  SSS9R                  5       nUR                  S	SS9R	                  S5      R                  5       R                  5       nUR                  SS9nUR                  [        S	S
S9-   [        S	SS9-
  Ul        UR                  R                  U 5      R                  S5      Ul        UR                  R                  S:X  d   e[        R                  " X55        g )N1/1/20124/1/2012100minr   r   r   r'   howr3   usrV   r.   inferrs   rF   )r   rK   r
   rv  r|   r<   rj  r  r    r   
_with_freqr   rT   r   shift)rV   r(   re   r`   r}   r]  s         r)   test_resample_anchored_intradayr$  R  s    Z(
;
C
CD
IC	399C	(B[[##%F{{4 %%'113H$$$/HNNi-	!#0FFFN^^++D1<<WEHN>>$&&&&+[[f[-224F
((13(

(
(
.
3
3
5
?
?
AC


u

%C		Iad33i6LLCI		!!$'227;CI99>>T!!!&&r,   c                 J   [        SSSS9R                  U 5      n[        UR                  US9nUR	                  S5      R                  5       nUR	                  S5      R                  5       R                  5       nUR                  SS9nU=R                  [        S	S
S9[        S	SS9-
  -  sl        SUR                  R                  l        [        R                  UR                  l        UR                  R                  U 5      Ul        [        R                   " X45        UR	                  SSS9R                  5       nUR#                  S	SS9R	                  S5      R                  5       nUR                  5       nUR                  SS9nU=R                  [        S	S
S9[        S	SS9-
  -  sl        SUR                  R                  l        [        R                  UR                  l        UR                  R                  U 5      Ul        [        R                   " X45        g )Nr  r  r  r   r   QEr'   r  r3   r  r  r.   rs   r!  )r   rK   r
   rv  r|   r<   rj  r  r    r   _datar   r   
no_default_freqrT   r   r#  )rV   r(   re   r`   r}   s        r)    test_resample_anchored_intraday2r*  j  s   
Z(
;
C
CD
IC	399C	(B[[##%F{{4 %%'113H$$$/HNNi-	!#0FFFN $HNN>>HNN^^++D1HN&+[[f[-224Fxxx$--d388:H!!#H$$$/HNNi-	!#0FFFN $HNN>>HNN^^++D1HN&+r,   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:00rE  r   r   r3   )r    rK   r|   r<   r%   )r0   rV   r   rq  s       r)    test_resample_anchored_intraday3r,    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 )Nrk   z
12/31/2002)r    rK   r|   r<   )r0   r   rV   r   s       r)   !test_resample_anchored_monthstartr0    s9    	!*l	;Bxx%BHKKr,   z
label, sec       @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.206rv   400msr   z2014-10-15 23:00:00r   2200msr9   r   )rG   rI   z2014-10-15 23:00:00)r   rI  r   r!   r"   r#   r$   r|   r<   r    r   )rG   secindex1index2r    rX   r`   s          r)   test_resample_anchored_multidayr9    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 )Nrk   r   r>   r   r   r   rJ   rD   rs   rz   z1999-12-31 23:55rl   r  )rV   r(   r   r`   ex_indexs        r)   test_corner_casesr<    s     Z%
8
@
@
FC			%%a(88SB#	NB[[v[>CCEF,afEMMdSH&,,1r,   c                 
   U " SSSS9nUR                   R                  U5      Ul         UR                  S5      R                  5       R	                  5       n[        U5      S:X  d   eUR                   S   [        SS	S9:X  d   eg )
Nz
2000-04-28z2000-04-30 11:00rE  r   r   r3   r   z2000-04rh  )r    rK   r|   r<   rj  r%   r   )r0   rV   r   r`   s       r)   test_corner_cases_dater>    sv    	!,0B	MBxx%BH[[##%//1Fv;!<<?fYS9999r,   c                 ^   [        SSSS9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	5      R                  5         S S S 5        g ! , (       d  f       g = f)
Nr  iP  rX   r   r   r   r   r   r   )r   rK   r   r!   r"   r#   r$   r%   rT   r   r	   r|   r<   )rV   r  r   r   s       r)   test_anchored_lowercase_bugletr@    s|    (%cBJJ4PE			%%a(88UDE	RB
FC		#	#N#	>
C 
?	>	>s   5 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                  SS	/5      n[        U[        5      (       d   eg )
N
2012-06-12rl   rE  r   r   r   20minr<   r;   )r   rK   r   r!   r"   r#   r$   r%   r|   	aggregaterK  r
   )rV   r(   r   r`   s       r)   test_upsample_apply_functionsrE    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 )NrB     rE  r   r   r   r.   )r   rK   r   r!   r"   r#   r$   r%   takepermutationr|   r;   
sort_indexrT   rU   )rV   r(   r   r`   r]  s        r)   test_resample_not_monotonicrK    s    
\3S
9
A
A$
GC			%%a(88SB#	NB	&&q)55c"g>	?B[[!!#F
--/
"
"3
'
+
+
-C6'r,   r8   )r6   r  rc   float32c                    [        [        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  r3   r   r9   r   r7   r>   c                 "    U R                  5       $ r   r  r   s    r)   rr   /test_resample_median_bug_1688.<locals>.<lambda>  
    r,   )
r   r   rK   r
   r|   r   r|  rT   r   median)r8   rV   rW   re   r`   r]  s         r)   test_resample_median_bug_1688rS    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 )Nrk   z4/1/2000r   c                 "    U R                  5       $ r   r  r   s    r)   rr   +test_how_lambda_functions.<locals>.<lambda>  s
    qvvxr,   foobarc                 "    U R                  5       $ r   r  r   s    r)   rr   rV    rQ  r,   c                      U R                  SS9$ Nr3   )ddofr  r   s    r)   rr   rV    s    AEEqEMr,   c                 "    U R                  5       $ r   r  r   s    r)   rr   rV    s
    !&&(r,   c                      U R                  SS9$ r[  r]  r   s    r)   rr   rV    s    QUUU]r,   )rW  rX  F)check_names)r    rK   r|   r   r<   rT   rU   ro   r  rd   rD  )r0   rV   r   r`   r]  foo_expbar_exps          r)   test_how_lambda_functionsrc    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  rv   r3   r9   rN  r   rp  rl   rH  r   r   r   YS)r   r   rK   r
   r|   r;   )rV   r&   r'   bad_indre   s        r)   test_resample_unequal_timesrg    s`    T1a#E
4B
"C'2::4@G	GQ<w	/B KKr,   c                    [        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[        R                  " [        5         UR                  USSS9nS S S 5        UR                  S5      R                  SS9nUR                  S5      R                  5       n[        R                  " XX5        [        R                  " XW5        [        R                  " UW5        g ! , (       d  f       N= f)Nz
2002-02-02rl   rH  r         @r   r   r   rI   10minr   bfill)r    r+  )r    r+  r)  r*  10Minr(  )r   rK   r   r!   r   r   rp   r,  rT   r   r	   reindex_liker|   rk  rU   )	rV   i30rX   i10s10s10_2rlr10_2r10s	            r)   test_resample_consistencyru    s    \17
;
C
CD
ICryy~S)AAFF1I SVSW7
3
;
;D
AC
))#g)
.CIICqI9E		#	#N	3^^Cq^9 
4JJw%%A%.E
**W

#
#
%C 5&5(5"% 
4	3s   1E
E  r4   r   rv   rj   r9   r   r   r  dates1rl   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r   ro   r   r3   r   r   r   r3   r   r   keyr   rK   r
   r!   r   r%   r  r|   r  r   anyr    r"  rT   r   rM   r   r  rV   re   r`   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   rz  r{  r|  )r   r  r   r  r   r}  r  r  s         r)   test_resample_timegrouper2r  R  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.   r   c                 "    U R                  5       $ r   nuniquer   s    r)   rr   'test_resample_nunique.<locals>.<lambda>|  s
    		r,   r  )r
   r   r    rK   r|   rM   r   r  r   ro   r  rT   rU   )rV   re   rf   rZ   r}   r  r`   s          r)   test_resample_nuniquer  k  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   )r9   rl   r  r   r  r9   r.   r   r  lev0lev1)rY  r  )r
   r!   r"   r#   r$   r   r  r  r   absr    rK   r   rZ  from_arraysrd   r   r|   r  rT   r  r  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)   rr   rr     s
    !))+r,   c                 @    U R                  [        R                  5      $ r   )rS   r   r  r   s    r)   rr   rr     s    !%%'r,   c                 $    U R                  S5      $ )Nr  )rS   r   s    r)   rr   rr     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 )
NrC  rD  rE  r   rF  rG  r6   r7   r   )
r   rK   rR   r   r{   r%   r|   r  rT   rU   )	r  rV   r    r8  index3rX   rf   r`   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,   c                    SnSn[         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                  XA5      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  r4   r   z
2015-08-27r>   r   r   r6   r   rH  r#  rD   sideTr3   rI   	minlengthFcopy)r!   r"   r#   r   rK   r   r  r  choicer|   r  r    r>   r?   r   searchsortedlexsortr_bincountr%   rT   rU   )rV   nkprngdrr   rs   ixvalsbinssortermaskr]   rD   s                 r)   test_resample_group_infor    s    	A
A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-19r>   r   r   r   r  r#  rD   r  r3   r  r6   Fr  )r   rK   r   r!   r"   r#   r$   r  r|   sizer    r>   r?   r  r   r  r%   r  rT   rU   )	rV   r  r  r   rs   r  r  r   rD   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  rX   r  UTCzEurope/Madridi 8XiFXrE  r   r9   r   r1  )r
   r   r   r   r   dtr  
tz_convertr|   r;   rT   r   )df1dti1df2dti2re   r`   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  rQ  r  r3   r   r   r/  r   z
2016-11-02z
2016-11-24r.   r  r  r   r1  )r   r  rK   r
   rM   r   r   r   r!   r   rT   r   )rV   r    re   r`   expected_index_valuesr}   s         r)   !test_groupby_with_dst_time_changer    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 )NrN  rj   rl      z
US/EasternrQ  r9   r   r.   r   r  r-  r3   r  )
r   r   rK   r
   r    	normalizerT   r   r|   r;   )rV   rW   re   r}   s       r)   test_resample_dst_anchorr    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   rY   rW  r6   r7   r>   r?   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 Frequencyr-  )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   rK   r{   r  r
   r|   rS   rT   r   )rV   rW   r   re   r  rsr`   r}   rs2r
  	expected2rs3result3	expected3rs4result4	expected4df_dailyrs_dresult_d
expected_ds                        r)   test_resample_dst_anchor2r  )  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/Berlinrv  r4      rl   r  r   r9   r   rE        @rv   r   )zoneinfoZoneInfor   r   
astimezonerK   r   r|   r<   r!   r   rT   rU   )rV   r8  r  r  r`   r}   s         r)   test_downsample_across_dstr    s    			?	+B	$B	Br}}R(!$?GGMEAU#,,S1668F	bffSE!r*AC@HHN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/AmsterdamrQ  )rj   r   r      r  )r    r   1Wr  *   r  z
2017-04-02r  r  r   )r
   r   rK   r|   r;   rT   r   )rV   re   r`   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/LondonrE  r  r7   r  z
2013-04-07r9   )r   rn   r8  )	r   rK   r   r!   rc   r|   r<   rT   rU   )rV   r^   rX   r`   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  rj   rv   r   r9   r  r   r  zAmerica/Havanar   r/  z
2018-11-03rn   T)r  r.   )g      @g      <@g     @F@)r   r   rK   r  r  r  r{   r%   r
   rM   r   r<   r   rT   r   )	rV   r&   r'   r    r   	dataframer`   rW   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   rv   r9   r   rj   r   )r  r  r  )r        @      &@1sr  r   2sr  3s60s)	r   r   NaTrK   r
   rT   r   r|   r<   )	rV   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  r3   r  r   r  r   z
2016-01-15rv   2Dr   )r    ro   )r   r
   r    rK   r   r   r  r   r|   firstrT   rU   )rV   r  re   r]  r\  s        r)   test_resample_datetime_valuesr    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                 J   [        SSSS9n[        [        [        U5      5      US9nSUR                  l        S nUR                  R                  U 5      Ul        SnUR                  S	5      R                  X45      nUR                  S	5      R                  5       R                  U5      n[        R                  " XV5        UR                  S	5      R                  X4S
9nUR                  S	5      R                  5       R                  U5      n[        R                  " XV5        g )Nrx   ry   r5   r   r   r    c                 4    [         R                  " U 5      U-  $ r   r!   r<   r   add_args     r)   r\   3test_resample_apply_with_additional_args.<locals>.f      wwt}w&&r,   r4   r.   )r  )r   r   r{   r%   r    ro   rK   r|   r   r<   multiplyrT   rU   )rV   r    r   r\   
multiplierr`   r}   s          r)   (test_resample_apply_with_additional_argsr    s    *,?eLEE#e*%U3FFLL' <<''-FLJ__S!''6Fs#((*33J?H6, __S!'''>Fs#((*33J?H6,r,   c                  b   S n Sn[        SSS.[        SSS9S9nUR                  S	5      R                  S
5      R	                  X5      R                  [        5      nUR                  S	5      R                  S
5      R                  5       R                  U5      n[        R                  " X45        g )Nc                 4    [         R                  " U 5      U-  $ r   r  r  s     r)   r\   4test_resample_apply_with_additional_args2.<locals>.f  r  r,   r4   r3   r   r   2017r  r   r   r.   )r
   r   rM   r|   rS   r  r  r<   r  rT   r   )r\   r  re   r`   r}   s        r)   )test_resample_apply_with_additional_args2r     s    ' J	#:fb+I	JBZZ_%%c*..q=DDUKFzz#'',113<<ZHH&+r,   r  )r3   r   rv   zn1, freq1, n2, freq2)
)   rX         ?r5   )<   rX   r3   r5   )i  rX   r3   rE  )r#  r5   r3   rE  )i`T  rX   g      ?r.   )r  rX   r3   r.   )i  rX   r"  r.   )i  r5   r3   r.   )r   rE  r"  r.   )   rE  r3   r.   c                 4   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US:X  ah  [        UR                  R                  [        5      (       a?  [        [        UR                  R                  R                  S95      UR                  l
        [        R                   " X5        g )Nz
1991-09-05z
1991-09-06r   r   r.   )days)r   rK   r   r{   r%   r|   r   r<   rK  r    r   r   r   r   r  rT   rU   )n1freq1n2freq2r  rV   n1_n2_rW   serr	  r
  s               r)    test_resample_equivalent_offsetsr.    s    $ &C
&C
\<e
<
D
DT
JC
s3x
,Cll3s8e+,113Gll3s8e+,113G|
7==#5#5s;; 'ygmm6H6H6J6J'KL7,r,   z"first,last,freq,exp_first,exp_last))1991090519920406r.   r/  19920407)z19910905 00:0019920406 06:00r.   r/  r1  )19910905 06:00r2  rE  r3  z19920406 07:00)19910906r0  r   1991083119920430)r5  r6  r   r5  19920531)z1991-08z1992-04r   r5  r7  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 )Nnsr  )
r   r  r   rK   r   r   r  frequenciesr   r   )r  r   r   	exp_firstexp_lastrV   r`   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           	         [        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        UR                  S	5      R                  [        R                  5      n[	        [        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                  " XV5        g )Nz
2012-01-31r   r   r&   r   rn   r   r   r   r   r&  r   r$  r#     r  r  i  i  r   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31QE-DECr   r   )r   rK   r   r{   r
   rd   r|   r   r!   r=   rL   r6   r   rT   r   )r>  rV   r    r   re   r`   r}   s          r)   test_resample_apply_productrC  Y  s     \bAII$OE	b		'B	q&)	*B3Z
[[$$RWW-F
1b'B9sCj3+>bhhOD8

'$-

H &+r,   z$first,last,freq_in,freq_out,exp_last))
2020-03-28
2020-03-31r.   r  z2020-03-30 01:00)rD  
2020-10-27r.   r  2020-10-27 00:00)
2020-10-25rF  r.   r  z2020-10-26 23:00)rD  rE  r  r.   z2020-03-30 00:00)rD  rF  r  r.   rG  )rH  rF  r  r.   z2020-10-26 00:00r  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   rK   r|   r  rT   rU   )	r  r   rI  rJ  r<  rV   r   r`   r}   s	            r)   #test_resample_calendar_day_with_dstrL  n  sy    N 
Z'6HIQQRVW
B [["((*F56HIQQRVWH 6,r,   )r>   r?   r  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   rv   r@  r3   r&  r   )	min_countrE  rB  r   r   )
r   rK   r   r!   r   r   r|   r   rT   rU   )r  rV   r    r-  r`   r}   s         r)   +test_resample_aggregate_functions_min_countrP    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  r#  r   )r   r3   r   r   )r    rd   r   r8   z
2000-01-02z
2000-01-03r.   r3   r   r  )r
   r   rK   rJ  r    r|   r?   r!   r   rT   r   )any_unsigned_int_numpy_dtyperV   re   r`   r}   s        r)   test_resample_unsigned_intrS    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  rX   100YE)rV   r   )r3   rl   r   r   r9   r   r3   rl   r   r   r9   r   r3   rl   r   r   r9   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-DECr   )	r  r        @ri  r  rW  ri  r  rW  )
r   r   r|   r<   r   r!   rL   r  rT   rU   )r^   r-  r`   expected_idxr}   s        r)   test_long_rule_non_nanorY    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9nU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  rs   )onrF   rG   r   )r   ro   r8   rc   )r    ro   r8   )r
   r  r|   r;   r   r   rT   rU   )re   r  r`   rX  r}   s        r)   "test_resample_empty_series_with_tzr\    s    	"+	,	3	3	/0
B 
UtF&	AB\F 
T)IL b89MH6,r,   )2Mr  2Qz2Q-SEPz2q-sep1Yz2Y-MARc           	          SU  3n[        [        S5      [        SSSS9S9n[        R                  " [
        US9   UR                  U 5      R                  5         S S S 5        g ! , (       d  f       g = fNInvalid frequency: r4   20130101r.   r   r   r   r   r{   r   r   r   r   r|   r<   r   r   rX   s      r)   test_resample_M_Q_Y_raisesrf    V    v
&CuRy
:C LMA	z	-	

4 
.	-	-    A$$
A2)2BM1bm1BQz2BQ-MARz2bq=-marc           	          SU  3n[        [        S5      [        SSSS9S9n[        R                  " [
        US9   UR                  U 5      R                  5         S S S 5        g ! , (       d  f       g = fra  rd  re  s      r)   test_resample_BM_BQ_raisesrm    rg  rh  zfreq,freq_depr,dataz1W-SUNz1w-sunz
2013-01-06r/  1dz
2013-01-011B1b1C1cc           
      J   SUSS   S3n[        [        S5      [        SSSSS9S	9n[        R                  " [
        US
9   UR                  U5      R                  5       nS S S 5        [        USU S9n[        SUS	9n[        R                  " WUSS9  g ! , (       d  f       N:= f)N'r3   z8' is deprecated and will be removed in a future version.r9   rc  rE  r9  )r   rn   rV   r   r   zdatetime64[ns])r   r8   r   r1  Fr  )
r   r{   r   rT   r   r	   r|   r<   r   rU   )r   	freq_deprr   r   rX   r`   exp_dtir}   s           r)   &test_resample_depr_lowercase_frequencyrw    s     im_T
UCuQxz*3PTUVA		#	#N#	>I&++- 
? -=DIGc)H68> 
?	>s     B
B"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  r&   r   rn   rV   r   r   r-  rD   r!    r3   r   r   rl   rv   ;   M8[]
r   r
   r|   r   r   r   rK   r  rT   r   )rV   rW   re   groupedr`   rv  r}   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 )Nry  rz  r{  r|  r   r   rD   r!  r}  r3   r!  rp  r   rv   rl   r   r~  r  r  r  )r   rV   rW   re   r  r`   rv  r}   s           r)   test_resample_c_b_closed_rightr  %  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-26ri   r  )rn   r   rV   )r3   r   rv   rl   r9   ri   r   r   rD   rz   i  r   r           r   )r  g      @g      @g      @)	r   r   r|   r<   r   r   rK   rT   rU   )rV   rW   r-  r`   rv  r}   s         r)   test_resample_b_55282r  D  s    
\15t
DC
#3
/C\\#gW\=BBDFT1b!T1b!T1b!T1b!		
  gdm  H 6,r,   pyarrowr8  r  z/TODO: Set ARROW_TIMEZONE_DATABASE env var in CI)	conditionreason)marksc                 $   [        [        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 )N
2020-01-01r9   r  timestamp[ns][pyarrow]r   r   r/  )r   r   r  r  r!   r   rc   r|   r<   rT   rU   )r8  r^   r}   r`   s       r)   test_arrow_timestamp_resampler  Z  ss      L!4<T
UC	~ff  $bii4C@Ht$))+F6,r,   c                  
   [        [        SSS9SS9n [        [        R                  " S[        R                  S9U S9nSUR
                  l        UR                  S5      R                  5       n[        R                  " X!5        g )	Nr  r9   r  r  r   r   
index_namer/  )r   r   r!   r   rc   r    ro   r|   r<   rT   rU   )r^   r}   r`   s      r)   -test_arrow_timestamp_resample_keep_index_namer  r  sf     L!4<T
UCbii4C@H&HNNt$))+F6,r,   c            	          [        [        [        S5      SSSS95      n [        SU S9nUR	                  S5      R                  5       n[        S	U S S S	2   S9n[        R                  " X#5        g )
Nz
1950-01-01r4   1000YSrX   )r&   rn   r   rV   r3   r   2000YSr   )r   r   r   r   r|   r;   rT   rU   )r    r-  r`   r}   s       r)   %test_resample_unit_second_large_yearsr  |  sg    <0"8RUVE %
 C\\(#'')FauSqSz*H6,r,   1Az2A-MARc           	          SU SS   3n[        [        S5      [        SSSS9S9n[        R                  " [
        US9   UR                  U 5      R                  5         S S S 5        g ! , (       d  f       g = f)	Nrb  r3   r4   rc  r.   r   r   r   rd  re  s      r)   test_resample_A_raisesr    s\    QRz
*CuRy
:C LMA	z	-	

4 
.	-	-s    A''
A5)r   	functoolsr   r  numpyr!   r   pandas._libsr   pandas._libs.tslibsr   pandas._typingr   pandas.compatr   pandas.errorsr	   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r
   r   r   r   r   r   r   pandas._testing_testingrT   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   pandas.core.resampler   r   pandas.tseriesr   pandas.tseries.frequenciesr   pandas.tseries.offsetsr   fixturer0   ra   rg   markparametrizer~   r   r   r   r   r   r   r   r  r  r  r  r  r  r&  r.  r;  rA  rL  rO  r^  re  rl  rr  rz  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,  r0  r9  r<  r>  r@  rE  rK  rS  rc  rg  ru  rw  r  __annotations__r  rx  dates3r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r.  r=  rC  r   rL  rP  rS  rY  r\  rf  rm  rw  r  r  r  
skip_if_noparamxfailr  r  r  r  r/   r,   r)   <module>r     s         # * - ( ) )     / 4
 # 0 ) 	% 	%"+J
   	
 	
*-+*--0- L	6		6-.,816=,@9(x.< JK: L: $.G /G("?:,- !=>!LM	- N ?	-$4
$,$*$`	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:=-@
--3
-,&(&- 0( '0,0 !LM N sgu5E'FGF HF$2: )( ''(F6	&2 T2qT1aT2qT1aT2qT1b!_  !Y&!* Xbff Xva{ XBFF XVTUTVZ X_ X
&&	"6	"266	" 666":;, <,& 666":;, <,0->6 
'"
 	5  
-
-(>((,@,&(Yx
-,&- ,$B@%*-,
, i(- ) -  (

 e}5, 6,( *"F---$'-36-BE-G"F- !@A	- B	-,0-2- !WX  Y  !MN  O  	8l^,	tl^$	tl^$	tl^$		?	?,  #s,, , -,<-, y++##-/H $ 	
	- - y- -- $!12  3 r,   