a
    é´«j9=  ã                   @   s6   d dl Zd dlZd dlZd dlmZ G dd„ dƒZdS )é    Nc                	   @   sØ  e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zejjdg d¢ejg d¢d d!�e g d¢¡gg d"¢d#�d$d%„ ƒZejjdd&d'd(ejgejd&d'd(ejgd d!�gd)d*gd#�d+d,„ ƒZejjd-d.�ejjdd&d'd(ejgejd&d'd(ejgd d!�gd)d*gd#�d/d0„ ƒƒZd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Z d9d:„ Z!d;d<„ Z"d=d>„ Z#d?d@„ Z$dAdB„ Z%ej dCdDdEg¡dFdG„ ƒZ&dHdI„ Z'dJdK„ Z(dLdM„ Z)dNdO„ Z*dPdQ„ Z+dRS )SÚBaseGetitemTestsz%Tests for ExtensionArray.__getitem__.c                 C   sT   t  |¡}|jd d… }t  |d d… ¡}t ||¡ |jg d¢ }t ||¡ d S )Né   ©r   é   é   é   )ÚpdÚSeriesÚilocÚtmÚassert_series_equal©ÚselfÚdataÚserÚresultÚexpected© r   úb/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/extension/base/getitem.pyÚtest_iloc_series   s    
z!BaseGetitemTests.test_iloc_seriesc                 C   s&  t  |tjt|ƒdd�dœ¡}t  d|d d… i¡}|jd d…dgf }t ||¡ |jg d¢dgf }t ||¡ t j|d d… dd�}|jd d…df }t 	||¡ |jd d…df }t 	||¡ |jd d …d d d	…f }t ||dg ¡ |d
dg jd d …d d d	…f }t ||d
g ¡ d S )NÚint64©Údtype©ÚAÚBr   r   r   r   ©Únamer   r   )
r   Ú	DataFrameÚnpÚarangeÚlenr
   r   Úassert_frame_equalr	   r   ©r   r   Údfr   r   r   r   r   Útest_iloc_frame   s     z BaseGetitemTests.test_iloc_framec                 C   sò   t  d|i¡}|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 d…f }t ||¡ |jd d …dd…f }t ||jd d …d d…f ¡ |jd d …dd …f }t ||¡ d S )Nr   r   r   r   éÿÿÿÿ)r   r   r
   r   r"   )r   r   r$   r   r   r   r   Útest_iloc_frame_single_block0   s    z-BaseGetitemTests.test_iloc_frame_single_blockc                 C   sT   t  |¡}|jd d… }t  |d d… ¡}t ||¡ |jg d¢ }t ||¡ d S )Nr   r   r   )r   r	   Úlocr   r   r   r   r   r   Útest_loc_seriesF   s    
z BaseGetitemTests.test_loc_seriesc                 C   sÊ   t  |tjt|ƒdd�dœ¡}t  d|d d… i¡}|jd d…dgf }t ||¡ |jg d¢dgf }t ||¡ t j|d d… dd�}|jd d…df }t 	||¡ |jd d…df }t 	||¡ d S )	Nr   r   r   r   r   r   r   r   )
r   r   r   r    r!   r(   r   r"   r	   r   r#   r   r   r   Útest_loc_frameO   s    zBaseGetitemTests.test_loc_framec                 C   s~   t  d|i¡}t j|d gdgd|jd�}|jd }t ||¡ t j|d gdgt|ƒd |jd�}|jd }t ||¡ d S )Nr   r   )Úindexr   r   r&   r   )	r   r   r	   r   r(   r   r   r!   r
   r#   r   r   r   Ú test_loc_iloc_frame_single_dtypee   s    
ÿ
z1BaseGetitemTests.test_loc_iloc_frame_single_dtypec                 C   s>   |d }t ||jjƒsJ ‚t |¡d }t ||jjƒs:J ‚d S ©Nr   )Ú
isinstancer   Útyper   r	   ©r   r   r   r   r   r   Útest_getitem_scalart   s    z$BaseGetitemTests.test_getitem_scalarc                 C   s6  d}t jt|d�� |d  W d   ƒ n1 s00    Y  t jt|d�� |d  W d   ƒ n1 sf0    Y  t|ƒ}d dddd	|› d
|› �d|d › d|› �d|d › d|› �g¡}t jt|d�� ||d   W d   ƒ n1 sê0    Y  t jt|d�� || d   W d   ƒ n1 �s(0    Y  d S )Nz{only integers, slices \(`:`\), ellipsis \(`...`\), numpy.newaxis \(`None`\) and integer or boolean arrays are valid indices©ÚmatchZfoog      @ú|zlist index out of rangezindex out of boundszOut of bounds accessz loc must be an integer between -z and zindex r   z' is out of bounds for axis 0 with size zindex -)ÚpytestÚraisesÚ
IndexErrorr!   Újoin)r   r   ÚmsgZubr   r   r   Útest_getitem_invalid{   s(    ÿ&&úÿ
*z%BaseGetitemTests.test_getitem_invalidc                 C   s   |d }|||ƒsJ ‚d S r-   r   )r   Údata_missingÚna_cmpÚna_valuer   r   r   r   Útest_getitem_scalar_na—   s    z'BaseGetitemTests.test_getitem_scalar_nac                 C   sL   |g  }t |ƒdksJ ‚t|t|ƒƒs*J ‚|tjg dd� }t ||¡ d S )Nr   r   r   )r!   r.   r/   r   Úarrayr   Úassert_extension_array_equal)r   r   r   r   r   r   r   Útest_getitem_empty›   s
    z#BaseGetitemTests.test_getitem_emptyc                 C   sà   t jt|ƒtd�}|| }t|ƒdks*J ‚t|t|ƒƒs<J ‚t jt|ƒtd�}t |¡| }t|ƒdkslJ ‚|j|jks|J ‚d|d< || }t|ƒdksœJ ‚t|t|ƒƒs®J ‚t |¡| }t|ƒdksÌJ ‚|j|jksÜJ ‚d S )Nr   r   Tr   )	r   Úzerosr!   Úboolr.   r/   r   r	   r   )r   r   Úmaskr   r   r   r   Útest_getitem_mask¤   s    z"BaseGetitemTests.test_getitem_maskc                 C   sš   t  ddg¡}dt|ƒ› �}tjt|d�� ||  W d   ƒ n1 sH0    Y  tj|dd�}tjt|d�� ||  W d   ƒ n1 sŒ0    Y  d S )NTFz-Boolean index has wrong length: 2 instead of r2   Úbooleanr   )r   r?   r!   r5   r6   r7   r   )r   r   rD   r9   r   r   r   Útest_getitem_mask_raises¼   s    &z)BaseGetitemTests.test_getitem_mask_raisesc                 C   sÈ   t jtj|jdd�dd�}|| }t|ƒdks2J ‚t|t|ƒƒsDJ ‚t  |¡| }t|ƒdksbJ ‚|j	|j	ksrJ ‚d|d d…< | 
g d¢¡}|| }t ||¡ t  |¡}t  |¡| }t ||¡ d S )NrC   r   rF   r   Té   )r   r   r   r   r   )r   r?   r   rB   Úshaper!   r.   r/   r	   r   Útaker   r@   r   )r   r   rD   r   r   r   r   r   Útest_getitem_boolean_array_maskÆ   s    
z0BaseGetitemTests.test_getitem_boolean_array_maskc                 C   s†   t jtj|jdd�dd�}t j|d d…< d|dd…< || }|| d¡ }t ||¡ t  	|¡}|| }|| d¡ }t 
||¡ d S )NrC   r   rF   r   Tr   F)r   r?   r   rB   rI   ÚNAZfillnar   r@   r	   r   )r   r   rD   r   r   Úsr   r   r   Ú(test_getitem_boolean_na_treated_as_falseÙ   s    
z9BaseGetitemTests.test_getitem_boolean_na_treated_as_falseÚidx©r   r   r   ZInt64r   )Úlistúinteger-arrayznumpy-array)Úidsc                 C   sl   || }t |ƒdksJ ‚t|t|ƒƒs*J ‚| g d¢¡}t ||¡ t |¡}t |¡| }t ||¡ d S )Nr   rP   )	r!   r.   r/   rJ   r   r@   r   r	   r   )r   r   rO   r   r   r   r   r   Útest_getitem_integer_arrayë   s    
z+BaseGetitemTests.test_getitem_integer_arrayr   r   r   rQ   rR   c                 C   s>   d}t jt|d�� ||  W d   ƒ n1 s00    Y  d S )Nú9Cannot index with an integer indexer containing NA valuesr2   )r5   r6   Ú
ValueError)r   r   rO   r9   r   r   r   Ú(test_getitem_integer_with_missing_raisesû   s    z9BaseGetitemTests.test_getitem_integer_with_missing_raiseszSTries label-based and raises KeyError; in some cases raises when calling np.asarray)Úreasonc                 C   s^   d}t j|dd„ tt|ƒƒD ƒd�}tjt|d�� ||  W d   ƒ n1 sP0    Y  d S )NrU   c                 S   s   g | ]}t d | ƒ‘qS )éd   )Úchr©Ú.0Úir   r   r   Ú
<listcomp>  ó    zTBaseGetitemTests.test_getitem_series_integer_with_missing_raises.<locals>.<listcomp>©r+   r2   )r   r	   Úranger!   r5   r6   rV   )r   r   rO   r9   r   r   r   r   Ú/test_getitem_series_integer_with_missing_raises  s    
 z@BaseGetitemTests.test_getitem_series_integer_with_missing_raisesc                 C   s@   |t dƒ }t|t|ƒƒsJ ‚|t dƒ }t|t|ƒƒs<J ‚d S )Nr   r   )Úslicer.   r/   r0   r   r   r   Útest_getitem_slice  s    z#BaseGetitemTests.test_getitem_slicec                 C   sÔ   |dd d …f }t  ||¡ |d d …df }t  ||¡ |dd d…f }t  ||d d… ¡ |d d…df }t  ||d d… ¡ |dd d d…f }t  ||d d d… ¡ |d d d…df }t  ||d d d… ¡ d S )N.r   r   )r   r@   r0   r   r   r   Útest_getitem_ellipsis_and_slice  s    z0BaseGetitemTests.test_getitem_ellipsis_and_slicec                 C   s  t j|dd„ tt|ƒƒD ƒd�}| d¡|jd ks8J ‚| ddg¡}|jddg }t ||¡ | tdƒ¡}|jdd	g }t ||¡ | d
¡d u sšJ ‚| |j	 
¡ d	 ¡d u s¶J ‚t j|d d… tdƒd�}| d¡|jd ksèJ ‚| tddƒ¡}|jg d¢ }t ||¡ | d¡}|d u �s*J ‚d}tjt|d��\ | d¡|jd k�sXJ ‚| d
¡|jd
 k�srJ ‚| t|ƒ¡d u �sŠJ ‚W d   ƒ n1 �s 0    Y  t  |¡}t d ¡� |d d d… }W d   ƒ n1 �sä0    Y  | d	¡d u �sJ ‚d S )Nc                 S   s   g | ]}d | ‘qS )r   r   r[   r   r   r   r^   4  r_   z-BaseGetitemTests.test_get.<locals>.<listcomp>r`   r   r   é   r   r   r   r&   ZabcdefÚcÚbÚd)r   r   r   ÚZz;Series.__getitem__ treating keys as positions is deprecatedr2   )r   r	   ra   r!   Úgetr
   r   r   rc   r+   ÚmaxrQ   Zassert_produces_warningÚFutureWarning)r   r   rM   r   r   r9   Ús2r   r   r   Útest_get2  s4     
8
.zBaseGetitemTests.test_getc                 C   sX   t  |¡g d¢ }|jd |d ks(J ‚|jd |d ks>J ‚|jd |d ksTJ ‚d S )N©r   r   r   r   r   r   r   )r   r	   r
   r0   r   r   r   Útest_take_sequenceY  s    z#BaseGetitemTests.test_take_sequencec                 C   sÆ   |  ddg¡}|j|jksJ ‚|d |d ks2J ‚|d |d ksFJ ‚|j ddgd|d�}|d |d ksnJ ‚||d |ƒs€J ‚tjtdd��$ |  t|ƒd g¡ W d   ƒ n1 s¸0    Y  d S )Nr   r&   r   T)Ú
allow_fillÚ
fill_valuezout of boundsr2   )rJ   r   r5   r6   r7   r!   )r   r   r=   r<   r   r   r   r   Ú	test_take_  s    zBaseGetitemTests.test_takec                 C   s¬   |d d… }|j dgdd�}||d |ƒs.J ‚d}tjt|d�� |  dg¡ W d   ƒ n1 sb0    Y  tjtdd�� |  ddg¡ W d   ƒ n1 sž0    Y  d S )	Nr   r&   T©rr   z;cannot do a non-empty take from an empty axes|out of boundsr2   zcannot do a non-empty taker   )rJ   r5   r6   r7   )r   r   r=   r<   Úemptyr   r9   r   r   r   Útest_take_emptyl  s    *z BaseGetitemTests.test_take_emptyc                 C   sJ   t |ƒ}| d| |d dg¡}| dd|d |d g¡}t ||¡ d S )Nr   r   r&   )r!   rJ   r   r@   )r   r   Únr   r   r   r   r   Útest_take_negativez  s    z#BaseGetitemTests.test_take_negativec                 C   sX   |d }|d }|j |||g|jd�}|jddg|dd�}| ddg¡}t ||¡ d S )Nr   r   r   r&   T©rs   rr   )Ú_from_sequencer   rJ   r   r@   )r   r;   rs   ÚnaÚarrr   r   r   r   r   Útest_take_non_na_fill_value�  s    ÿz,BaseGetitemTests.test_take_non_na_fill_valuec                 C   sF   t jtdd��$ |jddg|dd� W d   ƒ n1 s80    Y  d S )NÚ r2   r   éþÿÿÿTrz   )r5   r6   rV   rJ   )r   r   r=   r   r   r   Ú&test_take_pandas_style_negative_raisesŒ  s    z7BaseGetitemTests.test_take_pandas_style_negative_raisesrr   TFc                 C   sV   |d d… }t jtdd��( |jt ddg¡|d� W d   ƒ n1 sH0    Y  d S )Nr   zout of bounds|out-of-boundsr2   r   ru   )r5   r6   r7   rJ   r   Zasarray)r   r   rr   r}   r   r   r   Útest_take_out_of_bounds_raises�  s    z/BaseGetitemTests.test_take_out_of_bounds_raisesc                 C   sb   t  |¡}| ddg¡}t j|j|d |t|ƒd  g|jd�dt|ƒd gd�}t ||¡ d S )Nr   r&   r   r   r`   )r   r	   rJ   r{   r!   r   r   r   )r   r   rM   r   r   r   r   r   Útest_take_series—  s    
"þz!BaseGetitemTests.test_take_seriesc                 C   sÖ   t  |¡}| g d¢¡}t j| g d¢¡g d¢d�}t ||¡ t|ƒ}| dd|g¡}t j|j||d |g|jd�dd|gd�}t ||¡ | ||d g¡}t j|j||g|jd�||d gd�}t ||¡ d S )Nrp   r`   r&   r   r   r   )	r   r	   ÚreindexrJ   r   r   r!   r{   r   )r   r   r=   rM   r   r   rx   r   r   r   Útest_reindex   s     
þÿzBaseGetitemTests.test_reindexc                 C   sl   |d }|d }|j ||g|jd�}t |¡}|jg d¢|d�}t |j |||g|jd�¡}t ||¡ d S )Nr   r   r   rP   )rs   )r{   r   r   r	   r„   r   r   )r   r;   Zvalidr|   r}   r   r   r   r   r   r   Útest_reindex_non_na_fill_value´  s    
ÿz/BaseGetitemTests.test_reindex_non_na_fill_valuec                 C   sd   t  d|i¡}|jdgdf }|jdks,J ‚|jjd jdksBJ ‚t|jdƒr`|jjjdks`J ‚d S )Nr   r   r   Úblocks)r   r   r(   ÚndimZ_mgrZarraysÚhasattrÚ_block)r   r   r$   Úresr   r   r   Útest_loc_len1Á  s    zBaseGetitemTests.test_loc_len1c                 C   s¦   t  |¡}|d d…  ¡ }||d ks*J ‚d}tjt|d��  |d d…  ¡  W d   ƒ n1 sb0    Y  tjt|d�� | ¡  W d   ƒ n1 s˜0    Y  d S )Nr   r   z6can only convert an array of size 1 to a Python scalarr2   )r   r	   Úitemr5   r6   rV   )r   r   rM   r   r9   r   r   r   Ú	test_itemÊ  s    
.zBaseGetitemTests.test_itemN),Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r%   r'   r)   r*   r,   r1   r:   r>   rA   rE   rG   rK   rN   r5   ÚmarkZparametrizer   r?   r   rT   rL   rW   Zxfailrb   rd   re   ro   rq   rt   rw   ry   r~   r�   r‚   rƒ   r…   r†   rŒ   rŽ   r   r   r   r   r      sh   			
$ý
$ý
ÿ$ý'
		r   )	Únumpyr   r5   Zpandasr   Zpandas._testingZ_testingr   r   r   r   r   r   Ú<module>   s   