
    .i                       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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/m0Z0 d dl1m2Z2 ejf                  d        Z4d Z5d Z6ejn                  jq                  ddd fdd fg      d        Z9d Z:d Z;ejn                  jq                  dg d      d        Z<d  Z=d! Z>d" Z?d# Z@d$ ZAd% ZBejn                  jq                  d&g d'      d(        ZCejn                  jq                  d)d*d+g      d,        ZDd- ZEd. ZFd/ ZGd0 ZHejn                  jq                  d)g d1      ejn                  jq                  d2g d3      d4               ZId5 ZJd6 ZKd7 ZLd8 ZMd9 ZNejn                  jq                  d:d;d<d=d>d?gd@d<d=dAd?gd+dBdCdDd?gg      dE        ZOdF ZPdG ZQdH ZRejn                  jq                  d)g dI      dJ        ZSejn                  jq                  dKdLdMg      dN        ZTdO ZUdP ZVejn                  jq                  dQdRdSidR edT      idUdVdWdRdXidYdZig      d[        ZWejn                  jq                  dRd\d]d^d_d` eX       g      da        ZYejn                  jq                  dYd\dbd` eX       g      dc        ZZdd Z[de Z\df Z]dg Z^dh Z_di Z`dj Zadk Zbdl Zcdm Zddn Zedo Zfdp Zgdq Zhdr Zids Zjdt Zkejn                  jq                  d)g du      dv        Zlejn                  jq                  dwddxgddygg      dz        Zmd{ Znd| Zod} Zpd~ Zqd Zrejn                  jq                  dg d      d        Zsd Ztd Zud Zv e dddL       e ddd       e ddd       e ddd       e ddd       e ddd      gZwexe   eyd<   g ewddM ej                  ewdMd ej                  ewdd Z{exe   eyd<   ej                  gewej                  Z|ejn                  jq                  dewe{e|g      d        Z}ejn                  jq                  dewe{e|g      d        Z~d Zd Zejn                  jq                  dd d d gg d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zejn                  jq                  dg d      ejn                  jq                  dg d      d               Zejn                  jq                  dg d      d        Zejn                  jq                  dddg      d        Zejn                  jq                  dg d      dededededef
d       Zejn                  jq                  dg d      d        Zd ZdÄ ZdĄ Zejn                  jq                  d)g dŢ      dƄ        Zejn                  jq                  d)g dǢ      dȄ        Zejn                  jq                  ddddgfdddgfdddgfdddgfg      dԄ        ZdՄ Zejn                  jq                  d)ddg      d)efd؄       Zdل Z ej>                  dګ      ejn                  jq                  dd ej@                  dejn                  jC                   e       xr edݬޫ      ߫      g      d               Z ej>                  dګ      d        Zd Zejn                  jq                  d)ddg      d        Zy)    )datetime)partialN)lib)Day)DatetimeNaTType)is_platform_windows)pa_version_under22p0)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       g/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/resample/test_datetime_index.py_simple_date_range_seriesz;simple_date_range_series.<locals>._simple_date_range_series1   s<    $/bii++A.>>s3xHPSTT    D )r+   s    r*   simple_date_range_seriesr0   +   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_grouperra   8   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 )Nr2   r3   r4   r.   r   r9   rD   rE   r   float64r7   r;   rH   )r   r   r   r   rK   r   r"   r#   r$   r&   rM   rS   columnsr!   )rV   r!   rY   rW   dfrs         r*   test_custom_grouper_dfrg   ]   s    xa+XdAr-BMEVAYwg>A
--
C	
		a ''S27s)
B 	

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

1uyy{EIIKBHHr,   rk   rl   rJ   rm   )openhighlowcloser!   rd   rD   rz   )r   r   r{   r&   r!   ro   rK   r"   r   r   rM   rS   valuestolistr|   rN   rT   assert_frame_equal)rV   r!   rX   r   r   r}   r`   s          r*   test_resample_how_ohlcr      s   *,?eLEuSZ .AAGGLggood#AGQIIaLIaNIaOIbcNI
 			)  '..557QV'JRR
 1H ZZwgZ>CCEF&(+r,   c                 `   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)Nr9   r8   :'d' is deprecated and will be removed in a future version.r   
2014-01-01dr'   rn   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*   rr   z-test_resample_how_callables.<locals>.<lambda>   s    #d1g, r,   r   )r   )r3   )r"   aranger6   rT   assert_produces_warningr
   r   r&   rK   r   r|   applyr   r   )rV   datar   indre   r   r   df_standard	df_lambda
df_partialdf_partial2df_classs               r*   test_resample_how_callablesr      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   r3      r    6s)rl   r   rl   r   z
2014-11-08rl   r   rn   7s)rl   r4   rl   r3   11srj      r   13s   ri   17s   rv   )
r   pdto_datetimer!   rK   r|   r;   r   rT   r   )rV   r   re   r`   r}   s        r*   test_resample_roundingr     s   
B* 
GaS2X&bnnR.@	ABxx%BH[[""$F	,D!<DDTJH &(+[[""$F	- D!<DDTJH &(+[[##%F	2q'E1=EEdKH &(+[[##%F	2q'E1=EEdKH &(+[[##%F	2q'E1=EEdKH &(+r,   c                 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)!Nr2   r3   r4   r.   r!   r'   r(   r   ro   r   z>'w-sun' is deprecated and will be removed in a future version.r   zw-sunrv   )ri   ri   ri   r   z1/2/2005z1/9/2005rI   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005zW-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrl   z1/7/2005r   r   )rl   r   r3   r   rv   rl   r   r9   )r   r   rK   r   r"   r#   r$   r&   rT   r   r
   r|   r   r!   	dayofweekrQ   rp   ro   )rV   rW   rX   r   r`   s        r*   test_resample_basic_from_dailyr   K  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   r3   r    r         ?ri   i  r   19750101r9   r   )r   rK   r   r|   r<   r!   r"   r   r{   r   countrT   rU   r;   )	rV   datesr   r`   irX   r}   result1result2s	            r*   /test_resample_upsampling_picked_but_not_correctr    s]   }m#>FFtLEAU#F__S!&&(F<<?eAh&&& 	
		#quQPQ{!S!(4Ar1"=!S	A ggood#AG
		#qQS9AA$GH
 ZZ_""$F66!8>>#BCjjo!!#Gjjo""$G7H-7H- "Ts   	F8
r\   r:   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   rl   ABCDr   
2000-01-01r  r   r   rd   r!   r   r   TrA   )r   r"   r#   r$   r%   r   listobjectr   r!   rK   r   rM   rO   )r\   rV   re   rY   rZ   s        r*   "test_resample_frame_basic_cy_funcsr    s    	
		a 009d6l&1r<
B
 xx%BHTA


1A !D9r,   r   YEr   c           	         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!   rK   r|   r<   rT   rU   )r   rV   re   r`   s       r*   test_resample_frame_basic_M_Ar    s    	
		a 009d6l&1r<
B
 xx%BH[[##%F6#;3(8(8(>(C(C(EFr,   c                    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 )Nr2   r3   r4   r.   r!   r   r   r5   i2  r   rI   )r   r   rK   r   r"   r#   r$   r&   r|   ffillrp   r!   ro   )rV   rW   rX   r`   s       r*   test_resample_upsampler    s    
tQ"q"(=Cggdm  	ryy$$Q'..s3x8#>A ZZ$$&Fv;%;;q>QVVAY&&&;;r?affRj(((<<'''r,   c                    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 )Nrj      z2015-03-31 21:48:52.672000z2015-03-31 21:49:52.739000r    z2015-03-31 21:48:50z2015-03-31 21:49:00z2015-03-31 21:49:10z2015-03-31 21:49:20z2015-03-31 21:49:30z2015-03-31 21:49:40z2015-03-31 21:49:5010sr   )r   r   r!   rK   r"   r   r   rT   rU   r|   r<   )rV   rX   r}   s      r*   test_resample_how_methodr    s    	R2323
	A ggood#AG	RVVRVVRVVRVVRVVR8/0/0/0/0/0/0/0 
H ^^++D1HN1::e,113X>r,   c           
      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   r6   r   )
r   rK   r   r   r{   r&   r|   r   rT   r   )rV   r!   r}   re   r`   s        r*   test_resample_extra_index_pointr    s    ZZeDLLTRE#vl%@ABHZZcBJJ4PE	Cc%j 1?@	PB[[$$&F&(+r,   c                 j   t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  d      j                  d      }|j                  |j                  dd	      }t        j                  ||       y )
Nrk   rv   rJ   r   r   r>   limitr  methodr!  )r   rK   r   r"   r#   r$   r%   r&   r|   r  reindexr!   rT   rU   rV   r)   r   r`   r}   s        r*   test_upsample_with_limitr&    s    
Z
8
@
@
FC			%%a(88SBC	HB[[%%A%.Fzz&,,waz@H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 )Nrk   rv   )rn   r   tzr   r   nearestr"  )r   rK   r   r"   r#   r$   r%   r&   r|   r1  r$  r!   rT   rU   )tz_aware_fixturer   r)  rV   r)   r   r`   r}   s           r*    test_nearest_upsample_with_limitr3    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 )Nr2   r3   r   r5   r   r    r!   r9   c                      | j                   d   S r   r   r   s    r*   rr   z$test_resample_ohlc.<locals>.<lambda>  s    affRj r,   r   rl   r   ir   rI   r   r   r   )r   r   r   r{   r&   r!   ro   rK   r   r   rM   rS   r|   rN   rd   rp   r?   r>   )rV   r!   rX   r   r_   r`   xss          r*   test_resample_ohlcr8    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   rK   unionr   r{   r&   locr|   rN   
isinstancer   )rV   r!   rX   r   rY   s        r*   test_resample_ohlc_resultrC  +  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   rI   r   r    )r   rK   dropr   r   r"   r   r&   r|   r<   r$  rT   r   )rV   r)   r!   re   r`   r}   s         r*   $test_resample_ohlc_result_odd_periodrF  8  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r0  ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMErJ  rI  r3   )axisColsr<  )rK  keysr   r   rY   cr   ))r   rN  r   )r   rN  r   )r   rN  r   )r   rN  r   )rY   r   r   )rY   r   r   )rY   r   r   )rY   r   r   )r   r   r$  r!   rK   rd   ro   r|   rN   r   concatnamesrT   r   
MultiIndexfrom_tuples)rV   re   resexps       r*   test_resample_ohlc_dataframerU  J  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 )Nr2   r3   r4   r.   r  r   r   rD   rz   8h   r   )r   r   rK   r   r"   r#   r$   r&   r|   r<   rB  r!   r   r   
DateOffsetHour)rV   rW   rX   bsr`   s        r*   test_resample_reresampler\  z  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/1990rk   r/   )r!   rK   r|   r<   	to_periodr   rT   rU   )r0   r   expected_kwargsrV   r   r`   r}   s          r*   !test_resample_timestamp_to_periodrc    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,   rx   z1/1/2000 5:59:50r  r   r   r    rJ   rD   rz   z1/1/2000 00:00r   r3      ru   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rK   r   r"   r#   r$   r%   r&   r|   rN   rA  rp   rQ   )rV   r   r)   r   	resampledrT  s         r*   test_ohlc_5minrh    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 )
Nrk   	2/29/2000r9   r   r    r   c                     | j                   S r   )monthr   s    r*   rr   z,test_downsample_non_unique.<locals>.<lambda>  s
    AGG r,   r   r3   )r   rK   r   r   r   r"   r#   r$   r%   r&   r|   r<   rM   rT   assert_almost_equalrp   )rV   r)   rng2r   r`   r}   s         r*   test_downsample_non_uniquero    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)Nrk   rj  r   r    z/cannot reindex on an axis with duplicate labelsr   r   )r   rK   r   r   r   r"   r#   r$   r%   r&   r   r   r   asfreq)rV   r)   rn  r   r   s        r*   test_asfreq_non_uniquerr    s    
Z
-
5
5d
;C::a=D			%%a(88TC4	PB
;C	z	- 
		#  s   B11B:)r>   rJ   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 rX   r   r   r    rs   rz   r   rK   r   r"   r#   r$   r%   r&   r   r|   r<   rT   rU   )r   rV   r)   r   r`   r}   s         r*   test_resample_anchored_ticksry    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(   r3   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*   rr   z,test_resample_single_group.<locals>.<lambda>  s    aeeg r,   z2000-1-1z2000-z-10r.   r   r   r    r   )r   rK   r   r"   r#   r$   r%   r&   rT   rU   r|   r;   r   )r(   rV   mysumr)   r   s        r*   test_resample_single_groupr}    s    E
Z5S!1
<
D
DT
JC			%%a(88SB#	NB2;;t,002BKK4E4K4KE4RSr,   c                 \   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*   rr   z0test_resample_single_group_std.<locals>.<lambda>  s    RVVAY r,   )	r   r   r!   rK   r   r|   r   rT   rU   )rV   rX   r}   r`   s       r*   test_resample_single_group_stdr    s    	t,-y9L/MN	A ggood#AG	mYz%:$;#FNNtTH ZZ_""#67F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 )Nrx   z1/1/2000 02:00rX   r   r   r    rJ   2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rK   r   r"   r#   r$   r%   r&   r|   r<   rT   assert_index_equalr!   )rV   r)   r   rg  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:00rX   r   r   r    r  2000-01-01 01:57rJ   r   r  )r  rV   r)   r   r  rg  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  rX   r   r   r    z|'origin' should be equal to 'epoch', 'start', 'start_day', 'end', 'end_day' or should be a Timestamp convertible type. Got '
' instead.r   rJ   r  r   rK   r   r"   r#   r$   r%   r&   r   r   r   r|   )r  rV   r)   r   r   s        r*   test_resample_bad_originr    s     *,>S
I
Q
QRV
WC			%%a(88SB#	NB	8:	 
 
z	- +
F6*+ + +   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  rX   r   r   r    z6'offset' should be a Timedelta convertible type. Got 'r  r   rJ   r  r  )r  rV   r)   r   r   s        r*   test_resample_bad_offsetr     s    
*,>S
I
Q
QRV
WC			%%a(88SB#	NBB6(*
UC	z	- +
F6*+ + +r  c                 @   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  )rV   r'   r(   r)   r   r  rg  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  rX   r   r0  r   r    r  r  rJ   z1999-12-31 23:57:00+00:00r  z1999-12-31 12:02:00+03:00r  r  r  r   r  r   z12/31/1999 23:57:00+03:00)r   rK   r   r"   r#   r$   r%   r&   r|   r<   rT   r  r!   r   r   r   )rV   r   r0  r)   r   r  rg  s          r*   test_resample_origin_with_tzr  N  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   rK   r"   r#   r$   r%   r&   r   r|   r<   rT   rU   tz_localizer0  )rV   r'   r(   r)   random_valuests_1result_1result_2ts_no_tzresult_3result_4ts_2result_5result_6s                 r*   -test_resample_origin_epoch_with_tz_day_vs_24hr  o  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 )NrH  T)r   	ambiguousr    )r   r   r   rK   )r   
timestampsr   tr0  rV   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-02rH  z2013-11-03 23:591hr   r    g      8@g      9@z
2013-11-03r  r'   r  r   r  z2013-11-03 00:00-05:00z-2hr  z2013-11-02 22:00-05:00z2013-11-03 21:00-06:00g      6@      @r  2hz-1hr-   )r   r   rK   r   r"   onesr&   RuntimeWarningrT   r   r|   r;   rU   )rV   r   r  r'   r(   r)   r   r}   r  warnr`   expected_tsr0  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 )Nr3   z
2024-04-19z
2024-04-20zAfrica/Cairors  r0  r   r   7Dr   r    )	r   r   r&   r   r!   r|   r;   rT   rU   )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.   rs   rz   rx  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 )
Nrk   z
12/31/2000r   r    r   zJan-2000zDec-2000r_  r   )r   rK   r   r"   r#   r$   r%   r&   r|   r<   ra  r   rT   r  r!   )rV   r)   r   r`   	exp_indexs        r*   &test_resample_to_period_monthly_bugletr    s     Z
.
6
6t
<C			%%a(88SB#	NB[[##%//1FZ#>I&,,	2r,   c                  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   r9   r  z
2012-01-01r<  r   rc   r7   r.   c                 "    | j                         S r   r<   r   s    r*   rr   z&test_period_with_agg.<locals>.<lambda>  s    AFFH r,   )r   r"   r#   r$   integersr   to_timestampr|   r<   ra  rS   rT   rU   )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 )Nr3   i  r4   r      r   r         rf  )ID	timestampr   r   rd   r  r  rJ   c                 @    | j                  d      j                         S )NrJ   )r|   r;   r   s    r*   rr   z(test_resample_segfault.<locals>.<lambda>
  s    

60B0F0F0H r,   )r   r   from_records	set_indexr!   rK   rM   r|   r;   r   rT   r   )rV   all_wins_and_wagersre   r`   r}   s        r*   test_resample_segfaultr    s     
HT2q"b)1a0	
HT2q"b)1a0	
HT2q"b)1a0	
HT2q"b"-q!4	 
		%B
i  xx%BHZZ&&v.224Fzz$%%&HIH&(+r,   c                    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-01rl   Wr   )r3   r3   r   r   )r9   ri   r   r   int32r   )dater   valr  r'  r   )r   r   rK   r   r  r|   r  r  r8   r"   r  rM   rV   re   r`   s      r*    test_resample_dtype_preservationr    s     
\13GOOPTU!,g6	

 i  [[$$&F::rxx'''ZZ ))$/557F::rxx'''r,   c                 "   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   )r3   rv   r3   rl   z
2017-01-01z
2017-01-04r    rc   r<  cubic)r   importorskipr   r   rK   astyper|   r<   interpolaterT   rU   )rV   re   r}   r`   s       r*   test_resample_dtype_coercionr  !  s    
+, |	B	2ZlCKKDQ	RByy#,,S1668=II'RH[[c"'')55g>F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 )	Nrk   r   r  r   r   r    r  zW-SUN)r   rK   r   r"   r#   r$   r%   r&   r|   r<   rT   rU   )rV   r)   r   rg  r}   s        r*   test_weekly_resample_bugletr  1  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   rK   r   r"   r#   r$   r%   r&   r|   )rV   r   r   s      r*   test_monthly_resample_errorr  ;  sR    ($SAII$OE			%%a(88UDE	RBKKr,   c                     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@r4   100nsr   r    d   r<   r7   )r   r   r   r   r{   r&   r|   tseriesr   NanorS   floatrT   rU   )r'   	exp_startindxr   rf   r`   exp_indxrT  s           r*   test_nanosecond_resample_errorr  C  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(   howr3   usrV   r.   inferrs   rF   )r   rK   r   rl  r|   r<   ra  r  r!   r   
_with_freqr   rT   r   shift)rV   r)   re   r`   r}   rT  s         r*   test_resample_anchored_intradayr  S  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  r3   r  r  r.   rs   r  )r   rK   r   rl  r|   r<   ra  r  r!   r   _datar   r   
no_default_freqrT   r   r  )rV   r)   re   r`   r}   s        r*    test_resample_anchored_intraday2r  k  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   r3   )r!   rK   r|   r<   r&   )r0   rV   r   rg  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 )Nrk   z
12/31/2002)r!   rK   r|   r<   )r0   r   rV   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.206rv   400msr   z2014-10-15 23:00:00r   2200msr9   r    )rG   rI   z2014-10-15 23:00:00)r   r@  r   r"   r#   r$   r%   r|   r<   r!   r   )rG   secindex1index2r!   rX   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 )Nrk   r   r>   r   r   r    rJ   rD   rs   rz   z1999-12-31 23:55rl   r  )rV   r)   r   r`   ex_indexs        r*   test_corner_casesr,    s     Z%
8
@
@
FC			%%a(88SB#	NB[[v[>CCEF,afEMMdSH&,,1r,   c                     | 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   r3   r   z2000-04r_  )r!   rK   r|   r<   ra  r&   r   )r0   rV   r   r`   s       r*   test_corner_cases_dater.    sv    	!,0B	MBxx%BH[[##%//1Fv;!<<?fYS9999r,   c                 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  rX   r   r   r    r   r   r   )r   rK   r   r"   r#   r$   r%   r&   rT   r   r
   r|   r<   )rV   r   r   r   s       r*   test_anchored_lowercase_bugletr0    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-12rl   r<  r   r   r    20minr<   r;   )r   rK   r   r"   r#   r$   r%   r&   r|   	aggregaterB  r   )rV   r)   r   r`   s       r*   test_upsample_apply_functionsr5    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 )Nr2     r<  r   r   r    r.   )r   rK   r   r"   r#   r$   r%   r&   takepermutationr|   r;   
sort_indexrT   rU   )rV   r)   r   r`   rT  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,   r8   )r6   r  rc   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  r3   r   r9   r   r7   r>   c                 "    | j                         S r   r  r   s    r*   rr   z/test_resample_median_bug_1688.<locals>.<lambda>       r,   )
r   r   rK   r   r|   r   rq  rT   r   median)r8   rV   rW   re   r`   rT  s         r*   test_resample_median_bug_1688rB    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 )Nrk   z4/1/2000r   c                 "    | j                         S r   r  r   s    r*   rr   z+test_how_lambda_functions.<locals>.<lambda>  s    qvvx r,   foobarc                 "    | j                         S r   r  r   s    r*   rr   z+test_how_lambda_functions.<locals>.<lambda>   r@  r,   c                 &    | j                  d      S Nr3   )ddofr  r   s    r*   rr   z+test_how_lambda_functions.<locals>.<lambda>   s    AEEqEM r,   c                 "    | j                         S r   r  r   s    r*   rr   z+test_how_lambda_functions.<locals>.<lambda>  s    !&&( r,   c                 &    | j                  d      S rI  rK  r   s    r*   rr   z+test_how_lambda_functions.<locals>.<lambda>  s    QUUU] r,   )rE  rF  F)check_names)r!   rK   r|   r   r<   rT   rU   ro   r  rd   r4  )r0   rV   r   r`   rT  foo_expbar_exps          r*   test_how_lambda_functionsrQ    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  rv   r3   r9   r>  r   rf  rl   r?  r   r   r    YS)r   r   rK   r   r|   r;   )rV   r'   r(   bad_indre   s        r*   test_resample_unequal_timesrU    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-02rl   r?  r         @r    r   r   rI   10minr   bfill)r!   r#  )r!   r#  r!  r"  10Minr   )r   rK   r   r"   r   r   rp   r$  rT   r   r
   reindex_liker|   rY  rU   )	rV   i30rX   i10s10s10_2rlr10_2r10s	            r*   test_resample_consistencyrc    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'  r4   r   rv   rj   r9   r   r   r  dates1rl   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   ro   r   r3   r   r   r   r3   r    r   keyr   rK   r   r"   r   r&   r  r|   r   r   anyr!   r  rT   r   rM   r   r   rV   re   r`   exp_idxr}   s         r*   test_resample_timegrouperrq  ?  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   rh  ri  rj  )r   rs  r   rs  r   rk  rm  ro  s         r*   test_resample_timegrouper2rt  S  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*   rr   z'test_resample_nunique.<locals>.<lambda>}  s    		 r,   r  )r   r   r!   rK   r|   rM   r   r  r   ro   r{  rT   rU   )rV   re   rf   rZ   r}   r  r`   s          r*   test_resample_nuniquer|  l  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   )r9   rl   r  r   r  r9   r.   r   r	  lev0lev1)rP  r  )r   r"   r#   r$   r%   r   r
  r  r   absr!   rK   r   rQ  from_arraysrd   r   r|   r{  rT   r  r  s      r*   2test_resample_nunique_preserves_column_level_namesr    s    	
		a 008d6l&1qs;
 
ce	 
 xx%BH**				!&&)9 + BJ [[&&(F"**fnn5r,   funcc                 "    | j                         S r   rz  r   s    r*   rr   rr     s    !))+ r,   c                 @    | j                  t        j                        S r   )rS   r   r{  r   s    r*   rr   rr     s    !%%' r,   c                 $    | j                  d      S )Nr{  )rS   r   s    r*   rr   rr     s    !%%	" r,   )r{  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 )
Nr:  r;  r<  r   r=  r>  r6   r7   r   )
r   rK   rR   r   r{   r&   r|   r   rT   rU   )	r  rV   r!   r(  index3rX   rf   r`   r}   s	            r*   #test_resample_nunique_with_date_gapr    s     z;S9AA$GE[s;CCDIF\\&!FuS[!w?A	

4AWWYFAwH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   r4   r   z
2015-08-27r>   r   r   r6   r    r?  r  rD   sideTr3   rI   	minlengthFcopy)r"   r#   r$   r   rK   r   r  r  choicer|   r{  r!   r>   r?   r   searchsortedlexsortr_bincountr&   rT   rU   )rV   nkprngdrr   rs   ixvalsbinssortermaskr]   rD   s                 r*   test_resample_group_infor    s    	A
A99  #D	,Re	D	L	LT	RB	a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  rD   r  r3   r  r6   Fr  )r   rK   r   r"   r#   r$   r%   r  r|   sizer!   r>   r?   r  r   r  r&   r  rT   rU   )	rV   r  r  r   rs   r  r  r  rD   s	            r*   test_resample_sizer    s   A	L!%	8	@	@	FB	
		a 003ii##A&--b!4
B
 ;;v##%D	$**..*V	L	T	T
B ??299bhhooGDD
++dc"gk
212
6
=
=gE
=
RC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  rX   r  UTCzEurope/Madridi 8XiFXr<  r   r9   r    r)  )r   r   r   r   r   dtr  
tz_convertr|   r;   rT   r   )df1dti1df2dti2re   r`   r}   s          r*   test_resample_across_dstr    s     Z,tf
=C
svvC(	KK	JJ'D Z,tf
=C
svvC(	KK	JJ'	D 
Aq6	&B[[c["&&(F!Qt,H&(+r,   c                    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  rH  r  r3   r   r    r'  r   z
2016-11-02z
2016-11-24r.   r  r   r   r!  )r   r  rK   r   rM   r   r   r   r"   r   rT   r   )rV   r!   re   r`   expected_index_valuesr}   s         r*   !test_groupby_with_dst_time_changer    s     	*,?@UK	%	&	 
 
Aq6	'BZZT*+002F&l1Bgdm  /0E#266(R-0C58FH&(+r,   c                 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>  rj   rl      z
US/EasternrH  r9   r    r.   r   r  r  r3   r  )
r   r   rK   r   r!   	normalizerT   r   r|   r;   )rV   rW   re   r}   s       r*   test_resample_dst_anchorr    s    
$Ar23
E
M
Md
SC	A3c	"B
**,3
7
?
?
EC!C(H"++3+/335x@KKTK 
""$C$A&'Ltgdm		
r,   c           	         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   rY   rN  r6   r7   r>   r?   r   r   )r   0   i    i   r  )/   i    i  q  2  )r  P  r  r  iR     z	9/30/2013z	11/4/2013r    zW-MON Frequencyz2W-MON)r   r  r  r  )r  r  r  r  )r  i  i  r  z
11/11/2013z2W-MON Frequencyr  )r   r    )r    r  )r  i  1   z9/1/2013z	11/1/2013zMS Frequency2MSr   r  r  r  r  z2MS Frequencyz
10/26/2013z
10/29/2013r.   )i  i  iB  r  )i  iA  r  i  )r  r  r  r  zD Frequency)	r   rK   r{   r  r   r|   rS   rT   r   )rV   rW   r   re   r  rsr`   r}   rs2r  	expected2rs3result3	expected3rs4result4	expected4df_dailyrs_dresult_d
expected_ds                        r*   test_resample_dst_anchor2r  *  s   
l^gdm  388_F	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/Berlinrd  r4      rl   r  r   r9   r    r<        @rv   r   )zoneinfoZoneInfor   r   
astimezonerK   r   r|   r<   r"   r   rT   rU   )rV   r0  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/AmsterdamrH  )rj   r   r      r  )r!   r   1Wr  *   r  z
2017-04-02r  r  r    )r   r   rK   r|   r;   rT   r   )rV   re   r`   r}   s       r*   !test_downsample_across_dst_weeklyr    s    	R!
 '$-!
B [[""$F	R<(-?c

'$-	H &(+r,   c                 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  r7   r  z
2013-04-07r9   )r   rn   r0  )	r   rK   r   r"   rc   r|   r<   rT   rU   )rV   r^   rX   r`   r}   s        r*   #test_downsample_across_dst_weekly_2r    s    
\<O#
N
V
VC 	S

+AZZ_!!#FCOWW
 jj	H 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  rj   rv   r   r9   r  r   r  zAmerica/Havanar    r'  z
2018-11-03rn   T)r  r.   )g      @g      <@g     @F@)r   r   rK   r  r  r
  r{   r&   r   rM   r   r<   r   rT   r   )	rV   r'   r(   r!   r   	dataframer`   rW   r}   s	            r*   test_downsample_dst_at_midnightr    s    T2q"%E
4Q
#C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   rv   r9   r   rj   r    )r  r  r  )r        @      &@1sr  r  2sr  3s60s)	r   r   NaTrK   r   rT   r   r|   r<   )	rV   r!   frameindex_1sframe_1sindex_2sframe_2sindex_3sframe_3ss	            r*   test_resample_with_natr    sM   FF!FF!!	
 gdm 
 &e4EMgdm  ):H%...335x@35JKLTTH #tH5H%...335x@345==dCH#h/H%...335x@%../446Ar,   c           	         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  r3   r  r   r  r    z
2016-01-15rv   2Dr   )r!   ro   )r   r   r!   rK   r   r   r  r   r|   firstrT   rU   )rV   r   re   rT  rS  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 )Nrx   ry   r5   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,   r4   r.   )r  )r   r   r{   r&   r!   ro   rK   r|   r   r<   multiplyrT   rU   )rV   r!   r   r\   
multiplierr`   r}   s          r*   (test_resample_apply_with_additional_argsr    s    *,?eLEE#e*%U3FFLL' <<''-FLJ__S!'':6Fs#((*33J?H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,   r4   r3   r   r   2017r  r    r   r.   )r   r   rM   r|   rS   r  r  r<   r  rT   r   )r\   r  re   r`   r}   s        r*   )test_resample_apply_with_additional_args2r    s    ' J	#:fb+I	JBZZ_%%c*..q*=DDUKFzz#'',113<<ZHH&(+r,   r  )r3   r   rv   zn1, freq1, n2, freq2)
)   rX         ?r5   )<   rX   r3   r5   )i  rX   r3   r<  )r  r5   r3   r<  )i`T  rX   g      ?r.   )rw  rX   r3   r.   )i  rX   r  r.   )i  r5   r3   r.   )r   r<  r  r.   )   r<  r3   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   rK   r   r{   r&   r|   r   r<   rB  r!   r   r   r   r   r  rT   rU   )n1freq1n2freq2r  rV   n1_n2_rW   serr  r  s               r*    test_resample_equivalent_offsetsr     s    $ 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   rK   r   r   r  frequenciesr   r   )r  r   r   	exp_firstexp_lastrV   r`   r}   s           r*   test_get_timestamp_range_edgesr(  @  s     5MEuzz*2248E$<DTYY'//5D)$I"H::!!++D1D'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   rn   r    r   r   r   r  r   r  r     r  r  i  i  r   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31QE-DECr   r   )r   rK   r   r{   r   rd   r|   r   r"   r=   rL   r6   r   rT   r   )r)  rV   r!   r   re   r`   r}   s          r*   test_resample_apply_productr.  Z  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-25r1  r.   r  z2020-10-26 23:00)r/  r0  r  r.   z2020-03-30 00:00)r/  r1  r  r.   r2  )r3  r1  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   rK   r|   r  rT   rU   )	r  r   r4  r5  r'  rV   r   r`   r}   s	            r*   #test_resample_calendar_day_with_dstr7  o  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   rv   r+  r3   r  r   )	min_countr0  r-  r   r    )
r   rK   r   r"   r   r   r|   r   rT   rU   )r  rV   r!   r  r`   r}   s         r*   +test_resample_aggregate_functions_min_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 23ru  r  r   )r   r3   r   r   )r!   rd   r   r8   z
2000-01-02z
2000-01-03r.   r3   r   r	  )r   r   rK   rA  r!   r|   r?   r"   r   rT   r   )any_unsigned_int_numpy_dtyperV   re   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  rX   100YE)rV   r   )r3   rl   r   r   r9   r   r3   rl   r   r   r9   r   r3   rl   r   r   r9   r    200YE)	z
0300-12-31z
0500-12-31z
0700-12-31z
0900-12-31z
1100-12-31z
1300-12-31z
1500-12-31z
1700-12-31z
1900-12-31zdatetime64[s]z	200YE-DECr   )	r   r        @rW  r  rB  rW  r  rB  )
r   r   r|   r<   r   r"   rL   r  rT   rU   )r^   r  r`   expected_idxr}   s        r*   test_long_rule_non_nanorD    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  rs   )onrF   rG   r   )r   ro   r8   rc   )r!   ro   r8   )r   r  r|   r;   r   r   rT   rU   )re   r  r`   rC  r}   s        r*   "test_resample_empty_series_with_tzrG    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: r4   20130101r.   r   r    r   r   r{   r   r   r   r   r|   r<   r   r   rX   s      r*   test_resample_M_Q_Y_raisesrQ    _    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rL  rO  rP  s      r*   test_resample_BM_BQ_raisesrX    rR  rS  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'r3   z8' is deprecated and will be removed in a future version.r9   rN  r<  r$  )r   rn   rV   r    r   zdatetime64[ns])r   r8   r   r!  Fr  )
r   r{   r   rT   r   r
   r|   r<   r   rU   )r   	freq_deprr   r   rX   r`   exp_dtir}   s           r*   &test_resample_depr_lowercase_frequencyrb     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   rn   rV   r   r    r  rD   r    r3   r   r   rl   rv   ;   M8[]
r   r   r|   r   r   r   rK   r  rT   r   )rV   rW   re   groupedr`   ra  r}   s          r*   test_resample_ms_closed_rightrn    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   rs  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 )Nrd  re  rf  rg  r   r    rD   r  rh  r3   r  rf  r   rv   rl   r   ri  rj  rk  rl  )r   rV   rW   re   rm  r`   ra  r}   s           r*   test_resample_c_b_closed_rightrp  &  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-26ri   ru  )rn   r   rV   )r3   r   rv   rl   r9   ri   r    r   rD   rz   i  r   r           r   )r   g      @g      @g      @)	r   r   r|   r<   r   r   rK   rT   rU   )rV   rW   r  r`   ra  r}   s         r*   test_resample_b_55282ru  E  s    
\15t
DC
#3
/C\\#gW\=BBDFT1b!T1b!T1b!T1b!		
  gdm  H 68,r,   pyarrowr0  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-01r9   r  timestamp[ns][pyarrow]r   r    r'  )r   r   r  r  r"   r   rc   r|   r<   rT   rU   )r0  r^   r}   r`   s       r*   test_arrow_timestamp_resampler}  [  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 )	Nr{  r9   r  r|  r   r    
index_namer'  )r   r   r"   r   rc   r!   ro   r|   r<   rT   rU   )r^   r}   r`   s      r*   -test_arrow_timestamp_resample_keep_index_namer  s  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-01r4   1000YSrX   )r'   rn   r   rV   r3   r    2000YSr   )r   r   r   r   r|   r;   rT   rU   )r!   r  r`   r}   s       r*   %test_resample_unit_second_large_yearsr  }  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)	NrM  r3   r4   rN  r.   r   r    r   rO  rP  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.compat.pyarrowr	   pandas.errorsr
   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r   r   r   r   pandas._testing_testingrT   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   pandas.core.resampler   r   pandas.tseriesr   pandas.tseries.frequenciesr   pandas.tseries.offsetsr   fixturer0   ra   rg   markparametrizer~   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r&  r3  r8  rC  rF  rU  r\  rc  rh  ro  rr  ry  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.  r0  r5  r;  rB  rQ  rU  rc  re  r
  __annotations__r  rf  dates3rq  rt  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r.  r   r7  r;  r>  rD  rG  rQ  rX  rb  rn  rp  ru  
skip_if_noparamxfailr}  r  r  r  r/   r,   r*   <module>r     s         # * - 6 ( ) )     / 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++##-/H4HH $ 	
	- - y- -- $!12  3 r,   