
    Owg #                       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c mZ d dlZd dlmZmZmZmZmZmZmZ d dlmZ d dlmZ d d	lm Z  d d
l!m"Z"m#Z# d dl$m%Z%m&Z& d dl'm(Z( d dl)m*Z*  ejV                         d        Z,ejV                  d        Z-ejV                  d        Z. ejV                  g d      d        Z/ejV                  d        Z0d Z1d Z2ejf                  ji                  ddg      ejf                  ji                  ddd fdd fg      d               Z5d Z6d  Z7ejf                  jq                  d!      ejf                  ji                  ddg      ejf                  ji                  d"g d#      d$                      Z9ejf                  ji                  ddg      d%        Z:ejf                  ji                  ddg      d&        Z;d' Z<d( Z=d) Z>d* Z?ejf                  ji                  d+g d,      d-        Z@ejf                  ji                  d.d/d0g      d1        ZAejf                  ji                  d.d2d0g      d3        ZBd4 ZCd5 ZDd6 ZEd7 ZFejf                  ji                  d.g d8      ejf                  ji                  d9g d:      d;               ZGd< ZHd= ZId> ZJd? ZKd@ ZLdA ZMejf                  ji                  dBdCdDdEdFdGgdHdDdEdIdGgd0dJdKdLdGgg      dM        ZNdN ZOdO ZPdP ZQdQ ZRejf                  ji                  d.g dR      dS        ZSejf                  ji                  dTdUdVg      dW        ZTdX ZUdY ZVejf                  ji                  dZd[d\id[ ed]      id^d_d`d[daidbdcig      dd        ZWejf                  ji                  d[dedfdgdhdi eX       g      dj        ZYejf                  ji                  dbdedkdi eX       g      dl        ZZdm Z[dn Z\do Z]dp Z^dq Z_dr Z`ds Zadt Zbdu Zcdv Zddw Zedx Zfdy Zgdz Zhd{ Zid| Zjejf                  ji                  d.g d}      d~        Zkejf                  ji                  dddgddgg      d        Zld Zmd Znd Zod Zpd Zqejf                  ji                  dddd ej                  dejf                  j                  d            g      d        Ztd Zud Zvd Zw e dddU       e ddd       e ddd       e ddd       e ddd       e ddd      gZxeye
   ezd<   exddV ej                  gz   exdVd z   ej                  gz   exdd z   Z|eye
   ezd<   ej                  gexz   ej                  gz   Z}ejf                  ji                  dexe|e}g      d        Z~ejf                  ji                  dexe|e}g      d        Zd Zd Zejf                  ji                  dd d d gg d      d        Zejf                  ji                  dddg      ejf                  ji                  dg d      d               Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zejf                  ji                  dg d      ejf                  ji                  dg d      d               Zejf                  ji                  dg dĢ      dń        Zejf                  ji                  dddg      dɄ        Zejf                  ji                  dg dˢ      dededededef
dф       Zejf                  ji                  dg dҢ      dӄ        ZdԄ ZdՄ Zdք Zejf                  ji                  dg dآ      dل        Zejf                  ji                  dg dڢ      dۄ        Zd܄ Zejf                  ji                  d.ddg      d.efd߄       Zd Z ej>                  d      ejf                  ji                  dd ej                  dejf                  j                   e       d            g      d               Zy)    )datetime)partialN)lib)DatetimeNaTType)is_platform_windows)	DataFrameIndexSeries	Timedelta	Timestampisnanotna)Grouper
date_range)Periodperiod_range)DatetimeIndex_get_timestamp_range_edges)offsets)Minutec                      t         S Nr        `/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/resample/test_datetime_index.py_index_factoryr   '   s    r   c                       y)NMinr   r   r   r   _index_freqr    ,   s    r   c                 p    t         j                  j                  d      j                  t        |             S )N   )nprandomdefault_rnglenindexs    r   _static_valuesr)   1   s&    99  #**3u:66r   )smsusns)paramsc                     | j                   S r   )param)requests    r   unitr2   6   s    ==r   c                      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freqr"   r'   )r   r
   r#   r$   r%   standard_normalr&   )startendr6   rngs       r   _simple_date_range_seriesz;simple_date_range_series.<locals>._simple_date_range_seriesA   s<    $/bii++A.>>s3xHPSTTr   Dr   )r;   s    r   simple_date_range_seriesr>   ;   s    U %$r   c                 :   | 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   int64r(   dtype   r5   summeanprodminmaxvarTaltnumeric_onlyrightr6   closedlabel!
  i 
  r   5minr'   rF   )as_unitr
   r#   arrayr&   r   r   groupbyohlc_cython_agg_generalngroupsr   rG   allappendr   aggtmassert_series_equal)r(   r2   dtir*   bgfuncsfarridxexpectresults               r   test_custom_grouperrj   H   s|   
--
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      }| 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 )
NrD   rO   rP   r"   
   float64rB   rF   rS   )r   r   rV   r   r#   r$   r%   r&   rX   r^   columnsr(   )r(   r2   rb   ra   dfrs         r   test_custom_grouper_dfrq   l   s    VAYwg>A
--
C	
		a ''S27s)
B 	

1% Aqyy>Rqww<4r   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r(   zclosed, expectedrO   c           	          t        | j                  d   | dd j                         | dd j                         | dd  j                         gt        dddd	      
      S )Nr   r@         1/1/2000   rU   r(   periodsr6   namer'   )r
   ilocrG   r   r*   s    r   <lambda>r}      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 )	NrD   rl   1/1/2000 00:05   rU   r(   rx   r'   )r
   rG   r   r|   s    r   r}   r}      sJ    f2Aq2w||~qv{{}= $af7 r   c                    | }|j                   j                  |      |_          ||      }|j                   j                  |      |_         |j                  d|d      j                         }t	        j
                  ||       y )NrU   rO   rQ   rR   )r(   rV   resamplerG   r_   r`   )seriesrQ   expectedr2   r*   ri   s         r   test_resample_basicr   x   si    4 	A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	   rv   rI   ry   r6   Int64rB   3min)r         r   )r@   rw      Float64)	r
   ranger   rV   r   rF   r_   r`   rG   )r2   tsri   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                 "   | }|j                   j                  |      |_         |j                  d      j                         }t	        t        d      dd      }|j                  |      j                  d       }t        j                  ||       y )N5MinrD   r~   rP   c                      | j                   d   S NrT   r{   xs    r   r}   z-test_resample_basic_grouper.<locals>.<lambda>   s    r
 r   )
r(   rV   r   lastr   r   rX   r^   r_   r`   )r   r2   r*   ri   grouperr   s         r   test_resample_basic_grouperr      sn    Aggood#AGZZ$$&F6!9V6BGyy!%%&:;H68,r   z@ignore:The 'convention' keyword in Series.resample:FutureWarningzkeyword,value))rR   righttt)rQ   r   )
conventionstartttc                     | 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)NzUnsupported value z for ``matchrU   )r(   rV   pytestraises
ValueErrorr   )r   keywordvaluer2   msgs        r   test_resample_string_kwargsr      sg     <<''-FLugVG9A
6C	z	- 65GU#356 6 6s   A##A,c                    |dk(  rt        j                  d       | }|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 )NrY   z!covered by test_resample_how_ohlcr   r@   rt   r"   ru   r   rv   rw   rU   r(   rx   rO   r   )r   skipr(   rV   r#   	ones_likerX   r^   r   getattrr   r_   r`   )r   downsample_methodr2   r*   	grouplistr   ri   s          r   test_resample_howr      s    
 F"78Aggood#AGQIIaLIaNIaOIbcNyy#''(9:HAFgdm NW	

6'
9;L F 68,r   c           	         | }|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 )Nr   r@   rt   r"   ru   r   c                     t        |       j                         r$t        j                  t        j                  d      S | j
                  d   | j                         | j                         | j
                  d   gS Nrw   r   rT   r   r\   r#   repeatnanr{   rJ   rI   groups    r   _ohlcz%test_resample_how_ohlc.<locals>._ohlc   P    ;??99RVVQ''

1uyy{EIIKBHHr   rv   rw   rU   r(   rx   )openhighlowcloser(   rn   rO   r   )r(   rV   r#   r   r   rX   r^   valuestolistr   r   rY   r_   assert_frame_equal)r   r2   r*   r   r   r   ri   s          r   test_resample_how_ohlcr      s    
 	Aggood#AGQIIaLIaNIaOIbcNI
 			)  '..557QV'JRR
 1H ZZwgZ>CCEF&(+r   c                    t        j                  dt         j                        }t        dt	        |      d      j                  |       }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 )NrD   rC   
2014-01-01dr8   ry   r6   ABr'   c                 *    t        t        |             S r   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   r}   z-test_resample_how_callables.<locals>.<lambda>  s    #d1g, r   r"   )r   )r@   )r#   arangerA   r   r&   rV   r   r   applyr   r_   r   )r2   dataindro   r   r   df_standard	df_lambda
df_partialdf_partial2df_classs              r   test_resample_how_callablesr     s    99Qbhh'D
<T
E
M
Md
SC	D)	5B    ++d#))"-KD!''(>?IT"((5J++d#))'"*:;K{{4 &&wy1H+y1+z2+{3+x0r   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   r@      r'   6s)rw   r   rw   r"   z
2014-11-08rw   r6   ry   7s)rw   rl   rw   r@   11sru      r"   13s   rt   17s   r   )
r   pdto_datetimer(   rV   r   rF   r   r_   r   )r2   r   ro   ri   r   s        r   test_resample_roundingr      s   
B* 
GaS2X&bnnR.@	ABxx%BH[[""$F	,D!<DDTJH &(+[[""$F	- D!<DDTJH &(+[[##%F	2q'E1=EEdKH &(+[[##%F	2q'E1=EEdKH &(+[[##%F	2q'E1=EEdKH &(+r   c                 	   t        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                  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 )N  r@   rl   r=   r(   r8   r9   r6   rz   r"   zw-sunr   )rt   rt   rt   r   z1/2/2005z1/9/2005rT   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrw   z1/7/2005r   r   )rw   r   r@   r"   r   rw   r   rD   )r   r   rV   r
   r#   r$   r%   r&   r   r   r(   	dayofweekr\   r{   rz   r2   ra   r*   ri   s       r   test_resample_basic_from_dailyr  `  s9   
tQ"q"(=Cggdm  	ryy$$Q'..s3x8#>A ZZ %%'F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]***<<'''r   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=   r5   r@   r'   r         ?rt   i  r   19750101rD   r   )r   rV   r
   r   rG   r(   r#   r   r   r   countr_   r`   rF   )	r2   datesr   ri   ir*   r   result1result2s	            r   /test_resample_upsampling_picked_but_not_correctr    s]   }m#>FFtLEAU#F__S!&&(F<<?eAh&&& 	
		#quQPQ{!S!(4Ar1"=!S	A ggood#AG
		#qQS9AA$GH
 ZZ_""$F66!8>>#BCjjo!!#Gjjo""$G7H-7H- "Ts   	F8
re   rE   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   rw   ABCDr   
2000-01-01r  r   r   rn   r(   r   r5   TrL   )r   r#   r$   r%   r7   r	   listobjectr   r(   rV   r   rX   rZ   )re   r2   ro   rb   rc   s        r   "test_resample_frame_basic_cy_funcsr    s    	
		a 009d6l&1r<
B
 xx%BHTA


1A !D9r   r6   YEr   c           	         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%   r7   r	   r  r  r   r(   rV   r   rG   r_   r`   )r6   r2   ro   ri   s       r   test_resample_frame_basic_M_Ar    s    	
		a 009d6l&1r<
B
 xx%BH[[##%F6#;3(8(8(>(C(C(EFr   r   c           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }|j                  j                  |      |_	        d
}t        j                  t        |      5  |j                  | d      j                          d d d        y # 1 sw Y   y xY w)Nr"   )rl   rw   r  r   r  rl   r   r   r  6The 'kind' keyword in DataFrame.resample is deprecatedr   periodkind)r   r#   r$   r%   r7   r	   r  r  r   r(   rV   r_   assert_produces_warningFutureWarningr   rG   )r6   r2   ro   r   s       r   test_resample_frame_basic_kindr     s    	
		a 009d6l&1r<
B
 xx%BH
BC		#	#M	= 0
Dx(--/0 0 0s   "CC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 )Nr   r@   rl   r=   r(   r   r"   r   i2  r   rT   )r   r   rV   r
   r#   r$   r%   r&   r   ffillr{   r(   rz   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 )Nru      z2015-03-31 21:48:52.672000z2015-03-31 21:49:52.739000r'   z2015-03-31 21:48:50z2015-03-31 21:49:00z2015-03-31 21:49:10z2015-03-31 21:49:20z2015-03-31 21:49:30z2015-03-31 21:49:40z2015-03-31 21:49:5010sr5   )r
   r   r(   rV   r#   r   r   r_   r`   r   rG   )r2   r*   r   s      r   test_resample_how_methodr'    s    	R2323
	A ggood#AG	RVVRVVRVVRVVRVVR8/0/0/0/0/0/0/0 
H ^^++D1HN1::e,113X>r   c           
      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r8   r9   r6   r   )r   )   ?   r'   r   rA   r   )
r   rV   r   r
   r   r&   r   r   r_   r   )r2   r(   r   ro   ri   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 )
Nrv   r   rU   r   r"   rI   limitr"  methodr2  )r   rV   r
   r#   r$   r%   r7   r&   r   r"  reindexr(   r_   r`   r2   r:   r   ri   r   s        r   test_upsample_with_limitr7    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 )Nrv   r   )ry   r6   tzr"   r1  nearestr3  )r   rV   r
   r#   r$   r%   r7   r&   r   rB  r5  r(   r_   r`   )tz_aware_fixturer6   r:  r2   r:   r   ri   r   s           r    test_nearest_upsample_with_limitrD  #  s     Z:J
K
S
SC 
		%%a(88SBC	HB[[&&Q&/Fzz&,,yzBH68,r   c                 $   | }|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 )NrD   r5   c                      | j                   d   S r   r   r   s    r   r}   z$test_resample_ohlc.<locals>.<lambda>6  s    affRj r   r   rw   r   ir   rT   r   r   r   )r(   rV   r   r   rX   r^   r   rY   r&   rn   r{   rJ   rI   )r   r2   r*   r   rh   ri   xss          r   test_resample_ohlcrI  1  s   Aggood#AG6!9%GYYw##$89FZZ$$&Fv;#f+%%%v~~!###	RBf:###f:2b'''e9"R&&&g;!&&*$$$	QBf:"""f:2A$$$e9"1		###g;!&&)###r   c                    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hr5   	4-15-2000	5-15-2000r'   30minz	4-14-2000)r   rV   unionr
   r   r&   locr   rY   
isinstancer   )r2   r(   r*   r   rb   s        r   test_resample_ohlc_resultrT  I  s    z;S9AA$GEKK
;#FNNtTUEuSZ .A	l{$$W-224Aa###	l{$$W-224Aa###r   c                    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   rT   r5   r'   )r   rV   dropr   r   r#   r   r&   r   rG   r5  r_   r   )r2   r:   r(   ro   ri   r   s         r   $test_resample_ohlc_result_odd_periodrW  V  s     \<
0
8
8
>CHHl#l#l#l#		
E 
		#e*-U	;B[[""$Fzz
3q63r7 E M Md SzTH&(+r   c                    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rA  ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMEr[  rZ  r@   axisColsrM  )r]  keysr   r   rb   cr   ))r   r`  r   )r   r`  r   )r   r`  r   )r   r`  r   )rb   r   r   )rb   r   r   )rb   r   r   )rb   r   r   )r   r   r5  r(   rV   rn   rz   r   rY   r   concatnamesr_   r   
MultiIndexfrom_tuples)r2   ro   resexps       r   test_resample_ohlc_dataframerg  h  s    3=u3=u3=u 3=z3=z3=y	
 gx!g*   xx%BHBJJO
++c



!C
))	H		s	#	(	(	*BwK,@,@,E,J,J,LMZZC
 ;;Q6)))#s#*sCj)BJ
++c



!C--++		
CK #s#r   c                     t        t        j                  j                  d      j	                  d      g dt        d      D  cg c]  } t        d| dz   d       c} 	      }t        j                  |j                  d
d d f<   d}t        j                  t        |      5  |j                  dd      j                         }d d d        d}t        j                  t        |      5  |j                  d d      j                         }d d d        t        d      D  cg c]  } t        d| dz   d       c} _        t        j                   |       y c c} w # 1 sw Y   xY w# 1 sw Y   ^xY wc c} w )Nr"   )rw   r   )  ri  ri  ri  r   ri  r@   M)yearmonthr6   r   r   -DataFrame.resample with axis=1 is deprecated.r   QEr\  z+DataFrame.groupby with axis=1 is deprecatedc                 8    t        | j                  dz
  dz        S )Nr@   r   )intrl  r   s    r   r}   z)test_resample_dup_index.<locals>.<lambda>  s    QWWq[A,=(> r   rw   Q)rk  quarterr6   )r   r#   r$   r%   r7   r   r   r   r{   r_   r  r  r   rG   rX   rn   r   )r	  ro   warning_msgri   r   r   s         r   test_resample_dup_indexrt    s2    

		a 009&CH9MaTQS9M
B
 FFBGGAqDMAK		#	#M	E 2T*//12 8C		#	#M	= O::>Q:GLLNOLQRSHUqD!a%cBUH&(+ N2 2O OUs$   E!"E(#E( E4E%(E1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 )Nr   r@   rl   r=   r,  r"   r   rO   r   8h   r   )r   r   rV   r
   r#   r$   r%   r&   r   rG   rS  r(   r6   r   
DateOffsetHour)r2   ra   r*   bsri   s        r   test_resample_reresampler{    s    
tQ"q"(=Cgdm  	ryy$$Q'..s3x8#>A	
Cw	7	<	<	>B[[##%Fv;"fll''););<<<<<Q///r   zfreq, expected_kwargszYE-DEC19902000zY-DECr,  zYE-JUNzY-JUNz1990-01z2000-01rj  c                     | dd      }|j                   j                  |      |_         d}t        j                  t        |      5  |j                  |d      j                         }d d d        |j                  |      j                         }t        di ||_         t        j                  |       y # 1 sw Y   OxY w)Nz1/1/1990rv   3The 'kind' keyword in Series.resample is deprecatedr   r  r  r   )	r(   rV   r_   r  r  r   rG   r   r`   )r>   r6   expected_kwargsr2   r   r   ri   r   s           r   !test_resample_timestamp_to_periodr    s     
"*j	9Bxx%BH
?C		#	#M	= 9T16689{{4 %%'H!4O4HN68,	9 9s   "B77C 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   rr   z1/1/2000 5:59:50r&  r5   r"   r'   rU   rO   r   z1/1/2000 00:00r   r@      r   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rV   r
   r#   r$   r%   r7   r&   r   rY   rR  r{   r\   )r2   r   r:   r   	resampledrf  s         r   test_ohlc_5minr    s    I
 (*<5
I
Q
QRV
WC			%%a(88SB#	NBF7'BGGIIMM*+rwwqz9>>@@@
1R/CMM*+s277999
%&'
(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 )
Nrv   	2/29/2000rD   r"   r'   r   c                     | j                   S r   )rl  r   s    r   r}   z,test_downsample_non_unique.<locals>.<lambda>  s
    AGG r   r   r@   )r   rV   r   r   r
   r#   r$   r%   r7   r&   r   rG   rX   r_   assert_almost_equalr{   )r2   r:   rng2r   ri   r   s         r   test_downsample_non_uniquer    s    
Z
-
5
5d
;C::a=D			%%a(88TC4	PB[[##%Fzz+,113Hv;!6;;q>8A;76;;q>8A;7r   c                 z   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)Nrv   r  r"   r'   z/cannot reindex on an axis with duplicate labelsr   r   )r   rV   r   r   r
   r#   r$   r%   r7   r&   r   r   r   asfreq)r2   r:   r  r   r   s        r   test_asfreq_non_uniquer    s    
Z
-
5
5d
;C::a=D			%%a(88TC4	PB
;C	z	- 
		#  s   B11B:c                     t        dd      j                  |       }t        t        j                  j                  d      j                  dt        |      f      |g d      }d}t        j                  t        |      5  |j                  d	d
      j                         }d d d        |j                  j                  d	      j                         j                  }t        j                  |       y # 1 sw Y   SxY w)Nrv   r  r"   r   r   rb   r`  r  rm  r   r   r@   r\  )r   rV   r   r#   r$   r%   r7   r&   r_   r  r  r   rG   Tr   )r2   r:   ro   rs  ri   r   s         r   test_resample_axis1r    s    
Z
-
5
5d
;C	
		a 00!SX?
B BK		#	#M	E 2T*//12tt}}T"'')++H&(+2 2s    "C44C=)rI   rU   15minrP  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 r*   r   r"   r'   r~   r   r   rV   r
   r#   r$   r%   r7   r&   r   r   rG   r_   r`   )r6   r2   r:   r   ri   r   s         r   test_resample_anchored_ticksr  	  s     (%c
B
J
J4
PC			%%a(88SB#	NBVVBrFV__T&_?DDFF{{4f{=BBDH68,r   r9   r@   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   )rF   r   s    r   r}   z,test_resample_single_group.<locals>.<lambda>  s    aeeg r   z2000-1-1z2000-z-10r=   r5   r"   r'   r   )r   rV   r
   r#   r$   r%   r7   r&   r_   r`   r   rF   r   )r9   r2   mysumr:   r   s        r   test_resample_single_groupr    s    E
Z5S!1
<
D
DT
JC			%%a(88SB#	NB2;;t,002BKK4E4K4KE4RSr   c                 \   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=   r5   c                 ,    t        j                  |       S r   )r#   stdr   s    r   r}   z0test_resample_single_group_std.<locals>.<lambda>+  s    RVVAY r   )	r
   r   r(   rV   r   r   r   r_   r`   )r2   r*   r   ri   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 )Nrr   z1/1/2000 02:00r*   r5   r"   r'   rU   2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rV   r
   r#   r$   r%   r7   r&   r   rG   r_   assert_index_equalr(   )r2   r:   r   r  exp_rngs        r   test_resample_offsetr  /  s     (*:
E
M
Md
SC			%%a(88SB#	NBF62779I.0@vNVVG )//73r   kwargsorigin1999-12-31 23:57:00z1970-01-01 00:02:00epoch2mr  r  z1999-12-31 12:02:00r  z-3mc                 |   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:00r*   r5   r"   r'   r  2000-01-01 01:57rU   r   r  )r  r2   r:   r   r  r  s         r   test_resample_originr  <  s     *,>S
I
Q
QRV
WC			%%a(88SB#	NB1gdm  -f-224I)//73r   invalid_valueepchstartdaystarttz
2000-30-30c                 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  r*   r5   r"   r'   z|'origin' should be equal to 'epoch', 'start', 'start_day', 'end', 'end_day' or should be a Timestamp convertible type. Got '
' instead.r   rU   r  r   rV   r
   r#   r$   r%   r7   r&   r   r   r   r   )r  r2   r:   r   r   s        r   test_resample_bad_originr  T  s     *,>S
I
Q
QRV
WC			%%a(88SB#	NB	8:	 
 
z	- +
F6*+ + +   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  r*   r5   r"   r'   z6'offset' should be a Timedelta convertible type. Got 'r  r   rU   r  r  )r  r2   r:   r   r   s        r   test_resample_bad_offsetr  c  s    
*,>S
I
Q
QRV
WC			%%a(88SB#	NBB6(*
UC	z	- +
F6*+ + +r  c                 @   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7minr5   r"   r'   z2000-10-01 23:14:00z2000-10-02 00:22:0017min	start_dayr  r  z2000-10-02 00:21:00r8   23h30minr  r  z2000-10-01 23:18:00z2000-10-02 00:26:00r  z2000-10-01 23:24:00z2000-10-02 00:15:00r  r  )r2   r8   r9   r:   r   r  r  s          r   test_resample_origin_prime_freqr  l  s   =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  r*   r6   rA  r"   r'   r  r  rU   z1999-12-31 23:57:00+00:00r  z1999-12-31 12:02:00+03:00r  r  r  r   r  r5   z12/31/1999 23:57:00+03:00)r   rV   r
   r#   r$   r%   r7   r&   r   rG   r_   r  r(   r   r   r   )r2   r   rA  r:   r   r  r  s          r   test_resample_origin_with_tzr    s   
@C	B
1gdm  
		%%a(88SB#	NB12gdm  F+FGLLNI)//73 F+FGLLNI)//73F74@EEGI)//73	z	- 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d      j                         }|j                  d	d      j                         }t        j                  ||       |j                  d       }|j                  dd      j                         }	|j                  d	d      j                         }
t        j                  ||	j                  |j                        d
       t        j                  ||
j                  |j                        d
       d\  }}t        ||d      j                  |       }t        ||      }|j                  d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  r5   r"   r'   r=   r  r  24hF)
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rV   r#   r$   r%   r7   r&   r
   r   rG   r_   r`   tz_localizerA  )r2   r8   r9   r:   random_valuests_1result_1result_2ts_no_tzresult_3result_4ts_2result_5result_6s                 r   -test_resample_origin_epoch_with_tz_day_vs_24hr    s   GJE3
UCf
-
5
5d
;CII))!,<<SXFM-s+D}}S}1668H}}U7}388:H8X. %H  W 5::<H  w 7<<>H8X%9%9#&&%AeT8X%9%9#&&%AeT HJE3
UCf
-
5
5d
;C-s+D}}S}1668H}}U7}388:H8//5x7K7KD7QR8//5x7K7KD7QRr   c                    
 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 ]9  }|j                  d|      j                         }t        j                  ||       ; t        d
      }t        d
      }t        ||d      j                         }t        t	        j
                  t        |            |	      }ddg}	 |ddg|	      }|j                  ddd      j                         }t        j                  ||       ddg}	 |ddg|	d      }|j                  ddd      j                         }t        j                  ||       ddg}	 |ddg|	      }|j                  ddd      j                         }t        j                  ||       ddg}	 |d
d g|	      }|j                  ddd!      j                         }t        j                  ||       d"d#g}	 |d d
g|	      }|j                  ddd      j                         }t        j                  ||       y )%NAmerica/Chicagor=   c                     t        | t        |D cg c]  }t        |       c}|d      j                              S c c}w )NrY  T)r6   	ambiguousr'   )r
   r   r   rV   )r   
timestampsr6   trA  r2   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-02rY  z2013-11-03 23:591hr5   r'   g      8@g      9@z
2013-11-03r  r8   r  r  z2013-11-02 22:00-05:00z2013-11-03 22:00-06:00g      7@       @z-2hr  z2013-11-03 21:00-06:00g      6@      @r  z2013-11-02 02:00-05:00z2013-11-03 02:00-06:002hz2013-11-02 23:00-05:00z2013-11-03 23:00-06:00r  z-1hz2013-11-02 01:00-05:00z2013-11-03 01:00:00-0500r<   )r   r   rV   r
   r#   onesr&   r   rF   r_   r`   )r2   r  r8   r9   r:   r   r   r  ri   expected_tsrA  s   `         @r   )test_resample_origin_with_day_freq_on_dstr    sk   	B
 lr*E
&2
.C
UCd
+
3
3D
9C	C!	-BtTl\<,HIHG[%> 1S0446
vx01
 lr*E
&2
.C
UCd
+
3
3D
9C	C!	-B+-EFKtSk;7H[[WU[;??AF68,+-EFKtSk;UCH[[wu[=AACF68,+-EFKsDk;7H[[WT[:>>@F68,+-EFKtSk;7H[[WU[;??AF68,+-GHKsDk;7H[[WT[:>>@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'  rI   r   r"   r'   r=   r~   r   r  r6  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        dd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }d}t        j                  t        |      5  |j                  dd	      j                         }d d d        t        d
dd      }t        j                  j                  |       y # 1 sw Y   8xY w)Nrv   z
12/31/2000r"   r'   r  r   r   r  r  zJan-2000zDec-2000rj  r5   )r   rV   r
   r#   r$   r%   r7   r&   r_   r  r  r   rG   r   r  r(   )r2   r:   r   r   ri   	exp_indexs         r   &test_resample_to_period_monthly_bugletr    s     Z
.
6
6t
<C			%%a(88SB#	NB
?C		#	#M	= 9T16689Z#>I&,,	29 9s   ;"CCc                     t        t        j                  j                  d      j	                  ddd      t        ddd      d	      } | j                         j                  d
      j                         j                         }d}t        j                  t        |      5  | j                  d
      }d d d        j                  d       }t        j                  ||       y # 1 sw Y   2xY w)Nr"   r   rD   r  z
2012-01-01rM  r   rm   rB   r=   z+Resampling with a PeriodIndex is deprecatedr   c                 "    | j                         S r   rG   r   s    r   r}   z&test_period_with_agg.<locals>.<lambda>(  s    affh r   )r
   r#   r$   r%   integersr   to_timestampr   rG   	to_periodr_   r  r  r^   r`   )s2r   r   rsri   s        r   test_period_with_aggr    s    	
		a ))!Q3<c2>
B  ))#.335??AH
7C		#	#M	= [[VV&'F68, s   !C$$C-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                  |       |_        d}t        j                  t        |      5  |j                  d      j                  d      j                         }d d d        d}t        j                  t        |      5  |j                  d      j                  d       }d d d        t        j                         y # 1 sw Y   gxY w# 1 sw Y   ,xY w)Nr@   i  rl   r      r   r"         r  )ID	timestampr   r   rn   r  :DataFrameGroupBy.resample operated on the grouping columnsr   r  rU   z7DataFrameGroupBy.apply operated on the grouping columnsc                 @    | j                  d      j                         S )NrU   )r   rF   r   s    r   r}   z(test_resample_segfault.<locals>.<lambda>?  s    AJJv4F4J4J4L r   )r   r   from_records	set_indexr(   rV   r_   r  DeprecationWarningrX   r   rF   r   r   )r2   all_wins_and_wagersro   r   ri   r   s         r   test_resample_segfaultr
  ,  sU    
HT2q"b)1a0	
HT2q"b)1a0	
HT2q"b)1a0	
HT2q"b"-q!4	 
		%B
i  xx%BH
FC		#	#$6c	B 9D!**626689
CC		#	#$6c	B N::d#))*LMN&(+9 9N Ns   //E"EEEc                 6   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 d}t        j                  t        |      5  |j                  d      j                  d      j                         }d d d        |j                  j                  t        j                  k(  sJ y # 1 sw Y   3xY w)Nz
2016-01-01rw   Wr   )r@   r@   r"   r"   )rD   rt   r   r   int32r   )dater   valr  r8  r  r   r   )r   r   rV   r
   r  r   r"  r  rC   r#   r  r_   r  r  rX   )r2   ro   ri   r   s       r    test_resample_dtype_preservationr  C  s     
\13GOOPTU!,g6	

 i  [[$$&F::rxx'''
FC		#	#$6c	B <G$--d399;<::rxx'''< <s   ./DD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   )r@   r   r@   rw   z
2017-01-01z
2017-01-04r'   rm   rM  cubic)r   importorskipr   r   rV   astyper   rG   interpolater_   r`   )r2   ro   r   ri   s       r   test_resample_dtype_coercionr  X  s    
+, |	B	2ZlCKKDQ	RByy#,,S1668=II'RH[[c"'')55g>F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 )	Nrv   r   r  r   r"   r'   r  zW-SUN)r   rV   r
   r#   r$   r%   r7   r&   r   rG   r_   r`   )r2   r:   r   r  r   s        r   test_weekly_resample_bugletr  h  s    
Zc2
6
>
>t
DC			%%a(88SB#	NBC %%'I{{7#((*H9h/r   c                     t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  d       y )N4/16/2012 20:00i  rM  r   r"   r'   r   )	r   rV   r
   r#   r$   r%   r7   r&   r   r2   r  r   s      r   test_monthly_resample_errorr  r  sR    ($SAII$OE			%%a(88UDE	RBKKr   c                     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@rl   100nsr   r'   d   rG   rB   )r   r   r   r
   r   r&   r   tseriesr   Nanor^   floatr_   r`   )r8   	exp_startindxr   rp   ri   exp_indxrf  s           r   test_nanosecond_resample_errorr&  z  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                         }d}t        j                  t        |      5  |j	                  dd	
      j                         j                  d      }d d 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                         }d}t        j                  t        |      5  |j                  dd      j	                  dd	
      j                         }d d d        j                  d      }|j                  t        dd      z   t        dd      z
  |_
        |j                  j                  |       j                  d      |_
        |j                  j                  dk(  sJ t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)N1/1/20124/1/2012100minr5   r'   r   r  r   r  r  r9   howr@   r-   r=   inferr~   rQ   )r   rV   r   rl  r   rG   r_   r  r  r  r(   r   
_with_freqr6   r   shift)r2   r:   ro   ri   r   r   rf  s          r   test_resample_anchored_intradayr1    s    Z(
;
C
CD
IC	399C	(B[[##%F
BC		#	#M	= S;;t(;388:GGEGRSNNi4(9Q+<<<N^^++D1<<WEHN>>$&&&&(+[[f[-224F
BC		#	#M	= Ihhqsh#,,T,AFFHI


u

%C		Ia..1c1BBCI		!!$'227;CI99>>T!!!&#&!S SI Is   12I53III$c                    t        ddd      j                  |       }t        |j                  |      }|j	                  d      j                         }d}t        j                  t        |      5  |j	                  dd	
      j                         j                  d      }d d 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                         }d}t        j                  t        |      5  |j%                  dd      j	                  dd	d      j                         }d d d        |j                  d      }|xj                  t        dd      t        dd      z
  z  c_
        d|j                  j                  _        t        j                  |j                  _        |j                  j                  |       |_
        t        j"                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr(  r)  r*  r5   r'   rn  r  r   r  r  r9   r+  r@   r-   r=   r~   r.  )r  rQ   )r   rV   r   rl  r   rG   r_   r  r  r  r(   r   _datar6   r   
no_default_freqr   r0  )r2   r:   ro   ri   r   r   s         r    test_resample_anchored_intraday2r6    s   
Z(
;
C
CD
IC	399C	(B[[##%F
BC		#	#M	= S;;t(;388:GGEGRSNNi4(9Q+<<<N $HNN>>HNN^^++D1HN&(+[[f[-224F
BC		#	#M	= 
HHQSH!**4hv*NSSU 	
 $$$/HNNi4(9Q+<<<N $HNN>>HNN^^++D1HN&(+'S S
 
s   12I04I=0I:=J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:00rM  r5   r   r@   )r(   rV   r   rG   r&   )r>   r2   r   r  s       r    test_resample_anchored_intraday3r8    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 )Nrv   z
12/31/2002)r(   rV   r   rG   )r>   r6   r2   r   s       r   !test_resample_anchored_monthstartr<    s9    	!*l	;Bxx%BHKKr   z
label, secr  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.206r   400msr   z2014-10-15 23:00:00r"   2200msrD   r'   )rR   rT   z2014-10-15 23:00:00)r   rQ  r
   r#   r$   r%   r7   r   rG   r(   r   )rR   secindex1index2r(   r*   ri   s          r   test_resample_anchored_multidayrD    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 )Nrv   r   rI   r   r"   r'   rU   rO   r~   r   z1999-12-31 23:55rw   r  )r2   r:   r   ri   ex_indexs        r   test_corner_casesrG    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                  |      |_         d}t        j                  t        |      5  |j                  dd	      j                         }d d d        t              d
k(  sJ |j                   d   t        dd      k(  sJ y # 1 sw Y   9xY w)Nz
2000-04-28z2000-04-30 11:00rM  r5   r  r   r   r  r  r@   r   z2000-04rj  )	r(   rV   r_   r  r  r   rG   r&   r   )r>   r2   r   r   ri   s        r   test_corner_cases_daterI    s    	!,0B	MBxx%BH
?C		#	#M	= 9T16689v;!<<?fYS99999 9s   	"B##B,c                     t        ddd      j                  |       }t        t        j                  j                  d      j                  t        |            |      }|j                  d      j                          y )Nr  iP  r*   r   r"   r'   r   )
r   rV   r
   r#   r$   r%   r7   r&   r   rG   r  s      r   test_anchored_lowercase_bugletrK    s[    (%cBJJ4PE			%%a(88UDE	RBKKr   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-12rw   rM  r   r"   r'   20minrG   rF   )r   rV   r
   r#   r$   r%   r7   r&   r   	aggregaterS  r   )r2   r:   r   ri   s       r   test_upsample_apply_functionsrP    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 )NrM     rM  r   r"   r'   r=   )r   rV   r
   r#   r$   r%   r7   r&   takepermutationr   rF   
sort_indexr_   r`   )r2   r:   r   ri   rf  s        r   test_resample_not_monotonicrV  	  s    
\3S
9
A
A$
GC			%%a(88SB#	NB	&&q)55c"g>	?B[[!!#F
--/
"
"3
'
+
+
-C63'r   rC   rA   r  rm   float32z-Empty groups cause x.mean() to return float64)reason)marksc                    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  r@   r   rD   r"   rB   rI   c                 "    | j                         S r   r  r   s    r   r}   z/test_resample_median_bug_1688.<locals>.<lambda>-       r   )
r   r   rV   r   r   r   r  r_   r   median)rC   r2   ra   ro   ri   rf  s         r   test_resample_median_bug_1688r_    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 )Nrv   z4/1/2000r   c                 "    | j                         S r   r  r   s    r   r}   z+test_how_lambda_functions.<locals>.<lambda>:  s    qvvx r   foobarc                 "    | j                         S r   r  r   s    r   r}   z+test_how_lambda_functions.<locals>.<lambda>C  r]  r   c                 &    | j                  d      S Nr@   )ddofr  r   s    r   r}   z+test_how_lambda_functions.<locals>.<lambda>C  s    AEEqEM r   c                 "    | j                         S r   r  r   s    r   r}   z+test_how_lambda_functions.<locals>.<lambda>K  s    !&&( r   c                 &    | j                  d      S rf  rh  r   s    r   r}   z+test_how_lambda_functions.<locals>.<lambda>K  s    QUUU] r   )rb  rc  F)check_names)r(   rV   r   r   rG   r_   r`   rz   r  rn   rO  )r>   r2   r   ri   rf  foo_expbar_exps          r   test_how_lambda_functionsrn  6  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  r   r@   rD   r[  r   r  rw   rP  r5   r   r'   YS)r   r   rV   r   r   rF   )r2   r8   r9   bad_indro   s        r   test_resample_unequal_timesrr  Q  sb    T1a#E
4B
"C'2::4@G	GQ<w	/B KKr   c                 x   t        ddd      j                  |       }t        t        j                  d      |      }t        j
                  |j                  d<   t        |d   |d	   d
      j                  |       }|j                  |d      }|j                  |dd      }|j                  |dd      }|j                  d      j                  d      }|j                  d      j                         }t        j                  ||       t        j                  ||       t        j                  ||       y )Nz
2002-02-02rw   rP  r         @r'   r"   r   rT   10minr5   bfill)r(   r4  )r(   r4  r2  r3  10Minr1  )r   rV   r
   r#   r   r   r{   r5  reindex_liker   rv  r_   r`   )	r2   i30r*   i10s10s10_2rlr10_2r10s	            r   test_resample_consistencyr  ]  s    \17
;
C
CD
ICryy~S)AAFF1I SVSW7
3
;
;D
AC
))#g)
.CIICqI9E	
G1	5BJJw%%A%.E
**W

#
#
%C 5#&5%(5"%r     rl   r   r   ru   rD   r   r   r   dates1rw   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r6   rz   r   r@   r   r"   r"   r@   r'   r6   keyr   rV   r   r#   r   r&   r  r   r  r   anyr(   r/  r_   r   rX   r   r  r2   ro   ri   exp_idxr   s         r   test_resample_timegrouperr    s     % ((.E	RYYs5z%:;	<B\\#''-335FN gdm	 
 #/w?H	#w||~!2248&(+ZZTs34::<F&(+r   c           	         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   r  r  r  )r   r  r   r  r   r  r  r  s         r   test_resample_timegrouper2r    s   % ((.E	RYYs5z%:3u:AVW	XB\\#''-335FN gdm	 
 O4c
H
 
#w||~!2248&(+ZZTs34::<F&(+r   c                    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=   r5   c                 "    | j                         S r   nuniquer   s    r   r}   z'test_resample_nunique.<locals>.<lambda>  s    		 r   r  )r   r   r(   rV   r   rX   r   r  r   rz   r  r_   r`   )r2   ro   rp   rc   r   r  ri   s          r   test_resample_nuniquer    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"   )rD   rw   r  r   r  rD   r=   r   r  lev0lev1)rb  r  )r   r#   r$   r%   r7   r	   r  r  r   absr(   rV   r   rc  from_arraysrn   r   r   r  r_   r  )r2   ro   ri   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   r  r   s    r   r}   r}     s    !))+ r   c                 @    | j                  t        j                        S r   )r^   r
   r  r   s    r   r}   r}     s    !%%' r   c                 $    | j                  d      S )Nr  )r^   r   s    r   r}   r}     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 )
NrK  rL  rM  r5   rN  rO  rA   rB   r   )
r   rV   r]   r
   r   r&   r   r  r_   r`   )	r  r2   r(   rC  index3r*   rp   ri   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   nr  i k)rl   r  i  c                    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"   z
2015-08-27rl   rI   r   r   rA   r'   rP  r,  rO   sideTr@   rT   	minlengthFcopy)r#   r$   r%   r   rV   r
   r  r  choicer   r  r(   rI   rJ   r   searchsortedlexsortr_bincountr&   r_   r`   )r  r  r2   prngdrr   r~   ixvalsbinssortermaskrf   rO   s                 r   test_resample_group_infor    s    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-19rI   r   r"   r'   r  r,  rO   r  r@   r  rA   Fr  )r   rV   r
   r#   r$   r%   r7   r  r   sizer(   rI   rJ   r  r   r  r&   r  r_   r`   )	r2   r  r  r   r~   r  r  r  rO   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  r*   r2   UTCzEurope/Madridi 8XiFXrM  r5   rD   r'   r:  )r   r   r   r   r   dtr  
tz_convertr   rF   r_   r   )df1dti1df2dti2ro   ri   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  rY  r  r@   r"   r'   1dr5   z
2016-11-02z
2016-11-24r   r  r  r   r  )r   r  rV   r   rX   r   r   r   r#   r   r_   r   )r2   r(   ro   ri   expected_index_valuesr   s         r   !test_groupby_with_dst_time_changer  G  s     	*,?@UK	%	&	 
 
Aq6	'BZZT*+002F&l1Bgdm  /0E#266(R-0C58FH&(+r   c                 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[  ru   rw      z
US/EasternrY  rD   r'   r=   r5   r  r9  r@   rA  r6   )
r   r   rV   r   r(   	normalizer_   r   r   rF   )r2   ra   ro   r   s       r   test_resample_dst_anchorr  Z  s    
$Ar23
E
M
Md
SC	A3c	"B
**,3
7
?
?
EC!C(H"++3+/335x@KKTK 
""$C$A&'Ltgdm		
r   c           	         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  rA   rB   rI   rJ   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 Frequencyr9  )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   rV   r   r  r   r   r^   r_   r   )r2   ra   r   ro   r,  r  ri   r   rs2r  	expected2rs3result3	expected3rs4result4	expected4df_dailyrs_dresult_d
expected_ds                        r   test_resample_dst_anchor2r  n  s   
l^gdm  388_F	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/Berlinr  rl      rw   r  r   rD   r'   rM        @r   r   )pytztimezoner   r   localizerV   r
   r   rG   r#   r   r_   r`   )r2   rA  r  r  ri   r   s         r   test_downsample_across_dstr    s    		'B	$B	Br{{2=EEdKEAU#,,S1668F	bffSE!R!#>FFtLH 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/AmsterdamrY  )ru   r   r      r   )r(   r   1Wr  *   r  z
2017-04-02r  r  r'   )r   r   rV   r   rF   r_   r   )r2   ro   ri   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/LondonrM  r  rB   r  z
2013-04-07rD   )r6   ry   rA  )	r   rV   r
   r#   rm   r   rG   r_   r`   )r2   rg   r*   ri   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  ru   r   r   rD   r  r5   r  zAmerica/Havanar'   r8  z
2018-11-03ry   T)r  r=   )g      @g      <@g     @F@)r   r   rV   r  r  r  r   r&   r   rX   r   rG   r   r_   r   )	r2   r8   r9   r(   r   	dataframeri   ra   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"   r   rD   r   ru   r'   )r  r	  r
  )r        @      &@1sr  r  2sr  3s60s)	r   r   NaTrV   r   r_   r   r   rG   )	r2   r(   frameindex_1sframe_1sindex_2sframe_2sindex_3sframe_3ss	            r   test_resample_with_natr    sM   FF!FF!!	
 gdm 
 &e4EMgdm  ):H%...335x@35JKLTTH #tH5H%...335x@345==dCH#h/H%...335x@%../446Ar   c           	         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  r@   r   r   r  r'   z
2016-01-15r   2Dr   )r(   rz   )r   r   r(   rV   r
   r   r  r   r   firstr_   r`   )r2   r  ro   rf  re  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                    d }| j                   j                  |      | _         d}| j                  d      j                  ||      }| j                  d      j	                         j                  |      }t        j                  ||       | j                  d      j                  ||      }| j                  d      j	                         j                  |      }t        j                  ||       y )Nc                 2    t        j                  |       |z  S r   r#   rG   r   add_args     r   re   z3test_resample_apply_with_additional_args.<locals>.fC      wwt}w&&r   rl   r=   )r"  )r(   rV   r   r   rG   multiplyr_   r`   )r   r2   re   
multiplierri   r   s         r   (test_resample_apply_with_additional_argsr&  A  s    ' <<''-FLJ__S!'':6Fs#((*33J?H68, __S!'':'>Fs#((*33J?H68,r   c                  8   d } d}t        dddt        dd            }d	}t        j                  t        |
      5  |j                  d      j                  d      j                  | |      j                  t              }d d d        d	}t        j                  t        |
      5  |j                  d      j                  d      j                         j                  |      }d d d        t        j                         y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nc                 2    t        j                  |       |z  S r   r   r!  s     r   re   z4test_resample_apply_with_additional_args2.<locals>.fU  r#  r   rl   r@   r"   r   2017r  r'   r  r   r   r=   )r   r   r_   r  r  rX   r   r^   r  r"  rG   r$  r   )re   r%  ro   r   ri   r   s         r   )test_resample_apply_with_additional_args2r*  S  s    ' J	#:fb+I	JB
FC		#	#$6c	B PC))#.221jAHHOP
FC		#	#$6c	B M::c?++C0557@@LM&(+P PM Ms   AD'>DDD)r@   r"   r   zn1, freq1, n2, freq2)
)   r*         ?r   )<   r*   r@   r   )i  r*   r@   rM  )r-  r   r@   rM  )i`T  r*   g      ?r=   )r  r*   r@   r=   )i  r*   r,  r=   )i  r   r@   r=   )r   rM  r,  r=   )   rM  r@   r=   c                 h   | |z  }||z  }t        dd|      j                  |      }t        t        t	        |            |      }	|	j                  t        |      |z         j                         }
|	j                  t        |      |z         j                         }t        j                  |
|       y )Nz
1991-09-05z
1991-09-12r5   r'   )
r   rV   r
   r   r&   r   r   rG   r_   r`   )n1freq1n2freq2r  r2   n1_n2_ra   serr
  r  s               r    test_resample_equivalent_offsetsr7  d  s    $ q&C
q&C
\<e
<
D
DT
JC
s3x
,Cll3s8e+,113Gll3s8e+,113G7G,r   z"first,last,freq,exp_first,exp_last))1991090519920406r=   r8  19920407)z19910905 00:0019920406 06:00r=   r8  r:  )19910905 06:00r;  rM  r<  z19920406 07:00)19910906r9  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 )Nr-   r  )
r   r  r6   rV   r   r   r   frequencies	to_offsetr   )r  r   r6   	exp_firstexp_lastr2   ri   r   s           r   test_get_timestamp_range_edgesrF    s     5MEuzz*2248E$<DTYY'//5D)$I"H::!!++D1D'tTEF8$HXr   
duplicatesTFc           	      T   t        ddd      j                  |      }t        t        d      |      }t	        ||dz   d      }| r	ddg|_        d	}t        j                  t        |
      5  |j                  d      j                  t        j                        }d d d        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 # 1 sw Y   xY w)Nz
2012-01-31r   r   r8   r6   ry   r'   r"   r   r   z!using DatetimeIndexResampler.prodr   rn  r   r.  r-     r  r  i  i  r   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31QE-DECr5   r   )r   rV   r
   r   r   rn   r_   r  r  r   r   r#   rH   rW   rA   r   r   )rG  r2   r(   r   ro   r   ri   r   s           r   test_resample_apply_productrL    s     \bAII$OE	b		'B	"q&)	*B3Z

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

'$-

H &(+2 2s   -/DD'z$first,last,freq_in,freq_out,exp_last))
2020-03-28
2020-03-31r=   r  z2020-03-30 01:00)rM  
2020-10-27r=   r  2020-10-27 00:00)
2020-10-25rO  r=   r  z2020-10-26 23:00)rM  rN  r  r=   z2020-03-30 00:00)rM  rO  r  r=   rP  )rQ  rO  r  r=   z2020-10-26 00:00r  r   freq_infreq_outrE  c           	         t        dt        | ||d      j                  |            }|j                  |      j	                         }t        dt        | ||d      j                  |            }t        j                  ||       y )Nr  r  r  )r
   r   rV   r   r"  r_   r`   )	r  r   rR  rS  rE  r2   r   ri   r   s	            r   #test_resample_calendar_day_with_dstrU    s    N 
Zt'6HIQQRVW
B [["((*F5(6HIQQRVWH 68,r   )rI   rJ   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   r   rI  r@   rn  r"   )	min_countrN  rK  r5   r'   )
r   rV   r
   r#   r   r   r   r   r_   r`   )r  r2   r(   r6  ri   r   s         r   +test_resample_aggregate_functions_min_countrY    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 23r  r,  r   )r   r@   r   r"   )r(   rn   r   rC   z
2000-01-02z
2000-01-03r=   r@   r   r  )r   r   rV   rR  r(   r   rJ   r#   r   r_   r   )any_unsigned_int_numpy_dtyper2   ro   ri   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  r*   100YE)r2   r6   )r@   rw   r"   r   rD   r   r@   rw   r"   r   rD   r   r@   rw   r"   r   rD   r'   200YE)	z
0300-12-31z
0500-12-31z
0700-12-31z
0900-12-31z
1100-12-31z
1300-12-31z
1500-12-31z
1700-12-31z
1900-12-31zdatetime64[s]z	200YE-DECr5   )	r  r        @rt  r  r`  rt  r  r`  )
r   r
   r   rG   r   r#   rW   r  r_   r`   )rg   r6  ri   expected_idxr   s        r   test_long_rule_non_nanorb    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      d   j                         }t	        g ddd	      }t        g |dd
      }t        j                  ||       y )N)r   r   r   zdatetime64[ns, Atlantic/Faroe]r  r~   r8   )onrQ   rR   r  r   )r6   rz   rC   rm   )r(   rz   rC   )r   r  r   rF   r   r
   r_   r`   )ro   ri   ra  r   s       r   "test_resample_empty_series_with_tzre  !  s    	"+	,	3	3	/0
B [[4fW[U	ce  !
T)IL b89MH68,r   zfreq, freq_depr))2ME2M)2QE2Q)z2QE-SEPz2Q-SEP)1YE1Y)2YE-MARz2Y-MAR)rj  1A)rl  z2A-MARc                 t   d|dd   d}d| dd   d t        t        d      t        ddd	      
      }|j                  |       j	                         }t        j                  t        |      5  |j                  |      j	                         }d d d        t        j                  |       y # 1 sw Y    xY wN'r@   z$' is deprecated and will be removed z!in a future version, please use 'r  rl   20130101r   r   r'   r   	r
   r   r   r   rG   r_   r  r  r`   r6   	freq_deprdepr_msgr*   r   ri   s         r    test_resample_M_Q_Y_A_deprecatedrv  1  s     9QR=/!EFH'QRz<uRy
:C LMAzz$$$&H		#	#M	B .I&++-.68,. .   / B..B7))2BME2BM)2BQE2BQ)z2BQE-MARz2BQ-MARc                 t   d|dd   d}d| dd   d t        t        d      t        ddd	      
      }|j                  |       j	                         }t        j                  t        |      5  |j                  |      j	                         }d d d        t        j                  |       y # 1 sw Y    xY wro  rr  rs  s         r   test_resample_BM_BQ_deprecatedr}  I  s     9QR=/!EFH'QRz<uRy
:C LMAzz$$$&H		#	#M	B .I&++-.68,. .rw  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  r8   r6   ry   r2   r   r'   r9  rO   r.    r@   r"   r5   rw   r   ;   M8[]
r   r   r   r   r   r   rV   r  r_   r   )r2   ra   ro   groupedri   exp_dtir   s          r   test_resample_ms_closed_rightr  ]  s    
<fd
NC	D#;c	*Bkk$wk/G\\^F	$1	xa344gdm  	q!$htQ1b&ABC fs4&]  &(+r   r   r  c                    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 )Nr  r  r  r  r   r'   rO   r.  r  r@   r+  r  r"   r   rw   r5   r  r  r  r  )r6   r2   ra   ro   r  ri   r  r   s           r   test_resample_c_b_closed_rightr  m  s    <fd
NC	D#;c	*Bkk$wk/G\\^FT1b!T1b!T1a T1a 		
  gdm  q"%q!$q!$q!Q+		
 
 fs4&]  &(+r   c           
      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-26rt   r  )ry   r6   r2   )r@   r"   r   rw   rD   rt   r'   r   rO   r   i  r   r           r5   )r  g      @g      @g      @)	r   r
   r   rG   r   r   rV   r_   r`   )r2   ra   r6  ri   r  r   s         r   test_resample_b_55282r    s    
\15t
DC
#3
/C\\#gW\=BBDFT1b!T1b!T1b!T1b!		
  gdm  H 68,r   pyarrowrA  r  z/TODO: Set ARROW_TIMEZONE_DATABASE env var in CI)	conditionrX  c                 8   t        t        dd      d      }| |j                  j                  |       }t        t	        j
                  dt        j                        |      }|j                  d      j                         }t        j                  ||       y )Nz
2020-01-01rD   r  ztimestamp[ns][pyarrow]r   r'   r8  )r
   r   r  r  r#   r   rm   r   rG   r_   r`   )rA  rg   r   ri   s       r   test_arrow_timestamp_resampler    su      L!4<T
UC	~ff  $bii4C@Ht$))+F68,r   )r   	functoolsr   numpyr#   r   r  pandas._libsr   pandas._typingr   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r	   r
   r   r   r   r   pandas._testing_testingr_   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   pandas.core.resampler   r   pandas.tseriesr   pandas.tseries.offsetsr   fixturer   r    r)   r2   r>   rj   rq   markparametrizer   r   r   filterwarningsr   r   r   r   r   r  r  r  r  r   r#  r'  r/  r7  rD  rI  rT  rW  rg  rt  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&  r1  r6  r8  r<  rD  rG  rI  rK  rP  rV  r0   xfailr_  rn  rr  r  r  r  __annotations__r  r  dates3r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r&  r*  r7  rF  rL  r   rU  rY  r\  rb  re  rv  r}  r  r  r  
skip_if_nor  r   r   r   <module>r     s	         * - ) )     / 4
 # )     7 7 ./ 0 	% 	%!+H	  )89  	
 	
*-+	2--0- F )89 L6		6 )89-	-, )89,	,412=,@7(t.< JK: L: $.G /G '41	0 2	0("?:,- !=>!LM	- N ?	-$0
$,$*$`,(	0 	VFGDE	VFGDE	9cBC--<(
8, !OP- Q- A'T (T-
4 	()	9234d+	()	5

4

4 
HlFHU	+	+ OYfh#WX+ Y+"4JGBS84-n-
3- ,.(*- 0( '6,8 !LM N sgu5E'FGF HF$2:)( ++##F $ 	
	
''(F6	&0 T2qT1aT2qT1aT2qT1b!_  2AJ"&&F1QK'266(2VABZ? _  &&F	bffX	% 666":;, <,& 666":;, <,0->6 
'"
 	5  
-
- ufo.o.( / /(:((,@,&(Yx
-,&- ,$B@%*-$," i(	- ) 	- (

 e}5, 6,, *"F---$'-36-BE-G"F- !@A	- B	-,0-2-  	-	- 	-	-,  #s,, , -,<-, y++##-/H $ 	
	- -r   