a
    j=ic$                  
   @   sL  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$dHdI Z%dS )J    Nzarg, expected_rows)r               )   r      r      ic                 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   s/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/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)Z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r2   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 )Nd      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)r@   itemr   r   r   rB      s   c                 S   s   | d S )Nr   r   xr   r   r   <lambda>   rC   z!multiindex_data.<locals>.<lambda>)key)r6   Z
date_ranger"   rE   rF   r*   )ZndatesZnitemsdatesitemsdatadateZnitems_for_date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   )r/   r0   r   r5   )Zorient)DateItem)r6   r7   	from_dictr5   names)rN   rowsrO   levelr8   r   r   r   _make_df_from_data   s    "rX   c                    sL   t  }|jdddtdd} fdd D }t |}t|| d S )NrR   Fr3   r   c                    s   i | ]}| | d d qS )r   rY   r   )r@   rO   rQ   r   r   
<dictcomp>   rC   z#test_multiindex.<locals>.<dictcomp>)rX   r+   Znthslicer   r   )rQ   r8   r   Zslicedr   r   rZ   r   test_multiindex   s
    r]   r   )r   r      i  r   ii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 |  }|rg }	t |D ]8}
t  D ]*}|
  |  | k r|	|
  |  qq|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"   r@   jgZn_groupsr   r   rB      s   z.test_against_head_and_tail.<locals>.<listcomp>c                    s*   g | ]"}t  D ]}d | d| qqS )rd   z row re   rf   ri   r   r   rB      s   groupvaluerk   Fr3   r   ra   )r"   r6   r7   r+   r   appendr   ra   rb   r   r   )r   r`   rc   Zn_rows_per_grouprN   r8   r9   sizer   indicesrg   rA   r   r   ri   r   test_against_head_and_tail   s@    



 
rp   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 0rj   rk   Fr3   )	r    r"   r6   r7   r+   r   r   r   r   )	rq   rs   rt   Zn_rowsrN   r8   r9   r   r   r   r   r   test_against_df_iloc   s    

ru   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.   )r5   r   )rW   r   r   r   r-   r.   )r6   Seriesr+   r   r   Zassert_series_equal)Zserr9   r   r   r   r   r   test_series   s
    rx   rv   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 rH   r   r?   r   r   r   rB      rC   ztest_step.<locals>.<listcomp>r   c                 S   s   g | ]}d d | gqS yr   r?   r   r   r   rB      rC   r   c                 S   s   g | ]}d d | gqS zr   r?   r   r   r   rB      rC   r   r/   r0   r1   Fr3   c                 S   s   g | ]}d d | gqS rH   r   r?   r   r   r   rB     rC   r   c                 S   s   g | ]}d d | gqS ry   r   r?   r   r   r   rB     rC   c                 S   s   g | ]}d d | gqS r{   r   r?   r   r   r   rB     rC   c                 S   s   g | ]}d | qS )r   r   r?   r   r   r   rB   
  rC   c                 S   s   g | ]}d | qS )r   r   r?   r   r   r   rB     rC   c                 S   s   g | ]}d | qS )	   r   r?   r   r   r   rB     rC   r4   )r"   r6   r7   r+   r   r   r   )rt   rN   r8   r9   r   r5   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   )r/   r0   Cr=   EFGr1   )r6   r7   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   rh   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 )rr   re   )r@   kr   r   r   r[   %  rC   z(test_columns_on_iter.<locals>.<dictcomp>ABCr/   r0   r   r   )r6   r7   r+   r/   r   Zassert_index_equalr2   Index)r8   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   )r/   r0   r   r   )r/   r0   r/   )      ?g      @r   )namer4   )r6   r7   r+   meanr   r   r   )r   r8   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   )r/   r0   val)rN   r/   r0   )Zbyz('a2', 'b1'))match)r   r   )r6   r7   r+   pytestZraisesKeyErrorZ	get_group)r8   Zgrpsmsgr   r   r   #test_groupby_get_nonexisting_groups?  s    r   )&rE   numpynpr   Zpandasr6   Zpandas._testingZ_testingr   markZparametrizer   r   r"   r$   r%   r'   r(   r\   r,   r:   ZfixturerQ   rX   r]   rp   ru   rx   r~   r   r   r   r    r   rw   arrayr   r   r   r   r   r   <module>   sx   







4



