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ddxge2dudzgddgddggddxgdwe2g dg dg dgg d~dwfgdd Z6dd Z7dd Z8dd Z9dd Z:dd Z;dd Z<e=j>dd Z?ejdi ddigdd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdS )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    i/var/www/html/Deteccion_Ine/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   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 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 sw   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   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 )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s!J 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   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'   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 ]\}}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 sIJ d S )	Nd   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 sEJ 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 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 )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   Zv1Z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s-J |j	dks4J |
 d}t|jtsCJ 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sNJ |d j|jksXJ 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 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 )	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   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 )
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   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 )
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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 )NrD   r8   re   rE   rz   r   EFc                 S   s   t t| S N)r   r:   r?   ro   r    r    r!   <lambda>  s    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   Z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sJ 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       | ]}|V  qd S r   r    r   ro   r    r    r!   	<genexpr>      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   r!  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?w   Y  t	|| d S )
Nr8   )np-array	np-matrixr%   )r8   r$   r+   r9   rn   r0  r1  )
r   r:   onesrq   r   r,   assert_produces_warningPendingDeprecationWarning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 s(w   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   
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 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-31r9   r#   r$   ZinferrV   r(   r*   r   rN   )
r   r   r   r   r,   r3  FutureWarningr   r   ri   )r-   r   r/   r0   r    r    r!   test_setitem_object_inferring(  s   
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+  r.  r/  tdZ&skip_array_manager_not_yet_implementedr6  r9  r:  r=  r@  rB  rC  rE  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   rK  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'   rM  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 rQ  )r   r:   r;   r<   rF   Zto_pydatetimer,   ru   rR  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   rP  rS  rT  r    r    r    r!   rJ  ;  s    


	rJ  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 )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$   rZ  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     s    zcTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype.<locals>.<listcomp>i  T)ZbyZ	ascendingi)  F)r   labelsr   )r   orderedr%   r   )r^  r   r   )r   r:   r?   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/   r`  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|| 	 s*J 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   rY  r[  r]  rc  rd  re  rk  rl  rm  rp  r    r    r    r!   rU  e  s    	-		rU  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]   rF  rG  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   *  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>.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   @  s    z(TestDataFrameSetItemBooleanMask.<lambda>c                 C   s   | t | d kjS r  )r:   r  rG   r  r    r    r!   r   @  s    Z	dataframer?   )Z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    d S 1 s8w   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 di |}| }d|||k< t|| d S )Nr2   /   r    rA  )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    d S 1 spw   Y  d S )Nr)   ry   )        rV  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   r2  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   r8  )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   rI  skip_array_manager_invalid_testr]   rF  rG  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  s+J 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 |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 @)ro   rp   )r   r$   r'   r)   r%   r'   r}   r$   *   rU   )r   rr   r:   r   Z_consolidate_inplacer>   r   blocks_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   rA  )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   rA  )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   rA  )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%   rA  )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|| |< 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>r8   c                    s   i | ]
}|t t qS r    )r:   rs  r>   )r   colr`  r    r!   
<dictcomp>;  s    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   rX  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:   r2  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 }|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 sw   Y  t g dg dd|j	d}t|| |g d }|s|rd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 sw   Y  W d    n1 sw   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?  r3  r   r&   )r-   r   rX  	df_parentdf_origr/   r0   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)   rX   ZABCDrZ   )r:   rq   rh   r   r   r  r   Zis_single_blockr,   rW  r   ri   )
r-   r   r^  r   rX  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]   rF  rG  r  r  r:   r?   r  r  paramr  r   r  rI  r  r  r  r  r  r  r  slicer4   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 dtyperV   Tr  g      @r8  r)   rX   )r   r,   r3  rD  r   ri   r/   r0   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 )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_decoratorsrI  Zpandas.core.dtypes.baser   rH  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   rJ  rU  rq  r|  r  r  r  r  r    r    r    r!   <module>   s@    H      * . 	  