a
    é´«j b  ã                   @   sz   d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZ ddlmZ G dd„ dƒZG dd„ dƒZG dd	„ d	ƒZdS )
zx
test setting *parts* of objects both positionally and label based

TODO: these should be split among the indexer tests
é    N)Ú	DataFrameÚIndexÚPeriodÚSeriesÚ	TimestampÚ
date_rangeÚperiod_rangec                   @   s|   e 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dS )ÚTestEmptyFrameSetitemExpansionc                 C   sl   t i tjddd�d�}tdtjddd�d�}||d< t ddgd itjddd�tdgƒd	�}t ||¡ d S )
Nr   Zdf_index©Úname©Úindexç®Gáz®ó?é   Úseries_indexÚseries©r   Úcolumns)r   ÚpdÚ
RangeIndexr   r   ÚtmÚassert_frame_equal©ÚselfÚdfr   Úexpected© r   úa/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/indexing/test_partial.pyÚ,test_empty_frame_setitem_index_name_retained   s    ýzKTestEmptyFrameSetitemExpansion.test_empty_frame_setitem_index_name_retainedc                 C   s\   t ƒ }tdtjddd�d�}||d< t ddgd itjddd�tdgƒd�}t ||¡ d S )Nr   r   r   r
   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   Ú-test_empty_frame_setitem_index_name_inherited&   s    ýzLTestEmptyFrameSetitemExpansion.test_empty_frame_setitem_index_name_inheritedc                 C   s–   t ddgd�}tdtdƒd�|jd< t ddgdgtjd�}t ||¡ t ddgd�}tddgd�|jd< t tjdggddgdgd	d�}t ||¡ d S )
NÚAÚB©r   é   r   r   r   )r   r   ÚdtypeÚfloat64)	r   r   ÚrangeÚlocÚnpr%   r   r   Únan)r   r   r   Úexpr   r   r   Ú-test_loc_setitem_zerolen_series_columns_align2   s    zLTestEmptyFrameSetitemExpansion.test_loc_setitem_zerolen_series_columns_alignc                 C   s˜   t ddgd�}d}tjt|d�� g d¢|jd< W d   ƒ n1 sD0    Y  t ddgd�}dd	g|jd
< t dd	ggd
gddgtjd�}t ||¡ d S )Nr    r!   r"   z(cannot set a row with mismatched columns©Úmatch©r#   é   é   r   é   é   r0   )r   r   r$   )	r   ÚpytestÚraisesÚ
ValueErrorr'   r(   Úint64r   r   )r   r   Úmsgr*   r   r   r   Ú7test_loc_setitem_zerolen_list_length_must_match_columns@   s    ,zVTestEmptyFrameSetitemExpansion.test_loc_setitem_zerolen_list_length_must_match_columnsc                 C   sÎ   t ƒ }d}tjt|d�� d|jd< W d   ƒ n1 s80    Y  tjt|d��& tdgdgd�|jd< W d   ƒ n1 s|0    Y  d}tjt|d��" d|jd d …df< W d   ƒ n1 sÀ0    Y  d S )Nz*cannot set a frame with no defined columnsr,   r#   Úfoor   z5cannot set a frame with no defined index and a scalar)r   r3   r4   r5   r'   r   )r   r   r7   r   r   r   Útest_partial_set_empty_frameN   s    (4z;TestEmptyFrameSetitemExpansion.test_partial_set_empty_framec                 C   s˜   t tdgƒtg dd�d�}t tg dd�d�}tg dd�|d< t ||¡ t tg ƒd�}t|jƒ|d< t ||¡ t tg ƒd�}|j|d< t ||¡ d S )Nr9   Úobject©r$   ©r   r   r   )r   r   r   r   r   r   ©r   r   r   r   r   r   Útest_partial_set_empty_frame2_   s    
z<TestEmptyFrameSetitemExpansion.test_partial_set_empty_frame2c                 C   sŽ   t tdgƒtg dd�d�}|d  d¡|d< t tg dd�d�}g |d< t ||¡ t tg dd�d�}tt t|ƒ¡dd�|d< t ||¡ d S )Nr9   r6   r<   r=   r%   r   )	r   r   Úastyper   r   r   r(   ÚarangeÚlenr>   r   r   r   Útest_partial_set_empty_frame3t   s    z<TestEmptyFrameSetitemExpansion.test_partial_set_empty_frame3c                 C   s^   t tg dd�d�}tt|ƒƒ|d< t tdgƒtg dd�d�}|d  d¡|d< t ||¡ d S )Nr6   r<   r   r9   r=   )r   r   r&   rB   r@   r   r   ©r   r   r   r   r   r   Útest_partial_set_empty_frame4‚   s
    z<TestEmptyFrameSetitemExpansion.test_partial_set_empty_frame4c                 C   s€   t ƒ }t |jt d¡¡ t ƒ }tdgdgd�|d< tdgdgd�|jd d …df< t |t dggdgdgd�¡ t ||¡ d S )Nr   r#   r9   r   r   )	r   r   Úassert_index_equalr   r   r   r   r'   r   )r   r   Zdf2r   r   r   Útest_partial_set_empty_frame5‹   s    z<TestEmptyFrameSetitemExpansion.test_partial_set_empty_frame5c                 C   sŠ   t dtdtdƒd�ig d¢d�}t ddgd�}tdtdƒd�|d< t ||¡ t ddgd�}tdtdƒd�|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   Ú%test_partial_set_empty_frame_no_index”   s     zDTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_no_indexc                 C   sj  t g d¢tg dd�d�}|d  d¡|d< |d  d¡|d< |d  d¡|d< t g d	¢g d
¢dœƒ}||jdk }tj|d< t ||¡ t g d¢d�}|d  d¡|d< t g d¢d�}d|d< t ||¡ t |d t	dt
d�¡ t g d	¢g d
¢dœƒ}||jdk }|jg d¢d�}t g d¢d�}|d  d¡|d< |d  d¡|d< |d  d¡|d< t ||¡ d S )N)r    r!   ÚNewr6   r<   r=   r    r!   r%   rI   r.   )g333333ó?gÍÌÌÌÌÌ@gÍÌÌÌÌÌ@©r    r!   é   )ÚaÚbúc cÚdr"   rO   )rL   rM   rN   r0   rN   ©r   r$   )r    r!   ÚCrQ   )r   r   r@   r    r(   r)   r   r   Úassert_series_equalr   r;   Úreindex)r   r   r   ÚyÚresultr   r   r   Ú test_partial_set_empty_frame_row    s,    
z?TestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_rowc                 C   s^   t ttd�ƒ}t dttd�iƒ}t ||¡ t tdtd�ƒ}t dttd�iƒ}t ||¡ d S )Nr<   r   r9   rP   )r   r   r;   r   r   rD   r   r   r   Ú'test_partial_set_empty_frame_set_series¾   s    zFTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_set_seriesc                 C   sB   t dgd�}| ¡ }d|d< t ddgtdgƒd�}t ||¡ d S )Nr   r   rL   r   )r   Úcopyr   r   r   rD   r   r   r   Ú2test_partial_set_empty_frame_empty_copy_assignmentÉ   s
    zQTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_empty_copy_assignmentc                 C   sÜ   t ddgd�}ddg|d< t ddgtjtjgdœƒ}tj||dd� t ddgd�}d	d
g|d< t td	d
g|sptndd�ttjtjgtd�dœƒ}t ||¡ t ddgd�}d|jd< t dgtjgdœƒ}tj||dd� d S )NÚxrT   r"   r#   r/   )rZ   rT   F)Zcheck_dtypeÚ1Ú2Ústrr<   )r   rZ   )r   r(   r)   r   r   r   r;   r'   )r   Zusing_infer_stringr   r   r   r   r   Ú0test_partial_set_empty_frame_empty_consistenciesÒ   s&    
þûÿ	
zOTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_empty_consistenciesN)Ú__name__Ú
__module__Ú__qualname__r   r   r+   r8   r:   r?   rC   rE   rG   rH   rV   rW   rY   r^   r   r   r   r   r	      s   			r	   c                   @   sÌ  e Zd Zdd„ Zej d¡dd„ ƒZdd„ Zdd	„ Z	d
d„ Z
dd„ Zej dddg¡dd„ ƒZdd„ Zej dedddd�g d¢eddd�eddd�eddd�gfedddd�g d¢edƒedƒedƒgfejddd �g d!¢e d"¡e d#¡e d$¡gfg¡d%d&„ ƒZej d'edddd�dd(gfedddd�dd(gfejddd �d)d*gfg¡d+d,„ ƒZej d-edddd�ed.d/ged0�d1fedddd�ed.d/ged0�d1fejddd �eddged0�d2fg¡d3d4„ ƒZd5S )6ÚTestPartialSettingc                 C   sX  t g d¢ƒ}| ¡ }d|d< t g d¢g d¢d�}t ||¡ | ¡ }d|jd< t g d¢g d¢d�}t ||¡ | ¡ }d|d< t g d¢g d¢d�}t ||¡ | ¡ }d|jd< t g d¢g d¢d�}t ||¡ | ¡ }d}tjt|d	�� d|jd
< W d   ƒ n1 �s0    Y  d}tjt|d	�� d|j	d
< W d   ƒ n1 �sJ0    Y  d S )Nr.   rK   )r#   r/   r0   rK   )r   r#   r/   rK   r   ç      @)r#   r/   r0   rc   ú%iloc cannot enlarge its target objectr,   r0   z/index 3 is out of bounds for axis 0 with size 3)
r   rX   r   rR   r'   r3   r4   Ú
IndexErrorÚilocÚiat)r   Zs_origÚsr   r7   r   r   r   Útest_partial_settingî   s0    

*z'TestPartialSetting.test_partial_settingz.ignore:Setting a value on a view:FutureWarningc                 C   s–  t t d¡ dd¡ddgdd�}| ¡ }d}tjt|d	�� d
|jd< W d   ƒ n1 sZ0    Y  d}|rpd}tjt|d	�� d
|j	d< W d   ƒ n1 sž0    Y  t g d¢g d¢dœƒ}| ¡ }|jd |jd< t
 ||¡ t g d¢g d¢dœƒ}| ¡ }|jd |jd< t
 ||¡ t g d¢g d¢dœƒ}| ¡ }|jd |jd< t
 ||¡ t g d¢g d¢dœƒ}| ¡ }|jd d …df |jd d …df< t
 ||¡ t g d¢tg d¢ƒdœƒ}| ¡ }|d  tj¡|d< |jd d …df |jd d …df< t
 ||¡ | ¡ }|d |d< | ¡ }|jd d …df |jd d …df< t
 ||¡ | ¡ }|d |d< | ¡ }|jd d …df |jd d …df< t
 ||¡ d S )Nr1   r0   r/   r    r!   r6   )r   r$   rd   r,   rc   )r   r/   z/index 2 is out of bounds for axis 0 with size 2zlist index out of range)r   r   r   )r#   rK   rK   rJ   r#   )r   r/   r   r   )r#   r0   rK   rK   )r   r/   r   )g        g       @g      @rQ   )r   r(   rA   ZreshaperX   r3   r4   re   rf   rg   r   r   r'   r   r@   r%   )r   Zusing_array_managerÚdf_origr   r7   r   r   r   r   Útest_partial_setting_frame  sV    ÿ((    z-TestPartialSetting.test_partial_setting_framec                 C   s<  t ddd�}ttj d¡ d¡|g d¢d�}tj|tdd	i|d
d … |j d�gdd�}| 	¡ }d	|j
|d
 |j df< t ||¡ | 	¡ }d	|j|d
 |j df< t ||¡ tdd	i|d
d … |j d�}tj||gdd�}| 	¡ }d	|j
|d
 |j df< t ||¡ | 	¡ }d	|j|d
 |j df< t ||¡ d S )Nz1/1/2000é   )Úperiodsr/   )rl   r   )r    r!   rQ   ÚDr   r    r2   éÿÿÿÿr   T)Úsortr   r#   ©Zaxis)r   r   r(   ÚrandomÚdefault_rngÚstandard_normalr   ÚconcatÚfreqrX   r'   r   r   Úat)r   Údatesrj   r   r   Z	exp_otherr   r   r   Útest_partial_setting2T  s.    ý"ÿz(TestPartialSetting.test_partial_setting2c                 C   sh   t ddgddggddgd�}|jd  ¡ }d|_t |t |ƒj ¡ g¡}|jd |jd< t 	||¡ d S )NTr#   Fr/   ZfemaleZfitnessr"   )
r   r'   rX   r   r   ru   ÚTÚinfer_objectsr   r   )r   r   rh   r   r   r   r   Ú test_partial_setting_mixed_dtypeq  s    z3TestPartialSetting.test_partial_setting_mixed_dtypec                 C   sP  t ddgddgd�}t tjdtjgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 s`0    Y  | g d¢¡}tj	||d	d
� t tjdtjtjgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 sØ0    Y  | g d¢¡}tj	||d	d
� t g d¢g d¢d�}|jg d¢ }tj	||d	d
� t ddtjdgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 �s€0    Y  | g d¢¡}tj	||d	d
� dt 
t¡› d�}tjt|d�� |jg d¢  W d   ƒ n1 �sî0    Y  t ddtjgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 �sD0    Y  | g d¢¡}tj	||d	d
� t g d¢g d¢d�}t dtjtjgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 �sÎ0    Y  | g d¢¡}tj	||d	d
� t g d¢g d¢d�}t tjddgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 �sV0    Y  | g d¢¡}tj	||d	d
� t g d¢g d¢d�}t tjddgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 �sÞ0    Y  | g d¢¡}tj	||d	d
� t g d¢g d¢d�}t dtjtjgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 �sh0    Y  | g d¢¡}tj	||d	d
� t g d¢g d¢d�}t dtjtjgg d¢d�}tjtdd�� |jg d¢  W d   ƒ n1 �sò0    Y  | g d¢¡}tj	||d	d
� t g d¢g d ¢d�}|jg d!¢ }tj	||d	d
� d S )"Nçš™™™™™¹?çš™™™™™É?r#   r/   r   ©r0   r/   r0   únot in indexr,   T©Zcheck_index_type©r0   r/   r0   rZ   ©r~   r~   r}   ©r/   r/   r#   ©r/   r/   rZ   r#   ú'\"None of \[Index\(\[3, 3, 3\], dtype='z'\)\] are in the \[index\]\"©r0   r0   r0   ©r/   r/   r0   ©r}   r~   ç333333Ó?r.   rŠ   ©r0   r   r   ©r}   r~   rŠ   çš™™™™™Ù?©r#   r/   r0   r   ©rK   r0   r0   r�   ©rK   r   r   ©r   rK   r1   r2   ©r2   r/   r/   ©r   rK   rK   ©r~   r~   r}   r}   ©r/   r/   r#   r#   ©r#   r#   r   r   )r   r(   r)   r3   r4   ÚKeyErrorr'   rS   r   rR   r$   Úintrf   )r   Úserr   rU   r7   rh   r   r   r   Útest_series_partial_set}  sz    ,,.ÿ.......z*TestPartialSetting.test_series_partial_setc                 C   sÆ  t ddgddd�}tddg|dd	�}tjtd
d�� |jg d¢  W d   ƒ n1 sV0    Y  tjtdd�� |jg d¢  W d   ƒ n1 s’0    Y  t g d¢ddd�}tg d¢|dd	�}|jg d¢ }tj||dd� tjtdd�� |jg d¢  W d   ƒ n1 �s0    Y  dt 	t
¡› d�}tjt|d�� |jg d¢  W d   ƒ n1 �sb0    Y  tjtdd�� |jg d¢  W d   ƒ n1 �s 0    Y  t g d¢ddd�}tjtdd��, tg d¢|dd	�jg d¢  W d   ƒ n1 �sþ0    Y  t g d¢ddd�}tjtdd��, tg d¢|dd	�jg d¢  W d   ƒ n1 �s\0    Y  t g d¢ddd�}tjtdd��, tg d¢|dd	�jg d¢  W d   ƒ n1 �sº0    Y  t g d ¢ddd�}tjtdd��, tg d¢|dd	�jg d!¢  W d   ƒ n1 �s0    Y  t g d¢ddd�}tjtdd��, tg d¢|dd	�jg d"¢  W d   ƒ n1 �sv0    Y  t g d#¢ddd�}tg d$¢|dd	�}|jg d%¢ }tj||dd� d S )&Nr#   r/   r6   Úidx©r$   r   r}   r~   rh   )r   r   z\[3\] not in indexr,   r   r€   r‚   r„   rƒ   Tr�   z\['x'\] not in indexr…   r†   z(', name='idx'\)\] are in the \[index\]\"r‡   rˆ   r.   r‰   r‹   rŽ   rŒ   r�   r�   r‘   r’   r“   r•   r”   r–   )r   r   r3   r4   r—   r'   r   rR   r(   r$   r˜   rf   )r   r›   r™   Zexp_idxr   rU   r7   r   r   r   Ú!test_series_partial_set_with_nameØ  sJ    ,,.ÿ..<<<<<z4TestPartialSetting.test_series_partial_set_with_nameÚkeyéd   g      Y@c                 C   s®   t tj d¡ d¡ttdƒtd�tdddd�d	�}| 	¡ }|j
d
 |j|d d …f< tt|jƒ|g t|jjd�}tj|j|j
d
g jgd
d�}t |||jd�}t ||¡ d S )Nr/   ©é
   r   ÚABCDr<   ú
2000-01-01r¡   r!   ©rm   rv   r=   r   rœ   rq   r   )r   r(   rr   rs   rt   r   Úlistr;   r   rX   rf   r'   r   r   ZconcatenateÚvaluesr   r   r   )r   rž   Úorigr   Zex_indexZex_datar   r   r   r   Ú6test_setitem_with_expansion_numeric_into_datetimeindex  s    ýzITestPartialSetting.test_setitem_with_expansion_numeric_into_datetimeindexc                 C   sº   t tj d¡ d¡ttdƒtd�tdddd�d	�}| 	¡ }|j
d
 |jdd d …f< t|j
d
 dd�}t |t |ƒj ¡ g¡}t ||¡ t |jt|j ¡ dg ƒ¡ |jjdks¶J ‚d S )Nr/   r    r¢   r<   r£   r¡   r!   r¤   r=   r   rL   r
   r;   )r   r(   rr   rs   rt   r   r¥   r;   r   rX   rf   r'   r   r   ru   rz   r{   r   r   rF   r   Útolistr$   )r   r§   r   r™   r*   r   r   r   Útest_partial_set_invalid#  s    ýz+TestPartialSetting.test_partial_set_invalidzidx,labels,expected_idxÚ2000é   rn   )Ústartrm   rv   )ú
2000-01-04ú
2000-01-08ú
2000-01-12r®   )rv   r¯   r°   z1 day)r­   rm   )Ú4DÚ8DZ12Dz4 dayz8 dayz12 dayc                 C   sP   |t dƒ|d�}g d¢}|||ƒ}t ||j| ¡ |tu rLt ||| ¡ d S )Nr¬   r   )r0   r2   é   )r&   r   Zassert_equalr'   r   rR   )r   r›   ÚlabelsZexpected_idxZframe_or_seriesÚobjZexpected_valuer   r   r   r   Ú4test_loc_with_list_of_strings_representing_datetimes6  s     
zGTestPartialSetting.test_loc_with_list_of_strings_representing_datetimesz
idx,labelsz
2000-01-30z3 dayz30 dayc                 C   sÎ   t tdƒ|d�}ttdƒ|d�}d}tjt|d�� |j|  W d   ƒ n1 sR0    Y  tjt|d�� ||  W d   ƒ n1 sˆ0    Y  tjt|d�� |j|  W d   ƒ n1 sÀ0    Y  d S )Nr¬   r   r€   r,   ©r   r&   r   r3   r4   r—   r'   )r   r›   r´   r™   r   r7   r   r   r   ÚBtest_loc_with_list_of_strings_representing_datetimes_missing_value_  s    (&zUTestPartialSetting.test_loc_with_list_of_strings_representing_datetimes_missing_valuezidx,labels,msgr±   r²   r<   zHNone of \[Index\(\['4D', '8D'\], dtype='object'\)\] are in the \[index\]zXNone of \[Index\(\['2000-01-04', '2000-01-08'\], dtype='object'\)\] are in the \[index\]c                 C   sÊ   t tdƒ|d�}ttdƒ|d�}tjt|d�� |j|  W d   ƒ n1 sN0    Y  tjt|d�� ||  W d   ƒ n1 s„0    Y  tjt|d�� |j|  W d   ƒ n1 s¼0    Y  d S )Nr¬   r   r,   r·   )r   r›   r´   r7   r™   r   r   r   r   ÚEtest_loc_with_list_of_strings_representing_datetimes_not_matched_type|  s    !(&zXTestPartialSetting.test_loc_with_list_of_strings_representing_datetimes_not_matched_typeN)r_   r`   ra   ri   r3   ÚmarkÚfilterwarningsrk   ry   r|   rš   r�   Zparametrizer¨   rª   r   r   r   r   r   Ztimedelta_rangeZ	Timedeltar¶   r¸   r   r;   r¹   r   r   r   r   rb   í   s|   %

@[:



ýý
ýý
ýíþ
þþ÷þ
ü	ü	üïþrb   c                   @   s   e Zd Zdd„ ZdS )ÚTestStringSlicingc                 C   sœ   t  g d¢¡}ttt|ƒƒ|d�}ttt|d d… ƒƒ|d d… d�}tjtdd�� |dd…  W d   ƒ n1 sv0    Y  |dd… }t 	||¡ d S )	N)ú
2012-01-01z
2012-01-02z
2012-01-03Nr   r0   z non-existing keys is not allowedr,   r½   z
2012-01-04z2012-01-03 00:00:00.000000000)
r   Úto_datetimer   r&   rB   r3   r4   r—   r   r   )r   r   r   r   rU   r   r   r   Ú,test_slice_irregular_datetime_index_with_nan©  s    $*z>TestStringSlicing.test_slice_irregular_datetime_index_with_nanN)r_   r`   ra   r¿   r   r   r   r   r¼   ¨  s   r¼   )Ú__doc__Únumpyr(   r3   Zpandasr   r   r   r   r   r   r   r   Zpandas._testingZ_testingr   r	   rb   r¼   r   r   r   r   Ú<module>   s   $	 W   >