o
    �¨Êh‡È  ã                   @   s  d Z ddlmZ ddlZddlZddlZddlmZ ddlm	  m
Z ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlm Z  ddl!m"Z" e #d¡Z$G d	d
„ d
ƒZ%G dd„ dƒZ&G dd„ dƒZ'G dd„ dƒZ(G dd„ dƒZ)G dd„ dƒZ*dS )z* test positional based indexing with iloc é    )ÚdatetimeN)ÚIndexingError)ÚNAÚCategoricalÚCategoricalDtypeÚ	DataFrameÚIndexÚIntervalÚNaTÚSeriesÚ	TimestampÚarrayÚconcatÚ
date_rangeÚinterval_rangeÚisnaÚto_datetime)Ú	is_scalar)Ú"check_indexing_smoketest_or_raiseszuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indicesc                   @   sP   e Zd Zej dddg d¢g¡ej dddg¡ej dg d	¢¡d
d„ ƒƒƒZdS )ÚTestiLocÚkeyé   éÿÿÿÿ©r   é   r   ÚkindÚseriesÚframeÚcol)ÚlabelsÚmixedÚtsÚfloatsÚemptyc                 C   s(   |  |› d|› �¡}t|d|td� d S )NÚ_Úiloc)Úfails)Úgetfixturevaluer   Ú
IndexError)Úselfr   r   r   ÚrequestÚobj© r,   úQ/var/www/html/env/lib/python3.10/site-packages/pandas/tests/indexing/test_iloc.pyÚ"test_iloc_getitem_int_and_list_int)   s   
üz+TestiLoc.test_iloc_getitem_int_and_list_intN)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer.   r,   r,   r,   r-   r   (   s    þr   c                   @   s’  e Zd ZdZej dedƒedƒedƒg d¢e	edƒƒe
 g d¢¡g¡ej dejejg¡dd„ ƒƒZej d	e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-ej .dM¡dNdO„ ƒZ/dPdQ„ Z0dRdS„ Z1dTdU„ Z2dVdW„ Z3dXdY„ Z4dZd[„ Z5d\d]„ Z6d^d_„ Z7d`da„ Z8ej dIde9e
j:g¡dbdc„ ƒZ;ej dde<dHdƒdedfg¡dgdh„ ƒZ=didj„ Z>ej dejejg¡dkdl„ ƒZ?dmdn„ Z@dodp„ ZAej dqee
jg¡drds„ ƒZBej ddgeddtƒg¡dudv„ ƒZCdwdx„ ZDdydz„ ZEd{d|„ ZFd}d~„ ZGdd€„ ZHd�d‚„ ZIej dƒee
jg¡ej d„ee
jg¡d…d†„ ƒƒZJd‡dˆ„ ZKd‰dŠ„ ZLeMjNd‹dŒ„ ƒZOd�dŽ„ ZPdS )�ÚTestiLocBaseIndependentzTests Independent Of Base Classr   Né   r   Úindexerc           	      C   s  t dtdƒitd�}tg d¢ƒ}|s|jjd  |¡sJ ‚| ¡ }|j}|||ƒ|df< t d|iƒ 	t¡}|sBt
 |d j|¡sBJ ‚t ||¡ d|jd< |d dksUJ ‚t t
jg d¢td�tdƒdœƒ}| ¡ }|||ƒ|df< t t| 	t¡td�tdƒdœƒ}t ||¡ d S )	Nr   r6   ©Údtype)ÚalphaÚbetaÚgammar<   ©r   r   r   ©r   r   )r   ÚrangeÚobjectr   Ú_mgrÚblocksÚ_can_hold_elementÚcopyÚvaluesÚastypeÚnpÚshares_memoryÚtmÚassert_frame_equalr%   r   r   )	r)   r7   r   Úusing_array_managerr   ÚcatÚdfÚ	orig_valsÚexpectedr,   r,   r-   Ú%test_iloc_setitem_fullcol_categorical?   s$   
  z=TestiLocBaseIndependent.test_iloc_setitem_fullcol_categoricalÚboxc                 C   sö   t g d¢ƒ}|| d¡ƒ}|tu r|j}n|jjd }|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 rn|re|j|usZJ ‚t 
|j|¡scJ ‚d S |j|u slJ ‚d S t 
|d j|¡syJ ‚d S )N©r   r   r6   é   Úi8r   r   )r6   rS   r6   rS   r8   )r   Úto_numpyr   rE   rA   Úarraysr%   rG   rI   Úassert_equalrH   )r)   Úframe_or_seriesrQ   Úusing_copy_on_writeÚarrr+   rE   rO   r,   r,   r-   Útest_iloc_setitem_ea_inplacek   s    z4TestiLocBaseIndependent.test_iloc_setitem_ea_inplacec                 C   sH   t g d¢ƒ}ttdƒ|d�}|j d¡sJ ‚| ¡ }|j d¡s"J ‚d S )N)r   r   r   r6   ©Úindex)r   ©r   r   )r   r   r?   r%   Ú_is_scalar_accessÚto_frame)r)   r]   ÚserrM   r,   r,   r-   Útest_is_scalar_access‰   s
   z-TestiLocBaseIndependent.test_is_scalar_accessc              	   C   sî  t tj d¡ d¡tdƒd�}d}tjt|d�� |jd d …g d¢f  W d   ƒ n1 s.w   Y  tjt|d�� |jdd	g  W d   ƒ n1 sLw   Y  tjt|d�� |jdd
g  W d   ƒ n1 sjw   Y  tjt|d�� |jdg  W d   ƒ n1 s‡w   Y  |d }tjt|d�� |jdg  W d   ƒ n1 s¨w   Y  tjt|d�� |jdg  W d   ƒ n1 sÅw   Y  d}tjt|d�� |jd	  W d   ƒ n1 sãw   Y  tjt|d�� |jd
  W d   ƒ n1 sÿw   Y  tjt|d�� |jd	  W d   ƒ n	1 �sw   Y  tjt|d�� |jd
  W d   ƒ n	1 �s9w   Y  |jd d …dd…f }|jd d …dd …f }t	 
||¡ |jd d …dd…f }|jd d …d d…f }t	 
||¡ |jd d …ddd…f }|jd d …d dd…f }t	 
||¡ |jd d …ddd…f }|jd d …dd d…f }t	 
||¡ |jd d …dd…f }|jd d …d d…f }t	 
||¡ |jd d …dd…f }|jd d …d d…f }t	 
||¡ |jd d …ddd…f }|jd d …d d…f }t	 
||¡ |jd d …dd…f }|jd d …d d…f }t	 
||¡ |jdd	… }|jdd … }t	 ||¡ |jd	d … }|jd d… }t	 ||¡ |jd	d d… }|jd d d… }t	 ||¡ t tj d¡ d¡tdƒd�}t	 
|jd d …dd…f t |jtg |jjd�d�¡ t	 
|jd d …dd…f |jd d …dgf ¡ t	 
|jdd… |jdg ¡ d}tjt|d�� |jg d¢  W d   ƒ n	1 �sÌw   Y  d}tjt|d�� |jd d …df  W d   ƒ d S 1 �sðw   Y  d S )Nr   )é   é   ÚABCDE©Úcolumnsz%positional indexers are out-of-bounds©Úmatch©r   r   r   r6   rS   rd   r   é   iâÿÿÿéd   ÚAiœÿÿÿz*single positional indexer is out-of-boundsrS   é
   éüÿÿÿiöÿÿÿr   r   iõÿÿÿé   é   ©rd   r   ÚABr6   r8   ©r]   rg   é   ©rS   rd   ru   )r   rG   ÚrandomÚdefault_rngÚlistr2   Úraisesr(   r%   rI   rJ   Úassert_series_equalÚstandard_normalr]   r   rg   r9   )r)   rM   ÚmsgÚsÚresultrO   Údflr,   r,   r-   Útest_iloc_exceeds_bounds“   s¨   ÿÿÿÿÿÿÿÿÿÿÿþ.ÿ$ÿz0TestiLocBaseIndependent.test_iloc_exceeds_boundszindex,columnsrc   re   zindex_vals,column_valsrm   ÚDÚ1Ú2iã  r   c                 C   sn   t tj d¡ t|ƒt|ƒf¡||d�}d}tjt|d�� |j	||f  W d   ƒ d S 1 s0w   Y  d S )Nr   rt   z$.iloc requires numeric indexers, gotrh   )
r   rG   rw   rx   r|   Úlenr2   rz   r(   r%   )r)   r]   rg   Ú
index_valsÚcolumn_valsrM   r}   r,   r,   r-   Útest_iloc_non_integer_raisesø   s   ý"ÿz4TestiLocBaseIndependent.test_iloc_non_integer_raisesc                 C   s`   t t d¡ dd¡ƒ}t ||¡}tjtdd�� |j	d  W d   ƒ d S 1 s)w   Y  d S )Nrl   rn   zCannot index by location indexrh   Úa)
r   rG   ÚarangeÚreshaperI   Úget_objr2   rz   Ú	TypeErrorr%   )r)   rX   r+   r,   r,   r-   Ú test_iloc_getitem_invalid_scalar  s
   "ÿz8TestiLocBaseIndependent.test_iloc_getitem_invalid_scalarc                 C   sr   t  g d¢¡}| ¡ }tg d¢g d¢g d¢dœg d¢d�}|j|  t ||¡ |jd d …|f  t ||¡ d S )N)r   r   r   )rl   ée   éf   )ég   éh   éi   )éj   ék   él   ©rm   ÚBÚC©r   r   r6   r\   )rG   r   rD   r   r%   rI   Úassert_numpy_array_equal)r)   Úarray_with_neg_numbersÚ
array_copyrM   r,   r,   r-   Ú-test_iloc_array_not_mutating_negative_indices  s   þ
zETestiLocBaseIndependent.test_iloc_array_not_mutating_negative_indicesc                 C   sÒ   t g d¢g d¢dœƒ}|d }|jd }|jd }t ||¡ |jdg }|jdg }t ||¡ |jd }|jd }||ksAJ ‚|jdg }|jdg }t ||¡ tdgdgd�}|jd	g }t ||¡ d S )
N)r   r6   rd   )é   rp   é   ©rm   r˜   rm   r   éýÿÿÿr‰   r\   r   )r   r%   rI   r{   rJ   r   )r)   rM   r~   rO   r   r,   r,   r-   Ú/test_iloc_getitem_neg_int_can_reach_first_index"  s"   



zGTestiLocBaseIndependent.test_iloc_getitem_neg_int_can_reach_first_indexc                 C   s”   t d ddœdddœgƒ}t dddœdddœgƒ}t||gdd�}|jd }t|ƒs+J ‚|jdd d …f }ttjdddgg d	¢dd
�}t ||¡ d S )Nr   r¡   r   r6   rS   ©Úaxisr=   r   ©rm   r˜   rm   r˜   )r]   Úname)	r   r   r%   r   r   rG   ÚnanrI   r{   )r)   Údf1Údf2rM   r   rO   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   r6   r—   rl   éÈ   é,  éè  éÐ  é¸  r   )r˜   r™   r\   )r   rI   rJ   r%   ©r)   rM   rO   r   r,   r,   r-   Útest_iloc_getitem_arrayK  s   


ýÿ z/TestiLocBaseIndependent.test_iloc_getitem_arrayc                 C   sž   t ddddœddddœdd	d
dœgƒ}t ddddœddddœgƒ}|jg d¢ }t ||¡ t ddddœdd	d
dœgddgd�}|jdd„  }t ||¡ d S )Nr   r   r6   r—   rl   r¬   r­   r®   r¯   r°   )TTFr   r\   c                 S   s   | j d dkS )Nr   r   r\   ©Úxr,   r,   r-   Ú<lambda>n  s    z@TestiLocBaseIndependent.test_iloc_getitem_bool.<locals>.<lambda>©r   r%   rI   rJ   r±   r,   r,   r-   Útest_iloc_getitem_bool^  s   


ýÿÿz.TestiLocBaseIndependent.test_iloc_getitem_boolr]   TF)TFTFc                 C   sb   t g d¢ƒ}dt|ƒ› dt|ƒ› �}tjt|d�� |j|  W d   ƒ d S 1 s*w   Y  d S )Nrš   z Boolean index has wrong length: z instead of rh   )r   r…   r2   rz   r(   r%   )r)   r]   r~   r}   r,   r,   r-   Útest_iloc_getitem_bool_diff_lenq  s
   "ÿz7TestiLocBaseIndependent.test_iloc_getitem_bool_diff_lenc                 C   sÚ   t ddddœddddœdd	d
dœgƒ}t ddddœddddœgƒ}|jd d… }t ||¡ t dddœgdgd�}|jdd…dd…f }t ||¡ t dddœdddœdd
dœgƒ}|jd d …dd„ f }t ||¡ d S )Nr   r   r6   r—   rl   r¬   r­   r®   r¯   r°   r¡   r\   r   )rm   r™   c                 S   ó   ddgS )Nr   r   r,   )rM   r,   r,   r-   rµ   �  ó    zATestiLocBaseIndependent.test_iloc_getitem_slice.<locals>.<lambda>r¶   r±   r,   r,   r-   Útest_iloc_getitem_slicey  s"   


ýÿÿz/TestiLocBaseIndependent.test_iloc_getitem_slicec                 C   s¬  t tj d¡ d¡g d¢d�}t tj d¡jdddd� dd¡d	d
gd�}t||gdd�}t 	|j
d d …d d…f |¡ t 	|j
d d …dd …f |¡ t||gdd�}t 	|j
d d …d d…f |¡ t 	|j
d d …dd …f |¡ t||j
d d …dgf gdd�}t 	|j
d d …dd…f |¡ t||gdd�}t 	|j
dd…d d…f |¡ t 	|j
dd…dd …f |¡ t 	|j
dd …d d…f |¡ t 	|j
dd …dd …f |¡ d S )Nr   ©rn   rS   )rm   rm   r˜   r˜   rf   r   rn   rc   ©Úsizerm   r™   r   r¤   rS   r6   )r   rG   rw   rx   r|   Úintegersr‹   r   rI   rJ   r%   )r)   r©   rª   rM   Úexpr,   r,   r-   Útest_iloc_getitem_slice_dups�  s*   þþ "z4TestiLocBaseIndependent.test_iloc_getitem_slice_dupsc                 C   sè   t tj d¡ d¡t ddd¡t ddd¡d�}d|jd	< |jd	 }|dks(J ‚d|jd d …dd…f< |jd d …dd…f }|jd d …dd…f }t ||¡ t	dg d
¢d�}|jdd…  d7  < t	g d¢g d
¢d�}t 
||¡ d S )Nr   ©rS   rS   r   é   é   r6   rt   r   ©r   r   rv   r\   ©r   r   r   )r   rG   rw   rx   r|   rŠ   r%   rI   rJ   r   r{   )r)   Úwarn_copy_on_writerM   r   rO   r~   r,   r,   r-   Útest_iloc_setitem­  s    ý

z)TestiLocBaseIndependent.test_iloc_setitemc                 C   sì   t g d¢g d¢g d¢gƒ}|d  t¡|d< t g d¢g d¢g d¢gƒ}|d  t¡|d< d|jdd�d	< t ||¡ t g d¢g d¢g d¢gƒ}|d  t¡|d< t g d
¢g d¢g d¢gƒ}|d  t¡|d< d|jdd�d	< t ||¡ d S )N)ru   Úcrn   )rŸ   Údrp   )rÃ   ÚerÄ   r   )rd   rd   rd   rd   r   r¤   r   )ru   rÉ   rd   )rŸ   rÊ   rd   )rÃ   rË   rd   )r   rF   r@   r%   rI   rJ   ©r)   rM   rO   r,   r,   r-   Útest_iloc_setitem_axis_argumentÃ  s   z7TestiLocBaseIndependent.test_iloc_setitem_axis_argumentc                 C   sŒ   t t d¡ d¡g d¢g d¢d�}|jddgddgf  |jddgddgf  d7  < t t g d	¢¡ d¡g d¢g d¢d�}t ||¡ d S )
Né	   ©r6   r6   r—   rt   r   r   r   rl   )	r   r�   r�   r6   r’   r“   ru   rŸ   rÃ   )r   rG   rŠ   r‹   r%   r   rI   rJ   rÌ   r,   r,   r-   Útest_iloc_setitem_listÓ  s   ÿýz.TestiLocBaseIndependent.test_iloc_setitem_listc                 C   sp   t g d¢ƒ}t g d¢ƒ}| ¡ }ddg|jt ddgƒ< t ||¡ | ¡ }ddg|jtddgƒ< t ||¡ d S )N)r   r   r   r6   )r   r   éþÿÿÿr6   r   rÑ   r   r   )r   rD   r%   rI   r{   r   )r)   Ús_origrO   r~   r,   r,   r-   Útest_iloc_setitem_pandas_objectâ  s   z7TestiLocBaseIndependent.test_iloc_setitem_pandas_objectc                 C   sf  t d ddœdddœgƒ}t dddœdddœgƒ}t||gdd�}| d¡}t |jd d …df ¡}|| j}|j|df |j|df< t ||¡ t ddgddgdœƒ}d	d	g|_	|d
= t ||¡ |jddgddgf |jddgddgf< t ||¡ |jddgddgf j
dd�|jddgddgf< |jddgddgf j
dd�|jddgddgf< t ||¡ d S )Nr   r¡   r   r6   rS   r¤   r   r>   r˜   rm   T)Údrop)r   r   ÚfillnarG   Úisnanr%   r]   rI   rJ   rg   Úreset_index)r)   r©   rª   rM   rO   ÚindsÚmaskr,   r,   r-   Útest_iloc_setitem_dupsï  s"   


(00z.TestiLocBaseIndependent.test_iloc_setitem_dupsc                 C   s  t ddgddggddgd�}|jd d …df  d¡|jd d …df< |s-t|jjƒdks-J ‚tjtdd	�� |jd d …df d
 |jd d …df< W d   ƒ n1 sQw   Y  |sbt|jjƒdksbJ ‚| 	¡ }|jddgddgf |jddgddgf< t 
||¡ d S )Nr   r   r   r6   r˜   rf   Úf8úincompatible dtyperh   g      à?)r   r%   rF   r…   rA   rB   rI   Úassert_produces_warningÚFutureWarningrD   rJ   )r)   rK   rM   rO   r,   r,   r-   Ú9test_iloc_setitem_frame_duplicate_columns_multiple_blocks  s   &&ÿ(zQTestiLocBaseIndependent.test_iloc_setitem_frame_duplicate_columns_multiple_blocksc                 C   sØ  t tj d¡ d¡tdddƒtdddƒd�}|jd }|jd }t 	||¡ |jd }|jd	 }||ks6J ‚|jdd… }|jdd
… }t 
||¡ |jd d …dd…f }|jd d …dd…f }t 
||¡ |jg d¢ }|jg d¢ }t 
||¡ |jg d¢ddgf }|jg d¢ddgf }t 
||¡ |jg d¢ddgf }|jg d¢ddgf }t 
||¡ |jg d¢ddgf }|jg d¢ddgf }t 
||¡ ttddƒtd�}|j|j }|jg d¢ }t 
||¡ d S )Nr   r¼   r   rc   rÃ   rt   rS   )r   r   rÂ   é   r6   rd   )r   r   r6   )r   r   ru   r   )r   r   r6   r   )rq   r   ru   ru   )r   r   r   r6   )rq   rq   r   ru   )r]   r9   )r   rS   ru   rÃ   )r   rG   rw   rx   r|   r?   r%   ÚlocrI   r{   rJ   r   r@   r]   )r)   rM   r   rÀ   rO   r~   r,   r,   r-   Útest_iloc_getitem_frame(  sB   

ý



z/TestiLocBaseIndependent.test_iloc_getitem_framec                 C   s  t tj d¡ d¡tdƒtdƒd�}|jd }|jd }||ks"J ‚|jd d …dd…f }|jd d …d	gf }t 	||¡ |jd
 }|jd }||ksMJ ‚d}t
jt|d�� |jd  W d   ƒ n1 sfw   Y  d}t
jt|d�� |jd  W d   ƒ d S 1 s…w   Y  d S )Nr   r¼   Ú
abcdefghijÚABCDrt   rÅ   )Úbr˜   r6   r™   )r   r   )Újr‚   zCindex 5 is out of bounds for axis 0 with size 4|index out of boundsrh   )rn   rd   zžLocation based indexing can only have \[integer, integer slice \(START point is INCLUDED, END point is EXCLUDED\), listlike of integers, boolean array\] types)r   rG   rw   rx   r|   ry   r%   rá   rI   rJ   r2   rz   r(   Ú
ValueError)r)   rM   r   rÀ   rO   r}   r,   r,   r-   Ú test_iloc_getitem_labelled_frameY  s.   ý



ÿÿ"ÿz8TestiLocBaseIndependent.test_iloc_getitem_labelled_framec                 C   sˆ  t j d¡ d¡}tddd�}tdƒ}t|||d�}| ¡  |jdd	…d
d…f }t|dd	…d
d…f |dd	… |d
d… d�}t	 
||¡ tdƒ|_|jdd	…d
d…f }t|dd	…d
d…f |dd	… tdƒd�}t	 
||¡ t j d¡ d¡}ttd
ddƒƒ}ttd
ddƒƒ}t|||d�}|sš|jjd
 j |jdd	…dd…f }t|dd	…dd…f |dd	… |dd… d�}t	 
||¡ d S )Nr   )ru   rS   Ú20130101ru   )Úperiodsrä   rt   r6   rd   r   ÚaaaaÚaarÄ   rÃ   r   rS   )rG   rw   rx   r|   r   ry   r   Údescriber%   rI   rJ   rg   r?   rA   rB   Úmgr_locs)r)   rK   rZ   r]   rg   rM   r   rO   r,   r,   r-   Útest_iloc_getitem_doc_issue|  s*   .
*.z3TestiLocBaseIndependent.test_iloc_getitem_doc_issuec                 C   s`  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¡ d
¡t
dddƒd�}d|jd< |jd }|dksjJ ‚d|jd d…< |jd d… }|jd d… }t ||¡ t	dgd ƒ}g d¢|jdd d…< g d¢|jdd d…< |}t	g d¢ƒ}t ||¡ d S )Nr   r¼   rã   rä   rt   r   rÅ   r   r6   rn   rc   r\   rS   r   ru   )r   r   rS   )r   r6   rd   rj   )r   rG   rw   rx   r|   ry   r%   rI   rJ   r   r?   r{   )r)   rM   r   rO   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 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 )Nrd   Úint64r8   rn   r¡   rp   rÄ   r    r   rS   )r   r   rn   rÄ   rS   )rd   ru   rp   r    rÎ   ©r‰   rå   rÉ   rÊ   rË   r´   Úy)r‰   rå   r´   ró   rË   )r   rG   rŠ   r%   rI   rJ   rÌ   r,   r,   r-   Útest_iloc_setitem_list_of_listsÂ  s   ÿÿz7TestiLocBaseIndependent.test_iloc_setitem_list_of_listsr   ÚvalueÚZc                 C   sV   t ddgddggddgd� dti¡}||jd|f< |jd	 }t|ƒr'|d
ks)J ‚d S )Nr   r   r6   rS   rm   r˜   rf   r   r=   rö   )r   rF   r@   r%   r   )r)   r7   rõ   rM   r   r,   r,   r-   Ú#test_iloc_setitem_with_scalar_indexÓ  s   &
z;TestiLocBaseIndependent.test_iloc_setitem_with_scalar_indexzignore::UserWarningc                 C   s  t ttdƒƒtdƒdgd�}|jd dk}d}tjt|d�� |j|  W d   ƒ n1 s.w   Y  tt|ƒƒ|_	d	}tjt
|d�� |j|  W d   ƒ n1 sSw   Y  |jtjd
gt|ƒ td� }t ||¡ t d¡}d| }dd„ |D ƒ}t ||dœ|ƒ}ddddddddd	dœ	}dD ]r}	|jdkj}|	r®t||	ƒd d d… }
t|t|
ƒƒ}dD ]T}z|r¿t||dd … ƒ}n|}tt|| d  ¡ ƒƒ}W n ttt
fyç } z
t|ƒ}W Y d }~nd }~ww |	|f}| |¡}||k�rtd|› d|› d|› d�ƒ‚q°q“d S )Nrd   re   r‰   rt   r   r   zBiLocation based boolean indexing cannot use an indexable as a maskrh   zDiLocation based boolean indexing on an integer type is not availableTr8   rS   c                 S   s   g | ]}t |ƒ‘qS r,   )Úbin)Ú.0Únumr,   r,   r-   Ú
<listcomp>õ  s    z:TestiLocBaseIndependent.test_iloc_mask.<locals>.<listcomp>)ÚlocsÚnumsÚ0b1100Ú0b11ztUnalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).)	)NÚ )Nú.loc)Nú.iloc)r]   r   )r]   r  )r]   r  )rü   r   )rü   r  )rü   r  )Nr]   rü   r   )r   r  r  r   rý   ú[z] does not match [z], received [ú])r   ry   r?   r‰   r2   rz   rç   r%   r…   r]   ÚNotImplementedErrorrG   r   ÚboolrI   rJ   rŠ   rý   rE   Úgetattrr   Ústrrø   Úsumr   ÚgetÚAssertionError)r)   rM   rÙ   r}   r   rü   rý   ÚrepsrO   ÚidxÚ
mask_indexÚmethodÚaccessorÚanswerÚerrr   Úrr,   r,   r-   Útest_iloc_maská  sj   ÿÿ
ð€ÿþ

ÿÿñûz&TestiLocBaseIndependent.test_iloc_maskc                 C   sÌ   t dgd dgd dœƒ}t d¡d }|j| }t|d| d| gƒ}|j| }t ||¡ t dgd	 dgd	 dœƒ}t|d| d| gƒ}tjt	d
d�� |j
|  W d   ƒ d S 1 s_w   Y  d S )Nçš™™™™™¹?r°   r   r¡   rk   éc   r   r6   r®   znot in indexrh   )r   rG   rŠ   r%   r   rI   rJ   r2   rz   ÚKeyErrorrá   )r)   rM   r  rO   Údf3r   rª   r,   r,   r-   Útest_iloc_non_unique_indexing'  s   

"ÿz5TestiLocBaseIndependent.test_iloc_non_unique_indexingc                 C   sÒ   t t d¡tdd„ tdƒD ƒdd�tdd„ tdƒD ƒdd�d	�}tj|jd d …g f |jd d …d d
…f ddd� tj|jg d d …f |jd d
…d d …f ddd� tj|jg  |jd d
…d d …f ddd� d S )Nrr   c                 S   ó   g | ]}d |› �‘qS ©zi-r,   ©rù   Úir,   r,   r-   rû   ;  ó    zNTestiLocBaseIndependent.test_iloc_empty_list_indexer_is_ok.<locals>.<listcomp>rd   r‰   ©r§   c                 S   r  r  r,   r  r,   r,   r-   rû   <  r  r   rt   r   T)Úcheck_index_typeÚcheck_column_type)r   rG   Úonesr   r?   rI   rJ   r%   ©r)   rM   r,   r,   r-   Ú"test_iloc_empty_list_indexer_is_ok8  s(   ýüü 
ÿz:TestiLocBaseIndependent.test_iloc_empty_list_indexer_is_okc                 C   sX  t dg d¢iƒ}|jd d … }||usJ ‚t |d |d ¡s!J ‚t |¡� g d¢|jd d …df< W d   ƒ n1 s<w   Y  |rP|d g d¢k ¡ sOJ ‚n
|d dk ¡ sZJ ‚tg d¢ƒ}|jd d … }||usmJ ‚t |¡� g d¢|d d…< W d   ƒ n1 s…w   Y  |rœt|d d… g d¢kƒsšJ ‚d S t|d d… g d¢kƒsªJ ‚d S )Nr‰   rš   )rS   rS   rS   rS   )r   r   r6   rS   rd   ru   ©rŸ   rÃ   rÎ   r6   )	r   r%   rG   rH   rI   Úassert_cow_warningrá   Úallr   )r)   rY   rÇ   Úoriginal_dfÚ	sliced_dfÚoriginal_seriesÚsliced_seriesr,   r,   r-   Ú&test_identity_slice_returns_new_objectQ  s&   ÿÿ  z>TestiLocBaseIndependent.test_identity_slice_returns_new_objectc                 C   sD   t ddgddggƒ}|jt d¡ }tddgdd�}t ||¡ d S )Nr   r   r6   rS   r   r  )r   r%   rG   r   r   rI   r{   )r)   rM   r   r~   r,   r,   r-   Útest_indexing_zerodim_np_arrayr  s   z6TestiLocBaseIndependent.test_indexing_zerodim_np_arrayc                 C   s,   t ddgƒ}|jt d¡ }|dksJ ‚d S )Nr   r   r   )r   r%   rG   r   )r)   r~   r   r,   r,   r-   Ú%test_series_indexing_zerodim_np_arrayy  s   z=TestiLocBaseIndependent.test_series_indexing_zerodim_np_arrayc                 C   sŠ   t g d¢ƒ}t|g d¢dœdd�}t |d |¡sJ ‚|d d d… |jd d …df< t |d |¡s3J ‚t g d	¢g d¢d
�}t ||¡ d S )Nr—   rš   )r   r   F)rD   r   r   r   )r™   r˜   rm   ©Ú
categories)r   r   rI   rH   r%   Úassert_categorical_equal)r)   rL   rM   rO   r,   r,   r-   Ú-test_iloc_setitem_categorical_updates_inplace  s   zETestiLocBaseIndependent.test_iloc_setitem_categorical_updates_inplacec                 C   s:  t ddgddgddgdtjggƒ}|j|jdk  d9  < t ddgddgdd	gdtjggƒ}t ||¡ |j|jdk  d9  < t ddgddgdd	gd
tjggƒ}t ||¡ |jg d¢  d9  < t ddgdd
gdd	gd
tjggƒ}t ||¡ |jg d¢  d  < t ddgddgddgdtjggƒ}t ||¡ d S )Nr   r   r   r6   rS   rd   ru   rÃ   rn   rÄ   )TTFF)FFTTg      @g      (@g      @)r   rG   r¨   r%   r]   rI   rJ   ©r)   r   rO   r,   r,   r-   Ú test_iloc_with_boolean_operationŽ  s   """""z8TestiLocBaseIndependent.test_iloc_with_boolean_operationc                 C   sR   t dtd ¡ ƒiƒ}|jd }tdgg d¢d�}t|dgddd�}t ||¡ d S )	Nr´   z	a b c d er   r‰   rò   r/  Úcategory)r]   r§   r9   )r   r   Úsplitr%   r   rI   r{   )r)   rM   r   Úraw_catrO   r,   r,   r-   Ú?test_iloc_getitem_singlerow_slice_categoricaldtype_gives_series¡  s
   
zWTestiLocBaseIndependent.test_iloc_getitem_singlerow_slice_categoricaldtype_gives_seriesc                 C   s°   t g d¢ƒ d¡}|jdd… }t ddgƒ tg d¢ƒ¡}t ||¡ |jddg }t ddgƒ tg d¢ƒ¡}t ||¡ |jg d¢ }t dgƒ tg d¢ƒ¡}t ||¡ d S )Nrš   r5  r   r   r   ©TFF)r   rF   r%   r   rI   r{   )r)   ra   r   rO   r,   r,   r-   Ú$test_iloc_getitem_categorical_valuesª  s   z<TestiLocBaseIndependent.test_iloc_getitem_categorical_valuesc                 C   s<   t g d¢dd�}||jd< t tddgdd�}t ||¡ d S )Nr   ztimedelta64[ns]r8   r   r   r   )r   r%   r
   rI   r{   )r)   rõ   r   rO   r,   r,   r-   Ú%test_iloc_setitem_td64_values_cast_na¿  s   
z=TestiLocBaseIndependent.test_iloc_setitem_td64_values_cast_naÚnot_nar‰   g      ð?c                 C   sX   t |gd�}t||||g|d�}|||g|jd d…< t||||g|d�}t ||¡ d S )Nr/  r8   r6   )r   r   r%   rI   r{   )r)   r<  Únulls_fixturer9   ra   rÀ   r,   r,   r-   Ú$test_setitem_mix_of_nan_and_intervalÇ  s   ÿz<TestiLocBaseIndependent.test_setitem_mix_of_nan_and_intervalc                 C   s�   t g ƒ}ttj d¡ t|ƒt|ƒf¡||d�}tj d¡jddd�}d|j› �}t	j
t|d�� d|j|< W d   ƒ d S 1 sAw   Y  d S )	Nr   rt   rd   )r   r   r   r½   zCannot set values with ndim > rh   r   )r   r   rG   rw   rx   r|   r…   r¿   Úndimr2   rz   rç   r%   )r)   r  r+   Únd3r}   r,   r,   r-   Ú4test_iloc_setitem_empty_frame_raises_with_3d_ndarrayÒ  s   ý"ÿzLTestiLocBaseIndependent.test_iloc_setitem_empty_frame_raises_with_3d_ndarrayc                 C   s¸   t  d¡}t|ƒ}t  d¡}|jdd� t|ƒ}t ||ƒg d¢ ||ƒg d¢ ¡ t ||ƒdg ||ƒdg ¡ t ||ƒd ||ƒd ¡ t ||ƒdd… ||ƒdd… ¡ d S )Nrn   F)Úwriterš   r   r6   )rG   Úeyer   ÚsetflagsrI   rJ   r{   )r)   r7   Úrw_arrayÚrw_dfÚro_arrayÚro_dfr,   r,   r-   Ú"test_iloc_getitem_read_only_valuesß  s   

$ (z:TestiLocBaseIndependent.test_iloc_getitem_read_only_valuesc                 C   s€   t dtjddd�iƒ}t g d¢¡}d|j_|j| }|jg d¢ }t 	||¡ |d j| }|d jg d¢ }t 
||¡ d S )NÚdatarl   Úfloat64r8   )r   r6   ru   F)r   rG   r"  r   ÚflagsÚ	writeabler%   rá   rI   rJ   r{   )r)   rM   Úindicesr   rO   r,   r,   r-   Útest_iloc_getitem_readonly_keyï  s   
z6TestiLocBaseIndependent.test_iloc_getitem_readonly_keyc                 C   sR   t dgdgd�}tg d¢ƒ|jd< t dtg d¢ƒgidgdgd�}t ||¡ d S )Nr‰   r   ©rg   r]   rš   r=   )r   r   r%   rI   rJ   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   r6   rS   )Úflagrõ   r9  r   r   )r   r6   rS   r¶   )r)   rR  rM   r7   rO   r,   r,   r-   Útest_iloc_setitem_bool_indexer  s
   z6TestiLocBaseIndependent.test_iloc_setitem_bool_indexerr   c                 C   s€   t g d¢g d¢dœƒ}t g d¢g d¢g d¢dœƒ}|jd d …dgf |jd d …|f< t g d¢g d¢g d¢dœƒ}t ||¡ d S )	N)rp   rÄ   r    )rà   é   é   )Úa2Úb2rš   rv   r%  ©r‰   rå   rÉ   r   r¶   )r)   r7   r©   rª   rO   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)   rM   ÚrhsrO   r,   r,   r-   Ú"test_iloc_setitem_dictionary_value  s   


z:TestiLocBaseIndependent.test_iloc_setitem_dictionary_valuec                 C   sp  t tj d¡ d¡g d¢tdƒd�}|jdd … }t |j	d |¡ |jdd …df }t 
|j	d	 |¡ g d
¢|_|jdd … }t |j	d |¡ |jdd …df }t 
|j	d	 |¡ t tj d¡ d¡g d¢tdƒd�}|jdd… }t |j	d |¡ |jdd…df }t 
|j	d	 |¡ g d¢|_|jddg }t |j	d |¡ |jddgdf }t 
|j	d	 |¡ d S )Nr   rÏ   )r  çš™™™™™É?r^  Úabcrt   r   r^  r   )r^  r‰   )r   r^  r^  )rS   r6   )r   r^  r^  r   r   )r  r^  r   r^  )r   rG   rw   rx   r|   ry   r%   rI   rJ   rá   r{   r]   )r)   rM   Ú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                   @   s>   e Zd Zddd„Zdefdd„ZeZdefdd„Zd	d
„ Z	dS )zCTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TOÚreturnNc                 S   s
   || _ d S ©N©rõ   )r)   rõ   r,   r,   r-   Ú__init__L  s   
zLTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__init__c                 S   s   d| j › d�S )Nr  r  rd  ©r)   r,   r,   r-   Ú__str__O  s   zKTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__str__c                 S   s   | j |j kS rc  rd  )r)   Úotherr,   r,   r-   Ú__eq__T  s   zJTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__eq__c                 S   s   | S rc  r,   rf  r,   r,   r-   ÚviewW  s   zHTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.view)rb  N)
r/   r0   r1   re  r  rg  Ú__repr__r  ri  rj  r,   r,   r,   r-   ÚTOK  s    
rl  r   r   rt   r^   r   )r   r%   rI   rJ   rG   r¨   )r)   rl  rM   r   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ƒsJ ‚t 	|j
|j
d ¡ |jjd d …df }t|tƒs9J ‚t 	|j
|j
d ¡ d S )Nr   rÏ   ÚABCÚaabrP  r   )r   rG   rw   rx   ry   r%   Ú
isinstancer   rI   Úassert_almost_equalrE   ÚT)r)   rM   r   r,   r,   r-   Ú!test_iloc_getitem_with_duplicatesk  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š   rv   )r   r   r   rf   r   r   r¤   )r   r%   ÚtakerI   rJ   ©r)   rM   r   rO   r,   r,   r-   Ú"test_iloc_getitem_with_duplicates2z  s   z:TestiLocBaseIndependent.test_iloc_getitem_with_duplicates2c                 C   s¾   t tddƒddgiƒ}|jd }ttddƒdidd�}t ||¡ |jd d …df }tddgtddƒd�}t ||¡ | ¡ }|jd d …df  d7  < t tddƒddgiƒ}t ||¡ d S )Nr   r   r   r  r6   )r   r	   r%   r   rI   r{   rD   rJ   ru  r,   r,   r-   Útest_iloc_interval�  s   
z*TestiLocBaseIndependent.test_iloc_intervalÚindexing_funcÚrhs_funcc                 C   sŒ   t g d¢ƒ}|ddgƒ|j|g d¢ƒ< t g d¢ƒ}t ||¡ tdg d¢iƒ}|dgdggƒ|j|g d¢ƒ< tdg d¢iƒ}t ||¡ d S )Nr   rd   rn   ©TFT)rd   r   rn   r‰   )r   r%   rI   r{   r   rJ   )r)   ry  rx  ra   rO   rM   r,   r,   r-   Útest_loc_setitem_boolean_list’  s   z5TestiLocBaseIndependent.test_loc_setitem_boolean_listc                 C   s~   t dg d¢idd�}|jd d …d d d…f }t ||¡ d|d< |jd d …d d d…f }t |d |d dœƒ}t ||¡ d S )	Nrm   rš   ÚInt64r8   r   Úfoor˜   )r˜   rm   r¶   )r)   rM   ÚresrO   r,   r,   r-   Ú.test_iloc_getitem_slice_negative_step_ea_block   s   zFTestiLocBaseIndependent.test_iloc_getitem_slice_negative_step_ea_blockc                 C   sl   t dg d¢idd�}t dgdgg¡|jt ddg¡t dg¡f< t dg d¢i|d jd�}t ||¡ d S )	NÚstatusrZ  r5  r8   r‰   r   r   )r‰   r‰   rÉ   )r   rG   r   r%   r9   rI   rJ   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sJ ‚|d |d< |d |d ks)J ‚d S )Nr   g      $@r   r   r   )r   Ú_valuesr   r%   )r)   rZ   rM   ra   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-02Ú2021Ú2022r¡   rm   r   z2021-01-01 00:00:00z2022-01-01 00:00:00F)Úcheck_dtype)r   r   r%   r   rI   rJ   rÌ   r,   r,   r-   Ú)test_iloc_setitem_multicolumn_to_datetimeÃ  s   $þûÿ	zATestiLocBaseIndependent.test_iloc_setitem_multicolumn_to_datetime)Qr/   r0   r1   Ú__doc__r2   r3   r4   Úslicer?   r   rG   ÚasarrayrI   rá   r%   rP   r   r   r[   rb   r�   rŠ   ry   r   rˆ   rŽ   rž   r£   r«   r²   r·   r¸   r»   rÁ   rÈ   rÍ   rÐ   rÓ   rÚ   rß   râ   rè   rï   rð   rô   r÷   Úfilterwarningsr  r  r$  r,  r-  r.  r2  r4  r8  r:  r
   r¨   r;  r	   r>  rA  rI  rO  rQ  rU  r[  r]  ra  rm  rs  rv  rw  r{  r  r�  ÚtdÚ&skip_array_manager_not_yet_implementedrƒ  r‡  r,   r,   r,   r-   r5   <   s²    
úþ 

eýþ	
1#$"$

E!	





%"
r5   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestILocErrorsc              	   C   sÐ   |}|t u r
| ¡ }d}tjt|d�� |jd  W d   ƒ n1 s#w   Y  tjttd��/ t 	|o7|t u ¡� d|jd< W d   ƒ n1 sIw   Y  W d   ƒ d S W d   ƒ d S 1 saw   Y  d S )Nz5Cannot index by location index with a non-integer keyrh   g      @r   )
r   r`   r2   rz   r�   r%   r(   Ú_slice_iloc_msgrI   r&  )r)   Úseries_with_simple_indexrX   rÇ   r+   r}   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 w   Y  t jtdd�� d|jd d …d d …d d …f< W d   ƒ d S 1 sFw   Y  d S )NzToo many indexersrh   ztoo many indices for arrayr   )r2   rz   r   r%   r(   )r)   Ú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ƒ}d}tjt|d�� d|j|< W d   ƒ n1 s)w   Y  d}tjt|d�� |j|  W d   ƒ d S 1 sHw   Y  d S )Nr‰   rš   rz  zADataFrame indexer for .iloc is not supported. Consider using .locrh   r   zWDataFrame indexer is not allowed for .iloc
Consider using .loc for automatic alignment.)r   r2   rz   r�   r%   r(   )r)   rM   r7   r}   r,   r,   r-   Útest_iloc_frame_indexer÷  s   ÿÿ"ÿz&TestILocErrors.test_iloc_frame_indexerN)r/   r0   r1   r‘  r“  r”  r,   r,   r,   r-   rŽ  Ô  s    rŽ  c                   @   sB   e Zd Zdd„ Zdd„ Zdd„ Zej g d¢dd	g¡d
d„ ƒZ	dS )ÚTestILocSetItemDuplicateColumnsc                 C   sˆ   t d ddœdddœgƒ}t dddœdddœgƒ}t||gdd�}d|jd< |jd dks.J ‚|jd	 dks7J ‚|jjd tjksBJ ‚d S )
Nr   r¡   r   r6   rS   r¤   r   r=   )r   r   )r   r   r%   ÚdtypesrG   rñ   )r)   r©   rª   rM   r,   r,   r-   Ú*test_iloc_setitem_scalar_duplicate_columns  s   
zJTestILocSetItemDuplicateColumns.test_iloc_setitem_scalar_duplicate_columnsc                 C   sP   t g d¢gg d¢d�}dg|jd d …df< t g d¢gg d¢d�}t ||¡ d S )N)r   r  Ústr2©r‰   rå   rå   rf   Ústr3r   )r   r  rš  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s1J ‚d S )NrÃ   r8   r   rS   r¦   rf   r   )	r   rG   rŠ   rñ   r‹   r%   rF   rK  r–  r#  r,   r,   r-   Ú*test_iloc_setitem_series_duplicate_columns  s
   ÿ(zJTestILocSetItemDuplicateColumns.test_iloc_setitem_series_duplicate_columns)r–  Ú
init_valueÚexpected_value)rñ   Ú0r   )Úfloatz1.2g333333ó?c                 C   sj   t |ddggg d¢td�}|jd d …df  |¡|jd d …df< t |ddggg d¢td�}t ||¡ d S )Nr  r˜  r™  )rg   r9   r   )r   r@   r%   rF   rI   rJ   )r)   r–  r�  rž  rM   Úexpected_dfr,   r,   r-   Ú*test_iloc_setitem_dtypes_duplicate_columns#  s   ÿ&
ýzJTestILocSetItemDuplicateColumns.test_iloc_setitem_dtypes_duplicate_columnsN)
r/   r0   r1   r—  r›  rœ  r2   r3   r4   r¢  r,   r,   r,   r-   r•    s    	þr•  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestILocCallablec                 C   sš  t g d¢tdƒdœtdƒd�}|jdd„  }t ||jdd	g ¡ |jd
d„ d d …f }t ||jdd	gd d …f ¡ |jdd„ dd„ f }t ||jdd	gdf ¡ |jdd„ dd„ f }t ||jdd	gdgf ¡ |jdd	gdd„ f }t ||jdd	gdf ¡ |jdd	gdd„ f }t ||jdd	gdgf ¡ |jdd„ df }t ||jdd	gdf ¡ |jdd„ dgf }t ||jdd	gdgf ¡ d S )NrR   Úaabb©ÚXÚYrä   r\   c                 S   r¹   ©Nr   r6   r,   r³   r,   r,   r-   rµ   A  rº   zCTestILocCallable.test_frame_iloc_getitem_callable.<locals>.<lambda>r   r6   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   D  rº   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   G  rº   c                 S   ó   dS ©Nr   r,   r³   r,   r,   r-   rµ   G  ó    r   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   J  rº   c                 S   ó   dgS rª  r,   r³   r,   r,   r-   rµ   J  ó    c                 S   r©  rª  r,   r³   r,   r,   r-   rµ   N  r«  c                 S   r¬  rª  r,   r³   r,   r,   r-   rµ   Q  r­  c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   T  rº   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   W  rº   )r   ry   r%   rI   rJ   r{   )r)   rM   r~  r,   r,   r-   Ú test_frame_iloc_getitem_callable<  s"    z1TestILocCallable.test_frame_iloc_getitem_callablec                 C   sJ  t g d¢ttdƒtd�dœtdƒd�}| ¡ }d|jdd	„ < | ¡ }d|jd
dg< t ||¡ | ¡ }d|jdd	„ d d …f< | ¡ }d|jd
dgd d …f< t ||¡ | ¡ }d|jdd	„ dd	„ f< | ¡ }d|jd
dgdf< t ||¡ | ¡ }d|jdd	„ dd	„ f< | ¡ }d|jd
dgdgf< t ||¡ | ¡ }d|jd
dgdd	„ f< | ¡ }d|jd
dgdf< t ||¡ | ¡ }d|jd
dgdd	„ f< | ¡ }d|jd
dgdgf< t ||¡ | ¡ }d|jdd	„ df< | ¡ }d|jd
dgdf< t ||¡ | ¡ }ddg|jdd	„ dgf< | ¡ }ddg|jd
dgdgf< t ||¡ d S )NrR   r¤  r8   r¥  rä   r\   r   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   c  rº   zCTestILocCallable.test_frame_iloc_setitem_callable.<locals>.<lambda>r   r6   r   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   i  rº   rd   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   o  rº   c                 S   r©  rª  r,   r³   r,   r,   r-   rµ   o  r«  é   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   u  rº   c                 S   r¬  rª  r,   r³   r,   r,   r-   rµ   u  r­  r¢   c                 S   r©  rª  r,   r³   r,   r,   r-   rµ   |  r«  éûÿÿÿc                 S   r¬  rª  r,   r³   r,   r,   r-   rµ   ‚  r­  rn   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   ˆ  rº   c                 S   r¹   r¨  r,   r³   r,   r,   r-   rµ   Ž  rº   )r   r   ry   r@   rD   r%   rI   rJ   )r)   rM   r~  rÀ   r,   r,   r-   Ú test_frame_iloc_setitem_callableZ  sX   þz1TestILocCallable.test_frame_iloc_setitem_callableN)r/   r0   r1   r®  r±  r,   r,   r,   r-   r£  ;  s    r£  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestILocSeriesc           	   	   C   sL  t tj d¡ d¡ttdddƒƒd�}| ¡ }tt|ƒƒD ]}|j	| }||j
|  }t ||¡ q|j	tddƒ }|jdd… }t ||¡ t d ¡�# t |¡� d|d d …< W d   ƒ n1 scw   Y  W d   ƒ n1 srw   Y  |r€t ||¡ n|j	dd… dk ¡ s�J ‚|j	g d	¢ }| |j
g d	¢ ¡}t ||¡ d S )
Nr   rn   r   rc   r\   r   r6   rS   )r   r   r6   rS   rd   )r   rG   rw   rx   r|   ry   r?   rD   r…   r%   r]   rI   rq  r‰  rá   r{   rÝ   r&  r'  Úreindex)	r)   rY   rÇ   ra   Úser_originalr  r   rÀ   rO   r,   r,   r-   Ú	test_iloc•  s.   ÿ
ÿ€þzTestILocSeries.test_ilocc                 C   s*   t g d¢g d¢d�}|jd dksJ ‚d S )Nr   rÆ   r\   r   )r   r%   )r)   ra   r,   r,   r-   Útest_iloc_getitem_nonunique´  s   z*TestILocSeries.test_iloc_getitem_nonuniquec                 C   sT   t g d¢ƒ}t g d¢g d¢d�}|jdd… |jdd…< t g d¢ƒ}t ||¡ d S )Nrš   rv   )r   r   r   r\   r   r6   )r   rd   ru   )r   r%   rI   r{   )r)   Úser1Úser2rO   r,   r,   r-   r[  ¸  s
   z4TestILocSeries.test_iloc_setitem_pure_position_basedc                 C   s’   t dgtjgdœƒ}tjtdd�� |jd d …df  d¡|jd d …df< W d   ƒ n1 s/w   Y  t dgtt	gdd�dœƒ}t 
||¡ d S )NÚtest)r‰   rå   rÜ   rh   rå   r|  r8   )r   rG   r¨   rI   rÝ   rÞ   rá   rF   r   r   rJ   r3  r,   r,   r-   Ú#test_iloc_nullable_int64_size_1_nanÀ  s   (ÿz2TestILocSeries.test_iloc_nullable_int64_size_1_nanN)r/   r0   r1   rµ  r¶  r[  rº  r,   r,   r,   r-   r²  ”  s
    r²  )+rˆ  r   ÚreÚnumpyrG   r2   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrŒ  Úpandasr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingrI   Úpandas.api.typesr   Úpandas.tests.indexing.commonr   Úescaper�  r   r5   rŽ  r•  r£  r²  r,   r,   r,   r-   Ú<module>   s:    Dÿ         !34Y