U
    -e4                     @   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dddgedddgeeded ejd dd ejd!d"d#d$g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d0d1d2d+ d,d3d4 Z d5d6 Z!d7d8 Z"d9d: Z#d;d< Z$ejd=d>d?d@dAgejdBd&dCgdDdE Z%ejd=d>d?d@dAgejdBd&dCgdFdG Z&dHS )I
TestAppendc                 C   s*  |  }d|d< |jd d }|jdd  }||}||}||}t|d |d  |d= |j||d}	d|	ks~t|j||d}	d|	kst|d d |dd  }t|| |d d j|dd  |d}
|d d j|dd  |d}t|
jddddgd	|jddddgd	 d S )
Nbarfoo   AsortBCDcolumns)copyindexZreindex_appendtmZassert_almost_equalAssertionErrorassert_frame_equal)selfr   float_frameZmixed_frameZbegin_indexZ	end_indexZbegin_frameZ	end_frameappendedZpartial_appendedZmixed_appendedZmixed_appended2 r   h/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pandas/tests/reshape/concat/test_append.pytest_append   s*    


zTestAppend.test_appendc                 C   sN   t  }||}t|| ||k	s(t||}t|| ||k	sJtd S N)r   r   r   r   r   )r   r   emptyr   r   r   r   test_append_empty7   s    

zTestAppend.test_append_emptyc              	   C   s0   d}t jt|d |j|dd W 5 Q R X 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   sr   t ddddddd}tddd	gd
ddgdd}t dddddddddd	id}||}t|| d S )N      )xy      abr         r0   r1   czr   name)r+   r,   r5   )r0   r1   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   sX   t dddgd}t ddgddgd}|j||d}t ddgdddgd}t|| d S )	Nr   r   r   r   r   r)   r   r   r   r   r   r   r   )r   r   r8   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}ddd	g|d d < t|}t|}|j|d
d}tt ||f}t|| d S )N)r*   z	i4,f4,a10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 ddd d gddddgd d ddgddddgd}|dkr|dddg }t|| d S )Nr)   r*   r/   r1   r0   r   r-   r.   )r0   r4   )r   r   )r1   r0   r4   r4   Fr>   )r   r   rG   rH   r;   r:   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 ddd	gf }|dd  jd d d
dd	gf }|j||d}t|d
 dd  st	t|d dd   st	d S )N
   r   r   r
   r   )boolsintsfloatsstringsrL   rM   rN   rO   r   r.   )
r   rF   randomZrandnrandintlocr   r   allr   )r   r   r8   r0   r1   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 st|d d d   std S )
Nr   rK      r   r)   r
   r   r   )	r   r   r   r   rR   r   rS   r   r   )r   r   r   chunksr;   r   r   r   test_append_many   s    



zTestAppend.test_append_manyc                 C   sp   t dddgd}|dg}t dddgdd	d
gdddggdddgd}|dg}||}|jjdksltd S )Nr   r   r   r   r)   r.   r3   r*   r      r-   r2   	   )datar   )r   Z	set_indexr   r   r7   r   )r   rG   rH   r;   r   r   r   test_append_preserve_index_name   s    *
z*TestAppend.test_append_preserve_index_namer-   r.   r   r2   g      @g      @g      @abczA B CzD E FT)Zorderedr3   rY   rZ   rK     r)   r      r   c                 C   s
   t | jS r!   type__name__r+   r   r   r   <lambda>       zTestAppend.<lambda>)Zidsc                 C   s0  t dddgdddgg|d}|d d }tdd	g|dd
}||}t dddgdddgdd	tjggdddg|d}|jjd jdkst|jjd jdkstt	
|| |}|d d }t ddgddgg|d}tdd	dg|dd
}||}t ddtjgddtjgdd	dggdddg|d}t	
|| d S )Nr)   r*   r-   r.   r   r2   r   r3   rY   r6   rC   r   r=   irZ   )r   r   r   rF   nanZdtypesilockindr   r   r   )r   r   r8   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   s
   t | jS r!   r`   rc   r   r   r   rd      re   c           	   	   C   s   t dddgdddgg|d}tdd	d
g|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dddg|d}t
|| d S )Nr)   r*   r-   r.   r   r2   r   r3   rY   rZ   r6         ?rB   rC   r   r=   )r   r   r   r   
differencer   tolistappendrF   rg   r   r   )	r   Z
df_columnsZseries_indexr8   rj   r;   Zidx_diffZcombined_columnsr:   r   r   r   #test_append_different_columns_types   s    

	z.TestAppend.test_append_different_columns_typesc                 C   sX  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*   r^   r   
start_time)r   r[   r   r.   r   r-   r2   rK   r3   end_time)r7   )Zaxisr   TrE   r   )
r   dtdatetimer   r   pdNaTr   r   r   )r   r   rG   rH   r:   r;   r   r   r   test_append_dtype_coerce   sL    """		z#TestAppend.test_append_dtype_coercec                 C   st   t dtjddddgddi}t dtjd	d
d	d
gtdi}|j|d	|d}|d jdks^t|d jdksptd S )Nr   r)   r*   r-   r.   i8r@   r   TFrt   Zf8O)r   rF   arrayboolr   rA   r   )r   r   rG   rH   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dddddgd}|d 	t
|d< |d 	t
|d< t|| ttjtjdd|ggd dddddg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)tzrm   rB   )r0   r1   dater4   dr   TrD   r0   r1   r   r*   )r   dateutilr   Ztzutcr   r   r   rF   rg   astypeobjectr   r   )r   r   rj   r8   Zresult_ar:   Zresult_br;   r   r   r   2test_append_empty_frame_to_series_with_dateutil_tz0  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 )	Nr0   r   datetime64[ns, UTC]TrD   datetime64[ns]r@   zdatetime64[ns, US/Pacific])	r   r   r   rw   rx   r   r   r   r   )r   r8   r;   r:   otherr   r   r   ,test_append_empty_tz_frame_with_datetime64nsI  s    z7TestAppend.test_append_empty_tz_frame_with_datetime64ns	dtype_strr   r   ZInt64Zint64valrx   c                 C   sP   t dgd|}t dt|dgi}|j|dd}|t}t|| d S )Nr0   r   nsTrD   )r   r   rF   timedelta64r   r   r   r   r   r   r   r8   r   r;   r:   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 )Nr0   r)   r@   r   TrD   )r   r   )
r   rw   r|   rF   r   r   rh   r   r   r   r   r   r   r   (test_append_frame_with_timedelta64ns_natm  s
     z3TestAppend.test_append_frame_with_timedelta64ns_natN)'rb   
__module____qualname__r    r#   r(   r<   r?   rI   rJ   rT   rX   r\   rw   Z
RangeIndexr   listZCategoricalIndexsplitZIntervalIndexZfrom_breaksZDatetimeIndexru   rv   Z
MultiIndexZfrom_arraysZindexes_can_appendr%   markZparametrizerk   r   rq   ry   r~   r   r   r   r   r   r   r   r   r	      sj   "
  


2 

 
r	   )rv   ru   	itertoolsr   r   numpyrF   r%   Zpandasrw   r   r   r   r   r   r   Zpandas._testingZ_testingr   r	   r   r   r   r   <module>   s    