U
    `»{jG¯  ã                   @   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—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!   úg/var/www/html/bwave/python/venv/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��( tjtdd�� ||d< W 5 Q R X 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
non-uniqueZnewcolr   )é   rU   ©ÚcolumnszDCannot set a DataFrame with multiple columns to the single column grÚgr)r   r   r   ÚpytestÚraisesÚ
ValueErrorr-   Úassert_produces_warningÚFutureWarningr:   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_benchmarkb   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 )Nre   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_dtypem   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&   ÚXrm   rn   Úz)r/   r'   )r   r'   r-   rh   ©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:   ro   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(   rl   )r   rf   r   r-   rh   ©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+   rd   rK   rV   zLength of values \(z$\) does not match length of index \(z\)rS   rL   )r   Z
from_codesr   rf   r=   rY   rZ   r[   )r.   Úcatr0   rb   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-   rs   )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-   rs   )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-   rh   )r.   r/   ru   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-   rh   )r.   r1   r0   Úidxr)   r!   r!   r"   Ú"test_setitem_dict_preserves_dtypesÐ   s*    üÿ



üÿüz7TestDataFrameSetItem.test_setitem_dict_preserves_dtypesz	obj,dtypez2020-01ÚMr   re   )Ú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-   rh   )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-   rh   )r.   r    ru   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 gdd gdœdd�}t ||¡ d S )	Nr%   Znatúdatetime64[ns]r9   Únew)r   r¨   zdatetime64[s]g    eÍÍA)r:   r>   r   Zto_framer   r-   rh   )r.   Zdata_nsru   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¡}tdt  |¡it  |¡d�}|||< || jt  d¡ksrt‚|| j|k 	¡ sˆt‚d S )	Néd   úM8[ú]r9   r§   Úintsr&   r~   )
r:   r3   ro   r5   Úviewrq   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   ro   r5   r³   rq   r   rF   r´   r@   rµ   r!   r!   r"   Ú6test_frame_setitem_existing_datetime64_col_other_units0  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   rw   rM   r�   r%   r(   )r%   r%   ©r%   r(   TF)Úrenamer-   rs   r   Ú_mgrZarraysZassert_extension_array_equalÚ_dataÚbaseÚidr@   Úcopyr   Úilocr   rr   )
r.   Ztimezone_framer0   r˜   Zv1Zv2Zv1baseZv2baseÚdf2ru   r!   r!   r"   Útest_setitem_dt64tzA  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/2000re   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)   re   r+   rH   r’   )r   r:   r>   rq   r3   r@   r-   rh   ©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:   Únanrq   r-   rh   )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  |rt nd }d}dddgd }ttdƒ|d�}d|jd	< tj||d
�� d|jd d …df< W 5 Q R X 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�}|rÚ||_|d  	d¡|d< |d  	d¡|d< n.|d  	tj
¡|d< |d  	tj
¡|d< ||_t ||¡ d S )Nz&will attempt to set the values inplacerD   rE   rw   r(   r*   rl   )r   r*   )r   rD   rS   )r%   rU   ©r(   re   r   r%   rU   re   rÓ   r9   r5   )r]   r   rf   r–   r-   r\   r:   rØ   rW   rq   r5   rh   )r.   Úusing_array_managerÚwarnrb   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   rw   r(   r*   rl   ú"Columns must be same length as keyrS   )r   r*   re   )r   rf   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   rd   é   rH   rI   rß   rS   r$   ©r   rY   rZ   r[   )r.   rÔ   r0   Úrhsrb   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   rd   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   rd   rá   rß   rS   râ   )r.   r0   rã   rb   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   rd   re   rE   rw   r�   ÚEÚFc                 S   s   t t | ¡ƒS ©N)r   r:   r>   ©rm   r!   r!   r"   Ú<lambda>  ó    z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>FrÆ   )r   rf   r   r¡   r‡   Ú
categoriesr   r@   r:   r>   rF   rq   rÓ   r   r3   r   r   r-   rÇ   rE   rw   r�   rs   )r.   r0   ra   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   Úlistrq   rO   r‡   Zreorder_categoriesr   r-   rh   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'   ru   r1   r!   r!   r"   Ú test_setitem_with_empty_listlike  s
    z5TestDataFrameSetItem.test_setitem_with_empty_listlikezcols, values, expectedrw   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   ru   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-   rh   )r.   ÚitrÔ   r'   r·   r0   rP   rQ   r!   r!   r"   Útest_setitem_multi_index5  s    
z-TestDataFrameSetItem.test_setitem_multi_indexzcolumns,box,expectedrD   é   rV   é   é   é	   r9   rd   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   re   r  rD   rE   rV   r¥   )r.   rW   Úboxr1   r0   r!   r!   r"   Ú!test_setitem_list_missing_columnsM  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-   rs   )r.   rA   r	  ru   r1   r!   r!   r"   Útest_setitem_list_of_tuples„  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   re   r  rÍ   c                 s   s   | ]
}|V  qd S rê   r!   ©r£   rm   r!   r!   r"   Ú	<genexpr>�  s     zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>r»   ©r   rÂ   r-   rh   ©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   re   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uint8rr   rÓ   rñ   r-   rs   )r.   r'   r0   ru   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   re   r  rÍ   r5   ÚInt64Fr&   r$   r)   )r   rq   r   r'   r–   r-   rh   )r.   ru   Ú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 )Nrd   )únp-arrayú	np-matrixr&   )rd   r%   r  r  )	r   r:   Úonesro   r-   r\   ÚPendingDeprecationWarningÚmatrixrh   )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$   re   r  )r   r%   r+   rI   )r+   rI   )r   r–   r:   rØ   r-   rh   )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(   rd   rá   r&   r   )r   r:   rØ   r-   rh   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/   rd   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_dtypeN)Ar   r   r    r2   rY   ÚmarkÚparametrizerC   rG   rc   rk   rv   r|   r€   r†   rˆ   rŽ   r�   r‘   r™   r   r
   r   r	   r   r   rŸ   Úea_registryrr   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   .   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   s–   t tj dd¡dgd�}||d< t t¡�}|jdddgd�|d< W 5 Q R X d	}|t|d j	ƒksft
‚|d }t| d
¡ d ¡dd�}t ||¡ d S )Nr(   r%   rD   rV   rE   Fr   )Zkeep_tzr'   z(do 'idx.tz_convert(None)' before callingr�   rM   )r   r:   r;   r<   r-   r\   r]   Z	to_seriesr,   Úmessager@   r   Z
tz_convertr)  rs   )r.   r˜   r1   r0   r«   rb   ru   Ú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-   rs   ©r.   r˜   r1   r0   ru   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-   rs   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-   rs   )r.   Úusing_copy_on_writer0   ra   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   re   r  z0 - Namer   rV   r¥   r…   r!   r!   r"   Ú.test_setitem_string_column_numpy_dtype_raising4  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ñ   rf   r–   r:   rØ   r-   rh   )r.   r4  r0   r1   r!   r!   r"   Ú'test_setitem_empty_df_duplicate_columns;  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¤   I  s     zcTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype.<locals>.<listcomp>iô  T)ZbyZ	ascendingi)  F)rœ   Úlabelsr�   )rî   Úorderedr&   rè   )r   r:   r>   r;   r^   r   rf   Úsort_valuesr   r9  rF   r,   rr   r   r3   r   r-   rs   Zassert_categorical_equalr½   r?   Z
sort_index)	r.   r0   r;  ra   r‡   ru   r1   Zresult1Zresult2r!   r!   r"   Ú-test_setitem_with_expansion_categorical_dtypeD  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   rq   r:   r5   r-   rh   r…   r!   r!   r"   Útest_setitem_scalars_no_indexq  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-   rs   )r.   rA   ru   r1   r!   r!   r"   Útest_setitem_newcol_tuple_keyx  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}   rd   ró   iÜ  rá   r%   )r   r   r   rf   r   r   r:   rØ   Úisnanr´   r@   )r.   rW   r/   ÚtÚtsr!   r!   r"   Ú#test_frame_setitem_newcol_timestamp„  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-   rh   rt   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!  rd   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@  rF  rG  rI  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-   rh   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*   re   r(   rU   r  r$   r)   r+   rV   rd   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 rN  )r   rÂ   rñ   rf   r-   rh   )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*   re   rm   rn   ry   r(   rU   r  r$   r)   r+   rV   rd   rá   rå   rÓ   r7  r¥   rO  r!   r!   r"   Ú0test_setitem_slice_broadcasting_rhs_mixed_dtypesÁ  s    " ÿýzLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypesN)r   r   r    rM  rY   r$  r%  r-   ÚsetitemrÂ   r   r:   r>   rñ   ÚpdrP  rQ  rR  r!   r!   r!   r"   rJ  ¤  s   	rJ  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   re   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¥   rz   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.   rW  r0   r1   r!   r!   r"   Útest_setitem_other_callableÛ  s
    z8TestDataFrameSetItemCallable.test_setitem_other_callableN)r   r   r    rV  rX  r!   r!   r!   r"   rU  Ò  s   rU  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$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 r[  )r:   r\  rF   r]  r!   r!   r"   rì   ë  rí   Z	dataframer>   )Zidsc                 C   sL   |  ¡ }||ƒ}|  ¡ }tj||< |  ¡ }tj|jt |¡< t ||¡ d S rê   )rÁ   r:   rØ   rF   r>   r-   rh   )r.   rZ  rA   r0   r  ru   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%   rH  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Ö   rb   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%   rH  Frd   r+   r)   r  )r   r–   r-   rh   )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*   re   r  r   r  rÍ   r$   )r   rÁ   r=  r-   rh   )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�}| ¡ }	tjtdd��  |	d jjdddgdd�}
W 5 Q R X |
d ksút	‚|d dk}ddg||< t 
||	¡ d S )Nr$   r)   )rî   rO   rP   rQ   ÚkÚlr«   r¶   r%   r(   )ÚcatsrF   r&   r+   r*   F)Zcheck_stacklevelre  T)Zinplace)r   r   r   rÁ   r-   r\   r]   r‡   Zset_categoriesr@   rh   )r.   Zcats2Zidx2Zvalues2Zexp_multi_rowZcatsfZidxfZvaluesfr0   Z	exp_fancyZreturn_valuer  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Á   r-   rh   )r.   r3   rg  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   rw   ç        r3  r‰   g      ø?rŠ   g      @r‹   g      @g      @r9   )r'   rW   r/   rü   zItem wrong lengthrS   r(   )rñ   rf   r   r:   r>   r“   r  r=   r-   rh   rY   rZ   r[   r'   )r.   r˜   rÔ   Zdf1rÃ   r1   r!   r!   r"   Útest_setitem_boolean_indexingG  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$   rH  Fr+   rM   r)   re   r  r   r&   )r   rÁ   r   r–   r-   rh   )r.   r0   r1   rÖ   r!   r!   r"   Ú-test_loc_setitem_all_false_boolean_two_blocks^  s
    $zMTestDataFrameSetItemBooleanMask.test_loc_setitem_all_false_boolean_two_blocksN)r   r   r    r'  Úskip_array_manager_invalid_testrY   r$  r%  r^  Úxfailrñ   r:   r>   r   r`  ra  r-   rS  r–   rb  rf  rj  rl  rm  r!   r!   r!   r"   rY  ç  s(   ý

	rY  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   sP   d|j kst‚|d  ¡ }||d< tj|d dd…< t|dd… ƒ ¡ sLt‚d S )Nrè   rD   re   rd   )rW   r@   rÁ   r:   rØ   r   r´   )r.   rA   r¬   r!   r!   r"   Útest_setitem_always_copyh  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 @)rm   rn   r   r%   r(   r*   r&   ry   é*   rR   )r   rp   r:   rØ   Z_consolidate_inplacer=   r½   Úblocksr@   Z_valuesr–   r   r'   r-   rs   Zassert_numpy_array_equalrF   Zshares_memory)r.   rr  rÜ   r4  r0   Zzvalsr1   r!   r!   r"   Ú#test_setitem_partial_column_inplacep  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(   rk  r   rl   rÛ   re   rV   ri  )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%   rl   rV   ri  )r.   r9  rÜ   rÔ   r0   rv  rw  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%   rl   r‰   rV   ri  )r.   r9  rÔ   r0   rv  rw  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%   re   )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&   ri  )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}|jD ]}d|| |< q@|s~t |t d¡t d¡f dk¡s¤t	‚n&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>rd   c                    s   i | ]}|t  tˆ ƒ¡“qS r!   )r:   rL  r=   )r£   Úcol©r;  r!   r"   Ú
<dictcomp>Ü  s      z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<dictcomp>r&   r   r%   )
rf   r   r½   rt  rF   rW   r:   r´   ro   r@   )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%  ru  rx  r:   r>   ry  rz  Úparamro  r   r}  r'  rn  r‚  r!   r!   r!   r"   rp  g  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pandasrT  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  rJ  rU  rY  rp  r!   r!   r!   r"   Ú<module>   s2   H     I. . 