U
    ÎZjÔ$  ã                   @   s¤  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 d ddggddggdg gdddd	ggd
ddggdg gg¡dd„ ƒZdd„ Zej	j
dd dgd dddggd ddgd ddddd	gged ddƒd dddggd dhd dddgggddddgd�dd„ ƒZdd„ Zdd„ Zdd„ Zej	 
dd d ddggd ddgd ddddd	ggeddƒed
dƒfd dddddd	ggg¡dd„ ƒZd d!„ Ze ¡ d"d#„ ƒZd$d%„ Zd&d'„ Zej	 
d(ddd)d*dd+d,d-g¡ej	 
d.d/d0g¡ej	 
d1d2d3g¡d4d5„ ƒƒƒZej	 
d6dd dd7dd8g¡ej	 
d9dd dd7dd8g¡ej	 
d:dddg¡d;d<„ ƒƒƒZd=d>„ Zej	 
d:dddddg¡d?d@„ ƒZe ¡ dAdB„ ƒZdCdD„ ZdEdF„ Zej	 
dGe ej!ej"ej#g¡dHdI„ ƒZ$dJdK„ Z%dS )Lé    Nzarg, expected_rowsé   é   é   é   éÿÿÿÿé   é   éþÿÿÿé   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   úe/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/groupby/test_indexing.pyÚtest_int   s    

r   c                 C   s2   |j ddd… }| jddddg }t ||¡ d S )Nr   r   r   r   r   r   r   ©r   r   r   r   r   r   r   Ú
test_slice   s    r   ÚlistÚnegativeÚrangeÚset)Zidsc                 C   s$   |j | }| j| }t ||¡ d S r   r   r   r   r   r   Ú	test_list'   s    

r!   c                 C   s0   |j d }| jddddddg }t ||¡ d S )N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú	test_ints>   s    
r"   c                 C   s>   |j d d…dd …f }| jdddddddg }t ||¡ d S )	Nr   r	   r   r   r   r   r
   r   r   r   r   r   r   Útest_slicesF   s    r#   c                 C   s<   |j dddd …f }| jdddddddg }t ||¡ d S )	Nr   r   r	   r   r   r   r
   r   r   r   r   r   r   Útest_mixN   s    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dddgd�}t ||¡ d S )NÚar   r   r   Úbr   r   ÚAÚB©ÚcolumnsF©Zas_index©r.   Úindex)r   r   )ÚpdÚ	DataFramer'   r   r   r   )ÚdfÚgroupedr   r   r   r   r   Útest_doc_examplesf   s      ÿ$
  ÿr6   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>€   s     z#multiindex_data.<locals>.<listcomp>r   é   c                 S   s.   g | ]&}|t  d d¡d t  d d¡d f‘qS )r   i'  r7   )ÚrandomÚrandint)r<   Úitemr   r   r   r>   …   s   ÿc                 S   s   | d S )Nr   r   ©Úxr   r   r   Ú<lambda>‰   ó    z!multiindex_data.<locals>.<lambda>)Úkey)r2   Z
date_ranger   r@   rA   r&   )ZndatesZnitemsÚdatesÚitemsÚdataÚdateZnitems_for_dateZlevelsr   r   r   Úmultiindex_data{   s    
þ
rL   c                 C   sV   i }| D ]0}| | D ]"}|d |d dœ|||d f< qqt jj|dd�}d|j_|S )Nr   r   )r+   r,   r   r1   )Zorient)ÚDateZItem)r2   r3   Ú	from_dictr1   Únames)rJ   ÚrowsrK   Úlevelr4   r   r   r   Ú_make_df_from_data�   s    "rR   c                    sL   t ˆ ƒ}|jddd� tddƒ¡}‡ fdd„ˆ D ƒ}t |ƒ}t ||¡ d S )NrM   Fr/   r   éýÿÿÿc                    s   i | ]}|ˆ | d d… “qS )r   rS   r   )r<   rK   ©rL   r   r   Ú
<dictcomp>Ÿ   s      z#test_multiindex.<locals>.<dictcomp>)rR   r'   ZnthÚslicer   r   )rL   r4   r   Zslicedr   r   rT   r   Útest_multiindexš   s
    rW   r   é   iè  éûÿÿÿ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 )Nr7   rX   c                    s$   g | ]}t ˆ ƒD ]}d |› �‘qqS )úgroup ©r   ©r<   ÚjÚg©Zn_groupsr   r   r>   ®   s    
  z.test_against_head_and_tail.<locals>.<listcomp>c                    s*   g | ]"}t ˆ ƒD ]}d |› d|› �‘qqS )r^   z row r_   r`   rc   r   r   r>   ±   s   
 þ©ÚgroupÚvaluere   Fr/   r   r[   )r   r2   r3   r'   r   Úappendr   r[   r\   r   r   )r   rZ   r]   Zn_rows_per_grouprJ   r4   r5   Úsizer   Úindicesra   r=   r   r   rc   r   Útest_against_head_and_tail¥   s@    
ÿ
þü

 
rj   Ústarté
   iöÿÿÿÚstopÚstepc           	      C   sd   d}dg| t t|ƒƒdœ}t |¡}|jddd�}|j| ||… }|j| ||… }t ||¡ d S )NrX   zgroup 0rd   re   Fr/   )	r   r   r2   r3   r'   r   r   r   r   )	rk   rm   rn   Zn_rowsrJ   r4   r5   r   r   r   r   r   Útest_against_df_ilocÜ   s    
þ
ro   c                  C   sb   t jdddddgdddddgd�} | jd	d
�}|jdd… }t jddgddgd�}t ||¡ d S )Nr   r   r   r   r   r)   r*   )r1   r   )rQ   )r2   ÚSeriesr'   r   r   Zassert_series_equal)Zserr5   r   r   r   r   r   Útest_seriesð   s
    "rq   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 rC   r   r;   r   r   r   r>   ý   s     ztest_step.<locals>.<listcomp>r   c                 S   s   g | ]}d d |› �g‘qS ©Úyr   r;   r   r   r   r>   þ   s     r   c                 S   s   g | ]}d d |› �g‘qS ©Úzr   r;   r   r   r   r>   ÿ   s     r   r+   r,   r-   Fr/   c                 S   s   g | ]}d d |› �g‘qS rC   r   r;   r   r   r   r>     s     r   c                 S   s   g | ]}d d |› �g‘qS rr   r   r;   r   r   r   r>     s     c                 S   s   g | ]}d d |› �g‘qS rt   r   r;   r   r   r   r>     s     c                 S   s   g | ]}d | ‘qS )r   r   r;   r   r   r   r>   
  s     c                 S   s   g | ]}d | ‘qS )r   r   r;   r   r   r   r>     s     c                 S   s   g | ]}d | ‘qS )é	   r   r;   r   r   r   r>     s     r0   )r   r2   r3   r'   r   r   r   )rn   rJ   r4   r5   r   r1   r   r   r   r   Ú	test_stepú   s    rw   c                	   C   s<   t jdddddddgdddddddggdd	d
ddddgd�S )Nr   r   r   r   r   r   r
   r+   r,   ÚCr9   ÚEÚFÚGr-   )r2   r3   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|   rb   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ks0t‚q0d S )Nc                 S   s   i | ]}|t d ƒ“qS )rl   r_   )r<   Úkr   r   r   rU   %  s      z(test_columns_on_iter.<locals>.<dictcomp>ÚABCr+   r,   r   rx   )	r2   r3   r'   r+   r   Zassert_index_equalr.   ÚIndexÚAssertionError)r4   ÚcolsÚ_Údgr   r   r   Útest_columns_on_iter#  s
    r…   Úfuncc                 C   st   t  ddgddgddgdœ¡}| d¡| dddgƒ  ¡ }t jd	d
d	ggdddgt jdgdd�d�}t ||¡ d S )Nr   r   r   r{   )r+   r,   rx   rx   r+   r,   g      ø?g      @)Únamer0   )r2   r3   r'   Zmeanr€   r   r   )r†   r4   r   r   r   r   r   Útest_groupby_duplicated_columns.  s    ýÿ
  ÿrˆ   c               	   C   sb   t jddd gdddgdddgdœd	�} | jd
dgd�}d}tjt|d�� | d¡ W 5 Q R X d S )NZa1Úa2Úb1Úb2r   r   r   )r+   r,   Úval)rJ   r+   r,   )Zbyz('a2', 'b1'))Úmatch)r‰   rŠ   )r2   r3   r'   ÚpytestZraisesÚKeyErrorZ	get_group)r4   ZgrpsÚmsgr   r   r   Ú#test_groupby_get_nonexisting_groups?  s    ýÿr‘   )&r@   ÚnumpyÚnprŽ   Zpandasr2   Zpandas._testingZ_testingr   ÚmarkZparametrizer   r   r   r!   r"   r#   r$   rV   r(   r6   ZfixturerL   rR   rW   rj   ro   rq   rw   r|   r}   r…   r   r€   rp   Úarrayrˆ   r‘   r   r   r   r   Ú<module>   s€   
úþ
üüø
$ýþ

4



