
    d                        d dl mZm Z mZ d dlmZ d dlmZ d dlZd dlZd dl	Z
d dlZd dlmc mZ d dlZd dlmZmZmZmZ d dlmZ d dlmZmZmZmZmZ d dlm Z  ej!        d             Z"ej!        d	             Z#ej$        %                    d
 ej&        d ej'        d           ej'        d          g           ej&        d ej'        d           ej'        d          g           ej&        d ej'        d           ej'        d          g           ej&        d ej'        d                    g           G d d                      Z(ej$        %                    d ej&        dd ej'        d           ej'        d          g           ej&        dd ej'        d           ej'        d          g           ej&        dd ej'        d           ej'        d          g           ej&        dd ej'        d                    g          ej$        )                    d           G d d                                  Z* G d d          Z+ ej'        d           ej'        d           G d d                                  Z,ej$        %                    d e j-                              d             Z.dS )    )datedatetime	timedelta)partial)BytesION)	DataFrameIndex
MultiIndexoption_context)	ExcelFileExcelWriter_OpenpyxlWriter_XlsxWriterregister_writer)_writersc              #   l   K   t          j        |           5 }|V  ddd           dS # 1 swxY w Y   dS )z9
    Fixture to open file for use in each test case.
    N)tmensure_clean)ext	file_paths     ^/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/io/excel/test_writers.pypathr   #   s      
 
		                  s   )--c              #      K   d|                     d           d}t          ||           5  dV  ddd           dS # 1 swxY w Y   dS )aM  
    Fixture to set engine for use in each test case.

    Rather than requiring `engine=...` to be provided explicitly as an
    argument in each test, this fixture sets a global option to dictate
    which engine should be used to write Excel files. After executing
    the test it rolls back said change to the global option.
    z	io.excel..z.writerN)stripr   )enginer   option_names      r   
set_enginer   ,   s       6ciinn555K	V	,	,                   s   >AAr   .xlsxopenpyxlxlrdmarksz.xlsm
xlsxwriterz.odsodfc            
          e Zd Zej                            dd eej        gdz            fd edej        gdz  i          fg          d             Z	ej                            dd edgej        gdz  z             fd eej        gdz            fg          d             Z
d	 Zd
 Zd Zej                            dddg          ej                            dddg          ej                            dddg          ej                            dddg          d                                                 Zd Zd ZdS )TestRoundTripzheader,expectedN   r   z
Unnamed: 0   c                 &   d}t          g dg dg dg dg          }t          j        |          5 }|                    ||dd           t	          j        ||dg|	          }d d d            n# 1 swxY w Y   t          j        ||           d S )
N	no_header    d   r-         r-   r)   i,  r-   r(   i  Findexheaderr   
sheet_nameusecolsr7   r   r   r   to_excelpd
read_excelassert_frame_equalselfr   r7   expectedfilenamedfr   results           r   !test_read_one_empty_col_no_headerz/TestRoundTrip.test_read_one_empty_col_no_headerG   s     lllLLL,,,OPP_S!! 	TKKheEKBBB]A3v  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	fh/////   3A11A58A5c                 &   d}t          g dg dg dg dg          }t          j        |          5 }|                    |ddd           t	          j        ||d	g|
          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nwith_headerr,   r0   r3   r4   FTr5   r   r8   r;   r@   s           r   #test_read_one_empty_col_with_headerz1TestRoundTrip.test_read_one_empty_col_with_headerX   s    
 !lllLLL,,,OPP_S!! 	TKKm5KFFF]A3v  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	fh/////rG   c           	      d   t          ddgddgddggddg	          }t          j        |          5 }t          |          5 }|                    |d
dd           |                    |dd           d d d            n# 1 swxY w Y   ddg|_        t          |          5 }t          j        |d
d ddg          }t          j        |dd ddg          }d d d            n# 1 swxY w Y   t          j	        ||           t          j	        ||           d d d            d S # 1 swxY w Y   d S )Nr.   foor1   barr)   bazabcolumnsData_no_headF)r7   r6   Data_with_headr6   AB)r9   r7   names)r9   	index_colrX   )
r   r   r   r   r<   rR   r   r=   r>   r?   )rA   r   refdfpthwriterreaderxlsdf_no_headxlsdf_with_heads           r   "test_set_column_names_in_parameterz0TestRoundTrip.test_set_column_names_in_parameterh   s     Au:5zAu:>c
SSS_S!! 	:SS!! FVv~e5QQQv'7uEEEF F F F F F F F F F F F F F F !#JEM3 	6 "~d3PS*! ! ! #%-/"*	# # #		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !-777!/5999'	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:sY   D%2A?3D%?B	D%B	D%"5C#D%#C'	'D%*C'	+-D%%D),D)c                   
 d 
g d}
fd|D             }t          t          ||                    }t          j        |          5 }t	          |          5 }|                                D ]\  }}|                    ||           	 d d d            n# 1 swxY w Y   t          j        ||d          }|D ]#}	t          j	        ||	         ||	                    $	 d d d            d S # 1 swxY w Y   d S )Nc                 8    g dg d}}t          ||| g          S )N)      !   r.   r1   r)   rQ   )r   )col_sheet_namedis      r   tdfzDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdf   s+    <<qAQN+;<<<<    )AAABBBCCCc                 &    g | ]} |          S  rp   ).0srj   s     r   
<listcomp>zKTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.<listcomp>   s!    &&&!ss1vv&&&rk   r   r9   rY   )
dictzipr   r   r   itemsr<   r=   r>   r?   )rA   r   sheetsdfsr[   ew	sheetnamerD   dfs_returnedrr   rj   s             @r   )test_creating_and_reading_multiple_sheetsz7TestRoundTrip.test_creating_and_reading_multiple_sheets   s   
	= 	= 	= '&&&&&&v&&&3vs##$$_S!! 	?SS!! /R%(YY[[ / /MIrKKI....// / / / / / / / / / / / / / / =1MMML ? ?%c!fl1o>>>>?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s7   C,1B
C,B	C,B	A C,,C03C0c                 L   t          j        |          5 }t          ddiddiddiddid          }t          ddiddiddiddid          }|                    |           t	          j        |ddgd          }t          j        ||           t          ddiddiddiddid          }t          ddiddiddiddid	          }|                    |           t	          j        |ddgd          }t          j        ||           d d d            d S # 1 swxY w Y   d S )
Nr   r.   r)      )OnexTwoXr   Y)Zeror-   )r   r   r   )r   zUnnamed: 4_level_1r7   rY   ))Begr-   Middler   Tailr   r   r   ))r   zUnnamed: 1_level_1r   r   r   r   r   r   r<   r=   r>   r?   )rA   r   r   rD   rB   actuals         r   &test_read_excel_multiindex_empty_levelz4TestRoundTrip.test_read_excel_multiindex_empty_level   s   _S!! +	4T#$a&#$a&#$a&#$a&	  B !#$a&#$a&#$a&56F	  H KK]4A!DDDF!&(333"#Q&'V$%q6$%q6	  B !45q6&'V$%q6$%q6	  H KK]4A!DDDF!&(333W+	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4 +	4s   C7DD Dc_idx_namesTFr_idx_namesc_idx_levelsr.   r_idx_levelsc           
      `   t          j        |          5 }|dk    rD|rB|dk    r|r:t          j                            d          }|j                            |           |p|dk    }	t          j        dd||||          }
|
                    |           t          j
        |t          t          |                    t          t          |                              }t          j        |
||	           t          j        |
j        dd d f<   |
                    |           t          j
        |t          t          |                    t          t          |                              }t          j        |
||	           t          j        |
j        d	d d f<   |
                    |           t          j
        |t          t          |                    t          t          |                              }t          j        |
||	           d d d            d S # 1 swxY w Y   d S )
Nr.   r)   z?Column index name cannot be serialized unless it's a MultiIndex)reason   )rY   r7   )check_namesr   )r   r   pytestmarkxfailnode
add_markermakeCustomDataframer<   r=   r>   listranger?   npnaniloc)rA   r   r   r   r   r   requestr[   r   r   rD   acts               r   test_excel_multindex_roundtripz,TestRoundTrip.test_excel_multindex_roundtrip   s    _S!! +	DS!!k!!!+!{((( )   ''--- &:):K'1k;l B KK-u\2233E,//00  C
 !"c{CCCCFBGAqqqDMKK-u\2233E,//00  C
 !"c{CCCCVBGBENKK-u\2233E,//00  C
 !"c{CCCCW+	D +	D +	D +	D +	D +	D +	D +	D +	D +	D +	D +	D +	D +	D +	D +	D +	D +	Ds   HH##H'*H'c                    t          g dt          j        dd          d          }|                                }|d         j                            d          |d<   t          j        |          5 }|                    |           t          j	        |d	          }t          j
        ||           t          j	        |dgd
          }t          j
        ||           d }t          j        t          d          5  t          j	        |dg|d          }d d d            n# 1 swxY w Y   t          j
        ||           t          j	        |dgdd          }t          j
        ||           d d d            d S # 1 swxY w Y   d S )Nrf   z
2012-01-01r)   )periods)coldate_stringsr   %m/%d/%Yr   rY   )parse_datesrY   c                 ,    t          j        | d          S )Nr   )r   strptimer   s    r   <lambda>z;TestRoundTrip.test_read_excel_parse_dates.<locals>.<lambda>  s    H$5a$D$D rk   zuse 'date_format' insteadmatch)r   date_parserrY   )r   date_formatrY   )r   r=   
date_rangecopydtstrftimer   r   r<   r>   r?   assert_produces_warningFutureWarning)rA   r   rD   df2r[   resr   s          r   test_read_excel_parse_datesz)TestRoundTrip.test_read_excel_parse_dates   s$   IIr}\ST/U/U/UVV
 
 ggii!.14==jIIN_S!! 	+SLL-q111C!#s+++-.1AQOOOC!"c***DDK+%@     m!/ 0 +	                 !"c***-.!1zUV  C !"c***/	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s8   4BF D&F&D*	*F-D*	.AFFFc                 2   t          j        t          d          t          j        t          j        d          dd          g          }t          t          d          |          }t          j        |          5 }|	                    |           t          j
        |ddg          }d d d            n# 1 swxY w Y   t          t          d          t          j        t          d          g d	g                    }t          j        ||           d S )
Nr(   z
2020-01-016M)startr   freqrU   r   r.   r   )z(2020-01-31, 2020-07-31]z(2020-07-31, 2021-01-31]z(2021-01-31, 2021-07-31]z(2021-07-31, 2022-01-31])r
   from_arraysr   r=   interval_range	Timestampr   r   r   r<   r>   r?   )rA   r   midxrD   r[   rE   rB   s          r   "test_multiindex_interval_datetimesz0TestRoundTrip.test_multiindex_interval_datetimes  sP   %a!,|44ad  
 
 uQxxt,,,_S!! 	:SKK]31a&999F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: !HH"!HH  
 

 
 	fh/////s   =.B77B;>B;)__name__
__module____qualname__r   r   parametrizer   r   r   rF   rJ   r`   r}   r   r   r   r   rp   rk   r   r'   r'   ;   s        [
		26(Q,''	(1iixRS|8T.U.U*VW 0 0	 0 [
		1#1,--	.IIrvhl4K4K0LM 
0 
0	 
0: : :4? ? ?0-4 -4 -4^ []T5M::[]T5M::[^aV44[^aV44/D /D 54 54 ;: ;:/Db+ + +B0 0 0 0 0rk   r'   z
engine,extr   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dej        ej        ej        ej        g          d	             Ze
j                            dej        ej        ej        g          d
             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+e
j                            d d!d"g          e
j                            d#g d$          e
j                            d%g d$          d&                                     Z,d' Z-d( Z.d) Z/e
j                            d*d+d,g          d-             Z0d. Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=e
j                            d;d<e>g          d=             Z?d> Z@d? ZAd@ ZBdA ZCd<S )BTestExcelWriterc                    d}d}t          j        |df          }t          j        d|f          }t          |          }t          |          }d}t          j        t
          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Ni  i@  r.   )shapezsheet is too larger   )r   zerosr   r   raises
ValueErrorr<   )	rA   r   breaking_row_countbreaking_col_countrow_arrcol_arrrow_dfcol_dfmsgs	            r   test_excel_sheet_sizez%TestExcelWriter.test_excel_sheet_sizeU  sf   &&("4a!8999(!%7!89997##7##"]:S111 	" 	"OOD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ]:S111 	" 	"OOD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s$   .BBB6CC Cc                    t          t          j                            dd                    }|                    |           t          |          5 }t          j        |dd          }d d d            n# 1 swxY w Y   t          j	        ||           d}t          j        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )N
   r1   r   rt   zWorksheet named '0' not foundr   0)r   r   randomrandnr<   r   r=   r>   r   r?   r   r   r   )rA   r   gtxlrD   r   s         r   test_excel_sheet_by_name_raisez.TestExcelWriter.test_excel_sheet_by_name_raisef  sJ   ryr1--..
Dt__ 	>ra1===B	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	b"%%%-]:S111 	# 	#M"c"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   A66A:=A:3CCCc                    t          |          5 }|                    |d           |                                }|j        d d d         |_        |                    |d           d d d            n# 1 swxY w Y   t	          |          5 }t          j        |dd          }t          j        |dd          }t          j        ||           t          j        ||           d d d            d S # 1 swxY w Y   d S )NData1r   Data2r   rt   )	r   r<   r   rR   r   r=   r>   r   r?   )rA   framer   r\   frame2r]   found_df	found_df2s           r   !test_excel_writer_context_managerz1TestExcelWriter.test_excel_writer_context_managers  sl    	-&NN67+++ZZ\\F"]44R40FNOOFG,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- t__ 	5}V1MMMHfANNNI!(E222!)V444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s%   AA22A69A6AC22C69C6c                    |                                 }t          j        |j        d d|j                            d          f<   |                    |d           |                    |dddg           |                    |dd           |                    |dd           |                    |d           t          j        |dd	
          }t          j
        ||           |                    |dd           t          j        |dd 
          }|j        |_        t          j
        ||           |                    |dd           t          j        |dd	dg          }t          j
        ||           |                    |dd           t          j        |dd	dg          }t          j
        ||           |                    |dd           t          j        |dd	ddg          }t          j
        ||           |                    |d           t          j        |d	          }t          j
        ||           |                    |d           t          j        |d	          }t          j
        ||           |d         }|                    |           t          j        |d	          }t          j
        |                                |           d S )Nr   rV   test1rW   rQ   Fr7   rU   r   rt   NA)na_rep)r9   rY   	na_values88X   g      V@Sheet1r   r   )r   r   r   r   rR   get_locr<   r=   r>   r   r?   r6   to_frame)rA   r   r   reconsrr   s        r   test_roundtripzTestExcelWriter.test_roundtrip  s   

57V
2A2u},,S1112tW%%%tWsCj999tWU333tWE222 	tW%%%t1EEE
eV,,,tWE222t4HHH{
eV,,,tWT222t1QUPVWWW
eV,,, 	tWT222t1QUPVWWW
eV,,,tWT222Wb$Z
 
 
 	eV,,, 	tX&&&tq111
eV,,,tS!!!tq111
eV,,, #J	

4tq111
ajjllF33333rk   c                 
   |                                 }d|d<   |                    |d           t          |          5 }t          j        |dd          }d d d            n# 1 swxY w Y   t          j        ||           d S )NrM   rL   r   r   rt   )r   r<   r   r=   r>   r   r?   )rA   r   r   mixed_framer]   r   s         r   
test_mixedzTestExcelWriter.test_mixed  s    jjll"ET7+++t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
k622222s   A##A'*A'c                 D   |}t          j        t          j        |j                  d           }||_        |                    |d           t          |          5 }t          j        |dd          }d d d            n# 1 swxY w Y   t          j	        ||           d S )Nr   r   r   rt   )
r=   DatetimeIndexr   asarrayr6   r<   r   r>   r   r?   )rA   tsframer   rD   r6   r]   r   s          r   test_ts_framezTestExcelWriter.test_ts_frame  s      BH!5!5DAAA
D'"""t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
b&)))))s   B  BBc                 N   |                                 }t          j        |j        d d|j                            d          f<   |                    |d           |                    |dddg           |                    |dd           |                    |dd           d S )	Nr   rV   r   rW   rQ   Fr   rU   )r   r   r   r   rR   r   r<   )rA   r   r   s      r   test_basics_with_nanz$TestExcelWriter.test_basics_with_nan  s    

57V
2A2u},,S1112tW%%%tWsCj999tWU333tWE22222rk   np_typec                    t          t          j                            ddd          |          }|                    |d           t          |          5 }t          j        |dd          }d d d            n# 1 swxY w Y   |                    t          j	                  }t          j        ||           t          j        |dd          }t          j        ||           d S )	Nr   )r   r1   sizedtyper   r   rt   )r   r   r   randintr<   r   r=   r>   astypeint64r   r?   )rA   r  r   rD   r]   r   	int_framerecons2s           r   test_int_typeszTestExcelWriter.test_int_types  s    ry((bw(??wOOO
D'"""t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L IIbh''	
i000-AFFF
i11111s   A;;A?A?c                 Z   t          t          j                            d          |          }|                    |d           t          |          5 }t          j        |dd                              |          }d d d            n# 1 swxY w Y   t          j
        ||           d S )Nr   r  r   r   rt   )r   r   r   random_sampler<   r   r=   r>   r  r   r?   )rA   r  r   rD   r]   r   s         r   test_float_typesz TestExcelWriter.test_float_types  s     ry..r22'BBB
D'"""t__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	b&)))))s   +BBBc                 L   t          g dt          j                  }|                    |d           t	          |          5 }t          j        |dd                              t          j                  }d d d            n# 1 swxY w Y   t          j	        ||           d S )N)r.   r   TFr  r   r   rt   )
r   r   bool_r<   r   r=   r>   r  r   r?   rA   r   rD   r]   r   s        r   test_bool_typeszTestExcelWriter.test_bool_types  s    ***"(;;;
D'"""t__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	b&)))))s   5BBBc                 .   t          dt          j        fddt          j         fg          }|                    |d           t	          |          5 }t          j        |dd          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr.   )r1   r)   r   r   r   rt   )	r   r   infr<   r   r=   r>   r   r?   r  s        r   test_inf_roundtripz"TestExcelWriter.test_inf_roundtrip  s    BFVa"&\:;;
D'"""t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	b&)))))s   A55A9<A9c                    t          j        t          j        |j                  d           }||_        |                                }t          j        |j        d d|j        	                    d          f<   |
                    |d           |
                    |dddg           |
                    |dd           |
                    |dd	           t          |          5 }|
                    |d           |
                    |d
           d d d            n# 1 swxY w Y   t          |          5 }t          j        |dd          }t          j        ||           t          j        |d
d          }t          j        ||           d d d            n# 1 swxY w Y   dt!          |j                  k    sJ d|j        d         k    sJ d
|j        d         k    sJ d S )Nr   r   rV   r   rW   rQ   Fr   rU   test2r   rt   r1   r.   )r=   r   r   r  r6   r   r   r   rR   r   r<   r   r   r>   r   r?   lensheet_names)rA   r   r  r   r6   r\   r]   r   s           r   test_sheetszTestExcelWriter.test_sheets  sR    GM!:!:FFF

57V
2A2u},,S1112tW%%%tWsCj999tWU333tWE222  	.&NN67+++VW---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. t__ 	3]6gKKKF!%000]6gKKKF!'6222		3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3
 C*++++++&,Q/////&,Q///////s%   (-D!!D%(D%;AF  F$'F$c                 |   |                                 }t          j        |j        d d|j                            d          f<   |                    |d           |                    |dddg           |                    |dd           |                    |dd           t          g d	          }|                    |d|           t          |          5 }t          j
        |dd
          }d d d            n# 1 swxY w Y   |                                 }||_        t          j        ||           d S )Nr   rV   r   rW   rQ   Fr   rU   )AAr   r   Zr   rt   )r   r   r   r   rR   r   r<   r	   r   r=   r>   r   r?   )rA   r   r   col_aliasesr]   rsxps          r   test_colaliaseszTestExcelWriter.test_colaliases  su   

57V
2A2u},,S1112tW%%%tWsCj999tWU333tWE222 11122tW[999t__ 	Hv'QGGGB	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	HZZ\\ 

b"%%%%%s   DDDc                    |                                 }t          j        |j        d d|j                            d          f<   |                    |d           |                    |dddg           |                    |dd           |                    |dd           t          t          j        	                    d	d
                    dk    }|                    |ddg|           t          |          5 }t          j        |dd                              t          j                  }d d d            n# 1 swxY w Y   dg|j        _        |j        j        |j        j        k    sJ t          t          j        	                    d	d
                    dk    }|                    |dg d|           t          |          5 }t          j        |dd                              t          j                  }d d d            n# 1 swxY w Y   dg|j        _        |j        j        |j        j        k    sJ t          t          j        	                    d	d
                    dk    }|                    |dd|           t          |          5 }t          j        |dd                              t          j                  }d d d            n# 1 swxY w Y   dg|j        _        t#          j        ||                    t&                               |                    |dg dd|           |                                 }|                    ddg          }t          |          5 }t          j        |dddg          }d d d            n# 1 swxY w Y   t#          j        ||           d S )Nr   rV   r   rW   rQ   Fr   rU   r   r1   r   test)index_labelmerge_cellsrt   )r*  dummydummy2)rV   rW   CD)rR   r6   r,  r.   )r   r   r   r   rR   r   r<   r   r   r   r   r=   r>   r  r  r6   rX   r   r?   bool	set_index)rA   r,  r   r   rD   r]   r   s          r   test_roundtrip_indexlabelsz*TestExcelWriter.test_roundtrip_indexlabels-  sm   

57V
2A2u},,S1112tW%%%tWsCj999tWU333tWE222 ryr1--..!3
D'x[QQQt__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !x~!33333ryr1--..!3
333#	 	 	
 	
 	
 t__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !x~!33333ryr1--..!3
D'v;OOOt__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !
b&--"5"5666(((# 	 	
 	
 	
 ZZ\\\\3*%%t__ 	Q]6g!QPPPF	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q
b&)))))sH   ?5E  EE5HHH5KK"%K"9NN#&N#c                    t          t          j                            dd                    }d|j        _        |                    ||           t          |          5 }t          j	        ||j
        d         d          }d d d            n# 1 swxY w Y   t          j        ||           |j        j        dk    sJ d S )Nr   r(   rL   r,  r   rt   )r   r   r   r   r6   namer<   r   r=   r>   r   r   r?   )rA   r,  r   rD   xfrE   s         r   test_excel_roundtrip_indexnamez.TestExcelWriter.test_excel_roundtrip_indexnamef  s    ryr1--..
Dk222t__ 	R]2".2CqQQQF	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	fb)))| E))))))s    #BBBc                    t          j        t          j        |j                  d           }||_        |                                }d |j        D             |_        |                    |d|           t          |          5 }t          j        |dd          }d d d            n# 1 swxY w Y   t          j
        ||           d S )Nr   c                 6    g | ]}|                                 S rp   )r   )rq   r   s     r   rs   zATestExcelWriter.test_excel_roundtrip_datetime.<locals>.<listcomp>{  s     555!QVVXX555rk   r   r5  r   rt   )r=   r   r   r  r6   r   r<   r   r>   r   r?   )rA   r,  r  r   r6   tsfr]   r   s           r   test_excel_roundtrip_datetimez-TestExcelWriter.test_excel_roundtrip_datetimer  s     GM!:!:FFFllnn55w}555	T7<<<t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	gv.....s   B**B.1B.c                    t          t          ddd          t          ddd          gt          ddd	d
dd          t          dddddd          ggddgddg          }t          t          ddd          t          ddd          gt          ddd	d
dd          t          dddddd          ggddgddg          }t          j        |          5 }t          |          5 }|                    |d           d d d            n# 1 swxY w Y   t          |dd          5 }|                    |d           d d d            n# 1 swxY w Y   t          |          5 }t          j	        |dd          }	d d d            n# 1 swxY w Y   t          |          5 }
t          j	        |
dd          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j
        |	|           t          j
        ||           d S )Ni  r.      i  	      i  r         re   r(   r1         DATEDATETIMEr   r   r6   rR   r   z
DD.MM.YYYYzDD.MM.YYYY HH-MM-SS)r   datetime_formatr   rt   )r   r   r   r   r   r   r<   r   r=   r>   r?   )rA   r   r   rD   df_expected	filename2writer1writer2reader1rs1reader2rs2s               r   test_excel_date_datetime_formatz/TestExcelWriter.test_excel_date_datetime_format  s    dAr""Dq"$5$56$2r2q118D!RQPR3S3ST :&#J
 
 
  $2&&q"(=(=>$2r2q118D!RQPR3S3ST :&#J
 
 
 _S!! 	NYT"" .gGW---. . . . . . . . . . . . . . . ( 5   . GW---. . . . . . . . . . . . . . . 4 NGmG1MMMN N N N N N N N N N N N N N N 9%% NmG1MMMN N N N N N N N N N N N N N N	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N" 	c3''' 	c;/////s   G!D8GD	GD	G!E8GE	GE	GF6GF	G	F	
GG 4G G	GG	GGGc                    t          t          j                            ddd          t          j                  }|                                }t          j        |d         d          |d<   t          j        |d         d                              t                    |d<   |
                    |d           t          |          5 }t          j        |dd	          }d d d            n# 1 swxY w Y   t          j        ||           d S )
Nr  r      r.   r	  r  r   newr   rt   )r   r   r   r  r  r   r=   cutr  strr<   r   r>   r   r?   rA   r   rD   rB   r]   r   s         r    test_to_excel_interval_no_labelsz0TestExcelWriter.test_to_excel_interval_no_labels  s-    ry((bw(??rxPPP7799F2a5"%%5	&!b1188==
D'"""t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
h/////s   	C--C14C1c                    t          t          j                            ddd          t          j                  }|                                }t          j        |d         dg d          }||d	<   t          j        t          |                    |d	<   |
                    |d
           t          |          5 }t          j        |d
d          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr  r   rS  r	  r  r   )
rV   rW   r/  r0  EFGHIJ)labelsrU  r   rt   )r   r   r   r  r  r   r=   rV  Seriesr   r<   r   r>   r   r?   )rA   r   rD   rB   	intervalsr]   r   s          r   test_to_excel_interval_labelsz-TestExcelWriter.test_to_excel_interval_labels  s9    ry((bw(??rxPPP7799FqE2PPP
 
 
	 5	)DOO44
D'"""t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
h/////s   =C!!C%(C%c                    t          t          j                            ddd          dgt          j                  }|                                }|d                             d           |d<   |d                             d	           |d<   |                    |d
           t          |          5 }t          j
        |d
d          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr  r   rS  r	  rV   )rR   r  c                 "    t          |           S )Nseconds)r   r   s    r   r   z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>  s    Ia,@,@,@ rk   rU  c                 L    t          |                                           dz  S )Nrg  iQ )r   total_secondsr   s    r   r   z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>  s"    i***88::UB rk   r   r   rt   )r   r   r   r  r  r   applyr<   r   r=   r>   r   r?   rX  s         r   test_to_excel_timedeltaz'TestExcelWriter.test_to_excel_timedelta  s<    Ic2G44se28
 
 
 7799sGMM"@"@AA5	"3---BB
 
 	D'"""t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
h/////s   5CC Cc                 P   |                     dd                                          }|                    |d           t          |          5 }t	          j        |dd          }d d d            n# 1 swxY w Y   t          j        ||                    d                     d S )NMperiod)kindsht1r   rt   )	resamplemeanr<   r   r=   r>   r   r?   	to_period)rA   r  r   r'  r]   r&  s         r   test_to_excel_periodindexz)TestExcelWriter.test_to_excel_periodindex  s    c116688
D&!!!t__ 	Gv&AFFFB	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G
b",,s"3"344444s   A33A7:A7c                    t          j        t          |j                  dz  t           j                                      dd          }t          j        |ddg          }||_        |                    |dd	           |                    |dd
dg           |                    |d|           t          |          5 }t          j        |dddg          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr1   r  r   firstsecondrX   r   Fr   rV   rW   rQ   r5  r   r.   rt   )r   aranger  r6   r  reshaper
   r   r<   r   r=   r>   r   r?   )rA   r,  r   r   arrays	new_indexr]   rD   s           r   test_to_excel_multiindexz(TestExcelWriter.test_to_excel_multiindex  sG   3u{++a/rx@@@HHBOO*6'89LMMM	tWU333tWsCj999 	tW+>>>t__ 	Mv'aVLLLB	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M
eR(((((s   C((C,/C,c                 $   t          g dg dt          j                            d          d          }|                    ddg          }|                    ||           t          j        |dd	g
          }t          j	        ||           d S )N)Nr1   r)   )r   rT     r)   rV   rW   r/  rV   rW   r5  r   r.   r   )
r   r   r   sampler2  r<   r=   r>   r   r?   )rA   r,  r   rD   df1s        r   "test_to_excel_multiindex_nan_labelz2TestExcelWriter.test_to_excel_multiindex_nan_label  s    \\\29CSCSTUCVCVWWXX\\3*%%
Dk222mDQF333
b#&&&&&rk   c                 j   t          j        t          |j                  dz  t           j                                      dd          }t          j        |ddg          }||_        t          j        g d          }||_	        dd	g}|sd}|
                    |d
|           t          |          5 }t          j        |d
|dd	g          }	d d d            n# 1 swxY w Y   |s5|j	                            ddd          }
d t          |
 D             |_	        t!          j        ||	           d S )Nr1   r  r   rw  rx  ry  ))(   r.   )r  r1   )2   r.   )r  r1   r   r.   r   r5  r9   r7   rY   F)sparsifyadjoinrX   c                 ^    g | ]*}d                      t          t          |                    +S )r   )joinmaprW  )rq   qs     r   rs   zATestExcelWriter.test_to_excel_multiindex_cols.<locals>.<listcomp>  s,    EEEqSXXc#qkk22EEErk   )r   rz  r  r6   r  r{  r
   r   from_tuplesrR   r<   r   r=   r>   formatrv   r   r?   )rA   r,  r   r   r|  r}  new_cols_indexr7   r]   rD   fms              r   test_to_excel_multiindex_colsz-TestExcelWriter.test_to_excel_multiindex_cols  s   3u{++a/rx@@@HHBOO*6'89LMMM	#/0T0T0TUU&Q 	F 	tW+>>>t__ 	76aV  B	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  	F%%uU%%PPBEECHEEEEM
eR(((((s   5CC #C c                    |j         t          j        t          |j                   t          j                  g}t          j        |          |_         ddg|j         _        |                    |d|           t          |          5 }t          j        |dddg          }d d d            n# 1 swxY w Y   t          j        ||           |j         j        d	k    sJ d S )
Nr  timerL   r   r5  r   r.   rt   )r  rL   )r6   r   rz  r  r  r
   r   rX   r<   r   r=   r>   r   r?   )rA   r,  r  r   r}  r]   r   s          r   test_to_excel_multiindex_datesz.TestExcelWriter.test_to_excel_multiindex_dates  s   ]BIc'-.@.@$Q$Q$QR	".y99%uowK@@@t__ 	Q]6g!QPPPF	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	gv...|!_444444s   B..B25B2c                 n   t          ddgddgddgd          }|                                }t          j        dd	g          }||_        |                    |d
d           t          |          5 }t          j        |d
          }d d d            n# 1 swxY w Y   t          j
        ||           d S )Nr   rT  r  r  r  <   )rO   rP   c)F   P   )Z   r/   r   FrU   r9   )r   r   r
   r  r6   r<   r   r=   r>   r   r?   )rA   r   frame1r   multi_indexr]   frame3s          r   'test_to_excel_multiindex_no_write_indexz7TestExcelWriter.test_to_excel_multiindex_no_write_index(  s     "bRBxHHII  ,h	-BCC" 	gU333 t__ 	?]6g>>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	ff-----s   2BBBc                 T   t          g g d          }t          g t          j        g ddg          dg          }|                    |d           t	          |          5 }t          j        |d	          }d d d            n# 1 swxY w Y   t          j        ||d
d
           d S )N)r   r.   r1   rQ   r   r.   ry  r1   rG  r   r  F)check_index_typecheck_dtype)	r   r
   r  r<   r   r=   r>   r   r?   )rA   r   rB   rD   r]   rE   s         r   test_to_excel_empty_multiindexz.TestExcelWriter.test_to_excel_empty_multiindex=  s    R333r!71a&!I!I!ITUSVWWW
D'"""t__ 	?]6g>>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?
Hu%	
 	
 	
 	
 	
 	
s   "BB	B	c                 L   t          g dg dgddgg d          }|                    |dd	           t          |          5 }t          j        |dd
          }d d d            n# 1 swxY w Y   t          g dg dgddgg d          }t          j        ||           d S )Ng~Ϛ?g9DܜJ?g>D)?g.4i(@33333@̤ArV   rW   r   r   r$  rG  r   %.2ffloat_formatr   rt   gQ?gq=
ףp?g=
ףp=?gp=
ף(@r  r  )r   r<   r   r=   r>   r   r?   )rA   r   rD   r]   rE   rB   s         r   test_to_excel_float_formatz*TestExcelWriter.test_to_excel_float_formatJ  s+   +++-K-K-KL*#OO
 
 

 	D'777t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L !>!>!>?*#OO
 
 

 	fh/////s   A((A,/A,c                 $   t          g dg dgddgg d          }t          j        d|z             5 }|                    |d	           t	          j        |dd
          }t          j        ||           d d d            d S # 1 swxY w Y   d S )N)u   ƒu   Ɠu   Ɣ)u   ƕu   Ɩu   Ɨu   AƒrW   )u   XƓr   r$  rG  z__tmp_to_excel_float_format__.	TestSheetr  r   rt   r;   )rA   r   rD   rC   rE   s        r   test_to_excel_output_encodingz-TestExcelWriter.test_to_excel_output_encoding\  s    +++-K-K-KLc")))
 
 
 _=CDD 	.KK[K999]8qQQQF!&"---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   ABB	B	c                 H   t          j        d|z             5 }	 t          |d          5  	 d d d            n# 1 swxY w Y   n$# t          $ r t	          j        d           Y nw xY wt          g dg dgddgg d	          }|                    |d
d           t          |          5 }t          j
        |d
d          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          g dg dgddgg d	          }t          j        ||           d S )Nu   ƒu.wbz$No unicode file names on this systemr  r  rV   rW   r  rG  r   r  r  r   rt   r  r  )r   r   openUnicodeEncodeErrorr   skipr   r<   r   r=   r>   r?   )rA   r   rC   rD   r]   rE   rB   s          r   test_to_excel_unicode_filenamez.TestExcelWriter.test_to_excel_unicode_filenamei  sK   _Z#-.. 	P(D(D))                % D D DBCCCCCD ///1O1O1OPCj'  B
 KK'K???8$$ Pv'QOOOP P P P P P P P P P P P P P P	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P" !>!>!>?*#OO
 
 

 	fh/////su   C&A8A<	A<	 AC&A%"C&$A%%AC&+CC&C	C&C	C&&C*-C*use_headersTFr_idx_nlevelsrf   c_idx_nlevelsc                    dfd	}|rdnd } |t          dg          ||          }|j        dk    sJ |j        d         t          j        usJ d}	d}
t          j        |	|
||          }|d	k    rFd
}t          j        t          |          5   |||d           d d d            d S # 1 swxY w Y   d S  |||          }|r|j        |	|
|z   fk    sJ n|j        |	d	z
  |
|z   fk    sJ t          t          |j                            D ]C}t          t          |j                            D ]}|j        ||f         t          j        usJ  Dd S )NTr   c                     |                      ||           t                    5 }t          j        ||j        d         |          cd d d            S # 1 swxY w Y   d S )N)r7   r,  r6   r   r9   r7   )r<   r   r=   r>   r   )datar7   
parser_hdrr6   r7  r,  r   s        r   	roundtripz;TestExcelWriter.test_excel_010_hemstring.<locals>.roundtrip  s    MM$v;eMTTT4 B}2>!#4Z                   s   "AA A)r.   r1   )r   r   r   r)   )r  r  r.   z_Writing to Excel with MultiIndex columns and no index \('index'=False\) is not yet implemented.r   FrU   )Tr   T)r   r   r   r   r   r   r   r   r   NotImplementedErrorr   r  r6   rR   )rA   r,  r  r  r  r   r  parser_headerr   nrowsncolsrD   r   rr  s    `   `         r   test_excel_010_hemstringz(TestExcelWriter.test_excel_010_hemstring  s&   	 	 	 	 	 	 	 )2di	1#]CCyF""""x~RV++++ 
 #5]
 
 
 1>  2#>>> 8 8	"k77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 )B,,C GyUEM,A$BBBBBB yUQY0E$FFFFF 3sy>>** 8 8s3;//00 8 8A8AqD>7777788 8s   B..B25B2c                    t          g dg dg dgg d          }|                    |d           t          g dg dg dgg d          }t          j        |dd          }t	          j        ||           t          g dg d	gg d
          }|                    |d           t          j        |dd          }t          g dg d	gg d          }t	          j        ||           |                    |ddd           t          j        |dd           }t          g dg d	g          }t	          j        ||           d S )Nrf   )rV   rW   rW   rQ   r   )rV   rW   B.1r   rt   )r.   r1   r)   r(   )r      r      )rV   rW   rV   rW   )rV   rW   A.1r  Fr5   r  r   r<   r=   r>   r   r?   rA   r   rD   rB   rE   s        r   test_duplicated_columnsz'TestExcelWriter.test_duplicated_columns  s   			999iii8///RRR
D'"""YY			999-7H7H7H
 
 

 t1EEE
fh/// lll3=Q=Q=QRRR
D'"""t1EEE\\<<<(2J2J2J
 
 
 	fh/// 	D'u===tEEElllLLL9::
fh/////rk   c                    t          g dg dd          }|                    |dddg           t          j        |dd	          }t	          j        |d         |d                    t	          j        |d         |d                    d S )
Nr.   r.   r.   r1   r1   r1   rV   rW   r   rW   rV   rQ   r   r  )r   r<   r=   r>   r   assert_series_equal)rA   r   write_frame
read_frames       r   test_swapped_columnsz$TestExcelWriter.test_swapped_columns  s    iiiiii @ @AAT7S#J???]4GAFFF

{3/CAAA
{3/CAAAAArk   c                 h   t          g dg dd          }t          j        t          d          5  |                    |dddg	           d d d            n# 1 swxY w Y   t          j        t          d
          5  |                    |dddg	           d d d            d S # 1 swxY w Y   d S )Nr  r  r  zNot all names specifiedr   r   rW   r/  rQ   z.'passes columns are not ALL present dataframe'r0  )r   r   r   KeyErrorr<   )rA   r   r  s      r   test_invalid_columnsz$TestExcelWriter.test_invalid_columns  sr   iiiiii @ @AA]8+DEEE 	D 	D  wc
 CCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D ]L
 
 
 	D 	D   wc
 CCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds#   AA A?B''B+.B+z#to_excel_index,read_excel_index_col)Tr   )FNc                     t          g dg dg dd          }|                    |dddg|           |ddg         }t          j        |d|	          }t	          j        ||           d S )
Nr  r  )r)   r)   r)   r  col_subset_bugrV   rW   rR   r6   rt   r  )rA   r   to_excel_indexread_excel_index_colr  rB   r  s          r   test_write_subset_columnsz)TestExcelWriter.test_write_subset_columns  s      iiiiiiiii P PQQ"S#Jn 	 	
 	
 	
 Sz*]-9M
 
 

 	h
33333rk   c                 "   t          g dg dd          }|                    |d           t          j        |dd          }d |j        d<   d |j        d<   d |j        d	<   t          j        |dd
d          }t          j        ||           d S )Nonez#oner  twor  z#twor  test_cr   rt   )r.   r   r.   r.   )r1   r.   #r9   commentrY   )r   r<   r=   r>   r   r   r?   rA   r   rD   result1result2s        r   test_comment_argz TestExcelWriter.test_comment_arg  s     333:P:P:PQQRR
D(### -QGGG!T!T!T-3RSTTT
gw/////rk   c                     t          g dg dd          }|                    |d           t          j        |d          }t          j        |dd           }t	          j        ||           d S )Nr  r  r  r  r  )r9   r  r  r  s        r   test_comment_defaultz$TestExcelWriter.test_comment_default  s    
 333:P:P:PQQRR
D(### -:::-4HHH
gw/////rk   c                     t          g dg dd          }|                    |d           t          g dg dd          }t          j        |ddd	          }t	          j        ||           d S )
Nr  r  r  r  )r  Nr  )r  NNr  r   r  r  r  s        r   test_comment_usedz!TestExcelWriter.test_comment_used!  s     333:P:P:PQQRR
D(### #7#7#7>Q>Q>QRRSSt#QRSSS
fh/////rk   c                     t          ddgddgd          }|                    |d           t          dgd	gd          }t          j        |d
          }t	          j        ||           d S )N1z#223)rO   rP   FrU   r.   r1   r  )r  r  r  s        r   test_comment_empty_linez'TestExcelWriter.test_comment_empty_line/  s     c4[Sz::;;
D&&& A3aS1122tS111
fh/////rk   c                 j   t          dddddd          t          dddddd          t          ddddd	d
          t          dddddd          t          dddddd          t          dddddd          t          dddddd          t          dddddd          t          dddddd          t          dddddd          t          dddddd          g}t          d|i          }|                    |d           t          j        |dd           }t          j        |d         |d                    d S )!Ni  r.   rD  r1   r)   -   8   r(      1   r  *   r   9   #   r?  )   rC  rc            5      %   r      rT  4   rV   r   r  )r   r   r<   r=   r>   r   r  )rA   r   	datetimesr  r  s        r   test_datetimeszTestExcelWriter.test_datetimes;  sT    T1b!Q**T1b!R,,T1b!R,,T1b!R,,T1b!R,,T1b!R,,T1b"b"--T1b"a,,T1b"b!,,T1b"b!,,T1b"b"--
	  i 011T8,,,]4HQGGG

{3/CAAAAArk   c                    t                      5 }t          t          j                            dd                    }t          ||          5 }|                    |           d d d            n# 1 swxY w Y   |                    d           t          j	        |d          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr   r1   r   r   r   )r   r   r   r   r   r   r<   seekr=   r>   r   r?   )rA   r   biorD   r\   	reread_dfs         r   test_bytes_iozTestExcelWriter.test_bytes_ioQ  s;   YY 		1#29??2q1122B S000 $FF###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ HHQKKKcQ777I!"i000		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1 		1s6   ?CA0$C0A4	4C7A4	8ACCCc                 x   t          dddgdddgg dg dd	          }|                    |d
           t          j        |d
dd          }|                                }|j                            t                    |_        |j        	                    d          |_        t          j        ||           d S )NrO   rP   r  er1   )rh   f)r.   r1   g      @)applebananacherry)mixednumericrW  r   r   r  r  )r   r<   r=   r>   r   r  rk  rW  r  r  r   r?   rA   r   rD   readrB   s        r   test_write_lists_dictz%TestExcelWriter.test_write_lists_dict^  s    Sz1+=+=>&;;444 
 
 	D(###}ThqANNN7799!--c22#+227;;
dH-----rk   c                     t          ddgddgd          }|                    |d           t          j        |dd          }|}t	          j        ||           d S )	Nr.   r1   r)   r(   )renderr  r   r   r   r  r  s        r   test_render_as_column_namez*TestExcelWriter.test_render_as_column_namep  sg    1a&1a&99::
D(###}T8q999
dH-----rk   c                     t          ddggddg          }|                    ddd          }|                    |           t          j        |dgdgd	
          }t          j        ||           d S )NrL   rM   col1col2rQ   TF)rL   rM   r   )true_valuesfalse_valuesrY   )r   replacer<   r=   r>   r   r?   )rA   r   rD   rB   r  s        r   !test_true_and_false_value_optionsz1TestExcelWriter.test_true_and_false_value_optionsx  s    '&&1ABBB::d599::
D]ugUGq
 
 

 	j(33333rk   c                     t          ddgddggddg          }|                    |dd	
           t          j        |d          }t	          j        ||           d S )Nr.   r1   r)   r(   r"  r#  rQ   r   r  )freeze_panesr   r   r  )rA   r   rB   rE   s       r   test_freeze_panesz!TestExcelWriter.test_freeze_panes  sn    q!fq!f-7GHHH$v>>>tq111
fh/////rk   c                     t          j                    }t          |j        |          }t          t          j        d          }t          j        ||d|           }t          j        ||           d S Nr  r   r   rL   )r   )r   makeDataFramer   r<   r=   r>   round_trip_pathlibr?   rA   r   r   rD   r\   r]   rE   s          r   test_path_path_libz"TestExcelWriter.test_path_path_lib  sn    V444!444&vvK#KKHHH
fb)))))rk   c                     t          j                    }t          |j        |          }t          t          j        d          }t          j        ||d|           }t          j        ||           d S r,  )r   r-  r   r<   r=   r>   round_trip_localpathr?   r/  s          r   test_path_local_pathz$TestExcelWriter.test_path_local_path  sn    V444!444(kCkkJJJ
fb)))))rk   c                 8   t          j        t          j        d          t          j        d          ft          j        d          t          j        d          fg          }t	          t          j        dd          |          }|                    |           t          j        |dd	gd
          }|j	        
                    d |j        d         D             d |j        d	         D             gdd	g          |_	        t          j        ||           d S )N20182018Q12018Q2)r1   r1   r  r  rQ   r   r.   r   c                 ,    g | ]}t          |          S rp   rW  rq   ri   s     r   rs   zCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>  s    +++c!ff+++rk   c                 ,    g | ]}t          |          S rp   r9  r:  s     r   rs   zCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>  s    -K-K-Kc!ff-K-K-Krk   )level)r
   r  r=   Periodr   r   onesr<   r>   rR   
set_levelslevelsr   r?   )rA   r   mirB   rE   s        r   test_merged_cell_custom_objectsz/TestExcelWriter.test_merged_cell_custom_objects  s   #6""BIh$7$786""BIh$7$78
 
 RWV7;;;RHHH$tQFa@@@#+66++bil+++-K-Kbil-K-K-KLa& 7 
 
 	fh/////rk   r  Nc                    |}t          j        d|          }t          |g|          }t          j        t
          d          5  |                    |           d d d            n# 1 swxY w Y   |                                }t          |g|          }t          j        t
          d          5  |                    |           d d d            d S # 1 swxY w Y   d S )N2019)tzr  zExcel does not supportr   )r=   r   r   r   r   r   r<   to_pydatetime)rA   r  tz_aware_fixturer   rE  r  rD   s          r    test_raise_when_saving_timezonesz0TestExcelWriter.test_raise_when_saving_timezones  sa    |Fr***vU+++]:-EFFF 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !!##vU+++]:-EFFF 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   A((A,/A,4CCCc                     t          ddgddgd          }|                    |g dd           t          j        |          }t          g d	g d
gg d          }t	          j        ||           d S )Nr   r.   r   rc   r  )rV   rW   rV   Fr  )r   r   r   )r.   rc   r.   )rV   rW   r  rQ   r  )rA   r   rD   rE   rB   s        r   'test_excel_duplicate_columns_with_namesz7TestExcelWriter.test_excel_duplicate_columns_with_names  s    aV2r(3344
D///???t$$jjj***5?P?P?PQQQ
fh/////rk   c                    d}t          j        |          5 }t          j        t          t          j        |                    5  t          |d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz7if_sheet_exists is only valid in append mode (mode='a')r   r&  )if_sheet_exists)r   r   r   r   r   reescaper   )rA   r   r   r  s       r   test_if_sheet_exists_raisesz+TestExcelWriter.test_if_sheet_exists_raises  s    G_S!! 	:Qz3@@@ : :Ay9999: : : : : : : : : : : : : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s5   .A;A#A;#A'	'A;*A'	+A;;A?A?c                 b   t          j        |          5 }t          ||          5 }t                                          |           d d d            n# 1 swxY w Y   t          j        |          }t                      }t          j        ||           d d d            d S # 1 swxY w Y   d S Nr  )r   r   r   r   r<   r=   r>   r?   )rA   r   r   r   r\   rE   rB   s          r   test_excel_writer_empty_framez-TestExcelWriter.test_excel_writer_empty_frame  s   _S!! 	4TT&111 -V$$V,,,- - - - - - - - - - - - - - -]4((F {{H!&(333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s4   B$"A	B$A	B$A	:B$$B(+B(c                    t          j        |          5 }t                                          ||           t	          j        |          }t                      }t          j        ||           d d d            d S # 1 swxY w Y   d S rQ  r   )rA   r   r   r   rE   rB   s         r   test_to_excel_empty_framez)TestExcelWriter.test_to_excel_empty_frame  s    _S!! 	4TKK  f 555]4((F {{H!&(333		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   AA==BB)Dr   r   r   r   r   r   r   r   r  r  r   r   r   r   int8int16int32r  r  float16float32float64r  r  r  r!  r(  r3  r8  r<  rQ  rY  rd  rl  ru  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r'  r*  r0  r3  rB  objectrH  rJ  rO  rR  rT  rp   rk   r   r   r   >  sQ       ." " ""# # #5 5 5/4 /4 /4b3 3 3
* 
* 
*3 3 3 [Y"(BHbh(OPP2 2 QP2 [YRZ(LMM
* 
* NM
*
* 
* 
** * *0 0 04& & &$7* 7* 7*r
* 
* 
*/ / /"*0 *0 *0X0 0 00 0 0"0 0 0&5 5 5) ) )' ' ') ) ),5 5 5. . .*
 
 
0 0 0$. . .0 0 02 []T5M::[_iii88[_iii8828 28 98 98 ;:28h0 0 0:B B B
D 
D 
D [-	
 4 4 40 0 0&0 0 00 0 0
0 
0 
0B B B,1 1 1. . .$. . .	4 	4 	40 0 0* * ** * *0 0 0$ [WtVn55  650 0 0: : :4 4 44 4 4 4 4rk   r   c                       e Zd Zej                            d ej        ed ej	        d                     ej        e
d ej	        d                    g          d             Zd Zd Zd	S )
TestExcelWriterEngineTestsz	klass,extr   r$   r"   r    c                 6   t          j        |          5 }t          |          5 }|dk    r,t          j        d          rt          |t                    sJ nt          ||          sJ d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r$   )r   r   r   tdsafe_import
isinstancer   )rA   klassr   r   r\   s        r   test_ExcelWriter_dispatchz4TestExcelWriterEngineTests.test_ExcelWriter_dispatch  s    _S!! 	5TT"" 5f'>>bn\&B&B>%fk::::::%fe444445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s5   BAA6*B6A:	:B=A:	>BBBc                     t          j        t          d          5  t          d           d d d            d S # 1 swxY w Y   d S )Nz	No enginer   nothing)r   r   r   r   rA   s    r    test_ExcelWriter_dispatch_raisesz;TestExcelWriterEngineTests.test_ExcelWriter_dispatch_raises  s    ]:[999 	# 	#	"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   9= =c                     G d dt                     }t          |           t          dd          5  d}t          j        |          5 }t          |          5 }t          ||          sJ 	 d d d            n# 1 swxY w Y   t          j        dd          }|                    |           d d d            n# 1 swxY w Y   |                                 d d d            n# 1 swxY w Y   t          j        d          5 }|                    |d           d d d            n# 1 swxY w Y   |                                 d S )	Nc                   `    e Zd ZdZdZdZdZdZd Zd Z	d Z
ed             Zed             Zd	S )
CTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClassF)xlsxxlsr-  c                     d S )Nrp   rf  s    r   bookzHTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.book  s    rk   c                 .    dt          |           _        d S NT)typecalled_saverf  s    r   _savezITestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._save  s    )-T

&&&rk   c                 .    dt          |           _        d S rp  )rq  called_write_cells)rA   argskwargss      r   _write_cellszPTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._write_cells  s    04T

---rk   c                 .    dt          |           _        d S rp  )rq  called_sheetsrf  s    r   rx   zJTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.sheets  s    +/T

(((rk   c                 X    | j         sJ | j        sJ | j        rJ d| _         d| _        d S )NF)rr  ru  rz  )clss    r   assert_called_and_resetz[TestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.assert_called_and_reset  sC    &&&----,,,,"').&&&rk   N)r   r   r   rr  ru  rz  _supported_extensions_enginern  rs  rx  propertyrx   classmethodr}  rp   rk   r   
DummyClassrj    s        K!&!M$3!G  . . .5 5 5 0 0 X0 / / [/ / /rk   r  zio.excel.xlsx.writerr-  zsomething.xlsxr.   zsomething.xlsr  )	r   r   r   r   r   ra  r   r<   r}  )rA   r  r   filepathr\   rD   s         r   test_register_writerz/TestExcelWriterEngineTests.test_register_writer  sL   	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/8 	
###2G<< 	1 	1#D&& &( ** :f%fj999999: : : : : : : : : : : : : : :+Aq11H%%%	& & & & & & & & & & & & & & &
 ..000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 __-- 	2KKK111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2**,,,,,sk   C&
B;A:.B;:A>>B;A>-B;/C&;B?	?C&B?	C&&C*-C*D))D-0D-N)r   r   r   r   r   r   paramr   r_  
skip_if_nor   rc  rg  r  rp   rk   r   r]  r]    s        [FLg]R]<5P5PQQQFL'z9R9RSSS	
 5 5 5# # #*- *- *- *- *-rk   r]  c                       e Zd Zd Zd ZdS )
TestFSPathc                 8   t          j        d          5 }t          dddgi          }|                    |           t	          |          5 }t          j        |          }d d d            n# 1 swxY w Y   ||k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nfoo.xlsxrV   r.   r1   )r   r   r   r<   r   osfspath)rA   r   rD   r   rE   s        r   test_excelfile_fspathz TestFSPath.test_excelfile_fspath#  s   _Z(( 	"DC!Q=))BKK4 'B2' ' ' ' ' ' ' ' ' ' ' ' ' ' 'T>>>>>	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s5   8BA."B.A2	2B5A2	6BBBc                     t          j        d          5 }t          |          5 }t          j        |          t          |          k    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  )r   r   r   r  r  rW  )rA   r   r\   s      r   test_excelwriter_fspathz"TestFSPath.test_excelwriter_fspath+  s    _Z(( 	6DT"" 6fy((CII555556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s4   A2(AA2A	A2!A	"A22A69A6N)r   r   r   r  r  rp   rk   r   r  r     s2        " " "6 6 6 6 6rk   r  rb  c                     d t          t                    D             }d t          |           D             }|                    |          rJ d S )Nc                 <    h | ]}|                     d           |S _
startswithrq   r6  s     r   	<setcomp>z%test_subclass_attr.<locals>.<setcomp>4  s)    PPP44??3;O;OP$PPPrk   c                 <    h | ]}|                     d           |S r  r  r  s     r   r  z%test_subclass_attr.<locals>.<setcomp>5  s)    KKKDdooc6J6JK4KKKrk   )dirr   symmetric_difference)rb  
attrs_baseattrs_klasss      r   test_subclass_attrr  1  sY     QP3{#3#3PPPJKKCJJKKKK..{;;;;;;;rk   )/r   r   r   	functoolsr   ior   r  rM  numpyr   r   pandas.util._test_decoratorsutil_test_decoratorsr_  pandasr=   r   r	   r
   r   pandas._testing_testingr   pandas.io.excelr   r   r   r   r   pandas.io.excel._utilr   fixturer   r   r   r   r  r  r'   usefixturesr   r]  r  valuesr  rp   rk   r   <module>r     s           
             				 				      ) ) ) ) ) ) ) ) )                                   + * * * * *       	W]R]:%>%>f@U@U$VWWWW]R]:%>%>f@U@U$VWWWMBM,77v9N9NO	
 	
 	
 	V=2=#7#7888
 
u0 u0 u0 u0 u0 u0 u0
 
u0p  2=,,mbmF.C.CD	
 	
 	

 	 2=,,mbmF.C.CD	
 	
 	

 	 2=..f0E0EF	
 	
 	

 	UF-"-*>*>???! * &&G4 G4 G4 G4 G4 G4 G4 '&+ ,G4T?- ?- ?- ?- ?- ?- ?- ?-D vz6 6 6 6 6 6 6  6 /(/"3"344< < 54< < <rk   