3
Ud                 @   s  d Z ddlmZ ddlZddlmZ ddljZej	j
de eddgdd	 Zd
d Zdd Zej	j
ddedddggdddgdfdeddddddggddddddgdfdedddddddggddd dd!d"d#gdfgd$d% Zej	j
d&d'dddgedd(d(gd)d*d+ggdddgdfd,ddddddgedd(d-d.d/d0gd)d*d+d1d2d3ggddddddgdfd4ddd dd!ddgedd(d-d.d/d0d5gd)d*d+d1d2d3d6ggddd dd!d"d#gdfgd7d8 Zd9d: ZdS );z
Tests that duplicate columns are handled appropriately when parsed by the
CSV engine. In general, the expected result is that they are either thoroughly
de-duplicated (if mangling requested) or ignored otherwise.
    )StringION)	DataFramekwargsT)Zmangle_dupe_colsc             C   sT   | }d}|j t|fddi|}tdddddggd	d
dddgd}tj|| d S )Nza,a,b,b,b
1,2,3,4,5sep,               aza.1bzb.1zb.2)columns)read_csvr   r   tmassert_frame_equal)all_parsersr   parserdataresultexpected r   \/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/io/parser/test_mangle_dupes.py
test_basic   s
    "r   c             C   sH   | }d}t dddgdddggdd	d
gd}|jt|}tj|| d S )Nza,b,a
0,1,2
3,4,5r   r   r   r	   r
   r   r   r   za.1)r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   test_basic_names   s
    "r   c             C   s>   | }d}t jtdd |jt|dddgd W d Q R X d S )Nz0,1,2
3,4,5zDuplicate names)matchr   r   )names)pytestraises
ValueErrorr   r   )r   r   r   r   r   r   test_basic_names_raise&   s    r    zdata,expectedza,a,a.1
1,2,3r   r   r	   r   za.1za.1.1)r   z+a,a,a.1,a.1.1,a.1.1.1,a.1.1.1.1
1,2,3,4,5,6r
   r      za.1.1.1z	a.1.1.1.1za.1.1.1.1.1z!a,a,a.3,a.1,a.2,a,a
1,2,3,4,5,6,7   za.3za.2za.2.1za.3.1c             C   s"   | }|j t|}tj|| d S )N)r   r   r   r   )r   r   r   r   r   r   r   r   test_thorough_mangle_columns/   s    r#   zdata,names,expectedza,b,b
1,2,3r   123za,b,c,d,e,f
1,2,3,4,5,6cdef456za,b,c,d,e,f,g
1,2,3,4,5,6,7g7c             C   s4   | }t jtdd |jt||d W d Q R X d S )NzDuplicate names)r   )r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   test_thorough_mangle_namesK   s    !r0   c             C   s   d}| }dddg}t ||i}xhtdD ]\}t  }x*t|d D ]}dddg|dd|  < q@W |||< |jt|j }tj|| q(W d S )N0r   r   r	   r   z
Unnamed: 0z.1)r   ranger   r   Zto_csvr   r   )r   Zorig_keyr   Z
orig_valuedfir   jr   r   r   !test_mangled_unnamed_placeholdersr   s    
r6   )__doc__ior   r   Zpandasr   Zpandas._testingZ_testingr   markZparametrizedictr   r   r    r#   r0   r6   r   r   r   r   <module>   sH   
"	$ $