a
    d1%                  
   @   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      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   k/var/www/html/stable-diffusion-webui/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_datelevelsr   rH   r   multiindex_datay   s    


rU   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    "r[   c                    sL   t  }|jdddtdd} fdd D }t |}t|| d S )NrV   Fr4   r   c                    s   i | ]}| | d d qS )r   r\   r   )rA   rS   rU   r   r   
<dictcomp>   rD   z#test_multiindex.<locals>.<dictcomp>)r[   r,   Znthslicer   r   )rU   r9   r   Zslicedr   r   r]   r   test_multiindex   s
    r`   r   )r   r      i  r   ii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<   ra   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 )rg   z row rh   ri   rl   r   r   rC      s   groupvaluero   Fr4   r   rd   c                    s:   g | ]2}t  D ]$}|  |   k r|  | qqS r   rh   rA   rj   rB   )rm   n_rows_per_groupr   r   rC      s   c                    sF   g | ]>}t  D ]0}|    | d kr|    | qqS r   rh   rq   rm   rr   sizer   r   rC      s   )
r"   r7   r8   r,   r   r   rd   re   r   r   )	r   rc   rf   rR   r9   r:   r   indicesr   r   rt   r   test_against_head_and_tail   s8    




rw   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 )Nra   zgroup 0rn   ro   Fr4   )	r    r"   r7   r8   r,   r   r   r   r   )	rx   rz   r{   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   )rZ   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 rs   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   )r{   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   msgrk   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 )ry   rh   )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_Z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fixturerU   r[   r`   rw   r|   r   r   r   r   r   r    r   r~   arrayr   r   r   r   r   r   <module>   sv   







4




