U
    sVch                     @   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   sf   t dddgdddgdd} | jdgd	d
dd }| jdgd	d
dd }t|| d S )NZAliceZBobZCarl      )nameager   r   FZ
group_keysc                 S   s   | S N groupr   r   J/tmp/pip-unpacked-wheel-xj8nt62q/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groupbyapplytmassert_frame_equal)dfZ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jdddd} dd }dd }| d|}| d|}t	|| d S )Na   b   c   defc                 S   s   g | ]}d | qS )gr   ).0xr   r   r   
<listcomp>%   s     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rankr*   )r   r+   r/   r   r-   r"   r   r   r   f_copy*   s    z"test_mutate_groups.<locals>.f_copyc                 S   s$   | j jdd| d< | dd  S r,   )r+   r/   r   r-   r0   r   r   r   	f_no_copy/   s    z%test_mutate_groups.<locals>.f_no_copyr)   )
r   r   rangenprandomrandintr   r   r   assert_series_equal)r   r1   r2   Z
grpby_copyZgrpby_no_copyr   r   r   test_mutate_groups   s0    r8   c                  C   sf   t dddddddddg	tdd} | jdddd	d
 }| jddddd
 }t|| d S )Nr$   r      	   )keyvaluer;   Tr   c                 S   s   | d d  j S r   r;   r0   r   r   r   r   ?   r   z/test_no_mutate_but_looks_like.<locals>.<lambda>c                 S   s   | j S r   r=   r0   r   r   r   r   @   r   )r   r   r3   r   r   r   r7   )r   Zresult1Zresult2r   r   r   test_no_mutate_but_looks_like8   s    &r>   c               
   C   s   t ddddddgddddddgd	} d
d }| jdgdd|}t jddddddgt jddddddgdd}t|| d S )NABr$   r   r9         r   )col1col2c                 S   s   d| j | jd df< | jS )Nr   rD   )locindexrD   r0   r   r   r   fnJ   s    z-test_apply_function_with_indexing.<locals>.fnrC   F)Zas_indexr   )r   r   )r   r$   )r   r   )r$   r9   )r$   rA   )r$   rB   rD   )rG   r   )	r   r   r   r   ZSeries
MultiIndexfrom_tuplesr   r7   )r   rH   resultexpectedr   r   r   !test_apply_function_with_indexingD   s     rM   c                  C   s   t jdddgdddgdddgdddgdddgdddgdt jddddd	d
gd} dd }| jddd|}t jddddddddgddddddddgddddddddggt jddddddddgd}t|| d S )Nr$   r   r9   )Cjulianr@   geoffreyr?   rP   r@   rP   r?   rR   rO   rR   rS   rU   rT   rQ   rN   rV   )columnsc                 S   s&   | j d d }| jdd| d|f< | S )Nr   r$   )axissum)rW   rY   )Zgroupedr   r   r   r   
add_columnp   s    z8test_apply_mutate_columns_multiindex.<locals>.add_column)levelrX   r   r:   )rR   r?   rR   )rR   r@   rR   )rR   rO   rR   )rR   rY   rR   )rP   r?   rP   )rP   r@   rP   )rP   rO   rP   )rP   rY   rP   )r   r   rI   rJ   r   r   r   r   )r   rZ   rK   rL   r   r   r   $test_apply_mutate_columns_multiindexY   s\    r\   )Znumpyr4   Zpandasr   Zpandas._testingZ_testingr   r   r8   r>   rM   r\   r   r   r   r   <module>   s   !