U
    sVc                      @   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dddgfddddg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ddddgd d! Zd"d# ZdS )$    N)	DataFrameIndex
date_rangefuncffillbfillc                 C   sx   t dddgdtjtjgdddggtdddgd	d
d}|dgddg }t||  j}tddgd	d
}t|| d S )N         ?g      g       @g       typeabidxnamecolumns)	r   npnanr   groupbygetattrr   tmZassert_index_equal)r   df
df_groupedresultexpected r   E/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/groupby/test_missing.py.test_groupby_column_index_name_lost_fill_funcs   s    r   c                 C   s   t dddgdddg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 )Nr         )field1field2r    )axisr!   )byr	   g      @r   )	r   r   r   pdconcatr   r   r   assert_frame_equal)r   Zdf1Zdf2r   r   r   r   r   r   (test_groupby_fill_duplicate_column_names   s     r'   c               	   C   sB   t ddgddgd} tjtdd | d  W 5 Q R X d S )Nr      r   r   zMust specify a fill)matchr   )r   pytestZraises
ValueErrorr   fillna)r   r   r   r   test_ffill_missing_arguments'   s    r.   zmethod, expectedr   c                 C   s`   t tjd dd gdddddgd}|d}|j| d}t dtj|ddi}t|| d S )Nr   string)Zdtyper   r)   r   method)r   r$   arrayr   r-   r   r&   )r1   r   r   grpr   r   r   r   test_fillna_with_string_dtype.   s
    $
r4   c                  C   s   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< | jdddj	dd}| j
jdd
dj	ddj
}t|| d S )NZvalue1Zvalue2z
2014-01-01z
2014-01-0612idr   )indexr   r      r(      r   !   r   ,   r   )levelr"   r   r0   )r   r$   Z
MultiIndexZfrom_productr   r   r   r   r   r-   Tr   r&   )r   r   r   r   r   r   test_fill_consistency:   sF    r?   r1   dropnaTFhas_nan_groupc                 C   s.  t ddg}ddddddg}||jdd}|r8tjnd}td	gd
 |gd
  |d< |jd| d}t||d d}ddddddgddddddgddddddgddddddgddddddgddddddgddddddgddddddgd}	|		|| |f}||jdd}
|
j
t|
_
t||
 d S )N)r   g?)r(   g?r   r   T)Zdropr   r   r   Z	group_col)r#   r@   )limit))r   TT)r   TF)r   FT)r   FF)r   TT)r   TF)r   FT)r   FF)r   ZreindexZreset_indexr   r   r$   ZSeriesr   r   getr   Zastypeobjectr   r&   )r@   r1   rA   Zdf_without_nan_rowsZridxr   Zgroup_bZgroupedr   Zexpected_rowsr   r   r   r   test_ffill_handles_nan_groupsg   s(    rF   zmin_count, valuer(   )rB   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   rL   r   )r8   )r   r   r   r   r   r   r   r&   )r   rM   valuer   r   r   r   r   r   test_min_count   s    ("rO   c                  C   sb   t ddtjgdddgdddgd} | d	d
g}|j}tdgtdgd}||ks^td S )Nr   r(   r   r            rK   r   r   r   ))r	   r(   )r	   r   )r   r   r   r   indicesr2   AssertionError)r   gr   r   r   r   r   test_indices_with_missing   s
    $rV   )Znumpyr   r+   Zpandasr$   r   r   r   Zpandas._testingZ_testingr   markZparametrizer   r'   r.   r4   r?   rF   r   rO   rV   r   r   r   r   <module>   s.   

 
	-!