a
    é´«jB2  ã                   @   s˜  d Z ddlZddlZddlmZmZ ddlZddlm	Z	m
Z
mZmZmZmZmZ ddlmZ ddlm  mZ ej ddddd	d
dejdej d¡gd�dddg
¡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ej"fdej#fd	ej$fdej%fdej&fdej'fdej(fd!d"d#„ fd$d%d#„ fg	¡d&d'„ ƒZ)ej d dej"fdd(d#„ fd	d)d#„ fdej'fdej(fg¡d*d+„ ƒZ*d,d-„ Z+ej d.g d/¢¡ej d0ed1ƒed2ƒg¡d3d4„ ƒƒZ,ej d5g d6¢¡d7d8„ ƒZ-ej dg d9¢¡d:d;„ ƒZ.ej d<g d=¢¡d>d?„ ƒZ/ej d@dAdBg¡ej dCg dD¢¡ej d0ej0g dE¢dFdG�ej0g dE¢dHdG�ej0g dI¢dJdG�ej0g dI¢dKdG�ej0g dL¢dMdG�g¡dNdO„ ƒƒƒZ1dS )Pz
test cython .agg behavior
é    N)Úis_float_dtypeÚis_integer_dtype)Ú	DataFrameÚIndexÚNaTÚSeriesÚ	TimedeltaÚ	TimestampÚbdate_rangeÚop_nameÚcountÚsumÚstdÚvarÚsemÚmeanÚmedianzignore::RuntimeWarning)ZmarksÚprodÚminÚmaxc           
         s>  ddddddddddt jt jgddgd t j d¡ d¡d	œ}t|ƒ}t j|jdd
d…df< ‡fdd„‰ |jdgdd� d¡}‡ fdd„|D ƒ}td|iƒ}d|j	_
ˆ |ƒ}t ||¡ | ddg¡}i }|D ]$\\}}}	ˆ |	d ƒ| |i ¡|< qÎt|ƒjjdd�}ddg|j	_d|_
ˆ |ƒd }ˆdv �r:t ||¡ d S )Nr   é   g      ð?ÚAÚBé   é   é   ©r   r   ÚCé
   r   c                    s   t | ˆ ƒƒ S ©N)Úgetattr©Úx)r   © úi/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/groupby/aggregate/test_cython.pyÚ<lambda>8   ó    z(test_cythonized_aggers.<locals>.<lambda>)Úaxisc                    s   i | ]\}}|ˆ |d  ƒ“qS )r   r#   )Ú.0ÚcatÚgroup)Úopr#   r$   Ú
<dictcomp><   r&   z*test_cythonized_aggers.<locals>.<dictcomp>T)Zfuture_stack)r   r   )ÚnpÚnanÚrandomÚdefault_rngÚstandard_normalr   ÚlocZdropÚgroupbyÚindexÚnameÚtmÚassert_frame_equalÚ
setdefaultÚTÚstackÚnamesÚassert_series_equal)
r   ÚdataÚdfÚgroupedÚexpÚresultZexpdZcat1Úcat2r*   r#   )r+   r   r$   Útest_cythonized_aggers   s.    
ý
rC   c                  C   s¢   t tj d¡ ddd¡tj d¡ ddd¡ d¡dœƒ} |  d¡d  ¡ }d	}tj	t
|d
��& |  d¡d  tj¡}W d   ƒ n1 sˆ0    Y  t ||¡ d S )Nr   r   é   é2   Úbool©ÚaÚbrH   rI   zusing SeriesGroupBy.mean©Úmatch)r   r-   r/   r0   ÚintegersÚastyper3   r   r6   Úassert_produces_warningÚFutureWarningÚaggr<   )ÚframerA   ÚmsgÚexpectedr#   r#   r$   Útest_cython_agg_booleanP   s    þÿ4rT   c                  C   sæ   t tj d¡ ddd¡ddgd dœƒ} d	}tjt|d
��& |  d¡d j	dd� W d   ƒ n1 sf0    Y  t tj d¡ ddd¡ddgd dœƒ} | dg  | d ¡j	dd�}t g | d  
¡  ¡ tg dd�d�}t ||¡ d S )Nr   r   rD   rE   ÚfooÚbaré   rG   úKCannot use numeric_only=True with SeriesGroupBy.mean and non-numeric dtypesrJ   rH   rI   T©Únumeric_onlyÚstr©Údtype)r4   Úcolumns)r   r-   r/   r0   rL   ÚpytestÚraisesÚ	TypeErrorr3   r   Zsort_valuesZdrop_duplicatesr   r6   r7   )rQ   rR   rA   rS   r#   r#   r$   Útest_cython_agg_nothing_to_agg`   s     "ÿ4"ÿ
ýrb   c                  C   s€   t tj d¡ ddd¡ddgd tjddd	d
�dœƒ} d}tjt	|d��$ |  
d¡jjdd� W d   ƒ n1 sr0    Y  d S )Nr   r   rD   rE   rU   rV   rW   Únowr   )ÚperiodsÚfreq)rH   rI   ÚdatesrX   rJ   rI   TrY   )r   r-   r/   r0   rL   ÚpdZ
date_ranger_   r`   ra   r3   rf   r   )rQ   rR   r#   r#   r$   Ú)test_cython_agg_nothing_to_agg_with_datesv   s    
ýÿrh   c                  C   s   t g d¢g d¢dœƒ} d}tjt|d��" | jddd� ¡  W d   ƒ n1 sP0    Y  tjt|d��" | jddd� ¡  W d   ƒ n1 s�0    Y  tjt|d��" | jddd� ¡  W d   ƒ n1 sÐ0    Y  tjt|d��" | jddd� ¡  W d   ƒ n1 �s0    Y  d S )	N)r   r   é   )ri   é   rD   )r"   Úyz+DataFrame.groupby with axis=1 is deprecatedrJ   r   r^   )Úlevelr'   )r   r6   rN   rO   r3   r   )r>   rR   r#   r#   r$   Útest_cython_agg_frame_columnsƒ   s    000rm   c                  C   sŒ   t g d¢g d¢tj d¡ d¡tj d¡ d¡dœƒ} |  d¡d  dd	„ ¡}td
d
d
dœddd
dœgtddgdd�dd�}t	 
||¡ d S )N)rU   rV   rU   rV   rU   rV   rU   rU   )Úonern   ÚtwoÚthreero   ro   rn   rp   r   é   )r   r   r   ÚDr   r   c                 S   s   |   ¡  ¡ S r   )Zvalue_countsÚto_dictr!   r#   r#   r$   r%   �   r&   z-test_cython_agg_return_dict.<locals>.<lambda>r   )ro   rn   rp   rV   rU   ©r5   )r4   r5   )r   r-   r/   r0   r1   r3   rP   r   r   r6   r<   )r>   ÚtsrS   r#   r#   r$   Útest_cython_agg_return_dict’   s    üÿ	ýrv   c                  C   sŒ   t ddd�} tg d¢d t| d�}| dd„ ¡}| ¡ }d	}tjt|d
��" | t	j¡ 
t¡}W d   ƒ n1 sr0    Y  t ||¡ d S )Nz1/1/2000rE   )rd   )r   r   r   rr   ÚEr   )r]   r4   c                 S   s   | j S r   )Úmonthr!   r#   r#   r$   r%   ª   r&   z&test_cython_fail_agg.<locals>.<lambda>zusing SeriesGroupBy.sumrJ   )r
   r   Úobjectr3   r   r6   rN   rO   rP   r-   rM   r<   )Zdrru   r?   ZsummedrR   rS   r#   r#   r$   Útest_cython_fail_agg¦   s    0rz   z
op, targopÚfirstc                 C   s
   | j d S ©Nr   ©Zilocr!   r#   r#   r$   r%   ½   r&   r%   Úlastc                 C   s
   | j d S )Néÿÿÿÿr}   r!   r#   r#   r$   r%   ¾   r&   c                 C   s´   t tj d¡ d¡ƒ}tj d¡jdddd� t¡}| |¡j	| d dd�}|t
jv rXtnd }d| › �}tj||d	��  | |¡ |¡}W d   ƒ n1 sš0    Y  t ||¡ d S )
Nr   iè  r   rE   )ÚsizeT©ZaltrZ   zusing DataFrameGroupBy.rJ   )r   r-   r/   r0   r1   rL   rM   Úfloatr3   Ú_cython_agg_generalÚcomZ_cython_tablerO   r6   rN   rP   r7   )r+   Útargopr>   ÚlabelsrA   ÚwarnrR   rS   r#   r#   r$   Útest__cython_agg_general³   s    
.rˆ   c                 C   s   t | ƒdkrt | ¡S tjS r|   )Úlenr-   r   r.   r!   r#   r#   r$   r%   Ò   r&   c                 C   s   t j| dd�S )Nr   )Zddof)r-   r   r!   r#   r#   r$   r%   Ó   r&   c                    s~   t g d¢ƒ}tdddƒ}|jt |d |¡|d�}|j| d dd�}|jt |d |¡|d�}| ‡ fdd	„¡}t ||¡ d S )
N©é   r   é   r   é7   rD   ©ÚobservedTr�   c                    s   ˆ | ƒS r   r#   r!   ©r…   r#   r$   r%   â   r&   z/test_cython_agg_empty_buckets.<locals>.<lambda>)	r   Úranger3   rg   Úcutrƒ   rP   r6   r7   )r+   r…   r�   r>   ÚgrpsÚgrA   rS   r#   r�   r$   Útest_cython_agg_empty_bucketsÎ   s    r•   c                 C   s   t g d¢dgd�}tjdddtd�}|jt |d |¡| d�jd	d d
d�}tjdddd�}t dg d¢itj	|dd
d�d�}| rŒ||j
dk }t ||¡ |jt |d |¡| d�jdd d
d�}t dg d¢itj	|dd
d�d�}| rð||j
dk }t ||¡ d S )NrŠ   rH   )r^   r   rW   rD   r\   rŽ   r   Tr�   é   )re   )r   r   é$   r   )r5   Zordered©r4   r   )r   r   i´  r   r   )r   r-   ZarangeÚintr3   rg   r’   rƒ   Zinterval_rangeZCategoricalIndexrH   r6   r7   )r�   r>   r“   rA   Z	intervalsrS   r#   r#   r$   Ú$test_cython_agg_empty_buckets_nanopsæ   s.    ÿ
þÿ
þrš   r+   )r{   r~   r   r   r=   z2016-10-14 21:00:44.557z17088 days 21:00:44.557c                 C   sZ   t ddg|tgdœƒ}tddgdd�}t d|tgi|d�}| d¡ | ¡}t ||¡ d S )Nr   r   rG   rH   rt   rI   r˜   )r   r   r   r3   Ú	aggregater6   r7   )r+   r=   r>   r4   rS   rA   r#   r#   r$   Ú"test_cython_with_timestamp_and_nat  s
    rœ   rP   )r   r   r   r   r   r   r   r   ZohlcZcumprodZcumsumÚshiftÚanyÚallZquantiler{   r~   ZrankZcumminZcummaxc                 C   sf   t g d¢g d¢dœƒ}d|jjd j_| dg¡ d| i¡}| ¡  dg¡ d| i¡}t 	||¡ d S )N)gffffff@gš™™™™™@gÍÌÌÌÌÌ@gffffff@g      @)Úsetosar    r    r    r    )Úsepal_lengthÚspeciesFr   r¢   r¡   )
r   Z_mgrZarraysÚflagsZ	writeabler3   rP   Úcopyr6   Zassert_equal)rP   r>   rA   rS   r#   r#   r$   Ú test_read_only_buffer_source_agg  s    þÿr¥   )
r   r   r   r   r   r   r   r   r   r   c                 C   s¦   t ddgd tjddddddd	d
dtjg
dd�dœƒ}t| d¡d | ƒƒ }|j|d  d¡d�}t| d¡d | ƒƒ }| dv r†d}nd}|j|d�}t	 
||¡ d S )Nr   r   rD   r   r   ri   rj   r   é   rq   é	   ÚInt64r\   )r   r   Zfloat64)r   )r   r   FT)Úconvert_integer)r   rg   ÚarrayÚNAr    r3   ZassignrM   Zconvert_dtypesr6   r<   )r   r>   rA   Zdf2rS   r©   r#   r#   r$   Útest_cython_agg_nullable_int@  s    
"þÿr¬   r]   )r¨   ÚFloat64Úbooleanc                 C   st   t ddgtjdtjg| d�tjddg| d�dœƒ}| d¡ ¡ }t ddggtdgdd�ddgd	d
�}t ||¡ d S )Nr   r\   r   r   r   rt   r   r   r¨   )r4   r^   r]   )	r   rg   rª   r«   r3   r   r   r6   r7   )r]   r>   rA   rS   r#   r#   r$   Ú&test_count_masked_returns_masked_dtypec  s    ýÿÿr¯   Úwith_naTFzop_name, action)	)r   Ú	large_int)r   Úalways_float)r   r²   )r   r²   )r   r±   )r   Úpreserve)r   r³   )r{   r³   )r~   r³   )r   r   ri   rj   r¨   r\   ZInt8)gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?ZFloat32r­   )TTFFr®   c                 C   s  |rt j| d< tg d¢| dœƒ}| d¡}|dkr<t  ¡ }nh|dkrrt| jƒrV| j}q¤t| jƒrh| j}q¤t  ¡ }n2|dkr–t| jƒrŒ| j}q¤t  ¡ }n|dkr¤| j}t	||ƒƒ }|d	 j|ksÂJ ‚| 
|¡}|d	 j|ksÞJ ‚t	|d	 |ƒƒ }|j|ksüJ ‚|d	  
|¡}|j|k�sJ ‚d S )
Nri   )rH   rH   rI   rI   )ÚkeyÚcolr´   Z
always_intr±   r²   r³   rµ   )rg   r«   r   r3   Z
Int64Dtyper   r]   r   ZFloat64Dtyper    r›   )r=   r   Úactionr°   r>   r?   Zexpected_dtyperA   r#   r#   r$   Útest_cython_agg_EA_known_dtypess  s4    








r·   )2Ú__doc__Únumpyr-   r_   Zpandas.core.dtypes.commonr   r   Zpandasrg   r   r   r   r   r   r	   r
   Zpandas._testingZ_testingr6   Zpandas.core.commonÚcoreÚcommonr„   ÚmarkZparametrizeÚparamÚfilterwarningsrC   rT   rb   rh   rm   rv   rz   r   r   r   r   r   r   r   rˆ   r•   rš   rœ   r¥   r¬   r¯   rª   r·   r#   r#   r#   r$   Ú<module>   s°   $	üñþ
!

÷þ


ûþ

!ÿþ
þ

þûþ
