o
    ҷh>!                     @   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hhhiiiz a  dd  ggg
b  ee  hhh
c  ff  iii   r   adjoin)dataexpectedadjoined r   X/var/www/html/venv/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)quote_stringsF)stringascii_lettersbytescf
get_option	TypeErrorstrdecoder   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r9   r   r   justN   s   z*TestFormattBase.test_justify.<locals>.justabc   left)modezabc  centerz abc rightz  abc	   パンダ
   u   パンダ    u     パンダ  u       パンダ)r5   r6   )r*   rA   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 )NrB      rH      u   ﾊﾟﾝﾀﾞrC   u   パンダpanda   u   ﾊﾟﾝﾀﾞpandarI   )r5   r6   r8   )r*   r9   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_wideTrL   r+   r,   )r   rO   r-   u6   あ  dd    ggg 
b   ええ  ¡¡ab
c   ff    いいいr   )r5   r6   r8   r   option_contextr   )r*   r9   r   r   r   r   r   r   test_ambiguous_widthl   s   z$TestFormattBase.test_ambiguous_widthN)__name__
__module____qualname__r   r;   rJ   rN   rR   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Ar0   r   
text/plain!application/vnd.dataresource+json>   	text/htmlrZ   r[   display.html.table_schemaTr   zstyler.render.reprlatex>   
text/latexr\   rZ   r[   )
instancerX   pd	DataFramerQ   zipdisplay_formatterformatsetkeys)r*   ipipythondfobjectsexpected_keysoptlast_objobjr   	formatted
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 )NrY   Br   r   rC   )columnsr]   TrW   rZ   r\   r   )ra   
MultiIndexfrom_productrb   nprandomdefault_rngstandard_normalr8   rQ   r`   rX   rd   re   rf   rg   )r*   rh   midxrj   rm   rp   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 )NrY   r0   r   r]   Tra   rb   rQ   _repr_data_resource_r*   rj   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 )NrY   r0   r   r]   Fr}   r   r   r   r   test_config_default_off   r   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 )NrW   r[   r]   T)	r`   rX   rd   
formattersra   rQ   enabledre   r   )r*   rh   r   mimetyper   r   r   #test_enable_data_resource_formatter   s   "z7TestTableSchemaRepr.test_enable_data_resource_formatterN)rS   rT   rU   rr   r|   r   r   r   r   r   r   r   rV   z   s    rV   c                  C   s&   t jdg} d}t| |ksJ d S )N)>ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccz^MultiIndex([('cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',)],
           ))ra   ru   from_tuplesr    )r   r   r   r   r   test_multiindex_long_element   s   r   zdata,outputr   nanr0   )	 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

)	ra   Seriesrw   arrayto_frame	enumerater8   joinr    )r   outputr   ro   reprsr   r   r   r   test_ser_df_with_complex_nans   s   &(r   )r   numpyrw   pytestpandas._config.config_configrX   r   pandasra   pandas.io.formatsr   pandas.io.formats.formatioformatsre   r5   r   r'   r)   rV   r   markparametrizecomplexr   r   r   r   r   r   <module>   s@    	VR