U
    +if                     @   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   X/home/mars/bis/venv/lib/python3.8/site-packages/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   )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=      rC      u   ﾊﾟﾝﾀﾞr>   u   パンダpanda   u   ﾊﾟﾝﾀﾞpandarD   )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_wideTrG   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   rE   rI   rL   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)instancerR   pd	DataFramerK   zipdisplay_formatterformatsetkeysr   )r%   ipipythondf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 )NrS   Br   r   r   r>   )columnsrW   TrQ   rT   rV   r   )rY   Z
MultiIndexZfrom_productrZ   nprandomZrandnr3   rK   rX   rR   r\   r]   r^   r_   r   )r%   r`   Zmidxrb   rd   rf   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 )NrS   r+   r   rW   TrY   rZ   rK   Z_repr_data_resource_r   r%   rb   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 )NrS   r+   r   rW   Frm   rn   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 )NrQ   rU   rW   T)
rX   rR   r\   
formattersrY   rK   r   enabledr]   r   )r%   r`   rr   mimetyper   r   r   #test_enable_data_resource_formatter   s    z7TestTableSchemaRepr.test_enable_data_resource_formatterN)rM   rN   rO   pytestmarkfilterwarningsrg   rl   rp   rq   ru   r   r   r   r   rP   z   s   
rP   )numpyrj   rv   Zpandas._config.config_configrR   r   ZpandasrY   Zpandas.io.formats.formatioformatsr]   r0   Zpandas.io.formats.printingr   r   r#   r$   rP   r   r   r   r   <module>   s   	V