a
    d=                     @   sf  d Z ddlZddlZddlmZ ddlZddlZddlZddlm	Z	 ddl
mZ ddlZddlmZmZmZmZmZmZ ddlmZ ddlmZ dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!ej"#ddd dd dd ggdd Z$d d! Z%d"d# Z&ej"#d$d%g d&d'i fd(d)gd* e'e(e(e(d+fd,d-gd* e'e(e(e(d+fd%g d&d.d/d'ifd(d)gd* d.e(e(e(d+fd,d-gd* d.d0d0d0d+fgd1d2 Z)ej"#d3d%d4d5gd6d7gd8d9ggd'd'd:fd(d;gd4 gd* d0fd,d4gd4 gd* d0d0d:fgd<d= Z*d>d? Z+d@dA Z,dBdC Z-dDdE Z.dFdG Z/dHdI Z0dJdK Z1dLdM Z2dNdO Z3dPdQ Z4ej"#dRdSd dTd dUd dVd dWd dXd gdYdZ Z5ej"#d[d\ged]gd\d^fd\d_ged]gd4ggdgdggd\d_gd`fgej"#dag dbej"#dcg dbej"#ddg dedfdg Z6ej"#d[d\ged]gd\d^fd\d_ged]gd4ggdgdggd\d_gd`fgej"#dhg diej"#dje7e'e(gej"#ddg dedkdl Z8dmdn Z9dodp Z:ej"#djej;ej<gej"#dqg drdsdt Z=dudv Z>ej"#dwe?e@dxeAdd*ejBdyd*dzd{eCg d|gd}d~ ZDdd ZEdd ZFG dd dZGG dd dZHej"#dddejIfdd]d*gddgddgfddd fddd fdejIfd]d*gd]d]gddgfeJddeJdejIeJddd d]d*gddgd]d]gfgdd ZKdd ZLdd ZMej"#dddgig dgdgdd ZNdd ZOdd ZPdd ZQdd ZRej"#ddd dd dd gdd ZSdd ZTej"#ddd eTgdd ZUdd ZVej"jWdddd ZXG dd dZYdd ZZej"#ddddd]dgd\dgdfddidd\dgifddidd]dgifgddÄ Z[ej"#dddgddddgfdddgdddgfdddgiddgfgdd˄ Z\dd̈́ Z]ddτ Z^ddф Z_ddӄ Z`ddՄ Zaddׄ Zbddل Zcej"#dg dۢdgfg dݢdgfgdd Zdej"#ddddgfd%ddgfgdd Zeej"#dg ddd Zfej"#ddgddgd_d%idddgdd Zgej"#dd9dgd9dgd6dggd6d9gdddggdfd9dgd9dgddggd9dgddgdgdfd\d]gd\d]gd_d4gd_d*ggd\d_gd]d4d*ggdfejhd\d]gd\d4gd_d*gd_d*ggd\d_gd]d4gd*gdej"jWdgdd Zidd Zjdd Zkdd Zldd  Zmdd Zndd ZodS (  zN
test .agg behavior / note that .apply is tested generally in test_groupby.py
    N)partial)SpecificationError)is_integer_dtype)	DataFrameIndex
MultiIndexSeriesconcatto_datetime)Groupingc                  C   s:   t g dg dd} | dd }dd }|| d S )N)abcr               )keyvaluer   r   c                 S   s   t | dksJ |  S Nr   )lensumx r   v/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py
dummy_func"   s    z3test_groupby_agg_no_extra_calls.<locals>.dummy_func)r   groupbyagg)dfgbr   r   r   r   test_groupby_agg_no_extra_calls   s    r"   c                 C   s8   |  dd dd g}|d}| }t|| d S )Nc                 S   s   | j S Nyearr   r   r   r   <lambda>*       z&test_agg_regression1.<locals>.<lambda>c                 S   s   | j S r#   monthr   r   r   r   r&   *   r'   meanr   r   r*   tmassert_frame_equal)tsframegroupedresultexpectedr   r   r   test_agg_regression1)   s    
r2   c                 C   s   |  dd }d}tjt|d |dd  W d    n1 sD0    Y  tjt|d |dd  W d    n1 s0    Y  d S )NACzMust produce aggregated valuematchc                 S   s   |   S r#   )Zdescriber   r   r   r   r&   5   r'   z#test_agg_must_agg.<locals>.<lambda>c                 S   s   | j d d S Nr   indexr   r   r   r   r&   7   r'   )r   pytestraises	Exceptionr   )r    r/   msgr   r   r   test_agg_must_agg0   s    ,r>   c                 C   sH   dd }| j | j| jg|}| ddg d }t|| d S )Nc                 S   s   |   S r#   r   r   r   r   r   r&   ;   r'   z(test_agg_ser_multi_key.<locals>.<lambda>r3   Br4   )r4   r   r3   r@   	aggregater   r,   assert_series_equal)r    fresultsr1   r   r   r   test_agg_ser_multi_key:   s    rE   c                  C   s   t dddtjddddgdddtjddd	d
gdtjg dddgdd} t dddddddtjddddgd
ddddddtjd	dddgddddtjdddddtjdgddddtjdddddtjtjgd}|ddg}|dd g  }t||  d S )!N      r   r   r   7   M   !   ,      )v1v2))r   _   )r   c   )r   rO   )r   rP   )bigdamp)bluedry)redrU   )rU   wetby1by2namesr8      	   X   rP   rU   rS   r   rQ      rV   rT   rO   rR   )rM   rN   rW   rX   rM   rN   )	r   npnanr   from_tuplesr   r*   r,   r-   )r1   r    gr0   r   r   r   $test_groupby_aggregation_mixed_dtypeA   s>    
rc   c                  C   s   g dddt jdgddt jdgddt jdgg} t| tg dd}d}tjt|d |jddd	}W d    n1 sz0    Y  |j	dd
}tg dg dd}t
|| d S )N)TTTFTF))r3   r   )r3   r   )r@   r   )r@   r   datacolumns+DataFrame.groupby with axis=1 is deprecatedr5   r   levelaxis)Znumeric_only)       @TTT)r   r   r   r   r   r   )r_   r`   r   r   ra   r,   assert_produces_warningFutureWarningr   r   r-   )lstr    r=   r!   r0   r1   r   r   r   +test_groupby_aggregation_multi_level_columnr   s    ,rp   c                 C   s  | j | tj dd}| jtjks$J tg tjtg tjdd}t|	 | t|
d| tj|d|dd |j |d tj dd}t|jttg dtjdd	}t|	 | t|
d| d
}tjt|dd |tj	}W d    n1 s0    Y  t|| d S )NFZ
group_keysdtypers   r9   r   )Zcheck_index_typer3   )namers   )rf   rs   r9   z:The behavior of DataFrame.sum with axis=None is deprecated)r6   Zcheck_stacklevel)r   r_   r`   rs   float64r   r   r,   rB   r   r   applyr   rf   floatr-   rm   rn   )tsr.   r/   expZexp_dfr=   resr   r   r   test_agg_apply_corner   s$    ,r|   c                 C   s   t  }|dd }|jjd j}t| jt||jjd< |	d}|
 }t || t| jt||jjd< |	d}|
 }t || d S )Nc                 S   s   | j S r#   r$   r   r   r   r   r&      r'   z1test_agg_grouping_is_list_tuple.<locals>.<lambda>r   r*   )r,   ZmakeTimeDataFramer   grouperZ	groupingsZgrouping_vectorr   r9   listr   r*   r-   tuple)ry   r    r/   r}   r0   r1   r   r   r   test_agg_grouping_is_list_tuple   s    

r   c                 C   s0   |  ddg}|d}| }t|| d S )Nr3   r@   r*   r+   )Zmframer/   r0   r1   r   r   r   test_agg_python_multiindex   s    
r   groupbyfuncc                 C   s   |   S r#   )weekdayr   r   r   r   r&      r'   r&   c                 C   s   | j S r#   r(   r   r   r   r   r&      r'   c                 C   s   |  |}|d d}|d  }t|| |d}| }t|| |ddddd}t|d  |d  |d 	 |d	 
 d}t|| d S )
Nr3   stdvarr*   sem)r3   r@   r4   Dr@   r4   r   )r   r   r   r,   rB   rA   r   r-   r   r*   r   )r.   r   r/   r0   r1   r   r   r   test_aggregate_str_func   s     





r   c              
   C   sj   t g dttjddddddgddd}|d }t dd	d
gitddgdddd}t|| d S )N)r   r   r   r   r   r   r   r   r   ZFloat64rr   r   r   r   r   g(y?r   ru   r9   rs   )	r   r   pdNAr   r   r   r,   r-   )any_numeric_ea_dtyper    r0   r1   r   r   r   test_std_masked_dtype   s    r   c              	   C   s   | j dd}d| d}|dv r.t}d}t}nt}d| d}d }tj||d	L tj||d	 |j|d
d W d    n1 s0    Y  W d    n1 s0    Y  d S )Nr   ri   zDataFrameGroupBy.z with axis=1 is deprecated)ZidxmaxZidxminz;'[<>]' not supported between instances of 'float' and 'str'z
Operation z does not support axis=1r5   r   rj   )	r   	TypeErrorrn   
ValueErrorr:   r;   r,   rm   r   )r    reduction_funcr!   Zwarn_msgerrorr=   warnr   r   r   %test_agg_str_with_kwarg_axis_1_raises   s    r   z(func, expected, dtype, result_dtype_dictr   )rF   rG   r\   int64r   glv @r   ijkr   g      @Int64r   rv   c                 C   s   t g dgd tddgg dgd||d}d}tjt|d	 |jd
d
d}W d    n1 sj0    Y  || }t |gd g dd|}t	|| d S )N)r   r   r   r   rF      r   r   r   r   rf   ))r   r   )r   r   rg   r5   r   rh   )
r   r   from_productastyper,   rm   rn   r   r   r-   )funcr1   rs   result_dtype_dictr    r=   r!   r0   r   r   r   (test_multiindex_groupby_mixed_cols_axis1   s    ,
r   z&func, expected_data, result_dtype_dictr   r   
   r^         )r   r   g;f?c                 C   s   t tdddtg dddtg dddd	d
ddi}d}tjt|d |j	ddd}W d    n1 sv0    Y  |
| }t |tg dddtddgddd|}t|| d S )Nr^   r   r   r   r   r   yr   )r   r   r   r   r   r   )r9   rf   rs   r   r   rg   r5   r   r   r   )re   r9   rf   )r   r_   arangereshaper   r   r,   rm   rn   r   r   r-   )r   expected_datar   r    r=   r!   r0   r1   r   r   r   test_groupby_mixed_cols_axis1  s(    ,
r   c           	      C   s   |  d}dd }||}| jdk }| jdk }t|j}tt|g| t	ddd}t
|d| tt|g| t	ddd}t
|d| dd	 }t  | j|}t|tsJ t|d
ksJ d S )Nr3   c                 S   s   | j S r#   sizeZserr   r   r   r&   7  r'   z-test_aggregate_item_by_item.<locals>.<lambda>foobarZBCDr9   ru   c                 S   s   | j S r#   r   r   r   r   r   aggfun_1D  s    z-test_aggregate_item_by_item.<locals>.aggfun_1r   )r   r   r3   r   r   rf   r   r_   arrayr~   r,   rB   xsZassert_almost_equalr   
isinstance)	r    r/   Zaggfun_0r0   ZfoosumZbarsumKrz   r   r   r   r   test_aggregate_item_by_item4  s    


r   c                 C   s   |  ddg}dd }tjtdd || W d    n1 sD0    Y  |g d |}| jd d g df }| ddg|}t|| d S )	Nr3   r@   c                 S   s   | j tkrtd|  S )NTest error message)rs   objectr   r   r   r   r   r   r   O  s    
ztest_wrap_agg_out.<locals>.funcr   r5   )r   EF)r3   r@   r   r   r   )r   r:   r;   r   rA   locr,   r-   )Zthree_groupr/   r   r0   Zexp_groupedr1   r   r   r   test_wrap_agg_outL  s    (r   c                 C   s   dt jfdt jfdt jfg}d}tjt|d$ | dd |}W d    n1 sX0    Y  t	g d}t
|j| d S )	Nr*   maxmin%is currently using SeriesGroupBy.meanr5   r3   r4   )r*   r   r   )r_   r*   r   r   r,   rm   rn   r   r   r   assert_index_equalrf   )r    funcsr=   r0   Zexp_colsr   r   r   *test_agg_multiple_functions_maintain_order\  s    2r   c                     s   t tjddtjddddg dd  d	d
t	tj
ddt	tj
ddgi} tjdd	dd}tddg}t fdddD j}t |||d}t| | d S )Nr     r   1/1/2012Sr   )freqperiodsr3   r@   r4   r9   rf   3Tr3   H.?q镲q?r   )r3   quantilec                    s"   g | ]}  d jj|djqS r   r   resampler3   r   values.0r   r    r   r   
<listcomp>t  r'   z9test_agg_multiple_functions_same_name.<locals>.<listcomp>r   r   rf   r9   )r   r_   randomdefault_rngstandard_normalr   
date_ranger   r   r   r   r   ra   r   Tr,   r-   )r0   expected_indexexpected_columnsexpected_valuesr1   r   r   r   %test_agg_multiple_functions_same_nameg  s"    
r   c               	      s   t tjddtjdddddtg dd	d
d  d	ddt
tjddt
tjddgi} tjddddd}tjg dg dd}t fdddD j}t dj |g}t |||d}t| | d S )Nr   r   r   r   r   Zdti)r   r   ru   r   alphar   r   r   r3   ohlcr   r   r   r   ))r3   r   open)r3   r   high)r3   r   low)r3   r   closer3   r   r3   r   )r   NNrY   c                    s"   g | ]}  d jj|djqS r   r   r   r   r   r   r     r'   zKtest_agg_multiple_functions_same_name_with_ohlc_present.<locals>.<listcomp>r   r   )r   r_   r   r   r   r   r   r   r   r   r   r   r   ra   r   r   Zhstackr3   r   r,   r-   )r0   r   r   Znon_ohlc_expected_valuesr   r1   r   r   r   7test_agg_multiple_functions_same_name_with_ohlc_present|  s*    
 r   c                 C   s   | j ddgd} ddg}ddg}| dd |}| dd |}t|| | d|}| d|}t|| d S )	Nr@   r4   r   )r   r*   r   )r   r   r3   r   )Zdropr   r   r,   r-   )r    r   Zex_funcsr0   r1   r   r   r   -test_multiple_functions_tuples_and_non_tuples  s    r   c           
      C   s2  |  d}|ddd}|ddd}t||gddgdd}|jddddjddd	}ddgddgd}||}t|| |dddgd}|dddgd}t|| d
d }dd }d}	tj	t
|	d* ddddd}|| W d    n1 s
0    Y  dg||gd}|| d S )Nr3   r*   r4   r   r   r   )keysrj   r   r   rh   c                 S   s
   t | S r#   r_   r*   r   r   r   r   	numpymean  s    z:test_more_flexible_frame_multi_function.<locals>.numpymeanc                 S   s   t j| ddS )Nr   )Zddof)r_   r   r   r   r   r   numpystd  s    z9test_more_flexible_frame_multi_function.<locals>.numpystdnested renamer is not supportedr5   r   r   )r   r   r	   Z	swaplevelZ
sort_indexrA   r,   r-   r:   r;   r   )
r    r/   ZexmeanZexstdr1   dr0   r   r   r=   r   r   r   'test_more_flexible_frame_multi_function  s&    

*r   c                 C   s   |  d}dddddid}d}tjt|d || W d    n1 sP0    Y  ddddd}tjt|d || W d    n1 s0    Y  ddddd}tjt|d || W d    n1 s0    Y  d S )	Nr3   r*   r   r   r   r   r   r5   )r   r:   r;   r   rA   )r    r/   r   r=   r   r   r    test_multi_function_flexible_mix  s    
((r   c                  C   s   t g dg dg dd} | d}tddgdd}|d	 d
d }tddg|d	d}t|| |d dd }tddg|dd}t|| d S )Nr   r   r   r   r   r   r   r   )NNr   r   r   r   r   r   r   r   r   r   c                 S   s   | dk  S r   allr   r   r   r   r&     r'   z1test_groupby_agg_coercing_bools.<locals>.<lambda>FTr   r   c                 S   s   |    S r#   )Zisnullr   r   r   r   r   r&     r'   )r   r   r   rA   r   r,   rB   )datZgpr9   r0   r1   r   r   r   test_groupby_agg_coercing_bools  s    
r   c                  C   sb   t g dg dd} | ddg ddi}t dddgiddgd	jdd
d}t|| d S )N)r3   r3   r@   r@   r@   )r   r   r   r   r   r3   r@   r3   r@   r   r   r   r8   r   r   )r   r   r   Zrename_axisr,   r-   )r   r0   r1   r   r   r   "test_groupby_agg_dict_with_getitem  s    "r  opc                 C   s   |   S r#   r?   r   r   r   r   r&     r'   c                 C   s   |   S r#   )cumsumr   r   r   r   r&     r'   c                 C   s
   |  dS Nr   	transformr   r   r   r   r&   	  r'   c                 C   s
   |  dS Nr  r  r   r   r   r   r&   
  r'   c                 C   s
   |  dS r  r   r   r   r   r   r&     r'   c                 C   s
   |  dS r  r	  r   r   r   r   r&     r'   c                 C   sd   t ddgddgd}|dd }| |dd j}t|sDJ | |dj}t|s`J d S )Nr   FTr   r   r   )r   	set_indexr   rs   r   )r  r    sr0   r   r   r   test_bool_agg_dtype  s    r  zkeys, agg_indexr   r   r   r   rY   input_dtype)boolint32r   float32rv   result_dtypemethod)rw   rA   r  c           
         s   t dgdgdgd}|d ||d< t|| dg |}| fdd}|dkrbtd	dn|}t d|d jd	 gi|d
 }	|dkrd	g|	j_t	
||	 d S )Nr   r   Tr   r   c                    s   |   jd S r   r   ilocr   r  r   r   r&   1  r'   z2test_callable_result_dtype_frame.<locals>.<lambda>r  r   r8   rw   )r   r   getattrr   r   
RangeIndexr  rf   rZ   r,   r-   )
r   	agg_indexr  r  r  r    r  r0   r   r1   r   r  r    test_callable_result_dtype_frame  s    
r  input)Tr         ?rs   c           
         s   t dgdg|gd}t|| d |}| fdd}|dkrNtddn|}t|d jd g|dd	 }	t	||	 d S )
Nr   r   r   r   c                    s   |   jd S r   r  r   rr   r   r   r&   I  r'   z3test_callable_result_dtype_series.<locals>.<lambda>r  r   r   )
r   r  r   r   r  r   r  r   r,   rB   )
r   r  r  rs   r  r    r  r0   r   r1   r   rr   r   !test_callable_result_dtype_series;  s     r  c                  C   sR   t g dg dd} | dg d}|jjd }tg d}t|| d S )Nr   r   r  r3   )r   r   r*   r   r   r   )r   r   r   rf   levelsr   r,   r   )r    r{   r0   r1   r   r   r   #test_order_aggregate_multiple_funcsO  s
    r  c                 C   s   t g dddtjddtjgd| d}|d}| }t g d	tjgd
 dgd
 dgd
 gtdgg dgtg d| dd| d}t	|| |jddd}| }|
 }t	|| d S )N)r   r   r   r   r   r      rL   r   r   r   rr   r   )r  r  rL   rL   r   r   )r   r   r   r   r   rs   ru   )rf   r9   rs   Fas_index)r   r   r   r   r   r   r   r   r,   r-   Zreset_index)r   r    r!   r0   r1   Zgb2result2Z	expected2r   r   r   test_ohlc_ea_dtypes[  s"    
"r$  how)firstlastr   r   r*   medianc                 C   st   t dddgd}|dd|i}|j| |_|dd|i}|dvr`|jtj|_tj||dd	 d S )
Nl   &tLWHd~ r   r   r   r   r   r   )r*   r(  T)Zcheck_exact)	r   r   r   r   r   r_   r   r,   r-   )rs   r%  r    r1   r0   r   r   r   test_uint64_type_handlingq  s    r*  c                  C   s`   d} t g dg dd}tjt| d$ |dddg W d    n1 sR0    Y  d S )NzFunction namesr   r   r   r   r   r  r5   r3   r   )r   r:   r;   r   r   r   )r=   r    r   r   r   test_func_duplicates_raises  s    r,  r9   abcZ2020r   )r   r   ))r   r   )r   r   )r   r   c                 C   s\   t g dg dd| d}|ddtji}t ddgddgdd}t|| d S )	Nr   r   r   r   )groupr   r8   r/  r   r   r   )r   r   r   r   Znuniquer
  r,   r-   )r9   r    r0   r1   r   r   r   $test_agg_index_has_complex_internals  s    r0  c                  C   s`   t g dg dg dd} | d }t ddgddgdtd	d
gddd}t|| d S )N)r   r   r   r   r   )onetwor1  r2  r1  )threer3  r3  sixr4  key1key2key3r6  r1  r4  )r7  r8  r   r   r   r8   )r   r   r   r   r,   r-   r    r0   r1   r   r   r   test_agg_split_block  s    r:  c               	   C   s   t tjdddg dg dg dtjdddg ddt} | g d }t tdgd	gd
gdgtdgd
gdt	dgtd}t
|| d S )N2000r   )r   )r   r   r   r   r   )r   r   r   e)r3   r@   r4   r   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   	Timestampr_   r   r,   r-   r9  r   r   r   #test_agg_split_object_part_datetime  s0    	



r>  c                   @   sV   e Zd Zdd Zdd Zdd Zdd Zej	d	e
jd
dddd
dggdd ZdS )TestNamedAggregationSeriesc                 C   s   t g d}|g d}|jddd}tddgddgdd	d
gtddgd}t|| |jddd}|d
d	g }t|| d S )Nr   r+  r   r   r   r   rG   r   r   r   r   r   )r   r   r   r   r   r   r_   r   r,   r-   )selfr    grr0   r1   r   r   r   test_series_named_agg  s    "z0TestNamedAggregationSeries.test_series_named_aggc                 C   sp   t ddgddg}tjtdd |  W d    n1 sB0    Y  |g }tg d}t|| d S )Nr   r   r   Must provider5   r   )	r   r   r:   r;   r   r   r   r,   r-   rA  rB  r0   r1   r   r   r   test_no_args_raises  s    &

z.TestNamedAggregationSeries.test_no_args_raisesc                 C   sX   t g dg d}|jddd}tddgddgdtddgd}t|| d S )	Nr   r   r   r   r   r   r   r   r   r   r   r8   r@  )rA  rB  r/   r1   r   r   r   *test_series_named_agg_duplicates_no_raises  s    $zETestNamedAggregationSeries.test_series_named_agg_duplicates_no_raisesc                 C   s`   t g dg d}|jdd dd d}tddgddgdtddgd	}t|| d S )
NrG  rH  c                 S   s   dS r   r   r   r   r   r   r&     r'   z9TestNamedAggregationSeries.test_mangled.<locals>.<lambda>c                 S   s   dS Nr   r   r   r   r   r   r&     r'   r   r   r   r8   r@  rE  r   r   r   test_mangled  s    $z'TestNamedAggregationSeries.test_mangledinpanythingr   columnaggfunc)rM  r   c                 C   sb   t g d}dt|j }tjt|d$ ||jj|d W d    n1 sT0    Y  d S )N)r   r   r   r   r   r   r   rF   zfunc is expected but received r5   r   )	r   type__name__r:   r;   r   r   r   r   )rA  rL  r  r=   r   r   r   test_named_agg_nametuple  s    
z3TestNamedAggregationSeries.test_named_agg_nametupleN)rS  
__module____qualname__rC  rF  rI  rK  r:   markparametrizer   NamedAggrT  r   r   r   r   r?    s   
r?  c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )TestNamedAggregationDataFramec                 C   s   t g dg dg dd}|djddd}t d	d
gddgdtddgddddgd}t|| tjtj	dd}|djdddddd|fd}t ddgddgddgd	d
gddgd d!gdtddgddg dd}t|| d S )"Nr   r   r   r   r   rF   r   rG   r[   r/  r3   r@   r/  r3   r   r@   r   )a_maxb_maxr   r   r   r[   r   r   r   r`  ra  r   b   r   r@   r   r3   r   )r3   r*   r3   )Zb_minZa_minZa_meanr`  ra  Za_98rF   rG   r   r         ?      @g\(\?gףp=
@)
r   r   r   r   r,   r-   	functoolsr   r_   
percentile)rA  r    r0   r1   Zp98r   r   r   test_agg_relabel  s>    
z.TestNamedAggregationDataFrame.test_agg_relabelc                 C   sf   t g dg dg dd}|djf i ddi}t ddd	gitd
dgddd}t|| d S )Nr[  r   r\  r]  r/  zmy colr^  r   r   r   r   r   r8   r   r   r   r   r,   r-   rA  r    r0   r1   r   r   r   test_agg_relabel_non_identifier  s     z=TestNamedAggregationDataFrame.test_agg_relabel_non_identifierc                 C   s   t g dg dd}|djddd}t ddgddgdtd	dgdd
d}t|| tjtj	dd}tjtj	dd}d|_
d|_
t g dg dd}|djd|fd|fd}t ddgddgdtddgdd
d}t|| d S )Nr+  r   r  r3   rc  r   r   r   r   r   r8   2   r   F   quant50quant70)r   r   r   r   r   )r   r   r   r   rF   )col1col2rq  rr  )Zquantile_50Zquantile_70      ?      @g333333?g@r   r   )r   r   r   r   r,   r-   rg  r   r_   rh  rS  )rA  r    r/   r1   ro  rp  testr   r   r   test_duplicate_no_raises(  s"    &
z6TestNamedAggregationDataFrame.test_duplicate_no_raisesc                 C   sx   t g dg ddtddgddggd}|jd	d
jdddd}t d	dgd	dgddgdddgd}t|| d S )Nr+  r   r  r3   r@   r   r   r8   r   r   r^  rd  )r@   r*   )ZaaZbbccr   rs        @)r   r   r   r   r   r,   r-   rk  r   r   r   test_agg_relabel_with_levelA  s    z9TestNamedAggregationDataFrame.test_agg_relabel_with_levelc                 C   s   t g dg dd}|d}d}tjt|d |jdd W d    n1 sT0    Y  tjt|d |  W d    n1 s0    Y  tjt|d |jd	dd
 W d    n1 s0    Y  d S )NrH  rG  r  r3   rD  r5   r   )r   r_  r   )r   r   r:   r;   r   r   )rA  r    r/   r6   r   r   r   test_agg_relabel_other_raisesN  s    
*&z;TestNamedAggregationDataFrame.test_agg_relabel_other_raisesc                 C   sd   t ddgddgd}td}tjt|d" |djdd	 W d    n1 sV0    Y  d S )
Nr   r   r   r  zColumn(s) ['C'] do not existr5   r3   )r4   r   r   )r   reescaper:   r;   KeyErrorr   r   )rA  r    r6   r   r   r   test_missing_raises[  s    
z1TestNamedAggregationDataFrame.test_missing_raisesc                 C   s`   t ddgddgd}|djtddtjddd	d
}|djddd
}t|| d S )Nr   r   r   r  r3   r@   r   countrN  r   r   )r@   r   )r@   r  r   r   r   r   rY  r,   r-   rk  r   r   r   test_agg_namedtuplea  s    
z1TestNamedAggregationDataFrame.test_agg_namedtuplec                 C   sv   t ddgddgddgd}|djdd	d
 fddd
 fd}t ddgddgdtddgddd}t|| d S )Nr   r   r   r   r   r   r3   r@   c                 S   s   dS r   r   r   r   r   r   r&   k  r'   z<TestNamedAggregationDataFrame.test_mangled.<locals>.<lambda>r4   c                 S   s   dS rJ  r   r   r   r   r   r&   k  r'   r  r   r8   rj  rk  r   r   r   rK  i  s    $&z*TestNamedAggregationDataFrame.test_mangledN)rS  rU  rV  ri  rl  rv  ry  rz  r  r  rK  r   r   r   r   rZ    s   $	rZ  zCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3r   r3   r   r  )r   r@   r*   re  rf  g      @      @c                 C   s   t | S r#   )r   r   r   r   r   r&   |  r'   c                 C   s   dS rJ  r   r   r   r   r   r&   }  r'   r  r   c                 C   s   dS rJ  r   r   r   r   r   r&     r'   c                 C   s   t g dg dg dd}tg d|_tddgdd	}|djd
d}t dddgi|d}	t||	 d}
tj	t
|
d& |dj| ||d}W d    n1 s0    Y  t |||d|d}	t||	 d S )Nr[  r   r\  r]  r   r/  r  r  r   r   r  r   r  )r`  r`  r   r   r8   r   r5   )Zcol_1Zcol_2Zcol_3)r   r   ra   rf   r   r   r   r,   r-   rm   rn   )Zagg_col1Zagg_col2Zagg_col3Zagg_result1Zagg_result2Zagg_result3r    idxr0   r1   r=   r   r   r   "test_agg_relabel_multiindex_columnp  s"    !
$r  c                  C   sp   t g dg dg dd} tg d| _tjtdd" | djd	d
 W d    n1 sb0    Y  d S )Nr[  r   r\  r]  r  zdo not existr5   r  ))Yr   r   rQ  )	r   r   ra   rf   r:   r;   r~  r   r   r   r   r   r   ,test_agg_relabel_multiindex_raises_not_exist  s    r  c                  C   sz   t g dg dg dd} tg d| _| djddd}td	d
gdd}t ddgddgd|d}t|| d S )Nr[  r   r\  r]  r  r  )r  r   r   r   r   r   r   r   r8   )	r   r   ra   rf   r   r   r   r,   r-   )r    r0   r  r1   r   r   r   &test_agg_relabel_multiindex_duplicates  s    
r  kwargsr   r   r  c                 C   sh   t g dg dg dd}|d| }t ddgtddgd	dd
tddggd}t|| d S )Nr.  rG  r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   ra   r,   r-   )r  r    r0   r1   r   r   r    test_groupby_aggregate_empty_key  s    r  c                  C   s\   t g dg dg dd} | ddg i}t tdgg gg g gdd}t|| d S )	Nr.  rG  r  r   r   r   )r  codesr   r   r   r   r   r,   r-   r9  r   r   r   -test_groupby_aggregate_empty_key_empty_return  s    r  c                  C   s`   t g dd} | jddgddjdtfd}t d	gtg g gg g gddgd
d}t|| d S )Nr   r   r   r   Frq   r   )r   r   rY   r   )r   r   r   r~   r   r,   r-   r9  r   r   r   2test_groupby_aggregate_empty_with_multiindex_frame  s    r  c                  C   s`   t g dg dd} | jddd}|jtjddd	d
}t g dg dd}t|| d S )N)r   r   zr   r   r  r  皙?rk   g      @g@      ?)r   valr   Fr!  r  r   rN  min_val)r   r   r  )r  r  r  )r   r  r  r    r/   r0   r1   r   r   r   9test_grouby_agg_loses_results_with_as_index_false_relabel  s    r  c                  C   sp   t g dg dg dd} | jddgdd}|jtjd	d
dd}t g dg dg dd}t|| d S )N)r   r   r   r   r   r   )r   r   r   r   r   r   r  )r   r6  r  r   r6  Fr!  r  r   rN  r  r   r   r   )r   r   r   )r  r  r  )r   r6  r  r  r  r   r   r   Dtest_grouby_agg_loses_results_with_as_index_false_relabel_multiindex  s    r  r   c                 C   s   |   S r#   )r*   r  r   r   r   r&     r'   c                 C   s
   t | S r#   r   r  r   r   r   r&     r'   c                 C   s
   t | S r#   )r_   Znanmeanr  r   r   r   r&     r'   c                 C   s   g dg dg}t |tjg dg dgddgdd}|td	d
g| }dddddddddd}t |td	d
g|jd}t	|| d S )N)r   r   r   )rF   rG   r   r.  )r   r   r   ZSiskoZJanewayrY   r   r   r   r        @rl   rt  g      @rk   ))r   r   )r   r   )r   r   r   )
r   r   from_arraysr   r_   r   r   rf   r,   r-   )r   re   r    r0   expected_dictr1   r   r   r   test_multiindex_custom_func  s    r  c                 C   s   t j| ddS Ng?r   r_   rh  r  r   r   r   myfunc  s    r  c                 C   s   t j| ddS r  r  r  r   r   r   r&     r'   c                 C   sn   t g dg dg dd}|djdd| fd}t d	d
gddggddgtddgddd}t|| d S )Ncatdogr  r  g333333"@g      @      #@      A@皙@r  #@     h@kindheightweightr  )r  r*   r  )mean_heightperc90g"@g0'5"@g      4@g5^I@r  r  r  r  r   r   rj  )r   Zanimalsr0   r1   r   r   r   test_lambda_named_agg  s    
r  c                  C   s   t tdgd ddtdtdd} g d| d< | dd	d
 }dgdgdggddgddgddggg}t |tddgdddtg dddd}t	|| d S )Nr   r\   r   ZXYZr-  re   rf   r9   )group 1r  r   groupingc                 S   s   |   S r#   )tolistr   r   r   r   r&   ;  r'   z,test_aggregate_mixed_types.<locals>.<lambda>r   r  r   r   )Xr  Zrr   r   )
r   r_   r   r   r~   r   rA   r   r,   r-   )r    r0   r   r1   r   r   r   test_aggregate_mixed_types5  s    "&r  zNot implemented;see GH 31256reasonc                  C   sf   dd } t dtg di}|g d| }t dtjdtjgddidd	gd
}t|| d S )Nc                 S   s   t | dkrdS tjS d S )Nr   r   )r   r   r   r   r   r   r   rP  N  s    z5test_aggregate_udf_na_extension_type.<locals>.aggfuncr3   rG  r.  r   r   rr   r   r8   )r   r   r   r   r   r   r,   r-   )rP  r    r0   r1   r   r   r   $test_aggregate_udf_na_extension_typeE  s
    	$r  c                   @   sB   e Zd Zdd Zdd Zejjdddd Zd	d
 Z	dd Z
dS )TestLambdaManglingc                 C   sl   t g dg dd}|dddd dd gi}t d	d	gd
d
gdtd	d
gddd}t|| d S )Nr+  r   r  r3   r@   c                 S   s   dS r   r   r   r   r   r   r&   ]  r'   z/TestLambdaMangling.test_basic.<locals>.<lambda>c                 S   s   dS rJ  r   r   r   r   r   r&   ]  r'   r   r   ))r@   
<lambda_0>)r@   
<lambda_1>r   r8   rj  rk  r   r   r   
test_basic[  s     zTestLambdaMangling.test_basicc                 C   sd   t g dg d}|dd dd g}ddgddgd}t|tddgd	}t|| d S )
Nr   r+  c                 S   s   dS r   r   r   r   r   r   r&   g  r'   z?TestLambdaMangling.test_mangle_series_groupby.<locals>.<lambda>c                 S   s   dS rJ  r   r   r   r   r   r&   g  r'   r   r   r  r  r8   r@  )rA  rB  r0   exp_datar1   r   r   r   test_mangle_series_groupbye  s
    z-TestLambdaMangling.test_mangle_series_groupbyzGH-26611. kwargs for multi-agg.r  c                 C   s   ddd}ddd}t ddgddg||gd}tdgdgd	}t|| t ddgddgj||gdd
d}tdgdgd	}t|| d S )Nr   c                 S   s   |   | | S r#   r?   r   r   r   r   r   r   r&   n  r'   z5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>r   c                 S   s   |   ||  S r#   r?   r  r   r   r   r&   o  r'   r   r   r   r  r   )r         )r   )r   )r   r   r   r   r,   r-   )rA  f1f2r0   r1   r   r   r   test_with_kwargsl  s    

"&z#TestLambdaMangling.test_with_kwargsc                 C   s   t g dg dg dd}g d}t ddgdd	gd
dgdtddgdd|d}|jddjtjddd dtjdddtjdddd}t|| |jddjddd fddd}t|| d S )Nr  r  r  r  )height_sqr_min
height_max
weight_maxp=
׳T@      B@r  r  r  r  r  r  r  r   r   byr  c                 S   s   t | d S r7   r_   r   r   r   r   r   r&     r'   z=TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>rN  r   r  c                 S   s   t | d S r7   r  r   r   r   r   r&     r'   r  r   r  r   )r   r   r   r   r   rY  r,   r-   rA  r    rf   r1   Zresult1r#  r   r   r   test_agg_with_one_lambdax  s:    
z+TestLambdaMangling.test_agg_with_one_lambdac              	   C   s  t g dg dg dd}g d}t ddgdd	gd
dgdd	gddgdtddgdd|d}|jddjddd fddddd fddd fd}t|| |jddjtjddd dtjdddtjdddtjddd dtjdd d dd}t|| d S )!Nr  r  r  r  )r  r  r  Zheight_max_2Z
weight_minr  r  r  r  r  r  r  r  r  r  r  r   r   r  r  c                 S   s   t | d S r7   r  r   r   r   r   r&     r'   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>r  r  c                 S   s
   t | S r#   r_   r   r   r   r   r   r&     r'   r  c                 S   s
   t | S r#   r  r   r   r   r   r&     r'   c                 S   s   t | d S r7   r  r   r   r   r   r&     r'   rN  r   c                 S   s
   t | S r#   r  r   r   r   r   r&     r'   c                 S   s
   t | S r#   r  r   r   r   r   r&     r'   )r   r   r   r   r,   r-   r   rY  r  r   r   r   test_agg_multiple_lambda  sF    


	z+TestLambdaMangling.test_agg_multiple_lambdaN)rS  rU  rV  r  r  r:   rW  xfailr  r  r  r   r   r   r   r  Z  s   

'r  c                  C   sZ   t g dg dd} | dddd i}t dd	gd
dgdd}t|| d S )N)r   Wr  )r  r  rk   r  r3   r@   c                 S   s   |  | jd S )N)getr9   r   r   r   r   r&     r'   z+test_groupby_get_by_index.<locals>.<lambda>r   r  r  rk   )r   r   r   r
  r,   r-   )r    r{   r1   r   r   r   test_groupby_get_by_index  s    r  zgrp_col_dict, exp_data)nrcat_ordrF   r  r  c                 C   s   t g dtdtdd}|ddd}|d j |d< |jdd	d
| }tjddgddgd	ddd}t ||d}d|v r|d j	}|d ||d< t
|| d S )Nr   r   r   r   rF   r   rG   r[   aabbccddaaaabbbbr  r  r  categoryr  r  r  r  FZobservedr   r   
categoriesZorderedru   rs   )re   r9   )r   r~   r   r  
as_orderedr   r   r   CategoricalIndexrs   r,   r-   )grp_col_dictr  input_df	result_df	cat_indexexpected_dfrs   r   r   r    test_groupby_single_agg_cat_cols  s"    
r  )r   r   r   )rF   r[   r   )r   r   r   )rF   r   r   r   )r   r   c           
         s  t g dtdtdd}|ddd}|d j |d< |jdd	d
| }tjddgddgd	ddd}g }| 	 D ]:\ }t
|tr| fdd|D  qz| |g qztt|}t |||d}|jD ].}	t
|	trd|	v r||	 |d j||	< qt|| d S )Nr  r  r  r  r  r  r  r  Fr  r   r   r  c                 3   s   | ]} |gV  qd S r#   r   )r   r   r   r   r   	<genexpr>$  r'   z6test_groupby_combined_aggs_cat_cols.<locals>.<genexpr>r  )r   r~   r   r  r  r   r   r   r  itemsr   extendappendr   ra   r   rf   rs   r,   r-   )
r  r  r  r  r  Zmulti_index_listvZmulti_indexr  colr   r  r   #test_groupby_combined_aggs_cat_cols  s.    

r  c                  C   sT   t g dg dd} | d}|dg}|jd|_|d}t|| d S )Nr   )r   r   r   r   r   r   r  r  )r   r   r   rf   Z	droplevelr,   r-   )r    rb   r0   r1   r   r   r   test_nonagg_agg2  s    

r  c                  C   sh   t ddgtdddddddtd	ddddddgd
} | dj }| dd }t|| d S )Nr  r  i  r   r   r     i`= i  r  r3   r@   )r   datetimer   r@   r   r
  r,   rB   r9  r   r   r   test_aggregate_datetime_objects?  s    	r  c                  C   s|   t g dg dg dd} | jd| _| ddg}|jdd	 }tjd
dgdd}tddg|dd}t	
|| d S )N)r   r   r   r  r   r   r   )c0c1pOr  r  c                 S   s   t | dkS r   r   r   r   r   r   r&   V  r'   z1test_groupby_index_object_dtype.<locals>.<lambda>)r   r   r)  )r  r  rY   FTr  r   )r   r9   r   r   r  r   r   ra   r   r,   rB   )r    r/   r{   r   r1   r   r   r   test_groupby_index_object_dtypeQ  s    r  c                  C   sT   dd } t dgtdgd}|dd | }t dggdgd}t|| d S )	Nc                 S   s   |    rd S t| S r#   )Zisnar   r_   r   r   r   r   r   r   c  s    z)test_timeseries_groupby_agg.<locals>.funcr  z2018-01-16 00:00:00+00:00r8   c                 S   s   dS rJ  r   r   r   r   r   r&   i  r'   z-test_timeseries_groupby_agg.<locals>.<lambda>r   )r   r   r=  r   r   r,   r-   )r   r    r{   r1   r   r   r   test_timeseries_groupby_agg`  s
    r	  c                 C   s   | t jv rt| j}| t jv r,t| j}| t jv rFt|  j}| t j	v r`t|  j}t
dgdgtj|g| dd}dgdgg}tj|dd}t
dtj|g| di|d}|d	d
gdd }t || d S )Nr   r   rr   r5  )r6  r7  rY   r8  r8   r6  r7  c                 S   s   | S r#   r   r   r   r   r   r&     r'   z,test_groupby_agg_precision.<locals>.<lambda>)r,   ZALL_INT_NUMPY_DTYPESr_   Ziinfor   ZFLOAT_NUMPY_DTYPESZfinfoZFLOAT_EA_DTYPESlowerZALL_INT_EA_DTYPESr   r   r   r   r  r   r   r-   )Zany_real_numeric_dtypeZ	max_valuer    Zarraysr9   r1   r0   r   r   r   test_groupby_agg_precisiono  s*    



r  c                 C   s   | dv rd S t ddgdtjgg}|d| }|dd| i}| dv rdtj||d dd nt|| t|j|j d S )N)ZcorrwithZnthr   r   )r   ZngroupF)Zcheck_names)	r   r_   r`   r   r   r,   rB   r-   Zdtypes)r   objZresult_reduced_seriesZresult_reduced_framer   r   r    test_groupby_aggregate_directory  s    
r  c                  C   sJ   t g ddd} t dgdtdgd}| g d }t|| d S )N)z1 dayz3 daysNaTtimedelta64[ns]rr   z2 daysr   rt   r   r   r   )r   r_   r   r   r*   r,   rB   )re   r1   r0   r   r   r   test_group_mean_timedelta_nat  s    r  zinput_data, expected_output)z2021-01-01T00:00r  z2021-01-01T02:00z2021-01-01T01:00)z2021-01-01T00:00-0100r  z2021-01-01T02:00-0100z2021-01-01T01:00-0100c                 C   sF   t t| }t t|tdgd}|g d }t|| d S )Nr   r8   r  )r
   r   r_   r   r   r*   r,   rB   )Z
input_dataZexpected_outputre   r1   r0   r   r   r   test_group_mean_datetime64_nat  s    r  zfunc, outputr*   y       @      2@y      $@      6@y      D@     V@y      I@     [@c                 C   sN   t tdddddg}||jd | }t |}t	|| d S )Nr   r   r   r                  @)
r   r_   r   r   dotr   r9   r   r,   rB   )r   outputre   r0   r1   r   r   r   test_groupby_complex  s     r  )r   r   r   c                 C   sl   t tdddddg}d}tjt|d& ||j	d 
|  W d    n1 s^0    Y  d S )Nr   r   r   r   r  zNo matching signature foundr5   )r   r_   r   r   r  r:   r;   r   r   r9   r   )r   re   r=   r   r   r   test_groupby_complex_raises  s     r  prodr(  c                 C   s   t g dg dg dd}d}tjt|d |jddd	}W d    n1 sR0    Y  tjtd
d ||  W d    n1 s0    Y  d S )Nr.  r   r   rF   )r   rG   r[   r   rg   r5   r   r   r   z"axis other than 0 is not supported)	r   r,   rm   rn   r   r:   r;   NotImplementedErrorr   )r   r    r=   r!   r   r   r   test_multi_axis_1_raises  s    ,r  ztest, constantr3   r@   r4   rl   r  )Zmarksc                 C   s<   t | }|dtj}t |}|d}t|| d S r   )r   r   r   r   moder
  r,   r-   )ru  ZconstantZdf1r0   r1   r   r   r   test_agg_of_mode_list  s
    
r  c                  C   s   t g dg dd} | d}ddd}dd
d}d}tjt|d& |j||gdddd W d    n1 sr0    Y  |j||gddd}t ddgddgddggtg dddtddgd}t	
|| d S )NrG  r   r)  r   r   r   c                 S   s   |   | | S r#   r?   r   r   r   r   r   r   foo1  s    z@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo1r   c                 S   s   |   | | S r#   r?   r   r   r   r   r   r   foo2  s    z@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo2/foo1\(\) got an unexpected keyword argument 'b'r5   r   r   r  r{  r[   r\   r   r   )r   r  )r   r!  r   )r   r   )r   r   )r   r   r:   r;   r   r   r   r   ra   r,   r-   )r    r!   r  r!  r=   r0   r1   r   r   r   2test_dataframe_groupy_agg_list_like_func_with_args  s    


4r#  c                  C   s   t g d} | | }ddd}ddd}d	}tjt|d
& |j||gdddd W d    n1 sh0    Y  |j||gddd}tddgddgddggtg dddgd}t	|| d S )NrG  r   r   c                 S   s   |   | | S r#   r?   r  r   r   r   r    s    z=test_series_groupy_agg_list_like_func_with_args.<locals>.foo1r   c                 S   s   |   | | S r#   r?   r   r   r   r   r!    s    z=test_series_groupy_agg_list_like_func_with_args.<locals>.foo2r"  r5   r   r   r  r{  r[   r\   r   r  r!  r   )r   r   )r   r   )
r   r   r:   r;   r   r   r   r   r,   r-   )r  Zsgbr  r!  r=   r0   r1   r   r   r   /test_series_groupy_agg_list_like_func_with_args  s    


4$r$  c                  C   s   t g dg dg dd} | ddg}|ddg }|dd	 }td
dgddggdd
gdd
ggddgd}t ddgddgd|d}t|| d S )Nr.  )r   r   r   )rF   r   rG   r   r   r   r   c                 S   s   |   S r#   r?   r   r   r   r   r&   -  r'   z.test_agg_groupings_selection.<locals>.<lambda>r   r   r   r   r   )r  r  rZ   r   rL   rG   r  r8   r  )r    r!   Zselected_gbr0   r9   r1   r   r   r   test_agg_groupings_selection(  s    "r%  c                  C   sb   t g dg dd} | jdddd }|dd	g}t d
dgddgddgd}t|| d S )Nr.  r  r   r   Fr!  r   r   r*   r   r   rG   rF   rx  r  )r   r   r*   )r   r   r   r,   r-   r    r!   r0   r1   r   r   r   ?test_agg_multiple_with_as_index_false_subset_to_a_single_column5  s
    r'  c                  C   sr   t g dg dg dd} | jddgdd}|d	g}t g d
g dg dgtg dd}t|| d S )NrH  )r   r   r   )r   rF   r   )a1a2r   r(  r)  F)r  r"  r   )r   r   r   )r   r   rF   )r   r   r   ))r(   )r)  r*  )r   r   rd   )r   r   r   r   ra   r,   r-   r&  r   r   r   &test_agg_with_as_index_false_with_list>  s    r+  c                  C   sj   t dtdtdtddi} t tg dddg dd	}|d
}|jdd}t||  d S )Ntd0 days 01:00:000 days 01:15:00r  )r-  z0 days 00:15:00r.  r  rr   )r   r   r   )r,  grpsr/  )r,  r  )r,  )r   r   Z	Timedeltar   r   r   r,   r-   )r1   r    r!   r0   r   r   r   Btest_groupby_agg_extension_timedelta_cumsum_with_named_aggregationK  s&    		
r0  )p__doc__r  rg  r   r|  numpyr_   r:   Zpandas.errorsr   Zpandas.core.dtypes.commonr   Zpandasr   r   r   r   r   r	   r
   Zpandas._testingZ_testingr,   Zpandas.core.groupby.grouperr   r"   r2   r>   rE   rc   rp   r|   r   r   rW  rX  r   r   r   intrx   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r$  r   Zuint64r*  r,  r  r~   Zinterval_rangeZperiod_rangera   r0  r:  r>  r?  rZ  r*   rY  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  paramr  r#  r$  r%  r'  r+  r0  r   r   r   r   <module>   s   
1

 	
!$

((

	
5v	

	






y

(

	



**0

	