U
    sVca"                     @   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	  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   N/tmp/pip-unpacked-wheel-xj8nt62q/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 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(   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_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/   r0   r   r   g333333?g?r   r   r   r   Z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   r5   )r   r   r         )rD   rG   )rD   rH   )rF   rH   )rF   rI   )
r   r>   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-   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#   r1   r2   cidr3   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dater7   r5   r3   )r   r   r8   r9   r:   r   r-   Zassert_index_equalr   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   re      T)r   rd   copy)r   r   zerosr   r   Z_iter_column_arraysZshares_memoryr[   )r   r   re   rd   r;   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rd   joinrZ   r)   )r   r*   r+   )r   r   r   nanr   r-   r^   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   rn   ro   r   r*   r   Tinnerrq   r   r*   r   r   r   r-   r^   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 )Nro   r   ru   Trv   rq   rw   rx   )r   r   rO   r   r   r   r    test_sort_columns_one_df   s    z,TestDataFrameConcat.test_sort_columns_one_dfN)__name__
__module____qualname__r!   r.   r<   rA   rP   rT   r\   r_   rc   r?   markZparametrizerm   rt   ry   rz   r   r   r   r    r      s    :


r   )Znumpyr   r?   Zpandasr8   r   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r    <module>   s
   