U
    c                     @   s   d dl Zd dlZd dlm  mZ d dlZd dl	m
  m  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 )
    Nc                  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   printingadjoinAssertionError)dataexpectedadjoined r   I/tmp/pip-unpacked-wheel-g7fro6k3/pandas/tests/io/formats/test_printing.pytest_adjoin   s    r   c                  C   s   dd l } | j}zt|tdd}W n tk
r@   t|}Y nX t|d}tj	|dd}|t
|ksnttj	|dd}||kstd S )Nr   zdisplay.encoding)encodingzutf-8T)Zquote_stringsF)stringascii_lettersbytescf
get_option	TypeErrorstrdecoder   Zpprint_thingreprr   )r   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   justN   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_justifyK   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_lena   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_widthl   s    z$TestFormattBase.test_ambiguous_widthN)__name__
__module____qualname__r   r6   rD   rH   rK   r   r   r   r   r$   $   s
   r$   c                   @   s@   e Zd Zejddd Zdd Zdd Zdd	 Z	d
d Z
dS )TestTableSchemaReprz7ignore:.*signature may therefore change.*:FutureWarningc              
   C   s   |j |jd}tdddgi}|d ||g}ddhdddhg}tdd	}t||D ]<\}}| |j|}	W 5 Q R X t|	d
 	 |ksVt
qVt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display.latex.reprz
text/latex)instancerQ   pd	DataFramerJ   zipdisplay_formatterformatsetkeysr   )r%   ipZipythondfZobjectsZexpected_keysoptobjr   	formattedZ
with_latexr   r   r   test_publishes{   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   pytestmarkfilterwarningsrd   ri   rm   rn   rq   r   r   r   r   rO   z   s   
rO   )Znumpyrg   rr   Zpandas._config.config_configrQ   r   ZpandasrX   Zpandas.io.formats.formatioformatsr\   r0   Zpandas.io.formats.printingr   r   r#   r$   rO   r   r   r   r   <module>   s   	V