U
    +if                     @   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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	  ddddgd}t	
|| d S )N)
      foobar)datacolumnsdtype)r   r      axisfloat64r   float32r   index)r   nponesr   r   r   Zdtypesr   r   tmassert_series_equalselfdf1df2resultsexpected r   ]/home/mars/bis/venv/lib/python3.8/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keysg      ?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 ddddgddddg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 ddddgddddg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   namesr   r(   r5   )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_keys4   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ddddgidd	dd	g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ddddgdd	dd	g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 5 Q R X d S )Nr)   r.   r/   r   r   g333333?g?r   r   r   r   rows)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_parameterJ   sL         z.TestDataFrameConcat.test_concat_axis_parameterc                 C   s   t dtdidtjjdddgddd	ggd
dgdd}t|jd dd d f |jdd d d f f}t ddd
ddgidtjjddddgd
dgdd}t	|| d S )Ncol	   Zint32A0A1A2B0B1B2r   r   r4   )r   r   r         )rD   rG   )rD   rH   )rF   rH   )rF   rI   )
r   r>   r7   r8   r9   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 )Nr0   r1   r   r   categoryr   r"   )r   r   astyper   arrayZreshaper   r,   rN   r   r   r    test_concat_astype_dup_col   s    
 z.TestDataFrameConcat.test_concat_astype_dup_colc                 C   s~   t dtdddgtdddg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sztd S )Nvaluer   r   r#   r0   r1   cidr2   r   rK   rL   t1t2)r   r(   sort)rX   rU   )rY   rU   )r   r   r   r   r+   r   AssertionError)r   rZ   rX   rY   rO   r   r   r    test_concat_dataframe_keys_bug   s    "$z2TestDataFrameConcat.test_concat_dataframe_keys_bugc                 C   s\   t tddddgdd}t tdddgdd}t||g}t|d|g}t|| d S )NTFbool)r   r   r   Zint64)r   r   r   rR   r   r,   )r   r   r   rO   r   r   r   r    test_concat_bool_with_int   s
    z-TestDataFrameConcat.test_concat_bool_with_intc                 C   s   dddg}dddg}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 )Nr   r#   r   )r   r   r)   ZIDdater6   r4   r2   )r   r   r7   r8   r9   r   r,   Zassert_index_equalr   Zlevelsr   )r   r   r   r:   rO   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   s\   t tjdtj|d}t|gd ||dd}| D ]"}| D ]}t||r@tq@q4d S )N)i'     )r   rc      T)r   rb   copy)r   r   Zzerosr   r   Z_iter_column_arraysZshares_memoryr[   )r   r   rc   rb   r:   resZarrZarr2r   r   r    test_concat_copies   s
    z&TestDataFrameConcat.test_concat_copiesN)__name__
__module____qualname__r!   r-   r;   rA   rP   rT   r\   r^   ra   r?   markZparametrizerj   r   r   r   r    r      s   :

r   )numpyr   r?   Zpandasr7   r   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r    <module>   s
   