U
    ¾mœd:¯  ã                   @   s@  d dl m Z  d dlZd dlZd dlm  mZ d dlm	Z
 d dlmZmZmZ d dlmZmZmZmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z( d dl)m*Z* d dl+m,Z, G d	d
„ d
ƒZ-G dd„ dƒZ.G dd„ dƒZ/G dd„ dƒZ0G dd„ dƒZ1G dd„ dƒZ2G dd„ dƒZ3dS )é    )ÚdatetimeN)Ú	_registry)Úis_categorical_dtypeÚis_interval_dtypeÚis_object_dtype)ÚCategoricalDtypeÚDatetimeTZDtypeÚIntervalDtypeÚPeriodDtype)ÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalÚIntervalIndexÚ
MultiIndexÚNaTÚPeriodÚPeriodIndexÚSeriesÚ	TimestampÚcutÚ
date_rangeÚnotnaÚperiod_range)ÚSparseArray)ÚBDayc                   @   sü  e Zd Zdd„ Zej ddddddd	g¡d
d„ ƒZdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zej d$ed%ƒed&ƒfed'd(d)�edd*ƒfed+d,d-�ed,d-�fg¡d.d/„ ƒZej d0d1d2„ ejD ƒd3d4g ¡d5d6„ ƒZd7d8„ Zej d9d:d;d<d=d>d&d?g¡d@dA„ ƒZej d9d:d;d<d=d>d&d?g¡dBdC„ ƒZ dDdE„ Z!dFdG„ Z"dHdI„ Z#ej ddJdKdLg¡dMdN„ ƒZ$ej dOdPdPgg¡dQdR„ ƒZ%dSdT„ Z&dUdV„ Z'ej dWdXdYdZgdXdXdXgg¡d[d\„ ƒZ(d]d^„ Z)d_d`„ Z*dadb„ Z+dcdd„ Z,dedf„ Z-ej dgdhd>d>dXgdidjdkdlgdlfd>dhd>dXgdidjdkdlgdlfdhdPdPdXgdidjdkdlgdlfdhdPdXgdidjdkgdkfdPdhdXgdkdjdigdifdhdXdPgdkdjdigdjfg¡dmdn„ ƒZ.dodp„ Z/ej dqdrdPdhd>gdse0dsdsdsdsgdsdsdsdsgdsdsdsdsggdrdPdhd>gdt�fdhd>gdsduge0didjdsdugdkdldsdugd(dvdsduggdrdPdhd>gdt�fdrdPdhge1j2dsdudwge1j3dx�e0dsdudwgdsdudwgdsdudwggdrdPdhgdt�fdPdhd>gdsdudwgdydzd{gd|d}d~gge0didsdudwgdkdydzd{gd(d|d}d~ggdrdPdhd>gdt�fdhdrd>ge1j2dsdudwgdydzd{gd|d}d~gge1j3dx�e0dudjdsdwgdzdldyd{gd}dvd|d~ggdrdPdhd>gdt�fdrdhge0dsdugdwdygdzd{ggdrdhgdt�e0dsdjdugdwdldygdzdvd{ggdrdPdhgdt�fg¡dd€„ ƒZ4d�d‚„ Z5dƒd„„ Z6d…d†„ Z7d‡dˆ„ Z8d‰dŠ„ Z9d‹dŒ„ Z:e;j<d�dŽ„ ƒZ=ej d�i d�dXig¡d‘d’„ ƒZ>d“d”„ Z?d•d–„ Z@d—d˜„ ZAd™S )šÚTestDataFrameSetItemc                 C   sv   G dd„ dt ƒ}dg}t|ƒ}tddgi|d�}d|d< d	||d
ƒ< tddgddg|d
ƒd	gi|d�}t ||¡ d S )Nc                   @   s   e Zd ZdS )z@TestDataFrameSetItem.test_setitem_str_subclass.<locals>.mystringN)Ú__name__Ú
__module__Ú__qualname__© r!   r!   úa/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/frame/indexing/test_setitem.pyÚmystring1   s   r#   z2020-10-22 01:21:00+00:00Úaé   ©Úindexé   Úbé   Úc)Ústrr   r   ÚtmZassert_equal)Úselfr#   Údatar'   ÚdfÚexpectedr!   r!   r"   Útest_setitem_str_subclass/   s    "z.TestDataFrameSetItem.test_setitem_str_subclassÚdtypeÚint32Úint64Úuint32Zuint64Úfloat32Úfloat64c                 C   s:   t j t|ƒ¡}t j||d�||< || jj|ks6t‚d S )N©r3   )ÚnpÚrandomÚrandnÚlenÚarrayr3   ÚnameÚAssertionError)r.   r3   Úfloat_frameÚarrr!   r!   r"   Útest_setitem_dtype<   s    z'TestDataFrameSetItem.test_setitem_dtypec                 C   s8   t j t|ƒd¡}||ddg< t |ddg j|¡ d S )Nr(   ÚAÚB)r:   r;   r<   r=   r-   Zassert_almost_equalÚvalues)r.   rA   r/   r!   r!   r"   Útest_setitem_list_not_dataframeE   s    z4TestDataFrameSetItem.test_setitem_list_not_dataframec              	   C   sÐ   t dddgdddgdœtdd	d
gdd�d�}tddddgtdd	d
dgdd�dd�}d}tjt|d�� ||d< W 5 Q R X t tj ddd¡dd	d
dgd�}d}tjt|d�� | 	d	d
g¡ 
¡ |d< W 5 Q R X d S )Nr%   r(   r*   ÚdÚeÚf)ÚbarZbazr$   r)   r+   Úfoo©r?   r&   ÚgÚhÚiÚjZfiz©r'   r?   z/cannot reindex on an axis with duplicate labels©ÚmatchZnewcolr   )é   rU   ©ÚcolumnszDCannot set a DataFrame with multiple columns to the single column grÚgr)r   r   r   ÚpytestÚraisesÚ
ValueErrorr:   r;   ÚrandintÚgroupbyÚcount)r.   r0   ÚserÚmsgr!   r!   r"   Útest_setitem_error_msmgsJ   s     þ
ý z-TestDataFrameSetItem.test_setitem_error_msmgsc                 C   sh   d}d}t t|ƒd�}tj |¡}t|ƒD ]}|||< q*t t ||¡ ||¡t|ƒd�}t ||¡ d S )Né
   é   r&   )	r   Úranger:   r;   r<   ÚrepeatZreshaper-   Úassert_frame_equal)r.   ÚNÚKr0   Znew_colrP   r1   r!   r!   r"   Útest_setitem_benchmark`   s    
 z+TestDataFrameSetItem.test_setitem_benchmarkc              	   C   s^  t tj dd¡t d¡dddgd�}| dd|d ¡ | d	d
|d ¡ |d  d¡|d< |j}tt 	d¡gd t 	d¡g ddd
dddgd�}t
 ||¡ |d  d¡|d< |j}tt 	d¡gd t 	d¡gd	  ddd
dddgd�}t
 ||¡ |d  d¡|d< |j}tt 	d¡gd t 	d¡gd	  t 	d¡g ddd
ddddgd�}t
 ||¡ d S )Nrc   r*   r+   r)   r$   ©r'   rW   r   rL   r(   rK   r7   Úxr8   r&   rU   r4   Úy)r   r:   r;   r<   ÚarangeÚinsertÚastypeÚdtypesr   r3   r-   Úassert_series_equal©r.   r0   Úresultr1   r!   r!   r"   Útest_setitem_different_dtypek   s8      ÿþþ*þz1TestDataFrameSetItem.test_setitem_different_dtypec                 C   sT   t dddgd�}|j|d< dddg|d< t ddddgidddgd	�}t ||¡ d S )
NrD   rE   ÚCr&   ÚXrk   rl   Úz)r/   r'   )r   r'   r-   rf   ©r.   r0   Úexpr!   r!   r"   Útest_setitem_empty_columnsŽ   s
    
z/TestDataFrameSetItem.test_setitem_empty_columnsc                 C   sF   t dddd�}tt t|ƒ¡d�}||d< |d jt d¡ksBt‚d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50Z10s)Úfreqr&   rD   úM8[ns])r   r   r:   rm   r=   r3   r@   )r.   Úrngr0   r!   r!   r"   Ú%test_setitem_dt64_index_empty_columns–   s    z:TestDataFrameSetItem.test_setitem_dt64_index_empty_columnsc                 C   sT   t tdƒd�}tddd�|d< t tddd�ggd ddd	gdgd
�}t ||¡ d S )Nr*   r&   Z20130101ÚUTC©ÚtzÚnowr   r%   r(   rj   )r   rd   r   r-   rf   ©r.   r0   r1   r!   r!   r"   Ú$test_setitem_timestamp_empty_columns�   s      ÿz9TestDataFrameSetItem.test_setitem_timestamp_empty_columnsc              	   C   sp   t  ddddddgdddg¡}ttdƒdgd	�}d
t|ƒ› dt|ƒ› d�}tjt|d�� ||d< W 5 Q R X d S )Nr   r%   r(   r$   r)   r+   rb   rK   rV   zLength of values \(z$\) does not match length of index \(z\)rS   rL   )r   Z
from_codesr   rd   r=   rY   rZ   r[   )r.   Úcatr0   r`   r!   r!   r"   Ú2test_setitem_wrong_length_categorical_dtype_raises§   s    ÿzGTestDataFrameSetItem.test_setitem_wrong_length_categorical_dtype_raisesc                 C   sP   t dddgdddgdœƒ}tddd	gƒ}||d
< t|d
d�}t |d
 |¡ d S )Nr$   r)   r+   ç      ð?ç       @ç      @©Zc_1Zn_1r   r%   Ú
new_columnrM   )r   r   r   r-   rq   )r.   r0   Zsp_arrayr1   r!   r!   r"   Útest_setitem_with_sparse_value³   s
    z3TestDataFrameSetItem.test_setitem_with_sparse_valuec                 C   sh   t dddgdddgdœƒ}ttddd	gƒd
d	dgd�}||d< ttd	ddgƒdd�}t |d |¡ d S )Nr$   r)   r+   r‡   rˆ   r‰   rŠ   r   r%   r(   r&   r‹   rM   )r   r   r   r-   rq   )r.   r0   Z	sp_seriesr1   r!   r!   r"   Ú(test_setitem_with_unaligned_sparse_value¼   s
    z=TestDataFrameSetItem.test_setitem_with_unaligned_sparse_valuec                 C   s8   t ddƒg}tg ƒ}||d< td|iƒ}t ||¡ d S )Nz2003-12ÚDr$   )r   r   r-   rf   )r.   r/   rs   r1   r!   r!   r"   Ú#test_setitem_period_preserves_dtypeÄ   s
    z8TestDataFrameSetItem.test_setitem_period_preserves_dtypec                 C   sÐ   t tdddgdd�tdddgtd�tdddgtd�tdddgdd�dœƒ}t tg dd�tg td�tg td�tg dd�dœƒ}tdddgƒD ]4\}}t|ƒt|ƒt|ƒt |¡dœ|j|jd < qŠt	 
||¡ d S )	Nr   r%   r(   r5   r9   r*   r6   ©r$   r)   r+   rH   )r   r   ÚfloatÚ	enumerateÚintr:   r6   ÚlocÚshaper-   rf   )r.   r1   r0   Úidxr)   r!   r!   r"   Ú"test_setitem_dict_preserves_dtypesÎ   s*    üÿ



üÿüz7TestDataFrameSetItem.test_setitem_dict_preserves_dtypesz	obj,dtypez2020-01ÚMr   rc   )ÚleftÚrightrš   z
2011-01-01z
US/Easternr€   c                 C   sL   t dddgt|gd |d�dœƒ}t ddddgiƒ}||d< t ||¡ d S )Nr%   r(   r*   r9   )r–   Úobjr–   r›   ©r   r   r-   rf   )r.   r›   r3   r1   r0   r!   r!   r"   Útest_setitem_extension_typesé   s    "z1TestDataFrameSetItem.test_setitem_extension_typesÚea_namec                 C   s   g | ]}t |jtƒs|j‘qS r!   )Ú
isinstancer?   Úproperty)Ú.0r3   r!   r!   r"   Ú
<listcomp>ÿ   s   ýzTestDataFrameSetItem.<listcomp>zdatetime64[ns, UTC]z	period[D]c                 C   s8   t dgƒ}dg||< t ddg|dgiƒ}t ||¡ d S )Nr   r%   ©r   r-   rf   )r.   rž   rs   r1   r!   r!   r"   Útest_setitem_with_ea_nameý   s    

z.TestDataFrameSetItem.test_setitem_with_ea_namec                 C   s’   t jddgdd�}t|ƒ ¡ }||d< tdd gdd gdœdd�}t ||¡ t jddgdd�}||d< t |d |d ¡ t |d  	¡ |¡ d S )	Nr%   Znatúdatetime64[ns]r9   Únew)r   r¦   údatetime64[s]r   )
r:   r>   r   Zto_framer   r-   rf   rq   Úassert_numpy_array_equalZto_numpy)r.   Zdata_nsrs   r1   Zdata_sr!   r!   r"   Ú6test_setitem_dt64_ndarray_with_NaT_and_diff_time_units  s    zKTestDataFrameSetItem.test_setitem_dt64_ndarray_with_NaT_and_diff_time_unitsÚunitrO   ÚmÚsÚmsrŽ   ÚYc                 C   s–   d}t  d|› d�¡}t j|t jd� |¡}|dkr:|}n
| d¡}tdt  |¡it  |¡d�}|||< || j|jks|t‚|| j|k 	¡ s’t‚d S )	Néd   úM8[ú]r9   )r¬   r­   r§   Úintsr&   )
r:   r3   rm   r5   Úviewro   r   r@   rF   Úall©r.   rª   Únr3   ÚvalsZex_valsr0   r!   r!   r"   Ú-test_frame_setitem_datetime64_col_other_units  s    
zBTestDataFrameSetItem.test_frame_setitem_datetime64_col_other_unitsc                 C   sŽ   d}t  d|› d�¡}t j|t jd� |¡}| d¡}tdt  |¡it  |¡d�}t j|t jd� d¡|d	< ||d	< |d	 j|k ¡ sŠt	‚d S )
Nr¯   r°   r±   r9   r¥   r²   r&   r|   Údates)
r:   r3   rm   r5   r³   ro   r   rF   r´   r@   rµ   r!   r!   r"   Ú6test_frame_setitem_existing_datetime64_col_other_units1  s    
zKTestDataFrameSetItem.test_frame_setitem_existing_datetime64_col_other_unitsc           
      C   s  |}|d   d¡}||d< t |d t|dd�¡ d|d< ||d< t |d t|dd�¡ |d= |jjd }|jjd }t ||¡ |jj}|jj}|d ks°t	|ƒt	|ƒks°t
‚| ¡ }t|jd< t|jd	< |d }	t t|	ƒtd
dd
gdd�¡ t |j|j¡ d S )NrE   rL   ru   rM   rŽ   r%   r(   )r%   r%   ©r%   r(   TF)Úrenamer-   rq   r   Ú_mgrZarraysZassert_extension_array_equalZ_ndarrayÚbaseÚidr@   Úcopyr   Úilocr   rp   )
r.   Ztimezone_framer0   r–   Zv1Zv2Zv1baseZv2baseÚdf2rs   r!   r!   r"   Útest_setitem_dt64tzB  s(    

z(TestDataFrameSetItem.test_setitem_dt64tzc                 C   s”   t dddd�}ttj dd¡|d�}||d< t|d ƒ}tj||dd	� |jdksVt	‚|jdksdt	‚| 
¡  d¡}t|jtƒs‚t	‚t |j|¡ d S )
Nz1/1/2000rc   r'   )Úperiodsr?   r*   r&   r   F©Zcheck_names)r   r   r:   r;   r<   r   r-   Úassert_index_equalr?   r@   Zreset_indexZ	set_indexrŸ   r'   r   )r.   r}   r0   Úrsr!   r!   r"   Útest_setitem_periodindex`  s    z-TestDataFrameSetItem.test_setitem_periodindexc                 C   sÌ   t dddgdddgdœƒ}t ddgddgddgg¡}||d	d
g< t dddgdddgdddgdddgdœƒ}|d	  |j¡|d	< |d
  |j¡|d
< |d	 j|jks¨t‚|d
 j|jks¼t‚t ||¡ d S )NÚoneÚtwoÚthreer%   r(   r*   ©r$   r)   rc   r+   rH   r�   )r   r:   r>   ro   r3   r@   r-   rf   ©r.   r0   rB   r1   r!   r!   r"   Ú'test_setitem_complete_column_with_arrayn  s    üÿz<TestDataFrameSetItem.test_setitem_complete_column_with_arrayÚf8Úi8Úu8c                 C   sx   t dddg|d�}ttj dd¡|d�}dddg|d	< t dddd	gtd�}|d
krft dddd	gtd�}t |j|¡ d S )Nr%   r(   r*   r9   rV   r$   r)   r+   FrÏ   r‡   rˆ   r‰   )	r   r   r:   r;   r<   Úobjectr-   rÆ   rW   )r.   r3   Úcolsr0   Zexpected_colsr!   r!   r"   Ú$test_setitem_bool_with_numeric_index�  s    z9TestDataFrameSetItem.test_setitem_bool_with_numeric_indexÚindexerrE   c                 C   sb   t ddgd�}t dddgiƒ}|||< t tjgd ddgdœƒ}|d  d¡|d< t ||¡ d S )NrD   rE   rV   r%   r(   ©rD   rE   rÒ   )r   r:   Únanro   r-   rf   )r.   rÕ   r0   Úotherr1   r!   r!   r"   Ú#test_setitem_frame_length_0_str_key�  s    z8TestDataFrameSetItem.test_setitem_frame_length_0_str_keyc              	   C   s¾   dddgd }t tdƒ|d�}d|jd< d	|jd d …df< d
|d< t ddddddgtjddtjddgtjddtjddggdd�}|d  tj¡|d< |d  tj¡|d< ||_t 	||¡ d S )NrD   rE   ru   r(   r*   rj   )r   r*   )r   rD   )r%   rU   ©r(   rc   r   r%   rU   rc   rÒ   r9   )
r   rd   r”   r:   r×   ro   r5   rW   r-   rf   )r.   rÓ   r0   r1   r!   r!   r"   Ú$test_setitem_frame_duplicate_columns™  s     
ýú
z9TestDataFrameSetItem.test_setitem_frame_duplicate_columnsc              	   C   s€   dddgd }t tdƒ|d�}tjtdd�� d	|dg< W 5 Q R X |jd d …d d…f }tjtdd�� d	|dg< W 5 Q R X d S )
NrD   rE   ru   r(   r*   rj   ú"Columns must be same length as keyrS   )r   r*   rc   )r   rd   rY   rZ   r[   rÁ   )r.   rÓ   r0   rÂ   r!   r!   r"   Ú2test_setitem_frame_duplicate_columns_size_mismatch°  s    zGTestDataFrameSetItem.test_setitem_frame_duplicate_columns_size_mismatchrÓ   r$   r)   r+   c              	   C   sT   t dddgg|d�}t ddggddgd�}d	}tjt|d
�� ||d< W 5 Q R X d S )Nr%   r(   r*   rV   rb   é   rH   rI   rÜ   rS   r$   ©r   rY   rZ   r[   )r.   rÓ   r0   Úrhsr`   r!   r!   r"   Ú#test_setitem_df_wrong_column_number»  s
    z8TestDataFrameSetItem.test_setitem_df_wrong_column_numberc                 C   s    t dddggdddgd�}t ddd	ggdddgd�}||ddg< t ddd	ggdddgd�}t ||¡ ||d
dg< t ddd	dggdddd
gd�}t ||¡ d S )Nr%   r(   r*   r$   r)   rV   rb   rÞ   é   r+   r£   )r.   r0   rà   r1   r!   r!   r"   Ú/test_setitem_listlike_indexer_duplicate_columnsÄ  s    zDTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columnsc              	   C   s^   t dddggdddgd�}t ddggddgd�}d	}tjt|d
�� ||ddg< W 5 Q R X d S )Nr%   r(   r*   r$   r)   rV   rb   rÞ   rÜ   rS   rß   )r.   r0   rà   r`   r!   r!   r"   Ú@test_setitem_listlike_indexer_duplicate_columns_not_equal_lengthÐ  s
    zUTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columns_not_equal_lengthc                 C   sº  t dtdƒiƒ}t|d dƒ}t|jjtƒs0t‚||d< t 	|¡|d< |j
|d< t 	|j
¡|d< | t¡|d< t|d jƒs€t‚t|d jjƒs”t‚t|d jƒs¦t‚t|d jjƒsºt‚t|d ƒsÊt‚t|d ƒsÚt‚t|d ƒsêt‚d	d
„ }t ||jƒ||jƒ¡ tj||jƒ||jƒdd� tj||jƒ||jƒdd� tj||jƒ||jƒdd� t |d |d ¡ tj|d |d dd� t |d |d ¡ tj|d |d dd� d S )NrD   rb   rc   rE   ru   rŽ   ÚEÚFc                 S   s   t t | ¡ƒS ©N)r   r:   r>   ©rk   r!   r!   r"   Ú<lambda>ö  ó    z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>FrÅ   )r   rd   r   rŸ   r…   Ú
categoriesr   r@   r:   r>   rF   ro   rÒ   r   r3   r   r   r-   rÆ   rE   ru   rŽ   rq   )r.   r0   r_   r+   r!   r!   r"   Útest_setitem_intervalsØ  s0    
z+TestDataFrameSetItem.test_setitem_intervalsc                 C   s\   t dttdƒƒ d¡iƒ}|jj ddg¡|_t dtddgƒ ddg¡iƒ}t 	||¡ d S )NrO   ZmnÚcategoryr¶   r«   )
r   r   Úlistro   rO   r…   Zreorder_categoriesr   r-   rf   rƒ   r!   r!   r"   Útest_setitem_categorical  s    ÿz-TestDataFrameSetItem.test_setitem_categoricalc                 C   sD   t g dd�}tdg|d�}g |d< tdg|d�}t |j|j¡ d S )Nr–   rM   rD   ©rW   r'   )r   r   r-   rÆ   r'   )r.   r'   rs   r1   r!   r!   r"   Ú test_setitem_with_empty_listlike  s
    z5TestDataFrameSetItem.test_setitem_with_empty_listlikezcols, values, expectedru   r%   r(   r*   rU   c                 C   s8   t |g|d�}|d |d< |d jd }||ks4t‚d S )NrV   r$   r   )r   rF   r@   )r.   rÓ   rF   r1   r0   rs   r!   r!   r"   Útest_setitem_same_column  s    z-TestDataFrameSetItem.test_setitem_same_columnc                 C   s$  dddgddgdddgf}t  |¡}td	d
d�}tj ddt|ƒt|ƒf¡}t|||d�}|jj	 
¡ |d d d …  }}tj |¡ |d j|d d d…f |d< t |d |d ¡ tj |¡ |d j||f |d< t |d |d ¡ tj |¡ |d j||f |d< t |d |d ¡ d S )NZjimÚjoeÚjolieÚfirstÚlastr™   Úcenterrš   Z20141006é   )rÄ   r%   iè  rð   éÿÿÿÿ)rô   rö   )ró   rõ   )rô   rõ   )ró   rö   )r   Zfrom_productr   r:   r;   r\   r=   r   r'   rF   rÀ   Úshuffler”   r-   rf   )r.   ÚitrÓ   r'   r·   r0   rP   rQ   r!   r!   r"   Útest_setitem_multi_index'  s    
z-TestDataFrameSetItem.test_setitem_multi_indexzcolumns,box,expectedrD   é   rV   é   é   é	   r9   rb   rÞ   râ   é   é   é   c                 C   s:   t ddgddgddggddgd	�}|||< t ||¡ d S )
Nr%   r(   r*   rU   rc   rÿ   rD   rE   rV   r£   )r.   rW   Úboxr1   r0   r!   r!   r"   Ú!test_setitem_list_missing_columns?  s    3"z6TestDataFrameSetItem.test_setitem_list_missing_columnsc                 C   sF   t t|d |d ƒƒ}||d< |d }t||jdd�}t ||¡ d S )NrD   rE   ÚtuplesrR   )rî   Úzipr   r'   r-   rq   )r.   rA   r  rs   r1   r!   r!   r"   Útest_setitem_list_of_tuplesv  s
    z0TestDataFrameSetItem.test_setitem_list_of_tuplesc                 C   s\   t dddgdddgdœƒ}dd	„ d
D ƒ}d|j|< t dddgdddgdœƒ}t ||¡ d S )Nr%   r(   r*   rU   rc   rÿ   rÌ   c                 s   s   | ]
}|V  qd S rç   r!   ©r¡   rk   r!   r!   r"   Ú	<genexpr>�  s     zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>r»   ©r   rÁ   r-   rf   ©r.   r0   rÕ   r1   r!   r!   r"   Útest_setitem_iloc_generator~  s
    
z0TestDataFrameSetItem.test_setitem_iloc_generatorc                 C   s`   t dddgdddgdœƒ}dd	„ d
D ƒ}d|j|df< t dddgdddgdœƒ}t ||¡ d S )Nr%   r(   r*   rU   rc   rÿ   rÌ   c                 s   s   | ]
}|V  qd S rç   r!   r	  r!   r!   r"   r
  ˆ  s     zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>r»   r  r  r!   r!   r"   Ú+test_setitem_iloc_two_dimensional_generator†  s
    z@TestDataFrameSetItem.test_setitem_iloc_two_dimensional_generatorc                 C   s”   t ddd�}t|d�}t d|tjd�|d< t d|dd�|d< t d	|dd�|d	< t d
|tjd�|d
< |j}t tjtttjgtdƒd�}t 	||¡ d S )Nr¿   ZS24)r?   r3   r&   r$   )r?   r'   r3   r)   ZS64r+   rH   Úabcd)
r   r   r:   r6   Zuint8rp   rÒ   rî   r-   rq   )r.   r'   r0   rs   r1   r!   r!   r"   Ú(test_setitem_dtypes_bytes_type_to_object�  s    
z=TestDataFrameSetItem.test_setitem_dtypes_bytes_type_to_objectc                 C   s†   t ddgddgdœƒ dddœ¡}td|jd	�}|d
 |j|d
f< |d |j|df< t ddgddgdœƒ dddœ¡}t ||¡ d S )Nr*   rU   rc   rÿ   rÌ   r5   ÚInt64Fr&   r$   r)   )r   ro   r   r'   r”   r-   rf   )r.   rs   Úmaskr1   r!   r!   r"   Ú test_boolean_mask_nullable_int64™  s    ÿÿz5TestDataFrameSetItem.test_boolean_mask_nullable_int64c                 C   sH   t dddgiƒ}tddgdd�|d< t dddgidd�}t ||¡ d S )Nr$   r%   r(   r  r9   rœ   rƒ   r!   r!   r"   Ú test_setitem_ea_dtype_rhs_series¦  s    z5TestDataFrameSetItem.test_setitem_ea_dtype_rhs_seriesc              	   C   sz   t t d¡t d¡dœt d¡d�}t d¡}t t d¡d�}||d< t t¡� t |¡|d< W 5 Q R X t ||¡ d S )Nrb   )únp-arrayú	np-matrixr&   )rb   r%   r  r  )	r   r:   Úonesrm   r-   Zassert_produces_warningÚPendingDeprecationWarningÚmatrixrf   )r.   r1   r$   r0   r!   r!   r"   Útest_setitem_npmatrix_2d®  s     ÿ
z-TestDataFrameSetItem.test_setitem_npmatrix_2dr·   rH   c                 C   sœ   t ddgddgdœ|–ƒ}dddœ|jd d …d	f< d
ddœ|jd d …df< dd
i|jd d …df< t ddgddgdœ|d
dgtjd
gdœ–ƒ}t ||¡ d S )Nr%   r(   r*   rU   rÌ   r¯   éÈ   )r%   r   r$   rc   rÿ   ©r   r%   r+   rI   )r+   rI   )r   r”   r:   r×   r-   rf   )r.   r·   r0   r1   r!   r!   r"   Ú%test_setitem_aligning_dict_with_indexÀ  s    &ÿz:TestDataFrameSetItem.test_setitem_aligning_dict_with_indexc                 C   sŠ   t dddgiƒ}t dddgiddgd�|d< t dtjdgiƒ}t ||¡ t dddgiƒ}| dt dddgiddgd�¡ t ||¡ d S )Nr$   r%   r(   rb   rÞ   r&   r   )r   r:   r×   r-   rf   Zisetitemrƒ   r!   r!   r"   Útest_setitem_rhs_dataframeÌ  s     z/TestDataFrameSetItem.test_setitem_rhs_dataframec                 C   sb   t ddgddgddggd�}t ddd	gi|d
�|d< t tdd	g|d
�ddgdœƒ}t ||¡ d S )Nr$   r)   r%   r(   r*   rU   ©rW   r/   rb   rÞ   r9   rÌ   rœ   ©r.   Zany_numeric_ea_dtyper0   r1   r!   r!   r"   Ú*test_setitem_frame_overwrite_with_ea_dtype×  s    þÿz?TestDataFrameSetItem.test_setitem_frame_overwrite_with_ea_dtypec                 C   s8   t ddgiƒ}| ¡ }d}||g ||< t ||¡ d S )NrÌ   rb   ©r   rÀ   r-   rf   )r.   r0   r1   Zcol_namer!   r!   r"   Útest_setitem_frame_midx_columnsã  s
    z4TestDataFrameSetItem.test_setitem_frame_midx_columnsN)Br   r   r    r2   rY   ÚmarkÚparametrizerC   rG   ra   ri   rt   rz   r~   r„   r†   rŒ   r�   r�   r—   r   r
   r   r	   r   r   r�   Úea_registryrp   r¤   r©   r¸   rº   rÃ   rÈ   rÎ   rÔ   rÙ   rÛ   rÝ   rá   rã   rä   rì   rï   rñ   rò   rü   r   r:   r>   r5   r  r  r  r  r  r  r  ÚtdZ&skip_array_manager_not_yet_implementedr  r  r  r!  r#  r!   r!   r!   r"   r   .   sþ    ÿ
#
	

þýþ
	þúþ





	
,	úþ

 
þý	 
þý	(ý 
þý	& 
þý	  ÿýÚþ1


r   c                   @   s@   e Zd Zejdd„ ƒZejdd„ ƒZdd„ Zdd„ Zd	d
„ Z	dS )ÚTestSetitemTZAwareValuesc                 C   s   t ddgdd�}| d¡}|S )Nz2013-1-1 13:00z2013-1-2 14:00rE   rM   z
US/Pacific)r   Útz_localize)r.   Znaiver–   r!   r!   r"   r–   í  s    
zTestSetitemTZAwareValues.idxc                 C   s.   t tj| ¡ dd�dd�}|j|jks*t‚|S )NrÒ   r9   rE   rM   )r   r:   r>   Útolistr3   r@   )r.   r–   r1   r!   r!   r"   r1   ó  s    z!TestSetitemTZAwareValues.expectedc                 C   sl   t tj dd¡dgd�}||d< |jddgd�j d ¡|d< |d }t| d¡ d ¡dd	�}t	 
||¡ d S )
Nr(   r%   rD   rV   rE   r   r&   r   rM   )r   r:   r;   r<   Z	to_seriesÚdtZ
tz_convertr   r)  r-   rq   )r.   r–   r1   r0   rs   Úcompr!   r!   r"   Útest_setitem_dt64seriesù  s    z0TestSetitemTZAwareValues.test_setitem_dt64seriesc                 C   s8   t tj dd¡dgd�}||d< |d }t ||¡ d S ©Nr(   r%   rD   rV   rE   )r   r:   r;   r<   r-   rq   ©r.   r–   r1   r0   rs   r!   r!   r"   Útest_setitem_datetimeindex  s    z3TestSetitemTZAwareValues.test_setitem_datetimeindexc                 C   s<   t tj dd¡dgd�}| ¡ |d< |d }t ||¡ d S r.  )r   r:   r;   r<   Zto_pydatetimer-   rq   r/  r!   r!   r"   Ú.test_setitem_object_array_of_tzaware_datetimes  s    zGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesN)
r   r   r    rY   Zfixturer–   r1   r-  r0  r1  r!   r!   r!   r"   r(  ì  s   


	r(  c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )Ú!TestDataFrameSetItemWithExpansionc                 C   sŠ   t dddgdddgdœƒ}|d }t dd	gd
dgddgg¡|ddg< d|jd< |rhtdddgdd�}ntdddgdd�}t ||¡ d S )Nr%   r(   r*   rU   rÿ   rÌ   r$   gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?ç      à?r+   rH   r¯   )r   r   rM   )r   r:   r>   rÁ   r   r-   rq   )r.   Úusing_copy_on_writer0   r_   r1   r!   r!   r"   Útest_setitem_listlike_views  s    $
z=TestDataFrameSetItemWithExpansion.test_setitem_listlike_viewsc                 C   sR   t ddgddggƒ}ddg|d< t dddgdddggdddgd	�}t ||¡ d S )
Nr%   r(   r*   rU   rc   rÿ   z0 - Namer   rV   r£   rƒ   r!   r!   r"   Ú.test_setitem_string_column_numpy_dtype_raising*  s    "zPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raisingc                 C   sf   t dddgdd�}ttdƒƒ|jd d …df< t dtjtjgdtjtjggdddgd�}t ||¡ d S )	Nr$   r)   r8   ©rW   r3   r(   r   r%   rV   )r   rî   rd   r”   r:   r×   r-   rf   )r.   r4  r0   r1   r!   r!   r"   Ú'test_setitem_empty_df_duplicate_columns1  s     ÿzITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columnsc           	      C   s>  t dtjtj ddd¡dd�iƒ}tdd„ tddd	ƒD ƒƒ}|jdgd
d�}t|j	tddd	ƒd|d�}|j
}||d< t|ƒ |j}tt d¡t|dd�gddgd�}t ||¡ ||d< t|ƒ |j}tt d¡t|dd�t|dd�gdddgd�}t ||¡ |d }|d }t |jj|¡ d|_t | ¡ | ¡ ¡ d S )NÚvaluer   i'  r¯   r4   r9   c                 S   s   g | ]}|› d |d › �‘qS )z - ió  r!   ©r¡   rP   r!   r!   r"   r¢   ?  s     zcTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype.<locals>.<listcomp>iô  T)ZbyZ	ascendingi)  F)rš   ÚlabelsrŽ   )rë   Zorderedr&   rå   )r   r:   r>   r;   r\   r   rd   Úsort_valuesr   r9  rF   r,   rp   r   r3   r   r-   rq   Zassert_categorical_equalr½   r?   Z
sort_index)	r.   r0   r;  r_   r…   rs   r1   Zresult1Zresult2r!   r!   r"   Ú-test_setitem_with_expansion_categorical_dtype:  s>    ÿþ

ýúzOTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtypec                 C   s2   t ƒ }d|d< t dgd� tj¡}t ||¡ d S )Nr%   rL   rV   )r   ro   r:   r5   r-   rf   rƒ   r!   r!   r"   Útest_setitem_scalars_no_indexg  s    z?TestDataFrameSetItemWithExpansion.test_setitem_scalars_no_indexc                 C   sL   d|j kst‚|d |d< d|j ks(t‚|d }|d }tj||dd� d S )NrÖ   rD   FrÅ   )rW   r@   r-   rq   )r.   rA   rs   r1   r!   r!   r"   Útest_setitem_newcol_tuple_keyn  s    ýz?TestDataFrameSetItemWithExpansion.test_setitem_newcol_tuple_keyc                 C   sX   t ddtƒ d�}t|tdƒd�}tdddƒ}t|ƒ}tj||< t || ¡ 	¡ sTt
‚d S )	Nz1/1/2012z2/1/2012)ÚstartÚendr{   rb   rð   iÜ  rÞ   r%   )r   r   r   rd   r   r   r:   r×   Úisnanr´   r@   )r.   rW   r/   ÚtÚtsr!   r!   r"   Ú#test_frame_setitem_newcol_timestampz  s    
zETestDataFrameSetItemWithExpansion.test_frame_setitem_newcol_timestampc                 C   sh   t dddgiƒ}|j|d< d|jddgdf< |jdgd d …f }t dgdgdœdgd�}t ||¡ d S )	Nr$   r)   r¯   FTr%   rÌ   r&   )r   r'   r”   r-   rf   rr   r!   r!   r"   Ú*test_frame_setitem_rangeindex_into_new_colƒ  s    
zLTestDataFrameSetItemWithExpansion.test_frame_setitem_rangeindex_into_new_colc                 C   sh   t ddgddgddggd�}t ddd	gi|d
�|d< t ddgddgtdd	g|d
�dœƒ}t ||¡ d S )Nr$   r)   r%   r(   r*   rU   r  rb   rÞ   r9   r+   ©r$   r)   r+   rœ   r   r!   r!   r"   Ú test_setitem_frame_keep_ea_dtypeŒ  s    ýÿzBTestDataFrameSetItemWithExpansion.test_setitem_frame_keep_ea_dtypeN)r   r   r    r5  r6  r8  r=  r>  r?  rE  rF  rH  r!   r!   r!   r"   r2    s   	-		r2  c                   @   sâ   e Zd Zdd„ Zej dejej	g¡ej de
ejeejg¡ej ddddg¡d	d
„ ƒƒƒZej de
ejeejg¡ej ddddg¡dd„ ƒƒZej dejej	g¡ej de
ejeejg¡ej ddddg¡dd„ ƒƒƒZdS )ÚTestDataFrameSetItemSlicingc                 C   sH   t t d¡ƒ}d|dd …< t d¡}d|dd …< t |ƒ}t ||¡ d S )N)r¯   r%   r%   éüÿÿÿ)r   r:   Úzerosr-   rf   rÍ   r!   r!   r"   Útest_setitem_slice_position›  s    
z7TestDataFrameSetItemSlicing.test_setitem_slice_positionrÕ   r  r¶   r%   r(   r*   c                 C   s~   t dddggdddgg|  ddd	gd
�}|dddgƒ||ƒdd …< t dddggdddgg|  ddd	gd
�}t ||¡ d S ©Nr%   r*   rc   r(   rU   rÿ   r$   r)   r+   rV   rb   rÞ   râ   r£   ©r.   r¶   r  rÕ   r0   r1   r!   r!   r"   Ú+test_setitem_slice_indexer_broadcasting_rhs¤  s    **zGTestDataFrameSetItemSlicing.test_setitem_slice_indexer_broadcasting_rhsc                 C   s†   t dddggdddgg|  ddd	gd
�}|dddgƒ|jttd|d ƒƒ< t dddggdddgg|  ddd	gd
�}t ||¡ d S rM  )r   rÁ   rî   rd   r-   rf   )r.   r¶   r  r0   r1   r!   r!   r"   Ú*test_setitem_list_indexer_broadcasting_rhs®  s    *"*zFTestDataFrameSetItemSlicing.test_setitem_list_indexer_broadcasting_rhsc                 C   sŒ   t dddgdddggddd	gg|  d
ddgd�}|dddgƒ||ƒdd …< t dddggdddgg|d   d
ddgdd�}t ||¡ d S )Nr%   r*   rc   rk   rl   rw   r(   rU   rÿ   r$   r)   r+   rV   rb   rÞ   râ   rÒ   r7  r£   rN  r!   r!   r"   Ú0test_setitem_slice_broadcasting_rhs_mixed_dtypes·  s    " ÿýzLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypesN)r   r   r    rL  rY   r$  r%  r-   ÚsetitemrÁ   r   r:   r>   rî   ÚpdrO  rP  rQ  r!   r!   r!   r"   rI  š  s   	rI  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestDataFrameSetItemCallablec                 C   s`   t ddddgddddgd	œƒ}d
dddg|dd„ < t d
dddgddddgd	œƒ}t ||¡ d S )Nr%   r(   r*   rU   rc   rÿ   rý   rþ   rÖ   rÞ   râ   r  r  c                 S   s   dS )NrD   r!   rè   r!   r!   r"   ré   Ì  rê   zDTestDataFrameSetItemCallable.test_setitem_callable.<locals>.<lambda>r£   rx   r!   r!   r"   Útest_setitem_callableÉ  s    z2TestDataFrameSetItemCallable.test_setitem_callablec                 C   sL   dd„ }t ddgddggƒ}|||dk< t d|g|dggƒ}t ||¡ d S )Nc                 S   s   | d S )Nr%   r!   rè   r!   r!   r"   ÚincÓ  s    zETestDataFrameSetItemCallable.test_setitem_other_callable.<locals>.incrù   r%   r   r£   )r.   rV  r0   r1   r!   r!   r"   Útest_setitem_other_callableÑ  s
    z8TestDataFrameSetItemCallable.test_setitem_other_callableN)r   r   r    rU  rW  r!   r!   r!   r"   rT  È  s   rT  c                   @   sþ   e Zd Zejejjddd„ dd„ gddgd�dd	„ ƒƒZejj	d
d�ej de
ejeg¡dd„ ƒƒZej de
ejeg¡dd„ ƒZej dejejg¡dd„ ƒZdd„ Zej dddg¡ej di ddgiddgig¡dd„ ƒƒZd d!„ Zd"d#„ Zd$d%„ Zd&S )'ÚTestDataFrameSetItemBooleanMaskÚ	mask_typec                 C   s   | t  | ¡d kS ©Nr(   )r:   Úabs©r0   r!   r!   r"   ré   á  rê   z(TestDataFrameSetItemBooleanMask.<lambda>c                 C   s   | t  | ¡d kjS rZ  )r:   r[  rF   r\  r!   r!   r"   ré   á  rê   Z	dataframer>   )Zidsc                 C   s^   |  ¡ }||ƒ}|  ¡ }tj||< |j  ¡ }tj|t |¡< t||j|jd�}t 	||¡ d S )Nrj   )
rÀ   r:   r×   rF   r>   r   r'   rW   r-   rf   )r.   rY  rA   r0   r  rs   r1   r!   r!   r"   Útest_setitem_boolean_maskÞ  s    

z9TestDataFrameSetItemBooleanMask.test_setitem_boolean_maskz1Currently empty indexers are treated as all False)Úreasonr  c              	   C   sh   t dgdgdgdœƒ}|tkr,|g dd�}n|g ƒ}d}tjt|d�� dg|j|dgf< W 5 Q R X d S )	Nr$   r%   rG  rÒ   r9   z@Must have equal len keys and value when setting with an iterablerS   r)   )r   r   rY   rZ   r[   r”   )r.   r  r0   rÕ   r`   r!   r!   r"   Ú:test_setitem_loc_empty_indexer_raises_with_non_empty_valueò  s    zZTestDataFrameSetItemBooleanMask.test_setitem_loc_empty_indexer_raises_with_non_empty_valuec                 C   sz   t dgdgdgdœƒ}|dgƒ}d|d  |j|dgf< t dgdgdgdœƒ}t ||¡ d|j|dgf< t ||¡ d S )	Nr$   r%   rG  Frb   r+   r)   r   )r   r”   r-   rf   )r.   r  r0   rÕ   r1   r!   r!   r"   Ú1test_setitem_loc_only_false_indexer_dtype_changedÿ  s    
zQTestDataFrameSetItemBooleanMask.test_setitem_loc_only_false_indexer_dtype_changedrÕ   c                 C   s\   t ddddgddddgd	œƒ}| ¡ }|d
 dk}||ƒ|  d
¡||ƒ|< t ||¡ d S )Nr%   rU   r(   r*   rc   rÿ   rý   rþ   rÌ   r$   )r   rÀ   r<  r-   rf   )r.   rÕ   r0   r1   r  r!   r!   r"   Ú"test_setitem_boolean_mask_aligning  s
    zBTestDataFrameSetItemBooleanMask.test_setitem_boolean_mask_aligningc                 C   sü   t dddddddgddgd�}tdddddd	d
gƒ}dddddddg}t||dœ|d�}t dddddddgdddgd�}tdddddd	d
gƒ}dddddddg}t||dœ|d�}| ¡ }	|	d j dddg¡|	d< |d dk}
ddg||
< t ||	¡ d S )Nr$   r)   )rë   rO   rP   rQ   ÚkÚlr«   r¶   r%   r(   )ÚcatsrF   r&   r+   r*   rd  )r   r   r   rÀ   r…   Zset_categoriesr-   rf   )r.   Zcats2Zidx2Zvalues2Zexp_multi_rowZcatsfZidxfZvaluesfr0   Z	exp_fancyr  r!   r!   r"   Útest_setitem_mask_categorical  s      ÿz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalr3   r‘   r5   Úkwargsr'   r%   rW   rD   c                 C   s6   ||d< t f |Ž}| ¡ }d|||k< t ||¡ d S )Nr3   é/   r"  )r.   r3   rf  r0   rÂ   r!   r!   r"   Ú%test_setitem_empty_frame_with_boolean-  s
    
zETestDataFrameSetItemBooleanMask.test_setitem_empty_frame_with_booleanc              	   C   sæ   t tdƒƒ}dddg}t||tjdddgdd	d
gdddggtd�d�}t||t t|ƒt|ƒf¡d�}t||tjdddgdd	dgdddggtd�d�}d||d	| k< t 	||¡ t
jtdd�� d||jd d… dk< W 5 Q R X d S )Nr*   rD   rE   ru   ç        r3  r‡   g      ø?rˆ   g      @r‰   g      @g      @r9   )r'   rW   r/   rù   zItem wrong lengthrS   r(   )rî   rd   r   r:   r>   r‘   r  r=   r-   rf   rY   rZ   r[   r'   )r.   r–   rÓ   Zdf1rÂ   r1   r!   r!   r"   Útest_setitem_boolean_indexing8  s(    
 ÿý $ýz=TestDataFrameSetItemBooleanMask.test_setitem_boolean_indexingc                 C   sd   t ddgddgddœƒ}| ¡ }tddgdd	�}t d
ddgiddgd�|j|d
gf< t ||¡ d S )Nr%   r(   r*   rU   r$   rG  Fr+   rM   r)   rc   rÿ   r   r&   )r   rÀ   r   r”   r-   rf   )r.   r0   r1   rÕ   r!   r!   r"   Ú-test_loc_setitem_all_false_boolean_two_blocksO  s
    $zMTestDataFrameSetItemBooleanMask.test_loc_setitem_all_false_boolean_two_blocksc                 C   sh   t ddgddggƒ}t ddgddggƒ}t tddgdd	�ttjdgdd	�d
œƒ}d||< t ||¡ d S )Nrù   r(   r*   rJ  r   TFÚbooleanr9   r  )r   r   rS  ZNAr-   rf   )r.   r0   r1   Zboolean_indexerr!   r!   r"   Útest_setitem_ea_boolean_maskW  s    þÿz<TestDataFrameSetItemBooleanMask.test_setitem_ea_boolean_maskN)r   r   r    r'  Úskip_array_manager_invalid_testrY   r$  r%  r]  Úxfailrî   r:   r>   r   r_  r`  r-   rR  r”   ra  re  rh  rj  rk  rm  r!   r!   r!   r"   rX  Ý  s*   ý

	rX  c                   @   s  e Zd Zdd„ Zej dddg¡dd„ ƒZdd	„ Zej d
de	j
dgdggdd�dgdggg¡dd„ ƒZej d
de	 
dgdgg¡dgdggg¡dd„ ƒZej dddgejddgejjddd�d�g¡ej dddedƒedƒfdg¡dd„ ƒƒZejd d!„ ƒZd"S )#Ú%TestDataFrameSetitemCopyViewSemanticsc                 C   sZ   d|j kst‚|d  ¡ }||d< tj|jdd…|j  d¡f< t|dd… ƒ ¡ sVt‚d S )Nrå   rD   rc   rb   )	rW   r@   rÀ   r:   r×   rÁ   Zget_locr   r´   )r.   rA   r¬   r!   r!   r"   Útest_setitem_always_copyf  s
    z>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copyÚconsolidateTFc                 C   sè   t ddddgddddgd	œd
dddgd�}| ddtj¡ |st|r`| ¡  t|jjƒdkstt‚nt|jjƒdkstt‚|d j	}d|j
dd …df< ttjtjddg|jdd�}t |d |¡ |sät ||j¡ t ||d j	¡sät‚d S )Ngš™™™™™ñ?gÍÌÌÌÌÌ @gÍÌÌÌÌÌ@gffffff@gffffff@gffffff@gffffff@g333333 @)rk   rl   r   r%   r(   r*   r&   rw   é*   rR   )r   rn   r:   r×   Z_consolidate_inplacer=   r½   Úblocksr@   Z_valuesr”   r   r'   r-   rq   r¨   rF   Zshares_memory)r.   rr  Úusing_array_managerr4  r0   Zzvalsr1   r!   r!   r"   Ú#test_setitem_partial_column_inplacen  s"    	 
ÿ
zITestDataFrameSetitemCopyViewSemantics.test_setitem_partial_column_inplacec                 C   sj   ddgd }t ddg|d�}| ¡ }|d d … }d|d< t ddddgg|d	�}t ||¡ t ||¡ d S )
NrD   rE   r(   ri  r   rj   rÚ   rc   rV   r"  )r.   rÓ   r0   Údf_copyÚdf_viewr1   r!   r!   r"   Ú*test_setitem_duplicate_columns_not_inplaceŽ  s    zPTestDataFrameSetitemCopyViewSemantics.test_setitem_duplicate_columns_not_inplacer9  r%   r5   r9   c                 C   sl   ddg}t dddg|d�}| ¡ }|d d … }||dg< t ddgddgg|d�}t ||¡ t ||¡ d S )NrD   rE   r   r%   rj   rV   r"  )r.   r9  ru  rÓ   r0   rw  rx  r1   r!   r!   r"   Ú#test_setitem_same_dtype_not_inplaceš  s    
zITestDataFrameSetitemCopyViewSemantics.test_setitem_same_dtype_not_inplacer‡   c                 C   sl   ddg}t dddg|d�}| ¡ }|d d … }||dg< t ddgddgg|d�}t ||¡ t ||¡ d S )NrD   rE   r   r%   rj   r‡   rV   r"  )r.   r9  rÓ   r0   rw  rx  r1   r!   r!   r"   Ú2test_setitem_listlike_key_scalar_value_not_inplace©  s    
zXTestDataFrameSetitemCopyViewSemantics.test_setitem_listlike_key_scalar_value_not_inplacerÕ   r$   z+Boolean indexer incorrectly setting inplace)r^  Ústrict)Zmarkszvalue, set_value)r%   rc   )r‡   g      @z
2020-12-31z
2021-12-31rÌ   c                 C   s@   t d|iddgd�}| ¡ }|d d … }|||< t ||¡ d S )Nr$   r   r%   r&   r"  )r.   r9  Ú	set_valuerÕ   r0   r1   r³   r!   r!   r"   Ú"test_setitem_not_operating_inplace¶  s
    zHTestDataFrameSetitemCopyViewSemantics.test_setitem_not_operating_inplacec              	      sÔ   dd„ t dƒD ƒ‰ t‡ fdd„ˆ D ƒˆ d�}|jjd j}|s~|jD ]}d|| |< qDt |t d¡t d¡f dk¡sÐt	‚nRt
 ¡ � |jD ]}d|| |< qŽW 5 Q R X t |t d¡t d¡f dk¡sÐt	‚d S )	Nc                 S   s   g | ]}d |› �‘qS )r+   r!   r:  r!   r!   r"   r¢   Ù  s     z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<listcomp>rb   c                    s   i | ]}|t  tˆ ƒ¡“qS r!   )r:   rK  r=   )r¡   Úcol©r;  r!   r"   Ú
<dictcomp>Ú  s      z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<dictcomp>r&   r   r%   )rd   r   r½   rt  rF   rW   r:   r´   rm   r@   r-   Zraises_chained_assignment_error)r.   r4  r0   rF   Úlabelr!   r€  r"   Ú"test_setitem_column_update_inplaceÕ  s    
(

zHTestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplaceN)r   r   r    rq  rY   r$  r%  rv  ry  r:   r>   rz  r{  Úparamro  r   r~  r'  rn  rƒ  r!   r!   r!   r"   rp  e  sF   
 "ÿ
(
þþýþüþ	rp  )4r   Únumpyr:   rY   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr'  Zpandas.core.dtypes.baser   r&  Zpandas.core.dtypes.commonr   r   r   Zpandas.core.dtypes.dtypesr   r   r	   r
   ZpandasrS  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr-   Zpandas.core.arraysr   Zpandas.tseries.offsetsr   r   r(  r2  rI  rT  rX  rp  r!   r!   r!   r"   Ú<module>   s2   H     C* . 	