o
    dl                     @   s  d dl Zd dlZd dlmZ d dlmZ d dlZd dlm	Z	m
Z
 d dlmZ d dlmZ ejddgdd	d
 Zdd Zdd Zdd Zejjdddgddgddd Zejjdddgddgdejjdeddeg deddggg ddejjdedd eg ddd ggg ddd!d" Zejjdddgddgdejjdedd#eg deddggg ddejjdedd#eg dddggg ddd$d% Zejjd&ed deg d'ed dggg ddd(d) Zd*d+ Zd,d- Zejjdddgddgdd.d/ Zd0d1 Z ejjdddgddgdd2d3 Z!ejjd&ed4deg d'd4dggg ddd5d6 Z"ejjd7d8d9 d:d9 d;d9 d<d9 d=d9 d>d9 gg d?dejjdddgddgdd@dA Z#ejjdddgddgddBdC Z$ejjd7dDd9 dEd9 dFd9 dGd9 gg dHddIdJ Z%dKdL Z&ejjd7dMd9 dNd9 dOd9 dPd9 dQd9 gg dRddSdT Z'ejjd7dUd9 dVd9 dWd9 gg dXddYdZ Z(d[d\ Z)ejjd&ed deg d'ed dggg ddd]d^ Z*d_d` Z+dadb Z,dcdd Z-dedf Z.ejjd7dgd9 dhd9 did9 gg dXddjdk Z/dldm Z0ejdndod4gejdpej1dqfej2drfej1d gd4ffej2d gd ffej1edd4ffej2edd ffgdsdt Z3dudv Z4dwdx Z5dydz Z6dS ){    N)SettingWithCopyWarning)is_float_dtype)	DataFrameSeries)	get_arraynumpynullable)paramsc                 C   sB   | j dkrdd }dd }n| j dkrdd }dd }| j ||fS )	Nr   c                  _      t | i |S N)r   argskwargs r   i/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/copy_view/test_indexing.pymake_dataframe      zbackend.<locals>.make_dataframec                  _   r
   r   )r   r   r   r   r   make_series   r   zbackend.<locals>.make_seriesr   c                  _   sX   t | i |}| }|jD ]}t|| jr't|| js'|| d||< q| S )NFloat64)r   convert_dtypescolumnsr   dtypeastypecopy)r   r   dfdf_nullablecolr   r   r   r      s   
c                  _   s   t | i |}|  S r   )r   r   r   )r   r   serr   r   r   r   *   s   )param)requestr   r   r   r   r   backend   s   


r    c                 C   s   | \}}}|g dg dg dd}|  }|ddg }|r3tt|dt|ds-J d|jd< ntt|dt|drAJ d|jd< tt|dt|drTJ |g d	g dd
}t|| t|| d S )N                  皙?皙?333333?abcr.   r0   r   r   r   r   r#   r$   r.   r0   )r   npshares_memoryr   iloctmassert_frame_equalr    using_copy_on_write_r   r   df_origsubsetexpectedr   r   r   test_subset_column_selection5   s   

r?   c                 C   s   | \}}}|g dg dg dd}|ddg }|r)t t|dt|ds)J d|jd< t t|dt|dr<J |rLt t|dt|dsLJ |g dg dd	}t|| d S )
Nr!   r%   r)   r-   r.   r0   r   r1   r3   )r4   r5   r   r6   r7   r8   )r    r:   r;   r   r   r=   r>   r   r   r   *test_subset_column_selection_modify_parentQ   s   

r@   c                 C   s   | \}}}|g dg dg dd}|  }|dd }|j  tt|dt|ds0J |rFd|jd	< tt|dt|drEJ nd|jd	< |j  |ddgd
dgddgdtddd}t	|| |rst	|| d S d|jd< t	|| d S )Nr!   r%   r)   r-   r"   r$   r.   r   r1   r'   r(   r+   r,   index)r"   r   )
r   _mgr_verify_integrityr4   r5   r   r6   ranger7   r8   r9   r   r   r   test_subset_row_sliceh   s"   




&
rF   r   int64float64zsingle-blockzmixed-block)idsc              	   C   s  | \}}}|dko|dko| }|g dg dt jg d|dd}| }	|jd d dd f }
|
j  |r[t t|
d	t|d	sGJ d
|
jd< t t|
d	t|d	rZJ n6|r_tnd }t	
dd" t| d
|
jd< W d    n1 s}w   Y  W d    n1 sw   Y  |g dt jg d|dd}t|
| |s|s|rd
|	jd< t||	 d S t||	 d S )NrG   r   r!   r%         	   r   r-   r"   r/   r   r1   chained_assignmentwarn)r   r'   r(   r/   r0   )r   r"   )r4   arrayr   r6   rC   rD   r5   r   r   pdoption_contextr7   assert_produces_warningr8   )r    r:   using_array_managerr   dtype_backendr   r;   single_blockr   r<   r=   rP   r>   r   r   r   test_subset_column_slice   s8   
 

 
rY   row_indexerr"   r#   )FTT)slicemaskrR   column_indexerr/   r0   c                 C   s   | \}}}|g dg dt jg d|dd}	|	 }
|	j||f }d|jd< |ddgt jd	d
g|ddtddd}t|| t|t	r^t|t	r^|sY|dkr^|dkr^|s^d|
jd< t|	|
 d S Nr!   r%   rJ   rN   r-   r   r1   r(   rL   rM   rQ   r"   r$   rA   rG   r   )r"   r"   )
r4   rR   r   locr6   rE   r7   r8   
isinstancer[   r    r   rZ   r]   rV   r:   rW   r   r;   r   r<   r=   r>   r   r   r   test_subset_loc_rows_columns   2   
 
"
rb   r$   c                 C   s   | \}}}|g dg dt jg d|dd}	|	 }
|	j||f }d|jd< |ddgt jd	d
g|ddtddd}t|| t|tr^t|tr^|sY|dkr^|dkr^|s^d|
jd< t|	|
 d S r^   )	r4   rR   r   r6   rE   r7   r8   r`   r[   ra   r   r   r   test_subset_iloc_rows_columns   rc   rd   indexer)TTFc              	   C   sL  | \}}}|g dg dg dd}|  }|dd }|tju r2t|tjr2|jdkr2td |r;d	|||< n:|tju rBt	nd }	t
d
d# t|	 d	|||< W d    n1 saw   Y  W d    n1 spw   Y  |g dg dg ddtddd}
t||
 |rt|| d S d	|dd< t|| d S )Nr"   r#   r$   r&   r&   r'   r(   rK   r*   r+   r,   皙?r-   r"   r&   intz&setitem with labels selects on columnsr   rO   rP   )r   r   r&   )r   r   rK   )        rk   ri   rA   r$   )r   r7   setitemr`   r4   ndarrayr   pytestskipr   rS   rT   rU   rE   r8   )r    
indexer_sire   r:   r;   r   r   r<   r=   rP   r>   r   r   r    test_subset_set_with_row_indexer-  s8   


rq   c           	   	   C   s   | \}}}|g dg dg dd}|  }|dd }|dk}|r(d||< n/td	d
! tt d||< W d    n1 sCw   Y  W d    n1 sRw   Y  |g dg dg ddtddd}t|| |rzt|| d S d|jd< d|jdddf< t|| d S )Nrf   rg   rh   r-   r"   r&   r$   r   rO   rP   )r#   r$   r   )r   r   r   )r+   r,   ri   rA   )r$   r.   r/   )	r   rS   rT   r7   rU   r   rE   r8   r_   )	r    r:   r;   r   r   r<   r=   r\   r>   r   r   r   test_subset_set_with_maskW  s,   



rr   c           
   	   C   s   | \}}}|g dg dg dd}|  }|dd }|dkr+tjdd	gd
d}n	tjdd	gdd}|r;||d< n/tdd! tt ||d< W d    n1 sVw   Y  W d    n1 sew   Y  |j	  |dd	gddgddgdt
ddd}	t||	 t|| d S )Nr!   r%   r)   r-   r"   r$   r   
      rG   rN   Int64r.   rO   rP   r'   r(   r+   r,   rA   )r   r4   rR   rS   rT   r7   rU   r   rC   rD   rE   r8   )
r    r:   rW   r   r;   r   r<   r=   arrr>   r   r   r   test_subset_set_columnu  s*   



rw   c           
   	   C   sp  | \}}}|g dg dt jg d|dd}| }|dd }|r5t jdd	gd
d|jd d df< n>tdd0 tjd | d t jdd	gd
d|jd d df< W d    n1 s_w   Y  W d    n1 snw   Y  |j	  |dd	gddgt jddg|ddt
ddd}	t||	 |rt|| d S t jdd	gd
d|jdddf< t|| d S )Nr!   r%   rJ   rN   r-   r"   r$   rs   rt   rG   r.   rO   rP   raise_on_extra_warningsr'   r(   rL   rM   rA   )r4   rR   r   r_   rS   rT   r7   rU   rC   rD   rE   r8   )
r    r:   rV   r   r;   r   r   r<   r=   r>   r   r   r   test_subset_set_column_with_loc  s6   
 ""
  rz   c           	   	   C   s  | \}}}|dg di}|  }|dd }|r#d|jd d df< n7tdd) tjd | d d|jd d df< W d    n1 sFw   Y  W d    n1 sUw   Y  |j  |dddgitddd	}t	|| |r|t	|| d S d|jdddf< t	|| d S )
Nr.   r!   r"   r$   r   rO   rP   rx   rA   )
r   r_   rS   rT   r7   rU   rC   rD   rE   r8   )	r    r:   rV   r;   r   r   r<   r=   r>   r   r   r    test_subset_set_column_with_loc2  s,   

r{   c           	   	      sN  | \}}}|g dg dt jg d|dd}| }|dd  |r+d d	d
g< n1tdd# tt d d	d
g< W d    n1 sHw   Y  W d    n1 sWw   Y   j	  |rpt
 fdddD spJ |ddgddgddgdtddd}|dkr|d	 d|d	< |d
 d|d
< t | t|| d S )Nr!   r%   rJ   rN   r-   r"   r$   r   r.   r0   rO   rP   c                 3   s    | ]	} j |V  qd S r   )rC   _has_no_reference).0ir=   r   r   	<genexpr>  s    z*test_subset_set_columns.<locals>.<genexpr>)r   r#   r'   r(   rA   r   rG   )r4   rR   r   rS   rT   r7   rU   r   rC   rD   allrE   r   r8   )	r    r:   r   rW   r   r;   r   r<   r>   r   r   r   test_subset_set_columns  s.   
 
&r   r.   c           	      C   s  | \}}}|g dg dg dd}|  }|dd }|r)d|jd d |f< ntdd	 d|jd d |f< W d    n1 sCw   Y  |j  |ddgd
d
gddgdtddd}t|| |rpt|| d S d|jddddgf< t|| d S )Nr!   r)   r%   r-   r"   r$   r   rO   rP   rk   r'   r(   rA   r#   r.   r/   )	r   r_   rS   rT   rC   rD   rE   r7   r8   )	r    re   r:   r;   r   r   r<   r=   r>   r   r   r   #test_subset_set_with_column_indexer  s    

&r   methodc                 C   s   | ddg dd S Nr.   r/   r   r#   r   r   r   r   r   <lambda>       r   c                 C   s   | dd ddg S Nr   r#   r.   r/   r   r   r   r   r   r   !  r   c                 C      | ddg j dd S r   r6   r   r   r   r   r   "      c                 C   r   )Nr.   r/   r   r"   r_   r   r   r   r   r   #  r   c                 C   s   | dd j d d ddf S )Nr   r#   r   r   r   r   r   r   $      c                 C   s   | dd j d d ddf S r   r   r   r   r   r   r   %  r   )zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-slicecolumn-iloc-slicecolumn-loc-slicec                 C   s   |\}}}|g dg dt jg d|dd}| }	| jjj}
|s(|
dv }n
|
dp1|
d}||}d	|jd
< |s?|sFt	||	 n	|jd
 d	ksOJ ||}d	|jd
< |ddgddgd}|sg|sot	|| d S |jd
 d	ksxJ d S )Nr!   r%   rJ   rN   r-   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slicer   r   r   r1   r"   r#   r&   r'   r.   r/   )
r4   rR   r   nodecallspecidendswithr6   r7   r8   )r   r    r   r   r:   rV   r;   r   r   r<   test_callspecsubset_is_viewr=   r>   r   r   r   test_subset_chained_getitem  s0   
 



r   c           
      C   s   | \}}}|g dg dt jg d|dd}| }|d d  d dd }|  d|jd< |r:t|| n	|jd	 dksCJ |d d  d dd }|  d|jd	< |d
dgdd}	|rjt||	 d S |jd dkssJ d S )Nr!   r%   rJ   rN   r-   r.   r   r#   r1   r"   name)r4   rR   r   _clear_item_cacher6   r7   r8   assert_series_equal)
r    r   r:   r;   r   r   r   r<   r=   r>   r   r   r   "test_subset_chained_getitem_column_  s$   
 

r   c                 C   s   | dd dd S Nr.   r0   r/   r   sr   r   r   r     r   c                 C      | j dd j dd S )Nr   r$   r#   r   r   r   r   r   r         c                 C   r   r   r   r   r   r   r   r     r   c                 C   s6   | j dd jdd jdd j dd jdd S )Nr.   r0   r   r$   r#   r/   r"   )r_   r6   r   r   r   r   r     s    )getitemr6   r_   z
long-chainc           	      C   s   | \}}}|g dg dd}|  }||}d|jd< |r%t|| n	|jd dks.J |jdd jdd }d|jd< |ddgdd	gd}|rSt|| d S |jd dks\J d S )
Nr!   r-   rA   r   r$   r#   r"   r.   r/   r   r6   r7   r   )	r    r   r:   r;   r   r   s_origr=   r>   r   r   r   "test_subset_chained_getitem_series  s   


r   c                 C   s   t g dg dg dd}| }|d d  jd jdd }d|jd< | s)|r0t|| n	|jd dks9J |d d  jd jdd }d|jd< tdd	gd
dgdd}| s[|rct|| d S |jd dkslJ d S )Nr!   r%   rJ   r-   r   r#   r1   r"   r&   r.   r/   )rB   r   )r   r   r6   r7   r8   r   r   )r:   rV   r   r<   r=   r>   r   r   r   $test_subset_chained_single_block_row  s   

r   c                 C      | d d  S r   r   r   r   r   r   r         c                 C      | j d d d d f S r   r   r   r   r   r   r     r   c                 C      | j d d  S r   r   r   r   r   r   r         c                 C   r   r   r   r   r   r   r   r     r   c                 C   r   r   r   r   r   r   r   r     r   )r   r_   zloc-rowsr6   z	iloc-rowsc                 C   sv   | \}}}|g dg dg dd}|  }||}||us!J d|jd< |r0t|| d S |jd dks9J d S )Nr!   r%   rJ   r-   r   r1   )r   r6   r7   r8   )r    r   r:   r;   r   r   r<   df2r   r   r   test_null_slice  s   

r   c                 C   r   r   r   r   r   r   r   r     r   c                 C   r   r   r   r   r   r   r   r     r   c                 C   r   r   r   r   r   r   r   r     r   )r   r_   r6   c                 C   sn   | \}}}|g dg dd}|  }||}||usJ d|jd< |r,t|| d S |jd dks5J d S )Nr!   r-   rA   r   r   )r    r   r:   r;   r   r   r   s2r   r   r   test_null_slice_series  s   


r   c                 C   s   | \}}}|g dg dd}|  }|d d  }tt|t|s%J d|jd< |r8tt|t|r8J |g dg dd}t|| |rRt|| d S |jd dks[J d S )Nr!   r-   rA   r   r2   )r   r4   r5   r   r6   r7   r   )r    r:   r;   r   r   r   r=   r>   r   r   r   test_series_getitem_slice  s   

r   c           
      C   s   | \}}}|g dg dd}|  }|d d  }d|||< |g dg dd}	t||	 |r9t|| d S t||	 d S )Nr!   r-   rA   r   )r   r   r$   )r   r7   r   )
r    rp   re   r:   r;   r   r   r   r=   r>   r   r   r   #test_series_subset_set_with_indexer  s   
	r   c                 C   s   | \}}}|g dg dg dd}|  }|d d  }tt|dt|ds+J |d= tt|dt|ds<J t|| t||ddg  |j  d|jd	< |r`t|| d S |jd	 dksiJ d S )
Nr!   r%   r)   r-   r.   r/   r0   d   r   r.   )	r   r4   r5   r   r7   r8   rC   rD   r_   )r    r:   r;   r   r   r<   r   r   r   r   test_del_frame3  s   


r   c                 C   s   | \}}}|g dg dd}|  }|d d  }tt|t|s%J |d= tt|t|r4J t|| t||ddg  |j}d|jd< |d dksTJ d S )	Nr!   r-   rA   r.   r/   r0   r   r   )r   r4   r5   r   r7   r   valuesr_   )r    r;   r   r   r   r   r   r   r   r   test_del_seriesO  s   

r   c              	   C   s0  | \}}}|g dg dg dd}|  }|d }tt|dt|ds)J |s-|r2d|d< n7|dkr8tnd }	tdd	! t|	 d|d< W d    n1 sUw   Y  W d    n1 sdw   Y  |g d
dd}
t	||
 |rt
|| t	|d |d  d S d|jd< t
|| d S )Nr!   r%   r)   r-   r.   r   r   rO   rP   r2   r   r1   )r   r4   r5   r   r   rS   rT   r7   rU   r   r8   r6   )r    r:   rV   rW   r   r   r   r<   r   rP   r>   r   r   r   test_column_as_seriesg  s*   



r   c           
   	   C   sf  | \}}}|g dg dg dd}|  }|d }|dkrCtjtdd d	|d
< W d    n1 s5w   Y  |g ddd}	nJ|sG|rUd	|d
< |g dtdd}	n8tdd! tt	 d	|d
< W d    n1 spw   Y  W d    n1 sw   Y  |g dtdd}	t
||	 |rt|| t
|d |d  d S |	|d< t|| d S )Nr!   r%   r)   r-   r.   r   zInvalid value)matchfoor   r   )r   r#   r$   )r   r   rO   rP   )r   rn   raises	TypeErrorobjectrS   rT   r7   rU   r   r   r8   )
r    r:   rV   rW   r   r   r   r<   r   r>   r   r   r   %test_column_as_series_set_with_upcast  s2   


r   c                 C   s   | d S Nr.   r   r   r   r   r   r     s    c                 C      | j d d df S r   r   r   r   r   r   r         c                 C   r   )Nr   r   r   r   r   r   r     r   c              	   C   s*  |\}}}|g dg dg dd}|  }	||}
||}d| jjv }|s)|r0|
|us/J n|
|u s6J |s:|r@d|
jd< n8|dkrFtnd }tdd	" t| d|
jd< W d    n1 sdw   Y  W d    n1 ssw   Y  |rt	||	d
  t
||	 d S |jd dksJ d S )Nr!   r%   r)   r-   r6   r   r   rO   rP   r.   )r   r   r   r6   r   rS   rT   r7   rU   r   r8   )r   r    r   r:   rV   rW   r   r;   r   r<   s1r   is_ilocrP   r   r   r   #test_column_as_series_no_item_cache  s,   
r   c                 C   s   | \}}}|g dg dd}|g d}||d< t t|d|jr&J d|d< |g dg dg dd}t|| d|jd	< |g d
}t|| d S )Nr!   r)   r   )rs   rt      newr   )r.   r/   r   r   )r#   r   )r   rt   r   )r4   r5   r   r   r7   r8   r_   r   )r    r;   r   r   r   r   r>   
expected_sr   r   r   %test_dataframe_add_column_from_series  s   

r   valr   zindexer_func, indexerr   r1   c                 C   s   t g dg dg dd}| }|d d  }||||< | rDtt|dt|ds.J tt|dt|dr<J t|| d S tt|dt|dsRJ |dkrftt|dt|drdJ d S tt|dt|dstJ d S )Nr!   r%   r)   r-   r/   r.   r0   )r   r   r4   r5   r   r7   r8   )r:   indexer_funcre   r   r   r<   viewr   r   r   )test_set_value_copy_only_necessary_column  s     r   c                 C   s   t g dtjg dg dgd}|d }tt|t|s"J d|jd< | rCt g dtjg dg dgd}t	|| d S d S )Nr!   )r"   r"   r#   )r$   r&   r'   rA   r"   r   r   )
r   rS   
MultiIndexfrom_arraysr4   r5   r   r6   r7   r   r:   r   resultr>   r   r   r   test_series_midx_slice  s   $
r   c                 C   sz   t ddgddd}| }|d }| r|jdrJ |s,tt|dt|ds,J | r;d|jd	< t	|| d S d S )
Nr"   r#   )r.   x)r.   y)r/   r   )r.   r   r   r   r   r1   )
r   r   rC   r|   r4   r5   r   r6   r7   r8   )r:   rV   r   r<   new_dfr   r   r   test_getitem_midx_slice  s   
r   c                 C   sz   t g dtjg dd}|d }tt|t|sJ d|jd< | r;t g dtjg dd}t	|| d S d S )Nr!   ))r"   r#   r$   )r   r&   ))r#   r$   r&   rA   r   r   r   )
r   rS   r   from_tuplesr4   r5   r   r6   r7   r   r   r   r   r   test_series_midx_tuples_slice*  s   
r   )7r   r4   rn   pandas.errorsr   pandas.core.dtypes.commonr   pandasrS   r   r   pandas._testing_testingr7   pandas.tests.copy_view.utilr   fixturer    r?   r@   rF   markparametrizerY   r[   rR   rb   rd   rq   rr   rw   rz   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r_   r6   r   r   r   r   r   r   r   r   <module>   s4   
##
'"/"/"
%
% 
 
,




	"
"
	$