o
    5ca)                     @   sR   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	 d dl
mZ G dd dZdS )    N)	DataFrameSeries	Timestamp
date_rangetimedelta_rangec                
   @   s  e Zd Zejd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dddgdd Zejddge fdge fejdddge fejdddgedfdge fgdd  Zejd!d"d#gd$d% Zejd&d'd( Zd)d* Zd+S ),TestDataFrameAppendz4ignore:.*append method is deprecated.*:FutureWarningc                 C   sB   |}t ||}|d d }|dd  }||}t || d S )N   )tmget_objappendassert_equal)self multiindex_dataframe_random_dataframe_or_seriesobjabresult r   \/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/frame/methods/test_append.pytest_append_multiindex   s   
z*TestDataFrameAppend.test_append_multiindexc                 C   sp   t  }|g }|}t|| ||usJ t tjddg dd}|g }|}t|| ||us6J d S )Nr      foobarbazquxcolumns)r   _appendr	   assert_frame_equalnprandomrandn)r   dfr   expectedr   r   r   test_append_empty_list   s   

z*TestDataFrameAppend.test_append_empty_listc                 C   s  t tjddg dd}|jd }d}tjt|d |j|dd W d    n1 s-w   Y  d |_	d	}tjt
|d |j|dd W d    n1 sPw   Y  |j|d d d
 dd}|jt d|d d d
 i|jdjdd}t|| |j| dd}t|| |j|d d d
 d d dd}|jt d|d d d
 d d ijddd}t||jd d |jf  d}tjt
|d ||  W d    n1 sw   Y  |jd }d|_	||}|j|d
d  dd}t|| d S )Nr   r   r   r   zIndexes have overlapping valuesmatchT)verify_integrityz-Can only append a Series if ignore_index=Trueignore_indexr   index   r,   sortz+Can only append a dict if ignore_index=True)r   r!   r"   r#   locpytestraises
ValueErrorr   name	TypeErrorr   Tr	   r    to_dict)r   r$   seriesmsgr   r%   rowr   r   r   test_append_series_dict)   s@   
 "

z+TestDataFrameAppend.test_append_series_dictc                 C   s   t tjddg dd}dd | D }|j|dd}|j|dd}t|| d	d
ddddddddg}|j|ddd}|jt |ddd}t|| d S )Nr   r   r   r   c                 S   s   g | ]\}}|  qS r   )r9   ).0idxxr   r   r   
<listcomp>T   s    zHTestDataFrameAppend.test_append_list_of_series_dicts.<locals>.<listcomp>Tr+         r/   )r   r   r   peekaboo         r0   )r   r!   r"   r#   iterrowsr   r	   r    r   r$   dictsr   r%   r   r   r    test_append_list_of_series_dictsQ   s   z4TestDataFrameAppend.test_append_list_of_series_dictsc                 C   s   t ddgddggtjddgddd	}td
dgdd}t ddgddgd
dggtjg dddd	}||}t|| ||g}t|| d S )NrB   rC   r/   r   r   r   keepthisnamer6   r-   r   rE   c)r   r   rN   )r   pdIndexr   r   r	   r    )r   r$   sercr%   r   r   r   r   "test_append_list_retain_index_namec   s   
z6TestDataFrameAppend.test_append_list_retain_index_namec                 C   s^   t tjddg dd}ddiddig}|j|d	d	d
}|jt |d	d	d
}t|| d S )Nr   r   r   r   r   	   r   
   Tr0   )r   r!   r"   r#   r   r	   r    rI   r   r   r   test_append_missing_colsw   s
   z,TestDataFrameAppend.test_append_missing_colsc                 C   s   t  }t  }||}| }t|| t tjdd}t  }||}| }t|| t ddgd}t  }||}| }t|| t tjddddgd}t  }||}| }t|| d S )Nr   rC   r   r   r   )r   r   copyr	   r    r!   r"   r#   )r   df1df2r   r%   r   r   r   test_append_empty_dataframe   s(   



z/TestDataFrameAppend.test_append_empty_dataframec                 C   sN  t dtditdd}t  }||}| }t|| t dtditdd}t dditddd}||}t dtddgi}t|| t dtditdd}t dtjitddd}||}t dt	tdtjgdd	i}|r}|
t}t|| t dtditdd}t dtjitddtd
}||}t dt	tdtjgdd	i}|r|
t}t|| t dtjitdd}t dtditddd}||}t dt	tjtdgdd	i}|r|
t}t|| t dtditdd}t dditddtd
}||}t dt	tddgi}t|| d S )Nr   20130101r   r-   rB   r   rC   zM8[ns]dtype)r.   r\   )r   r   ranger   rV   r	   r    r!   nanr   astypeobject)r   using_array_managerrW   rX   r   r%   r   r   r   test_append_dtypes   sT   








z&TestDataFrameAppend.test_append_dtypes	timestampz2019-07-19 07:04:57+0100z2019-07-19 07:04:57c                 C   sP   |}t t||dg}||jd jd }tt||ddd}t|| d S )N)tzr   r*   rM   )r   r   r   ilocr   r	   assert_series_equal)r   tz_naive_fixturerc   rd   r$   r   r%   r   r   r   %test_append_timestamps_aware_or_naive   s
   z9TestDataFrameAppend.test_append_timestamps_aware_or_naivezdata, dtyperB   r   r   )leftrightz2000-03Mfreqc                 C   s   t ||d}d }|rt|tjrt}tj|dd ||jd jd }W d    n1 s/w   Y  t	|d|d}t
|| d S )Nr[   zastype from SparseDtyper'   r   r*   )r6   r\   )r   
isinstancerO   SparseDtypeFutureWarningr	   assert_produces_warningr   re   r   rf   )r   datar\   ra   r$   warnr   r%   r   r   r   test_other_dtypes   s   z%TestDataFrameAppend.test_other_dtypesr\   datetime64[ns]ztimedelta64[ns]c                 C   s`   |dkrt dddd}ntdddd}t }td	|d
|d}||}|d |k s.J d S )Nru   z2011/1/1z2012/1/1zW-FRIrl   z1 daysz10 days2Dr   )ABr-   rx   )r   r   r   r   all)r   r\   r.   r$   otherr   r   r   r   test_append_numpy_bug_1681   s   
z.TestDataFrameAppend.test_append_numpy_bug_1681z-ignore:The values in the array:RuntimeWarningc                 C   s   t ddgddgddggtjjddgd	d gd
d}| }tddD ],}d||df< |j|dd}|d }t g d|d  g d|d  d}t|| q"d S )NrB      rC      r/      )multicol1)r   col2level1)namesr   rT   colATr+   r   )rB   rC   r/   )r|   r}   r~   )r   r   )	r   rO   
MultiIndexfrom_tuplesrV   r]   r   r	   r    )r   r$   rX   ir   r%   r   r   r   &test_multiindex_column_append_multiple  s     z:TestDataFrameAppend.test_multiindex_column_append_multiplec                 C   sb   t ddgddgg}t ddgddgg}tt || W d    d S 1 s*w   Y  d S )	NrB   rC   r/   r   r   rE   rF   rG   )r   r	   rq   rp   r   )r   rW   rX   r   r   r   !test_append_raises_future_warning  s
   "z5TestDataFrameAppend.test_append_raises_future_warningN)__name__
__module____qualname__r3   markfilterwarningsr   r&   r=   rK   rR   rU   rY   rb   parametrizerh   rO   
Int64DtypeCategoricalDtypeIntervalIntervalDtypePeriodPeriodDtypero   rt   r{   r   r   r   r   r   r   r      s:    


(:





r   )numpyr!   r3   pandasrO   r   r   r   r   r   pandas._testing_testingr	   r   r   r   r   r   <module>   s    