o
    g                     @   s@  d dl m Z  d dlZd dlZd dlm  mZ d dlm	Z
 d dlmZmZmZ d dlmZmZmZmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z( d dl)m*Z* d dl+m,Z, G d	d
 d
Z-G dd dZ.G dd dZ/G dd dZ0G dd dZ1G dd dZ2G dd dZ3dS )    )datetimeN)	_registry)is_categorical_dtypeis_interval_dtypeis_object_dtype)CategoricalDtypeDatetimeTZDtypeIntervalDtypePeriodDtype)Categorical	DataFrameDatetimeIndexIndexIntervalIntervalIndex
MultiIndexNaTPeriodPeriodIndexSeries	Timestampcut
date_rangenotnaperiod_range)SparseArray)BDayc                   @   s  e Zd Z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ejdededfeddd ed!d"fed#d$d%ed$d%fgd&d' Zejd(d)d* ejD d+d,g d-d. Zd/d0 Zejd1g d2d3d4 Zejd1g d2d5d6 Zd7d8 Zd9d: Z d;d< Z!ejdg d=d>d? Z"ejd@dAdAggdBdC Z#dDdE Z$dFdG Z%ejdHg dIg dJgdKdL Z&dMdN Z'dOdP Z(dQdR Z)dSdT Z*dUdV Z+ejdWg dXg dYdZfg d[g dYdZfg d\g dYdZfg d]g d^d_fg d`g dadbfg dcg daddfgdedf Z,dgdh Z-ejdig djdke.g dlg dlg dlgg djdmfdndogdkdpge.g dqg drg dsgg djdmfg dte/j0g due/j1dve.g dug dug dugg dtdmfg dwg dug dxg dyge.g dzg d{g d|gg djdmfg d}e/j0g dug dxg dyge/j1dve.g d~g dg dgg djdmfddnge.dkdpgddgddggddngdme.g dg dg dgg dtdmfgdd Z2dd Z3dd Z4dd Z5dd Z6dd Z7dS )TestDataFrameSetItemdtype)int32int64float32float64c                 C   s:   t jt|}t j||d||< || jj|ksJ d S )Nr   )nprandomrandnlenarrayr   name)selfr   float_framearr r-   f/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/frame/indexing/test_setitem.pytest_setitem_dtype/   s   z'TestDataFrameSetItem.test_setitem_dtypec                 C   s8   t jt|d}||ddg< t|ddg j| d S )N   AB)r$   r%   r&   r'   tmassert_almost_equalvalues)r*   r+   datar-   r-   r.   test_setitem_list_not_dataframe6   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g dd}d}tjt	|d |
ddg |d< W d    d S 1 smw   Y  d S )N   r0      )def)barbazabcfoor)   index)ghij)rA   rB   rC   rA   fizrG   r)   z$cannot reindex from a duplicate axismatchnewcolr   r0   )   rQ   rA   rB   rC   r;   columnsz6incompatible index of inserted column with frame indexrB   rC   gr)r   r   r   pytestraises
ValueErrorr$   r%   randint	TypeErrorgroupbycount)r*   dfsermsgr-   r-   r.   test_setitem_error_msmgs;   s$   
"z-TestDataFrameSetItem.test_setitem_error_msmgsc                 C   sh   d}d}t t|d}tj|}t|D ]}|||< qt t||||t|d}t|| d S )N
      rF   )	r   ranger$   r%   r&   repeatreshaper3   assert_frame_equal)r*   NKr]   new_colrJ   expectedr-   r-   r.   test_setitem_benchmarkR   s   
 z+TestDataFrameSetItem.test_setitem_benchmarkc                 C   sB  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 )Nrb   r:   )rC   rB   rA   rG   rT   r   rD   rA   r0   r>   rC   r!   xr"   )rD   rC   r>   rB   rA   rm   rF   rQ   r   y)rD   rC   r>   rB   rA   rm   rn   )r   r$   r%   r&   arangeinsertastypedtypesr   r   r3   assert_series_equal)r*   r]   resultrj   r-   r-   r.   test_setitem_different_dtype]   s4   *z1TestDataFrameSetItem.test_setitem_different_dtypec                 C   sL   t g dd}|j|d< g d|d< t dg dig dd}t|| d S )Nr1   r2   CrF   Xrm   rn   z)r6   rG   )r   rG   r3   rf   r*   r]   expr-   r-   r.   test_setitem_empty_columns   s
   
z/TestDataFrameSetItem.test_setitem_empty_columnsc                 C   sF   t dddd}ttt|d}||d< |d jtdks!J d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:5010s)freqrF   r1   M8[ns])r   r   r$   ro   r'   r   )r*   rngr]   r-   r-   r.   %test_setitem_dt64_index_empty_columns   s   z:TestDataFrameSetItem.test_setitem_dt64_index_empty_columnsc                 C   sR   t tdd}tddd|d< t tdddggd g ddgd}t|| d S )	Nr:   rF   20130101UTCtznowr   r9   r0   rl   )r   rc   r   r3   rf   r*   r]   rj   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   r9   r9   r   r9   r0   r@   ra   r>   rS   zLength of values \(z$\) does not match length of index \(z\)rN   rD   )r   
from_codesr   rc   r'   rV   rW   rX   )r*   catr]   r_   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 )Nr@         ?       @      @c_1n_1r   r   r9   
new_columnrE   )r   r   r   r3   rs   )r*   r]   sp_arrayrj   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 )
Nr@   r   r   r   )r0   r9   r   rF   r   )r9   r   r   rE   )r   r   r   r3   rs   )r*   r]   	sp_seriesrj   r-   r-   r.   (test_setitem_with_unaligned_sparse_value   s
   z=TestDataFrameSetItem.test_setitem_with_unaligned_sparse_valuec                 C   s   t tg dddtg dtdtg dtdd}t tg ddtg tdtg tdd}tg dD ]\}}t|t|t|d|j|jd < q4t|| d S )Nr   r    r#   r8   r@   r   )	r   r   float	enumerateintlocshaper3   rf   )r*   rj   r]   idxrB   r-   r-   r.   "test_setitem_dict_preserves_dtypes   s   


&z7TestDataFrameSetItem.test_setitem_dict_preserves_dtypesz	obj,dtypez2020-01Mr   rb   )leftrightr    r   z
2011-01-01z
US/Easternr   c                 C   sH   t g dt|gd |dd}t dg di}||d< t|| d S )Nr8   r:   r#   )r   objr   r   )r   r   r3   rf   )r*   r   r   rj   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).0r   r-   r-   r.   
<listcomp>   s    
zTestDataFrameSetItem.<listcomp>zdatetime64[ns, UTC]z	period[D]c                 C   s8   t dg}dg||< t ddg|dgi}t|| d S )Nr   r9   r   r3   rf   )r*   r   rt   rj   r-   r-   r.   test_setitem_with_ea_name   s   

z.TestDataFrameSetItem.test_setitem_with_ea_namec                 C   s   t jddgdd}t| }||d< tdd gdd gddd}t|| t jddgdd}||d< tdd gdd gddd}t|| d S )	Nr9   natdatetime64[ns]r#   new)r   r   zdatetime64[s]g    eA)r$   r(   r   to_framer   r3   rf   )r*   data_nsrt   rj   data_sr-   r-   r.   6test_setitem_dt64_ndarray_with_NaT_and_diff_time_units   s   zKTestDataFrameSetItem.test_setitem_dt64_ndarray_with_NaT_and_diff_time_unitsunit)rI   msmsDr   Yc                 C   s   d}t d| d}t j|t jd|}|d}tdt |it |d}|||< || jt dks9J || j|k sDJ d S )	Nd   M8[]r#   r   intsrF   r   	r$   r   ro   r    viewrq   r   r5   allr*   r   nr   valsex_valsr]   r-   r-   r.   -test_frame_setitem_datetime64_col_other_units   s   
zBTestDataFrameSetItem.test_frame_setitem_datetime64_col_other_unitsc                 C   s   d}t d| d}t j|t jd|}|d}tdt |it |d}t j|t jdd|d	< ||d	< |d	 j|k sEJ d S )
Nr   r   r   r#   r   r   rF   r   datesr   r   r-   r-   r.   6test_frame_setitem_existing_datetime64_col_other_units  s   
zKTestDataFrameSetItem.test_frame_setitem_existing_datetime64_col_other_unitsc           
      C   s  |}|d  d}||d< t|d t|dd d|d< ||d< t|d t|dd |d= |jjd }|jjd }t|| |jj}|jj}|d u sXt	|t	|ksXJ |
 }t|jd< t|jd	< |d }	tt|	tg d
dd t|j|j d S )Nr2   rD   rw   rE   r   r9   r0   )r9   r9   r9   r0   )TFT)renamer3   rs   r   _mgrarraysassert_extension_array_equal_databaseidcopyr   ilocr   rr   )
r*   timezone_framer]   r   v1v2v1basev2basedf2rt   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s2J |	 
d}t|jtsAJ t|j| d S )
Nz1/1/2000rb   rG   )periodsr)   r:   rF   r   Fcheck_names)r   r   r$   r%   r&   r   r3   assert_index_equalr)   reset_index	set_indexr   rG   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threer8   rA   rB   r9   r:   rb   rC   r;   r9   r:   rb   r9   r9   r9   rR   )r   r$   r(   rq   r   r3   rf   r*   r]   r,   rj   r-   r-   r.   'test_setitem_complete_column_with_arrayM  s   z<TestDataFrameSetItem.test_setitem_complete_column_with_array)f8i8u8c                 C   sl   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 )
Nr8   r#   r:   rS   r@   F)r9   r0   r:   Fr   )r   r   r   F)	r   r   r$   r%   r&   objectr3   r   rT   )r*   r   colsr]   expected_colsr-   r-   r.   $test_setitem_bool_with_numeric_index`  s   z9TestDataFrameSetItem.test_setitem_bool_with_numeric_indexindexerr2   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 )Nr1   r2   rS   r9   r0   r1   r2   r   )r   r$   nanrq   r3   rf   )r*   r   r]   otherrj   r-   r-   r.   #test_setitem_frame_length_0_str_keyn  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}|rS||_|d
 d|d
< |d d|d< n|d tj|d< |d tj|d< ||_t	|| d S )Nrv   r0   r:   rl   )r   r:   )r   r1   )r9   rQ   r2   r0   rb   rw   )r   r9   r0   r:   rQ   rb   r9   rQ   rb   r   r#   r    )
r   rc   r   r$   r   rT   rq   r    r3   rf   )r*   using_array_managerr   r]   rj   r-   r-   r.   $test_setitem_frame_duplicate_columnsx  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 )	Nrv   r0   r:   rl   "Columns must be same length as keyrN   )r   r:   rb   r1   )r   rc   rV   rW   rX   r   )r*   r   r]   r   r-   r-   r.   2test_setitem_frame_duplicate_columns_size_mismatch  s   "zGTestDataFrameSetItem.test_setitem_frame_duplicate_columns_size_mismatchr   r@   )rA   rA   rA   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 )
Nr8   rS   ra      r;   r<   r   rN   rA   r   rV   rW   rX   )r*   r   r]   rhsr_   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 )
Nr8   rA   rB   rB   rS   ra   r      rA   rB   rC   )ra   r   r  ra   )rA   rB   rB   rC   r   )r*   r]   r   rj   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 )
Nr8   r   rS   ra   r   rA   rB   r   rN   r   )r*   r]   r   r_   r-   r-   r.   @test_setitem_listlike_indexer_duplicate_columns_not_equal_length  s   "zUTestDataFrameSetItem.test_setitem_listlike_indexer_duplicate_columns_not_equal_lengthc                 C   s  t dtdi}t|d d}t|jjtsJ ||d< t||d< |j	|d< t|j	|d< |
t|d< t|d js@J t|d jjsJJ t|d jsSJ t|d jjs]J t|d seJ t|d smJ t|d suJ 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 )Nr1   ra   rb   r2   rw   r   EFc                 S   s   t t| S N)r   r$   r(   rm   r-   r-   r.   <lambda>  s    z=TestDataFrameSetItem.test_setitem_intervals.<locals>.<lambda>Fr   )r   rc   r   r   r   
categoriesr   r$   r(   r5   rq   r   r   r   r   r   r3   r   r2   rw   r   rs   )r*   r]   r^   rC   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 )NrI   mncategoryr   r   )
r   r   listrq   rI   r   reorder_categoriesr   r3   rf   r   r-   r-   r.   test_setitem_categorical  s   z-TestDataFrameSetItem.test_setitem_categoricalc                 C   sD   t g dd}tdg|d}g |d< tdg|d}t|j|j d S )Nr   rE   r1   rT   rG   )r   r   r3   r   rG   )r*   rG   rt   rj   r-   r-   r.    test_setitem_with_empty_listlike  s
   z5TestDataFrameSetItem.test_setitem_with_empty_listlikezcols, values, expected)rw   r   r   rA   r9   r0   r:   rQ   rQ   )r   rw   r   rA   )rw   r2   r2   rA   )rw   r2   rA   r8   r:   )r2   rw   rA   )r:   r0   r9   r9   )rw   rA   r2   r0   c                 C   s8   t |g|d}|d |d< |d jd }||ksJ d S )NrS   rA   r   )r   r5   )r*   r   r5   rj   r]   rt   r-   r-   r.   test_setitem_same_column  s   z-TestDataFrameSetItem.test_setitem_same_columnc                 C   s   g dddgg df}t |}tddd}tjdd	t|t|f}t|||d
}|jj	
 |d d d  }}tj| |d j|d d df |d< t|d |d  tj| |d j||f |d< t|d |d  tj| |d j||f |d< t|d |d  d S )N)jimjoejoliefirstlast)r   centerr   20141006   )r   r9   i  r  r  r  )r  r  )r  r  )r  r  )r  r  )r   from_productr   r$   r%   rY   r'   r   rG   r5   r   shuffler   r3   rf   )r*   itr   rG   r   r]   rJ   rK   r-   r-   r.   test_setitem_multi_index  s   
z-TestDataFrameSetItem.test_setitem_multi_indexzcolumns,box,expected)r1   r2   rw   r      )r!  r!  r!  r!  rS   rw   r      )r9   r0   r!  r"  )r:   rQ   r!  r"  rb      r!  r"  rv   )r!  r"  	   r#   )r2   rw   r   r   )         )r9   r!  r"  r%  )r:   ra   r   r  )rb   r&  r'  r(  )rw   r1   r   )r"  r0   r!  r%  )r   rQ   ra   r  )r'  r$  r&  r(  r1   r%  ra   r   r  )r!  r0   r"  )r%  rQ   ra   )r   r$  r  c                 C   s:   t ddgddgddggddgd	}|||< t|| d S )
Nr9   r0   r:   rQ   rb   r$  r1   r2   rS   r   )r*   rT   boxrj   r]   r-   r-   r.   !test_setitem_list_missing_columns'  s   "3z6TestDataFrameSetItem.test_setitem_list_missing_columnsc                 C   sF   t t|d |d }||d< |d }t||jdd}t|| d S )Nr1   r2   tuplesrM   )r  zipr   rG   r3   rs   )r*   r+   r+  rt   rj   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 )
Nr8   rQ   rb   r$  r   c                 s       | ]}|V  qd S r  r-   r   rm   r-   r-   r.   	<genexpr>i      zCTestDataFrameSetItem.test_setitem_iloc_generator.<locals>.<genexpr>r   r9   r   rQ   r9   r9   r   r   r3   rf   r*   r]   r   rj   r-   r-   r.   test_setitem_iloc_generatorf  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 )	Nr8   r.  r   c                 s   r/  r  r-   r0  r-   r-   r.   r1  p  r2  zSTestDataFrameSetItem.test_setitem_iloc_two_dimensional_generator.<locals>.<genexpr>r   r9   r3  r4  r5  r-   r-   r.   +test_setitem_iloc_two_dimensional_generatorn  s
   z@TestDataFrameSetItem.test_setitem_iloc_two_dimensional_generatorc                 C   s   t ddd}t|d}t d|tjd|d< t d|dd|d< t d	|dd|d	< t d
|tjd|d
< |j}t tjtttjgtdd}t	|| d S )Nr   S24)r)   r   rF   rA   )r)   rG   r   rB   S64rC   r;   abcd)
r   r   r$   uint32uint8rr   r   r  r3   rs   )r*   rG   r]   rt   rj   r-   r-   r.   (test_setitem_dtypes_bytes_type_to_objectu  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:   rQ   rb   r$  r   r    Int64FrF   rA   rB   )r   rq   r   rG   r   r3   rf   )r*   rt   maskrj   r-   r-   r.    test_boolean_mask_nullable_int64  s   z5TestDataFrameSetItem.test_boolean_mask_nullable_int64N)8__name__
__module____qualname__rV   markparametrizer/   r7   r`   rk   ru   r}   r   r   r   r   r   r   r   r
   r   r	   r   r   r   ea_registryrr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r   r   r$   r(   r    r*  r-  r6  r7  r=  r@  r-   r-   r-   r.   r   .   s    
#
	

	




	
-	
		 	 	 
1r   c                   @   s@   e Zd Zejdd Zejdd Zdd Zdd Zd	d
 Z	dS )TestSetitemTZAwareValuesc                 C   s   t ddgdd}|d}|S )Nz2013-1-1 13:00z2013-1-2 14:00r2   rE   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#   r2   rE   )r   r$   r(   tolistr   )r*   r   rj   r-   r-   r.   rj     s   z!TestSetitemTZAwareValues.expectedc                 C   s   t tjdddgd}||d< tt}|jdddgd|d< W d    n1 s+w   Y  d	}|t|d j	v s=J |d }t
|d
d dd}t|| d S )Nr0   r9   r1   rS   r2   Fr   )keep_tzrG   z(do 'idx.tz_convert(None)' before callingr   rE   )r   r$   r%   r&   r3   assert_produces_warningFutureWarning	to_seriesstrmessager   
tz_convertrH  rs   )r*   r   rj   r]   r   r_   rt   compr-   r-   r.   test_setitem_dt64series  s   z0TestSetitemTZAwareValues.test_setitem_dt64seriesc                 C   s8   t tjdddgd}||d< |d }t|| d S Nr0   r9   r1   rS   r2   )r   r$   r%   r&   r3   rs   r*   r   rj   r]   rt   r-   r-   r.   test_setitem_datetimeindex  s   z3TestSetitemTZAwareValues.test_setitem_datetimeindexc                 C   s<   t tjdddgd}| |d< |d }t|| d S rT  )r   r$   r%   r&   to_pydatetimer3   rs   rU  r-   r-   r.   .test_setitem_object_array_of_tzaware_datetimes  s   zGTestSetitemTZAwareValues.test_setitem_object_array_of_tzaware_datetimesN)
rA  rB  rC  rV   fixturer   rj   rS  rV  rX  r-   r-   r-   r.   rG    s    

	rG  c                   @   sJ   e Zd Zej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   sl   t g dg dd}|d }tddgddgdd	gg|d
dg< d|jd< tg ddd}t|| d S )Nr8   )rQ   rQ   r$  r   rA   g?g?g333333?g?      ?rC   r;   r   )r   r   )r   r0   r:   rE   )r   r$   r(   r   r   r3   rs   )r*   r]   r^   rj   r-   r-   r.   test_setitem_listlike_views  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 )Nr9   r0   r:   rQ   rb   r$  0 - Name)r9   r0   rb   )r:   rQ   r$  )r   r9   r]  rS   r   r   r-   r-   r.   .test_setitem_string_column_numpy_dtype_raising  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   r"   rT   r   r0   rA   r   r9   rS   )r   r  rc   r   r$   r   r3   rf   r   r-   r-   r.   'test_setitem_empty_df_duplicate_columns  s    zITestDataFrameSetItemWithExpansion.test_setitem_empty_df_duplicate_columnsc           	      C   s<  t dtjtjdddddi}tdd tddd	D }|jdgd
d}t|j	tddd	d|d}|j
}||d< t| |j}ttdt|ddgddgd}t|| ||d< t| |j}ttdt|ddt|ddgg dd}t|| |d }|d }t|jj| d|_t| |  d S )Nvaluer   i'  r   r   r#   c                 S   s   g | ]}| d |d  qS )z - i  r-   )r   rJ   r-   r-   r.   r     s    zcTestDataFrameSetItemWithExpansion.test_setitem_with_expansion_categorical_dtype.<locals>.<listcomp>i  T)by	ascendingi)  F)r   labelsr   )r	  orderedrF   r  )ra  r   r  )r   r$   r(   r%   rY   r   rc   sort_valuesr   ra  r5   rO  rr   r   r   r   r3   rs   assert_categorical_equalr   r)   
sort_index)	r*   r]   rd  r^   r   rt   rj   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 )Nr9   rD   rS   )r   rq   r$   r    r3   rf   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   r1   Fr   )rT   r3   rs   )r*   r+   rt   rj   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   ra   r  i  r   r9   )
r   r   r   rc   r   r   r$   r   isnanr   )r*   rT   r6   ttsr-   r-   r.   #test_frame_setitem_newcol_timestamp   s   
zETestDataFrameSetItemWithExpansion.test_frame_setitem_newcol_timestampN)rA  rB  rC  td&skip_array_manager_not_yet_implementedr\  r^  r`  rk  rl  rm  rs  r-   r-   r-   r.   rZ    s    
	-rZ  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   r9   r9   )r   r$   zerosr3   rf   r   r-   r-   r.   test_setitem_slice_position+  s   
z7TestDataFrameSetItemSlicing.test_setitem_slice_positionr   r)  r   r8   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   r0   rQ   r$  r@   rS   r   r9   r   r*   r   r)  r   r]   rj   r-   r-   r.   +test_setitem_slice_indexer_broadcasting_rhs4  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 rz  )r   r   r  rc   r3   rf   )r*   r   r)  r]   rj   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   ry   r{  r@   rS   r   r9   r   r_  r   r|  r-   r-   r.   0test_setitem_slice_broadcasting_rhs_mixed_dtypesG  s   "zLTestDataFrameSetItemSlicing.test_setitem_slice_broadcasting_rhs_mixed_dtypesN)rA  rB  rC  ry  rV   rD  rE  r3   setitemr   r   r$   r(   r  pdr}  r~  r  r-   r-   r-   r.   rv  *  s    	rv  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 )Nr1   r-   r  r-   r-   r.   r  \  s    zDTestDataFrameSetItemCallable.test_setitem_callable.<locals>.<lambda>r   r{   r-   r-   r.   test_setitem_callableY  s   z2TestDataFrameSetItemCallable.test_setitem_callablec                 C   sL   dd }t ddgddgg}|||dk< t d|g|dgg}t|| d S )Nc                 S   s   | d S )Nr9   r-   r  r-   r-   r.   incc  s   zETestDataFrameSetItemCallable.test_setitem_other_callable.<locals>.incr  r9   r   r   )r*   r  r]   rj   r-   r-   r.   test_setitem_other_callablea  s
   z8TestDataFrameSetItemCallable.test_setitem_other_callableN)rA  rB  rC  r  r  r-   r-   r-   r.   r  X  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d
e	j
e	jgdd Zdd Zejdddgejdi ddgiddgigdd Zdd Zdd ZdS )TestDataFrameSetItemBooleanMask	mask_typec                 C   s   | t | d kS Nr0   )r$   absr]   r-   r-   r.   r  q  s    z(TestDataFrameSetItemBooleanMask.<lambda>c                 C   s   | t | d kjS r  )r$   r  r5   r  r-   r-   r.   r  q  s    	dataframer(   )idsc                 C   sL   |  }||}|  }tj||< |  }tj|jt|< t|| d S r  )r   r$   r   r5   r(   r3   rf   )r*   r  r+   r]   r?  rt   rj   r-   r-   r.   test_setitem_boolean_maskn  s   	
z9TestDataFrameSetItemBooleanMask.test_setitem_boolean_maskr   c                 C   sT   t g dg dd}| }|d dk}||| d|||< t|| d S )N)r9   rQ   r0   r:   r#  r   rA   r:   )r   r   rf  r3   rf   )r*   r   r]   rj   r?  r-   r-   r.   "test_setitem_boolean_mask_aligning  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}| }	tjtdd |	d jjg d
dd}
W d    n1 s\w   Y  |
d u sgJ |d dk}ddg||< t	||	 d S )N)rA   rA   rB   rB   rA   rA   rA   rA   rB   )r	  )rI   rJ   rK   klr   r   )r9   r9   r0   r0   r9   r9   r9   )catsr5   rF   )rA   rA   rC   rC   rA   rA   rA   r@   )r9   r9   r:   r:   r9   r9   r9   F)check_stacklevelr  T)inplacerC   r0   )
r   r   r   r   r3   rL  rM  r   set_categoriesrf   )r*   cats2idx2values2exp_multi_rowcatsfidxfvaluesfr]   	exp_fancyreturn_valuer?  r-   r-   r.   test_setitem_mask_categorical  s(   
z=TestDataFrameSetItemBooleanMask.test_setitem_mask_categoricalr   r   r    kwargsrG   r9   rT   r1   c                 C   s:   ||d< t di |}| }d|||k< t|| d S )Nr   /   r-   r   r   r3   rf   )r*   r   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:   rv   )        r[  r   )      ?r   g      @)r   g      @g      @r#   )rG   rT   r6   )r  r   r  )r  r  r  r  r   zItem wrong lengthrN   r0   )r  rc   r   r$   r(   r   onesr'   r3   rf   rV   rW   rX   rG   )r*   r   r   df1r   rj   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 )Nr9   r0   r:   rQ   rA   r@   FrC   rE   rB   rb   r$  r   rF   )r   r   r   r   r3   rf   )r*   r]   rj   r   r-   r-   r.   -test_loc_setitem_all_false_boolean_two_blocks  s
   $zMTestDataFrameSetItemBooleanMask.test_loc_setitem_all_false_boolean_two_blocksN)rA  rB  rC  rt  skip_array_manager_invalid_testrV   rD  rE  r  r3   r  r   r  r  r  r  r  r-   r-   r-   r.   r  m  s     
	r  c                   @   s   e Zd Zdd Z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dS )%TestDataFrameSetitemCopyViewSemanticsc                 C   sP   d|j vsJ |d  }||d< tj|d dd< t|dd  s&J d S )Nr  r1   rb   ra   )rT   r   r$   r   r   r   )r*   r+   r   r-   r-   r.   test_setitem_always_copy  s
   z>TestDataFrameSetitemCopyViewSemantics.test_setitem_always_copyc                 C   s   t g dg ddg dd}|ddtj |d }d|j|jdd  df< ttjtjddg|jdd	}|d |us=J t|d | d S )
N)g?g @g@gffffff@)gffffff@gffffff@gffffff@g333333 @)rm   rn   )r   r9   r0   r:   rF   r0   rz   *   rM   )	r   rp   r$   r   r   rG   r   r3   rs   )r*   r]   rD   rj   r-   r-   r.   test_setitem_clear_caches  s   z?TestDataFrameSetitemCopyViewSemantics.test_setitem_clear_cachesc                 C   sf   ddgd }t ddg|d}| }|d d  }d|d< t g dg|d	}t|| t|| d S )
Nr1   r2   r0   r  r   rl   r   )r  r0   r  rb   rS   r  )r*   r   r]   df_copydf_viewrj   r-   r-   r.   *test_setitem_duplicate_columns_not_inplace  s   zPTestDataFrameSetitemCopyViewSemantics.test_setitem_duplicate_columns_not_inplacera  r9   r    r#   c           
      C   s   |st jjdd}|j| 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 )	Nz.Setitem with same dtype still changing inplace)reasonr1   r2   r   r9   rl   rS   )	rV   rD  xfailnode
add_markerr   r   r3   rf   )
r*   ra  r   requestrD  r   r]   r  r  rj   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 )Nr1   r2   r   r9   rl   r   rS   r  )r*   ra  r   r]   r  r  rj   r-   r-   r.   2test_setitem_listlike_key_scalar_value_not_inplace  s   
zXTestDataFrameSetitemCopyViewSemantics.test_setitem_listlike_key_scalar_value_not_inplaceN)rA  rB  rC  r  r  r  rV   rD  rE  r$   r(   r  r  r-   r-   r-   r.   r    s    $
(r  )4r   numpyr$   rV   pandas.util._test_decoratorsutil_test_decoratorsrt  pandas.core.dtypes.baser   rF  pandas.core.dtypes.commonr   r   r   pandas.core.dtypes.dtypesr   r   r	   r
   pandasr  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr3   pandas.core.arraysr   pandas.tseries.offsetsr   r   rG  rZ  rv  r  r  r  r-   r-   r-   r.   <module>   s.    H    e.m.e