o
    5c4                     @   sr   d dl Zd dlmZ d dl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 d dlmZ G dd dZdS )    N)combinations)	DataFrameIndexSeries	Timestampconcatisnac                   @   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edeg deg deeded ejd ddejg deedddd d edddd!d"edddd#d$gejd d gg	Zejjd%ed&d' d(d)d* Zejjd+eed,d-d.d' d(d/d0 Z d1d2 Z!d3d4 Z"d5d6 Z#d7d8 Z$ejd9g d:ejd;dd<gd=d> Z%ejd9g d:ejd;dd<gd?d@ Z&dAS )B
TestAppendc                 C   s"  |  }d|d< |jd d }|jdd  }||}||}||}t|d |d  |d= |j||d}	d|	v s?J |j||d}	d|	v sLJ |d d |dd  }t|| |d d j|dd  |d}
|d d j|dd  |d}t|
jg dd|jg dd d S )Nbarfoo   Asort)r   BCDcolumns)copyindexreindex_appendtmassert_almost_equalassert_frame_equal)selfr   float_framemixed_framebegin_index	end_indexbegin_frame	end_frameappendedpartial_appendedmixed_appendedmixed_appended2 r'   ]/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/reshape/concat/test_append.pytest_append   s*   


zTestAppend.test_appendc                 C   sN   t  }||}t|| ||usJ ||}t|| ||us%J d S Nr   r   r   r   )r   r   emptyr#   r'   r'   r(   test_append_empty7   s   

zTestAppend.test_append_emptyc                 C   sF   d}t jt|d |j|dd W d    d S 1 sw   Y  d S )NzIndexes have overlapping values)matchT)verify_integrity)pytestraises
ValueErrorr   )r   r   msgr'   r'   r(   test_append_overlap_raisesB   s   "z%TestAppend.test_append_overlap_raisesc                 C   sn   t ddddddd}tg dg dd	d
}t ddddddddd	did}||}t|| d S )N      )xy      ab)r         r<   r=   czr   namer   )r7   r8   rB   r>   r?   )r   r   r   r   r   )r   dfrowexpectedresultr'   r'   r(   test_append_new_columnsG   s   


z"TestAppend.test_append_new_columnsc                 C   sT   t g dd}t ddgddgd}|j||d}t ddgg dd}t|| d S )	Nr   r   r   r   r   r5   r   r   r   r   r   r+   )r   r   rE   df3df5rG   r'   r'   r(   test_append_length0_frameU   s
   z$TestAppend.test_append_length0_framec                 C   s|   t jddd}ddg|d d < t jddd}g d|d d < t|}t|}|j|dd	}tt ||f}t|| d S )
N)r6   z	i4,f4,a10dtype)r5          @Hello)r6         @World)r9   ))r9   g      @r   )r   g      @r
   )g      @g       @bazTignore_index)npzerosr   r   concatenater   r   )r   arr1arr2df1df2rH   rG   r'   r'   r(   test_append_records]   s   zTestAppend.test_append_recordsc                 C   s   t ddgddgdddgd}t ddgddgd	ddgd
}|j||d}t g dg dg ddg dd}|du rA|g d }t|| d S )Nr5   r6   r;   r=   r<   r   r9   r:   )r<   rA   )r   r   )r5   r6   NN)r5   r6   r5   r6   )NNr9   r:   )r=   r<   rA   r@   Fr+   )r   r   r]   r^   rH   rG   r'   r'   r(   test_append_sortsl   s   zTestAppend.test_append_sortsc                 C   s   t tjddktjdddtjdddgd d}|d d jd d g df }|dd  jd d g df }|j||d	}t|d
 dd  sPJ t|d dd   s^J d S )N
   r   r   r
   r   )boolsintsfloatsstrings)rb   rc   rd   )re   rc   rd   r   re   r:   rb   )	r   rX   randomrandnrandintlocr   r   all)r   r   rE   r<   r=   r#   r'   r'   r(   test_append_different_columns{   s   

	 z(TestAppend.test_append_different_columnsc                 C   s   |d d |dd |dd |dd  g}|d  |dd  }t|| |d  |d< d|d d< |d j |dd  |d	}t|jd d |jf | |d dd  dk s^J |d d d   slJ d S )
Nr   ra      r   r5   r
   r   r   )r   r   r   r   ri   r   rj   r   )r   r   r   chunksrH   r'   r'   r(   test_append_many   s   



 zTestAppend.test_append_manyc                 C   sf   t g dd}|dg}t g dg dg dgg dd}|dg}||}|jjdks1J d S )NrJ   r   r   )r5   r:   r?   )r6   r      )r9   r>   	   )datar   )r   	set_indexr   r   rD   )r   r]   r^   rH   r'   r'   r(   test_append_preserve_index_name   s   "
z*TestAppend.test_append_preserve_index_namer9   r:   r   r>   )g      @g      @g      @abczA B CzD E FT)ordered)r?   rp   rq   ra     r5   r   r>   ra   r?      r   c                 C   
   t | jS r*   type__name__r7   r'   r'   r(   <lambda>      
 zTestAppend.<lambda>)idsc                 C   s   t g dg dg|d}|d d }tddg|dd}||}t g dg dddtjggg d	|d
}|jjd jdks?J |jjd jdksJJ t	|| |}|d d }t ddgddgg|d}tg d|dd}||}t ddtjgddtjgg dgg d	|d
}t	|| d S )Nr5   r6   r9   ru   r   r6   r?   rp   rC   )r5   r6   rS   r   r5   r6   rK   r   ir5   r:   r   r?   rp   rq   )
r   r   r   rX   nandtypesilockindr   r   )r   r   rE   	ser_indexserrH   rG   r'   r'   r(   test_append_same_columns_type   s*   
 
z(TestAppend.test_append_same_columns_typezdf_columns, series_indexr6   )rc                 C   rz   r*   r{   r~   r'   r'   r(   r      r   c           	   	   C   s   t g dg dg|d}tg d|dd}||}|j|}t| |}t ddd	tj	tj	tj	gd
ddtj	tj	tj	gtj	tj	tj	dddggg d|d}t
|| d S )Nr   ru   r   r   r6   rC         ?rQ   rS   r:   r   r>   r?   rp   rq   r   rK   )r   r   r   r   
differencer   tolistappendrX   r   r   r   )	r   
df_columnsseries_indexrE   r   rH   idx_diffcombined_columnsrG   r'   r'   r(   #test_append_different_columns_types   s   

	z.TestAppend.test_append_different_columns_typesc                 C   sV  t ddgtdddddtdddddgdgd}t ddgtddd	ddtddd	d
dgtdddddtdddddggddgd}tttjtjtddd	d
dtdddddgddttdddddtdddddtddd	ddtdddddgddgd|d}|j|d|d}|r|ddg }n|ddg }t	|| d S )Nr5   r6   rx   r   
start_time)r   rr   r   r:   r   r9   r>   ra   r?   end_time)rD   )axisr   TrW   r   )
r   dtdatetimer   r   pdNaTr   r   r   )r   r   r]   r^   rG   rH   r'   r'   r(   test_append_dtype_coerce   sL   """		z#TestAppend.test_append_dtype_coercec                 C   sl   t dtjg dddi}t dtjg dtdi}|j|d|d}|d jd	ks+J |d jd
ks4J d S )Nr   )r5   r6   r9   r:   i8rO   r   )TFTFTr   f8O)r   rX   arrayboolr   rP   )r   r   r]   r^   r#   r'   r'   r(   (test_append_missing_column_proper_upcast)  s
   z3TestAppend.test_append_missing_column_proper_upcastc                 C   s  t dtj d}tdd|d}tddgd}|j|d	d
}ttjtjdd|ggg dd}|d 	t
|d< |d 	t
|d< t|| ttjtjdd|ggd g dd}|d 	t
|d< |d 	t
|d< |j|d	d
}t|| |j||gd	d
}t|| d S )Nz2018-10-24 07:30:00)tzr   rQ   )r<   r=   daterA   dr   TrV   )rA   r   r<   r=   r   r6   )r   dateutilr   tzutcr   r   r   rX   r   astypeobjectr   r   )r   r   r   rE   result_arG   result_brH   r'   r'   r(   2test_append_empty_frame_to_series_with_dateutil_tz1  s&   z=TestAppend.test_append_empty_frame_to_series_with_dateutil_tzc                 C   s   t dgdd}|jdtjidd}t dtjgit}t|| t dgdd}tdtjidd}|j|dd}t dtjgit}t|| tdtjidd}|j|dd}t dtjgit}t|| d S )	Nr<   r   datetime64[ns, UTC]TrV   datetime64[ns]rO   zdatetime64[ns, US/Pacific])	r   r   r   r   r   r   r   r   r   )r   rE   rH   rG   otherr'   r'   r(   ,test_append_empty_tz_frame_with_datetime64nsJ  s   z7TestAppend.test_append_empty_tz_frame_with_datetime64ns	dtype_str)r   r   Int64int64valr   c                 C   sP   t dgd|}t dt|dgi}|j|dd}|t}t|| d S )Nr<   r   nsTrV   )r   r   rX   timedelta64r   r   r   r   r   r   r   rE   r   rH   rG   r'   r'   r(   .test_append_empty_frame_with_timedelta64ns_nat`  s
   
z9TestAppend.test_append_empty_frame_with_timedelta64ns_natc                 C   sl   t dtjdg|di}t dt|dgi}|j|dd}t d|jd |jd gitd}t	|| d S )Nr<   r5   rO   r   TrV   )r   r   )
r   r   r   rX   r   r   r   r   r   r   r   r'   r'   r(   (test_append_frame_with_timedelta64ns_natn  s
    z3TestAppend.test_append_frame_with_timedelta64ns_natN)'r}   
__module____qualname__r)   r-   r4   rI   rN   r_   r`   rk   ro   rt   r   
RangeIndexr   listCategoricalIndexsplitIntervalIndexfrom_breaksDatetimeIndexr   r   
MultiIndexfrom_arraysindexes_can_appendr0   markparametrizer   r   r   r   r   r   r   r   r   r'   r'   r'   r(   r	      sd    "






3
r	   )r   r   	itertoolsr   r   numpyrX   r0   pandasr   r   r   r   r   r   r   pandas._testing_testingr   r	   r'   r'   r'   r(   <module>   s     