
    bMh"                       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j+                    d             Z,ej+        d             Z-ej+        d             Z. ej+        g d          d             Z/ej+        d             Z0d Z1d Z2ej3        4                    ddg          ej3        4                    ddd fdd fg          d                         Z5d Z6d  Z7ej3        8                    d!          ej3        4                    ddg          ej3        4                    d"g d#          d$                                     Z9ej3        4                    ddg          d%             Z:ej3        4                    ddg          d&             Z;d' Z<d( Z=d) Z>d* Z?ej3        4                    d+g d,          d-             Z@ej3        4                    d.d/d0g          d1             ZAej3        4                    d.d2d0g          d3             ZBd4 ZCd5 ZDd6 ZEd7 ZFej3        4                    d.g d8          ej3        4                    d9g d:          d;                         ZGd< ZHd= ZId> ZJd? ZKd@ ZLdA ZMej3        4                    dBdCdDdEdFdGgdHdDdEdIdGgd0dJdKdLdGgg          dM             ZNdN ZOdO ZPdP ZQdQ ZRej3        4                    d.g dR          dS             ZSej3        4                    dTdUdVg          dW             ZTdX ZUdY ZVej3        4                    dZd[d\id[ ed]          id^d_d`d[daidbdcig          dd             ZWej3        4                    d[dedfdgdhdi eX            g          dj             ZYej3        4                    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j3        4                    d.g d}          d~             Zkej3        4                    dddgddgg          d             Zld Zmd Znd Zod Zpd Zqej3        4                    dddd ejr        dej3        s                    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j3        4                    dexe|e}g          d             Z~ej3        4                    dexe|e}g          d             Zd Zd Zej3        4                    dd d d gg d          d             Zej3        4                    dddg          ej3        4                    dg d          d                         Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej3        4                    dg d          ej3        4                    dg d          d                         Zej3        4                    dg dĢ          dń             Zej3        4                    dddg          dɄ             Zej3        4                    dg dˢ          dededededef
dф            Zej3        4                    dg dҢ          dӄ             ZdԄ ZdՄ Zdք Zej3        4                    dg dآ          dل             Zej3        4                    dg dڢ          dۄ             Zd܄ Zej3        4                    d.ddg          d.efd߄            Zd Z ej        d          ej3        4                    dd ejr        dej3        s                     e            d                    g          d                         ZdS )    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        i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/resample/test_datetime_index.py_index_factoryr   '   s    r   c                      dS )NMinr   r   r   r   _index_freqr!   ,   s    5r   c                     t           j                            d                              t          |                     S )N   )nprandomdefault_rnglenindexs    r   _static_valuesr*   1   s,    9  ##**3u::666r   )smsusns)paramsc                     | j         S r   )param)requests    r   unitr3   6   s
    =r   c                      dd} | S )zI
    Series with date range index and random data for test purposes.
    Dc                     t          | ||          }t          t          j                            d                              t          |                    |          S )Nfreqr#   r(   )r   r   r$   r%   r&   standard_normalr'   )startendr8   rngs       r   _simple_date_range_seriesz;simple_date_range_series.<locals>._simple_date_range_seriesA   sN    $///bi++A..>>s3xxHHPSTTTTr   r5   r   )r=   s    r   simple_date_range_seriesr?   ;   s"    U U U U %$r   c                    |                      |          }t          t          j        dgt	          |          z            |d          }t          t          d                    }|                    |          }|                                 g d}|D ]}|	                    |d d           t          t          d          d	d	
          }|                    |          }|                                 g d}|D ]}|	                    |d d           |j
        dk    sJ t          |                                                                          sJ dgdgdz  z   }|ddd         }	|	                    |dd                    }	t          |	d                               |          }	t          ||	          }
|                    d          }t#          j        ||
           d S )N   int64r)   dtype   r7   summeanprodminmaxvarTaltnumeric_onlyrightr8   closedlabel!
  i 
  r   5minr(   rG   )as_unitr   r$   arrayr'   r   r   groupbyohlc_cython_agg_generalngroupsr   rH   allappendr   aggtmassert_series_equal)r)   r3   dtir+   bgfuncsfarridxexpectresults               r   test_custom_grouperrk   H   s   
--

Crxc#hh''s'BBBAVAYYA			!A FFHHH888E > >	aT====VAYYwg>>>A			!AFFHHH888E > >	aT====9??      #d

C
a1f+C
**SX

C
&
)
)
)
1
1$
7
7CCs###F UU5\\F66*****r   c                    t          t          d          dd          }|                     |          }t          t          j                            d                              t          |          df          |d          }|                    |          	                    d          }t          |j
                  dk    sJ t          |j                  d	k    sJ d S )
NrE   rP   rQ   r#   
   float64rC   rG   rT   )r   r   rW   r	   r$   r%   r&   r'   rY   r_   columnsr)   )r)   r3   rc   rb   dfrs         r   test_custom_grouper_dfrr   l   s    VAYYwg>>>A
--

C	
	a  ''S277s)
 
 
B 	

1%  Aqy>>Rqw<<4r   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r)   zclosed, expectedrP   c           	          t          | j        d         | dd                                         | dd                                         | dd                                          gt          dddd	          
          S )Nr   rA         1/1/2000   rV   r)   periodsr8   namer(   )r   ilocrH   r   r+   s    r   <lambda>r~      sk    fAacFKKMM1QrT7<<>>1RSS6;;==I QV'RRR   r   leftc           	          t          | d d                                         | dd                                         | dd                                          gt          dddd                    S )	NrE   rm   1/1/2000 00:05   rV   r)   ry   r(   )r   rH   r   r}   s    r   r~   r~      sj    f2A2q2w||~~qv{{}}= $af7     r   c                    | }|j                             |          |_          ||          }|j                             |          |_         |                    d|d                                          }t	          j        ||           d S )NrV   rP   rR   rS   )r)   rW   resamplerH   r`   ra   )seriesrR   expectedr3   r+   rj   s         r   test_resample_basicr   x   s~    4 	Agood##AGx{{H^++D11HNZZvWZ==BBDDF68,,,,,r   c                 V   t          t          d          t          ddd                              |           d          }|                    d                                          }t          g dt          dd	d                              |           d          }t          j        ||           |                    d                                          }t          g d
t          dd	d                              |           d          }t          j        ||           d S )N	   rw   rJ   rz   r8   Int64rC   3min)r         r   )rA   rx      Float64)	r   ranger   rW   r   rG   r`   ra   rH   )r3   tsrj   r   s       r   test_resample_integerarrayr      s*   	aQU;;;CCDII
 
 
B
 [[  $$&&FQV<<<DDTJJ  H
 68,,,[[  %%''F		QV<<<DDTJJ  H
 68,,,,,r   c                 P   | }|j                             |          |_         |                    d                                          }t	          t          d          dd          }|                    |                              d           }t          j	        ||           d S )N5MinrE   r   rQ   c                     | j         d         S NrU   r|   xs    r   r~   z-test_resample_basic_grouper.<locals>.<lambda>   s    r
 r   )
r)   rW   r   lastr   r   rY   r_   r`   ra   )r   r3   r+   rj   grouperr   s         r   test_resample_basic_grouperr      s    Agood##AGZZ$$&&F6!99V6BBBGyy!!%%&:&:;;H68,,,,,r   z@ignore:The 'convention' keyword in Series.resample:FutureWarningzkeyword,value))rS   righttt)rR   r   )
conventionstartttc                     | j                             |          | _         d| d| d}t          j        t          |          5   | j        di ||i d d d            d S # 1 swxY w Y   d S )NzUnsupported value z for ``matchrV   rV   )r)   rW   pytestraises
ValueErrorr   )r   keywordvaluer3   msgs        r   test_resample_string_kwargsr      s     <''--FL
6u
6
6G
6
6
6C	z	-	-	- 6 655GU#35556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   A!!A%(A%c                    |dk    rt          j        d           | }|j                            |          |_        t	          j        |          }d|d<   d|dd<   d|dd<   d|dd <   |                    |                              |          }t          d	d
dd                              |          |_         t          |
                    ddd          |                      }t          j        ||           d S )NrZ   z!covered by test_resample_how_ohlcr   rA   ru   r#   rv   r   rw   rx   rV   r)   ry   rP   r   )r   skipr)   rW   r$   	ones_likerY   r_   r   getattrr   r`   ra   )r   downsample_methodr3   r+   	grouplistr   rj   s          r   test_resample_howr      s   
 F""7888Agood##AGQIIaLIacNIadOIbccNyy##''(9::HAF  gdmm NW	

6'
99;L   F 68,,,,,r   c           	         | }|j                             |          |_         t          j        |          }d|d<   d|dd<   d|dd<   d|dd <   d }t	          |                    |                              |          j                                        t          dd	d
d                              |          g d          }|
                    d
dd                                          }t          j        ||           d S )Nr   rA   ru   r#   rv   r   c                    t          |                                           rt          j        t          j        d          S | j        d         |                                 |                                 | j        d         gS Nrx   r   rU   r   r]   r$   repeatnanr|   rK   rJ   groups    r   _ohlcz%test_resample_how_ohlc.<locals>._ohlc   Y    ;;?? 	(9RVQ'''
1uyy{{EIIKKBHHr   rw   rx   rV   r)   ry   )openhighlowcloser)   ro   rP   r   )r)   rW   r$   r   r	   rY   r_   valuestolistr   r   rZ   r`   assert_frame_equal)r   r3   r+   r   r   r   rj   s          r   test_resample_how_ohlcr      s   
 	Agood##AGQIIaLIacNIadOIbccNI I I
 			)  ''.5577QV'JJJRR
 
 100  H ZZwgZ>>CCEEF&(+++++r   c                 v   t          j        dt           j                  }t          dt	          |          d                              |           }t          ||d|          }dd	} G d
 d          }|                    d                              |          }|                    d                              d           }|                    d                              t          |                    }|                    d                              t          |d                    }	|                    d                               |                      }
t          j        ||           t          j        ||           t          j        ||	           t          j        ||
           d S )NrE   rD   
2014-01-01dr:   rz   r8   ABr(   rA   c                 :    t          t          |                     S r   strtype)r   as     r   fnz'test_resample_how_callables.<locals>.fn  s    477||r   c                       e Zd Zd ZdS ),test_resample_how_callables.<locals>.FnClassc                 :    t          t          |                    S r   r   )selfr   s     r   __call__z5test_resample_how_callables.<locals>.FnClass.__call__  s    tAww<<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    #d1gg,, r   r#   )r   )rA   )r$   arangerB   r   r'   rW   r	   r   applyr   r`   r   )r3   dataindrp   r   r   df_standard	df_lambda
df_partialdf_partial2df_classs              r   test_resample_how_callablesr     s   9Qbh'''D
<T
E
E
E
M
Md
S
SC	D))	5	5	5B                   ++d##))"--KD!!''(>(>??IT""((55J++d##))'"*:*:*:;;K{{4  &&wwyy11H+y111+z222+{333+x00000r   c                 &   g d}t          ddgdz  it          j        |                    }|j                            |           |_        |                    d                                          }t          dg dit          ddd	
                              |                     }t          j	        ||           |                    d                                          }t          dg dit          ddd	
                              |                     }t          j	        ||           |                    d                                          }t          dddgit          ddd
                              |                     }t          j	        ||           |                    d                                          }t          dddgit          ddd
                              |                     }t          j	        ||           |                    d                                          }t          dddgit          ddd
                              |                     }t          j	        ||           d S )N)z2014-11-08 00:00:012014-11-08 00:00:02r   z2014-11-08 00:00:032014-11-08 00:00:07r   2014-11-08 00:00:08r   r   z2014-11-08 00:00:09z2014-11-08 00:00:102014-11-08 00:00:11r   z2014-11-08 00:00:13z2014-11-08 00:00:14z2014-11-08 00:00:15z2014-11-08 00:00:17z2014-11-08 00:00:20z2014-11-08 00:00:21r   rA      r(   6s)rx   r   rx   r#   z
2014-11-08rx   r8   rz   7s)rx   rm   rx   rA   11srv      r#   13s   ru   17s   r   )
r	   pdto_datetimer)   rW   r   rG   r   r`   r   )r3   r   rp   rj   r   s        r   test_resample_roundingr      s   
 
 
B* 
GaS2X&bnR.@.@	A	A	ABx%%BH[[""$$F	,,,D!<<<DDTJJ  H &(+++[[""$$F	--- D!<<<DDTJJ  H &(+++[[##%%F	2q'E1===EEdKK  H &(+++[[##%%F	2q'E1===EEdKK  H &(+++[[##%%F	2q'E1===EEdKK  H &(+++++r   c                 	   t          t          ddd          t          ddd          dd                              |           }t          t          j                            d                              t          |                    |          }|                    d          	                                }t          |          d	k    sJ |j
        j        g d
k                                    sJ |j        d         |d         k    sJ |j        d         |d         k    sJ |j        d         |j        d         k    sJ |                    d          	                                }t          |          dk    sJ |j
        j        ddgk                                    sJ |j        d         |d         k    sJ |j        d         |d         k    sJ |                    d          	                                }t          |          dk    sJ |j
        j        ddgk                                    sJ |j        d         |d         k    sJ |j        d         |d         k    sJ |                    d          	                                }t          |          dk    sJ |j
        j        ddgk                                    sJ |j        d         |d         k    sJ |j        d         |d         k    sJ |                    d          	                                }t          |          dk    sJ |j
        j        d	d	gk                                    sJ |j        d         |d         k    sJ |j        d         |d         k    sJ |                    d          	                                }t          |          dk    sJ |j
        j        ddgk                                    sJ |j        d         |d         k    sJ |j        d         |d         k    sJ |                    d          	                                }t          |          dk    sJ |j
        j        g dk                                    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 d S )N  rA   rm   r5   r)   r:   r;   r8   r{   r#   zw-sunr   )ru   ru   ru   r   z1/2/2005z1/9/2005rU   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrx   z1/7/2005r   r   )rx   r   rA   r#   r   rx   r   rE   )r   r   rW   r   r$   r%   r&   r'   r   r   r)   	dayofweekr]   r|   r{   r3   rb   r+   rj   s       r   test_resample_basic_from_dailyr  `  s   
tQ""q"(=(=Cg  gdmm  	ry$$Q''..s3xx88#>>A ZZ  %%''Fv;;!L"iii/4466666;q>Qz]****;q>Qz]****;q>QVBZ''''ZZ  %%''Fv;;!L"q!f,1133333;q>Qz]****;q>Q{^++++ZZ  %%''Fv;;!L"q!f,1133333;q>Qz]****;q>Q{^++++ZZ  %%''Fv;;!L"q!f,1133333;q>Qz]****;q>Q{^++++ZZ  %%''Fv;;!L"q!f,1133333;q>Qz]****;q>Q{^++++ZZ  %%''Fv;;!L"q!f,1133333;q>Qz]****;q>Q{^++++ ZZ__!!##Fv;;!L"&;&;&;;@@BBBBB;q>Qz]****;q>Qz]****;q>Qz]****<''''''r   c                    t          ddd                              |           }t          d|          }|                    d                                          }|j        d         |d         k    sJ t          t          j        dd	          d
 t          dd	          D                       }|j                            |           |_        t          t          j        dd	          t          ddd                              |                     }|                    d          	                                }t          j        |t          d|j                             |                    d                                          }|                    d                                          }t          j        ||           t          j        ||           d S )Nz01-Jan-2014z05-Jan-2014r5   r7   rA   r(   r         ?ru   c           	      4    g | ]}t          d d|dd          S )i  rA   r   r   r   .0is     r   
<listcomp>zCtest_resample_upsampling_picked_but_not_correct.<locals>.<listcomp>  s(    !S!S!S!(4Ar1"="=!S!S!Sr   19750101rE   r   )r   rW   r   r   rH   r)   r$   r   r   countr`   ra   rG   )r3   datesr   rj   r+   r   result1result2s           r   /test_resample_upsampling_picked_but_not_correctr    s   }m#>>>FFtLLEAU###F__S!!&&((F<?eAh&&&& 	
	#q!S!SuQPQ{{!S!S!S	 	 	A good##AG
	#qQS999AA$GG  H
 ZZ__""$$F66!8>#B#B#BCCCjjoo!!##Gjjoo""$$G7H---7H-----r   rf   rF   c           	         t          t          j                            d                              d          t          t          d          t                    t          ddd          	          }|j	        
                    |          |_	        t          d
          }|                    |          }|                    | d d           d S )Nr#   2   rx   ABCDr   
2000-01-01r  r   r   ro   r)   r   r7   TrM   )r	   r$   r%   r&   r9   r
   listobjectr   r)   rW   r   rY   r[   )rf   r3   rp   rc   rd   s        r   "test_resample_frame_basic_cy_funcsr    s    	
	a  0099d6ll&111r<<<
 
 
B
 x%%BHTA


1A !D99999r   r8   YEr   c           	         t          t          j                            d                              d          t          t          d          t                    t          ddd          	          }|j	        
                    |          |_	        |                    |                                           }t          j        |d
         |d
                             |                                                      d S )Nr#   r  r  r   r  r  r   r   r  r   )r	   r$   r%   r&   r9   r
   r  r  r   r)   rW   r   rH   r`   ra   )r8   r3   rp   rj   s       r   test_resample_frame_basic_M_Ar    s    	
	a  0099d6ll&111r<<<
 
 
B
 x%%BH[[##%%F6#;3(8(8(>(>(C(C(E(EFFFFFr   r  c           	         t          t          j                            d                              d          t          t          d          t                    t          ddd          	          }|j	        
                    |          |_	        d
}t          j        t          |          5  |                    | d                                           d d d            d S # 1 swxY w Y   d S )Nr#   )rm   rx   r  r   r  rm   r   r   r  6The 'kind' keyword in DataFrame.resample is deprecatedr   periodkind)r	   r$   r%   r&   r9   r
   r  r  r   r)   rW   r`   assert_produces_warningFutureWarningr   rH   )r8   r3   rp   r   s       r   test_resample_frame_basic_kindr%    s   	
	a  0099d6ll&111r<<<
 
 
B
 x%%BH
BC		#M	=	=	= 0 0
Dx((--///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   0*C''C+.C+c                 <   t          t          ddd          t          ddd          dd                              |           }t          t          j                            d                              t          |                    |          }|                    d          	                                }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 d S )Nr   rA   rm   r5   r)   r   r#   r    i2  r   rU   )r   r   rW   r   r$   r%   r&   r'   r   ffillr|   r)   r{   r  s       r   test_resample_upsampler(    s   
tQ""q"(=(=Cg  gdmm  	ry$$Q''..s3xx88#>>A ZZ$$&&Fv;;%;q>QVAY&&&&;r?afRj((((<''''''r   c                    t          ddgt          d          t          d          g          }|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                            |           |_        t          j        |	                    d          
                                |           d S )Nrv      z2015-03-31 21:48:52.672000z2015-03-31 21:49:52.739000r(   z2015-03-31 21:48:50z2015-03-31 21:49:00z2015-03-31 21:49:10z2015-03-31 21:49:20z2015-03-31 21:49:30z2015-03-31 21:49:40z2015-03-31 21:49:5010sr7   )r   r   r)   rW   r$   r   r   r`   ra   r   rH   )r3   r+   r   s      r   test_resample_how_methodr,    s;   	R233233
	 	 	A good##AG	RVRVRVRVRVR8/00/00/00/00/00/00/00 
 
 
  H ^++D11HN1::e,,1133X>>>>>r   c           
         t          ddd                              |           }t          dt          g d|          i          }t          ddd                              |           }t          dt          t	          t          |                    |          id	
          }|                    d                                          }t          j	        ||           d S )N2015010120150331BMEr:   r;   r8   r   )r   )   ?   r(   r   rB   r   )
r   rW   r	   r   r   r'   r   r   r`   r   )r3   r)   r   rp   rj   s        r   test_resample_extra_index_pointr4    s    ZZeDDDLLTRRE#vlll%@@@ABBHZZcBBBJJ4PPE	Cc%jj 1 1???@	P	P	PB[[$$&&F&(+++++r   c                    t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    d          	                    d          }|
                    |j        dd	          }t          j        ||           d S )
Nrw   r   rV   r   r#   rJ   limitr'  methodr7  )r   rW   r   r$   r%   r&   r9   r'   r   r'  reindexr)   r`   ra   r3   r<   r   rj   r   s        r   test_upsample_with_limitr<    s    
Z
8
8
8
@
@
F
FC		%%a((88SBBC	H	HB[[%%A%..Fzz&,waz@@H68,,,,,r   )1D10hr   r+  rule)r  3ME15D30h15Min30sc                    t          dd||                               |          }t          t          j                            d                              t          |                    |          }|                    |          	                    d          }|
                    |j        dd          }t          j        ||           d S )Nrw   r   )rz   r8   tzr#   r6  nearestr8  )r   rW   r   r$   r%   r&   r9   r'   r   rG  r:  r)   r`   ra   )tz_aware_fixturer8   r?  r3   r<   r   rj   r   s           r    test_nearest_upsample_with_limitrI  #  s     Z:J
K
K
K
S
S C 
	%%a((88SBBC	H	HB[[&&Q&//Fzz&,yzBBH68,,,,,r   c                    | }|j                             |          |_         t          t          d                    }|                    |                              d           }|                    d                                          }t          |          t          |          k    sJ t          |j	                  dk    sJ |j
        d         }|d         |j
        d         k    sJ |d	         |dd
                                         k    sJ |d         |dd
                                         k    sJ |d         |j
        d         k    sJ |j
        d         }|d         |j
        d         k    sJ |d	         |d d                                         k    sJ |d         |d d                                         k    sJ |d         |j
        d         k    sJ d S )NrE   r7   c                     | j         d         S r   r   r   s    r   r~   z$test_resample_ohlc.<locals>.<lambda>6  s    afRj r   r   rx   r   ir   rU   r   r   r   )r)   rW   r   r   rY   r_   r   rZ   r'   ro   r|   rK   rJ   )r   r3   r+   r   ri   rj   xss          r   test_resample_ohlcrN  1  s   Agood##AG6!99%%%GYYw##$8$899FZZ$$&&Fv;;#f++%%%%v~!####	RBf:####f:2b5''''e9"R%&&&&g;!&*$$$$	QBf:""""f:2A2$$$$e9"1"		####g;!&)######r   c                 B   t          ddd                              |           }|                    t          ddd                              |                     }t          t	          t          |                    |          }|j        d d                             d                                          }t          |t                    sJ |j        d d	                             d                                          }t          |t                    sJ d S )
N1-1-2000	2-15-2000hr7   	4-15-2000	5-15-2000r(   30minz	4-14-2000)r   rW   unionr   r   r'   locr   rZ   
isinstancer	   )r3   r)   r+   r   rc   s        r   test_resample_ohlc_resultrY  I  s    z;S999AA$GGEKK
;#FFFNNtTTUUEuSZZ  ...A	l{l$$W--2244Aa#####	l{l$$W--2244Aa#######r   c                 H   t          dd                              |           }|                    t          d          t          d          t          d          t          d          g          }t	          t          j        t          |                    |          }|                    d          	                                }|
                    t          |d	         |d
         d                              |                     }t          j        ||           d S )Nz
2013-12-30z
2014-01-07r   z
2013-12-31z
2014-01-04z
2014-01-05)r   r)   r   r   rU   r7   r(   )r   rW   dropr   r	   r$   r   r'   r   rH   r:  r`   r   )r3   r<   r)   rp   rj   r   s         r   $test_resample_ohlc_result_odd_periodr\  V  s     \<
0
0
8
8
>
>CHHl##l##l##l##		
 E 
	#e**--U	;	;	;B[[""$$Fzz
3q63r7 E E E M Md S SzT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
                              ddgd          }|j                            |           |_        d|j        _        |                    d                                          }t          j
        |d                             d                                          |d                             d                                          gd|j                  }|j        j        d         dk    sJ t          j        ||           ddgddgg|_        |                    d                                          }t          j                            g d          |_        t          j        ||           d S )Nz2011-01-06 10:59:05rF  ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMEr`  r_  rA   axisColsrR  )rb  keysr   r   rc   cr   ))r   re  r   )r   re  r   )r   re  r   )r   re  r   )rc   r   r   )rc   r   r   )rc   r   r   )rc   r   r   )r	   r   r:  r)   rW   ro   r{   r   rZ   r   concatnamesr`   r   
MultiIndexfrom_tuples)r3   rp   resexps       r   test_resample_ohlc_dataframerl  h  s    3===u3===u3===u 3===z3===z3===y 	
 	
 gx!g**   x%%BHBJO
++c




!
!C
)	H		s	#	#	(	(	*	*BwK,@,@,E,E,J,J,L,LMZ  C
 ;Q6))))#s###*sCj)BJ
++c




!
!C-++		
 		
 		
 CK #s#####r   c                     t          t          j                            d                              d          g dd t          d          D                       } t          j        | j        dd d f<   d}t          j	        t          |	          5  |                     d
d                                          }d d d            n# 1 swxY w Y   d}t          j	        t          |	          5  |                     d d                                          }d d d            n# 1 swxY w Y   d t          d          D             |_        t          j        ||           d S )Nr#   )rx   r   )  rn  rn  rn  c                 8    g | ]}t          d |dz   d          S )rn  rA   M)yearmonthr8   r   r  s     r   r  z+test_resample_dup_index.<locals>.<listcomp>  s+    MMMaTQS999MMMr   r   r   r   -DataFrame.resample with axis=1 is deprecated.r   QErA   ra  z+DataFrame.groupby with axis=1 is deprecatedc                 6    t          | j        dz
  dz            S )NrA   r   )intrr  r   s    r   r~   z)test_resample_dup_index.<locals>.<lambda>  s    QWq[A,=(>(> r   c                 8    g | ]}t          d |dz   d          S )rn  rA   Q)rq  quarterr8   rs  r  s     r   r  z+test_resample_dup_index.<locals>.<listcomp>  s+    UUUqD!a%cBBBUUUr   rx   )r	   r$   r%   r&   r9   r   r   r|   r`   r#  r$  r   rH   rY   ro   r   )rp   warning_msgrj   r   r   s        r   test_resample_dup_indexr|    s    

	a  0099&&&MM599MMM
 
 
B
 FBGAqqqDMAK		#M	E	E	E 2 2T**//112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 8C		#M	=	=	= O O::>>Q:GGLLNNO O O O O O O O O O O O O O OUUERSHHUUUH&(+++++s$   *CCC/+D&&D*-D*c                    t          t          ddd          t          ddd          d                              |           }t          t          j                            d                              t          |                    |          }|                    ddd	          	                                }|                    d
          	                                }t          |          dk    sJ t          |j        j        t          j                  sJ |j        j        t          j        d          k    sJ d S )Nr   rA   rm   r5   r1  r#   r   rP   r   8h   r   )r   r   rW   r   r$   r%   r&   r'   r   rH   rX  r)   r8   r   
DateOffsetHour)r3   rb   r+   bsrj   s        r   test_resample_reresampler    s   
tQ""q"(=(=C  gdmm  	ry$$Q''..s3xx88#>>A	
Cw	7	7	<	<	>	>B[[##%%Fv;;"fl');<<<<<<Q//////r   zfreq, expected_kwargszYE-DEC19902000zY-DECr1  zYE-JUNzY-JUNz1990-01z2000-01rp  c                     | dd          }|j                             |          |_         d}t          j        t          |          5  |                    |d                                          }d d d            n# 1 swxY w Y   |                    |                                          }t          di ||_         t          j        ||           d S )Nz1/1/1990rw   3The 'kind' keyword in Series.resample is deprecatedr   r   r!  r   )	r)   rW   r`   r#  r$  r   rH   r   ra   )r?   r8   expected_kwargsr3   r   r   rj   r   s           r   !test_resample_timestamp_to_periodr    s	    
"	!*j	9	9Bx%%BH
?C		#M	=	=	= 9 9T1166889 9 9 9 9 9 9 9 9 9 9 9 9 9 9{{4  %%''H!44O44HN68,,,,,s   	*A??BBc                    d }t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    dd	d	
          	                                }|j
        d         |j        d         k                                    sJ  ||dd                   }|j
        d         |k                                    sJ  ||dd                    }|j
        d         |k                                    sJ d S )Nc                    t          |                                           rt          j        t          j        d          S | j        d         |                                 |                                 | j        d         gS r   r   r   s    r   r   ztest_ohlc_5min.<locals>._ohlc  r   r   rs   z1/1/2000 5:59:50r+  r7   r#   r(   rV   rP   r   z1/1/2000 00:00r   rA      r   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rW   r   r$   r%   r&   r9   r'   r   rZ   rW  r|   r]   )r3   r   r<   r   	resampledrk  s         r   test_ohlc_5minr    s?   I I I
 (*<5
I
I
I
Q
QRV
W
WC		%%a((88SBB#	N	N	NBF7'BBGGIIIM*+rwqz9>>@@@@@
%1R4//CM*+s27799999
%%&&'
(
(CM,-499;;;;;;;r   c                 |   t          dd                              |           }|                    d          j        }t	          t
          j                            d                              t          |                    |          }|
                    d                                          }|                    d                                           }t          |          dk    sJ t          j        |j        d         |d	                    t          j        |j        d	         |d                    d S )
Nrw   	2/29/2000rE   r#   r(   r   c                     | j         S r   )rr  r   s    r   r~   z,test_downsample_non_unique.<locals>.<lambda>  s    AG r   r   rA   )r   rW   r   r   r   r$   r%   r&   r9   r'   r   rH   rY   r`   assert_almost_equalr|   )r3   r<   rng2r   rj   r   s         r   test_downsample_non_uniquer    s    
Z
-
-
5
5d
;
;C::a==D		%%a((88TCC4	P	P	PB[[##%%Fzz++,,1133Hv;;!6;q>8A;7776;q>8A;77777r   c                    t          dd                              |           }|                    d          j        }t	          t
          j                            d                              t          |                    |          }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nrw   r  r#   r(   z/cannot reindex on an axis with duplicate labelsr   r   )r   rW   r   r   r   r$   r%   r&   r9   r'   r   r   r   asfreq)r3   r<   r  r   r   s        r   test_asfreq_non_uniquer    s    
Z
-
-
5
5d
;
;C::a==D		%%a((88TCC4	P	P	PB
;C	z	-	-	-  
		#                 s   )CCCc                 :   t          dd                              |           }t          t          j                            d                              dt          |          f          |g d          }d}t          j	        t          |          5  |                    d	d
                                          }d d d            n# 1 swxY w Y   |j                            d	                                          j        }t          j        ||           d S )Nrw   r  r#   r   r   rc   re  r  rt  r   r   rA   ra  )r   rW   r	   r$   r%   r&   r9   r'   r`   r#  r$  r   rH   Tr   )r3   r<   rp   r{  rj   r   s         r   test_resample_axis1r    s7   
Z
-
-
5
5d
;
;C	
	a  00!SXX??oo
 
 
B BK		#M	E	E	E 2 2T**//112 2 2 2 2 2 2 2 2 2 2 2 2 2 2t}}T""''))+H&(+++++s   *C

CC)rJ   rV   15minrU  4h12hc                    t          ddd                              |          }t          t          j                            d                              t          |                    |          }t          j        |d d<   |dd          	                    | dd          
                                }|	                    | dd          
                                }t          j        ||           d S )	Nz1/1/2000 04:00:00Q r+   r   r#   r(   r   r   r   rW   r   r$   r%   r&   r9   r'   r   r   rH   r`   ra   )r8   r3   r<   r   rj   r   s         r   test_resample_anchored_ticksr  	  s     (%c
B
B
B
J
J4
P
PC		%%a((88SBB#	N	N	NBVBrrFV__T&_??DDFFF{{4f{==BBDDH68,,,,,r   r;   rA   r#   c                    d }t          dd|  dd                              |          }t          t          j                            d                              t          |                    |          }t          j	        |
                    d	                                          |
                    d	                              |                     d S )
Nc                 *    |                                  S r   )rG   r   s    r   r~   z,test_resample_single_group.<locals>.<lambda>  s    aeegg r   z2000-1-1z2000-z-10r5   r7   r#   r(   r   )r   rW   r   r$   r%   r&   r9   r'   r`   ra   r   rG   r   )r;   r3   mysumr<   r   s        r   test_resample_single_groupr    s    E
Z!1!1!1!1
<
<
<
D
DT
J
JC		%%a((88SBB#	N	N	NB2;;t,,0022BKK4E4E4K4KE4R4RSSSSSr   c                    t          ddgt          d          t          d          g          }|j                            |           |_        t          dgt	          t          d          gd	                              |                     }|                    d                              d
           }t          j        ||           d S )Ng>@g?@z20070915 15:30:00z20070915 15:40:00r(   g      ?20070915r5   r7   c                 *    t          j        |           S r   )r$   stdr   s    r   r~   z0test_resample_single_group_std.<locals>.<lambda>+  s    RVAYY r   )	r   r   r)   rW   r   r   r   r`   ra   )r3   r+   r   rj   s       r   test_resample_single_group_stdr  !  s    	t,--y9L/M/MN	 	 	A good##AG	mYz%:%:$;#FFFNNtTT  H ZZ__""#6#677F68,,,,,r   c                    t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    dd	          	                                }t          d
dd                              |           }t          j        |j        |           d S )Nrs   z1/1/2000 02:00r+   r7   r#   r(   rV   2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rW   r   r$   r%   r&   r9   r'   r   rH   r`   assert_index_equalr)   )r3   r<   r   r  exp_rngs        r   test_resample_offsetr  /  s     (*:
E
E
E
M
Md
S
SC		%%a((88SBB#	N	N	NBF6227799I.0@vNNNVV G )/73333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                              |          }t          t          j                            d                              t          |                    |          }t          ddd	                              |          } |j        d
i | 	                                }t          j        |j        |           d S )N2000-01-01 00:00:002000-01-01 02:00r+   r7   r#   r(   r  2000-01-01 01:57rV   r   r  )r  r3   r<   r   r  r  s         r   test_resample_originr  <  s     *,>S
I
I
I
Q
QRV
W
WC		%%a((88SBB#	N	N	NB1  gdmm  --f--2244I)/733333r   invalid_valueepchstartdaystarttz
2000-30-30c                    t          ddd                              |          }t          t          j                            d                              t          |                    |          }d|  d}t          j	        t          |	          5  |                    d
|            d d d            d S # 1 swxY w Y   d S )Nr  r  r+   r7   r#   r(   z|'origin' should be equal to 'epoch', 'start', 'start_day', 'end', 'end_day' or should be a Timestamp convertible type. Got '
' instead.r   rV   r  r   rW   r   r$   r%   r&   r9   r'   r   r   r   r   )r  r3   r<   r   r   s        r   test_resample_bad_originr  T  s    *,>S
I
I
I
Q
QRV
W
WC		%%a((88SBB#	N	N	NB		 	 	 
 
z	-	-	- + +
F6***+ + + + + + + + + + + + + + + + + +   B::B>B>12dayysc                    t          ddd                              |          }t          t          j                            d                              t          |                    |          }d|  d}t          j	        t          |	          5  |                    d
|            d d d            d S # 1 swxY w Y   d S )Nr  r  r+   r7   r#   r(   z6'offset' should be a Timedelta convertible type. Got 'r  r   rV   r  r  )r  r3   r<   r   r   s        r   test_resample_bad_offsetr  c  s    
*,>S
I
I
I
Q
QRV
W
WC		%%a((88SBB#	N	N	NB
U6
U
U
UC	z	-	-	- + +
F6***+ + + + + + + + + + + + + + + + + +r  c                    d\  }}t          ||d                              |           }t          t          j                            d                              t          |                    |          }t          ddd                              |           }|                    d          	                                }t          j        |j        |           |                    dd	
          	                                }t          j        |j        |           t          ddd                              |           }|                    dd
          	                                }t          j        |j        |           |                    dd          	                                }t          j        |j        |           |                    dd	d          	                                }t          j        |j        |           t          ddd                              |           }|                    dd
          	                                }t          j        |j        |           t          ddd                              |           }|                    dd
          	                                }t          j        |j        |           d S )N)2000-10-01 23:30:00z2000-10-02 00:30:007minr7   r#   r(   z2000-10-01 23:14:00z2000-10-02 00:22:0017min	start_dayr  r  z2000-10-02 00:21:00r:   23h30minr  r  z2000-10-01 23:18:00z2000-10-02 00:26:00r  z2000-10-01 23:24:00z2000-10-02 00:15:00r  r  )r3   r:   r;   r<   r   r  r  s          r   test_resample_origin_prime_freqr  l  s   =JE3
UCf
-
-
-
5
5d
;
;C		%%a((88SBB#	N	N	NB47  gdmm  G$$))++I)/7333GK88==??I)/733347  gdmm  GG4499;;I)/7333GJ77<<>>I)/7333GK
KKPPRRI)/733347  gdmm  GG4499;;I)/733347  gdmm  GL99>>@@I)/733333r   c                 .   d}d}t          ddd|                              |           }t          t          j                            d                              t          |                    |          }t          d	d
d|                              |           }|                    dd          	                                }t          j        |j        |           |                    dd          	                                }t          j        |j        |           |                    ddd          	                                }t          j        |j        |           t          j        t          |          5  |                    dd          	                                 d d d            n# 1 swxY w Y   t          ddd                              |           }t          t          j                            d                              t          |                    |          }t          j        t          |          5  |                    dd          	                                 d d d            d S # 1 swxY w Y   d S )Nz4The origin must have the same timezone as the index.Europe/Parisr  r  r+   r8   rF  r#   r(   r  r  rV   z1999-12-31 23:57:00+00:00r  z1999-12-31 12:02:00+03:00r  r  r  r   r  r7   z12/31/1999 23:57:00+03:00)r   rW   r   r$   r%   r&   r9   r'   r   rH   r`   r  r)   r   r   r   )r3   r   rF  r<   r   r  r  s          r   test_resample_origin_with_tzr    s   
@C	B
1  gdmm  
	%%a((88SBB#	N	N	NB12  gdmm  F+FGGLLNNI)/7333 F+FGGLLNNI)/7333F74@@EEGGI)/7333	z	-	-	- A A
F#899>>@@@A A A A A A A A A A A A A A A *,>S
I
I
I
Q
QRV
W
WC		%%a((88SBB#	N	N	NB	z	-	-	- G G
F#>??DDFFFG G G G G G G G G G G G G G G G G Gs$   *F::F>F>*J

JJc                 X   d\  }}t          ||d                              |           }t          j                            d                              t          |                    }t          ||          }|                    dd          	                                }|                    d	d          	                                }t          j        ||           |                    d           }|                    dd          	                                }	|                    d	d          	                                }
t          j        ||	                    |j                  d
           t          j        ||
                    |j                  d
           d\  }}t          ||d                              |           }t          ||          }|                    dd          	                                }|                    d	d          	                                }t          j        |                    d           |                    d                      t          j        |                    d           |                    d                      d S )N)z2000-10-01 23:30:00+0500z2000-12-02 00:30:00+0500r  r7   r#   r(   r5   r  r  24hF)
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rW   r$   r%   r&   r9   r'   r   r   rH   r`   ra   tz_localizerF  )r3   r:   r;   r<   random_valuests_1result_1result_2ts_no_tzresult_3result_4ts_2result_5result_6s                 r   -test_resample_origin_epoch_with_tz_day_vs_24hr    sP   GJE3
UCf
-
-
-
5
5d
;
;CI))!,,<<SXXFFM-s+++D}}S}116688H}}U7}3388::H8X... %%H  W 55::<<H  w 77<<>>H8X%9%9#&%A%AeTTTT8X%9%9#&%A%AeTTTT HJE3
UCf
-
-
-
5
5d
;
;C-s+++D}}S}116688H}}U7}3388::H8//55x7K7KD7Q7QRRR8//55x7K7KD7Q7QRRRRRr   c                    
 d
d$
 fd	}t          d
          }t          d
          }t          ||d                                         }t          t	          j        t          |                    |	          } |d
dgddg          }ddd|d fD ]@}|                    d|                                          }t          j
        ||           At          d
          }t          d
          }t          ||d                                         }t          t	          j        t          |                    |	          }ddg}	 |ddg|	          }|                    ddd                                          }t          j
        ||           ddg}	 |ddg|	d          }|                    ddd                                          }t          j
        ||           ddg}	 |ddg|	          }|                    ddd                                          }t          j
        ||           ddg}	 |d
d g|	          }|                    ddd!                                          }t          j
        ||           d"d#g}	 |d d
g|	          }|                    ddd                                          }t          j
        ||           d S )%NAmerica/Chicagor5   c                     t          | t          fd|D             |d                                                  S )Nc                 2    g | ]}t          |           S )r^  )r   )r	  trF  s     r   r  zUtest_resample_origin_with_day_freq_on_dst.<locals>._create_series.<locals>.<listcomp>  s&    9991$$$999r   T)r8   	ambiguousr(   )r   r   rW   )r   
timestampsr8   rF  r3   s      r   _create_serieszAtest_resample_origin_with_day_freq_on_dst.<locals>._create_series  sV    9999j999PT  gdmm	
 
 
 	
r   
2013-11-02r^  z2013-11-03 23:591hr7   r(   g      8@g      9@z
2013-11-03r  r:   r  r  z2013-11-02 22:00-05:00z2013-11-03 22:00-06:00g      7@       @z-2hr  z2013-11-03 21:00-06:00g      6@      @r  z2013-11-02 02:00-05:00z2013-11-03 02:00-06:002hz2013-11-02 23:00-05:00z2013-11-03 23:00-06:00r  z-1hz2013-11-02 01:00-05:00z2013-11-03 01:00:00-0500r>   )r   r   rW   r   r$   onesr'   r   rG   r`   ra   )r3   r  r:   r;   r<   r   r   r  rj   expected_tsrF  s   `         @r   )test_resample_origin_with_day_freq_on_dstr    s&   	B
 
 
 
 
 
 
 lr***E
&2
.
.
.C
UCd
+
+
+
3
3D
9
9C	C!!	-	-	-B~tTl\<,HIIHG[%> 1 1S004466
vx0000 lr***E
&2
.
.
.C
UCd
+
+
+
3
3D
9
9C	C!!	-	-	-B+-EFK~tSk;77H[[WU[;;??AAF68,,,+-EFK~tSk;UCCCH[[wu[==AACCF68,,,+-EFK~sDk;77H[[WT[::>>@@F68,,,+-EFK~tSk;77H[[WU[;;??AAF68,,,+-GHK~sDk;77H[[WT[::>>@@F68,,,,,r   c                    t          ddd                              |           }t          t          j                            d                              t          |                    |          }t          j        |d d<   |dd          	                    ddd	          
                                }|	                    ddd	          
                                }t          j        ||           d S )
Nz1/1/2000 0:00:00'  rJ   r   r#   r(   r5   r   r   r  r;  s        r   test_resample_daily_anchoredr    s    
'U
C
C
C
K
KD
Q
QC		%%a((88SBB#	N	N	NBVBrrFV__Sv_>>CCEEF{{3vV{<<AACCH68,,,,,r   c                    t          dd                              |           }t          t          j                            d                              t          |                    |          }d}t          j	        t          |          5  |                    dd	                                          }d d d            n# 1 swxY w Y   t          d
dd          }t          j        |j        |           d S )Nrw   z
12/31/2000r#   r(   r  r   r   r   r!  zJan-2000zDec-2000rp  r7   )r   rW   r   r$   r%   r&   r9   r'   r`   r#  r$  r   rH   r   r  r)   )r3   r<   r   r   rj   	exp_indexs         r   &test_resample_to_period_monthly_bugletr    s    Z
.
.
6
6t
<
<C		%%a((88SBB#	N	N	NB
?C		#M	=	=	= 9 9T1166889 9 9 9 9 9 9 9 9 9 9 9 9 9 9Z#>>>I&,	22222s   *CC	C	c                  .   t          t          j                            d                              ddd          t          ddd          d	          } |                                                     d
                                          	                                }d}t          j        t          |          5  |                     d
          }d d d            n# 1 swxY w Y   |                    d           }t          j        ||           d S )Nr#   r   rE   r  z
2012-01-01rR  r   rn   rC   r5   z+Resampling with a PeriodIndex is deprecatedr   c                 *    |                                  S r   rH   r   s    r   r~   z&test_period_with_agg.<locals>.<lambda>(  s    affhh r   )r   r$   r%   r&   integersr   to_timestampr   rH   	to_periodr`   r#  r$  r_   ra   )s2r   r   rsrj   s        r   test_period_with_aggr    s6   	
	a  ))!Q33<c2>>>
 
 
B   ))#..3355??AAH
7C		#M	=	=	=  [[              VV&&''F68,,,,,s   =C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                              d          }|j                            |           |_        d}t          j        t          |          5  |	                    d          
                    d                                          }d d d            n# 1 swxY w Y   d}t          j        t          |          5  |	                    d                              d           }d d d            n# 1 swxY w Y   t          j        ||           d S )NrA   i  rm   r      r   r#         r  )ID	timestampr   r   ro   r  :DataFrameGroupBy.resample operated on the grouping columnsr   r
  rV   z7DataFrameGroupBy.apply operated on the grouping columnsc                 P    |                      d                                          S )NrV   )r   rG   r   s    r   r~   z(test_resample_segfault.<locals>.<lambda>?  s    AJJv4F4F4J4J4L4L r   )r   r	   from_records	set_indexr)   rW   r`   r#  r$  rY   r   rG   r   r   )r3   all_wins_and_wagersrp   r   rj   r   s         r   test_resample_segfaultr  ,  s    
HT2q"b))1a0	
HT2q"b))1a0	
HT2q"b))1a0	
HT2q"b"--q!4	 
	%B
 
 
i  x%%BH
FC		#M	=	=	= 9 9D!!**62266889 9 9 9 9 9 9 9 9 9 9 9 9 9 9
CC		#M	=	=	= N N::d##))*L*LMMN N N N N N N N N N N N N N N&(+++++s$   ;DDD0*E&&E*-E*c                 Z   t          t          ddd                              |           g dt          g dd          d	                              d
          }|                    d                                          }|j        j        t          j
        k    sJ d}t          j        t          |          5  |                    d                              d                                          }d d d            n# 1 swxY w Y   |j        j        t          j
        k    sJ d S )Nz
2016-01-01rx   Wr   )rA   rA   r#   r#   )rE   ru   r   r   int32r   )dater   valr  r=  r  r   r   )r	   r   rW   r   r  r   r'  r  rD   r$   r  r`   r#  r$  rY   )r3   rp   rj   r   s       r    test_resample_dtype_preservationr  C  s[    
\13GGGOOPTUU!\\,,,g666	
 	

 
 i  [[$$&&F:rx''''
FC		#M	=	=	= < <G$$--d3399;;< < < < < < < < < < < < < < <:rx''''''s   =;DDDc                    t          j        d           dg di}t          |t          dd                              |                     }|                    d                              d                                          d                             d	          }|                    d          d                                                             d	          }t          j
        ||           |                    d                                          d                             d	          }t          j
        ||           d S )
Nzscipy.interpolater   )rA   r   rA   rx   z
2017-01-01z
2017-01-04r(   rn   rR  cubic)r   importorskipr	   r   rW   astyper   rH   interpolater`   ra   )r3   rp   r   rj   s       r   test_resample_dtype_coercionr  X  s   
+,,, |||	B	2ZlCCKKDQQ	R	R	RByy##,,S116688=II'RRH[[c"''))55g>>F68,,,[[""$$S)55g>>F68,,,,,r   c                    t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    d          	                                }|                    d          	                                }t          j        ||           d S )	Nrw   r   r  r   r#   r(   r  zW-SUN)r   rW   r   r$   r%   r&   r9   r'   r   rH   r`   ra   )r3   r<   r   r  r   s        r   test_weekly_resample_bugletr   h  s    
Zc2
6
6
6
>
>t
D
DC		%%a((88SBB#	N	N	NBC  %%''I{{7##((**H9h/////r   c                    t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    d           d S )N4/16/2012 20:00i  rR  r   r#   r(   r   )	r   rW   r   r$   r%   r&   r9   r'   r   r3   r  r   s      r   test_monthly_resample_errorr$  r  ss    ($SAAAII$OOE		%%a((88UDDE	R	R	RBKKr   c                     d} d}t          t          j        |           dd          }t          t	          t          |                    |          }|                    t          j        j        	                    d                    }|
                    d          }t          t          j        |          dd          }t          t	          t          |                    |t          	          }t          j        ||           d S )
Nl   *dG@l   *dG@rm   100nsr   r(   d   rH   rC   )r   r   r   r   r   r'   r   tseriesr   Nanor_   floatr`   ra   )r:   	exp_startindxr   rq   rj   exp_indxrk  s           r   test_nanosecond_resample_errorr.  z  s     EIBN5112GLLLD	c$ii  	-	-	-B
BJ&++C0011AUU6]]Fy 9 92GTTTH
s8}}%%XU
C
C
CC63'''''r   c                 0   t          ddd                              |           }t          |j        |          }|                    d                                          }d}t          j        t          |          5  |                    dd	
                                          	                    d          }d d d            n# 1 swxY w Y   |xj
        t          dd          t          dd          z
  z  c_
        |j
                            |                               d          |_
        |j
        j        dk    sJ t          j        ||           |                    dd                                          }d}t          j        t          |          5  |                    dd                              dd	
                                          }d d d            n# 1 swxY w Y   |	                    d          }|j
        t          dd          z   t          dd          z
  |_
        |j
                            |                               d          |_
        |j
        j        dk    sJ t          j        ||           d S )N1/1/20124/1/2012100minr7   r(   r   r  r   r   r!  r;   howrA   r.   r5   inferr   rR   )r   rW   r	   rr  r   rH   r`   r#  r$  r  r)   r   
_with_freqr8   r   shift)r3   r<   rp   rj   r   r   rk  s          r   test_resample_anchored_intradayr9    s    Z(
;
;
;
C
CD
I
IC	39C	(	(	(B[[##%%F
BC		#M	=	=	= S S;;t(;3388::GGEGRRS S S S S S S S S S S S S S SNNi4((9Q+<+<<<NN^++D11<<WEEHN>$&&&&&(+++[[f[--2244F
BC		#M	=	=	= I Ihhqsh##,,T,AAFFHHI I I I I I I I I I I I I I I


u

%
%C	Ia...1c1B1BBCI	!!$''227;;CI9>T!!!!&#&&&&&s$    >C

CC#?G..G25G2c                 <   t          ddd                              |           }t          |j        |          }|                    d                                          }d}t          j        t          |          5  |                    dd	
                                          	                    d          }d d d            n# 1 swxY w Y   |xj
        t          dd          t          dd          z
  z  c_
        d|j
        j        _        t          j        |j
        _        |j
                            |           |_
        t          j        ||           |                    dd                                          }d}t          j        t          |          5  |                    dd                              dd	d                                          }d d d            n# 1 swxY w Y   |	                    d          }|xj
        t          dd          t          dd          z
  z  c_
        d|j
        j        _        t          j        |j
        _        |j
                            |           |_
        t          j        ||           d S )Nr0  r1  r2  r7   r(   ru  r  r   r   r!  r;   r3  rA   r.   r5   r   r6  )r"  rR   )r   rW   r	   rr  r   rH   r`   r#  r$  r  r)   r   _datar8   r   
no_default_freqr   r8  )r3   r<   rp   rj   r   r   s         r    test_resample_anchored_intraday2r>    s   
Z(
;
;
;
C
CD
I
IC	39C	(	(	(B[[##%%F
BC		#M	=	=	= S S;;t(;3388::GGEGRRS S S S S S S S S S S S S S SNNi4((9Q+<+<<<NN $HN>HN^++D11HN&(+++[[f[--2244F
BC		#M	=	=	= 
 
HHQSH!!**4hv*NNSSUU 	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 $$$//HNNi4((9Q+<+<<<NN $HN>HN^++D11HN&(+++++s%    >C

CC%A G11G58G5c                      | ddd          }|j                             |          |_         |                    d                                          }t	          |          dk    sJ d S )Nz2012-04-29 23:00z2012-04-30 5:00rR  r7   r   rA   )r)   rW   r   rH   r'   )r?   r3   r   r  s       r    test_resample_anchored_intraday3r@    sl    	!	!"46Gc	R	R	RBx%%BHD!!&&((Iy>>Qr   )MSBMSzQS-MARzYS-DECzYS-JUNc                      | dd          }|j                             |          |_         |                    |                                           d S )Nrw   z
12/31/2002)r)   rW   r   rH   )r?   r8   r3   r   s       r   !test_resample_anchored_monthstartrD    sO    	!	!*l	;	;Bx%%BHKKr   z
label, secr  z4.2c                    t          ddd          }t          ddd          }|                    |          }t          t          j                            d                              d          |	          }|                    d| 
                                          }|j	        d         t          d| d          k    sJ d S )Nz2014-10-14 23:06:23.206r   400msr   z2014-10-15 23:00:00r#   2200msrE   r(   )rS   rU   z2014-10-15 23:00:00)r   rV  r   r$   r%   r&   r9   r   rH   r)   r   )rS   secindex1index2r)   r+   rj   s          r   test_resample_anchored_multidayrL    s     117KKKF-qxHHHFLL  Ery$$Q''77::%HHHA ZZZ..3355F<y)DS)D)D)DEEEEEEEEr   c                    t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    ddd	
          	                                }t          ddd                              |           }t          j        |j        |           d S )Nrw   r   rJ   r   r#   r(   rV   rP   r   r   z1999-12-31 23:55rx   r  )r3   r<   r   rj   ex_indexs        r   test_corner_casesrO    s     Z%
8
8
8
@
@
F
FC		%%a((88SBB#	N	N	NB[[v[>>CCEEF,afEEEMMdSSH&,11111r   c                     | ddd          }|j                             |          |_         d}t          j        t          |          5  |                    dd	                                          }d d d            n# 1 swxY w Y   t          |          d
k    sJ |j         d         t          dd          k    sJ d S )Nz
2000-04-28z2000-04-30 11:00rR  r7   r  r   r   r   r!  rA   r   z2000-04rp  )	r)   rW   r`   r#  r$  r   rH   r'   r   )r?   r3   r   r   rj   s        r   test_corner_cases_daterQ    s   	!	!,0B	M	M	MBx%%BH
?C		#M	=	=	= 9 9T1166889 9 9 9 9 9 9 9 9 9 9 9 9 9 9v;;!<?fYS999999999s   *BBBc                 :   t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    d          	                                 d S )Nr"  iP  r+   r   r#   r(   r   )
r   rW   r   r$   r%   r&   r9   r'   r   rH   r#  s      r   test_anchored_lowercase_bugletrS    s    (%cBBBJJ4PPE		%%a((88UDDE	R	R	RBKKr   c                 n   t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    d          	                    dd	g          }t          |t                    sJ d S )
N
2012-06-12rx   rR  r   r#   r(   20minrH   rG   )r   rW   r   r$   r%   r&   r9   r'   r   	aggregaterX  r	   )r3   r<   r   rj   s       r   test_upsample_apply_functionsrX    s    
\13
7
7
7
?
?
E
EC		%%a((88SBB#	N	N	NB[[!!++VUO<<Ffi(((((((r   c                 z   t          ddd                              |           }t          t          j                            d                              t          |                    |          }|                    t          j                            d          	                    t          |                              }|
                    d                                          }|                                
                    d                                          }t          j        ||           d S )NrU     rR  r   r#   r(   r5   )r   rW   r   r$   r%   r&   r9   r'   takepermutationr   rG   
sort_indexr`   ra   )r3   r<   r   rj   rk  s        r   test_resample_not_monotonicr^  	  s    
\3S
9
9
9
A
A$
G
GC		%%a((88SBB#	N	N	NB	&&q))55c"gg>>	?	?B[[!!##F
--//
"
"3
'
'
+
+
-
-C63'''''r   rD   rB   r  rn   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                              |          }t          ddg||           }|                    d                              d           }|                    d          }t          j        ||           |                    d          	                                }|                    d          }t          j        ||           d S )	N  rA   r   rE   r#   rC   rJ   c                 *    |                                  S r   r  r   s    r   r~   z/test_resample_median_bug_1688.<locals>.<lambda>-       r   )
r   r   rW   r	   r   r   r  r`   r   median)rD   r3   rb   rp   rj   rk  s         r   test_resample_median_bug_1688rg    s      	$1aA	&	&q!Q1(E(EF gdmm  
	
A
 
 
B [[%%&8&899F
))E

C&#&&&[[&&((F
))E

C&#&&&&&r   c                     | dd          }|j                             |          |_         |                    d                              d           }|                    d                                          }t          j        ||           |                    d                                          }d|_        |                    d                                          }d|_        |                    d                              d d g          }ddg|_	        t          j        |d         |           t          j        |d         |           |                    d          
                    d	 d
 d          }t          j        |d         |d           t          j        |d         |d           d S )Nrw   z4/1/2000r   c                 *    |                                  S r   r  r   s    r   r~   z+test_how_lambda_functions.<locals>.<lambda>:  s    qvvxx r   foobarc                 *    |                                  S r   r  r   s    r   r~   z+test_how_lambda_functions.<locals>.<lambda>C  re  r   c                 .    |                      d          S NrA   )ddofr  r   s    r   r~   z+test_how_lambda_functions.<locals>.<lambda>C  s    AEEqEMM r   c                 *    |                                  S r   r  r   s    r   r~   z+test_how_lambda_functions.<locals>.<lambda>K  s    !&&(( r   c                 .    |                      d          S rn  rp  r   s    r   r~   z+test_how_lambda_functions.<locals>.<lambda>K  s    QUUU]] r   )rj  rk  F)check_names)r)   rW   r   r   rH   r`   ra   r{   r  ro   rW  )r?   r3   r   rj   rk  foo_expbar_exps          r   test_how_lambda_functionsrv  6  s   	!	!*j	9	9Bx%%BH[[$$%7%788F
++d


 
 
"
"C63'''kk$$$&&GGLkk$##%%GGL[[$$&8&8:Q:Q%RSSFU^FN6%='2226%='222 [[((""+B+BCC F 6%='uEEEE6%='uEEEEEEr   c                    t          dddd          }t          dddd          }t          ||d	
                              |           }t          ddi|          }|                    d                                           d S )Ni  r   rA   rE   rc  r   r  rx   rU  r7   r   r(   YS)r   r   rW   r	   r   rG   )r3   r:   r;   bad_indrp   s        r   test_resample_unequal_timesrz  Q  s    T1a##E
4B
"
"C'222::4@@G	GQ<w	/	/	/B KKr   c                    t          ddd                              |           }t          t          j        d          |          }t          j        |j        d<   t          |d         |d	         d
                              |           }|                    |d          }|                    |dd          }|                    |dd          }|	                    d          
                    d          }|	                    d          
                                }t          j        ||           t          j        ||           t          j        ||           d S )Nz
2002-02-02rx   rU  r         @r(   r#   r   rU   10minr7   bfill)r)   r9  )r)   r9  r7  r8  10Minr6  )r   rW   r   r$   r   r   r|   r:  reindex_liker   r~  r`   ra   )	r3   i30r+   i10s10s10_2rlr10_2r10s	            r   test_resample_consistencyr  ]  s<    \17
;
;
;
C
CD
I
ICry~~S)))AAF1I SVSW7
3
3
3
;
;D
A
AC
))#g)
.
.CIICqI99E	
G1	5	5BJJw%%A%..E
**W


#
#
%
%C 5#&&&5%(((5"%%%%%r     rm   r   r   rv   rE   r   r   r	  dates1rx   dates2r  c                    t          |                               |          } t          | t          j        t          |                     d          }|                    d                              d                                          }t          g ddd                              |          }t          dg di|          }|d         	                                
                                r|j                            d           |_        t          j        ||           |                    t!          dd	                                                    }t          j        ||           d S )
Nr   r   r   z
2014-07-31z
2014-08-31z
2014-09-30z
2014-10-31z
2014-11-30r8   r{   r   rA   r   r#   r#   rA   r(   r8   keyr   rW   r	   r$   r   r'   r  r   r  r   anyr)   r7  r`   r   rY   r   r  r3   rp   rj   exp_idxr   s         r   test_resample_timegrouperr    sL    %  ((..E	RYs5zz%:%:;;	<	<B\\#''--3355FNNN   gdmm	 
 #/w???H	#w||~~ 9!22488&(+++ZZTs33344::<<F&(+++++r   c           	      :   t          |                               |          } t          | t          j        t          |                     t          j        t          |                     d          }|                    d                              d                                          }t          g ddd                              |          }t          g dg dd|dd	g
          }|d         	                                
                                r|j                            d           |_        t          j        ||           |                    t!          dd                                                    }t          j        ||           d S )N)r   r   Cr   r   r  r  r  )r   r  r   r  r   r  r  r  s         r   test_resample_timegrouper2r    st   %  ((..E	RYs5zz%:%:3u::AVAVWW	X	XB\\#''--3355FNNN   gdmm	 
 ooOOO44c
  H
 
#w||~~ 9!22488&(+++ZZTs33344::<<F&(+++++r   c                 l   t          t          d          dt          d          dit          d          dt          d          did          }|j                            |           |_        |                    d          }|                    t          d	                    }|                    t          d	                    j                            d
           }|j	        dk    sJ ||fD ]0}|j        
                                }t          j        ||           1|j                            d          
                                }t          j        ||           |j                            t          d	                    
                                }t          j        ||           d S )Nz2015-06-05 00:00:00
0010100903z2015-06-08 00:00:00
0010150847z
2015-06-05z
2015-06-08)r
  DATEr5   r7   c                 *    |                                  S r   nuniquer   s    r   r~   z'test_resample_nunique.<locals>.<lambda>  s    		 r   r
  )r	   r   r)   rW   r   rY   r   r
  r   r{   r  r`   ra   )r3   rp   rq   rd   r   r  rj   s          r   test_resample_nuniquer    s   	 /00,/00,
 /00,/00,		
 		

 
B x%%BH
CA


7$$$%%Azz's+++,,/556K6KLLH=D    V 1 1
vx0000U^^C  ((**F68,,,U]]7,,,--5577F68,,,,,r   c           	      `   t          t          j                            d                              d          t          t          d          t                    t          ddd          	          	                                }|j
                            |           |_
        t          j                            |j                                        gdz  d
dg          |_        |                    d                                          }t'          j        |j        |j                   d S )Nr#   )rE   rx   r  r   r  rE   r5   r   r  lev0lev1)rg  r  )r	   r$   r%   r&   r9   r
   r  r  r   absr)   rW   r   rh  from_arraysro   r   r   r  r`   r  )r3   rp   rj   s      r   2test_resample_nunique_preserves_column_level_namesr    s    	
	a  0088d6ll&111qs;;;
 
 
 
cee	 
 x%%BH**					!&&)9 +  BJ [[&&((F"*fn55555r   funcc                 *    |                                  S r   r  r   s    r   r~   r~     s    !))++ r   c                 @    |                      t          j                  S r   )r_   r   r  r   s    r   r~   r~     s    !%%'' r   c                 ,    |                      d          S )Nr  )r_   r   s    r   r~   r~     s    !%%	"" r   )r  series_nuniquenunique_str)idsc                    t          ddd                              |          }t          ddd                              |          }|                    |          }t          t	          t          |                    |d          }|                    d	          }|                                } | |          }t          j	        ||           d S )
NrP  rQ  rR  r7   rS  rT  rB   rC   r   )
r   rW   r^   r   r   r'   r   r  r`   ra   )	r  r3   r)   rK  index3r+   rq   rj   r   s	            r   #test_resample_nunique_with_date_gapr    s     z;S999AA$GGE[s;;;CCDIIF\\&!!FuS[[!!w???A	

4AWWYYFtAwwH68,,,,,r   nr  i k)rm   r'  i  c                 8   t           j                            d          }t          d| dz  d                              |          }t          |                    d| |z  |                               d          |                    ||                     }|	                    d	          
                                }t          |j                                        |j                                        d	
                              |          }|j        }t          j        |j        |j        d          }	t          j        ||	f          }
||
         |	|
         }	}t           j        d|dd          |d d         k    f         }|t           j        d|	dd          |	d d         k    f         z  }t          j        |	|         dz
  t'          |                                        dd          }t          ||          }t)          j        ||           d S )Nr#   z
2015-08-27rm   rJ   r   r   rB   r(   rU  r1  rP   sideTrA   rU   	minlengthFcopy)r$   r%   r&   r   rW   r   r   r  choicer   r  r)   rJ   rK   r   searchsortedlexsortr_bincountr'   r`   ra   )r  r  r3   prngdrr   r   ixvalsbinssortermaskrg   rP   s                 r   test_resample_group_infor    s    9  ##D	,Re	D	D	D	L	LT	R	RB	aa++227;;4;;rSTCUCU	V	V	VB;;w''))D	"(,,..bhllnn7	K	K	K	S	S
 
B 9D?29bhW===DZt%%FftF|$D5tABBx49,,-DBE$QRRD"I--..D
+d4j1nB
8
8
8
?
?e
?
T
TC3b!!!E4'''''r   c                 J   d}t          d|d                              |           }t          t          j                            d                              |          t          j                            d                              ||                    }|                    d          	                                }t          |j
                                        |j
                                        d                              |           }t          j        |j        |j
        j        d	
          }t          j        |t!          |          dz             dd                              dd          }t          ||          }t%          j        ||           d S )Nr  z
2015-09-19rJ   r   r#   r(   r  r1  rP   r  rA   r  rB   Fr  )r   rW   r   r$   r%   r&   r9   r  r   sizer)   rJ   rK   r  r   r  r'   r  r`   ra   )	r3   r  r  r   r   r  r  r  rP   s	            r   test_resample_sizer    s`   A	L!%	8	8	8	@	@	F	FB	
	a  0033i##A&&--b!44
 
 
B
 ;;v##%%D	$*..**V	L	L	L	T	T
 
B ?29bhoGDDDD
+dc"ggk
2
2
2122
6
=
=gE
=
R
RC3b!!!E4'''''r   c                     t          ddgdg          } t          t          j        | j        d          j                            d          j                            d                    }t          d	d
gdg          }t          t          j        |j        d          j                            d          j                            d          d          }t          ddg|          }|                    d          	                                }t          ddg|          }t          j        ||           d S )Nid=XitKXr   r  r+   r3   UTCzEurope/Madridi 8XiFXrR  r7   rE   r(   r?  )r	   r   r   r   r   dtr  
tz_convertr   rG   r`   r   )df1dti1df2dti2rp   rj   r   s          r   test_resample_across_dstr  '  s(    Z,tf
=
=
=C
svC(((	KK	JJ'' D Z,tf
=
=
=C
svC(((	KK	JJ''	  D 
Aq6	&	&	&B[[c[""&&((F!Qt,,,H&(+++++r   c                    t          ddgd                              d                              |           }t          ddg|          }|                    t          d	
                                                    }t          dddd                              |           }t          |          }t          dgt          j	        gdz  z   dgz   |          }t          j        ||           d S )Nl   @j$ l   S*~Q$ r  r^  r  rA   r#   r(   1dr7   z
2016-11-02z
2016-11-24r   r  r  r   r  )r   r  rW   r	   rY   r   r   r   r$   r   r`   r   )r3   r)   rp   rj   expected_index_valuesr   s         r   !test_groupby_with_dst_time_changer  G  s     	*,?@UKKK	%	&	&	 
 
Aq6	'	'	'BZZT***++0022F&l1B  gdmm  /00E#26(R-0C58FFFH&(+++++r   c                    t          t          dddd          gd                              |           }t          dg|          }t          |j                                        d	
                              |           }t          dg|          }t          j        |                    d	          	                                |           |                    d          	                                 t          j        |                    d          	                                t          dgt          t          ddd          gdd                              |                                d S )Nrc  rv   rx      z
US/Easternr^  rE   r(   r5   r7   r  rA  rA   rF  r8   )
r   r   rW   r	   r)   	normalizer`   r   r   rG   )r3   rb   rp   r   s       r   test_resample_dst_anchorr  Z  s\   
$Ar223
E
E
E
M
Md
S
SC	A3c	"	"	"B
**,,3
7
7
7
?
?
E
EC!C(((H"++3+//3355x@@@KKTK   
""$$C$A&&'Lt  gdmm		
 	
 	
    r   c           	         t          dddd                              |           }t          |j                  }t	          |||d|d          }d	d
dd}|                    d          }|                    |          g d         }t	          g dg dg ddt          dddd                              |                     }t          j        ||d           |                    d          }|                    |          g d         }	t	          g dg dg ddt          dddd                              |                     }
t          j        |	|
d           |                    d          }|                    |          g d         }t	          g dg dg ddt          dddd                              |                     }t          j        ||d            |                    d!          }|                    |          g d         }t	          d"d#gd$d%gd#d&gdt          ddd!d                              |                     }t          j        ||d'           |d(d)         }|                    d*          }|                    d	d
dd          g d         }t	          g d+g d,g d-dt          d(d)d*d                              |                     }t          j        ||d.           d S )/Nz
2013-09-30r  30Minr  r  r  rB   rC   rJ   rK   r  r   )r   0   i    i   r  )/   i    i  q  2  )r  P  r  r  iR     z	9/30/2013z	11/4/2013r(   zW-MON Frequencyz2W-MON)r   r  r  r  )r  r  r  r  )r  i  i  r  z
11/11/2013z2W-MON FrequencyrA  )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/2013r5   )i  i  iB  r  )i  iA  r  i  )r  r  r  r  zD Frequency)	r   rW   r   r  r	   r   r_   r`   r   )r3   rb   r   rp   r4  r  rj   r   rs2r  	expected2rs3result3	expected3rs4result4	expected4df_dailyrs_dresult_d
expected_ds                        r   test_resample_dst_anchor2r  n  s   
l^  gdmm  38__F	f6::#W	U	U	UBE
0
0C	W		BVVC[[)F...111...	
 	

 7~
 
 

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

 H
 
 

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

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

 ,S^
 
 

'$--	 	 	J     r   c                 
   t          j        d          }t          ddd          }t          |                    |          dd                              |           }t          d|	                              d
                                          }t          dt          j
        gdz  dgz   t          |                    |          dd
                              |           	          }t          j        ||           d S )NzEurope/Berlinr  rm      rx   r  r   rE   r(   rR        @r   r   )pytztimezoner   r   localizerW   r   r   rH   r$   r   r`   ra   )r3   rF  r  r  rj   r   s         r   test_downsample_across_dstr    s    		'	'B	$B		Br{{2===EEdKKEAU###,,S116688F	bfSE!R!#>>>FFtLL  H 68,,,,,r   c                 \   t          t          g dd                              |           g d          }|                    d                                          }t          ddgt          d	d
gdd                              |                     }t          j        ||           d S )N)z
2017-03-25
2017-03-26z
2017-03-27z
2017-03-28z
2017-03-29Europe/Amsterdamr^  )rv   r   r      r	  )r)   r   1Wr  *   r  z
2017-04-02r  r  r(   )r	   r   rW   r   rG   r`   r   )r3   rp   rj   r   s       r   !test_downsample_across_dst_weeklyr    s    	RRR!
 
 
 '$--!!!
 
 
B [[""$$F	R<(-?c
 
 

'$--	  H &(+++++r   c                 ~   t          dddd                              |           }t          |t          j                  }|                    d                                          }t          t          ddd	d
                              |           t          j                  }t          j        ||           d S )Nz
2013-04-01z
2013-05-01zEurope/LondonrR  r  rC   r  z
2013-04-07rE   )r8   rz   rF  )	r   rW   r   r$   rn   r   rH   r`   ra   )r3   rh   r+   rj   r   s        r   #test_downsample_across_dst_weekly_2r
    s    
\<O#
N
N
N
V
V C 	S
+++AZZ__!!##FCOOOWW
 
 j	  H 68,,,,,r   c                    t          dddd          }t          dddd          }t          ||d                              |           }|                    d                              d	          }t          t          t          |                              }t          ||
          }|	                    t          d                                                    }t          dd                              d	d          }t          |d                              |           }t          g d|
          }t          j        ||           d S )Ni  rv   r   r   rE   r  r7   r  zAmerica/Havanar(   r=  z
2018-11-03rz   T)r  r5   )g      @g      <@g     @F@)r   r   rW   r  r  r  r   r'   r	   rY   r   rH   r   r`   r   )	r3   r:   r;   r)   r   	dataframerj   rb   r   s	            r   test_downsample_dst_at_midnightr    sC   T2q"%%E
4Q
#
#Cuc---55d;;Ee$$//0@AAEc%jj!!""D$e,,,IwD111227799F
\1
-
-
-
9
9D :  C #
&
&
&
.
.t
4
4C***#666H&(+++++r   c                    t          t          j        dt          j        ddg                              |           }t	          g d|          }t          g d                              |           }t	          g d|          }t          j        |                    d                                          |           t          ddg                              |           }t	          d	d
g|          }t          j        |                    d                                          |           t          dg                              |           }t	          dg|          }t          j        |                    d                                          |           t          j        |                    d                                          |           d S )N1970-01-01 00:00:001970-01-01 00:00:011970-01-01 00:00:02)r#   r   rE   r   rv   r(   )r  r  r  )r        @      &@1sr  r  2sr  3s60s)	r   r   NaTrW   r	   r`   r   r   rH   )	r3   r)   frameindex_1sframe_1sindex_2sframe_2sindex_3sframe_3ss	            r   test_resample_with_natr!    s   F!F!!	
  gdmm 
 &&&e444EMMM gdmm  ))):::H%....3355x@@@35JKLLTT H #tH555H%....3355x@@@3455==dCCH#h///H%....3355x@@@%..//4466AAAAAr   c           	      v   t          ddd          t          ddd          g}t          d|i|          }|j                            |           |_        t	          t          ddd          t
          j        t          ddd          gt          ddd	
                              |           d          }|                    d	          	                                d         }t          j        ||           |d                             d	          	                                }t          j        ||           d S )Ni  rA   r	  r   r  r(   z
2016-01-15r   2Dr   )r)   r{   )r   r	   r)   rW   r   r   r  r   r   firstr`   ra   )r3   r  rp   rk  rj  s        r   test_resample_datetime_valuesr%  ,  s"   
 dAr""HT1b$9$9:E	K'u	5	5	5Bx%%BH
	$2		q"(=(=>qt<<<DDTJJ  C ++d


!
!
#
#K
0C3$$$
[/
"
"4
(
(
.
.
0
0C3$$$$$r   c                 0   d }| j                             |          | _         d}|                     d                              ||          }|                     d                                                              |          }t          j        ||           |                     d                              ||          }|                     d                                                              |          }t          j        ||           d S )Nc                 0    t          j        |           |z  S r   r$   rH   r   add_args     r   rf   z3test_resample_apply_with_additional_args.<locals>.fC      wt}}w&&r   rm   r5   )r*  )r)   rW   r   r   rH   multiplyr`   ra   )r   r3   rf   
multiplierrj   r   s         r   (test_resample_apply_with_additional_argsr.  A  s    ' ' ' <''--FLJ__S!!'':66Fs##((**33J??H68,,, __S!!'':'>>Fs##((**33J??H68,,,,,r   c                     d } d}t          dddt          dd                    }d	}t          j        t          |
          5  |                    d                              d                              | |                              t                    }d d d            n# 1 swxY w Y   d	}t          j        t          |
          5  |                    d                              d          
                                                    |          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nc                 0    t          j        |           |z  S r   r(  r)  s     r   rf   z4test_resample_apply_with_additional_args2.<locals>.fU  r+  r   rm   rA   r#   r   2017r  r(   r  r   r   r5   )r	   r   r`   r#  r$  rY   r   r_   r  r*  rH   r,  r   )rf   r-  rp   r   rj   r   s         r   )test_resample_apply_with_additional_args2r2  S  s   ' ' ' J	##:fb+I+I+I	J	J	JB
FC		#M	=	=	= P PC))#..221jAAHHOOP P P P P P P P P P P P P P P
FC		#M	=	=	= M M::c??++C005577@@LLM M M M M M M M M M M M M M M&(+++++s&   AB''B+.B+AD))D-0D-)rA   r#   r   zn1, freq1, n2, freq2)
)   r+         ?r    )<   r+   rA   r    )i  r+   rA   rR  )r5  r    rA   rR  )i`T  r+   g      ?r5   )r  r+   rA   r5   )i  r+   r4  r5   )i  r    rA   r5   )r   rR  r4  r5   )   rR  rA   r5   c                    | |z  }||z  }t          dd|                              |          }t          t          t	          |                    |          }	|	                    t          |          |z                                             }
|	                    t          |          |z                                             }t          j	        |
|           d S )Nz
1991-09-05z
1991-09-12r7   r(   )
r   rW   r   r   r'   r   r   rH   r`   ra   )n1freq1n2freq2r  r3   n1_n2_rb   serr  r  s               r    test_resample_equivalent_offsetsr?  d  s    $ q&C
q&C
\<e
<
<
<
D
DT
J
JC
s3xx
,
,
,Cll3s88e+,,1133Gll3s88e+,,1133G7G,,,,,r   z"first,last,freq,exp_first,exp_last))1991090519920406r5   r@  19920407)z19910905 00:0019920406 06:00r5   r@  rB  )19910905 06:00rC  rR  rD  z19920406 07:00)19910906rA  r   1991083119920430)rF  rG  r   rF  19920531)z1991-08z1992-04r   rF  rH  c                    t          |           } |                     | j                                      |          } t          |          }|                    |j                                      |          }t	          |          }t	          |          }t
          j        j                            |          }t          | ||d          }||f}||k    sJ d S )Nr.   r  )
r   r  r8   rW   r   r   r(  frequencies	to_offsetr   )r$  r   r8   	exp_firstexp_lastr3   rj   r   s           r   test_get_timestamp_range_edgesrN    s     5MMEuz**22488E$<<DTY''//55D)$$I""H:!++D11D'tTEEEF8$HXr   
duplicatesTFc           	         t          ddd                              |          }t          t          d          |          }t	          ||dz   d          }| r	ddg|_        d	}t          j        t          |
          5  |	                    d          
                    t          j                  }d d d            n# 1 swxY w Y   t	          t          j        ddgddgddgddggt          j                  t          g dd                              |          |j                  }t          j        ||           d S )Nz
2012-01-31r   r   r:   r8   rz   r(   r#   r   r   z!using DatetimeIndexResampler.prodr   ru  r   r6  r5     r  r  i  i  r   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31QE-DECr7   r   )r   rW   r   r   r	   ro   r`   r#  r$  r   r   r$   rI   rX   rB   r   r   )rO  r3   r)   r   rp   r   rj   r   s           r   test_resample_apply_productrT    s    \bAAAII$OOE	b			'	'	'B	"q&))	*	*B  3Z

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

'$--
  H &(+++++s   3C  CCz$first,last,freq_in,freq_out,exp_last))
2020-03-28
2020-03-31r5   r  z2020-03-30 01:00)rU  
2020-10-27r5   r  2020-10-27 00:00)
2020-10-25rW  r5   r  z2020-10-26 23:00)rU  rV  r  r5   z2020-03-30 00:00)rU  rW  r  r5   rX  )rY  rW  r  r5   z2020-10-26 00:00r$  r   freq_infreq_outrM  c           	      N   t          dt          | ||d                              |                    }|                    |                                          }t          dt          | ||d                              |                    }t          j        ||           d S )Nr  r  r  )r   r   rW   r   r'  r`   ra   )	r$  r   rZ  r[  rM  r3   r   rj   r   s	            r   #test_resample_calendar_day_with_dstr]    s    N 
Zt'6HIIIQQRVWW
 
B [[""((**F5(6HIIIQQRVWW H 68,,,,,r   )rJ   rK   r$  r   c                    t          ddd                              |          }t          dt          j        t          j        g|          } t          |                    d          |           d          }t          t          j        gt          d	gd
                              |                    }t          j	        ||           d S )N2020r   r   rQ  rA   ru  r#   )	min_countrV  rS  r7   r(   )
r   rW   r   r$   r   r   r   r   r`   ra   )r  r3   r)   r>  rj   r   s         r   +test_resample_aggregate_functions_min_countra    s     V$:::BB4HHE
!RVRV$e
,
,C.WS\\$''..;;;F	\N:::BB4HH  H 68,,,,,r   c           	         t          t          ddd                              |          dgg ddz  |           }|j        |j        d	k     |j        d
k    z  d d f         }|                    d                                          }t          dt          j        dgdgt          ddd                              |                    }t          j
        ||           d S )Nr  z2000-01-03 23r  r1  r   )r   rA   r   r#   )r)   ro   r   rD   z
2000-01-02z
2000-01-03r5   rA   r   r  )r	   r   rW   rW  r)   r   rK   r$   r   r`   r   )any_unsigned_int_numpy_dtyper3   rp   rj   r   s        r   test_resample_unsigned_intrd    s    	|uMMMUU
 
 YY]*
 
 
B 
L(RX-DEqqqH	IB[[!!##F	
BFA|sKKKSS
 
  H &(+++++r   c                  `   t          dddd          } t          g d|           }|                    d                                          }t	          t          j        g d	                              d
          d          }t          g d|          }t          j	        ||           d S )Nz
0300-01-01r  r+   100YE)r3   r8   )rA   rx   r#   r   rE   r   rA   rx   r#   r   rE   r   rA   rx   r#   r   rE   r(   200YE)	z
0300-12-31z
0500-12-31z
0700-12-31z
0900-12-31z
1100-12-31z
1300-12-31z
1500-12-31z
1700-12-31z
1900-12-31zdatetime64[s]z	200YE-DECr7   )	r  r        @r|  r  rh  r|  r  rh  )
r   r   r   rH   r   r$   rX   r  r`   ra   )rh   r>  rj   expected_idxr   s        r   test_long_rule_non_nanorj    s    
\<c
H
H
HC
DDDC
P
P
PC\\'""''))F 

 
 
	
 	
 &
!
!  L  CCC<XXXH68,,,,,r   c                  .   t          g g d                              ddi          } |                     ddddd          d                                         }t	          g ddd	          }t          g |dd
          }t          j        ||           d S )N)r   r   r   zdatetime64[ns, Atlantic/Faroe]r  r   r:   )onrR   rS   r  r   )r8   r{   rD   rn   )r)   r{   rD   )r	   r  r   rG   r   r   r`   ra   )rp   rj   ri  r   s       r   "test_resample_empty_series_with_tzrm  !  s    	"++	,	,	3	3	/0
 
B [[4fW[UU	cee  !
T)I  L b89MMMH68,,,,,r   zfreq, freq_depr))2ME2M)2QE2Q)z2QE-SEPz2Q-SEP)1YE1Y)2YE-MARz2Y-MAR)rr  1A)rt  z2A-MARc                    d|dd           d}d| dd           d t          t          d          t          ddd	          
          }|                    |                                           }t          j        t          |          5  |                    |                                          }d d d            n# 1 swxY w Y   t          j        ||           d S N'rA   z$' is deprecated and will be removed z!in a future version, please use 'r  rm   20130101r   r   r(   r   	r   r   r   r   rH   r`   r#  r$  ra   r8   	freq_deprdepr_msgr+   r   rj   s         r    test_resample_M_Q_Y_A_deprecatedr~  1  s    G9QRR=FFFH<QRR<<<<uRyy
:C L L LMMMAzz$$$&&H		#M	B	B	B . .I&&++--. . . . . . . . . . . . . . .68,,,,,   (CCC))2BME2BM)2BQE2BQ)z2BQE-MARz2BQ-MARc                    d|dd           d}d| dd           d t          t          d          t          ddd	          
          }|                    |                                           }t          j        t          |          5  |                    |                                          }d d d            n# 1 swxY w Y   t          j        ||           d S rw  rz  r{  s         r   test_resample_BM_BQ_deprecatedr  I  s    G9QRR=FFFH<QRR<<<<uRyy
:C L L LMMMAzz$$$&&H		#M	B	B	B . .I&&++--. . . . . . . . . . . . . . .68,,,,,r  c                    t          ddd|           }t          d|i|          }|                    dd	          }|                                }t	          t          d
dd          t          d
dd          gd                              |           }t          dt          d
dd          t          d
dddd          gi|                              d|  d          }t          j	        ||           d S )N
2020-01-311minp  r:   r8   rz   r3   r   r(   rA  rP   r6    rA   r#   r7   rx   r   ;   M8[]
r   r	   r   r   r   r   rW   r  r`   r   )r3   rb   rp   groupedrj   exp_dtir   s          r   test_resample_ms_closed_rightr  ]  s   
<fd
N
N
NC	D#;c	*	*	*Bkk$wk//G\\^^F	$1		xa3344  gdmm  	q!$$htQ1b&A&ABC   f]4]]]  &(+++++r   r   r  c                 r   t          ddd|          }t          d|i|          }|                    | d          }|                                }t	          t          d	d
d          t          d	d
d          t          d	dd          t          d	dd          g|                               |          }t          dt          d	d
d          t          d	dd          t          d	dd          t          d	dddd          gi|                              d| d          }t          j	        ||           d S )Nr  r  r  r  r   r(   rP   r6  r  rA   r3  r  r#   r   rx   r7   r  r  r  r  )r8   r3   rb   rp   r  rj   r  r   s           r   test_resample_c_b_closed_rightr  m  sY    <fd
N
N
NC	D#;c	*	*	*Bkk$wk//G\\^^FT1b!!T1b!!T1a  T1a  		
    gdmm  q"%%q!$$q!$$q!Q++		
 
 
 
 f]4]]]  &(+++++r   c           
         t          ddd|           }t          g d|          }|                    ddd	                                          }t	          t          d
dd          t          d
dd          t          d
dd          t          d
dd          gd                              |           }t          g d|          }t          j        ||           d S )Nz
2023-09-26ru   r  )rz   r8   r3   )rA   r#   r   rx   rE   ru   r(   r   rP   r   i  r   r           r7   )r  g      @g      @g      @)	r   r   r   rH   r   r   rW   r`   ra   )r3   rb   r>  rj   r  r   s         r   test_resample_b_55282r    s    
\15t
D
D
DC
###3
/
/
/C\\#gW\==BBDDFT1b!!T1b!!T1b!!T1b!!		
    gdmm    H 68,,,,,r   pyarrowrF  r  z/TODO: Set ARROW_TIMEZONE_DATABASE env var in CI)	conditionr`  c                 T   t          t          dd          d          }| |j                            |           }t          t	          j        dt          j                  |          }|                    d                                          }t          j
        ||           d S )Nz
2020-01-01rE   r  ztimestamp[ns][pyarrow]r   r(   r=  )r   r   r  r  r$   r   rn   r   rH   r`   ra   )rF  rh   r   rj   s       r   test_arrow_timestamp_resampler    s      L!444<T
U
U
UC	~f  $$bi44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*   r3   r?   rk   rr   markparametrizer   r   r   filterwarningsr   r   r   r   r   r  r  r  r  r%  r(  r,  r4  r<  rI  rN  rY  r\  rl  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r$  r.  r9  r>  r@  rD  rL  rO  rQ  rS  rX  r^  r1   xfailrg  rv  rz  r  r  r  __annotations__r  r  dates3r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r!  r%  r.  r2  r?  rN  rT  r   r]  ra  rd  rj  rm  r~  r  r  r  r  
skip_if_nor  r   r   r   <module>r     s                            * * * * * * - - - - - - ) ) ) ) ) ) ) ) )                            / / / / / / 4 4 4 4 4 4              
 # " " " " " ) ) ) ) ) )       7 7 7 ...///  0/ 	% 	% 	%!+ !+ !+H	  	  	  )89    	
  	
 *- -+ 	 2-- - -0- - - F  )89  LLL 6 6	 	  6 )89 - -	 -, )89 , ,	 ,41 1 12=, =, =,@7( 7( 7(t. . .< JJJKK: : LK: $..G G /.G '411	0 	0 21	0( ( ("? ? ?:, , ,- - - !=!=!=>>!L!L!LMM	- 	- NM ?>	-$ $ $0
$ 
$ 
$, , ,$*$ *$ *$`, , ,(	0 	0 	0 	VFGDDE	VFGDDE	9cBBC - - -< < <(
8 
8 
8  , , , !O!O!OPP- - QP- A''T T ('T- - -
4 
4 
4 	()	992334d++	()	5
 

4 
4
 

4 
HlFFHHU 	+ 	+ 	+ OYffhh#WXX+ + YX+"4 "4 "4JG G GBS S S84- 4- 4-n- - -
3 
3 
3- - - , , ,.( ( (*- - - 0 0 0  ( ( ( ' ' '6, , ,8   !L!L!LMM  NM sgu5E'FGGF F HGF$2 2 2: : :  ) ) )( ( ( +##F $  	
 	
 	
	
 ' ' '(F F F6	 	 	& & &0 HT2qHT1aHT2qHT1aHT2qHT1b!_    2A2J"&F1Q3K'26(2VABBZ? _    &F	bfX	% 666":;;, , <;,& 666":;;, , <;,0- - ->6 6 6 
''""
 	544   
- 
- 
- ufo..ooo..( ( /. /.(:( ( ((, , ,@, , ,&  (Y Y Yx
- 
- 
-, , ,&- - - , , ,$B B B@% % %*- - -$, , ," iii((   	- 	-  )( 	- (  
 
 
 
 e}55, , 65,, *  " "F---$'-36-BE- - -G" "F- !@!@!@AA	- 	- BA	-, , ,0- - -2- - -     	- 	- 	-    	- 	- 	-, , ,  #s,,, , , , -,,<- - -, y+##--//H $  	
 	
 	
	 - -  - - -r   