a
    nÝEb¨¼  ã                   @   sP  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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Ú
get_optionÚ
set_option)Ú	ExcelFileÚExcelWriterÚ_OpenpyxlWriterÚ_XlsxWriterÚ_XlwtWriterÚregister_writerc                 c   s4   t  | ¡�}|V  W d  ƒ n1 s&0    Y  dS )z9
    Fixture to open file for use in each test case.
    N)ÚtmÚensure_clean)ÚextÚ	file_path© r   úb/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/io/excel/test_writers.pyÚpath$   s    r   c                 c   s8   d|  d¡› d�}t|ƒ}t|| ƒ dV  t||ƒ 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
   r   )Úenginer   Zoption_nameZprev_enginer   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   s„   d}t g d¢g d¢g d¢g d¢gƒ}t |¡�6}|j||ddd� tj||dg|d	�}W d   ƒ n1 sj0    Y  t ||¡ d S )
NZ	no_header©Ú é   éd   ©r)   é   éÈ   ©r)   r'   i,  ©r)   r&   i�  F©ÚindexÚheaderr   ©Ú
sheet_nameZusecolsr3   ©r   r   r   Úto_excelÚpdÚ
read_excelÚassert_frame_equal©Úselfr   r3   ÚexpectedÚfilenameÚdfr   Úresultr   r   r   Ú!test_read_one_empty_col_no_headerK   s     
ÿ$z/TestRoundTrip.test_read_one_empty_col_no_headerc                 C   s„   d}t g d¢g d¢g d¢g d¢gƒ}t |¡�6}|j|dddd� tj||d	g|d
�}W d   ƒ n1 sj0    Y  t ||¡ d S )NZwith_headerr(   r,   r/   r0   FTr1   r   r4   r6   r;   r   r   r   Ú#test_read_one_empty_col_with_header\   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|ƒ�2}|j|d
ddd� |j|ddd� W d   ƒ n1 sn0    Y  ddg|_t|ƒ�<}tj|d
d ddgd�}tj|dd ddgd�}W d   ƒ n1 sÌ0    Y  t 	||¡ t 	||¡ W d   ƒ n1 �s0    Y  d S )Nr*   Úfoor-   Úbarr'   ZbazÚaÚb©ÚcolumnsZData_no_headF)r3   r2   ZData_with_head©r2   ÚAÚB)r5   r3   Únames)r5   Ú	index_colrL   )
r   r   r   r   r7   rH   r   r8   r9   r:   )r<   r   ZrefdfÚpthÚwriterÚreaderZxlsdf_no_headZxlsdf_with_headr   r   r   Ú"test_set_column_names_in_parameterl   s$    "
.

ÿü$z0TestRoundTrip.test_set_column_names_in_parameterc           
   	      sÒ   dd„ ‰ g d¢}‡ fdd„|D ƒ}t t||ƒƒ}t |¡�„}t|ƒ�.}| ¡ D ]\}}| ||¡ qNW d   ƒ n1 sx0    Y  tj||dd�}|D ]}	t 	||	 ||	 ¡ q–W d   ƒ n1 sÄ0    Y  d S )Nc                 S   s"   g d¢g d¢ }}t ||| gd�S )N)é   é   é!   ©r*   r-   r'   rG   )r   )Zcol_sheet_nameÚdÚir   r   r   Útdf‹   s    zDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdf)ZAAAZBBBZCCCc                    s   g | ]}ˆ |ƒ‘qS r   r   )Ú.0Ús©rX   r   r   Ú
<listcomp>‘   ó    zKTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.<listcomp>r   ©r5   rM   )
ÚdictÚzipr   r   r   Úitemsr7   r8   r9   r:   )
r<   r   ZsheetsÚdfsrN   ÚewZ	sheetnamer?   Zdfs_returnedrZ   r   r[   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 d   ƒ n1 sü0    Y  d S )
Nr   r*   r'   é   )©ZOneÚx©ÚTwoÚX©ri   ÚY)ÚZeror)   )rf   rh   rk   )rm   zUnnamed: 4_level_1)r3   rM   ))ÚBegr)   ©ZMiddlerg   ©ÚTailrj   ©rq   rl   ))rn   zUnnamed: 1_level_1ro   rp   rr   )r   r   r   r7   r8   r9   r:   )r<   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   sZ  t  |¡��8}|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 d   ƒ n1 �sL0    Y  d S )
Nr*   r'   z?Column index name cannot be serialized unless it's a MultiIndex)Úreasoné   )rM   r3   )Úcheck_namesr   éÿÿÿÿ)r   r   ÚpytestÚmarkZxfailÚnodeZ
add_markerÚmakeCustomDataframer7   r8   r9   ÚlistÚranger:   ÚnpÚnanÚiloc)r<   r   ru   rv   rw   rx   ÚrequestrN   r~   r{   r?   Zactr   r   r   Útest_excel_multindex_roundtripÍ   sJ    ÿÿÿÿ


ý


ý


ýz,TestRoundTrip.test_excel_multindex_roundtripc                 C   sÐ   t g d¢tjddd�dœƒ}| ¡ }|d j d¡|d< t |¡�z}| |¡ tj	|dd	�}t 
||¡ tj	|dgdd
�}t 
||¡ dd„ }tj	|dg|dd�}t 
||¡ W d   ƒ n1 sÂ0    Y  d S )NrU   z
2012-01-01r'   )Úperiods)ÚcolÚdate_stringsrŠ   ú%m/%d/%Yr   ©rM   )Úparse_datesrM   c                 S   s   t  | d¡S )Nr‹   )r   Ústrptime©rg   r   r   r   Ú<lambda>  r]   z;TestRoundTrip.test_read_excel_parse_dates.<locals>.<lambda>)r�   Údate_parserrM   )r   r8   Z
date_rangeÚcopyÚdtÚstrftimer   r   r7   r9   r:   )r<   r   r?   Zdf2rN   Ú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 d   ƒ n1 sp0    Y  ttdƒt  tdƒg d	¢g¡ƒ}t ||¡ d S )
Nr&   z
2020-01-01Z6M)Ústartrˆ   ÚfreqrI   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‚   r8   Zinterval_rangeÚ	Timestampr   r   r   r7   r9   r:   )r<   r   Zmidxr?   rN   r@   r=   r   r   r   Ú"test_multiindex_interval_datetimes  s(    ÿþÿ
0þÿþz0TestRoundTrip.test_multiindex_interval_datetimes)Ú__name__Ú
__module__Ú__qualname__r}   r~   Úparametrizer   rƒ   r„   rA   rB   rQ   rd   rt   r‡   r–   r›   r   r   r   r   r%   >   s(   *þ
,þ
/1r%   z
engine,extc                   @   sD  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,e
j d<d=d>g¡e
j d?g d@¢¡e
j dAg d@¢¡dBdC„ ƒƒƒZ-dDdE„ Z.dFdG„ Z/dHdI„ Z0e
j dJdKdLg¡dMdN„ ƒZ1dOdP„ Z2dQdR„ Z3dSdT„ Z4dUdV„ Z5dWdX„ Z6dYdZ„ Z7d[d\„ Z8d]d^„ Z9d_d`„ Z:dadb„ Z;dcdd„ Z<dedf„ Z=dgdh„ Z>e
j didje?g¡dkdl„ ƒZ@dmdn„ ZAdodp„ ZBdjS )qÚTestExcelWriterc           	      C   s°   d}d}t j|dfd�}t jd|fd�}t|ƒ}t|ƒ}d}tjt|d�� | |¡ W d   ƒ n1 sj0    Y  tjt|d�� | |¡ W d   ƒ n1 s¢0    Y  d S )Ni  i@  r*   )Úshapezsheet is too large©Úmatch)rƒ   Zzerosr   r}   ÚraisesÚ
ValueErrorr7   )	r<   r   Zbreaking_row_countZbreaking_col_countZrow_arrZcol_arrZrow_dfZcol_dfÚmsgr   r   r   Útest_excel_sheet_sizeR  s    (z%TestExcelWriter.test_excel_sheet_sizec                 C   s¢   t tj dd¡ƒ}| |¡ t|ƒ� }tj|ddd�}W d   ƒ n1 sJ0    Y  t 	||¡ d}t
jt|d�� t |d¡ W d   ƒ n1 s”0    Y  d S )Né
   r-   r   r^   zWorksheet named '0' not foundr¢   Ú0)r   rƒ   ÚrandomÚrandnr7   r   r8   r9   r   r:   r}   r¤   r¥   )r<   r   r   ÚgtÚxlr?   r¦   r   r   r   Útest_excel_sheet_by_name_raised  s    

.z.TestExcelWriter.test_excel_sheet_by_name_raisec                 C   s¾   t |ƒ�B}| |d¡ | ¡ }|jd d d… |_| |d¡ W d   ƒ n1 sP0    Y  t|ƒ�H}tj|ddd�}tj|ddd�}t ||¡ t ||¡ W d   ƒ n1 s°0    Y  d S )NZData1r|   ZData2r   r^   )	r   r7   r’   rH   r   r8   r9   r   r:   )r<   Úframer   rO   Úframe2rP   Zfound_dfZ	found_df2r   r   r   Ú!test_excel_writer_context_managerq  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 )NrJ   rz   Útest1rK   rG   F©r3   rI   r   r^   ZNA)Zna_rep)r5   rM   Z	na_valuesZ88éX   g      V@ÚSheet1rŒ   r©   )
r’   rƒ   r„   r7   r8   r9   r   r:   r2   Zto_frame)r<   r¯   r   ÚreconsrZ   r   r   r   Útest_roundtrip  sD    ÿ
zTestExcelWriter.test_roundtripc                 C   sd   |  ¡ }d|d< | |d¡ t|ƒ� }tj|ddd�}W d   ƒ n1 sJ0    Y  t ||¡ d S )NrD   rC   r²   r   r^   )r’   r7   r   r8   r9   r   r:   )r<   r¯   r   Zmixed_framerP   r¶   r   r   r   Ú
test_mixed°  s    
.zTestExcelWriter.test_mixedc                 C   st   |}t jt |j¡d d�}||_| |d¡ t|ƒ� }t j|ddd�}W d   ƒ n1 sZ0    Y  t 	||¡ d S )N©r˜   r²   r   r^   )
r8   ÚDatetimeIndexrƒ   Úasarrayr2   r7   r   r9   r   r:   )r<   Útsframer   r?   r2   rP   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 )	NrJ   rz   r²   rK   rG   Fr³   rI   )r’   rƒ   r„   r7   )r<   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 d   ƒ n1 sT0    Y  | 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 d   ƒ n1 sî0    Y  t
 ||¡ d S )Néöÿÿÿr¨   )r¨   r-   ©Úsize©Údtyper²   r   r^   úconvert_float is deprecatedr¢   F)r5   Úconvert_floatrM   )r   rƒ   rª   Úrandintr7   r   r8   r9   ÚastypeÚint64r   r:   ÚfloatrH   r2   Úassert_produces_warningÚFutureWarning)	r<   r¿   r   r?   rP   r¶   Z	int_frameZrecons2Zfloat_framer   r   r   Útest_int_typesÍ  s$    
.
ÿÿ$zTestExcelWriter.test_int_typesc                 C   sn   t tj d¡|d�}| |d¡ t|ƒ�&}tj|ddd� |¡}W d   ƒ n1 sT0    Y  t	 
||¡ d S )Nr¨   rÃ   r²   r   r^   )r   rƒ   rª   Zrandom_sampler7   r   r8   r9   rÈ   r   r:   ©r<   r¿   r   r?   rP   r¶   r   r   r   Útest_float_typesé  s    
ÿ"z TestExcelWriter.test_float_typesc                 C   sj   t g d¢|d�}| |d¡ t|ƒ�&}tj|ddd� |¡}W d   ƒ n1 sP0    Y  t ||¡ d S )N)r*   r   TFrÃ   r²   r   r^   )r   r7   r   r8   r9   rÈ   r   r:   rÎ   r   r   r   Útest_bool_typesö  s    
ÿ"zTestExcelWriter.test_bool_typesc                 C   sp   t dtjfddtj fgƒ}| |d¡ t|ƒ� }tj|ddd�}W d   ƒ n1 sV0    Y  t ||¡ d S )Nr*   )r-   r'   rz   r²   r   r^   )	r   rƒ   Úinfr7   r   r8   r9   r   r:   )r<   r   r?   rP   r¶   r   r   r   Útest_inf_roundtrip  s
    
.z"TestExcelWriter.test_inf_roundtripc                 C   sX  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 d   ƒ n1 s¬0    Y  t	|ƒ�H}t j
|ddd�}t ||¡ t j
|d
dd�}t ||¡ W d   ƒ n1 �s0    Y  dt|jƒk�s,J ‚d|jd k�s@J ‚d
|jd k�sTJ ‚d S )Nr¹   rJ   rz   r²   rK   rG   Fr³   rI   Ztest2r   r^   r-   r*   )r8   rº   rƒ   r»   r2   r’   r„   r7   r   r   r9   r   r:   ÚlenÚsheet_names)r<   r¯   r¼   r   r2   rO   rP   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g d	¢ƒ}|j|d|d� t|ƒ� }tj|dd
d�}W d   ƒ n1 s¤0    Y  |  ¡ }||_t	 
||¡ d S )NrJ   rz   r²   rK   rG   Fr³   rI   )ZAArj   rl   ÚZr   r^   )r’   rƒ   r„   r7   r   r   r8   r9   rH   r   r:   )r<   r¯   r   Zcol_aliasesrP   ÚrsÚxpr   r   r   Útest_colaliases'  s    
.zTestExcelWriter.test_colaliasesc                 C   sr  |  ¡ }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 d   ƒ n1 sº0    Y  dg|j_|jj|jjksâJ ‚ttj d	d
¡ƒdk}|j|dg d¢|d� t|ƒ�(}tj	|ddd� 
tj¡}W d   ƒ n1 �sF0    Y  dg|j_|jj|jjk�spJ ‚ttj d	d
¡ƒdk}|j|dd|d� t|ƒ�(}tj	|ddd� 
tj¡}W d   ƒ n1 �sÐ0    Y  dg|j_t || 
t¡¡ |j|dg d¢d|d� |  ¡ }| ddg¡}t|ƒ�$}tj	|dddgd�}W d   ƒ n1 �sX0    Y  t ||¡ d S )NrJ   rz   r²   rK   rG   Fr³   rI   r¨   r-   r   Útest)Zindex_labelÚmerge_cellsr^   )rÚ   ÚdummyZdummy2)rJ   rK   ÚCÚD)rH   r2   rÛ   r*   )r’   rƒ   r„   r7   r   rª   r«   r   r8   r9   rÈ   rÉ   r2   rL   r   r:   ÚboolÚ	set_index)r<   rÛ   r¯   r   r?   rP   r¶   r   r   r   Útest_roundtrip_indexlabels9  s^    
ÿ"
ü
ÿ$

ÿ$
û
4z*TestExcelWriter.test_roundtrip_indexlabelsc                 C   s†   t tj dd¡ƒ}d|j_|j||d� t|ƒ�&}tj	||j
d dd�}W d   ƒ n1 s\0    Y  t ||¡ |jjdks‚J ‚d S )Nr¨   r&   rC   ©rÛ   r   r^   )r   rƒ   rª   r«   r2   Únamer7   r   r8   r9   rÔ   r   r:   )r<   rÛ   r   r?   Úxfr@   r   r   r   Útest_excel_roundtrip_indexnamer  s    
4z.TestExcelWriter.test_excel_roundtrip_indexnamec                 C   sŽ   t jt |j¡d d�}||_| ¡ }dd„ |jD ƒ|_|j|d|d� t|ƒ� }t j|ddd�}W d   ƒ n1 st0    Y  t	 
||¡ d S )Nr¹   c                 S   s   g | ]}|  ¡ ‘qS r   )r   )rY   rg   r   r   r   r\   ‡  r]   zATestExcelWriter.test_excel_roundtrip_datetime.<locals>.<listcomp>r²   râ   r   r^   )r8   rº   rƒ   r»   r2   r’   r7   r   r9   r   r:   )r<   rÛ   r¼   r   r2   ZtsfrP   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 d   ƒ n1 sÒ0    Y  t|ddd��}| |d¡ W d   ƒ n1 �s0    Y  t|ƒ� }	tj	|	ddd�}
W d   ƒ n1 �sH0    Y  t|ƒ� }tj	|ddd�}W d   ƒ n1 �s‚0    Y  W d   ƒ n1 �s¢0    Y  t 
|
|¡ t 
||¡ d S )NiÞ  r*   é   iÏ  é	   é   iÎ  rz   é   é   rT   r&   r-   é   é   ZDATEZDATETIMErj   rl   ©r2   rH   r²   z
DD.MM.YYYYzDD.MM.YYYY HH-MM-SS)Zdate_formatZdatetime_formatr   r^   )r   r   r   r   r   r   r7   r   r8   r9   r:   )r<   r   r   r   r?   Zdf_expectedÚ	filename2Zwriter1Zwriter2Zreader1Zrs1Zreader2Zrs2r   r   r   Útest_excel_date_datetime_format�  s<    "þú"þú	
*ý,
0
P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 d   ƒ n1 sŒ0    Y  t ||¡ d S )
NrÀ   r¨   ©é   r*   rÁ   rÃ   r   Únewr²   r^   )r   rƒ   rª   rÇ   rÉ   r’   r8   ÚcutrÈ   Ústrr7   r   r9   r   r:   ©r<   r   r?   r=   rP   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g d¢d�}||d	< t t	|ƒ¡|d	< | 
|d
¡ t|ƒ� }tj|d
dd�}W d   ƒ n1 s�0    Y  t ||¡ d S )NrÀ   r¨   rñ   rÁ   rÃ   r   )
rJ   rK   rÝ   rÞ   ÚEÚFÚGÚHÚIÚJ)Úlabelsró   r²   r^   )r   rƒ   rª   rÇ   rÉ   r’   r8   rô   ZSeriesr�   r7   r   r9   r   r:   )r<   r   r?   r=   Z	intervalsrP   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 d   ƒ n1 sŽ0    Y  t ||¡ d S )NrÀ   r¨   rñ   rÁ   rJ   )rH   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   r^   )r   rƒ   rª   rÇ   rÉ   r’   Úapplyr7   r   r8   r9   r   r:   rö   r   r   r   Útest_to_excel_timedeltaÛ  s    ÿÿ
.z'TestExcelWriter.test_to_excel_timedeltac                 C   sl   |j ddd� ¡ }| |d¡ t|ƒ� }tj|ddd�}W d   ƒ n1 sL0    Y  t || d¡¡ d S )NÚMZperiod)ÚkindZsht1r   r^   )	ZresampleÚmeanr7   r   r8   r9   r   r:   Z	to_period)r<   r¼   r   rØ   rP   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 d   ƒ n1 sš0    Y  t ||¡ d S )Nr-   r|   ÚfirstÚsecond©rL   r²   Fr³   rJ   rK   rG   râ   r   r*   r^   )rƒ   ÚarangerÓ   r2   Úreshaper	   r™   r7   r   r8   r9   r   r:   )r<   rÛ   r¯   r   ÚarraysÚ	new_indexrP   r?   r   r   r   Útest_to_excel_multiindex÷  s    
2z(TestExcelWriter.test_to_excel_multiindexc                 C   s^   t g d¢g d¢tj d¡dœƒ}| ddg¡}|j||d� tj|dd	gd
�}t 	||¡ d S )N)Nr-   r'   )r¨   rò   é   r'   ©rJ   rK   rÝ   rJ   rK   râ   r   r*   rŒ   )
r   rƒ   rª   Úsamplerà   r7   r8   r9   r   r:   )r<   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 g d¢¡}||_ddg}|sXd}|j	|d	|d
� t
|ƒ�&}tj|d	|ddgd�}	W d   ƒ n1 sœ0    Y  |sÐ|jjdddd�}
dd„ t|
Ž D ƒ|_t ||	¡ d S )Nr-   r|   r	  r
  r  ))é(   r*   )r  r-   )é2   r*   )r  r-   r   r*   r²   râ   ©r5   r3   rM   F)ZsparsifyZadjoinrL   c                 S   s   g | ]}d   tt|ƒ¡‘qS )r   )ÚjoinÚmaprõ   )rY   Úqr   r   r   r\   $  r]   zATestExcelWriter.test_to_excel_multiindex_cols.<locals>.<listcomp>)rƒ   r  rÓ   r2   r  r	   r™   Úfrom_tuplesrH   r7   r   r8   r9   Úformatr`   r   r:   )r<   rÛ   r¯   r   r  r  Znew_cols_indexr3   rP   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 d   ƒ n1 sp0    Y  t ||¡ |j jdks–J ‚d S )	NÚtimerC   r²   râ   r   r*   r^   )r  rC   )r2   rƒ   r  rÓ   r	   r™   rL   r7   r   r8   r9   r   r:   )r<   rÛ   r¼   r   r  rP   r¶   r   r   r   Útest_to_excel_multiindex_dates'  s    
2z.TestExcelWriter.test_to_excel_multiindex_datesc                 C   sŽ   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 d   ƒ n1 st0    Y  t	 
||¡ d S )Nr¨   rò   r  r  r  é<   )rE   rF   Úc)éF   éP   )éZ   r+   r²   FrI   ©r5   )r   r’   r	   r  r2   r7   r   r8   r9   r   r:   )r<   r   Zframe1r°   Zmulti_indexrP   Zframe3r   r   r   Ú'test_to_excel_multiindex_no_write_index4  s    
,z7TestExcelWriter.test_to_excel_multiindex_no_write_indexc                 C   sœ   t g d¢g d¢gddgg d¢d�}|j|ddd	� t|ƒ� }tj|dd
d�}W d   ƒ n1 s`0    Y  t g d¢g d¢gddgg d¢d�}t ||¡ d S )N©g¿¶~úÏš¿?g9DÜœJÎ?g>éD‚)â?©gÜ.4×i¤(@ç33333þ@çÍÌÌÌ¤œArJ   rK   ©rj   rl   rÖ   rî   r²   ú%.2f©Zfloat_formatr   r^   ©g¸…ëQ¸¾?gq=
×£pÍ?g=
×£p=â?©g¤p=
×£(@r*  r+  )r   r7   r   r8   r9   r   r:   )r<   r   r?   rP   r@   r=   r   r   r   Útest_to_excel_float_formatI  s    ý
.ýz*TestExcelWriter.test_to_excel_float_formatc                 C   s€   t g d¢g d¢gddgg d¢d�}t d| ¡�<}|j|dd	d
� tj|ddd�}t ||¡ W d   ƒ n1 sr0    Y  d S )N)u   Æ’u   Æ“u   Æ”)u   Æ•u   Æ–u   Æ—u   AÆ’rK   )u   XÆ“rl   rÖ   rî   z__tmp_to_excel_float_format__.Z	TestSheetÚutf8)r5   Úencodingr   r^   r6   )r<   r   r?   r>   r@   r   r   r   Útest_to_excel_output_encoding[  s    ýz-TestExcelWriter.test_to_excel_output_encodingc           	   	   C   s  t  d| ¡�¾}z8zt|dƒ}W n ty<   t d¡ Y n0 W | ¡  n
| ¡  0 tg d¢g d¢gddgg d¢d	�}|j|d
dd� t	|ƒ� }t
j|d
dd�}W d   ƒ n1 s´0    Y  W d   ƒ n1 sÒ0    Y  tg d¢g d¢gddgg d¢d	�}t  ||¡ d S )Nu   Æ’u.Úwbz$No unicode file names on this systemr(  r)  rJ   rK   r,  rî   r²   r-  r.  r   r^   r/  r0  )r   r   ÚopenÚUnicodeEncodeErrorr}   ÚskipÚcloser   r7   r   r8   r9   r:   )	r<   r   r   r>   Úfr?   rP   r@   r=   r   r   r   Útest_to_excel_unicode_filenameh  s(    ý
Lýz.TestExcelWriter.test_to_excel_unicode_filenameÚuse_headersTFÚr_idx_nlevelsrU   Úc_idx_nlevelsc                    s>  d‡ ‡fdd„	}|rdnd }|t dgƒ||ƒ}|jdks<J ‚|jd tjusPJ ‚d}	d}
tj|	|
||d	�}|d
kr´d}tjt	|d�� |||dd� W d   ƒ n1 s¨0    Y  n†|||ƒ}|rÚ|j|	|
| fksôJ ‚n|j|	d
 |
| fksôJ ‚t
t|jƒƒD ]6}t
t|jƒƒD ] }|j||f tju�sJ ‚�q�qd S )NTr   c                    sT   | j ˆ|ˆ |d� tˆƒ�&}tj||jd |d�W  d   ƒ S 1 sF0    Y  d S )N)r3   rÛ   r2   r   ©r5   r3   )r7   r   r8   r9   rÔ   )Údatar3   Z
parser_hdrr2   rä   ©rÛ   r   r   r   Ú	roundtripˆ  s
    
ÿz;TestExcelWriter.test_excel_010_hemstring.<locals>.roundtrip)r*   r-   )r   r   rz   r'   )r=  r>  r*   z_Writing to Excel with MultiIndex columns and no index \('index'=False\) is not yet implemented.r¢   FrI   )Tr   T)r   r¡   r…   rƒ   r„   r   r€   r}   r¤   ÚNotImplementedErrorr‚   rÓ   r2   rH   )r<   rÛ   r>  r=  r<  r   rB  Zparser_headerr•   ZnrowsZncolsr?   r¦   Úrr"  r   rA  r   Útest_excel_010_hemstring‚  s,    	ÿÿ.
z(TestExcelWriter.test_excel_010_hemstringc                 C   sv  t g d¢g d¢g d¢gg d¢d�}| |d¡ t g d¢g d¢g d¢gg d¢d�}tj|ddd�}t ||¡ tj|dddd	�}t ||¡ t g d
¢g d¢gg d¢d�}| |d¡ tj|ddd�}t g d
¢g d¢gg d¢d�}t ||¡ |j|dddd� tj|dd d�}t g d
¢g d¢gƒ}t ||¡ d}tjt|d��" tj|dd dd� W d   ƒ n1 �sh0    Y  d S )NrU   )rJ   rK   rK   rG   r²   )rJ   rK   úB.1r   r^   T)r5   rM   Úmangle_dupe_cols)r*   r-   r'   r&   )rz   é   re   é   )rJ   rK   rJ   rK   )rJ   rK   úA.1rF  Fr1   r?  z3Setting mangle_dupe_cols=False is not supported yetr¢   )r5   r3   rG  )	r   r7   r8   r9   r   r:   r}   r¤   r¥   )r<   r   r?   r=   r@   r¦   r   r   r   Útest_duplicated_columns¹  s2    "ÿÿÿz'TestExcelWriter.test_duplicated_columnsc                 C   sf   t g d¢g d¢dœƒ}|j|dddgd� tj|ddd	�}t |d |d ¡ t |d |d ¡ d S )
N©r*   r*   r*   ©r-   r-   r-   ©rJ   rK   r²   rK   rJ   rG   r   r?  )r   r7   r8   r9   r   Úassert_series_equal)r<   r   Úwrite_frameÚ
read_framer   r   r   Útest_swapped_columnsà  s
    z$TestExcelWriter.test_swapped_columnsc                 C   sž   t g d¢g d¢dœƒ}tjtdd��$ |j|dddgd	� W d   ƒ n1 sN0    Y  tjtd
d��$ |j|dddgd	� W d   ƒ n1 s�0    Y  d S )NrL  rM  rN  zNot all names specifiedr¢   r²   rK   rÝ   rG   z.'passes columns are not ALL present dataframe'rÞ   )r   r}   r¤   ÚKeyErrorr7   )r<   r   rP  r   r   r   Útest_invalid_columnsê  s    2ÿz$TestExcelWriter.test_invalid_columnsz#to_excel_index,read_excel_index_col)Tr   )FNc                 C   s^   t g d¢g d¢g d¢dœƒ}|j|dddg|d� |ddg }tj|d|d	�}t ||¡ d S )
NrL  rM  )r'   r'   r'   r  Zcol_subset_bugrJ   rK   ©rH   r2   r^   ©r   r7   r8   r9   r   r:   )r<   r   Zto_excel_indexZread_excel_index_colrP  r=   rQ  r   r   r   Útest_write_subset_columnsö  s    	ÿÿz)TestExcelWriter.test_write_subset_columnsc                 C   sr   t g d¢g d¢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©Úonez#onerY  ©Útwor[  z#tworN  Útest_cr   r^   )r*   r   ©r*   r*   )r-   r*   ú#©r5   ÚcommentrM   )r   r7   r8   r9   r…   r   r:   ©r<   r   r?   Zresult1Zresult2r   r   r   Útest_comment_arg  s    


z TestExcelWriter.test_comment_argc                 C   sP   t g d¢g d¢dœƒ}| |d¡ tj|dd�}tj|dd d�}t ||¡ d S )NrX  rZ  rN  r\  r&  )r5   r`  rV  ra  r   r   r   Útest_comment_default  s
    z$TestExcelWriter.test_comment_defaultc                 C   sZ   t g d¢g d¢dœƒ}| |d¡ t g d¢g d¢dœƒ}tj|dddd	�}t ||¡ d S )
NrX  rZ  rN  r\  )rY  NrY  )r[  NNr^  r   r_  rV  ©r<   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)rE   rF   FrI   r*   r-   r^  )r`  rV  rd  r   r   r   Útest_comment_empty_line9  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¡ | d ¡sà| d!¡rêt d"¡ tj|ddd#�}t 	|d |d ¡ d S )$NiÝ  r*   rí   r-   r'   é-   é8   r&   é   é1   rH  é*   re   é9   é#   rè   é)   rì   rR   é   é   é   é5   é   é%   r   é   rò   é4   rJ   rµ   ÚxlsxZxlsmz}Defaults to openpyxl and fails with floating point error on datetimes; may be fixed on newer versions of openpyxl - GH #38644r?  )
r   r   r7   Úendswithr}   r8  r8   r9   r   rO  )r<   r   Z	datetimesrP  rQ  r   r   r   Útest_datetimesE  s(    õÿzTestExcelWriter.test_datetimesc              	   C   s–   t ƒ �|}ttj dd¡ƒ}t||d��}| |¡ W d   ƒ n1 sF0    Y  | d¡ tj	|dd�}t
 ||¡ W d   ƒ n1 sˆ0    Y  d S )Nr¨   r-   ©r   r   rŒ   )r   r   rƒ   rª   r«   r   r7   Úseekr8   r9   r   r:   )r<   r   Zbior?   rO   Z	reread_dfr   r   r   Útest_bytes_ioa  s    (
zTestExcelWriter.test_bytes_ioc                 C   sz   t dddgdddœgg d¢g d¢d	œƒ}| |d
¡ tj|d
ddd�}| ¡ }|j t¡|_|j 	d¡|_t
 ||¡ d S )NrE   rF   r"  Úer-   )rV   r:  )r*   r-   g      @)ÚappleÚbananaZcherry)ÚmixedÚnumericrõ   rµ   r   r  rÉ   )r   r7   r8   r9   r’   rƒ  r  rõ   r„  rÈ   r   r:   ©r<   r   r?   Úreadr=   r   r   r   Útest_write_lists_dictn  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Œ   rV  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 )NrC   rD   Úcol1Úcol2rG   TF)rC   rD   r   )Ztrue_valuesZfalse_valuesrM   )r   Úreplacer7   r8   r9   r   r:   )r<   r   r?   r=   rQ  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‹  rG   rµ   r]  )Zfreeze_panesr   rŒ   rV  )r<   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 ©Nr}  r   rŒ   rC   )r   )r   ÚmakeDataFramer   r7   r8   r9   Zround_trip_pathlibr:   ©r<   r   r   r?   rO   rP   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   r7   r8   r9   Zround_trip_localpathr:   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 d   ƒ n1 s„0    Y  |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-   rG   rÅ   r¢   r   r*   F)r3   rM   rÆ   c                 S   s   g | ]}t |ƒ‘qS r   )rõ   )rY   rW   r   r   r   r\   ½  r]   zCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>)Úlevel)r	   r  r8   ZPeriodr   rƒ   Zonesr7   r   rË   rÌ   r9   rH   Z
set_levelsZlevelsr2   rÈ   Úfloat64r:   )r<   rÛ   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 d   ƒ n1 sN0    Y  | ¡ }t|g|d�}tjtdd�� | |¡ W d   ƒ n1 sœ0    Y  d S )NZ2019)ÚtzrÃ   zExcel does not supportr¢   )r8   rš   r   r}   r¤   r¥   r7   Zto_pydatetime)r<   rÄ   Ztz_aware_fixturer   r˜  r@  r?   r   r   r   Ú test_raise_when_saving_timezonesÃ  s    (z0TestExcelWriter.test_raise_when_saving_timezonesc                 C   s`   t ddgddgdœƒ}|j|g d¢dd� t |¡}t g d	¢g d
¢gg d¢d�}t ||¡ d S )Nr   r*   r¨   rR   rN  )rJ   rK   rJ   FrU  )r   r¨   r   )r*   rR   r*   )rJ   rK   rJ  rG   rV  )r<   r   r?   r@   r=   r   r   r   Ú'test_excel_duplicate_columns_with_namesÑ  s
    
z7TestExcelWriter.test_excel_duplicate_columns_with_namesc              	   C   sr   d}t  |¡�P}tjtt |¡d�� t|dd� W d   ƒ n1 sF0    Y  W d   ƒ n1 sd0    Y  d S )Nz7if_sheet_exists is only valid in append mode (mode='a')r¢   rŒ  )Zif_sheet_exists)r   r   r}   r¤   r¥   ÚreÚescaper   )r<   r   r¦   r:  r   r   r   Útest_if_sheet_exists_raisesÚ  s    z+TestExcelWriter.test_if_sheet_exists_raises)Crœ   r�   rž   r§   r®   r±   r·   r¸   r½   r¾   r}   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'  r1  r4  r;  rE  rK  rR  rT  rW  rb  rc  re  ri  r|  r  r‡  r‰  r�  rŽ  r’  r“  r—  Úobjectr™  rš  r�  r   r   r   r   r    8  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  |¡�h}t|ƒ�@}|dkr8t d¡r8t|tƒsFJ ‚nt||ƒsFJ ‚W d   ƒ n1 sZ0    Y  W d   ƒ n1 sx0    Y  d S )Nr   r"   )r   r   r   ÚtdZsafe_importÚ
isinstancer   )r<   Úklassr   r   rO   r   r   r   Útest_ExcelWriter_dispatchä  s
    	
z4TestExcelWriterEngineTests.test_ExcelWriter_dispatchc                 C   s:   t jtdd�� tdƒ W d   ƒ n1 s,0    Y  d S )Nz	No enginer¢   Znothing)r}   r¤   r¥   r   ©r<   r   r   r   Ú test_ExcelWriter_dispatch_raisesõ  s    z;TestExcelWriterEngineTests.test_ExcelWriter_dispatch_raisesc              
      s$  g ‰ g ‰G ‡ ‡fdd„dt ƒ}‡ ‡fdd„}t dd¡�Ö d}t |¡�l‰t|ƒ t ˆƒ�}t||ƒsjJ ‚W d   ƒ n1 s~0    Y  t dd¡‰|‡‡fd	d
„ƒ W d   ƒ n1 sº0    Y  t d¡�"‰|‡‡fdd
„ƒ W d   ƒ n1 sö0    Y  W d   ƒ n1 �s0    Y  d S )Nc                       s8   e Zd ZdZdZddgZdZ‡ fdd„Z‡fdd„Zd	S )
zCTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClassFrz  ZxlsrÜ   c                    s   ˆ   d¡ d S ©NT©Úappendr¤  )Úcalled_saver   r   Úsave  s    zHTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.savec                    s   ˆ   d¡ d S r¦  r§  )r<   ÚargsÚkwargs)Úcalled_write_cellsr   r   Úwrite_cells  s    zOTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.write_cellsN)	rœ   r�   rž   r©  r­  Zsupported_extensionsr   rª  r®  r   ©r©  r­  r   r   Ú
DummyClassþ  s   r°  c                    s>   | ƒ  t ˆ ƒdksJ ‚t ˆƒdks&J ‚ˆ d d …= ˆd d …= d S )Nr*   )rÓ   )Úfuncr¯  r   r   Úcheck_called
  s
    
zETestExcelWriterEngineTests.test_register_writer.<locals>.check_calledzio.excel.xlsx.writerrÜ   zsomething.xlsxr*   c                      s
   ˆ   ˆ¡S )N©r7   r   ©r?   Úfilepathr   r   r�     r]   zATestExcelWriterEngineTests.test_register_writer.<locals>.<lambda>zsomething.xlsc                      s   ˆ j ˆdd�S )NrÜ   r}  r³  r   r´  r   r   r�     r]   )r   r8   Zoption_contextr   r   r   r¡  r€   )r<   r°  r²  r   rO   r   )r©  r­  r?   rµ  r   Útest_register_writerù  s    
,0z/TestExcelWriterEngineTests.test_register_writerr   r#   r$   c              	   C   sn   t  d¡}tjt|d��B tdddidd�� W d   ƒ n1 sB0    Y  W d   ƒ n1 s`0    Y  d S )Nz*Cannot use both engine_kwargs and **kwargsr¢   r)   rE   r*   r-   )Zengine_kwargsrF   )r›  rœ  r}   r¤   r¥   r   )r<   r   r¦   r   r   r   Ú$test_engine_kwargs_and_kwargs_raises  s    

z?TestExcelWriterEngineTests.test_engine_kwargs_and_kwargs_raisesN)rœ   r�   rž   r}   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¡�h}tdddgiƒ}| |¡ t|ƒ�}t |¡}W d   ƒ n1 sN0    Y  ||ksdJ ‚W d   ƒ n1 sx0    Y  d S )Núfoo.xlsxrJ   r*   r-   )r   r   r   r7   r   ÚosÚfspath)r<   r   r?   r­   r@   r   r   r   Útest_excelfile_fspath/  s    

(z TestFSPath.test_excelfile_fspathc              	   C   sl   t  d¡�N}t|ƒ�&}t |¡t|ƒks,J ‚W d   ƒ n1 s@0    Y  W d   ƒ n1 s^0    Y  d S )Nr»  )r   r   r   r¼  r½  rõ   )r<   r   rO   r   r   r   Útest_excelwriter_fspath7  s    
z"TestFSPath.test_excelwriter_fspathN)rœ   r�   rž   r¾  r¿  r   r   r   r   rº  ,  s   rº  )-r   r   r   Ú	functoolsr   Úior   r¼  r›  Únumpyrƒ   r}   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr   Zpandasr8   r   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ýýÿýíþ
       I