
    bMh                     R   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Z d dlmZ d dlmZ d dlmc mZ d dlZd dlmZ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            rej(        j)        Z*de+de+fdZ,ej-        d             Z. ej-        ddg          d             Z/ej-        d             Z0ej-        d             Z1ej(        2                    d ej3        d ej4        d           ej4        d          g           ej3        d ej4        d           ej4        d          g           ej3        d ej4        d           ej4        d          g           ej3        d ej4        d                    g           G d d                      Z5ej(        2                    d  ej3        dd ej4        d           ej4        d          g           ej3        dd ej4        d           ej4        d          g           ej3        dd ej4        d           ej4        d          g           ej3        dd ej4        d                    g          ej(        6                    d!           G d" d#                                  Z7 G d$ d%          Z8 ej4        d           ej4        d           G d& d'                                  Z9ej(        2                    d( e'j:                              d)             Z;dS )*    )datedatetime	timedelta)partial)BytesION)is_platform_windows)PY310)import_optional_dependency)	DataFrameIndex
MultiIndex
date_rangeoption_context)	ExcelFileExcelWriter_OpenpyxlWriter_XlsxWriterregister_writer)_writerspathreturnc                     dS )Nns r   s    b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/io/excel/test_writers.pyget_exp_unitr   *   s    4    c                     | dd         S )z?
    Returns the first ten items in fixture "float_frame".
    N
   r   )float_frames    r   framer"   .   s    
 ssr   TF)paramsc                     | j         S N)param)requests    r   merge_cellsr(   6   s
    =r   c              #   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     r   r   r   ;   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_enginer3   D   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   rB         rB   r>   i,  rB   r=   i  F
sheet_nameindexheaderr   rK   usecolsrM   r   r*   r+   to_excelpd
read_excelassert_frame_equalselfr,   rM   expectedfilenamedfr   results           r   !test_read_one_empty_col_no_headerz/TestRoundTrip.test_read_one_empty_col_no_header_   s     lllLLL,,,OPP_S!! 	TKKuKMMM]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_headerrA   rE   rH   rI   FTrJ   r   rN   rP   rU   s           r   #test_read_one_empty_col_with_headerz1TestRoundTrip.test_read_one_empty_col_with_headerp   s    
 !lllLLL,,,OPP_S!! 	TKKeDKQQQ]A3v  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	fh/////r\   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 )NrC   foorF   barr>   bazabcolumnsData_no_headF)rK   rM   rL   Data_with_headrK   rL   AB)rK   rM   names)rK   	index_colrm   )
r   r*   r+   r   rQ   rg   r   rR   rS   rT   )rV   r,   refdfpthwriterreaderxlsdf_no_headxlsdf_with_heads           r   "test_set_column_names_in_parameterz0TestRoundTrip.test_set_column_names_in_parameter   s,    Au:5zAu:>c
SSS_S!! 	:SS!! QV~e5     v2B%PPP	Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q !#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)      !   rC   rF   r>   rf   )r   )col_sheet_namedis      r   tdfzDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdf   s+    <<qAQN+;<<<<r   )AAABBBCCCc                 &    g | ]} |          S r   r   ).0sr   s     r   
<listcomp>zKTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.<listcomp>   s!    &&&!ss1vv&&&r   rK   r   rK   rn   )
dictzipr*   r+   r   itemsrQ   rR   rS   rT   )rV   r,   sheetsdfsrp   ew	sheetnamerY   dfs_returnedr   r   s             @r   )test_creating_and_reading_multiple_sheetsz7TestRoundTrip.test_creating_and_reading_multiple_sheets   s   
	= 	= 	= '&&&&&&v&&&3vs##$$_S!! 	?SS!! :R%(YY[[ : :MIrKKyK9999:: : : : : : : : : : : : : : : =1MMML ? ?%c!fl1o>>>>?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s7   C-2BC-B	C-B	A C--C14C1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   rC   r>      )OnexTwoXr   Y)ZerorB   )r   r   r   )r   zUnnamed: 4_level_1rM   rn   ))BegrB   Middler   Tailr   r   r   ))r   zUnnamed: 1_level_1r   r   r   r*   r+   r   rQ   rR   rS   rT   )rV   r,   r   rY   rW   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_namesrd   r_idx_namesre   c_idx_levelsrC   r_idx_levelsc           
         t          j        |          5 }t                    p|dk    }|dk    rt          t	          d                    }	nFt          j        d t          |          D             fdt          |          D                       }	|dk    rt          t	          d                    }
nFt          j        d t          |          D             fdt          |          D                       }
t          d	t          j
        d
          z  |	|
          }|                    |           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 )NrC   abcdec                 ,    g | ]}t          d           S    ranger   _s     r   r   z@TestRoundTrip.test_excel_multindex_roundtrip.<locals>.<listcomp>       ;;;!U1XX;;;r   c                     g | ]	} d | 
S -r   )r   r~   r   s     r   r   z@TestRoundTrip.test_excel_multindex_roundtrip.<locals>.<listcomp>   '    MMMAk//A//MMMr   rm   ghijkc                 ,    g | ]}t          d           S r   r   r   s     r   r   z@TestRoundTrip.test_excel_multindex_roundtrip.<locals>.<listcomp>   r   r   c                     g | ]	} d | 
S r   r   )r   r~   r   s     r   r   z@TestRoundTrip.test_excel_multindex_roundtrip.<locals>.<listcomp>   r   r   皙?)r   r   rg   rL   )rn   rM   )check_namesr   )r*   r+   boolr   listr   from_arraysr   r   nponesrQ   rR   rS   rT   naniloc)rV   r,   r   r   r   r   r'   rp   r   rg   rL   rY   acts     ``         r   test_excel_multindex_roundtripz,TestRoundTrip.test_excel_multindex_roundtrip   s    _S!! 2	DS {++@|q/@Kq  W..$0;;u\':':;;;MMMM|9L9LMMM   q  d7mm,,".;;u\':':;;;MMMM|9L9LMMM   bgfoo%  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Ce2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	D 2	Ds   J$KKKc                    t          g dt          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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 )Nr{   z
2012-01-01r>   )periods)coldate_stringsr   %m/%d/%Yr   rn   )parse_datesrn   c                 ,    t          j        | d          S )Nr   )r   strptimer   s    r   <lambda>z;TestRoundTrip.test_read_excel_parse_dates.<locals>.<lambda>0  s    H$5a$D$D r   zuse 'date_format' insteadF)matchraise_on_extra_warnings)r   date_parserrn   )r   date_formatrn   )r   r   copydtstrftimer*   r+   rQ   rR   rS   rT   assert_produces_warningFutureWarning)rV   r,   rY   df2rp   resr   s          r   test_read_excel_parse_datesz)TestRoundTrip.test_read_excel_parse_dates  s%   IIz,PQ/R/R/RSS
 
 ggii!.14==jIIN_S!! 	+SLL-q111C!#s+++-.1AQOOOC!"c***DDK+1(-   
 

 m!/ 0 +	  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 !"c***-.!1zUV  C !"c***3	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s8   /BE=<D"E="D&	&E=)D&	*AE==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6ME)startr   freqrL   r   rC   r   )z*(2020-01-31 00:00:00, 2020-07-31 00:00:00]z*(2020-07-31 00:00:00, 2021-01-31 00:00:00]z*(2021-01-31 00:00:00, 2021-07-31 00:00:00]z*(2021-07-31 00:00:00, 2022-01-31 00:00:00])r   r   r   rR   interval_range	Timestampr   r*   r+   rQ   rS   rT   )rV   r,   midxrY   rp   rZ   rW   s          r   "test_multiindex_interval_datetimesz0TestRoundTrip.test_multiindex_interval_datetimesB  sP   %a!,|44ae  
 
 uQxxt,,,_S!! 	:SKK]31a&999F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: !HH"!HH  
 

 
 	fh/////s   =.B77B;>B;)__name__
__module____qualname__pytestmarkparametrizer   r   r   r[   r_   ru   r   r   r   r   r   r   r   r   r<   r<   S   s        [
		26(Q,''	(1iixRS|8T.U.U*VW 0 0	 0 [
		1#1,--	.IIrvhl4K4K0LM 
0 
0	 
0: : :8? ? ?0-4 -4 -4^ []S$K88[]S$K88[^aV44[^aV446D 6D 54 54 98 986Dp!+ !+ !+F0 0 0 0 0r   r<   z
engine,extr3   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e
j                            d          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* Z0e
j                            d+d,d-g          d.             Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>d< Z?e
j                            d=d>e@g          d?             ZAd@ ZBdA ZCdB ZDdC ZEd>S )D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@  rC   )shapezsheet is too larger   )r   zerosr   r   raises
ValueErrorrQ   )	rV   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_sizex  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 )NrF   r    rF   r   r   zWorksheet named '0' not foundr   0)r   r   randomdefault_rngstandard_normalrQ   r   rR   rS   r*   rT   r   r   r   )rV   r   gtxlrY   r   s         r   test_excel_sheet_by_name_raisez.TestExcelWriter.test_excel_sheet_by_name_raise  sX   ry,,Q//??HHII
Dt__ 	>ra1===B	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	b"%%%-]:S111 	# 	#M"c"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   $BBB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   r   Data2r   r   )	r   rQ   r   rg   r   rR   rS   r*   rT   )rV   r"   r   rq   frame2rr   found_df	found_df2s           r   !test_excel_writer_context_managerz1TestExcelWriter.test_excel_writer_context_manager  sp    	8&NN6gN666ZZ\\F"]44R40FNOOFwO777		8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 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A44A8;A8AC44C8;C8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   rk   test1r   rl   rK   rg   FrK   rM   rj   r   r   NA)rK   na_rep)rK   rn   	na_values88X   g      V@Sheet1r   r  )r   r   r   r   rg   get_locrQ   rR   rS   r*   rT   rL   to_frame)rV   r"   r   reconsr   s        r   test_roundtripzTestExcelWriter.test_roundtrip  s   

57V
2A2u},,S1112t000t#sDDDt>>>tu=== 	t000t1EEE
eV,,,tu===t4HHH{
eV,,,t===t1QUPVWWW
eV,,, 	t===t1QUPVWWW
eV,,,t===Wb$Z
 
 
 	eV,,, 	t111tq111
eV,,,t,,,tq111
eV,,, #J	

4tq111
ajjllF33333r   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 )Nrb   ra   r  r   r   r   )r   rQ   r   rR   rS   r*   rT   )rV   r"   r   mixed_framerr   r  s         r   
test_mixedzTestExcelWriter.test_mixed  s    jjll"ETg666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           	         t          |          }t          t          j                            d                              d          t          t          d                    t          ddd                    }t          j
        t          j        |j                  d 	          }||_        |d d          }|j                            |          |_        |                    |d
           t          |          5 }t          j        |d
d          }d d d            n# 1 swxY w Y   t#          j        ||           d S )NrF   r   r=   ABCD
2000-01-01r   rl   r   r   r   r   r  r   r   r   )r   r   r   r  r  r  r   r   r   rR   DatetimeIndexasarrayrL   as_unitrQ   r   rS   r*   rT   )rV   r   unitrY   rL   rW   rr   r  s           r   test_ts_framezTestExcelWriter.test_ts_frame  sh   D!!I!!!$$44V<<$v,,''\13???
 
 
  BH!5!5DAAAaaa5!//55
DW---t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
h/////s   ?D##D'*D'c                 P   |                                 }t          j        |j        d d|j                            d          f<   |                    |d           |                    |dddg           |                    |dd           |                    |dd	           d S )
Nr   rk   r  r   rl   r  Fr  rj   )r   r   r   r   rg   r  rQ   )rV   r"   r   s      r   test_basics_with_nanz$TestExcelWriter.test_basics_with_nan  s    

57V
2A2u},,S1112t000t#sDDDt>>>tu=====r   np_typec                    t          t          j                            d                              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 )NrF   r    r  sizedtyper  r   r   r   )r   r   r  r  integersrQ   r   rR   rS   astypeint64r*   rT   )rV   r.  r   rY   rr   r  	int_framerecons2s           r   test_int_typeszTestExcelWriter.test_int_types  s5    I!!!$$--c2G-DDG
 
 
 	DW---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   +BBBc                    t          t          j                            d                              d          |          }|                    |d           t          |          5 }t          j        |dd                              |          }d d d            n# 1 swxY w Y   t          j
        ||           d S )NrF   r    r3  r  r   r   r   )r   r   r  r  rQ   r   rR   rS   r6  r*   rT   )rV   r.  r   rY   rr   r  s         r   test_float_typesz TestExcelWriter.test_float_types  s     ry,,Q//66r::'JJJ
DW---t__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	b&)))))s   (+BB#&B#c                 N   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)rC   r   TFr3  r  r   r   r   )
r   r   bool_rQ   r   rR   rS   r6  r*   rT   rV   r   rY   rr   r  s        r   test_bool_typeszTestExcelWriter.test_bool_types  s    ***"(;;;
DW---t__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	b&)))))s   5BB	B	c                 0   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 )NrC   )rF   r>   r   r  r   r   r   )	r   r   infrQ   r   rR   rS   r*   rT   r?  s        r   test_inf_roundtripz"TestExcelWriter.test_inf_roundtrip%  s    BFVa"&\:;;
DW---t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	b&)))))s   A66A:=A:c           	      (   t          |          }t          t          j                            d                              d          t          t          d                    t          ddd                    }t          j
        t          j        |j                  d 	          }||_        |d d          }|j                            |          |_        |                                }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          }	d d d            n# 1 swxY w Y   t/          j        ||	           dt3          |j                  k    sJ d|j        d         k    sJ d|j        d         k    sJ d S )NrF   r"  r#  r$  r   rl   r%  r   r&  rk   r  r   r  Fr  rj   test2r   r   rC   )r   r   r   r  r  r  r   r   r   rR   r'  r(  rL   r)  r   r   r   rg   r  rQ   r   r   rS   r*   rT   lensheet_names)
rV   r"   r   r*  tsframerL   rW   rq   rr   r  s
             r   test_sheetszTestExcelWriter.test_sheets.  s   D!!I!!!$$44V<<$v,,''\13???
 
 

  GM!:!:FFF111:!//55

57V
2A2u},,S1112t000t#sDDDt>>>tu===  	9&NN6gN666V888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 t__ 	L]6gKKKF!%000]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	h///C*++++++&,Q/////&,Q///////s%   /GGG"AH22H69H6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   rk   r  r   rl   r  Fr  rj   )AAr   r   Zr   r   )r   r   r   r   rg   r  rQ   r   r   rR   rS   r*   rT   )rV   r"   r   col_aliasesrr   rsxps          r   test_colaliaseszTestExcelWriter.test_colaliasesQ  sw   

57V
2A2u},,S1112t000t#sDDDt>>>tu=== 11122tDDD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   rk   r  r   rl   r  Fr  rj   rF   r  r   test)rK   index_labelr(   r   )rR  dummydummy2)rk   rl   CD)rK   rg   rL   r(   rC   )r   r   r   r   rg   r  rQ   r   r  r  r  r   rR   rS   r6  r7  rL   rm   r*   rT   r   	set_index)rV   r(   r"   r   rY   rr   r  s          r   test_roundtrip_indexlabelsz*TestExcelWriter.test_roundtrip_indexlabelsc  s   

57V
2A2u},,S1112t000t#sDDDt>>>tu=== ry,,Q//??HHIIQN
W6( 	 	
 	
 	
 t__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !x~!33333ry,,Q//??HHIIQN
333#	 	 	
 	
 	
 t__ 	]6gKKKRR F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !x~!33333ry,,Q//??HHIIQN
W&k 	 	
 	
 	
 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45H55H9<H95LLL0OOO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 )NrF   )r    r=   ra   r(   r   r   )r   r   r  r  r  rL   namerQ   r   rR   rS   rG  r*   rT   )rV   r(   r   rY   xfrZ   s         r   test_excel_roundtrip_indexnamez.TestExcelWriter.test_excel_roundtrip_indexname  s   ry,,Q//??HHII
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   2#B!!B%(B%c           	         t          |          }t          t          j                            d                              d          t          t          d                    t          ddd                    }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   |d d          }	|	j                            |          |	_        t%          j        |	|           d S )NrF   r"  r#  r$  r   rl   r%  r   r&  c                 6    g | ]}|                                 S r   )r   )r   r   s     r   r   zATestExcelWriter.test_excel_roundtrip_datetime.<locals>.<listcomp>  s     555!QVVXX555r   r  rK   r(   r   r   )r   r   r   r  r  r  r   r   r   rR   r'  r(  rL   r   rQ   r   rS   r)  r*   rT   )
rV   r(   r   r*  rH  rL   tsfrr   r  rW   s
             r   test_excel_roundtrip_datetimez-TestExcelWriter.test_excel_roundtrip_datetime  s   D!! I!!!$$44V<<$v,,''\13???
 
 

  GM!:!:FFFllnn55w}555	Tg;GGGt__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 111:!//55
h/////s   D%%D),D)c                 p   t          |          }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          }|                    d| d          }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  rC      i  	      i  r         rz   r=   rF         DATEDATETIMEr   r   rL   rg   M8[]r  r   z
DD.MM.YYYYzDD.MM.YYYY HH-MM-SS)r   datetime_formatr   r   )r   r   r   r   r6  r*   r+   r   rQ   r   rR   rS   rT   )rV   r,   r   r*  rY   df_expected	filename2writer1writer2reader1rs1reader2rs2s                r   test_excel_date_datetime_formatz/TestExcelWriter.test_excel_date_datetime_format  s    D!!dAr""Dq"$5$56$2r2q118D!RQPR3S3ST :&#J
 
 
  $2&&q"(=(=>$2r2q118D!RQPR3S3ST :&#J
 
 
 "((t77_S!! 	NYT"" 9gG8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ( 5   9 G8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 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   9H	D-!H-D1	1H4D1	5H
E."H.E2	2H5E2	6HF, H,F0	0H3F0	4HG*H*G.	.H1G.	2HHHz7ignore:invalid value encountered in cast:RuntimeWarningc                 N   t          t          j                            d                              ddd          t          j                  }|                                }t          j        |d         d          |d<   t          j        |d         d          	                    |st          nd	          |d<   |                    |d
           t          |          5 }t          j        |d
d          }d d d            n# 1 swxY w Y   t          j        ||           d S )NrF   r0  r       rC   r1  r3  r   newstrr  r   r   )r   r   r  r  r5  r7  r   rR   cutr6  r  rQ   r   rS   r*   rT   )rV   r   using_infer_stringrY   rW   rr   r  s          r    test_to_excel_interval_no_labelsz0TestExcelWriter.test_to_excel_interval_no_labels  sV    I!!!$$--c2G-DDBH
 
 
 7799F2a5"%%5	&!b1188)4CCu
 
 	DW---t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
h/////s   !DD	D	c                 .   t          t          j                            d                              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 )NrF   r0  r    r|  r1  r3  r   )
rk   rl   rV  rW  EFGHIJ)labelsr~  r  r   r   )r   r   r  r  r5  r7  r   rR   r  Seriesr   rQ   r   rS   r*   rT   )rV   r   rY   rW   	intervalsrr   r  s          r   test_to_excel_interval_labelsz-TestExcelWriter.test_to_excel_interval_labels
  sR    I!!!$$--c2G-DDBH
 
 
 7799FqE2PPP
 
 
	 5	)DOO44
DW---t__ 	L]6gKKKF	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L
h/////s   C55C9<C9c                    t          t          j                            d                              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 )NrF   r0  r    r|  r1  rk   rg   r4  c                 "    t          |           S )Nseconds)r   r   s    r   r   z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>(  s    Ia,@,@,@ r   r~  c                 L    t          |                                           dz  S )Nr  iQ )r   total_secondsr   s    r   r   z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>*  s"    i***88::UB r   r  r   r   r   )r   r   r  r  r5  r7  r   applyrQ   r   rR   rS   r*   rT   )rV   r   rY   rW   rr   r  s         r   test_to_excel_timedeltaz'TestExcelWriter.test_to_excel_timedelta  sN    I!!!$$--c2G-DDE(
 
 

 7799sGMM"@"@AA5	"3---BB
 
 	DW---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           	      L   t          t          j                            d                              d          t          t          d                    t          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
                     d S )NrF   r"  r#  r$  r   rl   r%  r   MEMsht1r   r   r   )r   r   r  r  r  r   r   r   resamplemean	to_periodrQ   r   rR   rS   r*   rT   )rV   r   rY   rO  rr   rN  s         r   test_to_excel_periodindexz)TestExcelWriter.test_to_excel_periodindex2  sF   I!!!$$44V<<$v,,''\13???
 
 

 [[##%%//44
DV,,,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   C11C58C5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 )NrF   r3  r   firstsecondr   r  Fr  rk   rl   r  ra  r   rC   r   )r   arangerF  rL   r7  reshaper   r   rQ   r   rR   rS   r*   rT   )rV   r(   r"   r   arrays	new_indexrr   rY   s           r   test_to_excel_multiindexz(TestExcelWriter.test_to_excel_multiindexA  sG   3u{++a/rx@@@HHBOO*6'89LMMM	t>>>t#sDDD 	t[III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                 J   t          g dg dt          j                            d                              d          d          }|                    ddg          }|                    ||           t          j        |d	d
g          }t          j	        ||           d S )N)NrF   r>   )r    r}     rF   r>   rk   rl   rV  rk   rl   r[  r   rC   r   )
r   r   r  r  rX  rQ   rR   rS   r*   rT   )rV   r(   r   rY   df1s        r   "test_to_excel_multiindex_nan_labelz2TestExcelWriter.test_to_excel_multiindex_nan_labelP  s    !\\!\\Y**1--44Q77 
 
 \\3*%%
Dk222mDQF333
b#&&&&&r   c                 h   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   |s4|j	                            dd          }
d t          |
 D             |_	        t!          j        ||	           d S )NrF   r3  r   r  r  r   ))(   rC   )r  rF   )2   rC   )r  rF   r   rC   r  ra  rK   rM   rn   F)sparsifyinclude_namesc                 ^    g | ]*}d                      t          t          |                    +S )r/   )joinmapr  )r   qs     r   r   zATestExcelWriter.test_to_excel_multiindex_cols.<locals>.<listcomp>t  s,    EEEqSXXc#qkk22EEEr   )r   r  rF  rL   r7  r  r   r   from_tuplesrg   rQ   r   rR   rS   _format_multir   r*   rT   )rV   r(   r"   r   r  r  new_cols_indexrM   rr   rY   fms              r   test_to_excel_multiindex_colsz-TestExcelWriter.test_to_excel_multiindex_colsa  s~   3u{++a/rx@@@HHBOO*6'89LMMM	#/0T0T0TUU&Q 	F 	t[IIIt__ 	76aV  B	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  	F,,e5,QQBEECHEEEEM
eR(((((s   5CC #C c           	         t          |          }t          t          j                            d                              d          t          t          d                    t          ddd                    }t          j
        |j                            |          t          j        t          |j                  t          j        	          g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        ||           |j        j        dk    sJ d S )NrF   r"  r#  r$  r   rl   r%  r   r3  timera   r   r  ra  r   rC   r   )r  ra   )r   r   r   r  r  r  r   r   r   r   r   rL   r)  r  rF  r7  rQ   r   rR   rS   r*   rT   rm   )rV   r(   r   r*  rH  rr   r  s          r   test_to_excel_multiindex_datesz.TestExcelWriter.test_to_excel_multiindex_datesw  s   D!!I!!!$$44V<<$v,,''\13???
 
 

 #.%%d++	#gm,,BH=== 5/
 
 
 	'{KKK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   
D00D47D4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    r}  r  r  r  <   )rd   re   c)F   P   )Z   rD   r  Frj   r   )r   r   r   r  rL   rQ   r   rR   rS   r*   rT   )rV   r   frame1r  multi_indexrr   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" 	>>> t__ 	?]6g>>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	ff-----s   2BBBc                 V   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   rC   rF   rf   r   rC   r   rF   rn  r  r   F)check_index_typecheck_dtype)	r   r   r  rQ   r   rR   rS   r*   rT   )rV   r   rW   rY   rr   rZ   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
DW---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@̤Ark   rl   r   r   rL  rn  r  %.2frK   float_formatr   r   gQ?gq=
ףp?g=
ףp=?gp=
ף(@r  r  )r   rQ   r   rR   rS   r*   rT   )rV   r   rY   rr   rZ   rW   s         r   test_to_excel_float_formatz*TestExcelWriter.test_to_excel_float_format  s+   +++-K-K-KL*#OO
 
 

 	DW6BBB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ƒrl   )u   XƓr   rL  rn  z__tmp_to_excel_float_format__.	TestSheetr   r   r   rP   )rV   r,   rY   rX   rZ   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  rk   rl   r  rn  r  r  r  r   r   r  r  )r*   r+   openUnicodeEncodeErrorr   skipr   rQ   r   rR   rS   rT   )rV   r,   rX   rY   rr   rZ   rW   s          r   test_to_excel_unicode_filenamez.TestExcelWriter.test_to_excel_unicode_filename  sK   _Z#-.. 	P(D(D))                % D D DBCCCCCD ///1O1O1OPCj'  B
 KKW6KJJJ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_nlevelsr{   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|dk    r.t          d	 t                    D             t          
          }	nFt          j	        fdt          |          D             d t          |          D                       }	|dk    r.t          d t                    D             t          
          }
nFt          j	        fdt          |          D             d t          |          D                       }
t          t          j
        f          |	|
          }|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)rM   r(   rL   r   r  )rQ   r   rR   rS   rG  )datarM   
parser_hdrrL   r]  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)rC   rF   )r   r   r   r>   rC   c                     g | ]}d | S )za-r   r   r~   s     r   r   z<TestExcelWriter.test_excel_010_hemstring.<locals>.<listcomp>  s    <<<!X!XX<<<r   r3  c                 .    g | ]}t                    S r   r   )r   r   ncolss     r   r   z<TestExcelWriter.test_excel_010_hemstring.<locals>.<listcomp>      <<<!u<<<r   c                     g | ]}d | S zi-r   r  s     r   r   z<TestExcelWriter.test_excel_010_hemstring.<locals>.<listcomp>	      >>>AxAxx>>>r   r   c                     g | ]}d | S )zb-r   r  s     r   r   z<TestExcelWriter.test_excel_010_hemstring.<locals>.<listcomp>  s    :::888:::r   c                 .    g | ]}t                    S r   r   )r   r   nrowss     r   r   z<TestExcelWriter.test_excel_010_hemstring.<locals>.<listcomp>  r  r   c                     g | ]}d | S )zj-r   r  s     r   r   z<TestExcelWriter.test_excel_010_hemstring.<locals>.<listcomp>  r  r   r   z_Writing to Excel with MultiIndex columns and no index \('index'=False\) is not yet implemented.r   Fr   )Tr   T)r   r   r   r   r   r   r   objectr   r   r   r   r   NotImplementedErrorrF  rL   rg   )rV   r(   r  r  r  r   r  parser_headerr   rg   rL   rY   r   rr  r  r  s    `   `         @@r   test_excel_010_hemstringz(TestExcelWriter.test_excel_010_hemstring  s=   	 	 	 	 	 	 	 )2di	1#]CCyF""""x~RV++++ 
 A<<uU||<<<FKKKGG ,<<<<u]';';<<<>>})=)=>>>  G A::U5\\:::&IIIEE*<<<<u]';';<<<>>})=)=>>>  E
 GUEN##
 
 
 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   F22F69F6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 )Nr{   )rk   rl   rl   rf   r  r   )rk   rl   B.1r   r   )rC   rF   r>   r=   )r      r      )rk   rl   rk   rl   )rk   rl   A.1r  FrJ   r  r   rQ   rR   rS   r*   rT   rV   r   rY   rW   rZ   s        r   test_duplicated_columnsz'TestExcelWriter.test_duplicated_columns0  s   			999iii8///RRR
DW---YY			999-7H7H7H
 
 

 t1EEE
fh/// lll3=Q=Q=QRRR
DW---t1EEE\\<<<(2J2J2J
 
 
 	fh/// 	DWE%HHHtEEElllLLL9::
fh/////r   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rC   rC   rC   rF   rF   rF   rk   rl   r  rl   rk   r  r   r  )r   rQ   rR   rS   r*   assert_series_equal)rV   r   write_frame
read_frames       r   test_swapped_columnsz$TestExcelWriter.test_swapped_columnsM  s    iiiiii @ @AATgSzJJJ]4GAFFF

{3/CAAA
{3/CAAAAAr   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  rl   rV  r  z.'passes columns are not ALL present dataframe'rW  )r   r   r   KeyErrorrQ   )rV   r   r  s      r   test_invalid_columnsz$TestExcelWriter.test_invalid_columnsW  sr   iiiiii @ @AA]8+DEEE 	O 	O  'C: NNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O ]L
 
 
 	O 	O   'C: NNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O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_bugrk   rl   )rK   rg   rL   r   r  )rV   r   to_excel_indexread_excel_index_colr  rW   r  s          r   test_write_subset_columnsz)TestExcelWriter.test_write_subset_columnsc  s      iiiiiiiii P PQQ-Sz 	 	
 	
 	
 Sz*]-9M
 
 

 	h
33333r   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   r   r   )rC   r   rC   rC   )rF   rC   #rK   commentrn   )r   rQ   rR   rS   r   r*   rT   rV   r   rY   result1result2s        r   test_comment_argz TestExcelWriter.test_comment_argx  s     333:P:P:PQQRR
DX... -QGGG!T!T!T-3RSTTT
gw/////r   c                     t          g dg dd          }|                    |d           t          j        |d          }t          j        |dd           }t	          j        ||           d S )Nr  r  r  r  r   )rK   r  r  r  s        r   test_comment_defaultz$TestExcelWriter.test_comment_default  s    
 333:P:P:PQQRR
DX... -:::-4HHH
gw/////r   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   )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
DX... #7#7#7>Q>Q>QRRSSt#QRSSS
fh/////r   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)rd   re   Fr   rC   rF   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/////r   c                    t          |          }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!          }|                    d"| d#          }t          j        |d         |d                    d S )$Ni  rC   rk  rF   r>   -   8   r=      1   r  *   r   9   #   rf  )   rj  rx            5      %   r      r}  4   rk   r  r   r  ro  rp  )	r   r   r   rQ   rR   rS   r6  r*   r  )rV   r   r*  	datetimesr  r  rW   s          r   test_datetimeszTestExcelWriter.test_datetimes  s|   D!!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Th777]4HQGGG
%%mDmmm44
x}jo>>>>>r   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 )NrF   r  r1   r   r   )r   r   r   r  r  r  r   rQ   seekrR   rS   r*   rT   )rV   r1   biorY   rq   	reread_dfs         r   test_bytes_iozTestExcelWriter.test_bytes_io  sI   YY 		1#290033CCGLLMMB 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 		1s7   AC B6CB	C	B	
ACC!Cc                    t          ddddddg          }dddd}t          r
d	|d
<   d	|d<   |d
k    r$t          j                            |          sd|d
<   t          j        t          t          j	        ||                             5  |
                    ||ddi           d d d            d S # 1 swxY w Y   d S )NrC   rF   r  r>   r=   zBOpenDocumentSpreadsheet() got an unexpected keyword argument 'foo'z3__init__() got an unexpected keyword argument 'foo')r:   r5   r9   z<Workbook.__init__() got an unexpected keyword argument 'foo'r5   r9   z8load_workbook() got an unexpected keyword argument 'foo'r   ra   rb   )r1   engine_kwargs)r   r	   osr   existsr   r   	TypeErrorreescaperQ   )rV   r1   r   rY   msgss        r   test_engine_kwargsz"TestExcelWriter.test_engine_kwargs  sP   aa((*:*:;<<NP	
 
  	O O 
 O 
 Zt(<(< L  ]9BId6l,C,CDDD 	 	KK$en    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B44B8;B8c                 z   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 )Nrd   re   r  erF   )r}   f)rC   rF   g      @)applebananacherry)mixednumericr  r  r   r   r  r7  )r   rQ   rR   rS   r   rQ  r  r  rR  r6  r*   rT   rV   r   rY   readrW   s        r   test_write_lists_dictz%TestExcelWriter.test_write_lists_dict  s    Sz1+=+=>&;;444 
 
 	DX...}ThqANNN7799!--c22#+227;;
dH-----r   c                     t          ddgddgd          }|                    |d           t          j        |dd	          }|}t	          j        ||           d S )
NrC   rF   r>   r=   )renderr  r  r   r   r   r  rS  s        r   test_render_as_column_namez*TestExcelWriter.test_render_as_column_name	  si    1a&1a&99::
DX...}T8q999
dH-----r   c                 l   t          ddggddgt                    }t          dd          5  |                    ddd	                              d
          }d d d            n# 1 swxY w Y   |                    |           t          j        |dgdgd          }t          j	        ||           d S )Nra   rb   col1col2r  zfuture.no_silent_downcastingTF)ra   rb   r   r   )true_valuesfalse_valuesrn   )
r   r  r   replacer6  rQ   rR   rS   r*   rT   )rV   r   rY   rW   r  s        r   !test_true_and_false_value_optionsz1TestExcelWriter.test_true_and_false_value_options  s   '&&1APPP:DAA 	N 	Nzz$u"="=>>EEfMMH	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	D]ugUGq
 
 

 	j(33333s   ,A%%A),A)c                     t          ddgddggddg          }|                    |dd	
           t          j        |d          }t	          j        ||           d S )NrC   rF   r>   r=   rZ  r[  rf   r  r  )rK   freeze_panesr   r   r  )rV   r   rW   rZ   s       r   test_freeze_panesz!TestExcelWriter.test_freeze_panes  sn    q!fq!f-7GHHH$8&IIItq111
fh/////r   c           
         t          dt          j        d                              d          z  t	          t          d                    t	          d t          d          D                                 }t          |j        |          }t          t          j
        d	
          }t          j        ||d|           }t          j        ||           d S )Nr   x   r  r=   r#  c                     g | ]}d | S r  r   r  s     r   r   z6TestExcelWriter.test_path_path_lib.<locals>.<listcomp>)      555aa555r   r  r   r=  r   r   ra   r   )r   r   r  r  r   r   r   r   rQ   rR   rS   r*   round_trip_pathlibrT   rV   r1   r,   rY   rq   rr   rZ   s          r   test_path_path_libz"TestExcelWriter.test_path_path_lib%  s    ")C..((111$v,,''5559955566
 
 

 V444!444&vvK#KKHHH
fb)))))r   c           
         t          dt          j        d                              d          z  t	          t          d                    t	          d t          d          D                                 }t          |j        |          }t          t          j
        d	
          }t          j        ||d|           }t          j        ||           d S )Nr   rd  re  r#  c                     g | ]}d | S r  r   r  s     r   r   z8TestExcelWriter.test_path_local_path.<locals>.<listcomp>5  rg  r   r  r   r=  r   r   ra   r   )r   r   r  r  r   r   r   r   rQ   rR   rS   r*   round_trip_localpathrT   ri  s          r   test_path_local_pathz$TestExcelWriter.test_path_local_path1  s    ")C..((111$v,,''5559955566
 
 

 V444!444(kCkkJJJ
fb)))))r   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)rF   rF   r7  r3  rf   r   rC   r   c                 ,    g | ]}t          |          S r   r  r  s     r   r   zCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>J  s    +++c!ff+++r   c                 ,    g | ]}t          |          S r   rt  r  s     r   r   zCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>J  s    -K-K-Kc!ff-K-K-Kr   )level)r   r  rR   Periodr   r   r   rQ   rS   rg   
set_levelslevelsr*   rT   )rV   r   mirW   rZ   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/////r   r4  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)tzr3  zExcel does not supportr   )rR   r   r   r   r   r   rQ   to_pydatetime)rV   r4  tz_aware_fixturer   r~  r  rY   s          r    test_raise_when_saving_timezonesz0TestExcelWriter.test_raise_when_saving_timezonesO  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   rC   r    rx   r  )rk   rl   rk   Fr   )r   r    r   )rC   rx   rC   )rk   rl   r  rf   r  )rV   r   rY   rZ   rW   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/////r   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   rG  rH  r   )rV   r,   r   rM  s       r   test_if_sheet_exists_raisesz+TestExcelWriter.test_if_sheet_exists_raisesf  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   rQ   rR   rS   rT   )rV   r1   r,   r   rq   rZ   rW   s          r   test_excel_writer_empty_framez-TestExcelWriter.test_excel_writer_empty_framen  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 r  r   )rV   r1   r,   r   rZ   rW   s         r   test_to_excel_empty_framez)TestExcelWriter.test_to_excel_empty_framew  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)Fr   r   r   r   r  r  r  r   r+  r-  r   r   r   r   int8int16int32r7  r:  float16float32float64r<  r@  rC  rI  rP  rY  r^  rc  rz  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r!  r#  r(  r;  rA  rJ  rU  rX  r_  rb  rj  rn  r{  r  r  r  r  r  r  r   r   r   r   r   a  s       ." " ""# # #5 5 5/4 /4 /4b3 3 30 0 0(> > > [Y"(BHbh(OPP2 2 QP2" [YRZ(LMM
* 
* NM
*
* 
* 
** * *!0 !0 !0F& & &$;* ;* ;*z
* 
* 
*0 0 02-0 -0 -0^ [A 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C8 C8 98 98 ;:C8J0 0 0:B B B
O 
O 
O [-	
 4 4 40 0 0&0 0 00 0 0
0 
0 
0? ? ?0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 4r   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,extr4   r9   r7   r5   c                 J   t          j        |          5 }t          |          5 }|dk    r6t          t	          d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 )Nr4   r9   ignore)errors)r*   r+   r   r   r
   
isinstancer   )rV   klassr,   r   rq   s        r   test_ExcelWriter_dispatchz4TestExcelWriterEngineTests.test_ExcelWriter_dispatch  s-    _S!! 	5TT"" 5f'>>d.|HMMM' '> &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B 4B B	BB	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   rV   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          dgt          dgd	          t          d
g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xlsrT  c                     d S r%   r   r  s    r   bookzHTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.book  s    r   c                 .    dt          |           _        d S NT)typecalled_saver  s    r   _savezITestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._save  s    )-T

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

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

(((r   c                 X    | j         sJ | j        sJ | j        rJ d| _         d| _        d S )NF)r  r  r  )clss    r   assert_called_and_resetz[TestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.assert_called_and_reset  sC    &&&----,,,,"').&&&r   N)r   r   r   r  r  r  _supported_extensions_enginer  r  r  propertyr   classmethodr  r   r   r   
DummyClassr    s        K!&!M$3!G  . . .5 5 5 0 0 X0 / / [/ / /r   r  zio.excel.xlsx.writerrT  zsomething.xlsxrd   re   ra   )r\  r  rb   r   zsomething.xlsr=  )
r   r   r   r*   r+   r  r   r   rQ   r  )rV   r  r   filepathrq   rY   s         r   test_register_writerz/TestExcelWriterEngineTests.test_register_writer  sy   	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/8 	
###2G<< 	1 	1#D&& &( ** :f%fj999999: : : : : : : : : : : : : : :E!3%e444E222  
 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**,,,,,sl   D
CA:.C:A>>CA>ACDC	D C	!DDD#EEEN)r   r   r   r   r   r   r&   r   td
skip_if_nor   r  r  r  r   r   r   r  r    s        [FLg]R]<5P5PQQQFL'z9R9RSSS	
 	5 	5 	5# # #.- .- .- .- .-r   r  c                        e Zd 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.xlsxrk   rC   rF   )r*   r+   r   rQ   r   rD  fspath)rV   r   rY   r  rZ   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   rD  r  r  )rV   r   rq   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c                     t          dg di          }d}t          j        t          |          5  t	                      }t          |          }|                    |d           d d d            d S # 1 swxY w Y   d S )Nrd   r{   zwStarting with pandas version 3.0 all arguments of to_excel except for the argument 'excel_writer' will be keyword-only.r   Sheet_name_1)r   r*   r   r   r   r   rQ   )rV   rY   r   bufrq   s        r   "test_to_excel_pos_args_deprecationz-TestFSPath.test_to_excel_pos_args_deprecation  s    YYY'((E 	 'SAAA 	0 	0))C %%FKK///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   4A22A69A6N)r   r   r   r  r  r  r   r   r   r  r    sA        " " "6 6 6

0 
0 
0 
0 
0r   r  r  c                     d t          t                    D             }d t          |           D             }|                    |          rJ d S )Nc                 <    h | ]}|                     d           |S r   
startswithr   r\  s     r   	<setcomp>z%test_subclass_attr.<locals>.<setcomp>  s)    PPP44??3;O;OP$PPPr   c                 <    h | ]}|                     d           |S r  r  r  s     r   r  z%test_subclass_attr.<locals>.<setcomp>  s)    KKKDdooc6J6JK4KKKr   )dirr   symmetric_difference)r  
attrs_baseattrs_klasss      r   test_subclass_attrr    sY     QP3{#3#3PPPJKKCJJKKKK..{;;;;;;;r   )<r   r   r   	functoolsr   ior   rD  rG  numpyr   r   pandas.compatr   pandas.compat._constantsr	   pandas.compat._optionalr
   pandas.util._test_decoratorsutil_test_decoratorsr  pandasrR   r   r   r   r   r   pandas._testing_testingr*   pandas.io.excelr   r   r   r   r   pandas.io.excel._utilr   r   
single_cpu
pytestmarkr  r   fixturer"   r(   r   r3   r   r&   r  r<   usefixturesr   r  r  valuesr  r   r   r   <module>r     s           
             				 				      - - - - - - * * * * * * > > > > > > ) ) ) ) ) ) ) ) )                                     + * * * * * ('Js s        e}%%%  &%       	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
 
@0 @0 @0 @0 @0 @0 @0
 
@0F  2=,,mbmF.C.CD	
 	
 	

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

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

 	UF-"-*>*>???! * &&F4 F4 F4 F4 F4 F4 F4 '&+ ,F4R E- E- E- E- E- E- E- E-P vz0 0 0 0 0 0 0  06 /(/"3"344< < 54< < <r   