o
    Û­j”  ã                   @   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 s0w   Y  d}tjt|d�� | jdgdd	� dd„ ¡}W d   ƒ n1 sVw   Y  t ||¡ d S )N)ÚAliceÚBobÚCarl)é   é   r   )ÚnameÚager   ú7DataFrameGroupBy.apply operated on the grouping columns©Úmatchr   F©Ú
group_keysc                 S   s   | S ©N© ©Úgroupr   r   úc/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_apply_mutate.pyÚ<lambda>   s    z$test_group_by_copy.<locals>.<lambda>c                 S   s   |   ¡ S r   )Úcopyr   r   r   r   r      s    )	ÚpdÚ	DataFrameÚ	set_indexÚtmÚassert_produces_warningÚFutureWarningÚgroupbyÚapplyÚassert_frame_equal)ÚdfÚmsgÚgrp_by_same_valueÚ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 shw   Y  tjt	|d�� |  
d¡ |¡}W d   ƒ n1 s‡w   Y  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Úcat2Úcat3Úvalc                 S   s,   |   ¡ } | jjdd�| d< |  d¡d  ¡ S ©NÚmin)ÚmethodÚrankr6   )r   r8   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 r9   )r8   r<   r   r:   r=   r   r   r   Ú	f_no_copy4   s   z%test_mutate_groups.<locals>.f_no_copyr	   r
   r5   )r   r   ÚrangeÚnpÚrandomÚdefault_rngÚintegersr   r   r   r   r   Úassert_series_equal)r   r>   r?   r   Ú
grpby_copyÚgrpby_no_copyr   r   r   Útest_mutate_groups   s:   ÿþýüûúöÿÿÿrH   c                  C   s¸   t  g d¢tdƒdœ¡} d}tjt|d�� | jddd� d	d
„ ¡}W d   ƒ n1 s,w   Y  tjt|d�� | jddd� dd
„ ¡}W d   ƒ n1 sOw   Y  t ||¡ d S )N)	r0   r0   r0   r(   r(   r(   é   rI   rI   é	   )ÚkeyÚvaluer	   r
   rK   Tr   c                 S   s   | d d … j S r   ©rK   r=   r   r   r   r   H   s    z/test_no_mutate_but_looks_like.<locals>.<lambda>c                 S   s   | j S r   rM   r=   r   r   r   r   J   s    )	r   r   r@   r   r   r   r   r   rE   )r   r   Úresult1Úresult2r   r   r   Útest_no_mutate_but_looks_like@   s   ÿÿrP   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 s1w   Y  t jg d¢t j 	g d¢¡dd�}t 
||¡ d S )N)ÚArQ   rQ   ÚBrR   rR   )r0   r(   rI   é   é   r&   )Úcol1Úcol2c                 S   s   d| j | jd df< | jS )Nr   éÿÿÿÿrV   )ÚlocÚindexrV   r=   r   r   r   ÚfnT   s   z-test_apply_function_with_indexing.<locals>.fnr	   )r   Úraise_on_extra_warningsrU   F)Úas_index)r0   r(   r   rS   rT   r   ))r   r   )r   r0   )r   r(   )r0   rI   )r0   rS   )r0   rT   rV   )rY   r   )r   r   r   r   r   r   r   ÚSeriesÚ
MultiIndexÚfrom_tuplesrE   )Úwarn_copy_on_writer   rZ   r   ÚresultÚexpectedr   r   r   Ú!test_apply_function_with_indexingN   s$   ÿÿýÿûrc   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?w   Y  | |¡}t jg d¢g d¢g d¢gt j g d¢¡d�}t 	||¡ d S )N)r0   r(   rI   )©ÚCÚjulian©rR   Úgeoffrey©rQ   rf   ©rR   rf   ©rQ   rh   ©re   rh   )ri   rk   rj   rg   rd   rl   )Úcolumnsc                 S   s&   | j d d }| jdd�| d|f< | S )Nr   r0   )ÚaxisÚsum)rm   ro   )Úgroupedr   r   r   r   Ú
add_column~   s   z8test_apply_mutate_columns_multiindex.<locals>.add_columnz+DataFrame.groupby with axis=1 is deprecatedr
   r0   )Úlevelrn   )r0   r0   r0   rI   r0   r0   r0   rI   )r(   r(   r(   r&   r(   r(   r(   r&   )rI   rI   rI   rJ   rI   rI   rI   rJ   ))rh   rQ   rh   )rh   rR   rh   )rh   re   rh   )rh   ro   rh   )rf   rQ   rf   )rf   rR   rf   )rf   re   rf   )rf   ro   rf   )
r   r   r^   r_   r   r   r   r   r   r   )r   rq   r   Úgbra   rb   r   r   r   Ú$test_apply_mutate_columns_multiindexg   s8   úÿ÷ÿ
ýÿñrt   )ÚnumpyrA   Úpandasr   Úpandas._testingÚ_testingr   r"   rH   rP   rc   rt   r   r   r   r   Ú<module>   s    #