o
    7?e>!                     @   sd  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 d dlm  m  mZ dd Zdd ZG dd dZG d	d
 d
Zdd Zejddeddgg dfdeddgg dfdeddgg dfdeddgg dfdeddgg dfdeejejdgg dfdedejdgg dfdeejddgg dfgejd d!d"gd#d$ ZdS )%    N)printingc                  C   s<   g dg dg dg} d}t jdg| R  }||ksJ d S Nabc)ddeeff)ggghhhZiiiz a  dd  ggg
b  ee  hhh
c  ff  iii   r   adjoin)dataexpectedadjoined r   f/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/pandas/tests/io/formats/test_printing.pytest_adjoin      r   c                  C   s   t j} zt| tdd}W n ty   t| }Y nw t|d}tj	|dd}|t
|ks2J tj	|dd}||ks?J d S )Nzdisplay.encoding)encodingzutf-8T)Zquote_stringsF)stringascii_lettersbytescf
get_option	TypeErrorstrdecoder   Zpprint_thingrepr)lettersrawr   resr   r   r   test_repr_binary_type   s   r$   c                   @   4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestFormattBasec                 C   s<   g dg dg dg}d}t jdg|R  }||ksJ d S r   r   )selfr   r   r   r   r   r   r   %   r   zTestFormattBase.test_adjoinc                 C   s   g dg dg dg}d}t jdg|R  }||ksJ t }d}|jdg|R  }||ks1J |d}||d d	ksAJ ||d
 d	ksLJ ||d dksWJ d}|jdg|R  }||kshJ |d}||d dksxJ ||d
 dksJ ||d dksJ d S )Nu   あr   r   r   u   ええ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   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J |ddddd	ks J |ddd
ddks+J |dddddks6J |ddddd	ksAJ |ddd
ddksLJ |dddddksWJ |dddddksbJ |ddd
ddksmJ |dddddksxJ |dddddksJ |ddd
ddksJ d S )Nc                    s    j | gg|R i |d S )Nr   )justify)xargskwargsr6   r   r   justN   s   z*TestFormattBase.test_justify.<locals>.justabc   left)modezabc  centerz abc rightz  abc	   パンダ
   u   パンダ    u     パンダ  u       パンダ)r2   r3   )r'   r>   r   r=   r   test_justifyK   s   zTestFormattBase.test_justifyc                 C   sx   t  }|ddksJ |ddksJ |ddksJ |ddks(J |ddks1J |d	d
ks:J d S )Nr?      rE      u   ﾊﾟﾝﾀﾞr@   u   パンダpanda   u   ﾊﾟﾝﾀﾞpandarF   )r2   r3   r5   )r'   r6   r   r   r   test_east_asian_lena   s   z#TestFormattBase.test_east_asian_lenc                 C   s   t  }|ddksJ tdd t  }|ddks!J W d    n1 s+w   Y  g dg dg dg}d	}|jd
g|R  }||ksLJ d S )N   ¡¡ab   z!display.unicode.ambiguous_as_wideTrI   r(   r)   )r   rL   r*   u6   あ  dd    ggg 
b   ええ  ¡¡ab
c   ff    いいいr   )r2   r3   r5   r   option_contextr   )r'   r6   r   r   r   r   r   r   test_ambiguous_widthl   s   z$TestFormattBase.test_ambiguous_widthN)__name__
__module____qualname__r   r8   rG   rK   rO   r   r   r   r   r&   $   s    r&   c                   @   r%   )TestTableSchemaReprc              	   C   s0  |j |jd}tdddgi}|d |g}ddhh dg}tdd	}d }t||D ]*\}}	|}| |j|}
W d    n1 sDw   Y  t|
d
 	 |	ksUJ q+tdd}|  | |j|}
W d    n1 srw   Y  W d    n1 sw   Y  h d}	t|
d
 	 |	ksJ d S )NconfigAr-   r   
text/plain!application/vnd.dataresource+json>   rW   	text/htmlrX   display.html.table_schemaTr   zstyler.render.reprlatex>   rW   rY   rX   z
text/latex)
instancerU   pd	DataFramerN   zipdisplay_formatterformatsetkeys)r'   ipipythondfobjectsZexpected_keysoptZlast_objobjr   	formattedZ
with_latexr   r   r   test_publishes{   s,    z"TestTableSchemaRepr.test_publishesc                 C   s   t jddgg dg}t jtjddt|f|d}t 	dd}| |j
|jd	j|}W d    n1 s<w   Y  d
dh}t|d  |ksQJ d S )NrV   Br   r   r@   )columnsrZ   TrT   rW   rY   r   )r]   
MultiIndexZfrom_productr^   nprandomZdefault_rngZstandard_normalr5   rN   r\   rU   r`   ra   rb   rc   )r'   rd   Zmidxrf   rh   rj   r   r   r   r   test_publishes_not_implemented   s   z2TestTableSchemaRepr.test_publishes_not_implementedc                 C   sV   t dddgi}t dd | }W d    n1 sw   Y  |d us)J d S )NrV   r-   r   rZ   Tr]   r^   rN   Z_repr_data_resource_r'   rf   resultr   r   r   test_config_on   
   
z"TestTableSchemaRepr.test_config_onc                 C   sV   t dddgi}t dd | }W d    n1 sw   Y  |d u s)J d S )NrV   r-   r   rZ   Frr   rs   r   r   r   test_config_default_off   rv   z+TestTableSchemaRepr.test_config_default_offc                 C   s   |j |jdjj}d}tdd d|v sJ || jsJ W d    n1 s)w   Y  d|v s4J || jr;J tdd! d|v sHJ || jsOJ |j |jdjt W d    d S 1 sew   Y  d S )NrT   rX   rZ   T)	r\   rU   r`   
formattersr]   rN   enabledra   r   )r'   rd   rx   mimetyper   r   r   #test_enable_data_resource_formatter   s   "z7TestTableSchemaRepr.test_enable_data_resource_formatterN)rP   rQ   rR   rk   rq   ru   rw   r{   r   r   r   r   rS   z   s    rS   c                  C   s&   t jdg} d}t| |ksJ d S )N)Z>ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccz^MultiIndex([('cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',)],
           ))r]   rn   from_tuplesr   )r   r   r   r   r   test_multiindex_long_element   s   r}   zdata,outputr   nanr-   )	 2.0+0.0j	 NaN+0.0jz	 1.0+0.0j)r   r   	-1.0+0.0j)z	-2.0+0.0jr   r   y       Gz)-0.00-1.23j  NaN+0.00jz-1.00+0.00jy        Gz?gGz?)z 0.00+1.23jr   z 1.23+0.00j)r   z  NaN+ NaNj 1.00+0.00jg333333?)r   z 1.20+ NaNjr   g333333)r   z  NaN-1.20jr   as_frameTFc                 C   s   t t| }|r,|jdd}dd t|D }ddt|d  dd| }ndd t|D }d|d	 }t||ksNJ dt| d
| d S )Nval)namec                 S      g | ]\}}| d | qS ) r   .0ir   r   r   r   
<listcomp>       z1test_ser_df_with_complex_nans.<locals>.<listcomp>z >r   r+   c                 S   r   )z   r   r   r   r   r   r      r   z
dtype: complex128z

)	r]   ZSeriesro   arrayZto_frame	enumerater5   joinr   )r   outputr   ri   Zreprsr   r   r   r   test_ser_df_with_complex_nans   s   &(r   )r   numpyro   ZpytestZpandas._config.config_configrU   r   Zpandasr]   Zpandas.io.formatsr   Zpandas.io.formats.formatioformatsra   r2   r   r$   r&   rS   r}   markZparametrizecomplexr~   r   r   r   r   r   <module>   s@    	VR