
    Owg	                         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                   F   e 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	 	 	 	 	 ded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d. Zd/ Z d0 Z!d1 Z"d2 Z#d3 Z$e
j                  j                  d4g d5      d6        Z%e
j                  j                  d7        Z&d8 Z'd9 Z(d: Z)d; Z*d< Z+d= Z,d> Z-e
j                  j                  d?d	d@g      dA        Z.dB Z/dC Z0dD Z1dE Z2e
j                  j                  dF e3g dGg dHgdIdJgg dKL      d	f e3g dMgg dKN      dOf e3dPg dQgz  g dKN      dRf e3dPg dSgz  g dKN      dTfg      dU        Z4dV Z5e
j                  j                  dW e6jn                  dX       e6jn                  dY      g      dZ        Z8d[ Z9d\ Z:d] Z;d^ Z<d_ Z=d` Z>da Z?db Z@dc ZAdd ZBy	)fTestDataFrameToCSVc                 F    ddi} |j                   di | t        |fi |S )N	index_colr    )updater   )selfpathkwargsparamss       ]/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_to_csv.pyr   zTestDataFrameToCSV.read_csv   s-    q!'''    c                    t        j                  d      5 }t        j                  |j                  d d|j
                  j                  d      f<   |j                  |       |j                  |ddg       |j                  |d       |j                  |d       |j                  j                  d       |_        |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                         t        t!        t#        d      t        j$                  dt        j&                              t!        t#        d      t        j$                  dt        j&                              d      }|j                  |       | j                  |      }t        j                  ||       d d d        y # 1 sw Y   y xY w)N__tmp_to_csv_from_csv1__   ABcolumnsFheaderindexT)parse_datesr&   index_labelr   r'         dtype   )s1s2)tmensure_cleannpnanilocr"   get_locto_csvr&   
_with_freqr   assert_frame_equallenassert_almost_equalvaluesr   r	   rangearangeint64)r   float_framedatetime_framer   reconsdms         r   test_to_csv_from_csv1z(TestDataFrameToCSV.test_to_csv_from_csv1$   s   __78 #	.DEGVVKRaR!4!4!<!<S!AABt$tc3Z8tE2t51 $2#7#7#B#B4#HN !!$']]4T]:F!!.&9!!$G!<]]44T]JFv~~&#n.D.D*E*IIII !!$e!4]]44T]JF"">#8#8&--H  q1BHH1MN q1BHH1MNB IIdO]]4(F!!"f-G#	. #	. #	.s   H=II%c                    t        j                  d      5 }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        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N__tmp_to_csv_from_csv2__r/   r,   r,   arJ   b)xyzr&   r"   )r   r+   r/   rP   )r    r+   r/   r   r+   r/   Fr*   check_names)AAXYZr#   z Writing 4 cols but got 2 aliasesmatchrT   rU   )r2   r3   r   r4   randomdefault_rngstandard_normalr8   r   r:   r   from_tuplesr   copyr"   pytestraises
ValueError)
r   rA   r   dfresultmidxcol_aliasesrsxpmsgs
             r   test_to_csv_from_csv2z(TestDataFrameToCSV.test_to_csv_from_csv2J   s   __78 !	=D		%%a(88@%'B
 IIdO]]4(F!!&"-))*QRD		%%a(88@'B IIdO]]49%]PF!!&"%@   56KtK8t$B!!#B$BJ!!"b)4Cz5 =""4s"<=A!	= !	=@= =A!	= !	=s$   FGG0GG
	GGc                    t        j                  d      5 }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                  ||       d d d        y c c}w c c}w # 1 sw Y   y xY w)	N__tmp_to_csv_from_csv3__r/   )r,   r+   rJ   F)moder$   r   r   )r2   r3   r   r4   rZ   r[   r\   r8   pdconcatr   r"   intr:   )r   r   df1df2rg   rf   labels          r   test_to_csv_from_csv3z(TestDataFrameToCSV.test_to_csv_from_csv3n   s    __78 
	*DBII11!4DDVLMCBII11!4DDVLMCJJtJJt#eJ4C:&B$!,B24**=#e*=BJ24**=#e*=BJ!!"b)
	* 
	* >=
	* 
	*s*   CED=.EEE=
EEc                    t        j                  d      5 }t        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
       d d d        y c c}w c c}w # 1 sw Y   y xY w)N__tmp_to_csv_from_csv4__r+   )secondsdt_datar,   dt_indexnamer%   rm   T)check_index_type)r2   r3   rn   	Timedeltar   r>   r   r8   r   to_timedeltar&   r:   )r   r   dtirb   rc   s         r   test_to_csv_from_csv4z(TestDataFrameToCSV.test_to_csv_from_csv4{   s    __78 	EDa(BU1X6QV67U1X6QV6ZHB IIdOdj9F??6<<8FL "y0A BF9!!"ftD	E 	E 76	E 	Es*   *D C9D!C>-BD9
DDc                     t        j                  d      5 }j                  |       t        |ddg      fd} |d      d<    |d      d<   t        j                         d d d        y # 1 sw Y   y xY w)N__tmp_to_csv_from_csv5__r   r   r*   c                     t        |          j                  j                  d      j                  j                  |    j                  j                        S )NUTC)r   r   
tz_converttz)crc   timezone_frames    r   <lambda>z:TestDataFrameToCSV.test_to_csv_from_csv5.<locals>.<lambda>   s@    +fQi0JJu%JJ~a033667 r   r    C)r2   r3   r8   r   r:   )r   r   r   	converterrc   s    `  @r   test_to_csv_from_csv5z(TestDataFrameToCSV.test_to_csv_from_csv5   s{    __78 	:D!!$'dacUCF8 
 $C.F3K#C.F3K!!&.9	: 	: 	:s   AA44A=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                         5 }|j                  |||
       t        |d	      }d d d        t        j                  ||   d       y c c}w c c}w # 1 sw Y   /xY w)Nr         @r,   i-rJ   rz   rO   r/   r   r"   	chunksizerm   FrR   )rp   r   r4   onesr   r>   r"   r2   r3   r8   r   r:   )	r   r   Nr   rb   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~__ 	/$IIdDII>DA.D	/ 	bh%@ 56
	/ 	/s   C.$C3("C88Dr   NrK   rJ   c           
         d}t        |dz        }t        t        j                  |df      t	        t        |      D cg c]  }d| 	 c}d      g d      }t        j                         5 }|j                  |||	       t        |d
      }||j                  j                  r||_
        n>|j                  j                  |      \  }}	|j                  j                  |      |_
        |D ]K  }
||
   }||
   }t        |t              rt        j                   ||       4t        j"                  ||d       M n)|j                  |_
        t        j"                  ||d       d d d        y c c}w # 1 sw Y   y xY w)Nr   r   r,   r   rJ   rz   rI   rO   r   r   rm   FrR   )rp   r   r4   r   r   r>   r2   r3   r8   r   r"   	is_uniqueget_indexer_non_uniquetake
isinstancer	   assert_series_equalr:   )r   r   r   r   r   rb   r   r   indexermissingr   obj_dfobj_rss                r   test_to_csv_new_dupe_colsz,TestDataFrameToCSV.test_to_csv_new_dupe_cols   sY   		C  GGQFO584a2aS43?#

 __ 	C$IIdDII>DA.D ::''#'DL')zz'H'H'N$GW#%::??7#;DL QAUF!!WF!&&1..vv>--ff%PQ  "zz%%b$EB1	C 	C 5	C 	Cs   E2/C:E77F c                 L   d
d}d} ||dz         } ||dz   d      }t        j                  d      5 }t        ||d      }|j                  ||       | j	                  |      j                  t              }t        j                  ||d	       d d d        y # 1 sw Y   y xY w)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periodsr/   r   d   )	rp   listr   r4   rZ   r[   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   z1.csvrJ   rK   r   FrR   N)r2   r3   r   r8   r   applyr   r:   )r   r   r   r0   r1   pthrb   rC   s           r   test_to_csv_dtnatz$TestDataFrameToCSV.test_to_csv_dtnat   s    
	 	IM*IM1-__W% 	A"-.BIIcYI/]]3'--k:F!!"f%@	A 	A 	As   ABB#c           	         ddi}|rv|t        t        |            |d<   t        t        |            |d<   t        j                  d      5 }	|j	                  |	d|        | j
                  |	fi |}
d d d        nJd|d<   t        j                  d      5 }	|j	                  |	d|        | j
                  |	fi |}
d d d        d	 }|r|j                  
_        |r|st        |d
z
        D cg c]  }
j                  d d |f   j                  ! }}t        j                  t        
j                        g|z         }||
_        |
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 # 1 sw Y   xY w# 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 c c}w c c}w )Nr'   Fr   r$   __tmp_to_csv_moar__utf8)encodingr   r   c                 H    t        | t              s| j                  d      S | S )Nr   )r   strdecoderL   s    r   _to_uniz;TestDataFrameToCSV._return_result_expected.<locals>._to_uni  s     a%xx''Hr   r+   r   fO)r   r   r   ur   pr   r-   r   r   )r   r>   r2   r3   r8   r   r"   r6   r=   r   from_arraysr&   r4   arrayr
   r   mapto_timestampget)r   rb   r   r_dtypec_dtypernlvlcnlvldupe_colr   r   rC   r   r   	delta_lvlixtype_maprs   idx_listcol_lists                      r   _return_result_expectedz*TestDataFrameToCSV._return_result_expected   s     ' &*5<&8{##E%L1F8!67 74		$9	E&t6v67 7  !F8!67 74		$9	E&t6v67	
   ZZFN;@;KLaQT*11LIL''fll);(<y(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o7 77 7 M ? ;
 A = = A =
 C ? = =s`   (U-(U:1$VVVVVV V%V*V/V4V9(V>-U7:Vnrows)r/   
   c   r   e   f                           c           	          t        t        j                  |df      t        d|      t	        t        d      t                    }| j                  |ddd	      \  }}t        j                  ||d
       y )N   
2020-01-01r   abcdr-   rO   r   r   r   FrR   )
r   r4   r   r   r   r   objectr   r2   r:   )r   r   rb   rc   expecteds        r   test_to_csv_nrowsz$TestDataFrameToCSV.test_to_csv_nrowsU  se    
 GGUAJ\59$v,f5

  77D$L
fhEBr   zr_idx_type, c_idx_type))r   r   )r   r   )r   r   )r   r   ncolsr+   r/   r,   r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                     d d d d d}t        t        j                  ||f       ||   |       ||   |            }| j                  |d||      \  }}t	        j
                  ||d	       y )
Nc                 ^    t        t        j                  |       t        j                        S )Nr-   )r   r4   r?   r@   r   s    r   r   z:TestDataFrameToCSV.test_to_csv_idx_types.<locals>.<lambda>m  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   r>   chr)r   r   s     r   r   z:TestDataFrameToCSV.test_to_csv_idx_types.<locals>.<lambda>n  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>o  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>p  s    <acJ r   )r   r   r   r   rO   r   FrR   )r   r4   r   r   r2   r:   )	r   r   
r_idx_type
c_idx_typer   axesrb   rc   r   s	            r   test_to_csv_idx_typesz(TestDataFrameToCSV.test_to_csv_idx_typesb  s     ?N?J	
 GGUEN#"$z"5)$D$U+

  77	
 	fhEBr   )r   b   r   r   r   r   r   r   r   r   r   r   r   r   c                 L   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   rJ   rz   rO   r   FrR   )r   r4   r   r   r>   r   r2   r:   )r   r   r   r   rb   rc   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A
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 )Nr,   r   rJ   rz   rO   duper/   rduper   T)r   FrR   )r   r4   r   r   r>   r   r"   r&   r   r2   r:   )r   r   r   rb   r   r   rc   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D47P
fhEB 96s   C2C7c                     t        t        j                  dt        j                              }| j	                  |d      \  }}t        j                  ||d       y )Nr   r-   r%   r   F)check_column_type)r   r4   r?   r@   r   r2   r:   )r   rb   rc   r   s       r   test_to_csv_emptyz$TestDataFrameToCSV.test_to_csv_empty  sD    RYYr:;77DA
fh%Hr   c                 \   d}|dz  dz   }t        t        j                  |df      t        t	        d      t
              t        j                  t        d      D cg c]  }t        |       c}            }| j                  ||d      \  }}t        j                  ||d	       y c c}w )
Nr   r/   r+   abr-   r"   r&   )r   FrR   )r   r4   r   r   r   r   r   r   r>   r   r2   r:   )r   r   rowsr   rb   rc   r   s          r   test_to_csv_chunksizez(TestDataFrameToCSV.test_to_csv_chunksize  s    	A~!GGT1I$t*F3((uQx)H!%+)HI

  77IQ7O
fhEB *Is   B))r/   r,   r   zdf_params, func_paramsr_idx_nlevelsr/   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        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r>   ).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   r-   rO   r   FrR   )r   r   r   r>   r   r   r   r4   r   r   r2   r:   )r   r   	df_paramsfunc_paramsr   r&   r"   r   rb   rc   r   s    `  `      r   test_to_csv_paramsz%TestDataFrameToCSV.test_to_csv_params  s     ==)** +y9:+ E
 E==) ,, -y9:- G
 uU|<!r!X<FKGrwwu~.eWM7477DPKP
fhEB =s   C;c                    t         j                  |d<   d }|j                  j                  |      |d<   t	        j
                         5 }|j                  |       | j                  |      }t	        j                  ||       t	        j                  t        j                  |      t        j                  |             d d d        y # 1 sw Y   y xY w)NGc                     t         j                  t         j                  gt         j                  j	                  d      j                         dk     S )Nr/         ?)r4   infr5   rZ   r[   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)
r4   r5   r&   r   r2   r3   r8   r   r:   isinf)r   rA   r   r   rC   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__ 	K$t$]]4(F!!+v6!!"((;"7&9IJ	K 	K 	Ks   	A5CCc                    t         j                  |d<   t         j                   |d<   t        j                         5 }|j	                  |       | j                  |      }t        j                  ||       t        j                  t        j                  |      t        j                  |             d d d        y # 1 sw Y   y xY w)NEF)r4   r  r2   r3   r8   r   r:   r  )r   rA   r   rC   s       r   test_to_csv_from_csv_w_all_infsz2TestDataFrameToCSV.test_to_csv_from_csv_w_all_infs  s    66CFF7C__ 	K$t$]]4(F!!+v6!!"((;"7&9IJ	K 	K 	Ks   A5B::Cc                 p   t        j                  d      5 }t        g dg dd      }|j                  |d       t	        |      }t        j
                  ||       t        g dd	      |d
<   |j                  |d       t	        |      }t        j
                  ||       d d d        y # 1 sw Y   y xY w)N__tmp_to_csv_no_index__r+   r/   r,   r   r      )c1c2Fr%   )      	   r@   r-   c3)r2   r3   r   r8   r   r:   r	   )r   r   rb   rc   s       r   test_to_csv_no_indexz'TestDataFrameToCSV.test_to_csv_no_index  s    __67 	.4)9=>BIId%I(d^F!!"f-iw7BtHIId%I(d^F!!"f-	. 	. 	.s   BB,,B5c                     t        g dg dd      }d|d<   |j                         |j                  g d      k(  sJ y )NrJ   rK   r   )aabbcc)r   r+   txttest)r   r+   r5  r!   )r   r8   )r   rb   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
      5 }|j                  |dd	g       | j	                  |      }t        j
                  ||       |j                  |ddd	g       | j	                  |      }|j                  d      }|J t        j
                  ||       d d d        y # 1 sw Y   y xY w)Nr+   r/   r,   r   r   r    r!   rU   rV   __tmp_to_csv_headers__r#   F)r&   r$   T)inplace)r   r2   r3   r8   r   r:   reset_index)r   from_dfto_dfr   rC   return_values         r   test_to_csv_headersz&TestDataFrameToCSV.test_to_csv_headers  s     aVaV,sCjAAq6Aq6*S#J?__56 	1$NN4c
N3]]4(F!!%0NN4uc3ZN@]]4(F!--d-;L'''!!%0	1 	1 	1s    BCC"c                    |}|j                   }t        j                  t        |      dz  t        j                        j                  dd      }t        j                  |ddg      }||_         t        j                  d      5 }|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        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 d        t        j                  d      5 }d+d}t'        t        j(                  d      t        j                  t+        d      D cg c]  }t+        d      D cg c]  }d| 	 c}  c}}t-        d            t        j                  t+        d      D cg c]  }t+        d      D cg c]  }d| 	 c}  c}}t-        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}}t-        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}}t-        d            t        j                  t+        d      D cg c]  }t+        d      D cg c]  }d| 	 c}  c}}t-        d$            !      }|j                  |       t        |g d"g d%#      }t        j                  ||        |       }|j                  |d       t        |ddg	      }t        j                  ||        |d      }|j                  |d       t        |ddg	      }t/        j0                  |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(}t3        j4                  t6        |      5  t        |t-        t+        |            d#       d d d        N d)}t3        j4                  t8        |      5  |j                  |dd*g       d d d        d d d        t        j                  d      5 }	d d j                  |       | j                  |      }
|	d d }g |_         t        j:                  |
j                   |j                          t        |
      dk(  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   Tx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   xxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w),Nr/   r-   firstsecondnames__tmp_to_csv_multiindex__Fr#   r   r    r!   r   r+   r*   rR   timefoor(   zCould not infer formatrX   Trm   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  r/   r   r   rH   )size))bahrG  )rJ  bar)banbazrC  r@   r"   r.   )r   r4   rZ   r[   r   r   r]   rC  s    r   _make_framez>TestDataFrameToCSV.test_to_csv_multiindex.<locals>._make_frameI  s]    D=$h/E II))!,55a&5I&22HPU " r   r   r,   r   r,   r   r   r   r  r  )r   r+   r/   r,   )r$   r   abcrQ   )r'  r*  zlen of z, but only 5 lines in filez%cannot specify cols with a MultiIndexrK  r   )r&   r4   r?   r;   r@   reshaper   r   r2   r3   r8   r   r:   rD  assert_produces_warningUserWarningr"   r<   r=   r   r   r>   r   comall_noner_   r`   r   	TypeErrorassert_index_equal)r   rA   rB   frame	old_indexarrays	new_indexr   rb   tsframerC   rO  r   r   rc   rh   exps                    r   test_to_csv_multiindexz)TestDataFrameToCSV.test_to_csv_multiindex  s   KK	3y>A-RXX>FFq"M**6'89LM	__89 *	-TLLeL,LLSzL2 LLt1v5IB !!%?;;$$666 !*K %GI"BIIc)nBHH$MNI&229=GMNN4fe_N=++#; Q t1v4PQ !!'6uE NN4 ]]44]8Fv~~&#goo*>*BBBB NN4uN-]]44]8F""6==.2G2GH $-N U*	-X __89 Z	8T	 "..;@8Daa111#h1DDQWL !,,;@8Daa111#h1DDQUJB IIdOd<Aq6JF!!"f- "..;@8Daa111#h1DDQWLB IIdOd<1EF!!"f- "..;@8Daa111#h1DDQWL !,,;@8Daa111#h1DDQVKB IIdOd<9MF!!"f- BIId%I(dAq62F!!"f- T"BIId%I(dAq62F<<!5!5666#%::#3#3FNN !!"f- BIIdOdAq6aSAF!!"f-T"BIIdOdAq6aSAF!!"f- T"BIIdO Gs"<=]];c: GT$uQx.AFG GG :Cy4 8		$	78sZ	8x __89 		$TBQKt$]]4(F"1+CCI!!&..#++>v;!###		$ 		$cQ Q/*	- *	-| 2D 2D 2D 2D 2DLG G
8 8sZ	8 Z	8x		$ 		$s&  D&_+_C_*;`<%_17_,_1/`<7_<	_7_<B`<!`3`?`B`<	``'`,/`<`-`9`>G`<!`#:'`<!`07`<A,a_	__),_11`<7_<<`<``<``<``<#`-(`<0`9	5`<<aac                    t        t        d      t        d      dt        j                  dd            }t        j                  d      5 }|j                  |       | j                  |d      }|j                         }|r!|j                  j                  d      |_
        n$|j                  j                  t              |_
        t        j                  ||       d d d        y # 1 sw Y   y xY w)	NrQ  r,   r   r    r   r%   z!__tmp_to_csv_interval_index__.csvrm   zstring[pyarrow_numpy])r   r   r>   rn   interval_ranger2   r3   r8   r   r^   r&   astyper   r:   )r   using_infer_stringrb   r   rc   r   s         r   test_to_csv_interval_indexz-TestDataFrameToCSV.test_to_csv_interval_index  s    T%[uQx8@Q@QRSUV@WX__@A 	4TIIdO]]41]5F wwyH!!)!6!67N!O!)!6!6s!;!!&(3	4 	4 	4s   BC''C0c                    t        t        j                  j                  d      j	                  d      j                  t        j                              }t        j                  |d<   t        j                  d      5 }|j                  |d       t        |d      5 }|j                         }|d   j                  d	      d   d
k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr/   )r+   r   r+   z!__tmp_to_csv_float32_nanrep__.csvi  )na_reputf-8r   ,999)r   r4   rZ   r[   r\   rc  float32r5   r2   r3   r8   open	readlinessplit)r   rb   r   r   liness        r   test_to_csv_float32_nanrepz-TestDataFrameToCSV.test_to_csv_float32_nanrep  s    II!!!$44V<CCBJJO
 1__@A 	7TIId3I'dW- 7Qx~~c*1-6667	7 	77 7	7 	7s$   =!C)-CC)C&	"C))C2c                     t        g dg dd      }t        j                  d      5 }|j                  |       | j	                  |      }t        j
                  ||       d d d        y # 1 sw Y   y xY w)Nr%  )z5,6z7,8z9,0ra  z__tmp_to_csv_withcommas__.csvr   r2   r3   r8   r   r:   r   rb   r   rr   s       r   test_to_csv_withcommasz)TestDataFrameToCSV.test_to_csv_withcommas  s_    Y-BCD__<= 	+IIdO--%C!!#r*	+ 	+ 	+s   9A**A3c           	      J   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            }t        t        d      j                  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$                         5 }|j'                  |       t)        |d| |d            }t#        j*                  ||       d d d        y # 1 sw Y   y xY w)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   r/   )r   r   float64float)r.   r"   r@   rp   TboolrO   rG  r   20010101nsdate   2   r+   r,   )axisr   )r   r.   r'   )r   r4   rZ   r[   r\   rc  r&   r
   as_unitr5   r6   rn   ro   rz  r@   bool_r   r2   r3   r8   r   r:   )r   ry  df_floatdf_intdf_bool	df_objectdf_dtrb   dtypesr   r.   r   filenamerf   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X1F
	 j!))$/..'
 %'FFbeQqSj!!#

2b5!A#:YY&'9eD1M bjj!BHHRXXv	
 	"HAu !^ "!q	"	" __ 	*(IIhAVVATB !!"b)	* 	* 	*s   =HH"c           	         t        t        j                  j                  d      j	                  d      t        t        d            t        t        d            z   d      }t        j                         5 }|j                  |       t        |d      }|j                  |_        t        j                  ||       d d d        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!                  d      |j                  t        d            }t#        j$                  |||||gdd      }g ddz  |_        t        j                         5 }|j                  |       t        |d      }dD ]  }	t'        ||	         ||	<    |j                  |_        t        j                  ||       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr/   )r   r     rz  rN  r   rm   )r   r,   r-   r@   Tr,   rO   rG  r}  r~  r+   )r  ignore_indexrQ   r   )z0.4z1.4z2.4)r   r4   rZ   r[   r\   r   r>   r2   r3   r8   r   r"   r:   rc  r&   r
   r  rn   ro   r   )
r   rb   r  rc   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
 __ 	.(IIhh!4FZZFN!!&"-		. II!!!$44Y?y
 299003CCINOVV
 DaIe8>>58L	j!))$/x~~uUVx
 YYvw	59PT
 ]
__ 		.(IIhh!4F + 3'q	2q	3  ZZFN!!&"-		. 		./	. 	..		. 		.s   6AI";AI/"I,/I8c           
         t        t        j                  d      t        t	        d      D cg c]  }d| 	 c}d      t        g dt
                    }t        j                         5 }|j                  |       t        |d	
      }|j                  ddi      }t        j                  ||       d d d        y c c}w # 1 sw Y   y xY w)NrP  r   r   rG  rz   rI   r-   rO   r   rm   za.1rJ   r!   )r   r4   r   r   r>   r   r2   r3   r8   r   renamer:   )r   r   rb   r  rc   s        r   test_to_csv_dups_cols2z)TestDataFrameToCSV.test_to_csv_dups_cols2-  s    GGFO584a2aS45A/8
 __ 	.(IIh h!4F]]E3<]8F!!&"-	. 	.	 5	. 	.s   B>,A	CCr   )i'  iP  順 c                 Z   t        dt        d      i      }|j                  dz   |d<   |j                  dz   |d<   |j                  dz   |d<   t        j                         5 }|j                  ||	       t        |d
      }t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr   r        ?r    g       @r   g      @r   r   r   rm   )r   r>   r   r2   r3   r8   r   r:   )r   r   r1  r  rf   s        r   test_to_csv_chunkingz'TestDataFrameToCSV.test_to_csv_chunking=  s    U6]+,$$*3$$*3$$*3__ 	*(IIh)I4(a0B!!"b)	* 	* 	*s   !7B!!B*c                    d}t        t        j                  j                  d      j	                  d|dz   f      d d       }t        j                         5 }|j                         5 }|j                  d|       |j                  |dd       d d d        t        |d 	      }d d d        t        j                  |       y # 1 sw Y   5xY w# 1 sw Y   ,xY w)
Nr   r/   r+   r   r  z/pandas.io.formats.csvs._DEFAULT_CHUNKSIZE_CELLSF)r$   r&   r#   )r   r4   rZ   r[   r\   r2   r3   contextsetattrr8   r   r:   )r   monkeypatchr   rb   r  mrf   s          r   !test_to_csv_wide_frame_formattingz4TestDataFrameToCSV.test_to_csv_wide_frame_formattingI  s     	II!!!$44aR5HI

 __ 	1($$& ?!		KYW		(5	>? (40B		1
 	b"%	? ?	1 	1s$   C''CCC	CCc                 8   t        d      }| j                  |d       }t        d||j                  d      i      }t	        j
                         5 }|j                  |       t        |d      }t	        j                  ||d       d d d        y # 1 sw Y   y xY w)Nza,1.0
b,2.0r#   tr   rm   FrR   )r   r   r   r"   r2   r3   r8   r:   )r   f1rb   newdfr   rC   s         r   test_to_csv_bugz"TestDataFrameToCSV.test_to_csv_bugY  s    n%]]2d]+32::a= 123__ 	D$LLda0F!!&%UC	D 	D 	Ds   7BBc                 R   t        dg di      }t        j                         5 }|j                  |d       t	        |dd      }t        j
                  ||       |j                  |dd       t	        |d d      }t        j
                  ||       d d d        y # 1 sw Y   y xY w)	Nu   c/σr%  UTF-8ri  r   r   r   Fr   r&   rs  rt  s       r   test_to_csv_unicodez&TestDataFrameToCSV.test_to_csv_unicodee  s    
I./__ 	+$IIdWI-41w?C!!"c*IIdWEI:44'BC!!"c*	+ 	+ 	+s   A0BB&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  ri  r   r  )r   r   r8   seekr   r2   r:   )r   bufrb   rr   s       r   test_to_csv_unicode_index_colz0TestDataFrameToCSV.test_to_csv_unicode_index_colp  sd    rl)+CD<X&
 			#	(sa':
b#&r   c                     t               }|j                  |       |j                  d       t        |d      }t	        j
                  ||       y )Nr   rm   )r   r8   r  r   r2   r:   )r   rA   r  rC   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                         5 }|j                  |d       t	        |d	
      }t        g dg dgddgg d      }t        j
                  ||       d d d        y # 1 sw Y   y xY w)Ng~Ϛ?g9DܜJ?g>D)?g.4i(@33333@̤Ar   r    rU   rV   rW   rO   z%.2f)float_formatr   rm   )gQ?gq=
ףp?g=
ףp=?)gp=
ף(@r  r  rs  )r   rb   r  rf   rg   s        r   test_to_csv_float_formatz+TestDataFrameToCSV.test_to_csv_float_format  s    +-KL*#
 __ 		*(IIhVI4(a0B#%BCCj'B
 !!"b)		* 		* 		*s   ABBc                     t        dddgi      }|j                  dd d      }g d}t        j                  |      }||k(  sJ y )	NrJ   r  r  rj  c                 0    t        j                  | d      S )N-)trim)r4   format_float_positionalr   s    r   r   zJTestDataFrameToCSV.test_to_csv_float_format_over_decimal.<locals>.<lambda>  s    2#=#=ac#J r   F)decimalr  r&   )rJ   z0.51)r   r8   r2   convert_rows_list_to_csv_strr   rb   rc   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%  )rG  rK  rM  ra  Frh  )r&   quotingr   )z"A","B"z1,"foo"z2,"bar"z3,"baz")r   r   r8   csvQUOTE_NONNUMERICgetvaluer2   r  )r   rb   r  rc   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   rh  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   r8   r  
QUOTE_NONEr  r2   r  )r   r   rb   r  rc   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&  ra  onetwothreer%   Fr(   )zA,Bzone,1,4ztwo,2,5z	three,3,6)r   r   r8   r2   r  r  )r   rb   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                         5 }|j                  |d       d}t	        |d	
      5 }|j                         |k(  sJ 	 d d d        d d d        t        j                         5 }|j                  |d       d}t	        |d	
      5 }|j                         |k(  sJ 	 d d d        d d d        t        j                         5 }|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        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   DxY w# 1 sw Y   y xY w)Nr%  r&  ra  r  r%   
lineterminators#   ,A,B
one,1,4
two,2,5
three,3,6
rb)rl   
s   ,A,B
one,1,4
two,2,5
three,3,6
rh  s   ,A,Bs   one,1,4s   two,2,5s	   three,3,6)	r   r2   r3   r8   rm  readoslinesepencode)r   rb   r   r   r   
os_lineseps         r   test_to_csv_lineterminatorsz.TestDataFrameToCSV.test_to_csv_lineterminators  s   YY7?VW__ 	,$IId6I2EHd& ,!vvx8+++,	, __ 	,$IId4I0=Hd& ,!vvx8+++,	, __ 	,$IIdO**73J  	
     d& ,!vvx8+++,	, 	,, ,	, 	,, ,	, 	,., ,	, 	,sl   #E1E$%E1	#F
,E>F
'AF"<FF"$E.	)E11E;>F	F

FF	F""F+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)rJ   rK   rK   rJ   rJ   r   r   r   Fr#   r   )r	   rn   Categoricalr   r8   r  r   )r   r   r1   resr^  rb   rr   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   rm   )r8   r   r   r   r   r2   r:   )r   rA   csv_strrC   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  rO   )rQ  defghir!   asciir   ){   u   你好u   世界gb2312)r  u   Γειά σουu
   Κόσμεcp737c           
      J   t        j                         5 }|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        d d d        y # 1 sw Y   xY w# 1 sw Y   _xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)
N)compressionr   r   )r  r   r   wri  )r  r   r   r"   r   r  )r2   r3   r8   r   r:   r   handleclosedsqueezedecompress_filer  r   r"   )
r   rb   r   r  r  rc   handlesfhtextcols
             r   test_to_csv_compressionz*TestDataFrameToCSV.test_to_csv_compression  s   0 __ 	X(IIhK(IKkQF !!"f- #; 1		'..8	<">>00000	1 '!	
 gi   !!"f- ##Hk: 'bwwy''(:F;:: 'C$;&;''
 ##Hk: Xb%%b(2X*VWX;	X 	X1 1' '
X X;	X 	Xs[   A	F6E5AF'7FF#F#F$F5E>	:FF
	FF	FF"c                    t        j                  d      5 }|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                  ||	       d d d        y # 1 sw Y   y xY w)N__tmp_to_csv_date_format__r+   ra  r%   %Y%m%ddate_formatr   rm   c                 6    t        | j                  d            S Nr  rp   strftimer   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>N  s    c!**XBV>W r   c                 6    t        | j                  d            S r  r	  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>P      #ajj23 r   %Y-%m-%dc                 $    | j                  d      S Nr  r
  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>Y  s    ajj>T r   c                 $    | j                  d      S r  r  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>[  s    !**Z0 r   c                 6    t        | j                  d            S r  r	  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>g  r  r   c                 $    | j                  d      S r  r  r   s    r   r   z<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>k  s    !**X. r   r   r   )
2000-01-01r  r  r   )r'   r   )r2   r3   r&   r   shiftr8   r   r   r:   Tr"   r   )
r   rB   r   ry   r5  datetime_frame_intdatetime_frame_strdatetime_frame_columns	nat_index	nat_frames
             r   test_to_csv_date_formatz*TestDataFrameToCSV.test_to_csv_date_formatC  s   __9: 5	3d%++H&X^^A%67xN !!$H!= DA.D!/!3!34W!X'9'?'?'C'C3($ !!$(:;!!$J!? DA.D!/!3!34T!U'9'?'?'C'C0($ !!$(:; &4%5%5""))$H)EDA.D%;%?%?3&" .D-K-K-O-O.."* !!$(>? $"III "3	"2)DITz:Dq!fBD!!$	2k5	3 5	3 5	3s   GG..G7tdr   10sc                    t        j                  d      5 }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                  ||       d d d        y # 1 sw Y   y xY w)Ncsv_date_format_with_dstz2013-10-26 23:00z2013-10-27 01:00zEurope/Londonr  infer)r   r   	ambiguousr@   r-   r   r%   Tr   rm   utc)r2   r3   r   r9   r4   r   r>   r;   r   r8   r   r   r&   r   r:   )r   r  r   timesr   
time_rangerb   rc   s           r    test_to_csv_with_dst_transitionsz3TestDataFrameToCSV.test_to_csv_with_dst_transitions{  s    __78 	.D"""!E 
AT"A%A-w?JC,A6BIId$I' da0F&v||>IIFL !!&"-)	. 	. 	.s   C CC(c                    t        dddd      }|j                  d       }d |j                  _        t	        d|d|      }t        j                  d	      5 }|j                  |d
       t        |d      }t        |j                  d
      j                  d      |_
        t        |d   d
      j                  d      |d<   t        j                  ||       d d d        |j                  t               t        j                  d	      5 }|j                  |       t!        j"                  |      }t        j                  ||       d d d        y # 1 sw Y   yxY w# 1 sw Y   y xY w)Nz
2015-01-01z
2015-12-31r  zEurope/Paris)r   r   r+   )r=   idxr%   r   Tr   rm   r#  r)  zdatetime64[ns, Europe/Paris])r   r9   _data_freqr   r2   r3   r8   r   r   r&   r   rc  r:   r   	to_picklern   read_pickle)r   r)  rb   r   rc   s        r   ,test_to_csv_with_dst_transitions_with_picklez?TestDataFrameToCSV.test_to_csv_with_dst_transitions_with_pickle  s2   |#.QnnT"		!C0<__78 		.DIId$I'da0F&v||>IIFL (u4@GG.F5M !!&"-		. 			#__78 	.DLL^^D)F!!&"-	. 	.		. 		.	. 	.s   BE=EEE(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	@*   rJ   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")r7  z0,True,1.0,42.0,"a"z1,False,3.2,"","b,c"z%need to escape, but no escapechar setrX   )r  
escapechar)r5  r6  z1,False,3.2,,b!,c!)z,c_bool,c_ffloat,c_int,c_stringr6  z1,False,3.2,,bf,cr   za,b,cz1,"test 
",3rh  r  r+   r/   r,   r   r   r'  r0  rK   )z"a","b","c"z"1","3","5"z"2","4","6")r   r4   r5   r2   r  r8   r  QUOTE_MINIMAL	QUOTE_ALLr  r_   r`   Errorr  r   r   r  	set_index)	r   rb   r  r   rc   rh   	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  )rC  z01-01-1990,4z01-01-2000,5z01-01-3005,6rA  rB  )rC  rD  z,5rE  )rn   PeriodIndexr   r8   r2   r  r   )r   datesr&   rb   rc   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))rJ   r+   )rJ   r/   )rK   r+   )rK   r/   r   )r   r'  r*  r+  )rJ   rK   r   dr#   )z,a,b,c,dz	0,1,2,3,4z	1,5,6,7,8)r   r]   r   r"   r8   r2   r  )r   r"   rb   r$   rc   r  r   s          r   test_multi_index_headerz*TestDataFrameToCSV.test_multi_index_header-  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)r+   )r/   r,   r%  r!   rM  rN  z,1,3
0,1,3
r  r  )r   r   reindexr8   r2   r<   )r   r&   rb   r   rc   s        r   $test_to_csv_single_level_multi_indexz7TestDataFrameToCSV.test_to_csv_single_level_multi_index:  sT    ()	{E2ZZtZ-"$/
vx0r   c                 r   t        dddgi      }g d}t        j                  |      }t        j                  d      5 }|j	                  |d       t        j
                  |d	      5 }|j                         j                  d
      }d d d        d d d        |k(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w)NrJ   r+   r/   )rJ   r  2z__test_gz_lineend.csv.gzFr%   gzip)r  rh  )r   r2   r  r3   r8   r  r  r   )r   rb   r  r   r   r   rc   s          r   test_gz_lineendz"TestDataFrameToCSV.test_gz_lineendC  s    aV}%'22=A__78 	2DIId%I(##Df= 212	2
 !!!2 2	2 	2s#   +B-) B!	B-!B*	&B--B6c                     t        dt        dd      i      }t               }|j                  |       |j	                         }d|v sJ y )NrJ   z1/1/2000r   r   r  )r   r   r   r8   r  )r   rY  r  rc   s       r   test_to_csv_numpy_16_bugz+TestDataFrameToCSV.test_to_csv_numpy_16_bugO  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&   rg  r  r  z""
""
)r   r8   replace)r   rc   r   s      r   test_to_csv_na_quotingz)TestDataFrameToCSV.test_to_csv_na_quotingX  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 )NrL   r+   r   rK   Int16category)z,a,bz0,x,1z1,x,)r   rn   NArc  r8   r2   r  r  s        r   test_to_csv_categorical_and_eaz1TestDataFrameToCSV.test_to_csv_categorical_and_eac  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 )	NrJ   r   z
2020-01-02both)r  r\  z,az.0,"[2020-01-01 00:00:00, 2020-01-02 00:00:00]")r   rn   Intervalr
   rc  r8   r2   r  r  s        r   $test_to_csv_categorical_and_intervalz7TestDataFrameToCSV.test_to_csv_categorical_and_intervalm  s    KK!,/!,/%

 S'..,3OP22=A!!!r   )NNNNF)C__name__
__module____qualname__r   rE   ri   rt   r   r   r   r_   markparametrizer   slowr   r   r   filterwarningsr   r   r  r  r	  r  r  r"  r.  r6  r>  r_  re  rq  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  rn   r}   r'  r.  r?  rH  rK  rP  rT  rV  rY  r^  rb  r   r   r   r   r      s   ($.L"=H*E :A& [[VdS#J%78"C 9"CH [[A A: gR [[[[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(K
K
.@1$X$t4"7+.*`'.R.  [[[*@A	* B	* [[& &
D	+'3*$
"	" [[Z$9	" :	"*$,L003 [[ 35ST*+
  -.H'Rq566PRZ[?@@+ 	
.X/.XB63p [[TLBLLO\R\\%5H#IJ. K...2`<D">"1
"&	"""r   r   )r  ior   r  numpyr4   r_   pandas.errorsr   pandasrn   r   r   r   r   r	   r
   r   r   r   r   pandas._testing_testingr2   pandas.core.commoncorecommonrU  pandas.io.commonr   r   r   r   r   <module>rt     sC    
  	   %         'a" a"r   