U
    ¾mœdDÂ  ã                   @   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
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)Úcatch_warningsÚsimplefilter)Ú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                
   @   sX   e Zd Zej ddddddgg¡ej dddg¡ej d	d
ddddg¡dd„ ƒƒƒZdS )ÚTestiLocÚkeyé   éÿÿÿÿ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*   úX/home/sam/Atlas/atlas_env/lib/python3.8/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ƒdddge	edƒƒe
 dddg¡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d*d+d*d+g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dgedddƒe
 dg¡g¡ej dHdIge
 dIg¡g¡dJdK„ ƒƒZ-dLdM„ Z.dNdO„ Z/dPdQ„ Z0dRdS„ Z1dTdU„ Z2dVdW„ Z3dXdY„ Z4dZd[„ Z5d\d]„ Z6d^d_„ Z7ej dHde8e
j9g¡d`da„ ƒZ:ej dbe;ddƒdcddg¡dedf„ ƒZ<dgdh„ Z=ej dejejg¡didj„ ƒZ>dkdl„ Z?dmdn„ Z@ej doee
jg¡dpdq„ ƒZAej ddgeddƒg¡drds„ ƒZBdtdu„ ZCdvdw„ ZDdxdy„ ZEdzd{„ ZFd|d}„ ZGd~d„ ZHej d€ee
jg¡ej d�ee
jg¡d‚dƒ„ ƒƒZId„d…„ ZJd†d‡„ ZKeLjMdˆd‰„ ƒZNdŠd‹„ ZOdS )ŒÚTestiLocBaseIndependentzTests Independent Of Base Classr   Né   r   r   r   Úindexerc           	      C   s  t dtdƒitd�}tdddgƒ}|s<|jjd  |¡s<t‚| ¡ }|j	}|||ƒ|df< t d|iƒ 
t¡}|s†t |d j	|¡s†t‚t ||¡ d|jd< |d dks¬t‚t tjddd	gtd�tdƒd
œƒ}| ¡ }|j	}|||ƒ|df< t | 
t¡tdƒd
œƒ}t ||¡ d S )Nr   r4   ©ÚdtypeÚalphaÚbetaÚgamma©r   r   r   r   ©r   r   )r	   ÚrangeÚobjectr   Ú_mgrÚblocksZ_can_hold_elementÚAssertionErrorÚcopyÚvaluesÚastypeÚnpÚshares_memoryÚtmÚassert_frame_equalr%   r   )	r'   r5   r   Úusing_array_managerr   ÚcatÚdfZ	orig_valsÚexpectedr*   r*   r+   Ú%test_iloc_setitem_fullcol_categoricalC   s&    
"z=TestiLocBaseIndependent.test_iloc_setitem_fullcol_categoricalÚboxc                 C   sú   t ddddgƒ}|| d¡ƒ}|tkr.|j}n|jjd }|tkr^||dd … ƒ|jd d…< n||dd … ƒ|jd d…df< |tj ddddgdd�ƒ}t 	||¡ |tkrà|rÐ|j|k	s¼t
‚t |j|¡sÞt
‚qö|j|ksöt
‚nt |d j|¡söt
‚d S )Nr   r   r4   é   Úi8r   r6   )r   Zto_numpyr   rC   r?   Zarraysr%   rE   rG   Zassert_equalrA   rF   )r'   Úframe_or_seriesrN   Úusing_copy_on_writeÚarrr)   rC   rL   r*   r*   r+   Útest_iloc_setitem_ea_inplacep   s     z4TestiLocBaseIndependent.test_iloc_setitem_ea_inplacec                 C   sJ   t dddgƒ}ttdƒ|d�}|j d¡s.t‚| ¡ }|j d¡sFt‚d S )Nr   r   r4   ©Úindex)r   ©r   r   )r
   r   r=   r%   Z_is_scalar_accessrA   Úto_frame)r'   rV   ÚserrK   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 …dddd	d
dgf  W 5 Q R X tjt|d�� |jddg  W 5 Q R X tjt|d�� |jddg  W 5 Q R X tjt|d�� |jdg  W 5 Q R X |d }tjt|d�� |jdg  W 5 Q R X tjt|d�� |jdg  W 5 Q R X d}tjt|d�� |jd  W 5 Q R X tjt|d�� |jd  W 5 Q R X tjt|d�� |jd  W 5 Q R X tjt|d�� |jd  W 5 Q R X |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g 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d
ddg  W 5 Q R X d}tjt|d�� |jd d …d
f  W 5 Q R X d S )N)é   é   ÚABCDE©Úcolumnsz%positional indexers are out-of-bounds©Úmatchr   r   r   r4   rO   r\   é   iâÿÿÿéd   ÚAiœÿÿÿz*single positional indexer is out-of-boundsé
   éüÿÿÿiöÿÿÿr   iõÿÿÿé   é   c                 S   s   t | ƒ | j t | |¡ d S ©N)ÚstrÚdtypesrG   rH   )ÚresultrL   r*   r*   r+   Úcheckì   s    z?TestiLocBaseIndependent.test_iloc_exceeds_bounds.<locals>.checkZAB©rV   r_   é   )r	   rE   ÚrandomZrandom_sampleÚlistr0   Úraisesr&   r%   rG   rH   Úassert_series_equalÚrandnrV   )r'   rK   ÚmsgÚsrl   rL   rm   Zdflr*   r*   r+   Útest_iloc_exceeds_bounds˜   sˆ    (&,z0TestiLocBaseIndependent.test_iloc_exceeds_boundszindex,columnsr[   r]   zindex_vals,column_valsrd   ÚDÚ1Ú2iã  c              	   C   sP   t tj t|ƒt|ƒ¡||d�}d}tjt|d�� |j||f  W 5 Q R X d S )Nrn   z$.iloc requires numeric indexers, gotr`   )	r	   rE   rp   rt   Úlenr0   rr   r&   r%   )r'   rV   r_   Z
index_valsZcolumn_valsrK   ru   r*   r*   r+   Útest_iloc_non_integer_raisesý   s      ÿz4TestiLocBaseIndependent.test_iloc_non_integer_raisesc              	   C   sJ   t t d¡ dd¡ƒ}t ||¡}tjtdd�� |j	d  W 5 Q R X d S )Nrc   re   zCannot index by location indexr`   Úa)
r	   rE   ÚarangeÚreshaperG   Úget_objr0   rr   Ú	TypeErrorr%   )r'   rQ   r)   r*   r*   r+   Ú test_iloc_getitem_invalid_scalar  s    z8TestiLocBaseIndependent.test_iloc_getitem_invalid_scalarc                 C   s|   t  dddg¡}| ¡ }tdddgddd	gd
ddgdœdddgd�}|j|  t ||¡ |jd d …|f  t ||¡ d S )Nr   r   r   rc   ée   éf   ég   éh   éi   éj   ék   él   ©rd   ÚBÚCr4   rU   )rE   r   rB   r	   r%   rG   Zassert_numpy_array_equal)r'   Zarray_with_neg_numbersZ
array_copyrK   r*   r*   r+   Ú-test_iloc_array_not_mutating_negative_indices  s    þ
zETestiLocBaseIndependent.test_iloc_array_not_mutating_negative_indicesc                 C   sÖ   t dddgdddgdœƒ}|d }|jd	 }|jd
 }t ||¡ |jd	g }|jd
g }t ||¡ |jd	 }|jd
 }||ks†t‚|jd	g }|jd
g }t ||¡ tdgdgd�}|jdg }t ||¡ d S )Nr   r4   r\   é   rg   é   ©rd   rŒ   rd   r   éýÿÿÿr}   rU   r   )r	   r%   rG   rs   rH   rA   r   )r'   rK   rv   rL   rl   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|ƒsVt‚|jdd d …f }ttjdddgd	d
d	d
gdd�}t 	||¡ d S )Nr   r‘   r   r4   rO   ©Zaxisr;   r   rd   rŒ   )rV   Úname)
r	   r   r%   r   rA   r   rE   ÚnanrG   rs   )r'   Údf1Údf2rK   rl   rL   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   r4   r‹   rc   éÈ   é,  éè  éÐ  é¸  r   )rŒ   r�   rU   )r	   rG   rH   r%   ©r'   rK   rL   rl   r*   r*   r+   Útest_iloc_getitem_arrayN  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dddg }t ||¡ t ddddœdd	d
dœgddgd�}|jdd„  }t ||¡ d S )Nr   r   r4   r‹   rc   rš   r›   rœ   r�   rž   TFr   rU   c                 S   s   | j d dkS )Nr   r   rU   ©Úxr*   r*   r+   Ú<lambda>q  ó    z@TestiLocBaseIndependent.test_iloc_getitem_bool.<locals>.<lambda>©r	   r%   rG   rH   rŸ   r*   r*   r+   Útest_iloc_getitem_boola  s    


ýÿ ÿz.TestiLocBaseIndependent.test_iloc_getitem_boolrV   TFc              	   C   sN   t dddgƒ}dt|ƒ› dt|ƒ› �}tjt|d�� |j|  W 5 Q R X d S )Nr   r   r4   z Boolean index has wrong length: z instead of r`   )r   r{   r0   rr   r&   r%   )r'   rV   rv   ru   r*   r*   r+   Útest_iloc_getitem_bool_diff_lent  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   r4   r‹   rc   rš   r›   rœ   r�   rž   r‘   rU   r   )rd   r�   c                 S   s   ddgS )Nr   r   r*   )rK   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¡ddddg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 )Nre   rO   rd   rŒ   r^   r   r[   ©Úsizer   r�   r   r”   r4   )
r	   rE   rp   rt   Úrandintr   r   rG   rH   r%   )r'   r—   r˜   rK   Ú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sLt‚d|jd d …dd…f< |jd d …dd…f }|jd d …dd…f }t ||¡ t	ddd
dgd�}|jdd…  d7  < t	dddgdd
dgd�}t 
||¡ d S )NrO   r   é   r   é   r4   rn   r   ©r   r   r\   ro   rU   )r	   rE   rp   rt   r~   r%   rA   rG   rH   r   rs   ©r'   rK   rl   rL   rv   r*   r*   r+   Útest_iloc_setitem¬  s       ÿ

z)TestiLocBaseIndependent.test_iloc_setitemc                 C   s¼   t dddgdddgddd	ggƒ}t dddgdddgd
d
d
ggƒ}d
|jdd�d< t ||¡ t dddgdddgddd	ggƒ}t ddd
gddd
gddd
ggƒ}d
|jdd�d< t ||¡ d S )Nro   Úcre   r�   Údrg   r®   Úer¯   r\   r   r”   r   r   r¥   ©r'   rK   rL   r*   r*   r+   Útest_iloc_setitem_axis_argumentÀ  s        z7TestiLocBaseIndependent.test_iloc_setitem_axis_argumentc                 C   s¢   t t d¡ d¡dddgdddgd�}|jddgdd	gf  |jddgdd	gf  d
7  < t t dddddddddg	¡ d¡dddgdddgd�}t ||¡ d S )Né	   )r4   r4   rd   rŒ   r�   rn   r   r   r   rc   rƒ   r„   r4   r†   r‡   ro   r�   r®   )r	   rE   r~   r   r%   r   rG   rH   r¶   r*   r*   r+   Útest_iloc_setitem_listÌ  s      ÿ ýz.TestiLocBaseIndependent.test_iloc_setitem_listc                 C   sx   t ddddgƒ}t ddddgƒ}| ¡ }ddg|jt ddgƒ< t ||¡ | ¡ }ddg|jtddgƒ< t ||¡ d S )Nr   r   r   r4   r   éþÿÿÿ)r   rB   r%   rG   rs   r
   )r'   Zs_origrL   rv   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   r4   rO   r”   r   r<   rŒ   rd   T)Zdrop)r	   r   ZfillnarE   Úisnanr%   rV   rG   rH   r_   Zreset_index)r'   r—   r˜   rK   rL   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sZt‚|jd d …df d |jd d …df< |s–t|jjƒdks–t‚| ¡ }|jddgddgf |jddgddgf< t 	||¡ d S )	Nr   r   r   r4   rŒ   r^   Zf8g      à?)
r	   r%   rD   r{   r?   r@   rA   rB   rG   rH   )r'   rI   rK   rL   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sht	‚|jdd… }|jdd
… }t 
||¡ |jd d …dd…f }|jd d …dd…f }t 
||¡ |jdddg }|jdddg }t 
||¡ |jdddgddgf }|jdddgddgf }t 
||¡ |jdddgddgf }|jdddgddgf }t 
||¡ |jddddgddgf }|jddddgddgf }t 
||¡ ttddƒtd�}|j|j }|jddddg }t 
||¡ d S )Nre   rO   r   r[   r   r®   rn   )r   r   )rO   rO   é   r4   r\   r   ro   r   rh   )rV   r7   )r	   rE   rp   rt   r=   r%   ÚlocrG   rs   rA   rH   r   r>   rV   )r'   rK   rl   r¬   rL   rv   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@t‚|jd d …dd	…f }|jd d …d
gf }t 	||¡ |jd }|jd }||ks–t‚d}t
jt|d�� |jd  W 5 Q R X d}t
jt|d�� |jd  W 5 Q R X d S )Nre   rO   Ú
abcdefghijÚABCDrn   r°   )ÚbrŒ   r   r4   r�   )r   r   )Újrx   z/index 5 is out of bounds for axis 0 with size 4r`   )re   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	   rE   rp   rt   rq   r%   rÁ   rA   rG   rH   r0   rr   r&   Ú
ValueError)r'   rK   rl   r¬   rL   ru   r*   r*   r+   Ú test_iloc_getitem_labelled_frameO  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 )Nro   rO   Z20130101)ZperiodsrÄ   rn   r4   r\   r   r   ZaaaaZaar¯   r®   r   )rE   rp   rt   r   rq   r	   Zdescriber%   rj   rk   rG   rH   r_   r=   r?   r@   Zmgr_locs)r'   rI   rS   rV   r_   rK   rl   rL   r*   r*   r+   Útest_iloc_getitem_doc_issuep  s6    .
*.z3TestiLocBaseIndependent.test_iloc_getitem_doc_issuec                 C   sb  t tj dd¡tdƒtdƒd�}d|jd< |jd }|dks@t‚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Êt‚d|jd d…< |jd d… }|jd d… }t ||¡ t	dgd ƒ}dd	dg|jdd d	…< dd
dg|jdd d	…< |}t	ddd	d
ddgƒ}t ||¡ d S )Nre   rO   rÃ   rÄ   rn   r   r°   r   r   r4   r[   rU   r   ro   r\   )r	   rE   rp   rt   rq   r%   rA   rG   rH   r   r=   rs   r±   r*   r*   r+   Útest_iloc_setitem_seriesš  s4      ÿ



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 ddddd
gdddddgdœƒ}t ||¡ t dddddgtjdddd�dœƒ}ddgddgg|jd	d
…< t dddddgdddddgdœƒ}t ||¡ d S )Nr\   Úint64r6   re   r‘   rg   r¯   r�   r   rO   r   r   ro   r¸   r}   rÅ   r³   r´   rµ   r¢   Úy)r	   rE   r~   r%   rG   rH   r¶   r*   r*   r+   Útest_iloc_setitem_list_of_listsº  s    ÿ"ÿ"z7TestiLocBaseIndependent.test_iloc_setitem_list_of_listsÚ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sHt‚d S )Nr   r   r4   rO   rd   rŒ   r^   r   r;   rÏ   )r	   r%   r   rA   )r'   r5   rÎ   rK   rl   r*   r*   r+   Ú#test_iloc_setitem_with_scalar_indexË  s    
z;TestiLocBaseIndependent.test_iloc_setitem_with_scalar_indexc                 C   s  t ttdƒƒtdƒdgd�}|jd dk}d}tjt|d�� |j|  W 5 Q R X tt|ƒƒ|_	d	}tjt
|d�� |j|  W 5 Q R X |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}|	�rBt|ttt||	ƒƒƒƒ}dD ]¬}
z:|
�rft||
dd … ƒ}n|}tt|| d  ¡ ƒƒ}W n2 ttt
fk
�r¶ } zt|ƒ}W 5 d }~X Y nX |	|
f}| |¡}||k�rFtd|› d|› d|› d�ƒ‚�qF�qW 5 Q R X d S )Nr\   r]   r}   rn   r   r   zBiLocation based boolean indexing cannot use an indexable as a maskr`   zDiLocation based boolean indexing on an integer type is not availableTr6   rO   c                 S   s   g | ]}t |ƒ‘qS r*   )Úbin)Ú.0Únumr*   r*   r+   Ú
<listcomp>ë  s     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)rV   r×   )rV   rØ   )rV   rÙ   )rÕ   r×   )rÕ   rØ   )rÕ   rÙ   )ÚrecordÚignore)NrV   rÕ   )r×   rØ   rÙ   r   rÖ   ú[z] does not match [z], received [ú])r	   rq   r=   r}   r0   rr   rÇ   r%   r{   rV   ÚNotImplementedErrorrE   r   ÚboolrG   rH   r~   r   r   ÚUserWarningrÖ   rC   r   ÚreversedÚgetattrrj   rÑ   Úsumr   ÚgetrA   )r'   rK   r½   ru   rl   rÕ   rÖ   ZrepsrL   Ú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 5 Q R X d S )Nçš™™™™™¹?rž   r   r‘   rb   éc   r   r4   rœ   znot in indexr`   )r	   rE   r~   r%   r   rG   rH   r0   rr   ÚKeyErrorrÁ   )r'   rK   rå   rL   Zdf3rl   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 )Nr\   r   r   T)Zcheck_index_typeZcheck_column_type)rG   ZmakeCustomDataframerH   r%   ©r'   rK   r*   r*   r+   Ú"test_iloc_empty_list_indexer_is_ok/  s&    üü   ÿz:TestiLocBaseIndependent.test_iloc_empty_list_indexer_is_okc                 C   s  t ddddgiƒ}|jd d … }||k	s,t‚t |d |d ¡sDt‚dddg|jd d …df< |r||d dddgk ¡ s�t‚n|d dk ¡ s�t‚tddddddgƒ}|jd d … }||k	s¾t‚dd	d
g|d d…< |rôt|d d… dddgkƒsòt‚n t|d d… dd	d
gkƒ�st‚d S )Nr}   r   r   r4   rO   r\   ro   r�   r®   r¸   )r	   r%   rA   rE   rF   rÁ   Úallr   )r'   rR   Zoriginal_dfZ	sliced_dfZoriginal_seriesZsliced_seriesr*   r*   r+   Ú&test_identity_slice_returns_new_objectD  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   r4   rO   r   ©r•   )r	   r%   rE   r   r   rG   rs   )r'   rK   rl   rv   r*   r*   r+   Útest_indexing_zerodim_np_arraya  s    z6TestiLocBaseIndependent.test_indexing_zerodim_np_arrayc                 C   s,   t ddgƒ}|jt d¡ }|dks(t‚d S )Nr   r   r   )r   r%   rE   r   rA   )r'   rv   rl   r*   r*   r+   Ú%test_series_indexing_zerodim_np_arrayh  s    z=TestiLocBaseIndependent.test_series_indexing_zerodim_np_arrayc                 C   s’   t dddgƒ}t|dddgdœdd	�}t |d |¡s:t‚|d d d
… |jd d …df< t |d |¡sjt‚t dddgdddgd�}t ||¡ d S )Nrd   rŒ   r�   r   r   r4   )r   r   F)rB   r   r   ©Ú
categories)r   r	   rG   rF   rA   r%   Zassert_categorical_equal)r'   rJ   rK   rL   r*   r*   r+   Ú-test_iloc_setitem_categorical_updates_inplacen  s    zETestiLocBaseIndependent.test_iloc_setitem_categorical_updates_inplacec                 C   sB  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ddddg  d9  < t ddgdd
gdd	gd
tjggƒ}t ||¡ |jddddg  d  < t ddgddgddgdtjggƒ}t ||¡ d S )Nr   r   r   r4   rO   r\   ro   r®   re   r¯   TFg      @g      (@g      @)r	   rE   r–   r%   rV   rG   rH   ©r'   rl   rL   r*   r*   r+   Ú test_iloc_with_boolean_operation}  s    """""z8TestiLocBaseIndependent.test_iloc_with_boolean_operationc                 C   sX   t dtd ¡ ƒiƒ}|jd }tdgdddddgd	�}t|dgdd
d�}t ||¡ d S )Nr¢   z	a b c d er   r}   rÅ   r³   r´   rµ   rõ   Úcategory)rV   r•   r7   )r	   r   Úsplitr%   r   rG   rs   )r'   rK   rl   Zraw_catrL   r*   r*   r+   Ú?test_iloc_getitem_singlerow_slice_categoricaldtype_gives_series�  s
    
zWTestiLocBaseIndependent.test_iloc_getitem_singlerow_slice_categoricaldtype_gives_seriesc                 C   sº   t dddgƒ d¡}|jdd… }t ddgƒ tdddgƒ¡}t ||¡ |jddg }t ddgƒ tdddgƒ¡}t ||¡ |jdddg }t dgƒ tdddgƒ¡}t ||¡ d S )Nr   r   r4   rú   r   TF)r   rD   r%   r   rG   rs   )r'   rY   rl   rL   r*   r*   r+   Ú$test_iloc_getitem_categorical_values™  s    z<TestiLocBaseIndependent.test_iloc_getitem_categorical_valuesc                 C   s>   t dddgdd�}||jd< t tddgdd�}t ||¡ d S )Nr   r   r   ztimedelta64[ns]r6   )r   r%   r   rG   rs   )r'   rÎ   r   rL   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õ   r6   r4   )r   r   r%   rG   rs   )r'   rÿ   Znulls_fixturer7   rY   r¬   r*   r*   r+   Ú$test_setitem_mix_of_nan_and_interval¶  s    
 ÿz<TestiLocBaseIndependent.test_setitem_mix_of_nan_and_intervalc              	   C   sl   t g ƒ}ttj t|ƒt|ƒ¡||d�}tjjddd�}d|j› �}tj	t
|d�� d|j|< W 5 Q R X d S )Nrn   r\   )r   r   r   r©   zCannot set values with ndim > r`   r   )r
   r	   rE   rp   rt   r{   r«   Úndimr0   rr   rÇ   r%   )r'   rå   r)   Znd3ru   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 ||ƒdddg ||ƒdddg ¡ t ||ƒdg ||ƒdg ¡ t ||ƒd ||ƒd ¡ t ||ƒdd… ||ƒdd… ¡ d S )Nre   F)Úwriter   r   r4   )rE   Úeyer	   ZsetflagsrG   rH   rs   )r'   r5   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 dddg¡}d|j_|j| }|jdddg }t 	||¡ |d j| }|d jdddg }t 
||¡ d S )	NÚdatarc   Úfloat64r6   r   r4   ro   F)r	   rE   Zonesr   ÚflagsZ	writeabler%   rÁ   rG   rH   rs   )r'   rK   Úindicesrl   rL   r*   r*   r+   Útest_iloc_getitem_readonly_keyÚ  s    
z6TestiLocBaseIndependent.test_iloc_getitem_readonly_keyc                 C   sV   t dgdgd�}tdddgƒ|jd< t dtdddgƒgidgdgd�}t ||¡ d S )Nr}   r   ©r_   rV   r   r   r4   r;   )r	   r   r%   rG   rH   r¶   r*   r*   r+   Ú"test_iloc_assign_series_to_df_cellè  s    "z:TestiLocBaseIndependent.test_iloc_assign_series_to_df_cellÚklassc                 C   sn   t dddgdddgdœƒ}|dd	d	gƒ}|j|df d
 |j|df< t dddgd
ddgdœƒ}t ||¡ d S )Nr¢   rÌ   Úzr   r4   rO   )ÚflagrÎ   TFr   r¥   )r'   r  rK   r5   rL   r*   r*   r+   Útest_iloc_setitem_bool_indexerï  s
    z6TestiLocBaseIndependent.test_iloc_setitem_bool_indexerc                 C   s�   t dddgdddgdœƒ}t dd	d
gdddgdddgdœƒ}|jd d …dgf |jd d …|f< t dd	d
gdddgdddgdœƒ}t ||¡ d S )Nrg   r¯   r�   rÀ   é   é   )Za2Úb2r   r   r4   rO   r\   ro   r�   r®   r¸   )r}   rÅ   r³   r   r¥   )r'   r5   r—   r˜   rL   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'   rK   ÚrhsrL   r*   r*   r+   Ú"test_iloc_setitem_dictionary_value  s    


z:TestiLocBaseIndependent.test_iloc_setitem_dictionary_valuec                 C   st  t tj dd¡dddgtdƒd�}|jdd … }t |jd |¡ |jdd …df }t 	|jd |¡ dddg|_
|jdd … }t |jd |¡ |jdd …df }t 	|jd |¡ t tj d	d¡ddddgtdƒd�}|jdd
… }t |jd |¡ |jdd
…df }t 	|jd |¡ ddddg|_
|jdd
g }t |jd |¡ |jdd
gdf }t 	|jd |¡ d S )Nr4   rê   çš™™™™™É?Úabcrn   r   r   )r  r}   rO   r   r   )r	   rE   rp   rt   rq   r%   rG   rH   rÁ   rs   rV   )r'   rK   Úexpectr*   r*   r+   Ú"test_iloc_getitem_float_duplicates  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 ri   ©rÎ   )r'   rÎ   r*   r*   r+   Ú__init__3  s    zLTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__init__c                 S   s   d| j › d�S )NrÜ   rÝ   r  ©r'   r*   r*   r+   Ú__str__6  s    zKTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__str__c                 S   s   | j |j kS ri   r  )r'   Úotherr*   r*   r+   Ú__eq__;  s    zJTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__eq__c                 S   s   | S ri   r*   r  r*   r*   r+   Úview>  s    zHTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.view)
r-   r.   r/   r  rj   r  Ú__repr__rß   r!  r"  r*   r*   r*   r+   ÚTO2  s
   r$  r   r   rn   rW   r   )r	   r%   rG   rH   rE   r–   )r'   r$  rK   rl   r*   r*   r+   Útest_iloc_setitem_custom_object0  s    z7TestiLocBaseIndependent.test_iloc_setitem_custom_objectc                 C   s†   t tj dd¡tdƒtdƒd�}|jd }t|tƒs8t‚t	 
|j|jd ¡ |jjd d …df }t|tƒsnt‚t	 
|j|jd ¡ d S )Nr4   ÚABCZaabr  r   )r	   rE   rp   Zrandrq   r%   Ú
isinstancer   rA   rG   Úassert_almost_equalrC   ÚT)r'   rK   rl   r*   r*   r+   Ú!test_iloc_getitem_with_duplicatesR  s     
z9TestiLocBaseIndependent.test_iloc_getitem_with_duplicatesc                 C   sV   t dddgdddggdddgd�}|jd d …dgf }|jdgdd	�}t ||¡ d S )
Nr   r   r4   rO   r\   ro   r^   r   r”   )r	   r%   ZtakerG   rH   ©r'   rK   rl   rL   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ò   r4   )r	   r   r%   r   rG   rs   rB   rH   r+  r*   r*   r+   Útest_iloc_intervald  s    
z*TestiLocBaseIndependent.test_iloc_intervalÚindexing_funcÚrhs_funcc                 C   s˜   t dddgƒ}|ddgƒ|j|dddgƒ< t dddgƒ}t ||¡ tddddgiƒ}|dgdggƒ|j|dddgƒ< tddddgiƒ}t ||¡ d S )	Nr   r   r   r\   re   TFr}   )r   r%   rG   rs   r	   rH   )r'   r/  r.  rY   rL   rK   r*   r*   r+   Útest_loc_setitem_boolean_listu  s     z5TestiLocBaseIndependent.test_loc_setitem_boolean_listc                 C   s€   t ddddg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 )Nrd   r   r   r4   ÚInt64r6   r   ZfoorŒ   )rŒ   rd   r¥   )r'   rK   ÚresrL   r*   r*   r+   Ú.test_iloc_getitem_slice_negative_step_ea_blockƒ  s    zFTestiLocBaseIndependent.test_iloc_getitem_slice_negative_step_ea_blockc                 C   sp   t ddddgidd�}t dgdgg¡|jt ddg¡t dg¡f< t ddddgi|d jd�}t ||¡ d S )	NÚstatusr}   rÅ   r³   rú   r6   r   r   )r	   rE   r   r%   r7   rG   rH   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s2t‚|d |d< |d |d ksRt‚d S )Nr   g      $@r   r   r   )r   Z_valuesr	   r%   rA   )r'   rS   rK   rY   r*   r*   r+   Ú*test_iloc_getitem_int_single_ea_block_view—  s    
zBTestiLocBaseIndependent.test_iloc_getitem_int_single_ea_block_viewc                 C   sl   t ddgddgdœƒ}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-02Z2021Z2022r‘   rd   r   z2021-01-01 00:00:00z2022-01-01 00:00:00F)Zcheck_dtype)r	   r   r%   r   rG   rH   r¶   r*   r*   r+   Ú)test_iloc_setitem_multicolumn_to_datetime¦  s    $þûÿ	zATestiLocBaseIndependent.test_iloc_setitem_multicolumn_to_datetime)Pr-   r.   r/   Ú__doc__r0   r1   r2   Úslicer=   r
   rE   ZasarrayrG   rÁ   r%   rM   r   r   rT   rZ   rw   r~   rq   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  r%  r*  r,  r-  r0  r3  r5  ÚtdZ&skip_array_manager_not_yet_implementedr6  r7  r*   r*   r*   r+   r3   @   s®   
úþ!

eýþ		
/!* $F	


	


!"
r3   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestILocErrorsc              	   C   sd   |}|t kr| ¡ }d}tjt|d�� |jd  W 5 Q R X tjttd�� d|jd< W 5 Q R X d S )Nz5Cannot index by location index with a non-integer keyr`   g      @r   )r	   rX   r0   rr   r�   r%   r&   Ú_slice_iloc_msg)r'   Zseries_with_simple_indexrQ   r)   ru   r*   r*   r+   Útest_iloc_float_raisesº  s    z%TestILocErrors.test_iloc_float_raisesc              	   C   sp   t jtdd��" |jd d …d d …d d …f  W 5 Q R X t jtdd��" d|jd d …d d …d d …f< W 5 Q R X d S )NzToo many indexersr`   ztoo many indices for arrayr   )r0   rr   r   r%   r&   )r'   Zfloat_framer*   r*   r+   Ú*test_iloc_getitem_setitem_fancy_exceptionsÍ  s    &z9TestILocErrors.test_iloc_getitem_setitem_fancy_exceptionsc              	   C   sx   t ddddgiƒ}t ddddgiƒ}d}tjt|d�� d|j|< W 5 Q R X d	}tjt|d�� |j|  W 5 Q R X d S )
Nr}   r   r   r4   TFzADataFrame indexer for .iloc is not supported. Consider using .locr`   zWDataFrame indexer is not allowed for .iloc
Consider using .loc for automatic alignment.)r	   r0   rr   r�   r%   r&   )r'   rK   r5   ru   r*   r*   r+   Útest_iloc_frame_indexerÕ  s    ÿz&TestILocErrors.test_iloc_frame_indexerN)r-   r.   r/   r=  r>  r?  r*   r*   r*   r+   r;  ·  s   r;  c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zej ddd	g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\t‚|jd	 dksnt‚|jjd tjks„t‚d S )
Nr   r‘   r   r4   rO   r”   r   r;   )r   r   )r	   r   r%   rA   rk   rE   rË   )r'   r—   r˜   rK   r*   r*   r+   Ú*test_iloc_setitem_scalar_duplicate_columnsæ  s    
zJTestILocSetItemDuplicateColumns.test_iloc_setitem_scalar_duplicate_columnsc                 C   sX   t dddggdddgd�}dg|jd d …df< t dddggdddgd�}t ||¡ d S )	Nr   rj   Ústr2r}   rÅ   r^   Zstr3r   r¥   r¶   r*   r*   r+   Ú(test_iloc_setitem_list_duplicate_columnsñ  s    zHTestILocSetItemDuplicateColumns.test_iloc_setitem_list_duplicate_columnsc                 C   sj   t tjdtjd� dd¡ddddgd�}|jd d …df  tj¡|jd d …df< |jjd tjksft	‚d S )	Nr®   r6   r   rO   rd   rŒ   r^   r   )
r	   rE   r~   rË   r   r%   rD   r  rk   rA   rî   r*   r*   r+   Ú*test_iloc_setitem_series_duplicate_columnsú  s     
ÿ(zJTestILocSetItemDuplicateColumns.test_iloc_setitem_series_duplicate_columnsrk   Ú
init_valueÚexpected_value)rË   Ú0r   )Úfloatz1.2g333333ó?c                 C   sl   t |ddggdddgd�}|jd d …df  |¡|jd d …df< t |ddggdddgtd�}t ||¡ d S )Nrj   rB  r}   rÅ   r^   r   )r_   r7   )r	   r%   rD   r>   rG   rH   )r'   rk   rE  rF  rK   Zexpected_dfr*   r*   r+   Ú*test_iloc_setitem_dtypes_duplicate_columns  s    &
ýzJTestILocSetItemDuplicateColumns.test_iloc_setitem_dtypes_duplicate_columnsN)
r-   r.   r/   rA  rC  rD  r0   r1   r2   rI  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 ddddg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 )Nr   r   r4   rO   Úaabb©ÚXÚYrÄ   rU   c                 S   s   ddgS ©Nr   r4   r*   r¡   r*   r*   r+   r£     r¤   zCTestILocCallable.test_frame_iloc_getitem_callable.<locals>.<lambda>c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£      r¤   c                 S   s   ddgS rO  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 rO  r*   r¡   r*   r*   r+   r£   &  r¤   c                 S   s   dgS rP  r*   r¡   r*   r*   r+   r£   &  r¤   c                 S   s   dS rP  r*   r¡   r*   r*   r+   r£   *  r¤   c                 S   s   dgS rP  r*   r¡   r*   r*   r+   r£   -  r¤   c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£   0  r¤   c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£   3  r¤   )r	   rq   r%   rG   rH   rs   )r'   rK   r2  r*   r*   r+   Ú test_frame_iloc_getitem_callable  s"    "z1TestILocCallable.test_frame_iloc_getitem_callablec                 C   sF  t ddddg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 )Nr   r   r4   rO   rK  rL  rÄ   rU   r   c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£   <  r¤   zCTestILocCallable.test_frame_iloc_setitem_callable.<locals>.<lambda>r   c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£   B  r¤   r\   c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£   H  r¤   c                 S   s   dS rP  r*   r¡   r*   r*   r+   r£   H  r¤   é   c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£   N  r¤   c                 S   s   dgS rP  r*   r¡   r*   r*   r+   r£   N  r¤   r’   c                 S   s   dS rP  r*   r¡   r*   r*   r+   r£   U  r¤   éûÿÿÿc                 S   s   dgS rP  r*   r¡   r*   r*   r+   r£   [  r¤   re   c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£   a  r¤   c                 S   s   ddgS rO  r*   r¡   r*   r*   r+   r£   g  r¤   )r	   rq   rB   r%   rG   rH   )r'   rK   r2  r¬   r*   r*   r+   Ú test_frame_iloc_setitem_callable6  sR    "z1TestILocCallable.test_frame_iloc_setitem_callableN)r-   r.   r/   rQ  rT  r*   r*   r*   r+   rJ    s   rJ  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
 ||¡ q4|jtddƒ }|jdd… }t
 ||¡ t
 d ¡� d|d d …< W 5 Q R X |r¼t
 ||¡ n|jdd… dk ¡ sÖt‚|jddddd	g }| |j	ddddd	g ¡}t
 ||¡ d S )
Nre   r   r[   r   rU   r   r4   rO   r\   )r   rE   rp   rt   rq   r=   rB   r{   r%   rV   rG   r(  r9  rÁ   rs   Zassert_produces_warningrð   rA   Zreindex)r'   rR   rY   Zser_originalÚirl   r¬   rL   r*   r*   r+   Ú	test_ilocn  s"     
zTestILocSeries.test_ilocc                 C   s.   t dddgdddgd�}|jd dks*t‚d S )Nr   r   r   rU   )r   r%   rA   )r'   rY   r*   r*   r+   Útest_iloc_getitem_nonuniqueŠ  s    z*TestILocSeries.test_iloc_getitem_nonuniquec                 C   s\   t dddgƒ}t dddgdddgd�}|jdd… |jdd…< t dddgƒ}t ||¡ d S )	Nr   r   r4   rO   r\   ro   r   rU   )r   r%   rG   rs   )r'   Zser1Zser2rL   r*   r*   r+   r  Ž  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Å   r1  r6   )	r	   rE   r–   rÁ   rD   r   r   rG   rH   rø   r*   r*   r+   Ú#test_iloc_nullable_int64_size_1_nan–  s    &z2TestILocSeries.test_iloc_nullable_int64_size_1_nanN)r-   r.   r/   rW  rX  r  rZ  r*   r*   r*   r+   rU  m  s   rU  ).r8  r   ÚreÚwarningsr   r   ÚnumpyrE   r0   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr:  Zpandasr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingrG   Zpandas.api.typesr   Zpandas.tests.indexing.commonr   Úescaper<  r   r3   r;  r@  rJ  rU  r*   r*   r*   r+   Ú<module>   s:   Dÿ          .2V