U
    NZf                     @   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-nbcvw55c/pandas/tests/groupby/test_size.py	test_size   s    r      )Zmarksc           	         s    fddt  D }|r.dd | D }t|dd}|rF| }t|jrttdd  D st|j	t
j|_| 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       int64)dtypec                 s   s   | ]}|d kV  qd S r   r   )r   xr   r   r   r   '   s     z#test_size_axis_1.<locals>.<genexpr>)r   Zaxissortdropna)dictfromkeysitemsr   Z
sort_indextmZis_integer_dtypeindexanyastypenpint_r
   r   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>4       z test_size_sort.<locals>.<lambda>F)Zcheck_names)
r   r*   randomchoicelistr
   r   applyr&   r,   )r!   r   r   leftrightr   r   r   test_size_sort/   s    r@   c                  C   s<   t ddgd} tdtg ddd}t| d | d S )Nr   r   r3   r   namer   r'   )r   r   r   r&   r,   r
   r   )r   outr   r   r   test_size_series_dataframe8   s    rE   c                  C   sB   t dd d gi} | d }tdtg ddd}t|| d S )Nr   r   rA   rC   )r   r
   r   r   r   r&   r,   )r   r   r.   r   r   r   test_size_groupby_all_null?   s    rF   c                  C   s>   t dgtdgdddd} | jdd}| }t||  d S )Nr   2000r   D)rB   freq)r'   )level)r   r   r
   r   r&   r,   )Zsergrpr   r   r   r   test_size_period_indexH   s    rL   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   r3   category)rM   r   r   )r   r)   r
   r   Z	set_indexrenamer&   Zassert_equal)rM   r   r   r.   r   r   r   test_size_on_categoricalP   s    " rQ   )Znumpyr*   ZpytestZpandasr   r   r   r   Zpandas._testingZ_testingr&   markZparametrizer   paramZxfailr/   r@   rE   rF   rL   rQ   r   r   r   r   <module>   s.   






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