
    o[we.                        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m	Z	m
Z
 d dlmZ d dlmZ d dlmZ ej        d             Zd Zd	 Zd
 Zd Zej                            dej        ej        ej        d g          d             Zd Zd Zej                             d          d             Z!ej                            ddi d fddd id fdddiej"        fdi dfddd idfdddiej"        fg          d             Z#ej                            ddej"        fdej"        fdddg          d              Z$d! Z%d" Z&ej                            d#di g d$fddd ig d$fdddidej"        dgfddd%iej"        ej"        ej"        gfdi g d&fddd ig d&fdddidej"        dgfddd%iej"        ej"        ej"        gfg          d'             Z'd( Z(dS ))    )datetime)methodcallerN)	DataFrameSeries	Timestamp)Grouper)
date_rangec                      t          t          j                            d                              d          t          dd                    S )N     z1/1/2000periodsindex)r   nprandomdefault_rngstandard_normalr	        Glib/python3.11/site-packages/pandas/tests/resample/test_time_grouper.pytest_seriesr      sJ    
	a  0066T222   r   c                 |   t          ddd          }|                     |          }d }|                    |          }|                     d                               |          }|j                            d          |_        |j                            d          |_        t          j        ||           d S )NArightfreqlabelclosedc                 :    |                                  dd          S )N)sort_valuesxs    r   fztest_apply.<locals>.f   s    }}rss##r   c                     | j         S Nyearr#   s    r   <lambda>ztest_apply.<locals>.<lambda>#       QV r   r   )r   groupbyapplyr   	dropleveltmassert_series_equal)r   groupergroupedr%   appliedexpecteds         r   
test_applyr5      s    3gg>>>G!!'**G$ $ $ mmAG""#3#344::1==HM++A..GM^--a00HN7H-----r   c                    t           j        | d d d<   |                     d                                           }t	          ddd          }|                     |                                          }|j        |_        t          j        ||           |                     d                                          }|j        |_        t          j        ||           d S )N   c                     | j         S r'   r(   r#   s    r   r*   ztest_count.<locals>.<lambda>-   r+   r   r   r   r   )	r   nanr,   countr   r   r/   r0   resample)r   r4   r1   results       r   
test_countr=   *   s    vK!""#3#344::<<H3gg>>>G  ))//11F\HN68,,,!!#&&,,..F\HN68,,,,,r   c                 j   |                      dd                                          }d}t          j        t          |          5  |                     d                               t          j                  }d d d            n# 1 swxY w Y   |j        |_        t          j	        ||           d S )Nr   r   )r   zusing SeriesGroupBy.prodmatchc                     | j         S r'   r(   r#   s    r   r*   z&test_numpy_reduction.<locals>.<lambda>>   s     r   )
r;   prodr/   assert_produces_warningFutureWarningr,   aggr   r   r0   )r   r<   msgr4   s       r   test_numpy_reductionrG   9   s    !!#g!66;;==F
$C		#M	=	=	= F F&&'7'788<<RWEEF F F F F F F F F F F F F F F\HN68,,,,,s   4BBBc                  B   d} t          dd|           }t          ddd|          }t          d	
          }|                    |          \  }}|                    |d          }d }|                    |          }t          j        |j        |j                   d S )Nr   
2000-01-01D)startr   r      r   )opencloser   Mr   F)
group_keysc                 $    | d         | d         z  S )NrN   rM   r   )dfs    r   r%   ztest_apply_iteration.<locals>.fP   s    '{RZ''r   )	r	   r   r   _get_grouperr,   r-   r/   assert_index_equalr   )	NindrS   tgr1   _r2   r%   r<   s	            r   test_apply_iterationrZ   D   s    A
<c1
=
=
=C	A**#	6	6	6B	c			B$$JGQ jjUj33G( ( ( ]]1F&,11111r   funcc                 ,    t          j        | d          S )Nr   )r/   makeCustomIndex)ms    r   r*   r*   ^   s    2%a++ r   c                    d} | |          }t          |          j        }t          dt          j                            d                              |          i|          }d| d}t          j        t          |          5  |
                    t          d                     d d d            d S # 1 swxY w Y   d S )	Nr   ar   zVOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of ''r?   rJ   rP   )type__name__r   r   r   r   r   pytestraises	TypeErrorr,   r   )r[   nr   namerS   rF   s         r   test_fails_on_no_datetime_indexri   X   s    	
ADGGE;;D	C..q11AA!DDEU	S	S	SB	;37	; 	; 	;  
y	,	,	, & &


7$$$%%%& & & & & & & & & & & & & & & & & &s   $B77B;>B;c            	         d} t           j                            d                              | df          }t	          |g d          }t          ddd          t          ddd          t          ddd          t          ddd          t          ddd	          gdz  |d
<   |                    t          d
d                    }t          j	        |
                    t          ddd                    |d d d	                    t          j	        |
                    t          ddd                    |dd d	                    t          j	        |
                    t          ddd                    |dd d	                    t          j	        |
                    t          ddd                    |dd d	                    t          j	        |
                    t          ddd	                    |dd d	                    d S )N   r      r   BCrJ   columns  rL   r7      keyrJ   rt   r   )r   r   r   r   r   r   r,   r   r/   assert_frame_equal	get_group)rg   datarS   r2   s       r   test_aaa_group_orderry   o   s    	A9  ##33QF;;D	4!5!5!5	6	6	6Bq!q!q!q!q! 	

BuI jjU55566G'++HT1a,@,@AA2ccc7KKK'++HT1a,@,@AA2add8LLL'++HT1a,@,@AA2add8LLL'++HT1a,@,@AA2add8LLL'++HT1a,@,@AA2add8LLLLLr   c           	         t           j                            d                              d          }t	          |g d          }g ddz  |d<   t	          |g d          }t          dd	d	          t          dd	d          t          dd	d
          t          dd	d          t          dd	d          gdz  |d<   |                    d          }|                    t          dd                    } t          ||                       } t          ||                       }t          dddd          |_
        t          j        ||           dS z?Check TimeGrouper's aggregation is identical as normal groupby.r   )rk   rl   rm   rp   )rL   r   r7   rl   rs   rl   rt   rr   rL   r7   rs   rJ   ru   
2013-01-01rK   r   r   rh   N)r   r   r   r   r   r   r,   r   getattrr	   r   r/   assert_equal)resample_methodrx   	normal_dfdt_dfnormal_grouped
dt_groupedr4   	dt_results           r   test_aggregate_normalr      s]    9  ##33G<<D$(<(<(<===I&*Ied$8$8$8999Eq!q!q!q!q! 	

E%L &&u--Nw5s;;;<<J7w~7799H4
O4466IlaeTTTHNOHi(((((r   z7if TimeGrouper is used included, 'nth' doesn't work yet)reasonc            	         t           j                            d                              d          } t	          | g d          }g ddz  |d<   t	          | g d          }t          dd	d	          t          dd	d          t          dd	d
          t          dd	d          t          dd	d          gdz  |d<   |                    d          }|                    t          dd                    }|                    d
          }t          dddd          |_
        |                    d
          }t          j        ||           dS r{   )r   r   r   r   r   r   r,   r   nthr	   r   r/   rv   )rx   r   r   r   r   r4   r   s          r   test_aggregate_nthr      sT    9  ##33G<<D$(<(<(<===I&*Ied$8$8$8999Eq!q!q!q!q! 	

E%L &&u--Nw5s;;;<<J!!!$$HlaeTTTHNq!!I(I.....r   zmethod, method_args, unitsum	min_countrL   rB   c                 >   t          dgdz  t          j        gdz  z   t          dd                    } t	          | fi ||                    d                    }t          d|gt          j        d	d
gd                    }t          j	        ||           d S )Nr   r   2017rl   r   r   2dg        z
2017-01-01z
2017-01-032DrP   )
r   r   r9   r	   r   r;   pdDatetimeIndexr/   r0   )methodmethod_argsunitsr<   r4   s         r   !test_resample_entirely_nat_windowr      s     	sQw"&A%Z-J-J-JKKKA0\&00K00D1A1ABBF	d2+\<,HtTTT  H 68,,,,,r   zfunc, fill_valueminmax)r   r   )rB   rL   )r:   r   c           	         d}t           j                            d                              |df                              d          }t          |g d          }ddt           j        ddgdz  |d	<   t          |g d          }t          d
dd          t          d
dd          t          j	        t          d
dd          t          d
dd          gdz  |d	<   |
                    d	          }|
                    t          d	d                    } t          ||                       } t          ||                       }	t          |gdz  gdgg d          }
t          j        ||
g          }|                                }t          dddd	          }|                    d           |_        t%          j        ||	           |	j        j        d	k    sJ d S )Nrk   r   rl   int64rm   rp   rL   rs   rt   rr   rJ   ru   r7   )r   rq   r|   r}   )r   r   r   r   astyper   r9   r   r   NaTr,   r   r~   concat
sort_indexr	   
_with_freqr   r/   rv   rh   )r[   
fill_valuerg   rx   r   r   r   r   normal_resultr   padr4   dtis                r   test_aggregate_with_natr      s    	A9  ##33QF;;BB7KKD$(<(<(<===I1bfa+a/Ied$8$8$8999Eq!q!
q!q! 	

E%L &&u--Nw5s;;;<<J1GND1133M)
D))++I
j\A%&qc;O;O;O
P
P
PCy--..H""$$H
<c15
I
I
IC^^D))HN(I...?5((((((r   c            	         d} t           j                            d                              | df                              d          }t          |g d          }ddt           j        ddgdz  |d	<   t          |g d          }t          d
dd          t          d
dd          t          j	        t          d
dd          t          d
dd          gdz  |d	<   |
                    d	          }|
                    t          d	d                    }|                                }|                                }t          dgdg          }t          j        ||g          }	|	                                }	t!          dddd	                              d           |	_        t'          j        |	|           |j        j        d	k    sJ d S )Nrk   r   rl   r   rm   rp   rL   rs   rt   rr   rJ   ru   r   r7   r   r|   r}   )r   r   r   r   r   r   r9   r   r   r   r,   r   sizer   r   r   r	   r   r   r/   r0   rh   )
rg   rx   r   r   r   r   r   r   r   r4   s
             r   test_aggregate_with_nat_sizer      s   
A9  ##33QF;;BB7KKD$(<(<(<===I1bfa+a/Ied$8$8$8999Eq!q!
q!q! 	

E%L &&u--Nw5s;;;<<J"''))M!!I
!QC
 
 
 Cy--..H""$$Hae  j N 8Y///?5((((((r   c                      t          t          dd                    } d}| |k    sJ t          t          ddd                    } d}| |k    sJ d S )Nr   Hru   zTimeGrouper(key='A', freq=<Hour>, axis=0, sort=True, dropna=True, closed='left', label='left', how='mean', convention='e', origin='start_day')rI   )rt   r   originzTimeGrouper(key='A', freq=<Hour>, axis=0, sort=True, dropna=True, closed='left', label='left', how='mean', convention='e', origin=Timestamp('2000-01-01 00:00:00')))reprr   )r<   r4   s     r   	test_reprr     sy    'c,,,--F	. 
 X'cLAAABBF	C 
 Xr   z$method, method_args, expected_values)rL   r   rL   r   )rL   rL   rL   c                    t          dt          ddd                    }|                    d          }t          j        g dd	          } t          | fi ||          }t          ||          }t          j        ||           d S )
NrL   r   r   r   r   r   r   30T)z2017-01-01T00:00:00z2017-01-01T00:30:00z2017-01-01T01:00:00rP   )r   r	   r;   r   r   r   r/   r0   )r   r   expected_valuesr   	resampledr   r<   r4   s           r   test_upsample_sumr   %  s     	q
613???@@@A

5!!IMMM  E 1\&00K00;;FoU333H68,,,,,r   c                     g dg dd} t          |           }t          ddd          |d<   |                    d                              d	                              d
                              d          }t          j                            dt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fdt          d          fgd	dg          }t          g dd gd!z  dgz   d|"          }t          j        ||           d S )#N)
      	   )2   <   r   )pricevolumez
01/01/2018r7   Wr   week_startingr   1Dlinear)r   r   z
2018-01-07z
2018-01-08z
2018-01-09z
2018-01-10z
2018-01-11z
2018-01-12z
2018-01-13z
2018-01-14z
2018-01-15z
2018-01-16z
2018-01-17z
2018-01-18z
2018-01-19z
2018-01-20z
2018-01-21r   )names)g      $@gm۶m#@gn۶m۶#@g%I$I#@g۶m۶m#@g$I$I#@gI$I$#@g      #@gm۶m"@gn۶m۶"@g%I$I"@g۶m۶m"@g$I$I"@gI$I$"@g      "@g      &@g      I@   )rx   r   )r   r	   	set_indexr,   r;   interpolater   
MultiIndexfrom_tuplesr   r/   rv   )drS   r<   expected_indr4   s        r   !test_groupby_resample_interpolater   >  s   ++66A	1B$\13GGGB 	_%%				$	H	%	%	  =,,<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()!	
$ )' -  L,   $ frkRD('
 
* -  H0 &(+++++r   ))r   operatorr   numpyr   rd   pandasr   r   r   r   pandas._testing_testingr/   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr	   fixturer   r5   r=   rG   rZ   markparametrizemakeIntIndexmakeStringIndexmakeFloatIndexri   ry   r   xfailr   r9   r   r   r   r   r   r   r   r   r   <module>r      s         ! ! ! ! ! !                  
       / / / / / / 4 4 4 4 4 4   . . . - - -- - -2 2 2( 



	+	+	 & & &M M M,) ) )2 STT/ / UT/2 	A	a !$	a "&)	Q	+q!1%	+q!26*
 
- -
 
- RV_ubfoz;M ) )	 )D) ) )@  & *	III	a ))),	a 1bfa.1	a 262626":;	YYY	+q!999-	+q!Arvq>2	+q!BFBFBF#;<	 	- 	- 	-=, =, =, =, =,r   