3
Udi                 @   sJ  d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlZddl	Z	ddl
mZ ddlZddlZddlmZ ddlmZmZmZ ddljjZdd	lmZmZmZmZmZmZm Z  ddl!j"Z#dd
l$m%Z%m&Z&m'Z' dd Z(dd Z)dd Z*dd Z+dd Z,dd Z-dd Z.ej/j0ddddgdd Z1dd Z2d d! Z3d"d# Z4d$d% Z5d&d' Z6d(d) Z7d*d+ Z8d,d- Z9ej/j0d.d/e: ed0d1gd2d3gd0dggd4d5gd6fd7e:d8d9d:gd;d<d=gd>ed0d1gd2d3gd0dgd2dgd0dggd4d5gd6fd?e: ed0d1gd2d3gd0dggd4d5gd6fd@e:dAgdBgd>ed0d2gd2d0ggd4d5gd6fgdCdD Z;dEdF Z<ej/j0dddGgdHdI Z=ej/j0ddJdAdgdKdL Z>ej/j0dMddNgdOdP Z?ej/j0dQdRdAdgdSdT Z@ej/j0dQd3dUgdVdW ZAdXdY ZBdZd[ ZCej/j0d\e: e:dd]gd^d_ ZDd`da ZEdbdc ZFddde ZGdfdg ZHdhdi ZIdjdk ZJdldm ZKej/j0d\e:d0d1dne:d0doe:d1dpgdqdr ZLdsdt ZMej/j0d.due:ddNd4d5dvdwgdxed3ddydgdzdUd{d|gd}d~ddgd}d~ddgd}d~ddgd}d~ddggedAdBddddgdNdd4d5dvdwgdfde:dd1gddd4d5dvdwgdxed3ddydgdzdUd{d|gd}d~ddgd}d~ddgd}d~ddggejNdddddgddgdd4d5dvdwgdfgdd ZOej/j0dMdd1gd1dggdd ZPdd ZQej/j0ddeddgd6dgfdeejNddgd6dd1gfgej/j0dd0d2gdd ZRdd ZSdd ZTe#jUdd ZVej/jWdd ZXdd ZYdd ZZdd Z[ej\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcej/jddd2ddd Zeej/jddd2ddd Zfej/j0dddgddĄ ZgddƄ ZhddȄ Ziddʄ Zjdd̄ Zkdd΄ ZlddЄ Zmdd҄ ZnddԄ Zoej/j0ddejpejqgddׄ Zrej/j0dejsejqjtejsejpjtejsejpjugddڄ Zvej/j0dejsejqjtd1 ejsejpjud1 gdd܄ Zwej/j0dexdexdgexdexdggdd Zyej/j0dd0d2gdd Zzej/j0dde: edyddggdddgd6dfde:ddedyddggdddgd6dfde: edyddggdddgd6dfde:ddedyddggdddgd6dfde:d3gdedyddggdddgd6dfde:dd2dedyddggdddgd6dfde:d2dedddgdddggdddgd6dfde:d2dedyddgdddggdddgd6dfde:ddddfde:ddddfde:ddddfgdddddddddd dgddd Z{ej/j0dddd1gddggdd Z|ej/j0d.de: dfde:d	gd
dfde:dd	dgd	gded	gdgej}dfde:dd	dgd	gded	gd6fgdd Z~ej/j0de:dd0dd1d3dddgd0dedddgdejdggfe:d0d1d3dddgd0deddgdejgdd|gdfgdd Zdd Zej/j0dd0d2gd d! Zej/j0d"d#d0dddgd$ejdgdd&dggfdd0dddgd$ejdgdd&dggfd#d2dddgejejejgejejejgd$ejdgejejejgdd&dggfgd'd( Zd)d* Zej/j0d+d,ed1d3ddygd1d3ddygd1d3ddyggd4d5dvdwgdddgd-fd.ed1d3dgdyddgdzdUd{ggdddgd6fgd/d0 Zd1d2 Zd3d4 Zd5d6 Zej/j0d7ddgd;d< Zd=d> Zej/j0d?d0d2gd@dA Zej/j0d?d0d2gdBdC Zej/j0ddd1d3ddydgdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zej/j0d\e: e:d0d\gej/j0d]e: e:d0d^e:d2d^gd_d` Zdadb Zdcdd Zej/j0dedfdgdhgdidj Zdkdl Zdmdn Zdodp Zdqdr Zdsdt Zdudv Zdwdx Zdydz Zej/j0ded1dd{d| Zd}d~ Zdd Zdd Zdd Zdd Zdd ZdS (  zy
Tests that work on both the Python and C engines but do not have a
specific classification into the other test modules.
    N)datetime)	signature)StringIO)URLError)	Timestamp)DtypeWarningEmptyDataErrorParserError)	DataFrameIndex
MultiIndexSeriescompatconcatoption_context)CParserWrapperTextFileReader
TextParserc              C   s   G dd dt } G dd dt}d}ddgg}ddgtd	td
gd}t|ddgd}|  }dddg|dd|_|t|f|j|_|j }tj	|| d S )Nc               @   s   e Zd Zdd ZdS )z=test_override_set_noconvert_columns.<locals>.MyTextFileReaderc             S   s   d| _ d| _d S )Nr   F)Z_currowsqueeze)self r   V/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/io/parser/test_common.py__init__!   s    zFtest_override_set_noconvert_columns.<locals>.MyTextFileReader.__init__N)__name__
__module____qualname__r   r   r   r   r   MyTextFileReader    s   r   c               @   s   e Zd Zdd ZdS )z=test_override_set_noconvert_columns.<locals>.MyCParserWrapperc             S   s*   | j dkr t| j| _| jj  tj| S )Ninteger)Zusecols_dtypelistusecolsreverser   _set_noconvert_columns)r   r   r   r   r!   &   s    

zTtest_override_set_noconvert_columns.<locals>.MyCParserWrapper._set_noconvert_columnsN)r   r   r   r!   r   r   r   r   MyCParserWrapper%   s   r"   z1a,b,c,d,e
0,1,20140101,0900,4
0,1,20140102,1000,4      r   z2014-01-01 09:00:00z2014-01-02 10:00:00)ac_dr&   r%   )columns   ,)r   parse_dates	delimiter)
r   r   r   r
   optionsr   Z_enginereadtmassert_frame_equal)r   r"   datar*   colsexpectedparserresultr   r   r   #test_override_set_noconvert_columns   s    

r5   c             C   s<   d}d}| }t jt|d |jt|dd W d Q R X d S )NzA|B|C
1|2,334|5
10|13|10.
z'Only length-1 decimal markers supported)match )decimal)pytestraises
ValueErrorread_csvr   )all_parsersr0   msgr3   r   r   r   test_empty_decimal_markerI   s
    r?   c       	      C   s   t jj|d}tjd}tjd}| }d}t|dP}tj||j|j|j	|j
*}tjt|d |j| W d Q R X W d Q R X W d Q R X d S )Nzsauron.SHIFT_JIS.csvzutf-8z'utf-8' codec can't decode byterb)r6   )ospathjoincodecslookupopenStreamRecoderencodedecodestreamreaderstreamwriterr9   r:   UnicodeDecodeErrorr<   )	r=   csv_dir_pathrB   codecutf8r3   r>   handlestreamr   r   r   test_bad_stream_exceptionV   s    

rR   c             C   s   t j rdnd}| }|ttjj| }|j|ddd}tddd2d3gd
d4d5dgddd6dgddddgd7dd8dgddddgd9dd d:ggd"d#d$d%gtt	d&d'd(t	d&d'd)t	d&d'd*t	d&d'd+t	d&d'd,t	d&d'd-t	d&d'd.gd/d0d1}t
j|| d S );Nzfile:///zfile://r   T)	index_colr*   gA	]^?gֈ`|@g% TO?gnI?g=HOC?gW\?g~q"B?g=4?gZH?g7ne?g>ݦ4?g_YiR?g䞮X?gt]?gnk3Am?g-?gP,?g~W[I?gN6gF?gZ&|?g4e?gv?gg]W?gp̲'?gs?gq?g!?gG6W?ABCDi  r#   r(               
      index)name)r'   r^   g% TO׿gnIgW\g~q"BĿg>ݦ4gP,߿gN6gFgsĿgG6W)r   Zis_platform_windowsstrrA   rB   abspathr<   r
   r   r   r.   r/   )r=   csv1prefixr3   fnamer4   r2   r   r   r   test_read_csv_localk   s.    












re   c             C   sH   | }d}t ddgddgddgd}|jt|d	d
d}tj|| d S )NzA|B|C
1|2,334|5
10|13|10.
r#   r\   i	     rY   g      $@)rT   rU   rV   |r)   )sep	thousands)r
   r<   r   r.   r/   )r=   r3   r0   r2   r4   r   r   r   test_1000_sep   s
    rj   c             C   s`   d}| }t dddgdd}tddd	gd|d
}|jt|dd dd}tj|| |j s\td S )Nza,1
b,2
c,3
r%   bcr   )r_   r#   r$   r(   )r_   r^   T)rS   headerr   )r   r   r<   r   r.   assert_series_equalZ_is_viewAssertionError)r=   r0   r3   r^   r2   r4   r   r   r   test_squeeze   s    rp   c             C   s>   | }d}d}t jt|d |jt|ddd W d Q R X d S )Nz-ignore
A,B,C
1,2,3 # comment
1,2,3,4,5
2,3,4
z"Expected 3 fields in line 4, saw 5)r6   r#   #)rm   comment)r9   r:   r	   r<   r   )r=   r3   r0   r>   r   r   r   test_malformed   s
    rs   nrowsrY   r(   c          	   C   sP   d}| }d}|j t|dddddgd}tjt|d |j| W d Q R X d S )	Nz9ignore
A,B,C
skip
1,2,3
3,5,10 # comment
1,2,3,4,5
2,3,4
z"Expected 3 fields in line 6, saw 5r#   rq   Tr$   )rm   rr   iterator	chunksizeskiprows)r6   )r<   r   r9   r:   r	   r-   )r=   rt   r0   r3   r>   readerr   r   r   test_malformed_chunks   s    	ry   c             C   sd   d}| }t dddddgddd	d
dgdddddggtjdddddgd}|jt|}tj|| d S )Nz,A,B,C,,
1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
r#   r$   r(   rX   rY   rZ   r[      	   r\   r]      rf         rT   rU   rV   z
Unnamed: 3z
Unnamed: 4)dtyper'   )r
   npint64r<   r   r.   r/   )r=   r0   r3   r2   r4   r   r   r   test_unnamed_columns   s    &r   c             C   sH   d}| }t dddgdddgddd	gd
}|jt|}tj|| d S )NzA,B,C
a,1,2
b,3,4
c,4,5
r%   rk   rl   r#   r(   rX   r$   rY   )rT   rU   rV   )r
   r<   r   r.   r/   )r=   r0   r3   r2   r4   r   r   r   test_csv_mixed_type   s
    "r   c             C   sN   | }|j stjd d}|jt|dddd}tdddgd	}tj|| d S )
Nz"This is a low-memory specific testzA,B,C
1,1,1,2
2,2,3,4
3,3,4,5
Tr   )
low_memoryrS   rt   rT   rU   rV   )r'   )r   r9   skipr<   r   r
   r.   r/   )r=   r3   r0   r4   r2   r   r   r   +test_read_csv_low_memory_no_rows_with_index   s    
r   c             C   s   | }|j |ddd}tddd0d1gdd2d3dgddd4dgddddgd5dd6dgddddgd7ddd8ggd d!d"d#gttd$d%d&td$d%d'td$d%d(td$d%d)td$d%d*td$d%d+td$d%d,gd-d.d/}tj|| d S )9Nr   T)rS   r*   gA	]^?gֈ`|@g% TO?gnI?g=HOC?gW\?g~q"B?g=4?gZH?g7ne?g>ݦ4?g_YiR?g䞮X?gt]?gnk3Am?g-?gP,?g~W[I?gN6gF?gZ&|?g4e?gv?gg]W?gp̲'?gs?gq?g!?gG6W?rT   rU   rV   rW   i  r#   r(   rX   rY   rZ   r[   r\   r]   r^   )r_   )r'   r^   g% TO׿gnIgW\g~q"BĿg>ݦ4gP,߿gN6gFgsĿgG6W)r<   r
   r   r   r.   r/   )r=   rb   r3   r4   r2   r   r   r   test_read_csv_dataframe   s*    












r   c             C   s   | }t jj|d}|j|ddd}tddd+d,d	gd
d-d.ddgddd/ddgdddddgd0dd1ddggddd d!d"gttd#d$d%td#d$d&td#d$d'td#d$d(td#d$d)gd*}tj|| d S )2Nz	test2.csvr   T)rS   r*   gA	]^?gֈ`|@g% TO?gnI?foog=HOC?gW\?g~q"B?g=4?bargZH?g7ne?g>ݦ4?g_YiR?bazg䞮X?gt]?gnk3Am?g-?quxgP,?g~W[I?gN6gF?gZ&|?foo2rT   rU   rV   rW   Ei  r#   r(   rX   rY   rZ   r[   )r'   r^   g% TO׿gnIgW\g~q"BĿg>ݦ4gP,߿gN6gF)	rA   rB   rC   r<   r
   r   r   r.   r/   )r=   rM   r3   Zcsv2r4   r2   r   r   r   test_read_csv_no_index_name  s"    



r   c          
   C   s8   d}| }d}t jt|d |jt| W d Q R X d S )Nz;A,B,C,D,E,F
1,2,3,4,5,6
6,7,8,9,10,11,12
11,12,13,14,15,16
z"Expected 6 fields in line 3, saw 7)r6   )r9   r:   r	   r<   r   )r=   r0   r3   r>   r   r   r   test_read_csv_wrong_num_columns5  s
    r   c          
   C   s   d}| }|j t|dd}tddddgdd	d
dgddddgddddgddddgddddggddddgtddddddgddd}tj|| d S )Nzgindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo,12,13,14,15
bar,12,13,14,15
r   )rS   r$   r(   rX   rY   r[   rz   r{   r\   r|   rf   r}   r~   rT   rU   rV   rW   r   r   r   r   r^   )r_   )r'   r^   )r<   r   r
   r   r.   r/   )r=   r0   r3   r4   r2   r   r   r   "test_read_duplicate_index_explicitC  s    





r   c          
   C   s   d}| }|j t|}tddddgdddd	gd
dddgd
dddgd
dddgd
dddggddddgtddddddgd}tj|| d S )NzaA,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo,12,13,14,15
bar,12,13,14,15
r$   r(   rX   rY   r[   rz   r{   r\   r|   rf   r}   r~   rT   rU   rV   rW   r   r   r   r   )r'   r^   )r<   r   r
   r   r.   r/   )r=   r0   r3   r4   r2   r   r   r   "test_read_duplicate_index_implicit^  s    





r   zdata,kwargs,expectedzA,B
True,1
False,2
True,3Tr#   Fr$   rT   rU   )r'   zA,B
YES,1
no,2
yes,3
No,3
Yes,3yesZYesZYESnoNOZNo)Ztrue_valuesZfalse_valueszA,B
TRUE,1
FALSE,2
TRUE,3zA,B
foo,bar
bar,foor   r   c             C   s&   | }|j t|f|}tj|| d S )N)r<   r   r.   r/   )r=   r0   kwargsr2   r3   r4   r   r   r   test_parse_booly  s    r   c             C   sH   d}| }|j t|}tddgddgddggdd	gd
}tj|| d S )NzA,B
1.0,1
2.0,2
3.0,3
g      ?r#   g       @r$   g      @r(   rT   rU   )r'   )r<   r   r
   r.   r/   )r=   r0   r3   r4   r2   r   r   r   test_int_conversion  s
    "r   g      @c             C   sd   d}t dddddgddd	d
dgdddddggdddddgd}| }|jt||d}tj|| d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
r   r$   r(   rX   rY   r   r[   rz   r{   r\   r   r|   rf   r}   r~   r^   rT   rU   rV   rW   )r'   )rt   )r
   r<   r   r.   r/   )r=   rt   r0   r2   r3   r4   r   r   r   test_read_nrows  s    
&r   g333333?c             C   s<   d}d}| }t jt|d |jt||d W d Q R X d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
z'nrows' must be an integer >=0)r6   )rt   )r9   r:   r;   r<   r   )r=   rt   r0   r>   r3   r   r   r   test_read_nrows_bad  s
    	r   rS   r^   c             C   s   | }d}|j t|ddd}tdddddgd	d
dddgdddddgdddddgdddddgdddddggdddddgd}|jd}t|}tj|d |d d  tj|d |dd  tj|d |dd   d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
r   r$   )rS   rv   r   r(   rX   rY   r   r[   rz   r{   r\   r   r|   rf   r}   r~   r   r   bar2r^   rT   rU   rV   rW   )r'   r#   )r<   r   r
   Z	set_indexr   r.   r/   )r=   rS   r3   r0   rx   r2   chunksr   r   r   test_read_chunksize_with_index  s     
r   rv   g?c             C   s<   d}| }d}t jt|d |jt||d W d Q R X d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
z"'chunksize' must be an integer >=1)r6   )rv   )r9   r:   r;   r<   r   )r=   rv   r0   r3   r>   r   r   r   test_read_chunksize_bad  s
    	r   rz   c             C   sT   d}| }t ddd}|jt|fd|i|}|jt|f|}tjt|| d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
r   rY   )rS   rt   rv   )dictr<   r   r.   r/   r   )r=   rv   r0   r3   r   rx   r2   r   r   r   test_read_chunksize_and_nrows  s    
r   c          
   C   s   d}| }t ddd}|jt|fddi|}|jt|f|}tj|jdd|jd d  tj|jd	d|jdd  tjt	d
d |jdd W d Q R X d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
r   rY   )rS   rt   rv   rz   r$   )sizerX   r7   )r6   r(   )
r   r<   r   r.   r/   	get_chunkZilocr9   r:   StopIteration)r=   r0   r3   r   rx   r2   r   r   r   +test_read_chunksize_and_nrows_changing_size  s    r   c             C   sT   | }d}|j t|dd}|j }tdddgdddggd	d
dgd}tj|| d S )NzA,B,C
1,2,3
4,5,6
7,8,9
1,2,3r$   )rv   r#   r(   rX   rY   rZ   rT   rU   rV   )r'   )r<   r   r   r
   r.   r/   )r=   r3   r0   rx   r4   r2   r   r   r   test_get_chunk_passed_chunksize(  s    "r   r   )rS   c             C   sH   d}| }|j t|fddi|}|j t|f|}tjt|| d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
rv   r$   )r<   r   r.   r/   r   )r=   r   r0   r3   rx   r4   r   r   r   test_read_chunksize_compat7  s
    
r   c             C   s~   | }dj dgd dj dgd g }tdgtjgd  gd dgd g }|jt|tddd	}t|}tj	|| d S )
N
0r[   r)   r\   r   r{   rX   )namesrv   )
rC   r
   r   nanr<   r   ranger   r.   r/   )r=   r3   r0   r2   rx   r4   r   r   r    test_read_chunksize_jagged_namesI  s    "(r   c             C   sp   | }t dd}d}dddgddd	d
gddddgg}|jt|f|}t|fddi|}|j }tj|| d S )Nr   )rS   zA,B,C
foo,1,2,3
bar,4,5,6rT   rU   rV   r   123r   456rv   r$   )r   r<   r   r   r-   r.   r/   )r=   r3   r   r0   Z	data_listr2   r4   r   r   r   test_read_data_listU  s    
 r   c             C   s~   d}| }t dd}|jt|f|}|jt|fddi|}|jd}tj||d d  |jd}tj||dd   d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
r   )rS   ru   Tr(   rY   )r   r<   r   r-   r.   r/   )r=   r0   r3   r   r2   rx   Zfirst_chunk
last_chunkr   r   r   test_iteratorc  s    	


r   c             C   sh   | }d}|j t|dd}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 | d S )Nz$A,B,C
foo,1,2,3
bar,4,5,6
baz,7,8,9
T)ru   r#   r$   r(   rX   rY   rZ   r[   rz   r{   r   r   r   rT   rU   rV   )r^   r'   r   )r<   r   r   r
   r.   r/   )r=   r3   r0   rx   r4   r2   r   r   r   test_iterator2z  s    r   c             C   s   d}| }t dd}ttjt|}t|fddi|}|jt|f|}t|}tj|d |d d  tj|d |dd  tj|d |dd   d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
r   )rS   rv   r$   r#   rX   )	r   r   csvrx   r   r   r<   r.   r/   )r=   r0   r3   r   linesrx   r2   r   r   r   r   test_reader_list  s    
r   c             C   sr   d}| }t dd}ttjt|}t|fddgd|}|jt|f|}t|}tj|d |dd  d S )Nziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
r   )rS   r$   r#   )rv   rw   r(   )	r   r   r   rx   r   r   r<   r.   r/   )r=   r0   r3   r   r   rx   r2   r   r   r   r   test_reader_list_skiprows  s    
r   c             C   sx   | }d}|j t|dd}t|}t|dks2t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t|| d S )Nz$A,B,C
foo,1,2,3
bar,4,5,6
baz,7,8,9
r#   )rv   r(   r$   rX   rY   rZ   r[   rz   r{   r   r   r   rT   rU   rV   )r^   r'   )	r<   r   r   lenro   r
   r.   r/   r   )r=   r3   r0   rx   r4   r2   r   r   r   test_iterator_stop_on_chunksize  s    r   )ru   rv   )ru   )rv   c             C   sD   d}| }d}t jt|d  |jt|fddi| W d Q R X d S )Nz*'skipfooter' not supported for 'iteration'za
1
2)r6   
skipfooterr#   )r9   r:   r;   r<   r   )r=   r   r>   r3   r0   r   r   r   test_iterator_skipfooter_errors  s
    r   c             C   s>   d}d}| }t jt|d |jt|ddd W d Q R X d S )Nz''skipfooter' not supported with 'nrows'za
1
2
3
4
5
6)r6   r#   rY   )r   rt   )r9   r:   r;   r<   r   )r=   r>   r0   r3   r   r   r   test_nrows_skipfooter_errors  s
    r   z[foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
rV   rW   )rS   r   rX   r[   r{   r\   r|   rf   r}   r~   r   r   r   r   )r_   )r^   r'   z_foo,one,2,3,4,5
foo,two,7,8,9,10
foo,three,12,13,14,15
bar,one,12,13,14,15
bar,two,12,13,14,15
Zindex1index2onetwothree)r   c             C   s&   | }|j t|f|}tj|| d S )N)r<   r   r.   r/   )r=   r0   r   r2   r3   r4   r   r   r   test_pass_names_with_index  s    9r   c             C   sr   d}dj |jddd  }ddddg}| }|jt||d |d}|jt||d	}d gd
 |j_tj|| d S )Nzuindex1,index2,A,B,C,D
foo,one,2,3,4,5
foo,two,7,8,9,10
foo,three,12,13,14,15
bar,one,12,13,14,15
bar,two,12,13,14,15
r   r#   rT   rU   rV   rW   )rS   rm   r   )rS   r$   )rC   splitr<   r   r^   r   r.   r/   )r=   rS   r0   Zheadless_datar   r3   r4   r2   r   r   r   test_multi_index_no_level_names!  s    r   c          
   C   s~   | }d}|j t|}tddddgdddd	gd
dddgd
dddgd
dddggddddgtjdddddgd}tj|| d S )NzgA,B,C,D
foo,one,2,3,4,5
foo,two,7,8,9,10
foo,three,12,13,14,15
bar,one,12,13,14,15
bar,two,12,13,14,15
r$   r(   rX   rY   r[   rz   r{   r\   r|   rf   r}   r~   rT   rU   rV   rW   r   r   r   r   r   )r'   r^   )r   r   )r   r   )r   r   )r   r   )r   r   )r<   r   r
   r   from_tuplesr.   r/   )r=   r3   r0   r4   r2   r   r   r   (test_multi_index_no_level_names_implicit9  s"    




r   zdata,expected,headerza,br%   rk   za,b
c,drl   d
round_tripc             C   s:   | }|r|j ddn|}|jt||d}tj|| d S )NF)r^   )rm   )to_csvr<   r   r.   r/   )r=   r0   r2   rm   r   r3   r4   r   r   r   test_multi_index_blank_dfZ  s    r   c             C   sd   | }d}|j t|dd}tdddddgdddd	d
gdddddggdddddgd}tj|| d S )Nz+ id c0 c1 c2
0 1 0 a b
1 2 0 c d
2 2 2 e f
 )rh   r   r#   r%   rk   r$   rl   r   efz
Unnamed: 0idZc0c1c2)r'   )r<   r   r
   r.   r/   )r=   r3   r0   r4   r2   r   r   r   test_no_unnamed_indexo  s    &r   c             C   s<   | }d}|j t|d d}tdddddg}tj|| d S )Nzfoo
bar baz
qux foo
foo
bar)rm   r   zbar bazzqux foor   )r<   r   r
   r.   r/   )r=   r3   r0   r4   r2   r   r   r   test_read_csv_parse_simple_list~  s
    r   c             C   sL   | }t dd}d}|j|f|}tjj|d}|j|f|}tj|| d S )N	)rh   zXhttps://raw.github.com/pandas-dev/pandas/master/pandas/tests/io/parser/data/salaries.csvzsalaries.csv)r   r<   rA   rB   rC   r.   r/   )r=   rM   r3   r   url
url_result
local_pathlocal_resultr   r   r   test_url  s    
r   c             C   s   | }t dd}tjj|d}|j|f|}d| }y|j|f|}tj|| W n, tk
r|   tj	ddjt
j   Y nX d S )Nr   )rh   zsalaries.csvzfile://localhost/zFailing on: r   )r   rA   rB   rC   r<   r.   r/   r   r9   r   platformuname)r=   rM   r3   r   r   r   r   r   r   r   r   test_local_file  s    
r   c                s2   |  t j }t j|j fdd}t j|| d S )Nc                s    j | ddS )Nr   )rS   )r<   )p)r3   r   r   <lambda>  s    z$test_path_path_lib.<locals>.<lambda>)r.   makeDataFrameZround_trip_pathlibr   r/   )r=   dfr4   r   )r3   r   test_path_path_lib  s    r   c                s2   |  t j }t j|j fdd}t j|| d S )Nc                s    j | ddS )Nr   )rS   )r<   )r   )r3   r   r   r     s    z&test_path_local_path.<locals>.<lambda>)r.   r   Zround_trip_localpathr   r/   )r=   r   r4   r   )r3   r   test_path_local_path  s
    r   c          	   C   sP   | }t jd d}d}tjt|d}|j| W d Q R X ||jjksLtd S )Nr\   z.csvz\[Errno 2\])r6   )	r.   randsr9   r:   FileNotFoundErrorr<   valuefilenamero   )r=   r3   rB   r>   r   r   r   r   test_nonexistent_path  s    r   c             C   s   | }d}t j ~}tj|d y"t| W d Q R X tjd W n tk
rT   Y nX tjt|d}|j	| W d Q R X ||j
jkstW d Q R X d S )Nz\[Errno 13\]r   zRunning as sudo.)r6   )r.   ensure_cleanrA   chmodrF   r9   r   PermissionErrorr:   r<   r   r   ro   )r=   r3   r>   rB   r   r   r   r   test_no_permission  s    


r   c             C   s\   | }d}|j t|}tddddgdddtjgdddtjggddd	d
gd}tj|| d S )NzA,B,C,D
1,2,3,4
1,3,3,
1,4,5r#   r$   r(   rX   rY   rT   rU   rV   rW   )r'   )r<   r   r
   r   r   r.   r/   )r=   r3   r0   r4   r2   r   r   r    test_missing_trailing_delimiters  s    $r   c          "   C   s   d}| }|j t|ttdd dgdd}tdddd	d
dddddddddd ddddd!d"dddtjtjtjtjtjtjdddg!g}tj|| d S )#NaT  "09-Apr-2012", "01:10:18.300", 2456026.548822908, 12849, 1.00361,  1.12551, 330.65659, 0355626618.16711,  73.48821, 314.11625,  1917.09447,   179.71425,  80.000, 240.000, -350,  70.06056, 344.98370, 1,   1, -0.689265, -0.692787,  0.212036,    14.7674,   41.605,   -9999.0,   -9999.0,   -9999.0,   -9999.0,   -9999.0,  -9999.0, 000, 012, 128!   z-9999.0T)r   rm   Z	na_valuesskipinitialspacez09-Apr-2012z01:10:18.300g=?FBAi12  gW[?g"?gdt@g*zn2Ag!'>_R@g(ܡs@ga`@g`"vf@g      T@g      n@i^  g7Q@g46<u@r#   g(yu?gO+?gT#?g-@g=
ףpD@r   r|      ig(yugO+)	r<   r   r   r   r
   r   r   r.   r/   )r=   r0   r3   r4   r2   r   r   r   test_skip_initial_space  sV    

r   c             C   sL   d}| }|j t|dd}tdddgddd	gd
ddgd}tj|| d S )NzA,B,C
1,2,3,
4,5,6,
7,8,9,F)rS   r#   rX   r[   r$   rY   rz   r(   rZ   r{   )rT   rU   rV   )r<   r   r
   r.   r/   )r=   r0   r3   r4   r2   r   r   r   test_trailing_delimiters+  s
    "r   c             C   sL   d}| }|j t|dddd}|d d dks2ttj|jtdd	g d S )
Nu  SEARCH_TERM,ACTUAL_URL
"bra tv bord","http://www.ikea.com/se/sv/catalog/categories/departments/living_room/10475/?se%7cps%7cnonbranded%7cvardagsrum%7cgoogle%7ctv_bord"
"tv pÃ¥ hjul","http://www.ikea.com/se/sv/catalog/categories/departments/living_room/10475/?se%7cps%7cnonbranded%7cvardagsrum%7cgoogle%7ctv_bord"
"SLAGBORD, \"Bergslagen\", IKEA:s 1700-tals series","http://www.ikea.com/se/sv/catalog/categories/departments/living_room/10475/?se%7cps%7cnonbranded%7cvardagsrum%7cgoogle%7ctv_bord"\"zutf-8)
escapechar	quotecharencodingZSEARCH_TERMr$   z/SLAGBORD, "Bergslagen", IKEA:s 1700-tals seriesZ
ACTUAL_URL)r<   r   ro   r.   Zassert_index_equalr'   r   )r=   r0   r3   r4   r   r   r   test_escapechar8  s    r   c             C   s>   | }d}|j t|}tddgdtjgd}tj|| d S )Nz
A,B
0,0
0,r   )rT   rU   )r<   r   r
   r   r   r.   r/   )r=   r3   r0   r4   r2   r   r   r   test_int64_min_issuesJ  s
    r   c             C   sF   d}| }|j t|}tdddddddddddg
i}tj|| d S )NzNumbers
17007000002000191
17007000002000191
17007000002000191
17007000002000191
17007000002000192
17007000002000192
17007000002000192
17007000002000192
17007000002000192
17007000002000194ZNumbersl   ?u/l   @u/l   Bu/)r<   r   r
   r.   r/   )r=   r0   r3   r4   r2   r   r   r   &test_parse_integers_above_fp_precisionT  s     
r   zResourceWarning #35660)reasonstrictc          
   C   s   | }dd t dD }ddj|ddg |  }tjd  |jt|}W d Q R X t|jd tj	kslt
|jjtks|t
d S )	Nc             S   s   g | ]}t |qS r   )r`   ).0ir   r   r   
<listcomp>x  s    z>test_chunks_have_consistent_numerical_type.<locals>.<listcomp>i za
r   z1.0z2.0r   )r   rC   r.   assert_produces_warningr<   r   typer%   r   float64ro   r   float)r=   r3   integersr0   r4   r   r   r   *test_chunks_have_consistent_numerical_typeu  s    r  c          
   C   s   d }| }dd t dD }ddj|ddg |  }|jdkrH|jrHt}tj| |jt|}W d Q R X |j	j
tks|td S )	Nc             S   s   g | ]}t |qS r   )r`   )r   r   r   r   r   r     s    z<test_warn_if_chunks_have_mismatched_type.<locals>.<listcomp>i za
r   r%   rk   rl   )r   rC   enginer   r   r.   r   r<   r   r%   r   objectro   )r=   Zwarning_typer3   r  r0   r   r   r   r   (test_warn_if_chunks_have_mismatched_type  s    r  rh   r   z\s+c             C   s@   d}| }|j t|d |d}tddgddgg}tj|| d S )Nz65248E10 11
55555E55 22
)rm   rh   g  jCr]   g!E(E VL   )r<   r   r
   r.   r/   )r=   rh   r0   r3   r4   r2   r   r   r   test_integer_overflow_bug  s
    r	  c             C   sT   d}| }|j dkrdnd}tjt|d" |jt|ddddd	gd
 W d Q R X d S )Nz1,2,3
4,,6
7,8,9
10,11,12
rl   z2Too many columns specified: expected 4 and found 3zHNumber of passed names did not match number of header fields in the file)r6   r   r%   rk   r   )rm   r   )r  r9   r:   r;   r<   r   )r=   r0   r3   r>   r   r   r   test_catch_too_many_names  s    r
  c             C   sL   | }d}|j t|dd}tdddgddd	gd
ddgd}tj|| d S )Nz a b c
 1 2 3
 4 5 6
 7 8 9z\s+)rh   r#   rX   r[   r$   rY   rz   r(   rZ   r{   )r%   rk   rl   )r<   r   r
   r.   r/   )r=   r3   r0   r4   r2   r   r   r   test_ignore_leading_whitespace  s
    "r  c             C   s6   | }d}|j t|d d}tddg}tj|| d S )Nz
 hello
world
)rm   z helloZworld)r<   r   r
   r.   r/   )r=   r3   r0   r4   r2   r   r   r   )test_chunk_begins_with_newline_whitespace  s
    r  c             C   s@   d}| }|j t|dd}tdgtg ddd}tj|| d S )Nzx,yr   )rS   yx)r_   )r'   r^   )r<   r   r
   r   r.   r/   )r=   r0   r3   r4   r2   r   r   r   test_empty_with_index  s
    r  c             C   sP   d}| }|j t|ddgd}tdgtjg gd ddgdd}tj|| d S )	Nzx,y,zr  r  )rS   zr$   )r   )r'   r^   )r<   r   r
   r   from_arraysr.   r/   )r=   r0   r3   r4   r2   r   r   r   test_empty_with_multi_index  s     r  c             C   sP   d}| }|j t|ddgd}tdgtjg gd ddgd	d
}tj|| d S )Nzx,y,zr#   r   )rS   r  r$   r  r  )r   )r'   r^   )r<   r   r
   r   r  r.   r/   )r=   r0   r3   r4   r2   r   r   r   $test_empty_with_reversed_multi_index  s     r  c             C   sD   | }d}|j t|d d}tdd |jdD g}tj|| d S )Nz45e-1,4.5,45.,inf,-inf)rm   c             S   s   g | ]}t |qS r   )r  )r   sr   r   r   r     s    z%test_float_parser.<locals>.<listcomp>r)   )r<   r   r
   r   r.   r/   )r=   r3   r0   r4   r2   r   r   r   test_float_parser  s
    r  c             C   s^   t jdgdgdgdgd}|jdd}| }x,|jD ]"}|jt||d}tj|| q4W d S )	NZ2eZ3EZ42eZ632E)wr  r  r  F)r^   )Zfloat_precision)r
   	from_dictr   Zfloat_precision_choicesr<   r   r.   r/   )r=   r   r0   r3   Z	precisionZdf_roundtripr   r   r   test_scientific_no_exponent  s    r  convc             C   s   d}| }|d krH|j t|}tdddddddgd	gd
}tj|| n4d}tjt|d |j t|d	|id W d Q R X d S )NzID
00013007854817840016671868
00013007854817840016749251
00013007854817840016754630
00013007854817840016781876
00013007854817840017028824
00013007854817840017963235
00013007854817840018860166Z00013007854817840016671868Z00013007854817840016749251Z00013007854817840016754630Z00013007854817840016781876Z00013007854817840017028824Z00013007854817840017963235Z00013007854817840018860166ZID)r'   z^(Python int too large to convert to C long)|(long too big to convert)|(int too big to convert))r6   )
converters)r<   r   r
   r.   r/   r9   r:   OverflowError)r=   r  r0   r3   r4   r2   r>   r   r   r   test_int64_overflow  s"    	
r  valc             C   s4   | }|j tt|d d}t|g}tj|| d S )N)rm   )r<   r   r`   r
   r.   r/   )r=   r  r3   r4   r2   r   r   r   test_int64_uint64_range'  s    
r  c             C   s8   | }|j tt|d d}tt|g}tj|| d S )N)rm   )r<   r   r`   r
   r.   r/   )r=   r  r3   r4   r2   r   r   r   test_outside_int64_uint64_range4  s    r  exp_data?   c             C   s8   | }dj |}t|}|jt|d d}tj|| d S )Nr   )rm   )rC   r
   r<   r   r.   r/   )r=   r   r3   r0   r2   r4   r   r   r   test_numeric_range_too_wideA  s
    
r"  ru   c             C   sX   | }t ddgd}d}td}|r:tt|j||d}n|j||d}tj|| d S )Nr   r   )r'   r\   zfoo,bar
)rv   )rt   )r
   r   nextiterr<   r.   r/   )r=   ru   r3   r2   rt   r0   r4   r   r   r   test_empty_with_nrows_chunksizeM  s    r%  zdata,kwargs,expected,msgza,b,c
4,5,6
 rZ   za,b,c
4,5,6
#commentrq   )rr   za,b,c
4,5,6
za,b,c
4,5,6#commentza,b,c
4,5,6
skipme)rw   )rr   skip_blank_lines)r&  r   za,b,c
4,5,6
\r   )r   z9(EOF following escape character)|(unexpected end of data)za,b,c
4,5,6
"\z>(EOF inside string starting at row 2)|(unexpected end of data)za,b,c
4,5,6
"zwhitespace-linezeat-line-commentzeat-crnl-nopzeat-commentz	skip-linezin-fieldzeat-crnlzescaped-charzescape-in-quoted-fieldzin-quoted-field)idsc          
   C   s\   | }|d kr:t jt|d |jt|f| W d Q R X n|jt|f|}tj|| d S )N)r6   )r9   r:   r	   r<   r   r.   r/   )r=   r0   r   r2   r>   r3   r4   r   r   r   test_eof_states^  s    ar(  r   c          
   C   sz   | }d}|d kr>d}t jt|d |jt| W d Q R X n8tdddgddd	gd
}|jt||d}tj|| d S )Nza,b,c
0,1,2
3,4,5,6,7
8,9,10z(Expected \d+ fields in line \d+, saw \d+)r6   r   r(   rz   r#   rX   r{   )r%   rk   )r   )r9   r:   r	   r<   r   r
   r.   r/   )r=   r   r3   r0   r>   r2   r4   r   r   r   test_uneven_lines_with_usecols  s    r)  r7   X)r   z,,ZDummyZDummy_2)r   r   )r'   r^   r   c          
   C   s`   | }|d kr>d}t jt|d |jt|f| W d Q R X n|jt|f|}tj|| d S )NzNo columns to parse from file)r6   )r9   r:   r   r<   r   r.   r/   )r=   r0   r   r2   r3   r>   r4   r   r   r   test_read_empty_with_usecols  s    r+  zkwargs,expected)rm   delim_whitespacerw   r&  g      ?g       @g      @gffffff@g      $@)r,  rw   r&  )rT   rU   rV   c             C   s2   d}| }|j t|jddf|}tj|| d S )NzsA B C  
random line with trailing spaces    
skip
1,2,3
1,2.,4.
random line with trailing tabs			
   
5.1,NaN,10.0
r)   z  )r<   r   replacer.   r/   )r=   r   r2   r0   r3   r4   r   r   r   test_trailing_spaces  s    r.  c             C   s:   d}| }t jtdd |jt|ddd W d Q R X d S )Nza b c
1 2 3zyou can only specify one)r6   z\sT)rh   r,  )r9   r:   r;   r<   r   )r=   r0   r3   r   r   r   'test_raise_on_sep_with_delim_whitespace  s    r/  r,  c             C   s<   | }d}t dtdi}|jt|d|d}tj|| d S )NzMyColumn
a
b
a
b
ZMyColumnZababT)r   r,  )r
   r   r<   r   r.   r/   )r=   r,  r3   r0   r2   r4   r   r   r   #test_single_char_leading_whitespace'  s    r0  zsep,skip_blank_lines,exp_datar)   g      @g     Q@g?c             C   sR   | }d}|dkr|j dd}|jt|||d}t|dddgd	}tj|| d S )
Nz&A,B,C
1,2.,4.


5.,NaN,10.0

-70,.4,1
z\s+r)   z  )rh   r&  rT   rU   rV   )r'   )r-  r<   r   r
   r.   r/   )r=   rh   r&  r   r3   r0   r4   r2   r   r   r   test_empty_lines9  s    	r1  c             C   sJ   | }d}t dddgdtjdggddd	gd
}|jt|}tj|| d S )Nz)

	  		
	
A,B,C
	    1,2.,4.
5.,NaN,10.0
r#   g       @g      @g      @g      $@rT   rU   rV   )r'   )r
   r   r   r<   r   r.   r/   )r=   r3   r0   r2   r4   r   r   r   test_whitespace_lines`  s
    $r2  zdata,expectedzG   A   B   C   D
a   1   2   3   4
b   1   2   3   4
c   1   2   3   4
)r'   r^   z    a b c
1 2 3 
4 5  6
 7 8 9c             C   s&   | }|j t|dd}tj|| d S )Nz\s+)rh   )r<   r   r.   r/   )r=   r0   r2   r3   r4   r   r   r   test_whitespace_regex_separatoro  s    r3  c             C   s\   | }d}|j t|dd |j }|jdkrJd|jks:td|jksXtn|jdksXtd S )NzNa,b,c,d
one,1,2,3
one,1,2,3
,1,2,3
one,1,2,3
,1,2,3
,1,2,3
one,1,2,3
two,1,2,3T)verboserl   zTokenization took:zParser memory cleanup took:zFilled 3 NA values in column a
)r<   r   
readouterrr  outro   )r=   capsysr3   r0   capturedr   r   r   test_verbose_read  s    	
r9  c             C   s^   | }d}|j t|ddd |j }|jdkrLd|jks<td|jksZtn|jdksZtd S )	Nz\a,b,c,d
one,1,2,3
two,1,2,3
three,1,2,3
four,1,2,3
five,1,2,3
,1,2,3
seven,1,2,3
eight,1,2,3Tr   )r4  rS   rl   zTokenization took:zParser memory cleanup took:zFilled 1 NA values in column a
)r<   r   r5  r  r6  ro   )r=   r7  r3   r0   r8  r   r   r   test_verbose_read2  s    	
r:  c             C   s   | }t dd d}tj }t|d}|jd W d Q R X t|dL}x|D ]}d|krLP qLW |j|f|}tddd	d
gdd}tj|| W d Q R X W d Q R X d S )NT)r   rm   r  zAAA
BBB
CCC
DDD
EEE
FFF
GGGrZCCCZDDDZEEEZFFFZGGGr   )r_   )r   r.   r   rF   writer<   r   rn   )r=   r3   r   rB   r   liner4   r2   r   r   r   test_iteration_open_handle  s    

r>  zdata,thousands,decimalA|B|C
1|2,334.01|5
10|13|10.
.A|B|C
1|2.334,01|5
10|13|10,
c             C   sF   | }t ddgddgddgd}|jt|d||d	}tj|| d S )
Nr#   r\   gQ<@rf   rY   g      $@)rT   rU   rV   rg   )rh   ri   r8   )r
   r<   r   r.   r/   )r=   r0   ri   r8   r3   r2   r4   r   r   r   test_1000_sep_with_decimal  s
    rB  c          	   C   sn   | }d}|j t|ddd}tddddd	d
gddddddgddddddggddddddgd}tj|| d S )NzId;Number1;Number2;Text1;Text2;Number3
1;1521,1541;187101,9543;ABC;poi;4,738797819
2;121,12;14897,76;DEF;uyt;0,377320872
3;878,158;108013,434;GHI;rez;2,735694704;r)   )rh   r8   r#   gAc̝ė@g	hAABCZpoig2[j@r$   gHzG^@g{G@ZDEFZuytgUq&?r(   g%Cq@g^@ZGHIZrezg)@ZIdZNumber1ZNumber2ZText1ZText2ZNumber3)r'   )r<   r   r
   r.   r/   )r=   r3   r0   r4   r2   r   r   r   test_euro_decimal_format  s    rE  	na_filterc             C   s`   | }d}t dtdtdgd idddd	d
dddddg
d}|jt|d|d}tj|| d S )NzE,A
a,inf
b,-inf
c,+Inf
d,-Inf
e,INF
f,-INF
g,+INf
h,-INf
i,inF
j,-inFrT   infz-infrY   r%   rk   rl   r   r   r   ghr   j)r^   r   )rS   rF  )r
   r  r<   r   r.   r/   )r=   rF  r3   r0   r2   r4   r   r   r   test_inf_parsing  s    rK  c             C   sT   | }d}t dtdtdtdgidddgd	}|jt|d
|d}tj|| d S )Nz&,A
a,Infinity
b,-Infinity
c,+Infinity
rT   Zinfinityz	-infinityz	+infinityr%   rk   rl   )r^   r   )rS   rF  )r
   r  r<   r   r.   r/   )r=   rF  r3   r0   r2   r4   r   r   r   test_infinity_parsing  s    rL  c          
   C   s<   | }d| }d}t jt|d |jt| W d Q R X d S )Nr   zNo columns to parse from file)r6   )r9   r:   r   r<   r   )r=   rt   r3   r0   r>   r   r   r   test_raise_on_no_columns%  s
    rM  c             C   sR   t jj|d}| }tdddgdddgdd	d
gd}|j|dd}tj|| d S )Nztest_mmap.csvr#   r$   r(   r   r   r   IZIIZIII)r%   rk   rl   T)Z
memory_map)rA   rB   rC   r
   r<   r.   r/   )r=   rM   Z	mmap_filer3   r2   r4   r   r   r   test_memory_map/  s     rO  c             C   s   d}ddg}| }|j dkrNttjdgg|d}|jt||d}tj|| n0d}tj	t
|d	 |jt||d W d Q R X d S )
Nz ,foor%   rk   rl   r   )r'   )r   zNULL byte detected)r6   )r  r
   r   r   r<   r   r.   r/   r9   r:   r	   )r=   r0   r   r3   r2   r6  r>   r   r   r   test_null_byte_char;  s    
rP  c             C   sl   | }d}t jdddL}|j| |j  |jd |j|dd d}tddgg}t j|| W d Q R X d S )Nz0 0zw+T)modeZreturn_fileliker   z\s+)rh   rm   )r.   r   r<  flushseekr<   r
   r/   )r=   r3   r0   Znew_filer4   r2   r   r   r   test_temporary_fileK  s    

rT  c             C   s<   | }d}t ddggddgd}|jt|}tj|| d S )Nza,b
1,2z1r$   r%   rk   )r'   )r
   r<   r   r.   r/   )r=   r3   r0   r2   r4   r   r   r   test_internal_eof_byte[  s
    rU  c             C   s   | }d}t ddggddgd}dtjd d	}tj|<}t|d
}|j| W d Q R X |j|}tj|| W d Q R X d S )Ns   c1,c2
"test     test", test
ztest     testz testr   r   )r'   __r\   z__.csvwb)r
   r.   r   r   rF   r<  r<   r/   )r=   r3   r0   r2   rB   r   r4   r   r   r   test_internal_eof_byte_to_filee  s    
rX  c             C   sF   t jj|d}tdddggdddgd}| }|j|}tj|| d S )	Nzsub_char.csvr#   r$   r(   r%   zbrl   )r'   )rA   rB   rC   r
   r<   r.   r/   )r=   rM   r   r2   r3   r4   r   r   r   test_sub_charactert  s
    
rY  c             C   s*   | }d}t |}|j| |j s&td S )Nza,b
1,2)r   r<   closedro   )r=   r3   r0   fhr   r   r   test_file_handle_string_io~  s
    
r\  c          
   C   sB   | }x8dD ]0}t ||}|j| |j s0tW d Q R X q
W d S )Nr;  r@   )r;  r@   )rF   r<   rZ  ro   )r=   rb   r3   rQ  r   r   r   r   test_file_handles_with_open  s
    

r]  c          	   C   s@   G dd d}| }d}t jt|d |j|  W d Q R X d S )Nc               @   s   e Zd ZdS )z5test_invalid_file_buffer_class.<locals>.InvalidBufferN)r   r   r   r   r   r   r   InvalidBuffer  s   r^  z'Invalid file path or buffer object type)r6   )r9   r:   r;   r<   )r=   r^  r3   r>   r   r   r   test_invalid_file_buffer_class  s
    r_  c          	   C   s@   | }d}G dd d}t jt|d |j|  W d Q R X d S )Nz'Invalid file path or buffer object typec               @   s   e Zd ZdS )z*test_invalid_file_buffer_mock.<locals>.FooN)r   r   r   r   r   r   r   Foo  s   r`  )r6   )r9   r:   r;   r<   )r=   r3   r>   r`  r   r   r   test_invalid_file_buffer_mock  s
    ra  c             C   sD   G dd dt }d}| }tddgi}|j||}tj|| d S )Nc               @   s   e Zd Zdd ZdddZdS )z>test_valid_file_buffer_seems_invalid.<locals>.NoSeekTellBufferc             S   s   t dd S )NzNo tell method)AttributeError)r   r   r   r   tell  s    zCtest_valid_file_buffer_seems_invalid.<locals>.NoSeekTellBuffer.tellr   c             S   s   t dd S )NzNo seek method)rb  )r   poswhencer   r   r   rS    s    zCtest_valid_file_buffer_seems_invalid.<locals>.NoSeekTellBuffer.seekN)r   )r   r   r   rc  rS  r   r   r   r   NoSeekTellBuffer  s   rf  za
1r%   r#   )r   r
   r<   r.   r/   )r=   rf  r0   r3   r2   r4   r   r   r   $test_valid_file_buffer_seems_invalid  s    rg  )error_bad_lineswarn_kwargs)warn_bad_linesc          
   C   sH   | }|j f | d}d}tjt|d |jt|f| W d Q R X d S )Nza
1
1,2,3
4
5,6,7z"Expected 1 fields in line 3, saw 3)r6   )updater9   r:   r	   r<   r   )r=   r   ri  r3   r0   r>   r   r   r   test_error_bad_lines  s    	rl  c             C   s`   | }d}t dddgi}|jt|ddd}tj|| |j }d|jksNtd	|jks\td S )
Nza
1
1,2,3
4
5,6,7r%   r#   rX   FT)rh  rj  zSkipping line 3zSkipping line 5)r
   r<   r   r.   r/   r5  errro   )r=   r7  r3   r0   r2   r4   r8  r   r   r   test_warn_bad_lines  s    rn  c             C   sR   | }d}t dddgi}|jt|ddd}tj|| |j }|jdksNtd S )Nza
1
1,2,3
4
5,6,7r%   r#   rX   F)rh  rj  r7   )r
   r<   r   r.   r/   r5  rm  ro   )r=   r7  r3   r0   r2   r4   r8  r   r   r   test_suppress_error_output  s    ro  r   u   sé-es-vé.csvu
   ru-sй.csvu   中文文件名.csvc             C   sT   | }t ddddgi}tj|*}|j|dd |j|}tj|| W d Q R X d S )Nr%   r#   r$   r(   F)r^   )r
   r.   r   r   r<   r/   )r=   r   r3   r   rB   r4   r   r   r    test_filename_with_special_chars  s    
rp  c             C   sr   | }t j \}t|d*}x"tdD ]}|jt|d  q$W W d Q R X |j|dd}x|D ]}q\W W d Q R X d S )Nr  i  r      )rv   )r.   r   rF   r   r<  r`   r<   )r=   r3   rB   r   r   r4   _r   r   r   %test_read_csv_memory_growth_chunksize   s    
 
rs  c             C   s>   | }d}t d}tjt|d |j|ddd W d Q R X d S )Nz;Argument prefix must be None if argument header is not Nonez0,1
2,3)r6   r   Z_X)rm   rc   )r   r9   r:   r;   r<   )r=   r3   r>   r  r   r   r   %test_read_csv_raises_on_header_prefix  s
    rt  c             C   sh   | }d}t jt|jdd |jddd W d Q R X t jt|jdd |jddd W d Q R X d S )	Nz/{}\(\) got an unexpected keyword argument 'foo'r<   )r6   zfoo.csvr#   )r   
read_tablezfoo.tsv)r9   r:   	TypeErrorformatr<   ru  )r=   r3   r>   r   r   r   +test_unexpected_keyword_parameter_exception  s    rx  c             C   s   | }t |j}t |j}|jj |jj ks0t|j|jks@txt|jj D ]f\}}|j| }|dkr|jdkstt|jdkst|j	|j	kst|j
|j
ksLtqLqL||ksLtqLW d S )Nrh   r)   r   )r   ru  r<   
parameterskeysro   return_annotationitemsdefault
annotationkind)r=   r3   Z
table_signZcsv_signkeyZ	csv_paramZtable_paramr   r   r   *test_read_table_same_signature_as_read_csv(  s    


r  c             C   s8   | }d}|j t|dd}|jt|}tj|| d S )Nza	b
1	2
3	4r   )rh   )r<   r   ru  r.   r/   )r=   r3   r0   r2   r4   r   r   r   'test_read_table_equivalency_to_read_csv>  s
    r  c             C   s:   | }d}|j t|dd}tdddgd}tj|| d S )Nu   ﻿"Head1"	"Head2"	"Head3"r   )r+   ZHead1ZHead2ZHead3)r'   )r<   r   r
   r.   r/   )r=   r3   r0   r4   r2   r   r   r   test_first_row_bomH  s
    r  c             C   s>   d}| }|j t|d dd }tddgdd}tj|| d S )Nz1,1;0;0;0;1;1;3844;3844;3844;1;1;1;1;1;1;0;0;1;1;0;0,,,4321583677327450765
5,1;0;0;0;1;1;843;843;843;1;1;1;1;1;1;0;0;1;1;0;0,64.0,;,4321113141090630389)rm   rX   l   "ude_ l   :a6_ )r_   )r<   r   r   r.   rn   )r=   r  r3   r4   r2   r   r   r   test_integer_precisionR  s
    r  c          
      s6   |  t j   fdd}tj|  W d Q R X d S )Nc            	      s(   t jtdd  j W d Q R X d S )NzNo columns to parse from file)r6   )r9   r:   r   r<   r   )r3   rB   r   r   testb  s    z'test_file_descriptor_leak.<locals>.test)r.   r   tdZcheck_file_leaks)r=   r  r   )r3   rB   r   test_file_descriptor_leak\  s    
r  c             C   sp   t tjtjgtjtjgddgtjtjgddggtdd}d}| }|jt|d|dd	}tj||d |  d S )
Nr#   r$   r(   rX   ab)r'   z
header

a,b


1,2

3,4F)rm   rt   r&  )r
   r   r   r   r<   r   r.   r/   )r=   rt   refr   r3   r   r   r   r   -test_blank_lines_between_header_and_data_rowsi  s    ,r  c             C   sL   dddg}t dddgg|d}td}| }|j|d |d	d
}tj|| d S )Nr   r   r   r   r   r   )r'   zfoo,bar,baz,bam,blahF)rm   r   rS   )r
   r   r<   r.   r/   )r=   Zcolumn_namesr  rQ   r3   r   r   r   r    test_no_header_two_extra_columnsv  s    
r  c             C   s<   d}| }t jtdd |jt|tdd W d Q R X d S )Nz    1,2,3
    4,5,6
z&Names should be an ordered collection.)r6   ZQAZ)r   )r9   r:   r;   r<   r   set)r=   r0   r3   r   r   r   &test_read_csv_names_not_accepting_sets  s    r  c             C   sP   | }d}t dd |jt|d d}W d Q R X tdtjdg}tj|| d S )Nz1.0
NaN
3.0Zuse_inf_as_naT)rm   g      ?g      @)r   r<   r   r
   r   r   r.   r/   )r=   r3   r0   r4   r2   r   r   r    test_read_csv_with_use_inf_as_na  s    r  c             C   sF   t d}| }|j|dd}tddgddgdd	gd
}tj|| d S )Nza  b  c
1 -2 -3
4  5   6T)r,  r#   rX   r$   rY   r(   rZ   )r%   rk   rl   )r   ru  r
   r.   r/   )r=   r   r3   r4   r2   r   r   r   ,test_read_table_delim_whitespace_default_sep  s
    r  c             C   s>   t d}| }d}tjt|d |j|ddd W d Q R X d S )Nza  b  c
1 -2 -3
4  5   6zXSpecified a delimiter with both sep and delim_whitespace=True; you can only specify one.)r6   Tr)   )r,  rh   )r   r9   r:   r;   ru  )r=   r   r3   r>   r   r   r   0test_read_table_delim_whitespace_non_default_sep  s
    r  c             C   sJ   d}t t dj }| }|jt||d}tdgdgd}tj|| d S )Nz1,2)r%   rk   )r   r#   r$   )intrz  r<   r   r
   r.   r/   )r=   r0   rz  r3   r4   r2   r   r   r   test_dict_keys_as_names  s    r  )r   r   )r   r   )r   r   )r   r   )r   r   )r%   rl   )rk   r   r  l            l            r  g     Qg     Qg     Q)r?  r)   r@  )rA  r@  r)   )__doc__rD   r   r   inspectr   ior   rA   r   urllib.errorr   Znumpyr   r9   Zpandas._libs.tslibr   Zpandas.errorsr   r   r	   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandasr
   r   r   r   r   r   r   Zpandas._testingZ_testingr.   Zpandas.io.parsersr   r   r   r5   r?   rR   re   rj   rp   rs   markZparametrizery   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   networkr   Zslowr   r   r   r   Zskip_if_windowsr   r   r   r   r   r   r   Zxfailr  r  r	  r
  r  r  r  r  r  r  r  r   Zuint64r  Ziinfomaxminr  r  r`   r"  r%  r(  r)  r  r+  r   r.  r/  r0  r1  r2  r3  r9  r:  r>  rB  rE  rK  rL  rM  rO  rP  rT  rU  rX  rY  r\  r]  r_  ra  rg  rl  rn  ro  rp  rs  rt  rx  r  r  r  r  r  r   r  r  r  r  r  r  r  r   r   r   r   <module>   sB  $
."" "*
 "*		




	




"!
	<
!



 +40:

  * $:	 42$ 
<      &


0(


 


	