o
    Û­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    úe/var/www/html/CropPilot/venv/lib/python3.10/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   ÚtmÚassert_equal)Úselfr"   Údatar&   ÚdfÚexpectedr    r    r!   Útest_setitem_str_subclass,   s   "z.TestDataFrameSetItem.test_setitem_str_subclassÚdtype)Úint32Úint64Úuint32Úuint64Úfloat32Úfloat64c                 C   sD   t j d¡ ddt|ƒ¡}t j||d�||< || jj|ks J ‚d S )Nr'   r$   é
   ©r3   )ÚnpÚrandomÚdefault_rngÚintegersÚlenÚarrayr3   Úname)r.   r3   Ú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,   Úassert_almost_equalÚvalues)r.   rC   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 s:w   Y  t tj d¡ 	ddd¡g d¢d�}d}tjt|d�� | 
ddg¡ ¡ |d< W d   ƒ n1 sow   Y  d}tjt|d�� t ƒ |d< W d   ƒ d S 1 sŽw   Y  d S )N©r$   r'   r)   )ÚdÚeÚf)ÚbarÚbaz©r#   r(   r*   Úfoo©rB   r%   )ÚgÚhÚiÚj)r#   r(   r*   r#   Úfiz©r&   rB   z/cannot reindex on an axis with duplicate labels©ÚmatchÚnewcolr'   r   )é   r^   ©r#   r(   r*   rM   ©Ú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.   r0   ÚserÚmsgr    r    r!   Útest_setitem_error_msmgsH   s2   þý
ÿþÿ"ÿz-TestDataFrameSetItem.test_setitem_error_msmgsc                 C   sn   d}d}t t|ƒd�}tj d¡ |¡}t|ƒD ]}|||< qt t ||¡ ||¡t|ƒd�}t 	||¡ d S )Nr:   é   r%   r'   )
r   Úranger<   r=   r>   rH   ÚrepeatÚreshaper,   Úassert_frame_equal)r.   ÚNÚKr0   Únew_colrW   r1   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'   ©rk   r)   rk   )r*   r(   r#   ©r&   ra   r   rS   r#   rP   r*   r8   Úxr9   )rS   r*   rP   r(   r#   rv   r%   r^   r4   Úy)rS   r*   rP   r(   r#   rv   rw   )r   r<   r=   r>   rH   ÚarangeÚinsertÚastypeÚdtypesr   r3   r,   Úassert_series_equal©r.   r0   Úresultr1   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©rF   rG   ÚCr%   ÚX©rv   rw   Úz)r/   r&   ra   )r   r&   r,   ro   ©r.   r0   Ú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 )NrL   rS   r`   )r   r,   ro   r   ©r.   r0   r1   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s!J ‚d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50Ú10s)Úfreqr%   rF   úM8[ns])r   r   r<   rx   r@   r3   )r.   Úrngr0   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%   Ú20130101ÚUTC©ÚtzÚnsÚnowru   )r   rl   r   Úas_unitr,   ro   rˆ   r    r    r!   Ú$test_setitem_timestamp_empty_columns·   s   ÿz9TestDataFrameSetItem.test_setitem_timestamp_empty_columnsc                 C   s|   t  g d¢g d¢¡}ttdƒdgd�}dt|ƒ› dt|ƒ› d�}tjt|d	�� ||d
< W d   ƒ d S 1 s7w   Y  d S )N)r   r$   r$   r   r$   r'   rR   r:   rP   r`   zLength of values \(z$\) does not match length of index \(z\)r[   rS   )r
   Ú
from_codesr   rl   r@   rc   rd   re   )r.   Úcatr0   ri   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 )NrR   ©ç      ð?ç       @ç      @©Úc_1Ún_1©r   r   r$   Ú
new_columnrT   )r   r   r   r,   r|   )r.   r0   Úsp_arrayr1   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 )
NrR   rš   rž   r¡   )r'   r$   r   r%   r¢   )r$   r   r   rT   )r   r   r   r,   r|   )r.   r0   Ú	sp_seriesr1   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#   r`   )r   r   r,   ro   )r.   r/   r~   r1   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 ]\}}t|ƒt|ƒt|ƒt |¡dœ|j|jd < q@t	 
||¡ d S )N)r   r$   r'   r5   r;   rL   r6   r_   r   )r   r   ÚfloatÚ	enumerateÚintr<   r6   ÚlocÚshaper,   ro   )r.   r1   r0   Úidxr(   r    r    r!   Ú"test_setitem_dict_preserves_dtypesè   s*   üÿ



üÿüz7TestDataFrameSetItem.test_setitem_dict_preserves_dtypesz	obj,dtypez2020-01ÚMr   rk   )ÚleftÚrightr5   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 )NrL   r)   r;   )r®   Úobjr®   rµ   ©r   r   r,   ro   )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    )Ú
isinstancerB   Úproperty)Ú.0r3   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,   ro   )r.   r¸   r~   r1   r    r    r!   Útest_setitem_with_ea_name  s   

z.TestDataFrameSetItem.test_setitem_with_ea_namec                 C   s’   t jddgdd�}t|ƒ ¡ }||d< tdd gdd gdœdd�}t ||¡ t jddgdd�}||d< t |d |d ¡ t |d  	¡ |¡ d S )	Nr$   Únatúdatetime64[ns]r;   Únew)r   rÂ   údatetime64[s]r   )
r<   rA   r   Úto_framer   r,   ro   r|   Úassert_numpy_array_equalÚto_numpy)r.   Údata_nsr~   r1   Ú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´   )rV   Ú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 ¡ sIJ ‚d S )	Néd   úM8[ú]r;   )r³   rË   rÃ   Úintsr%   ©	r<   r3   rx   r5   Úviewrz   r   rJ   Úall©r.   r´   Únr3   ÚvalsÚex_valsr0   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 ¡ sEJ ‚d S )
NrÍ   rÎ   rÏ   r;   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 sZt	|ƒt	|ƒksZJ ‚n
t	|ƒt	|ƒkseJ ‚| 
¡ }	t|	jd< t|	jd	< |	d }
t t|
ƒtg d
¢dd�¡ t |	j|j¡ d S )NrG   rS   r�   rT   r§   r$   r'   )r$   r$   ©r$   r'   )TFT)Úrenamer,   r|   r   Ú_mgrÚarraysÚassert_extension_array_equalÚ_ndarrayÚbaseÚidÚcopyr   Úilocr   r{   )r.   Útimezone_frameÚusing_copy_on_writer0   r®   Úv1Úv2Úv1baseÚv2baseÚdf2r~   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s-J ‚|j	dks4J ‚| 
¡  d¡}t|jtƒsCJ ‚t |j|¡ d S )Nz1/1/2000rk   r&   )ÚperiodsrB   r'   rt   r%   r   F©Úcheck_names)r   r   r<   r=   r>   rH   r   r,   Úassert_index_equalrB   Úreset_indexÚ	set_indexr¹   r&   r   )r.   r�   r0   Ú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sNJ ‚|d j|jksXJ ‚t ||¡ d S )N)ÚoneÚtwoÚthreerL   ©r#   r(   r$   r)   rk   r*   rM   ©r$   r)   rk   ©r$   r$   r$   r_   )r   r<   rA   rz   r3   r,   ro   ©r.   r0   rD   r1   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§   rF   )rí   r‹   rB   )	r   r   r   r   r   r   r   r   r   r½   r;   )r   r   Ú	_na_valuerä   r,   ro   )r.   r�   r~   r1   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 )NrL   r;   r'   )r)   r)   r`   rR   F)r$   r'   r)   Fr   )r›   rœ   r�   F)
r   r   r<   r=   r>   rH   Úobjectr,   rð   ra   )r.   r3   Úcolsr0   Úexpected_colsr    r    r!   Ú$test_setitem_bool_with_numeric_indexª  s   z9TestDataFrameSetItem.test_setitem_bool_with_numeric_indexÚindexerrG   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 )NrF   rG   r`   r$   r'   ©rF   rG   r  )r   r<   Únanrz   r,   ro   )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´   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 )Nr€   r'   r)   ru   )r   r)   )r   rF   )r$   r^   rG   ©r'   rk   r�   )r   r$   r'   r)   r^   rk   r$   r^   rk   r  r;   )
r   rl   r¬   r<   r	  rz   r5   ra   r,   ro   )r.   r  r0   r1   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 s%w   Y  |jd d …d d…f }tjtdd�� d|dg< W d   ƒ d S 1 sMw   Y  d S )	Nr€   r'   r)   ru   ú"Columns must be same length as keyr[   )r   r)   rk   rF   )r   rl   rc   rd   re   rä   )r.   r  r0   rë   r    r    r!   Ú2test_setitem_frame_duplicate_columns_size_mismatchÙ  s   ÿ"ÿzGTestDataFrameSetItem.test_setitem_frame_duplicate_columns_size_mismatchr  rR   )r#   r#   r#   c                 C   sh   t g d¢g|d�}t ddggddgd�}d}tjt|d�� ||d	< W d   ƒ d S 1 s-w   Y  d S )
NrL   r`   r:   é   rM   rN   r  r[   r#   ©r   rc   rd   re   )r.   r  r0   Úrhsri   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 )
NrL   ©r#   r(   r(   r`   ©r:   r  é   r#   r(   r*   )r:   r  r  r:   )r#   r(   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   sp   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   ƒ d S 1 s1w   Y  d S )
NrL   r  r`   r:   r  r#   r(   r  r[   r  )r.   r0   r  ri   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ƒsJ ‚||d< t |¡|d< |j	|d< t |j	¡|d< | 
t¡|d< t|d jtƒsAJ ‚t|d jjjtƒsMJ ‚t|d jtƒsWJ ‚t|d jjjtƒscJ ‚t|d jtƒsmJ ‚t|d jtƒswJ ‚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 )NrF   r:   rk   rG   r�   r§   ÚEÚFc                 S   s   t t | ¡ƒS ©N)r   r<   rA   ©rv   r    r    r!   Ú<lambda>  s    z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>Frî   )r   rl   r   r¹   r˜   Ú
categoriesr   r<   rA   rJ   rz   r  r3   r   r   r   r,   rð   rG   r�   r§   r|   )r.   r0   rh   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 )NrV   ÚmnÚcategoryrÕ   rÊ   )
r   r   Úlistrz   rV   r˜   Úreorder_categoriesr
   r,   ro   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®   rT   rF   ©ra   r&   )r   r   r,   rð   r&   )r.   r&   r~   r1   r    r    r!   Ú test_setitem_with_empty_listlike6  s
   z5TestDataFrameSetItem.test_setitem_with_empty_listlikezcols, values, expected)r�   r§   r§   r#   ©r$   r'   r)   r^   r^   )r§   r�   r§   r#   )r�   rG   rG   r#   )r�   rG   r#   rL   r)   )rG   r�   r#   )r)   r'   r$   r$   )r�   r#   rG   r'   c                 C   s8   t |g|d�}|d |d< |d jd }||ksJ ‚d S )Nr`   r#   r   )r   rJ   )r.   r  rJ   r1   r0   r~   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²   Ú20141006é   )rí   r'   r$   iè  r&  éÿÿÿÿr,  r*  )r,  r.  )r+  r-  )r,  r-  )r+  r.  )r   Úfrom_productr   r<   r=   r>   r?   r@   r   r&   rJ   rã   Úshuffler¬   r,   ro   )r.   Úitr  r&   rÖ   r0   rW   rX   r    r    r!   Útest_setitem_multi_indexP  s   
"z-TestDataFrameSetItem.test_setitem_multi_indexzcolumns,box,expected©rF   rG   r�   r§   é   )r8  r8  r8  r8  r`   r�   r§   é   )r$   r'   r8  r9  )r)   r^   r8  r9  ©rk   é   r8  r9  r€   )r8  r9  rý   r;   ©rG   r�   r§   r  )é   é   é   )r$   r8  r9  rý   )r)   r:   r  r  )rk   r=  r>  r?  )r�   rF   r§   )r9  r'   r8  rý   )r  r^   r:   r  )r>  r;  r=  r?  rF   rý   r:   r  r  )r8  r'   r9  )rý   r^   r:   )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)   r^   rk   r;  rF   rG   r`   r¾   )r.   ra   Úboxr1   r0   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 )NrF   rG   ÚtuplesrZ   )r#  Úzipr   r&   r,   r|   )r.   rC   rB  r~   r1   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 )
NrL   ©r^   rk   r;  rø   c                 s   ó   � | ]}|V  qd S r  r    ©r»   rv   r    r    r!   Ú	<genexpr>ª  ó   € zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>rÛ   r$   rú   ©r^   r$   r$   ©r   rä   r,   ro   ©r.   r0   r  r1   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 )	NrL   rE  rø   c                 s   rF  r  r    rG  r    r    r!   rH  ±  rI  zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>rÛ   r$   rJ  rK  rL  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â   ÚS24)rB   r3   r+   r;   ru   r#   )rB   r&   r3   r(   ÚS64r*   rM   Úabcdr%   )r   r   r   r<   r6   Úuint8r{   r  r#  r,   r|   )r.   r&   r0   r~   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)   r^   rk   r;  rø   r5   ÚInt64Fr%   r#   r(   )r   rz   r   r&   r¬   r,   ro   )r.   r~   Ú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'   rT  r;   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?w   Y  t 	||¡ d S )
Nr:   )únp-arrayú	np-matrixr%   )r:   r$   r+   r;   ru   rX  rY  )
r   r<   Úonesrx   r   r,   Úassert_produces_warningÚPendingDeprecationWarningÚmatrixro   )r.   r1   r#   r0   r    r    r!   Útest_setitem_npmatrix_2d×  s   ÿ
ÿz-TestDataFrameSetItem.test_setitem_npmatrix_2drÖ   rM   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)   r^   rø   rÍ   éÈ   )r$   r   r#   rk   r;  ©r   r$   r*   rN   )r*   rN   )r   r¬   r<   r	  r,   ro   )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'   r:   r  r%   r   )r   r<   r	  r,   ro   Ú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)   r^   ©ra   r/   r:   r  r;   rø   r¶   ©r.   Úany_numeric_ea_dtyper0   r1   r    r    r!   Ú*test_setitem_frame_overwrite_with_ea_dtype   s   þÿz?TestDataFrameSetItem.test_setitem_frame_overwrite_with_ea_dtypec                 C   sˆ   t  d¡ tdddgiƒ}t dd¡� tddgtd�|d< W d   ƒ n1 s(w   Y  tddgtddgtd�d	œƒ}t 	||¡ d S )
NÚpyarrowr#   r$   r'   zfuture.infer_stringTr(   r;   rø   )
rc   Úimportorskipr   ÚpdÚoption_contextr   r  r   r,   ro   rˆ   r    r    r!   Ú'test_setitem_string_option_object_index  s   
ÿz<TestDataFrameSetItem.test_setitem_string_option_object_indexc                 C   s8   t ddgiƒ}| ¡ }d}||g ||< t ||¡ d S )Nrø   r:   ©r   rã   r,   ro   )r.   r0   r1   Ú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#   r:   r  r;   r  rT  r   )r   r<   rA   r   r¬   r,   ro   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 s+w   Y  tjtdd�� ||d< W d   ƒ n1 sFw   Y  tdgttdƒgd	d�ttdƒgd	d�d
œƒ}t 	||¡ d S )Nz
2019-12-31r;   r#   r$   Úinferr[   r(   r*   rÁ   rR   )
r   r   r  r   r,   r[  ÚFutureWarningr¬   r   ro   )r.   r®   r0   r1   r    r    r!   Útest_setitem_object_inferring(  s   ÿ
ÿýÿz2TestDataFrameSetItem.test_setitem_object_inferringN)Gr   r   r   r2   rc   ÚmarkÚparametrizerE   rK   rj   rs   r   r‡   r‰   rŽ   r–   r™   r¤   r¦   r¨   r¯   r   r	   r   r   r   r   r·   Úea_registryr{   r¿   rÉ   rØ   rÚ   rì   rô   rü   rÿ   r  r  r  r  r  r  r  r   r%  r'  r)  r6  r   r<   rA   r5   rA  rD  rM  rN  rS  rV  rW  ÚtdÚ&skip_array_manager_not_yet_implementedr^  ra  rc  rg  rl  ro  rp  rs  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:00rG   rT   z
US/Pacific)r   Útz_localize)r.   Ú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  r;   rG   rT   )r   r<   rA   Útolistr3   )r.   r®   r1   r    r    r!   r1   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$   rF   r`   rG   r   r$   r%   r�   rT   )r   r<   r=   r>   rH   Ú	to_seriesÚdtÚ
tz_convertr   rz  r,   r|   )r.   r®   r1   r0   r~   Ú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'   r}  rF   r`   rG   )r   r<   r=   r>   rH   r,   r|   ©r.   r®   r1   r0   r~   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 rƒ  )r   r<   r=   r>   rH   Úto_pydatetimer,   r|   r„  r    r    r!   Ú.test_setitem_object_array_of_tzaware_datetimes[  s   zGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesN)
r   r   r   rc   Úfixturer®   r1   r‚  r…  r‡  r    r    r    r!   ry  ;  s    


	ry  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 s6w   Y  |rFtg d¢dd�}ntg d¢dd�}t ||¡ d S )NrL   )r^   r^   r;  rø   r#   gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?ç      à?r*   rM   rÍ   )r   r   rT   )rÍ   r'   r)   )r   r<   rA   r,   Úassert_cow_warningrä   r   r|   )r.   ræ   Úwarn_copy_on_writer0   rh   r1   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)   r^   rk   r;  ú0 - Name)r$   r'   rk   )r)   r^   r;  )r   r$   rŽ  r`   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  r9   ©ra   r3   r'   r#   r   r$   r`   )r   r#  rl   r¬   r<   r	  r,   ro   )r.   ræ   r0   r1   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Í   r4   r;   c                 S   s   g | ]}|› d |d › �‘qS )z - ió  r    ©r»   rW   r    r    r!   r¼   “  s    zcTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype.<locals>.<listcomp>iô  T)ÚbyÚ	ascendingi)  F)r²   Úlabelsr§   )r  Úorderedr%   r  )r’  r§   r  )r   r<   rA   r=   r>   r?   r
   rl   Úsort_valuesr   r’  rJ   r{   r   r3   r   r,   r|   Úassert_categorical_equalrÝ   rB   Ú
sort_index)	r.   r0   r–  rh   r˜   r~   r1   Úresult1Ú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$   rS   r`   )r   rz   r<   r5   r,   ro   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  rF   Frî   )ra   r,   r|   )r.   rC   r~   r1   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 || ¡ 	¡ s*J ‚d S )	Nz1/1/2012z2/1/2012)ÚstartÚendr‹   r:   r&  iÜ  r  r$   )
r   r   r   rl   r   r   r<   r	  ÚisnanrÓ   )r.   ra   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,   ro   r}   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)   r^   rd  r:   r  r;   r*   rR   r¶   re  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Úabcr`   rk   r³   )r´   éH   Ú23rR   r   z0 days 00:00:05z0 days 00:01:12ru   )	r   r#  rj  Úto_timedeltar¬   Ú	Timedeltar   r,   ro   )r.   r~   r1   r    r    r!   Ú&test_loc_expansion_with_timedelta_typeé  s   ýýzHTestDataFrameSetItemWithExpansion.test_loc_expansion_with_timedelta_typeN)r   r   r   r�  r�  r‘  r�  rž  rŸ  r¥  r¦  r§  r­  r    r    r    r!   r‰  e  s    	-		r‰  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,   ro   rû   r    r    r!   Útest_setitem_slice_positionù  s   
z7TestDataFrameSetItemSlicing.test_setitem_slice_positionr  r@  rÕ   rL   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'   r^   r;  rR   r`   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   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 r²  )r   rä   r#  rl   r,   ro   )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 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ƒ   r³  rR   r`   r  r$   r  r�  r¾   r´  r    r    r!   Ú0test_setitem_slice_broadcasting_rhs_mixed_dtypes  s   "ÿýzLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypesN)r   r   r   r±  rc   rt  ru  r,   Úsetitemrä   r   r<   rA   r#  rj  rµ  r¶  r·  r    r    r    r!   r®  ø  s    	r®  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 )NrF   r    r  r    r    r!   r  *  s    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>.incr2  r$   r;   r   )r   r  r,   ro   )r.   r»  r0   r1   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©r0   r    r    r!   r  @  s    z(TestDataFrameSetItemBooleanMask.<lambda>c                 C   s   | t  | ¡d kjS r¿  )r<   rÀ  rJ   rÁ  r    r    r!   r  @  s    Ú	dataframerA   )Úidsc                 C   s^   |  ¡ }||ƒ}|  ¡ }tj||< |j  ¡ }tj|t |¡< t||j|jd�}t 	||¡ d S )Nru   )
rã   r<   r	  rJ   rA   r   r&   ra   r,   ro   )r.   r¾  rC   r0   rU  r~   r1   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   ƒ d S 1 s8w   Y  d S )	Nr#   r$   rR   r  r;   z@Must have equal len keys and value when setting with an iterabler[   r(   )r   r   rc   rd   re   r¬   )r.   r@  r0   r  ri   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$   rR   Fr:   r*   r(   rý   )r   r¬   r,   ro   )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   sT   t g d¢g d¢dœƒ}| ¡ }|d dk}||ƒ|  d¡||ƒ|< t ||¡ d S )N)r$   r^   r'   r)   r:  rø   r#   r)   )r   rã   r˜  r,   ro   )r.   r  r0   r1   rU  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  )rV   rW   rX   ÚkÚlrÊ   rÕ   )r$   r$   r'   r'   r$   r$   r$   )ÚcatsrJ   r%   )r#   r#   r*   r*   r#   r#   r#   rR   )r$   r$   r)   r)   r$   r$   r$   rË  r*   r'   )r
   r   r   rã   r˜   Úset_categoriesr,   ro   )r.   Úcats2Úidx2Úvalues2Úexp_multi_rowÚcatsfÚidxfÚvaluesfr0   Ú	exp_fancyrU  r    r    r!   Útest_setitem_mask_categoricalu  s   ÿz=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalr3   r©   r5   Úkwargsr&   r$   ra   rF   c                 C   s:   ||d< t di |¤Ž}| ¡ }d|||k< t ||¡ d S )Nr3   é/   r    rm  )r.   r3   rÖ  r0   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   ƒ d S 1 spw   Y  d S )Nr)   r€   )ç        rŠ  r›   )ç      ø?rœ   ç      @)r�   ç      @ç      @r;   )r&   ra   r/   )rÚ  rœ   r2  )r2  r2  r2  r2  rœ   zItem wrong lengthr[   r'   )r#  rl   r   r<   rA   r©   rZ  r@   r,   ro   rc   rd   re   r&   )r.   r®   r  Údf1rë   r1   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)   r^   r#   rR   Fr*   rT   r(   rk   r;  r   r%   )r   rã   r   r¬   r,   ro   )r.   r0   r1   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 )Nr2  r'   r)   r¯  r   TFÚbooleanr;   r`  )r   r   rj  ÚNAr,   ro   )r.   r0   r1   Úboolean_indexerr    r    r!   Útest_setitem_ea_boolean_mask¶  s   þÿz<TestDataFrameSetItemBooleanMask.test_setitem_ea_boolean_maskN)r   r   r   rw  Úskip_array_manager_invalid_testrc   rt  ru  rÄ  Úxfailr#  r<   rA   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… ƒ ¡ s+J ‚d S )Nr  rF   rk   r:   )ra   rã   r<   r	  rä   Úget_locr   rÓ   )r.   rC   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¡ |s4|r*| ¡  t|jjƒdks)J ‚n
t|jjƒdks4J ‚|d j}d	|j	dd …df< t
tjtjd	d	g|jdd
�}t |d |¡ |slt ||j¡ t ||d j¡snJ ‚d S d S )N)gš™™™™™ñ?gÍÌÌÌÌÌ @gÍÌÌÌÌÌ@gffffff@)gffffff@gffffff@gffffff@g333333 @)rv   rw   )r   r$   r'   r)   r%   r'   r„   r$   é*   rZ   )r   ry   r<   r	  Ú_consolidate_inplacer@   rÝ   ÚblocksÚ_valuesr¬   r   r&   r,   r|   rÅ   rJ   Úshares_memory)r.   rê  Úusing_array_managerræ   r0   Úzvalsr1   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 )
NrF   rG   r'   rÙ  r   ru   r  )rÙ  r'   rÙ  rk   r`   rm  )r.   r  r0   Údf_copyÚdf_viewr1   r    r    r!   Ú*test_setitem_duplicate_columns_not_inplaceí  s   zPTestDataFrameSetitemCopyViewSemantics.test_setitem_duplicate_columns_not_inplacer’  r$   r5   r;   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 )NrF   rG   r   r$   ru   r`   rm  )r.   r’  rð  r  r0   ró  rô  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 )NrF   rG   r   r$   ru   r›   r`   rm  )r.   r’  r  r0   ró  rô  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)Úmarkszvalue, set_value)r$   rk   )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%   rm  )r.   r’  Ú	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}t ¡ � |jD ]}d|| |< q%W d   ƒ n1 s8w   Y  |sTt 	|t 
d¡t 
d¡f dk¡sRJ ‚d S t 	|t 
d¡t 
d¡f dk¡sgJ ‚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>r:   c                    s   i | ]
}|t  tˆ ƒ¡“qS r    )r<   r°  r@   )r»   Úcol©r–  r    r!   Ú
<dictcomp>;  s    z\TestDataFrameSetitemCopyViewSemantics.test_setitem_column_update_inplace.<locals>.<dictcomp>r%   r   r$   )rl   r   rÝ   rí  rJ   r,   Úraises_chained_assignment_errorra   r<   rÓ   rx   )r.   ræ   rŒ  r0   rJ   Ú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 )	NrL   r"  r;   Úcol1Úcol2)r5   r"  r"  )r   r  r  )r&   r3   )r   r   r  r,   r|   r{   )r.   r0   Úexpected_typesr    r    r!   Ú%test_setitem_column_frame_as_categoryH  s   ÿzKTestDataFrameSetitemCopyViewSemantics.test_setitem_column_frame_as_categoryr3   rT  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)   r;   r'   r   )r'   r$   r$   )r   r<   rZ  rA   rä   r,   ro   )r.   r3   r0   r1   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(  )r^   rk   r;  r8  )r#   r(   r#   r*   r`   r   rÚ  r'   rÛ  r#   )r   r'   rÚ  r^   )r'   rk   rÛ  r8  rL   rE  )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)r3   rB   r   Ú3010Ú2010r&  )r   r   rò   rã   r,   ro   )r.   Údtir0   r1   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 }|r5ddgddgg|jd	d
gd d …f< t ||¡ nP|rIddgddgg|jd	d
gd d …f< n<t dd¡�. t t¡� ddgddgg|jd	d
gd d …f< W d   ƒ n1 sqw   Y  W d   ƒ n1 s€w   Y  t g d¢g d¢dœ|j	d�}t ||¡ |g d¢ }|s£|r¼ddgddgg|jd	d
gdd
d…f< t ||¡ n=t dd¡�/ t t¡� ddgddgg|jd	d
gdd
d…f< W d   ƒ n1 såw   Y  W d   ƒ n1 sôw   Y  t g d¢g d¢g d¢dœ|j	d�}t ||¡ d S )N)r$   r^   r$   rk   )r'   rk   r'   r;  )r)   r;  r$   r8  )r9  rý   r:   r  r7  rG   r�   r'   r$   r)   Úchained_assignmentÚwarn©r'   r'   r'   r'   )r)   r'   r$   r'   )rG   r�   r%   r<  r   )r9  r'   r:   r'   )
r   rã   rä   r,   ro   rj  rk  r[  r   r&   )r.   ræ   rŒ  Ú	df_parentÚdf_origr0   r1   r    r    r!   Útest_iloc_setitem_view_2dblock|  sH   üÿ"$$ÿ€ÿ$&ÿ€ÿÿ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sJ ‚| ¡ }|d d … }t 	|¡� ||j
|< W d   ƒ n1 s8w   Y  |rEt ||¡ |||< t|tdƒd�}	t ||	¡ d S )Nr  r)   r^   ÚABCDr`   )r<   rx   rn   r   rã   r#  rÝ   Úis_single_blockr,   r‹  rä   ro   )
r.   r  r’  ræ   rŒ  rD   r  r  r0   r1   r    r    r!   Útest_setitem_2dblock_with_ref«  s   ÿzCTestDataFrameSetitemCopyViewSemantics.test_setitem_2dblock_with_ref)r   r   r   ré  rc   rt  ru  rò  rõ  r<   rA   rö  r÷  Úparamræ  r   rû  rw  rå  r  r  r  r  r  r  Úslicer5   r  r    r    r    r!   rç  Ä  sp    
$ÿ
(
þþýþüþ	

/þøþ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 s#w   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\w   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 dtyper[   TrÜ  g      @r`  r)   r^   )r   r,   r[  rr  r¬   ro   ©r0   r1   r    r    r!   Ú'test_full_setter_loc_incompatible_dtypeÕ  s    ÿÿ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 )NrL   )rÝ  rk   r;  r  )r$   r¨  r$   r  ÚGr›   r	  r¨  )rF   rG   r  r  )r   r¬   r&   r©   r,   ro   r  r    r    r!   Ú)test_setitem_partial_row_multiple_columnsé  s   üÿr  )6r   Únumpyr<   rc   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrw  Úpandas.core.dtypes.baser   rv  Úpandas.core.dtypes.commonr   Úpandas.core.dtypes.dtypesr   r   r   r	   Úpandasrj  r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingr,   Úpandas.core.arraysr   Úpandas.tseries.offsetsr   r   ry  r‰  r®  r¹  r½  rç  r  r  r    r    r    r!   Ú<module>   s@    H      * . 	  