3
Ud                 @   s  d Z ddlmZ ddlZddlZddlmZmZm	Z	 ddl
jZejjdddgdd	 Zd
d Zdd Zdd Zejjddedddgdfdedddgdfdeddgeg dddfdeddgeg dddfdeddgeg dddfdeddgeg dddfddgedge	jg gd ddgddfddgedge	jg gd ddgddfddgedge	jg gd ddgddfddgedge	jg gd ddgddfg
dd Zdd Zejjdddgd dgdd!gd d!gd"d#ggd$d% Zd&d' Zd(d) Zd*d+ Zejjd,d- ZdS ).z
Tests that the specified index column (a.k.a "index_col")
is properly handled or inferred during parsing for all of
the parsers defined in parsers.py
    )StringION)	DataFrameIndex
MultiIndexwith_headerTFc       	      C   s   | }d}d}|rP|| }|j t|dd}|j t|ddjd}tj|| n4|}d}tjt|d |j t|dd W d Q R X d S )	Na  KORD1,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD2,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD3,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD4,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD5,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD6,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000zBID,date,NominalTime,ActualTime,TDew,TAir,Windspeed,Precip,WindDir
ZID)	index_colr   )headerzIndex ID invalid)match)read_csvr   	set_indextmassert_frame_equalpytestraises
ValueError)	all_parsersr   parserZ	no_headerr   dataresultexpectedmsg r   Y/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/io/parser/test_index_col.pytest_index_col_named   s    r   c             C   sx   | }d}t dddgdddgdd	d
gdddgdtdddgddd}dddddg}|jt||dgd}tj|| d S )Nz+1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
      	         
                     )abcdZhelloZworldfoomessage)name)indexr&   r'   r(   r)   )namesr   )r   r   r
   r   r   r   )r   r   r   r   r.   r   r   r   r   test_index_col_named2)   s    $r/   c             C   s<   d}| }d}t jt|d |jt|dd W d Q R X d S )Nza,b
1,2z)The value of index_col couldn't be 'True')r	   T)r   )r   r   r   r
   r   )r   r   r   r   r   r   r   test_index_col_is_true;   s
    r0   c             C   sX   d}| }|j t|}tdddgdddgdd	d
ggdddgdddgd}tj|| d S )Nz$A,B,C
foo,1,2,3
bar,4,5,6
baz,7,8,9
r   r   r    r#   r   r   r!   r$   r   r*   barZbazABC)r-   columns)r
   r   r   r   r   )r   r   r   r   r   r   r   r   test_infer_index_colE   s    r6   zindex_col,kwargsxyz)r5   )r,   )r5   r-   r   r   )r.   c             C   s4   d}| }|j t||d}tf |}tj|| d S )Nzx,y,z)r   )r
   r   r   r   r   )r   r   kwargsr   r   r   r   r   r   r   test_index_col_empty_dataV   s
    $
r;   c             C   s8   d}| }|j t|dd}tddgd}tj|| d S )Nzx,yF)r   r7   r8   )r5   )r
   r   r   r   r   )r   r   r   r   r   r   r   r   test_empty_with_index_col_false   s
    r<   index_names r*   r1   ZNotReallyUnnamedz
Unnamed: 0c             C   sv   | }dj |dg }|jt|ddgd}tddddd	gitjd
dgddggd}dd |D |j_tj	|| d S )N,zcol
a,c,1
a,d,2
b,c,3
b,d,4r   r   )r   colr   r    r#   r&   r'   r(   r)   )r-   c             S   s   g | ]}|r|nd qS )Nr   ).0r,   r   r   r   
<listcomp>   s    z+test_multi_index_naming.<locals>.<listcomp>)
joinr
   r   r   r   Zfrom_productr-   r.   r   r   )r   r=   r   r   r   r   r   r   r   test_multi_index_naming   s    (rD   c          	   C   sr   | }d}|j t|ddgd}tdddddgitdd	gd
dddggddd
d
gdd
ddggdd}tj|| d S )Nz$,Unnamed: 2,
a,c,1
a,d,2
b,c,3
b,d,4r   r   )r   z
Unnamed: 2r(   r)   r&   r'   r   r    r#   )Zlevelscodes)r-   )r
   r   r   r   r   r   )r   r   r   r   r   r   r   r   ,test_multi_index_naming_not_all_at_beginning   s    2rF   c             C   st   | }t jdddg}ttjjdd|dddgd	}tj $}|j| |j	|d
ddgd}W d Q R X tj
|| d S )Nr2   r   r   r3   r    r7   r8   r9   )r-   r5   r   )r   )r2   r   r   )r2   r   r   )r3   r   r   )r   from_tuplesr   nprandomrandnr   ensure_cleanto_csvr
   r   )r   r   midxr   pathr   r   r   r   %test_no_multi_index_level_names_empty   s    

rO   c             C   s   | }d}t jddgddgd}tdg}td	d
gg||d}|jt|ddd	gd}tj|| tddg}tddgdd}tddgddgg||d}|jt|ddd}tj|| d S )Nz
I11,A,A
I12,B,B
I2,1,3
r2   r3   B.1ZI11ZI12)r.   ZI2r   r    )r-   r5   r   )r   r   zA.1)r,   13)r2   r3   )r2   rP   )r   rG   r   r   r
   r   r   r   )r   r   r   rM   idxr   r   Zcol_idxr   r   r   test_header_with_index_col   s    
rT   c             C   sj   | }d}t t|tjj|d}tj $}|j|dd |j|dgd}W d Q R X tj	||j
d d S )NiAB )r&   r'   F)r-   r   )r   r&   )r   rangerH   rI   rJ   r   rK   rL   r
   r   r   )r   r   NdfrN   r   r   r   r   test_index_col_large_csv   s    
rX   )__doc__ior   ZnumpyrH   r   Zpandasr   r   r   Zpandas._testingZ_testingr   markZparametrizer   r/   r0   r6   dictZfrom_arraysr;   r<   rD   rF   rO   rT   ZslowrX   r   r   r   r   <module>   sR   

   .
