a
    é´«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ÚtsZfloatsÚemptyc                 C   s(   |  |› d|› �¡}t|d|td� d S )NÚ_Úiloc)Zfails)Zgetfixturevaluer   Ú
IndexError)Úselfr   r   r   ÚrequestÚobj© r)   ú^/var/www/html/laksyashrimp/venv/lib/python3.9/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¡}|s„t
 |d j|¡s„J ‚t ||¡ d|jd< |d dksªJ ‚t t
jg d¢td�tdƒdœƒ}| ¡ }|||ƒ|df< t t| 	t¡td�tdƒdœƒ}t ||¡ d S )	Nr   r3   ©Údtype)ÚalphaÚbetaÚgammar9   ©r   r   r   ©r   r   )r   ÚrangeÚobjectr   Ú_mgrÚblocksZ_can_hold_elementÚcopyÚvaluesÚastypeÚnpÚshares_memoryÚtmÚassert_frame_equalr$   r   r   )	r&   r4   r   Úusing_array_managerr   ÚcatÚdfZ	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 rj||dd … ƒ|jd d…< n||dd … ƒ|jd d…df< |tj g d¢dd�ƒ}	t 	||	¡ |�s|tu rî|rÞ|j|usÊJ ‚t 
|j|¡sìJ ‚n|j|u sìJ ‚nt 
|d j|¡�sJ ‚d S )N©r   r   r3   é   Úi8r   r   )r3   rP   r3   rP   r5   )r   Zto_numpyr   rA   r>   Zarraysr$   rC   rE   Zassert_equalrD   )
r&   Úframe_or_seriesrN   rM   Úusing_copy_on_writeÚarrr(   ÚviewrA   rJ   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¡sDJ ‚d S )N)r   r   r   r3   ©Úindex)r   ©r   r   )r   r   r<   r$   Z_is_scalar_accessÚto_frame)r&   rX   ÚserrI   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\0    Y  tjt|d�� |jdd	g  W d   ƒ n1 s˜0    Y  tjt|d�� |jdd
g  W d   ƒ n1 sÔ0    Y  tjt|d�� |jdg  W d   ƒ n1 �s0    Y  |d }tjt|d�� |jdg  W d   ƒ n1 �sT0    Y  tjt|d�� |jdg  W d   ƒ n1 �s�0    Y  d}tjt|d�� |jd	  W d   ƒ n1 �sÎ0    Y  tjt|d�� |jd
  W d   ƒ n1 �s0    Y  tjt|d�� |jd	  W d   ƒ n1 �sB0    Y  tjt|d�� |jd
  W d   ƒ n1 �s|0    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¢0    Y  d}tjt|d��" |jd d …df  W d   ƒ n1 �sè0    Y  d S )Nr   )é   é   ÚABCDE©Úcolumnsz%positional indexers are out-of-bounds©Úmatch©r   r   r   r3   rP   r^   r   é   iâÿÿÿéd   ÚAiœÿÿÿz*single positional indexer is out-of-boundsrP   é
   éüÿÿÿiöÿÿÿr   r   iõÿÿÿé   é   ©r^   r   ZABr3   r5   ©rX   ra   é   ©rP   r^   rn   )r   rC   ÚrandomÚdefault_rngÚlistr/   Úraisesr%   r$   rE   rF   Úassert_series_equalÚstandard_normalrX   r   ra   r6   )r&   rI   ÚmsgÚsÚresultrJ   Zdflr)   r)   r*   Útest_iloc_exceeds_boundsš   s�    4,,,,,****ÿþ..z0TestiLocBaseIndependent.test_iloc_exceeds_boundszindex,columnsr]   r_   zindex_vals,column_valsrg   ÚDÚ1Ú2iã  r   c                 C   sl   t tj d¡ t|ƒt|ƒf¡||d�}d}tjt|d�� |j	||f  W d   ƒ n1 s^0    Y  d S )Nr   rm   z$.iloc requires numeric indexers, gotrb   )
r   rC   rp   rq   ru   Úlenr/   rs   r%   r$   )r&   rX   ra   Z
index_valsZcolumn_valsrI   rv   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   ƒ n1 sP0    Y  d S )Nrf   rh   zCannot index by location indexrb   Úa)
r   rC   ÚarangeÚreshaperE   Úget_objr/   rs   Ú	TypeErrorr$   )r&   rR   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   )rf   ée   éf   )ég   éh   éi   )éj   ék   él   ©rg   ÚBÚC©r   r   r3   rW   )rC   r   r@   r   r$   rE   Zassert_numpy_array_equal)r&   Zarray_with_neg_numbersZ
array_copyrI   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s‚J ‚|jdg }|jdg }t ||¡ tdgdgd�}|jd	g }t ||¡ d S )
N)r   r3   r^   )é   rj   é   ©rg   rŽ   rg   r   éýÿÿÿr   rW   r   )r   r$   rE   rt   rF   r   )r&   rI   rw   rJ   rx   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|ƒsVJ ‚|jdd d …f }ttjdddgg d	¢dd
�}t ||¡ d S )Nr   r”   r   r3   rP   ©Zaxisr:   r   ©rg   rŽ   rg   rŽ   )rX   Úname)	r   r   r$   r   r   rC   ÚnanrE   rt   )r&   Údf1Údf2rI   rx   rJ   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   r3   r�   rf   éÈ   é,  éè  éÐ  é¸  r   )rŽ   r�   rW   )r   rE   rF   r$   ©r&   rI   rJ   rx   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   r3   r�   rf   rž   rŸ   r    r¡   r¢   )TTFr   rW   c                 S   s   | j d dkS )Nr   r   rW   ©Úxr)   r)   r*   Ú<lambda>u  ó    z@TestiLocBaseIndependent.test_iloc_getitem_bool.<locals>.<lambda>©r   r$   rE   rF   r£   r)   r)   r*   Útest_iloc_getitem_boole  s    


ýÿÿz.TestiLocBaseIndependent.test_iloc_getitem_boolrX   )TFTFc                 C   s`   t g d¢ƒ}dt|ƒ› dt|ƒ› �}tjt|d�� |j|  W d   ƒ n1 sR0    Y  d S )Nr�   z Boolean index has wrong length: z instead of rb   )r   r}   r/   rs   r%   r$   )r&   rX   rw   rv   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   r3   r�   rf   rž   rŸ   r    r¡   r¢   r”   rW   r   )rg   r�   c                 S   s   ddgS )Nr   r   r)   )rI   r)   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   ©rh   rP   )rg   rg   rŽ   rŽ   r`   r   rh   r]   ©Úsizerg   r�   r   r—   rP   r3   )r   rC   rp   rq   ru   Úintegersr�   r   rE   rF   r$   )r&   r›   rœ   rI   Ú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s`J ‚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   ©rP   rP   r   é   é   r3   rm   r   ©r   r   ro   rW   ©r   r   r   )r   rC   rp   rq   ru   r€   r$   rE   rF   r   rt   )r&   Úwarn_copy_on_writerM   rI   rU   rx   rJ   rw   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)rn   Úcrh   )r’   Údrj   )r´   Úerµ   r   )r^   r^   r^   r^   r   r—   r   )rn   rº   r^   )r’   r»   r^   )r´   r¼   r^   )r   rB   r=   r$   rE   rF   ©r&   rM   rI   rU   rJ   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�}|r2|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é	   ©r3   r3   r�   rm   r   r   r   rf   )	r   r…   r†   r3   rˆ   r‰   rn   r’   r´   )r   rC   r€   r�   r$   r   rE   rF   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   r3   )r   r   éþÿÿÿr3   r   rÂ   r   r   )r   r@   r$   rE   rt   r   )r&   Zs_origrJ   rw   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   r3   rP   r—   r   r;   rŽ   rg   T)Zdrop)r   r   ZfillnarC   Úisnanr$   rX   rE   rF   ra   Zreset_index)r&   r›   rœ   rI   rJ   Z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< |sZt|jjƒdksZJ ‚tjtdd	��4 |jd d …df d
 |jd d …df< W d   ƒ n1 s¢0    Y  |sÄt|jjƒdksÄJ ‚| 	¡ }|jddgddgf |jddgddgf< t 
||¡ d S )Nr   r   r   r3   rŽ   r`   Zf8úincompatible dtyperb   g      à?)r   r$   rB   r}   r>   r?   rE   Úassert_produces_warningÚFutureWarningr@   rF   )r&   rG   rI   rJ   r)   r)   r*   Ú9test_iloc_setitem_frame_duplicate_columns_multiple_blocks   s    &B(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slJ ‚|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   r]   r´   rm   rP   )r   r   r³   é   r3   r^   )r   r   r3   )r   r   rn   r   )r   r   r3   r   )rk   r   rn   rn   )r   r   r   r3   )rk   rk   r   rn   )rX   r6   )r   rP   rn   r´   )r   rC   rp   rq   ru   r<   r$   ÚlocrE   rt   rF   r   r=   rX   )r&   rI   rx   r±   rJ   rw   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sDJ ‚|jd d …dd…f }|jd d …d	gf }t 	||¡ |jd
 }|jd }||ksšJ ‚d}t
jt|d�� |jd  W d   ƒ n1 sÌ0    Y  d}t
jt|d�� |jd  W d   ƒ n1 �s
0    Y  d S )Nr   r­   Ú
abcdefghijÚABCDrm   r¶   )ÚbrŽ   r3   r�   )r   r   )Újrz   zCindex 5 is out of bounds for axis 0 with size 4|index out of boundsrb   )rh   r^   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   rC   rp   rq   ru   rr   r$   rÌ   rE   rF   r/   rs   r%   Ú
ValueError)r&   rI   rx   r±   rJ   rv   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�}|�s6|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   )rn   rP   Z20130101rn   )ZperiodsrÏ   rm   r3   r^   r   ZaaaaZaarµ   r´   r   rP   )rC   rp   rq   ru   r   rr   r   Zdescriber$   rE   rF   ra   r<   r>   r?   Zmgr_locs)r&   rG   rT   rX   ra   rI   rx   rJ   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�}|r4|d d … }d|jd< |jd }|dksTJ ‚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säJ ‚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Ï   rm   r   r¶   r   r3   rh   r]   rW   rP   r   rn   )r   r   rP   )r   r3   r^   rd   )r   rC   rp   rq   ru   rr   r$   rE   rF   r   r<   rt   )r&   rM   rI   rU   rx   rJ   rw   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œƒ}|r4|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œƒ}|rž|d d … }ddgddgg|jd	d
…< t g d¢g d¢dœƒ}t ||¡ d S )Nr^   Úint64r5   rh   r”   rj   rµ   r“   r   rP   )r   r   rh   rµ   rP   )r^   rn   rj   r“   r¿   ©r   rÐ   rº   r»   r¼   r¦   Úy)r   rÐ   r¦   rØ   r¼   )r   rC   r€   r$   rE   rF   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¡}|r6|d d … }||jd|f< |jd	 }t|ƒr^|d
ksbJ ‚d S )Nr   r   r3   rP   rg   rŽ   r`   r   r:   rÛ   )r   rB   r=   r$   r   )r&   rM   r4   rÚ   rI   rU   rx   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\0    Y  tt|ƒƒ|_	d	}tjt
|d�� |j|  W d   ƒ n1 s¦0    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 ]î}	|jdkj}|	�r^t||	ƒd d d… }
t|t|
ƒƒ}dD ]®}z:|�r‚t||dd … ƒ}n|}tt|| d  ¡ ƒƒ}W n4 ttt
f�yÔ } zt|ƒ}W Y d }~n
d }~0 0 |	|f}| |¡}||k�rbtd|› d|› d|› d�ƒ‚�qb�q&d S )Nr^   r_   r   rm   r   r   zBiLocation based boolean indexing cannot use an indexable as a maskrb   zDiLocation based boolean indexing on an integer type is not availableTr5   rP   c                 S   s   g | ]}t |ƒ‘qS r)   )Úbin)Ú.0Únumr)   r)   r*   Ú
<listcomp>  r¨   z:TestiLocBaseIndependent.test_iloc_mask.<locals>.<listcomp>)ÚlocsÚnumsZ0b1100Z0b11ztUnalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).)	)NÚ )Nú.loc)Nú.iloc)rX   rã   )rX   rä   )rX   rå   )rá   rã   )rá   rä   )rá   rå   )NrX   rá   r   )rã   rä   rå   r   râ   ú[z] does not match [z], received [ú])r   rr   r<   r   r/   rs   rÒ   r$   r}   rX   ÚNotImplementedErrorrC   r   ÚboolrE   rF   r€   râ   rA   Úgetattrr   ÚstrrÝ   Úsumr   ÚgetÚAssertionError)r&   rI   rÅ   rv   rx   rá   râ   ZrepsrJ   ÚidxZ
mask_indexÚmethodÚaccessorZanswerÚerrr   Úrr)   r)   r*   Útest_iloc_mask  s\    ((
ðþ

ÿ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   ƒ n1 s¼0    Y  d S )Nçš™™™™™¹?r¢   r   r”   re   éc   r   r3   r    znot in indexrb   )r   rC   r€   r$   r   rE   rF   r/   rs   ÚKeyErrorrÌ   )r&   rI   rï   rJ   Zdf3rx   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 )Nrl   c                 S   s   g | ]}d |› �‘qS ©zi-r)   ©rÞ   Úir)   r)   r*   rà   ^  r¨   zNTestiLocBaseIndependent.test_iloc_empty_list_indexer_is_ok.<locals>.<listcomp>r^   r   ©r™   c                 S   s   g | ]}d |› �‘qS rù   r)   rú   r)   r)   r*   rà   _  r¨   r   rm   r   T)Zcheck_index_typeZcheck_column_type)r   rC   Úonesr   r<   rE   rF   r$   ©r&   rI   r)   r)   r*   Ú"test_iloc_empty_list_indexer_is_ok[  s(    ýüü ÿz:TestiLocBaseIndependent.test_iloc_empty_list_indexer_is_okc                 C   s^  t dg d¢iƒ}|jd d … }||us*J ‚t |d |d ¡sBJ ‚t |¡�& g d¢|jd d …df< W d   ƒ n1 sx0    Y  |r |d g d¢k ¡ s´J ‚n|d dk ¡ s´J ‚tg d¢ƒ}|jd d … }||usÚJ ‚t |¡�  g d¢|d d…< W d   ƒ n1 �s0    Y  |�r<t|d d… g d¢kƒ�sZJ ‚nt|d d… g d¢kƒ�sZJ ‚d S )Nr   r�   )rP   rP   rP   rP   )r   r   r3   rP   r^   rn   ©r’   r´   r¿   r3   )	r   r$   rC   rD   rE   Úassert_cow_warningrÌ   Úallr   )r&   rS   r¸   Zoriginal_dfZ	sliced_dfZoriginal_seriesZsliced_seriesr)   r)   r*   Ú&test_identity_slice_returns_new_objectt  s"    40 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   r3   rP   r   rü   )r   r$   rC   r   r   rE   rt   )r&   rI   rx   rw   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$   rC   r   )r&   rw   rx   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 |¡s6J ‚|d d d… |jd d …df< t |d |¡sfJ ‚t g d	¢g d¢d
�}t ||¡ d S )Nr�   r�   )r   r   F)r@   r   r   r   )r�   rŽ   rg   ©Ú
categories)r   r   rE   rD   r$   Zassert_categorical_equal)r&   rH   rI   rJ   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   r3   rP   r^   rn   r´   rh   rµ   )TTFF)FFTTg      @g      (@g      @)r   rC   rš   r$   rX   rE   rF   ©r&   rx   rJ   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×   r  Úcategory)rX   r™   r6   )r   r   Úsplitr$   r   rE   rt   )r&   rI   rx   Zraw_catrJ   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�   r  r   r   r   ©TFF)r   rB   r$   r   rE   rt   )r&   r[   rx   rJ   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]r5   r   r   r   )r   r$   r
   rE   rt   )r&   rÚ   r   rJ   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 )Nr  r5   r3   )r   r   r$   rE   rt   )r&   r  Znulls_fixturer6   r[   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   ƒ n1 s€0    Y  d S )	Nr   rm   r^   )r   r   r   r®   zCannot set values with ndim > rb   r   )r   r   rC   rp   rq   ru   r}   r°   Úndimr/   rs   rÒ   r$   )r&   rï   r(   Znd3rv   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 )Nrh   F)Úwriter�   r   r3   )rC   Úeyer   ZsetflagsrE   rF   rt   )r&   r4   Zrw_arrayZrw_dfZro_arrayZ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Údatarf   Úfloat64r5   )r   r3   rn   F)r   rC   rý   r   ÚflagsZ	writeabler$   rÌ   rE   rF   rt   )r&   rI   Úindicesrx   rJ   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   ©ra   rX   r�   r:   )r   r   r$   rE   rF   ©r&   rI   rJ   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   r3   rP   )ÚflagrÚ   r  r   r   )r   r3   rP   r©   )r&   r   rI   r4   rJ   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œƒ}|rB|d d … }|jd d …dgf |jd d …|f< t g d¢g d¢g d¢dœƒ}t ||¡ d S )	N)rj   rµ   r“   )rË   é   é   )Za2Úb2r�   ro   r   ©r   rÐ   rº   r   r©   )r&   r4   rM   r›   rœ   rU   rJ   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œƒ}|r‚|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&   rM   rI   rU   ÚrhsrJ   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õ   çš™™™™™É?r+  Úabcrm   r   r+  r   )r+  r   )r   r+  r+  )rP   r3   )r   r+  r+  r   r   )rõ   r+  r   r+  )r   rC   rp   rq   ru   rr   r$   rE   rF   rÌ   rt   rX   )r&   rI   Ú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                   @   sB   e Zd Zddœdd„Zedœdd„ZeZedœdd„Zd	d
„ Z	dS )zCTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TON)Úreturnc                 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ç   r1  ©r&   r)   r)   r*   Ú__str__|  s    zKTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__str__c                 S   s   | j |j kS r0  r1  )r&   Úotherr)   r)   r*   Ú__eq__�  s    zJTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__eq__c                 S   s   | S r0  r)   r3  r)   r)   r*   rU   „  s    zHTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.view)
r,   r-   r.   r2  rë   r4  Ú__repr__ré   r6  rU   r)   r)   r)   r*   ÚTOx  s
   r8  r   r   rm   rY   r   )r   r$   rE   rF   rC   rš   )r&   r8  rI   rx   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ƒsrJ ‚t 	|j
|j
d ¡ d S )Nr   rÀ   ÚABCZaabr  r   )r   rC   rp   rq   rr   r$   Ú
isinstancer   rE   Úassert_almost_equalrA   ÚT)r&   rI   rx   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�   ro   )r   r   r   r`   r   r   r—   )r   r$   ZtakerE   rF   ©r&   rI   rx   rJ   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ü   r3   )r   r	   r$   r   rE   rt   r@   rF   r?  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   r^   rh   ©TFT)r^   r   rh   r   )r   r$   rE   rt   r   rF   )r&   rC  rB  r[   rJ   rI   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 )	Nrg   r�   ÚInt64r5   r   ZfoorŽ   )rŽ   rg   r©   )r&   rI   ÚresrJ   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'  r  r5   r   r   r   )r   r   rº   )r   rC   r   r$   r6   rE   rF   r  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s2J ‚|d |d< |d |d ksRJ ‚d S )Nr   g      $@r   r   r   )r   Z_valuesr   r$   )r&   rT   rI   r[   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œƒ}|rntjtdd��4 t dtddgƒiƒ|jd d …d	gf< W d   ƒ qÀ1 sb0    Y  nRt 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-02Z2021Z2022r”   z%Setting an item of incompatible dtyperb   rg   r   z2021-01-01 00:00:00z2022-01-01 00:00:00F)Zcheck_dtype)r   rE   rÈ   rÉ   r   r$   r   rF   )r&   Zusing_infer_stringrI   rJ   r)   r)   r*   Ú)test_iloc_setitem_multicolumn_to_datetimeð  s    ÿD$þûÿ	zATestiLocBaseIndependent.test_iloc_setitem_multicolumn_to_datetime)Qr,   r-   r.   Ú__doc__r/   r0   r1   Úslicer<   r   rC   ZasarrayrE   rÌ   r$   rK   Úfilterwarningsr   r   rV   r\   ry   r€   rr   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  r
  r  r  r
   rš   r  r	   r  r  r  r  r  r#  r(  r*  r.  r9  r>  r@  rA  rE  rH  rJ  ÚtdZ&skip_array_manager_not_yet_implementedrK  rL  r)   r)   r)   r*   r2   <   sÔ   
úþ 
"
eýþ	



1#$
$

$

E!	







%"
r2   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 sF0    Y  tjttd��L t 	|on|t u ¡� d|jd< W d   ƒ n1 s’0    Y  W d   ƒ n1 s°0    Y  d S )Nz5Cannot index by location index with a non-integer keyrb   g      @r   )
r   rZ   r/   rs   rƒ   r$   r%   Ú_slice_iloc_msgrE   r  )r&   Zseries_with_simple_indexrR   r¸   r(   rv   r)   r)   r*   Útest_iloc_float_raises
  s    
(
ÿz%TestILocErrors.test_iloc_float_raisesrL   rM   TFc                 C   s¨   t jtdd��, |jd d …d d …d d …f  W d   ƒ n1 s@0    Y  |rZ|d d … }t jtdd��, d|jd d …d d …d d …f< W d   ƒ n1 sš0    Y  d S )NzToo many indexersrb   ztoo many indices for arrayr   )r/   rs   r   r$   r%   )r&   Zfloat_framerM   rU   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 sR0    Y  d}tjt|d�� |j|  W d   ƒ n1 sŽ0    Y  d S )Nr   r�   rD  zADataFrame indexer for .iloc is not supported. Consider using .locrb   r   zWDataFrame indexer is not allowed for .iloc
Consider using .loc for automatic alignment.)r   r/   rs   rƒ   r$   r%   )r&   rI   r4   rv   r)   r)   r*   Útest_iloc_frame_indexer.  s    (ÿz&TestILocErrors.test_iloc_frame_indexerN)
r,   r-   r.   rS  r/   r0   rO  r1   rT  rU  r)   r)   r)   r*   rQ    s
   

rQ  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snJ ‚|jjd tjks„J ‚d S )
Nr   r”   r   r3   rP   r—   r   r:   )r   r   )r   r   r$   ÚdtypesrC   rÖ   )r&   r›   rœ   rI   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Ð   r`   Ústr3r   )r   rë   r[  r©   r  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sbJ ‚d S )Nr´   r5   r   rP   r˜   r`   r   )	r   rC   r€   rÖ   r�   r$   rB   r  rW  rþ   r)   r)   r*   Ú*test_iloc_setitem_series_duplicate_columnsS  s
    ÿ(zJTestILocSetItemDuplicateColumns.test_iloc_setitem_series_duplicate_columns)rW  Ú
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ë   rY  rZ  )ra   r6   r   )r   r=   r$   rB   rE   rF   )r&   rW  r^  r_  rI   Zexpected_dfr)   r)   r*   Ú*test_iloc_setitem_dtypes_duplicate_columnsZ  s    ÿ&
ýzJTestILocSetItemDuplicateColumns.test_iloc_setitem_dtypes_duplicate_columnsN)
r,   r-   r.   rX  r\  r]  r/   r0   r1   rb  r)   r)   r)   r*   rV  >  s   	þrV  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 )NrO   Úaabb©ÚXÚYrÏ   rW   c                 S   s   ddgS ©Nr   r3   r)   r¥   r)   r)   r*   r§   x  r¨   zCTestILocCallable.test_frame_iloc_getitem_callable.<locals>.<lambda>r   r3   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   {  r¨   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   ~  r¨   c                 S   s   dS ©Nr   r)   r¥   r)   r)   r*   r§   ~  r¨   r   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   �  r¨   c                 S   s   dgS ri  r)   r¥   r)   r)   r*   r§   �  r¨   c                 S   s   dS ri  r)   r¥   r)   r)   r*   r§   …  r¨   c                 S   s   dgS ri  r)   r¥   r)   r)   r*   r§   ˆ  r¨   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   ‹  r¨   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   Ž  r¨   )r   rr   r$   rE   rF   rt   )r&   rI   rG  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 )NrO   rd  r5   re  rÏ   rW   r   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   š  r¨   zCTestILocCallable.test_frame_iloc_setitem_callable.<locals>.<lambda>r   r3   r   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§      r¨   r^   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   ¦  r¨   c                 S   s   dS ri  r)   r¥   r)   r)   r*   r§   ¦  r¨   é   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   ¬  r¨   c                 S   s   dgS ri  r)   r¥   r)   r)   r*   r§   ¬  r¨   r•   c                 S   s   dS ri  r)   r¥   r)   r)   r*   r§   ³  r¨   éûÿÿÿc                 S   s   dgS ri  r)   r¥   r)   r)   r*   r§   ¹  r¨   rh   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   ¿  r¨   c                 S   s   ddgS rh  r)   r¥   r)   r)   r*   r§   Å  r¨   )r   r   rr   r=   r@   r$   rE   rF   )r&   rI   rG  r±   r)   r)   r*   Ú test_frame_iloc_setitem_callable‘  sX    þz1TestILocCallable.test_frame_iloc_setitem_callableN)r,   r-   r.   rj  rm  r)   r)   r)   r*   rc  r  s   rc  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestILocSeriesc           	   	   C   sP  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 ¡�F t |¡� d|d d …< W d   ƒ n1 sÆ0    Y  W d   ƒ n1 sä0    Y  |�rt ||¡ n|j	dd… dk ¡ �sJ ‚|j	g d	¢ }| |j
g d	¢ ¡}t ||¡ d S )
Nr   rh   r   r]   rW   r   r3   rP   )r   r   r3   rP   r^   )r   rC   rp   rq   ru   rr   r<   r@   r}   r$   rX   rE   r<  rN  rÌ   rt   rÈ   r  r  Zreindex)	r&   rS   r¸   r[   Zser_originalrû   rx   r±   rJ   r)   r)   r*   Ú	test_ilocÌ  s(    ÿ
HzTestILocSeries.test_ilocc                 C   s*   t g d¢g d¢d�}|jd dks&J ‚d S )Nr   r·   rW   r   )r   r$   )r&   r[   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�   ro   )r   r   r   rW   r   r3   )r   r^   rn   )r   r$   rE   rt   )r&   Zser1Zser2rJ   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��6 |jd d …df  d¡|jd d …df< W d   ƒ n1 s^0    Y  t dgtt	gdd�dœƒ}t 
||¡ d S )NÚtest)r   rÐ   rÇ   rb   rÐ   rF  r5   )r   rC   rš   rE   rÈ   rÉ   rÌ   rB   r   r   rF   r	  r)   r)   r*   Ú#test_iloc_nullable_int64_size_1_nan÷  s
    Dz2TestILocSeries.test_iloc_nullable_int64_size_1_nanN)r,   r-   r.   ro  rp  r(  rr  r)   r)   r)   r*   rn  Ë  s   rn  )+rM  r   ÚreÚnumpyrC   r/   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrP  Zpandasr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingrE   Zpandas.api.typesr   Zpandas.tests.indexing.commonr   ÚescaperR  r   r2   rQ  rV  rc  rn  r)   r)   r)   r*   Ú<module>   s8   Dÿ         T74Y