U
    ÎZj3Ä  ã                   @   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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)ÚIndexingError)ÚNAÚCategoricalÚCategoricalDtypeÚ	DataFrameÚIndexÚIntervalÚNaTÚSeriesÚ	TimestampÚarrayÚconcatÚ
date_rangeÚinterval_rangeÚisnaÚto_datetime)Ú	is_scalar)Ú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dddgg¡dd„ ƒZdS )	ÚTestiLocÚkeyé   éÿÿÿÿr   é   c                 C   s    | j d|dddddgtd� d S )NÚilocÚlabelsÚmixedÚtsZfloatsÚempty)ZtypsZfails)Zcheck_resultÚ
IndexError)Úselfr   © r#   úb/var/www/html/TRUCKING_PROJECT/venv/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„ Z3e4j5dXdY„ ƒZ6dZd[„ Z7d\d]„ Z8d^d_„ Z9ej dHde:e
j;g¡d`da„ ƒZ<ej dbe=ddƒdcddg¡dedf„ ƒZ>dgdh„ Z?ej dejejg¡didj„ ƒZ@dkdl„ ZAdmdn„ ZBej doee
jg¡dpdq„ ƒZCej ddgeddƒg¡drds„ ƒZDdtdu„ ZEdvdw„ ZFdxdy„ ZGdzd{„ ZHd|d}„ ZId~d„ ZJej d€ee
jg¡ej d�ee
jg¡d‚dƒ„ ƒƒZKd„d…„ ZLd†d‡„ ZMe4j5dˆ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	}t
|tƒo^|td ƒk}d }	|rlt}	d}
tj|	|
d�� |||ƒ|df< W 5 Q R X |r¾t d|iƒ}t |j	|¡rêt‚n,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	}tjt|
d�� |||ƒ|df< W 5 Q R X t |tdƒdœƒ}t ||¡ d S )Nr   r-   ©ÚdtypeÚalphaÚbetaÚgammaú.will attempt to set the values inplace instead©Úmatch©r   r   r   r   ©r   r   )r	   ÚrangeÚobjectr   Ú_mgrÚblocksZ_can_hold_elementÚAssertionErrorÚcopyÚvaluesÚ
isinstanceÚsliceÚFutureWarningÚtmÚassert_produces_warningÚnpÚshares_memoryÚastypeÚassert_frame_equalr   r   )r"   r.   r   Úusing_array_managerÚframeÚcatÚdfZ	orig_valsÚ	overwriteÚwarnÚmsgÚexpectedr#   r#   r$   Ú%test_iloc_setitem_fullcol_categorical=   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º|j|ksÐt
‚nt |d j|¡sÐt
‚d S )Nr   r   r-   é   Úi8r   r/   )r   Zto_numpyr   r?   r;   Zarraysr   rE   rC   Zassert_equalr=   rF   )r"   Úframe_or_seriesrR   ÚarrÚobjr?   rP   r#   r#   r$   Útest_iloc_setitem_ea_inplacet   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   r-   ©Úindex)r   ©r   r   )r
   r   r9   r   Z_is_scalar_accessr=   Úto_frame)r"   rZ   ÚserrL   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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-boundsr5   r   r   r   r-   rS   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ÚdtypesrC   rH   )ÚresultrP   r#   r#   r$   Úcheckí   s    z?TestiLocBaseIndependent.test_iloc_exceeds_bounds.<locals>.checkZABrY   é   )r	   rE   ÚrandomZrandom_sampleÚlistr)   Úraisesr!   r   rC   rH   Úassert_series_equalÚrandnrZ   )r"   rL   rO   Úsrn   rP   ro   Zdflr#   r#   r$   Útest_iloc_exceeds_bounds˜   sˆ    ($,z0TestiLocBaseIndependent.test_iloc_exceeds_boundszindex,columnsr_   ra   zindex_vals,column_valsrf   Ú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 )N©rZ   rc   z$.iloc requires numeric indexers, gotr5   )	r	   rE   rq   ru   Úlenr)   rs   r!   r   )r"   rZ   rc   Z
index_valsZcolumn_valsrL   rO   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 )Nre   rg   zCannot index by location indexr5   Úa)
r	   rE   ÚarangeÚreshaperC   Úget_objr)   rs   Ú	TypeErrorr   )r"   rU   rW   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   re   ée   éf   ég   éh   éi   éj   ék   él   ©rf   ÚBÚCr-   rY   )rE   r   r>   r	   r   rC   Zassert_numpy_array_equal)r"   Zarray_with_neg_numbersZ
array_copyrL   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   r-   r`   é   ri   é   ©rf   r�   rf   r   éýÿÿÿr~   rY   r   )r	   r   rC   rt   rH   r=   r   )r"   rL   rv   rP   rn   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   r-   rS   ©Zaxisr7   r   rf   r�   )rZ   Úname)
r	   r   r   r   r=   r   rE   ÚnanrC   rt   )r"   Údf1Údf2rL   rn   rP   r#   r#   r$   Útest_iloc_getitem_dupsB  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Œ   re   éÈ   é,  éè  éÐ  é¸  r   )r�   rŽ   rY   )r	   rC   rH   r   ©r"   rL   rP   rn   r#   r#   r$   Útest_iloc_getitem_arrayP  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   r-   rŒ   re   r›   rœ   r�   rž   rŸ   TFr   rY   c                 S   s   | j d dkS )Nr   r   rY   ©Úxr#   r#   r$   Ú<lambda>s  ó    z@TestiLocBaseIndependent.test_iloc_getitem_bool.<locals>.<lambda>©r	   r   rC   rH   r    r#   r#   r$   Útest_iloc_getitem_boolc  s    


ýÿ ÿz.TestiLocBaseIndependent.test_iloc_getitem_boolrZ   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   r-   z Boolean index has wrong length: z instead of r5   )r   r|   r)   rs   r!   r   )r"   rZ   rv   rO   r#   r#   r$   Útest_iloc_getitem_bool_diff_lenv  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Œ   re   r›   rœ   r�   rž   rŸ   r’   rY   r   )rf   rŽ   c                 S   s   ddgS )Nr   r   r#   )rL   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 )Nrg   rS   rf   r�   rb   r   r_   ©Úsizer   rŽ   r   r•   r-   )
r	   rE   rq   ru   Úrandintr€   r   rC   rH   r   )r"   r˜   r™   rL   Ú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 )NrS   r   é   r   é   r-   r{   r   ©r   r   r`   rp   rY   )r	   rE   rq   ru   r   r   r=   rC   rH   r   rt   ©r"   rL   rn   rP   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 )Nrp   Úcrg   r�   Údri   r¯   Úer°   r`   r   r•   r   r   r¦   ©r"   rL   rP   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é	   )r-   r-   rf   r�   rŽ   r{   r   r   r   re   r„   r…   r-   r‡   rˆ   rp   r�   r¯   )r	   rE   r   r€   r   r   rC   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   r-   r   éþÿÿÿ)r   r>   r   rC   rt   r
   )r"   Zs_origrP   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   r-   rS   r•   r   r8   r�   rf   T)Zdrop)r	   r   ZfillnarE   Úisnanr   rZ   rC   rH   rc   Zreset_index)r"   r˜   r™   rL   rP   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   r-   r�   rb   Zf8g      à?)
r	   r   rG   r|   r;   r<   r=   r>   rC   rH   ©r"   rI   rL   rP   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 )Nrg   rS   r   r_   r   r¯   r{   )r   r   )rS   rS   é   r-   r`   r   rp   r   rj   )rZ   r0   )r	   rE   rq   ru   r9   r   ÚlocrC   rt   r=   rH   r   r:   rZ   )r"   rL   rn   r­   rP   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 )Nrg   rS   Ú
abcdefghijÚABCDr{   r±   )Úbr�   r   r-   rŽ   )r   r   )Újrx   z/index 5 is out of bounds for axis 0 with size 4r5   )rg   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   rq   ru   rr   r   rÃ   r=   rC   rH   r)   rs   r!   Ú
ValueError)r"   rL   rn   r­   rP   rO   r#   r#   r$   Ú test_iloc_getitem_labelled_frameT  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 )Nrp   rS   Z20130101)ZperiodsrÆ   r{   r-   r`   r   r   ZaaaaZaar°   r¯   r   )rE   rq   ru   r   rr   r	   Zdescriber   rl   rm   rC   rH   rc   r9   r;   r<   Zmgr_locs)r"   rI   rV   rZ   rc   rL   rn   rP   r#   r#   r$   Útest_iloc_getitem_doc_issueu  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 )Nrg   rS   rÅ   rÆ   r{   r   r±   r   r   r-   r_   rY   r   rp   r`   )r	   rE   rq   ru   rr   r   r=   rC   rH   r   r9   rt   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`   Úint64r/   rg   r’   ri   r°   r‘   r   rS   r   r   rp   r¹   r~   rÇ   r´   rµ   r¶   r£   Úy)r	   rE   r   r   rC   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   r-   rS   rf   r�   rb   r   r7   rÑ   )r	   r   r   r=   )r"   r.   rÐ   rL   rn   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`   ra   r~   r{   r   r   zBiLocation based boolean indexing cannot use an indexable as a maskr5   zDiLocation based boolean indexing on an integer type is not availableTr/   rS   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)rZ   rÙ   )rZ   rÚ   )rZ   rÛ   )r×   rÙ   )r×   rÚ   )r×   rÛ   )ÚrecordÚignore)NrZ   r×   )rÙ   rÚ   rÛ   r   rØ   ú[z] does not match [z], received [ú])r	   rr   r9   r~   r)   rs   rÉ   r   r|   rZ   ÚNotImplementedErrorrE   r   ÚboolrC   rH   r   r   r   ÚUserWarningrØ   r?   r   ÚreversedÚgetattrrl   rÓ   Úsumr   Úgetr=   )r"   rL   r¾   rO   rn   r×   rØ   ZrepsrP   Ú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’   rd   éc   r   r-   r�   znot in indexr5   )r	   rE   r   r   r   rC   rH   r)   rs   ÚKeyErrorrÃ   )r"   rL   rç   rP   Zdf3rn   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)rC   ZmakeCustomDataframerH   r   ©r"   rL   r#   r#   r$   Ú"test_iloc_empty_list_indexer_is_ok8  s&    üü   ÿz:TestiLocBaseIndependent.test_iloc_empty_list_indexer_is_okc           	      C   s:  |rt jjdd�}|j |¡ tddddgiƒ}|jd d … }||k	sJt‚t 	|d |d ¡sbt‚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ƒ�s6t‚n t|d d… d
ddgkƒ�s6t‚d S )Nz0setting with .loc[:, 'a'] does not alter inplace)Úreasonr~   r   r   r-   rS   r`   rp   r�   r¯   r¹   )r)   r*   ZxfailÚnodeZ
add_markerr	   r   r=   rE   rF   rÃ   Úallr   )	r"   rI   Úusing_copy_on_writeÚrequestr*   Zoriginal_dfZ	sliced_dfZoriginal_seriesZsliced_seriesr#   r#   r$   Ú&test_identity_slice_returns_new_objectN  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-   rS   r   ©r–   )r	   r   rE   r   r   rC   rt   )r"   rL   rn   rv   r#   r#   r$   Útest_indexing_zerodim_np_arrays  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   r=   )r"   rv   rn   r#   r#   r$   Ú%test_series_indexing_zerodim_np_arrayz  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 |¡sBt‚d
}tjt|d��" |d d d… |jd d …df< W 5 Q R X |s®t |d |¡s”t‚t dddgdddgd�}n|}t 	||¡ d S )Nrf   r�   rŽ   r   r   r-   )r   r   F)r>   r4   r5   r   r   ©Ú
categories)
r   r>   r	   rC   rF   r=   rD   rB   r   Zassert_categorical_equal)r"   rõ   rK   Zcat_originalrL   rO   rP   r#   r#   r$   Ú-test_iloc_setitem_categorical_updates_inplace€  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   r-   rS   r`   rp   r¯   rg   r°   TFg      @g      (@g      @)r	   rE   r—   r   rZ   rC   rH   ©r"   rn   rP   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)rZ   r–   r0   )r	   r   Úsplitr   r   rC   rt   )r"   rL   rn   Zraw_catrP   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   r-   r   r   TF)r   rG   r   r   rC   rt   )r"   r]   rn   rP   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]r/   )r   r   r   rC   rt   )r"   rÐ   ZseriesrP   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   rC   rt   )r"   r  Znulls_fixturer0   r]   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 )Nr{   r`   )r   r   r   rª   zCannot set values with ndim > r5   r   )r
   r	   rE   rq   ru   r|   r¬   Úndimr)   rs   rÉ   r   )r"   rç   rW   Znd3rO   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 )Nrg   F)Úwriter   r   r-   )rE   Úeyer	   ZsetflagsrC   rH   rt   )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 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Údatare   Úfloat64r/   r   r-   rp   F)r	   rE   Zonesr   ÚflagsZ	writeabler   rÃ   rC   rH   rt   )r"   rL   Úindicesrn   rP   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   ©rc   rZ   r   r   r-   r7   )r	   r   r   rC   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   r-   rS   )ÚflagrÐ   TFr   r¦   )r"   r  rL   r.   rP   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 )Nri   r°   r‘   rÂ   é   é   )Za2Úb2r   r   r-   rS   r`   rp   r�   r¯   r¹   )r~   rÇ   r´   r   r¦   )r"   r.   r˜   r™   rP   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"   rL   ÚrhsrP   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 )Nr-   rì   çš™™™™™É?Úabcr{   r   r   )r  r~   rS   r   r   )r	   rE   rq   ru   rr   r   rC   rH   rÃ   rt   rZ   )r"   rL   Ú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 rk   ©rÐ   )r"   rÐ   r#   r#   r$   Ú__init__L  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__O  s    zKTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__str__c                 S   s   | j |j kS rk   r"  )r"   Úotherr#   r#   r$   Ú__eq__T  s    zJTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__eq__c                 S   s   | S rk   r#   r$  r#   r#   r$   ÚviewW  s    zHTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.view)
r&   r'   r(   r#  rl   r%  Ú__repr__rá   r'  r(  r#   r#   r#   r$   ÚTOK  s
   r*  r   r   r{   r[   r   )r	   r   rC   rH   rE   r—   )r"   r*  rL   rn   r#   r#   r$   Útest_iloc_setitem_custom_objectI  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 )Nr-   ÚABCZaabr  r   )r	   rE   rq   Zrandrr   r   r@   r   r=   rC   Úassert_almost_equalr?   ÚT)r"   rL   rn   r#   r#   r$   Ú!test_iloc_getitem_with_duplicatesk  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   r-   rS   r`   rp   rb   r   r•   )r	   r   ZtakerC   rH   ©r"   rL   rn   rP   r#   r#   r$   Ú"test_iloc_getitem_with_duplicates2w  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   rC   rt   r>   rH   r0  r#   r#   r$   Útest_iloc_interval~  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`   rg   TFr~   )r   r   rC   rt   r	   rH   )r"   r4  r3  r]   rP   rL   r#   r#   r$   Útest_loc_setitem_boolean_list�  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 )Nrf   r   r   r-   ÚInt64r/   r   Zfoor�   )r�   rf   r¦   )r"   rL   ÚresrP   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   r/   r   r   )r	   rE   r   r   r0   rC   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   r=   )r"   rV   rL   r]   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 S )Nz
2022-01-01z
2022-01-02Z2021Z2022r’   rf   r   z2021-01-01 00:00:00z2022-01-01 00:00:00)Zcheck_dtype)r	   r   r   r   rC   rH   rÀ   r#   r#   r$   Ú)test_iloc_setitem_multicolumn_to_datetimeÀ  s    $þûÿ	zATestiLocBaseIndependent.test_iloc_setitem_multicolumn_to_datetime)Pr&   r'   r(   Ú__doc__r)   r*   r+   rA   r9   r
   rE   ZasarrayrC   rÃ   r   rQ   r   r   rX   r^   rw   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ú   ÚtdZ&skip_array_manager_not_yet_implementedrý   rÿ   r  r  r   r—   r  r   r  r  r  r  r  r  r  r  r   r+  r/  r1  r2  r5  r8  r:  r;  r<  r#   r#   r#   r$   r,   :   s°   
úþ+

fýþ		
/!+ $G%
	


	


!"
r,   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 keyr5   g      @r   )r	   r\   r)   rs   r‚   r   r!   Ú_slice_iloc_msg)r"   Zseries_with_simple_indexrU   rW   rO   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 indexersr5   ztoo many indices for arrayr   )r)   rs   r   r   r!   )r"   Zfloat_framer#   r#   r$   Ú*test_iloc_getitem_setitem_fancy_exceptionsè  s    &z9TestILocErrors.test_iloc_getitem_setitem_fancy_exceptionsc              	   C   sp   t ddddgiƒ}t ddddgiƒ}t t¡� d|j|< W 5 Q R X d}tjt|d�� |j|  W 5 Q R X d S )	Nr~   r   r   r-   TFzWDataFrame indexer is not allowed for .iloc
Consider using .loc for automatic alignment.r5   )r	   rC   rD   rB   r   r)   rs   r!   )r"   rL   r.   rO   r#   r#   r$   Útest_iloc_frame_indexerð  s    ÿz&TestILocErrors.test_iloc_frame_indexerN)r&   r'   r(   rA  rB  rC  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   r-   rS   r•   r   r7   )r   r   )r	   r   r   r=   rm   rE   rÍ   )r"   r˜   r™   rL   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   rl   Ústr2r~   rÇ   rb   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¯   r/   r   rS   rf   r�   rb   r   )
r	   rE   r   rÍ   r€   r   rG   r  rm   r=   rð   r#   r#   r$   Ú*test_iloc_setitem_series_duplicate_columns  s     
ÿ(zJTestILocSetItemDuplicateColumns.test_iloc_setitem_series_duplicate_columnsrm   Ú
init_valueÚexpected_value)rÍ   Ú0r   )Úfloatz1.2g333333ó?c              	   C   sˆ   t |ddggdddgd�}d}tjt|d��, |jd d …df  |¡|jd d …df< W 5 Q R X t |ddggdddgd�}t ||¡ d S )	Nrl   rF  r~   rÇ   rb   r4   r5   r   )r	   rC   rD   rB   r   rG   rH   )r"   rm   rI  rJ  rL   rO   Zexpected_dfr#   r#   r$   Ú*test_iloc_setitem_dtypes_duplicate_columns  s    0
 ÿzJTestILocSetItemDuplicateColumns.test_iloc_setitem_dtypes_duplicate_columnsN)
r&   r'   r(   rE  rG  rH  r)   r*   r+   rM  r#   r#   r#   r$   rD  ÿ  s   	þrD  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   r-   rS   Úaabb©ÚXÚYrÆ   rY   c                 S   s   ddgS ©Nr   r-   r#   r¢   r#   r#   r$   r¤   4  r¥   zCTestILocCallable.test_frame_iloc_getitem_callable.<locals>.<lambda>c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   7  r¥   c                 S   s   ddgS rS  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 rS  r#   r¢   r#   r#   r$   r¤   =  r¥   c                 S   s   dgS rT  r#   r¢   r#   r#   r$   r¤   =  r¥   c                 S   s   dS rT  r#   r¢   r#   r#   r$   r¤   A  r¥   c                 S   s   dgS rT  r#   r¢   r#   r#   r$   r¤   D  r¥   c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   G  r¥   c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   J  r¥   )r	   rr   r   rC   rH   rt   )r"   rL   r7  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   r-   rS   rO  rP  rÆ   rY   r   c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   S  r¥   zCTestILocCallable.test_frame_iloc_setitem_callable.<locals>.<lambda>r   c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   Y  r¥   r`   c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   _  r¥   c                 S   s   dS rT  r#   r¢   r#   r#   r$   r¤   _  r¥   é   c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   e  r¥   c                 S   s   dgS rT  r#   r¢   r#   r#   r$   r¤   e  r¥   r“   c                 S   s   dS rT  r#   r¢   r#   r#   r$   r¤   l  r¥   éûÿÿÿc                 S   s   dgS rT  r#   r¢   r#   r#   r$   r¤   r  r¥   rg   c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   x  r¥   c                 S   s   ddgS rS  r#   r¢   r#   r#   r$   r¤   ~  r¥   )r	   rr   r>   r   rC   rH   )r"   rL   r7  r­   r#   r#   r$   Ú test_frame_iloc_setitem_callableM  sR    "z1TestILocCallable.test_frame_iloc_setitem_callableN)r&   r'   r(   rU  rX  r#   r#   r#   r$   rN  .  s   rN  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 )
Nrg   r   r_   r   rY   r   r-   rS   r`   )r   rE   rq   ru   rr   r9   r>   r|   r   rZ   rC   r-  rA   rÃ   rt   rD   rô   r=   Zreindex)r"   rõ   r]   Zser_originalÚirn   r­   rP   r#   r#   r$   Ú	test_iloc…  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   rY   )r   r   r=   )r"   r]   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   r-   rS   r`   rp   r   rY   )r   r   rC   rt   )r"   Zser1Zser2rP   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Ç   r6  r/   )	r	   rE   r—   rÃ   rG   r   r   rC   rH   rþ   r#   r#   r$   Ú#test_iloc_nullable_int64_size_1_nan­  s    &z2TestILocSeries.test_iloc_nullable_int64_size_1_nanN)r&   r'   r(   r[  r\  r  r^  r#   r#   r#   r$   rY  „  s   rY  ).r=  r   ÚreÚwarningsr   r   ÚnumpyrE   r)   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_testingrC   Zpandas.api.typesr   Zpandas.tests.indexing.commonr   Úescaper@  r   r,   r?  rD  rN  rY  r#   r#   r#   r$   Ú<module>   s:   Dÿ         !-/V