o
    i/                     @   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g dg d	g d
g dejg d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J qd S )Nr   )groupbysizelen)dfr   groupedresultkeygroup r   Y/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_size.py	test_size   s
   r   )r   r   r   r   )r      r   r   )r   r   r   r   )r   NNN)NNNN)marksc           	         sl    fddt  D }|rdd | D }t|}|r!| }| 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 ur||qS r   r   )r   r   r   r   r   r   r   #   s    )r   axissortdropna)	dictfromkeysitemsr   
sort_indexr
   r   tmassert_series_equal)	r   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   s   
 z test_size_sort.<locals>.<lambda>F)check_names)
r   np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   r.   int64namedtypeindex)r   r   r   r%   r&   r
   r   )r   outr   r   r   test_size_series_dataframe5   s   rD   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   rE   c                  C   s>   t dgtdgdddd} | jdd}| }t||  d S )Nr   2000r   D)r?   freq)rB   )level)r   r   r
   r   r%   r&   )sergrpr   r   r   r   test_size_period_indexE   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 g dg d	g d
g dgg dd}|d d|d< | rM|ddgd d }t|| d S )Nr      r   r   r.   category)rM   )r   r   r   )r   rN   r   )rN   r   r   )rN   rN   r   )r   r   r   r   )r   astyper
   r   	set_indexrenamer%   assert_equal)rM   r   r   r)   r   r   r   test_size_on_categoricalM   s    rT   )numpyr5   pytestpandasr   r   r   r   pandas._testing_testingr%   markparametrizer   paramxfailr*   r<   rD   rE   rL   rT   r   r   r   r   <module>   s0    


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