
x\c           @   s  d  Z  d d l Z d d l m 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
 Z d d l Z d d l m Z d d l m Z m Z m Z m Z m Z d d l m Z m Z m Z d d	 l m Z m Z m Z m Z m Z m Z d d l  j! j" Z# d d
 l$ m% Z% d d l& m' Z' m( Z( m) Z) d   Z* d   Z+ d   Z, d   Z- e j. j/ e j0 d d d    Z1 d   Z2 d   Z3 d   Z4 e j. j5 d d d d g  d    Z7 d   Z8 d   Z9 d   Z: d   Z; d   Z< d   Z= d    Z> d!   Z? d"   Z@ e j. j5 d# d$ eA   e eB d% g eC d& g eB d g g d' d( d) g f d* eA d+ d, d- d. g d/ d0 d1 d2 g  e eB d% g eC d& g eB d g eC d g eB d g g d' d( d) g f d3 eA   e eB d% g eC d& g eB d g g d' d( d) g f d4 eA d+ d5 g d/ d6 g  e eB eC g eC eB g g d' d( d) g f g  d7    ZD d8   ZE e j. j5 d d d9 g  d:    ZF e j. j5 d d; d5 d g  d<    ZG e j. j5 d= d> d? g  d@    ZH e j. j5 dA dB d5 d> g  dC    ZI e j. j5 dA d& dD g  dE    ZJ dF   ZK dG   ZL e j. j5 dH eA   eA d= d>  g  dI    ZM dJ   ZN dK   ZO dL   ZP dM   ZQ dN   ZR dO   ZS dP   ZT e j. j5 dH eA dQ eB dA d%  eA dQ eB  eA dA d%  g  dR    ZU dS   ZV e j. j5 d# dT eA d= d> dU d? d( d) dV dW g  e d& d dX d g dY dD dZ d[ g d\ d] d^ d_ g d\ d] d^ d_ g d\ d] d^ d_ g d\ d] d^ d_ g g d? e d5 d6 d` da db dc g dd d? d' d( d) dV dW g f de eA d= d> d% g dU df dg d( d) dV dW g  e d& d dX d g dY dD dZ d[ g d\ d] d^ d_ g d\ d] d^ d_ g d\ d] d^ d_ g g d? e jW dddddg dU df dg g d' d( d) dV dW g f g  dk    ZX e j. j5 d= d> d% g d% d> g g  dl    ZY dm   ZZ e j. j5 dn do e d' dp dq g  d> g f dr e d' e jW ddg   d> d% g f g  e j. j5 du eB eC g  dv     Z[ dw   Z\ dx   Z] e# j^ dy    Z_ e j. j` dz    Za d{   Zb d|   Zc d}   Zd d~   Ze d   Zf e j. j5 d d d g  e j. j5 d d d d g  d     Zg e j. j5 d eC e jh eB d e j. j/ e ji d d g  d    Zj d   Zk d   Zl d   Zm d   Zn d   Zo d   Zp d   Zq e j. j5 d d d g  d    Zr d   Zs d   Zt d   Zu d   Zv d   Zw d   Zx d   Zy d   Zz e j. j5 d d e j{ e j| g  d    Z} e j. j5 d e j~ e j|  j e j~ e j{  j e j~ e j{  j g  d    Z e j. j5 d e j~ e j|  j d% e j~ e j{  j d% g  d    Z e j. j5 d e d  e d g e d e d  g g  d    Z e j. j5 dQ eB eC g  d    Z e j. j5 d d eA   e dX d d g g d' dp dq ds g d f d eA d d  e dX d d g g d' dp dq ds g d f d eA   e dX d d g g d' dp dq ds g d f d eA d d  e dX d d g g d' dp dq ds g d f d eA d d& g  e dX d d g g d' dp dq ds g d f d eA d d d eC  e dX d d g g d' dp dq ds g d f d eA d eC  e d d d g d d d g g d' dp dq ds g d f d eA d eC  e dX d d g d d d g g d' dp dq ds g d f d eA d d  d d f d eA d d  d d f d eA d d  d d f g d d d d d d d d d d d d g d    Z e j. j5 d d d> d% g dp dq g g  d    Z e j. j5 d# d eA   d f d eA d d g  d f d eA dU d d d g d d g  e d' d g d? d> g d e j  f d eA dU d d d g d d g  e d' d g  f g  d    Z e j. j5 d eA d d d eB d d> d% d& d d d g d eB  e d d d g d e j d g g  f eA d eB d d% d& d d d g d eB  e i d d g d( 6d e j g d) 6d d[ g dV 6 f g  d    Z d   Z e j. j5 d eB eC g  d    Z e j. j5 d d eB d d d g d e j d g d d d g g f d eB d d d g d e j d g d d d g g f d eC 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    Z d   Z e j. j5 d d e d% d& d dX g d% d& d dX g d% d& d dX g g d' d( d) dV dW g d? dp dq ds g f d e d% d& d g dX d d g dY dD dZ g g d' dp dq ds g f g  d    Z d   Z d   Z d   Z e j. j5 d ddg  d    Z d   Z e j. j5 d eB eC g  d    Z e j. j5 d d> d% d& d dX d g  d    Z d   Z d   Z e j. j5 d# d eA   e i d% g dp 6 f d eA d d  e i d% g dp 6 f d eA dU dp g  e i dq d g dp 6 f d eA dU dp g d eB  e i d% g dp 6 f d eA dU dp g d eC  e i e j d% g dp 6 f g  d    Z d   Z e j. j5 d dD d g  e j. j5 d d d d dg  d    Z d  Z d  Z d  Z d  Z d  Z d  Z d	  Z d
  Z e j. j5 dH eA   eA deB  g  e j. j5 deA   eA deB  eA deC  g  d    Z d  Z d  Z d  Z d  Z d  Z d S(  sy   
Tests that work on both the Python and C engines but do not have a
specific classification into the other test modules.
iN(   t   OrderedDict(   t   datetime(   t   TemporaryFile(   t	   Timestamp(   t   BytesIOt   StringIOt   lranget   ranget   u(   t   DtypeWarningt   EmptyDataErrort   ParserError(   t	   DataFramet   Indext
   MultiIndext   Seriest   compatt   concat(   t   URLError(   t   CParserWrappert   TextFileReadert
   TextParserc          C   s   d t  f d     Y}  d t f d     Y} d } d d g g } i d d g d	 6t d
  t d  g d 6} t | d d d	 g } |    } i d d d g d 6| d 6d d 6| _ | t |  | j  | _ | j   } t j	 | |  d  S(   Nt   MyTextFileReaderc           B   s   e  Z d    Z RS(   c         S   s   d |  _  t |  _ d  S(   Ni    (   t   _currowt   Falset   squeeze(   t   self(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   __init__$   s    	(   t   __name__t
   __module__R   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyR   #   s   t   MyCParserWrapperc           B   s   e  Z d    Z RS(   c         S   s>   |  j  d k r1 t |  j  |  _ |  j j   n  t j |   S(   Nt   integer(   t   usecols_dtypet   listt   usecolst   reverseR   t   _set_noconvert_columns(   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyR$   )   s    (   R   R   R$   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyR   (   s   s1   a,b,c,d,e
0,1,20140101,0900,4
0,1,20140102,1000,4i   i   i    t   as   2014-01-01 09:00:00s   2014-01-02 10:00:00t   c_dt   columnsi   R"   t   parse_datest   ,t	   delimiter(
   R   R   R   R   t   optionsR   t   _enginet   readt   tmt   assert_frame_equal(   R   R   t   dataR(   t   colst   expectedt   parsert   result(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt#   test_override_set_noconvert_columns   s     		c         C   s   t  j r t j d  n  d } |  } t d j |   } | j | d d d | } t d d g g d	 d
 d g } t j	 | |  d  S(   Ns6   Bytes-related test does not need to work on Python 2.xt   cp1255s   שלום:1234
562:123t   sept   :t   encodingi2  i{   R'   s   שלוםt   1234(
   R   t   PY2t   pytestt   skipR   t   encodet   read_csvR   R.   R/   (   t   all_parsersR9   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_bytes_io_inputM   s    	!c         C   sK   d } d } |  } t  j t d |  | j t |  d d Wd  QXd  S(   Ns   A|B|C
1|2,334|5
10|13|10.
s'   Only length-1 decimal markers supportedt   matcht   decimalt    (   R<   t   raisest
   ValueErrorR?   R   (   R@   R0   t   msgR3   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_empty_decimal_marker[   s
    c   	      C   s   t  j j | d  } t j d  } t j d  } |  } t j rH d n d } t | d  ` } t j | | j	 | j
 | j | j  0 } t j t d |  | j |  Wd  QXWd  QXWd  QXd  S(   Ns   sauron.SHIFT_JIS.csvs   utf-8s   'utf-8' codec can't decode bytes   'utf8' codec can't decode bytet   rbRB   (   t   ost   patht   joint   codecst   lookupR   t   PY3t   opent   StreamRecoderR>   t   decodet   streamreadert   streamwriterR<   RE   t   UnicodeDecodeErrorR?   (	   R@   t   csv_dir_pathRK   t   codect   utf8R3   RG   t   handlet   stream(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_bad_stream_exceptionh   s     t   reasons   PY3-only testc         C   sz  t  j   r t d  n	 t d  } |  } | t  j t j j |   } | j | d d d 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 d d d  d! g g d" d# d$ d% d& g d' 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) d0  g d1 d' } t j | |  d  S(2   Ns   file:///s   file://t	   index_coli    R(   gA	]^?gֈ`|@g% TO׿gnIg=HOC?gW\g~q"BĿg=4?gZH?g7ne?g>ݦ4g_YiR?g䞮X?gt]?gnk3Am?g-?gP,߿g~W[I?gN6gFgZ&|?g4e?gv?gg]W?gp̲'?gsĿgq?g!?gG6WR'   t   At   Bt   Ct   Dt   indexi  i   i   i   i   i   i   i
   i   t   name(   R   t   is_platform_windowsR   t	   text_typeRJ   RK   t   abspathR?   t   TrueR   R   R   R.   R/   (   R@   t   csv1t   prefixR3   t   fnameR4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_csv_local   s(    $!c         C   st   |  } d } t  i d d g d 6d d g d 6d d	 g d
 6 } | j t |  d d d d } t j | |  d  S(   Ns   A|B|C
1|2,334|5
10|13|10.
i   i
   R^   i	  i   R_   i   g      $@R`   R7   t   |t	   thousandsR)   (   R   R?   R   R.   R/   (   R@   R3   R0   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_1000_sep   s    !c         C   s   d } |  } t  d d d g d d } t d d d	 g d d d
 | } | j t |  d d d d  d t } t j | |  | j s t	  d  S(   Ns   a,1
b,2
c,3
R%   t   bt   cRc   i    i   i   i   Rb   R]   t   headerR   (
   R   R   R?   R   t   NoneRg   R.   t   assert_series_equalt   _is_viewt   AssertionError(   R@   R0   R3   Rb   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_squeeze   s    !c      
   C   sQ   |  } d } d } t  j t d | $ | j t |  d d d d Wd  QXd  S(   Ns-   ignore
A,B,C
1,2,3 # comment
1,2,3,4,5
2,3,4
s"   Expected 3 fields in line 4, saw 5RB   Rq   i   t   commentt   #(   R<   RE   R   R?   R   (   R@   R3   R0   RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_malformed   s
    t   nrowsi   i   c         C   su   d } |  } d } | j  t |  d d d d d t d d d	 d
 g } t j t d |  | j |  Wd  QXd  S(   Ns9   ignore
A,B,C
skip
1,2,3
3,5,10 # comment
1,2,3,4,5
2,3,4
s"   Expected 3 fields in line 6, saw 5Rq   i   Rw   Rx   t   iteratort	   chunksizet   skiprowsi   RB   (   R?   R   Rg   R<   RE   R   R-   (   R@   Rz   R0   R3   RG   t   reader(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_malformed_chunks   s    	c      
   C   s   d } |  } t  d d d d d g d d d	 d
 d g d d d d d g g d t j d d d d d d g } | j t |   } t j | |  d  S(   Ns,   A,B,C,,
1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
i   i   i   i   i   i   i   i   i	   i
   i   i   i   i   i   t   dtypeR'   R^   R_   R`   s
   Unnamed: 3s
   Unnamed: 4(   R   t   npt   int64R?   R   R.   R/   (   R@   R0   R3   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_unnamed_columns   s    c         C   sq   d } |  } t  i d d d g d 6d d d g d	 6d
 d d g d 6 } | j t |   } t j | |  d  S(   Ns   A,B,C
a,1,2
b,3,4
c,4,5
R%   Ro   Rp   R^   i   i   i   R_   i   i   R`   (   R   R?   R   R.   R/   (   R@   R0   R3   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_csv_mixed_type   s    c         C   sx   |  } | j  s t j d  n  d } | j t |  d t d d d d } t d d d	 d
 g  } t j | |  d  S(   Ns"   This is a low-memory specific tests   A,B,C
1,1,1,2
2,2,3,4
3,3,4,5
t
   low_memoryR]   i    Rz   R'   R^   R_   R`   (	   R   R<   R=   R?   R   Rg   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt+   test_read_csv_low_memory_no_rows_with_index   s    	c         C   s7  |  } | j  | d d d 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 d d d d g g d  d! d" d# d$ g d% 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% } t j | |  d  S(0   NR]   i    R(   gA	]^?gֈ`|@g% TO׿gnIg=HOC?gW\g~q"BĿg=4?gZH?g7ne?g>ݦ4g_YiR?g䞮X?gt]?gnk3Am?g-?gP,߿g~W[I?gN6gFgZ&|?g4e?gv?gg]W?gp̲'?gsĿgq?g!?gG6WR'   R^   R_   R`   Ra   Rb   i  i   i   i   i   i   i   i
   i   Rc   (   R?   Rg   R   R   R   R.   R/   (   R@   Rh   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_csv_dataframe  s$    !c         C   s  |  } t  j j | d  } | j | d d d t } 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 g d d d  d! d" d# g d$ t t d% d& d'  t d% d& d(  t d% d& d)  t d% d& d*  t d% d& d+  g  } t j	 | |  d  S(,   Ns	   test2.csvR]   i    R(   gA	]^?gֈ`|@g% TO׿gnIt   foog=HOC?gW\g~q"BĿg=4?t   bargZH?g7ne?g>ݦ4g_YiR?t   bazg䞮X?gt]?gnk3Am?g-?t   quxgP,߿g~W[I?gN6gFgZ&|?t   foo2R'   R^   R_   R`   Ra   t   ERb   i  i   i   i   i   i   i   (
   RJ   RK   RL   R?   Rg   R   R   R   R.   R/   (   R@   RV   R3   t   csv2R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_csv_no_index_name%  s(    								c         C   sq   |  } t  t d  j d   } | j | d d d d d d  } t t d  d g g  } t j | |  d  S(	   Ns   \u0141aski, Jan;1s   utf-8R7   t   ;R9   Rq   s   \u0141aski, Jani   (   R   R   R>   R?   Rr   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_csv_unicode=  s
    !c         C   sE   d } |  } d } t  j t d |  | j t |   Wd  QXd  S(   Ns;   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
s"   Expected 6 fields in line 3, saw 7RB   (   R<   RE   R   R?   R   (   R@   R0   R3   RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_csv_wrong_num_columnsF  s
    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 d g d t d d d d d d g d d } t j | |  d  S(   Nsg   index,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]   i    i   i   i   i   i   i   i	   i
   i   i   i   i   R'   R^   R_   R`   Ra   Rb   R   R   R   R   Rc   (   R?   R   R   R   R.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt"   test_read_duplicate_index_explicitT  s    !$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 d g d t d d d d d d g  } t j | |  d  S(   Nsa   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
i   i   i   i   i   i   i	   i
   i   i   i   i   R'   R^   R_   R`   Ra   Rb   R   R   R   R   (   R?   R   R   R   R.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt"   test_read_duplicate_index_impliciti  s    !$s   data,kwargs,expecteds   A,B
True,1
False,2
True,3i   i   R'   R^   R_   s   A,B
YES,1
no,2
yes,3
No,3
Yes,3t   true_valuest   yest   Yest   YESt   false_valuest   not   NOt   Nos   A,B
TRUE,1
FALSE,2
TRUE,3s   A,B
foo,bar
bar,fooR   R   c         C   s2   |  } | j  t |  |  } t j | |  d  S(   N(   R?   R   R.   R/   (   R@   R0   t   kwargsR2   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_parse_bool~  s    c         C   sh   d } |  } | j  t |   } t d d g d d g d d g g d d	 d
 g } t j | |  d  S(   Ns   A,B
1.0,1
2.0,2
3.0,3
g      ?i   g       @i   g      @i   R'   R^   R_   (   R?   R   R   R.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_int_conversion  s
    3g      @c         C   s   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 d g } |  } | j t |  d | } t j | |  d  S(   Nsi   index,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   i   i   i   i   R   i   i   i	   i
   R   i   i   i   i   R'   Rb   R^   R_   R`   Ra   Rz   (   R   R?   R   R.   R/   (   R@   Rz   R0   R2   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_nrows  s    
g333333?c         C   sK   d } d } |  } t  j t d |  | j t |  d | Wd  QXd  S(   Nsi   index,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
s   'nrows' must be an integer >=0RB   Rz   (   R<   RE   RF   R?   R   (   R@   Rz   R0   RG   R3   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_nrows_bad  s
    	R]   i    Rb   c         C   s$  |  } d } | j  t |  d 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 d g } | j d  } t |  } t j | d | d   t j | d | d d ! t j | d | d  d  S(   Nsi   index,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]   i    R|   i   R   i   i   i   R   i   i   i	   i
   R   i   i   i   i   R   R   t   bar2R'   Rb   R^   R_   R`   Ra   i   (   R?   R   R   t	   set_indexR!   R.   R/   (   R@   R]   R3   R0   R~   R2   t   chunks(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_chunksize_with_index  s    !R|   g?c         C   sK   d } |  } d } t  j t d |  | j t |  d | Wd  QXd  S(   Nsi   index,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
s"   'chunksize' must be an integer >=1RB   R|   (   R<   RE   RF   R?   R   (   R@   R|   R0   R3   RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_chunksize_bad  s
    	i   c         C   sq   d } |  } t  d d d d  } | j t |  d | | } | j t |  |  } t j t |  |  d  S(   Nsi   index,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]   i    Rz   i   R|   (   t   dictR?   R   R.   R/   R   (   R@   R|   R0   R3   R   R~   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_chunksize_and_nrows  s    
c         C   s   d } |  } t  d d d d  } | j t |  d d | } | j t |  |  } t j | j d d	  | j d	   t j | j d d
  | j d	 d ! t j t	 d d  | j d d  Wd  QXd  S(   Nsi   index,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]   i    Rz   i   R|   i   t   sizei   i   RB   RD   i   (
   R   R?   R   R.   R/   t	   get_chunkt   ilocR<   RE   t   StopIteration(   R@   R0   R3   R   R~   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt+   test_read_chunksize_and_nrows_changing_size  s    #&c         C   sz   |  } d } | j  t |  d d } | j   } t d d d g d d d g g d	 d
 d d g } t j | |  d  S(   Ns   A,B,C
1,2,3
4,5,6
7,8,9
1,2,3R|   i   i   i   i   i   i   R'   R^   R_   R`   (   R?   R   R   R   R.   R/   (   R@   R3   R0   R~   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_get_chunk_passed_chunksize  s    3R   c         C   s\   d } |  } | j  t |  d d | } | j  t |  |  } t j t |  |  d  S(   Nsi   index,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|   i   (   R?   R   R.   R/   R   (   R@   R   R0   R3   R~   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_chunksize_compat*  s
    
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 |  d t d  d	 d
 } t |  } t j	 | |  d  S(   Ns   
t   0i   R)   i
   i    i	   t   namesR|   i   (
   RL   R   R   t   nanR?   R   R   R   R.   R/   (   R@   R3   R0   R2   R~   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt    test_read_chunksize_jagged_names<  s    -2'c         C   s   |  } t  d d  } d } d d d g d d d	 d
 g d d d d g g } | j t |  |  } t | d d | } | j   } t j | |  d  S(   NR]   i    s   A,B,C
foo,1,2,3
bar,4,5,6R^   R_   R`   R   t   1t   2t   3R   t   4t   5t   6R|   i   (   R   R?   R   R   R-   R.   R/   (   R@   R3   R   R0   t	   data_listR2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_data_listH  s    c         C   s   d } |  } t  d d  } | j t |  |  } | j t |  d t | } | j d  } t j | | d   | j d  } t j | | d  d  S(   Nsi   index,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]   i    R{   i   i   (   R   R?   R   Rg   R-   R.   R/   (   R@   R0   R3   R   R2   R~   t   first_chunkt
   last_chunk(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_iteratorW  s    	c         C   s   |  } d } | j  t |  d t } t |  } t d d d g d d d g d	 d
 d g g d d d d g d d d d g } t j | d |  d  S(   Ns$   A,B,C
foo,1,2,3
bar,4,5,6
baz,7,8,9
R{   i   i   i   i   i   i   i   i   i	   Rb   R   R   R   R'   R^   R_   R`   i    (   R?   R   Rg   R!   R   R.   R/   (   R@   R3   R0   R~   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_iterator2n  s    -c         C   s   d } |  } t  d d  } t t j t |    } t | d d | } | j t |  |  } t |  } t j | d | d   t j | d | d d ! t j | d | d  d  S(   Nsi   index,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]   i    R|   i   i   i   (	   R   R!   t   csvR~   R   R   R?   R.   R/   (   R@   R0   R3   R   t   linesR~   R2   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_reader_list  s    c         C   s   d } |  } t  d d  } t t j t |    } t | d d d d g | } | j t |  |  } t |  } t j | d | d d ! d  S(	   Nsi   index,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]   i    R|   i   R}   i   i   (	   R   R!   R   R~   R   R   R?   R.   R/   (   R@   R0   R3   R   R   R~   R2   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_reader_list_skiprows  s    c         C   s   |  } d } | j  t |  d d } t |  } t |  d k sK t  t d d d g d d d g d	 d
 d g g d d d d g d d d d g } t j t |  |  d  S(   Ns$   A,B,C
foo,1,2,3
bar,4,5,6
baz,7,8,9
R|   i   i   i   i   i   i   i   i   i	   Rb   R   R   R   R'   R^   R_   R`   (	   R?   R   R!   t   lenRu   R   R.   R/   R   (   R@   R3   R0   R~   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_iterator_stop_on_chunksize  s    -R{   c      	   C   sN   d } |  } d } t  j t d | ! | j t |  d d | Wd  QXd  S(   Ns*   'skipfooter' not supported for 'iteration's   a
1
2RB   t
   skipfooteri   (   R<   RE   RF   R?   R   (   R@   R   RG   R3   R0   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_iterator_skipfooter_errors  s
    c      
   C   sQ   d } d } |  } t  j t d | $ | j t |  d d d d Wd  QXd  S(   Ns'   'skipfooter' not supported with 'nrows's   a
1
2
3
4
5
6RB   R   i   Rz   i   (   R<   RE   RF   R?   R   (   R@   RG   R0   R3   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_nrows_skipfooter_errors  s
    s[   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`   Ra   i   i   i	   i
   i   i   i   i   R   R   R   R   Rc   s_   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
t   index1t   index2t   onet   twot   threec         C   s2   |  } | j  t |  |  } t j | |  d  S(   N(   R?   R   R.   R/   (   R@   R0   R   R2   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_pass_names_with_index  s    c         C   s   d } d j  | j d  d  } d d d d g } |  } | j t |  d | d	 d  d
 | } | j t |  d | } d  g d | j _ t j | |  d  S(   Nsu   index1,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
s   
i   R^   R_   R`   Ra   R]   Rq   R   i   (	   RL   t   splitR?   R   Rr   Rb   R   R.   R/   (   R@   R]   R0   t   headless_dataR   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_multi_index_no_level_names  s    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 d g d t j d d d d d g  } t j | |  d  S(   Nsg   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
i   i   i   i   i   i   i	   i
   i   i   i   i   R'   R^   R_   R`   Ra   Rb   R   R   R   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R?   R   R   R   t   from_tuplesR.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt(   test_multi_index_no_level_names_implicit  s    0$	s   data,expected,headers   a,bR%   Ro   s   a,b
c,dRp   t   dt
   round_tripc         C   sS   |  } | r | j  d t  n | } | j t |  d | } t j | |  d  S(   NRb   Rq   (   t   to_csvR   R?   R   R.   R/   (   R@   R0   R2   Rq   R   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_multi_index_blank_df#  s    c         C   s   |  } 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 d g } t j | |  d  S(   Ns+    id c0 c1 c2
0 1 0 a b
1 2 0 c d
2 2 2 e f
R7   t    i    i   R%   Ro   i   Rp   R   t   et   fR'   s
   Unnamed: 0t   idt   c0t   c1t   c2(   R?   R   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_no_unnamed_index2  s    'c         C   sV   |  } d } | j  t |  d d  } t d d d d d g  } t j | |  d  S(   Ns   foo
bar baz
qux foo
foo
barRq   R   s   bar bazs   qux fooR   (   R?   R   Rr   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_csv_parse_simple_list@  s
    c         C   sh   |  } t  d d  } d } | j | |  } t j j | d  } | j | |  } t j | |  d  S(   NR7   s   	sX   https://raw.github.com/pandas-dev/pandas/master/pandas/tests/io/parser/data/salaries.csvs   salaries.csv(   R   R?   RJ   RK   RL   R.   R/   (   R@   RV   R3   R   t   urlt
   url_resultt
   local_patht   local_result(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_urlM  s    c         C   s   |  } t  d d  } t j j | d  } | j | |  } d | } y& | j | |  } t j | |  Wn1 t k
 r t j	 d d j t
 j     n Xd  S(   NR7   s   	s   salaries.csvs   file://localhost/s   Failing on: R   (   R   RJ   RK   RL   R?   R.   R/   R   R<   R=   t   platformt   uname(   R@   RV   R3   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_local_file\  s    
c            sD   |    t  j   } t  j | j   f d    } t  j | |  d  S(   Nc            s     j  |  d d S(   NR]   i    (   R?   (   t   p(   R3   (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   <lambda>q  s    (   R.   t   makeDataFramet   round_trip_pathlibR   R/   (   R@   t   dfR4   (    (   R3   sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_path_path_libm  s
    c            sD   |    t  j   } t  j | j   f d    } t  j | |  d  S(   Nc            s     j  |  d d S(   NR]   i    (   R?   (   R   (   R3   (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyR   y  s    (   R.   R   t   round_trip_localpathR   R/   (   R@   R   R4   (    (   R3   sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_path_local_pathu  s
    c         C   s   |  } d t  j d  } | j d k r. d n d } t j t j d | S } | j |  | j j	 } t
 | t  r | j   n | } | | k s t  Wd  QXd  S(   Ns   %s.csvi
   Rp   s   does not exists   \[Errno 2\]RB   (   R.   t   randst   engineR<   RE   R   t   FileNotFoundErrorR?   t   valuet   filenamet
   isinstancet   bytesRR   Ru   (   R@   R3   RK   RG   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_nonexistent_path}  s    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
 d g } t j | |  d  S(   Ns   A,B,C,D
1,2,3,4
1,3,3,
1,4,5i   i   i   i   i   R'   R^   R_   R`   Ra   (   R?   R   R   R   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt    test_missing_trailing_delimiters  s    $-c      "   C   s   d } |  } | j  t |  d t d  d d  d d g d t } 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("   NsT  "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, 128R   i!   Rq   t	   na_valuess   -9999.0t   skipinitialspaces   09-Apr-2012s   01:10:18.300g=?FBAi12  gW[?g"?gdt@g*zn2Ag!'>_R@g(ܡs@ga`@g`"vf@g      T@g      n@ig7Q@g46<u@i   g(yugO+gT#?g-@g=
ףpD@i    i   i   (
   R?   R   R   Rr   Rg   R   R   R   R.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_skip_initial_space  s    $!R7   R)   s   	R9   s   utf-16s   utf-16les   utf-16bec      
   C   s)  |  } t  d  j d |  } d t j d  } t d | d d  } d } t j |   } | j |  } t | d	   }	 |	 j |  Wd  QXt	 | j |   }
 t
 j r d
 d l m } | |
 d | }
 n  | j | d | | } | j |
 d | | } |
 j   t j | |  Wd  QXd  S(   Ns)   skip this
skip this too
A,B,C
1,2,3
4,5,6R)   s
   __%s__.csvi
   R7   R}   i   s   utf-8t   wbi(   t   TextIOWrapperR9   (   R   t   replaceR.   R   R   t   ensure_cleanR>   RP   t   writeR   R   RO   t   ioR   R?   t   closeR/   (   R@   R7   R9   R3   R0   RK   R   RX   t
   bytes_dataR   t   bytes_bufferR   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_utf16_bom_skiprows  s$    	
t   buffert   markss   Not supported on PY3c         C   sy   t  j j | d  } |  } | r< t t | d  j    n | } | j | d d d d } t |  d k su t  d  S(   Ns   utf16_ex.txtRI   R9   s   utf-16R7   s   	i2   (	   RJ   RK   RL   R   RP   R-   R?   R   Ru   (   R@   RV   R  RK   R3   t   srcR4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_utf16_example  s
    'c         C   su   t  j j | d  } |  } | j | d d  d d } | j d  } | d d } t d  } | | k sq t  d  S(	   Ns   unicode_series.csvRq   R9   s   latin-1i    i   i`  s"    kldum klaka (Cold Fever) (1994)(   RJ   RK   RL   R?   Rr   R   R   Ru   (   R@   RV   RK   R3   R4   t   gotR2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_unicode_encoding  s    c         C   sw   d } |  } | j  t |  d t } t i d d d g d 6d d d	 g d
 6d d d g d 6 } t j | |  d  S(   Ns   A,B,C
1,2,3,
4,5,6,
7,8,9,R]   i   i   i   R^   i   i   i   R_   i   i   i	   R`   (   R?   R   R   R   R.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_trailing_delimiters  s
    <c         C   sp   d } |  } | j  t |  d d d d d d } | d d	 d
 k sM t  t j | j t d d g   d  S(   Ns  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 serie","http://www.ikea.com/se/sv/catalog/categories/departments/living_room/10475/?se%7cps%7cnonbranded%7cvardagsrum%7cgoogle%7ctv_bord"t
   escapechars   \t	   quotechart   "R9   s   utf-8t   SEARCH_TERMi   s.   SLAGBORD, "Bergslagen", IKEA:s 1700-tals seriet
   ACTUAL_URL(   R?   R   Ru   R.   t   assert_index_equalR'   R   (   R@   R0   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_escapechar  s    c         C   s^   |  } d } | j  t |   } t i d d g d 6d t j g d 6 } t j | |  d  S(   Ns
   A,B
0,0
0,i    R^   R_   (   R?   R   R   R   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_int64_min_issues
  s
    )c         C   sf   d } |  } | j  t |   } t i d d d d d d d d d d g
 d 6 } t j | |  d  S(   Ns   Numbers
17007000002000191
17007000002000191
17007000002000191
17007000002000191
17007000002000192
17007000002000192
17007000002000192
17007000002000192
17007000002000192
17007000002000194I?uk< I@uk< IBuk< t   Numbers(   R?   R   R   R.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt&   test_parse_integers_above_fp_precision  s    	c         C   s   |  } g  t  d  D] } t |  ^ q } d d j | d d g |  } t j d    | j t |   } Wd  QXt | j	 d  t
 j k s t  | j	 j t
 j k s t  d  S(   Ni s   a
s   
s   1.0s   2.0i    (   R   t   strRL   R.   t   assert_produces_warningRr   R?   R   t   typeR%   R   t   float64Ru   R   t   float(   R@   R3   t   it   integersR0   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt*   test_chunks_have_consistent_numerical_type/  s    %!"c         C   s   d  } |  } g  t d  D] } t |  ^ q } d d j | d d g |  } | j d k rs | j rs t } n  t j |   | j	 t
 |   } Wd  QX| j j t j k s t  d  S(   Ni s   a
s   
R%   Ro   Rp   (   Rr   R   R  RL   R   R   R	   R.   R  R?   R   R%   R   R   t   objectRu   (   R@   t   warning_typeR3   R  R  R0   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt(   test_warn_if_chunks_have_mismatched_type<  s    %!	R   s   \s+c         C   s_   d } |  } | j  t |  d d  d | } t d d g d d g g  } t j | |  d  S(   Ns   65248E10 11
55555E55 22
Rq   R7   g  jCi   g!E(E VLi   (   R?   R   Rr   R   R.   R/   (   R@   R7   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_integer_overflow_bugL  s
    !c         C   sr   d } |  } | j  d k r! d n d } t j t d | 0 | j t |  d d d d	 d
 d d g Wd  QXd  S(   Ns   1,2,3
4,,6
7,8,9
10,11,12
Rp   s2   Too many columns specified: expected 4 and found 3sH   Number of passed names did not match number of header fields in the fileRB   Rq   i    R   R%   Ro   R   (   R   R<   RE   RF   R?   R   (   R@   R0   R3   RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_catch_too_many_namesW  s    c         C   sw   |  } d } | j  t |  d d } t i d d d g d 6d d	 d
 g d 6d d d g d 6 } t j | |  d  S(   Ns    a b c
 1 2 3
 4 5 6
 7 8 9R7   s   \s+i   i   i   R%   i   i   i   Ro   i   i   i	   Rp   (   R?   R   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_ignore_leading_whitespaceh  s
    <c         C   sM   |  } d } | j  t |  d d  } t d d g  } t j | |  d  S(   Ns   
 hello
world
Rq   s    hellot   world(   R?   R   Rr   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt)   test_chunk_begins_with_newline_whitespacer  s
    c      	   C   sb   d } |  } | j  t |  d d } t g  d d g d t g  d d } t j | |  d  S(	   Ns   x,yR]   i    R'   t   yRb   Rc   t   x(   R?   R   R   R   R.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_empty_with_index|  s
    'c      
   C   sx   d } |  } | j  t |  d d d g } t g  d d g d t j g  g d d	 d d g } t j | |  d  S(
   Ns   x,y,zR]   R)  R(  R'   t   zRb   i   R   (   R?   R   R   R   t   from_arraysR.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_empty_with_multi_index  s    !c      
   C   sx   d } |  } | j  t |  d d d g } t g  d d g d t j g  g d d	 d
 d g } t j | |  d  S(   Ns   x,y,zR]   i   i    R'   R+  Rb   i   R   R(  R)  (   R?   R   R   R   R,  R.   R/   (   R@   R0   R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt$   test_empty_with_reversed_multi_index  s    !c         C   sl   |  } d } | j  t |  d d  } t g  | j d  D] } t |  ^ q: g  } t j | |  d  S(   Ns   45e-1,4.5,45.,inf,-infRq   R)   (   R?   R   Rr   R   R   R  R.   R/   (   R@   R3   R0   R4   t   sR2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_float_parser  s
    1c         C   s   t  j t d d g f d d g f d d g f d d g f g   } | j d	 t  } |  } x< | j D]1 } | j t |  d
 | } t j	 | |  qg Wd  S(   Nt   wt   2eR)  t   3ER(  t   42eR+  t   632ERb   t   float_precision(
   R   t	   from_dictR    R   R   t   float_precision_choicesR?   R   R.   R/   (   R@   R   R0   R3   t	   precisiont   df_roundtrip(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_scientific_no_exponent  s    !	t   convc      
   C   s   d } |  } | d  k rj | j t |   } t d d d d d d d g d	 d
 g } t j | |  nB d } t j t d | % | j t |  d i | d
 6Wd  QXd  S(   Ns   ID
00013007854817840016671868
00013007854817840016749251
00013007854817840016754630
00013007854817840016781876
00013007854817840017028824
00013007854817840017963235
00013007854817840018860166t   00013007854817840016671868t   00013007854817840016749251t   00013007854817840016754630t   00013007854817840016781876t   00013007854817840017028824t   00013007854817840017963235t   00013007854817840018860166R'   t   IDs^   (Python int too large to convert to C long)|(long too big to convert)|(int too big to convert)RB   t
   converters(	   Rr   R?   R   R   R.   R/   R<   RE   t   OverflowError(   R@   R<  R0   R3   R4   R2   RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_int64_overflow  s    	t   valc         C   sJ   |  } | j  t t |   d d  } t | g  } t j | |  d  S(   NRq   (   R?   R   R  Rr   R   R.   R/   (   R@   RH  R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_int64_uint64_range  s    !c         C   sP   |  } | j  t t |   d d  } t t |  g  } t j | |  d  S(   NRq   (   R?   R   R  Rr   R   R.   R/   (   R@   RH  R3   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_outside_int64_uint64_range  s    !t   exp_datai?   c         C   sP   |  } d j  |  } t |  } | j t |  d d  } t j | |  d  S(   Ns   
Rq   (   RL   R   R?   R   Rr   R.   R/   (   R@   RK  R3   R0   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_numeric_range_too_wide  s
    c         C   s   |  } t  g  d d d g } d } t d  } | rZ t t | j | d |   } n | j | d | } t j | |  d  S(   NR'   R   R   i
   s   foo,bar
R|   Rz   (   R   R   t   nextt   iterR?   R.   R/   (   R@   R{   R3   R2   Rz   R0   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_empty_with_nrows_chunksize  s    $s   data,kwargs,expected,msgs   a,b,c
4,5,6
 i   s   a,b,c
4,5,6
#commentRw   Rx   s   a,b,c
4,5,6
s   a,b,c
4,5,6#comments   a,b,c
4,5,6
skipmeR}   t   skip_blank_linesR   s   a,b,c
4,5,6
\R  s   \s9   (EOF following escape character)|(unexpected end of data)s   a,b,c
4,5,6
"\s>   (EOF inside string starting at row 2)|(unexpected end of data)s   a,b,c
4,5,6
"t   idss   whitespace-lines   eat-line-comments   eat-crnl-nops   eat-comments	   skip-lines   in-fields   eat-crnls   escaped-chars   escape-in-quoted-fields   in-quoted-fieldc         C   ss   |  } | d  k rG t j t d |  | j t |  |  Wd  QXn( | j t |  |  } t j | |  d  S(   NRB   (   Rr   R<   RE   R   R?   R   R.   R/   (   R@   R0   R   R2   RG   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_eof_states  s    3R"   c         C   s   |  } d } | d  k rP d } t j t d |  | j t |   Wd  QXnW t i d d d g d 6d d	 d
 g d 6 } | j t |  d | } t j | |  d  S(   Ns   a,b,c
0,1,2
3,4,5,6,7
8,9,10s(   Expected \d+ fields in line \d+, saw \d+RB   i    i   i   R%   i   i   i	   Ro   R"   (	   Rr   R<   RE   R   R?   R   R   R.   R/   (   R@   R"   R3   R0   RG   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_uneven_lines_with_usecolsQ  s    RD   t   Xs   ,,t   Dummyt   Dummy_2R   c         C   sy   |  } | d  k rM d } t j t d |  | j t |  |  Wd  QXn( | j t |  |  } t j | |  d  S(   Ns   No columns to parse from fileRB   (   Rr   R<   RE   R
   R?   R   R.   R/   (   R@   R0   R   R2   R3   RG   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_empty_with_usecolsj  s    s   kwargs,expectedRq   t   delim_whitespaceg      ?g       @g      @gffffff@g      $@c         C   sD   d } |  } | j  t | j d d   |  } t j | |  d  S(   Nss   A 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)   s     (   R?   R   R   R.   R/   (   R@   R   R2   R0   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_trailing_spaces  s    $c      
   C   sK   d } |  } t  j t d d $ | j t |  d d d t Wd  QXd  S(   Ns   a b c
1 2 3RB   s   you can only specify oneR7   s   \sRX  (   R<   RE   RF   R?   R   Rg   (   R@   R0   R3   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt'   test_raise_on_sep_with_delim_whitespace  s    c         C   sZ   |  } d } t  i t d  d 6 } | j t |  d t d | } t j | |  d  S(   Ns   MyColumn
a
b
a
b
t   ababt   MyColumnR   RX  (   R   R!   R?   R   Rg   R.   R/   (   R@   RX  R3   R0   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt#   test_single_char_leading_whitespace  s    	s   sep,skip_blank_lines,exp_datag      @g     Qg?c         C   s}   |  } d } | d k r- | j  d d  } n  | j t |  d | d | } t | d d d	 d
 g } t j | |  d  S(   Ns&   A,B,C
1,2.,4.


5.,NaN,10.0

-70,.4,1
s   \s+R)   s     R7   RP  R'   R^   R_   R`   (   R   R?   R   R   R.   R/   (   R@   R7   RP  RK  R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_empty_lines  s    		c         C   sk   |  } d } t  d d d g d t j d g g d d d	 d
 g } | j t |   } t j | |  d  S(   Ns)   

	  		
	
A,B,C
	    1,2.,4.
5.,NaN,10.0
i   g       @g      @g      @g      $@R'   R^   R_   R`   (   R   R   R   R?   R   R.   R/   (   R@   R3   R0   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_whitespace_lines  s    $s   data,expectedsG      A   B   C   D
a   1   2   3   4
b   1   2   3   4
c   1   2   3   4
s       a b c
1 2 3 
4 5  6
 7 8 9c         C   s5   |  } | j  t |  d d } t j | |  d  S(   NR7   s   \s+(   R?   R   R.   R/   (   R@   R0   R2   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_whitespace_regex_separator  s    c         C   s   |  } d } | j  t |  d t | j   } | j d k rm d | j k sU t  d | j k s t  n | j d k s t  d  S(   NsN   a,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   verboseRp   s   Tokenization took:s   Parser memory cleanup took:s   Filled 3 NA values in column a
(   R?   R   Rg   t
   readouterrR   t   outRu   (   R@   t   capsysR3   R0   t   captured(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_verbose_read  s    	c         C   s   |  } d } | j  t |  d t d d | j   } | j d k rs d | j k s[ t  d | j k s t  n | j d k s t  d  S(	   Ns\   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,3Ra  R]   i    Rp   s   Tokenization took:s   Parser memory cleanup took:s   Filled 1 NA values in column a
(   R?   R   Rg   Rb  R   Rc  Ru   (   R@   Rd  R3   R0   Re  (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_verbose_read2  s    	c   	      C   s=  |  } t  d t d d   } t j   } t | t j r? d n d   } | j d  Wd  QXt | t j rs d n d   } x | D] } d | k r Pq q W| j	 d	 k r t j r d
 } t
 j t d |  | j | |  Wd  QXn@ | j | |  } t d d d d g d d } t j | |  Wd  QXWd  QXd  S(   NR   Rq   R   R1  s   AAA
BBB
CCC
DDD
EEE
FFF
GGGRI   t   rt   CCCRp   s1   Mixing iteration and read methods would lose dataRB   t   DDDt   EEEt   FFFt   GGGRc   i    (   R   Rg   Rr   R.   R   RP   R   R;   R  R   R<   RE   RF   R?   R   Rs   (	   R@   R3   R   RK   R   t   lineRG   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_iteration_open_handle  s     !!s   data,thousands,decimals   A|B|C
1|2,334.01|5
10|13|10.
t   .s   A|B|C
1|2.334,01|5
10|13|10,
c         C   st   |  } t  i d d g d 6d d g d 6d d g d	 6 } | j t |  d
 d d | d | } t j | |  d  S(   Ni   i
   R^   gQ<@i   R_   i   g      $@R`   R7   Rl   Rm   RC   (   R   R?   R   R.   R/   (   R@   R0   Rm   RC   R3   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_1000_sep_with_decimal2  s    	c      	   C   s   |  } d } | j  t |  d 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 d g } t j | |  d  S(   Ns   Id;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,735694704R7   R   RC   R)   i   gAc̝ė@g	hAt   ABCt   poig2[j@i   gHzG^@g{G@t   DEFt   uytgUq&?i   g%Cq@g^@t   GHIt   rezg)@R'   t   Idt   Number1t   Number2t   Text1t   Text2t   Number3(   R?   R   R   R.   R/   (   R@   R3   R0   R4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_euro_decimal_formatJ  s    !t	   na_filterc         C   s   |  } d } t  i t d  t d  g d d 6d d d d	 d
 d d d d d d g
 } | j t |  d d d | } t j | |  d  S(   NsE   ,A
a,inf
b,-inf
c,+Inf
d,-Inf
e,INF
f,-INF
g,+INf
h,-INf
i,inF
j,-inFt   infs   -infi   R^   Rb   R%   Ro   Rp   R   R   R   t   gt   hR  t   jR]   i    R  (   R   R  R?   R   R.   R/   (   R@   R  R3   R0   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_inf_parsingZ  s    &!c         C   sI   |  } d | } d } t  j t d |  | j t |   Wd  QXd  S(   Ns   
s   No columns to parse from fileRB   (   R<   RE   R
   R?   R   (   R@   Rz   R3   R0   RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_raise_on_no_columnsp  s
    
c         C   s   t  j j | d  } |  } t i d d d g d 6d d d g d	 6d
 d d g d 6 } | j | d t } t j | |  d  S(   Ns   test_mmap.csvi   i   i   R%   R   R   R   Ro   t   It   IIt   IIIRp   t
   memory_map(   RJ   RK   RL   R   R?   Rg   R.   R/   (   R@   RV   t	   mmap_fileR3   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_memory_mapz  s    c         C   s   d } d d g } |  } | j  d k rs t t j d g g d | } | j t |  d | } t j | |  n; d } t j	 t
 d	 |  | j t |  d | Wd  QXd  S(
   Ns    ,fooR%   Ro   Rp   R   R'   R   s   NULL byte detectedRB   (   R   R   R   R   R?   R   R.   R/   R<   RE   R   (   R@   R0   R   R3   R2   Rc  RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_null_byte_char  s    s   a
1s   "a"
1R  R  s   b
1R   s   
1c            s\   |  } t  d    d     f d   } | j | |  d  | } t j | |  d  S(   Ns   \ufeffs   utf-8c            s     |  j    } t |  S(   N(   R>   R   (   t   _datat   bom_data(   t   bomRX   (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   _encode_data_with_bom  s    R9   (   R   R?   R.   R/   (   R@   R0   R   R2   R3   R  R4   (    (   R  RX   sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_utf8_bom  s    c         C   s   |  } d } t  d  } | j |  | j   | j d  | j | d d d d  } | j   t d d g g  } t j	 | |  d  S(   Ns   0 0s   w+i    R7   s   \s+Rq   (
   R   R  t   flusht   seekR?   Rr   R  R   R.   R/   (   R@   R3   R0   t   new_fileR4   R2   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_temporary_file  s    

t   bytei   t   fmts   utf-{0}s   utf_{0}s   UTF-{0}s   UTF_{0}c         C   ss   t  i d g d 6d g d 6 } |  } | j |  } d j |  } | j t |  d | } t j | |  d  S(   Ng333333@t   mb_numt   testt	   multibytes   mb_num,multibyte
4.8,testR9   (   R   t   formatR>   R?   R   R.   R/   (   R@   R  R  R2   R3   R9   R0   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_csv_utf_aliases  s     c         C   sV   |  } d } t  d d g g d d d g } | j t |   } t j | |  d  S(   Ns   a,b
1,2s   1i   R'   R%   Ro   (   R   R?   R   R.   R/   (   R@   R3   R0   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_internal_eof_byte  s
    !c      
   C   s   |  } d } t  d d g g d d d g } d t j d  } t j |  K } t | d	   } | j |  Wd  QX| j |  } t j | |  Wd  QXd  S(
   Ns   c1,c2
"test     test", test
s   test     tests    testR'   R   R   s
   __%s__.csvi
   R   (   R   R.   R   R   RP   R  R?   R/   (   R@   R3   R0   R2   RK   R   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_internal_eof_byte_to_file  s    c         C   se   t  j j | d  } t d d d g g d d d d g } |  } | j |  } t j | |  d  S(	   Ns   sub_char.csvi   i   i   R'   R%   s   bRp   (   RJ   RK   RL   R   R?   R.   R/   (   R@   RV   R   R2   R3   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_sub_character  s
    'c         C   s9   |  } d } t  |  } | j |  | j s5 t  d  S(   Ns   a,b
1,2(   R   R?   t   closedRu   (   R@   R3   R0   t   fh(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_file_handle_string_io  s
    c         C   s?   |  } t  | d  $ } | j |  | j s5 t  Wd  QXd  S(   NRh  (   RP   R?   R  Ru   (   R@   Rh   R3   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_file_handles_with_open  s    c         C   sR   d t  f d     Y} |  } d } t j t d |  | j |    Wd  QXd  S(   Nt   InvalidBufferc           B   s   e  Z RS(    (   R   R   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyR    s   s'   Invalid file path or buffer object typeRB   (   R   R<   RE   RF   R?   (   R@   R  R3   RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_invalid_file_buffer_class  s
    c         C   sO   |  } d } d d d     Y} t  j t d |  | j |    Wd  QXd  S(   Ns'   Invalid file path or buffer object typet   Fooc           B   s   e  Z RS(    (   R   R   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyR  $  s   RB   (    (   R<   RE   RF   R?   (   R@   R3   RG   R  (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_invalid_file_buffer_mock  s
    c         C   sa   d t  f d     Y} d } |  } t i d g d 6 } | j | |   } t j | |  d  S(   Nt   NoSeekTellBufferc           B   s   e  Z d    Z d d  Z RS(   c         S   s   t  d   d  S(   Ns   No tell method(   t   AttributeError(   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   tell3  s    i    c         S   s   t  d   d  S(   Ns   No seek method(   R  (   R   t   post   whence(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyR  6  s    (   R   R   R  R  (    (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyR  2  s   	s   a
1i   R%   (   R   R   R?   R.   R/   (   R@   R  R0   R3   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt$   test_valid_file_buffer_seems_invalid+  s    t   error_bad_linest   warn_kwargst   warn_bad_linesc         C   sU   |  } | j  |   d } d } t j t d |  | j t |  |  Wd  QXd  S(   Ns   a
1
1,2,3
4
5,6,7s"   Expected 1 fields in line 3, saw 3RB   (   t   updateR<   RE   R   R?   R   (   R@   R   R  R3   R0   RG   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_error_bad_linesA  s    
c         C   s   |  } d } t  i d d g d 6 } | j t |  d t d t } t j | |  | j   } d | j k sw t	  d | j k s t	  d  S(	   Ns   a
1
1,2,3
4
5,6,7i   i   R%   R  R  s   Skipping line 3s   Skipping line 5(
   R   R?   R   R   Rg   R.   R/   Rb  t   errRu   (   R@   Rd  R3   R0   R2   R4   Re  (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_warn_bad_linesT  s    	c         C   s{   |  } d } t  i d d g d 6 } | j t |  d t d t } t j | |  | j   } | j d k sw t  d  S(   Ns   a
1
1,2,3
4
5,6,7i   i   R%   R  R  RD   (	   R   R?   R   R   R.   R/   Rb  R  Ru   (   R@   Rd  R3   R0   R2   R4   Re  (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_suppress_error_outputd  s    	c         C   sp   |  } t  i d d d g d 6 } t j d  9 } | j | d t | j |  } t j | |  Wd  QXd  S(   Ni   i   i   R%   s   sé-es-vé.csvRb   (   R   R.   R   R   R   R?   R/   (   R@   R3   R   RK   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt    test_filename_with_special_charss  s    c         C   s   |  } t  j   s } t | d  5 } x+ t d  D] } | j t |  d  q4 WWd  QX| j | d d } x | D] } qw WWd  QXd  S(   NR1  i  s   
R|   i   (   R.   R   RP   R   R  R  R?   (   R@   R3   RK   R   R  R4   t   _(    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt%   test_read_csv_memory_growth_chunksize  s    !c         C   sl   |  } d } | j  t |  d d } t j t d t * | j t |   } t j | |  Wd  QXd  S(   Ns   a	b
1	2
3	4R7   s   	t   check_stacklevel(   R?   R   R.   R  t   FutureWarningR   t
   read_tableR/   (   R@   R3   R0   R2   R4   (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   test_read_table_deprecated  s    
(   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R%   Rp   (   Ro   R   l            l            (   s   A|B|C
1|2,334.01|5
10|13|10.
R)   Rp  (   s   A|B|C
1|2.334,01|5
10|13|10,
Rp  R)   (   t   __doc__RM   t   collectionsR    R   R   RJ   R   t   tempfileR   t   numpyR   R<   t   pandas._libs.tslibR   t   pandas.compatR   R   R   R   R   t   pandas.errorsR	   R
   R   t   pandasR   R   R   R   R   R   t   pandas.util.testingt   utilt   testingR.   t   pandas.io.commonR   t   pandas.io.parsersR   R   R   R5   RA   RH   R[   t   markt   skipifR;   Rk   Rn   Rv   Ry   t   parametrizeRr   R   R   R   R   R   R   R   R   R   R   R   Rg   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   t   networkR   t   slowR   R   R   R   R   R   R  t   paramRO   R
  R  R  R  R  R  R  R"  R#  R$  R%  R'  R*  R-  R.  R0  R;  R   t   uint64RG  t   iinfot   maxt   minRI  RJ  R  RL  RO  RR  RS  R  RW  R   RY  RZ  R]  R^  R_  R`  Rf  Rg  Ro  Rq  R~  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  (    (    (    sA   lib/python2.7/site-packages/pandas/tests/io/parser/test_common.pyt   <module>   s  (.	/			$			'											3'	3	<	$'$'$		0									$03-0$	'0	!'
							* $
				
			$		
	
	
			
	-$$(!'$	**	****!!		3!$!$*!%
		$33'$9	9$Q					$0
		%+..		
		
					!				