a
    oÝEbh#  ã                
   @   sD  d dl Z 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$dS )Hé    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   úb/home/ja/django-apps/lartica_env/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_slicesF   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_mixN   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_indexV   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_examplesf   s    &ÿ$
 ÿr;   c                  C   sz   d} d}t jd| dd�}dd„ t|ƒD ƒ}i }|D ]B}|t dd	¡ }d
d„ |d |… D ƒ}|jdd„ d� |||< q2|S )Né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   s.   g | ]&}|t  d d¡d t  d d¡d f‘qS )r   i'  r<   )ÚrandomÚrandint)rA   Úitemr   r   r   rC   …   s   ÿc                 S   s   | d S )Nr   r   ©Úxr   r   r   Ú<lambda>‰   rD   z!multiindex_data.<locals>.<lambda>)Úkey)r7   Z
date_ranger"   rF   rG   r+   )ZndatesZnitemsÚdatesÚitemsÚdataÚdateZnitems_for_dateZlevelsr   r   r   Úmultiindex_data{   s    
þ
rQ   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)rO   ÚrowsrP   Úlevelr9   r   r   r   Ú_make_df_from_data�   s    "rW   c                    sL   t ˆ ƒ}|jddd� tddƒ¡}‡ fdd„ˆ D ƒ}t |ƒ}t ||¡ d S )NrR   Fr4   r   éýÿÿÿc                    s   i | ]}|ˆ | d d… “qS )r   rX   r   )rA   rP   ©rQ   r   r   Ú
<dictcomp>Ÿ   rD   z#test_multiindex.<locals>.<dictcomp>)rW   r,   ZnthÚslicer   r   )rQ   r9   r   Zslicedr   r   rY   r   Útest_multiindexš   s
    r\   r   )r   r   é   iè  r   éûÿÿÿiâÿÿÿiüÿÿÚmethodÚheadÚtailÚ	simulatedTFc                    sl  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Îg }	t |ƒD ]8}
t ˆ ƒD ]*}|
ˆ  | ˆ | k r”|	 |
ˆ  | ¡ q”qˆ|j|	 }n
| | ¡}n‚|j|  d … }|�rRg }	t |ƒD ]H}
t ˆ ƒD ]:}||
 | ˆ  | d
k�r|	 ||
 | ˆ  | ¡ �qqü|j|	 }n
| | ¡}t	 
||¡ d S )Nr<   r]   c                    s$   g | ]}t ˆ ƒD ]}d |› �‘qqS )úgroup ©r"   ©rA   ÚjÚg©Zn_groupsr   r   rC   ®   s   z.test_against_head_and_tail.<locals>.<listcomp>c                    s*   g | ]"}t ˆ ƒD ]}d |› d|› �‘qqS )rc   z row rd   re   rh   r   r   rC   ±   s   þ©ÚgroupÚvaluerj   Fr4   r   r`   )r"   r7   r8   r,   r   Úappendr   r`   ra   r   r   )r   r_   rb   Zn_rows_per_grouprO   r9   r:   Úsizer   Úindicesrf   rB   r   r   rh   r   Útest_against_head_and_tail¥   s@    
ÿ
þü

 
ro   Ú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 0ri   rj   Fr4   )	r    r"   r7   r8   r,   r   r   r   r   )	rp   rr   rs   Zn_rowsrO   r9   r:   r   r   r   r   r   Útest_against_df_ilocÜ   s    
þ
rt   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   )rV   r   r   r   r.   r/   )r7   ÚSeriesr,   r   r   Zassert_series_equal)Zserr:   r   r   r   r   r   Útest_seriesð   s
    rw   ru   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 rI   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 rI   r   r@   r   r   r   rC     rD   r   c                 S   s   g | ]}d d |› �g‘qS rx   r   r@   r   r   r   rC     rD   c                 S   s   g | ]}d d |› �g‘qS rz   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   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   )rs   rO   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   sH   | j | jd dd�}|jdd… }| jd d …ddgf }t ||¡ d S )Nr   )Zaxisr   r   )r,   r   r   r   r   )r‚   rg   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s0J ‚q0d S )Nc                 S   s   i | ]}|t d ƒ“qS )rq   rd   )rA   Úkr   r   r   rZ   %  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�   )%rF   ÚnumpyÚnpZpytestZpandasr7   Zpandas._testingZ_testingr   ÚmarkZparametrizer   r   r"   r%   r&   r(   r)   r[   r-   r;   ZfixturerQ   rW   r\   ro   rt   rw   r}   r‚   rƒ   rŠ   r    r†   rv   Úarrayr�   r   r   r   r   Ú<module>   sv   


úþ
üø

ýþ

4


