U
    NZfK                     @   s~   d dl Z d dlZd dlm  mZ d dlZd dl	m
Z
 d dlm  m  mZ dd Zdd ZG dd dZG d	d
 d
ZdS )    N)printingc                  C   s>   dddgdddgddd	gg} d
}t jd|  }||ks:td S NabcddeeffggghhhZiiiz a  dd  ggg
b  ee  hhh
c  ff  iii   )r   r   adjoinAssertionError)dataexpectedadjoined r   I/tmp/pip-unpacked-wheel-nbcvw55c/pandas/tests/io/formats/test_printing.pytest_adjoin   s    r   c                  C   s   t j} zt| tdd}W n tk
r8   t| }Y nX t|d}tj	|dd}|t
|ksfttj	|dd}||kstd S )Nzdisplay.encoding)encodingzutf-8T)Zquote_stringsF)stringascii_lettersbytescf
get_option	TypeErrorstrdecoder   Zpprint_thingreprr   )lettersrawr   resr   r   r   test_repr_binary_type   s    r#   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestFormattBasec                 C   s>   dddgdddgddd	gg}d
}t jd| }||ks:td S r   r   )selfr   r   r   r   r   r   r   $   s    zTestFormattBase.test_adjoinc                 C   s  dddgdddgddd	gg}d
}t jd| }||ks:tt }d}|jd| }||ks`t|d}||d dkst||d dkst||d dkstd}|jd| }||kst|d}||d dkst||d dkst||d dkstd S )N   あr   r   r      ええr	   r
   r   	   いいいu,   あ  dd  ggg
b  ええ  hhh
c  ff  いいいr   u2   あ  dd    ggg
b   ええ  hhh
c   ff    いいい
r            uP   あ       dd         ggg
b        ええ       hhh
c        ff         いいい         )r   )r   )r-   )r   r   r   fmtEastAsianTextAdjustmentsplitlen)r%   r   r   r   adjcolsr   r   r   test_adjoin_unicode,   s&    

z#TestFormattBase.test_adjoin_unicodec                    s$  t    fdd}|dddddks*t|ddddd	ks@t|ddd
ddksVt|dddddkslt|ddddd	kst|ddd
ddkst|dddddkst|dddddkst|ddd
ddkst|dddddkst|dddddkst|ddd
ddks td S )Nc                    s    j | gf||d S )Nr   )Zjustify)xargskwargsr4   r   r   justM   s    z*TestFormattBase.test_justify.<locals>.justabc   left)modezabc  centerz abc rightz  abc	   パンダ
   u   パンダ    u     パンダ  u       パンダ)r0   r1   r   )r%   r;   r   r:   r   test_justifyJ   s    zTestFormattBase.test_justifyc                 C   sx   t  }|ddkst|ddks,t|ddks>t|ddksPt|ddksbt|d	d
ksttd S )Nr<      rB      u   ﾊﾟﾝﾀﾞr=   u   パンダpanda   u   ﾊﾟﾝﾀﾞpandarC   )r0   r1   r3   r   )r%   r4   r   r   r   test_east_asian_len`   s    z#TestFormattBase.test_east_asian_lenc              	   C   s   t  }|ddksttdd  t  }|ddksBtW 5 Q R X dddgd	d
dgdddgg}d}|jd| }||kstd S )Nu   ¡¡ab   z!display.unicode.ambiguous_as_wideTrF   r&   r   r   r   r'   r	   r
   r(   u6   あ  dd    ggg 
b   ええ  ¡¡ab
c   ff    いいいr   )r   )r0   r1   r3   r   r   option_contextr   )r%   r4   r   r   r   r   r   r   test_ambiguous_widthk   s    z$TestFormattBase.test_ambiguous_widthN)__name__
__module____qualname__r   r6   rD   rH   rK   r   r   r   r   r$   #   s
   r$   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestTableSchemaReprc              
   C   s   |j |jd}tdddgi}|d |g}ddhdddhg}tdd	}d }t||D ]@\}}	|}| |j|}
W 5 Q R X t|
d
 	 |	ksXt
qXtdd}|" | |j|}
W 5 Q R X W 5 Q R X ddddh}	t|
d
 	 |	kst
d S )NconfigAr+   r   
text/plain!application/vnd.dataresource+json	text/htmldisplay.html.table_schemaTr   zstyler.render.reprZlatexz
text/latex)instancerQ   pd	DataFramerJ   zipdisplay_formatterformatsetkeysr   )r%   ipZipythondfZobjectsZexpected_keysoptZlast_objobjr   	formattedZ
with_latexr   r   r   test_publishesz   s,     z"TestTableSchemaRepr.test_publishesc              	   C   s   t jddgdddgg}t jtjdt||d}t dd	}| |j	|j
d
j|}W 5 Q R X ddh}t|d  |kstd S )NrR   Br   r   r   r=   )columnsrV   TrP   rS   rU   r   )rX   Z
MultiIndexZfrom_productrY   nprandomZrandnr3   rJ   rW   rQ   r[   r\   r]   r^   r   )r%   r_   Zmidxr`   ra   rc   r   r   r   r   test_publishes_not_implemented   s     z2TestTableSchemaRepr.test_publishes_not_implementedc              	   C   sB   t dddgi}t dd | }W 5 Q R X |d k	s>td S )NrR   r+   r   rV   TrX   rY   rJ   Z_repr_data_resource_r   r%   r`   resultr   r   r   test_config_on   s    z"TestTableSchemaRepr.test_config_onc              	   C   sB   t dddgi}t dd | }W 5 Q R X |d ks>td S )NrR   r+   r   rV   Frj   rk   r   r   r   test_config_default_off   s    z+TestTableSchemaRepr.test_config_default_offc              	   C   s   |j |jdjj}d}tdd  d|ks0t|| js>tW 5 Q R X d|ksTt|| jrbttdd6 d|ks|t|| jst|j |jdjt	 W 5 Q R X d S )NrP   rT   rV   T)
rW   rQ   r[   
formattersrX   rJ   r   Zenabledr\   r   )r%   r_   ro   mimetyper   r   r   #test_enable_data_resource_formatter   s    z7TestTableSchemaRepr.test_enable_data_resource_formatterN)rL   rM   rN   rd   ri   rm   rn   rq   r   r   r   r   rO   y   s
   rO   )r   Znumpyrg   Zpandas._config.config_configrQ   r   ZpandasrX   Zpandas.io.formatsr   Zpandas.io.formats.formatioformatsr\   r0   r   r#   r$   rO   r   r   r   r   <module>   s   	V