o
    Û­jä§  ã                   @   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)d]d^„ Z*ejjd&ed dƒe g d'¢¡e d dg¡gg d¢d�d_d`„ ƒZ+dadb„ Z,dcdd„ Z-dedf„ Z.dgdh„ Z/ejjd7did9„ djd9„ dkd9„ gg dX¢d�dldm„ ƒZ0dndo„ Z1ej dpdqd4g¡ej drej2dsfej3dtfej2d gd4ffej3d gd ffej2edƒd4ffej3edƒd ffg¡ejjdug dv¢g dw¢gddgd�dxdy„ ƒƒƒZ4dzd{„ Z5d|d}„ Z6d~d„ Z7d€d�„ Z8d‚dƒ„ Z9d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   úa/var/www/html/CropPilot/venv/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    r9   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t |¡� d|jd	< W d   ƒ n1 s[w   Y  |j ¡  |ddgd
dgddgdœt	ddƒd�}t 
||¡ |rˆt 
||¡ 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   r7   Úassert_cow_warningÚranger8   )	r    r9   Úwarn_copy_on_writer:   r   r   r;   r<   r=   r   r   r   Útest_subset_row_sliceh   s&   


ÿ
&
rG   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 ‚nS|rxt 	|¡� d
|jd< W d   ƒ n1 srw   Y  n6|r|t
nd }t dd¡�" t |¡� d
|jd< W d   ƒ n1 sšw   Y  W d   ƒ n1 s©w   Y  |g d¢t jg d¢|d�dœƒ}t ||¡ |s×|sÊ|r×d
|
jd< t |	|
¡ d S t |	|
¡ d S )NrH   r   r!   r%   ©é   é   é	   ©r   r-   r"   r/   r   r1   Úchained_assignmentÚwarn)r   r'   r(   ©r/   r0   ©r   r"   )r4   Úarrayr   r6   rB   rC   r5   r   r7   rD   r   ÚpdÚoption_contextÚassert_produces_warningr8   )r    r9   rF   Úusing_array_managerr   Údtype_backendr   r:   Úsingle_blockr   r;   r<   rQ   r=   r   r   r   Útest_subset_column_sliceŒ   sB   
ÿþ ÿ

ÿ€ÿ€ÿ 
r[   Úrow_indexerr"   r#   )FTT)ÚsliceÚmaskrT   Úcolumn_indexerr/   r0   c                 C   s   | \}}}	|g d¢g d¢t jg d¢|d�dœƒ}
|
 ¡ }|
j||f }t|tƒo9t|tƒo9|p9|dko9|dko9| }t |o?|¡� d|jd	< W d   ƒ n1 sQw   Y  |dd
gt jddg|d�dœt	ddƒd�}t 
||¡ |rxd|jd< t 
|
|¡ d S ©Nr!   r%   rK   rO   r-   rH   r   r   r1   r(   rM   rN   rR   r"   r$   r@   )r"   r"   )r4   rT   r   ÚlocÚ
isinstancer]   r7   rD   r6   rE   r8   ©r    r   r\   r_   rX   r9   rF   rY   r   r:   r   r;   r<   Úmutate_parentr=   r   r   r   Útest_subset_loc_rows_columnsº   ó2   
 ÿ
ÿÿøÿ"ÿ
re   r$   c                 C   s   | \}}}	|g d¢g d¢t jg d¢|d�dœƒ}
|
 ¡ }|
j||f }t|tƒo9t|tƒo9|p9|dko9|dko9| }t |o?|¡� d|jd	< W d   ƒ n1 sQw   Y  |dd
gt jddg|d�dœtddƒd�}t 	||¡ |rxd|jd< t 	|
|¡ d S r`   )
r4   rT   r   r6   rb   r]   r7   rD   rE   r8   rc   r   r   r   Útest_subset_iloc_rows_columnsú   rf   rg   Úindexer)TTFc              	   C   s†  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|dd… }	|tju r2t|tjƒr2|jdkr2t d¡ |r;d	||	ƒ|< nW|rXt 	¡ � d	||	ƒ|< W d   ƒ n1 sRw   Y  n:|tju r_t
nd }
t d
d¡�# t |
¡� d	||	ƒ|< W d   ƒ n1 s~w   Y  W d   ƒ n1 s�w   Y  |g d¢g d¢g d¢dœtddƒd�}t |	|¡ |rµt ||¡ d S d	|dd…< t ||¡ d S )N©r"   r#   r$   r&   ©r&   r'   r(   rL   ©r*   r+   r,   çš™™™™™Ù?r-   r"   r&   Úintz&setitem with labels selects on columnsr   rP   rQ   )r   r   r&   )r   r   rL   )ç        rn   rl   r@   r$   )r   r7   Úsetitemrb   r4   Úndarrayr   ÚpytestÚskiprD   r   rU   rV   rW   rE   r8   )r    Ú
indexer_sirh   r9   rF   r:   r   r   r;   r<   rQ   r=   r   r   r   Ú test_subset_set_with_row_indexer:  s>   



ÿ


ÿ€ÿ€ÿÿrt   c           
   	   C   sV  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|dd… }|dk}|r(d||< nJ|rCt ¡ � d||< W d   ƒ n1 s=w   Y  n/t d	d
¡�! t t¡� d||< W d   ƒ n1 s^w   Y  W d   ƒ n1 smw   Y  |g d¢g d¢g d¢dœtddƒd�}	t ||	¡ |r•t ||¡ d S d|j	d< d|j	dd…df< t ||¡ d S )Nri   rj   rk   r-   r"   r&   r$   r   rP   rQ   )r#   r$   r   )r   r   r   )r+   r,   rl   r@   )r$   r.   r/   )
r   r7   rD   rU   rV   rW   r   rE   r8   ra   )
r    r9   rF   r:   r   r   r;   r<   r^   r=   r   r   r   Útest_subset_set_with_maski  s6   



ÿ€
ÿ€ÿÿ
ru   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�}	|s8|r=|	|d< n/t dd¡�! t t¡� |	|d< W d   ƒ n1 sXw   Y  W d   ƒ n1 sgw   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   é
   é   rH   rO   ÚInt64r.   rP   rQ   r'   r(   r+   r,   r@   )r   r4   rT   rU   rV   r7   rW   r   rB   rC   rE   r8   )r    r9   rF   rY   r   r:   r   r;   r<   Úarrr=   r   r   r   Útest_subset_set_columnŠ  s*   


ÿ€ÿ
ÿrz   c              	   C   s¾  | \}}}|g d¢g d¢t jg d¢|d�dœƒ}| ¡ }|dd… }	|r5t jdd	gd
d�|	jd d …df< ne|r\t ¡ � t jdd	gd
d�|	jd d …df< W d   ƒ n1 sVw   Y  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 s•w   Y  |	j	 
¡  |dd	gddgt jddg|d�dœtddƒd�}
t |	|
¡ |rÇt ||¡ d S t jdd	gd
d�|jdd…df< t ||¡ d S )Nr!   r%   rK   rO   r-   r"   r$   rv   rw   rH   r.   rP   rQ   ©Úraise_on_extra_warningsr'   r(   rM   rN   r@   )r4   rT   r   ra   r7   rD   rU   rV   rW   rB   rC   rE   r8   )r    r9   rF   rX   r   r:   r   r   r;   r<   r=   r   r   r   Útest_subset_set_column_with_loc¥  s@   
 ÿ"
"ÿ€þ"ü€ÿ
 þ r}   c           
   	   C   sZ  | \}}}|dg d¢iƒ}|  ¡ }|dd… }|r#d|jd d …df< nW|rCt ¡ � d|jd d …df< W d   ƒ n1 s=w   Y  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   rP   rQ   r{   r@   )r   ra   r7   rD   rU   rV   rW   rB   rC   rE   r8   )
r    r9   rF   rX   r:   r   r   r;   r<   r=   r   r   r   Ú test_subset_set_column_with_loc2Ð  s6   

ÿ€þü€ÿ
r~   c           
   	      sR  | \}}}|g d¢g d¢t jg d¢|d�dœƒ}| ¡ }|dd… ‰ |s&|r-dˆ d	d
g< n1t dd¡�# t t¡� dˆ d	d
g< W d   ƒ n1 sJw   Y  W d   ƒ n1 sYw   Y  ˆ j 	¡  |rrt
‡ fdd„dD ƒƒsrJ ‚|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%   rK   rO   r-   r"   r$   r   r.   r0   rP   rQ   c                 3   s   � | ]	}ˆ j  |¡V  qd S r   )rB   Ú_has_no_reference©Ú.0Úi©r<   r   r   Ú	<genexpr>  s   € z*test_subset_set_columns.<locals>.<genexpr>)r   r#   r'   r(   r@   r   rH   )r4   rT   r   rU   rV   r7   rW   r   rB   rC   ÚallrE   r   r8   )
r    r9   rF   r   rY   r   r:   r   r;   r=   r   rƒ   r   Útest_subset_set_columnsõ  s.   
 ÿÿ€ÿ
&r†   r.   c           
      C   sF  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|dd… }|r)d|jd d …|f< n?|rIt ¡ � d|jd d …|f< W d   ƒ n1 sCw   Y  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 	||	¡ |r�t 	||¡ d S d|jdd…ddgf< t 	||¡ d S )Nr!   r)   r%   r-   r"   r$   r   rP   rQ   rn   r'   r(   r@   r#   r.   r/   )
r   ra   r7   rD   rU   rV   rB   rC   rE   r8   )
r    rh   r9   rF   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>B  ó    r‹   c                 C   s   | dd… ddg S ©Nr   r#   r.   r/   r   rŠ   r   r   r   r‹   C  rŒ   c                 C   ó   | ddg j dd… S r‰   ©r6   rŠ   r   r   r   r‹   D  ó    c                 C   rŽ   )Nr.   r/   r   r"   ©ra   rŠ   r   r   r   r‹   E  r�   c                 C   s   | dd… j d d …dd…f S )Nr   r#   r�   rŠ   r   r   r   r‹   F  ó    c                 C   s   | dd… j d d …dd…f S r�   r‘   rŠ   r   r   r   r‹   G  r’   )zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-sliceúcolumn-iloc-sliceúcolumn-loc-slicec                 C   sF  |\}}}|g d¢g d¢t jg d¢|d�dœƒ}	|	 ¡ }
| jjj}|s(|dv }n| d¡}||	ƒ}t |o6|¡� d|j	d	< W d   ƒ n1 sHw   Y  |sQ|sXt 
|	|
¡ n	|	j	d	 dksaJ ‚||	ƒ}t |oj|¡� d|	j	d	< W d   ƒ n1 s|w   Y  |d
dgddgdœƒ}|s�|s˜t 
||¡ d S |j	d	 dks¡J ‚d S )Nr!   r%   rK   rO   r-   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slice)r“   r”   r   r1   r"   r#   r&   r'   ©r.   r/   )r4   rT   r   ÚnodeÚcallspecÚidÚendswithr7   rD   r6   r8   )r   r    rˆ   r   r9   rX   rF   r:   r   r   r;   Útest_callspecÚsubset_is_viewr<   r=   r   r   r   Útest_subset_chained_getitem?  s4   
! ÿ

ÿÿÿrœ   c                 C   s>  | \}}}|g d¢g d¢t jg d¢|d�dœƒ}| ¡ }|d d … d dd… }	| ¡  t |¡� d|	jd< W d   ƒ n1 sAw   Y  |rOt ||¡ n	|jd	 dksXJ ‚|d d … d dd… }	| ¡  t |¡� d|jd	< W d   ƒ n1 s}w   Y  |d
dgdd�}
|r”t |	|
¡ d S |	jd dks�J ‚d S )Nr!   r%   rK   rO   r-   r.   r   r#   r1   r"   ©Úname)	r4   rT   r   Ú_clear_item_cacher7   rD   r6   r8   Úassert_series_equal)r    r   r9   rF   rY   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"   )ra   r6   r£   r   r   r   r‹   ´  s    ÿþýü)Úgetitemr6   ra   z
long-chainc           
      C   s  | \}}}|g d¢g d¢d�}|  ¡ }||ƒ}t |¡� d|jd< W d   ƒ n1 s,w   Y  |r:t ||¡ n	|jd dksCJ ‚|jdd… jdd… }t |¡� d|jd< W d   ƒ n1 sdw   Y  |ddgdd	gd�}	|r}t ||	¡ d S |jd dks†J ‚d S )
Nr!   r-   r@   r   r$   r#   r"   r.   r/   ©r   r7   rD   r6   r    )
r    rˆ   r9   rF   r:   r   r¤   Ús_origr<   r=   r   r   r   Ú"test_subset_chained_getitem_series®  s$   
ÿÿrª   c                 C   s0  t g d¢g d¢g d¢dœƒ}| ¡ }|d d … jd jdd… }t |¡� d|jd< W d   ƒ n1 s5w   Y  | s>|rEt ||¡ n	|jd dksNJ ‚|d d … jd jdd… }t |¡� d|jd< W d   ƒ n1 sqw   Y  tdd	gd
dgdd�}| s…|r�t ||¡ d S |jd dks–J ‚d S )Nr!   r%   rK   r-   r   r#   r1   r"   r&   r.   r/   )rA   rž   )r   r   r6   r7   rD   r8   r   r    )r9   rX   rF   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§   ra   zloc-rowsr6   z	iloc-rowsc           
      C   s    | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }||ƒ}	|	|us!J ‚t |¡� d|	jd< W d   ƒ n1 s6w   Y  |rEt ||¡ d S |jd dksNJ ‚d S )Nr!   r%   rK   r-   r   r1   )r   r7   rD   r6   r8   )
r    rˆ   r9   rF   rY   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§   ra   r6   c           	      C   s˜   | \}}}|g d¢g d¢d�}|  ¡ }||ƒ}||usJ ‚t |¡� d|jd< W d   ƒ n1 s2w   Y  |rAt ||¡ d S |jd dksJJ ‚d S )Nr!   r-   r@   r   r¨   )	r    rˆ   r9   rF   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 ‚t |¡� d|jd< W d   ƒ n1 s:w   Y  |rMt t|ƒt|ƒ¡rMJ ‚|g d¢g d¢d�}t ||¡ |rgt ||¡ d S |jd dkspJ ‚d S )Nr!   r-   r@   r   r2   )r   r4   r5   r   r7   rD   r6   r    )	r    r9   rF   r:   r   r¤   r©   r<   r=   r   r   r   Útest_series_getitem_slice7  s   
ÿrµ   c                 C   sÆ   t g d¢ƒ}| ¡ }|d }t t|ƒt|ƒ¡sJ ‚t |¡� d|jd< W d   ƒ n1 s/w   Y  | rBt t|ƒt|ƒ¡rBJ ‚t g d¢ƒ}t ||¡ | rXt ||¡ d S |jd dksaJ ‚d S )Nr!   .r   r2   )	r   r   r4   r5   r   r7   rD   r6   r    )r9   rF   r¤   r©   r<   r=   r   r   r   Útest_series_getitem_ellipsisQ  s   ÿr¶   c                 C   s   | \}}}|g d¢g d¢d�}|  ¡ }|d d … }	d }
d}|tju r0t|tjƒr0|jjdkr0t}
|rQtj	|
d ud�� d||	ƒ|< W d   ƒ n1 sKw   Y  ntj
|
|d�� d||	ƒ|< W d   ƒ n1 siw   Y  |g d	¢g d¢d�}t |	|¡ |rˆt ||¡ d S t ||¡ d S )
Nr!   r-   r@   z;Series.__setitem__ treating keys as positions is deprecatedr‚   r{   r   ©Úmatch)r   r   r$   )r   r7   ro   rb   r4   rp   r   ÚkindÚFutureWarningrD   rW   r    )r    rs   rh   r9   rF   r:   r   r¤   r©   r<   rQ   Úmsgr=   r   r   r   Ú#test_series_subset_set_with_indexerj  s0   
	

ÿÿ€ÿ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 ¡  t |oX|dk¡� d	|j	d
< W d   ƒ n1 sjw   Y  t t|dƒt|dƒ¡s}J ‚|  ¡ }t |¡� d|j	d< W d   ƒ n1 s–w   Y  |r¥t ||¡ d S |j	d dks®J ‚d S )Nr!   r%   r)   r-   r.   r/   r0   r   éÈ   )r   r/   éd   ©r   r.   )
r   r4   r5   r   r7   r8   rB   rC   rD   ra   )	r    r9   rF   rY   r   r:   r   r;   r±   r   r   r   Útest_del_frame“  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-   r@   r.   r/   r0   r¾   r   )r   r4   r5   r   r7   r    Úvaluesra   )r    r:   r   r¤   r©   r³   rÁ   r   r   r   Útest_del_series²  s   

rÂ   c              	   C   sf  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|d }	t t|	dƒt|dƒ¡s)J ‚|s-|r2d|	d< nR|rMt ¡ � d|	d< W d   ƒ n1 sGw   Y  n7|dkrStnd }
t dd	¡�! t 	|
¡� d|	d< W d   ƒ n1 spw   Y  W d   ƒ n1 sw   Y  |g d
¢dd�}t 
|	|¡ |r¦t ||¡ t 
|d |d ¡ d S d|jd< t ||¡ d S )Nr!   r%   r)   r-   r.   r   r   rP   rQ   r2   r�   r1   )r   r4   r5   r   r7   rD   r   rU   rV   rW   r    r8   r6   )r    r9   rF   rX   rY   r   r   r   r;   r¤   rQ   r=   r   r   r   Útest_column_as_seriesÊ  s4   



ÿ€
ÿ€ÿ
rÃ   c              	   C   sØ  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|d }	|dkrXt |¡�# tjtdd�� d	|	d
< W d   ƒ n1 s;w   Y  W d   ƒ n1 sJw   Y  |g d¢dd�}
nn|s^|s^|rƒtjtdd�� d	|	d
< W d   ƒ n1 stw   Y  |g d¢tdd�}
nCt	 
dd¡�, d ddg¡}tjttf|d�� d	|	d
< W d   ƒ n1 s©w   Y  W d   ƒ n1 s¸w   Y  |g d¢tdd�}
t |	|
¡ |ràt ||¡ t |d |d ¡ d S |
|d< t ||¡ d S )Nr!   r%   r)   r-   r.   r   zInvalid valuer·   Úfoor   r�   zincompatible dtype)rÄ   r#   r$   )r   rž   rP   rQ   ú|zAA value is trying to be set on a copy of a slice from a DataFrameú3Setting an item of incompatible dtype is deprecated)r   r7   rD   rq   ÚraisesÚ	TypeErrorrW   rº   ÚobjectrU   rV   Újoinr   r    r8   )r    r9   rX   rF   rY   r   r   r   r;   r¤   r=   r»   r   r   r   Ú%test_column_as_series_set_with_upcastî  sJ   

ÿ€ÿ
ÿþÿÿ
ý€ù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   sf  |\}}}|g d¢g d¢g d¢dœƒ}	|	  ¡ }
||	ƒ}||	ƒ}d| jjv }|s+|s+|r2||us1J ‚n||u s8J ‚|s<|rBd|jd< nT|r^t ¡ � d|jd< W d   ƒ n1 sXw   Y  n8|dkrdtnd }t dd	¡�" t 	|¡� d|jd< W d   ƒ n1 s‚w   Y  W d   ƒ n1 s‘w   Y  |r¨t 
||
d
 ¡ t |	|
¡ d S |jd dks±J ‚d S )Nr!   r%   r)   r-   r6   r   r   rP   rQ   r.   )r   r–   rž   r6   r7   rD   r   rU   rV   rW   r    r8   )r   r    rˆ   r9   rF   rX   rY   r   r:   r   r;   Ús1r³   Úis_ilocrQ   r   r   r   Ú#test_column_as_series_no_item_cache  s6   

ÿ€ÿ€ÿrÑ   c                 C   s¢   | \}}}|g d¢g d¢dœƒ}|g d¢ƒ}||d< |r*t  t|dƒt|ƒ¡s)J ‚nt  t|dƒt|ƒ¡r7J ‚d|d< |g d¢g d¢g d¢dœƒ}t ||¡ d S )Nr!   r)   r•   )rv   rw   é   Únewr   )r.   r/   rÓ   )r4   r5   r   r7   r8   )r    r9   r:   r   r   r   r¤   r=   r   r   r   Ú%test_dataframe_add_column_from_seriesP  s   
rÔ   Úvalr¾   zindexer_func, indexerr¿   r1   r   r)   rK   c           	      C   s¨  t g d¢g d¢|dœƒ}| ¡ }|d d … }|dkr9|s9tjtdd�� |||ƒ|< W d   ƒ n1 s4w   Y  |dkr]|r]tjtdd�� |||ƒ|< W d   ƒ n1 sWw   Y  nt |od|dk¡� |||ƒ|< W d   ƒ n1 sww   Y  | r¢t t|d	ƒt|d	ƒ¡sŒJ ‚t t|dƒt|dƒ¡ršJ ‚t 	||¡ d S t t|d
ƒt|d
ƒ¡s°J ‚|dkrÄt t|dƒt|dƒ¡rÂJ ‚d S t t|dƒt|dƒ¡sÒJ ‚d S )Nr!   r%   r-   r.   rÆ   r·   z,incompatible dtype|Setting a value on a viewr¾   r/   r0   )
r   r   r7   rW   rº   rD   r4   r5   r   r8   )	r9   rF   Úindexer_funcrh   rÕ   r   r   r;   Úviewr   r   r   Ú)test_set_value_copy_only_necessary_columnc  s6   ÿýÿý€ÿ  rØ   c                 C   sÈ   t g d¢tj g d¢g d¢g¡d�}| ¡ }|d }t t|ƒt|ƒ¡s&J ‚t 	|¡� d|j
d< W d   ƒ n1 s;w   Y  | rJt ||¡ d S t g d¢tj g d¢g d¢g¡d�}t ||¡ d S )	Nr!   )r"   r"   r#   )r$   r&   r'   r@   r"   r¾   r   )r¾   r#   r$   )r   rU   Ú
MultiIndexÚfrom_arraysr   r4   r5   r   r7   rD   r6   r    )r9   rF   r   Úser_origÚresultr=   r   r   r   Útest_series_midx_slice•  s   $ÿÿrÝ   c              	   C   s$  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 |rWt 
¡ � d|jd	< W d   ƒ n1 sQw   Y  n0t d
d¡�" t t¡� d|jd	< W d   ƒ n1 ssw   Y  W d   ƒ n1 s‚w   Y  |jd	 dks�J ‚d S )Nr"   r#   )©r.   Úx)r.   Úy)r/   rß   )r.   r   rÞ   rß   r¾   r1   rP   rQ   )r   r   rB   r   r4   r5   r   r6   r7   r8   rD   rU   rV   rW   r   )r9   rF   rX   r   r;   Únew_dfr   r   r   Útest_getitem_midx_slice¥  s,   

ÿ€ÿ€ÿrâ   c                 C   s¤   t g d¢tj g d¢¡d�}|d }t t|ƒt|ƒ¡sJ ‚t |¡� d|j	d< W d   ƒ n1 s3w   Y  | rPt g d¢tj g d¢¡d�}t 
||¡ d S d S )Nr!   ))©r"   r#   r$   )rã   r&   ))r#   r$   r&   r@   rã   r¾   r   )r   rU   rÙ   Úfrom_tuplesr4   r5   r   r7   rD   r6   r    )r9   rF   r   rÜ   r=   r   r   r   Útest_series_midx_tuples_slice¿  s    þÿþûrå   c                  C   sæ   dd„ } t j | ddƒ| ddƒ| ddƒ| ddƒg¡}t jjg d	¢d
dgd�}td||d� ¡ jdd�}|d dk}| ¡ }|jt j|d d …ddgf d d …f }|jt jd d …d d …ddgf d d …f }t	 
||¡ t	 ||¡ d S )Nc                    s   ‡ fdd„t |ƒD ƒS )Nc                    s   g | ]}ˆ › |› �‘qS r   r   r€   ©Úprefixr   r   Ú
<listcomp>Ó  r¦   zCtest_midx_read_only_bool_indexer.<locals>.mklbl.<locals>.<listcomp>)rE   )rç   Únr   ræ   r   ÚmklblÒ  s   z/test_midx_read_only_bool_indexer.<locals>.mklblÚAr&   ÚBr#   ÚCÚD)©r.   rÄ   )r.   Úbar)r/   rÄ   )r/   ÚbahÚlvl0Úlvl1)Únamesr"   )rA   r   )Úaxisrï   ÚC1ÚC3)rU   rÙ   Úfrom_producträ   r   Ú
sort_indexr   ra   Ú
IndexSlicer7   r8   r    )rê   ÚidxÚcolsr   r^   Úexpected_maskrÜ   r=   r   r   r   Ú test_midx_read_only_bool_indexerÐ  s   "ÿÿ&*rþ   c                 C   sÈ   t dg d¢iƒ}t g d¢g d¢dœƒ}| ¡ }||jd d …ddgf< | rIt t|dƒt|dƒ¡s2J ‚t t|dƒt|dƒ¡s@J ‚|j d¡rHJ ‚nt t|dƒt|dƒ¡rWJ ‚d|jd	< t	 
||¡ d S )
Nr.   r!   r%   rR   r/   r0   r"   r¾   rS   )r   r   ra   r4   r5   r   rB   r   r6   r7   r8   )r9   r   ÚrhsÚrhs_origr   r   r   Ú!test_loc_enlarging_with_dataframeå  s   
r  ):r   r4   rq   Úpandas.errorsr   Úpandas.core.dtypes.commonr   ÚpandasrU   r   r   Úpandas._testingÚ_testingr7   Úpandas.tests.copy_view.utilr   Úfixturer    r>   r?   rG   ÚmarkÚparametrizer[   r]   rT   re   rg   rt   ru   rz   r}   r~   r†   r‡   rœ   r¡   rª   r«   r²   r´   rµ   r¶   r¼   rÀ   rÂ   rÃ   rË   rÑ   rÔ   ra   r6   rØ   rÝ   râ   rå   rþ   r  r   r   r   r   Ú<module>   s@   
#$ÿ
+ÿ"ýý3ÿ"ýý3"ý
*!ÿ
(%ÿ
 ý
"úöÿ5ÿ
!ü
ô
û÷
ýù
	"ý
$$-ýù
	,úþÿ#