o
    թZh"                     @   sN   d dl Zd dlZd dlZd dlmZmZmZmZ d dl	m
Z G dd dZdS )    N)	DataFrameIndexSeriesconcatc                   @   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ejdddgejdddgejdddgdd Zdd Zd d! Zd"d# Zd$S )%TestDataFrameConcatc                 C   s|   t tdddgtjd}t tdtjd}t||fddj}ttdgd	 td
gd	  g dd}t	
|| d S )N)
      foobar)datacolumnsdtype)r   r      axisfloat64r   float32)r	   r
   r   r   index)r   nponesr   r   r   Zdtypesr   r   tmassert_series_equalselfdf1df2resultsexpected r   a/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/reshape/concat/test_dataframe.py"test_concat_multiple_frames_dtypes   s   z6TestDataFrameConcat.test_concat_multiple_frames_dtypesc                 C   sz   t tdtdd}t tdd tdd}t||fddgd}t d	d	d
d
d
dd	d	d
d
d
dd}t|| d S )N)r   r   ZABr   )   r   r   )beebah)r$   bookeys      ?g       @))r$   r%   r   )r$   r%   r   )r$   r&   r   )r$   r&   r   )r$   r&   r   )AB)r   r   r   listr   r   assert_frame_equalr   r   r   r    test_concat_tuple_keys   s&   z*TestDataFrameConcat.test_concat_tuple_keysc           	      C   s   t ddgddgd}tddgdd	}t||g|d
}t g dg ddtjjddgddgfdd gdd}t|| tddgd d	}t||g|dgd}t|| t||g|d
}t g dg ddtjjddgddgfd d gdd}t|| d S )Nr   r   皙?皙?)r	   r
   abZbaznamer'   )r   r   r   r   )r/   r0   r/   r0   r   namesr   r(   r6   )r   r   r   pd
MultiIndexfrom_productr   r-   )	r   dfr   Zconcatted_named_from_keysZexpected_namedZindex_no_nameZconcatted_named_from_namesZconcatted_unnamedZexpected_unnamedr   r   r    test_concat_named_keys3   s"   z*TestDataFrameConcat.test_concat_named_keysc                 C   s  t dddgitdd}t dddgitdd}t dg dig d	d}t||gd
d}t|| t||gdd}t|| t||gdd}t|| t ddgddggddgddgd}t||gdd}t|| t||gdd}	t|	| tddg}
tddg}tg dg d	d}t|
|gd
d}t|| t|
|gdd}t|| t|
|gdd}t|| t ddgddggddgddgd}t|
|gdd}t|| t|
|gdd}t|| tjt	dd t|
|gdd W d    d S 1 sw   Y  d S )Nr*   r/   r0   r   r   333333?皙?)r/   r0   r=   r>   )r   r   r   r   r   r   rowsr   r   )r   r   r   zNo axis named)matchZ	something)
r   ranger   r   r-   r   r   pytestZraises
ValueError)r   r   r   Zexpected_indexZconcatted_indexZconcatted_rowZconcatted_0Zexpected_columnsZconcatted_columnsZconcatted_1Zseries1Zseries2Zexpected_index_seriesZconcatted_index_seriesZconcatted_row_seriesZconcatted_0_seriesZexpected_columns_seriesZconcatted_columns_seriesZconcatted_1_seriesr   r   r    test_concat_axis_parameterI   sF   $z.TestDataFrameConcat.test_concat_axis_parameterc                 C   s   t dtdidtjjg dg dgddgdd	}t|jd dd d f |jd
d d d f f}t dg didtjjg dddgdd	}t	|| d S )Ncol	   Zint32)A0A1A2)B0B1B2r   r   r5   )r   r   )r   r         ))rG   rJ   )rG   rK   )rI   rK   )rI   rL   )
r   rA   r8   r9   r:   r   Zilocfrom_tuplesr   r-   r   r;   resultr   r   r   r    test_concat_numerical_names   s    
0	
z/TestDataFrameConcat.test_concat_numerical_namesc                 C   s`   t ddig}t||gdd}|d}t tddgddddgdd}t|| d S )Nr1   r2   r   r   categoryr   r"   )r   r   astyper   arrayZreshaper   r-   rQ   r   r   r    test_concat_astype_dup_col   s   
z.TestDataFrameConcat.test_concat_astype_dup_colc                 C   sz   t dtg dtg ddddi}t dtddgtd	d
gdddi}t||gdddg|d}t|jddgks;J d S )Nvaluer   r   r#   )r1   r2   cidr3   r   rN   rO   r1   r2   r   t1t2)r   r(   sort)r\   rX   )r]   rX   )r   r   r   r   r,   r   )r   r^   r\   r]   rR   r   r   r    test_concat_dataframe_keys_bug   s   $z2TestDataFrameConcat.test_concat_dataframe_keys_bugc                 C   sV   t tg ddd}t tg ddd}t||g}t|d|g}t|| d S )N)TFTTbool)r   )r   r   r   Zint64)r   r   r   rU   r   r-   r   r   r   rR   r   r   r   r    test_concat_bool_with_int   s
   z-TestDataFrameConcat.test_concat_bool_with_intc                 C   s   g d}g d}t ||d}t|gdgddgd}tjjdg|gddgd}t ||d}t|| t|jj	d	 t
d	d
gdd d S )N)r   r   r#   rY   )r   r   r*   IDdater7   r5   r   r#   r3   )r   r   r8   r9   r:   r   r-   Zassert_index_equalr   Zlevelsr   )r   r   r   r;   rR   mir   r   r   r    )test_concat_duplicates_in_index_with_keys   s   $z=TestDataFrameConcat.test_concat_duplicates_in_index_with_keysignore_indexTForderCFr   r   r   c           	      C   sd   t tjdtj|d}t|gd ||dd}|s.| D ]}| D ]
}t||r,J q"qd S d S )N)r      )r   rh   rk   T)r   rg   copy)r   r   Zzerosr   r   Z_iter_column_arraysZshares_memory)	r   r   rh   rg   Zusing_copy_on_writer;   resZarrZarr2r   r   r    test_concat_copies   s   z&TestDataFrameConcat.test_concat_copiesc                 C   sf   t dgdgdd}t ddgi}t||gdddd}t d	tjgddgd	tjgd
}t|| d S )Nr   r   r*   r+   r   r*   d   Touterrg   joinr^   r)   )r   r*   r+   )r   r   r   nanr   r-   ra   r   r   r    test_outer_sort_columns   s
    z+TestDataFrameConcat.test_outer_sort_columnsc                 C   s^   t dgdgdd}t dgdd}t||gdddd	}t ddgddgd
}t|| d S )Nr   r   ro   rp   r   r*   r   Tinnerrr   r   r*   r   r   r   r-   ra   r   r   r    test_inner_sort_columns   s
   z+TestDataFrameConcat.test_inner_sort_columnsc                 C   sD   t dgdd}t|gdddd}t dgdgd}t|| d S )Nrp   r   rv   Trw   rr   rx   ry   )r   r   rR   r   r   r   r    test_sort_columns_one_df   s   z,TestDataFrameConcat.test_sort_columns_one_dfN)__name__
__module____qualname__r!   r.   r<   rD   rS   rW   r_   rb   rf   rB   markZparametrizern   ru   rz   r{   r   r   r   r    r      s"    :

r   )numpyr   rB   Zpandasr8   r   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r    <module>   s    