U
    `»{jÞÅ  ã                   @   sL  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  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mZ ej dd„ ƒZ!ej d	d
„ ƒZ"ej# $dej%de &d¡e &d¡gd�ej%de &d¡e &d¡gd�ej%de &d¡e &d¡gd�ej%de &d¡e &d¡gd�ej%de &d¡d�g¡G dd„ dƒƒZ'ej# $dej%dde &d¡e &d¡gd�ej%dde &d¡e &d¡gd�ej%dde &d¡e &d¡gd�ej%dde &d¡e &d¡gd�ej%dde &d¡d�g¡ej# (d
¡G dd„ dƒƒƒZ)G dd„ dƒZ*e &d¡e &d¡G dd„ dƒƒƒZ+dS )é    )ÚdateÚdatetimeÚ	timedelta)Úpartial)ÚBytesION)Ú	DataFrameÚIndexÚ
MultiIndexÚoption_context)Ú	ExcelFileÚExcelWriterÚ_OpenpyxlWriterÚ_XlsxWriterÚ_XlwtWriterÚregister_writerc              	   c   s    t  | ¡�}|V  W 5 Q R X dS )z9
    Fixture to open file for use in each test case.
    N)ÚtmÚensure_clean)ÚextÚ	file_path© r   úa/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/io/excel/test_writers.pyÚpath#   s    r   c              	   c   s2   d|  d¡› d�}t|| ƒ� dV  W 5 Q R X 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   Zoption_namer   r   r   Ú
set_engine,   s    
r   r   ú.xlsxÚopenpyxlZxlrd©Zmarksz.xlsmú.xlsÚxlwtÚ
xlsxwriterú.odsÚodfc                	   @   s  e Zd Zej ddeejgd ƒfdedejgd iƒfg¡dd„ ƒZ	ej ddedgejgd  ƒfdeejgd ƒfg¡d	d
„ ƒZ
dd„ Zdd„ Zd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d„ ƒƒƒƒZdd„ Zdd„ ZdS )ÚTestRoundTripzheader,expectedNé   r   z
Unnamed: 0é   c              	   C   sx   d}t dddgdddgdddgdd	d
ggƒ}t |¡�,}|j||ddd� tj||dg|d�}W 5 Q R X t ||¡ d S )NZ	no_headerÚ é   éd   é   éÈ   r&   é,  r%   é�  F©ÚindexÚheaderr   ©Ú
sheet_nameZusecolsr0   ©r   r   r   Úto_excelÚpdÚ
read_excelÚassert_frame_equal©Úselfr   r0   ÚexpectedÚfilenameÚdfr   Úresultr   r   r   Ú!test_read_one_empty_col_no_headerH   s    (   ÿz/TestRoundTrip.test_read_one_empty_col_no_headerc              	   C   sx   d}t dddgdddgdddgdd	d
ggƒ}t |¡�,}|j|dddd� tj||dg|d�}W 5 Q R X t ||¡ d S )NZwith_headerr'   r(   r)   r*   r+   r&   r,   r%   r-   FTr.   r   r1   r3   r8   r   r   r   Ú#test_read_one_empty_col_with_headerY   s    (   ÿz1TestRoundTrip.test_read_one_empty_col_with_headerc              
   C   sÔ   t ddgddgddggddgd	�}t |¡�ž}t|ƒ�(}|j|d
ddd� |j|ddd� W 5 Q R X ddg|_t|ƒ�2}tj|d
d ddgd�}tj|dd ddgd�}W 5 Q R X t 	||¡ t 	||¡ W 5 Q R X d S )Nr(   Úfoor*   Úbarr&   ZbazÚaÚb©ÚcolumnsZData_no_headF)r0   r/   ZData_with_head©r/   ÚAÚB)r2   r0   Únames)r2   Ú	index_colrI   )
r   r   r   r   r4   rE   r   r5   r6   r7   )r9   r   ZrefdfÚpthÚwriterÚreaderZxlsdf_no_headZxlsdf_with_headr   r   r   Ú"test_set_column_names_in_parameteri   s*    "


   ÿüz0TestRoundTrip.test_set_column_names_in_parameterc           
   
      s¬   dd„ ‰ dddg}‡ fdd„|D ƒ}t t||ƒƒ}t |¡�f}t|ƒ�$}| ¡ D ]\}}| ||¡ qPW 5 Q R X tj||dd	�}|D ]}	t 	||	 ||	 ¡ q„W 5 Q R X d S )
Nc                 S   s&   dddgdddg }}t ||| gd�S )Né   é   é!   r(   r*   r&   rD   )r   )Zcol_sheet_nameÚdÚir   r   r   Útdfˆ   s    zDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdfZAAAZBBBZCCCc                    s   g | ]}ˆ |ƒ‘qS r   r   )Ú.0Ús©rT   r   r   Ú
<listcomp>Ž   s     zKTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.<listcomp>r   ©r2   rJ   )
ÚdictÚzipr   r   r   Úitemsr4   r5   r6   r7   )
r9   r   ÚsheetsÚdfsrK   ÚewZ	sheetnamer<   Zdfs_returnedrV   r   rW   r   Ú)test_creating_and_reading_multiple_sheetsƒ   s    

z7TestRoundTrip.test_creating_and_reading_multiple_sheetsc              	   C   sö   t  |¡�â}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d�}t  ||¡ 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d�}t  ||¡ W 5 Q R X d S )
Nr   r(   r&   é   )©ZOneÚx©ÚTwoÚX©re   ÚY)ÚZeror'   )rb   rd   rg   )ri   zUnnamed: 4_level_1)r0   rJ   ))ÚBegr'   ©ZMiddlerc   ©ÚTailrf   ©rm   rh   ))rj   zUnnamed: 1_level_1rk   rl   rn   ©r   r   r   r4   r5   r6   r7   )r9   r   r   r<   r:   Úactualr   r   r   Ú&test_read_excel_multiindex_empty_level›   sF    üÿ	üÿ	
üÿ	üÿ	
z4TestRoundTrip.test_read_excel_multiindex_empty_levelÚc_idx_namesTFÚr_idx_namesÚc_idx_levelsr(   Úr_idx_levelsc              	   C   sD  t  |¡��.}|dkr@|r@|dkr&|r@tjjdd�}|j |¡ |pJ|dk}	t  dd||||¡}
|
 |¡ t	j
|tt|ƒƒtt|ƒƒd�}t j|
||	d� tj|
jdd d …f< |
 |¡ t	j
|tt|ƒƒtt|ƒƒd�}t j|
||	d� tj|
jd	d d …f< |
 |¡ t	j
|tt|ƒƒtt|ƒƒd�}t j|
||	d� W 5 Q R X d S )
Nr(   r&   z?Column index name cannot be serialized unless it's a MultiIndex)Úreasoné   )rJ   r0   )Úcheck_namesr   éÿÿÿÿ)r   r   ÚpytestÚmarkZxfailÚnodeZ
add_markerÚmakeCustomDataframer4   r5   r6   ÚlistÚranger7   ÚnpÚnanÚiloc)r9   r   rr   rs   rt   ru   ÚrequestrK   r{   rx   r<   Zactr   r   r   Útest_excel_multindex_roundtripÊ   sT    ÿÿÿ     ÿ


ý


ý


ýz,TestRoundTrip.test_excel_multindex_roundtripc              	   C   s¾   t dddgtjddd�dœƒ}| ¡ }|d j d¡|d< t |¡�p}| |¡ tj	|d	d
�}t 
||¡ tj	|dgd	d�}t 
||¡ dd„ }tj	|dg|d	d�}t 
||¡ W 5 Q R X d S )Nr(   r*   r&   z
2012-01-01)Úperiods)ÚcolÚdate_stringsr‡   ú%m/%d/%Yr   ©rJ   )Úparse_datesrJ   c                 S   s   t  | d¡S )Nrˆ   )r   Ústrptime©rc   r   r   r   Ú<lambda>  ó    z;TestRoundTrip.test_read_excel_parse_dates.<locals>.<lambda>)rŠ   Údate_parserrJ   )r   r5   Z
date_rangeÚcopyÚdtÚstrftimer   r   r4   r6   r7   )r9   r   r<   Zdf2rK   Úresr�   r   r   r   Útest_read_excel_parse_datesÿ   s&    ÿ
   ÿz)TestRoundTrip.test_read_excel_parse_datesc              	   C   sš   t  tdƒtjt d¡ddd�g¡}ttdƒ|d�}t |¡�"}| 	|¡ tj
|ddgd�}W 5 Q R X ttdƒt  tdƒd	d
ddgg¡ƒ}t ||¡ d S )Nr%   z
2020-01-01Z6M)Ústartr…   ÚfreqrF   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   r5   Zinterval_rangeÚ	Timestampr   r   r   r4   r6   r7   )r9   r   Zmidxr<   rK   r=   r:   r   r   r   Ú"test_multiindex_interval_datetimes  s4      ÿþÿ
üþÿþz0TestRoundTrip.test_multiindex_interval_datetimes)Ú__name__Ú
__module__Ú__qualname__rz   r{   Úparametrizer   r€   r�   r>   r?   rN   r`   rq   r„   r”   r™   r   r   r   r   r$   ;   s(   *þ
,þ
/1r$   z
engine,extc                   @   sª  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dejejejejg¡dd„ ƒZe
j dejejejg¡dd„ ƒZe
j dejejg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Z d$d%„ Z!d&d'„ Z"d(d)„ Z#d*d+„ Z$d,d-„ Z%d.d/„ Z&d0d1„ Z'd2d3„ Z(d4d5„ Z)d6d7„ Z*d8d9„ Z+d:d;„ Z,d<d=„ Z-e
j d>d?d@g¡e
j dAdBdCdDg¡e
j dEdBdCdDg¡dFdG„ ƒƒƒZ.dHdI„ Z/dJdK„ Z0dLdM„ Z1e
j dNdOdPg¡dQdR„ ƒZ2dSdT„ Z3dUdV„ Z4dWdX„ Z5dYdZ„ Z6d[d\„ Z7d]d^„ Z8d_d`„ Z9dadb„ Z:dcdd„ Z;dedf„ Z<dgdh„ Z=didj„ Z>dkdl„ Z?e
j dmdne@g¡dodp„ ƒZAdqdr„ ZBdsdt„ ZCdudv„ ZDdwdx„ ZEe
j dydzd{d|g¡d}d~„ ƒZFe
j Gd¡e
j d€d�d‚g dƒffg¡d„d…„ ƒƒZHdnS )†ÚTestExcelWriterc           	   	   C   sˆ   d}d}t j|dfd�}t jd|fd�}t|ƒ}t|ƒ}d}tjt|d�� | |¡ W 5 Q R X tjt|d�� | |¡ W 5 Q R X d S )Ni  i@  r(   )Úshapezsheet is too large©Úmatch)r€   Zzerosr   rz   ÚraisesÚ
ValueErrorr4   )	r9   r   Zbreaking_row_countZbreaking_col_countZrow_arrZcol_arrZrow_dfZcol_dfÚmsgr   r   r   Útest_excel_sheet_sizeO  s    z%TestExcelWriter.test_excel_sheet_sizec              	   C   sz   t tj dd¡ƒ}| |¡ t|ƒ�}tj|ddd�}W 5 Q R X t 	||¡ d}t
jt|d�� t |d¡ W 5 Q R X d S )Né
   r*   r   rY   zWorksheet named '0' not foundr    Ú0)r   r€   ÚrandomÚrandnr4   r   r5   r6   r   r7   rz   r¢   r£   )r9   r   ÚgtÚxlr<   r¤   r   r   r   Útest_excel_sheet_by_name_raisea  s    

z.TestExcelWriter.test_excel_sheet_by_name_raisec              	   C   s–   t |ƒ�8}| |d¡ | ¡ }|jd d d… |_| |d¡ W 5 Q R X t|ƒ�>}tj|ddd�}tj|ddd�}t ||¡ t ||¡ W 5 Q R X d S )NZData1ry   ZData2r   rY   )	r   r4   r�   rE   r   r5   r6   r   r7   )r9   Úframer   rL   Úframe2rM   Zfound_dfZ	found_df2r   r   r   Ú!test_excel_writer_context_managern  s    

z1TestExcelWriter.test_excel_writer_context_managerc                 C   sÈ  |  ¡ }tj|d d d…< | |d¡ |j|dddgd� |j|ddd� |j|ddd� | |d¡ tj|dd	d
�}t ||¡ |j|ddd� tj|dd d
�}|j|_t ||¡ |j|ddd� tj|dd	dgd�}t ||¡ |j|ddd� tj|dd	dgd�}t ||¡ |j|ddd� tj|dd	ddgd�}t ||¡ | |d¡ tj|d	d�}t ||¡ | |d¡ tj|d	d�}t ||¡ |d }| |¡ tj|d	d�}t | 	¡ |¡ d S )NrG   rw   Útest1rH   rD   F©r0   rF   r   rY   ZNA)Zna_rep)r2   rJ   Z	na_valuesZ88éX   g      V@ÚSheet1r‰   r§   )
r�   r€   r�   r4   r5   r6   r   r7   r/   Zto_frame)r9   r­   r   ÚreconsrV   r   r   r   Útest_roundtrip|  sJ       ÿ
zTestExcelWriter.test_roundtripc              	   C   sP   |  ¡ }d|d< | |d¡ t|ƒ�}tj|ddd�}W 5 Q R X t ||¡ d S )NrA   r@   r°   r   rY   )r�   r4   r   r5   r6   r   r7   )r9   r­   r   Zmixed_framerM   r´   r   r   r   Ú
test_mixed­  s    
zTestExcelWriter.test_mixedc              	   C   s`   |}t jt |j¡d d�}||_| |d¡ t|ƒ�}t j|ddd�}W 5 Q R X t 	||¡ d S )N©r–   r°   r   rY   )
r5   ÚDatetimeIndexr€   Úasarrayr/   r4   r   r6   r   r7   )r9   Útsframer   r<   r/   rM   r´   r   r   r   Útest_ts_frame¶  s    
zTestExcelWriter.test_ts_framec                 C   s^   |  ¡ }tj|d d d…< | |d¡ |j|dddgd� |j|ddd� |j|ddd� d S )	NrG   rw   r°   rH   rD   Fr±   rF   )r�   r€   r�   r4   )r9   r­   r   r   r   r   Útest_basics_with_nanÂ  s    z$TestExcelWriter.test_basics_with_nanÚnp_typec           	   	   C   sà   t tjjdddd�|d�}| |d¡ t|ƒ�}tj|ddd�}W 5 Q R X | tj	¡}t
 ||¡ tj|ddd�}t
 ||¡ | t¡}|j t¡|_|j t¡|_t
jtd	d
�� tj|dddd�}W 5 Q R X t
 ||¡ d S )Néöÿÿÿr¦   )r¦   r*   ©Úsize©Údtyper°   r   rY   úconvert_float is deprecatedr    F)r2   Úconvert_floatrJ   )r   r€   r¨   Úrandintr4   r   r5   r6   ÚastypeÚint64r   r7   ÚfloatrE   r/   Úassert_produces_warningÚFutureWarning)	r9   r½   r   r<   rM   r´   Z	int_frameZrecons2Zfloat_framer   r   r   Útest_int_typesÊ  s,    

 ÿ   ÿzTestExcelWriter.test_int_typesc              	   C   sZ   t tj d¡|d�}| |d¡ t|ƒ�}tj|ddd� |¡}W 5 Q R X t	 
||¡ d S )Nr¦   rÁ   r°   r   rY   )r   r€   r¨   Zrandom_sampler4   r   r5   r6   rÆ   r   r7   ©r9   r½   r   r<   rM   r´   r   r   r   Útest_float_typesæ  s    
ÿz TestExcelWriter.test_float_typesc              	   C   sZ   t ddddg|d�}| |d¡ t|ƒ�}tj|ddd� |¡}W 5 Q R X t ||¡ d S )Nr(   r   TFrÁ   r°   rY   )r   r4   r   r5   r6   rÆ   r   r7   rÌ   r   r   r   Útest_bool_typesó  s    
ÿzTestExcelWriter.test_bool_typesc              	   C   s\   t dtjfddtj fgƒ}| |d¡ t|ƒ�}tj|ddd�}W 5 Q R X t ||¡ d S )Nr(   )r*   r&   rw   r°   r   rY   )	r   r€   Úinfr4   r   r5   r6   r   r7   )r9   r   r<   rM   r´   r   r   r   Útest_inf_roundtrip   s
    
z"TestExcelWriter.test_inf_roundtripc              	   C   s.  t jt |j¡d d�}||_| ¡ }tj|d d d…< | |d¡ |j|dddgd� |j|ddd� |j|ddd	� t|ƒ�}| |d¡ | |d
¡ W 5 Q R X t	|ƒ�>}t j
|ddd�}t ||¡ t j
|d
dd�}t ||¡ W 5 Q R X dt|jƒk�st‚d|jd k�st‚d
|jd k�s*t‚d S )Nr·   rG   rw   r°   rH   rD   Fr±   rF   Ztest2r   rY   r*   r(   )r5   r¸   r€   r¹   r/   r�   r�   r4   r   r   r6   r   r7   ÚlenÚsheet_namesÚAssertionError)r9   r­   rº   r   r/   rL   rM   r´   r   r   r   Útest_sheets	  s&    

zTestExcelWriter.test_sheetsc              	   C   s¼   |  ¡ }tj|d d d…< | |d¡ |j|dddgd� |j|ddd� |j|ddd� td	d
ddgƒ}|j|d|d� t|ƒ�}tj|ddd�}W 5 Q R X |  ¡ }||_t	 
||¡ d S )NrG   rw   r°   rH   rD   Fr±   rF   ZAArf   rh   ÚZr   rY   )r�   r€   r�   r4   r   r   r5   r6   rE   r   r7   )r9   r­   r   Zcol_aliasesrM   ÚrsÚxpr   r   r   Útest_colaliases$  s    
zTestExcelWriter.test_colaliasesc              	   C   s"  |  ¡ }tj|d d d…< | |d¡ |j|dddgd� |j|ddd� |j|ddd� ttj d	d
¡ƒdk}|j|ddg|d� t|ƒ�}tj	|ddd� 
tj¡}W 5 Q R X dg|j_|jj|jjksÎt‚ttj d	d
¡ƒdk}|j|ddddg|d� t|ƒ�}tj	|ddd� 
tj¡}W 5 Q R X dg|j_|jj|jjk�sHt‚ttj d	d
¡ƒdk}|j|dd|d� t|ƒ�}tj	|ddd� 
tj¡}W 5 Q R X dg|j_t || 
t¡¡ |j|dddddgd|d� |  ¡ }| ddg¡}t|ƒ�}tj	|dddgd�}W 5 Q R X t ||¡ d S )NrG   rw   r°   rH   rD   Fr±   rF   r¦   r*   r   Útest)Zindex_labelÚmerge_cellsrY   ÚdummyZdummy2ÚCÚD)rE   r/   rÚ   r(   )r�   r€   r�   r4   r   r¨   r©   r   r5   r6   rÆ   rÇ   r/   rI   rÓ   r   r7   ÚboolÚ	set_index)r9   rÚ   r­   r   r<   rM   r´   r   r   r   Útest_roundtrip_indexlabels6  s^    
ÿ
ü
ÿ

ÿ

û
z*TestExcelWriter.test_roundtrip_indexlabelsc              	   C   sr   t tj dd¡ƒ}d|j_|j||d� t|ƒ�}tj	||j
d dd�}W 5 Q R X t ||¡ |jjdksnt‚d S )Nr¦   r%   r@   ©rÚ   r   rY   )r   r€   r¨   r©   r/   Únamer4   r   r5   r6   rÒ   r   r7   rÓ   )r9   rÚ   r   r<   Úxfr=   r   r   r   Útest_excel_roundtrip_indexnameo  s    
 z.TestExcelWriter.test_excel_roundtrip_indexnamec              	   C   sz   t jt |j¡d d�}||_| ¡ }dd„ |jD ƒ|_|j|d|d� t|ƒ�}t j|ddd�}W 5 Q R X t	 
||¡ d S )Nr·   c                 S   s   g | ]}|  ¡ ‘qS r   )r   )rU   rc   r   r   r   rX   „  s     zATestExcelWriter.test_excel_roundtrip_datetime.<locals>.<listcomp>r°   rá   r   rY   )r5   r¸   r€   r¹   r/   r�   r4   r   r6   r   r7   )r9   rÚ   rº   r   r/   ZtsfrM   r´   r   r   r   Útest_excel_roundtrip_datetime{  s    
z-TestExcelWriter.test_excel_roundtrip_datetimec              
   C   s\  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�}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�}t |¡�”}t|ƒ�}| |d¡ W 5 Q R X t|ddd��}| |d¡ W 5 Q R X t|ƒ�}tj	|ddd�}	W 5 Q R X t|ƒ�}
tj	|
ddd�}W 5 Q R X W 5 Q R X t 
|	|¡ t 
||¡ d S )NiÞ  r(   é   iÏ  é	   é   iÎ  rw   é   é   rQ   r%   r*   é   é   ZDATEZDATETIMErf   rh   ©r/   rE   r°   z
DD.MM.YYYYzDD.MM.YYYY HH-MM-SS)Zdate_formatZdatetime_formatr   rY   )r   r   r   r   r   r   r4   r   r5   r6   r7   )r9   r   r   r<   Zdf_expectedÚ	filename2Zwriter1Zwriter2Zreader1Zrs1Zreader2Zrs2r   r   r   Útest_excel_date_datetime_formatŒ  s<    "þú"þú	
ý

$z/TestExcelWriter.test_excel_date_datetime_formatc              	   C   s’   t tjjdddd�tjd�}| ¡ }t |d d¡|d< t |d d¡ t	¡|d< | 
|d¡ t|ƒ�}tj|ddd	�}W 5 Q R X t ||¡ d S )
Nr¾   r¦   ©é   r(   r¿   rÁ   r   Únewr°   rY   )r   r€   r¨   rÅ   rÇ   r�   r5   ÚcutrÆ   Ústrr4   r   r6   r   r7   ©r9   r   r<   r:   rM   r´   r   r   r   Ú test_to_excel_interval_no_labels¸  s    
z0TestExcelWriter.test_to_excel_interval_no_labelsc                 C   s¦   t tjjdddd�tjd�}| ¡ }tj|d dddd	d
ddddddg
d�}||d< t t	|ƒ¡|d< | 
|d¡ t|ƒ�}tj|ddd�}W 5 Q R X t ||¡ d S )Nr¾   r¦   rð   r¿   rÁ   r   rG   rH   rÜ   rÝ   ÚEÚFÚGÚHÚIÚJ)Úlabelsrò   r°   rY   )r   r€   r¨   rÅ   rÇ   r�   r5   ró   ZSeriesr~   r4   r   r6   r   r7   )r9   r   r<   r:   Z	intervalsrM   r´   r   r   r   Útest_to_excel_interval_labelsÇ  s      ÿ
z-TestExcelWriter.test_to_excel_interval_labelsc              	   C   s”   t tjjdddd�dgtjd�}| ¡ }|d  dd„ ¡|d	< |d  d
d„ ¡|d	< | |d¡ t|ƒ�}t	j
|ddd�}W 5 Q R X t ||¡ d S )Nr¾   r¦   rð   r¿   rG   )rE   rÂ   c                 S   s
   t | d�S )N©Úseconds)r   rŒ   r   r   r   r�   á  rŽ   z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>rò   c                 S   s   t | d� ¡ d S )Nrÿ   i€Q )r   Útotal_secondsrŒ   r   r   r   r�   ã  rŽ   r°   r   rY   )r   r€   r¨   rÅ   rÇ   r�   Úapplyr4   r   r5   r6   r   r7   rõ   r   r   r   Útest_to_excel_timedeltaØ  s      ÿÿ
z'TestExcelWriter.test_to_excel_timedeltac              	   C   sX   |j ddd� ¡ }| |d¡ t|ƒ�}tj|ddd�}W 5 Q R X t || d¡¡ d S )NÚMZperiod)ÚkindZsht1r   rY   )	ZresampleZmeanr4   r   r5   r6   r   r7   Z	to_period)r9   rº   r   r×   rM   rÖ   r   r   r   Útest_to_excel_periodindexë  s
    
z)TestExcelWriter.test_to_excel_periodindexc              	   C   s    t  t|jƒd ¡ dd¡}tj|ddgd�}||_|j|ddd� |j|dd	d
gd� |j|d|d� t|ƒ�}t	j
|dddgd�}W 5 Q R X t ||¡ d S )Nr*   ry   ÚfirstÚsecond©rI   r°   Fr±   rG   rH   rD   rá   r   r(   rY   )r€   ÚarangerÑ   r/   Úreshaper	   r—   r4   r   r5   r6   r   r7   )r9   rÚ   r­   r   ÚarraysÚ	new_indexrM   r<   r   r   r   Útest_to_excel_multiindexô  s    
z(TestExcelWriter.test_to_excel_multiindexc                 C   sb   t d ddgdddgtj d¡dœƒ}| ddg¡}|j||d	� tj|d
dgd�}t 	||¡ d S )Nr*   r&   r¦   rñ   é   ©rG   rH   rÜ   rG   rH   rá   r   r(   r‰   )
r   r€   r¨   Úsamplerß   r4   r5   r6   r   r7   )r9   rÚ   r   r<   Zdf1r   r   r   Ú"test_to_excel_multiindex_nan_label  s
    $z2TestExcelWriter.test_to_excel_multiindex_nan_labelc              	   C   sÐ   t  t|jƒd ¡ dd¡}tj|ddgd�}||_t dddd	g¡}||_d
dg}|s\d
}|j	|d|d� t
|ƒ�}tj|d|d
dgd�}	W 5 Q R X |sÀ|jjdddd�}
dd„ t|
Ž D ƒ|_t ||	¡ d S )Nr*   ry   r  r  r	  )é(   r(   )r  r*   )é2   r(   )r  r*   r   r(   r°   rá   ©r2   r0   rJ   F)ZsparsifyZadjoinrI   c                 S   s   g | ]}d   tt|ƒ¡‘qS )r   )ÚjoinÚmaprô   )rU   Úqr   r   r   rX   !  s     zATestExcelWriter.test_to_excel_multiindex_cols.<locals>.<listcomp>)r€   r
  rÑ   r/   r  r	   r—   Úfrom_tuplesrE   r4   r   r5   r6   Úformatr[   r   r7   )r9   rÚ   r­   r   r  r  Znew_cols_indexr0   rM   r<   Úfmr   r   r   Útest_to_excel_multiindex_cols  s(    
   ÿz-TestExcelWriter.test_to_excel_multiindex_colsc              	   C   s†   |j t t|j ƒ¡g}t |¡|_ ddg|j _|j|d|d� t|ƒ�}t	j
|dddgd�}W 5 Q R X t ||¡ |j jdks‚t‚d S )	NÚtimer@   r°   rá   r   r(   rY   )r  r@   )r/   r€   r
  rÑ   r	   r—   rI   r4   r   r5   r6   r   r7   rÓ   )r9   rÚ   rº   r   r  rM   r´   r   r   r   Útest_to_excel_multiindex_dates$  s    
z.TestExcelWriter.test_to_excel_multiindex_datesc              	   C   sz   t ddgddgddgdœƒ}| ¡ }t dd	g¡}||_|j|d
dd� t|ƒ�}tj|d
d�}W 5 Q R X t	 
||¡ d S )Nr¦   rñ   r  r  r  é<   )rB   rC   Úc)éF   éP   )éZ   r)   r°   FrF   ©r2   )r   r�   r	   r  r/   r4   r   r5   r6   r   r7   )r9   r   Zframe1r®   Zmulti_indexrM   Zframe3r   r   r   Ú'test_to_excel_multiindex_no_write_index1  s    
z7TestExcelWriter.test_to_excel_multiindex_no_write_indexc              	   C   st   t g dddgd�}t g tjg ddgd�dgd�}| |d¡ t|ƒ�}tj|dd�}W 5 Q R X tj||d	d	d
� d S )Nr   r(   r*   rD   r	  rí   r°   r$  F)Zcheck_index_typeZcheck_dtype)	r   r	   r  r4   r   r5   r6   r   r7   )r9   r   r:   r<   rM   r=   r   r   r   Útest_to_excel_empty_multiindexF  s    
   ÿz.TestExcelWriter.test_to_excel_empty_multiindexc              	   C   s”   t dddgdddggddgd	d
dgd�}|j|ddd� t|ƒ�}tj|ddd�}W 5 Q R X t dddgdddggddgd	d
dgd�}t ||¡ d S )Nç¿¶~úÏš¿?ç9DÜœJÎ?ç>éD‚)â?çÜ.4×i¤(@ç33333þ@çÍÌÌÌ¤œArG   rH   rf   rh   rÕ   rí   r°   ú%.2f©Zfloat_formatr   rY   ç¸…ëQ¸¾?çq=
×£pÍ?ç=
×£p=â?ç¤p=
×£(@)r   r4   r   r5   r6   r   r7   )r9   r   r<   rM   r=   r:   r   r   r   Útest_to_excel_float_formatS  s    ý
ýz*TestExcelWriter.test_to_excel_float_formatc              	   C   sp   t dddgdddggddgd	d
dgd�}t d| ¡�0}|j|dd� tj|ddd�}t ||¡ W 5 Q R X d S )Nu   Æ’u   Æ“u   Æ”u   Æ•u   Æ–u   Æ—u   AÆ’rH   u   XÆ“rh   rÕ   rí   z__tmp_to_excel_float_format__.Z	TestSheetr$  r   rY   r3   )r9   r   r<   r;   r=   r   r   r   Útest_to_excel_output_encodinge  s    ýz-TestExcelWriter.test_to_excel_output_encodingc              
   C   sì   t  d| ¡� }z2zt|dƒ}W n tk
r>   t d¡ Y nX W 5 | ¡  X tdddgddd	ggd
dgdddgd�}|j|ddd� t	|ƒ�}t
j|ddd�}W 5 Q R X W 5 Q R X tdddgddd	ggd
dgdddgd�}t  ||¡ d S )Nu   Æ’u.Úwbz$No unicode file names on this systemr'  r(  r)  r*  r+  r,  rG   rH   rf   rh   rÕ   rí   r°   r-  r.  r   rY   r/  r0  r1  r2  )r   r   ÚcloseÚopenÚUnicodeEncodeErrorrz   Úskipr   r4   r   r5   r6   r7   )r9   r   r;   Úfr<   rM   r=   r:   r   r   r   Útest_to_excel_unicode_filenamer  s(    
ý
$ýz.TestExcelWriter.test_to_excel_unicode_filenameÚuse_headersTFÚr_idx_nlevelsr(   r*   r&   Úc_idx_nlevelsc              	      s(  d‡ ‡fdd„	}|rdnd }|t dgƒ||ƒ}|jdks<t‚|jd tjk	sPt‚d}	d}
tj|	|
||d	�}|d
kr d}tj	t
|d�� |||dd� W 5 Q R X n„|||ƒ}|rÆ|j|	|
| fksàt‚n|j|	d
 |
| fksàt‚tt|jƒƒD ]4}tt|jƒƒD ] }|j||f tjk	�s t‚�q qîd S )NTr   c              
      sH   | j ˆ|ˆ |d� tˆƒ�$}tj||jd |d�W  5 Q R £ S Q R X d S )N)r0   rÚ   r/   r   ©r2   r0   )r4   r   r5   r6   rÒ   )Údatar0   Z
parser_hdrr/   rã   ©rÚ   r   r   r   Ú	roundtrip’  s    
  ÿz;TestExcelWriter.test_excel_010_hemstring.<locals>.roundtrip)r(   r*   )r   r   rw   r&   )r=  r>  r(   z_Writing to Excel with MultiIndex columns and no index \('index'=False\) is not yet implemented.r    FrF   )Tr   T)r   rŸ   rÓ   r‚   r€   r�   r   r}   rz   r¢   ÚNotImplementedErrorr   rÑ   r/   rE   )r9   rÚ   r>  r=  r<  r   rB  Zparser_headerr“   ZnrowsZncolsr<   r¤   Úrr   r   rA  r   Útest_excel_010_hemstringŒ  s2    	   ÿÿ
z(TestExcelWriter.test_excel_010_hemstringc              
   C   sÄ  t dddgdddgdddggdddgd�}| |d¡ t dddgdddgdddggdddgd�}tj|dd	d
�}t ||¡ tjtdd�� tj|dd	dd�}W 5 Q R X t ||¡ t ddddgddddggddddgd�}| |d¡ tj|dd	d
�}t ddddgddddggddddgd�}t ||¡ |j|dddd� tj|dd d�}t ddddgddddggƒ}t ||¡ d}tjtdd��2 tj	t
|d�� tj|dd dd� W 5 Q R X W 5 Q R X d S )Nr(   r*   r&   rG   rH   rD   r°   zB.1r   rY   z,the 'mangle_dupe_cols' keyword is deprecatedr    T)r2   rJ   Úmangle_dupe_colsr%   rw   é   ra   é   úA.1Fr.   r?  z3Setting mangle_dupe_cols=False is not supported yet)r2   r0   rF  )r   r4   r5   r6   r   r7   rÉ   rÊ   rz   r¢   r£   )r9   r   r<   r:   r=   r¤   r   r   r   Útest_duplicated_columnsÃ  sV    * ÿ ÿ   ÿ( 
ÿ ÿ   ÿz'TestExcelWriter.test_duplicated_columnsc                 C   sj   t dddgdddgdœƒ}|j|dddgd� tj|ddd	�}t |d |d ¡ t |d |d ¡ d S )
Nr(   r*   ©rG   rH   r°   rH   rG   rD   r   r?  )r   r4   r5   r6   r   Úassert_series_equal)r9   r   Úwrite_frameÚ
read_framer   r   r   Útest_swapped_columnsò  s
    z$TestExcelWriter.test_swapped_columnsc              	   C   sz   t dddgdddgdœƒ}tjtdd�� |j|dddgd	� W 5 Q R X tjtd
d�� |j|dddgd	� W 5 Q R X d S )Nr(   r*   rK  zNot all names specifiedr    r°   rH   rÜ   rD   z.'passes columns are not ALL present dataframe'rÝ   )r   rz   r¢   ÚKeyErrorr4   )r9   r   rM  r   r   r   Útest_invalid_columnsü  s     ÿz$TestExcelWriter.test_invalid_columnsz#to_excel_index,read_excel_index_col)Tr   )FNc                 C   sd   t dddgdddgdddgdœƒ}|j|dddg|d� |ddg }tj|d|d	�}t ||¡ d S )
Nr(   r*   r&   r  Zcol_subset_bugrG   rH   ©rE   r/   rY   ©r   r4   r5   r6   r   r7   )r9   r   Zto_excel_indexZread_excel_index_colrM  r:   rN  r   r   r   Útest_write_subset_columns  s    	"   ÿ  ÿz)TestExcelWriter.test_write_subset_columnsc                 C   sv   t dddgdddgdœƒ}| |d¡ tj|ddd�}d |jd	< d |jd
< d |jd< tj|dddd�}t ||¡ d S )NÚoneú#oneÚtwoú#tworK  Útest_cr   rY   )r(   r   ©r(   r(   )r*   r(   ú#©r2   ÚcommentrJ   )r   r4   r5   r6   r‚   r   r7   ©r9   r   r<   Zresult1Zresult2r   r   r   Útest_comment_arg  s    


z TestExcelWriter.test_comment_argc                 C   sT   t dddgdddgdœƒ}| |d¡ tj|dd�}tj|dd d�}t ||¡ d S )	NrU  rV  rW  rX  rK  rY  r$  )r2   r]  rS  r^  r   r   r   Útest_comment_default0  s
    z$TestExcelWriter.test_comment_defaultc                 C   sb   t dddgdddgdœƒ}| |d¡ t dd dgdd d gdœƒ}tj|dddd	�}t ||¡ d S )
NrU  rV  rW  rX  rK  rY  r[  r   r\  rS  ©r9   r   r<   r:   r=   r   r   r   Útest_comment_used=  s
    z!TestExcelWriter.test_comment_usedc                 C   sT   t ddgddgdœƒ}|j|dd� t dgd	gdœƒ}tj|d
d�}t ||¡ d S )NÚ1z#2Ú2Ú3)rB   rC   FrF   r(   r*   r[  )r]  rS  ra  r   r   r   Útest_comment_empty_lineK  s
    z'TestExcelWriter.test_comment_empty_linec                 C   sô   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 �}t |d |d ¡ d S )!NiÝ  r(   rì   r*   r&   é-   é8   r%   é   é1   rG  é*   ra   é9   é#   rç   é)   rë   rO   é   é   é   é5   é   é%   r   é   rñ   é4   rG   r³   r?  )r   r   r4   r5   r6   r   rL  )r9   r   Z	datetimesrM  rN  r   r   r   Útest_datetimesW  s     õzTestExcelWriter.test_datetimesc              
   C   sn   t ƒ �^}ttj dd¡ƒ}t||d��}| |¡ W 5 Q R X | d¡ tj	|dd�}t
 ||¡ W 5 Q R X d S )Nr¦   r*   ©r   r   r‰   )r   r   r€   r¨   r©   r   r4   Úseekr5   r6   r   r7   )r9   r   Zbior<   rL   Z	reread_dfr   r   r   Útest_bytes_iom  s    
zTestExcelWriter.test_bytes_ioc                 C   s~   t dddgdddœgdddgd	d
dgdœƒ}| |d¡ tj|dddd�}| ¡ }|j t¡|_|j 	d¡|_t
 ||¡ d S )NrB   rC   r   Úer*   )rR   r:  r(   g      @ÚappleÚbananaZcherry)ÚmixedÚnumericrô   r³   r   r  rÇ   )r   r4   r5   r6   r�   r~  r  rô   r  rÆ   r   r7   ©r9   r   r<   Úreadr:   r   r   r   Útest_write_lists_dictz  s    ýÿz%TestExcelWriter.test_write_lists_dictc                 C   sF   t ddgddgdœƒ}| |d¡ tj|ddd�}|}t ||¡ d S )	Nr(   r*   r&   r%   )Úrenderr@  r³   r   r‰   rS  r€  r   r   r   Útest_render_as_column_nameŒ  s
    z*TestExcelWriter.test_render_as_column_namec                 C   sV   t ddggddgd�}| dddœ¡}| |¡ tj|dgdgd	d
�}t ||¡ d S )Nr@   rA   Úcol1Úcol2rD   TF)r@   rA   r   )Ztrue_valuesZfalse_valuesrJ   )r   Úreplacer4   r5   r6   r   r7   )r9   r   r<   r:   rN  r   r   r   Ú!test_true_and_false_value_options”  s    
   ÿz1TestExcelWriter.test_true_and_false_value_optionsc                 C   sJ   t ddgddggddgd�}|j|dd	d
� tj|dd�}t ||¡ d S )Nr(   r*   r&   r%   r…  r†  rD   r³   rZ  )Zfreeze_panesr   r‰   rS  )r9   r   r:   r=   r   r   r   Útest_freeze_panesŸ  s    z!TestExcelWriter.test_freeze_panesc                 C   sJ   t  ¡ }t|j|d�}ttjdd�}t j||d|› �d�}t  ||¡ d S ©Nrx  r   r‰   r@   )r   )r   ÚmakeDataFramer   r4   r5   r6   Zround_trip_pathlibr7   ©r9   r   r   r<   rL   rM   r=   r   r   r   Útest_path_path_lib§  s
    z"TestExcelWriter.test_path_path_libc                 C   sJ   t  ¡ }t|j|d�}ttjdd�}t j||d|› �d�}t  ||¡ d S rŠ  )r   r‹  r   r4   r5   r6   Zround_trip_localpathr7   rŒ  r   r   r   Útest_path_local_path¯  s
    z$TestExcelWriter.test_path_local_pathc              	   C   sÔ   t  t d¡t d¡ft d¡t d¡fg¡}tt d¡|d�}| |¡ tj	t
dd�� tj|dd	gdd
d�}W 5 Q R X |jjdd„ |jd D ƒdd„ |jd	 D ƒgdd	gd�|_|j tj¡|_t ||¡ d S )NZ2018Z2018Q1Z2018Q2)r*   r*   rD   rÃ   r    r   r(   F)r0   rJ   rÄ   c                 S   s   g | ]}t |ƒ‘qS r   )rô   )rU   rS   r   r   r   rX   É  s     zCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>)Úlevel)r	   r  r5   ZPeriodr   r€   Zonesr4   r   rÉ   rÊ   r6   rE   Z
set_levelsZlevelsr/   rÆ   Úfloat64r7   )r9   r   Úmir:   r=   r   r   r   Útest_merged_cell_custom_objects·  s.    þÿ
 ÿ   ÿ&þz/TestExcelWriter.test_merged_cell_custom_objectsrÂ   Nc              	   C   s‚   |}t jd|d�}t|g|d�}tjtdd�� | |¡ W 5 Q R X | ¡ }t|g|d�}tjtdd�� | |¡ W 5 Q R X d S )NZ2019)ÚtzrÁ   zExcel does not supportr    )r5   r˜   r   rz   r¢   r£   r4   Zto_pydatetime)r9   rÂ   Ztz_aware_fixturer   r“  r@  r<   r   r   r   Ú test_raise_when_saving_timezonesÏ  s    z0TestExcelWriter.test_raise_when_saving_timezonesc                 C   sh   t ddgddgdœƒ}|j|dddgdd	� t |¡}t dddgdddggddd
gd�}t ||¡ d S )Nr   r(   r¦   rO   rK  rG   rH   FrR  rI  rD   rS  )r9   r   r<   r=   r:   r   r   r   Ú'test_excel_duplicate_columns_with_namesÝ  s
    
"z7TestExcelWriter.test_excel_duplicate_columns_with_namesc              
   C   sJ   d}t  |¡�2}tjtt |¡d�� t|dd� W 5 Q R X W 5 Q R X d S )Nz7if_sheet_exists is only valid in append mode (mode='a')r    r‡  )Zif_sheet_exists)r   r   rz   r¢   r£   ÚreÚescaper   )r9   r   r¤   r:  r   r   r   Útest_if_sheet_exists_raisesæ  s    z+TestExcelWriter.test_if_sheet_exists_raisesc              
   C   sZ   t  |¡�F}t||d��}tƒ  |¡ W 5 Q R X t |¡}tƒ }t  ||¡ W 5 Q R X d S ©Nrx  )r   r   r   r   r4   r5   r6   r7   )r9   r   r   r   rL   r=   r:   r   r   r   Útest_excel_writer_empty_frameî  s    
z-TestExcelWriter.test_excel_writer_empty_framec              	   C   sF   t  |¡�2}tƒ j||d� t |¡}tƒ }t  ||¡ W 5 Q R X d S r™  ro   )r9   r   r   r   r=   r:   r   r   r   Útest_to_excel_empty_frame÷  s
    
z)TestExcelWriter.test_to_excel_empty_frameÚattrZ	cur_sheetZhandlesr   c                 C   sh   t  |¡�T}t|ƒ�@}|› d�}t jt|d�� t||ƒ W 5 Q R X tƒ  |¡ W 5 Q R X W 5 Q R X d S ©Nz is not part of the public APIr    )r   r   r   rÉ   rÊ   Úgetattrr   r4   )r9   r   r   rœ  r   rL   r¤   r   r   r   Útest_deprecated_attrÿ  s    

z$TestExcelWriter.test_deprecated_attrz-ignore:Calling close():UserWarning:xlsxwriterz
attr, args)Úsaver   Zwrite_cellsrÙ   c                 C   sl   t  |¡�X}t|ƒ�D}|› d�}tƒ  |¡ t jt|d�� t||ƒ|Ž  W 5 Q R X W 5 Q R X W 5 Q R X d S r�  )r   r   r   r   r4   rÉ   rÊ   rž  )r9   r   r   rœ  Úargsr   rL   r¤   r   r   r   Útest_deprecated_method
  s    

z&TestExcelWriter.test_deprecated_method)Irš   r›   rœ   r¥   r¬   r¯   rµ   r¶   r»   r¼   rz   r{   r�   r€   Zint8Zint16Zint32rÇ   rË   Zfloat16Zfloat32r�  rÍ   Zbool8Zbool_rÎ   rÐ   rÔ   rØ   rà   rä   rå   rï   rö   rþ   r  r  r  r  r  r  r%  r&  r3  r4  r;  rE  rJ  rO  rQ  rT  r_  r`  rb  rf  rw  rz  r‚  r„  rˆ  r‰  r�  rŽ  r’  Úobjectr”  r•  r˜  rš  r›  rŸ  Úfilterwarningsr¢  r   r   r   r   rž   5  s”   1	


	9,	4/
þþ

		


 ÿrž   c                   @   sº   e Zd Zej dejede 	d¡d�eje
de 	d¡d�ejede 	d¡d�g¡dd	„ ƒZd
d„ Zdd„ Zej dejde 	d¡d�ejde 	d¡d�ejde 	d¡d�g¡dd„ ƒZdS )ÚTestExcelWriterEngineTestsz	klass,extr   r!   r   r   r   r    c              
   C   s^   t  |¡�J}t|ƒ�6}|dkr8t d¡r8t|tƒsFt‚nt||ƒsFt‚W 5 Q R X W 5 Q R X d S )Nr   r!   )r   r   r   ÚtdZsafe_importÚ
isinstancer   rÓ   )r9   Úklassr   r   rL   r   r   r   Útest_ExcelWriter_dispatch  s
    	
z4TestExcelWriterEngineTests.test_ExcelWriter_dispatchc              	   C   s&   t jtdd�� tdƒ W 5 Q R X d S )Nz	No enginer    Znothing)rz   r¢   r£   r   ©r9   r   r   r   Ú test_ExcelWriter_dispatch_raises+  s    z;TestExcelWriterEngineTests.test_ExcelWriter_dispatch_raisesc                 C   s¸   G dd„ dt ƒ}t|ƒ tddƒ�` d}t |¡�>}t |ƒ�}t||ƒsLt‚W 5 Q R X t dd¡}| |¡ W 5 Q R X | 	¡  W 5 Q R X t d¡�}|j|dd� W 5 Q R X | 	¡  d S )	Nc                   @   sP   e Zd ZdZdZdZdZdZdd„ Zdd„ Z	dd	„ Z
ed
d„ ƒZedd„ ƒZdS )zCTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClassF)ZxlsxZxlsrÛ   c                 S   s   d S )Nr   rª  r   r   r   Úbook7  s    zHTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.bookc                 S   s   dt | ƒ_d S ©NT)ÚtypeÚcalled_saverª  r   r   r   Ú_save:  s    zITestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._savec                 _   s   dt | ƒ_d S r­  )r®  Úcalled_write_cells)r9   r¡  Úkwargsr   r   r   Ú_write_cells=  s    zPTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._write_cellsc                 S   s   dt | ƒ_d S r­  )r®  Úcalled_sheetsrª  r   r   r   r]   @  s    zJTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.sheetsc                 S   s.   | j s
t‚| jst‚| jrt‚d| _ d| _d S )NF)r¯  rÓ   r±  r´  )Úclsr   r   r   Úassert_called_and_resetD  s
    


z[TestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.assert_called_and_resetN)rš   r›   rœ   r¯  r±  r´  Z_supported_extensionsZ_enginer¬  r°  r³  Úpropertyr]   Úclassmethodr¶  r   r   r   r   Ú
DummyClass0  s   
r¹  zio.excel.xlsx.writerrÛ   zsomething.xlsxr(   zsomething.xlsrx  )
r   r   r
   r   r   r§  rÓ   r}   r4   r¶  )r9   r¹  r   ÚfilepathrL   r<   r   r   r   Útest_register_writer/  s    
z/TestExcelWriterEngineTests.test_register_writerr   r"   r#   c              
   C   sF   t  d¡}tjt|d��$ tdddidd�� W 5 Q R X W 5 Q R X d S )Nz*Cannot use both engine_kwargs and **kwargsr    r'   rB   r(   r*   )Zengine_kwargsrC   )r–  r—  rz   r¢   r£   r   )r9   r   r¤   r   r   r   Ú$test_engine_kwargs_and_kwargs_raises[  s    

z?TestExcelWriterEngineTests.test_engine_kwargs_and_kwargs_raisesN)rš   r›   rœ   rz   r{   r�   Úparamr   r¦  Ú
skip_if_nor   r   r©  r«  r»  r¼  r   r   r   r   r¥    s$   ýþ
	,ýþr¥  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
TestFSPathc              
   C   s^   t  d¡�J}tdddgiƒ}| |¡ t|ƒ�}t |¡}W 5 Q R X ||ksPt‚W 5 Q R X d S )Núfoo.xlsxrG   r(   r*   )r   r   r   r4   r   ÚosÚfspathrÓ   )r9   r   r<   r«   r=   r   r   r   Útest_excelfile_fspathn  s    

z TestFSPath.test_excelfile_fspathc              
   C   sD   t  d¡�0}t|ƒ�}t |¡t|ƒks,t‚W 5 Q R X W 5 Q R X d S )NrÀ  )r   r   r   rÁ  rÂ  rô   rÓ   )r9   r   rL   r   r   r   Útest_excelwriter_fspathv  s    
z"TestFSPath.test_excelwriter_fspathN)rš   r›   rœ   rÃ  rÄ  r   r   r   r   r¿  k  s   r¿  ),r   r   r   Ú	functoolsr   Úior   rÁ  r–  Únumpyr€   rz   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr¦  Zpandasr5   r   r   r	   r
   Zpandas._testingZ_testingr   Zpandas.io.excelr   r   r   r   r   r   Zfixturer   r   r{   r�   r½  r¾  r$   Zusefixturesrž   r¥  r¿  r   r   r   r   Ú<module>   s†    


 ÿùþ oýý  ÿýíþ
       RR