o
    Û­j©Ò  ã                   @   s  d Z ddlmZ ddl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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" e #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S )z* test positional based indexing with iloc é    )ÚdatetimeN)ÚIndexingError)ÚNAÚCategoricalÚCategoricalDtypeÚ	DataFrameÚIndexÚIntervalÚNaTÚSeriesÚ	TimestampÚarrayÚconcatÚ
date_rangeÚinterval_rangeÚisnaÚto_datetime)Ú	is_scalar)Ú"check_indexing_smoketest_or_raiseszuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indicesc                   @   sP   e Zd Zej dddg d¢g¡ej dddg¡ej dg d	¢¡d
d„ ƒƒƒZdS )ÚTestiLocÚkeyé   éÿÿÿÿ©r   é   r   ÚkindÚseriesÚframeÚcol)ÚlabelsÚmixedÚtsÚfloatsÚemptyc                 C   s(   |  |› d|› �¡}t|d|td� d S )NÚ_Úiloc)Úfails)Úgetfixturevaluer   Ú
IndexError)Úselfr   r   r   ÚrequestÚobj© r,   ú\/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/indexing/test_iloc.pyÚ"test_iloc_getitem_int_and_list_int)   s   
üz+TestiLoc.test_iloc_getitem_int_and_list_intN)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer.   r,   r,   r,   r-   r   (   s    þr   c                   @   s   e Zd ZdZej dedƒedƒedƒg d¢e	edƒƒe
 g d¢¡g¡ej dejejg¡dd„ ƒƒZej d	¡ej d
ddg¡ej deeg¡dd„ ƒƒƒZdd„ Zdd„ Zej de
 d¡edƒfg¡ej dedƒddggddgedƒfedddƒgedƒfg¡dd„ ƒƒZd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zej d,ddgg d-¢g¡d.d/„ ƒZ d0d1„ Z!d2d3„ Z"ej d	¡ej d
ddg¡d4d5„ ƒƒZ#ej d	¡ej d
ddg¡d6d7„ ƒƒZ$ej d	¡ej d
ddg¡d8d9„ ƒƒZ%d:d;„ Z&d<d=„ Z'd>d?„ Z(d@dA„ Z)dBdC„ Z*dDdE„ Z+ej d	¡ej d
ddg¡dFdG„ ƒƒZ,ej d	¡ej d
ddg¡dHdI„ ƒƒZ-ej d	¡ej d
ddg¡ej ddJgedddƒe
 dJg¡g¡ej dKdLge
 dLg¡g¡dMdN„ ƒƒƒƒZ.ej dO¡dPdQ„ ƒZ/dRdS„ Z0dTdU„ Z1dVdW„ Z2dXdY„ Z3dZd[„ Z4d\d]„ Z5d^d_„ Z6d`da„ Z7dbdc„ Z8ej dKde9e
j:g¡ddde„ ƒZ;ej dfe<dJdƒdgdhg¡didj„ ƒZ=dkdl„ Z>ej dejejg¡dmdn„ ƒZ?dodp„ Z@dqdr„ ZAej dsee
jg¡dtdu„ ƒZBej d	¡ej d
ddg¡ej ddgeddvƒg¡dwdx„ ƒƒƒZCej d	¡ej d
ddg¡dydz„ ƒƒZDd{d|„ ZEd}d~„ ZFdd€„ ZGd�d‚„ ZHdƒd„„ ZIej d…ee
jg¡ej d†ee
jg¡d‡dˆ„ ƒƒZJd‰dŠ„ ZKd‹dŒ„ ZLeMjNd�dŽ„ ƒZOd�d�„ ZPdS )‘ÚTestiLocBaseIndependentzTests Independent Of Base Classr   Né   r   Úindexerc           	      C   s  t dtdƒitd�}tg d¢ƒ}|s|jjd  |¡sJ ‚| ¡ }|j}|||ƒ|df< t d|iƒ 	t¡}|sBt
 |d j|¡sBJ ‚t ||¡ d|jd< |d dksUJ ‚t t
jg d¢td�tdƒdœƒ}| ¡ }|||ƒ|df< t t| 	t¡td�tdƒdœƒ}t ||¡ d S )	Nr   r6   ©Údtype)ÚalphaÚbetaÚgammar<   ©r   r   r   ©r   r   )r   ÚrangeÚobjectr   Ú_mgrÚblocksÚ_can_hold_elementÚcopyÚvaluesÚastypeÚnpÚshares_memoryÚtmÚassert_frame_equalr%   r   r   )	r)   r7   r   Úusing_array_managerr   ÚcatÚdfÚ	orig_valsÚexpectedr,   r,   r-   Ú%test_iloc_setitem_fullcol_categorical?   s$   
  z=TestiLocBaseIndependent.test_iloc_setitem_fullcol_categoricalú.ignore:Setting a value on a view:FutureWarningÚhas_refTFÚboxc           
      C   s  t g d¢ƒ}|| d¡ƒ}|r|d d … }|tu r|j}n|jjd }|tu r5||dd … ƒ|jd d…< n||dd … ƒ|jd d…df< |tj g d¢dd�ƒ}	t 	||	¡ |sƒ|tu rx|ro|j|usdJ ‚t 
|j|¡smJ ‚d S |j|u svJ ‚d S t 
|d j|¡s…J ‚d S d S )N©r   r   r6   é   Úi8r   r   )r6   rU   r6   rU   r8   )r   Úto_numpyr   rE   rA   Úarraysr%   rG   rI   Úassert_equalrH   )
r)   Úframe_or_seriesrS   rR   Úusing_copy_on_writeÚarrr+   ÚviewrE   rO   r,   r,   r-   Útest_iloc_setitem_ea_inplacek   s*   øz4TestiLocBaseIndependent.test_iloc_setitem_ea_inplacec                 C   sH   t g d¢ƒ}ttdƒ|d�}|j d¡sJ ‚| ¡ }|j d¡s"J ‚d S )N)r   r   r   r6   ©Úindex)r   ©r   r   )r   r   r?   r%   Ú_is_scalar_accessÚto_frame)r)   r`   ÚserrM   r,   r,   r-   Útest_is_scalar_access�   s
   z-TestiLocBaseIndependent.test_is_scalar_accessc              	   C   sî  t tj d¡ d¡tdƒd�}d}tjt|d�� |jd d …g d¢f  W d   ƒ n1 s.w   Y  tjt|d�� |jdd	g  W d   ƒ n1 sLw   Y  tjt|d�� |jdd
g  W d   ƒ n1 sjw   Y  tjt|d�� |jdg  W d   ƒ n1 s‡w   Y  |d }tjt|d�� |jdg  W d   ƒ n1 s¨w   Y  tjt|d�� |jdg  W d   ƒ n1 sÅw   Y  d}tjt|d�� |jd	  W d   ƒ n1 sãw   Y  tjt|d�� |jd
  W d   ƒ n1 sÿw   Y  tjt|d�� |jd	  W d   ƒ n	1 �sw   Y  tjt|d�� |jd
  W d   ƒ n	1 �s9w   Y  |jd d …dd…f }|jd d …dd …f }t	 
||¡ |jd d …dd…f }|jd d …d d…f }t	 
||¡ |jd d …ddd…f }|jd d …d dd…f }t	 
||¡ |jd d …ddd…f }|jd d …dd d…f }t	 
||¡ |jd d …dd…f }|jd d …d d…f }t	 
||¡ |jd d …dd…f }|jd d …d d…f }t	 
||¡ |jd d …ddd…f }|jd d …d d…f }t	 
||¡ |jd d …dd…f }|jd d …d d…f }t	 
||¡ |jdd	… }|jdd … }t	 ||¡ |jd	d … }|jd d… }t	 ||¡ |jd	d d… }|jd d d… }t	 ||¡ t tj d¡ d¡tdƒd�}t	 
|jd d …dd…f t |jtg |jjd�d�¡ t	 
|jd d …dd…f |jd d …dgf ¡ t	 
|jdd… |jdg ¡ d}tjt|d�� |jg d¢  W d   ƒ n	1 �sÌw   Y  d}tjt|d�� |jd d …df  W d   ƒ d S 1 �sðw   Y  d S )Nr   )é   é   ÚABCDE©Úcolumnsz%positional indexers are out-of-bounds©Úmatch©r   r   r   r6   rU   rg   r   é   iâÿÿÿéd   ÚAiœÿÿÿz*single positional indexer is out-of-boundsrU   é
   éüÿÿÿiöÿÿÿr   r   iõÿÿÿé   é   ©rg   r   ÚABr6   r8   ©r`   rj   é   ©rU   rg   rx   )r   rG   ÚrandomÚdefault_rngÚlistr2   Úraisesr(   r%   rI   rJ   Úassert_series_equalÚstandard_normalr`   r   rj   r9   )r)   rM   ÚmsgÚsÚresultrO   Údflr,   r,   r-   Útest_iloc_exceeds_boundsš   s¨   ÿÿÿÿÿÿÿÿÿÿÿþ.ÿ$ÿz0TestiLocBaseIndependent.test_iloc_exceeds_boundszindex,columnsrf   rh   zindex_vals,column_valsrp   ÚDÚ1Ú2iã  r   c                 C   sn   t tj d¡ t|ƒt|ƒf¡||d�}d}tjt|d�� |j	||f  W d   ƒ d S 1 s0w   Y  d S )Nr   rw   z$.iloc requires numeric indexers, gotrk   )
r   rG   rz   r{   r   Úlenr2   r}   r(   r%   )r)   r`   rj   Ú
index_valsÚcolumn_valsrM   r€   r,   r,   r-   Útest_iloc_non_integer_raisesÿ   s   ý"ÿz4TestiLocBaseIndependent.test_iloc_non_integer_raisesc                 C   s`   t t d¡ dd¡ƒ}t ||¡}tjtdd�� |j	d  W d   ƒ d S 1 s)w   Y  d S )Nro   rq   zCannot index by location indexrk   Úa)
r   rG   ÚarangeÚreshaperI   Úget_objr2   r}   Ú	TypeErrorr%   )r)   rZ   r+   r,   r,   r-   Ú test_iloc_getitem_invalid_scalar  s
   "ÿz8TestiLocBaseIndependent.test_iloc_getitem_invalid_scalarc                 C   sr   t  g d¢¡}| ¡ }tg d¢g d¢g d¢dœg d¢d�}|j|  t ||¡ |jd d …|f  t ||¡ d S )N)r   r   r   )ro   ée   éf   )ég   éh   éi   )éj   ék   él   ©rp   ÚBÚC©r   r   r6   r_   )rG   r   rD   r   r%   rI   Úassert_numpy_array_equal)r)   Úarray_with_neg_numbersÚ
array_copyrM   r,   r,   r-   Ú-test_iloc_array_not_mutating_negative_indices  s   þ
zETestiLocBaseIndependent.test_iloc_array_not_mutating_negative_indicesc                 C   sÒ   t g d¢g d¢dœƒ}|d }|jd }|jd }t ||¡ |jdg }|jdg }t ||¡ |jd }|jd }||ksAJ ‚|jdg }|jdg }t ||¡ tdgdgd�}|jd	g }t ||¡ d S )
N)r   r6   rg   )é   rs   é   ©rp   r›   rp   r   éýÿÿÿrŒ   r_   r   )r   r%   rI   r~   rJ   r   )r)   rM   r�   rO   r‚   r,   r,   r-   Ú/test_iloc_getitem_neg_int_can_reach_first_index)  s"   



zGTestiLocBaseIndependent.test_iloc_getitem_neg_int_can_reach_first_indexc                 C   s”   t d ddœdddœgƒ}t dddœdddœgƒ}t||gdd�}|jd }t|ƒs+J ‚|jdd d …f }ttjdddgg d	¢dd
�}t ||¡ d S )Nr   r¤   r   r6   rU   ©Úaxisr=   r   ©rp   r›   rp   r›   )r`   Úname)	r   r   r%   r   r   rG   ÚnanrI   r~   )r)   Údf1Údf2rM   r‚   rO   r,   r,   r-   Útest_iloc_getitem_dupsD  s   
z.TestiLocBaseIndependent.test_iloc_getitem_dupsc                 C   sÄ   t ddddœddddœdd	d
dœgƒ}t ddddœgƒ}t |jdg |¡ t ddddœddddœgƒ}t |jddg |¡ t dddœd	d
dœgddgd�}|jddgddgf }t ||¡ d S )Nr   r   r6   rš   ro   éÈ   é,  éè  éÐ  é¸  r   )r›   rœ   r_   )r   rI   rJ   r%   ©r)   rM   rO   r‚   r,   r,   r-   Útest_iloc_getitem_arrayR  s   


ýÿ z/TestiLocBaseIndependent.test_iloc_getitem_arrayc                 C   sž   t ddddœddddœdd	d
dœgƒ}t ddddœddddœgƒ}|jg d¢ }t ||¡ t ddddœdd	d
dœgddgd�}|jdd„  }t ||¡ d S )Nr   r   r6   rš   ro   r¯   r°   r±   r²   r³   )TTFr   r_   c                 S   s   | j d dkS )Nr   r   r_   ©Úxr,   r,   r-   Ú<lambda>u  s    z@TestiLocBaseIndependent.test_iloc_getitem_bool.<locals>.<lambda>©r   r%   rI   rJ   r´   r,   r,   r-   Útest_iloc_getitem_boole  s   


ýÿÿz.TestiLocBaseIndependent.test_iloc_getitem_boolr`   )TFTFc                 C   sb   t g d¢ƒ}dt|ƒ› dt|ƒ› �}tjt|d�� |j|  W d   ƒ d S 1 s*w   Y  d S )Nr�   z Boolean index has wrong length: z instead of rk   )r   rˆ   r2   r}   r(   r%   )r)   r`   r�   r€   r,   r,   r-   Útest_iloc_getitem_bool_diff_lenx  s
   "ÿz7TestiLocBaseIndependent.test_iloc_getitem_bool_diff_lenc                 C   sÚ   t ddddœddddœdd	d
dœgƒ}t ddddœddddœgƒ}|jd d… }t ||¡ t dddœgdgd�}|jdd…dd…f }t ||¡ t dddœdddœdd
dœgƒ}|jd d …dd„ f }t ||¡ d S )Nr   r   r6   rš   ro   r¯   r°   r±   r²   r³   r¤   r_   r   )rp   rœ   c                 S   ó   ddgS )Nr   r   r,   )rM   r,   r,   r-   r¸   ”  ó    zATestiLocBaseIndependent.test_iloc_getitem_slice.<locals>.<lambda>r¹   r´   r,   r,   r-   Útest_iloc_getitem_slice€  s"   


ýÿÿz/TestiLocBaseIndependent.test_iloc_getitem_slicec                 C   s¬  t tj d¡ d¡g d¢d�}t tj d¡jdddd� dd¡d	d
gd�}t||gdd�}t 	|j
d d …d d…f |¡ t 	|j
d d …dd …f |¡ t||gdd�}t 	|j
d d …d d…f |¡ t 	|j
d d …dd …f |¡ t||j
d d …dgf gdd�}t 	|j
d d …dd…f |¡ t||gdd�}t 	|j
dd…d d…f |¡ t 	|j
dd…dd …f |¡ t 	|j
dd …d d…f |¡ t 	|j
dd …dd …f |¡ d S )Nr   ©rq   rU   )rp   rp   r›   r›   ri   r   rq   rf   ©Úsizerp   rœ   r   r§   rU   r6   )r   rG   rz   r{   r   ÚintegersrŽ   r   rI   rJ   r%   )r)   r¬   r­   rM   Úexpr,   r,   r-   Útest_iloc_getitem_slice_dups—  s*   þþ "z4TestiLocBaseIndependent.test_iloc_getitem_slice_dupsc                 C   sø   t tj d¡ d¡t ddd¡t ddd¡d�}|r |d d … }d|jd	< |jd	 }|dks0J ‚d|jd d …dd…f< |jd d …dd…f }|jd d …dd…f }t ||¡ t	dg d
¢d�}|jdd…  d7  < t	g d¢g d
¢d�}t 
||¡ d S )Nr   ©rU   rU   r   é   é   r6   rw   r   ©r   r   ry   r_   ©r   r   r   )r   rG   rz   r{   r   r�   r%   rI   rJ   r   r~   )r)   Úwarn_copy_on_writerR   rM   r]   r‚   rO   r�   r,   r,   r-   Útest_iloc_setitem´  s$   ý

z)TestiLocBaseIndependent.test_iloc_setitemc                 C   s  t g d¢g d¢g d¢gƒ}|d  t¡|d< |r|d d … }t g d¢g d¢g d¢gƒ}|d  t¡|d< d|jdd�d	< t ||¡ t g d¢g d¢g d¢gƒ}|d  t¡|d< |r`|d d … }t g d
¢g d¢g d¢gƒ}|d  t¡|d< d|jdd�d	< t ||¡ d S )N)rx   Úcrq   )r¢   Údrs   )rÆ   ÚerÇ   r   )rg   rg   rg   rg   r   r§   r   )rx   rÌ   rg   )r¢   rÍ   rg   )rÆ   rÎ   rg   )r   rF   r@   r%   rI   rJ   ©r)   rR   rM   r]   rO   r,   r,   r-   Útest_iloc_setitem_axis_argumentÎ  s    z7TestiLocBaseIndependent.test_iloc_setitem_axis_argumentc                 C   sœ   t t d¡ d¡g d¢g d¢d�}|r|d d … }|jddgddgf  |jddgddgf  d7  < t t g d	¢¡ d¡g d¢g d¢d�}t ||¡ d S )
Né	   ©r6   r6   rš   rw   r   r   r   ro   )	r   r’   r“   r6   r•   r–   rx   r¢   rÆ   )r   rG   r�   rŽ   r%   r   rI   rJ   rÏ   r,   r,   r-   Útest_iloc_setitem_listä  s   ÿýz.TestiLocBaseIndependent.test_iloc_setitem_listc                 C   sp   t g d¢ƒ}t g d¢ƒ}| ¡ }ddg|jt ddgƒ< t ||¡ | ¡ }ddg|jtddgƒ< t ||¡ d S )N)r   r   r   r6   )r   r   éþÿÿÿr6   r   rÔ   r   r   )r   rD   r%   rI   r~   r   )r)   Ús_origrO   r�   r,   r,   r-   Útest_iloc_setitem_pandas_object÷  s   z7TestiLocBaseIndependent.test_iloc_setitem_pandas_objectc                 C   sf  t d ddœdddœgƒ}t dddœdddœgƒ}t||gdd�}| d¡}t |jd d …df ¡}|| j}|j|df |j|df< t ||¡ t ddgddgdœƒ}d	d	g|_	|d
= t ||¡ |jddgddgf |jddgddgf< t ||¡ |jddgddgf j
dd�|jddgddgf< |jddgddgf j
dd�|jddgddgf< t ||¡ d S )Nr   r¤   r   r6   rU   r§   r   r>   r›   rp   T)Údrop)r   r   ÚfillnarG   Úisnanr%   r`   rI   rJ   rj   Úreset_index)r)   r¬   r­   rM   rO   ÚindsÚmaskr,   r,   r-   Útest_iloc_setitem_dups  s"   


(00z.TestiLocBaseIndependent.test_iloc_setitem_dupsc                 C   s  t ddgddggddgd�}|jd d …df  d¡|jd d …df< |s-t|jjƒdks-J ‚tjtdd	�� |jd d …df d
 |jd d …df< W d   ƒ n1 sQw   Y  |sbt|jjƒdksbJ ‚| 	¡ }|jddgddgf |jddgddgf< t 
||¡ d S )Nr   r   r   r6   r›   ri   Úf8úincompatible dtyperk   g      à?)r   r%   rF   rˆ   rA   rB   rI   Úassert_produces_warningÚFutureWarningrD   rJ   )r)   rK   rM   rO   r,   r,   r-   Ú9test_iloc_setitem_frame_duplicate_columns_multiple_blocks   s   &&ÿ(zQTestiLocBaseIndependent.test_iloc_setitem_frame_duplicate_columns_multiple_blocksc                 C   sØ  t tj d¡ d¡tdddƒtdddƒd�}|jd }|jd }t 	||¡ |jd }|jd	 }||ks6J ‚|jdd… }|jdd
… }t 
||¡ |jd d …dd…f }|jd d …dd…f }t 
||¡ |jg d¢ }|jg d¢ }t 
||¡ |jg d¢ddgf }|jg d¢ddgf }t 
||¡ |jg d¢ddgf }|jg d¢ddgf }t 
||¡ |jg d¢ddgf }|jg d¢ddgf }t 
||¡ ttddƒtd�}|j|j }|jg d¢ }t 
||¡ d S )Nr   r¿   r   rf   rÆ   rw   rU   )r   r   rÅ   é   r6   rg   )r   r   r6   )r   r   rx   r   )r   r   r6   r   )rt   r   rx   rx   )r   r   r   r6   )rt   rt   r   rx   )r`   r9   )r   rU   rx   rÆ   )r   rG   rz   r{   r   r?   r%   ÚlocrI   r~   rJ   r   r@   r`   )r)   rM   r‚   rÃ   rO   r�   r,   r,   r-   Útest_iloc_getitem_frame=  sB   

ý



z/TestiLocBaseIndependent.test_iloc_getitem_framec                 C   s  t tj d¡ d¡tdƒtdƒd�}|jd }|jd }||ks"J ‚|jd d …dd…f }|jd d …d	gf }t 	||¡ |jd
 }|jd }||ksMJ ‚d}t
jt|d�� |jd  W d   ƒ n1 sfw   Y  d}t
jt|d�� |jd  W d   ƒ d S 1 s…w   Y  d S )Nr   r¿   Ú
abcdefghijÚABCDrw   rÈ   )Úbr›   r6   rœ   )r   r   )Újr…   zCindex 5 is out of bounds for axis 0 with size 4|index out of boundsrk   )rq   rg   zžLocation based indexing can only have \[integer, integer slice \(START point is INCLUDED, END point is EXCLUDED\), listlike of integers, boolean array\] types)r   rG   rz   r{   r   r|   r%   rä   rI   rJ   r2   r}   r(   Ú
ValueError)r)   rM   r‚   rÃ   rO   r€   r,   r,   r-   Ú test_iloc_getitem_labelled_framen  s.   ý



ÿÿ"ÿz8TestiLocBaseIndependent.test_iloc_getitem_labelled_framec                 C   sˆ  t j d¡ d¡}tddd�}tdƒ}t|||d�}| ¡  |jdd	…d
d…f }t|dd	…d
d…f |dd	… |d
d… d�}t	 
||¡ tdƒ|_|jdd	…d
d…f }t|dd	…d
d…f |dd	… tdƒd�}t	 
||¡ t j d¡ d¡}ttd
ddƒƒ}ttd
ddƒƒ}t|||d�}|sš|jjd
 j |jdd	…dd…f }t|dd	…dd…f |dd	… |dd… d�}t	 
||¡ d S )Nr   )rx   rU   Ú20130101rx   )Úperiodsrç   rw   r6   rg   r   ÚaaaaÚaarÇ   rÆ   r   rU   )rG   rz   r{   r   r   r|   r   Údescriber%   rI   rJ   rj   r?   rA   rB   Úmgr_locs)r)   rK   r\   r`   rj   rM   r‚   rO   r,   r,   r-   Útest_iloc_getitem_doc_issue‘  s*   .
*.z3TestiLocBaseIndependent.test_iloc_getitem_doc_issuec                 C   sp  t tj d¡ d¡tdƒtdƒd�}|r|d d … }d|jd< |jd }|dks*J ‚d|jd d …dd	…f< |jd d …dd	…f }|jd d …dd	…f }t ||¡ t	tj d¡ d
¡t
dddƒd�}d|jd< |jd }|dksrJ ‚d|jd d…< |jd d… }|jd d… }t ||¡ t	dgd ƒ}g d¢|jdd d…< g d¢|jdd d…< |}t	g d¢ƒ}t ||¡ d S )Nr   r¿   ræ   rç   rw   r   rÈ   r   r6   rq   rf   r_   rU   r   rx   )r   r   rU   )r   r6   rg   rm   )r   rG   rz   r{   r   r|   r%   rI   rJ   r   r?   r~   )r)   rR   rM   r]   r‚   rO   r�   r,   r,   r-   Útest_iloc_setitem_seriesµ  s8   ý

"

z0TestiLocBaseIndependent.test_iloc_setitem_seriesc                 C   sÞ   t tjddd�tjdddd�dœƒ}|r|d d … }ddgddgg|jd	d
…< t g d¢g d¢dœƒ}t ||¡ t g d¢tjdddd�dœƒ}|rO|d d … }ddgddgg|jd	d
…< t g d¢g d¢dœƒ}t ||¡ d S )Nrg   Úint64r8   rq   r¤   rs   rÇ   r£   r   rU   )r   r   rq   rÇ   rU   )rg   rx   rs   r£   rÑ   ©rŒ   rè   rÌ   rÍ   rÎ   r·   Úy)rŒ   rè   r·   rö   rÎ   )r   rG   r�   r%   rI   rJ   rÏ   r,   r,   r-   Útest_iloc_setitem_list_of_listsÛ  s    ÿÿz7TestiLocBaseIndependent.test_iloc_setitem_list_of_listsr   ÚvalueÚZc                 C   sf   t ddgddggddgd� dti¡}|r|d d … }||jd|f< |jd	 }t|ƒr/|d
ks1J ‚d S )Nr   r   r6   rU   rp   r›   ri   r   r=   rù   )r   rF   r@   r%   r   )r)   rR   r7   rø   rM   r]   r‚   r,   r,   r-   Ú#test_iloc_setitem_with_scalar_indexò  s   &

z;TestiLocBaseIndependent.test_iloc_setitem_with_scalar_indexzignore::UserWarningc                 C   s  t ttdƒƒtdƒdgd�}|jd dk}d}tjt|d�� |j|  W d   ƒ n1 s.w   Y  tt|ƒƒ|_	d	}tjt
|d�� |j|  W d   ƒ n1 sSw   Y  |jtjd
gt|ƒ td� }t ||¡ t d¡}d| }dd„ |D ƒ}t ||dœ|ƒ}ddddddddd	dœ	}dD ]r}	|jdkj}|	r®t||	ƒd d d… }
t|t|
ƒƒ}dD ]T}z|r¿t||dd … ƒ}n|}tt|| d  ¡ ƒƒ}W n ttt
fyç } z
t|ƒ}W Y d }~nd }~ww |	|f}| |¡}||k�rtd|› d|› d|› d�ƒ‚q°q“d S )Nrg   rh   rŒ   rw   r   r   zBiLocation based boolean indexing cannot use an indexable as a maskrk   zDiLocation based boolean indexing on an integer type is not availableTr8   rU   c                 S   s   g | ]}t |ƒ‘qS r,   )Úbin)Ú.0Únumr,   r,   r-   Ú
<listcomp>  s    z:TestiLocBaseIndependent.test_iloc_mask.<locals>.<listcomp>)ÚlocsÚnumsÚ0b1100Ú0b11ztUnalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).)	)NÚ )Nú.loc)Nú.iloc)r`   r  )r`   r  )r`   r  )rÿ   r  )rÿ   r  )rÿ   r  )Nr`   rÿ   r   )r  r  r  r   r   ú[z] does not match [z], received [ú])r   r|   r?   rŒ   r2   r}   rê   r%   rˆ   r`   ÚNotImplementedErrorrG   r   ÚboolrI   rJ   r�   r   rE   Úgetattrr   Ústrrû   Úsumr   ÚgetÚAssertionError)r)   rM   rÜ   r€   r‚   rÿ   r   ÚrepsrO   ÚidxÚ
mask_indexÚmethodÚaccessorÚanswerÚerrr   Úrr,   r,   r-   Útest_iloc_mask  sj   ÿÿ
ð€ÿþ

ÿÿñûz&TestiLocBaseIndependent.test_iloc_maskc                 C   sÌ   t dgd dgd dœƒ}t d¡d }|j| }t|d| d| gƒ}|j| }t ||¡ t dgd	 dgd	 dœƒ}t|d| d| gƒ}tjt	d
d�� |j
|  W d   ƒ d S 1 s_w   Y  d S )Nçš™™™™™¹?r³   r   r¤   rn   éc   r   r6   r±   znot in indexrk   )r   rG   r�   r%   r   rI   rJ   r2   r}   ÚKeyErrorrä   )r)   rM   r  rO   Údf3r‚   r­   r,   r,   r-   Útest_iloc_non_unique_indexingJ  s   

"ÿz5TestiLocBaseIndependent.test_iloc_non_unique_indexingc                 C   sÒ   t t d¡tdd„ tdƒD ƒdd�tdd„ tdƒD ƒdd�d	�}tj|jd d …g f |jd d …d d
…f ddd� tj|jg d d …f |jd d
…d d …f ddd� tj|jg  |jd d
…d d …f ddd� d S )Nru   c                 S   ó   g | ]}d |› �‘qS ©zi-r,   ©rü   Úir,   r,   r-   rþ   ^  ó    zNTestiLocBaseIndependent.test_iloc_empty_list_indexer_is_ok.<locals>.<listcomp>rg   rŒ   ©rª   c                 S   r  r  r,   r  r,   r,   r-   rþ   _  r!  r   rw   r   T)Úcheck_index_typeÚcheck_column_type)r   rG   Úonesr   r?   rI   rJ   r%   ©r)   rM   r,   r,   r-   Ú"test_iloc_empty_list_indexer_is_ok[  s(   ýüü 
ÿz:TestiLocBaseIndependent.test_iloc_empty_list_indexer_is_okc                 C   sX  t dg d¢iƒ}|jd d … }||usJ ‚t |d |d ¡s!J ‚t |¡� g d¢|jd d …df< W d   ƒ n1 s<w   Y  |rP|d g d¢k ¡ sOJ ‚n
|d dk ¡ sZJ ‚tg d¢ƒ}|jd d … }||usmJ ‚t |¡� g d¢|d d…< W d   ƒ n1 s…w   Y  |rœt|d d… g d¢kƒsšJ ‚d S t|d d… g d¢kƒsªJ ‚d S )NrŒ   r�   )rU   rU   rU   rU   )r   r   r6   rU   rg   rx   ©r¢   rÆ   rÑ   r6   )	r   r%   rG   rH   rI   Úassert_cow_warningrä   Úallr   )r)   r[   rÊ   Úoriginal_dfÚ	sliced_dfÚoriginal_seriesÚsliced_seriesr,   r,   r-   Ú&test_identity_slice_returns_new_objectt  s&   ÿÿ  z>TestiLocBaseIndependent.test_identity_slice_returns_new_objectc                 C   sD   t ddgddggƒ}|jt d¡ }tddgdd�}t ||¡ d S )Nr   r   r6   rU   r   r"  )r   r%   rG   r   r   rI   r~   )r)   rM   r‚   r�   r,   r,   r-   Útest_indexing_zerodim_np_array•  s   z6TestiLocBaseIndependent.test_indexing_zerodim_np_arrayc                 C   s,   t ddgƒ}|jt d¡ }|dksJ ‚d S )Nr   r   r   )r   r%   rG   r   )r)   r�   r‚   r,   r,   r-   Ú%test_series_indexing_zerodim_np_arrayœ  s   z=TestiLocBaseIndependent.test_series_indexing_zerodim_np_arrayc                 C   sŠ   t g d¢ƒ}t|g d¢dœdd�}t |d |¡sJ ‚|d d d… |jd d …df< t |d |¡s3J ‚t g d	¢g d¢d
�}t ||¡ d S )Nrš   r�   )r   r   F)rD   r   r   r   )rœ   r›   rp   ©Ú
categories)r   r   rI   rH   r%   Úassert_categorical_equal)r)   rL   rM   rO   r,   r,   r-   Ú-test_iloc_setitem_categorical_updates_inplace¢  s   zETestiLocBaseIndependent.test_iloc_setitem_categorical_updates_inplacec                 C   s:  t ddgddgddgdtjggƒ}|j|jdk  d9  < t ddgddgdd	gdtjggƒ}t ||¡ |j|jdk  d9  < t ddgddgdd	gd
tjggƒ}t ||¡ |jg d¢  d9  < t ddgdd
gdd	gd
tjggƒ}t ||¡ |jg d¢  d  < t ddgddgddgdtjggƒ}t ||¡ d S )Nr   r   r   r6   rU   rg   rx   rÆ   rq   rÇ   )TTFF)FFTTg      @g      (@g      @)r   rG   r«   r%   r`   rI   rJ   ©r)   r‚   rO   r,   r,   r-   Ú test_iloc_with_boolean_operation±  s   """""z8TestiLocBaseIndependent.test_iloc_with_boolean_operationc                 C   sR   t dtd ¡ ƒiƒ}|jd }tdgg d¢d�}t|dgddd�}t ||¡ d S )	Nr·   z	a b c d er   rŒ   rõ   r2  Úcategory)r`   rª   r9   )r   r   Úsplitr%   r   rI   r~   )r)   rM   r‚   Úraw_catrO   r,   r,   r-   Ú?test_iloc_getitem_singlerow_slice_categoricaldtype_gives_seriesÄ  s
   
zWTestiLocBaseIndependent.test_iloc_getitem_singlerow_slice_categoricaldtype_gives_seriesc                 C   s°   t g d¢ƒ d¡}|jdd… }t ddgƒ tg d¢ƒ¡}t ||¡ |jddg }t ddgƒ tg d¢ƒ¡}t ||¡ |jg d¢ }t dgƒ tg d¢ƒ¡}t ||¡ d S )Nr�   r8  r   r   r   ©TFF)r   rF   r%   r   rI   r~   )r)   rd   r‚   rO   r,   r,   r-   Ú$test_iloc_getitem_categorical_valuesÍ  s   z<TestiLocBaseIndependent.test_iloc_getitem_categorical_valuesc                 C   s<   t g d¢dd�}||jd< t tddgdd�}t ||¡ d S )Nr   ztimedelta64[ns]r8   r   r   r   )r   r%   r
   rI   r~   )r)   rø   r   rO   r,   r,   r-   Ú%test_iloc_setitem_td64_values_cast_naâ  s   
z=TestiLocBaseIndependent.test_iloc_setitem_td64_values_cast_naÚnot_narŒ   g      ð?c                 C   sX   t |gd�}t||||g|d�}|||g|jd d…< t||||g|d�}t ||¡ d S )Nr2  r8   r6   )r   r   r%   rI   r~   )r)   r?  Únulls_fixturer9   rd   rÃ   r,   r,   r-   Ú$test_setitem_mix_of_nan_and_intervalê  s   ÿz<TestiLocBaseIndependent.test_setitem_mix_of_nan_and_intervalc                 C   s�   t g ƒ}ttj d¡ t|ƒt|ƒf¡||d�}tj d¡jddd�}d|j› �}t	j
t|d�� d|j|< W d   ƒ d S 1 sAw   Y  d S )	Nr   rw   rg   )r   r   r   rÀ   zCannot set values with ndim > rk   r   )r   r   rG   rz   r{   r   rˆ   rÂ   Úndimr2   r}   rê   r%   )r)   r  r+   Únd3r€   r,   r,   r-   Ú4test_iloc_setitem_empty_frame_raises_with_3d_ndarrayõ  s   ý"ÿzLTestiLocBaseIndependent.test_iloc_setitem_empty_frame_raises_with_3d_ndarrayc                 C   s¸   t  d¡}t|ƒ}t  d¡}|jdd� t|ƒ}t ||ƒg d¢ ||ƒg d¢ ¡ t ||ƒdg ||ƒdg ¡ t ||ƒd ||ƒd ¡ t ||ƒdd… ||ƒdd… ¡ d S )Nrq   F)Úwriter�   r   r6   )rG   Úeyer   ÚsetflagsrI   rJ   r~   )r)   r7   Úrw_arrayÚrw_dfÚro_arrayÚro_dfr,   r,   r-   Ú"test_iloc_getitem_read_only_values  s   

$ (z:TestiLocBaseIndependent.test_iloc_getitem_read_only_valuesc                 C   s€   t dtjddd�iƒ}t g d¢¡}d|j_|j| }|jg d¢ }t 	||¡ |d j| }|d jg d¢ }t 
||¡ d S )NÚdataro   Úfloat64r8   )r   r6   rx   F)r   rG   r%  r   ÚflagsÚ	writeabler%   rä   rI   rJ   r~   )r)   rM   Úindicesr‚   rO   r,   r,   r-   Útest_iloc_getitem_readonly_key  s   
z6TestiLocBaseIndependent.test_iloc_getitem_readonly_keyc                 C   sR   t dgdgd�}tg d¢ƒ|jd< t dtg d¢ƒgidgdgd�}t ||¡ d S )NrŒ   r   ©rj   r`   r�   r=   )r   r   r%   rI   rJ   ©r)   rM   rO   r,   r,   r-   Ú"test_iloc_assign_series_to_df_cell   s    z:TestiLocBaseIndependent.test_iloc_assign_series_to_df_cellÚklassc                 C   sd   t g d¢g d¢dœƒ}|g d¢ƒ}|j|df d |j|df< t g d¢g d¢dœƒ}t ||¡ d S )N)r·   rö   Úz)r   r6   rU   )Úflagrø   r<  r   r   )r   r6   rU   r¹   )r)   rV  rM   r7   rO   r,   r,   r-   Útest_iloc_setitem_bool_indexer'  s
   z6TestiLocBaseIndependent.test_iloc_setitem_bool_indexerr   c                 C   s�   t g d¢g d¢dœƒ}t g d¢g d¢g d¢dœƒ}|r!|d d … }|jd d …dgf |jd d …|f< t g d¢g d¢g d¢dœƒ}t ||¡ d S )	N)rs   rÇ   r£   )rã   é   é   )Úa2Úb2r�   ry   r(  ©rŒ   rè   rÌ   r   r¹   )r)   r7   rR   r¬   r­   r]   rO   r,   r,   r-   Ú%test_iloc_setitem_pure_position_based0  s   "z=TestiLocBaseIndependent.test_iloc_setitem_pure_position_basedc                 C   s²   t ddgddgdœƒ}|r|d d … }dddœ}||jd< t ddgddgdœƒ}t ||¡ t ddgddgdœƒ}|rA|d d … }||jd< t ddgddgdœƒ}t ||¡ d S )Nr   r   )r·   rö   rÑ   r  g       @g     ÀX@r¹   )r)   rR   rM   r]   ÚrhsrO   r,   r,   r-   Ú"test_iloc_setitem_dictionary_value=  s   


z:TestiLocBaseIndependent.test_iloc_setitem_dictionary_valuec                 C   sp  t tj d¡ d¡g d¢tdƒd�}|jdd … }t |j	d |¡ |jdd …df }t 
|j	d	 |¡ g d
¢|_|jdd … }t |j	d |¡ |jdd …df }t 
|j	d	 |¡ t tj d¡ d¡g d¢tdƒd�}|jdd… }t |j	d |¡ |jdd…df }t 
|j	d	 |¡ g d¢|_|jddg }t |j	d |¡ |jddgdf }t 
|j	d	 |¡ d S )Nr   rÒ   )r  çš™™™™™É?rb  Úabcrw   r   rb  r   )rb  rŒ   )r   rb  rb  )rU   r6   )r   rb  rb  r   r   )r  rb  r   rb  )r   rG   rz   r{   r   r|   r%   rI   rJ   rä   r~   r`   )r)   rM   Úexpectr,   r,   r-   Ú"test_iloc_getitem_float_duplicatesQ  s8   ý
ý
z:TestiLocBaseIndependent.test_iloc_getitem_float_duplicatesc                 C   s¶   G dd„ dƒ}t ddgdgd�}|dƒ|jd< |dƒ|jd< t ddgdgd�}|dƒ|jd< t ||¡ t ddgdgd�}|dƒ|jd< tj|jd< t ddgdgd�}t ||¡ d S )Nc                   @   s>   e Zd Zddd„Zdefdd„ZeZdefdd„Zd	d
„ Z	dS )zCTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TOÚreturnNc                 S   s
   || _ d S ©N©rø   )r)   rø   r,   r,   r-   Ú__init__y  s   
zLTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__init__c                 S   s   d| j › d�S )Nr  r  rh  ©r)   r,   r,   r-   Ú__str__|  s   zKTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__str__c                 S   s   | j |j kS rg  rh  )r)   Úotherr,   r,   r-   Ú__eq__�  s   zJTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__eq__c                 S   s   | S rg  r,   rj  r,   r,   r-   r]   „  s   zHTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.view)rf  N)
r/   r0   r1   ri  r  rk  Ú__repr__r	  rm  r]   r,   r,   r,   r-   ÚTOx  s    
ro  r   r   rw   ra   r   )r   r%   rI   rJ   rG   r«   )r)   ro  rM   r‚   r,   r,   r-   Útest_iloc_setitem_custom_objectv  s   z7TestiLocBaseIndependent.test_iloc_setitem_custom_objectc                 C   sŠ   t tj d¡ d¡tdƒtdƒd�}|jd }t|tƒsJ ‚t 	|j
|j
d ¡ |jjd d …df }t|tƒs9J ‚t 	|j
|j
d ¡ d S )Nr   rÒ   ÚABCÚaabrS  r   )r   rG   rz   r{   r|   r%   Ú
isinstancer   rI   Úassert_almost_equalrE   ÚT)r)   rM   r‚   r,   r,   r-   Ú!test_iloc_getitem_with_duplicates˜  s   ý
z9TestiLocBaseIndependent.test_iloc_getitem_with_duplicatesc                 C   sP   t g d¢g d¢gg d¢d�}|jd d …dgf }|jdgdd�}t ||¡ d S )Nr�   ry   )r   r   r   ri   r   r   r§   )r   r%   ÚtakerI   rJ   ©r)   rM   r‚   rO   r,   r,   r-   Ú"test_iloc_getitem_with_duplicates2§  s   z:TestiLocBaseIndependent.test_iloc_getitem_with_duplicates2c                 C   s¾   t tddƒddgiƒ}|jd }ttddƒdidd�}t ||¡ |jd d …df }tddgtddƒd�}t ||¡ | ¡ }|jd d …df  d7  < t tddƒddgiƒ}t ||¡ d S )Nr   r   r   r"  r6   )r   r	   r%   r   rI   r~   rD   rJ   rx  r,   r,   r-   Útest_iloc_interval®  s   
z*TestiLocBaseIndependent.test_iloc_intervalÚindexing_funcÚrhs_funcc                 C   sŒ   t g d¢ƒ}|ddgƒ|j|g d¢ƒ< t g d¢ƒ}t ||¡ tdg d¢iƒ}|dgdggƒ|j|g d¢ƒ< tdg d¢iƒ}t ||¡ d S )Nr   rg   rq   ©TFT)rg   r   rq   rŒ   )r   r%   rI   r~   r   rJ   )r)   r|  r{  rd   rO   rM   r,   r,   r-   Útest_loc_setitem_boolean_list¿  s   z5TestiLocBaseIndependent.test_loc_setitem_boolean_listc                 C   s~   t dg d¢idd�}|jd d …d d d…f }t ||¡ d|d< |jd d …d d d…f }t |d |d dœƒ}t ||¡ d S )	Nrp   r�   ÚInt64r8   r   Úfoor›   )r›   rp   r¹   )r)   rM   ÚresrO   r,   r,   r-   Ú.test_iloc_getitem_slice_negative_step_ea_blockÍ  s   zFTestiLocBaseIndependent.test_iloc_getitem_slice_negative_step_ea_blockc                 C   sl   t dg d¢idd�}t dgdgg¡|jt ddg¡t dg¡f< t dg d¢i|d jd�}t ||¡ d S )	NÚstatusr^  r8  r8   rŒ   r   r   )rŒ   rŒ   rÌ   )r   rG   r   r%   r9   rI   rJ   rT  r,   r,   r-   Ú*test_iloc_setitem_2d_ndarray_into_ea_blockÙ  s   .zBTestiLocBaseIndependent.test_iloc_setitem_2d_ndarray_into_ea_blockc                 C   sV   t ddƒj}t|ƒ}|jd }|d |d ksJ ‚|d |d< |d |d ks)J ‚d S )Nr   g      $@r   r   r   )r   Ú_valuesr   r%   )r)   r\   rM   rd   r,   r,   r-   Ú*test_iloc_getitem_int_single_ea_block_viewá  s   
zBTestiLocBaseIndependent.test_iloc_getitem_int_single_ea_block_viewc                 C   sÈ   t ddgddgdœƒ}|r9tjtdd�� t dtddgƒiƒ|jd d …d	gf< W d   ƒ d S 1 s2w   Y  d S t dtddgƒiƒ|jd d …d	gf< t td
ƒtdƒgddgdœƒ}tj||dd� d S )Nz
2022-01-01z
2022-01-02Ú2021Ú2022r¤   z%Setting an item of incompatible dtyperk   rp   r   z2021-01-01 00:00:00z2022-01-01 00:00:00F)Úcheck_dtype)r   rI   rà   rá   r   r%   r   rJ   )r)   Úusing_infer_stringrM   rO   r,   r,   r-   Ú)test_iloc_setitem_multicolumn_to_datetimeð  s    ÿ&"ý$þûÿ	zATestiLocBaseIndependent.test_iloc_setitem_multicolumn_to_datetime)Qr/   r0   r1   Ú__doc__r2   r3   r4   Úslicer?   r   rG   ÚasarrayrI   rä   r%   rP   Úfilterwarningsr   r   r^   re   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  r  r'  r/  r0  r1  r5  r7  r;  r=  r
   r«   r>  r	   rA  rD  rL  rR  rU  rY  r_  ra  re  rp  rv  ry  rz  r~  r‚  r„  ÚtdÚ&skip_array_manager_not_yet_implementedr†  r‹  r,   r,   r,   r-   r5   <   sÖ    
úþ
 "
eýþ	



1#
$
$
$

E!	







%"
r5   c                   @   sB   e Zd Zdd„ Zej d¡ej dddg¡dd„ ƒƒZd	d
„ Z	dS )ÚTestILocErrorsc              	   C   sÐ   |}|t u r
| ¡ }d}tjt|d�� |jd  W d   ƒ n1 s#w   Y  tjttd��/ t 	|o7|t u ¡� d|jd< W d   ƒ n1 sIw   Y  W d   ƒ d S W d   ƒ d S 1 saw   Y  d S )Nz5Cannot index by location index with a non-integer keyrk   g      @r   )
r   rc   r2   r}   r�   r%   r(   Ú_slice_iloc_msgrI   r)  )r)   Úseries_with_simple_indexrZ   rÊ   r+   r€   r,   r,   r-   Útest_iloc_float_raises
  s    
ÿ
ÿýÿ"ÿz%TestILocErrors.test_iloc_float_raisesrQ   rR   TFc                 C   sª   t jtdd�� |jd d …d d …d d …f  W d   ƒ n1 s w   Y  |r-|d d … }t jtdd�� d|jd d …d d …d d …f< W d   ƒ d S 1 sNw   Y  d S )NzToo many indexersrk   ztoo many indices for arrayr   )r2   r}   r   r%   r(   )r)   Úfloat_framerR   r]   r,   r,   r-   Ú*test_iloc_getitem_setitem_fancy_exceptions"  s   ÿ"þz9TestILocErrors.test_iloc_getitem_setitem_fancy_exceptionsc                 C   sž   t dg d¢iƒ}t dg d¢iƒ}d}tjt|d�� d|j|< W d   ƒ n1 s)w   Y  d}tjt|d�� |j|  W d   ƒ d S 1 sHw   Y  d S )NrŒ   r�   r}  zADataFrame indexer for .iloc is not supported. Consider using .locrk   r   zWDataFrame indexer is not allowed for .iloc
Consider using .loc for automatic alignment.)r   r2   r}   r�   r%   r(   )r)   rM   r7   r€   r,   r,   r-   Útest_iloc_frame_indexer.  s   ÿÿ"ÿz&TestILocErrors.test_iloc_frame_indexerN)
r/   r0   r1   r•  r2   r3   r�  r4   r—  r˜  r,   r,   r,   r-   r’    s    

r’  c                   @   sB   e Zd Zdd„ Zdd„ Zdd„ Zej g d¢dd	g¡d
d„ ƒZ	dS )ÚTestILocSetItemDuplicateColumnsc                 C   sˆ   t d ddœdddœgƒ}t dddœdddœgƒ}t||gdd�}d|jd< |jd dks.J ‚|jd	 dks7J ‚|jjd tjksBJ ‚d S )
Nr   r¤   r   r6   rU   r§   r   r=   )r   r   )r   r   r%   ÚdtypesrG   rô   )r)   r¬   r­   rM   r,   r,   r-   Ú*test_iloc_setitem_scalar_duplicate_columns?  s   
zJTestILocSetItemDuplicateColumns.test_iloc_setitem_scalar_duplicate_columnsc                 C   sP   t g d¢gg d¢d�}dg|jd d …df< t g d¢gg d¢d�}t ||¡ d S )N)r   r  Ústr2©rŒ   rè   rè   ri   Ústr3r   )r   r  rž  r¹   rT  r,   r,   r-   Ú(test_iloc_setitem_list_duplicate_columnsJ  s   zHTestILocSetItemDuplicateColumns.test_iloc_setitem_list_duplicate_columnsc                 C   sf   t tjdtjd� dd¡g d¢d�}|jd d …df  tj¡|jd d …df< |jjd tjks1J ‚d S )NrÆ   r8   r   rU   r©   ri   r   )	r   rG   r�   rô   rŽ   r%   rF   rN  rš  r&  r,   r,   r-   Ú*test_iloc_setitem_series_duplicate_columnsS  s
   ÿ(zJTestILocSetItemDuplicateColumns.test_iloc_setitem_series_duplicate_columns)rš  Ú
init_valueÚexpected_value)rô   Ú0r   )Úfloatz1.2g333333ó?c                 C   sj   t |ddggg d¢td�}|jd d …df  |¡|jd d …df< t |ddggg d¢td�}t ||¡ d S )Nr  rœ  r�  )rj   r9   r   )r   r@   r%   rF   rI   rJ   )r)   rš  r¡  r¢  rM   Úexpected_dfr,   r,   r-   Ú*test_iloc_setitem_dtypes_duplicate_columnsZ  s   ÿ&
ýzJTestILocSetItemDuplicateColumns.test_iloc_setitem_dtypes_duplicate_columnsN)
r/   r0   r1   r›  rŸ  r   r2   r3   r4   r¦  r,   r,   r,   r-   r™  >  s    	þr™  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestILocCallablec                 C   sš  t g d¢tdƒdœtdƒd�}|jdd„  }t ||jdd	g ¡ |jd
d„ d d …f }t ||jdd	gd d …f ¡ |jdd„ dd„ f }t ||jdd	gdf ¡ |jdd„ dd„ f }t ||jdd	gdgf ¡ |jdd	gdd„ f }t ||jdd	gdf ¡ |jdd	gdd„ f }t ||jdd	gdgf ¡ |jdd„ df }t ||jdd	gdf ¡ |jdd„ dgf }t ||jdd	gdgf ¡ d S )NrT   Úaabb©ÚXÚYrç   r_   c                 S   r¼   ©Nr   r6   r,   r¶   r,   r,   r-   r¸   x  r½   zCTestILocCallable.test_frame_iloc_getitem_callable.<locals>.<lambda>r   r6   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   {  r½   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   ~  r½   c                 S   ó   dS ©Nr   r,   r¶   r,   r,   r-   r¸   ~  ó    r   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   �  r½   c                 S   ó   dgS r®  r,   r¶   r,   r,   r-   r¸   �  ó    c                 S   r­  r®  r,   r¶   r,   r,   r-   r¸   …  r¯  c                 S   r°  r®  r,   r¶   r,   r,   r-   r¸   ˆ  r±  c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   ‹  r½   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   Ž  r½   )r   r|   r%   rI   rJ   r~   )r)   rM   r�  r,   r,   r-   Ú test_frame_iloc_getitem_callables  s"    z1TestILocCallable.test_frame_iloc_getitem_callablec                 C   sJ  t g d¢ttdƒtd�dœtdƒd�}| ¡ }d|jdd	„ < | ¡ }d|jd
dg< t ||¡ | ¡ }d|jdd	„ d d …f< | ¡ }d|jd
dgd d …f< t ||¡ | ¡ }d|jdd	„ dd	„ f< | ¡ }d|jd
dgdf< t ||¡ | ¡ }d|jdd	„ dd	„ f< | ¡ }d|jd
dgdgf< t ||¡ | ¡ }d|jd
dgdd	„ f< | ¡ }d|jd
dgdf< t ||¡ | ¡ }d|jd
dgdd	„ f< | ¡ }d|jd
dgdgf< t ||¡ | ¡ }d|jdd	„ df< | ¡ }d|jd
dgdf< t ||¡ | ¡ }ddg|jdd	„ dgf< | ¡ }ddg|jd
dgdgf< t ||¡ d S )NrT   r¨  r8   r©  rç   r_   r   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   š  r½   zCTestILocCallable.test_frame_iloc_setitem_callable.<locals>.<lambda>r   r6   r   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸      r½   rg   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   ¦  r½   c                 S   r­  r®  r,   r¶   r,   r,   r-   r¸   ¦  r¯  é   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   ¬  r½   c                 S   r°  r®  r,   r¶   r,   r,   r-   r¸   ¬  r±  r¥   c                 S   r­  r®  r,   r¶   r,   r,   r-   r¸   ³  r¯  éûÿÿÿc                 S   r°  r®  r,   r¶   r,   r,   r-   r¸   ¹  r±  rq   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   ¿  r½   c                 S   r¼   r¬  r,   r¶   r,   r,   r-   r¸   Å  r½   )r   r   r|   r@   rD   r%   rI   rJ   )r)   rM   r�  rÃ   r,   r,   r-   Ú test_frame_iloc_setitem_callable‘  sX   þz1TestILocCallable.test_frame_iloc_setitem_callableN)r/   r0   r1   r²  rµ  r,   r,   r,   r-   r§  r  s    r§  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestILocSeriesc           	   	   C   sL  t tj d¡ d¡ttdddƒƒd�}| ¡ }tt|ƒƒD ]}|j	| }||j
|  }t ||¡ q|j	tddƒ }|jdd… }t ||¡ t d ¡�# t |¡� d|d d …< W d   ƒ n1 scw   Y  W d   ƒ n1 srw   Y  |r€t ||¡ n|j	dd… dk ¡ s�J ‚|j	g d	¢ }| |j
g d	¢ ¡}t ||¡ d S )
Nr   rq   r   rf   r_   r   r6   rU   )r   r   r6   rU   rg   )r   rG   rz   r{   r   r|   r?   rD   rˆ   r%   r`   rI   rt  r�  rä   r~   rà   r)  r*  Úreindex)	r)   r[   rÊ   rd   Úser_originalr   r‚   rÃ   rO   r,   r,   r-   Ú	test_ilocÌ  s.   ÿ
ÿ€þzTestILocSeries.test_ilocc                 C   s*   t g d¢g d¢d�}|jd dksJ ‚d S )Nr   rÉ   r_   r   )r   r%   )r)   rd   r,   r,   r-   Útest_iloc_getitem_nonuniqueë  s   z*TestILocSeries.test_iloc_getitem_nonuniquec                 C   sT   t g d¢ƒ}t g d¢g d¢d�}|jdd… |jdd…< t g d¢ƒ}t ||¡ d S )Nr�   ry   )r   r   r   r_   r   r6   )r   rg   rx   )r   r%   rI   r~   )r)   Úser1Úser2rO   r,   r,   r-   r_  ï  s
   z4TestILocSeries.test_iloc_setitem_pure_position_basedc                 C   s’   t dgtjgdœƒ}tjtdd�� |jd d …df  d¡|jd d …df< W d   ƒ n1 s/w   Y  t dgtt	gdd�dœƒ}t 
||¡ d S )NÚtest)rŒ   rè   rß   rk   rè   r  r8   )r   rG   r«   rI   rà   rá   rä   rF   r   r   rJ   r6  r,   r,   r-   Ú#test_iloc_nullable_int64_size_1_nan÷  s   (ÿz2TestILocSeries.test_iloc_nullable_int64_size_1_nanN)r/   r0   r1   r¹  rº  r_  r¾  r,   r,   r,   r-   r¶  Ë  s
    r¶  )+rŒ  r   ÚreÚnumpyrG   r2   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsr�  Úpandasr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingrI   Úpandas.api.typesr   Úpandas.tests.indexing.commonr   Úescaper“  r   r5   r’  r™  r§  r¶  r,   r,   r,   r-   Ú<module>   s:    Dÿ         T74Y