U
    [em                  
   @   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ejjd3d4d5 d6d5 d7d5 d8d5 d9d5 d:d5 gd;d<d=d>d?d@gdejjdddgddgddAdB ZejjdddgddgddCdD Z ejjd3dEd5 dFd5 dGd5 dHd5 gdIdJdKdLgddMdN Z!dOdP Z"dQdR Z#ejjd#ed dedddged dggdddgddSdT Z$dUdV Z%dWdX Z&dYdZ Z'd[d\ Z(d]d^ Z)dS )_    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rt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"   f/var/www/html/services/stratfitenv/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| rtt|dt|dst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| rd|jd< tt|dt|drtn
d|jd< |j  t ddgddgdd	gd
t	ddd}t
|| | rt
|| 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  | rtt|dt|dst	d|jd< tt|dt|drt	nD|rt
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
rt	|t
r|s| dkr|sd|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	rt|t	r|s| dkr|sd|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rt
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|| | rt|| 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|rt|| 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	
  | rt fdddD st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|rt|| 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\   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`     ra   c                 C   s   | ddg j dd S r^   r   r_   r"   r"   r#   r`     ra   c                 C   s   | ddg j dd S )Nr   r   r   r   r@   r_   r"   r"   r#   r`     ra   c                 C   s   | dd j d d ddf S )Nr   r   rc   r_   r"   r"   r#   r`     ra   c                 C   s   | dd j d d ddf S rb   rd   r_   r"   r"   r#   r`     ra   zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-slicezcolumn-iloc-slicezcolumn-loc-slicec           
      C   s   t dddgdddgtjddd	g|d
d}| }| jjjdkpR| jjjdkoR|}||}d|jd< |sn|s|t	|| n|jd dkst
||}d|jd< t ddgddgd}	|s|st	||	 n|jd dkst
d S )Nr   r   r	   r
   r   r   r.   r/   r0   r1   r   )zsingle-block-column-iloc-slicezsingle-block-column-loc-slice)zmixed-block-column-iloc-slicezmixed-block-column-loc-slicer   r   r   r   )r   r   r5   r   nodeZcallspecidr   r   r   r   )
requestr]   r,   r   r9   r   r   Zsubset_is_viewr    r!   r"   r"   r#   test_subset_chained_getitem  s*    &


ri   c                 C   s   t dddgdddgtjddd	g| d
d}| }|d d  d dd }|  d|jd< |rpt|| n|jd dkst|d d  d dd }|  d|jd< t	ddgdd}|rt
|| n|jd dkstd S )Nr   r   r	   r
   r   r   r.   r/   r0   r1   r   r   r   r   name)r   r   r5   r   Z_clear_item_cacher   r   r   r   r   assert_series_equal)r,   r   r   r   r    r!   r"   r"   r#   "test_subset_chained_getitem_column  s"    &

rm   c                 C   s   | dd dd S Nr   r   r   r"   sr"   r"   r#   r`   0  ra   c                 C   s   | j dd j dd S )Nr   r	   r   rc   ro   r"   r"   r#   r`   1  ra   c                 C   s   | j dd j dd S rn   rd   ro   r"   r"   r#   r`   2  ra   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@   r   ro   r"   r"   r#   r`   3  s       getitemr   r@   z
long-chainc                 C   s   t dddgdddgd}| }| |}d|jd< |rDt|| n|jd dksVt|jdd jdd }d|jd< t ddgddgd}|rt|| n|jd dkstd S 	Nr   r   r	   r   r   r   r&   r   )r   r   r   r   rl   r   )r]   r   rp   s_origr    r!   r"   r"   r#   "test_subset_chained_getitem_series-  s    

rt   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|rt|| n|jd dkstd S )Nr   r   r	   r
   r   r   r.   r/   r0   r   r   r   r   r   )r'   rk   )r   r   r   r   r   r   r   rl   )r   r9   r   r   r    r!   r"   r"   r#   $test_subset_chained_single_block_rowS  s    "

ru   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|| | rt|| n|jd dkstd S rr   )	r   r   r   r   valuesr   r   r   rl   )r   rp   rs   r    r!   r"   r"   r#   test_series_getitem_slicep  s    
rw   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 rr   )r   r   r   rl   )rL   rE   r   rp   rs   r    r!   r"   r"   r#   #test_series_subset_set_with_indexer  s    rx   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< | rt|| n|j
d dkst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    "

rz   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std S )
Nr   r   r	   r   r   r   r&   ry   r   )	r   r   r   r   rv   r   r   rl   r@   )rp   rs   s2rv   r"   r"   r#   test_del_series  s    
r|   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	|| | rt	|| t	|d |d  nd|jd< t	|| d S )Nr   r   r	   r
   r   r   r   r   r   r   r   r   r2   r3   rj   r   )r   r   r   r   rv   r   r   r6   r7   r   r8   r   r   rl   r   r   r   r9   r   r   rp   r!   r"   r"   r#   test_column_as_series  s     "

r~   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	|| | rt
|| t	|d |d  n||d< t
|| d S )Nr   r   r	   r
   r   r   r   r   r   r   r   Zfoor   r2   r3   )r,   rk   )r   r   r6   r7   r   r8   r   r   objectrl   r   r}   r"   r"   r#   %test_column_as_series_set_with_upcast  s    "
r   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   re   rO   rP      newr   )r   r   r   ry   )r   r   )r   r   r   r   r   rv   r   r   r   r@   rl   )r   rp   r!   Z
expected_sr"   r"   r#   %test_dataframe_add_column_from_series  s    "
r   )*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\   ri   rm   rt   ru   rw   rx   rz   r|   r~   r   r   r"   r"   r"   r#   <module>   s   "  
$  $"  $"$
$  
%"  

"	  '  



$
