
    .iz                        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	Z
d dl	mZ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d
 Zd Zd Zd Zd Zd Zd Zej<                  j?                  ddgddgg      d        Z d Z!ej<                  j?                  dg d      d        Z"d Z#d Z$d Z%d Z&ej<                  j?                  dddg      d        Z'ej<                  j?                  d d! d" gd#d$g%      d&        Z(d' Z)d( Z*d) Z+ej&                  d*        Z,ej&                  d+        Z-ej&                  d,        Z.ej&                  d-        Z/ej&                  d.        Z0ej&                  d/        Z1ej&                  d0        Z2ej&                  d1        Z3ej&                  d2        Z4ej&                  d3        Z5ej&                  d4        Z6ej&                  d5        Z7ej&                  d6        Z8ej&                  d7        Z9 ej&                  g d89      d:        Z:d; Z;ej<                  j?                  d<d ejx                  d= d>idejx                  fd?d@ fd> edejx                         ed?dA       d>g      dB        Z=dC Z>ej<                  j?                  d<d dDdEgidDdEdFg      dG        Z?ej<                  j?                  d<ddDdEdFidDdEdFdDdEdHd>g      dI        Z@dJ ZAej<                  j?                  d<d ej                  dK d>idej                  fd?dL fd> edej                         ed?dM       d>g      dN        ZCej<                  j?                  d<d ej                  ejx                  dOidPej                  fdQejx                  fd> edPej                         edQejx                        d>g      dR        ZDej<                  j?                  dSddEdTgdDdTgd>gdd?gdEdTgdDdTgd>gg      dU        ZEej<                  j?                  d<ddEdTgidEdTgdDdTgd>g      dV        ZFdW ZGdX ZHdY ZIdZ ZJd[ ZKej<                  j?                  d\g d]      d^        ZLd_ ZMej<                  j?                  d`dadbdcg dddedfdg dgdhdif
djdkdldmgdnz  dcdfdog dpdqdrf
dadbdcg dddedfdsg dtdudvf
dadbdcg dddedwdg dxdydif
g      dz        ZNej<                  j?                  d{g dEd|d}d~gifdEddgd~gdfdEej                  dgd~gdfdd|d}dgifddej                  dfdd|d}dvgifdddgdvgdfdej                  dgdvgdfdd|d}dgifdddgdgdfdej                  dgdgdfdd|d}dvgifdddgdvgdfdej                  dgdvgdfdd|d}dgifdddgdgdfdej                  dgdgdfdDd|d}dgifddDej                  dfdd|d}dgifddej                  dfdTd|d}dgifddTej                  dfdd|d}dgifddej                  dfdd|d}dgifddej                  df      d        ZPej<                  j?                  d{ddEddgfdEej                  dgfdddej                  dfddddgfdej                  dgfddddgfdej                  dgfddddgfdej                  dgfddddgfdej                  dgfg      d        ZQd ZRd ZSy)    )datetimeN)lib)Day)	DataFrameNamedAggSeries)
date_rangec                  J    t        t        ddd      t        ddd      d      S )N     
   Min)startendfreq)r	   r        e/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/resample/test_resample_api.pydtir      s$    HT1a0htQ6KRWXXr   c                     t        t        j                  j                  d      j                  t	        |             |       S )N   )r   nprandomdefault_rnglen)r   s    r   _test_seriesr      s-    "))''*11#c(;SAAr   c           	      X    t        ||t        j                  t        |             d      S )NABC)r   r   aranger   )r   r   s     r   
test_framer#      s!    <l3s8ATUVVr   c                     | j                  d      }dt        |      v sJ | j                  dd      }dt        |      v sJ y )NhzaDatetimeIndexResampler [freq=<Hour>, closed=left, label=left, convention=start, origin=start_day]
2000-01-01originzkDatetimeIndexResampler [freq=<Hour>, closed=left, label=left, convention=start, origin=2000-01-01 00:00:00])resamplestr)r   rs     r   test_strr,   #   sd    c"A	:=@V	D	D 	c,7A	DGJ1v	N	Nr   c                 ,   | j                  d      }|j                         }t        |t              sJ t	        |      dk(  sJ | j                         j                  d      }|j                         }t        |t              sJ t	        |      dk(  sJ y )Nr%      )r)   mean
isinstancer   r   to_framer   )r   r+   results      r   test_apir3   1   s    c"AVVXFff%%%v;#((-AVVXFfi(((v;#r   c                     t        t        ddd      g dg dd      j                  d      } t        d	d
      j                         t        dd
      j                         z   }t        j
                  j                  dgd
z  dgd
z  z   |gddg      }t        ddgdz  dgz   dgdz  z   d
gz   i|      }| j                  d      j                  d       dg   }t        j                  ||       y )N
2016-01-01   W)r   periodsr   )r   r   r   r   )            )dategroupvalr=   z
2016-01-03r<   r8   z
2016-01-17r   r   r>   namesr?   r9   r;   r:   indexc                 @    | j                  d      j                         S )N1D)r)   ffillxs    r   <lambda>z+test_groupby_resample_api.<locals>.<lambda>P   s    D1A1G1G1I r   )r   r	   	set_indextolistpd
MultiIndexfrom_arraysgroupbyapplytmassert_frame_equal)dfirD   expectedr2   s        r   test_groupby_resample_apirW   =   s     
\13G!	

 i  	<+224
\1
-
4
4
6	7  MM%%sQw!q'8!&<WfDU%VE%!qA3!q!8A3!>?uMHZZ &&'IJE7SF&(+r   c                     t        ddgdz  t        dd      t        j                  j	                  d      j                  d      d      } | j                  d	      j                  d
      j                  d      j                         }| j                  d
      j                  dd	      j                         }t        j                  ||       y )Nr   r    r9   r5   r   r@   r   )keydatesvaluesrZ   rY   Don)r   r	   r   r   r   standard_normalrK   rP   r)   r/   rR   rS   rT   rV   r2   s      r   test_groupby_resample_on_apira   T   s     
:>b9ii++A.>>rB	

B ||G$,,U3<<SAFFHHZZ'''8==?F&(+r   c                     t        dddt        ddd            } | j                         }| j                  d	d
      }|j	                  d       }t        j                  ||       | j                  d	      }|j	                  d       }t        j                  ||       t        j                  j                  t        j                  ddg      j                  d      j                  d      |j                  g      |_        | j                  d	d      }|j	                  d       }t        j                  ||       y )Nr   r   r   r    2000r   ns)r8   unitrC   5DF
group_keysc                     | S Nr   rH   s    r   rJ   z*test_resample_group_keys.<locals>.<lambda>k       q r   c                     | S rk   r   rH   s    r   rJ   z*test_resample_group_keys.<locals>.<lambda>p   rl   r   r&   z
2000-01-06r9   Tc                     | S rk   r   rH   s    r   rJ   z*test_resample_group_keys.<locals>.<lambda>{   rl   r   )r   r	   copyr)   rQ   rR   rS   rM   rN   rO   to_datetimeas_unitrepeatrD   )rT   rV   gr2   s       r   test_resample_group_keysrt   e   s   	#:fbt+T	UBwwyH 	DU+AWW[!F&(+ 	DAWW[!F&(+ ]]..NNL,78@@FMMaPNN	
HN 	DT*AWW[!F&(+r   c                 l   |j                  d      }|j                         |j                         z
  }|j                  d       }t	        j
                  ||       | j                  d      }|j                         |j                         z
  }|j                  d       }t	        j                  ||       y )Nr%   c                 D    | j                         | j                         z
  S rk   maxr/   rH   s    r   rJ   ztest_pipe.<locals>.<lambda>       aeeg0 r   c                 D    | j                         | j                         z
  S rk   rw   rH   s    r   rJ   ztest_pipe.<locals>.<lambda>   ry   r   )r)   rx   r/   piperR   assert_series_equalrS   )r#   r   r+   rV   r2   s        r   	test_piper}      s     	c"Auuw!HVV01F68, 	C Auuw!HVV01F&(+r   c                 :   | j                  d      }t        j                  |j                  j                  | j                         | j                  d      d   }|j                  j
                  | j                  d   k(  sJ | j                  d      d   }t        j                  |j                  j                  | j                  ddg          | j                  d      d   }t        j                  |j                  j                  | j                  ddg          y )Nr%   r    r   rc   r   )r)   rR   assert_index_equal_selected_objcolumnsnamer#   r+   s     r   test_getitemr      s    C A!//11:3E3EFC %A??:#5#5a#8888 	C *A!//11:3E3Eq!f3MNC *A!//11:3E3Eq!f3MNr   rY   r\   r   c                     |j                  d      }d}t        j                  t        |      5  ||     d d d        y # 1 sw Y   y xY w)Nr%   z^\"Columns not found: 'D'\"$match)r)   pytestraisesKeyError)rY   r#   rs   msgs       r   test_select_bad_colsr      sC    C A *C	xs	+ 	#  s	   >Ac                     | j                  d      }t        j                  |j                  j	                         |d   j	                                y )Nr%   r   )r)   rR   r|   r   sumr   s     r   test_attribute_accessr      s6    C A133779afjjl3r   attr)groupsngroupsindicesc                     t        ddd      }t        t        j                  t	        |            |      }|j                  d      }t        ||        |j                          t        ||        y )N1/1/2012d   sr8   r   rC   30s)r	   r   r   r"   r   r)   getattrr/   )r   rngtsrss       r   test_api_compat_before_user      sZ     Z3
7C			#c(#3	/B	U	B B GGIBr   c                 H   | }d|d<   |j                  d      }|ddg   j                         }t        j                  |j                  j                         |j
                  j                         gd      }t        j                  ||       |g d   j                         }t        j                  d	      }|rd
}t        j                  t        |      5  |j                          d d d        |j                  d      }t        j                  ||       y # 1 sw Y   2xY w)Nfoor\   r%   r   r    r   axisr   z&agg function failed [how->mean,dtype->z-dtype 'str' does not support operation 'mean'r   Tnumeric_only)r)   r/   rM   concatr   r    rR   rS   reescaper   r   	TypeError)r#   using_infer_stringrT   r+   r2   rV   r   s          r   tests_raises_on_nuisancer      s    	BBsG
CASz]!Fyy!##((*acchhj1:H&(+!&&(H
))<
=C=	y	, 	VVV&F&(+ s   DD!c                     t        ddd      } t        t        j                  t	        |       d      |       }|j                  d      j                         }t        g d	t        d
dd            }t        j                  ||       y )Nr   r   r   r   int64dtyperC   20s)r      (   <   P   2012-01-01 00:00:00r9   r   r8   )	r	   r   r   r"   r   r)   asfreqrR   r|   )r   r   r2   rV   s       r   'test_downsample_but_actually_upsamplingr      sn    
Z3
7C			#c('2#	>B[[&&(F.UAFH 68,r   c                  j   t        dddd      } t        t        j                  t	        |             |       }|j
                  g d   }|j                  d      j                         j                         }t        g d	t        j                  g d
dd            }t        j                  ||       y )Nr   r   r   re   )r8   r   rf   rC   )r   r   r      r9   r;                  2s)g      ?g      @g      @      @r         &@r   g      .@      0@r   r   r         9@r   r   g      >@)r   z2012-01-01 00:00:02z2012-01-01 00:00:04z2012-01-01 00:00:06z2012-01-01 00:00:08z2012-01-01 00:00:10z2012-01-01 00:00:12z2012-01-01 00:00:14z2012-01-01 00:00:16z2012-01-01 00:00:18z2012-01-01 00:00:20z2012-01-01 00:00:22z2012-01-01 00:00:24z2012-01-01 00:00:26z2012-01-01 00:00:28z2012-01-01 00:00:30zdatetime64[ns]r   r   )r	   r   r   r"   r   ilocr)   r/   rG   rM   DatetimeIndexrR   r|   )r   r   ts2r2   rV   s        r   *test_combined_up_downsampling_of_irregularr      s    
 Z3T
BC			#c(#3	/B
''8
9C\\$$$&,,.F	
$ $ #)
')HT 68,r   c                     | j                  d      }| j                  t        j                  d            j	                  d      }|j	                  d      }t        j                  ||       y )N20minr   r/   )r)   rP   rM   Grouper	transformrR   r|   )r   r+   rV   r2   s       r   test_transform_seriesr     sT    g&A##BJJG$<=GGOH[[ F68,r   r^   r=   c                 
   t        t        ddd      t        ddd      d      }d|_        t        t        j
                  j                  d      j                  d      t        d	      |
      }|j                  t        j                  d            j                  d      }| dk(  r"|j                  d      }|j                         }|j                  d|       }|j                  d      }t        j                  ||       y )Nr   r   r   r\   r   r=   r   r   r   ABr   rD   r   r/   T)dropr]   )r	   r   r   r   r   r   r   listrP   rM   r   r   reset_indexr)   rR   rS   )r^   rD   rT   rV   r+   r2   s         r   test_transform_framer     s     xa+XdAr-BMEEJ	
		a ''0$t*E
B zz"**'23==fEH	V|''T'2^^
G#A[[ F&(+r   funcc                 (    | j                  dd      S )Nr   Frh   r)   rH   s    r   rJ   rJ   /  s    !**W*7 r   c                 P    | j                  t        j                  d      d      S )Nr   r   Frh   rP   rM   r   rH   s    r   rJ   rJ   0  s    !))BJJG4)G r   r)   rP   )idsc                 d     | |      }|j                  d       }t        j                  ||       y )Nc                     | S rk   r   rH   s    r   rJ   z0test_apply_without_aggregation.<locals>.<lambda>7  rl   r   )rQ   rR   r|   )r   r   tr2   s       r   test_apply_without_aggregationr   ,  s,     	\AWW[!F6<0r   c                     | j                  d      j                  dd      }|d   j                  d       }t        j                  || j                  d             y )Nr   )r   r   Frh   c                     | S rk   r   rH   s    r   rJ   z1test_apply_without_aggregation2.<locals>.<lambda>=  s    A r   )r1   r)   rQ   rR   r|   rename)r   groupedr2   s      r   test_apply_without_aggregation2r   ;  sT    ###/88U8SGU^!!+.F6<#6#6u#=>r   c                  B   t        t        j                  j                  d      j	                  d      t        ddd      g d      } | j                  d	      }d
}t        j                  t        |      5  |j                  ddd       d d d        y # 1 sw Y   y xY w)Nr   )  r   r   r   r   r   r   rD   r   3minz&Label\(s\) \['r1', 'r2'\] do not existr   r/   r   r1r2r   r   r   r   r_   r	   r)   r   r   r   aggrT   r+   r   s      r   test_agg_consistencyr   A  s     

		a 00;#t<
B 	FA
3C	xs	+ +	V5)*+ + +   7BBc                  B   t        t        j                  j                  d      j	                  d      t        ddd      ddg	      } | j                  d
      }d}t        j                  t        |      5  |j                  ddd       d d d        y # 1 sw Y   y xY w)Nr   )r   r   r   r   r   r   r   ar   r   z"Label\(s\) \[2, 'b'\] do not existr   r/   r   )r   br   r   s      r   'test_agg_consistency_int_str_column_mixr   Q  s    	
		a 00;#t<C
B 	FA
/C	xs	+ '	&u%&' ' 'r   c                  ^    t        t        ddd      t        ddd      dd      } d| _        | S )Nr   r   r   r\   re   r   rf   r=   )r	   r   r   rC   s    r   rD   rD   d  s1    xa+XdAr-BSWXEEJLr   c                     t        t        j                  j                  d      j                  d      t	        d      |       }|S )Nr   r   r   r   )r   r   r   r   r   )rD   frames     r   rT   rT   k  s8    
		a ''0$t*EE Lr   c                 "    | j                         S rk   )r   rT   s    r   df_colr   s  s    >>r   c                     | j                         }t        j                  j                  t	        d      |gddg      |_        |S )Nr   rD   r=   rA   )ro   rM   rN   rO   rangerD   )r   rD   df_mults      r   r   r   x  sB    kkmGMM--	rE7F"3 . GM Nr   c                 F    | j                  d      d   j                         S N2Dr   r)   r/   r   s    r   a_meanr        ;;tS!&&((r   c                 F    | j                  d      d   j                         S r  r)   stdr   s    r   a_stdr	        ;;tS!%%''r   c                 F    | j                  d      d   j                         S r  r)   r   r   s    r   a_sumr    r
  r   c                 F    | j                  d      d   j                         S Nr  r    r  r   s    r   b_meanr    r  r   c                 F    | j                  d      d   j                         S r  r  r   s    r   b_stdr    r
  r   c                 F    | j                  d      d   j                         S r  r  r   s    r   b_sumr    r
  r   c                 $    | j                  d      S )Nr  r   r   s    r   df_resampler    s    ;;tr   c                 (    | j                  dd      S )Nr  r=   r]   r   )r   s    r   df_col_resampler    s    ??4F?++r   c                 (    | j                  dd      S )Nr  r=   levelr   )r   s    r   df_mult_resampler    s    D//r   c                 L    | j                  t        j                  d            S )Nr  r   r   r   s    r   df_grouper_resampler    s    ::bjjd+,,r   )r  r  r  r  )paramsc                 8    | j                  | j                        S rk   )getfixturevalueparam)requests    r   casesr$    s     ""7==11r   c                    t        j                  ||||gd      }t         j                  j                  ddgddgg      |_        d|j
                  j                  j                  v rj| d   j                         }| d   j                         }t        j                  |||gd      }t         j                  j                  g d	ddgg      |_        | j                  t        j                  d
 g      }	t        j                  |	|       y )Nr   r   r   r    r/   z
<lambda_0>r   r=   )r=   r   r    c                 0    t        j                  | d      S Nr   )ddofr   r  rH   s    r   rJ   z3test_agg_mixed_column_aggregation.<locals>.<lambda>  s    1B r   )rM   r   rN   from_productr   nodecallspecidr/   r  	aggregater   rR   rS   )
r$  r  r	  r  r  r#  rV   	date_meandate_stdr2   s
             r   !test_agg_mixed_column_aggregationr1    s    yy&%7a@H}}11C:?U2VWHGLL)),,,&M&&(	=$$&99i8<1E==55&,!78
 __bgg'BCDF&(+r   r   c                 0    t        j                  | d      S r'  r)  rH   s    r   rJ   rJ     s    rvvaa/@ r   rc   r    c                 0    t        j                  | d      S r'  r)  rH   s    r   rJ   rJ     s    266!!3D r   c                 0    t        j                  | d      S r'  r)  rH   s    r   rJ   rJ     s    266!RSCT r   c                     t        j                  ||gd      } | j                  di |}t        j                  ||d       y )Nr   r   T
check_liker   )rM   r   r.  rR   rS   )r$  r  r  r   rV   r2   s         r   #test_agg_both_mean_std_named_resultr8    s=     yy&%q1HU__#s#F&(t<r   c                     t        j                  ||gd      }t         j                  j                  ddg      |_        | j                  dddgi      }t        j                  ||       y )Nr   r   r   r/   r   r  r   r/   r  rM   r   rN   from_tuplesr   r.  rR   rS   )r$  r  r	  rV   r2   s        r   #test_agg_both_mean_std_dict_of_listr>    sY    yy&%q1H}}00-1NOH__cFE?34F&(+r   r/   r   )r/   r   c                     t        j                  ||gd      }ddg|_         | d   j                  di |}t	        j
                  ||       y )Nr   r   r/   r   r   r   )rM   r   r   r.  rR   rS   )r$  r  r  r   rV   r2   s         r   test_agg_both_mean_sumr@    sM     yy&%q1HH!U3Z!!(C(F&(+r   )mean2sum2c                     d}t        j                  t        j                  j                  |      5  | j                  |       d d d        y # 1 sw Y   y xY w)Nnested renamer is not supportedr   )r   r   rM   errorsSpecificationErrorr.  r$  r   r   s      r   (test_agg_dict_of_dict_specificationerrorrH    sB     ,C	ryy333	?   s   AAc                     t        j                  ||||gd      }t         j                  j                  g d      |_        | j                  ddgddgd      }t        j                  ||d       y )	Nr   r   )r:  r;  r    r/   r    r  r/   r  rc   Tr6  r<  )r$  r  r	  r  r  rV   r2   s          r   test_agg_dict_of_listsrL    sd    yy&%7a@H}}00BH __FE?&%IJF&(t<r   c                 0    t        j                  | d      S r'  r)  rH   s    r   rJ   rJ     s    bffQQ.? r   c                 0    t        j                  | d      S r'  r)  rH   s    r   rJ   rJ     s    "&&2C r   c                 0    t        j                  | d      S r'  r)  rH   s    r   rJ   rJ     s    "&&QRBS r   c                     | d   j                  d       }t        j                  | d   j                         |gd      } | j                  di |}t        j                  ||d       y )	Nr    c                 0    t        j                  | d      S r'  r)  rH   s    r   rJ   z&test_agg_with_lambda.<locals>.<lambda>  s    ): r   r   r   r   Tr6  r   )rQ   rM   r   r   r   rR   rS   )r$  r   rcustomrV   r2   s        r   test_agg_with_lambdarS    s^     Cj:;Gyy%*..*G41=HUYYF&(t<r   )result1result2rT  rU  c                     d}t        j                  t        |      5   | ddg   j                  di | d d d        y # 1 sw Y   y xY w)Nz0Label\(s\) \['result1', 'result2'\] do not existr   r   r    r   r   r   r   r   rG  s      r   test_agg_no_columnrX    sH     >C	xs	+ %sCj$$% % %s	   ?Az	cols, aggr  c                     t        j                  ||||gd      }t         j                  j                  g d      |_        || |   }n| }|j                  |      }	t        j                  |	|d       y )Nr   r   ))r   r   r;  rJ  rK  Tr6  )rM   r   rN   r=  r   r   rR   rS   )
r$  colsr   r  r	  r  r  rV   objr2   s
             r   "test_agg_specificationerror_nestedr\    sl      yy%6Q?H}}00AH DkWWS\F&(t<r   c                     d}t        j                  t        j                  j                  |      5  | d   j                  |       d d d        y # 1 sw Y   y xY w)NrD  r   r   )r   r   rM   rE  rF  r   rG  s      r   "test_agg_specificationerror_seriesr^  <  sH     ,C 
ryy333	? c
s  s   AAc                     d}t        j                  t        |      5  | dg   j                  ddgddgd       d d d        y # 1 sw Y   y xY w)NzLabel\(s\) \['B'\] do not existr   r   r   r  r/   rc   rW  )r$  r   s     r   )test_agg_specificationerror_invalid_namesr`  G  sQ     -C	xs	+ Fseu~VUODEF F Fs   AAc                     t        t        ddd      t        ddd      d      } d| _        t        t        j
                  j                  d      j                  d      t        d	      | 
      }|j                         }|j                         }t        j                  j                  t        d      |j                  gddg      |_        |j                  d      }||j                  dd      |j                  dd      |j!                  t        j"                  d            g}d}|D ]V  }t%        j&                  t        j(                  j*                  |      5  |j-                  dddgidddgid       d d d        X |D ]  }t%        j&                  t        j(                  j*                  |      5  |ddg   j/                  dddgidddgid       d d d        t%        j&                  t        j(                  j*                  |      5  |j/                  dddgidddgid       d d d         y # 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   xY w)Nr   r   r   r\   r   r=   r   r   r   r   rD   rA   r  r]   r  rD  r   r   r/   r   r    r   rar  rbrc   )r	   r   r   r   r   r   r   r   r   ro   rM   rN   rO   r   rD   r)   rP   r   r   r   rE  rF  r.  r   )rD   rT   r   r   r+   r$  r   r   s           r   test_agg_nested_dictsrd  O  s3   xa+XdAr-BMEEJ	
		a ''0$t*E
B ^^FkkmGMM--	rBHHgv%6 . GM 	DA	(V,


2::4()	E ,C V]]29977sC 	VKKfe_5cFE?=STU	V 	VV  P]]29977sC 	sCjMfe_-TFE?4KL	
 ]]29977sC 	PEE/tfe_6MNO	P 	PP	V 	V	 	
	P 	Ps$   H:9"II:I	I	I	c                  T   t        dddd      dddt        dddd      dddt        dddd      d	d
dg} t        |       j                  d      }d}t        j                  t
        |      5  |j                  d      j                  dgdgdgd       d d d        y # 1 sw Y   y xY w)Ni  r:   r   r   g      ?g       @)dtrI   yr   g      @g      ?rf  zLabel\(s\) \['z'\] do not existr   30minr/   medianr   )rI   rg  z)r   r   rK   r   r   r   r)   r   )datarT   r   s      r   &test_try_aggregate_non_existing_columnrl  q  s     aA&Ss;aA&Ss;aA&Ss;D
 
4	"	"4	(B -C	xs	+ Q
G  xxjw!OPQ Q Qs   -(BB'c                     t        dg dit        ddd            } dd}dd	}d
}t        j                  t        |      5  | j                  d      j                  ||gddd       d d d        | j                  d      j                  ||gdd      }t        ddgddgddggt        ddd      t        j                  j                  ddg            }t        j                  ||       y # 1 sw Y   xY w)NrI   )r   r   r   
2020-01-01r   r\   r   rC   c                     | |z   |z   S rk   r   )rI   r   cs      r   foo1z/test_agg_list_like_func_with_args.<locals>.foo1      1uqyr   c                     | |z   |z   S rk   r   )rI   r   rp  s      r   foo2z/test_agg_list_like_func_with_args.<locals>.foo2  rr  r   z/foo1\(\) got an unexpected keyword argument 'b'r   r6   )r   rp  )rp  r<   	   r   )rI   rq  )rI   rt  r   )r   r   )r   r   )r   r	   r   r   r   r)   r   rM   rN   r=  rR   rS   )rT   rq  rt  r   r2   rV   s         r   !test_agg_list_like_func_with_argsrv    s    		i
< M
B =C	y	, 8
CdD\1Q78 [[!!4,Q!7F
Q!Q"b"qs;))=-*HIH
 &(+8 8s   'C00C9c                     t        t        ddd      t        ddd      d      } t        j                  t	        |       t        j
                        }t        | |dt        j                  j                  || gdd	g
            }t        d|i|       }d}t        j                  t        |      5  |j                  dd       d d d        d}t        j                  t        |      5  |j                  ddd	       d d d        d}t        j                  t        |      5  |j                  dddg       d d d        d}t        j                  t        |      5  |j                  dddg       d d d        d}t        j                  t        |      5  |j                  dd	      j!                          d d d        t        j                  t        |      5  |j                  dd      j!                          d d d        |j                  d      j#                         }d|j$                  _        |j                  dd      j#                         }t)        j*                  ||       d	|j$                  _        t        j                  t        d      5  |j                  dd	      j#                          d d d        |j                  dd	      j#                  d      }t)        j*                  ||       y # 1 sw Y   =xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   BxY w# 1 sw Y   xY w)Nr   r   r   r\   r   r   )r=   r   vdrA   rC   r   z\Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'r   r  r  z2The Grouper cannot specify both a key and a level!r=   )r^   r  zunhashable type: 'list'r]   z#\"Level \['a', 'date'\] not found\"z|Upsampling from level= or on= selection is not supported, use \.set_index\(\.\.\.\) to explicitly set index to datetime-likez0datetime64 type does not support operation 'sum'Tr   )r	   r   r   r"   r   r   r   rM   rN   rO   r   r   r   r)   
ValueErrorr   r   r   rD   r   rR   rS   )rD   r   rT   df_expr   expr2   s          r   test_selection_api_validationr}    s   xa+XdAr-BME
))CJbhh
/C	S!mm''eS#J'G
B Sz/F	)  
y	, %
D$% ?C	z	- 0
DV3/0 $C	y	, ,
Dc6]+, 1C	xs	+ /
Df./
	J  
z	- .
D$++-.	z	- .
DV$++-. //$

#
#
%CCIIN[[&[)--/F#v&CIIN	K
 + 	D$((*+ [[S[)--4-@F#v&I% %0 0, ,/ /. .. .+ +sT   2L+L%L L("L5 "M"MLLL%(L25L?MMcol_name)t2t2xt2qT_2Mt2pt2mt2m1T2Mc           	      B   t        t        t        d            t        dddd      | g      }|j	                  d      j                  dg      }t        g d	t        dd
dd      t        j                  | gdggdgdgg            }t        j                  ||       y )N   z
2017-01-0115minzEurope/Berlin)r   r   r8   tzr   rF   r/   )g     G@g     a@g     ph@r\   r   r   )levelscodes)
r   r   r   r	   r)   r.  rM   rN   rR   rS   )r~  rT   r2   rV   s       r   *test_agg_with_datetime_index_list_agg_funcr    s     
U3ZWco
 

B [[((&2F|#q_Uxj6(%;QC!:NH
 &(+r   c                     t        dddd      } t        j                  |       }|j                  d       t	        ||       }|j                  d	      }t	        t        j                  d
      t        j                  d
      g| d d d         }t        d      |j                  _
        |j                  d      }t        j                  ||       |j                  d      }t        j                  ||       |j                  d      }t        j                  ||       |j                  d      }t        j                  ||       y )Nrn  z
2020-01-021hre   r   F)writerC   rF   r      r   lastfirstrx   min)r	   r   
zeros_likesetflagsr   r)   rM   	Timestampr   rD   r   r   rR   r|   )rD   arrserr   rV   r2   s         r   test_resample_agg_readonlyr    s    |\4HE
--
CLLuL
E
"C	d	Br||AQ8ddLHa&HNNVVF^F68,VVG_F68,VVE]F68,VVE]F68,r   zLstart,end,freq,data,resample_freq,origin,closed,exp_data,exp_end,exp_periodsz2000-10-01 23:30:00z2000-10-02 00:26:007min)	r   r   r:   ru     r         r  17minr   )r   r     ?   z20001002 00:26:00r6   z20200101 8:26:35z20200101 9:31:5877sr   3   right)
r   r:   r9   r:   r9   r:   r9   r:   r9   r:   z2020-01-01 09:30:45r   left)r   r  r  '   r  z20001002 00:43:00r9   end_day)r   r   -   r  z2000-10-02 00:29:00c
                     t        | ||      }
t        ||
      }|j                  |||      j                         }t        |t        |||	            }t	        j
                  ||       y )Nr   rC   )r(   closed)r   r   r8   )r	   r   r)   r   rR   r|   )r   r   r   rk  resample_freqr(   r  exp_dataexp_endexp_periodsr   r   resrV   s                 r   test_end_and_end_day_originr    sg    B UCd
+C	C	 B
++mF6+
B
F
F
HCW=+NH
 3)r   z#method, numeric_only, expected_dataTnumr   F
cat_1cat_2catr  prodr   )r  Fcan't multiply sequencer  r  cat_1rx   r   cat_2r  r  g      )@)r/   FCould not convertr  ri  )ri  F-Cannot convert \['cat_1' 'cat_2'\] to numericr  gH6%@)r  F!could not convert string to floatr  varg      \@)r  Fr  semg      @)r  Fr  c                 >   t        ddd      }t        ddd      }t        dd	gd
dgd|      }|j                  d      }|t        j                  u ri }nd|i}t        ||       }	t        |t              rp| dv r(t        }
t        j                  d|  d      }|r"d|  d}n| dv r|rt        }
d|  d}nt        }
|}t        j                  |
|      5   |	di |}d d d        y  |	di |}t        ||      }t        j                  ||       y # 1 sw Y   y xY w)N
2018-01-01r   r\   r   
2018-12-31r   YEr  r  r9   r   r  rC   r   )r  r/   ri  r  zagg function failed [how->z,dtype->z(dtype 'str' does not support operation '')r   r  r  r   r   )r	   r   r)   r   
no_defaultr   r0   r*   r   r   r   rz  r   r   rR   rS   )methodr   expected_datar   rD   expected_indexrT   	resampledkwargsr   klassr   _r2   rV   s                  r   test_frame_downsample_methodr  O  s6   X |QS9EadCN	GW-q"g>e	LBD!Is~~% ,/9f%D-%66E))8IJC!@J,,1CE<VHAFCEC]]5, 	vA	 	 ].A
fh/	 	s   	DD)r   Tr   )r  Tr   )r  Fr   r   )r  Tr   )rx   Tr   )r  Tr   )r  Tr   c                 l   t        ddd      }t        ddd      }t        dd	g|
      }|j                  d      }|t        j                  u ri nd|i}t        ||       }	|rD|t        j                  ur2d|  }
t        j                  t        |
      5   |	di | d d d        y | dk(  rFt        j                  d      }
|rd}
t        j                  t        |
      5   |	di | d d d        y  |	di |}t        ||
      }t        j                  ||       y # 1 sw Y   y xY w# 1 sw Y   y xY w)Nr  r   r\   r   r  r   r  r  r  rC   r   z1Cannot use numeric_only=True with SeriesGroupBy\.r   r  z&agg function failed [how->prod,dtype->z-dtype 'str' does not support operation 'prod'r   )r	   r   r)   r   r  r   r   r   r   r   r   rR   r|   )r  r   r  r   rD   r  rT   r  r  r   r   r2   rV   s                r   test_series_downsample_methodr    s&   8 |QS9EadCN	'"%	0BD!I3>>1R7UF9f%DCNN:B6(K]]9C0 	N6N	 		6	ii@AAC]]9C0 	N6N	 	 -~>
vx0	 		 	s   	D 	D*D'*D3c                      t        t        j                  g d            } t        t        j                  g d            }| j                  d      j	                         }t        j                  ||       y )N)2018-01-01 00:00:00z2018-01-01 12:00:002018-01-02 00:00:00rC   )r  z2018-01-01 08:00:00z2018-01-01 16:00:00r  8h)r   rM   rp   r)   r/   rR   rS   r`   s      r   test_resample_emptyr    sa    	nnQ

B
 nn
	H [[##%F&(+r   c            
      :   t        dddddd      t        dddddd      t        dddddd      g} t        dg di|       }|j                  d	d
      j                         }t	        j
                  t	        j                  d      t	        j                  d      t	        j                  d      g|j                  j                  d      }t        dt        j                  t        j                  t        j                  gi|      }t        j                  ||       y )Ni  r      r   r   value)r   r   r   rC   1min	start_dayr'   z2025-10-17 17:15:00z2025-10-17 17:16:00z2025-10-17 17:17:00r  r   )r   r   r)   r   rM   r   r  rD   r   r   nanrR   rS   )idxrT   r2   exp_idxr|  s        r   =test_asfreq_respects_origin_with_fixed_freq_all_seconds_equalr    s     	r2r2r*r2r2r*r2r2r*C
 
GY's	3B[[[4;;=F LL./LL./LL./	

 ll  G Wrvvrvvrvv67w
GC&#&r   )Tr   r   numpyr   r   pandas._libsr   pandas._libs.tslibsr   pandasrM   r   r   r   pandas._testing_testingrR   pandas.core.indexes.datetimesr	   fixturer   r   r#   r,   r3   rW   ra   rt   r}   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   rD   rT   r   r   r  r	  r  r  r  r  r  r  r  r  r$  r1  r/   r8  r>  r@  rH  rL  r   rS  rX  r\  r^  r`  rd  rl  rv  r}  r  r  r  r  r  r  r  r  r   r   r   <module>r     s
    	    #  
  4 Y Y B B W W	,.,",4, O #c
 34 54
 !AB C,$	-4-n- f~., /,$ 
7G 
Y  11?+ '&         ) ) ( ( ( ( ) ) ( ( ( (   , , 0 0 - - X22, 		rww%@ABBGGnC)D#EFsBGG$8C9T+UV==, 	Vfe_%u'EF,, 		ve,- /!51	
		= 		rvv$?@ABFFm3(C"DEsBFF#(38S*TU== 		RVV89"&&!BGG(<=y"&&)BGG0LM%% 	eU^65/:;  %.7	
	==  	S5%.!%vuo#NOFPDQ,24'n I,,,-2 R "!,	
 C"H*!	
 "!,	
 "!,!	
K14j*k4j*0 )"	urdm$"	~rd;<" 
t DE" 
u~&	"
 	3" 
!:;" 
uqcl#" 
y!56" 
	1# >?" 
urdm$" 
y"67" 
	2$ ?@" 
$%" 
%'A378" 
#..7)QC"@A"  
t}%!"" 
	2$78#"$ 
'B4!@A%"& 
v''"( 	-)"* 
!45+", 
4%$)-". 	L/"0 
3>>#ST1"2 
u12343"4 	<5"6 
 CD7"8 
uug&'9": 	<;"< 
 CD="> 
usen%?"@ 	<A"B 
 CDC"&N 0O&N 0F )	~&	/	$	y!		*	y!		*	%'#	#..7),		"	'+%.1/.1:,*'r   