a
    é´«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   s$   |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   úa/var/www/html/laksyashrimp/venv/lib/python3.9/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   s$   |j | }| j| }t ||¡ d S 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©Zas_index©r3   Ú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 ]F}|ˆ  d	d
¡ }‡ fdd„|d |… D ƒ}|jdd„ d� |||< q>|S )Nr   éd   é   Z20130101ÚD)Z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)rA   Úitem©Úrngr   r   rC   „   s   ÿc                 S   s   | d S )Nr   r   ©Úxr   r   r   Ú<lambda>ˆ   rD   z!multiindex_data.<locals>.<lambda>)Úkey)ÚnpÚrandomZdefault_rngr7   Z
date_ranger"   rF   r+   )ZndatesZnitemsÚdatesÚitemsÚdataÚdateZnitems_for_dateZlevelsr   rH   r   Úmultiindex_datay   s    

þ
rT   c                 C   sV   i }| D ]0}| | D ]"}|d |d dœ|||d f< qqt jj|dd�}d|j_|S )Nr   r   )r0   r1   r   r6   )Zorient)ÚDateZItem)r7   r8   Ú	from_dictr6   Únames)rR   ÚrowsrS   Úlevelr9   r   r   r   Ú_make_df_from_dataŽ   s    "rZ   c                    sL   t ˆ ƒ}|jddd� tddƒ¡}‡ fdd„ˆ D ƒ}t |ƒ}t ||¡ d S )NrU   Fr4   r   éýÿÿÿc                    s   i | ]}|ˆ | d d… “qS )r   r[   r   )rA   rS   ©rT   r   r   Ú
<dictcomp>ž   rD   z#test_multiindex.<locals>.<dictcomp>)rZ   r,   ZnthÚslicer   r   )rT   r9   r   Zslicedr   r   r\   r   Útest_multiindex™   s
    r_   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rZ| nˆ|  ‰|dkr¬|jd | … }|r ‡ ‡fdd„t ˆƒD ƒ}|j| }qð| | ¡}nD|j|  d … }|ræ‡ ‡‡fdd„t ˆƒD ƒ}|j| }n
| | ¡}t 	||¡ d S )Nr<   r`   c                    s$   g | ]}t ˆ ƒD ]}d |› �‘qqS )úgroup ©r"   ©rA   ÚjÚg©Ún_groupsr   r   rC   ­   s   z.test_against_head_and_tail.<locals>.<listcomp>c                    s*   g | ]"}t ˆ ƒD ]}d |› d|› �‘qqS )rf   z row rg   rh   rk   r   r   rC   °   s   þ©ÚgroupÚvaluern   Fr4   r   rc   c                    s:   g | ]2}t ˆ ƒD ]$}|ˆ  | ˆ ˆ k r|ˆ  | ‘qqS r   rg   ©rA   ri   rB   )rl   Ún_rows_per_groupr   r   rC   ¾   s   ýc                    sF   g | ]>}t ˆ ƒD ]0}ˆ| ˆ ˆ  | d krˆ| ˆ ˆ  | ‘qqS ©r   rg   rp   ©rl   rq   Úsizer   r   rC   Í   s   ý)
r"   r7   r8   r,   r   r   rc   rd   r   r   )	r   rb   re   rR   r9   r:   r   Úindicesr   r   rs   r   Útest_against_head_and_tail¤   s8    
ÿ
þü

þþ
rv   Ú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 )Nr`   zgroup 0rm   rn   Fr4   )	r    r"   r7   r8   r,   r   r   r   r   )	rw   ry   rz   Zn_rowsrR   r9   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.   r/   r/   )r6   r   )rY   r   r   r   r.   r/   )r7   ÚSeriesr,   r   r   Zassert_series_equal)Z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   s   g | ]}d d |› �g‘qS rJ   r   r@   r   r   r   rC   ü   rD   ztest_step.<locals>.<listcomp>r   c                 S   s   g | ]}d d |› �g‘qS ©Úyr   r@   r   r   r   rC   ý   rD   r   c                 S   s   g | ]}d d |› �g‘qS ©Úzr   r@   r   r   r   rC   þ   rD   r   r0   r1   r2   Fr4   c                 S   s   g | ]}d d |› �g‘qS rJ   r   r@   r   r   r   rC     rD   r   c                 S   s   g | ]}d d |› �g‘qS r   r   r@   r   r   r   rC     rD   c                 S   s   g | ]}d d |› �g‘qS r�   r   r@   r   r   r   rC     rD   c                 S   s   g | ]}d | ‘qS rr   r   r@   r   r   r   rC   	  rD   c                 S   s   g | ]}d | ‘qS )r   r   r@   r   r   r   rC   
  rD   c                 S   s   g | ]}d | ‘qS )é	   r   r@   r   r   r   rC     rD   r5   )r"   r7   r8   r,   r   r   r   )rz   rR   r9   r:   r   r6   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   )r0   r1   ÚCr>   ÚEÚFÚGr2   )r7   r8   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<0    Y  |jdd… }| jd d …ddgf }t  ||¡ d S )NzDataFrame.groupby with axis=1©Úmatchr   )Zaxisr   r   )r   Zassert_produces_warningÚFutureWarningr,   r   r   r   )r‰   Úmsgrj   r   r   r   r   r   Útest_column_axis  s    2rŽ   c                  C   s`   t  dd„ dD ƒ¡} ddg}|  | jdk ¡| D ]*\}}t |jt  |¡¡ d|jvs0J ‚q0d S )Nc                 S   s   i | ]}|t d ƒ“qS )rx   rg   )rA   Úkr   r   r   r]   &  rD   z(test_columns_on_iter.<locals>.<dictcomp>ÚABCr0   r1   r   r…   )r7   r8   r,   r0   r   Zassert_index_equalr3   ÚIndex)r9   Ú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ˆ   )r0   r1   r…   r…   )r0   r1   r0   )ç      ø?g      @r—   )Únamer5   )r7   r8   r,   Úmeanr‘   r   r   )r–   r9   r   r   r   r   r   Útest_groupby_duplicated_columns/  s    ýÿÿrš   c                  C   sp   t jg d¢g d¢g d¢dœd�} | jddgd�}d	}tjt|d
�� | d¡ W d   ƒ n1 sb0    Y  d S )N)Za1Úa2N)Úb1Úb2rœ   )r   r   r   )r0   r1   Úval)rR   r0   r1   )Zbyz('a2', 'b1')rŠ   )r›   rœ   )r7   r8   r,   ÚpytestZraisesÚKeyErrorZ	get_group)r9   Zgrpsr�   r   r   r   Ú#test_groupby_get_nonexisting_groups@  s    ýÿr¡   )%ÚnumpyrN   rŸ   Zpandasr7   Zpandas._testingZ_testingr   ÚmarkZparametrizer   r   r"   r%   r&   r(   r)   r^   r-   r;   ZfixturerT   rZ   r_   rv   r{   r~   r„   r‰   rŽ   r•   r    r‘   r}   Úarrayrš   r¡   r   r   r   r   Ú<module>   sv   


úþ
üø

ýþ

4




