o
    _~#g7                     @   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/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/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)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   )r8   r9   rC   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   r6   r   r   r   r   r   r+   )r   r   rF   df3df5rH   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)r7   z	i4,f4,S10dtype)r6          @Hello)r7         @World)r:   ))r:   g      @r   )r   g      @r
   )g      @g       @bazTignore_index)npzerosr   r   concatenater   r   )r   arr1arr2df1df2rI   rH   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 )Nr6   r7   r<   r>   r=   r   r:   r;   )r=   rB   )r   r   )r6   r7   NN)r6   r7   r6   r7   )NNr:   r;   )r>   r=   rB   rA   Fr+   )r   r   r^   r_   rI   rH   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 )Nr7   
   r   r   r
   r   )boolsintsfloatsstrings)rc   rd   re   )rf   rd   re   r   rf   r;   rc   )
r   rY   randomdefault_rngstandard_normalintegerslocr   r   all)r   r   rF   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   rb      r   r6   r
   r   r   )r   r   r   r   rk   r   rl   r   )r   r   r   chunksrI   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 )
NrK   r   r   )r6   r;   r@   )r7   r      )r:   r?   	   )datar   zDThe behavior of array concatenation with empty entries is deprecatedr.   )r   	set_indexr   assert_produces_warningFutureWarningr   r   rE   )r   r^   r_   r4   rI   r'   r'   r(   test_append_preserve_index_name   s   "z*TestAppend.test_append_preserve_index_namer:   r;   r   r?   )g      @g      @g      @abczA B CzD E FT)ordered)r@   rr   rs   rb     r6   r   r?   rb   r@      r   c                 C   
   t | jS r*   type__name__r8   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r6   r7   r:   ry   r   r7   r@   rr   rD   )r6   r7   rT   r   r6   r7   rL   r   ir6   r;   r   r@   rr   rs   )
r   r   r   rY   nandtypesilockindr   r   )r   r   rF   	ser_indexserrI   rH   r'   r'   r(   test_append_same_columns_type   s*   
 
z(TestAppend.test_append_same_columns_typezdf_columns, series_indexr7   )rc                 C   r~   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   ry   r   r   r7   rD         ?rR   rT   r;   r   r?   r@   rr   rs   r   rL   )r   r   r   r   
differencer   tolistappendrY   r   r   r   )	r   
df_columnsseries_indexrF   r   rI   idx_diffcombined_columnsrH   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 )Nr6   r7   r|   r   
start_time)r   rt   r   r;   r   r:   r?   rb   r@   end_time)rE   )axisr   TrX   r   )
r   dtdatetimer   r   pdNaTr   r   r   )r   r   r^   r_   rH   rI   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   )r6   r7   r:   r;   i8rP   r   )TFTFTr   f8O)r   rY   arrayboolr   rQ   )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   rR   )r=   r>   daterB   dr   TrW   )rB   r   r=   r>   r   r7   )r   dateutilr   tzutcr   r   r   rY   r   astypeobjectr   r   )r   r   r   rF   result_arH   result_brI   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 )	Nr=   r   datetime64[ns, UTC]TrW   rP   datetime64[ns]zdatetime64[ns, US/Pacific])r   r   r   r   r   r   rY   r   r   r   r   )r   using_array_managerrF   rI   rH   otherr'   r'   r(   ,test_append_empty_tz_frame_with_datetime64nsK  s   z7TestAppend.test_append_empty_tz_frame_with_datetime64ns	dtype_str)r   r   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 )Nr=   r   nsTrW   r   rP   )r   r   rY   timedelta64r   r   
isinstancestrr   r   r   )r   r   r   r   rF   r   rI   rH   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 )Nr=   r6   rP   r   TrW   )r   r   )
r   r   r   rY   r   r   r   r   r   r   )r   r   r   rF   r   rI   rH   r'   r'   r(   (test_append_frame_with_timedelta64ns_naty  s
    z3TestAppend.test_append_frame_with_timedelta64ns_natN)'r   
__module____qualname__r)   r-   r5   rJ   rO   r`   ra   rm   rq   rx   r   
RangeIndexr   listCategoricalIndexsplitIntervalIndexfrom_breaksDatetimeIndexr   r   
MultiIndexfrom_arraysindexes_can_appendr1   markparametrizer   r   r   r   r   r   r   r   r   r'   r'   r'   r(   r	      sd    "






2r	   )r   r   	itertoolsr   r   numpyrY   r1   pandasr   r   r   r   r   r   r   pandas._testing_testingr   r	   r'   r'   r'   r(   <module>   s     