a
    Pf                     @   sH   d dl Zd dlZd dlmZ dd Zdd Zdd Z	dd	 Z
d
d ZdS )    Nc                  C   s   t g dg ddd} d}tjt|d* | jdgdd	d
d }W d    n1 s`0    Y  d}tjt|d* | jdgdd	dd }W d    n1 s0    Y  t|| d S )N)ZAliceZBobZCarl)      r   )nameager   7DataFrameGroupBy.apply operated on the grouping columnsmatchr   FZ
group_keysc                 S   s   | S N groupr   r   _/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/groupby/test_apply_mutate.py<lambda>       z$test_group_by_copy.<locals>.<lambda>c                 S   s   |   S r
   )copyr   r   r   r   r      r   )	pd	DataFrameZ	set_indextmassert_produces_warningDeprecationWarninggroupbyapplyassert_frame_equal)dfmsgZgrp_by_same_valueZgrp_by_copyr   r   r   test_group_by_copy   s$    ""r   c               	   C   s*  t dgd dgd  dgd dgd  dgd  d	gd  dgd  dgd  dgd  d
d tddD tjdjdddd} dd }dd }d}tjt	|d  | 
d|}W d    n1 s0    Y  tjt	|d  | 
d|}W d    n1 s0    Y  t|| d S )Na   b   c   defc                 S   s   g | ]}d | qS )gr   ).0xr   r   r   
<listcomp>*   r   z&test_mutate_groups.<locals>.<listcomp>      d      )size)cat1cat2Zcat3valc                 S   s,   |   } | jjdd| d< | dd  S Nmin)methodrankr0   )r   r1   r5   r   r3   r(   r   r   r   f_copy/   s    z"test_mutate_groups.<locals>.f_copyc                 S   s$   | j jdd| d< | dd  S r2   )r1   r5   r   r3   r6   r   r   r   	f_no_copy4   s    z%test_mutate_groups.<locals>.f_no_copyr   r   r/   )r   r   rangenprandomZdefault_rngZintegersr   r   r   r   r   assert_series_equal)r   r7   r8   r   Z
grpby_copyZgrpby_no_copyr   r   r   test_mutate_groups   s6    .0r=   c                  C   s   t g dtdd} d}tjt|d( | jdddd	d
 }W d    n1 sX0    Y  tjt|d( | jddddd
 }W d    n1 s0    Y  t|| d S )N)	r*   r*   r*   r"   r"   r"      r>   r>   	   )keyvaluer   r   r@   Tr	   c                 S   s   | d d  j S r
   r@   r6   r   r   r   r   H   r   z/test_no_mutate_but_looks_like.<locals>.<lambda>c                 S   s   | j S r
   rB   r6   r   r   r   r   J   r   )	r   r   r9   r   r   r   r   r   r<   )r   r   Zresult1Zresult2r   r   r   test_no_mutate_but_looks_like@   s    66rC   c                 C   s   t g dg dd}dd }d}tjt||  d& |jdgd	d
|}W d    n1 sb0    Y  t jg dt j	g ddd}t
|| d S )N)ArD   rD   BrE   rE   )r*   r"   r>         r    )col1col2c                 S   s   d| j | jd df< | jS )Nr   rI   )locindexrI   r6   r   r   r   fnT   s    z-test_apply_function_with_indexing.<locals>.fnr   )r   Zraise_on_extra_warningsrH   F)Zas_index)r*   r"   r   rF   rG   r   ))r   r   )r   r*   )r   r"   )r*   r>   )r*   rF   )r*   rG   rI   )rL   r   )r   r   r   r   r   r   r   ZSeries
MultiIndexfrom_tuplesr<   )Zwarn_copy_on_writer   rM   r   resultexpectedr   r   r   !test_apply_function_with_indexingN   s"    4rR   c                  C   s   t jg dg dg dg dg dg ddt jg dd} dd }d}tjt|d | jd	d	d
}W d    n1 s~0    Y  ||}t jg dg dg dgt jg dd}t	|| d S )N)r*   r"   r>   )CjulianrE   geoffreyrD   rU   rE   rU   rD   rW   rT   rW   )rX   rZ   rY   rV   rS   r[   )columnsc                 S   s&   | j d d }| jdd| d|f< | S )Nr   r*   )axissum)r\   r^   )groupedr   r   r   r   
add_column~   s    z8test_apply_mutate_columns_multiindex.<locals>.add_columnz+DataFrame.groupby with axis=1 is deprecatedr   r*   )levelr]   )r*   r*   r*   r>   r*   r*   r*   r>   )r"   r"   r"   r    r"   r"   r"   r    )r>   r>   r>   r?   r>   r>   r>   r?   ))rW   rD   rW   )rW   rE   rW   )rW   rT   rW   )rW   r^   rW   )rU   rD   rU   )rU   rE   rU   )rU   rT   rU   )rU   r^   rU   )
r   r   rN   rO   r   r   FutureWarningr   r   r   )r   r`   r   gbrP   rQ   r   r   r   $test_apply_mutate_columns_multiindexg   s6    ,
rd   )numpyr:   Zpandasr   Zpandas._testingZ_testingr   r   r=   rC   rR   rd   r   r   r   r   <module>   s   #