
    iG                         d dl Z d dlmZ d dlZd dlZd dlZd dlmZ d dl	Z
d dl	mZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmc mZ d dlmZ  G d d      Zy)    N)StringIO)ParserError)
	DataFrameIndex
MultiIndexNaTSeries	Timestamp
date_rangeperiod_rangeread_csvto_datetime)
get_handlec                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
dddgg      d        Zej                  j                   d        Z	 	 	 	 	 dqdZej                  j                   ej                  j                  dg d      d               Zej                  j                   ej                  j                  dg d      ej                  j                  dg d      ej                  j                  dg d      ej                  j)                  d      d                                    Zej                  j                   ej                  j                  dg d      ej                  j                  dg d      d                      Zej                  j                   ej                  j                  dg d      d               Zej                  j                   d        Zej                  j                   d        Zej                  j                   ej                  j                  dg d      ej                  j                  dg d       ej                  j                  d!d"d#id$d#igd%d#id&d#igd#d#d'd#d#d(gg      d)                             Zd* Zd+ Zd, Zd- Zd. Zd/ Z d0 Z!d1 Z"d2 Z#d3 Z$d4 Z%d5 Z&ej                  j                  d6g d7      d8        Z'ej                  j                   d9        Z(d: Z)d; Z*d< Z+d= Z,d> Z-d? Z.d@ Z/ej                  j                  dAddBg      dC        Z0dD Z1dE Z2dF Z3dG Z4dH Z5dI Z6ej                  j                  dJ e7g dKg dLgdMdNgg dOP      df e7g dQgg dOR      dSf e7dTg dUgz  g dOR      dVf e7dTg dWgz  g dOR      dXfg      dY        Z8dZ Z9ej                  j                  d[ e:jv                  d\      jy                  d]       e:jv                  d^      g      d_        Z=ej                  j                  d`dadbgdcddgg      de        Z>df Z?dg Z@dh ZAdi ZBdj ZCdk ZDdl ZEdm ZFdn ZGdo ZHdp ZIy)rTestDataFrameToCSVc                 F    ddi} |j                   di | t        |fi |S )N	index_colr    )updater   )selfpathkwargsparamss       c/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_to_csv.pyr   zTestDataFrameToCSV.read_csv   s-    q!'''    c                 &   t        |      }t        j                  |j                  d d|j                  j                  d      f<   |j                  |       |j                  |ddg       |j                  |d       |j                  |d       y )N   ABcolumnsFheaderindex)strnpnanilocr!   get_locto_csv)r   	temp_filefloat_framer   s       r   test_to_csv_from_csv1z(TestDataFrameToCSV.test_to_csv_from_csv1$   s    9~AC![0088==>4 4#s44.4u-r   c                 ~   t        |      }|j                  j                  d       |_        |j                  |       | j	                  |d      }|j                         }|j                  j                  d      |_        t        j                  ||       |j                  |d       | j	                  |d d      }t        |j                        t        |j                        dz   k(  sJ |j                  |d	       | j	                  |d d      }t        j                  |j                  |j                         y )
NT)parse_datesusr%   index_labelr   r0      Fr$   )r&   r%   
_with_freqr+   r   copyas_unittmassert_frame_equallenr!   assert_almost_equalvalues)r   r,   datetime_framer   reconsexpecteds         r   test_to_csv_from_csv1_datetimez1TestDataFrameToCSV.test_to_csv_from_csv1_datetime-   s   9~  .33>>tDd#t6!&&(!//5
h/d8ttF6>>"c.*@*@&AA&EEEE 	d%0ttF
~44fmmDr   c           
         t        |      }t        t        t        d      t	        j
                  dt        j                              t        t        d      t	        j
                  dt        j                              d      }|j                  |       | j                  |      }t        j                  ||       y )N   dtyper$      )s1s2)r&   r   r	   ranger'   arangeint64r+   r   r9   r:   )r   r,   r   dmr?   s        r   !test_to_csv_from_csv1_corner_casez4TestDataFrameToCSV.test_to_csv_from_csv1_corner_caseB   s    9~U1XRYYq-IJU1XRYYq-IJ
 			$t$
b&)r   c                 t   t        |      }t        t        j                  j	                  d      j                  d      g dg d      }|j                  |       | j                  |      }t        j                  ||       t        j                  g d      }t        t        j                  j	                  d      j                  d      |g d      }|j                  |       | j                  |g dd	      }t        j                  ||d
       t        g d      }|j                  ||       | j                  |      }|j                         }	||	_        t        j                  |	|       d}
t        j                   t"        |
      5  |j                  |ddg       d d d        y # 1 sw Y   y xY w)NrF   rC   rC   arQ   b)xyzr%   r!   )r   r5   rF   rW   )r   r5   rF   r   r5   rF   Fr4   check_names)AAXYZr"   z Writing 4 cols but got 2 aliasesmatchr[   r\   )r&   r   r'   randomdefault_rngstandard_normalr+   r   r9   r:   r   from_tuplesr   r7   r!   pytestraises
ValueError)r   r,   r-   r   dfresultmidxcol_aliasesrsxpmsgs              r   test_to_csv_from_csv2z(TestDataFrameToCSV.test_to_csv_from_csv2O   sf   9~II!!!$44V<!#

 			$t$
fb)%%&MNII!!!$44V<#
 			$tyeL
fbe< 1244]]4  

b"%0]]:S1 	9tT3K8	9 	9 	9s   F..F7c                 h   t        |      }t        t        j                  j	                  d      j                  d            }t        t        j                  j	                  d      j                  d            }|j                  |       |j                  |dd       t        j                  ||g      }t        |d      }|j                  D cg c]  }t        |       c}|_
        |j                  D cg c]  }t        |       c}|_
        t        j                  ||       y c c}w c c}w )NrF   )rC   r5   rQ   F)moder#   r   r   )r&   r   r'   ra   rb   rc   r+   pdconcatr   r!   intr9   r:   )r   r,   r   df1df2rm   rl   labels           r   test_to_csv_from_csv3z(TestDataFrameToCSV.test_to_csv_from_csv3s   s    9~		--a0@@HI		--a0@@HI

4

4c%
0YYSz"da(.0jj9Uc%j9
.0jj9Uc%j9

b"% :9s   D*9D/c           
         t        |      }t        j                  d      j                  d      }t	        dt        d      D cg c]  }||z  	 c}it        t        d      D cg c]  }||z  	 c}d            }|j                  |       t        |d	      }t        j                  |j                        |_
        t        j                  |d         |d<   t        j                  ||d
       y c c}w c c}w )Nr5   )secondsr1   dt_datarC   dt_indexnamer$   rr   T)check_index_type)r&   rs   	Timedeltar8   r   rI   r   r+   r   to_timedeltar%   r9   r:   )r   r,   r   dtirh   ri   s          r   test_to_csv_from_csv4z(TestDataFrameToCSV.test_to_csv_from_csv4   s    9~\\!$,,T2q2AR23q2AR2D
 			$$*5v||4OOF9,=>y
b&4@ 32s   C5
%C:c                    t        |      }j                  |       t        |ddg      fd} |d      d<    |d      d<   d   j                  j	                  d      d<   t        j                         y )Nr   r   r4   c                     t        |          j                  j                  d      j                  j                  |    j                  j                        j                  j	                  d      S )NUTCns)r   r   
tz_converttzr8   )cri   timezone_frames    r   <lambda>z:TestDataFrameToCSV.test_to_csv_from_csv5.<locals>.<lambda>   sN    q	"R

5!R

>!,//223R	 r   r   Cr   )r&   r+   r   r   r8   r9   r:   )r   r,   r   r   	converterri   s     `  @r   test_to_csv_from_csv5z(TestDataFrameToCSV.test_to_csv_from_csv5   sy    9~d#$!#?
	  nsnsSknn,,T2s
fn5r   c                    d}t        |dz        }t        t        j                  |df      t	        t        |      D cg c]  }d| 	 c}d      t	        t        d      D cg c]  }d| 	 c}d            }|j                  }|d   |d	   g}t        |      }|j                  |||
       t        |d	      }	t        j                  ||   |	d       y c c}w c c}w )Nr         @rC   i-rQ   r~   rV   rF   r   r!   	chunksizerr   FrY   )ru   r   r'   onesr   rI   r!   r&   r+   r   r9   r:   )
r   r,   r   Nr   rh   cscolsr   rs_cs
             r   test_to_csv_cols_reorderingz.TestDataFrameToCSV.test_to_csv_cols_reordering   s    		C GGQFO584a2aS43?U1X6Rs86SA

 ZZ1r!u~9~
		$		:*
bh%@ 56s   C$C!r   NrR   rQ   c           
         d}t        |dz        }t        t        j                  |df      t	        t        |      D cg c]  }d| 	 c}d      g d      }t        |      }|j                  |||	       t        |d
      }||j                  j                  r||_	        n>|j                  j                  |      \  }	}
|j                  j                  |	      |_	        |D ]K  }||   }||   }t        |t              rt        j                   ||       4t        j"                  ||d       M y |j                  |_	        t        j"                  ||d       y c c}w )Nr   r   rC   r   rQ   r~   rP   rV   r   r   rr   FrY   )ru   r   r'   r   r   rI   r&   r+   r   r!   	is_uniqueget_indexer_non_uniquetake
isinstancer	   r9   assert_series_equalr:   )r   r,   r   r   r   r   rh   r   r   indexermissingr   obj_dfobj_rss                 r   test_to_csv_new_dupe_colsz,TestDataFrameToCSV.test_to_csv_new_dupe_cols   s7   		C  GGQFO584a2aS43?#

 9~
		$		:* zz####%::#D#DT#J !zzw7 MAaff-**66:))&&eLM ::DL!!"d>7 5s   E c                 t   dd}d} ||dz         } ||dz   d      }t        |      }t        ||d      }|j                  ||       | j                  |      j	                  t
              }|d d  }	|	d   j                  d      |	d<   |	d	   j                  d      |	d	<   t        j                  ||	d
       y )Nc                 h   |t        | dz        }t        t        dd|             }|rt        j                  j                  d      j                  dt        |      |      D ]  }t        ||<    t        j                  j                  d      j                  d      }t        || <   t        ||<   |S )Ng?20005min)freqperiodsrF   r   d   )	ru   listr   r'   ra   rb   integersr;   r   )nnnatsr   s       r   make_dtnat_arrz<TestDataFrameToCSV.test_to_csv_dtnat.<locals>.make_dtnat_arr   s    |1s7|ZVQ?@A..q1::1c!fdK AAaDII))!,55c:1"!Hr     r   r   rQ   rR   r   rQ   M8[us]rR   FrY   N)	r&   r   r+   r   applyr   astyper9   r:   )
r   r,   r   r   rG   rH   r   rh   ri   r@   s
             r   test_to_csv_dtnatz$TestDataFrameToCSV.test_to_csv_dtnat   s    
	 	IM*IM1-9~Rb)*
		$)	,t$**;7a5 ,,X6 ,,X6
fhEBr   c	           	      
   ddi}	|rX|t        t        |            |	d<   t        t        |            |	d<   |j                  |d|        | j                  |fi |	}
n,d|	d<   |j                  |d|        | j                  |fi |	}
d }|r|j                  |
_        |r|st        |d	z
        D cg c]  }|
j
                  d d |f   j                  ! }}t        j                  t        |
j                        g|      }||
_	        |
j
                  d d |d	z
  d f   }
d
dddddd}|r|dk(  rxd}t        j                  |
j                  D cg c]
  } ||       c}|      |
_	        t        j                  |j                  D cg c]
  } ||       c}|      |_	        nz|dk(  r}d}t        j                  |
j                  D cg c]  }t        |       c}|      |
_	        t        j                  |j                  D cg c]  }t        |       c}|      |_	        n|dk(  rd}t        |
j                        }t        j                  |D cg c]  }t        |       c}|      |
_	        t        j                  t        t        t        |j                  j                                     |      |_	        n]|j!                  |      }t        j                  |
j                  |      |
_	        t        j                  |j                  |      |_	        |r|dk(  rzd}t        j                  |
j                  D cg c]
  } ||       c}|      |
_        t        j                  |j                  D cg c]
  } ||       c}|      |_        ||
fS |dk(  rd}t        j                  |
j                  D cg c]  }t        |       c}|      |
_        t        j                  |j                  D cg c]  }t        |       c}|      |_        ||
fS |dk(  rd}t        |
j                        }t        j                  |D cg c]  }t        |       c}|      |
_        |j                  j                         }t        j                  |D cg c]  }t        |       c}|      |_        ||
fS |j!                  |      }t        j                  |
j                  |      |
_        t        j                  |j                  |      |_        ||
fS c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )Nr0   Fr   r#   utf8)encodingr   r   c                 H    t        | t              s| j                  d      S | S )Nr   )r   r&   decoderS   s    r   _to_uniz;TestDataFrameToCSV._return_result_expected.<locals>._to_uni  s     a%xx''Hr   r5   r   fO)r   r   r   ur   pr   rD   r   r   )r   rI   r+   r   r!   r)   r=   r   from_arraysr%   r'   arrayr
   r   mapto_timestampget)r   rh   r   r,   r_dtypec_dtypernlvlcnlvldupe_colr   r?   r   r   	delta_lvlixtype_maprx   idx_listcol_lists                      r   _return_result_expectedz*TestDataFrameToCSV._return_result_expected   s     ' &*5<&8{##E%L1F8IIi&IIF"T]]977F F8IIi&IIF"T]]977F	
   ZZFN;@;KLaQT*11LIL''fll);(Hi(HIBFL[[EAIK0F3Ss#CP#~!xx17>WU^>g  8813:WU^:' D!xx39<<@%Yu%@  883588<%Yu%<G C&v||4!xx3;<%Yu%<G  88Y(=(=(?@A #,,w/!xxGD88BHHG<#~!#17@WU^@"  XX13<WU^<G
2 6z- D!#39>>B%Yu%B'"  XX35::>%Yu%>g
" 6z C&v~~6!#3;<%Yu%<G" ::224XX3;<%Yu%<G
 6z #,,w/!#&..!HXXbjj@
6zG M ? ;
 A = = A =
 C ? = =sH   5$T0T5T:T?UU	U	UUUU"+U'nrows)rF   
   c   r   e   f                           c           	      0   t        t        j                  |df      t        d|      t	        t        d      t                    }| j                  |d|dd	      \  }}|j                  j                  d
      |_        t        j                  ||d       y )N   
2020-01-01r   abcdrD   rV   r   r   r   r   FrY   )r   r'   r   r   r   r   objectr   r%   r   r9   r:   )r   r   r,   rh   ri   r@   s         r   test_to_csv_nrowsz$TestDataFrameToCSV.test_to_csv_nrows_  s~    
 GGUAJ\59$v,f5

  77D)TSVW!..x8
fhEBr   zr_idx_type, c_idx_type))r   r   )r   r   )r   r   )r   r   ncolsr5   rF   rC   r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                    d d d d d}t        t        j                  ||f       ||   |       ||   |            }| j                  |d|||      \  }}	|dk(  r!|	j                  j                  d	      |	_        n%|d
k(  r |	j                  j                  d	      |	_        |dk(  r!|	j                  j                  d	      |	_        n%|d
k(  r |	j                  j                  d	      |	_        t        j                  ||	d       y )Nc                 ^    t        t        j                  |       t        j                        S )NrD   )r   r'   rJ   rK   r   s    r   r   z:TestDataFrameToCSV.test_to_csv_idx_types.<locals>.<lambda>x  s    51RXX> r   c           
      t    t        t        dd| z         D cg c]  }| dt        |        c}      S c c}w )Na   _)r   rI   chr)r   r   s     r   r   z:TestDataFrameToCSV.test_to_csv_idx_types.<locals>.<lambda>y  s2    55R!V;L!MaQCqQ/!MN !Ms   5c                     t        d|       S )Nr   r   )r   r   s    r   r   z:TestDataFrameToCSV.test_to_csv_idx_types.<locals>.<lambda>z  s    J|Q? r   c                     t        d| d      S )Nr   D)r   r   )r   r   s    r   r   z:TestDataFrameToCSV.test_to_csv_idx_types.<locals>.<lambda>{  s    <acJ r   )r   r   r   r   rV   r   r   r   r   FrY   )	r   r'   r   r   r%   r   r!   r9   r:   )
r   r   
r_idx_type
c_idx_typer   r,   axesrh   ri   r@   s
             r   test_to_csv_idx_typesz(TestDataFrameToCSV.test_to_csv_idx_typesm  s	    ?N?J	
 GGUEN#"$z"5)$D$U+

  77
 %^^228<HN3%^^228<HN'//66x@H3'//66x@H
fhEBr   )r   b   r   r   r   r   r   r   r   r   r   r   r   r   c                 N   t        t        j                  ||f      t        t	        |      D cg c]  }d| 	 c}d      t        t	        |      D cg c]  }d| 	 c}d            }| j                  |d|      \  }}t        j                  ||d       y c c}w c c}w )Nr   rQ   r~   rV   r   FrY   )r   r'   r   r   rI   r   r9   r:   )r   r   r   r,   r   rh   ri   r@   s           r   test_to_csv_idx_ncolsz(TestDataFrameToCSV.test_to_csv_idx_ncols  s     GGUEN#5<8a2aS8sCU5\:Rs8:E

  77D)L
fhEB	 9:s   BB")r   r   r   r   r   r   c                    t        t        j                  |df      t        t	        |      D cg c]  }d| 	 c}d      t        t	        d      D cg c]  }d| 	 c}d            }t        |j                        }ddg|d d ddg|dd  t        |j                        }d	d	g|d d d	d	g|dd  ||_        ||_        | j                  |d
|d      \  }}t        j                  ||d       y c c}w c c}w )NrC   r   rQ   r~   rV   duperF   rduper   T)r   FrY   )r   r'   r   r   rI   r   r!   r%   r   r9   r:   )	r   r   r,   r   rh   r   r   ri   r@   s	            r   test_to_csv_dup_colsz'TestDataFrameToCSV.test_to_csv_dup_cols  s    GGUAJ5<8a2aS8sCU1X6Rs86SA
 BJJF#RaV$RS	"((^7#2AG$23
77i$ 8 
 	fhEB 96s   C3C8c                     t        t        j                  dt        j                              }| j	                  |d|      \  }}t        j                  ||d       y )Nr   rD   r$   r   F)check_column_type)r   r'   rJ   rK   r   r9   r:   )r   r,   rh   ri   r@   s        r   test_to_csv_emptyz$TestDataFrameToCSV.test_to_csv_empty  sF    RYYr:;77D)L
fh%Hr   c                 R   d}|dz  dz   }t        t        j                  |df      t        t	        d            t        j                  t        d      D cg c]  }t        |       c}            }| j                  |||d      \  }}t        j                  ||d       y c c}w )	Nr   rF   r5   abr!   r%   )r   FrY   )r   r'   r   r   r   r   r   rI   r   r9   r:   )r   r,   r   rowsr   rh   ri   r@   s           r   test_to_csv_chunksizez(TestDataFrameToCSV.test_to_csv_chunksize  s    	A~!GGT1I$t*%((uQx)H!%+)HI

  77	9A 8 
 	fhEB *Is   B$)rF   rC   r   zdf_params, func_paramsr_idx_nlevelsrF   r   c_idx_nlevelsr   )r  r  )r   r   c                    |j                  d      r+t        j                  fdt        |d         D              }nd }|j                  d      r+t        j                  fdt        |d         D              }n%t	        t              D cg c]  }d| 	 c}      }t        t        j                  f      ||      }	 | j                  |	d|fi |\  }
}t        j                  |
|d	       y c c}w )
Nr  c              3   `   K   | ]   }t              D cg c]  }d | 	 c} " yc c}w wr   NrI   ).0r   r   r   s      r   	<genexpr>z8TestDataFrameToCSV.test_to_csv_params.<locals>.<genexpr>  s1      + $)<0a2aS0+0   .).r  c              3   `   K   | ]   }t              D cg c]  }d | 	 c} " yc c}w wr  r  )r  r   r   r   s      r   r  z8TestDataFrameToCSV.test_to_csv_params.<locals>.<genexpr>  s1      - $)<0a2aS0-0r  r   rV   r   FrY   )r   r   r   rI   r   r   r'   r   r   r9   r:   )r   r   	df_paramsfunc_paramsr   r,   r%   r!   r   rh   ri   r@   s    `  `       r   test_to_csv_paramsz%TestDataFrameToCSV.test_to_csv_params  s     ==)** +y9:+ E
 E==) ,, -y9:- G
 uU|<!r!X<=Grwwu~.eWM7477i
#.
 	fhEB =s   C6c                 j   t         j                  |d<   d }|j                  j                  |      |d<   t	        |      }|j                  |       | j                  |      }t        j                  ||       t        j                  t        j                  |      t        j                  |             y )NGc                     t         j                  t         j                  gt         j                  j	                  d      j                         dk     S )NrF         ?)r'   infr(   ra   rb   r   s    r   r   zETestDataFrameToCSV.test_to_csv_from_csv_w_some_infs.<locals>.<lambda>  s5    rvvrvv&ryy'<'<Q'?'F'F'H3'NO r   h)
r'   r(   r%   r   r&   r+   r   r9   r:   isinf)r   r,   r-   r   r   r?   s         r    test_to_csv_from_csv_w_some_infsz3TestDataFrameToCSV.test_to_csv_from_csv_w_some_infs  s    66CO&,,003C9~4 t$
k62
bhh{3RXXf5EFr   c                 P   t         j                  |d<   t         j                   |d<   t        |      }|j                  |       | j	                  |      }t        j                  ||       t        j                  t        j                  |      t        j                  |             y )NEF)r'   r  r&   r+   r   r9   r:   r  )r   r,   r-   r   r?   s        r   test_to_csv_from_csv_w_all_infsz2TestDataFrameToCSV.test_to_csv_from_csv_w_all_infs  sw    66CFF7C9~4 t$
k62
bhh{3RXXf5EFr   c                 2   t        |      }t        g dg dd      }|j                  |d       t        |      }t	        j
                  ||       t        g dd      |d	<   |j                  |d       t        |      }t	        j
                  ||       y )
Nr5   rF   rC   r   r      )c1c2Fr$   )      	   rK   rD   c3)r&   r   r+   r   r9   r:   r	   )r   r,   r   rh   ri   s        r   test_to_csv_no_indexz'TestDataFrameToCSV.test_to_csv_no_index  s|    9~iy9:
		$e	$$
b&))734
		$e	$$
b&)r   c                     t        g dg dd      }d|d<   |j                         |j                  g d      k(  sJ y )NrQ   rR   r   )aabbcc)r   r5   txttest)r   r5   r6  r    )r   r+   )r   rh   s     r   test_to_csv_with_mix_columnsz/TestDataFrameToCSV.test_to_csv_with_mix_columns  s<     ?/ABC6
yy{biii????r   c                    t        ddgddggddg      }t        ddgddggdd	g      }t        |      }|j                  |dd	g
       | j                  |      }t	        j
                  ||       |j                  |ddd	g       | j                  |      }|j                  d      }|J t	        j
                  ||       y )Nr5   rF   rC   r   r   r   r    r\   r]   r"   F)r%   r#   T)inplace)r   r&   r+   r   r9   r:   reset_index)r   r,   from_dfto_dfr   r?   return_values          r   test_to_csv_headersz&TestDataFrameToCSV.test_to_csv_headers  s     aVaV,sCjAAq6Aq6*S#J?9~tS#J/t$
eV,t5#s<t$))$)7###
eV,r   c                 :   |}|j                   }t        j                  t        |      dz  t        j                        j                  dd      }t        j                  |ddg      }||_         t        |      }|j                  |d       |j                  |d	d
g       |j                  |       | j                  |ddgd      }	t        j                  ||	d       |j                   j                  |	j                   j                  k(  sJ ||_         |}
|
j                   }|t        j                  t        |      t        j                        g}t        j                  |      |
_         |
j                  |ddg       t        j                  t        d      5  | j                  |ddgd      }d d d        |
j!                         }t        j                  |j#                  d      |d   g      |_         t        j                  |d       |
j                  |       | j                  |d       }t        |j$                        t        |
j$                        dz   k(  sJ |
j                  |d       | j                  |d       }t        j&                  |j(                  |j(                         ||_         d+d}t+        t        j,                  d      t        j                  t/        d      D cg c]  }t/        d      D cg c]  }d| 	 c}  c}}t1        d            t        j                  t/        d      D cg c]  }t/        d      D cg c]  }d| 	 c}  c}}t1        d             !      }	|	j                  |       t        |g d"ddg#      }t        j                  |	|       t+        t        j,                  d      t        j                  t/        d      D cg c]  }t/        d      D cg c]  }d| 	 c}  c}}t1        d                  }	|	j                  |       t        |g d"d#      }t        j                  |	|       t+        t        j,                  d      t        j                  t/        d      D cg c]  }t/        d      D cg c]  }d| 	 c}  c}}t1        d            t        j                  t/        d      D cg c]  }t/        d      D cg c]  }d| 	 c}  c}}t1        d$            !      }	|	j                  |       t        |g d"g d%#      }t        j                  |	|        |       }	|	j                  |d       t        |ddg      }t        j                  |	|        |d      }	|	j                  |d       t        |ddg      }t3        j4                  |j$                  j                   sJ |	j$                  j                  |j$                  _        t        j                  |	|        |       }	|	j                  |       t        |ddgdg#      }t        j                  |	|        |d      }	|	j                  |       t        |ddgdg#      }t        j                  |	|        |d      }	|	j                  |       d&D ]L  }d'| d(}t7        j8                  t:        |      5  t        |t1        t/        |            d#       d d d        N d)}t7        j8                  t<        |      5  |	j                  |dd*g       d d d        |
d d j                  |       | j                  |      }|
d d }g |_         t        j>                  |j$                  |j$                         t        |      dk(  sJ y # 1 sw Y   xY wc c}w c c}}w c c}w c c}}w c c}w c c}}w c c}w c c}}w c c}w c c}}w # 1 sw Y   DxY w# 1 sw Y   xY w),NrF   rD   firstsecondnamesFr"   r   r   r    r   r5   r4   rY   timefoor2   zCould not infer formatr_   Tr1   rr   r$   c                     | du rddg} t        t        j                  j                  d      j	                  ddd      t        j                  g d	| 
      d      S )NTrA  rB  rF   r   r   rO   )size))bahrF  )rI  bar)banbazrC  rK   r!   rE   )r   r'   ra   rb   r   r   rd   rC  s    r   _make_framez>TestDataFrameToCSV.test_to_csv_multiindex.<locals>._make_frame`  s\    } (+		%%a(11!Rf1E"..DE  r   r   rC   r   rC   r   r   r   r  r	  )r   r5   rF   rC   )r#   r   abcrX   )r(  r+  zlen of z, but only 5 lines in filez%cannot specify cols with a MultiIndexrJ  r   ) r%   r'   rJ   r;   rK   reshaper   r   r&   r+   r   r9   r:   rD  assert_produces_warningUserWarningr7   r8   r!   r<   r=   r   r   rI   r   comall_nonere   rf   r   	TypeErrorassert_index_equal)r   r,   r-   r>   frame	old_indexarrays	new_indexr   rh   tsframer?   r@   rN  r   r   ri   rn   exps                      r   test_to_csv_multiindexz)TestDataFrameToCSV.test_to_csv_multiindex-  s   KK	3y>A-RXX>FFq"M**6'89LM	9~T%(TC:. 	T]]4Aq6u]E 	eRU;{{  BHHNN222 & !MM			#i. IJ	"..y9t&%9'';ST 	M]]4Aq6t]LF	M <<>#//1B1B41H)TU,0WX
fhEB 	ttt46>>"c'//&:Q&>>>> 	t5)tt4
v}}n.C.CD  )		 GGFO**7<Qx@!E!H-qBqc(-@V ((7<Qx@!E!H-qBqc(-@T

 			))LQFK
b&) GGFO**7<Qx@!E!H-qBqc(-@V
 			))LAF
b&) GGFO**7<Qx@!E!H-qBqc(-@V ((7<Qx@!E!H-qBqc(-@U
 			))LIN
b&) ]
		)5	))QF3
b&) 
		)5	))QF3||V^^11222!zz//
b&) ]
		))QFqcB
b&)
		))QFqcB
b&) 
		) 	HAA389C{#6 H4a>QGH H	H 6]]9C0 	9IIi%I8	9 	9%y)bqk	
fnnckk:6{am	M 	MH .@ .@ .@ .@ .@LH H
	9 	9s    _ :_____*_6_(_#_(_30_.<_30_>_9_>.!`6` _
__#_(._39_>`	`c                 Z   t        t        d      t        d      dt        j                  dd            }t        |      }|j                  |       | j                  |d      }|j                         }|j                  j                  d      |_	        t        j                  ||       y )NrP  rC   r   r   r   r$   rr   r&   )r   r   rI   rs   interval_ranger&   r+   r   r7   r%   r   r9   r:   )r   r,   using_infer_stringrh   r   ri   r@   s          r   test_to_csv_interval_indexz-TestDataFrameToCSV.test_to_csv_interval_index  s    T%[uQx8@Q@QRSUV@WX9~
		$tq1 779!..u5
fh/r   c                    t        t        j                  j                  d      j	                  d      j                  t        j                              }t        j                  |d<   t        |      }|j                  |d       t        |d      5 }|j                         }|d   j                  d      d   d	k(  sJ 	 d d d        y # 1 sw Y   y xY w)
NrF   )r5   r   r5   i  )na_reputf-8r   ,999)r   r'   ra   rb   rc   r   float32r(   r&   r+   open	readlinessplit)r   r,   rh   r   r   liness         r   test_to_csv_float32_nanrepz-TestDataFrameToCSV.test_to_csv_float32_nanrep  s    II!!!$44V<CCBJJO
 19~
		$s	#$) 	3QKKME8>>#&q)U222	3 	3 	3s   -C

Cc                     t        g dg dd      }t        |      }|j                  |       | j                  |      }t	        j
                  ||       y )Nr&  )z5,6z7,8z9,0r`  r   r&   r+   r   r9   r:   r   r,   rh   r   rw   s        r   test_to_csv_withcommasz)TestDataFrameToCSV.test_to_csv_withcommas  sD    Y-BCD9~
		$mmD!
c2&r   c                    d }t        t        j                  j                  d      j	                  d      d |d            }t        t        j                  j                  d      j	                  d      j                  d      d |d            }t        d	|j                   |d
            }t        d|j                   |d      d      }t        t        d      |j                   |d            }t        j                  |j                  ddddf<   t        j                  |j                  ddddf<   t        j                  |||||gd      }i }	dt        j                  fdt        j                  fd
t        j                  fdt        ffD ]  \  }
} ||
      D ]  }||	|<   	  t!        |      }|j#                  |       t%        |d|	 |d            }t'        j(                  ||       y )Nc                 H    t        d      D cg c]	  }|  |d c}S c c}w )Nr   03dr  )r   r   s     r   create_colsz9TestDataFrameToCSV.test_to_csv_mixed.<locals>.create_cols  s%    .3Ah7tfQsG$777s   rF   )r   r   float64float)rE   r!   rK   ru   TboolrV   rF  r   )r%   r!   rE   20010101date   2   r5   rC   )axisr   )r   rE   r0   )r   r'   ra   rb   rc   r   r%   r
   r(   r)   rs   rt   rx  rK   bool_r   r&   r+   r   r9   r:   )r   r,   rw  df_floatdf_intdf_bool	df_objectdf_dtrh   dtypesr   rE   r   r   rl   s                  r   test_to_csv_mixedz$TestDataFrameToCSV.test_to_csv_mixed  s   	8 II!!!$44X>(

 II!!!$44X>EEgN&

 DF@STX1Fh
	 j!..'
 %'FFbeQqSj!!#

2b5!A#:YY&'9eD1M bjj!BHHRXXv	
 	"HAu !^ "!q	"	" 9~
		$dav;vCVW
b"%r   c           	      H   t        t        j                  j                  d      j	                  d      t        t        d            t        t        d            z   d      }t        |      }|j                  |       t        |d      }|j                  |_
        t        j                  ||       t        t        j                  j                  d      j	                  d      d	      }t        t        j                  j                  d      j	                  d            j                  d
      }t        d|j                  t        d            }t        d|j                  t        d            }t        t        d      |j                  t        d            }	t!        j"                  |||||	gdd      }g ddz  |_
        |j                  |       t        |d      }dD ]  }
t%        ||
         ||
<    |j                  |_
        t        j                  ||       y )NrF   )r   r}     rx  rM  r   rr   )r   rC   rD   rK   TrC   rV   rF  r{  r5   )r  ignore_indexrX   r   )z0.4z1.4z2.4)r   r'   ra   rb   rc   r   rI   r&   r+   r   r!   r9   r:   r   r%   r
   rs   rt   r   )r   r,   rh   r   ri   r  r  r  r  r  r   s              r   test_to_csv_dups_colsz(TestDataFrameToCSV.test_to_csv_dups_cols  s   II!!!$44Z@rOd59o5
 9~
		$$!,
fb)II!!!$44Y?y
 299003CCINOVV
 DaIe8>>58L	)J/x~~uUVxXYYvw	59PT
 ]

		))q1 ' 	/A#F1I.F1I	/ 
fb)r   c           
      V   t        t        j                  d      t        t	        d      D cg c]  }d| 	 c}d      t        g d            }t        |      }|j                  |       t        |d	      }|j                  d
di      }t        j                  ||       y c c}w )NrO  r   r   rF  r~   rP   rV   r   rr   za.1rQ   r    )r   r'   r   r   rI   r&   r+   r   renamer9   r:   )r   r,   r   rh   r   ri   s         r   test_to_csv_dups_cols2z)TestDataFrameToCSV.test_to_csv_dups_cols2;  s    GGFO584a2aS45A/*
 9~
		$ $!,s|4
fb) 5s   B&r   )r5   r   r   c                    t        dt        d      i      }|j                  dz   |d<   |j                  dz   |d<   |j                  dz   |d<   t        |      }|j	                  ||	       t        |d
      }t        j                  ||       y )Nr   r         ?r   g       @r   g      @r   r   r   rr   )r   rI   r   r&   r+   r   r9   r:   )r   r   r,   r2  r   rl   s         r   test_to_csv_chunkingz'TestDataFrameToCSV.test_to_csv_chunkingK  s}    U2Y'($$*3$$*3$$*39~
		$)	,da(
b"%r   c                 x   d}t        t        j                  j                  d      j	                  d|dz   f      d d       }t        |      }|j                         5 }|j                  d|       |j                  |dd       d d d        t        |d 	      }t        j                  ||       y # 1 sw Y   -xY w)
Nr   rF   r5   r   r	  z/pandas.io.formats.csvs._DEFAULT_CHUNKSIZE_CELLSF)r#   r%   r"   )r   r'   ra   rb   rc   r&   contextsetattrr+   r   r9   r:   )r   r,   monkeypatchr   rh   r   mrl   s           r   !test_to_csv_wide_frame_formattingz4TestDataFrameToCSV.test_to_csv_wide_frame_formattingW  s     	II!!!$44aR5HI

 9~  " 	7aIIGSIId5I6	7 d4(
b"%		7 	7s   'B00B9c                     t        d      }| j                  |d       }t        d||j                  d      i      }t	        |      }|j                  |       t        |d      }t        j                  ||d       y )Nza,1.0
b,2.0r"   tr   rr   FrY   )r   r   r   r!   r&   r+   r9   r:   )r   r,   f1rh   newdfr   r?   s          r   test_to_csv_bugz"TestDataFrameToCSV.test_to_csv_bugg  sm    n%]]2d]+32::a= 1239~T$!,
fe?r   c                    t        dg di      }t        |      }|j                  |d       t        |dd      }t	        j
                  ||       |j                  |dd       t        |d d      }t	        j
                  ||       y )	Nu   c/σr&  UTF-8rg  r   r   r   Fr   r%   rq  rr  s        r   test_to_csv_unicodez&TestDataFrameToCSV.test_to_csv_unicodes  sx    
I./9~
		$	)tq7;
b#&
		$	6ttg>
b#&r   c                     t        d      }t        g dg dgg dddg      }|j                  |d	       |j                  d
       t	        |d
d      }t        j                  ||       y )N )   אd2d3d4)a1a2a3a4)r     בu   גu   דr  r  r	  r  rg  r   r  )r   r   r+   seekr   r9   r:   )r   bufrh   rw   s       r   test_to_csv_unicode_index_colz0TestDataFrameToCSV.test_to_csv_unicode_index_col~  sd    rl)+CD<X&
 			#	(sa':
b#&r   c                     t               }|j                  |       |j                  d       t        |d      }t	        j
                  ||       y )Nr   rr   )r   r+   r  r   r9   r:   )r   r-   r  r?   s       r   test_to_csv_stringioz'TestDataFrameToCSV.test_to_csv_stringio  s>    j3#+
fk2r   c                     t        g dg dgddgg d      }t        |      }|j                  |d       t        |d	
      }t        g dg dgddgg d      }t	        j
                  ||       y )Ng~Ϛ?g9DܜJ?g>D)?g.4i(@33333@̤Ar   r   r\   r]   r^   rV   z%.2f)float_formatr   rr   )gQ?gq=
ףp?g=
ףp=?)gp=
ף(@r  r  rq  )r   r,   rh   r   rl   rm   s         r   test_to_csv_float_formatz+TestDataFrameToCSV.test_to_csv_float_format  su    +-KL*#
 9~
		$V	,da(!>?*#

 	b"%r   c                     t        dddgi      }|j                  dd d      }g d}t        j                  |      }||k(  sJ y )	NrQ   r  r  rh  c                 0    t        j                  | d      S )N-)trim)r'   format_float_positionalr   s    r   r   zJTestDataFrameToCSV.test_to_csv_float_format_over_decimal.<locals>.<lambda>  s    2#=#=ac#J r   F)decimalr  r%   )rQ   z0.51)r   r+   r9   convert_rows_list_to_csv_strr   rh   ri   expected_rowsr@   s        r   %test_to_csv_float_format_over_decimalz8TestDataFrameToCSV.test_to_csv_float_format_over_decimal  sV    c3Z()J  

 *22=A!!!r   c                     t        g dg dd      }t               }|j                  |dt        j                  d       |j                         }g d}t        j                  |      }||k(  sJ y )Nr&  )rF  rJ  rL  r`  Frf  )r%   quotingr   )z"A","B"z1,"foo"z2,"bar"z3,"baz")r   r   r+   csvQUOTE_NONNUMERICgetvaluer9   r  )r   rh   r  ri   r  r@   s         r   !test_to_csv_unicodewriter_quotingz4TestDataFrameToCSV.test_to_csv_unicodewriter_quoting  sa    Y-BCDj
		#UC,@,@7	SD22=A!!!r   r   rf  c                     t        dddgi      }t               }|j                  |t        j                  |d       |j                         }g d}t        j                  |      }||k(  sJ y )Nr   hello	{"hello"}F)r  r   r%   )r   r  r  )r   r   r+   r  
QUOTE_NONEr  r9   r  )r   r   rh   r  ri   r  r@   s          r   test_to_csv_quote_nonez)TestDataFrameToCSV.test_to_csv_quote_none  se     g{345j
		#s~~	N322=A!!!r   c                     t        g dg ddg d      }t               }|j                  |d       g d}t        j                  |      }|j                         |k(  sJ y )	Nr&  r'  r`  onetwothreer$   Fr2   )zA,Bzone,1,4ztwo,2,5z	three,3,6)r   r   r+   r9   r  r  )r   rh   r  r  r@   s        r   "test_to_csv_index_no_leading_commaz5TestDataFrameToCSV.test_to_csv_index_no_leading_comma  sT    YY7?VWj
		#5	)B22=A||~)))r   c                     t        g dg ddg d      }t        |      }|j                  |d       d}t        |d	
      5 }|j	                         |k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr&  r'  r`  r  r$   
lineterminators#   ,A,B
one,1,4
two,2,5
three,3,6
rbrq   r   r&   r+   rk  readr   r,   rh   r   r@   r   s         r   test_to_csv_lineterminatorsz.TestDataFrameToCSV.test_to_csv_lineterminators  sg    YY7?VW9~
		$v	.A$T" 	(a668x'''	( 	( 	(   A$$A-c                     t        g dg ddg d      }t        |      }|j                  |d       d}t        |d	
      5 }|j	                         |k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr&  r'  r`  r  r$   
r  s   ,A,B
one,1,4
two,2,5
three,3,6
r  r  r  r  s         r   test_to_csv_lineterminators2z/TestDataFrameToCSV.test_to_csv_lineterminators2  sg    YY7?VW9~
		$t	,9$T" 	(a668x'''	( 	( 	(r  c                 D   t        g dg ddg d      }t        |      }|j                  |       t        j                  j                  d      }d|z   dz   |z   d	z   |z   d
z   |z   }t        |d      5 }|j                         |k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr&  r'  r`  r  r$   rf  s   ,A,Bs   one,1,4s   two,2,5s	   three,3,6r  r  )r   r&   r+   oslinesepencoderk  r  )r   r,   rh   r   
os_linesepr@   r   s          r   test_to_csv_lineterminators3z/TestDataFrameToCSV.test_to_csv_lineterminators3  s    YY7?VW9~
		$ZZ&&w/
  	
    	 $T" 	(a668x'''	( 	( 	(s   6BBc                    t        t        j                  g d            }t        g d      }t               }|j	                  |d       t               }|j	                  |d       |j                         |j                         k(  sJ t        d|i      }t        d|i      }t               }|j	                  |       t               }|j	                  |       |j                         |j                         k(  sJ y )N)rQ   rR   rR   rQ   rQ   r   r   r   Fr"   r   )r	   rs   Categoricalr   r+   r  r   )r   r   rH   resr]  rh   rw   s          r    test_to_csv_from_csv_categoricalz3TestDataFrameToCSV.test_to_csv_from_csv_categorical  s     2>>"JKL<=j	U#j
		#e	$||~///Qx b	"j
		#j

3||~///r   c                     |j                  d       }t        |t              sJ t        t	        |      d      }t        j                  ||       y )N)path_or_bufr   rr   )r+   r   r&   r   r   r9   r:   )r   r-   csv_strr?   s       r   test_to_csv_path_is_nonez+TestDataFrameToCSV.test_to_csv_path_is_none  sH     $$$6'3'''(7+q9
k62r   zdf,encodingr  r  r   r   r  rV   )rP  defghir    asciir   ){   u   你好u   世界gb2312)r  u   Γειά σουu
   Κόσμεcp737c           	         t        |      }|j                  |||       t        ||d|      }t        j                  ||       t        |d||      5 }|j                  |j                  |       |j                  j                  rJ 	 d d d        t        |||d      j                  d      }t        j                  ||       t        j                  ||      5 }|j                         j                  |xs d      }	|j                  D ]  }
|
|	v rJ  	 d d d        t        j                  ||      5 }t        j                  |t        |d|	             d d d        y # 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)
N)compressionr   r   )r  r   r   wrg  )r  r   r   r!   r   r  )r&   r+   r   r9   r:   r   handleclosedsqueezedecompress_filer  r   r!   )r   r,   rh   r   r  r   ri   handlesfhtextcols              r   test_to_csv_compressionz*TestDataFrameToCSV.test_to_csv_compression   s|   0 9~
		$K(	C$K1xX
b&) #;
 	-IIgnnxI8~~,,,,,		- #	

 ')
 	 	b&) k2 	#b779##H$67Dzz #d{"{#	#
 k2 	Tb!!"hrQ&RS	T 	T)	- 	-	# 	#
	T 	Ts*   6E#7E/E/7#E;#E,/E8;Fc                    t        |      }|j                  }t        ||j                  d      d|      }|j	                  |d       t        |d      }|j                  d       }|j                  j                  d	       |_        t        j                  ||       |j	                  |d
       t        |d      }|j                  d       }|j                  j                  d       |_        t        j                  ||       |j                  }|j	                  |d       t        |d      }|j                  d       }|j                  j                  d       |_
        t        j                  ||       t        dgdz  g dz         }	t        d|	i|	      }
|
j	                  |d
       t        |ddgd      }t        j                  ||
       y )Nr5   r`  r$   %Y%m%ddate_formatr   rr   c                 6    t        | j                  d            S Nr  ru   strftimer   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>a  s    #ajj>R:S r   c                 6    t        | j                  d            S r	  r
  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>c      c!**X./ r   %Y-%m-%dc                 $    | j                  d      S Nr  r  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>l  s    !**Z:P r   c                 $    | j                  d      S r  r  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>n  s    ajj, r   c                 6    t        | j                  d            S r	  r
  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>z  r  r   c                 $    | j                  d      S r	  r  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>~  s    ajj* r   r   r   )
2000-01-01r  r  r   )r0   r   )r&   r%   r   shiftr+   r   r   r9   r:   Tr!   r   )r   r,   r>   r   r}   r6  datetime_frame_intdatetime_frame_strdatetime_frame_columns	nat_index	nat_frames              r   test_to_csv_date_formatz*TestDataFrameToCSV.test_to_csv_date_formatV  s   9~!''"!238
 	d9 *+//0ST#5#;#;#?#?/$
  	d$67d
; *+//0PQ#5#;#;#?#?,$
  	d$67 "0!1!1%%d%A*!7!;!;/"
 *@)G)G)K)K**
& 	d$:;  GbLEE
	 sI.i@	:61a&A>
dI.r   tdr   r1   10sc                    t        |      }t        ddddd      }||z   }|j                  d       }t        j                  t        t        |            d      }t        d	|i|
      }|j                  |d
       t        |d      }t        |j                  d      j                  d      |_        t        j                  ||       y )Nz2013-10-26 23:00z2013-10-27 01:00zEurope/Londonr  infer)r   r   	ambiguousrK   rD   r   r$   Tr   rr   utc)r&   r   r6   r'   r   rI   r;   r   r+   r   r   r%   r   r9   r:   )	r   r  r,   r   timesr   
time_rangerh   ri   s	            r    test_to_csv_with_dst_transitionsz3TestDataFrameToCSV.test_to_csv_with_dst_transitions  s    9~
 BJLLXXeCFm7;
Z(2
		$d	# $!,"6<<T:EEoV
fb)r   z	start,endz
2015-03-29z
2015-03-30z
2015-10-25z
2015-10-26c                 d   t        ||ddd      }|j                  d       }d |j                  _        t	        d|d|      }|j                  |d       t        |d	
      }t        |j                  d      j                  d      j                  d      |_        t        |d   d      j                  d      |d<   t        j                  ||       |j                  t               t        |      }|j                  |       t!        j"                  |      }t        j                  ||       y )Nr  zEurope/Parisr   )r   r   unitr5   )r=   idxr$   Tr   rr   r#  r*  zdatetime64[ns, Europe/Paris])r   r6   _data_freqr   r+   r   r   r%   r   r8   r   r9   r:   r&   	to_picklers   read_pickle)r   startendr,   r*  rh   ri   r   s           r   ,test_to_csv_with_dst_transitions_with_picklez?TestDataFrameToCSV.test_to_csv_with_dst_transitions_with_pickle  s     #.tLnnT"		!C0<
		)4	()q1$/::>JRRSWX 	 $F5Mt<CC*
u 	fb) 			#9~
T%
fb)r   c                 d   t        ddgddgdt        j                  gddgd      }g d	}t        j                  |      }|j                         }||k(  sJ |j                  d 
      }||k(  sJ g d	}t        j                  |      }|j                  t        j                  
      }||k(  sJ g d}t        j                  |      }|j                  t        j                  
      }||k(  sJ g d}t        j                  |      }|j                  t        j                  
      }||k(  sJ d}t        j                  t        j                  |      5  |j                  t        j                  
       d d d        t        j                  t        j                  |      5  |j                  t        j                  d        d d d        g d}t        j                  |      }|j                  t        j                  d      }||k(  sJ g d}t        j                  |      }|j                  t        j                  d      }||k(  sJ ddg}t        j                  |      }t        t        |            }t               }|j                  |dd       |j!                         |k(  sJ t        ddgddgddgd      }|j#                  ddg      }g d }t        j                  |      }|j                  t        j                  
      |k(  sJ y # 1 sw Y   xY w# 1 sw Y   `xY w)!NTFr  g	@*   rQ   zb,c)c_boolc_floatc_intc_string),c_bool,c_float,c_int,c_string0,True,1.0,42.0,az1,False,3.2,,"b,c")r  )("","c_bool","c_float","c_int","c_string"z"0","True","1.0","42.0","a"z"1","False","3.2","","b,c")r:  z0,True,1.0,42.0,"a"z1,False,3.2,"","b,c"z%need to escape, but no escapechar setr_   )r  
escapechar)r8  r9  z1,False,3.2,,b!,c!)z,c_bool,c_ffloat,c_int,c_stringr9  z1,False,3.2,,bf,cr   za,b,cz1,"test 
",3rf  r  r5   rF   rC   r   r   r(  r1  rR   )z"a","b","c"z"1","3","5"z"2","4","6")r   r'   r(   r9   r  r+   r  QUOTE_MINIMAL	QUOTE_ALLr  re   rf   Errorr  r   r   r  	set_index)	r   rh   r  r@   ri   rn   	text_rowsr  r  s	            r   test_to_csv_quotingz&TestDataFrameToCSV.test_to_csv_quoting  s   -:bff %L	


 22=A!!!4(!!!

 22=A3#4#45!!!

 22=A3==1!!!

 22=A3#7#78!!!5]]399C0 	.IIcnnI-	. ]]399C0 	?IIcnnI>	?

 22=A3>>cB!!!

 22=A3>>cB!!! /0	..y9htn%j
		#u	5||~%%% aV1a&1v>?\\3*%E22=Ayyy/8;;;S	. 	.	? 	?s   !L%"L%L"%L/c                    g d}t        j                  |d      }t        g d|      }|j                         }g d}t	        j
                  |      }||k(  sJ d}|j                  |      }g d	}t	        j
                  |      }||k(  sJ d
t        dg}t        j                  |d      }t        g d|      }|j                         }g d}t	        j
                  |      }||k(  sJ y )N)
1990-01-01r  
3005-01-01r   )r   r'  r$   ),01990-01-01,4z2000-01-01,53005-01-01,6z%m-%d-%Yr  )rF  z01-01-1990,4z01-01-2000,5z01-01-3005,6rD  rE  )rF  rG  z,5rH  )rs   PeriodIndexr   r+   r9   r  r   )r   datesr%   rh   ri   r  r@   r  s           r   test_period_index_date_overflowz2TestDataFrameToCSV.test_period_index_date_overflow&  s     ;u3/y.N22=A!!! {3N22=A!!! sL1u3/y.D22=A!!!r   c                     t        j                  g d      }t        g dg dg      }||_        g d}|j	                  |      }g d}t        j                  |      }||k(  sJ y )N))rQ   r5   )rQ   rF   )rR   r5   )rR   rF   r   )r   r(  r+  r,  )rQ   rR   r   dr"   )z,a,b,c,dz	0,1,2,3,4z	1,5,6,7,8)r   rd   r   r!   r+   r9   r  )r   r!   rh   r#   ri   r  r@   s          r   test_multi_index_headerz*TestDataFrameToCSV.test_multi_index_headerE  sa    (()QRl34
%&)>22=A!!!r   c                     t        g d      }t        g dg|      }|j                  ddg      }d}|j                  d      }t	        j
                  ||       y )	N)r5   )rF   rC   r&  r    rP  rQ  z,1,3
0,1,3
r  r  )r   r   reindexr+   r9   r<   )r   r%   rh   r@   ri   s        r   $test_to_csv_single_level_multi_indexz7TestDataFrameToCSV.test_to_csv_single_level_multi_indexR  sT    ()	{E2ZZtZ-"$/
vx0r   c                 ^   t        dddgi      }g d}t        j                  |      }|dz  }|j                          t	        |      }|j                  |d       t        j                  |d	      5 }|j                         j                  d
      }d d d        |k(  sJ y # 1 sw Y   xY w)NrQ   r5   rF   )rQ   r  2z__test_gz_lineend.csv.gzFr$   gzip)r  rf  )	r   r9   r  touchr&   r+   r  r  r   )	r   tmp_pathrh   r  r@   	file_pathr   r   ri   s	            r   test_gz_lineendz"TestDataFrameToCSV.test_gz_lineend[  s    aV}%'22=A99	9~
		$e	$&9 	.QVVX__W-F	. !!!	. 	.s   3 B##B,c                     t        dt        dd      i      }t               }|j                  |       |j	                         }d|v sJ y )NrQ   z1/1/2000r   r   r  )r   r   r   r+   r  )r   rX  r  ri   s       r   test_to_csv_numpy_16_bugz+TestDataFrameToCSV.test_to_csv_numpy_16_bugi  sD    3
:r BCDjSv%%%r   c                 v    t        d d g      j                  d ddd      j                  dd      }d}||k(  sJ y )NFr  )r#   r%   re  r  r  z""
""
)r   r+   replace)r   ri   r@   s      r   test_to_csv_na_quotingz)TestDataFrameToCSV.test_to_csv_na_quotingr  sH     tTl#VDeBV?WVT" 	
 !!!r   c                     t        ddt        j                  gd      }|d   j                  d      |d<   |d   j                  d      |d<   |j	                         }g d}t        j                  |      }||k(  sJ y )NrS   r5   r   rR   Int16category)z,a,bz0,x,1z1,x,)r   rs   NAr   r+   r9   r  r  s        r   test_to_csv_categorical_and_eaz1TestDataFrameToCSV.test_to_csv_categorical_and_ea}  ss    S255z23S'..)3S'..,3122=A!!!r   c           	          t        dt        j                  t        d      t        d      d      gi      }|d   j	                  d      |d<   |j                         }ddg}t        j                  |      }||k(  sJ y )	NrQ   r   z
2020-01-02both)r  rb  z,az.0,"[2020-01-01 00:00:00, 2020-01-02 00:00:00]")r   rs   Intervalr
   r   r+   r9   r  r  s        r   $test_to_csv_categorical_and_intervalz7TestDataFrameToCSV.test_to_csv_categorical_and_interval  s    KK!,/!,/%

 S'..,3OP22=A!!!r   c                 J   t        dg di      }d}|dz  }|dz  }t        j                  t        |d      5  |j	                  |d       d d d        t        j                  t        |d      5  |j	                  |d       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)	NrQ   r&  zzip and tar do not support mode 'a' properly. This combination will result in multiple files with same name being added to the archiveztest.zipztest.tarF)r`   raise_on_extra_warningsr  )r   r9   rR  RuntimeWarningr+   )r   rX  rh   rn   zip_pathtar_paths         r   -test_to_csv_warn_when_zip_tar_and_append_modez@TestDataFrameToCSV.test_to_csv_warn_when_zip_tar_and_append_mode  s    Y'(Q 	 j(j(''#u
 	* IIhSI)	*
 ''#u
 	* IIhSI)	* 	*	* 	*
	* 	*s   B0BBB"c                     t        ddgdd gddgd      }|j                  ddt        j                  	      }g d
}t	        j
                  |      }||k(  sJ y )NrQ   r  zb"czde,f"z"c)col_acol_bcol_c"\)	quotecharr;  r  )z,col_a,col_b,col_cz0,a,b\"c,de\,f\"z	1,a2,,\"c)r   r+   r  r  r9   r  r  s        r   test_to_csv_escape_quotecharz/TestDataFrameToCSV.test_to_csv_escape_quotechar  sg    t!4
 ST3>>R

 22=A!!!r   )NNNNF)J__name__
__module____qualname__r   r.   rA   rM   ro   ry   r   r   r   re   markparametrizer   slowr   r   r   filterwarningsr   r   r  r  r  r  r   r$  r/  r7  r>  r^  rc  ro  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  rs   r   r8   r'  r1  rB  rK  rN  rS  rZ  r\  r_  rd  rh  rn  rv  r   r   r   r   r      s@   (.E**"9H&A 6"A& [[VdS#J%78"? 9"?H [[C CD fP [[[[SC C [[[[S [[ "S [[Wl3[[ VWC X 4 C: [[[[T [[Wl3C 4 
C [[[[W&ABC C C( [[I I
 [[C C [[[[S [[Wi0[[ q!GQ<0q!GQ<0 15Q7OP	
C 1 C,G
G
*@-$T l03',&\$*L*  [[[*5	& 6	& [[& &
@	''3&$
"	" [[Z$9	" :	"*
(
((*003 [[ 35ST*+
  -.H'Rq566PRZ[?@@+ 	
.T/.T>6/p [[TLBLLO$;$;D$A<2<<PUCV#WX* Y** [[<(<(	
**2`<D">"1"&	"""&*&"r   r   )r  ior   r  numpyr'   re   pandas.errorsr   pandasrs   r   r   r   r   r	   r
   r   r   r   r   pandas._testing_testingr9   pandas.core.commoncorecommonrT  pandas.io.commonr   r   r   r   r   <module>r     sC    
  	   %         'a" a"r   