o
    Û­j1%  ã                
   @   sD  d dl Zd dlZd dlZd dlmZ ej 	dd g d¢gddggdg gdg d¢gdd	d
ggdg gg¡dd„ ƒZ
dd„ Zejj	dd dgg d¢gg d¢g d¢ged ddƒg d¢gd dhg d¢ggg d¢d�dd„ ƒZdd„ Zdd„ Zdd„ Zej 	dd g d¢gg d¢g d¢geddƒeddƒfg d¢gg¡dd „ ƒZd!d"„ Ze ¡ d#d$„ ƒZd%d&„ Zd'd(„ Zej 	d)g d*¢¡ej 	d+d,d-g¡ej 	d.d/d0g¡d1d2„ ƒƒƒZej 	d3g d4¢¡ej 	d5g d4¢¡ej 	d6g d7¢¡d8d9„ ƒƒƒZd:d;„ Zej 	d6g d<¢¡d=d>„ ƒZe ¡ d?d@„ ƒZdAdB„ ZdCdD„ Zej 	dEeej ej!ej"g¡dFdG„ ƒZ#dHdI„ Z$dS )Jé    Nzarg, expected_rows)r   é   é   é   é   éÿÿÿÿ)é   r   é   éþÿÿÿr   é   iúÿÿÿc                 C   ó$   |j | }| j| }t ||¡ d S ©N©Ú_positional_selectorÚilocÚtmÚassert_frame_equal©Úslice_test_dfÚslice_test_groupedÚargÚexpected_rowsÚresultÚexpected© r   ú_/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_indexing.pyÚtest_int
   s   

r   c                 C   s.   |j ddd… }| jg d¢ }t ||¡ d S )Nr   r   r   ©r   r   r   r   r   ©r   r   r   r   r   r   r   Ú
test_slice   s   r   r   ©r   r   r   ©r   r   r   r   r   r   r   )ÚlistÚnegativeÚrangeÚset)Úidsc                 C   r   r   r   r   r   r   r   Ú	test_list%   s   

r&   c                 C   s(   |j d }| jg d¢ }t ||¡ d S )Nr   r    r   r   r   r   r   Ú	test_ints<   s   
r'   c                 C   s4   |j d d…dd …f }| jg d¢ }t ||¡ d S )Nr   r	   ©r   r   r   r   r   r
   r   r   r   r   r   r   Útest_slicesD   s   r)   c                 C   s2   |j dddd …f }| jg d¢ }t ||¡ d S )Nr   r   r	   r(   r   r   r   r   r   Útest_mixL   s   r*   r(   c                 C   s.   | j ddd�j| }| j| }t ||¡ d S )NÚGroupF)Úsort)Úgroupbyr   r   r   r   )r   r   r   r   r   r   r   r   Útest_as_indexT   s   

r.   c                  C   sÀ   t jddgddgddgddgddggdd	gd
�} | jddd�}|jdd… }t jddgddggdd	gddgd�}t ||¡ |jd }t jddgddgddggdd	gg d¢d�}t ||¡ d S )NÚar   r   r   Úbr   r   ÚAÚB©ÚcolumnsF©Úas_index©r4   Úindex)r   r   )r   r   r   )ÚpdÚ	DataFramer-   r   r   r   )ÚdfÚgroupedr   r   r   r   r   Útest_doc_examplesd   s   &ÿ$
 ÿr=   c                     sŠ   t j d¡‰ d} d}tjd| dd�}dd„ t|ƒD ƒ}i }|D ]#}|ˆ  d	d
¡ }‡ fdd„|d |… D ƒ}|jdd„ d� |||< q|S )Nr   éd   é   Ú20130101ÚD)ÚperiodsÚfreqc                 S   s   g | ]}d |› �‘qS )zitem r   ©Ú.0Úir   r   r   Ú
<listcomp>   ó    z#multiindex_data.<locals>.<listcomp>r   é   c                    s.   g | ]}|ˆ   d d¡d ˆ   d d¡d f‘qS )r   i'  r>   )Úintegers)rE   Úitem©Úrngr   r   rG   „   s     ÿÿc                 S   s   | d S )Nr   r   ©Úxr   r   r   Ú<lambda>ˆ   s    z!multiindex_data.<locals>.<lambda>)Úkey)ÚnpÚrandomÚdefault_rngr9   Ú
date_ranger#   rJ   r,   )ÚndatesÚnitemsÚdatesÚitemsÚdataÚdateÚnitems_for_dateÚlevelsr   rL   r   Úmultiindex_datay   s   

þ
r^   c                 C   sV   i }| D ]}| | D ]}|d |d dœ|||d f< q
qt jj|dd�}d|j_|S )Nr   r   )r1   r2   r   r8   )Úorient)ÚDateÚItem)r9   r:   Ú	from_dictr8   Únames)rZ   Úrowsr[   Úlevelr;   r   r   r   Ú_make_df_from_dataŽ   s    ÿrf   c                    sL   t ˆ ƒ}|jddd� tddƒ¡}‡ fdd„ˆ D ƒ}t |ƒ}t ||¡ d S )Nr`   Fr5   r   éýÿÿÿc                    s   i | ]}|ˆ | d d… “qS )r   rg   r   )rE   r[   ©r^   r   r   Ú
<dictcomp>ž   s    z#test_multiindex.<locals>.<dictcomp>)rf   r-   ÚnthÚslicer   r   )r^   r;   r   Úslicedr   r   rh   r   Útest_multiindex™   s
   rm   r   )r   r   é   iè  r   éûÿÿÿiâÿÿÿiüÿÿÚmethodÚheadÚtailÚ	simulatedTFc           	         s   d‰ d‰‡ fdd„t ˆƒD ƒ‡ fdd„t ˆƒD ƒdœ}t |¡}|jddd	�}| d
kr-| nˆ|  ‰|dkrV|jd | … }|rP‡ ‡fdd„t ˆƒD ƒ}|j| }n(| | ¡}n"|j|  d … }|rs‡ ‡‡fdd„t ˆƒD ƒ}|j| }n| | ¡}t 	||¡ d S )Nr>   rn   c                    s$   g | ]}t ˆ ƒD ]}d |› �‘qqS )úgroup ©r#   ©rE   ÚjÚg©Ún_groupsr   r   rG   ­   s
    ÿ
ÿz.test_against_head_and_tail.<locals>.<listcomp>c                    s*   g | ]}t ˆ ƒD ]
}d |› d|› �‘qqS )rt   z row ru   rv   ry   r   r   rG   °   s    ýþÿ©ÚgroupÚvaluer|   Fr5   r   rq   c                    s:   g | ]}t ˆ ƒD ]}|ˆ  | ˆ ˆ k r|ˆ  | ‘qqS r   ru   ©rE   rw   rF   )rz   Ún_rows_per_groupr   r   rG   ¾   s    ý
ýc                    sF   g | ]}t ˆ ƒD ]}ˆ| ˆ ˆ  | d krˆ| ˆ ˆ  | ‘qqS ©r   ru   r~   ©rz   r   Úsizer   r   rG   Í   s    ýý)
r#   r9   r:   r-   r   r   rq   rr   r   r   )	r   rp   rs   rZ   r;   r<   r   Úindicesr   r   r�   r   Útest_against_head_and_tail¤   s8   
ÿ
þü

þþ
r„   Ústart)Nr   r   é
   r   iöÿÿÿÚstopÚstep)Nr   r   c           	      C   sd   d}dg| t t|ƒƒdœ}t |¡}|jddd�}|j| ||… }|j| ||… }t ||¡ d S )Nrn   zgroup 0r{   r|   Fr5   )	r!   r#   r9   r:   r-   r   r   r   r   )	r…   r‡   rˆ   Ún_rowsrZ   r;   r<   r   r   r   r   r   Útest_against_df_ilocÛ   s   
þ
rŠ   c                  C   sV   t jg d¢g d¢d�} | jdd�}|jdd… }t jddgd	d
gd�}t ||¡ d S )N©r   r   r   r   r   )r/   r/   r/   r0   r0   )r8   r   )re   r   r   r   r/   r0   )r9   ÚSeriesr-   r   r   Úassert_series_equal)Úserr<   r   r   r   r   r   Útest_seriesï   s
   r�   r‹   c                 C   s&  dd„ t dƒD ƒ}|dd„ t dƒD ƒ7 }|dd„ t dƒD ƒ7 }tj|dd	gd
�}|jddd�}|jd d | … }dd„ t dd| ƒD ƒ}|dd„ t dd| ƒD ƒ7 }|dd„ t dd| ƒD ƒ7 }dd„ t dd| ƒD ƒ}|dd„ t dd| ƒD ƒ7 }|dd„ t dd| ƒD ƒ7 }tj|dd	g|d�}t ||¡ d S )Nc                 S   ó   g | ]	}d d |› �g‘qS rN   r   rD   r   r   r   rG   ü   ó    ztest_step.<locals>.<listcomp>r   c                 S   r�   ©Úyr   rD   r   r   r   rG   ý   r‘   r   c                 S   r�   ©Úzr   rD   r   r   r   rG   þ   r‘   r   r1   r2   r3   Fr5   c                 S   r�   rN   r   rD   r   r   r   rG     r‘   r   c                 S   r�   r’   r   rD   r   r   r   rG     r‘   c                 S   r�   r”   r   rD   r   r   r   rG     r‘   c                 S   ó   g | ]}d | ‘qS r€   r   rD   r   r   r   rG   	  ó    c                 S   r–   )r   r   rD   r   r   r   rG   
  r—   c                 S   r–   )é	   r   rD   r   r   r   rG     r—   r7   )r#   r9   r:   r-   r   r   r   )rˆ   rZ   r;   r<   r   r8   r   r   r   r   Ú	test_stepù   s   r™   c                   C   s   t jg d¢g d¢gg d¢d�S )N)r   r   r   r   r   r   r
   )r   r   r   r   r   r   r   )r1   r2   ÚCrA   ÚEÚFÚGr3   )r9   r:   r   r   r   r   Úcolumn_group_df  s   þrž   c                 C   sz   d}t jt|d�� | j| jd dd�}W d   ƒ n1 sw   Y  |jdd… }| jd d …ddgf }t  ||¡ d S )NzDataFrame.groupby with axis=1©Úmatchr   )Úaxisr   r   )r   Úassert_produces_warningÚFutureWarningr-   r   r   r   )rž   Úmsgrx   r   r   r   r   r   Útest_column_axis  s   ÿr¥   c                  C   s`   t  dd„ dD ƒ¡} ddg}|  | jdk ¡| D ]\}}t |jt  |¡¡ d|jvs-J ‚qd S )Nc                 S   s   i | ]}|t d ƒ“qS )r†   ru   )rE   Úkr   r   r   ri   &  rH   z(test_columns_on_iter.<locals>.<dictcomp>ÚABCr1   r2   r   rš   )r9   r:   r-   r1   r   Úassert_index_equalr4   ÚIndex)r;   ÚcolsÚ_Údgr   r   r   Útest_columns_on_iter$  s   þr­   Úfuncc                 C   sn   t  ddgddgddgdœ¡}| d¡| g d¢ƒ  ¡ }t jg d¢gg d¢t jdgdd	�d
�}t ||¡ d S )Nr   r   r   r�   )r1   r2   rš   rš   )r1   r2   r1   )ç      ø?g      @r¯   )Únamer7   )r9   r:   r-   Úmeanr©   r   r   )r®   r;   r   r   r   r   r   Útest_groupby_duplicated_columns/  s   ýÿÿr²   c                  C   sr   t jg d¢g d¢g d¢dœd�} | jddgd�}d	}tjt|d
�� | d¡ W d   ƒ d S 1 s2w   Y  d S )N)Úa1Úa2N)Úb1Úb2rµ   )r   r   r   )r1   r2   Úval)rZ   r1   r2   )Úbyz('a2', 'b1')rŸ   )r´   rµ   )r9   r:   r-   ÚpytestÚraisesÚKeyErrorÚ	get_group)r;   Úgrpsr¤   r   r   r   Ú#test_groupby_get_nonexisting_groups@  s   ýÿ"ÿr¾   )%ÚnumpyrR   r¹   Úpandasr9   Úpandas._testingÚ_testingr   ÚmarkÚparametrizer   r   r#   r&   r'   r)   r*   rk   r.   r=   Úfixturer^   rf   rm   r„   rŠ   r�   r™   rž   r¥   r­   r!   r©   rŒ   Úarrayr²   r¾   r   r   r   r   Ú<module>   sx   


úþ
üø

ýþ

4




