U
    `»{jÓZ  ã                
   @   sö  d dl Zd dl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 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�d*d+„ ƒZd,d-„ Zejjdddgddgd�d.d/„ ƒZejjd#ed0dƒe dddg¡d0dggdddgd�d1d2„ ƒZd3d4„ Zejjd#ed dƒe dddg¡e d dg¡gdddgd�d5d6„ ƒZ d7d8„ Z!d9d:„ Z"d;d<„ Z#d=d>„ Z$d?d@„ Z%dS )Aé    N)ÚSettingWithCopyWarning)Ú	DataFrameÚSeries)Ú	get_arrayc                 C   sÚ   t dddgdddgddd	gd
œƒ}| ¡ }|ddg }| rbt t|dƒt|dƒ¡sVt‚d|jd< n&t t|dƒt|dƒ¡r~t‚d|jd< t t|dƒt|dƒ¡r¤t‚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   ÚcopyÚnpÚshares_memoryr   ÚAssertionErrorÚilocÚtmÚassert_frame_equal©Úusing_copy_on_writeÚdfÚdf_origÚsubsetÚexpected© r"   úc/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/copy_view/test_indexing.pyÚtest_subset_column_selection   s    "
r$   c                 C   s¾   t dddgdddgddd	gd
œƒ}|ddg }| rNt t|dƒt|dƒ¡sNt‚d|jd< t t|dƒt|dƒ¡rtt‚| r”t t|dƒt|dƒ¡s”t‚t dddgddd	gdœƒ}t ||¡ d S r   )r   r   r   r   r   r   r   r   )r   r   r    r!   r"   r"   r#   Ú*test_subset_column_selection_modify_parent-   s    "
r%   c                 C   sú   t dddgdddgddd	gd
œƒ}| ¡ }|dd… }|j ¡  t t|dƒt|dƒ¡s\t‚| rˆd|jd< t t|dƒt|dƒ¡r’t‚n
d|jd< |j ¡  t 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   r   Ú_mgrÚ_verify_integrityr   r   r   r   r   Úranger   r   r   r"   r"   r#   Útest_subset_row_sliceB   s     "



&
r+   ÚdtypeÚint64Zfloat64zsingle-blockzmixed-block)Zidsc           	   
   C   sX  |dko| }t 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 t dddgtjdd	d
g|d�dœƒ}t ||¡ | �sH|�s0|�rHd|jd< t ||¡ nt ||¡ d S )Nr-   r   r   r	   r
   r   r   é   é   é	   ©r,   r   r   r   r   Úchained_assignmentÚwarn©r   r   )r   r   )r   r   Úarrayr   r   r(   r)   r   r   r   r   ÚpdÚoption_contextr   Úassert_produces_warningr   )	r   Úusing_array_managerr,   Zsingle_blockr   r   r    r3   r!   r"   r"   r#   Útest_subset_column_sliced   s*    &ÿ

$
r:   Úrow_indexerr   r   FTÚsliceÚmaskr5   Úcolumn_indexerr   r   c           	      C   sÀ   t dddgdddgtjddd	g| d
�dœƒ}| ¡ }|j||f }d|jd< t 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°|s°d|jd< t ||¡ d S ©Nr   r   r	   r
   r   r   r.   r/   r0   r1   r   r   r   r4   r&   r-   )r   r   )r   r   r5   r   Úlocr   r*   r   r   Ú
isinstancer<   ©	r,   r;   r>   r9   r   r   r   r    r!   r"   r"   r#   Útest_subset_loc_rows_columns‹   s.    &ÿ
 ÿÿþýýý
rC   r	   c           	      C   sÀ   t dddgdddgtjddd	g| d
�dœƒ}| ¡ }|j||f }d|jd< t 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°|s°d|jd< t ||¡ d S r?   )
r   r   r5   r   r   r*   r   r   rA   r<   rB   r"   r"   r#   Útest_subset_iloc_rows_columnsº   s.    &ÿ
 ÿÿþýýý
rD   Úindexerc              
   C   s,  t ddddgddddgdd	d
dgdœƒ}| ¡ }|dd… }| tjkrft|tjƒrf|jdkrft 	d¡ |rxd| |ƒ|< nL| tjkr†t
nd }t dd¡�( t |¡� d| |ƒ|< W 5 Q R X W 5 Q R X t 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   r.   r   r   r   çš™™™™™Ù?r   Úintz&setitem with labels selects on columnsr   r2   r3   ç        r&   )r   r   r   ÚsetitemrA   r   Zndarrayr,   ÚpytestÚskipr   r6   r7   r8   r*   r   )Ú
indexer_sirE   r   r   r   r    r3   r!   r"   r"   r#   Ú test_subset_set_with_row_indexeré   s2    (ÿ
þý
  ÿrM   c              
   C   sþ   t ddddgddddgdd	d
dgdœƒ}| ¡ }|dd… }|dk}| rRd||< n6t dd¡�$ t t¡� d||< W 5 Q R X W 5 Q R X t 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   r.   r   r   r   rF   r   r   r2   r3   r&   )r	   r   r   )
r   r   r6   r7   r   r8   r   r*   r   r@   )r   r   r   r    r=   r!   r"   r"   r#   Útest_subset_set_with_mask  s&    (
 ÿ
rN   c              
   C   sâ   t dddgdddgddd	gd
œƒ}| ¡ }|dd… }| rRtjddgdd�|d< nDt dd¡�2 t t¡� tjddgdd�|d< W 5 Q R X W 5 Q R X |j	 
¡  t 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-   r1   r   r2   r3   r&   )r   r   r   r5   r6   r7   r   r8   r   r(   r)   r*   r   r   r"   r"   r#   Útest_subset_set_column/  s    "*
 ÿrQ   c              
   C   sT  t dddgdddgtjddd	g|d
�dœƒ}| ¡ }|dd… }| rftjddgdd
�|jd d …df< n^t dd¡�L |r|dnd}tjt	|d��& tjddgdd
�|jd d …df< W 5 Q R X W 5 Q R X |j
 ¡  t ddgddgtjdd	g|d
�dœtddƒd�}t ||¡ | �s|�r$t ||¡ n,tjddgdd
�|jdd…df< t ||¡ d S )Nr   r   r	   r
   r   r   r.   r/   r0   r1   r   rO   rP   r-   r   r2   r3   FT©Úraise_on_extra_warningsr&   )r   r   r5   r   r@   r6   r7   r   r8   r   r(   r)   r*   r   )r   r9   r,   r   r   r    rS   r!   r"   r"   r#   Útest_subset_set_column_with_locD  s0    &ÿ"þ4
 þ rT   c              
   C   sö   t ddddgiƒ}| ¡ }|dd… }| r>d|jd d …df< nPt dd¡�> |rTdnd	}tjt|d
�� d|jd d …df< W 5 Q R X W 5 Q R X |j 	¡  t dddgit
ddƒd�}t ||¡ | sÆ|rÔt ||¡ nd|jdd…df< t ||¡ d S )Nr   r   r   r	   r   r2   r3   FTrR   r&   )r   r   r@   r6   r7   r   r8   r   r(   r)   r*   r   )r   r9   r   r   r    rS   r!   r"   r"   r#   Ú test_subset_set_column_with_loc2l  s&    þ&
rU   c              
      sö   t dddgdddgtjddd	g|d
�dœƒ}| ¡ }|dd… ‰ | rRdˆ 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‚t 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/   r0   r1   r   r   r   r   r2   r3   c                 3   s   | ]}ˆ j  |¡V  qd S )N)r(   Z_has_no_reference)Ú.0Úi©r    r"   r#   Ú	<genexpr>¤  s     z*test_subset_set_columns.<locals>.<genexpr>)r   r   r&   )r   r   r5   r   r6   r7   r   r8   r   r(   r)   Úallr   r*   r   )r   r,   r   r   r!   r"   rX   r#   Útest_subset_set_columnsŽ  s     &ÿ 
&r[   r   c              
   C   s  t dddgdddgddd	gd
œƒ}| ¡ }|dd… }|rNd|jd d …| f< nDt dd¡�2 tjtdd�� d|jd d …| f< W 5 Q R X W 5 Q R X |j 	¡  t ddgddgdd	gd
œt
ddƒd�}|d  d¡|d< t ||¡ |sè|röt ||¡ n d|jdd…dgf< t ||¡ d S )Nr   r   r	   r   r   r   r
   r   r   r   r   r2   r3   FrR   rH   r&   r   r-   r   )r   r   r@   r6   r7   r   r8   r   r(   r)   r*   Zastyper   )rE   r   r9   r   r   r    r!   r"   r"   r#   Ú#test_subset_set_with_column_indexerª  s&    
" ÿ&
&r\   c                 C   s®   t dddgdddgd�}| ¡ }|d d … }t |j|j¡s@t‚d|jd< | rbt |j|j¡rbt‚t dddgdddgd�}t ||¡ | r˜t ||¡ n|jd dksªt‚d S ©	Nr   r   r	   r   r   r   r&   r   )	r   r   r   r   Úvaluesr   r   r   Úassert_series_equal)r   ÚsÚs_origr    r!   r"   r"   r#   Útest_series_getitem_sliceØ  s    
rb   c                 C   s~   t dddgdddgd�}| ¡ }|d d … }d| |ƒ|< t dddgdddgd�}t ||¡ |rnt ||¡ nt ||¡ d S r]   )r   r   r   r_   )rL   rE   r   r`   ra   r    r!   r"   r"   r#   Ú#test_series_subset_set_with_indexerð  s    rc   c                 C   sÐ   t dddgdddgddd	gd
œƒ}| ¡ }|d d … }t t|dƒt|dƒ¡sRt‚|d= t t|dƒt|dƒ¡stt‚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   r   r   r   r(   r)   r@   )r   r   r   Zdf2r"   r"   r#   Útest_del_frame	  s    "

re   c                  C   sž   t dddgdddgd�} |  ¡ }| d d … }t | j|j¡s@t‚|d= t | j|j¡rZt‚t | |¡ t ||ddg ¡ |j}d|jd< |d	 dksšt‚d S )
Nr   r   r	   r   r   r   r&   rd   r   )	r   r   r   r   r^   r   r   r_   r@   )r`   ra   Ús2r^   r"   r"   r#   Útest_del_series$  s    
rg   c              
   C   sð   t dddgdddgddd	gd
œƒ}| ¡ }|d }t |jt|dƒ¡sJt‚| sR|r\d|d< n6t dd¡�$ t	 
t¡� d|d< W 5 Q R X W 5 Q R X t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   r2   r3   )Únamer   )r   r   r   r   r^   r   r   r6   r7   r   r8   r   r   r_   r   r   ©r   r9   r   r   r`   r!   r"   r"   r#   Útest_column_as_series;  s     "

rj   c              
   C   sØ   t dddgdddgddd	gd
œƒ}| ¡ }|d }| s:|rDd|d< n6t dd¡�$ t t¡� d|d< W 5 Q R X W 5 Q R X t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   Zfoor   r2   r3   )r,   rh   )r   r   r6   r7   r   r8   r   r   Úobjectr_   r   ri   r"   r"   r#   Ú%test_column_as_series_set_with_upcastW  s    "
rl   c                  C   s¦   t dddgdddgdœƒ} tdd	d
gƒ}|| d< t t| dƒ|j¡rHt‚d|d< t dddgdddgdd	d
gdœƒ}t | |¡ d| j	d< tdd	d
gƒ}t 
||¡ d S )Nr   r   r	   r   r   r   )r   r   rO   rP   é   Únewr   )r   r   rn   rd   )r   rn   )r   r   r   r   r   r^   r   r   r   r@   r_   )r   r`   r!   Z
expected_sr"   r"   r#   Ú%test_dataframe_add_column_from_seriest  s    "
ro   )&Únumpyr   rJ   Zpandas.errorsr   Zpandasr6   r   r   Zpandas._testingZ_testingr   Zpandas.tests.copy_view.utilr   r$   r%   r+   ÚmarkZparametrizer:   r<   r5   rC   rD   rM   rN   rQ   rT   rU   r[   r\   rb   rc   re   rg   rj   rl   ro   r"   r"   r"   r#   Ú<module>   s¬   "  ÿ
$  ÿ$ýý"  ÿ$ýý"$ý
$  ÿ
%"  ÿ
ý
)$ý
