a
    é´«j0Ù  ã                   @   sT  d dl m Z  d dlZd dlZd dlmZ d dlm  mZ	 d dl
mZ d dl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d„ Z4dd„ Z5dS )é    )ÚdatetimeN)ÚSettingWithCopyWarning)Ú	_registry)Ú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                   @   sx  e Zd Zdd„ Zej dg d¢¡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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*d-�fg¡d.d/„ ƒZej d0d1d2„ ejD ƒd3d4g ¡d5d6„ ƒZd7d8„ Zej d9g d:¢¡d;d<„ ƒZ ej d9g d:¢¡d=d>„ ƒZ!d?d@„ Z"dAdB„ Z#dCdD„ Z$dEdF„ Z%ej dg dG¢¡dHdI„ ƒZ&ej dJdKdKgg¡dLdM„ ƒZ'dNdO„ Z(dPdQ„ Z)ej dRg dS¢g dT¢g¡dUdV„ ƒZ*dWdX„ Z+dYdZ„ Z,d[d\„ Z-d]d^„ Z.d_d`„ Z/ej dag db¢g dc¢ddfg de¢g dc¢ddfg df¢g dc¢ddfg dg¢g dh¢difg dj¢g dk¢dlfg dm¢g dk¢dnfg¡dodp„ ƒZ0dqdr„ Z1ej dsg dt¢due2g dv¢g dv¢g dv¢gg dt¢dw�fdxdygdudzge2g d{¢g d|¢g d}¢gg dt¢dw�fg d~¢e3j4g d¢e3j5d€�e2g d¢g d¢g d¢gg d~¢dw�fg d�¢g d¢g d‚¢g dƒ¢ge2g d„¢g d…¢g d†¢gg dt¢dw�fg d‡¢e3j4g d¢g d‚¢g dƒ¢ge3j5d€�e2g dˆ¢g d‰¢g dŠ¢gg dt¢dw�fd‹dxge2dudzgdŒd�gdŽd�ggd‹dxgdw�e2g d�¢g d‘¢g d’¢gg d~¢dw�fg¡d“d”„ ƒZ6d•d–„ Z7d—d˜„ Z8d™dš„ Z9d›dœ„ Z:d�dž„ Z;dŸd „ Z<e=j>d¡d¢„ ƒZ?ej d£i d¤d¥ig¡d¦d§„ ƒZ@d¨d©„ ZAdªd«„ ZBd¬d­„ ZCd®d¯„ ZDd°d±„ ZEd²d³„ ZFd´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/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/indexing/test_setitem.pyÚmystring.   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   sD   t j d¡ ddt|ƒ¡}t j||d�||< || jj|ks@J ‚d S )Nr'   r$   é
   ©r2   )ÚnpÚrandomÚdefault_rngÚintegersÚlenÚarrayr2   Úname)r-   r2   Úfloat_frameÚarrr    r    r!   Útest_setitem_dtype9   s    z'TestDataFrameSetItem.test_setitem_dtypec                 C   s@   t j d¡ t|ƒdf¡}||ddg< t |ddg j|¡ d S )Nr'   ÚAÚB)r:   r;   r<   Ústandard_normalr>   r,   Zassert_almost_equalÚvalues)r-   rA   r.   r    r    r!   Útest_setitem_list_not_dataframeC   s    z4TestDataFrameSetItem.test_setitem_list_not_dataframec                 C   s*  t g d¢g d¢dœtg d¢dd�d�}tg d¢tg d	¢dd�d
d�}d}tjt|d�� ||d< W d   ƒ n1 st0    Y  t tj d¡ 	ddd¡g d¢d�}d}tjt|d��& | 
ddg¡ ¡ |d< W d   ƒ n1 sÞ0    Y  d}tjt|d�� t ƒ |d< W d   ƒ n1 �s0    Y  d S )N©r$   r'   r)   )ÚdÚeÚf)ÚbarZbaz©r#   r(   r*   Úfoo©r@   r%   )ÚgÚhÚiÚj)r#   r(   r*   r#   Zfiz©r&   r@   z/cannot reindex on an axis with duplicate labels©ÚmatchZnewcolr'   r   )é   rX   ©r#   r(   r*   rJ   ©ÚcolumnszDCannot set a DataFrame with multiple columns to the single column grr(   r*   Úgrz7Cannot set a DataFrame without columns to the column gr)r   r   r   ÚpytestÚraisesÚ
ValueErrorr:   r;   r<   r=   ÚgroupbyÚcount)r-   r/   ÚserÚmsgr    r    r!   Útest_setitem_error_msmgsH   s,    þý&þ4z-TestDataFrameSetItem.test_setitem_error_msmgsc                 C   sn   d}d}t t|ƒd�}tj d¡ |¡}t|ƒD ]}|||< q0t t ||¡ ||¡t|ƒd�}t 	||¡ d S )Nr8   é   r%   r'   )
r   Úranger:   r;   r<   rF   ÚrepeatÚreshaper,   Úassert_frame_equal)r-   ÚNÚKr/   Znew_colrS   r0   r    r    r!   Útest_setitem_benchmarkf   s    
 z+TestDataFrameSetItem.test_setitem_benchmarkc                 C   sF  t tj d¡ d¡t d¡g d¢d�}| dd|d ¡ | dd	|d
 ¡ |d  d¡|d< |j}t	t 
d¡gd t 
d¡g g d¢d�}t ||¡ |d  d¡|d< |j}t	t 
d¡gd t 
d¡gd  g d¢d�}t ||¡ |d  d¡|d< |j}t	t 
d¡gd t 
d¡gd  t 
d¡g g d¢d�}t ||¡ d S )Nr'   ©re   r)   re   )r*   r(   r#   ©r&   r[   r   rO   r#   rM   r*   r6   Úxr7   )rO   r*   rM   r(   r#   ro   r%   rX   r3   Úy)rO   r*   rM   r(   r#   ro   rp   )r   r:   r;   r<   rF   ÚarangeÚinsertÚastypeÚdtypesr   r2   r,   Úassert_series_equal©r-   r/   Úresultr0   r    r    r!   Útest_setitem_different_dtypeq   s8    ýþþ*þz1TestDataFrameSetItem.test_setitem_different_dtypec                 C   sP   t g d¢d�}|j|d< g d¢|d< t dg d¢ig d¢dgd�}t ||¡ d S )N©rD   rE   ÚCr%   ÚX©ro   rp   Úz)r.   r&   r[   )r   r&   r,   ri   ©r-   r/   Úexpr    r    r!   Útest_setitem_overwrite_index–   s    
ÿz1TestDataFrameSetItem.test_setitem_overwrite_indexc                 C   sh   t ƒ }g d¢|d< t dg d¢iƒ}t ||¡ t tg ƒd�}g d¢|d< t dg d¢iƒ}t ||¡ d S )NrI   rO   rZ   )r   r,   ri   r   ©r-   r/   r0   r    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sBJ ‚d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50Z10s)Úfreqr%   rD   úM8[ns])r   r   r:   rq   r>   r2   )r-   Úrngr/   r    r    r!   Ú%test_setitem_dt64_index_empty_columns°   s    z:TestDataFrameSetItem.test_setitem_dt64_index_empty_columnsc                 C   sX   t tdƒd�}tddd� d¡|d< t tddd�ggd tdƒdgd�}t ||¡ d S )	Nr)   r%   Z20130101ÚUTC©ÚtzÚnsÚnowrn   )r   rf   r   Zas_unitr,   ri   r�   r    r    r!   Ú$test_setitem_timestamp_empty_columns·   s    ÿz9TestDataFrameSetItem.test_setitem_timestamp_empty_columnsc                 C   sz   t  g d¢g d¢¡}ttdƒdgd�}dt|ƒ› dt|ƒ› d�}tjt|d	�� ||d
< W d   ƒ n1 sl0    Y  d S )N)r   r$   r$   r   r$   r'   rN   r8   rM   rZ   zLength of values \(z$\) does not match length of index \(z\)rV   rO   )r
   Z
from_codesr   rf   r>   r]   r^   r_   )r-   Úcatr/   rc   r    r    r!   Ú2test_setitem_wrong_length_categorical_dtype_raisesÁ   s    ÿÿzGTestDataFrameSetItem.test_setitem_wrong_length_categorical_dtype_raisesc                 C   sJ   t g d¢g d¢dœƒ}tg d¢ƒ}||d< t|dd�}t |d |¡ d S )NrN   ©ç      ð?ç       @ç      @©Zc_1Zn_1©r   r   r$   Ú
new_columnrP   )r   r   r   r,   ru   )r-   r/   Zsp_arrayr0   r    r    r!   Útest_setitem_with_sparse_valueÍ   s
    z3TestDataFrameSetItem.test_setitem_with_sparse_valuec                 C   s^   t g d¢g d¢dœƒ}ttg d¢ƒg d¢d�}||d< ttg d¢ƒdd	�}t |d |¡ d S )
NrN   r�   r“   r”   )r'   r$   r   r%   r•   )r$   r   r   rP   )r   r   r   r,   ru   )r-   r/   Z	sp_seriesr0   r    r    r!   Ú(test_setitem_with_unaligned_sparse_valueÖ   s
    z=TestDataFrameSetItem.test_setitem_with_unaligned_sparse_valuec                 C   s>   t ddƒg}tg ƒ}||d< td|idgd�}t ||¡ d S )Nz2003-12ÚDr#   rZ   )r   r   r,   ri   )r-   r.   rw   r0   r    r    r!   Ú#test_setitem_period_preserves_dtypeÞ   s
    z8TestDataFrameSetItem.test_setitem_period_preserves_dtypec                 C   sÆ   t tg d¢dd�tg d¢td�tg d¢td�tg d¢dd�dœƒ}t tg dd�tg td�tg td�tg dd�dœƒ}tg d¢ƒD ]4\}}t|ƒt|ƒt|ƒt |¡dœ|j|jd < q€t	 
||¡ d S )N)r   r$   r'   r4   r9   rI   r5   rY   r   )r   r   ÚfloatÚ	enumerateÚintr:   r5   ÚlocÚshaper,   ri   )r-   r0   r/   Úidxr(   r    r    r!   Ú"test_setitem_dict_preserves_dtypesè   s*    üÿ



üÿüz7TestDataFrameSetItem.test_setitem_dict_preserves_dtypesz	obj,dtypez2020-01ÚMr   re   )ÚleftÚrightr4   r£   z
2011-01-01z
US/Easternrˆ   Ús)Úunitr‰   c                 C   sH   t g d¢t|gd |d�dœƒ}t dg d¢iƒ}||d< t ||¡ d S )NrI   r)   r9   )rŸ   ÚobjrŸ   r¦   ©r   r   r,   ri   )r-   r¦   r2   r0   r/   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)Ú.0r2   r    r    r!   Ú
<listcomp>  s   ýzTestDataFrameSetItem.<listcomp>zdatetime64[ns, UTC]ú	period[D]c                 C   s8   t dgƒ}dg||< t ddg|dgiƒ}t ||¡ d S )Nr   r$   ©r   r,   ri   )r-   r©   rw   r0   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,   ri   ru   Úassert_numpy_array_equalZto_numpy)r-   Zdata_nsrw   r0   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_unitsr¥   )rR   Úmr¤   Úmsr˜   r¡   ÚYc                 C   s–   d}t  d|› d�¡}t j|t jd� |¡}|dv r:|}n
| d¡}tdt  |¡it  |¡d�}|||< || j|jks|J ‚|| j|k ¡ s’J ‚d S )	Néd   úM8[ú]r9   )r¤   r·   r³   Úintsr%   ©	r:   r2   rq   r4   Úviewrs   r   rG   Úall©r-   r¥   Únr2   ÚvalsZex_valsr/   r    r    r!   Ú-test_frame_setitem_datetime64_col_other_units6  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ŠJ ‚d S )
Nr¹   rº   r»   r9   r±   r¼   r%   r„   Údatesr½   rÀ   r    r    r!   Ú6test_frame_setitem_existing_datetime64_col_other_unitsK  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}|s¶|d u sÊt	|ƒt	|ƒksÊJ ‚nt	|ƒt	|ƒksÊJ ‚| 
¡ }	t|	jd< t|	jd	< |	d }
t t|
ƒtg d
¢dd�¡ t |	j|j¡ d S )NrE   rO   rz   rP   r˜   r$   r'   )r$   r$   ©r$   r'   )TFT)Úrenamer,   ru   r   Ú_mgrZarraysZassert_extension_array_equalZ_ndarrayÚbaseÚidÚcopyr   Úilocr   rt   )r-   Ztimezone_frameÚusing_copy_on_writer/   rŸ   Úv1Úv2Zv1baseZv2baseÚdf2rw   r    r    r!   Útest_setitem_dt64tz\  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sZJ ‚|j	dkshJ ‚| 
¡  d¡}t|jtƒs†J ‚t |j|¡ d S )Nz1/1/2000re   r&   )Úperiodsr@   r'   rm   r%   r   F©Zcheck_names)r   r   r:   r;   r<   rF   r   r,   Úassert_index_equalr@   Zreset_indexÚ	set_indexrª   r&   r   )r-   r…   r/   Úrsr    r    r!   Útest_setitem_periodindex~  s    z-TestDataFrameSetItem.test_setitem_periodindexc                 C   sÀ   t g d¢g d¢dœƒ}t ddgddgddgg¡}||ddg< t g d¢g d¢g d	¢g d
¢dœƒ}|d  |j¡|d< |d  |j¡|d< |d j|jksœJ ‚|d j|jks°J ‚t ||¡ d S )N)ÚoneÚtwoÚthreerI   ©r#   r(   r$   r)   re   r*   rJ   ©r$   r)   re   ©r$   r$   r$   rY   )r   r:   r?   rs   r2   r,   ri   ©r-   r/   rB   r0   r    r    r!   Ú'test_setitem_complete_column_with_arrayŒ  s    üÿz<TestDataFrameSetItem.test_setitem_complete_column_with_arrayc                 C   sL   t ddddd�}t|ƒ}tdg d¢idd�}|j|jd d …< t ||¡ d S )	Nz
2016-01-01é	   r˜   rD   )rÒ   rƒ   r@   )	r   r   r   r   r   r   r   r   r   r®   r9   )r   r   Z	_na_valuerÌ   r,   ri   )r-   r…   rw   r0   r    r    r!   Útest_setitem_period_d_dtypeŸ  s    
þz0TestDataFrameSetItem.test_setitem_period_d_dtype)Úf8Úi8Úu8c                 C   sp   t g d¢|d�}ttj d¡ d¡|d�}g d¢|d< t g d¢td�}|d	kr^t g d
¢td�}t |j	|¡ d S )NrI   r9   r'   )r)   r)   rZ   rN   F)r$   r'   r)   Frâ   )r�   r‘   r’   F)
r   r   r:   r;   r<   rF   Úobjectr,   rÔ   r[   )r-   r2   Úcolsr/   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   rZ   r$   r'   ©rD   rE   rå   )r   r:   Únanrs   r,   ri   )r-   rè   r/   Úotherr0   r    r    r!   Ú#test_setitem_frame_length_0_str_key¸  s    z8TestDataFrameSetItem.test_setitem_frame_length_0_str_keyc              	   C   s´   g d¢d }t tdƒ|d�}d|jd< d|jd d …df< d	|d
< t g d¢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 )Nry   r'   r)   rn   )r   r)   )r   rD   )r$   rX   rE   ©r'   re   rz   )r   r$   r'   r)   rX   re   r$   rX   re   rå   r9   )
r   rf   r�   r:   rê   rs   r4   r[   r,   ri   )r-   ræ   r/   r0   r    r    r!   Ú$test_setitem_frame_duplicate_columnsÂ  s     
ýú
z9TestDataFrameSetItem.test_setitem_frame_duplicate_columnsc                 C   s¦   g d¢d }t tdƒ|d�}tjtdd�� d|dg< W d   ƒ n1 sJ0    Y  |jd d …d d…f }tjtdd�� d|dg< W d   ƒ n1 s˜0    Y  d S )	Nry   r'   r)   rn   ú"Columns must be same length as keyrV   )r   r)   re   rD   )r   rf   r]   r^   r_   rÌ   )r-   ræ   r/   rÐ   r    r    r!   Ú2test_setitem_frame_duplicate_columns_size_mismatchÙ  s    (zGTestDataFrameSetItem.test_setitem_frame_duplicate_columns_size_mismatchræ   rN   )r#   r#   r#   c                 C   sf   t g d¢g|d�}t ddggddgd�}d}tjt|d�� ||d	< W d   ƒ n1 sX0    Y  d S )
NrI   rZ   r8   é   rJ   rK   rï   rV   r#   ©r   r]   r^   r_   )r-   ræ   r/   Úrhsrc   r    r    r!   Ú#test_setitem_df_wrong_column_numberä  s
    z8TestDataFrameSetItem.test_setitem_df_wrong_column_numberc                 C   sŒ   t g d¢gg d¢d�}t g d¢gg d¢d�}||ddg< t g d¢gg d¢d�}t ||¡ ||ddg< t g d¢gg d	¢d�}t ||¡ d S )
NrI   ©r#   r(   r(   rZ   ©r8   rñ   é   r#   r(   r*   )r8   rñ   r÷   r8   )r#   r(   r(   r*   r¯   ©r-   r/   ró   r0   r    r    r!   Ú/test_setitem_listlike_indexer_duplicate_columnsí  s    zDTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columnsc                 C   sn   t g d¢gg d¢d�}t ddggddgd�}d}tjt|d	�� ||ddg< W d   ƒ n1 s`0    Y  d S )
NrI   rõ   rZ   r8   rñ   r#   r(   rï   rV   rò   )r-   r/   ró   rc   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ƒs0J ‚||d< t |¡|d< |j	|d< t |j	¡|d< | 
t¡|d< t|d jtƒs‚J ‚t|d jjjtƒsšJ ‚t|d jtƒs®J ‚t|d jjjtƒsÆJ ‚t|d jtƒsÚJ ‚t|d jtƒsîJ ‚t|d ƒsþJ ‚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   r8   re   rE   rz   r˜   ÚEÚFc                 S   s   t t | ¡ƒS ©N)r   r:   r?   ©ro   r    r    r!   Ú<lambda>  ó    z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>FrÓ   )r   rf   r   rª   r�   Ú
categoriesr   r:   r?   rG   rs   rå   r2   r   r   r   r,   rÔ   rE   rz   r˜   ru   )r-   r/   rb   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 )NrR   ÚmnÚcategoryrÁ   r¶   )
r   r   Úlistrs   rR   r�   Zreorder_categoriesr
   r,   ri   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Ÿ   rP   rD   ©r[   r&   )r   r   r,   rÔ   r&   )r-   r&   rw   r0   r    r    r!   Ú test_setitem_with_empty_listlike6  s
    z5TestDataFrameSetItem.test_setitem_with_empty_listlikezcols, values, expected)rz   r˜   r˜   r#   ©r$   r'   r)   rX   rX   )r˜   rz   r˜   r#   )rz   rE   rE   r#   )rz   rE   r#   rI   r)   )rE   rz   r#   )r)   r'   r$   r$   )rz   r#   rE   r'   c                 C   s8   t |g|d�}|d |d< |d jd }||ks4J ‚d S )NrZ   r#   r   )r   rG   )r-   ræ   rG   r0   r/   rw   r    r    r!   Útest_setitem_same_column>  s    z-TestDataFrameSetItem.test_setitem_same_columnc                 C   s8  g d¢ddgg d¢f}t  |¡}tddd�}tj d¡ d	d
t|ƒt|ƒf¡}t|||d�}|j	j
 ¡ |d d d …  }}tj d¡ |¡ |d j|d d d…f |d< t |d |d ¡ tj d¡ |¡ |d j||f |d< t |d |d ¡ tj d¡ |¡ |d j||f |d< t |d |d ¡ d S )N)ÚjimÚjoeÚjolieÚfirstÚlast)r¢   Úcenterr£   Z20141006é   )rÒ   r'   r$   iè  r  éÿÿÿÿr  r  )r  r  )r  r  )r  r  )r  r  )r   Zfrom_productr   r:   r;   r<   r=   r>   r   r&   rG   rË   Úshuffler�   r,   ri   )r-   Úitræ   r&   rÂ   r/   rS   rT   r    r    r!   Útest_setitem_multi_indexP  s    
"z-TestDataFrameSetItem.test_setitem_multi_indexzcolumns,box,expected©rD   rE   rz   r˜   é   )r  r  r  r  rZ   rz   r˜   é   )r$   r'   r  r  )r)   rX   r  r  ©re   é   r  r  ry   )r  r  rà   r9   ©rE   rz   r˜   rö   )é   é   é   )r$   r  r  rà   )r)   r8   rñ   r÷   )re   r  r  r  )rz   rD   r˜   )r  r'   r  rà   )rñ   rX   r8   r÷   )r  r  r  r  rD   rà   r8   rñ   r÷   )r  r'   r  )rà   rX   r8   )rñ   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)   rX   re   r  rD   rE   rZ   r¯   )r-   r[   Úboxr0   r/   r    r    r!   Ú!test_setitem_list_missing_columnsh  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   ÚtuplesrU   )r  Úzipr   r&   r,   ru   )r-   rA   r!  rw   r0   r    r    r!   Útest_setitem_list_of_tuplesŸ  s
    z0TestDataFrameSetItem.test_setitem_list_of_tuplesc                 C   sT   t g d¢g d¢dœƒ}dd„ dD ƒ}d|j|< t g d¢g d	¢dœƒ}t ||¡ d S )
NrI   ©rX   re   r  rÛ   c                 s   s   | ]
}|V  qd S rý   r    ©r¬   ro   r    r    r!   Ú	<genexpr>ª  r   zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>rÆ   r$   rÝ   ©rX   r$   r$   ©r   rÌ   r,   ri   ©r-   r/   rè   r0   r    r    r!   Útest_setitem_iloc_generator§  s
    
z0TestDataFrameSetItem.test_setitem_iloc_generatorc                 C   sX   t g d¢g d¢dœƒ}dd„ dD ƒ}d|j|df< t g d¢g d¢dœƒ}t ||¡ d S )	NrI   r$  rÛ   c                 s   s   | ]
}|V  qd S rý   r    r%  r    r    r!   r&  ±  r   zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>rÆ   r$   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|tg dd�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@   r2   r+   r9   rn   r#   )r@   r&   r2   r(   ZS64r*   rJ   Úabcdr%   )r   r   r   r:   r5   Zuint8rt   rå   r  r,   ru   )r-   r&   r/   rw   r0   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)   rX   re   r  rÛ   r4   ÚInt64Fr%   r#   r(   )r   rs   r   r&   r�   r,   ri   )r-   rw   Úmaskr0   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   s˜   t t d¡t d¡dœt d¡d�}t d¡}t t d¡tg dd�d�}||d< t t¡� t |¡|d	< W d   ƒ n1 s~0    Y  t 	||¡ d S )
Nr8   )únp-arrayú	np-matrixr%   )r8   r$   r+   r9   rn   r2  r3  )
r   r:   Úonesrq   r   r,   Úassert_produces_warningÚPendingDeprecationWarningZmatrixri   )r-   r0   r#   r/   r    r    r!   Útest_setitem_npmatrix_2d×  s    ÿ
,z-TestDataFrameSetItem.test_setitem_npmatrix_2drÂ   rJ   r#   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)   rX   rÛ   r¹   éÈ   )r$   r   r#   re   r  ©r   r$   r*   rK   )r*   rK   )r   r�   r:   rê   r,   ri   )r-   rÂ   r/   r0   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'   r8   rñ   r%   r   )r   r:   rê   r,   ri   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)   rX   ©r[   r.   r8   rñ   r9   rÛ   r§   ©r-   Zany_numeric_ea_dtyper/   r0   r    r    r!   Ú*test_setitem_frame_overwrite_with_ea_dtype   s    þÿz?TestDataFrameSetItem.test_setitem_frame_overwrite_with_ea_dtypec                 C   sˆ   t  d¡ tdddgiƒ}t dd¡�$ tddgtd�|d< W d   ƒ n1 sP0    Y  tddgtddgtd�d	œƒ}t 	||¡ d S )
NZpyarrowr#   r$   r'   zfuture.infer_stringTr(   r9   rÛ   )
r]   Zimportorskipr   ÚpdÚoption_contextr   rå   r   r,   ri   r�   r    r    r!   Ú'test_setitem_string_option_object_index  s    
2z<TestDataFrameSetItem.test_setitem_string_option_object_indexc                 C   s8   t ddgiƒ}| ¡ }d}||g ||< t ||¡ d S )NrÛ   r8   ©r   rË   r,   ri   )r-   r/   r0   Zcol_namer    r    r!   Útest_setitem_frame_midx_columns  s
    z4TestDataFrameSetItem.test_setitem_frame_midx_columnsc                 C   sœ   t dtjdgdd�iƒ}tdgdd�|jd d …df< t dtjdgdd�iƒ}t ||¡ t dtjdgdd�iƒ}tdgdd�|jd d …df< t ||¡ d S )Nr#   r8   rã   r9   rñ   r.  r   )r   r:   r?   r   r�   r,   ri   rÌ   r�   r    r    r!   Útest_loc_setitem_ea_dtype  s    z.TestDataFrameSetItem.test_loc_setitem_ea_dtypec                 C   sÔ   t tdƒgtd�}tddgiƒ}tjtdd��" ||jd d …df< W d   ƒ n1 sV0    Y  tjtdd�� ||d< W d   ƒ n1 sŒ0    Y  tdgttdƒgd	d�ttdƒgd	d�d
œƒ}t 	||¡ d S )Nz
2019-12-31r9   r#   r$   ZinferrV   r(   r*   r±   rN   )
r   r   rå   r   r,   r5  ÚFutureWarningr�   r   ri   )r-   rŸ   r/   r0   r    r    r!   Útest_setitem_object_inferring(  s    0&ýÿz2TestDataFrameSetItem.test_setitem_object_inferringN)Gr   r   r   r1   r]   ÚmarkÚparametrizerC   rH   rd   rl   rx   r€   r‚   r†   rŒ   rŽ   r–   r—   r™   r    r   r	   r   r   r   r   r¨   Úea_registryrt   r°   rµ   rÃ   rÅ   rÑ   r×   rß   rá   rç   rì   rî   rð   rô   rù   rú   r  r  r  r
  r  r   r:   r?   r4   r   r#  r*  r+  r-  r0  r1  ÚtdZ&skip_array_manager_not_yet_implementedr7  r:  r;  r>  rA  rC  rD  rF  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   rP   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*J ‚|S )Nrå   r9   rE   rP   )r   r:   r?   Útolistr2   )r-   rŸ   r0   r    r    r!   r0   B  s    z!TestSetitemTZAwareValues.expectedc                 C   sp   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'   r$   rD   rZ   rE   r   r$   r%   r‡   rP   )r   r:   r;   r<   rF   Z	to_seriesÚdtZ
tz_convertr   rL  r,   ru   )r-   rŸ   r0   r/   rw   Úcompr    r    r!   Útest_setitem_dt64seriesH  s    z0TestSetitemTZAwareValues.test_setitem_dt64seriesc                 C   s<   t tj d¡ d¡dgd�}||d< |d }t ||¡ d S ©Nr'   rN  rD   rZ   rE   )r   r:   r;   r<   rF   r,   ru   ©r-   rŸ   r0   r/   rw   r    r    r!   Útest_setitem_datetimeindexR  s    z3TestSetitemTZAwareValues.test_setitem_datetimeindexc                 C   s@   t tj d¡ d¡dgd�}| ¡ |d< |d }t ||¡ d S rR  )r   r:   r;   r<   rF   Zto_pydatetimer,   ru   rS  r    r    r!   Ú.test_setitem_object_array_of_tzaware_datetimes[  s    zGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesN)
r   r   r   r]   ZfixturerŸ   r0   rQ  rT  rU  r    r    r    r!   rK  ;  s   


	rK  c                   @   s\   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d„ ZdS )Ú!TestDataFrameSetItemWithExpansionc                 C   s¬   t g d¢g d¢dœƒ}|d }t ddgddgdd	gg¡|d
dg< t |¡� d|jd< W d   ƒ n1 sl0    Y  |rŒtg d¢dd�}ntg d¢dd�}t ||¡ d S )NrI   )rX   rX   r  rÛ   r#   gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?ç      à?r*   rJ   r¹   )r   r   rP   )r¹   r'   r)   )r   r:   r?   r,   Úassert_cow_warningrÌ   r   ru   )r-   rÍ   Úwarn_copy_on_writer/   rb   r0   r    r    r!   Útest_setitem_listlike_viewsf  s    $(z=TestDataFrameSetItemWithExpansion.test_setitem_listlike_viewsc                 C   sL   t ddgddggƒ}ddg|d< t g d¢g d	¢gg d
¢d�}t ||¡ d S )Nr$   r'   r)   rX   re   r  ú0 - Name)r$   r'   re   )r)   rX   r  )r   r$   r[  rZ   r¯   r�   r    r    r!   Ú.test_setitem_string_column_numpy_dtype_raisingz  s    zPTestDataFrameSetItemWithExpansion.test_setitem_string_column_numpy_dtype_raisingc                 C   sb   t g d¢dd�}ttdƒƒ|jd d …df< t dtjtjgdtjtjggg d¢d�}t ||¡ d S )	Nrõ   r7   ©r[   r2   r'   r#   r   r$   rZ   )r   r  rf   r�   r:   rê   r,   ri   )r-   rÍ   r/   r0   r    r    r!   Ú'test_setitem_empty_df_duplicate_columns�  s     ÿzITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columnsc           	      C   s2  t dtjtj d¡ 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< |j}tt d¡t|dd�gddgd�}t ||¡ ||d< |j}tt d¡t|dd�t|dd�gg d¢d�}t ||¡ |d }|d }t |jj|¡ d|_t | ¡ | ¡ ¡ d S )NÚvaluer'   r   i'  r¹   r3   r9   c                 S   s   g | ]}|› d |d › �‘qS )z - ió  r    ©r¬   rS   r    r    r!   r­   “  r   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?   r;   r<   r=   r
   rf   Úsort_valuesr   r_  rG   rt   r   r2   r   r,   ru   Zassert_categorical_equalrÈ   r@   Z
sort_index)	r-   r/   ra  rb   r�   rw   r0   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$   rO   rZ   )r   rs   r:   r4   r,   ri   r�   r    r    r!   Útest_setitem_scalars_no_index·  s    z?TestDataFrameSetItemWithExpansion.test_setitem_scalars_no_indexc                 C   sL   d|j vsJ ‚|d |d< d|j v s(J ‚|d }|d }tj||dd� d S )Nré   rD   FrÓ   )r[   r,   ru   )r-   rA   rw   r0   r    r    r!   Útest_setitem_newcol_tuple_key¾  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 || ¡ 	¡ sTJ ‚d S )	Nz1/1/2012z2/1/2012)ÚstartÚendrƒ   r8   r  iÜ  rñ   r$   )
r   r   r   rf   r   r   r:   rê   Úisnanr¿   )r-   r[   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,   ri   rv   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)   rX   r<  r8   rñ   r9   r*   rN   r§   r=  r    r    r!   Ú test_setitem_frame_keep_ea_dtypeÜ  s    ýÿzBTestDataFrameSetItemWithExpansion.test_setitem_frame_keep_ea_dtypec                 C   sp   t tdƒd�}tjddd�tjddd�ddœ|jd	< t t d
¡t d¡dggtd	gƒg d¢d�}t ||¡ d S )NÚabcrZ   re   r¤   )r¥   éH   Z23rN   r   z0 days 00:00:05z0 days 00:01:12rn   )	r   r  r?  Zto_timedeltar�   Z	Timedeltar   r,   ri   )r-   rw   r0   r    r    r!   Ú&test_loc_expansion_with_timedelta_typeé  s    ýýzHTestDataFrameSetItemWithExpansion.test_loc_expansion_with_timedelta_typeN)r   r   r   rZ  r\  r^  rc  rd  re  rk  rl  rm  rp  r    r    r    r!   rV  e  s   	-		rV  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g d¢¡dd„ ƒƒƒZej de
ejeejg¡ej dg d¢¡d	d
„ ƒƒZej dejej	g¡ej de
ejeejg¡ej dg d¢¡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,   ri   rÞ   r    r    r!   Útest_setitem_slice_positionù  s    
z7TestDataFrameSetItemSlicing.test_setitem_slice_positionrè   r  rÁ   rI   c                 C   sp   t g d¢gg d¢g|  g d¢d�}|g d¢ƒ||ƒdd …< t g d¢gg d¢g|  g d¢d�}t ||¡ d S ©NrÜ   ©r'   rX   r  rN   rZ   rö   r$   r¯   ©r-   rÁ   r  rè   r/   r0   r    r    r!   Ú+test_setitem_slice_indexer_broadcasting_rhs  s    $$zGTestDataFrameSetItemSlicing.test_setitem_slice_indexer_broadcasting_rhsc                 C   sx   t g d¢gg d¢g|  g d¢d�}|g d¢ƒ|jttd|d ƒƒ< t g d¢gg d¢g|  g d¢d�}t ||¡ d S ru  )r   rÌ   r  rf   r,   ri   )r-   rÁ   r  r/   r0   r    r    r!   Ú*test_setitem_list_indexer_broadcasting_rhs  s    $ $zFTestDataFrameSetItemSlicing.test_setitem_list_indexer_broadcasting_rhsc                 C   s|   t g d¢g d¢gg d¢g|  g d¢d�}|g d¢ƒ||ƒdd …< t g d¢gg d¢g|d   g d¢dd	�}t ||¡ d S )
NrÜ   r|   rv  rN   rZ   rö   r$   rå   r]  r¯   rw  r    r    r!   Ú0test_setitem_slice_broadcasting_rhs_mixed_dtypes  s    "ÿýzLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypesN)r   r   r   rt  r]   rG  rH  r,   ÚsetitemrÌ   r   r:   r?   r  r?  rx  ry  rz  r    r    r    r!   rq  ø  s   	rq  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestDataFrameSetItemCallablec                 C   sL   t g d¢g d¢dœƒ}g d¢|dd„ < t g d¢g d¢dœƒ}t ||¡ d S )Nr	  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¯   r~   r    r    r!   Útest_setitem_callable'  s    z2TestDataFrameSetItemCallable.test_setitem_callablec                 C   sP   dd„ }t ddgddggtd�}|||dk< t d|g|dggƒ}t ||¡ d S )Nc                 S   s   | d S )Nr$   r    rþ   r    r    r!   Úinc1  s    zETestDataFrameSetItemCallable.test_setitem_other_callable.<locals>.incr  r$   r9   r   )r   rå   r,   ri   )r-   r~  r/   r0   r    r    r!   Útest_setitem_other_callable/  s
    z8TestDataFrameSetItemCallable.test_setitem_other_callableN)r   r   r   r}  r  r    r    r    r!   r|  &  s   r|  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©r/   r    r    r!   rÿ   @  r   z(TestDataFrameSetItemBooleanMask.<lambda>c                 C   s   | t  | ¡d kjS r‚  )r:   rƒ  rG   r„  r    r    r!   rÿ   @  r   Z	dataframer?   )Úidsc                 C   s^   |  ¡ }||ƒ}|  ¡ }tj||< |j  ¡ }tj|t |¡< t||j|jd�}t 	||¡ d S )Nrn   )
rË   r:   rê   rG   r?   r   r&   r[   r,   ri   )r-   r�  rA   r/   r/  rw   r0   r    r    r!   Útest_setitem_boolean_mask=  s    

z9TestDataFrameSetItemBooleanMask.test_setitem_boolean_maskz1Currently empty indexers are treated as all False)Úreasonr  c                 C   s|   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 d   ƒ n1 sn0    Y  d S )	Nr#   r$   rN   rå   r9   z@Must have equal len keys and value when setting with an iterablerV   r(   )r   r   r]   r^   r_   r�   )r-   r  r/   rè   rc   r    r    r!   Ú:test_setitem_loc_empty_indexer_raises_with_non_empty_valueQ  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$   rN   Fr8   r*   r(   rà   )r   r�   r,   ri   )r-   r  r/   rè   r0   r    r    r!   Ú1test_setitem_loc_only_false_indexer_dtype_changed^  s    
zQTestDataFrameSetItemBooleanMask.test_setitem_loc_only_false_indexer_dtype_changedrè   c                 C   sT   t g d¢g d¢dœƒ}| ¡ }|d dk}||ƒ|  d¡||ƒ|< t ||¡ d S )N)r$   rX   r'   r)   r  rÛ   r#   r)   )r   rË   rb  r,   ri   )r-   rè   r/   r0   r/  r    r    r!   Ú"test_setitem_boolean_mask_aligningl  s
    zBTestDataFrameSetItemBooleanMask.test_setitem_boolean_mask_aligningc                 C   s¼   t g d¢ddgd�}tg d¢ƒ}g d¢}t||dœ|d�}t g d	¢g d
¢d�}tg d¢ƒ}g d¢}t||dœ|d�}| ¡ }	|	d j g d
¢¡|	d< |d dk}
ddg||
< t ||	¡ d S )N)r#   r#   r(   r(   r#   r#   r#   r#   r(   )r  )rR   rS   rT   ÚkÚlr¶   rÁ   )r$   r$   r'   r'   r$   r$   r$   )ÚcatsrG   r%   )r#   r#   r*   r*   r#   r#   r#   rN   )r$   r$   r)   r)   r$   r$   r$   r�  r*   r'   )r
   r   r   rË   r�   Zset_categoriesr,   ri   )r-   Zcats2Zidx2Zvalues2Zexp_multi_rowZcatsfZidxfZvaluesfr/   Z	exp_fancyr/  r    r    r!   Útest_setitem_mask_categoricalu  s    ÿz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalr2   rš   r4   Úkwargsr&   r$   r[   rD   c                 C   s:   ||d< t f i |¤Ž}| ¡ }d|||k< t ||¡ d S )Nr2   é/   rB  )r-   r2   r�  r/   rÐ   r    r    r!   Ú%test_setitem_empty_frame_with_booleanŒ  s
    zETestDataFrameSetItemBooleanMask.test_setitem_empty_frame_with_booleanc                 C   sì   t tdƒƒ}g d¢}t||tjg d¢g d¢g d¢gtd�d�}t||t t|ƒt|ƒf¡d�}t||tjg d¢g d¢g d	¢gtd�d�}d
||d| k< t 	||¡ t
jtdd��& d
||jd d
… dk< W d   ƒ n1 sÞ0    Y  d S )Nr)   ry   )ç        rW  r�   )ç      ø?r‘   ç      @)r’   ç      @ç      @r9   )r&   r[   r.   )r“  r‘   r  )r  r  r  r  r‘   zItem wrong lengthrV   r'   )r  rf   r   r:   r?   rš   r4  r>   r,   ri   r]   r^   r_   r&   )r-   rŸ   ræ   Zdf1rÐ   r0   r    r    r!   Útest_setitem_boolean_indexing—  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)   rX   r#   rN   Fr*   rP   r(   re   r  r   r%   )r   rË   r   r�   r,   ri   )r-   r/   r0   rè   r    r    r!   Ú-test_loc_setitem_all_false_boolean_two_blocks®  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)   rr  r   TFÚbooleanr9   r9  )r   r   r?  ZNAr,   ri   )r-   r/   r0   Zboolean_indexerr    r    r!   Útest_setitem_ea_boolean_mask¶  s    þÿz<TestDataFrameSetItemBooleanMask.test_setitem_ea_boolean_maskN)r   r   r   rJ  Úskip_array_manager_invalid_testr]   rG  rH  r†  Úxfailr  r:   r?   r   rˆ  r‰  r,   r{  r�   rŠ  rŽ  r‘  r—  r˜  rš  r    r    r    r!   r€  <  s*   ý

	r€  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"d#„ Zej d$dd%g¡d&d'„ ƒZd(d)„ Zd*d+„ Zd,d-„ Zej d.d/d0ged1ƒfg d2¢g d2¢gfed1ƒed1ƒfd0fd/dd3gfd0d0gfd/gdfd0gfd/ge	 d¡fd0gfed1ƒe	 d¡fg d4¢fed1d0ƒe	 d¡fd0d0gfe	 
g d5¢¡e	 
g d6¢¡fd0d0gfg¡d7d8„ ƒZd1S )9Ú%TestDataFrameSetitemCopyViewSemanticsc                 C   sZ   d|j vsJ ‚|d  ¡ }||d< tj|jdd…|j  d¡f< t|dd… ƒ ¡ sVJ ‚d S )Nrû   rD   re   r8   )r[   rË   r:   rê   rÌ   Zget_locr   r¿   )r-   rA   r¤   r    r    r!   Útest_setitem_always_copyÅ  s
    z>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copyÚconsolidateTFc                 C   sÜ   t g d¢g d¢dœg d¢d�}| ddtj¡ |sh|rT| ¡  t|jjƒdkshJ ‚nt|jjƒdkshJ ‚|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ØJ ‚d S )N)gš™™™™™ñ?gÍÌÌÌÌÌ @gÍÌÌÌÌÌ@gffffff@)gffffff@gffffff@gffffff@g333333 @)ro   rp   )r   r$   r'   r)   r%   r'   r}   r$   é*   rU   )r   rr   r:   rê   Z_consolidate_inplacer>   rÈ   ÚblocksZ_valuesr�   r   r&   r,   ru   r´   rG   Zshares_memory)r-   rŸ  Úusing_array_managerrÍ   r/   Zzvalsr0   r    r    r!   Ú#test_setitem_partial_column_inplaceÍ  s     	ÿ
zITestDataFrameSetitemCopyViewSemantics.test_setitem_partial_column_inplacec                 C   sf   ddgd }t ddg|d�}| ¡ }|d d … }d|d< t g d¢g|d	�}t ||¡ t ||¡ d S )
NrD   rE   r'   r’  r   rn   rí   )r’  r'   r’  re   rZ   rB  )r-   ræ   r/   Údf_copyÚdf_viewr0   r    r    r!   Ú*test_setitem_duplicate_columns_not_inplaceí  s    zPTestDataFrameSetitemCopyViewSemantics.test_setitem_duplicate_columns_not_inplacer_  r$   r4   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$   rn   rZ   rB  )r-   r_  r¢  ræ   r/   r¤  r¥  r0   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$   rn   r�   rZ   rB  )r-   r_  ræ   r/   r¤  r¥  r0   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%   rB  )r-   r_  Ú	set_valuerè   r/   r0   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}t ¡ �( |jD ]}d|| |< qJW d   ƒ n1 sp0    Y  |s¦t 	|t 
d¡t 
d¡f dk¡sÌJ ‚n&t 	|t 
d¡t 
d¡f dk¡sÌJ ‚d S )	Nc                 S   s   g | ]}d |› �‘qS )r*   r    r`  r    r    r!   r­   :  r   z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<listcomp>r8   c                    s   i | ]}|t  tˆ ƒ¡“qS r    )r:   rs  r>   )r¬   Úcol©ra  r    r!   Ú
<dictcomp>;  r   z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<dictcomp>r%   r   r$   )rf   r   rÈ   r¡  rG   r,   Zraises_chained_assignment_errorr[   r:   r¿   rq   )r-   rÍ   rY  r/   rG   Úlabelr    r­  r!   Ú"test_setitem_column_update_inplace4  s    

,(zHTestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplacec                 C   s\   t g d¢ƒ}t g d¢dd�|d< tg d¢dd�|d< tg d¢g d¢td�}t |j|¡ d S )	NrI   r  r9   Úcol1Úcol2)r4   r  r  )r   r±  r²  )r&   r2   )r   r   rå   r,   ru   rt   )r-   r/   Zexpected_typesr    r    r!   Ú%test_setitem_column_frame_as_categoryH  s    ÿzKTestDataFrameSetitemCopyViewSemantics.test_setitem_column_frame_as_categoryr2   r.  c                 C   sb   t dt d¡i|d�}t dgg¡|jt dg¡t dg¡f< t dg d¢i|d�}t ||¡ d S )Nr#   r)   r9   r'   r   )r'   r$   r$   )r   r:   r4  r?   rÌ   r,   ri   )r-   r2   r/   r0   r    r    r!   Ú"test_setitem_iloc_with_numpy_arrayS  s    (zHTestDataFrameSetitemCopyViewSemantics.test_setitem_iloc_with_numpy_arrayc                 C   sÔ   t g d¢g d¢gg d¢d�}t ddgddggd	d	gd�}||d	< t g d
¢g d¢gg d¢d�}t ||¡ t g d¢g d¢gg d¢d�}t ddgddggd	d	gd�}||d	< t g d¢g d¢gg d¢d�}t ||¡ d S )Nr	  )rX   re   r  r  )r#   r(   r#   r*   rZ   r   r“  r'   r”  r#   )r   r'   r“  rX   )r'   re   r”  r  rI   r$  )r#   r#   r(   )r   r“  r)   )r'   r”  r  r¯   rø   r    r    r!   Ú!test_setitem_frame_dup_cols_dtype\  s    ÿzGTestDataFrameSetitemCopyViewSemantics.test_setitem_frame_dup_cols_dtypec                 C   sl   t dgddd�}td|iƒ d¡}|dd…  ¡ }d |d< d |d< tg ddg|d d… d�}t ||¡ d S )	Nz
2000-01-01r„   Údate)r2   r@   r   Z3010Z2010r  )r   r   rÕ   rË   r,   ri   )r-   Zdtir/   r0   r    r    r!   Ú"test_frame_setitem_empty_dataframel  s    
ýzHTestDataFrameSetitemCopyViewSemantics.test_frame_setitem_empty_dataframec              	   C   s.  t g d¢g d¢g d¢g d¢dœƒ}| ¡ }|ddg }|rjddgddgg|jd	d
gd d …f< t ||¡ n¢|r’ddgddgg|jd	d
gd d …f< nzt dd¡�\ t t¡�2 ddgddgg|jd	d
gd d …f< W d   ƒ n1 sâ0    Y  W d   ƒ n1 �s0    Y  t g d¢g d¢dœ|j	d�}t ||¡ |g d¢ }|�sL|�r~ddgddgg|jd	d
gdd
d…f< t ||¡ n~t dd¡�` t t¡�4 ddgddgg|jd	d
gdd
d…f< W d   ƒ n1 �sÒ0    Y  W d   ƒ n1 �sò0    Y  t g d¢g d¢g d¢dœ|j	d�}t ||¡ d S )N)r$   rX   r$   re   )r'   re   r'   r  )r)   r  r$   r  )r  rà   r8   rñ   r  rE   rz   r'   r$   r)   Zchained_assignmentÚwarn©r'   r'   r'   r'   )r)   r'   r$   r'   )rE   rz   r%   r  r   )r  r'   r8   r'   )
r   rË   rÌ   r,   ri   r?  r@  r5  r   r&   )r-   rÍ   rY  Ú	df_parentÚdf_origr/   r0   r    r    r!   Útest_iloc_setitem_view_2dblock|  s<    üÿ"$`$dÿzDTestDataFrameSetitemCopyViewSemantics.test_iloc_setitem_view_2dblockzindexer, valuer   r'   Nr¹  r)   )r'   r'   r'   )FTF)FTFTc           
      C   s²   t  d¡ dd¡}t| ¡ tdƒd�}|jjs2J ‚| ¡ }|d d … }t 	|¡� ||j
|< W d   ƒ n1 sp0    Y  |rŠt ||¡ |||< t|tdƒd�}	t ||	¡ d S )Nr÷   r)   rX   ÚABCDrZ   )r:   rq   rh   r   rË   r  rÈ   Zis_single_blockr,   rX  rÌ   ri   )
r-   rè   r_  rÍ   rY  rB   rº  r»  r/   r0   r    r    r!   Útest_setitem_2dblock_with_ref«  s    (zCTestDataFrameSetitemCopyViewSemantics.test_setitem_2dblock_with_ref)r   r   r   rž  r]   rG  rH  r£  r¦  r:   r?   r§  r¨  Úparamrœ  r   r«  rJ  r›  r°  r³  r´  rµ  r·  r¼  Úslicer4   r¾  r    r    r    r!   r�  Ä  sn   
$ÿ
(
þþýþüþ	

/þøþr�  c                  C   s&  t dddgiƒ} tjtdd��" d| jd d …df< W d   ƒ n1 sF0    Y  t dddgiƒ}t | |¡ t dddgiƒ} tjtdd��( ddd	œ| jd d …df< W d   ƒ n1 s¸0    Y  t dddgiƒ}t | |¡ t dddgiƒ} d
dd	œ| jd d …df< t dd
dgiƒ}t | |¡ d S )Nr#   r$   r'   zincompatible dtyperV   Tr•  g      @r9  r)   rX   )r   r,   r5  rE  r�   ri   ©r/   r0   r    r    r!   Ú'test_full_setter_loc_incompatible_dtypeÕ  s    06rÂ  c                  C   sl   t g d¢g d¢dœƒ} d| j| jdkddgf< t g d¢g d¢ddtd	ƒgd
d
td	ƒgdœƒ}t | |¡ d S )NrI   )r–  re   r  ré   )r$   rn  r$   rü   ÚGr�   rê   rn  )rD   rE   rü   rÃ  )r   r�   r&   rš   r,   ri   rÁ  r    r    r!   Ú)test_setitem_partial_row_multiple_columnsé  s    üÿrÄ  )6r   Únumpyr:   r]   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrJ  Zpandas.core.dtypes.baser   rI  Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.dtypesr   r   r   r	   Zpandasr?  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   rK  rV  rq  r|  r€  r�  rÂ  rÄ  r    r    r    r!   Ú<module>   s>   H      * . 	  