a
    oÝEb\  ã                   @   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   sd   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�d�}t ||¡ d S )	Nr   Zdf_index©Úname©Úindexç®Gáz®ó?é   Úseries_indexÚseries)r   ÚpdÚ
RangeIndexr   ÚtmÚassert_frame_equal©ÚselfÚdfr   Úexpected© r   úb/home/ja/django-apps/lartica_env/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   sT   t ƒ }tdtjddd�d�}||d< t ddgd itjddd�d�}t ||¡ d S )Nr   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©Úcolumnsé   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_align.   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   é   é   r/   )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   r2   r3   r4   r&   r   )r   r   r6   r   r   r   Útest_partial_set_empty_frameJ   s    (4z;TestEmptyFrameSetitemExpansion.test_partial_set_empty_framec                 C   s„   t dgtg dd�d�}t tg dd�d�}tg dd�|d< t ||¡ t ƒ }t|jƒ|d< t ||¡ t ƒ }|j|d< t ||¡ d S )Nr8   Ú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 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 )Nr8   r5   r;   r<   r$   r   )	r   r   Úastyper   r   r   r'   ÚarangeÚlenr=   r   r   r   Útest_partial_set_empty_frame3q   s    z<TestEmptyFrameSetitemExpansion.test_partial_set_empty_frame3c                 C   sZ   t tg dd�d�}tt|ƒƒ|d< t dgtg dd�d�}|d  d¡|d< t ||¡ d S )Nr5   r;   r   r8   r<   )r   r   r%   rA   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g 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"   r8   r   ©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< |j t|ƒ t ||¡ t ddgd�}tdtdƒd�|jd d …df< |j t|ƒ t ||¡ d S )	Nr   r"   r   r   )r   r   r   r    r   r   )r   r   r%   ZdtypesÚstrr   r   r&   r=   r   r   r   Ú%test_partial_set_empty_frame_no_index‘   s     zDTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_no_indexc                 C   st  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¢tg dd�d�}|d  d¡|d< |d  d¡|d< |d  d¡|d< t ||¡ d S )N)r   r   ÚNewr5   r;   r<   r   r   r$   rJ   r-   )g333333ó?gÍÌÌÌÌÌ@gÍÌÌÌÌÌ@©r   r   é   )ÚaÚbúc cÚdr    rP   )rM   rN   rO   r/   rO   ©r   r#   )r   r   ÚCrR   )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   r8   rQ   )r   r   r:   r   r   rC   r   r   r   Ú'test_partial_set_empty_frame_set_series¿   s    zFTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_set_seriesc                 C   s>   t dgd�}| ¡ }d|d< t ddgdgd�}t ||¡ d S )Nr   r   rM   rE   )r   Úcopyr   r   rC   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 d	d
gtjtjgdœtd�}t ||¡ t ddgd�}d|jd< t dgtjgdœƒ}tj||dd� d S )NÚxrU   r    r"   r.   )r[   rU   F)Zcheck_dtypeÚ1Ú2r;   )r   r[   )r   r'   r(   r   r   r:   r&   rC   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*   r7   r9   r>   rB   rD   rG   rI   rW   rX   rZ   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	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�d-d.gd/fedddd�d-d.gd/fejddd�ddgd0fg¡d1d2„ ƒZd3S )4Ú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-   rL   )r"   r.   r/   rL   )r   r"   r.   rL   r   ç      @)r"   r.   r/   rc   ú%iloc cannot enlarge its target objectr+   r/   z/index 3 is out of bounds for axis 0 with size 3)
r   rY   r   rS   r&   r2   r3   Ú
IndexErrorÚilocÚiat)r   Zs_origÚsr   r6   r   r   r   Útest_partial_settingç   s0    

*z'TestPartialSetting.test_partial_settingc                 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}tjt|d	�� d
|j	d< W d   ƒ n1 s–0    Y  t t
g d¢g d¢dœƒƒ}| ¡ }|jd |jd< t ||¡ t t
g d¢g d¢dœƒƒ}| ¡ }|jd |jd< t ||¡ t t
g d¢g d¢dœƒƒ}| ¡ }|jd |jd< t ||¡ t t
g d¢g d¢dœƒƒ}| ¡ }|jd d …df |jd d …df< t ||¡ 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 )Nr0   r/   r.   r   r   r5   )r!   r#   rd   r+   rc   )r   r.   z/index 2 is out of bounds for axis 0 with size 2)r   r   r   )r"   rL   rL   rK   r"   )r   r.   r   r   )r"   r/   rL   rL   )r   r.   r   rR   )r   r'   r@   ZreshaperY   r2   r3   re   rf   rg   Údictr   r   r&   r   r?   r$   )r   Údf_origr   r6   r   r   r   r   Útest_partial_setting_frame  sR    ÿ((    z-TestPartialSetting.test_partial_setting_framec                 C   s8  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   )r   r   rR   ÚDrE   r   r1   éÿÿÿÿr   T)Úsortr   r"   ©Zaxis)r   r   r'   ÚrandomZrandnr   ÚconcatÚfreqrY   r&   r   r   Úat)r   Údatesrk   r   r   Z	exp_otherr   r   r   Útest_partial_setting2I  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&   rY   r   r   rt   ÚTÚinfer_objectsr   r   )r   r   rh   r   r   r   r   Ú test_partial_setting_mixed_dtyped  s    z3TestPartialSetting.test_partial_setting_mixed_dtypec                 C   sB  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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 �s60    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 �sH0    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 �sZ0    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   ©r/   r.   r/   únot in indexr+   T©Zcheck_index_type©r/   r.   r/   r[   ©r}   r}   r|   ©r.   r.   r"   ©r.   r.   r[   r"   zM\"None of \[Int64Index\(\[3, 3, 3\], dtype='int64'\)\] are in the \[index\]\"©r/   r/   r/   ©r.   r.   r/   ©r|   r}   ç333333Ó?r-   rˆ   ©r/   r   r   ©r|   r}   rˆ   çš™™™™™Ù?©r"   r.   r/   r   ©rL   r/   r/   r‹   ©rL   r   r   ©r   rL   r0   r1   ©r1   r.   r.   ©r   rL   rL   ©r}   r}   r|   r|   ©r.   r.   r"   r"   ©r"   r"   r   r   )r   r'   r(   r2   r3   ÚKeyErrorr&   rT   r   rS   rf   )r   Úserr   rV   r6   rh   r   r   r   Útest_series_partial_setq  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jt|d�� |jg d¢  W d   ƒ n1 �sT0    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 �sN0    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 �sh0    Y  t g d"¢ddd�}tg d#¢|dd	�}|jg d$¢ }tj||dd� d S )%Nr"   r.   r5   Úidx©r#   r   r|   r}   rh   )r   r   z\[3\] not in indexr+   r~   r   r�   rƒ   r‚   Tr€   z\['x'\] not in indexr„   zY\"None of \[Int64Index\(\[3, 3, 3\], dtype='int64', name='idx'\)\] are in the \[index\]\"r…   r†   r-   r‡   r‰   rŒ   rŠ   r�   rŽ   r�   r�   r‘   r“   r’   r”   )	r   r   r2   r3   r•   r&   r   rS   rf   )r   r˜   r–   Zexp_idxr   rV   r6   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  ¡ }| ¡ }|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™   rr   rE   )r   ÚmakeTimeDataFramerY   rf   r&   r   Úlistr   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  ¡ }| ¡ }|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   rM   r
   r:   )r   r�   rY   rf   r&   r   r   rt   r   ry   rz   r   rF   r   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é   ro   )Ústartrn   ru   )ú
2000-01-04ú
2000-01-08ú
2000-01-12r§   )ru   r¨   r©   z1 day)r¦   rn   )Ú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   )r/   r1   é   )r%   r   Zassert_equalr&   r   rS   )r   r˜   ÚlabelsZexpected_idxZframe_or_seriesÚobjZexpected_valuer   r   r   r   Ú4test_loc_with_list_of_strings_representing_datetimes#  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   r2   r3   r•   r&   )r   r˜   r­   r–   r   r6   r   r   r   ÚBtest_loc_with_list_of_strings_representing_datetimes_missing_valueL  s    (&zUTestPartialSetting.test_loc_with_list_of_strings_representing_datetimes_missing_valuezidx,labels,msgrª   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­   r6   r–   r   r   r   r   ÚEtest_loc_with_list_of_strings_representing_datetimes_not_matched_typei  s    !(&zXTestPartialSetting.test_loc_with_list_of_strings_representing_datetimes_not_matched_typeN)r_   r`   ra   ri   rl   rx   r{   r—   rš   r2   ÚmarkZparametrizer¡   r£   r   r   r   r   r   Ztimedelta_rangeZ	Timedeltar¯   r±   r²   r   r   r   r   rb   æ   sz   &<[:



ýý
ýý
ýíþ
þþ÷þ
ü	ü	üïþrb   c                   @   s   e Zd Zdd„ ZdS )ÚTestStringSlicingc                 C   sb   t  g d¢¡}ttt|ƒƒ|d�}ttt|d d… ƒƒ|d d… d�}|dd… }t ||¡ d S )N)ú
2012-01-01z
2012-01-02z
2012-01-03Nr   r/   rµ   z
2012-01-04)r   Úto_datetimer   r%   rA   r   r   )r   r   r   r   rV   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'   r2   Zpandasr   r   r   r   r   r   r   r   Zpandas._testingZ_testingr   r	   rb   r´   r   r   r   r   Ú<module>   s   $	 P   2