a
    é´«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r6dd„ }dd„ }| j ||fS )	Nr   c                  _   s   t | i |¤ŽS ©N)r   ©ÚargsÚkwargs© r   úc/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/copy_view/test_indexing.pyÚmake_dataframe   s    zbackend.<locals>.make_dataframec                  _   s   t | i |¤ŽS r
   )r   r   r   r   r   Úmake_series   s    zbackend.<locals>.make_seriesr   c                  _   sX   t | i |¤Ž}| ¡ }|jD ]2}t|| jƒrt|| jƒs||  d¡||< q| ¡ S )NZFloat64)r   Úconvert_dtypesÚcolumnsr   ÚdtypeÚastypeÚcopy)r   r   ÚdfZ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 }|rft t|dƒt|dƒ¡sZJ ‚d|jd< n&t t|dƒt|dƒ¡r‚J ‚d|jd< t t|dƒt|dƒ¡r¨J ‚|g d	¢g d¢d
œƒ}t ||¡ t ||¡ d S )N©é   é   é   ©é   é   é   ©çš™™™™™¹?çš™™™™™É?ç333333Ó?©ÚaÚbÚcr*   r,   r   ©r   r   ©r   r   r    ©r*   r,   )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 }|rRt  t|dƒt|dƒ¡sRJ ‚d|jd< t  t|dƒt|dƒ¡rxJ ‚|r˜t  t|dƒt|dƒ¡s˜J ‚|g d¢g d¢d	œƒ}t ||¡ d S )
Nr   r!   r%   r)   r*   r,   r   r-   r/   )r0   r1   r   r2   r3   r4   )r   r5   r6   r   r   r8   r9   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ƒ¡s`J ‚|rŒd|jd	< t t|dƒt|dƒ¡rÀJ ‚n4t |¡� d|jd	< W d   ƒ n1 s¶0    Y  |j ¡  |ddgd
dgddgdœt	ddƒd�}t 
||¡ |�rt 
||¡ nd|jd< t 
||¡ d S )Nr   r!   r%   r)   r   r    r*   r   r-   r#   r$   r'   r(   ©Úindex)r   r   )r   Ú_mgrÚ_verify_integrityr0   r1   r   r2   r3   Úassert_cow_warningÚranger4   )	r   r5   Úwarn_copy_on_writer6   r   r   r7   r8   r9   r   r   r   Útest_subset_row_sliceh   s$    


(
&
rC   r   Úint64Z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	ƒ¡sŽJ ‚d
|jd< t  t|d	ƒt|	d	ƒ¡r´J ‚nª|rðt 	|¡� d
|jd< W d   ƒ n1 sä0    Y  np|røt
nd }t dd¡�F t |¡� d
|jd< W d   ƒ n1 �s60    Y  W d   ƒ n1 �sV0    Y  |g d¢t jg d¢|d�dœƒ}t ||¡ |�s¶|�sž|�r¶d
|
jd< t |	|
¡ nt |	|
¡ d S )NrD   r   r   r!   ©é   é   é	   ©r   r)   r   r+   r   r-   Úchained_assignmentÚwarn)r   r#   r$   ©r+   r,   ©r   r   )r0   Úarrayr   r2   r>   r?   r1   r   r3   r@   r   ÚpdÚoption_contextÚassert_produces_warningr4   )r   r5   rB   Úusing_array_managerr   Údtype_backendr   r6   Zsingle_blockr   r7   r8   rL   r9   r   r   r   Útest_subset_column_sliceŒ   s8    
ÿþ ÿ

*J 
rU   Úrow_indexerr   r   )FTT)ÚsliceÚmaskrO   Úcolumn_indexerr+   r,   c                 C   s   | \}}}	|g d¢g d¢t jg d¢|d�dœƒ}
|
 ¡ }|
j||f }t|tƒort|tƒor|pr|dkor|dkor| }t |o~|¡� d|jd	< W d   ƒ n1 s¢0    Y  |dd
gt jddg|d�dœt	ddƒd�}t 
||¡ |rðd|jd< t 
|
|¡ d S ©Nr   r!   rF   rJ   r)   rD   r   r   r-   r$   rH   rI   rM   r   r    r<   )r   r   )r0   rO   r   ÚlocÚ
isinstancerW   r3   r@   r2   rA   r4   ©r   r   rV   rY   rS   r5   rB   rT   r   r6   r   r7   r8   Zmutate_parentr9   r   r   r   Útest_subset_loc_rows_columnsº   s0    
 ÿ
ÿÿø("ÿ
r^   r    c                 C   s   | \}}}	|g d¢g d¢t jg d¢|d�dœƒ}
|
 ¡ }|
j||f }t|tƒort|tƒor|pr|dkor|dkor| }t |o~|¡� d|jd	< W d   ƒ n1 s¢0    Y  |dd
gt jddg|d�dœtddƒd�}t 	||¡ |rðd|jd< t 	|
|¡ d S rZ   )
r0   rO   r   r2   r\   rW   r3   r@   rA   r4   r]   r   r   r   Útest_subset_iloc_rows_columnsú   s0    
 ÿ
ÿÿø("ÿ
r_   Úindexer)TTFc              	   C   sˆ  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|dd… }	|tju rdt|tjƒrd|jdkrdt d¡ |rvd	||	ƒ|< n°|r°t 	¡ � d	||	ƒ|< W d   ƒ n1 s¤0    Y  nv|tju r¾t
nd }
t d
d¡�F t |
¡� d	||	ƒ|< W d   ƒ n1 sü0    Y  W d   ƒ n1 �s0    Y  |g d¢g d¢g d¢dœtddƒd�}t |	|¡ |�rlt ||¡ nd	|dd…< t ||¡ d S )N©r   r   r    r"   ©r"   r#   r$   rG   ©r&   r'   r(   çš™™™™™Ù?r)   r   r"   Úintz&setitem with labels selects on columnsr   rK   rL   )r   r   r"   )r   r   rG   )ç        rf   rd   r<   r    )r   r3   Úsetitemr\   r0   Úndarrayr   ÚpytestÚskipr@   r   rP   rQ   rR   rA   r4   )r   Ú
indexer_sir`   r5   rB   r6   r   r   r7   r8   rL   r9   r   r   r   Ú test_subset_set_with_row_indexer:  s8    

ÿ
þý

,Jÿrl   c           
   	   C   sV  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|dd… }|dk}|rPd||< n”|r†t ¡ � d||< W d   ƒ qä1 sz0    Y  n^t d	d
¡�B t t¡� d||< W d   ƒ n1 s¼0    Y  W d   ƒ n1 sÚ0    Y  |g d¢g d¢g d¢dœtddƒd�}	t ||	¡ |�r*t ||¡ n(d|j	d< d|j	dd…df< t ||¡ d S )Nra   rb   rc   r)   r   r"   r    r   rK   rL   )r   r    r   )r   r   r   )r'   r(   rd   r<   )r    r*   r+   )
r   r3   r@   rP   rQ   rR   r   rA   r4   r[   )
r   r5   rB   r6   r   r   r7   r8   rX   r9   r   r   r   Útest_subset_set_with_maski  s,    


(Dÿ
rm   c              	   C   s$  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|dd… }|dkrVtjdd	gd
d�}	ntjdd	gdd�}	|sp|rz|	|d< n^t dd¡�B t t¡� |	|d< W d   ƒ n1 s°0    Y  W d   ƒ n1 sÎ0    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   é
   é   rD   rJ   ZInt64r*   rK   rL   r#   r$   r'   r(   r<   )r   r0   rO   rP   rQ   r3   rR   r   r>   r?   rA   r4   )r   r5   rB   rT   r   r6   r   r7   r8   Zarrr9   r   r   r   Útest_subset_set_columnŠ  s$    

D
ÿrp   c              	   C   sÂ  | \}}}|g d¢g d¢t jg d¢|d�dœƒ}| ¡ }|dd… }	|rjt jdd	gd
d�|	jd d …df< nÎ|r¸t ¡ �0 t jdd	gd
d�|	jd d …df< W d   ƒ n1 s¬0    Y  n€t dd¡�b tjd | d��0 t jdd	gd
d�|	jd d …df< W d   ƒ n1 �s0    Y  W d   ƒ n1 �s.0    Y  |	j	 
¡  |dd	gddgt jddg|d�dœtddƒd�}
t |	|
¡ |�r’t ||¡ n,t jdd	gd
d�|jdd…df< t ||¡ d S )Nr   r!   rF   rJ   r)   r   r    rn   ro   rD   r*   rK   rL   ©Zraise_on_extra_warningsr#   r$   rH   rI   r<   )r0   rO   r   r[   r3   r@   rP   rQ   rR   r>   r?   rA   r4   )r   r5   rB   rS   r   r6   r   r   r7   r8   r9   r   r   r   Útest_subset_set_column_with_loc¥  s6    
 ÿ"
@þ`
 þ rr   c           
   	   C   sZ  | \}}}|dg d¢iƒ}|  ¡ }|dd… }|rFd|jd d …df< n®|r†t ¡ �" d|jd d …df< W d   ƒ qô1 sz0    Y  nnt dd¡�R tjd | d��" d|jd d …df< W d   ƒ n1 sÌ0    Y  W d   ƒ n1 sê0    Y  |j ¡  |dddgit	ddƒd	�}	t 
||	¡ |�r8t 
||¡ nd|jdd…df< t 
||¡ d S )
Nr*   r   r   r    r   rK   rL   rq   r<   )r   r[   r3   r@   rP   rQ   rR   r>   r?   rA   r4   )
r   r5   rB   rS   r6   r   r   r7   r8   r9   r   r   r   Ú test_subset_set_column_with_loc2Ð  s,    

2þN
rs   c           
   	      sT  | \}}}|g d¢g d¢t jg d¢|d�dœƒ}| ¡ }|dd… ‰ |sL|rZdˆ d	d
g< nbt dd¡�F t t¡� dˆ d	d
g< W d   ƒ n1 s”0    Y  W d   ƒ n1 s²0    Y  ˆ j 	¡  |rät
‡ fdd„dD ƒƒsäJ ‚|ddgddgddgdœtddƒd�}	|dk�r8|	d	  d¡|	d	< |	d
  d¡|	d
< t ˆ |	¡ t ||¡ d S )Nr   r!   rF   rJ   r)   r   r    r   r*   r,   rK   rL   c                 3   s   | ]}ˆ j  |¡V  qd S r
   )r>   Ú_has_no_reference©Ú.0Úi©r8   r   r   Ú	<genexpr>  ó    z*test_subset_set_columns.<locals>.<genexpr>)r   r   r#   r$   r<   r   rD   )r0   rO   r   rP   rQ   r3   rR   r   r>   r?   ÚallrA   r   r4   )
r   r5   rB   r   rT   r   r6   r   r7   r9   r   rx   r   Útest_subset_set_columnsõ  s(    
 ÿH
&
r|   r*   c           
      C   sF  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|dd… }|rRd|jd d …|f< n~|r’t ¡ �" d|jd d …|f< W d   ƒ qÐ1 s†0    Y  n>t dd	¡�" d|jd d …|f< W d   ƒ n1 sÆ0    Y  |j ¡  |ddgd
d
gddgdœtddƒd�}	t 	||	¡ |�r t 	||¡ n"d|jdd…ddgf< t 	||¡ d S )Nr   r%   r!   r)   r   r    r   rK   rL   rf   r#   r$   r<   r   r*   r+   )
r   r[   r3   r@   rP   rQ   r>   r?   rA   r4   )
r   r`   r5   rB   r6   r   r   r7   r8   r9   r   r   r   Ú#test_subset_set_with_column_indexer  s$    


20
&r}   Úmethodc                 C   s   | ddg dd… S ©Nr*   r+   r   r   r   ©r   r   r   r   Ú<lambda>B  rz   r�   c                 C   s   | dd… ddg S ©Nr   r   r*   r+   r   r€   r   r   r   r�   C  rz   c                 C   s   | ddg j dd… S r   ©r2   r€   r   r   r   r�   D  rz   c                 C   s   | ddg j dd… S )Nr*   r+   r   r   ©r[   r€   r   r   r   r�   E  rz   c                 C   s   | dd… j d d …dd…f S )Nr   r   rƒ   r€   r   r   r   r�   F  rz   c                 C   s   | dd… j d d …dd…f S r‚   r„   r€   r   r   r   r�   G  rz   )zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-sliceúcolumn-iloc-sliceúcolumn-loc-slicec                 C   sJ  |\}}}|g d¢g d¢t jg d¢|d�dœƒ}	|	 ¡ }
| jjj}|sP|dv }n
| d¡}||	ƒ}t |ol|¡� d|j	d	< W d   ƒ n1 s�0    Y  |s¢|s°t 
|	|
¡ n|	j	d	 dksÂJ ‚||	ƒ}t |oÔ|¡� d|	j	d	< W d   ƒ n1 sø0    Y  |d
dgddgdœƒ}|�s$|�s2t 
||¡ n|j	d	 dk�sFJ ‚d S )Nr   r!   rF   rJ   r)   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slice)r…   r†   r   r-   r   r   r"   r#   ©r*   r+   )r0   rO   r   ÚnodeZcallspecÚidÚendswithr3   r@   r2   r4   )r   r   r~   r   r5   rS   rB   r6   r   r   r7   Ztest_callspecZsubset_is_viewr8   r9   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… }	| ¡  t |¡� d|	jd< W d   ƒ n1 s‚0    Y  |ržt ||¡ n|jd	 dks°J ‚|d d … d dd… }	| ¡  t |¡� d|jd	< W d   ƒ n1 sú0    Y  |d
dgdd�}
|�r(t |	|
¡ n|	jd dk�s<J ‚d S )Nr   r!   rF   rJ   r)   r*   r   r   r-   r   ©Úname)	r0   rO   r   Z_clear_item_cacher3   r@   r2   r4   Úassert_series_equal)r   r   r5   rB   rT   r   r   r   r7   r8   r9   r   r   r   Ú"test_subset_chained_getitem_columnŠ  s(    
 ÿ((r�   c                 C   s   | dd… dd… S ©Nr*   r,   r+   r   ©Úsr   r   r   r�   ±  rz   c                 C   s   | j dd… j dd… S )Nr   r    r   rƒ   r‘   r   r   r   r�   ²  rz   c                 C   s   | j dd… j dd… S r�   r„   r‘   r   r   r   r�   ³  rz   c                 C   s6   | j dd… jdd… jdd… j dd… jdd… S )Nr*   r,   r   r    r   r+   r   )r[   r2   r‘   r   r   r   r�   ´  s   ÿþýü)Úgetitemr2   r[   z
long-chainc           
      C   s  | \}}}|g d¢g d¢d�}|  ¡ }||ƒ}t |¡� d|jd< W d   ƒ n1 sX0    Y  |rtt ||¡ n|jd dks†J ‚|jdd… jdd… }t |¡� d|jd< W d   ƒ n1 sÈ0    Y  |ddgdd	gd�}	|røt ||	¡ n|jd dk�sJ ‚d S )
Nr   r)   r<   r   r    r   r   r*   r+   ©r   r3   r@   r2   rŽ   )
r   r~   r5   rB   r6   r   r’   Ús_origr8   r9   r   r   r   Ú"test_subset_chained_getitem_series®  s     
((r–   c                 C   s4  t g d¢g d¢g d¢dœƒ}| ¡ }|d d … jd jdd… }t |¡� d|jd< W d   ƒ n1 sj0    Y  | s||rŠt ||¡ n|jd dksœJ ‚|d d … jd jdd… }t |¡� d|jd< W d   ƒ n1 sâ0    Y  tdd	gd
dgdd�}| �s|�rt ||¡ n|jd dk�s0J ‚d S )Nr   r!   rF   r)   r   r   r-   r   r"   r*   r+   )r=   r�   )r   r   r2   r3   r@   r4   r   rŽ   )r5   rS   rB   r   r7   r8   r9   r   r   r   Ú$test_subset_chained_single_block_rowÙ  s    ((r—   c                 C   s   | d d … S r
   r   r€   r   r   r   r�   ÷  rz   c                 C   s   | j d d …d d …f S r
   r„   r€   r   r   r   r�   ø  rz   c                 C   s   | j d d … S r
   r„   r€   r   r   r   r�   ù  rz   c                 C   s   | j d d …d d …f S r
   rƒ   r€   r   r   r   r�   ú  rz   c                 C   s   | j d d … S r
   rƒ   r€   r   r   r   r�   û  rz   )r“   r[   zloc-rowsr2   z	iloc-rowsc           
      C   sž   | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }||ƒ}	|	|usBJ ‚t |¡� d|	jd< W d   ƒ n1 sl0    Y  |rˆt ||¡ n|jd dksšJ ‚d S )Nr   r!   rF   r)   r   r-   )r   r3   r@   r2   r4   )
r   r~   r5   rB   rT   r   r6   r   r7   Údf2r   r   r   Útest_null_sliceô  s    
(r™   c                 C   s   | d d … S r
   r   r‘   r   r   r   r�     rz   c                 C   s   | j d d … S r
   r„   r‘   r   r   r   r�     rz   c                 C   s   | j d d … S r
   rƒ   r‘   r   r   r   r�     rz   )r“   r[   r2   c           	      C   s–   | \}}}|g d¢g d¢d�}|  ¡ }||ƒ}||us:J ‚t |¡� d|jd< W d   ƒ n1 sd0    Y  |r€t ||¡ n|jd dks’J ‚d S )Nr   r)   r<   r   r”   )	r   r~   r5   rB   r6   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|ƒ¡sJJ ‚t |¡� d|jd< W d   ƒ n1 st0    Y  |ršt t|ƒt|ƒ¡ršJ ‚|g d¢g d¢d�}t ||¡ |rÌt ||¡ n|jd dksÞJ ‚d S )Nr   r)   r<   r   r.   )r   r0   r1   r   r3   r@   r2   rŽ   )	r   r5   rB   r6   r   r’   r•   r8   r9   r   r   r   Útest_series_getitem_slice7  s    
(rœ   c                 C   sÄ   t g d¢ƒ}| ¡ }|d }t t|ƒt|ƒ¡s4J ‚t |¡� d|jd< W d   ƒ n1 s^0    Y  | r„t t|ƒt|ƒ¡r„J ‚t g d¢ƒ}t ||¡ | r®t ||¡ n|jd dksÀJ ‚d S )Nr   .r   r.   )	r   r   r0   r1   r   r3   r@   r2   rŽ   )r5   rB   r’   r•   r8   r9   r   r   r   Útest_series_getitem_ellipsisQ  s    (r�   c                 C   s   | \}}}|g d¢g d¢d�}|  ¡ }|d d … }	d }
d}|tju r`t|tjƒr`|jjdkr`t}
|r¢tj	|
d ud�� d||	ƒ|< W d   ƒ qÜ1 s–0    Y  n:tj
|
|d�� d||	ƒ|< W d   ƒ n1 sÒ0    Y  |g d	¢g d¢d�}t |	|¡ |�rt ||¡ nt ||¡ d S )
Nr   r)   r<   z;Series.__setitem__ treating keys as positions is deprecatedrw   rq   r   ©Úmatch)r   r   r    )r   r3   rg   r\   r0   rh   r   ÚkindÚFutureWarningr@   rR   rŽ   )r   rk   r`   r5   rB   r6   r   r’   r•   r8   rL   Úmsgr9   r   r   r   Ú#test_series_subset_set_with_indexerj  s.    	
ÿ
þ
ý,*r£   c           	      C   sd  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|d d … }t t|dƒt|dƒ¡sVJ ‚|d= t t|dƒt|dƒ¡sxJ ‚t ||¡ t ||ddg ¡ |j ¡  t |o°|dk¡� d	|j	d
< W d   ƒ n1 sÔ0    Y  t t|dƒt|dƒ¡súJ ‚|  ¡ }t |¡� d|j	d< W d   ƒ n1 �s.0    Y  |�rLt ||¡ n|j	d dk�s`J ‚d S )Nr   r!   r%   r)   r*   r+   r,   r   éÈ   )r   r+   éd   ©r   r*   )
r   r0   r1   r   r3   r4   r>   r?   r@   r[   )	r   r5   rB   rT   r   r6   r   r7   r˜   r   r   r   Útest_del_frame“  s&    

(*r§   c                 C   s¬   | \}}}|g d¢g d¢d�}|  ¡ }|d d … }t t|ƒt|ƒ¡sJJ ‚|d= t t|ƒt|ƒ¡rhJ ‚t ||¡ t ||ddg ¡ |j}d|jd< |d dks¨J ‚d S )	Nr   r)   r<   r*   r+   r,   r¥   r   )r   r0   r1   r   r3   rŽ   Úvaluesr[   )r   r6   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ƒ¡sRJ ‚|sZ|rdd|	d< n¤|ršt ¡ � d|	d< W d   ƒ n1 sŽ0    Y  nn|dkr¦tnd }
t dd	¡�B t 	|
¡� d|	d< W d   ƒ n1 sà0    Y  W d   ƒ n1 sþ0    Y  |g d
¢dd�}t 
|	|¡ |�rLt ||¡ t 
|d |d ¡ nd|jd< t ||¡ d S )Nr   r!   r%   r)   r*   r   r   rK   rL   r.   rŒ   r-   )r   r0   r1   r   r3   r@   r   rP   rQ   rR   rŽ   r4   r2   )r   r5   rB   rS   rT   r   r   r   r7   r’   rL   r9   r   r   r   Útest_column_as_seriesÊ  s*    


(D
rª   c              	   C   sÞ  | \}}}|g d¢g d¢g d¢dœƒ}|  ¡ }|d }	|dkr°t |¡�F tjtdd�� d	|	d
< W d   ƒ n1 sv0    Y  W d   ƒ n1 s”0    Y  |g d¢dd�}
nâ|s¾|s¾|�rtjtdd�� d	|	d
< W d   ƒ n1 sê0    Y  |g d¢tdd�}
nŠt	 
dd¡�Z d ddg¡}tjttf|d�� d	|	d
< W d   ƒ n1 �sV0    Y  W d   ƒ n1 �sv0    Y  |g d¢tdd�}
t |	|
¡ |�rÆt ||¡ t |d |d ¡ n|
|d< t ||¡ d S )Nr   r!   r%   r)   r*   r   zInvalid valuerž   Úfoor   rŒ   zincompatible dtype)r«   r   r    )r   r�   rK   rL   ú|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   r3   r@   ri   ZraisesÚ	TypeErrorrR   r¡   ÚobjectrP   rQ   Újoinr   rŽ   r4   )r   r5   rS   rB   rT   r   r   r   r7   r’   r9   r¢   r   r   r   Ú%test_column_as_series_set_with_upcastî  s<    
D&þÿÿHr±   c                 C   s   | d S ©Nr*   r   r€   r   r   r   r�     rz   c                 C   s   | j d d …df S r²   r„   r€   r   r   r   r�     rz   c                 C   s   | j d d …df S )Nr   rƒ   r€   r   r   r   r�      rz   c              	   C   sl  |\}}}|g d¢g d¢g d¢dœƒ}	|	  ¡ }
||	ƒ}||	ƒ}d| jjv }|sV|sV|rd||uspJ ‚n||u spJ ‚|sx|r„d|jd< n¬|r¼t ¡ � d|jd< W d   ƒ n1 s°0    Y  nt|dkrÈtnd }t dd	¡�F t 	|¡� d|jd< W d   ƒ n1 �s0    Y  W d   ƒ n1 �s&0    Y  |�rTt 
||
d
 ¡ t |	|
¡ n|jd dk�shJ ‚d S )Nr   r!   r%   r)   r2   r   r   rK   rL   r*   )r   rˆ   r�   r2   r3   r@   r   rP   rQ   rR   rŽ   r4   )r   r   r~   r5   rB   rS   rT   r   r6   r   r7   Ús1rš   Zis_ilocrL   r   r   r   Ú#test_column_as_series_no_item_cache  s,    

*Jr´   c                 C   s¢   | \}}}|g d¢g d¢dœƒ}|g d¢ƒ}||d< |rTt  t|dƒt|ƒ¡snJ ‚nt  t|dƒt|ƒ¡rnJ ‚d|d< |g d¢g d¢g d¢dœƒ}t ||¡ d S )Nr   r%   r‡   )rn   ro   é   Únewr   )r*   r+   r¶   )r0   r1   r   r3   r4   )r   r5   r6   r   r   r   r’   r9   r   r   r   Ú%test_dataframe_add_column_from_seriesP  s    
r·   Úvalr¥   zindexer_func, indexerr¦   r-   r   r%   rF   c           	      C   s²  t g d¢g d¢|dœƒ}| ¡ }|d d … }|dkrr|srtjtdd�� |||ƒ|< W d   ƒ n1 sh0    Y  |dkrº|rºtjtdd�� |||ƒ|< W d   ƒ qø1 s®0    Y  n>t |oÈ|dk¡� |||ƒ|< W d   ƒ n1 sî0    Y  | �rHt t|d	ƒt|d	ƒ¡�sJ ‚t t|dƒt|dƒ¡�r:J ‚t 	||¡ nft t|d
ƒt|d
ƒ¡�sfJ ‚|dk�r�t t|dƒt|dƒ¡�r®J ‚n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+   r,   )
r   r   r3   rR   r¡   r@   r0   r1   r   r4   )	r5   rB   Zindexer_funcr`   r¸   r   r   r7   Úviewr   r   r   Ú)test_set_value_copy_only_necessary_columnc  s.    ÿ*ÿ,*
 rº   c                 C   sÆ   t g d¢tj g d¢g d¢g¡d�}| ¡ }|d }t t|ƒt|ƒ¡sLJ ‚t 	|¡� d|j
d< W d   ƒ n1 sv0    Y  | r’t ||¡ n0t 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   rP   Ú
MultiIndexZfrom_arraysr   r0   r1   r   r3   r@   r2   rŽ   )r5   rB   r   Zser_origÚresultr9   r   r   r   Útest_series_midx_slice•  s    $(ÿr½   c              	   C   s&  t ddgdddœƒ}| ¡ }|d }| r8|j d¡r8J ‚|sXt t|dƒt|dƒ¡sXJ ‚| rtd|jd	< t 	||¡ n®|r¬t 
¡ � d|jd	< W d   ƒ n1 s 0    Y  nbt d
d¡�D t t¡� d|jd	< W d   ƒ n1 sä0    Y  W d   ƒ n1 �s0    Y  |jd	 dk�s"J ‚d S )Nr   r   )©r*   Úx)r*   Úy)r+   r¿   )r*   r   r¾   r¿   r¥   r-   rK   rL   )r   r   r>   rt   r0   r1   r   r2   r3   r4   r@   rP   rQ   rR   r   )r5   rB   rS   r   r7   Znew_dfr   r   r   Útest_getitem_midx_slice¥  s"    

*H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 sf0    Y  | rœt g d¢tj g d¢¡d�}t 
||¡ d S )Nr   ))©r   r   r    )rÂ   r"   ))r   r    r"   r<   rÂ   r¥   r   )r   rP   r»   Úfrom_tuplesr0   r1   r   r3   r@   r2   rŽ   )r5   rB   r   r¼   r9   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   ru   ©Úprefixr   r   Ú
<listcomp>Ó  rz   zCtest_midx_read_only_bool_indexer.<locals>.mklbl.<locals>.<listcomp>)rA   )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+   ZbahZlvl0Zlvl1)Únamesr   )r=   r   )ZaxisrÎ   ZC1ZC3)rP   r»   Zfrom_productrÃ   r   Z
sort_indexr   r[   Z
IndexSlicer3   r4   rŽ   )rÉ   ÚidxÚcolsr   rX   Zexpected_maskr¼   r9   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< | r’t t|dƒt|dƒ¡sdJ ‚t t|dƒt|dƒ¡s€J ‚|j d¡r®J ‚nt t|dƒt|dƒ¡r®J ‚d|jd	< t	 
||¡ d S )
Nr*   r   r!   rM   r+   r,   r   r¥   rN   )r   r   r[   r0   r1   r   r>   rt   r2   r3   r4   )r5   r   ÚrhsZrhs_origr   r   r   Ú!test_loc_enlarging_with_dataframeå  s    
rÕ   ):r   r0   ri   Zpandas.errorsr   Zpandas.core.dtypes.commonr   ZpandasrP   r   r   Zpandas._testingZ_testingr3   Zpandas.tests.copy_view.utilr   Zfixturer   r:   r;   rC   ÚmarkZparametrizerU   rW   rO   r^   r_   rl   rm   rp   rr   rs   r|   r}   r‹   r�   r–   r—   r™   r›   rœ   r�   r£   r§   r©   rª   r±   r´   r·   r[   r2   rº   r½   rÁ   rÄ   rÓ   rÕ   r   r   r   r   Ú<module>   s>  
#$ÿ
+ÿ"ýý3ÿ"ýý3"ý
*!ÿ
(%ÿ
 ý
"úöÿ5ÿ
!ü
ô
û÷
ýù	
"ý
$$-ýù	
,úþÿ#