U
    c/                     @   s  d dl Zd dlZd dlmZmZmZmZ d dlm	Z
 ejdddddggdd Zejdd d d d gd dddgdd ddgd dddgejddddgejjd	gd
d Zejdddddggejdddgdd Zdd Zdd Zdd Zejdddgdd ZdS )    N)	DataFrameIndexPeriodIndexSeriesbyABc                 C   s:   | j |d}| }|D ]\}}|| t|kstqd S )Nr   )groupbysizelenAssertionError)dfr   groupedresultkeygroup r   B/tmp/pip-unpacked-wheel-g7fro6k3/pandas/tests/groupby/test_size.py	test_size   s    r      )Zmarksc           	         sl    fddt  D }|r.dd | D }t|}|rB| }| j |||d}| }t|| d S )Nc                    s$   i | ]  t  fd dD qS )c                 3   s   | ]}| kV  qd S Nr   ).0valuer   r   r   	<genexpr>!   s     z.test_size_axis_1.<locals>.<dictcomp>.<genexpr>)sum)r   r	   r   r   
<dictcomp>!   s      z$test_size_axis_1.<locals>.<dictcomp>c                 S   s   i | ]\}}|d k	r||qS r   r   )r   r   r   r   r   r   r   #   s       )r   Zaxissortdropna)	dictfromkeysitemsr   Z
sort_indexr
   r   tmassert_series_equal)	r   Zaxis_1r   r   r   countsexpectedr   r   r   r	   r   test_size_axis_1   s    r'   r   TFc                 C   s\   t tjddtdd}|j|| d }|j|| dd dd }tj	||d	d
 d S )N   )i     ABCcolumns)r   r   Cc                 S   s
   | j d S )Nr   )shape)ar   r   r   <lambda>1       z test_size_sort.<locals>.<lambda>F)Zcheck_names)
r   nprandomchoicelistr
   r   applyr#   r$   )r   r   r   leftrightr   r   r   test_size_sort,   s    r9   c                  C   s<   t ddgd} tdtg ddd}t| d | d S )Nr   r   r+   int64nameZdtypeindex)r   r   r   r#   r$   r
   r   )r   outr   r   r   test_size_series_dataframe5   s    r@   c                  C   sB   t dd d gi} | d }tdtg ddd}t|| d S )Nr   r:   r;   r=   )r   r
   r   r   r   r#   r$   )r   r   r&   r   r   r   test_size_groupby_all_null<   s    rA   c                  C   s>   t dgtdgdddd} | jdd}| }t||  d S )Nr   2000r   D)r<   freq)r>   )level)r   r   r
   r   r#   r$   )Zsergrpr   r   r   r   test_size_period_indexE   s    rG   as_indexc                 C   s   t ddgddggddgd}|d d|d< |jddg| d }t dddgdddgdddgdddggddd	gd}|d d|d< | r|ddgd	 d }t|| d S )
Nr      r   r   r+   category)rH   r   r   )r   Zastyper
   r   Z	set_indexrenamer#   Zassert_equal)rH   r   r   r&   r   r   r   test_size_on_categoricalM   s    " rL   )Znumpyr2   ZpytestZpandasr   r   r   r   Zpandas._testingZ_testingr#   markZparametrizer   paramZxfailr'   r9   r@   rA   rG   rL   r   r   r   r   <module>   s.   






	