U
    ¾mœ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 dddg¡e ddg¡gddd gd�ejjd!ed"d#ƒe dddg¡d"d#ggd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 dddg¡e ddg¡gddd gd�ejjd!edd&ƒe dddg¡ddggddd gd�d'd(„ ƒƒƒZejjd)ed dƒe dddg¡e d dg¡gddd gd�d*d+„ ƒZd,d-„ Zd.d/„ Zejjdddgddgd�d0d1„ ƒZd2d3„ Z ejjdddgddgd�d4d5„ ƒZ!ejjd)ed6d"ƒe dddg¡d6d"ggddd gd�d7d8„ ƒZ"ejjd9d:d;„ d<d;„ d=d;„ d>d;„ d?d;„ d@d;„ gdAdBdCdDdEdFgd�ejjdddgddgd�dGdH„ ƒƒZ#ejjdddgddgd�dIdJ„ ƒZ$ejjd9dKd;„ dLd;„ dMd;„ dNd;„ gdOdPdQdRgd�dSdT„ ƒZ%dUdV„ Z&ejjd9dWd;„ dXd;„ dYd;„ dZd;„ d[d;„ gdOdQd\dPd]gd�d^d_„ ƒZ'ejjd9d`d;„ dad;„ dbd;„ gdOdQdPgd�dcdd„ ƒZ(dedf„ Z)ejjd)ed dƒe dddg¡e d dg¡gddd gd�dgdh„ ƒZ*didj„ Z+dkdl„ Z,dmdn„ Z-dodp„ Z.ejjd9dqd;„ drd;„ dsd;„ gdOdQdPgd�dtdu„ ƒZ/dvdw„ Z0ej dxdyd6g¡ej dzej1d{fej2d|fej1d gd6ffej2d gd ffej1edƒd6ffej2edƒd ffg¡d}d~„ ƒƒZ3dd€„ Z4d�d‚„ Z5dƒd„„ 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r6dd„ }dd„ }| j ||fS )	Nr   c                  _   s
   t | |ŽS ©N)r   ©ÚargsÚkwargs© r   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/copy_view/test_indexing.pyÚmake_dataframe   s    zbackend.<locals>.make_dataframec                  _   s
   t | |ŽS r
   )r   r   r   r   r   Úmake_series   s    zbackend.<locals>.make_seriesr   c                  _   sT   t | |Ž}| ¡ }|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 | |Ž}| ¡  ¡ S r
   )r   r   r   )r   r   Úserr   r   r   r   *   s    
)Úparam)Úrequestr   r   r   r   r   Úbackend   s    


r   c                 C   sä   | \}}}|dddgdddgddd	gd
œƒ}|  ¡ }|ddg }|rlt t|dƒt|dƒ¡s`t‚d|jd< n&t t|dƒt|dƒ¡rˆt‚d|jd< t t|dƒt|dƒ¡r®t‚|dddgddd	gdœƒ}t ||¡ t ||¡ d S ©Né   é   é   é   é   é   çš™™™™™¹?çš™™™™™É?ç333333Ó?©ÚaÚbÚcr(   r*   r   ©r   r   )r(   r*   )r   ÚnpÚshares_memoryr   ÚAssertionErrorÚilocÚtmÚassert_frame_equal©r   Úusing_copy_on_writeÚ_r   r   Údf_origÚsubsetÚexpectedr   r   r   Útest_subset_column_selection5   s    
"
r8   c                 C   sÈ   | \}}}|dddgdddgddd	gd
œƒ}|ddg }|rXt  t|dƒt|dƒ¡sXt‚d|jd< t  t|dƒt|dƒ¡r~t‚|ržt  t|dƒt|dƒ¡sžt‚|dddgddd	gdœƒ}t ||¡ d S r   )r,   r-   r   r.   r/   r0   r1   )r   r3   r4   r   r   r6   r7   r   r   r   Ú*test_subset_column_selection_modify_parentQ   s    
"
r9   c                 C   s  | \}}}|dddgdddgddd	gd
œƒ}|  ¡ }|dd… }|j ¡  t t|dƒt|dƒ¡sft‚|r’d|jd< t t|dƒt|dƒ¡rœt‚n
d|jd< |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_integrityr,   r-   r   r.   r/   Úranger0   r1   r2   r   r   r   Útest_subset_row_sliceh   s"    
"



&
r?   r   Úint64Zfloat64zsingle-blockzmixed-block)Zidsc              
   C   sj  | \}}}|dko|dko| }|dddgdddgt jd	d
dg|d�dœƒ}| ¡ }	|jd d …dd …f }
|
j ¡  |r¼t  t|
dƒt|dƒ¡s”t‚d|
jd< t  t|
dƒt|dƒ¡rºt‚nD|rÄt	nd }t
 dd¡�& t |¡� d|
jd< W 5 Q R X W 5 Q R X |dddgt jd	d
dg|d�dœƒ}t |
|¡ |�sZ|�sB|�rZd|	jd< t ||	¡ nt ||	¡ d S )Nr@   r   r   r   r    r!   r"   r#   é   é   é	   ©r   r'   r)   r   r+   Úchained_assignmentÚwarn©r)   r*   )r   r   )r,   Úarrayr   r/   r<   r=   r-   r   r.   r   ÚpdÚoption_contextr0   Úassert_produces_warningr1   )r   r3   Úusing_array_managerr   Údtype_backendr   r4   Zsingle_blockr   r5   r6   rF   r7   r   r   r   Útest_subset_column_slice‹   s2    
ÿþ&ÿ

$
rN   Úrow_indexerr   r   FTÚsliceÚmaskrH   Úcolumn_indexerr)   r*   c                 C   sÒ   | \}}}|dddgdddgt jddd	g|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Â|s¸|dkrÂ|dkrÂ|sÂd|
jd< t |	|
¡ d S ©Nr   r   r    r!   r"   r#   rA   rB   rC   rD   r'   r   r+   rG   r:   r@   r   )r   r   )
r,   rH   r   Úlocr/   r>   r0   r1   Ú
isinstancerP   ©r   r   rO   rR   rL   r3   rM   r   r4   r   r5   r6   r7   r   r   r   Útest_subset_loc_rows_columnsµ   s4    
&ÿ
 ÿÿþüúùø
rW   r    c                 C   sÒ   | \}}}|dddgdddgt jddd	g|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Â|s¸|dkrÂ|dkrÂ|sÂd|
jd< t |	|
¡ d S rS   )	r,   rH   r   r/   r>   r0   r1   rU   rP   rV   r   r   r   Útest_subset_iloc_rows_columnsñ   s4    
&ÿ
 ÿÿþüúùø
rX   Úindexerc              
   C   s6  | \}}}|ddddgddddgdd	d
dgdœƒ}|  ¡ }|dd… }|tjkrpt|tjƒrp|jdkrpt d¡ |r‚d||ƒ|< nL|tjkr�t	nd }	t
 dd¡�( t |	¡� d||ƒ|< W 5 Q R X W 5 Q R X |dddgdddgdddgdœtddƒd�}
t ||
¡ |�rt ||¡ nd|dd…< t ||¡ d S )Nr   r   r    r!   r"   r#   rA   r$   r%   r&   çš™™™™™Ù?r'   Úintz&setitem with labels selects on columnsr   rE   rF   ç        r:   )r   r0   ÚsetitemrU   r,   Zndarrayr   ÚpytestÚskipr   rI   rJ   rK   r>   r1   )r   Ú
indexer_sirY   r3   r4   r   r   r5   r6   rF   r7   r   r   r   Ú test_subset_set_with_row_indexer-  s4    
(ÿ
þý
  ÿra   c           	   
   C   s  | \}}}|ddddgddddgdd	d
dgdœƒ}|  ¡ }|dd… }|dk}|r\d||< n6t dd¡�$ t t¡� d||< W 5 Q R X W 5 Q R X |dddgdddgd	d
dgdœtddƒd�}t ||¡ |rÜt ||¡ n(d|jd< d|jdd…df< t ||¡ d S )Nr   r   r    r!   r"   r#   rA   r$   r%   r&   rZ   r'   r   rE   rF   r:   )r    r(   r)   )	r   rI   rJ   r0   rK   r   r>   r1   rT   )	r   r3   r4   r   r   r5   r6   rQ   r7   r   r   r   Útest_subset_set_with_maskW  s(    
(
 ÿ
rb   c           
   
   C   sþ   | \}}}|dddgdddgddd	gd
œƒ}|  ¡ }|dd… }|dkr\tjddgdd�}ntjddgdd�}|r|||d< n6t dd¡�$ t t¡� ||d< W 5 Q R X W 5 Q R X |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$   r%   r&   r'   r   é
   é   r@   rD   ZInt64r(   rE   rF   r:   )r   r,   rH   rI   rJ   r0   rK   r   r<   r=   r>   r1   )
r   r3   rM   r   r4   r   r5   r6   Zarrr7   r   r   r   Útest_subset_set_columnu  s&    
"

 ÿre   c           
   
   C   sN  | \}}}|dddgdddgt jddd	g|d
�dœƒ}| ¡ }|dd… }|rpt jddgdd
�|jd d …df< nTt dd¡�B tjd | d��& t jddgdd
�|jd d …df< W 5 Q R X W 5 Q R X |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   r    r!   r"   r#   rA   rB   rC   rD   r'   rc   rd   r@   r(   rE   rF   ©Zraise_on_extra_warningsr:   )r,   rH   r   rT   rI   rJ   r0   rK   r<   r=   r>   r1   )
r   r3   rL   r   r4   r   r   r5   r6   r7   r   r   r   Útest_subset_set_column_with_loc�  s0    
&ÿ"þ4
 þ rg   c           	   
   C   sò   | \}}}|ddddgiƒ}|  ¡ }|dd… }|rHd|jd d …df< nFt dd¡�4 tjd | d�� d|jd d …df< W 5 Q R X W 5 Q R X |j ¡  |dddgitddƒd	�}t 	||¡ |rÐt 	||¡ nd|jdd…df< t 	||¡ d S )
Nr(   r   r   r    r   rE   rF   rf   r:   )
r   rT   rI   rJ   r0   rK   r<   r=   r>   r1   )	r   r3   rL   r4   r   r   r5   r6   r7   r   r   r   Ú test_subset_set_column_with_loc2¸  s&    
þ&
rh   c           	   
      s.  | \}}}|dddgdddgt jddd	g|d
�dœƒ}| ¡ }|dd… ‰ |r\dˆ ddg< n:t dd¡�( t t¡� dˆ ddg< W 5 Q R X W 5 Q R X ˆ j 	¡  |r¾t
‡ fdd„dD ƒƒs¾t‚|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   r    r!   r"   r#   rA   rB   rC   rD   r'   r   r(   r*   rE   rF   c                 3   s   | ]}ˆ j  |¡V  qd S r
   )r<   Ú_has_no_reference)Ú.0Úi©r6   r   r   Ú	<genexpr>ï  s     z*test_subset_set_columns.<locals>.<genexpr>)r   r   r:   r   r@   )r,   rH   r   rI   rJ   r0   rK   r   r<   r=   Úallr.   r>   r   r1   )	r   r3   r   rM   r   r4   r   r5   r7   r   rl   r   Útest_subset_set_columnsØ  s(    
&ÿ 
&
ro   r(   c           	   	   C   sö   | \}}}|dddgdddgddd	gd
œƒ}|  ¡ }|dd… }|rXd|jd d …|f< n*t dd¡� d|jd d …|f< W 5 Q R X |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!   r"   r#   r'   r   rE   rF   r\   r:   r(   r)   )	r   rT   rI   rJ   r<   r=   r>   r0   r1   )	r   rY   r3   r4   r   r   r5   r6   r7   r   r   r   Ú#test_subset_set_with_column_indexerû  s    
"
&rp   Úmethodc                 C   s   | ddg dd… S ©Nr(   r)   r   r   r   ©r   r   r   r   Ú<lambda>   ó    rt   c                 C   s   | dd… ddg S ©Nr   r   r(   r)   r   rs   r   r   r   rt   !  ru   c                 C   s   | ddg j dd… S rr   ©r/   rs   r   r   r   rt   "  ru   c                 C   s   | ddg j dd… S )Nr(   r)   r   r   ©rT   rs   r   r   r   rt   #  ru   c                 C   s   | dd… j d d …dd…f S )Nr   r   rw   rs   r   r   r   rt   $  ru   c                 C   s   | dd… j d d …dd…f S rv   rx   rs   r   r   r   rt   %  ru   zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-sliceúcolumn-iloc-sliceúcolumn-loc-slicec                 C   sø   |\}}}|dddgdddgt jddd	g|d
�dœƒ}| ¡ }	| jjj}
|sV|
dk}n|
 d¡ph|
 d¡}||ƒ}d|jd< |s„|s’t 	||	¡ n|jd dks¤t
‚||ƒ}d|jd< |ddgddgdœƒ}|sÔ|sât 	||¡ n|jd dksôt
‚d S )Nr   r   r    r!   r"   r#   rA   rB   rC   rD   r'   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slicery   rz   r   r+   ©r(   r)   )r,   rH   r   ÚnodeZcallspecÚidÚendswithr/   r0   r1   r.   )r   r   rq   r   r3   rL   r4   r   r   r5   Ztest_callspecZsubset_is_viewr6   r7   r   r   r   Útest_subset_chained_getitem  s0    
&ÿ

ÿþ

r   c           
      C   sî   | \}}}|dddgdddgt jddd	g|d
�dœƒ}| ¡ }|d d … d dd… }| ¡  d|jd< |rzt ||¡ n|jd dksŒt‚|d d … d dd… }| ¡  d|jd< |ddgdd�}	|rØt ||	¡ n|jd dksêt‚d S )Nr   r   r    r!   r"   r#   rA   rB   rC   rD   r'   r(   r   r+   ©Úname)	r,   rH   r   Z_clear_item_cacher/   r0   r1   r.   Úassert_series_equal)
r   r   r3   r4   r   r   r   r5   r6   r7   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   rt   ‚  ru   c                 C   s   | j dd… j dd… S )Nr   r    r   rw   r…   r   r   r   rt   ƒ  ru   c                 C   s   | j dd… j dd… S r„   rx   r…   r   r   r   rt   „  ru   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   )rT   r/   r…   r   r   r   rt   …  s    ÿ þ ý üÚgetitemr/   rT   z
long-chainc           	      C   s¾   | \}}}|dddgdddgd�}|  ¡ }||ƒ}d|jd< |rNt ||¡ n|jd dks`t‚|jdd… jdd… }d|jd< |ddgddgd�}|r¨t ||¡ n|jd dksºt‚d S ©	Nr   r   r    r(   r)   r*   r:   r   )r   r/   r0   r‚   r.   )	r   rq   r3   r4   r   r†   Ús_origr6   r7   r   r   r   Ú"test_subset_chained_getitem_series  s    


rŠ   c                 C   sà   t dddgdddgddd	gd
œƒ}| ¡ }|d d … jd jdd… }d|jd< | sX|rft ||¡ n|jd dksxt‚|d d … jd jdd… }d|jd< tddgddgdd�}| s¼|rÊt ||¡ n|jd dksÜt‚d S )Nr   r   r    r!   r"   r#   rA   rB   rC   r'   r   r+   r(   r)   )r;   r�   )r   r   r/   r0   r1   r.   r   r‚   )r3   rL   r   r5   r6   r7   r   r   r   Ú$test_subset_chained_single_block_row¦  s    "

r‹   c                 C   s   | d d … S r
   r   rs   r   r   r   rt   À  ru   c                 C   s   | j d d …d d …f S r
   rx   rs   r   r   r   rt   Á  ru   c                 C   s   | j d d … S r
   rx   rs   r   r   r   rt   Â  ru   c                 C   s   | j d d …d d …f S r
   rw   rs   r   r   r   rt   Ã  ru   c                 C   s   | j d d … S r
   rw   rs   r   r   r   rt   Ä  ru   zloc-rowsz	iloc-rowsc                 C   sz   | \}}}|dddgdddgddd	gd
œƒ}|  ¡ }||ƒ}||k	sHt‚d|jd< |rdt ||¡ n|jd dksvt‚d S )Nr   r   r    r!   r"   r#   rA   rB   rC   r'   r   r+   )r   r.   r/   r0   r1   )r   rq   r3   r4   r   r   r5   Údf2r   r   r   Útest_null_slice½  s    
"
r�   c                 C   s   | d d … S r
   r   r…   r   r   r   rt   ß  ru   c                 C   s   | j d d … S r
   rx   r…   r   r   r   rt   à  ru   c                 C   s   | j d d … S r
   rw   r…   r   r   r   rt   á  ru   c                 C   sp   | \}}}|dddgdddgd�}|  ¡ }||ƒ}||k	s>t‚d|jd< |rZt ||¡ n|jd dkslt‚d S rˆ   )r   r.   r/   r0   r‚   )r   rq   r3   r4   r   r†   r‰   Ús2r   r   r   Útest_null_slice_seriesÜ  s    


r�   c                 C   sÀ   | \}}}|dddgdddgd�}|  ¡ }|d d … }t t|ƒt|ƒ¡sNt‚d|jd< |rtt t|ƒt|ƒ¡rtt‚|dddgdddgd�}t ||¡ |rªt ||¡ n|jd dks¼t‚d S rˆ   )r   r,   r-   r   r.   r/   r0   r‚   )r   r3   r4   r   r†   r‰   r6   r7   r   r   r   Útest_series_getitem_sliceþ  s    

r�   c           
      C   sˆ   | \}}}|dddgdddgd�}|  ¡ }|d d … }d||ƒ|< |dddgdddgd�}	t ||	¡ |rxt ||¡ nt ||	¡ d S rˆ   )r   r0   r‚   )
r   r`   rY   r3   r4   r   r†   r‰   r6   r7   r   r   r   Ú#test_series_subset_set_with_indexer  s    	
r‘   c                 C   sÚ   | \}}}|dddgdddgddd	gd
œƒ}|  ¡ }|d d … }t t|dƒt|dƒ¡s\t‚|d= t t|dƒt|dƒ¡s~t‚t ||¡ t ||ddg ¡ |j ¡  d|j	d< |rÄt ||¡ n|j	d dksÖt‚d S )Nr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   éd   ©r   r(   )
r   r,   r-   r   r.   r0   r1   r<   r=   rT   )r   r3   r4   r   r   r5   rŒ   r   r   r   Útest_del_frame3  s    
"

r”   c                 C   s°   | \}}}|dddgdddgd�}|  ¡ }|d d … }t t|ƒt|ƒ¡sNt‚|d= t t|ƒt|ƒ¡rlt‚t ||¡ t ||ddg ¡ |j}d|jd< |d	 dks¬t‚d S )
Nr   r   r    r(   r)   r*   r:   r’   r   )	r   r,   r-   r   r.   r0   r‚   ÚvaluesrT   )r   r4   r   r†   r‰   rŽ   r•   r   r   r   Útest_del_seriesO  s    

r–   c              
   C   s  | \}}}|dddgdddgddd	gd
œƒ}|  ¡ }|d }t t|dƒt|dƒ¡sXt‚|s`|rjd|d< nF|dkrvtnd }	t dd¡�$ t 	|	¡� d|d< W 5 Q R X W 5 Q R X |dddgdd�}
t 
||
¡ |rôt ||¡ t 
|d |d ¡ nd|jd< t ||¡ d S )Nr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r   r   rE   rF   r€   r+   )r   r,   r-   r   r.   r   rI   rJ   r0   rK   r‚   r1   r/   )r   r3   rL   rM   r   r   r   r5   r†   rF   r7   r   r   r   Útest_column_as_seriesg  s$    
"

r—   c           
   
   C   s6  | \}}}|dddgdddgddd	gd
œƒ}|  ¡ }|d }|dkrztjtdd�� d|d< W 5 Q R X |dddgdd�}	np|s‚|r d|d< |dddgtdd�}	nJt dd¡�$ t t	¡� d|d< W 5 Q R X W 5 Q R X |dddgtdd�}	t 
||	¡ |�rt ||¡ t 
|d |d ¡ n|	|d< t ||¡ d S )Nr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r   zInvalid value)ÚmatchZfoor   r€   )r   r�   rE   rF   )r   r^   ZraisesÚ	TypeErrorÚobjectrI   rJ   r0   rK   r   r‚   r1   )
r   r3   rL   rM   r   r   r   r5   r†   r7   r   r   r   Ú%test_column_as_series_set_with_upcast…  s*    
"r›   c                 C   s   | d S ©Nr(   r   rs   r   r   r   rt   ª  ru   c                 C   s   | j d d …df S rœ   rx   rs   r   r   r   rt   «  ru   c                 C   s   | j d d …df S )Nr   rw   rs   r   r   r   rt   ¬  ru   c              
   C   s  |\}}}|dddgdddgddd	gd
œƒ}|  ¡ }	||ƒ}
||ƒ}d| jjk}|sX|rf|
|k	srt‚n|
|ksrt‚|sz|r†d|
jd< nH|dkr’tnd }t dd¡�& t 	|¡� d|
jd< W 5 Q R X W 5 Q R X |rðt 
||	d ¡ t ||	¡ n|jd dk�st‚d S )Nr   r   r    r!   r"   r#   r$   r%   r&   r'   r/   r   r   rE   rF   r(   )r   r|   r�   r.   r/   r   rI   rJ   r0   rK   r‚   r1   )r   r   rq   r3   rL   rM   r   r4   r   r5   Ús1rŽ   Zis_ilocrF   r   r   r   Ú#test_column_as_series_no_item_cache§  s&    
"rž   c                 C   s°   | \}}}|dddgdddgdœƒ}|dd	d
gƒ}||d< t  t|dƒ|j¡rRt‚d|d< |dddgdddgdd	d
gdœƒ}t ||¡ d|jd< |dd	d
gƒ}t ||¡ d S )Nr   r   r    r$   r%   r&   r{   rc   rd   é   Únewr   )r(   r)   r    r’   )r   r    )	r,   r-   r   r•   r.   r0   r1   rT   r‚   )r   r4   r   r   r   r†   r7   Z
expected_sr   r   r   Ú%test_dataframe_add_column_from_seriesÔ  s    
"
r¡   Úvalr’   zindexer_func, indexerr“   r+   c                 C   sî   t dddgdddgddd	gd
œƒ}| ¡ }|d d … }|||ƒ|< | rŒt t|dƒt|dƒ¡sbt‚t t|dƒt|dƒ¡r~t‚t ||¡ n^t t|dƒt|dƒ¡s¨t‚|dkrÎt t|dƒt|dƒ¡rêt‚nt t|dƒt|dƒ¡sêt‚d S )Nr   r   r    r!   r"   r#   r$   r%   r&   r'   r)   r(   r*   )r   r   r,   r-   r   r.   r0   r1   )r3   Zindexer_funcrY   r¢   r   r5   Úviewr   r   r   Ú)test_set_value_copy_only_necessary_columnë  s    "r¤   c                 C   s’   t dddgtj dddgdddgg¡d�}|d }t t|ƒt|ƒ¡sJt‚d|jd< | rŽt dddgtj dddgdddgg¡d�}t	 
||¡ d S )	Nr   r   r    r!   r"   r:   r’   r   )r   rI   Ú
MultiIndexZfrom_arraysr,   r-   r   r.   r/   r0   r‚   ©r3   r   Úresultr7   r   r   r   Útest_series_midx_slice  s    *
 ÿr¨   c                 C   sv   t ddgdddœƒ}| ¡ }|d }| r8|j d¡r8t‚|sXt t|dƒt|dƒ¡sXt‚| rrd|jd	< t	 
||¡ d S )
Nr   r   )©r(   Úx)r(   Úy)r)   rª   )r(   r   r©   rª   r’   r+   )r   r   r<   ri   r.   r,   r-   r   r/   r0   r1   )r3   rL   r   r5   Znew_dfr   r   r   Útest_getitem_midx_slice  s    
r¬   c                 C   s~   t dddgtj dddg¡d�}|d }t t|ƒt|ƒ¡s@t‚d	|jd
< | rzt dddgtj dddg¡d�}t	 
||¡ d S )Nr   r   r    )©r   r   r    )r­   r!   ))r   r    r!   r:   r­   r’   r   )r   rI   r¥   Úfrom_tuplesr,   r-   r   r.   r/   r0   r‚   r¦   r   r   r   Útest_series_midx_tuples_slice*  s    þ
þr¯   )7r   r,   r^   Zpandas.errorsr   Zpandas.core.dtypes.commonr   ZpandasrI   r   r   Zpandas._testingZ_testingr0   Zpandas.tests.copy_view.utilr   Zfixturer   r8   r9   r?   ÚmarkZparametrizerN   rP   rH   rW   rX   ra   rb   re   rg   rh   ro   rp   r   rƒ   rŠ   r‹   r�   r�   r�   r‘   r”   r–   r—   r›   rž   r¡   rT   r/   r¤   r¨   r¬   r¯   r   r   r   r   Ú<module>   sZ  
##  ÿ
'  ÿ$ýý/  ÿ$ýý/$ý
%  ÿ
%   ÿ
 ý
ú	úö  ÿ,  ÿ
ü

ô
û÷
ýù	
$ý
"ýù	
$úþ