o
    d$                  
   @   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   $   |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   g/var/www/html/visualizacion-main/env/lib/python3.10/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   r   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as_indexr4   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 ]!}|tdd	 }d
d |d | D }|jdd d |||< q|S )Nd      20130101D)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)rE   itemr   r   r   rG      s     c                 S   s   | d S )Nr   r   xr   r   r   <lambda>   s    z!multiindex_data.<locals>.<lambda>)key)r9   
date_ranger#   rJ   rK   r,   )ndatesnitemsdatesitemsdatadatenitems_for_datelevelsr   r   r   multiindex_data{   s   

rZ   c                 C   sV   i }| D ]}| | D ]}|d |d d|||d f< q
qt jj|dd}d|j_|S )Nr   r   )r1   r2   r   r8   )orient)DateItem)r9   r:   	from_dictr8   names)rV   rowsrW   levelr;   r   r   r   _make_df_from_data   s    rb   c                    sL   t  }|jdddtdd} fdd D }t |}t|| d S )Nr\   Fr5   r   c                    s   i | ]}| | d d qS )r   rc   r   )rE   rW   rZ   r   r   
<dictcomp>   s    z#test_multiindex.<locals>.<dictcomp>)rb   r-   nthslicer   r   )rZ   r;   r   slicedr   r   rd   r   test_multiindex   s
   ri   r   )r   r      i  r   iimethodheadtail	simulatedTFc                    sf  d d} fddt |D  fddt |D d}t|}|jddd	}| d
kr-| n||  }|dkrm|jd |  }|rgg }	t |D ]}
t  D ]}|
  |  | k r_|	|
  |  qJqD|j|	 }nD|| }n>|j|  d  }|rg }	t |D ]"}
t  D ]}||
 |   | d
kr|	||
 |   |  qq}|j|	 }n|| }t	
|| d S )Nr>   rj   c                    s$   g | ]}t  D ]}d | qqS )group r#   rE   jgn_groupsr   r   rG      s
    
z.test_against_head_and_tail.<locals>.<listcomp>c                    s*   g | ]}t  D ]
}d | d| qqS )rp   z row rq   rr   ru   r   r   rG      s    groupvaluerx   Fr5   r   rm   )r#   r9   r:   r-   r   appendr   rm   rn   r   r   )r   rl   ro   n_rows_per_grouprV   r;   r<   sizer   indicesrs   rF   r   r   ru   r   test_against_head_and_tail   sH   




r~   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 )Nrj   zgroup 0rw   rx   Fr5   )	r!   r#   r9   r:   r-   r   r   r   r   )	r   r   r   n_rowsrV   r;   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/   r0   r0   )r8   r   )ra   r   r   r   r/   r0   )r9   Seriesr-   r   r   assert_series_equal)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      g | ]	}d d | gqS rM   r   rD   r   r   r   rG          ztest_step.<locals>.<listcomp>r   c                 S   r   yr   rD   r   r   r   rG      r   r   c                 S   r   zr   rD   r   r   r   rG      r   r   r1   r2   r3   Fr5   c                 S   r   rM   r   rD   r   r   r   rG     r   r   c                 S   r   r   r   rD   r   r   r   rG     r   c                 S   r   r   r   rD   r   r   r   rG     r   c                 S      g | ]}d | qS )r   r   rD   r   r   r   rG   
      c                 S   r   )r   r   rD   r   r   r   rG     r   c                 S   r   )	   r   rD   r   r   r   rG     r   r7   )r#   r9   r:   r-   r   r   r   )r   rV   r;   r<   r   r8   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   )r1   r2   CrA   EFGr3   )r9   r:   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   )axisr   r   )r-   r   r   r   r   )r   rt   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s-J qd S )Nc                 S   s   i | ]}|t d qS )r   rq   )rE   kr   r   r   re   %  rH   z(test_columns_on_iter.<locals>.<dictcomp>ABCr1   r2   r   r   )r9   r:   r-   r1   r   assert_index_equalr4   Index)r;   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   )r1   r2   r   r   )r1   r2   r1   )      ?g      @r   )namer7   )r9   r:   r-   meanr   r   r   )r   r;   r   r   r   r   r   test_groupby_duplicated_columns.  s   r   c                  C   sr   t jg dg dg ddd} | jddgd}d	}tjt|d
 |d W d    d S 1 s2w   Y  d S )N)a1a2N)b1b2r   )r   r   r   )r1   r2   val)rV   r1   r2   )byz('a2', 'b1'))match)r   r   )r9   r:   r-   pytestraisesKeyError	get_group)r;   grpsmsgr   r   r   #test_groupby_get_nonexisting_groups?  s   "r   )&rJ   numpynpr   pandasr9   pandas._testing_testingr   markparametrizer   r   r#   r&   r'   r)   r*   rg   r.   r=   fixturerZ   rb   ri   r~   r   r   r   r   r   r   r!   r   r   arrayr   r   r   r   r   r   <module>   sz   







4



