o
    Û­jÛ7  ã                   @   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'   úd/var/www/html/CropPilot/venv/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     