o
    ҷh                     @   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   T/var/www/html/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   sX   t ddgddgd} tjtdd | d  W d    d S 1 s%w   Y  d S )Nr      r   r   zMust specify a fillmatchr   )r   pytestraises
ValueErrorr   fillna)r   r   r   r   test_ffill_missing_arguments'   s   "r3   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   z3DataFrameGroupBy.fillna with 'method' is deprecatedr-   methodr   )	r   r%   arrayr   r   assert_produces_warningFutureWarningr2   r'   )r7   r   r   grpmsgr   r   r   r   test_fillna_with_string_dtype.   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 sw   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   r6   z+DataFrame.groupby with axis=1 is deprecated)r   r%   
MultiIndexfrom_productr   r   r   r   r   r9   r:   r   r2   Tr'   )r   r<   r   r   r   r   r   test_fill_consistency<   sR   rL   r7   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   rO   rO   r   rO   T)dropr   r   r   	group_col)r$   rM   )limit)rO   r   r   rO   rO   rO   )rO   r   r   rO   r   r   )r   r   rO   rO   rO   rO   )r   r   rO   r   r   rO   ))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'   )rM   r7   rN   df_without_nan_rowsridxr   group_bgroupedr   expected_rowsr   r   r   r   test_ffill_handles_nan_groupsm   s(   r^   zmin_count, valuer+   )rO   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   rd   r   )rC   )r   r   r   r   r   r   r   r'   )r   re   valuer   r   r   r   r   r   test_min_count   s   ("rg   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    )         rc   r   r   r   ))r	   r+   )r	   r   )r   r   r   r   indicesr8   )r   gr   r   r   r   r   test_indices_with_missing   s
    rm   )numpyr   r/   pandasr%   r   r   r   pandas._testing_testingr   markparametrizer   r*   r3   r=   rL   r^   r   rg   rm   r   r   r   r   <module>   s.    


1!