o
    թZh7                     @   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indexZreindex_appendtmZassert_almost_equalassert_frame_equal)selfr   float_frameZmixed_frameZbegin_indexZ	end_indexZbegin_frameZ	end_frameappendedZpartial_appendedZmixed_appendedZmixed_appended2 r   ^/var/www/html/lang_env/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)Zverify_integrity)pytestZ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         r1   r2   czr   namer   )r,   r-   r7   r3   r4   )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   r*   r   r   r   r   r   r!   )r   r   r:   Zdf3Zdf5r<   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)r+   z	i4,f4,S10dtype)r*          @ZHello)r+         @ZWorld)r.   ))r.   g      @r   )r   g      @r
   )g      @g       @ZbazTignore_index)npZzerosr   r   Zconcatenater   r   )r   Zarr1Zarr2df1df2r=   r<   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 )Nr*   r+   r0   r2   r1   r   r.   r/   )r1   r6   )r   r   )r*   r+   NN)r*   r+   r*   r+   )NNr.   r/   )r2   r1   r6   r5   Fr!   )r   r   rI   rJ   r=   r<   r   r   r   test_append_sortsl   s   zTestAppend.test_append_sortsc                 C   s   t tjdddktjddddtjd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 	 sYJ t|d dd  	 sgJ d S )Nr+   
   r   r   r
   r   )boolsintsfloatsstrings)rN   rO   rP   )rQ   rO   rP   r   rQ   r/   rN   )
r   rH   randomZdefault_rngZstandard_normalZintegerslocr   r   all)r   r   r:   r1   r2   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   rM      r   r*   r
   r   r   )r   r   r   r   rS   r   rT   r   )r   r   r   chunksr=   r   r   r   test_append_many   s   



 zTestAppend.test_append_manyc                 C   s   t g dd}|dg}t g dg dg dgg dd}|dg}d}tjt|d	 ||}W d    n1 s=w   Y  |jjdksJJ d S )
Nr?   r   r   )r*   r/   r4   )r+   r      )r.   r3   	   )datar   zDThe behavior of array concatenation with empty entries is deprecatedr$   )r   Z	set_indexr   Zassert_produces_warningFutureWarningr   r   r9   )r   rI   rJ   r(   r=   r   r   r   test_append_preserve_index_name   s   "z*TestAppend.test_append_preserve_index_namer.   r/   r   r3   )g      @g      @g      @abczA B CzD E FT)Zordered)r4   rZ   r[   rM     r*   r   r3   rM   r4      r   c                 C   
   t | jS r    type__name__r,   r   r   r   <lambda>      
 zTestAppend.<lambda>)Z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r*   r+   r.   r_   r   r+   r4   rZ   r8   )r*   r+   rE   r   r*   r+   r@   r   ir*   r/   r   r4   rZ   r[   )
r   r   r   rH   nanZdtypesilockindr   r   )r   r   r:   Z	ser_indexserr=   r<   r   r   r   test_append_same_columns_type   s*   
 
z(TestAppend.test_append_same_columns_typezdf_columns, series_indexr+   )rc                 C   rc   r    rd   rg   r   r   r   rh      ri   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 )Nrj   r_   r   rm   r+   r8         ?rD   rE   r/   r   r3   r4   rZ   r[   rk   r@   )r   r   r   r   
differencer   tolistappendrH   rn   r   r   )	r   Z
df_columnsZseries_indexr:   rq   r=   Zidx_diffZcombined_columnsr<   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 )Nr*   r+   ra   r   
start_time)r   r\   r   r/   r   r.   r3   rM   r4   end_time)r9   )Zaxisr   TrG   r   )
r   dtdatetimer   r   pdNaTr   r   r   )r   r   rI   rJ   r<   r=   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   )r*   r+   r.   r/   i8rB   r   )TFTFTr{   Zf8O)r   rH   arrayboolr   rC   )r   r   rI   rJ   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)tzrt   rD   )r1   r2   dater6   dr   TrF   )r6   r   r1   r2   r   r+   )r   dateutilr   Ztzutcr   r   r   rH   rn   astypeobjectr   r   )r   r   rq   r:   Zresult_ar<   Zresult_br=   r   r   r   2test_append_empty_frame_to_series_with_dateutil_tz2  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}|r t dtjgitd}n
t dtjgitd}t	|| t dgdd}t
dtjidd}|j|dd}t	|| t
dtjidd}|j|dd}t dtjgit}t	|| d S )	Nr1   r   datetime64[ns, UTC]TrF   rB   datetime64[ns]zdatetime64[ns, US/Pacific])r   r   r   r~   r   r   rH   rn   r   r   r   )r   using_array_managerr:   r=   r<   otherr   r   r   ,test_append_empty_tz_frame_with_datetime64nsK  s   z7TestAppend.test_append_empty_tz_frame_with_datetime64ns	dtype_str)r   r   ZInt64int64valr   c                 C   sz   t dgd|}t dt|dgi}|j|dd}|t}t|tr5|dkr5|s5t dtjgitd}t	
|| d S )Nr1   r   nsTrF   r   rB   )r   r   rH   timedelta64r   r   
isinstancestrrn   r   r   )r   r   r   r   r:   r   r=   r<   r   r   r   .test_append_empty_frame_with_timedelta64ns_natc  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 )Nr1   r*   rB   r   TrF   )r   r   )
r   r~   r   rH   r   r   ro   r   r   r   )r   r   r   r:   r   r=   r<   r   r   r   (test_append_frame_with_timedelta64ns_naty  s
    z3TestAppend.test_append_frame_with_timedelta64ns_natN)'rf   
__module____qualname__r   r#   r)   r>   rA   rK   rL   rU   rY   r^   r~   Z
RangeIndexr   listZCategoricalIndexsplitZIntervalIndexZfrom_breaksZDatetimeIndexr|   r}   Z
MultiIndexZfrom_arraysZindexes_can_appendr&   markZparametrizerr   r   rx   r   r   r   r   r   r   r   r   r   r   r	      sd    "






2r	   )r}   r|   	itertoolsr   r   numpyrH   r&   Zpandasr~   r   r   r   r   r   r   Zpandas._testingZ_testingr   r	   r   r   r   r   <module>   s     