a
    oÝEbà  ã                   @   sò   d dl Zd dl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 dd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd„ Zej dddg¡edœdd„ƒZej dg d¢¡dd„ ƒZdS )é    N)ÚiNaT)Ú	DataFrameÚIndexÚSeries)Ú
Int64Indexc                  C   s’   t g d¢g d¢ddg dœƒ} |  d¡ ¡ }d|v s8J ‚|  d¡jdd	�}d|v sVJ ‚|  d¡ ¡ }d|v spJ ‚|  d¡jdd	�}d|v sŽJ ‚d S )
N)é   r   é   r   )é   é   é   é   r   Zmama)ÚnnÚiiÚssr   r   F©Znumeric_only)r   ÚgroupbyÚmaxÚmin)ZaaÚresult© r   úa/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/groupby/test_min_max.pyÚtest_max_min_non_numeric   s    r   c                 C   s  t g d¢g d¢g d¢dœƒ}| ¡  | s<t|jjƒdks<J ‚| d¡}tjtdd�� |j	d	d
�}W d   ƒ n1 sv0    Y  t
g d¢dd�}t dg d¢i|d�}t ||¡ tjtdd�� |jd	d
�}W d   ƒ n1 sà0    Y  t
g d¢dd�}t dg d¢i|d�}t ||¡ d S )N)r	   r	   r
   r
   r   )r	   Zfoor
   ÚbarF)ÚaÚbÚcÚdÚe)ÚAÚBÚCr
   r   zDropping invalid)ÚmatchFr   ©r	   r
   r   ©Únamer    )r   r   r   ©Úindex)r   r   r   )r   Z_consolidate_inplaceÚlenZ_mgrÚblocksr   ÚtmZassert_produces_warningÚFutureWarningr   r   Úassert_frame_equalr   )Zusing_array_managerÚdfÚgbr   ÚeiÚexpectedr   r   r   Ú$test_max_min_object_multiple_columns!   s(    ýÿ
**r0   c                  C   s¦   t jtg d¢ƒdd�jj} ttjdtjgg d¢| dœƒ}|jddd	�d
  	¡ d
 }t jtddgd
d�dd�jj}t
 ||¡ | d¡d
  	¡ }d|j_t
 ||¡ d S )N)ú
2019-05-09r1   r1   z%Y-%m-%d)ÚformatÚ1)r   r	   r	   )r   r   r   r   F)Zas_indexr   r1   r#   )ÚpdÚto_datetimer   ÚdtÚdater   ÚnpÚnanr   r   r)   Úassert_series_equalr&   r$   )Údatesr,   r   r/   r   r   r   Útest_min_date_with_nansB   s    ÿ
ÿ
r<   c                  C   s¤   t dtgƒ} |  ddg¡}|jdd�}t dditjd�}tj||dd� |jdd�}t dtitjd�}tj||dd� |jdd�}t dtj	iƒ}tj||dd� d S )Nr	   r
   ©Z	min_count©ÚdtypeT©Zcheck_exactr   )
r   r   r   r   r8   Zint64r)   r:   r   r9   ©Zserr-   r   r/   r   r   r   Útest_max_inatT   s    rB   c                  C   sZ   t dtdtd gƒ} |  g d¢¡}|jdd�}t tjtjtd dœƒ}tj||dd� d S )Nr	   r
   )r	   r
   r   r   r=   r"   Tr@   )r   r   r   r   r8   r9   r)   r:   rA   r   r   r   Útest_max_inat_not_all_nag   s
    rC   Úfuncr   r   c                 C   sj   ddg}t jdddd�}t||dœƒ}t| d¡d | ƒƒ }tddgdd	�}t||dd
�}t ||¡ d S )Nr	   r
   Ú2020ÚY©ÚperiodsÚfreq©r   r   r   r   r#   )r&   r$   )	r4   Úperiod_ranger   Úgetattrr   r   r   r)   r:   ©rD   ÚgroupsrH   r,   r   Úidxr/   r   r   r   Ú$test_groupby_aggregate_period_columnt   s    rP   c                 C   sh   ddg}t jdddd�}t||dœƒ}t| d¡| ƒƒ }tddgdd�}td	|i|d
�}t ||¡ d S )Nr	   r
   rE   rF   rG   rJ   r   r#   r   r%   )r4   rK   r   rL   r   r   r)   r+   rM   r   r   r   Ú#test_groupby_aggregate_period_frame‚   s    rQ   c                  C   sÈ   t g d¢tdƒtjgd dœƒ t¡} |  d¡ ¡ }t ddgdd	gtjtjgdœƒ d¡}t	 
||¡ t g d¢tdƒtdƒdœƒ t¡} |  d¡ ¡ }t ddgdd	gd
dgdœƒ d¡}t	 
||¡ d S )N)r   r   r   r   Úabcdr   )ÚkeyZcol1Zcol2rS   r   r   r   r   r   r
   )r   Úlistr8   r9   ÚastypeÚobjectr   r   Ú	set_indexr)   r+   Úrange)r,   r   r/   r   r   r   Ú#test_aggregate_numeric_object_dtype�   s0    ÿþÿþÿþÿþrY   )rD   c                 C   sx   t dgdd�j ¡ }tdg|dœƒ}| d¡ d| i¡}tddgitdgdd�d	�}|d  |j¡|d< t	 
||¡ d S )
Nr   Úcategoryr>   iÍ  )r   r   r   r   r#   r%   )r   ÚcatZ
as_orderedr   r   Zaggr   rU   r?   r)   r+   )rD   Zdsr,   r   r/   r   r   r   Ú%test_aggregate_categorical_lost_index¨   s    r\   r?   )ÚInt64ZInt32ZFloat64ZFloat32Úbooleanc                 C   s„  | dkrd}n| dkrd}nd}t ddg||d gdœƒ}|d	  | ¡|d	< | d
¡}| ¡ }|jd d…  d
¡}t ||¡ | ¡ }|jdd …  d
¡}t ||¡ |jdd�}t d	t	j
gi|j| d�}	t ||	¡ |jdd�}
t |
|	¡ t g d¢|t	j
|d gdœƒ}|d	  | ¡|d	< | d
¡}| ¡ }t ||¡ | ¡ }t ||¡ |jdd�}t ||	¡ |jdd�}t ||	¡ d S )Nr]   l   ².¿Dÿ²3 r^   r   g      @r
   r	   )ÚidÚtsr`   r_   r   r=   )r&   r?   )r
   r
   r
   éd   )r   rU   r   r   ZilocrW   r)   r+   r   r4   ZNAr&   )r?   r`   r,   r-   r   r/   Zres_maxZexpected_maxZresult2Z	expected2Zres_max2Zdf2Zgb2Zresult3Zres_max3Zresult4Zres_max4r   r   r   Útest_groupby_min_max_nullable¶   s<    

rb   )Únumpyr8   ZpytestZpandas._libs.tslibsr   Zpandasr4   r   r   r   Zpandas._testingZ_testingr)   Zpandas.core.apir   r   r0   r<   rB   rC   ÚmarkZparametrizerP   rQ   rY   Ústrr\   rb   r   r   r   r   Ú<module>   s(   !

