
    _ei                       U d dl m Z  d dlmZ d dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmc mZ d dlZd d	lmZmZmZmZmZmZmZ d dlmZ  d d
l!m"Z" d dl#m$Z$ d dl%m&Z&m'Z' d dl(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 ejb                  d        Z2d Z3d Z4ejj                  jm                  ddd fdd fg      d        Z7d Z8d Z9ejj                  jm                  dg d      d        Z:d Z;d  Z<d! Z=d" Z>d# Z?d$ Z@ejj                  jm                  d%g d&      d'        ZAejj                  jm                  d(d)d*g      d+        ZBd, ZCd- ZDd. ZEd/ ZFejj                  jm                  d(g d0      ejj                  jm                  d1g d2      d3               ZGd4 ZHd5 ZId6 ZJd7 ZKd8 ZLejj                  jm                  d9d:d;d<d=d>gd?d;d<d@d>gd*dAdBdCd>gg      dD        ZMdE ZNdF ZOdG ZPejj                  jm                  d(g dH      dI        ZQejj                  jm                  dJdKdLg      dM        ZRdN ZSdO ZTejj                  jm                  dPdQdRidQ edS      idTdUdVdQdWidXdYig      dZ        ZUejj                  jm                  dQd[d\d]d^d_ eV       g      d`        ZWejj                  jm                  dXd[dad_ eV       g      db        ZXdc ZYdd ZZde Z[df Z\dg Z]dh Z^di Z_dj Z`dk Zadl Zbdm Zcdn Zddo Zedp Zfdq Zgdr Zhds Ziejj                  jm                  d(g dt      du        Zjejj                  jm                  dvddwgddxgg      dy        Zkdz Zld{ Zmd| Znd} Zod~ Zpejj                  jm                  dg d      d        Zqd Zrd Zsd Zt e dddK       e ddd       e ddd       e ddd       e ddd       e ddd      gZueve   ewd<   g euddL ej                  eudLd ej                  eudd Zyeve   ewd<   ej                  geuej                  Zzejj                  jm                  deueyezg      d        Z{ejj                  jm                  deueyezg      d        Z|d Z}d Z~ejj                  jm                  dd d d gg d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zejj                  jm                  dg d      ejj                  jm                  dg d      d               Zejj                  jm                  dg d      d        Zejj                  jm                  dddg      d        Zejj                  jm                  dg d      dededededef
d       Zejj                  jm                  dg d      d        Zd Zd ZdÄ Zejj                  jm                  d(g dĢ      dń        Zejj                  jm                  d(g dƢ      dǄ        Zejj                  jm                  ddddgfdddgfdddgfdddgfg      dӄ        ZdԄ Zejj                  jm                  d(ddg      d(efdׄ       Zd؄ Z ej:                  d٫      ejj                  jm                  dd ej<                  dejj                  j?                   e       dܬݫ      ޫ      g      d߄               Z ej:                  d٫      d        Zd Zejj                  jm                  d(ddg      d        Zy)    )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                      dd} | S )zI
    Series with date range index and random data for test purposes.
    c                     t        | ||      }t        t        j                  j	                  d      j                  t        |            |      S )Nfreq   index)r   r   nprandomdefault_rngstandard_normallen)startendr   rngs       _/var/www/ceduoda/envi/lib/python3.12/site-packages/pandas/tests/resample/test_datetime_index.py_simple_date_range_seriesz;simple_date_range_series.<locals>._simple_date_range_series0   s<    $/bii++A.>>s3xHPSTT    D )r*   s    r)   simple_date_range_seriesr/   *   s    U %$r+   c                    t        t        ddd      t        ddd      d      }|j                  |       }t        t	        j
                  dgt        |      z        |d      }t        t        d            }|j                  |      }|j                          g d	}|D ]  }|j                  |d d
        t        t        d      dd      }|j                  |      }|j                          g d	}|D ]  }|j                  |d d
        |j                  dk(  sJ t        |j                               j                         sJ dgdgdz  z   }|ddd   }	|	j!                  |dd        }	t#        |	d      j                  |       }	t        ||	      }
|j%                  d      }t'        j(                  ||
       y )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_grouperr`   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Cs#F UU5\F66*r+   c                    t        t        ddd      t        ddd      d      }t        t        d      dd      }|j	                  |       }t        t        j                  j                  d	      j                  t        |      df      |d
      }|j                  |      j                  d      }t        |j                        dk(  sJ t        |j                        dk(  sJ y )Nr1   r2   r3   r-   r   r8   rC   rD   r   float64r6   r:   rG   )r   r   r   r   rJ   r
   r!   r"   r#   r%   rL   rR   columnsr    )rU   r    rX   rV   dfrs         r)   test_custom_grouper_dfrf   \   s    xa+XdAr-BMEVAYwg>A
--
C	
		a ''S27s)
B 	

1% Aqyy>Rqww<4r+   zclosed, expectedrC   c           	          t        | j                  d   | dd j                         | dd j                         | dd  j                         gt        dddd	      
      S )Nr   r2         1/1/2000   rI   r    periodsr   namer   )r   ilocr;   r   rW   s    r)   <lambda>rq   n   sQ    fAaFKKM1Qr7<<>1RS6;;=I QV'R r+   leftc           	          t        | d d j                         | dd j                         | dd  j                         gt        dddd            S )	Nr8   r3   1/1/2000 00:05   rI   r    rl   r   )r   r;   r   rp   s    r)   rq   rq   u   sJ    f2Aq2w||~qv{{}= $af7 r+   c                    t        ddd      }t        t        t        |            |      }d|j                  _        |j                  j                  |      |_         ||      }|j                  j                  |      |_        |j                  d| d	      j                         }t        j                  ||       y )
N1/1/2000 00:00:001/1/2000 00:13:00r4   r   r   r    rI   rC   rE   rF   )r   r   ranger%   r    rn   rJ   resampler;   rS   rT   )rE   expectedrU   r    rW   r_   s         r)   test_resample_basicr}   i   s    , *,?eLEuSZ .AAGGLggood#AG{H^^++D1HNZZvWZ=BBDF68,r+   c                    t        t        d      t        ddd      j                  |       d      }|j	                  d      j                         }t        g dt        dd	d      j                  |       d      }t        j                  ||       |j	                  d      j                         }t        g d
t        dd	d      j                  |       d      }t        j                  ||       y )N	   rj   r=   rm   r   Int64r6   3min)ru         ru   )r2   rk      Float64)	r   rz   r   rJ   r{   r:   rS   rT   r;   )rU   tsr_   r|   s       r)   test_resample_integerarrayr      s    	aQU;CCDI
B
 [[ $$&FQV<DDTJH
 68,[[ %%'FQV<DDTJH
 68,r+   c                    t        ddd      }t        t        t        |            |      }d|j                  _        |j                  j                  |       |_        |j                  d      j                         }t        t        d      d	d	
      }|j                  |      j                  d       }t        j                  ||       y )Nrw   rx   r4   r   r   r    5Minr8   rr   rD   c                      | j                   d   S NrH   ro   xs    r)   rq   z-test_resample_basic_grouper.<locals>.<lambda>   s    r
 r+   )r   r   rz   r%   r    rn   rJ   r{   lastr   r   rL   rR   rS   rT   )rU   r    rW   r_   grouperr|   s         r)   test_resample_basic_grouperr      s    *,?eLEuSZ .AAGGLggood#AGZZ$$&F6!9V6BGyy!%%&:;H68,r+   zkeyword,value))rF   righttt)rE   r   )
conventionstartttc                 Z   t        ddd      }t        t        t        |            |      }d|j                  _        |j                  j                  |      |_        d| d|  d	}t        j                  t        |
      5   |j                  di | |i d d d        y # 1 sw Y   y xY w)Nrw   rx   r4   r   r   r    zUnsupported value z for ``matchrI   )r   r   rz   r%   r    rn   rJ   pytestraises
ValueErrorr{   )keywordvaluerU   r    seriesmsgs         r)   test_resample_string_kwargsr      s     *,?eLEE#e*%U3FFLL<<''-FLugVG9A
6C	z	- 65GU#356 6 6s   B!!B*c                 >   | dk(  rt        j                  d       t        ddd      }t        t	        t        |            |      }d|j                  _        |j                  j                  |      |_        t        j                  |      }d	|d	<   d
|d
d d|dd d|dd  |j                  |      j                  |       }t        dddd      j                  |      |_         t        |j                  ddd      |              }t        j                   ||       y )NrM   z!covered by test_resample_how_ohlcrw   rx   r4   r   r   r    r   r2   rh   r   ri   ru   rj   rk   rI   rl   rC   ry   )r   skipr   r   rz   r%   r    rn   rJ   r!   	ones_likerL   rR   getattrr{   rS   rT   )downsample_methodrU   r    rW   	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W	

6'
9;L F 68,r+   c           	      L   t        ddd      }t        t        t        |            |      }d|j                  _        |j                  j                  |       |_        t        j                  |      }d|d<   d|dd	 d
|d	d d|dd  d }t        |j                  |      j                  |      j                  j                         t        dddd      j                  |       g d      }|j                  ddd      j                         }t!        j"                  ||       y )Nrw   rx   r4   r   r   r    r   r2   rh   r   ri   ru   c                     t        |       j                         r$t        j                  t        j                  d      S | j
                  d   | j                         | j                         | j
                  d   gS Nrk   r   rH   r   rP   r!   repeatnanro   r>   r=   groups    r)   _ohlcz%test_resample_how_ohlc.<locals>._ohlc   P    ;??99RVVQ''

1uyy{EIIKBHHr+   rj   rk   rI   rl   )openhighlowcloser    rc   rC   ry   )r   r   rz   r%   r    rn   rJ   r!   r   r
   rL   rR   valuestolistr{   rM   rS   assert_frame_equal)rU   r    rW   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                 `   t        j                  dt         j                        }d}t        j                  t
        |      5  t        dt        |      d      j                  |       }d d d        t        ||d	      }dd
} G d d      }|j                  d      j                  |      }|j                  d      j                  d       }|j                  d      j                  t        |            }	|j                  d      j                  t        |d            }
|j                  d      j                   |             }t        j                  ||       t        j                  ||	       t        j                  ||
       t        j                  ||       y # 1 sw Y   ;xY w)Nr8   r7   :'d' is deprecated and will be removed in a future version.r   
2014-01-01dr&   rm   r   ABr   c                 *    t        t        |             S Nstrtype)r   as     r)   fnz'test_resample_how_callables.<locals>.fn   s    47|r+   c                       e Zd Zd Zy),test_resample_how_callables.<locals>.FnClassc                 *    t        t        |            S r   r   )selfr   s     r)   __call__z5test_resample_how_callables.<locals>.FnClass.__call__   s    tAw<r+   N)__name__
__module____qualname__r   r.   r+   r)   FnClassr      s    	 r+   r   MEc                 *    t        t        |             S r   r   r   s    r)   rq   z-test_resample_how_callables.<locals>.<lambda>   s    #d1g, r+   r   )r   )r2   )r!   aranger5   rS   assert_produces_warningr	   r   r%   rJ   r
   r{   applyr   r   )rU   datar   indrd   r   r   df_standard	df_lambda
df_partialdf_partial2df_classs               r)   test_resample_how_callablesr      sO   99Qbhh'D
FC		#	#N#	> X|SYSIQQRVWX	D)	5B    ++d#))"-KD!''(>?IT"((5J++d#))'"*:;K{{4 &&wy1H+y1+z2+{3+x0)X Xs   'F##F-c                 b   g d}t        ddgdz  it        j                  |            }|j                  j	                  |       |_        |j                  d      j                         }t        dg dit        ddd	
      j	                  |             }t        j                  ||       |j                  d      j                         }t        dg dit        ddd	
      j	                  |             }t        j                  ||       |j                  d      j                         }t        dddgit        ddd
      j	                  |             }t        j                  ||       |j                  d      j                         }t        dddgit        ddd
      j	                  |             }t        j                  ||       |j                  d      j                         }t        dddgit        ddd
      j	                  |             }t        j                  ||       y )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   r2      r   6s)rk   r   rk   r   z
2014-11-08rk   r   rm   7s)rk   r3   rk   r2   11sri      r   13s   rh   17s   ru   )
r
   pdto_datetimer    rJ   r{   r:   r   rS   r   )rU   r   rd   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                 j	   t        t        ddd      t        ddd      dd      j                  |       }t        t        j
                  j                  d      j                  t        |            |      }d}t        j                  t        |	      5  |j                  d
      j                         }d d d        t              dk(  sJ |j                  j                  g dk(  j                         sJ |j                   d   |d   k(  sJ |j                   d   |d   k(  sJ |j                   d   |j                   d   k(  sJ |j                  d      j                         }t        |      dk(  sJ |j                  j                  ddgk(  j                         sJ |j                   d   |d   k(  sJ |j                   d   |d   k(  sJ |j                  d      j                         }t        |      dk(  sJ |j                  j                  ddgk(  j                         sJ |j                   d   |d   k(  sJ |j                   d   |d   k(  sJ |j                  d      j                         }t        |      dk(  sJ |j                  j                  ddgk(  j                         sJ |j                   d   |d   k(  sJ |j                   d   |d   k(  sJ |j                  d      j                         }t        |      dk(  sJ |j                  j                  ddgk(  j                         sJ |j                   d   |d   k(  sJ |j                   d   |d   k(  sJ |j                  d      j                         }t        |      dk(  sJ |j                  j                  ddgk(  j                         sJ |j                   d   |d   k(  sJ |j                   d   |d   k(  sJ |j                  d      j                         }t        |      dk(  sJ |j                  j                  g dk(  j                         sJ |j                   d   |d   k(  sJ |j                   d   |d   k(  sJ |j                   d    |d   k(  sJ |j                  j"                  dk(  sJ y # 1 sw Y   xY w)!Nr1   r2   r3   r-   r    r&   r'   r   rn   r   z>'w-sun' is deprecated and will be removed in a future version.r   zw-sunru   )rh   rh   rh   r   z1/2/2005z1/9/2005rH   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005zW-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrk   z1/7/2005r   r   )rk   r   r2   r   ru   rk   r   r8   )r   r   rJ   r   r!   r"   r#   r%   rS   r   r	   r{   r   r    	dayofweekrP   ro   rn   )rU   rV   rW   r   r_   s        r)   test_resample_basic_from_dailyr   J  sg   
tQ"q"(=Cggdm  	ryy$$Q'..s3x8#>A KC		#	#N#	> ,G$))+, v;!LL""i/44666;;q>Qz]***;;q>Qz]***;;q>QVVBZ'''ZZ %%'Fv;!LL""q!f,11333;;q>Qz]***;;q>Q{^+++ZZ %%'Fv;!LL""q!f,11333;;q>Qz]***;;q>Q{^+++ZZ %%'Fv;!LL""q!f,11333;;q>Qz]***;;q>Q{^+++ZZ %%'Fv;!LL""q!f,11333;;q>Qz]***;;q>Q{^+++ZZ %%'Fv;!LL""q!f,11333;;q>Qz]***;;q>Q{^+++ ZZ_!!#Fv;!LL""&;;@@BBB;;q>Qz]***;;q>Qz]***;;q>Qz]***<<'''_, ,s    R((R2c                 z   t        ddd      j                  |       }t        d|      }|j                  d      j	                         }|j
                  d   |d   k(  sJ t        t        j                  dd	      t        dd	      D cg c]  }t        d
d|dd       c}      }|j
                  j                  |       |_        t        t        j                  dd	      t        ddd      j                  |             }|j                  d      j                         }t        j                  |t        d|j
                               |j                  d      j                         }|j                  d      j	                         }t        j                  ||       t        j                  ||       y c c}w )Nz01-Jan-2014z05-Jan-2014r-   r   r2   r   r         ?rh   i  r   19750101r8   r   )r   rJ   r   r{   r;   r    r!   r   rz   r   countrS   rT   r:   )	rU   datesr   r_   irW   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7H-7H- "Ts   	F8
r[   r9   c           	      b   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }|j                  j                  |      |_	        t        d
      }|j                  |      }|j                  | d d       y )Nr   2   rk   ABCDr   
2000-01-01r  r   r   rc   r    r   r   Tr@   )r
   r!   r"   r#   r$   r   listobjectr   r    rJ   r   rL   rN   )r[   rU   rd   rX   rY   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           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }|j                  j                  |      |_	        |j                  |       j                         }t        j                  |d
   |d
   j                  |       j                                y )Nr   r  r  r   r  r  r   r   r  r   )r
   r!   r"   r#   r$   r   r	  r
  r   r    rJ   r{   r;   rS   rT   )r   rU   rd   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                    t        t        ddd      t        ddd      dd      j                  |       }t        t        j
                  j                  d      j                  t        |            |      }|j                  d      j                         }t        |      d	k(  sJ |j                  d
   |j                  d
   k(  sJ |j                  d   |j                  d   k(  sJ |j                  j                  dk(  sJ y )Nr1   r2   r3   r-   r    r   r   r4   i2  r   rH   )r   r   rJ   r   r!   r"   r#   r%   r{   ffillro   r    rn   )rU   rV   rW   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                    t        ddgt        d      t        d      g      }|j                  j                  |       |_        t        dt        j
                  t        j
                  t        j
                  t        j
                  t        j
                  dgt        t        d      t        d      t        d      t        d	      t        d
      t        d      t        d      gd            }|j                  j                  |       |_        t        j                  |j                  d      j                         |       y )Nri      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    rJ   r!   r   r   rS   rT   r{   r;   )rU   rW   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           
      n   t        ddd      j                  |       }t        dt        g d|      i      }t        ddd      j                  |       }t        dt        t	        t        |            |      id	
      }|j                  d      j                         }t        j                  ||       y )N2015010120150331BMEr&   r'   r   r   )r   )   ?   r   r   r5   r   )
r   rJ   r
   r   rz   r%   r{   r   rS   r   )rU   r    r|   rd   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                 j   t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  d      j                  d      }|j                  |j                  dd	      }t        j                  ||       y )
Nrj   ru   rI   r   r   r=   limitr  methodr   )r   rJ   r   r!   r"   r#   r$   r%   r{   r  reindexr    rS   rT   rU   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68,r+   )1D10hr   r  rule)r  3ME15D30h15Min30sc                 l   t        dd||       j                  |      }t        t        j                  j                  d      j                  t        |            |      }|j                  |      j                  d      }|j                  |j                  dd      }t        j                  ||       y )Nrj   ru   )rm   r   tzr   r  nearestr!  )r   rJ   r   r!   r"   r#   r$   r%   r{   r0  r#  r    rS   rT   )tz_aware_fixturer   r(  rU   r(   r   r_   r|   s           r)    test_nearest_upsample_with_limitr2    s     Z:J
K
S
SC 
		%%a(88SBC	HB[[&&Q&/Fzz&,,yzBH68,r+   c                    t        t        ddd      t        ddd      d      }t        t        t	        |            |      }d|j
                  _        |j
                  j                  |       |_        t        t        d            }|j                  |      j                  d	       }|j                  d
      j                         }t	        |      t	        |      k(  sJ t	        |j                        dk(  sJ |j                  d   }|d   |j                  d   k(  sJ |d   |dd j!                         k(  sJ |d   |dd j#                         k(  sJ |d   |j                  d   k(  sJ |j                  d   }|d   |j                  d   k(  sJ |d   |d d j!                         k(  sJ |d   |d d j#                         k(  sJ |d   |j                  d   k(  sJ y )Nr1   r2   r   r4   r   r   r    r8   c                      | j                   d   S r   r   r   s    r)   rq   z$test_resample_ohlc.<locals>.<lambda>  s    affRj r+   r   rk   r   ir   rH   r   r   r   )r   r   r   rz   r%   r    rn   rJ   r   r   rL   rR   r{   rM   rc   ro   r>   r=   )rU   r    rW   r   r^   r_   xss          r)   test_resample_ohlcr7    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                    t        ddd      j                  |       }|j                  t        ddd      j                  |             }t        t	        t        |            |      }|j                  d d j                  d      j                         }t        |t              sJ |j                  d d	 j                  d      j                         }t        |t              sJ y )
N1-1-2000	2-15-2000hr   	4-15-2000	5-15-2000r   30minz	4-14-2000)r   rJ   unionr   rz   r%   locr{   rM   
isinstancer
   )rU   r    rW   r   rX   s        r)   test_resample_ohlc_resultrB  *  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                    t        dd      j                  |       }|j                  t        d      t        d      t        d      t        d      g      }t	        t        j                  t        |            |      }|j                  d      j                         }|j                  t        |d	   |d
   d      j                  |             }t        j                  ||       y )Nz
2013-12-30z
2014-01-07r   z
2013-12-31z
2014-01-04z
2014-01-05)r   r    r   r   rH   r   r   )r   rJ   dropr   r
   r!   r   r%   r{   r;   r#  rS   r   )rU   r(   r    rd   r_   r|   s         r)   $test_resample_ohlc_result_odd_periodrE  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                    t        t        dd       dt        dd       dt        dd       dit        dd       dt        dd       dt        dd       d	id
      j                  ddgd      }|j                  j	                  |       |_        d|j
                  _        |j                  d      j                         }t        j                  |d   j                  d      j                         |d   j                  d      j                         gd|j
                        }|j
                  j                  d   dk(  sJ t        j                  ||       ddgddgg|_        |j                  d      j                         }t        j                  j                  g d      |_        t        j                  ||       y )Nz2011-01-06 10:59:05r/  ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMErI  rH  r2   )axisColsr;  )rJ  keysr   r   rX   cr   ))r   rM  r   )r   rM  r   )r   rM  r   )r   rM  r   )rX   r   r   )rX   r   r   )rX   r   r   )rX   r   r   )r
   r   r#  r    rJ   rc   rn   r{   rM   r   concatnamesrS   r   
MultiIndexfrom_tuples)rU   rd   resexps       r)   test_resample_ohlc_dataframerT  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)))#s#*sCj)BJ
++c



!C--++		
CK #s#r+   c                 J   t        t        ddd      t        ddd      d      j                  |       }t        t        j
                  j                  d      j                  t        |            |      }|j                  ddd	      j                         }|j                  d
      j                         }t        |      dk(  sJ t        |j                  j                  t        j                        sJ |j                  j                  t        j                  d      k(  sJ y )Nr1   r2   r3   r-   r  r   r   rC   ry   8h   r   )r   r   rJ   r   r!   r"   r#   r%   r{   r;   rA  r    r   r   
DateOffsetHour)rU   rV   rW   bsr_   s        r)   test_resample_reresampler[  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                 :    | dd      }|j                   j                  |      |_         |j                  |      j                         j	                         }|j                  |      j                         }t        di ||_         t        j                  ||       y )Nz1/1/1990rj   r.   )r    rJ   r{   r;   	to_periodr   rS   rT   )r/   r   expected_kwargsrU   r   r_   r|   s          r)   !test_resample_timestamp_to_periodrb    s|     
"*j	9Bxx%BH[[##%//1F{{4 %%'H!4O4HN68,r+   c                    d }t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  dd	d	
      j                         }|j                  d   |j                  d   k(  j                         sJ  ||dd       }|j                  d   |k(  j                         sJ  ||dd        }|j                  d   |k(  j                         sJ y )Nc                     t        |       j                         r$t        j                  t        j                  d      S | j
                  d   | j                         | j                         | j
                  d   gS r   r   r   s    r)   r   ztest_ohlc_5min.<locals>._ohlc  r   r+   rw   z1/1/2000 5:59:50r  r   r   r   rI   rC   ry   z1/1/2000 00:00r   r2      rt   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rJ   r   r!   r"   r#   r$   r%   r{   rM   r@  ro   rP   )rU   r   r(   r   	resampledrS  s         r)   test_ohlc_5minrg    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
%&'
(CMM,-499;;;r+   c                 *   t        dd      j                  |       }|j                  d      j                  }t	        t
        j                  j                  d      j                  t        |            |      }|j                  d      j                         }|j                  d       j                         }t        |      dk(  sJ t        j                  |j                  d   |d	          t        j                  |j                  d	   |d          y )
Nrj   	2/29/2000r8   r   r   r   c                     | j                   S r   )monthr   s    r)   rq   z,test_downsample_non_unique.<locals>.<lambda>  s
    AGG r+   r   r2   )r   rJ   r   r   r   r!   r"   r#   r$   r%   r{   r;   rL   rS   assert_almost_equalro   )rU   r(   rng2r   r_   r|   s         r)   test_downsample_non_uniquern    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   t        dd      j                  |       }|j                  d      j                  }t	        t
        j                  j                  d      j                  t        |            |      }d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nrj   ri  r   r   z/cannot reindex on an axis with duplicate labelsr   r   )r   rJ   r   r   r   r!   r"   r#   r$   r%   r   r   r   asfreq)rU   r(   rm  r   r   s        r)   test_asfreq_non_uniquerq    s    
Z
-
5
5d
;C::a=D			%%a(88TC4	PB
;C	z	- 
		#  s   B11B:)r=   rI   15minr>  4h12hc                    t        ddd      j                  |      }t        t        j                  j                  d      j                  t        |            |      }t        j                  |d d |dd  j                  | dd      j                         }|j                  | dd      j                         }t        j                  ||       y )	Nz1/1/2000 04:00:00Q rW   r   r   r   rr   ry   r   rJ   r   r!   r"   r#   r$   r%   r   r{   r;   rS   rT   )r   rU   r(   r   r_   r|   s         r)   test_resample_anchored_ticksrx    s     (%c
B
J
J4
PC			%%a(88SB#	NBVVBrFV__T&_?DDFF{{4f{=BBDH68,r+   r'   r2   r   c                 r   d }t        dd|  dd      j                  |      }t        t        j                  j                  d      j                  t        |            |      }t        j                  |j                  d	      j                         |j                  d	      j                  |             y )
Nc                 "    | j                         S r   )r:   r   s    r)   rq   z,test_resample_single_group.<locals>.<lambda>  s    aeeg r+   z2000-1-1z2000-z-10r-   r   r   r   r   )r   rJ   r   r!   r"   r#   r$   r%   rS   rT   r{   r:   r   )r'   rU   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                 \   t        ddgt        d      t        d      g      }|j                  j                  |       |_        t        dgt	        t        d      gd	      j                  |             }|j                  d      j                  d
       }t        j                  ||       y )Ng>@g?@z20070915 15:30:00z20070915 15:40:00r   g      ?20070915r-   r   c                 ,    t        j                  |       S r   )r!   stdr   s    r)   rq   z0test_resample_single_group_std.<locals>.<lambda>  s    RVVAY r+   )	r   r   r    rJ   r   r{   r   rS   rT   )rU   rW   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68,r+   c                 ~   t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  dd	      j                         }t        d
dd      j                  |       }t        j                  |j                  |       y )Nrw   z1/1/2000 02:00rW   r   r   r   rI   2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rJ   r   r!   r"   r#   r$   r%   r{   r;   rS   assert_index_equalr    )rU   r(   r   rf  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                 |   t        ddd      j                  |      }t        t        j                  j                  d      j                  t        |            |      }t        ddd	      j                  |      } |j                  d
i | j                         }t        j                  |j                  |       y )N2000-01-01 00:00:002000-01-01 02:00rW   r   r   r   r  2000-01-01 01:57rI   r   r  )r  rU   r(   r   r  rf  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                 T   t        ddd      j                  |      }t        t        j                  j                  d      j                  t        |            |      }d|  d}t        j                  t        |	      5  |j                  d
|        d d d        y # 1 sw Y   y xY w)Nr  r  rW   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   rI   r  r   rJ   r   r!   r"   r#   r$   r%   r   r   r   r{   )r  rU   r(   r   r   s        r)   test_resample_bad_originr    s     *,>S
I
Q
QRV
WC			%%a(88SB#	NB	8:	 
 
z	- +
F6*+ + +   BB'12dayysc                 T   t        ddd      j                  |      }t        t        j                  j                  d      j                  t        |            |      }d|  d}t        j                  t        |	      5  |j                  d
|        d d d        y # 1 sw Y   y xY w)Nr  r  rW   r   r   r   z6'offset' should be a Timedelta convertible type. Got 'r  r   rI   r  r  )r  rU   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                 @   d\  }}t        ||d      j                  |       }t        t        j                  j                  d      j                  t        |            |      }t        ddd      j                  |       }|j                  d      j                         }t        j                  |j                  |       |j                  dd	
      j                         }t        j                  |j                  |       t        ddd      j                  |       }|j                  dd
      j                         }t        j                  |j                  |       |j                  dd      j                         }t        j                  |j                  |       |j                  dd	d      j                         }t        j                  |j                  |       t        ddd      j                  |       }|j                  dd
      j                         }t        j                  |j                  |       t        ddd      j                  |       }|j                  dd
      j                         }t        j                  |j                  |       y )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  )rU   r&   r'   r(   r   r  rf  s          r)   test_resample_origin_prime_freqr  (  s   =JE3
UCf
-
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                    d}d}t        ddd|      j                  |       }t        t        j                  j                  d      j                  t        |            |      }t        d	d
d|      j                  |       }|j                  dd      j                         }t        j                  |j                  |       |j                  dd      j                         }t        j                  |j                  |       |j                  ddd      j                         }t        j                  |j                  |       t        j                  t        |      5  |j                  dd      j                          d d d        t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }t        j                  t        |      5  |j                  dd      j                          d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz4The origin must have the same timezone as the index.Europe/Parisr  r  rW   r   r/  r   r   r  r  rI   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   rJ   r   r!   r"   r#   r$   r%   r{   r;   rS   r  r    r   r   r   )rU   r   r/  r(   r   r  rf  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	- A
F#89>>@A *,>S
I
Q
QRV
WC			%%a(88SB#	NB	z	- G
F#>?DDFG GA AG Gs   ""H1"H=1H:=Ic                    d\  }}t        ||d      j                  |       }t        j                  j	                  d      j                  t        |            }t        ||      }|j                  d      j                         }|j                  dd	      j                         }t        j                  ||d
       |j                  d       }|j                  d      j                         }	|j                  dd	      j                         }
t        j                  ||	j                  |j                        d
       t        j                  ||
j                  |j                        d
       d\  }}t        ||d      j                  |       }t        ||      }|j                  d      j                         }|j                  dd	      j                         }t        j                  |j                  d       |j                  d              t        j                  |j                  d       |j                  d              y )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   rJ   r!   r"   r#   r$   r%   r   r{   r;   rS   rT   tz_localizer/  )rU   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   GJE3
UCf
-
5
5d
;CII))!,<<SXFM-s+D}}S!&&(H}}U7}388:H8X%@ %H  %**,H  w 7<<>H8X%9%9#&&%AeT8X%9%9#&&%AeT HJE3
UCf
-
5
5d
;C-s+D}}S!&&(H}}U7}388:H8//5x7K7KD7QR8//5x7K7KD7QRr+   c                     dd}d fd	}t        d      }t        d      }t        ||d	      j                         }t        t	        j
                  t        |            |
      } |ddgddg      }ddd|d fD ]f  }|dk7  rt        nd }	t        j                  |	|      5  |j                  d|      j                         }
d d d        t        j                  
|       h t        d      }t        d      }t        ||d	      j                         }t        t	        j
                  t        |            |
      }dg} |dg|      }t        j                  t        |      5  |j                  ddd      j                         }
d d d        t        j                  
|       ddg} |ddg|d	      }|j                  ddd      j                         }
t        j                  |
|       dg} |dg|      }t        j                  t        |      5  |j                  ddd      j                         }
d d d        t        j                  |
|       dg} |dg|      }t        j                  t        |      5  |j                  ddd      j                         }
d d d        t        j                  |
|       dg} |dg|      }t        j                  t        |      5  |j                  ddd      j                         }
d d d        t        j                  |
|       y # 1 sw Y   pxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   SxY w)NAmerica/Chicagoz2The '(origin|offset)' keyword does not take effectr-   c                     t        | t        |D cg c]  }t        |       c}|d      j                              S c c}w )NrG  T)r   	ambiguousr   )r   r   r   rJ   )r   
timestampsr   tr/  rU   s       r)   _create_serieszAtest_resample_origin_with_day_freq_on_dst.<locals>._create_series  sC    .891$9PTgdm	
 	
 :s   A
2013-11-02rG  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   rJ   r   r!   onesr%   RuntimeWarningrS   r   r{   r:   rT   )rU   r   r  r&   r'   r(   r   r|   r  warnr_   expected_tsr/  s   `           @r)   )test_resample_origin_with_day_freq_on_dstr    s8   	B
>C
 lr*E
&2
.C
UCd
+
3
3D
9C	C!	-BtTl\<,HIHG[%> 1!';!6~D''C8 	;[[V[488:F	;
vx0	1 lr*E
&2
.C
UCd
+
3
3D
9C	C!	-B ,,Ktfk2H		#	#N#	> FS?CCEF68,+-EFKtSk;UCH[[wu[=AACF68, ,,Ktfk2H		#	#N#	> ES>BBDE68,+,Ktfk2H		#	#N#	> FS?CCEF68,+,Ktfk2H		#	#N#	> ES>BBDE68,O	; 	;F FE EF FE Es<   )"L93#M%#M#M 7#M,9M	MM M),M5c            	          t        dt        dddd            } t        t        |       gt        | j                  d   gd	      
      }| j                  d      j                         }t        j                  ||       y )Nr2   z
2024-04-19z
2024-04-20zAfrica/Cairorr  r/  r   r   7Dr   r   )	r   r   r%   r   r    r{   r:   rS   rT   )r   r|   r_   s      r)   +test_resample_dst_midnight_last_nonexistentr    si    		<.wO
B
 s2wi}bhhqk]'NOH[[""$F68,r+   c                    t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }t        j                  |d d |dd  j                  ddd	      j                         }|j                  ddd	      j                         }t        j                  ||       y )
Nz1/1/2000 0:00:00'  r=   r   r   r   r-   rr   ry   rw  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68,r+   c                 t   t        dd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  d      j                         j                         }t        ddd	      }t        j                  |j                  |       y )
Nrj   z
12/31/2000r   r   r   zJan-2000zDec-2000r^  r   )r   rJ   r   r!   r"   r#   r$   r%   r{   r;   r`  r   rS   r  r    )rU   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                  x   t        t        j                  j                  d      j	                  ddd      t        ddd      d	      } | j                         j                  d
      j                         j                         }| j                  d
      j                  d       }t        j                  ||       y )Nr   r   r8   r  z
2012-01-01r;  r   rb   r6   r-   c                 "    | j                         S r   r;   r   s    r)   rq   z&test_period_with_agg.<locals>.<lambda>  s    AFFH r+   )r   r!   r"   r#   integersr   to_timestampr{   r;   r`  rR   rS   rT   )s2r|   r_   s      r)   test_period_with_aggr    s    	
		a ))!Q3<c2>
B  ))#.335??AH[[!!"45F68,r+   c                    dt        ddddd      ddfdt        ddddd      ddfdt        ddddd	      ddfdt        dddddd
      ddfg}t        j                  |d      j                  d      }|j                  j                  |       |_        |j                  d      j                  d      j                         }|j                  d      j                  d       }t        j                  ||       y )Nr2   i  r3   r      r   r         re  )ID	timestampr   r   rc   r  r  rI   c                 @    | j                  d      j                         S )NrI   )r{   r:   r   s    r)   rq   z(test_resample_segfault.<locals>.<lambda>	  s    

60B0F0F0H r+   )r   r
   from_records	set_indexr    rJ   rL   r{   r:   r   rS   r   )rU   all_wins_and_wagersrd   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                    t        t        ddd      j                  |       g dt        g dd      d	      j	                  d
      }|j                  d      j                         }|j                  j                  t        j                  k(  sJ |j                  d      j                  d      j                         }|j                  j                  t        j                  k(  sJ y )Nz
2016-01-01rk   Wr   )r2   r2   r   r   )r8   rh   r   r   int32r   )dater   valr  r&  r   )r
   r   rJ   r   r  r{   r  r  r7   r!   r  rL   rU   rd   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                 "   t        j                  d       dg di}t        |t        dd      j	                  |             }|j                  d      j                  d      j                         d   j                  d	      }|j                  d      d   j                         j                  d	      }t        j                  ||       |j                  d      j                         d   j                  d	      }t        j                  ||       y )
Nzscipy.interpolater   )r2   ru   r2   rk   z
2017-01-01z
2017-01-04r   rb   r;  cubic)r   importorskipr
   r   rJ   astyper{   r;   interpolaterS   rT   )rU   rd   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68,[[""$S)55g>F68,r+   c                 j   t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  d      j                         }|j                  d      j                         }t        j                  ||       y )	Nrj   r   r  r   r   r   r  zW-SUN)r   rJ   r   r!   r"   r#   r$   r%   r{   r;   rS   rT   )rU   r(   r   rf  r|   s        r)   test_weekly_resample_bugletr  0  s    
Zc2
6
>
>t
DC			%%a(88SB#	NBC %%'I{{7#((*H9h/r+   c                     t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  d       y )N4/16/2012 20:00i  r;  r   r   r   r   )	r   rJ   r   r!   r"   r#   r$   r%   r{   )rU   r   r   s      r)   test_monthly_resample_errorr  :  sR    ($SAII$OE			%%a(88UDE	RBKKr+   c                     d} d}t        t        j                  |       dd      }t        t	        t        |            |      }|j                  t        j                  j                  j                  d            }|j                  d      }t        t        j                  |      dd      }t        t	        t        |            |t        	      }t        j                  ||       y )
Nl   *dG@l   *dG@r3   100nsr   r   d   r;   r6   )r   r   r   r   rz   r%   r{   tseriesr   NanorR   floatrS   rT   )r&   	exp_startindxr   re   r_   exp_indxrS  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63'r+   c                 @   t        ddd      j                  |       }t        |j                  |      }|j	                  d      j                         }|j	                  d      j                         j                         }|j                  d      }|xj                  t        d	d
      t        d	d      z
  z  c_        |j                  j                  |       j                  d      |_        |j                  j                  dk(  sJ t        j                  ||       |j	                  dd      j                         }|j                  d	d      j	                  d      j                         j                         }|j                  d      }|j                  t        d	d
      z   t        d	d      z
  |_        |j                  j                  |       j                  d      |_        |j                  j                  dk(  sJ t        j                  ||       y )N1/1/20124/1/2012100minr   r   r   r'   howr2   usrU   r-   inferrr   rE   )r   rJ   r
   rk  r{   r;   r`  r  r    r   
_with_freqr   rS   r   shift)rU   r(   rd   r_   r|   rS  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                    t        ddd      j                  |       }t        |j                  |      }|j	                  d      j                         }|j	                  d      j                         j                         }|j                  d      }|xj                  t        d	d
      t        d	d      z
  z  c_        d|j                  j                  _        t        j                  |j                  _        |j                  j                  |       |_        t        j                   ||       |j	                  dd      j                         }|j#                  d	d      j	                  d      j                         }|j                         }|j                  d      }|xj                  t        d	d
      t        d	d      z
  z  c_        d|j                  j                  _        t        j                  |j                  _        |j                  j                  |       |_        t        j                   ||       y )Nr  r	  r
  r   r   QEr'   r  r2   r  r  r-   rr   r  )r   rJ   r
   rk  r{   r;   r`  r  r    r   _datar   r   
no_default_freqrS   r   r  )rU   r(   rd   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                      | ddd      }|j                   j                  |      |_         |j                  d      j                         }t	        |      dk(  sJ y )Nz2012-04-29 23:00z2012-04-30 5:00r;  r   r   r2   )r    rJ   r{   r;   r%   )r/   rU   r   rf  s       r)    test_resample_anchored_intraday3r    sQ    	!"46Gc	RBxx%BHD!&&(Iy>Qr+   )MSBMSzQS-MARzYS-DECzYS-JUNc                      | dd      }|j                   j                  |      |_         |j                  |      j                          y )Nrj   z
12/31/2002)r    rJ   r{   r;   )r/   r   rU   r   s       r)   !test_resample_anchored_monthstartr    s9    	!*l	;Bxx%BHKKr+   z
label, sec       @z4.2c                 T   t        ddd      }t        ddd      }|j                  |      }t        t        j                  j                  d      j                  d      |	      }|j                  d| 
      j                         }|j                  d   t        d| d      k(  sJ y )Nz2014-10-14 23:06:23.206ru   400msr   z2014-10-15 23:00:00r   2200msr8   r   )rF   rH   z2014-10-15 23:00:00)r   r?  r   r!   r"   r#   r$   r{   r;   r    r   )rF   secindex1index2r    rW   r_   s          r)   test_resample_anchored_multidayr(    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                    t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  ddd	
      j                         }t        ddd      j                  |       }t        j                  |j                  |       y )Nrj   r   r=   r   r   r   rI   rC   rr   ry   z1999-12-31 23:55rk   r  )rU   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                     | ddd      }|j                   j                  |      |_         |j                  d      j                         j	                         }t        |      dk(  sJ |j                   d   t        dd	      k(  sJ y )
Nz
2000-04-28z2000-04-30 11:00r;  r   r   r2   r   z2000-04r^  )r    rJ   r{   r;   r`  r%   r   )r/   rU   r   r_   s       r)   test_corner_cases_dater-    sv    	!,0B	MBxx%BH[[##%//1Fv;!<<?fYS9999r+   c                 d   t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }d}t        j                  t        |      5  |j                  d	      j                          d d d        y # 1 sw Y   y xY w)
Nr  iP  rW   r   r   r   r   r   r   )r   rJ   r   r!   r"   r#   r$   r%   rS   r   r	   r{   r;   )rU   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   = B&&B/c                 *   t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  d      j                  dd	g      }t        |t              sJ y )
N
2012-06-12rk   r;  r   r   r   20minr;   r:   )r   rJ   r   r!   r"   r#   r$   r%   r{   	aggregaterA  r
   )rU   r(   r   r_   s       r)   test_upsample_apply_functionsr4    sr    
\13
7
?
?
EC			%%a(88SB#	NB[[!++VUO<Ffi(((r+   c                    t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  t        j                  j                  d      j                  t        |                  }|j                  d      j                         }|j                         j                  d      j                         }t        j                  ||       y )Nr1     r;  r   r   r   r-   )r   rJ   r   r!   r"   r#   r$   r%   takepermutationr{   r:   
sort_indexrS   rT   )rU   r(   r   r_   rS  s        r)   test_resample_not_monotonicr:    s    
\3S
9
A
A$
GC			%%a(88SB#	NB	&&q)55c"g>	?B[[!!#F
--/
"
"3
'
+
+
-C63'r+   r7   )r5   r  rb   float32c                    t        t        dddddd      t        dddddd      g      j                  |      }t        ddg||       }|j	                  d      j                  d       }|j                  d      }t        j                  ||       |j	                  d      j                         }|j                  d      }t        j                  ||       y )	N  r2   r   r8   r   r6   r=   c                 "    | j                         S r   r  r   s    r)   rq   z/test_resample_median_bug_1688.<locals>.<lambda>       r+   )
r   r   rJ   r
   r{   r   rp  rS   r   median)r7   rU   rV   rd   r_   rS  s         r)   test_resample_median_bug_1688rA    s     	$1aA	&q!Q1(EFgdm  
	
A
B [[%%&89F
))E
C&#&[[&&(F
))E
C&#&r+   c                     | dd      }|j                   j                  |      |_         |j                  d      j                  d       }|j                  d      j	                         }t        j                  ||       |j                  d      j	                         }d|_        |j                  d      j                         }d|_        |j                  d      j                  d d g      }ddg|_	        t        j                  |d   |       t        j                  |d   |       |j                  d      j                  d	 d
 d      }t        j                  |d   |d       t        j                  |d   |d       y )Nrj   z4/1/2000r   c                 "    | j                         S r   r  r   s    r)   rq   z+test_how_lambda_functions.<locals>.<lambda>  s    qvvx r+   foobarc                 "    | j                         S r   r  r   s    r)   rq   z+test_how_lambda_functions.<locals>.<lambda>  r?  r+   c                 &    | j                  d      S Nr2   )ddofr  r   s    r)   rq   z+test_how_lambda_functions.<locals>.<lambda>  s    AEEqEM r+   c                 "    | j                         S r   r  r   s    r)   rq   z+test_how_lambda_functions.<locals>.<lambda>  s    !&&( r+   c                 &    | j                  d      S rH  rJ  r   s    r)   rq   z+test_how_lambda_functions.<locals>.<lambda>  s    QUUU] r+   )rD  rE  F)check_names)r    rJ   r{   r   r;   rS   rT   rn   r  rc   r3  )r/   rU   r   r_   rS  foo_expbar_exps          r)   test_how_lambda_functionsrP    sF   	!*j	9Bxx%BH[[$$%78F
++d

 
 
"C63'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                     t        dddd      }t        dddd      }t        ||d	
      j                  |       }t        ddi|      }|j	                  d      j                          y )Ni  ru   r2   r8   r=  r   re  rk   r>  r   r   r   YS)r   r   rJ   r
   r{   r:   )rU   r&   r'   bad_indrd   s        r)   test_resample_unequal_timesrT    sb    T1a#E
4B
"C'2::4@G	GQ<w	/B KKr+   c                    t        ddd      j                  |       }t        t        j                  d      |      }t        j
                  |j                  d<   t        |d   |d	   d
      j                  |       }|j                  |d      }|j                  |dd      }t        j                  t              5  |j                  |dd      }d d d        |j                  d      j                  d      }|j                  d      j                         }t        j                  ||       t        j                  ||       t        j                  |       y # 1 sw Y   xY w)Nz
2002-02-02rk   r>  r         @r   r   r   rH   10minr   bfill)r    r"  )r    r"  r   r!  10Minr  )r   rJ   r   r!   r   r   ro   r#  rS   r   r	   reindex_liker{   rX  rT   )	rU   i30rW   i10s10s10_2rlr10_2r10s	            r)   test_resample_consistencyrb    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:JJw%%A%.E
**W

#
#
%C 5#&5%(5"%: :s   >EE'  r3   r   ru   ri   r8   r   r   r  dates1rk   dates2r   c                 v   t        |       j                  |      } t        | t        j                  t        |             d      }|j                  d      j                  d      j                         }t        g ddd      j                  |      }t        dg di|      }|d   j                         j                         r |j                  j                  d       |_        t        j                  ||       |j                  t!        dd	            j                         }t        j                  ||       y )
Nr   r   r   z
2014-07-31z
2014-08-31z
2014-09-30z
2014-10-31z
2014-11-30r   rn   r   r2   r   r   r   r2   r   r   keyr   rJ   r
   r!   r   r%   r  r{   r   r   anyr    r  rS   r   rL   r   r   rU   rd   r_   exp_idxr|   s         r)   test_resample_timegrouperrp  >  s     % ((.E	RYYs5z%:;	<B\\#''-335FN gdm	 
 #/w?H	#w||~!2248&(+ZZTs34::<F&(+r+   c           	         t        |       j                  |      } t        | t        j                  t        |             t        j                  t        |             d      }|j                  d      j                  d      j                         }t        g ddd      j                  |      }t        g dg dd|dd	g
      }|d   j                         j                         r |j                  j                  d       |_        t        j                  ||       |j                  t!        dd            j                         }t        j                  ||       y )N)r   r   Cr   r   rg  rh  ri  )r   rr  r   rr  r   rj  rl  rn  s         r)   test_resample_timegrouper2rs  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                    t        t        d      dt        d      dit        d      dt        d      did      }|j                  j                  |       |_        |j	                  d      }|j                  t        d	            }|j                  t        d	            j                  j                  d
       }|j                  dk(  sJ ||fD ]2  }|j                  j                         }t        j                  ||       4 |j                  j	                  d      j                         }t        j                  ||       |j                  j                  t        d	            j                         }t        j                  ||       y )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                 "    | j                         S r   nuniquer   s    r)   rq   z'test_resample_nunique.<locals>.<lambda>|  s    		 r+   r  )r
   r   r    rJ   r{   rL   r   r  r   rn   rz  rS   rT   )rU   rd   re   rY   r|   r  r_   s          r)   test_resample_nuniquer{  k  sJ   	 /0,/0,
 /0,/0,		

B xx%BH
CA


7$%Azz's+,//556KLH==D   V 1
vx01 UU^^C ((*F68,UU]]7,-557F68,r+   c           	      6   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      j                         }|j                  j                  |       |_
        t        j                  j                  |j                  j!                         gdz  d
dg      |_        |j#                  d      j%                         }t'        j(                  |j                  |j                         y )Nr   )r8   rk   r  r   r  r8   r-   r   r  lev0lev1)rO  r  )r
   r!   r"   r#   r$   r   r	  r
  r   absr    rJ   r   rP  from_arraysrc   r   r{   rz  rS   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                 "    | j                         S r   ry  r   s    r)   rq   rq     s    !))+ r+   c                 @    | j                  t        j                        S r   )rR   r   rz  r   s    r)   rq   rq     s    !%%' r+   c                 $    | j                  d      S )Nrz  )rR   r   s    r)   rq   rq     s    !%%	" r+   )rz  series_nuniquenunique_str)idsc                 X   t        ddd      j                  |      }t        ddd      j                  |      }|j                  |      }t        t	        t        |            |d      }|j                  d	      }|j                         } | |      }t        j                  ||       y )
Nr9  r:  r;  r   r<  r=  r5   r6   r   )
r   rJ   rQ   r   rz   r%   r{   r   rS   rT   )	r  rU   r    r'  index3rW   re   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68,r+   c                    d}d}t         j                  j                  d      }t        d|dz  d      j	                  |       }t        |j                  d||z  |      j                  d      |j                  ||      	      }|j                  d
      j                         }t        |j                  j                         |j                  j                         d
      j	                  |       }|j                  }t        j                  |j                  |j                  d      }	t        j                   ||	f      }
||
   |	|
   }	}t         j"                  d|dd  |d d k7  f   }|t         j"                  d|	dd  |	d d k7  f   z  }t        j$                  |	|   dz
  t'        |            j                  dd      }t        ||	      }t)        j*                  ||       y )Nr  r3   r   z
2015-08-27r=   r   r   r5   r   r>  r  rC   sideTr2   rH   	minlengthFcopy)r!   r"   r#   r   rJ   r   r  r  choicer{   rz  r    r=   r>   r   searchsortedlexsortr_bincountr%   rS   rT   )rU   nkprngdrr   rr   ixvalsbinssortermaskr\   rC   s                 r)   test_resample_group_infor    s    	A
A99  #D	,Re	D	L	LT	RB	aa+227;4;;rSTCU	VB;;w'')D	"((,,.bhhlln7	K	S	S
B 99D??299bhhW=DZZt%FftF|$D55tABx49,,-DBEE$QRD"I--..D
++d4j1nB
8
?
?e
?
TC3b!E4'r+   c                    d}t        d|d      j                  |       }t        t        j                  j                  d      j                  |      t        j                  j                  d      j                  ||            }|j                  d      j                         }t        |j                  j                         |j                  j                         d      j                  |       }t        j                  |j                  |j                  j                  d	
      }t        j                  |t!        |      dz         dd  j#                  dd      }t        ||      }t%        j&                  ||       y )Nr  z
2015-09-19r=   r   r   r   r  r  rC   r  r2   r  r5   Fr  )r   rJ   r   r!   r"   r#   r$   r  r{   sizer    r=   r>   r  r   r  r%   r  rS   rT   )	rU   r  r  r   rr   r  r  r  rC   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3b!E4'r+   c                  `   t        ddgdg      } t        t        j                  | j                  d      j
                  j                  d      j
                  j                  d            }t        d	d
gdg      }t        t        j                  |j                  d      j
                  j                  d      j
                  j                  d      d      }t        ddg|      }|j                  d      j                         }t        ddg|      }t        j                  ||       y )Nid=XitKXr   r  rW   r  UTCzEurope/Madridi 8XiFXr;  r   r8   r   r(  )r
   r   r   r   r   dtr  
tz_convertr{   r:   rS   r   )df1dti1df2dti2rd   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                    t        ddgd      j                  d      j                  |       }t        ddg|      }|j	                  t        d	
            j                         }t        dddd      j                  |       }t        |      }t        dgt        j                  gdz  z   dgz   |      }t        j                  ||       y )Nl   @j$ l   S*~Q$ r  rG  r  r2   r   r   r&  r   z
2016-11-02z
2016-11-24r-   r  r   r   r   )r   r  rJ   r
   rL   r   r   r   r!   r   rS   r   )rU   r    rd   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                 l   t        t        dddd      gd      j                  |       }t        dg|      }t        |j                  j                         d	
      j                  |       }t        dg|      }t        j                  |j                  d	      j                         |       |j                  d      j                          t        j                  |j                  d      j                         t        dgt        t        ddd      gdd      j                  |                    y )Nr=  ri   rk      z
US/EasternrG  r8   r   r-   r   r  r  r2   r  )
r   r   rJ   r
   r    	normalizerS   r   r{   r:   )rU   rV   rd   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           	         t        dddd      j                  |       }t        |j                        }t	        |||d|d      }d	d
dd}|j                  d      }|j                  |      g d   }t	        g dg dg ddt        dddd      j                  |             }t        j                  ||d       |j                  d      }|j                  |      g d   }	t	        g dg dg ddt        dddd      j                  |             }
t        j                  |	|
d       |j                  d      }|j                  |      g d   }t	        g dg dg ddt        dddd      j                  |             }t        j                  ||d        |j                  d!      }|j                  |      g d   }t	        d"d#gd$d%gd#d&gdt        ddd!d      j                  |             }t        j                  ||d'       |d(d) }|j                  d*      }|j                  d	d
dd      g d   }t	        g d+g d,g d-dt        d(d)d*d      j                  |             }t        j                  ||d.       y )/Nz
2013-09-30r  30Minr  r  )r   rX   rM  r5   r6   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   rJ   rz   r  r
   r{   rR   rS   r   )rU   rV   r   rd   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	f6:#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                    t        j                  d      }t        ddd      }t        |j	                  |      dd      j                  |       }t        d|	      j                  d
      j                         }t        dt        j                  gdz  dgz   t        |j	                  |      dd
      j                  |       	      }t        j                  ||       y )NzEurope/Berlinrc  r3      rk   r  r   r8   r   r;        @ru   r   )zoneinfoZoneInfor   r   
astimezonerJ   r   r{   r;   r!   r   rS   rT   )rU   r/  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 68,r+   c                    t        t        g dd      j                  |       g d      }|j                  d      j	                         }t        ddgt        d	d
gdd      j                  |             }t        j                  ||       y )N)z
2017-03-25
2017-03-26z
2017-03-27z
2017-03-28z
2017-03-29Europe/AmsterdamrG  )ri   r   r      r  )r    r   1Wr  *   r  z
2017-04-02r  r  r   )r
   r   rJ   r{   r:   rS   r   )rU   rd   r_   r|   s       r)   !test_downsample_across_dst_weeklyr    s    	R!
 '$-!
B [[""$F	R<(-?c

'$-	H &(+r+   c                 N   t        dddd      j                  |       }t        |t        j                        }|j                  d      j                         }t        t        ddd	d
      j                  |       t        j                        }t        j                  ||       y )Nz
2013-04-01z
2013-05-01zEurope/Londonr;  r  r6   r  z
2013-04-07r8   )r   rm   r/  )	r   rJ   r   r!   rb   r{   r;   rS   rT   )rU   r]   rW   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 68,r+   c                    t        dddd      }t        dddd      }t        ||d      j                  |       }|j                  d      j	                  d	      }t        t        t        |                  }t        ||
      }|j                  t        d            j                         }t        dd      j                  d	d      }t        |d      j                  |       }t        g d|
      }t        j                  ||       y )Ni  ri   ru   r   r8   r  r   r  zAmerica/Havanar   r&  z
2018-11-03rm   T)r  r-   )g      @g      <@g     @F@)r   r   rJ   r  r  r	  rz   r%   r
   rL   r   r;   r   rS   r   )	rU   r&   r'   r    r   	dataframer_   rV   r|   s	            r)   test_downsample_dst_at_midnightr    s    T2q"%E
4Q
#Cuc-55d;Ee$//0@AEc%j!"D$e,IwD12779F
\1
-
9
9D : C #
&
.
.t
4C*#6H&(+r+   c                 .   t        t        j                  dt        j                  ddg      j                  |       }t	        g d|      }t        g d      j                  |       }t	        g d|      }t        j                  |j                  d      j                         |       t        ddg      j                  |       }t	        d	d
g|      }t        j                  |j                  d      j                         |       t        dg      j                  |       }t	        dg|      }t        j                  |j                  d      j                         |       t        j                  |j                  d      j                         |       y )N1970-01-01 00:00:001970-01-01 00:00:011970-01-01 00:00:02)r   ru   r8   r   ri   r   )r  r  r  )r        @      &@1sr  r  2sr  3s60s)	r   r   NaTrJ   r
   rS   r   r{   r;   )	rU   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           	         t        ddd      t        ddd      g}t        d|i|      }|j                  j                  |       |_        t	        t        ddd      t
        j                  t        ddd      gt        ddd	
      j                  |       d      }|j                  d	      j                         d   }t        j                  ||       |d   j                  d	      j                         }t        j                  ||       y )Ni  r2   r  r   r  r   z
2016-01-15ru   2Dr   )r    rn   )r   r
   r    rJ   r   r   r  r   r{   firstrS   rT   )rU   r   rd   rS  rR  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                 `   t        ddd      }t        t        t        |            |      }d|j                  _        d }|j                  j                  |       |_        d}|j                  d	      j                  ||      }|j                  d	      j                         j                  |      }t        j                  ||       |j                  d	      j                  ||
      }|j                  d	      j                         j                  |      }t        j                  ||       y )Nrw   rx   r4   r   r   r    c                 2    t        j                  |       |z  S r   r!   r;   r   add_args     r)   r[   z3test_resample_apply_with_additional_args.<locals>.f      wwt}w&&r+   r3   r-   )r  )r   r   rz   r%   r    rn   rJ   r{   r   r;   multiplyrS   rT   )rU   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68, __S!'':'>Fs#((*33J?H68,r+   c                  p   d } d}t        dddt        dd            }|j                  d	      j                  d
      j	                  | |      j                  t              }|j                  d	      j                  d
      j                         j                  |      }t        j                  ||       y )Nc                 2    t        j                  |       |z  S r   r   r  s     r)   r[   z4test_resample_apply_with_additional_args2.<locals>.f  r  r+   r3   r2   r   r   2017r  r   r   r-   )r
   r   rL   r{   rR   r  r  r;   r  rS   r   )r[   r  rd   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  )r2   r   ru   zn1, freq1, n2, freq2)
)   rW         ?r4   )<   rW   r2   r4   )i  rW   r2   r;  )r  r4   r2   r;  )i`T  rW   g      ?r-   )rv  rW   r2   r-   )i  rW   r  r-   )i  r4   r2   r-   )r   r;  r  r-   )   r;  r2   r-   c                 >   | |z  }||z  }t        dd|      j                  |      }t        t        t	        |            |      }	|	j                  t        |      |z         j                         }
|	j                  t        |      |z         j                         }|dk(  rft        |j                  j                  t              rBt        t        |j                  j                  j                              |j                  _
        t        j                   |
|       y )Nz
1991-09-05z
1991-09-06r   r   r-   )days)r   rJ   r   rz   r%   r{   r   r;   rA  r    r   r   r   r   r  rS   rT   )n1freq1n2freq2r  rU   n1_n2_rV   serr   r  s               r)    test_resample_equivalent_offsetsr    s    $ q&C
q&C
\<e
<
D
DT
JC
s3x
,Cll3s8e+,113Gll3s8e+,113G|
7==#5#5s; 'ygmm6H6H6J6J'KL7G,r+   z"first,last,freq,exp_first,exp_last))1991090519920406r-   r  19920407)z19910905 00:0019920406 06:00r-   r  r  )19910905 06:00r  r;  r  z19920406 07:00)19910906r  r   1991083119920430)r  r   r   r  19920531)z1991-08z1992-04r   r  r!  c                    t        |       } | j                  | j                        j                  |      } t        |      }|j                  |j                        j                  |      }t	        |      }t	        |      }t
        j                  j                  j                  |      }t        | ||d      }||f}||k(  sJ y )Nnsr  )
r   r  r   rJ   r   r   r   frequenciesr   r   )r  r   r   	exp_firstexp_lastrU   r_   r|   s           r)   test_get_timestamp_range_edgesr'  ?  s     5MEuzz*2248E$<DTYY'//5D)$I"H::!!++D1D'tTEF8$HXr+   
duplicatesTFc           	         t        ddd      j                  |      }t        t        d      |      }t	        ||dz   d      }| r	ddg|_        |j                  d	      j                  t        j                        }t	        t        j                  d
dgddgddgddggt        j                        t        g dd      j                  |      |j
                        }t        j                  ||       y )Nz
2012-01-31r   r   r&   r   rm   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   rJ   r   rz   r
   rc   r{   r   r!   r<   rK   r5   r   rS   r   )r(  rU   r    r   rd   r_   r|   s          r)   test_resample_apply_productr-  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)r.  
2020-10-27r-   r  2020-10-27 00:00)
2020-10-25r0  r-   r  z2020-10-26 23:00)r.  r/  r  r-   z2020-03-30 00:00)r.  r0  r  r-   r1  )r2  r0  r  r-   z2020-10-26 00:00r  r   freq_infreq_outr&  c           	         t        dt        | ||d      j                  |            }|j                  |      j	                         }t        dt        | ||d      j                  |            }t        j                  ||       y )Nr   r  r  )r   r   rJ   r{   r  rS   rT   )	r  r   r3  r4  r&  rU   r   r_   r|   s	            r)   #test_resample_calendar_day_with_dstr6  n  s    N 
Zt'6HIQQRVW
B [["((*F5(6HIQQRVWH 68,r+   )r=   r>   r  r   c                 r   t        ddd      j                  |      }t        dt        j                  t        j                  g|      } t        |j                  d      |       d      }t        t        j                  gt        d	gd
      j                  |            }t        j                  ||       y )N2020r   ru   r*  r2   r  r   )	min_countr/  r,  r   r   )
r   rJ   r   r!   r   r   r{   r   rS   rT   )r  rU   r    r  r_   r|   s         r)   +test_resample_aggregate_functions_min_countr:    s     V$:BB4HE
!RVVRVV$e
,C.WS\\$'.;F	\N:BB4HH 68,r+   c           	         t        t        ddd      j                  |      dgg ddz  |       }|j                  |j                  d	k  |j                  d
kD  z  d d f   }|j                  d      j                         }t        dt        j                  dgdgt        ddd      j                  |            }t        j                  ||       y )Nr  z2000-01-03 23rt  r  r   )r   r2   r   r   )r    rc   r   r7   z
2000-01-02z
2000-01-03r-   r2   r   r  )r
   r   rJ   r@  r    r{   r>   r!   r   rS   r   )any_unsigned_int_numpy_dtyperU   rd   r_   r|   s        r)   test_resample_unsigned_intr=    s    	|uMUU
 ]*
B 
L(RXX-DEqH	IB[[!!#F	
BFFA|sKSS
H &(+r+   c                  *   t        dddd      } t        g d|       }|j                  d      j                         }t	        t        j                  g d	      j                  d
      d      }t        g d|      }t        j                  ||       y )Nz
0300-01-01r  rW   100YE)rU   r   )r2   rk   r   r   r8   r   r2   rk   r   r   r8   r   r2   rk   r   r   r8   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        @rV  r  rA  rV  r  rA  )
r   r   r{   r;   r   r!   rK   r  rS   rT   )r]   r  r_   expected_idxr|   s        r)   test_long_rule_non_nanorC    s    
\<c
HC
DC
PC\\'"'')F 

	
 &
!L  C<XH68,r+   c                      t        g g d      j                  ddi      } | j                  dddd      }|d   j                         }t	        g ddd      }t        g |dd	
      }t        j                  ||       y )N)r   r   r   zdatetime64[ns, Atlantic/Faroe]r  rr   )onrE   rF   r   )r   rn   r7   rb   )r    rn   r7   )r
   r  r{   r:   r   r   rS   rT   )rd   r  r_   rB  r|   s        r)   "test_resample_empty_series_with_tzrF    s    	"+	,	3	3	/0
B 
UtF&	AB\F 
T)IL b89MH68,r+   )2Mr  2Qz2Q-SEPz2q-sep1Yz2Y-MARc                     d|  }t        t        d      t        ddd            }t        j                  t
        |      5  |j                  |       j                          d d d        y # 1 sw Y   y xY wNInvalid frequency: r3   20130101r-   r   r   r   r   rz   r   r   r   r   r{   r;   r   r   rW   s      r)   test_resample_M_Q_Y_raisesrP    _    v
&CuRy
:C LMA	z	-  	

4         A,,A5)2BM1bm1BQz2BQ-MARz2bq=-marc                     d|  }t        t        d      t        ddd            }t        j                  t
        |      5  |j                  |       j                          d d d        y # 1 sw Y   y xY wrK  rN  rO  s      r)   test_resample_BM_BQ_raisesrW    rQ  rR  zfreq,freq_depr,dataz1W-SUNz1w-sunz
2013-01-06r&  1dz
2013-01-011B1b1C1cc           	      `   d|dd   d}t        t        d      t        dddd      	      }t        j                  t
        |
      5  |j                  |      j                         }d d d        t        |d|       }t        d|	      }t        j                  |d       y # 1 sw Y   =xY w)N'r2   z8' is deprecated and will be removed in a future version.r8   rM  r;  r#  )r   rm   rU   r   r   zdatetime64[ns])r   r7   r   r   Fr  )
r   rz   r   rS   r   r	   r{   r;   r   rT   )r   	freq_deprr   r   rW   r_   exp_dtir|   s           r)   &test_resample_depr_lowercase_frequencyra    s     im_T
UCuQxz*3PTUVA		#	#N#	> .I&++-. -=DIGc)H68>. .s    B$$B-c                    t        ddd|       }t        d|i|      }|j                  dd	      }|j                         }t	        t        d
dd      t        d
dd      gd      j                  |       }t        dt        d
dd      t        d
dddd      gi|      j                  d|  d      }t        j                  ||       y )N
2020-01-311minp  r&   r   rm   rU   r   r   r  rC   r    r2   r   r   rk   ru   ;   M8[]
r   r
   r{   r   r   r   rJ   r  rS   r   )rU   rV   rd   groupedr_   r`  r|   s          r)   test_resample_ms_closed_rightrm    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   rr  c                    t        ddd|      }t        d|i|      }|j                  | d      }|j                         }t	        t        d	d
d      t        d	d
d      t        d	dd      t        d	dd      g|       j                  |      }t        dt        d	d
d      t        d	dd      t        d	dd      t        d	dddd      gi|      j                  d| d      }t        j                  ||       y )Nrc  rd  re  rf  r   r   rC   r  rg  r2   r  re  r   ru   rk   r   rh  ri  rj  rk  )r   rU   rV   rd   rl  r_   r`  r|   s           r)   test_resample_c_b_closed_rightro  %  s    <fd
NC	D#;c	*Bkk$wk/G\\^FT1b!T1b!T1a T1a 		
  gdm  q"%q!$q!$q!Q+		
 
 fs4&]  &(+r+   c           
      f   t        ddd|       }t        g d|      }|j                  ddd	      j                         }t	        t        d
dd      t        d
dd      t        d
dd      t        d
dd      gd      j                  |       }t        g d|      }t        j                  ||       y )Nz
2023-09-26rh   rt  )rm   r   rU   )r2   r   ru   rk   r8   rh   r   r   rC   ry   i  r   r           r   )r   g      @g      @g      @)	r   r   r{   r;   r   r   rJ   rS   rT   )rU   rV   r  r_   r`  r|   s         r)   test_resample_b_55282rt  D  s    
\15t
DC
#3
/C\\#gW\=BBDFT1b!T1b!T1b!T1b!		
  gdm  H 68,r+   pyarrowr/  r  z/TODO: Set ARROW_TIMEZONE_DATABASE env var in CI)	conditionreason)marksc                 8   t        t        dd      d      }| |j                  j                  |       }t        t	        j
                  dt        j                        |      }|j                  d      j                         }t        j                  ||       y )N
2020-01-01r8   r  timestamp[ns][pyarrow]r   r   r&  )r   r   r  r  r!   r   rb   r{   r;   rS   rT   )r/  r]   r|   r_   s       r)   test_arrow_timestamp_resampler|  Z  su      L!4<T
UC	~ff  $bii4C@Ht$))+F68,r+   c                      t        t        dd      d      } t        t        j                  dt        j                        |       }d|j
                  _        |j                  d      j                         }t        j                  ||       y )	Nrz  r8   r  r{  r   r   
index_namer&  )r   r   r!   r   rb   r    rn   r{   r;   rS   rT   )r]   r|   r_   s      r)   -test_arrow_timestamp_resample_keep_index_namer  r  sh     L!4<T
UCbii4C@H&HNNt$))+F68,r+   c                      t        t        t        d      ddd            } t        d|       }|j	                  d      j                         }t        d	| d d d	         }t        j                  ||       y )
Nz
1950-01-01r3   1000YSrW   )r&   rm   r   rU   r2   r   2000YSr   )r   r   r   r   r{   r:   rS   rT   )r    r  r_   r|   s       r)   %test_resample_unit_second_large_yearsr  |  si    <0"8RUVE %
 C\\(#'')FauSqSz*H68,r+   1Az2A-MARc                     d| dd   }t        t        d      t        ddd            }t        j                  t
        |      5  |j                  |       j                          d d d        y # 1 sw Y   y xY w)	NrL  r2   r3   rM  r-   r   r   r   rN  rO  s      r)   test_resample_A_raisesr    se    QRz
*CuRy
:C LMA	z	-  	

4     s    A//A8)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_testingrS   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   fixturer/   r`   rf   markparametrizer}   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r%  r2  r7  rB  rE  rT  r[  rb  rg  rn  rq  rx  r|  r  r  r  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r+  r-  r/  r4  r:  rA  rP  rT  rb  rd  r	  __annotations__r  re  dates3rp  rs  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r'  r-  r   r6  r:  r=  rC  rF  rP  rW  ra  rm  ro  rt  
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+   