a
    nÝEb~¼  ã                   @   sˆ  d dl mZm Z  d dlZd dlZd dlm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 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ƒZ G dd„ dƒZ!G dd„ dƒZ"G dd„ dƒZ#dd„ Z$dd„ Z%dd„ Z&dd„ Z'G dd„ dƒZ(G dd „ d ƒZ)ej* +d!ej,eg d"¢ƒeej-d#ej-d$ej-d%ej-d&ej-g	ƒe.ddd'ƒd(d)�ej,eg d*¢ƒeej-d+ej-d,ge/d-�e.ddd'ƒd.d)�ej,ee 0d/¡ƒeej-ej-ej-ej-ej-d$d0d%d1d&g
ƒe.dd$ƒd2d)�ej,eg d3¢ƒeej-d'd#gƒd d4d)�ej,ed,gƒeej-ge/d-�d d5d)�ej,ed,d+gƒeej-d+ge/d-�d d6d)�g¡G d7d8„ d8e)ƒƒZ1G d9d:„ d:e)ƒZ2G d;d<„ d<e)ƒZ3G d=d>„ d>e)ƒZ4G d?d@„ d@e)ƒZ5G dAdB„ dBe)ƒZ6ej* +dCeg d3¢ƒeej-d'd#gƒfeg dD¢ƒeej-dEdFgƒfee dGdHdHƒe dGdHd'ƒe dGdHd#ƒgƒeee dGdHd'ƒe dGdHd#ƒgƒfeg dI¢ƒeg dJ¢ƒfg¡G dKdL„ dLe)ƒƒZ7G dMdN„ dNe)ƒZ8G dOdP„ dPe)ƒZ9ej* +dQe :dEdFg¡e :dRdSg¡ej:d'dT d'dT dH gej;d-�g¡G dUdV„ dVe)ƒƒZ<ej* +dQdWe =dW¡g¡G dXdY„ dYe)ƒƒZ>ej* +dQg dZ¢¡G d[d\„ d\e)ƒƒZ?d]d^„ Z@d_d`„ ZAdadb„ ZBdcdd„ ZCdedf„ ZDdgdh„ ZEdidj„ ZFdkdl„ ZGdmdn„ ZHej*jIdodp�dqdr„ ƒZJej*jIdsdp�dtdu„ ƒZKej*jIdvdp�dwdx„ ƒZLej*jIdydp�dzd{„ ƒZMej*jId|dp�d}d~„ ƒZNej*jIddp�d€d�„ ƒZOd‚dƒ„ ZPd„d…„ ZQej* +d†eRd'd0ƒ¡ej* +d‡g dˆ¢d+d,gd,gg¡ej* +d‰dEej-e SeT¡jUe SeT¡jVg¡ej* +dŠd‹dŒ„ d�dŒ„ dŽdŒ„ g¡d�d�„ ƒƒƒƒZWdS )‘é    )ÚdateÚdatetimeN)Úis_list_like)ÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalÚIntervalIndexÚ
MultiIndexÚNaTÚSeriesÚ	TimedeltaÚ	TimestampÚconcatÚ
date_rangeÚperiod_range)ÚIndexingError)ÚBDayc                   @   sV   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡dd„ ƒZ
dd„ Zdd„ ZdS )ÚTestSetitemDT64Valuesc                 C   s€   t tddd�ƒ}d |d< |d tu s(J ‚d |dd…< |d tu sDJ ‚tj|d< |d tu s^J ‚tj|dd…< |d tu s|J ‚d S )	Nz1/1/2000é
   ©Úperiodsé   é   é   é   é   )r   r   r   ÚnpÚnan©ÚselfÚseries© r#   úi/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/series/indexing/test_setitem.pyÚtest_setitem_none_nan"   s    
z+TestSetitemDT64Values.test_setitem_none_nanc                 C   s@   t  ddg¡}tddg|d�}| ¡ }d|jg < t ||¡ d S )N)Úaé   )Úbé   r'   r)   ©Úindexr   )r   Úfrom_tuplesr   ÚcopyÚlocÚtmÚassert_series_equal)r!   ÚidxÚresultÚexpectedr#   r#   r$   Ú#test_setitem_multiindex_empty_slice0   s
    
z9TestSetitemDT64Values.test_setitem_multiindex_empty_slicec                 C   sJ   t g d¢g d¢d�}t ¡ |d< |jt ¡ ks2J ‚|d t ¡ ksFJ ‚d S )N©r'   r)   r   )ÚDater(   Úotherr*   r6   )r   r   Útodayr6   ©r!   Úserr#   r#   r$   Útest_setitem_with_string_index8   s    z4TestSetitemDT64Values.test_setitem_with_string_indexc                 C   sP   t dddd�}g d¢}t||d�}| ¡ }tj|d< tj|jd< t ||¡ d S )	NZ2017r   ú
US/Eastern©r   Útz)©r   r'   )r   r)   )r   r   )r   r   r*   r?   r   )r   r   r-   r   r   Úilocr/   r0   )r!   Úarrr+   r2   r3   r#   r#   r$   Ú)test_setitem_tuple_with_datetimetz_values?   s    
z?TestSetitemDT64Values.test_setitem_tuple_with_datetimetz_valuesr>   )r<   ÚUTCz
Asia/Tokyoc                 C   s   t tddd|d�ƒ}|jd|› d�ks*J ‚t td|d�td	|d�td
|d�gƒ}| ¡ }td|d�||ƒd< t ||¡ t td|d�td|d�gddgd�}|jd|› d�ks²J ‚t td|d�td	|d�td|d�gƒ}| ¡ }|||ƒddg< t ||¡ d S )Nú
2016-01-01ÚHr   ©Úfreqr   r>   údatetime64[ns, ú]z2016-01-01 00:00©r>   ú2011-01-01 00:00z2016-01-01 02:00ú
2011-01-01r'   ú
2012-01-01r)   r*   ú2012-01-01 00:00©r   r   Údtyper   r-   r/   r0   )r!   r>   Úindexer_sliÚorigÚexpr:   Úvalsr#   r#   r$   Útest_setitem_with_tzI   s2    


ýÿ	þ


ýÿz*TestSetitemDT64Values.test_setitem_with_tzc                 C   s  d}t tddd|d�ƒ}|jd|› d�ks.J ‚t td|d	�td
|d	�td|d	�gƒ}| ¡ }td|d	�||ƒd< t ||¡ t td|d	�td|d	�gddgd�}|jd|› d�ks¶J ‚t td|d	�td|d	�td|d	�gƒ}| ¡ }|||ƒddg< t ||¡ d S )Nr<   z
2016-11-06rE   r   rF   rH   rI   z2016-11-06 00:00-04:00rJ   z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00rL   r'   rM   r)   r*   z2016-11-06 00:00rK   rN   rO   )r!   rQ   r>   rR   rS   r:   rT   r#   r#   r$   Útest_setitem_with_tz_dstn   s4    


ýÿ	þ


ýÿz.TestSetitemDT64Values.test_setitem_with_tz_dstc                 C   sp   t dtjitd�}dg}tjdgdd�}||j|< t |d gdgtd�}tdd	„ |jD ƒƒs`J ‚t 	||¡ d S )
NÚX©rP   Tr   úM8[ns]r   ©r+   rP   c                 s   s   | ]}t |tjƒV  qd S ©N)Ú
isinstancer   Ú
datetime64©Ú.0Úxr#   r#   r$   Ú	<genexpr>¢   ó    zYTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_match.<locals>.<genexpr>)
r   r   r   ÚobjectÚarrayr@   ÚallÚvaluesr/   r0   )r!   r:   ÚindexerÚvaluer3   r#   r#   r$   Ú0test_object_series_setitem_dt64array_exact_match”   s    
zFTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_matchN)Ú__name__Ú
__module__Ú__qualname__r%   r4   r;   rB   ÚpytestÚmarkÚparametrizerU   rV   ri   r#   r#   r#   r$   r   !   s   

$&r   c                   @   sd   e Zd Zdd„ Zej dejej	g¡ej dddg¡dd„ ƒƒZ
ej d	d
dejfg¡dd„ ƒZdS )ÚTestSetitemScalarIndexerc                 C   sZ   t t dd¡t dd¡d�}d}tjt|d�� d|d< W d   ƒ n1 sL0    Y  d S )Nr   r   r*   z2index -11 is out of bounds for axis 0 with size 10©ÚmatchÚfooiõÿÿÿ)r   r/   Zrands_arrayrm   ÚraisesÚ
IndexError)r!   r:   Úmsgr#   r#   r$   Ú#test_setitem_negative_out_of_bounds¨   s    z<TestSetitemScalarIndexer.test_setitem_negative_out_of_boundsrg   Ú	ser_indexr   r'   c                 C   sX   t ddgdd�}||ƒ}t dg|gd�|d< t t dg|gd�dgdd�}t ||¡ d S )Nr   rc   rX   é*   r*   ©r   r/   r0   )r!   rg   rx   r:   Zidxrr3   r#   r#   r$   Ú test_setitem_series_object_dtype¯   s
    z9TestSetitemScalarIndexer.test_setitem_series_object_dtypezindex, exp_value)r   ry   c                 C   s>   t ddgƒ}t dg|gd�|jd< t |dgƒ}t ||¡ d S )Nr   ry   r*   )r   r.   r/   r0   )r!   r+   Z	exp_valuer:   r3   r#   r#   r$   Útest_setitem_series¹   s    z,TestSetitemScalarIndexer.test_setitem_seriesN)rj   rk   rl   rw   rm   rn   ro   r/   r.   Úatr{   r   r   r|   r#   r#   r#   r$   rp   §   s   rp   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestSetitemSlicesc                 C   sŒ   d}t jt|jdd�d�� d|dd…< W d   ƒ n1 s<0    Y  t jt|jdd�d�� d|d	d…< W d   ƒ n1 s~0    Y  d S )
NzUcannot do slice indexing on DatetimeIndex with these indexers \[{key}\] of type floatz4\.0)Úkeyrq   r   g      @g      $@z4\.5g      @)rm   rt   Ú	TypeErrorÚformat)r!   Údatetime_seriesrv   r#   r#   r$   Útest_setitem_slice_float_raisesÃ   s    ÿ*z1TestSetitemSlices.test_setitem_slice_float_raisesc                 C   sT   t tdƒttdƒƒd�}d|dd …< |dk ¡ s4J ‚d|d d…< |dk ¡ sPJ ‚d S )Nr   r*   r   iôÿÿÿr   )r   ÚrangeÚlistre   r9   r#   r#   r$   Útest_setitem_sliceÎ   s
    z$TestSetitemSlices.test_setitem_slicec                 C   sX   t tj d¡g d¢d�}d|d d…< |d d… dk ¡ s<J ‚|dd … dk ¡ rTJ ‚d S )Né   )r)   r   r   r‡   r   é   é   é   r*   r   r   )r   r   ÚrandomÚrandnre   Úanyr9   r#   r#   r$   Útest_setitem_slice_integersÖ   s    z-TestSetitemSlices.test_setitem_slice_integersc                 C   sJ   t t d¡ t¡t d¡d�}d|d d d…< |d d d… dk ¡ sFJ ‚d S )Né   r*   r   r)   )r   r/   ZmakeIntIndexÚastypeÚfloatre   r    r#   r#   r$   Útest_setitem_slicestepÝ   s    z(TestSetitemSlices.test_setitem_slicestepc                 C   s\   t  ddgtdƒf¡}ttjdtjd�|ƒ}d||ƒd d d…< tg d¢|ƒ}t ||¡ d S )	Nr   r'   Zabcder   rX   éd   r   )
r“   r'   r)   r   r“   r   r   r   r“   é	   )	r   Úfrom_productr…   r   r   ÚarangeÚint64r/   r0   )r!   rQ   Úmir2   r3   r#   r#   r$   Útest_setitem_multiindex_sliceä   s
    z/TestSetitemSlices.test_setitem_multiindex_sliceN)rj   rk   rl   rƒ   r†   rŽ   r’   r™   r#   r#   r#   r$   r~   Â   s
   r~   c                   @   sz   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	e
j deejeg¡dd„ ƒZdd„ Zdd„ Zdd„ ZdS )ÚTestSetitemBooleanMaskc                 C   sV   t ddgddgdd�}t dgdgdd�|ddg< t ddgddgdd�}t ||¡ d S )Nr'   r)   r—   rZ   r   TFrz   ©r!   r:   r3   r#   r#   r$   Útest_setitem_mask_castî   s    z-TestSetitemBooleanMask.test_setitem_mask_castc                 C   sl   t tj d¡t ddd¡d� d¡}|dk}| ¡ }||  ¡  t¡}|||< | dd„ ¡}t	 
||¡ d S )Nr“   r   éÿÿÿÿr*   r   c                 S   s   | dkrt | ƒS | S ©Nr   )Ústr)Útr#   r#   r$   Ú<lambda>þ   rb   zLTestSetitemBooleanMask.test_setitem_mask_align_and_promote.<locals>.<lambda>)r   r   r‹   rŒ   r–   Úroundr-   ÚmaprŸ   r/   r0   )r!   ÚtsÚmaskÚleftÚrightr3   r#   r#   r$   Ú#test_setitem_mask_align_and_promote÷   s    $z:TestSetitemBooleanMask.test_setitem_mask_align_and_promotec                 C   sF   t g d¢ƒ}|dk}||  t¡}|||< t g d¢ƒ}t ||¡ d S )N)r   r'   r)   r   r   )r   Ú1Ú2r   )r   r£   rŸ   r/   r0   ©r!   r:   r¥   Úser2r3   r#   r#   r$   Útest_setitem_mask_promote_strs  s    z5TestSetitemBooleanMask.test_setitem_mask_promote_strsc                 C   sD   t g d¢ƒ}t g d¢ƒ}|| }|||< t g d¢ƒ}t ||¡ d S )N)r   rs   Úbarr   )FTTFrz   r«   r#   r#   r$   Útest_setitem_mask_promote
  s    z0TestSetitemBooleanMask.test_setitem_mask_promotec                 C   s”   ||  ¡ k}| ¡ }|d ||< |d }t || || ¡ | ¡ }|d dd… ||< |d dd…  |¡}|| || < t || || ¡ d S )Nr)   r   r   )Úmedianr-   r/   r0   Zreindex_like)r!   Ústring_seriesr¥   r2   r3   r#   r#   r$   Útest_setitem_boolean  s    z+TestSetitemBooleanMask.test_setitem_booleanc                 C   s’   |}|j dtƒ d�| ¡ k}d}tjt|d�� d||< W d   ƒ n1 sL0    Y  tjt|d�� d|j|< W d   ƒ n1 s„0    Y  d S )Nr'   ©rG   zsUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchrq   )Úshiftr   r°   rm   rt   r   r.   )r!   r‚   r¤   Zmask_shiftedrv   r#   r#   r$   Útest_setitem_boolean_corner#  s    ÿ&z2TestSetitemBooleanMask.test_setitem_boolean_cornerc                 C   s@   |  ¡ }| ¡ }d||dk< | ¡ }d||dk< t ||¡ d S rž   )Zsort_valuesr-   r/   r0   )r!   r±   Zorderedr-   r3   r#   r#   r$   Ú$test_setitem_boolean_different_order1  s    z;TestSetitemBooleanMask.test_setitem_boolean_different_orderÚfuncc                 C   s@   t g d¢ƒ}|g d¢ƒ}ddg||< t g d¢ƒ}t ||¡ d S )N)Nr(   N©TFTr&   Úc©r&   r(   r¹   rz   )r!   r·   r:   r¥   r3   r#   r#   r$   Ú test_setitem_boolean_python_list<  s
    z7TestSetitemBooleanMask.test_setitem_boolean_python_listc                 C   sÂ   t g d¢|d�}t tdƒ|d�||dk< t g d¢|d�}t ||¡ t g d¢|d�}t tdƒ|d�|j|dk< t ||¡ t g d¢|d�}t tdƒ|d�}|j|dk |j|dk< t ||¡ d S )N)r   r   r   r‡   rX   r   r   )r   r   r)   r   r'   )r   r„   r/   r0   r.   )r!   Zany_numeric_ea_dtyper:   r3   Zloc_serr#   r#   r$   Ú'test_setitem_boolean_nullable_int_typesE  s    z>TestSetitemBooleanMask.test_setitem_boolean_nullable_int_typesc                 C   sv   t d gd ƒ}dgd dgd  dgd  }tdƒ||< |}t d gd ttdƒƒ d gd  ƒ d¡}t ||¡ d S )Nr   Fr   Tr   r)   rc   )r   r„   r…   r�   r/   r0   )r!   r:   r¥   r2   r3   r#   r#   r$   ÚAtest_setitem_with_bool_mask_and_values_matching_n_trues_in_lengthU  s    *zXTestSetitemBooleanMask.test_setitem_with_bool_mask_and_values_matching_n_trues_in_lengthc                 C   s:   t g d¢ƒ}tj|d< t tjddgtd�}t ||¡ d S )Nr¸   r   FTrX   )r   r   r   rc   r/   r0   )r!   r2   r3   r#   r#   r$   Útest_setitem_nan_with_bool^  s    
z1TestSetitemBooleanMask.test_setitem_nan_with_boolN)rj   rk   rl   rœ   r¨   r­   r¯   r²   rµ   r¶   rm   rn   ro   r…   r   rd   r   r»   r¼   r½   r¾   r#   r#   r#   r$   rš   í   s   	
		
	rš   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestSetitemViewCopySemanticsc                 C   s´   t dddd�}|d }t|ƒ}|j|us,J ‚|jjj|jjjusDJ ‚|jdksRJ ‚t|jd< |jjd u slJ ‚|j|uszJ ‚|jjj|jjjus’J ‚|d |ks¢J ‚|jdks°J ‚d S )NZ20130101r   r<   r=   r'   ÚD)r   r   Ú_valuesÚ_dataÚbaserG   r   r@   ©r!   Údtir¤   r:   r#   r#   r$   Ú,test_setitem_invalidates_datetime_index_freqg  s    
zITestSetitemViewCopySemantics.test_setitem_invalidates_datetime_index_freqc                 C   s¨   t dddd�}|d }t|ƒ}|j|us,J ‚|jjj|jjjusDJ ‚|jjd |usXJ ‚|jjd jj|jjjusvJ ‚t|d d d…< |d tu s”J ‚|d |ks¤J ‚d S )NrD   r   z
US/Pacificr=   r   r   )r   r   rÁ   rÂ   rÃ   Z_mgrZarraysr   rÄ   r#   r#   r$   Ú'test_dt64tz_setitem_does_not_mutate_dtiz  s    zDTestSetitemViewCopySemantics.test_dt64tz_setitem_does_not_mutate_dtiN)rj   rk   rl   rÆ   rÇ   r#   r#   r#   r$   r¿   f  s   r¿   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestSetitemCallablec                 C   sD   t g d¢tdƒd�}d|dd„ < t g d¢tdƒd�}t ||¡ d S )N©r'   r)   r   r   ÚABCDr*   r�   c                 S   s   dS )NÚAr#   ©r`   r#   r#   r$   r¡   �  rb   z?TestSetitemCallable.test_setitem_callable_key.<locals>.<lambda>)r�   r)   r   r   )r   r…   r/   r0   r›   r#   r#   r$   Útest_setitem_callable_keyŠ  s    z-TestSetitemCallable.test_setitem_callable_keyc                 C   s@   dd„ }t g d¢ƒ}|||dk < t dd|dgƒ}t ||¡ d S )Nc                 S   s   | d S ©Nr'   r#   rÌ   r#   r#   r$   r¡   ”  rb   zATestSetitemCallable.test_setitem_callable_other.<locals>.<lambda>)r'   r)   r�   r   r   r'   r)   r   rz   )r!   Úincr:   r3   r#   r#   r$   Útest_setitem_callable_other’  s
    z/TestSetitemCallable.test_setitem_callable_otherN)rj   rk   rl   rÍ   rÐ   r#   r#   r#   r$   rÈ   ‰  s   rÈ   c                   @   sd   e Zd Zdd„ Zdd„ Zdd„ Zej de	dƒe	dƒ 
¡ e	dƒ ¡ g¡d	d
„ ƒZdd„ Zdd„ ZdS )ÚTestSetitemWithExpansionc                 C   s6   t dƒ}ttd�}d||< td|gƒ}t ||¡ d S )NrM   rX   é/   )r   r   rc   r/   r0   )r!   r   r"   r3   r#   r#   r$   Útest_setitem_empty_seriesž  s
    
z2TestSetitemWithExpansion.test_setitem_empty_seriesc                 C   s^   t g tg dd�td�}tdƒ}d||< t dt|gdd�ƒ}t ||¡ |jj|jjksZJ ‚d S )NrÀ   r³   rX   rM   rÒ   )r   r   rc   r   r/   r0   r+   rG   )r!   r"   r   r3   r#   r#   r$   Ú6test_setitem_empty_series_datetimeindex_preserves_freq¦  s    zOTestSetitemWithExpansion.test_setitem_empty_series_datetimeindex_preserves_freqc                 C   sV   t dƒ}t|gdgtd�}|d }tg td�}d|d< ||d< |d }||ksRJ ‚d S )Nl    P”iÕ5Ò Ú	timestamprZ   rX   g     Àr@Zanything)r   r   rc   )r!   rÕ   r"   r3   r2   r#   r#   r$   Ú3test_setitem_empty_series_timestamp_preserves_dtype¯  s    zLTestSetitemWithExpansion.test_setitem_empty_series_timestamp_preserves_dtypeÚtdú9 daysc                 C   s€   t d|gddgtd�}t dgƒ}||d< t ||¡ t|d tƒsFJ ‚t dgƒ}tdƒ|jd< t ||¡ t|d tƒs|J ‚d S )Nr`   r   r×   rZ   rØ   )r   rc   r/   r0   r\   r   r.   )r!   r×   r3   r:   r#   r#   r$   Ú#test_append_timedelta_does_not_cast»  s    


z<TestSetitemWithExpansion.test_append_timedelta_does_not_castc                 C   sP   t td�}tdƒ|d< d|d< d|d< t tdƒddgg d¢d	�}t ||¡ d S )
NrX   rD   r&   ç      @r(   rs   r¹   rº   r*   )r   rc   r   r/   r0   r›   r#   r#   r$   Ú*test_setitem_with_expansion_type_promotionÑ  s    
zCTestSetitemWithExpansion.test_setitem_with_expansion_type_promotionc                 C   sL   |  ¡ }d|jvsJ ‚d|d< tdgdgdd�}t||gƒ}t ||¡ d S )NZfoobarr'   r"   )r+   Úname)r-   r+   r   r   r/   r0   )r!   r±   r:   Zappr3   r#   r#   r$   Útest_setitem_not_containedÚ  s    z3TestSetitemWithExpansion.test_setitem_not_containedN)rj   rk   rl   rÓ   rÔ   rÖ   rm   rn   ro   r   Zto_timedelta64Zto_pytimedeltarÙ   rÛ   rÝ   r#   r#   r#   r$   rÑ   �  s   	

ýþ
	rÑ   c               	   C   sz   t  d¡} d| j_t| ƒ}tt|ƒƒD ]N}d}tjt	|d�� d||< W d   ƒ n1 sZ0    Y  | | dks&J ‚q&d S )Nr   Fú#assignment destination is read-onlyrq   r'   r   )
r   ÚzerosÚflagsÚ	writeabler   r„   Úlenrm   rt   Ú
ValueError)rd   r"   Únrv   r#   r#   r$   Ú.test_setitem_scalar_into_readonly_backing_dataå  s    
&rå   c                  C   sh   t  d¡} d| j_t| ƒ}d}tjt|d�� d|dd…< W d   ƒ n1 sN0    Y  |  ¡ rdJ ‚d S )Nr   FrÞ   rq   r'   r   )	r   rß   rà   rá   r   rm   rt   rã   r�   )rd   r"   rv   r#   r#   r$   Ú-test_setitem_slice_into_readonly_backing_dataô  s    
*ræ   c                  C   s@  t tddgddgd�ƒ} |  ¡ }d|d d …< t tddgddgd�ƒ}t ||¡ |  ¡ }d|d< t tddgddgd�ƒ}t ||¡ |  ¡ }d||jdk< t tddgddgd�ƒ}t ||¡ |  ¡ }d|ddg< t tddgddgd�ƒ}t ||¡ |  ¡ }dd	g|_d|d	< t tddgddgd�dd	gd
�}t ||¡ d S )Nr(   r&   ©Ú
categoriesr'   r   FTr`   Úyr*   )r   r   r-   r/   r0   r+   )rR   r:   rS   r#   r#   r$   Ú&test_setitem_categorical_assigning_ops  s,    
 rê   c                  C   sF   t tg d¢ƒƒ} t tdtjdgg d¢d�ƒ}tj| d< t | |¡ d S )Nr5   r'   r   rç   )r   r   r   r   r/   r0   )r:   rS   r#   r#   r$   Ú!test_setitem_nan_into_categorical  s    
rë   c                   @   s<   e Zd Zej dddg¡ejjdg d¢ed�dd„ ƒƒZd	S )
ÚTestSetitemCastingÚuniqueTFÚval)r   rÚ   Ú3)Úidsc                 C   sˆ   t ddgƒ}|sddg|_|||ƒd< t|jd ƒt|ƒks@J ‚t d|gt|jd�}|sx|tjurxt ||gtddgd�}t ||¡ d S )NTFr'   ©rP   r+   )r   r+   Útyper@   rc   r/   r0   )r!   rî   rQ   rí   r:   r3   r#   r#   r$   Útest_setitem_non_bool_into_bool(  s    
z2TestSetitemCasting.test_setitem_non_bool_into_boolN)rj   rk   rl   rm   rn   ro   rò   ró   r#   r#   r#   r$   rì   '  s   rì   c                   @   s^   e Zd 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d„ Zdd„ ZdS )ÚSetitemCastingEquivalentszÓ
    Check each of several methods that _should_ be equivalent to `obj[key] = val`

    We assume that
        - obj.index is the default Index(range(len(obj)))
        - the setitem does not expand the obj
    c                 C   s   dS )z\
        Indicate that we are not (yet) checking whether or not setting is inplace.
        Nr#   ©r!   r#   r#   r$   Ú
is_inplaceB  s    z$SetitemCastingEquivalents.is_inplacec           	      C   s>   |}|  ¡ }|j}|||ƒ|< t ||¡ |  ||||¡ d S r[   )r-   rÁ   r/   r0   Ú_check_inplace)	r!   Úobjr   r3   rî   rg   rö   rR   rA   r#   r#   r$   Úcheck_indexerI  s    z'SetitemCastingEquivalents.check_indexerc                 C   sP   |d u r
nB|r>|j jdv r.|j|jju s<J ‚qL|j|u sLJ ‚nt ||j¡ d S )N)ÚmÚM)rP   ÚkindZ_ndarrayrÁ   r/   Zassert_equal)r!   rö   rR   rA   rø   r#   r#   r$   r÷   S  s    z(SetitemCastingEquivalents._check_inplacec                 C   s  t |tƒsd S |  ||||||¡ |tju rD|  ||||tj|¡ n |tju rd|  ||||tj|¡ t||d ƒ}|  ||||||¡ |tjur²t	||d ƒ}|  ||||||¡ |g}	|  ||	||||¡ t
 |	¡}
|  ||
||||¡ dd„ |fD ƒ}|  ||||||¡ d S )Nr'   c                 s   s   | ]
}|V  qd S r[   r#   r^   r#   r#   r$   ra   {  rb   z9SetitemCastingEquivalents.test_int_key.<locals>.<genexpr>)r\   Úintrù   r/   r.   r}   r@   Úiatr„   Úslicer   rd   )r!   rø   r   r3   rî   rQ   rö   ÚrngZslcÚilkeyÚindkeyÚgenkeyr#   r#   r$   Útest_int_keyb  s$    




z&SetitemCastingEquivalents.test_int_keyc           
      C   s˜   t |tƒsd S |tjur,|  ||||||¡ ttt|ƒƒƒ| }|  ||||||¡ t 	|¡}|  ||||||¡ dd„ |D ƒ}	|  ||	||||¡ d S )Nc                 s   s   | ]
}|V  qd S r[   r#   r^   r#   r#   r$   ra   Œ  rb   z;SetitemCastingEquivalents.test_slice_key.<locals>.<genexpr>)
r\   rÿ   r/   r.   rù   r…   r„   râ   r   rd   )
r!   rø   r   r3   rî   rQ   rö   r  r  r  r#   r#   r$   Útest_slice_key~  s    


z(SetitemCastingEquivalents.test_slice_keyc                 C   s–   t j|jtd�}d||< | ¡ }t|ƒrzt|ƒ| ¡ k rzd}tj	t
|d�� |||ƒ|< W d   ƒ n1 sl0    Y  d S |||ƒ|< t ||¡ d S )NrX   Tz9boolean index did not match indexed array along dimensionrq   )r   rß   ÚshapeÚboolr-   r   râ   Úsumrm   rt   ru   r/   r0   )r!   rø   r   r3   rî   rQ   r¥   rv   r#   r#   r$   Útest_mask_key�  s    *z'SetitemCastingEquivalents.test_mask_keyc                 C   s´   t j|jtd�}d||< t|ƒrtt|ƒt|ƒk rtd}tjt|d�� | 	| |¡ W d   ƒ n1 sf0    Y  d S |}| 
¡ }|j}	| 	| |¡}
t |
|¡ |  |||	|¡ d S )NrX   Tz4operands could not be broadcast together with shapesrq   )r   rß   r  r  r   râ   rm   rt   rã   Úwherer-   rÁ   r/   r0   r÷   )r!   rø   r   r3   rî   rö   r¥   rv   rR   rA   Úresr#   r#   r$   Útest_series_whereŸ  s    ,z+SetitemCastingEquivalents.test_series_wherec                 C   sR   |j tkrt d¡ tj|jtd�}d||< t|ƒ | |¡}t	 
|t|ƒ¡ d S ©Nz"test not applicable for this dtyperX   T)rP   r  rm   Úskipr   rß   r  r   r
  r/   Úassert_index_equal)r!   rø   r   r3   rî   Úrequestr¥   r  r#   r#   r$   Útest_index_where³  s    

z*SetitemCastingEquivalents.test_index_wherec                 C   sP   |j tkrt d¡ tj|jtd�}d||< t|ƒ ||¡}t	 
|t|ƒ¡ d S r  )rP   r  rm   r  r   rß   r  r   Zputmaskr/   r  )r!   rø   r   r3   rî   r¥   r  r#   r#   r$   Útest_index_putmask¾  s    

z,SetitemCastingEquivalents.test_index_putmaskN)rj   rk   rl   Ú__doc__rm   Úfixturerö   rù   r÷   r  r  r	  r  r  r  r#   r#   r#   r$   rô   9  s   

rô   zobj,expected,key)	r)   r   r   r   r   r   r‡   r”   r   r   r   r   r”   r)   Zint_series_slice_key_step)Úid)TTFFTFrX   Zbool_series_slice_key_stepr   r   r‡   Zint_series_slice_keyr5   Zint_series_int_keyZbool_series_int_key_change_allZbool_series_int_keyc                   @   s,   e Zd Zejeje d¡gd�dd„ ƒZdS )ÚTestSetitemCastingEquivalentsÚNaN©Úparamsc                 C   s   |j S )zi
        One python float NaN, one np.float64.  Only np.float64 has a `dtype`
        attribute.
        ©Úparam©r!   r  r#   r#   r$   rî   ú  s    z!TestSetitemCastingEquivalents.valN)	rj   rk   rl   rm   r  r   r   Úfloat64rî   r#   r#   r#   r$   r  Ê  s   0r  c                   @   sl   e Zd Zejdd„ ƒZejeeegd�dd„ ƒZ	ejdd„ ƒZ
ejdd	„ ƒZejd
d„ ƒZejdd„ ƒZdS )Ú!TestSetitemTimedelta64IntoNumericc                 C   s   t  dd¡}|S )Nr   Úns)r   Útimedelta64)r!   r×   r#   r#   r$   rî     s    z%TestSetitemTimedelta64IntoNumeric.valr  c                 C   s   |j S r[   r  r  r#   r#   r$   rP     s    z'TestSetitemTimedelta64IntoNumeric.dtypec                 C   s   t  d¡ |¡}t|ƒ}|S )Nr   )r   r–   r�   r   ©r!   rP   rA   r:   r#   r#   r$   rø     s    z%TestSetitemTimedelta64IntoNumeric.objc                 C   s8   t  d¡ |¡}t|ƒ}| t¡}t  dd¡|jd< |S )Nr   r   r  r   )r   r–   r�   r   rc   r   rf   r!  r#   r#   r$   r3     s
    
z*TestSetitemTimedelta64IntoNumeric.expectedc                 C   s   dS rž   r#   rõ   r#   r#   r$   r     s    z%TestSetitemTimedelta64IntoNumeric.keyc                 C   s   dS )zM
        Indicate we do _not_ expect the setting to be done inplace.
        Fr#   rõ   r#   r#   r$   rö   #  s    z,TestSetitemTimedelta64IntoNumeric.is_inplaceN)rj   rk   rl   rm   r  rî   Úcomplexrý   r‘   rP   rø   r3   r   rö   r#   r#   r#   r$   r    s   




r  c                   @   s†   e Zd Zejddgd�dd„ ƒZejdd„ ƒZejdd	„ ƒZejd
d„ ƒZejdd„ ƒZ	ejde
ejgd�dd„ ƒZejdd„ ƒZdS )ÚTestSetitemDT64IntoIntrY   úm8[ns]r  c                 C   s   |j S r[   r  r  r#   r#   r$   rP   .  s    zTestSetitemDT64IntoInt.dtypec                 C   s    t  dd¡}|dkr|| }|S )Nz2021-01-18 13:25:00r  r$  )r   r]   )r!   rP   rî   r#   r#   r$   Úscalar2  s    zTestSetitemDT64IntoInt.scalarc                 C   s,   t ||dgtd�}t|d t|ƒƒs(J ‚|S )Nr   rX   r   )r   rc   r\   rò   )r!   r%  r3   r#   r#   r$   r3   9  s    zTestSetitemDT64IntoInt.expectedc                 C   s   t g d¢ƒS )Nr5   ©r   rõ   r#   r#   r$   rø   ?  s    zTestSetitemDT64IntoInt.objc                 C   s
   t d dƒS )Nr�   ©rÿ   rõ   r#   r#   r$   r   C  s    zTestSetitemDT64IntoInt.keyNc                 C   s   |j }|d u r|S |||gƒS r[   r  )r!   r%  r  Úboxr#   r#   r$   rî   G  s    zTestSetitemDT64IntoInt.valc                 C   s   dS ©NFr#   rõ   r#   r#   r$   rö   N  s    z!TestSetitemDT64IntoInt.is_inplace)rj   rk   rl   rm   r  rP   r%  r3   rø   r   r…   r   rd   rî   rö   r#   r#   r#   r$   r#  +  s   





r#  c                   @   sn   e Zd Zejdd„ ƒZejdd„ ƒZejdeddƒgd�dd	„ ƒZejd
e	j
gd�dd„ ƒZejdd„ ƒZd
S )ÚTestSetitemNAPeriodDtypec                 C   sN   t tdddd�ƒ}tj|j d¡|< || tu sJtdd„ || D ƒƒsJJ ‚|S )Nú
2000-01-01r   rÀ   ©r   rG   Úi8c                 s   s   | ]}|t u V  qd S r[   )r   r^   r#   r#   r$   ra   Z  rb   z4TestSetitemNAPeriodDtype.expected.<locals>.<genexpr>)r   r   r   rh   rÁ   Úviewre   )r!   r   rS   r#   r#   r$   r3   V  s    &z!TestSetitemNAPeriodDtype.expectedc                 C   s   t tdddd�ƒS )Nr+  r   rÀ   r,  )r   r   rõ   r#   r#   r$   rø   ]  s    zTestSetitemNAPeriodDtype.objr   r   r  c                 C   s   |j S r[   r  r  r#   r#   r$   r   a  s    zTestSetitemNAPeriodDtype.keyNc                 C   s   |j S r[   r  r  r#   r#   r$   rî   e  s    zTestSetitemNAPeriodDtype.valc                 C   s   dS ©NTr#   rõ   r#   r#   r$   rö   i  s    z#TestSetitemNAPeriodDtype.is_inplace)rj   rk   rl   rm   r  r3   rø   rÿ   r   r   r   rî   rö   r#   r#   r#   r$   r*  S  s   



r*  c                	   @   sŒ   e Zd Zejg d¢d�dd„ ƒZejdd„ ƒZejdeje	e 
dd	¡e dd	¡gd�d
d„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZdS )ÚTestSetitemNADatetimeLikeDtype)r$  rY   údatetime64[ns, UTC]zdatetime64[ns, US/Central]r  c                 C   s   |j S r[   r  r  r#   r#   r$   rP   t  s    z$TestSetitemNADatetimeLikeDtype.dtypec                 C   s0   t ddd�j}t||d�}|j|ks(J ‚t|ƒS )NrD   r   r   rX   )r   Zasi8r   rP   r   )r!   rP   Zi8valsr1   r#   r#   r$   rø   z  s    z"TestSetitemNADatetimeLikeDtype.objNr   r  c                 C   s   |j S r[   r  r  r#   r#   r$   rî   �  s    
z"TestSetitemNADatetimeLikeDtype.valc                 C   s&   |t u p$|d u p$|tju p$|j|jkS r[   )r   r   r   rP   )r!   rî   rø   r#   r#   r$   rö   �  s    z)TestSetitemNADatetimeLikeDtype.is_inplacec                 C   s0   |r
|j nt}t|gt|dd … ƒ |d�}|S )Nr'   rX   )rP   rc   r   r…   )r!   rø   rî   rö   rP   r3   r#   r#   r$   r3   ”  s    z'TestSetitemNADatetimeLikeDtype.expectedc                 C   s   dS rž   r#   rõ   r#   r#   r$   r   š  s    z"TestSetitemNADatetimeLikeDtype.key)rj   rk   rl   rm   r  rP   rø   r   r   r   r   r]   rî   rö   r3   r   r#   r#   r#   r$   r0  n  s*   ÿ



ûÿ	


r0  c                   @   sX   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejd	d
�dd„ ƒZ	dS )Ú$TestSetitemMismatchedTZCastsToObjectc                 C   s   t tdddd�ƒS )NÚ2000r)   ú
US/Centralr=   )r   r   rõ   r#   r#   r$   rø   ¡  s    z(TestSetitemMismatchedTZCastsToObject.objc                 C   s   t ddd�S )Nr3  r<   rJ   )r   rõ   r#   r#   r$   rî   ¥  s    z(TestSetitemMismatchedTZCastsToObject.valc                 C   s   dS rž   r#   rõ   r#   r#   r$   r   ©  s    z(TestSetitemMismatchedTZCastsToObject.keyc                 C   s$   t tddd�tddd�gtd�}|S )Nz2000-01-01 00:00:00-05:00r<   rJ   z2000-01-02 00:00:00-06:00r4  rX   )r   r   rc   )r!   r3   r#   r#   r$   r3   ­  s    

þûz-TestSetitemMismatchedTZCastsToObject.expectedT)Zautousec                 c   sb   |j jdkr*| d¡}t|tƒs&d V  d S tjtdd�� d V  W d   ƒ n1 sT0    Y  d S )Nr  r   zmismatched timezonerq   )Úfunctionrj   Zgetfixturevaluer\   rÿ   r/   Úassert_produces_warningÚFutureWarning)r!   r  r   r#   r#   r$   Úassert_warns¸  s    

z1TestSetitemMismatchedTZCastsToObject.assert_warnsN)
rj   rk   rl   rm   r  rø   rî   r   r3   r8  r#   r#   r#   r$   r2  Ÿ  s   





r2  zobj,expected)ç      ð?ç       @rÚ   r:  rÚ   iÐ  r'   )rs   r®   Úbaz)Nr®   r;  c                   @   s6   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZdS )ÚTestSeriesNoneCoercionc                 C   s   dS rž   r#   rõ   r#   r#   r$   r   Õ  s    zTestSeriesNoneCoercion.keyc                 C   s   d S r[   r#   rõ   r#   r#   r$   rî   Ù  s    zTestSeriesNoneCoercion.valc                 C   s   |j jdkS )NÚi)rP   rü   )r!   rø   r#   r#   r$   rö   Ý  s    z!TestSeriesNoneCoercion.is_inplaceN)rj   rk   rl   rm   r  r   rî   rö   r#   r#   r#   r$   r<  Å  s   

r<  c                   @   sL   e Zd Zdd„ Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejd	d
„ ƒZ	dS )Ú-TestSetitemFloatIntervalWithIntIntervalValuesc                 C   s:   t  tdƒ¡}t|ƒ}tddƒ}||d< |jdks6J ‚d S )Nr   ç      à?ç      ø?r   zInterval[float64, right])r
   Úfrom_breaksr„   r   r	   rP   )r!   r1   rø   rî   r#   r#   r$   Útest_setitem_exampleæ  s
    
zBTestSetitemFloatIntervalWithIntIntervalValues.test_setitem_examplec                 C   s   t  tdƒ¡}t|ƒS )Nr   )r
   rA  r„   r   )r!   r1   r#   r#   r$   rø   ï  s    z1TestSetitemFloatIntervalWithIntIntervalValues.objc                 C   s
   t ddƒS )Nr?  r@  )r	   rõ   r#   r#   r$   rî   ô  s    z1TestSetitemFloatIntervalWithIntIntervalValues.valc                 C   s   dS rž   r#   rõ   r#   r#   r$   r   ø  s    z1TestSetitemFloatIntervalWithIntIntervalValues.keyc                 C   s*   |gt |dd … ƒ }t|dd�}t|ƒS )Nr'   zInterval[float64]rX   )r…   r
   r   )r!   rø   rî   Údatar1   r#   r#   r$   r3   ü  s    z6TestSetitemFloatIntervalWithIntIntervalValues.expectedN)
rj   rk   rl   rB  rm   r  rø   rî   r   r3   r#   r#   r#   r$   r>  ã  s   	


r>  c                   @   sR   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejd	d
„ ƒZ	dS )Ú!TestSetitemRangeIntoIntegerSeriesc                 C   s   t  |¡}ttdƒ|d�}|S ©Nr   rX   )r   rP   r   r„   )r!   Úany_int_numpy_dtyperP   r:   r#   r#   r$   rø     s    
z%TestSetitemRangeIntoIntegerSeries.objc                 C   s
   t ddƒS )Nr)   r   )r„   rõ   r#   r#   r$   rî     s    z%TestSetitemRangeIntoIntegerSeries.valc                 C   s
   t ddƒS ©Nr   r)   r'  rõ   r#   r#   r$   r     s    z%TestSetitemRangeIntoIntegerSeries.keyc                 C   s   t  |¡}tg d¢|d�}|S )N)r)   r   r)   r   r   rX   )r   rP   r   )r!   rF  rP   rS   r#   r#   r$   r3     s    
z*TestSetitemRangeIntoIntegerSeries.expectedc                 C   s   dS r/  r#   rõ   r#   r#   r$   Úinplace  s    z)TestSetitemRangeIntoIntegerSeries.inplaceN)
rj   rk   rl   rm   r  rø   rî   r   r3   rH  r#   r#   r#   r$   rD    s   



rD  rî   ç      @g      @éA   c                   @   sD   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZd	S )
Ú(TestSetitemFloatNDarrayIntoIntegerSeriesc                 C   s   t tdƒtjd�S rE  )r   r„   r   r—   rõ   r#   r#   r$   rø   )  s    z,TestSetitemFloatNDarrayIntoIntegerSeries.objc                 C   s
   t ddƒS rG  r'  rõ   r#   r#   r$   r   -  s    z,TestSetitemFloatNDarrayIntoIntegerSeries.keyc                 C   s   |d dkS rG  r#   ©r!   rî   r#   r#   r$   rH  1  s    z0TestSetitemFloatNDarrayIntoIntegerSeries.inplacec                 C   s8   |rt j}nt j}t jtdƒ|d�}||d d…< t|ƒS )Nr   rX   r)   )r   r—   r  rd   r„   r   )r!   rî   rH  rP   Z
res_valuesr#   r#   r$   r3   6  s    z1TestSetitemFloatNDarrayIntoIntegerSeries.expectedN)	rj   rk   rl   rm   r  rø   r   rH  r3   r#   r#   r#   r$   rK     s   	


rK  é   c                       s`   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZ‡ fd	d
„Z	‡ fdd„Z
‡  ZS )Ú'TestSetitemIntoIntegerSeriesNeedsUpcastc                 C   s   t g d¢tjd�S )Nr5   rX   )r   r   Zint8rõ   r#   r#   r$   rø   C  s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.objc                 C   s   dS rÎ   r#   rõ   r#   r#   r$   r   G  s    z+TestSetitemIntoIntegerSeriesNeedsUpcast.keyc                 C   s   dS r)  r#   rõ   r#   r#   r$   rH  K  s    z/TestSetitemIntoIntegerSeriesNeedsUpcast.inplacec                 C   s   t g d¢tjd�S )N)r'   rM  r   rX   )r   r   Úint16rõ   r#   r#   r$   r3   O  s    z0TestSetitemIntoIntegerSeriesNeedsUpcast.expectedc           	         s:   t |tjƒs tjj}|j |¡ tƒ  	||||||¡ d S r[   )
r\   r   rO  rm   rn   ÚxfailÚnodeÚ
add_markerÚsuperr  ©	r!   rø   r   r3   rî   rQ   rö   r  rn   ©Ú	__class__r#   r$   r  S  s    z4TestSetitemIntoIntegerSeriesNeedsUpcast.test_int_keyc                    s8   t |tjƒs tjj}|j |¡ tƒ  	|||||¡ d S r[   )
r\   r   rO  rm   rn   rP  rQ  rR  rS  r	  ©r!   rø   r   r3   rî   rQ   r  rn   rU  r#   r$   r	  Y  s    z5TestSetitemIntoIntegerSeriesNeedsUpcast.test_mask_key)rj   rk   rl   rm   r  rø   r   rH  r3   r  r	  Ú__classcell__r#   r#   rU  r$   rN  A  s   



rN  )g      BçÍÌ    Bì            c                       sl   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZ‡ fd	d
„Z	‡ fdd„Z
‡ fdd„Z‡  ZS )ÚTestSmallIntegerSetitemUpcastc                 C   s   t g d¢dd�S )Nr5   Úi4rX   r&  rõ   r#   r#   r$   rø   c  s    z!TestSmallIntegerSetitemUpcast.objc                 C   s   dS rž   r#   rõ   r#   r#   r$   r   g  s    z!TestSmallIntegerSetitemUpcast.keyc                 C   s   dS r)  r#   rõ   r#   r#   r$   rH  k  s    z%TestSmallIntegerSetitemUpcast.inplacec                 C   sJ   |dkrt |ddgdd�S |dkr4t |ddgdd�S t |ddgdd�S d S )NrZ  r)   r   r-  rX   rY  Zf8r&  rL  r#   r#   r$   r3   o  s
    z&TestSmallIntegerSetitemUpcast.expectedc                    sB   t |tƒr*|d dkr*tjj}|j |¡ tƒ  |||||¡ d S ©Nr'   r   )	r\   r‘   rm   rn   rP  rQ  rR  rS  r  )r!   rø   r   r3   rî   rö   r  rn   rU  r#   r$   r  x  s    z/TestSmallIntegerSetitemUpcast.test_series_wherec           	         s:   |d dkr t jj}|j |¡ tƒ  ||||||¡ d S r]  )rm   rn   rP  rQ  rR  rS  r  rT  rU  r#   r$   r  ~  s    z*TestSmallIntegerSetitemUpcast.test_int_keyc                    s8   |d dkr t jj}|j |¡ tƒ  |||||¡ d S r]  )rm   rn   rP  rQ  rR  rS  r	  rW  rU  r#   r$   r	  „  s    z+TestSmallIntegerSetitemUpcast.test_mask_key)rj   rk   rl   rm   r  rø   r   rH  r3   r  r  r	  rX  r#   r#   rU  r$   r[  `  s   



r[  c                  C   sL  t g d¢g d¢d�} t g d¢g d¢d�}|  ¡ }d|jd< t ||¡ |  ¡ }d|jd< t ||¡ |  ¡ }d|d< t ||¡ |  ¡ }d|jd< t ||¡ |  ¡ }d|jd< t ||¡ |  d¡}| d¡}| ¡ }d|jd	< t 	||¡ | ¡ }d|jd	< t 	||¡ | ¡ }d|jd
< t 	||¡ | ¡ }d|jd
< t 	||¡ d S )N©r   r'   r)   rº   r*   )r   çš™™™™™@r)   r_  r(   r'   rË   )r(   rË   )r'   r   )
r   r-   r}   r/   r0   r.   rþ   r@   Zto_frameÚassert_frame_equal)rR   r3   r:   Zorig_dfZexpected_dfÚdfr#   r#   r$   Ú
test_20643‹  s>    









rb  c                  C   sl   t g d¢g d¢d�} t tjddgg d¢d�}|  ¡ }d |jd< t ||¡ |  ¡ }d |jd< t ||¡ d S )Nr^  rº   r*   r'   r)   r   )r   r   r   r-   rþ   r/   r0   r@   )rR   r3   r:   r#   r#   r$   Útest_20643_comment¹  s    

rc  c                  C   s  t g d¢ƒ} | | dk  d7  < t g d¢ƒ}t | |¡ t g d¢ƒ} | d  d7  < t | |¡ t g d¢ƒ} | jd  d7  < t | |¡ t g d¢ƒ} | jd  d7  < t | |¡ t g d¢ƒ} | jd  d7  < t | |¡ t g d¢ƒ} | jd  d7  < t | |¡ d S )Nr5   r)   r?  )r'   rI  r   r'   )r   r/   r0   r.   r@   rþ   r}   ©r:   r3   r#   r#   r$   Ú
test_15413È  s&    re  c                  C   s¨   t g d¢g d¢dœƒ} t g d¢g d¢dœƒ}|  ¡ }d|jd< t ||¡ |  ¡ }d|jd< t ||¡ |  ¡ }d|jd< t ||¡ |  ¡ }d|jd< t ||¡ d S )Nr5   )r   r   r   )rË   ÚB)r   ç333333ó?r   rg  )r'   rf  )r'   r'   )r   r-   r}   r/   r`  r.   rþ   r@   )rR   r3   ra  r#   r#   r$   Ú
test_37477å  s    



rh  c                  C   s\   t  d¡ d¡} t| ƒ}t  t  t j¡j¡}||d< t|ddddgt jd�}t ||¡ d S )	Nr   r\  r   r'   r)   r   r   rX   )	r   r–   r�   r   r—   ZiinfoÚmaxr/   r0   ©rA   r:   rî   r3   r#   r#   r$   Útest_32878_int_itemsizeû  s    rk  c                 C   s´   t g d¢d�}d|d< d| |ƒd< t dg d¢ig d¢tjd�}t ||¡ d	| |ƒd< t dg d
¢ig d¢tjd�}t ||¡ d| |ƒd< t dg d¢ig d¢td�}t ||¡ d S )N)rË   rf  ÚCr*   r   rÀ   r)   )rl  rÀ   )r   r   r)   rZ   ç     @F@)r   r   rm  Úhello)r   r   rn  )r   r   r—   r/   r`  r  rc   )Ú
indexer_alra  r3   r#   r#   r$   Ú
test_26395  s    rp  c                 C   sF   t g d¢g d¢d�}d| |ƒd< t g d¢g d¢td�}t ||¡ d S )Nr5   rº   r*   Útestr(   )r'   rq  r   rZ   ©r   rc   r/   r0   )ro  r:   r3   r#   r#   r$   Ú
test_37692  s    rs  c                 C   sÊ   t jt jfD ]\}tdtdƒ|d�}d| |ƒd< |jtks<J ‚tdtdƒtd�}|dƒ|d< |jtksJ ‚qtdtdƒt jd�}t  d¡| |ƒd< |jt jks J ‚tdtdƒt jd�}t  d¡| |ƒd< d S )Nr   r   rZ   Tr'   r9  )r   r  r—   r   r„   rP   rc   r  )rQ   rP   r:   r#   r#   r$   Ú'test_setitem_bool_int_float_consistency  s    rt  c                 C   sx   t dƒ}t dƒ}t dƒ}t|dd�}t|ddgd�}| ¡ }|| |ƒ|df< d	|d< ||j|df< |jd
 |kstJ ‚d S )Nz
2014-04-01z2014-04-23 12:42:38.883082z2014-04-24 01:33:30.040039r'   r   ZtimenowÚLive©r+   ÚcolumnsT)r   r   )r   r   r   r-   r}   r@   )ro  ÚstartÚt1Út2rÅ   rR   ra  r#   r#   r$   Ú	test_69427  s    r{  z Doesn't catch when numpy raises.)Úreasonc                  C   sB   t g d¢g d¢d�} d| d< t g d¢g d¢td�}t | |¡ d S )Nr5   rº   r*   rW   r   )rW   r)   r   rZ   rr  rd  r#   r#   r$   Ú
test_45070I  s    r}  zunwanted upcastc                  C   s‚   t ddgddggddgd�} tdd	d
œƒ| jd< | jtjk ¡ sDJ ‚tddiƒ| jd< ttjtjgtddgd�}t	 
| j|¡ d S )Nr'   r)   r   r   r&   r(   )rw  r   r   ©r&   r(   r   rñ   )r   r   r.   Údtypesr   r—   re   r  rc   r/   r0   )ra  Ú
exp_dtypesr#   r#   r$   Ú
test_15231R  s    r�  zFails to upcastc                  C   sn   t  d¡ d¡} t| ƒ}t  t j¡j}| d¡}||d< |d |ksHJ ‚t|ddddgdd	�}t ||¡ d S )
Nr   Zc8Zc16r   r'   r)   r   r   rX   )	r   r–   r�   r   Úfinfor  ri  r/   r0   rj  r#   r#   r$   Útest_32878_complex_itemsize_  s    
rƒ  z Unnecessarily upcasts to float64c                  C   st   t tjddgtjd�tjddgtjd�ddgdœƒ} |  ¡ }| d	 j dd¡}|| jd d …d	d…f< t 	| |¡ d S )
Nr'   r   rX   r)   r   r&   r(   r^  r   )
r   r   rd   Zfloat32r-   rf   Zreshaper@   r/   r`  )ra  rR   rf   r#   r#   r$   Ú.test_iloc_setitem_unnecesssary_float_upcastingn  s    ýÿr„  zunwanted casting to dt64c                  C   s    t ddd�} d| dœg}t|ƒ}| ¡ }tjtg|jd< tdtjgt| tgdd�dœƒ}t 	||¡ d| dœg}| ¡ }tjtg|jdd d …f< t 	||¡ d S )	Nz2016-03-01 03:13:22.98986rC   rJ   r   )ÚoneÚtwor'   r1  rX   )
r   r   r-   r   r   r   r.   r   r/   r`  )r¤   rC  rR   ra  r3   r#   r#   r$   Ú
test_12499€  s    ÿr‡  z Too many columns cast to float64c                  C   sÐ   t  ddgg d¢g¡} tdtdƒ| d�}tg d¢gd tdƒg d¢d�}||d< tg d¢g d	¢g d
¢g d¢g d¢g d¢dœƒ}| |_tt tj¡gd t tj	¡g t tj¡gd  | d�}t
 |j|¡ d S )NrË   rf  rº   r�   r   rv  )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•   r   r„   rw  r   r   rP   r—   r  r/   r0   r  )r˜   ra  Zfillerr3   r€  r#   r#   r$   Ú
test_20476˜  s&     úÿ
0þrˆ  c            	   	   C   sÜ  t g d¢g d¢d�} | jjr J ‚t d ¡� d| d< W d   ƒ n1 sH0    Y  t g d¢| jd�}t | |¡ d}tjt|d��F tjt	d	d�� d
| d
< W d   ƒ n1 s°0    Y  W d   ƒ n1 sÎ0    Y  t
 tdƒ¡d d d… }t tt|ƒƒ|d�}| ¡ }d|jd< tjt|d�� d|d< W d   ƒ n1 �sD0    Y  t ||¡ t | jddgg¡}t tt|ƒƒ|d�}| ¡ }d|jd< tjt|d�� d|d< W d   ƒ n1 �sÂ0    Y  t ||¡ d S )NrÉ   )gš™™™™™ñ?gÍÌÌÌÌÌ @rÚ   gffffff@r*   r   r   )r'   r)   r   r   z5Treating integers as positional in Series.__setitem__rq   zindex 5 is out of boundsr   r)   r”   r�   r   rË   rf  éc   )r   r+   Z_should_fallback_to_positionalr/   r6  r0   r7  rm   rt   ru   r
   rA  r„   râ   r-   r@   r   r•   )	r:   r3   rv   Úiir¬   Z	expected2r˜   Zser3Z	expected3r#   r#   r$   Ú3test_setitem_int_as_positional_fallback_deprecation±  s0    &D
(
(r‹  c                  C   sz   t g d¢g d¢dœƒ} |  d¡}d|g d¢< tg d¢dd�}t ||¡ d	| jg d¢d
f< t d
g d¢iƒ}t | |¡ d S )Nr5   )r   r   r   r~  r(   r”   )TFF)r”   r   r   )rC  rÜ   r   r&   )r   r)   r   )r   Úpopr   r/   r0   r.   r`  )ra  r2   r3   r#   r#   r$   Útest_setitem_with_bool_indexer×  s    
r�  Úsizer¥   )TFFFFÚitemr(  c                 C   s   t  | g¡S r[   )r   rd   rÌ   r#   r#   r$   r¡   ï  rb   r¡   c                 C   s   | gS r[   r#   rÌ   r#   r#   r$   r¡   ï  rb   c                 C   s   | fS r[   r#   rÌ   r#   r#   r$   r¡   ï  rb   c           	      C   s¤   t  || ¡}t j| td�}t|ƒ}| ¡ dkrnd}tjt|d�� ||ƒ||< W d   ƒ q 1 sb0    Y  n2||ƒ||< tt j| td�ƒ}|||< t	 
||¡ d S )NrX   r'   zKcannot set using a list-like indexer with a different length than the valuerq   )r   Úresizer–   r‘   r   r  rm   rt   rã   r/   r0   )	rŽ  r¥   r�  r(  Z	selectionrC  r:   rv   r3   r#   r#   r$   Ú7test_setitem_bool_indexer_dont_broadcast_length1_valueså  s    ÿ,r‘  )Xr   r   Únumpyr   rm   Zpandas.core.dtypes.commonr   Zpandasr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr/   Zpandas.core.indexingr   Zpandas.tseries.offsetsr   r   rp   r~   rš   r¿   rÈ   rÑ   rå   ræ   rê   rë   rì   rô   rn   ro   r  r   rÿ   rc   r–   r  r  r#  r*  r0  r2  r<  r>  rD  rd   r  rK  rO  rN  r[  rb  rc  re  rh  rk  rp  rs  rt  r{  rP  r}  r�  rƒ  r„  r‡  rˆ  r‹  r�  r„   r‚  r‘   ri  Úminr‘  r#   r#   r#   r$   Ú<module>   sþ   @ +y#H 
"
û

ü$û
ûú
ûÜþ/
((1&$þöþ ýþ*.






&ÿÿÿ