o
    Û­jî  ã                   @   s"  d dl Zd dlZd dlZd dlmZmZmZ d dlm	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g d¢fdg d¢fg¡dd„ ƒZdd„ Zej dddg¡ej dddg¡ej dddg¡dd„ ƒƒƒZej ddejfdg¡ej dg d¢¡dd„ ƒƒZd d!„ ZdS )"é    N)Ú	DataFrameÚIndexÚ
date_rangeÚfuncÚffillÚbfillc                 C   sr   t g d¢dtjtjgg d¢gtg d¢dd�d�}| dg¡d	d
g }t|| ƒƒ j}td	d
gdd�}t ||¡ d S )N)é   ç      ð?g      ð¿r   )r   g       @g       À)ÚtypeÚaÚbÚidx©Úname©Úcolumnsr
   r   r   )	r   ÚnpÚnanr   ÚgroupbyÚgetattrr   ÚtmÚassert_index_equal)r   ÚdfÚ
df_groupedÚresultÚexpected© r   ú^/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_missing.pyÚ.test_groupby_column_index_name_lost_fill_funcs   s   þr   c                 C   s†   t g d¢g d¢dœƒ}t ddtjdgiƒ}tj||gdd�jdgd�}t dd	gd
tjgddggddgd�}t|| ƒƒ }t ||¡ d S )N)r   é   é   )Úfield1Úfield2r!   r   r    )Úaxisr"   )Úbyr	   r   g      @r   )	r   r   r   ÚpdÚconcatr   r   r   Úassert_frame_equal)r   Údf1Údf2r   r   r   r   r   r   Ú(test_groupby_fill_duplicate_column_names   s   ÿr*   c               	   C   sš   t ddgddgdœƒ} d}tjt|d��/ tjtdd�� |  d¡ ¡  W d   ƒ n1 s.w   Y  W d   ƒ d S W d   ƒ d S 1 sFw   Y  d S )Nr   é   ©r   r   ú%DataFrameGroupBy.fillna is deprecated©ÚmatchzMust specify a fillr   )	r   r   Úassert_produces_warningÚFutureWarningÚpytestÚraisesÚ
ValueErrorr   Úfillna)r   Úmsgr   r   r   Útest_ffill_missing_arguments'   s   ÿÿ"ÿr7   zmethod, expected)Nr   r   )r   r   Nc                 C   sŽ   t tjg d¢dd�g d¢dœƒ}| d¡}d}tjt|d�� |j| d	�}W d   ƒ n1 s/w   Y  t d
tj|dd�iƒ}t ||¡ d S )N)Nr   NÚstring)Údtype)r   r   r   r,   r   r-   r.   ©Úmethodr   )	r   r%   Úarrayr   r   r0   r1   r5   r'   )r;   r   r   Úgrpr6   r   r   r   r   Útest_fillna_with_string_dtype0   s    
ÿr>   c                  C   s2  t tj ddgtddƒg¡tddgdd�d	�} tjd
tjtjdtjtjdtjtjdtjg| d< tjdtjtjdtjtjdtjtjdtjg| d< d}tj	t
|d�� | jddd�jdd�}W d   ƒ n1 sfw   Y  d}tj	t
|d�� | jjdd
d�jdd�j}W d   ƒ n1 sŒw   Y  t ||¡ d S )NÚvalue1Úvalue2z
2014-01-01z
2014-01-06Ú1Ú2Úidr   )Úindexr   r   é   r+   é   r   é!   r    é,   z5The 'axis' keyword in DataFrame.groupby is deprecatedr.   r   )Úlevelr#   r   r:   z+DataFrame.groupby with axis=1 is deprecated)r   r%   Ú
MultiIndexÚfrom_productr   r   r   r   r   r0   r1   r   r5   ÚTr'   )r   r6   r   r   r   r   r   Útest_fill_consistency>   sR   ÿüôôÿÿrM   r;   ÚdropnaTFÚhas_nan_groupc              	   C   sæ   t ddgƒ}g d¢}| |¡jdd�}|rtjnd}t dgd |gd  ¡|d	< |jd	| d
�}t||ƒd d�}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢dœ}	|	 	|| |f¡}| |¡jdd�}
|
j
 t¡|
_
t ||
¡ d S )N)r   gš™™™™™¹?)r+   gš™™™™™É?)éÿÿÿÿr   rP   rP   r   rP   T)Údropr   r   r   Ú	group_col)r$   rN   )Úlimit)rP   r   r   rP   rP   rP   )rP   r   r   rP   r   r   )r   r   rP   rP   rP   rP   )r   r   rP   r   r   rP   ))r   TT)r   TF)r   FT)r   FF)r   TT)r   TF)r   FT)r   FF)r   ÚreindexÚreset_indexr   r   r%   ÚSeriesr   r   Úgetr   ÚastypeÚobjectr   r'   )rN   r;   rO   Údf_without_nan_rowsÚridxr   Úgroup_bÚgroupedr   Úexpected_rowsr   r   r   r   Útest_ffill_handles_nan_groupso   s(   ør_   zmin_count, valuer+   )rP   r	   )ÚfirstÚlastÚmaxÚminc                 C   sp   t dgd dtjtjgtjgd dœƒ}t| d¡| ƒ|d�}t |gtjgdœtdgdd�d�}t ||¡ d S )	Nr   r   ©r   r   Úcr   )Ú	min_count)r   re   r   )rD   )r   r   r   r   r   r   r   r'   )r   rf   Úvaluer   r   r   r   r   r   Útest_min_count“   s   ("rh   c                  C   s^   t ddtjgg d¢g d¢dœƒ} |  ddg¡}|j}t dg¡t dg¡dœ}||ks-J ‚d S )	Nr   )r+   r   r    )é   é   é   rd   r   r   r   ))r	   r+   )r	   r   )r   r   r   r   Úindicesr<   )r   Úgr   r   r   r   r   Útest_indices_with_missing�   s
    rn   )Únumpyr   r2   Úpandasr%   r   r   r   Úpandas._testingÚ_testingr   ÚmarkÚparametrizer   r*   r7   r>   rM   r_   r   rh   rn   r   r   r   r   Ú<module>   s.    

	ÿ
1!