
    Mh=.                     P   S SK J r   S SKJr  S SKrS SKrS SKrS SKJrJ	r	J
r
Jr  S SKJr  S SKJr  S SKJr  \R&                  S 5       rS rS	 rS
 rS r\R2                  R5                  S\	" SS/5      \	" SS/5      \	" SS/5      \R6                  R9                  SS/SS//5      /5      S 5       rS rS r\R2                  RA                  SS9S 5       r!\R2                  R5                  SS0 S 4SSS 0S 4SSS0\RD                  4S0 S4SSS 0S4SSS0\RD                  4/5      S 5       r#\R2                  R5                  SS\RD                  4S \RD                  4S!S"S#/5      S$ 5       r$S% r%S& r&\R2                  R5                  S'S0 / S(Q4SSS 0/ S(Q4SSS0S\RD                  S/4SSS0\RD                  \RD                  \RD                  /4S0 / S)Q4SSS 0/ S)Q4SSS0S\RD                  S/4SSS0\RD                  \RD                  \RD                  /4/5      S* 5       r'S+ r(g),    )datetime)methodcallerN)	DataFrameIndexSeries	Timestamp)Grouper)
date_rangec                  ~    [        [        R                  R                  S5      R	                  S5      [        SSS9S9$ )N     z1/1/2000periodsindex)r   nprandomdefault_rngstandard_normalr
        Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/resample/test_time_grouper.pytest_seriesr      s6    
		a 006T2 r   c                 R   [        SSSS9nU R                  U5      nS nUR                  U5      nU R                  S 5      R                  U5      nUR                  R	                  S5      Ul        UR                  R	                  S5      Ul        [
        R                  " XE5        g )NYErightfreqlabelclosedc                 (    U R                  5       SS  $ )N)sort_valuesxs    r   ftest_apply.<locals>.f    s    }}rs##r   c                     U R                   $ Nyearr$   s    r   <lambda>test_apply.<locals>.<lambda>$       QVVr   r   )r	   groupbyapplyr   	dropleveltmassert_series_equal)r   groupergroupedr&   appliedexpecteds         r   
test_applyr8      s    4ww?G!!'*G$ mmAG""#34::1=HMM++A.GM^^--a0HN7-r   c                    [         R                  U S S S2'   U R                  S 5      R                  5       n[	        SSSS9nU R                  U5      R                  5       nUR
                  Ul        [        R                  " X15        U R                  S5      R                  5       nUR
                  Ul        [        R                  " X15        g )N   c                     U R                   $ r)   r*   r$   s    r   r,   test_count.<locals>.<lambda>.   r.   r   r   r   r   )	r   nanr/   countr	   r   r2   r3   resample)r   r7   r4   results       r   
test_countrA   +   s    vvK!""#34::<H4ww?G  )//1F\\HN6,!!$'--/F\\HN6,r   c                 V   U R                  SSS9R                  5       nSn[        R                  " [        US9   U R                  S 5      R                  [        R                  5      nS S S 5        UR                  Wl        [        R                  " X5        g ! , (       d  f       N6= f)Nr   r   )r    zusing SeriesGroupBy.prodmatchc                     U R                   $ r)   r*   r$   s    r   r,   &test_numpy_reduction.<locals>.<lambda>?   s    r   )
r?   prodr2   assert_produces_warningFutureWarningr/   aggr   r   r3   )r   r@   msgr7   s       r   test_numpy_reductionrL   :   s|    !!$w!7<<>F
$C		#	#M	=&&'78<<RWWE 
>\\HN6,	 
>	=s   0B
B(c                     Sn [        SSU S9n[        SSS.US9n[        S	S
9nUR                  U5      u  pEUR	                  USS9nS nUR                  U5      n[        R                  " UR                  UR                  5        g )Nr   
2000-01-01D)startr   r      r   )opencloser   MEr   F)
group_keysc                     U S   U S   -  $ )NrS   rR   r   )dfs    r   r&   test_apply_iteration.<locals>.fQ   s    '{RZ''r   )	r
   r   r	   _get_grouperr/   r0   r2   assert_index_equalr   )	NindrX   tgr4   _r5   r&   r@   s	            r   test_apply_iterationr`   E   s    A
<c1
=C	A*#	6B	d	B$JG jjUj3G( ]]1F&,,1r   r   rQ   r   abg?g@c                    [        U 5      R                  n[        S[        [	        U 5      5      0U S9nSU S3n[
        R                  " [        US9   UR                  [        SS95        S S S 5        g ! , (       d  f       g = f)Nra   r   zVOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of ''rC   rO   rU   )
type__name__r   rangelenpytestraises	TypeErrorr/   r	   )r   namerX   rK   s       r   test_fails_on_no_datetime_indexrm   Y   sp     ;D	Cs5z*+5	9B	337&	;  
y	,


7$% 
-	,	,s   A55
Bc            	      `   Sn [         R                  R                  S5      R                  U S45      n[	        U/ SQS9n[        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS	5      /S-  US
'   UR                  [        S
SS95      n[        R                  " UR                  [        SSS5      5      US S S	2   5        [        R                  " UR                  [        SSS5      5      USS S	2   5        [        R                  " UR                  [        SSS5      5      USS S	2   5        [        R                  " UR                  [        SSS5      5      USS S	2   5        [        R                  " UR                  [        SSS	5      5      USS S	2   5        g )N   r      ABCrO   columns  rQ   r:      keyrO   ry   r   )r   r   r   r   r   r   r/   r	   r2   assert_frame_equal	get_group)ndatarX   r5   s       r   test_aaa_group_orderr   n   s    	A99  #33QF;D	4!5	6Bq!q!q!q!q! 	

BuI jjU56G'++HT1a,@A2cc7K'++HT1a,@A2add8L'++HT1a,@A2add8L'++HT1a,@A2add8L'++HT1a,@A2add8Lr   c                    [         R                  R                  S5      R                  S5      n[	        U/ SQS9n/ SQS-  US'   [	        U/ SQS9n[        [        SS	S	5      [        SS	S5      [        SS	S
5      [        SS	S5      [        SS	S5      /S-  SS9US'   UR                  S5      nUR                  [        SSS95      n[        X@5      " 5       n[        XP5      " 5       n[        SSSSS9Ul        [        R                  " Xg5        g)?Check TimeGrouper's aggregation is identical as normal groupby.r   ro   rp   rq   ru   rQ   r   r:   rp   rx   rp   ry   rw   rQ   r:   rx   M8[ns]dtyperO   rz   
2013-01-01rP   r   r   rl   N)r   r   r   r   r   r   r   r/   r	   getattrr
   r   r2   assert_equal)resample_methodr~   	normal_dfdt_dfnormal_grouped
dt_groupedr7   	dt_results           r   test_aggregate_normalr      s	    99  #33G<D$(<=I&*Ied$89ET1a T1a T1a T1a T1a 	
 	 
E%L &&u-Nw5s;<J~79H
46IlaeTHNOOH(r   z7if TimeGrouper is used included, 'nth' doesn't work yet)reasonc            	         [         R                  R                  S5      R                  S5      n [	        U / SQS9n/ SQS-  US'   [	        U / SQS9n[        SS	S	5      [        SS	S5      [        SS	S
5      [        SS	S5      [        SS	S5      /S-  US'   UR                  S5      nUR                  [        SSS95      nUR                  S
5      n[        SSSSS9Ul
        UR                  S
5      n[        R                  " XV5        g)r   r   r   rq   ru   r   rp   ry   rw   rQ   r:   rx   rO   rz   r   r   N)r   r   r   r   r   r   r/   r	   nthr
   r   r2   r{   )r~   r   r   r   r   r7   r   s          r   test_aggregate_nthr      s    99  #33G<D$(<=I&*Ied$89Eq!q!q!q!q! 	

E%L &&u-Nw5s;<J!!!$HlaeTHNq!I(.r   zmethod, method_args, unitsum	min_countrG   c                    [        S/S-  [        R                  /S-  -   [        SSS9S9n[	        U 40 UD6" UR                  S5      5      n[        R                  " SS	/S
SS9n[        SU/US9n[        R                  " XF5        g )Nr   r   2017rp   r   r   2dz
2017-01-01z
2017-01-03r   2Dr   r   g        )
r   r   r=   r
   r   r?   pdDatetimeIndexr2   r3   )methodmethod_argsunitserr@   exp_dtir7   s          r   !test_resample_entirely_nat_windowr      s     !qBFF8a<'z&!/L
MC&0K0d1CDFl;8RVWGsDk1H6,r   zfunc, fill_valueminmax)r   r   )rG   rQ   )r>   r   c                 j   Sn[         R                  R                  S5      R                  US45      R	                  S5      n[        U/ SQS9nSS[         R                  SS/S-  US	'   [        U/ SQS9n[        [        S
SS5      [        S
SS5      [        R                  [        S
SS5      [        S
SS5      /S-  SS9US	'   UR                  S	5      nUR                  [        S	SS95      n[        X`5      " 5       n[        Xp5      " 5       n	[        U/S-  /S// SQS9n
[        R                  " X/5      nUR                  5       n[!        SSSS	US	   R"                  R$                  S9nUR'                  S 5      Ul        [*        R,                  " X5        U	R(                  R.                  S	:X  d   eg )Nro   r   rp   int64rq   ru   rQ   rx   ry   rw   r   r   rO   rz   r:   )r   rv   r   rP   r   r   rl   r   )r   r   r   r   astyper   r=   r   r   r   NaTr/   r	   r   concat
sort_indexr
   _valuesr   
_with_freqr   r2   r{   rl   )func
fill_valuer}   r~   r   r   r   r   normal_resultr   padr7   dtis                r   test_aggregate_with_natr      s    	A99  #33QF;BB7KD$(<=I1bffa+a/Ied$89ET1a T1a FFT1a T1a 	
 	 
E%L &&u-Nw5s;<JN13M
)+I
j\A%&qc;O
PCyy--.H""$H
5\!!&&C ^^D)HN(.??5(((r   c                  X   Sn [         R                  R                  S5      R                  U S45      R	                  S5      n[        U/ SQS9nSS[         R                  SS/S-  US	'   [        U/ SQS9n[        [        S
SS5      [        S
SS5      [        R                  [        S
SS5      [        S
SS5      /S-  SS9US	'   UR                  S	5      nUR                  [        S	SS95      nUR                  5       nUR                  5       n[        S/S/S9n[        R                  " Xh/5      n	U	R!                  5       n	[#        SSSS	US	   R$                  R&                  S9R)                  S 5      U	l        [,        R.                  " X5        UR*                  R0                  S	:X  d   eg )Nro   r   rp   r   rq   ru   rQ   rx   ry   rw   r   r   rO   rz   r   r:   r   r   r   )r   r   r   r   r   r   r=   r   r   r   r   r/   r	   sizer   r   r   r
   r   r   r   r   r2   r3   rl   )
r}   r~   r   r   r   r   r   r   r   r7   s
             r   test_aggregate_with_nat_sizer      s   
A99  #33QF;BB7KD$(<=I1bffa+a/Ied$89ET1a T1a FFT1a T1a 	
 	 
E%L &&u-Nw5s;<J"'')M!I
!QC
 Cyy--.H""$H5\!!&& j N 8/??5(((r   c                  v    [        [        SSS95      n SnX:X  d   e[        [        SSSS95      n SnX:X  d   eg )Nrr   hrz   zTimeGrouper(key='A', freq=<Hour>, axis=0, sort=True, dropna=True, closed='left', label='left', how='mean', convention='e', origin='start_day')rN   )ry   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@   r7   s     r   	test_reprr   '  sW    'c,-F	. 
 'cLABF	C 
 r   z$method, method_args, expected_values)rQ   r   rQ   )rQ   rQ   rQ   c           	          [        S[        SSSS9S9nUR                  S5      n[        R                  " / SQS	SS
9n[        U 40 UD6" U5      n[        X%S9n[        R                  " Xg5        g )NrQ   r   r   r   r   r   r   30min)z2017-01-01T00:00:00z2017-01-01T00:30:00z2017-01-01T01:00:00r   r   )r   r
   r?   r   r   r   r2   r3   )r   r   expected_valuesr   	resampledr   r@   r7   s           r   test_upsample_sumr   :  sn     *VQSA
BCW%IME
 &0K0;Fo3H6,r   c                      / SQ/ SQS.n [        U 5      n[        SSSS9US'   S	n[        R                  " [        US
9   UR                  S5      R                  S5      R                  S5      R                  SS9nS S S 5        S/S-  S/-   n[        [        SS5      5      [        S5      /-   n[        R                  R                  XE/SS/S9n[        / SQS/S-  S/-   S.US9n[        R                  " WU5        g ! , (       d  f       N= f)N)
      	   )2   <   r   )pricevolumez
01/01/2018r:   Wr   week_startingz:DataFrameGroupBy.resample operated on the grouping columnsrC   r   1Dlinear)r   r      r   z
2018-01-07z
2018-01-21z
2018-01-14)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@)r~   r   )r   r
   r2   rH   DeprecationWarning	set_indexr/   r?   interpolatelistr   r   
MultiIndexfrom_arraysr{   )drX   rK   r@   r   r   expected_indr7   s           r   !test_groupby_resample_interpolater   T  s   6A	1B$\13GB
FC		#	#$6c	BLL)WXXd^[[)	 	 
C TBY"FL,?@,D M ==,,	) - L
 $ frkRD('
* -H0 &(+S 
C	Bs   =C??
D))r   operatorr   numpyr   ri   pandasr   r   r   r   r   pandas._testing_testingr2   pandas.core.groupby.grouperr	   pandas.core.indexes.datetimesr
   fixturer   r8   rA   rL   r`   markparametrizer   r   rm   r   r   xfailr   r=   r   r   r   r   r   r   r   r   r   <module>r      s    !      / 4  . --2( q!fsCjsCj
!!Aq6C:"67		&	&M,): ST/ U/2 	A	a !$	a "&&)	Q	+q!1%	+q!266*
-
- RVV_ubffoz;M))	))X%)P& *	I	a ),	a 1bffa.1	a 266266266":;	Y	+q!9-	+q!Arvvq>2	+q!BFFBFFBFF#;<	
-
-2,r   