
    d,                        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	ej                            d           ed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_range  z1/1/2000periodsindexc                     t          ddd          } t                              |           }d }|                    |          }t                              d                               |          }|j                            d          |_        |j                            d          |_        t          j        ||           d S )NArightfreqlabelclosedc                 :    |                                  dd          S )N)sort_valuesxs    c/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/resample/test_time_grouper.pyfztest_apply.<locals>.f   s    }}rss##    c                     | j         S Nyearr   s    r   <lambda>ztest_apply.<locals>.<lambda>       QV r   r   )r   test_seriesgroupbyapplyr   	dropleveltmassert_series_equal)groupergroupedr   appliedexpecteds        r   
test_applyr.      s    3gg>>>G!!'**G$ $ $ mmAG""#3#344::1==HM++A..GM^--a00HN7H-----r   c                     t           j        t          d d d<   t                              d                                           } t          ddd          }t                              |                                          }|j        | _        t          j        ||            t          	                    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   )
npnanr$   r%   countr   r   r(   r)   resample)r-   r*   results      r   
test_countr7   $   s    vK!""#3#344::<<H3gg>>>G  ))//11F\HN68,,,!!#&&,,..F\HN68,,,,,r   c                     t                               dd                                          } t                               d                               t
          j                  }| j        |_        t          j        | |           d S )Nr   r   )r   c                     | j         S r   r    r   s    r   r"   z&test_numpy_reduction.<locals>.<lambda>6   r#   r   )	r$   r5   prodr%   aggr2   r   r(   r)   r6   r-   s     r   test_numpy_reductionr=   3   so    !!#g!66;;==F""#3#34488AAH\HN68,,,,,r   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         )opencloser   Mr   F)
group_keysc                 $    | d         | d         z  S )NrE   rD    )dfs    r   r   ztest_apply_iteration.<locals>.fH   s    '{RZ''r   )	r	   r   r   _get_grouperr%   r&   r(   assert_index_equalr   )	NindrK   tgr*   _r+   r   r6   s	            r   test_apply_iterationrR   <   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 )NrC   )r(   makeCustomIndex)ms    r   r"   r"   V   s    2%a++ r   c                 b   d} | |          }t          |          j        }t          dt          j                            |          i|          }d| d}t          j        t          |          5  |	                    t          d                     d d d            d S # 1 swxY w Y   d S )	NrC   ar   zVOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of '')matchr@   rG   )type__name__r   r2   randomrandnpytestraises	TypeErrorr%   r   )rS   nr   namerK   msgs         r   test_fails_on_no_datetime_indexre   P   s     	
ADGGE;;D	C++,E	:	:	:B	;37	; 	; 	;  
y	,	,	, & &


7$$$%%%& & & & & & & & & & & & & & & & & &s   3$B$$B(+B(c            	         d} t           j                            | 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
<   |                    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   BCr@   columns  rB   rC   r0      keyr@   rp   r   )
r2   r]   r^   r   r   r%   r   r(   assert_frame_equal	get_group)rb   datarK   r+   s       r   test_aaa_group_orderru   g   s    	A9??1a  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.rg   rh   ri   rl   )rB   rC   r0   rh   ro   rp   rn   rB   rC   r0   ro   r@   rq   
2013-01-01rA   r   r   rc   N)r2   r]   r^   r   r   r%   r   getattrr	   r   r(   assert_equal)resample_methodrt   	normal_dfdt_dfnormal_grouped
dt_groupedr-   	dt_results           r   test_aggregate_normalr   }   sO    9??2q!!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            	      v   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 rw   )r2   r]   r^   r   r   r%   r   nthr	   r   r(   rr   )rt   r}   r~   r   r   r-   r   s          r   test_aggregate_nthr      sF    9??2q!!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_countrB   r:   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   rC   2017rh   r   r   2dg        z
2017-01-01z
2017-01-032DrG   )
r   r2   r3   r	   r   r5   pdDatetimeIndexr(   r)   )methodmethod_argsunitsr6   r-   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   )r:   rB   )r4   r   c           	         d}t           j                            |d                              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 )Nrg   rh   int64ri   rl   rB   rC   ro   rp   rn   r@   rq   r0   )r   rm   rx   ry   )r2   r]   r^   astyper   r3   r   r   NaTr%   r   rz   concat
sort_indexr	   
_with_freqr   r(   rr   rc   )rS   
fill_valuerb   rt   r}   r~   r   r   normal_resultr   padr-   dtis                r   test_aggregate_with_natr      s    	A9??1a  ''00D$(<(<(<===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            	      p   d} t           j                            | d                              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 )Nrg   rh   r   ri   rl   rB   rC   ro   rp   rn   r@   rq   r   r0   r   rx   ry   )r2   r]   r^   r   r   r3   r   r   r   r%   r   sizer   r   r   r	   r   r   r(   r)   rc   )
rb   rt   r}   r~   r   r   r   r   r   r-   s
             r   test_aggregate_with_nat_sizer      s   
A9??1a  ''00D$(<(<(<===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   Hrq   zTimeGrouper(key='A', freq=<Hour>, axis=0, sort=True, dropna=True, closed='left', label='left', how='mean', convention='e', origin='start_day')r?   )rp   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<   s     r   	test_reprr   
  sy    'c,,,--F	. 
 X'cLAAABBF	C 
 Xr   z$method, method_args, expected_values)rB   r   rB   rC   )rB   rB   rB   c                    t          dt          ddd                    }|                    d          }t          j        g dd	          } t          | fi ||          }t          ||          }t          j        ||           d S )
NrB   r   rC   r   r   r   r   30T)z2017-01-01T00:00:00z2017-01-01T00:30:00z2017-01-01T01:00:00rG   )r   r	   r5   r   r   r   r(   r)   )r   r   expected_valuesr   	resampledr   r6   r-   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/2018r0   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@   )rt   r   )r   r	   	set_indexr%   r5   interpolater   
MultiIndexfrom_tuplesr   r(   rr   )drK   r6   expected_indr-   s        r   !test_groupby_resample_interpolater   6  s   ++66A	1B$\13GGGB 	_%%				$	H	%	%	  =,,<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()<(()!	
$ )' -  L,   $ frkRD('
 
* -  H0 &(+++++r   )*r   operatorr   numpyr2   r_   pandasr   r   r   r   pandas._testing_testingr(   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr	   r]   r^   r$   r.   r7   r=   rR   markparametrizemakeIntIndexmakeStringIndexmakeFloatIndexre   ru   r   xfailr   r3   r   r   r   r   r   r   rJ   r   r   <module>r      s         ! ! ! ! ! !                  
       / / / / / / 4 4 4 4 4 4fRY__T****ZQU2V2V2VWWW. . . - - -- - -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   