a
    oÝEb�¼  ã                   @   s  d Z ddlmZ ddlZddlmZmZ ddlZddl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 ddlmZ ddlmZ ddlm Z  ddl!m"Z" e #d	¡Z$G d
d„ de"ƒ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)Úcatch_warningsÚsimplefilter)ÚNAÚCategoricalÚCategoricalDtypeÚ	DataFrameÚIndexÚIntervalÚNaTÚSeriesÚarrayÚconcatÚ
date_rangeÚisna)Ú	is_scalar)ÚIndexingError)ÚBasezuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indicesc                   @   s,   e Zd Zej dddg d¢g¡dd„ ƒZdS )ÚTestiLocÚkeyé   éÿÿÿÿ©r   é   r   c                 C   s   | j d|g d¢td� d S )NÚiloc)ÚlabelsÚmixedÚtsZfloatsÚempty)ZtypsZfails)Zcheck_resultÚ
IndexError)Úselfr   © r!   ú_/home/ja/django-apps/lartica_env/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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d.d/„ Z d0d1„ Z!d2d3„ Z"d4d5„ Z#d6d7„ Z$d8d9„ Z%d:d;„ Z&d<d=„ Z'd>d?„ Z(d@dA„ Z)dBdC„ Z*dDdE„ Z+dFdG„ Z,ej ddHgedddƒe
 dHg¡g¡ej dIdJge
 dJg¡g¡dKdL„ ƒƒZ-dMdN„ Z.dOdP„ Z/dQdR„ Z0dSdT„ Z1dUdV„ Z2dWdX„ Z3ejj4dYdZ�d[d\„ ƒZ5d]d^„ Z6d_d`„ Z7dadb„ Z8ej dIde9e
j:g¡dcdd„ ƒZ;ej dee<dHdƒdfdgg¡dhdi„ ƒZ=djdk„ Z>ej dejejg¡dldm„ ƒZ?dndo„ Z@eAjBdpdq„ ƒZCej dree
jg¡dsdt„ ƒZDej ddgedduƒg¡dvdw„ ƒZEdxdy„ ZFdzd{„ ZGd|d}„ ZHd~d„ ZId€d�„ ZJd‚dƒ„ ZKej d„ee
jg¡ej d…ee
jg¡d†d‡„ ƒƒZLdˆd‰„ ZMdŠd‹„ ZNdS )ŒÚTestiLocBaseIndependentzTests Independent Of Base Classr   Né   r   Úindexerc           
      C   sH  t dtdƒitd�}tg d¢ƒ}|s:|jjd  |¡s:J ‚| ¡ }|j}|||ƒ|df< t	|t
ƒol|t
d ƒk}|sv|r–t d|iƒ}	t |j|¡rÂJ ‚n,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œƒ}| ¡ }|j}|||ƒ|df< t |tdƒdœƒ}	t ||	¡ d S )	Nr   r+   ©Údtype)ÚalphaÚbetaÚgammar1   ©r   r   r   ©r   r   )r   ÚrangeÚobjectr   Ú_mgrÚblocksZ_can_hold_elementÚcopyÚvaluesÚ
isinstanceÚsliceÚnpÚshares_memoryÚastypeÚtmÚassert_frame_equalr   r   )
r    r,   r   Úusing_array_managerÚframeÚcatÚdfZ	orig_valsÚ	overwriteÚexpectedr!   r!   r"   Ú%test_iloc_setitem_fullcol_categorical:   s.    
 z=TestiLocBaseIndependent.test_iloc_setitem_fullcol_categoricalÚboxc                 C   sì   t g d¢ƒ}|| d¡ƒ}|tu s&|s.|j}n
|d j}|tu r\||dd … ƒ|jd d…< n||dd … ƒ|jd d…df< |tj g d¢dd�ƒ}t ||¡ |tu r´|j|u sèJ ‚n4|rÌ|d j|u sèJ ‚n|jj|ju rä|jd usèJ ‚d S )N©r   r   r+   é   Úi8r   r   )r+   rJ   r+   rJ   r-   )	r   Zto_numpyr   r9   r   r<   r?   Zassert_equalÚbase)r    Úframe_or_seriesrH   rA   ÚarrÚobjr9   rF   r!   r!   r"   Útest_iloc_setitem_ea_inplacem   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   r+   ©Úindex)r   ©r   r   )r	   r   r4   r   Z_is_scalar_accessÚto_frame)r    rR   ÚserrD   r!   r!   r"   Útest_is_scalar_accessŠ   s
    z-TestiLocBaseIndependent.test_is_scalar_accessc                 C   sà  t tj d¡tdƒd�}d}tjt|d��& |jd d …g d¢f  W d   ƒ n1 sV0    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 �sN0    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 �s<0    Y  tjt|d�� |jd	  W d   ƒ n1 �sv0    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	 ||¡ dd„ }t tj dd¡tdƒd�}||jd d …dd…f t |jd�ƒ ||jd d …dd…f |jd d …dgf ƒ ||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 ) N)é   é   ÚABCDE©Úcolumnsz%positional indexers are out-of-bounds©Úmatch©r   r   r   r+   rJ   rX   r   é   iâÿÿÿéd   ÚAiœÿÿÿz*single positional indexer is out-of-boundsrJ   é
   éüÿÿÿiöÿÿÿr   r   iõÿÿÿé   é   c                 S   s   t | ƒ | j t | |¡ d S ©N)ÚstrÚdtypesr?   r@   )ÚresultrF   r!   r!   r"   Úchecké   s    z?TestiLocBaseIndependent.test_iloc_exceeds_bounds.<locals>.checkrX   r   ZABr+   rQ   é   ©rJ   rX   rk   )r   r<   ÚrandomZrandom_sampleÚlistr'   Úraisesr   r   r?   r@   Úassert_series_equalÚrandnrR   )r    rD   ÚmsgÚsri   rF   rj   Zdflr!   r!   r"   Útest_iloc_exceeds_bounds”   sˆ    4,,,,,****$,.z0TestiLocBaseIndependent.test_iloc_exceeds_boundszindex,columnsrW   rY   zindex_vals,column_valsra   ÚDÚ1Ú2iã  r   c                 C   sd   t tj t|ƒt|ƒ¡||d�}d}tjt|d�� |j||f  W d   ƒ n1 sV0    Y  d S )N©rR   r[   z$.iloc requires numeric indexers, gotr\   )	r   r<   rm   rq   Úlenr'   ro   r   r   )r    rR   r[   Z
index_valsZcolumn_valsrD   rr   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 )Nr`   rb   zCannot index by location indexr\   Úa)
r   r<   ÚarangeÚreshaper?   Úget_objr'   ro   Ú	TypeErrorr   )r    rM   rO   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   )r`   ée   éf   )ég   éh   éi   )éj   ék   él   ©ra   ÚBÚC©r   r   r+   rQ   )r<   r   r8   r   r   r?   Zassert_numpy_array_equal)r    Zarray_with_neg_numbersZ
array_copyrD   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   r+   rX   )é   rd   é   ©ra   rŠ   ra   r   éýÿÿÿr{   rQ   r   )r   r   r?   rp   r@   r   )r    rD   rs   rF   ri   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   r+   rJ   ©Zaxisr2   r   ©ra   rŠ   ra   rŠ   )rR   Úname)	r   r   r   r   r   r<   Únanr?   rp   )r    Údf1Údf2rD   ri   rF   r!   r!   r"   Útest_iloc_getitem_dups>  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   r+   r‰   r`   éÈ   é,  éè  éÐ  é¸  r   )rŠ   r‹   rQ   )r   r?   r@   r   ©r    rD   rF   ri   r!   r!   r"   Útest_iloc_getitem_arrayL  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   r+   r‰   r`   rš   r›   rœ   r�   rž   )TTFr   rQ   c                 S   s   | j d dkS )Nr   r   rQ   ©Úxr!   r!   r"   Ú<lambda>o  ó    z@TestiLocBaseIndependent.test_iloc_getitem_bool.<locals>.<lambda>©r   r   r?   r@   rŸ   r!   r!   r"   Útest_iloc_getitem_bool_  s    


ýÿÿz.TestiLocBaseIndependent.test_iloc_getitem_boolrR   TF)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 r\   )r   ry   r'   ro   r   r   )r    rR   rs   rr   r!   r!   r"   Útest_iloc_getitem_bool_diff_lenr  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   r+   r‰   r`   rš   r›   rœ   r�   rž   r�   rQ   r   )ra   r‹   c                 S   s   ddgS )Nr   r   r!   )rD   r!   r!   r"   r£   Ž  r¤   zATestiLocBaseIndependent.test_iloc_getitem_slice.<locals>.<lambda>r¥   rŸ   r!   r!   r"   Útest_iloc_getitem_slicez  s"    


ýÿÿz/TestiLocBaseIndependent.test_iloc_getitem_slicec                 C   s¢  t tj dd¡g d¢d�}t tj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 )Nrb   rJ   )ra   ra   rŠ   rŠ   rZ   r   rW   ©Úsizer   ra   r‹   r   r“   r+   )
r   r<   rm   rq   Úrandintr}   r   r?   r@   r   )r    r—   r˜   rD   Ú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�}d|jd	< |jd	 }|dksLJ ‚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 )NrJ   r   é   r   é   r+   rx   r   ©r   r   rl   rQ   ©r   r   r   )
r   r<   rm   rq   r|   r   r?   r@   r   rp   ©r    rD   ri   rF   rs   r!   r!   r"   Útest_iloc_setitem«  s    $ÿ

z)TestiLocBaseIndependent.test_iloc_setitemc                 C   s¤   t g d¢g d¢g d¢gƒ}t g d¢g d¢g d¢gƒ}d|jdd�d< t ||¡ t g d¢g d¢g d¢gƒ}t g d	¢g d
¢g d¢gƒ}d|jdd�d< t ||¡ d S )N)rk   Úcrb   )rŽ   Údrd   )r®   Úer¯   )rX   rX   rX   rX   r   r“   r   )rk   r´   rX   )rŽ   rµ   rX   )r®   r¶   rX   r   r¥   ©r    rD   rF   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�}|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é	   )r+   r+   r‰   rx   r   r   r   r`   )	r   r�   r‚   r+   r„   r…   rk   rŽ   r®   )r   r<   r|   r}   r   r   r?   r@   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   r+   )r   r   éþÿÿÿr+   r   r»   r   r   )r   r8   r   r?   rp   r	   )r    Zs_origrF   rs   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   r+   rJ   r“   r   r3   rŠ   ra   T)Zdrop)r   r   Zfillnar<   Úisnanr   rR   r?   r@   r[   Zreset_index)r    r—   r˜   rD   rF   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 ‚|jd d …df d |jd d …df< |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   r+   rŠ   rZ   Zf8g      à?)	r   r   r>   ry   r6   r7   r8   r?   r@   )r    rA   rD   rF   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shJ ‚|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 )Nrb   rJ   r   rW   r   r®   rx   )r   r   )rJ   rJ   é   r+   rX   )r   r   r+   )r   r   rk   r   )r   r   r+   r   )re   r   rk   rk   )r   r   r   r+   )re   re   r   rk   )rR   r.   )r   rJ   rk   r®   )r   r<   rm   rq   r4   r   Úlocr?   rp   r@   r   r5   rR   )r    rD   ri   r¬   rF   rs   r!   r!   r"   Útest_iloc_getitem_frame!  s>     ÿ



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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 )Nrb   rJ   Ú
abcdefghijÚABCDrx   r°   )ÚbrŠ   r   r+   r‹   )r   r   )Újru   z/index 5 is out of bounds for axis 0 with size 4r\   )rb   rX   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   r<   rm   rq   rn   r   rÂ   r?   r@   r'   ro   r   Ú
ValueError)r    rD   ri   r¬   rF   rr   r!   r!   r"   Ú test_iloc_getitem_labelled_frameP  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|ƒ |j	 t|dd…d	d
…f |dd… |d	d
… d�}t
 ||¡ tdƒ|_|jdd…d	d
…f }t|ƒ |j	 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�}|�sJ|jjd	 j |jdd…d
d…f }t|ƒ |j	 t|dd…d
d…f |dd… |d
d… d�}t
 ||¡ d S )Nrk   rJ   Z20130101)ZperiodsrÅ   rx   r+   rX   r   r   ZaaaaZaar¯   r®   r   )r<   rm   rq   r   rn   r   Zdescriber   rg   rh   r?   r@   r[   r4   r6   r7   Zmgr_locs)r    rA   rN   rR   r[   rD   ri   rF   r!   r!   r"   Útest_iloc_getitem_doc_issueq  s6    .
*.z3TestiLocBaseIndependent.test_iloc_getitem_doc_issuec                 C   sV  t tj dd¡tdƒt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¡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 )Nrb   rJ   rÄ   rÅ   rx   r   r°   r   r   r+   rW   rQ   r   rk   )r   r   rJ   )r   r+   rX   r^   )r   r<   rm   rq   rn   r   r?   r@   r   r4   rp   r²   r!   r!   r"   Útest_iloc_setitem_seriesœ  s0    ÿ



z0TestiLocBaseIndependent.test_iloc_setitem_seriesc                 C   s¾   t tjddd�tjddd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œƒ}ddgddgg|jd	d
…< t g d¢g d¢dœƒ}t ||¡ d S )NrX   Úint64r-   rb   r�   rd   r¯   r�   r   rJ   )r   r   rb   r¯   rJ   )rX   rk   rd   r�   r¹   ©r{   rÆ   r´   rµ   r¶   r¢   Úy)r{   rÆ   r¢   rÎ   r¶   )r   r<   r|   r   r?   r@   r·   r!   r!   r"   Útest_iloc_setitem_list_of_lists¼  s    ÿÿz7TestiLocBaseIndependent.test_iloc_setitem_list_of_listsr   ÚvalueÚZc                 C   sL   t ddgddggddgd�}||jd|f< |jd	 }t|ƒrD|d
ksHJ ‚d S )Nr   r   r+   rJ   ra   rŠ   rZ   r   r2   rÑ   )r   r   r   )r    r,   rÐ   rD   ri   r!   r!   r"   Ú#test_iloc_setitem_with_scalar_indexÎ  s    
z;TestiLocBaseIndependent.test_iloc_setitem_with_scalar_indexc                 C   sH  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œ	}td
d��� tdtƒ dD ]ä}	|jdkj}|	�rlt|t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�rptd|› d|› d|› d�ƒ‚�qp�q>W d   ƒ n1 �s:0    Y  d S )NrX   rY   r{   rx   r   r   zBiLocation based boolean indexing cannot use an indexable as a maskr\   zDiLocation based boolean indexing on an integer type is not availableTr-   rJ   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)rR   rÙ   )rR   rÚ   )rR   rÛ   )r×   rÙ   )r×   rÚ   )r×   rÛ   )ÚrecordÚignore)NrR   r×   )rÙ   rÚ   rÛ   r   rØ   ú[z] does not match [z], received [ú])r   rn   r4   r{   r'   ro   rÈ   r   ry   rR   ÚNotImplementedErrorr<   r   Úboolr?   r@   r|   r   r   ÚUserWarningrØ   r9   r   ÚreversedÚgetattrrg   rÓ   Úsumr   ÚgetÚAssertionError)r    rD   r¾   rr   ri   r×   rØ   ZrepsrF   ÚidxÚmethodÚaccessorZanswerr¶   r   Ú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�   r_   éc   r   r+   rœ   znot in indexr\   )r   r<   r|   r   r   r?   r@   r'   ro   ÚKeyErrorrÂ   )r    rD   rè   rF   Zdf3ri   r˜   r!   r!   r"   Útest_iloc_non_unique_indexing"  s    

z5TestiLocBaseIndependent.test_iloc_non_unique_indexingc                 C   sž   t  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 )NrX   r   r   T)Zcheck_index_typeZcheck_column_type)r?   ZmakeCustomDataframer@   r   ©r    rD   r!   r!   r"   Ú"test_iloc_empty_list_indexer_is_ok4  s     üü ÿz:TestiLocBaseIndependent.test_iloc_empty_list_indexer_is_okc                 C   sà   |rt jjdd�}|j |¡ tdg d¢iƒ}|jd d … }||usHJ ‚t |d |d ¡s`J ‚g d¢|j	d d …df< |d dk 
¡ sŠJ ‚tg d¢ƒ}|jd d … }||us°J ‚g d¢|d d	…< t
|d d	… g d¢kƒsÜJ ‚d S )
Nz0setting with .loc[:, 'a'] does not alter inplace©Úreasonr{   rŒ   )rJ   rJ   rJ   rJ   )r   r   r+   rJ   rX   rk   ©rŽ   r®   r¹   r+   )r'   r(   ÚxfailÚnodeZ
add_markerr   r   r<   r=   rÂ   Úallr   )r    rA   Úrequestr(   Zoriginal_dfZ	sliced_dfZoriginal_seriesZsliced_seriesr!   r!   r"   Ú&test_identity_slice_returns_new_objectJ  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   r+   rJ   r   ©r•   )r   r   r<   r   r   r?   rp   )r    rD   ri   rs   r!   r!   r"   Útest_indexing_zerodim_np_arraye  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   r<   r   )r    rs   ri   r!   r!   r"   Ú%test_series_indexing_zerodim_np_arrayl  s    z=TestiLocBaseIndependent.test_series_indexing_zerodim_np_arrayz1https://github.com/pandas-dev/pandas/issues/33457ró   c                 C   sV   t g d¢ƒ}t|g d¢dœƒ}|d d d… |jd d …df< t g d¢ƒ}t ||¡ d S )Nr‰   rŒ   )r   r   r   r   )r‹   rŠ   ra   )r   r   r   r?   Zassert_categorical_equal)r    rC   rD   rF   r!   r!   r"   Ú-test_iloc_setitem_categorical_updates_inplacer  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   r+   rJ   rX   rk   r®   rb   r¯   )TTFF)FFTTg      @g      (@g      @)r   r<   r–   r   rR   r?   r@   ©r    ri   rF   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Í   ©Ú
categoriesÚcategory)rR   r•   r.   )r   r   Úsplitr   r   r?   rp   )r    rD   ri   Zraw_catrF   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   r>   r   r   r?   rp   )r    rU   ri   rF   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]r-   r   r   r   )r   r   r   r?   rp   )r    rÐ   ZseriesrF   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  r-   r+   )r   r   r   r?   rp   )r    r	  Znulls_fixturer.   rU   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 t|ƒt|ƒ¡||d�}tjjddd�}d|j› �}tj	t
|d�� d|j|< W d   ƒ n1 sr0    Y  d S )Nrx   rX   )r   r   r   r©   zCannot set values with ndim > r\   r   )r	   r   r<   rm   rq   ry   r«   Úndimr'   ro   rÈ   r   )r    rè   rO   Znd3rr   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 )Nrb   F)ÚwriterŒ   r   r+   )r<   Úeyer   Zsetflagsr?   r@   rp   )r    r,   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Údatar`   Úfloat64r-   )r   r+   rk   F)r   r<   Zonesr   ÚflagsZ	writeabler   rÂ   r?   r@   rp   )r    rD   Úindicesri   rF   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   ©r[   rR   rŒ   r2   )r   r   r   r?   r@   r·   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   r+   rJ   )ÚflagrÐ   r  r   r   )r   r+   rJ   r¥   )r    r  rD   r,   rF   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œƒ}|jd d …dgf |jd d …|f< t g d¢g d¢g d¢dœƒ}t ||¡ d S )	N)rd   r¯   r�   )rÁ   é   é   )Za2Úb2rŒ   rl   rõ   ©r{   rÆ   r´   r   r¥   )r    r,   r—   r˜   rF   r!   r!   r"   Ú%test_iloc_setitem_pure_position_basedü  s
    "z=TestiLocBaseIndependent.test_iloc_setitem_pure_position_basedc                 C   s’   t ddgddgdœƒ}dddœ}||jd< t ddgddgdœƒ}t ||¡ t ddgddg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    rD   ÚrhsrF   r!   r!   r"   Ú"test_iloc_setitem_dictionary_value  s    


z:TestiLocBaseIndependent.test_iloc_setitem_dictionary_valuec                 C   sh  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"  Úabcrx   r   r"  r   )r"  r{   )r   r"  r"  rJ   )r   r"  r"  r   r   )rí   r"  r   r"  )r   r<   rm   rq   rn   r   r?   r@   rÂ   rp   rR   )r    rD   Úexpectr!   r!   r"   Ú"test_iloc_getitem_float_duplicates  s0    ÿ
ÿ
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„ 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>.TOc                 S   s
   || _ d S rf   ©rÐ   )r    rÐ   r!   r!   r"   Ú__init__7  s    zLTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__init__)Úreturnc                 S   s   d| j › d�S )NrÞ   rß   r&  ©r    r!   r!   r"   Ú__str__:  s    zKTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__str__c                 S   s   | j |j kS rf   r&  )r    Úotherr!   r!   r"   Ú__eq__?  s    zJTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__eq__c                 S   s   | S rf   r!   r)  r!   r!   r"   ÚviewB  s    zHTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.viewN)
r$   r%   r&   r'  rg   r*  Ú__repr__rá   r,  r-  r!   r!   r!   r"   ÚTO6  s
   r/  r   r   rx   rS   r   )r   r   r?   r@   r<   r–   )r    r/  rD   ri   r!   r!   r"   Útest_iloc_setitem_custom_object4  s    z7TestiLocBaseIndependent.test_iloc_setitem_custom_objectc                 C   s†   t tj dd¡tdƒtdƒd�}|jd }t|tƒs8J ‚t 	|j
|j
d ¡ |jjd d …df }t|tƒsnJ ‚t 	|j
|j
d ¡ d S )Nr+   ÚABCZaabr  r   )r   r<   rm   Zrandrn   r   r:   r   r?   Úassert_almost_equalr9   ÚT)r    rD   ri   r!   r!   r"   Ú!test_iloc_getitem_with_duplicatesV  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Œ   rl   )r   r   r   rZ   r   r   r“   )r   r   Ztaker?   r@   ©r    rD   ri   rF   r!   r!   r"   Ú"test_iloc_getitem_with_duplicates2b  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û   r+   )r   r
   r   r   r?   rp   r8   r@   r5  r!   r!   r"   Útest_iloc_intervali  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   rX   rb   ©TFT)rX   r   rb   r{   )r   r   r?   rp   r   r@   )r    r9  r8  rU   rF   rD   r!   r!   r"   Útest_loc_setitem_boolean_listz  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 )	Nra   rŒ   ÚInt64r-   r   ZfoorŠ   )rŠ   ra   r¥   )r    rD   ÚresrF   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  r-   r{   r   r   )r{   r{   r´   )r   r<   r   r   r.   r?   r@   r·   r!   r!   r"   Ú*test_iloc_setitem_2d_ndarray_into_ea_block”  s    .zBTestiLocBaseIndependent.test_iloc_setitem_2d_ndarray_into_ea_block)Or$   r%   r&   Ú__doc__r'   r(   r)   r;   r4   r	   r<   Zasarrayr?   rÂ   r   rG   r   r   rP   rV   rt   r|   rn   r   rz   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  ÚtdÚ&skip_array_manager_not_yet_implementedr  r  r  r!  r%  r0  r4  r6  r7  r;  r>  r@  r!   r!   r!   r"   r*   7   s¬   
úþ'

fýþ		
/!+ $G
	


	



!"r*   c                   @   s*   e Zd Zdd„ Zdd„ Zej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�� d|jd< W d   ƒ n1 s~0    Y  d S )Nz5Cannot index by location index with a non-integer keyr\   g      @r   )r   rT   r'   ro   r   r   r   Ú_slice_iloc_msg)r    Zseries_with_simple_indexrM   rO   rr   r!   r!   r"   Útest_iloc_float_raises   s    (z%TestILocErrors.test_iloc_float_raisesc                 C   s˜   t jtdd��, |jd d …d d …d d …f  W d   ƒ n1 s@0    Y  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 indexersr\   ztoo many indices for arrayr   )r'   ro   r   r   r   )r    Zfloat_framer!   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ƒ}t t¡� d|j|< W d   ƒ n1 sJ0    Y  d}tjt|d�� |j|  W d   ƒ n1 s†0    Y  d S )Nr{   rŒ   r:  r   zWDataFrame indexer is not allowed for .iloc
Consider using .loc for automatic alignment.r\   )r   r?   Zassert_produces_warningÚFutureWarningr   r'   ro   r   )r    rD   r,   rr   r!   r!   r"   Útest_iloc_frame_indexer¼  s    (ÿz&TestILocErrors.test_iloc_frame_indexerN)r$   r%   r&   rF  rG  rB  rC  rI  r!   r!   r!   r"   rD  �  s   	rD  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   r+   rJ   r“   r   r2   )r   r   )r   r   r   rh   r<   rÌ   )r    r—   r˜   rD   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   rg   Ústr2©r{   rÆ   rÆ   rZ   Ústr3r   )r   rg   rN  r¥   r·   r!   r!   r"   Ú(test_iloc_setitem_list_duplicate_columnsØ  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®   r-   r   rJ   r”   rZ   r   )	r   r<   r|   rÌ   r}   r   r>   r  rh   rñ   r!   r!   r"   Ú*test_iloc_setitem_series_duplicate_columnsá  s
    ÿ(zJTestILocSetItemDuplicateColumns.test_iloc_setitem_series_duplicate_columns)rh   Ú
init_valueÚexpected_value)rÌ   Ú0r   )Úfloatz1.2g333333ó?c                 C   sf   t |ddggg d¢d�}|jd d …df  |¡|jd d …df< t |ddggg d¢d�}t ||¡ d S )Nrg   rL  rM  rZ   r   )r   r   r>   r?   r@   )r    rh   rQ  rR  rD   Zexpected_dfr!   r!   r"   Ú*test_iloc_setitem_dtypes_duplicate_columnsè  s    &ÿzJTestILocSetItemDuplicateColumns.test_iloc_setitem_dtypes_duplicate_columnsN)
r$   r%   r&   rK  rO  rP  r'   r(   r)   rU  r!   r!   r!   r"   rJ  Ì  s   	þrJ  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 )NrI   Úaabb©ÚXÚYrÅ   rQ   c                 S   s   ddgS ©Nr   r+   r!   r¡   r!   r!   r"   r£   þ  r¤   zCTestILocCallable.test_frame_iloc_getitem_callable.<locals>.<lambda>r   r+   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£     r¤   c                 S   s   ddgS r[  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 r[  r!   r¡   r!   r!   r"   r£     r¤   c                 S   s   dgS r\  r!   r¡   r!   r!   r"   r£     r¤   c                 S   s   dS r\  r!   r¡   r!   r!   r"   r£     r¤   c                 S   s   dgS r\  r!   r¡   r!   r!   r"   r£     r¤   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£     r¤   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£     r¤   )r   rn   r   r?   r@   rp   )r    rD   r=  r!   r!   r"   Ú test_frame_iloc_getitem_callableù  s"    z1TestILocCallable.test_frame_iloc_getitem_callablec                 C   sB  t g 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 )NrI   rW  rX  rÅ   rQ   r   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£     r¤   zCTestILocCallable.test_frame_iloc_setitem_callable.<locals>.<lambda>r   r+   r   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£   #  r¤   rX   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£   )  r¤   c                 S   s   dS r\  r!   r¡   r!   r!   r"   r£   )  r¤   é   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£   /  r¤   c                 S   s   dgS r\  r!   r¡   r!   r!   r"   r£   /  r¤   r‘   c                 S   s   dS r\  r!   r¡   r!   r!   r"   r£   6  r¤   éûÿÿÿc                 S   s   dgS r\  r!   r¡   r!   r!   r"   r£   <  r¤   rb   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£   B  r¤   c                 S   s   ddgS r[  r!   r¡   r!   r!   r"   r£   H  r¤   )r   rn   r8   r   r?   r@   )r    rD   r=  r¬   r!   r!   r"   Ú test_frame_iloc_setitem_callable  sR    z1TestILocCallable.test_frame_iloc_setitem_callableN)r$   r%   r&   r]  r`  r!   r!   r!   r"   rV  ø  s   rV  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestILocSeriesc                 C   sÖ   t tj d¡ttdddƒƒd�}tt|ƒƒD ](}|j| }||j|  }t	 
||¡ q,|jtddƒ }|jdd… }t	 ||¡ d|d d …< |dd… dk ¡ s¤J ‚|jg d	¢ }| |jg d	¢ ¡}t	 ||¡ d S )
Nrb   r   rW   r   rQ   r   r+   rJ   )r   r   r+   rJ   rX   )r   r<   rm   rq   rn   r4   ry   r   rR   r?   r2  r;   rÂ   rp   rø   Zreindex)r    rU   Úiri   r¬   rF   r!   r!   r"   Ú	test_ilocO  s     
zTestILocSeries.test_ilocc                 C   s*   t g d¢g d¢d�}|jd dks&J ‚d S )Nr   r±   rQ   r   )r   r   )r    rU   r!   r!   r"   Útest_iloc_getitem_nonuniquee  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Œ   rl   )r   r   r   rQ   r   r+   )r   rX   rk   )r   r   r?   rp   )r    Zser1Zser2rF   r!   r!   r"   r  i  s
    z4TestILocSeries.test_iloc_setitem_pure_position_basedc                 C   sd   t dgtjgdœƒ}|jd d …df  d¡|jd d …df< t dgttgdd�dœƒ}t ||¡ d S )NÚtest)r{   rÆ   rÆ   r<  r-   )	r   r<   r–   rÂ   r>   r   r   r?   r@   rÿ   r!   r!   r"   Ú#test_iloc_nullable_int64_size_1_nanq  s    &z2TestILocSeries.test_iloc_nullable_int64_size_1_nanN)r$   r%   r&   rc  rd  r  rf  r!   r!   r!   r"   ra  N  s   ra  )+rA  r   ÚreÚwarningsr   r   Únumpyr<   r'   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrB  Zpandasr   r   r   r   r	   r
   r   r   r   r   r   r   Zpandas._testingZ_testingr?   Zpandas.api.typesr   Zpandas.core.indexingr   Zpandas.tests.indexing.commonr   ÚescaperE  r   r*   rD  rJ  rV  ra  r!   r!   r!   r"   Ú<module>   s8   8ÿ        n/,V