o
    �¨Êh.B  ã                   @   sh  d dl m Z mZ d dlmZ d dlZd dlZd dlmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ G d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 ) é    )ÚdatetimeÚ	timedelta)ÚStringION)Úusing_pyarrow_string_dtype)ÚNAÚCategoricalÚCategoricalIndexÚ	DataFrameÚIntervalIndexÚ
MultiIndexÚNaTÚPeriodIndexÚSeriesÚ	TimestampÚ
date_rangeÚoption_contextÚperiod_rangec                   @   s¦  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zejjdd„ ƒZejjeƒ dd�dd„ ƒZdd „ Zejjd!d"„ ƒZd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Z d5d6„ Z!d7d8„ Z"d9d:„ Z#d;d<„ Z$ej %d=e&j'e&j(g¡ej %d>e)d?ge*d@gg¡dAdB„ ƒƒZ+dCdD„ Z,dEdF„ Z-dGdH„ Z.dIdJ„ Z/dKdL„ Z0dMdN„ Z1dOdP„ Z2dQdR„ Z3dSdT„ Z4dUdV„ Z5dWdX„ Z6dYS )ZÚTestDataFrameReprc                 C   s\   g d¢}g d¢}dg}t |||d�}t| ¡ ƒtu sJ ‚||d  }t| ¡ ƒtu s,J ‚d S )N)é   é   é   r   )u   Ïƒu   Ï„u   Ï…u   Ï†u   Ïˆ©ÚcolumnsÚindexr   )r	   ÚtypeÚ__repr__Ústr)ÚselfÚdataÚindex1ÚcolsÚdfÚser© r#   úN/var/www/html/env/lib/python3.10/site-packages/pandas/tests/frame/test_repr.pyÚtest_repr_should_return_str   s   z-TestDataFrameRepr.test_repr_should_return_strc                 C   s|   t dƒ}tj d¡ |d¡}t|ƒ d¡}|jtk 	¡ sJ ‚t
|ƒ t
|jd d…d d …f ƒ t
|jd d…d d …f ƒ d S )NÚACDEFGHIJKLMNOPé   )éè  é2   ÚU1é<   é=   )ÚlistÚnpÚrandomÚdefault_rngÚchoicer	   ÚastypeÚdtypesÚobjectÚallÚreprÚiloc)r   ÚletsÚwordsr!   r#   r#   r$   Útest_repr_bytes_61_lines.   s   z*TestDataFrameRepr.test_repr_bytes_61_linesc                 C   sH   t jddgddgd�}ttj d¡ d¡|d�}t ||¡}t	|ƒ d S )	N)r   r   )é   r;   u   Î”Úi1©Únamesr'   )r'   é   ©r   )
r   Úfrom_tuplesr	   r.   r/   r0   Ústandard_normalÚtmÚget_objr6   )r   Úframe_or_seriesr   Úobjr#   r#   r$   Útest_repr_unicode_level_names:   s   z/TestDataFrameRepr.test_repr_unicode_level_namesc                 C   sd   t g d¢g d¢g d¢dœƒ ddg¡}t|jƒ}d|d< ||_t|ƒ d	d
g|d< ||_t|ƒ d S )N©r;   r'   r   ©r?   r   é   ©é   r   é	   ©ÚaÚbÚcrO   rP   )ÚfazÚboor   rR   rS   )r	   Ú	set_indexr-   r   r6   )r   r!   r   r#   r#   r$   Útest_assign_index_sequencesA   s   ÿ
z-TestDataFrameRepr.test_assign_index_sequencesc                 C   s@   t dddgittdƒgddggd�}t|ƒ}d}||ksJ ‚d S )	NÚXr;   r'   Ú20130101rO   rP   r@   z/              X
NaT        a  1
2013-01-01 b  2)r	   r   r   r6   ©r   r!   ÚresultÚexpectedr#   r#   r$   Útest_repr_with_mi_natP   s   $z'TestDataFrameRepr.test_repr_with_mi_natc                 C   s4   t g d¢dd tjtgƒ}t|ƒ}d}||ksJ ‚d S )N©r;   r'   r   r?   Tz'      0
True  1
None  2
NaN   3
NaT   4)r	   r.   Únanr   r6   rX   r#   r#   r$   Útest_repr_with_different_nullsV   s   z0TestDataFrameRepr.test_repr_with_different_nullsc              	   C   sL   t jddgd ddgtddgddd	gi}t|d
�}t|ƒ}d}||ks$J ‚d S )Nr;   r'   r   r?   rJ   rL   Tr   rM   )r   zG   NaN  None  NaT  True
0    1     3    6     8
1    2     4    7     9)r.   r]   r   r	   r6   )r   Údr!   rY   rZ   r#   r#   r$   Ú#test_repr_with_different_nulls_colsa   s
   &
z5TestDataFrameRepr.test_repr_with_different_nulls_colsc                 C   sP   t ddidtjidtjidtjiddidtjidœƒ}| ddg¡}t|ƒ d S )N)ÚAÚA0006000Únuitrb   ra   )ÚAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAÚBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBÚCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCÚDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDÚEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEÚFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFrd   rf   )r	   r.   r]   rT   r6   )r   Údf3Úidfr#   r#   r$   Útest_multiindex_na_reprk   s   úÿz)TestDataFrameRepr.test_multiindex_na_reprc                 C   sN   t jddgg d¢d�}tdddgi|d�}t|ƒ d	¡}|d
  d¡s%J ‚d S )N)rO   r   Úfoo)rP   r;   ÚbarrN   r=   Úvaluer   r;   r@   Ú
r'   za 0 foo)r   rA   r	   r6   ÚsplitÚ
startswith)r   r   r!   Úlinesr#   r#   r$   Útest_repr_name_coincide{   s   ÿz)TestDataFrameRepr.test_repr_name_coincidec                 C   sj   |}|}t |ƒ t |ƒ t |jƒ t |jƒ tƒ }|j|d� |j|d� |jj|d� |jj|d� d S )N)Úbuf)r6   ÚTr   Ú	to_string)r   Ú/multiindex_year_month_day_dataframe_random_dataÚ multiindex_dataframe_random_dataÚymdÚframeru   r#   r#   r$   Útest_repr_to_string…   s   

z%TestDataFrameRepr.test_repr_to_stringc                 C   s&   t tƒ ƒ tt d¡d�}t |ƒ d S )Nr(   r@   )r6   r	   r.   Úarange)r   r{   r#   r#   r$   Útest_repr_empty˜   s   
z!TestDataFrameRepr.test_repr_emptyc                 C   s   t |ƒ d S )N)r6   )r   Úfloat_string_framer#   r#   r$   Útest_repr_mixed    s   z!TestDataFrameRepr.test_repr_mixedc                 C   sf   t tj d¡ d¡dd„ tdƒD ƒdœtdƒd�}tj|jd d…df< tj|jd d…d	f< t|ƒ d S )
Nr'   éÈ   c                 S   s   g | ]}t |ƒ‘qS r#   )r   )Ú.0Úir#   r#   r$   Ú
<listcomp>ª   s    z9TestDataFrameRepr.test_repr_mixed_big.<locals>.<listcomp>)ra   ÚBr@   é   ra   r…   )	r	   r.   r/   r0   rB   Úranger]   Úlocr6   ©r   Úbiggier#   r#   r$   Útest_repr_mixed_big¤   s   þûz%TestDataFrameRepr.test_repr_mixed_bigz/r in)Úreasonc                 C   s^   t g d¢d�}t|ƒ t dgdgdgd�}dt|ƒvsJ ‚dt|ƒvs%J ‚d	t|ƒvs-J ‚d S )
N)r   r;   r   ©r   za
	bza
	dza
	fr   ú	úza
)r	   r6   )r   Úno_indexr!   r#   r#   r$   Ú	test_repr³   s   zTestDataFrameRepr.test_reprc                 C   sÈ   t ddgddggƒ}tddƒ� dt|ƒv sJ ‚W d   ƒ n1 s"w   Y  tddƒ� dt|ƒvs5J ‚W d   ƒ n1 s?w   Y  tdd	ƒ� dt|ƒvsRJ ‚W d   ƒ d S 1 s]w   Y  d S )
Nr;   r'   r   r?   zdisplay.show_dimensionsTz2 rows x 2 columnsFÚtruncate©r	   r   r6   ©r   r!   r#   r#   r$   Útest_repr_dimensions¾   s   ÿÿ"ÿz&TestDataFrameRepr.test_repr_dimensionsc                 C   s(   t t d¡tdƒtdƒd�}t|ƒ d S )N)r�   r?   r?   r�   r   )r	   r.   Úzerosr‡   r6   r‰   r#   r#   r$   Útest_repr_bigÉ   s   zTestDataFrameRepr.test_repr_bigc              
   C   sV   t ddgd t ¡ dgd ddgd t ¡ tdƒ dgd it d¡d�}t|ƒ d S )Nrm   r;   r)   rn   r@   )r	   r   Útodayr   r.   r}   r6   )r   Ú
unsortabler#   r#   r$   Útest_repr_unsortableÏ   s   

üù	z&TestDataFrameRepr.test_repr_unsortablec                 C   s¬   t |ƒ tddƒ� t |ƒ W d   ƒ n1 sw   Y  tddddƒ� t |ƒ W d   ƒ n1 s3w   Y  tddddƒ� t |ƒ W d   ƒ d S 1 sOw   Y  d S )Nzdisplay.precisionr   zdisplay.max_rowsé
   údisplay.max_columnsr'   r(   )r6   r   )r   Úfloat_framer#   r#   r$   Útest_repr_float_frame_optionsÝ   s   
ÿ
ÿ
"ÿz/TestDataFrameRepr.test_repr_float_frame_optionsc                 C   sp   d}t d||giƒ}t|ƒ}d}| d¡d  ¡ |ksJ ‚t d||giƒ}t|ƒ}| d¡d  ¡ |ks6J ‚d S )Nu   ÏƒÏƒÏƒÏƒra   z      Arp   r   )r	   r6   rq   Úrstrip)r   Úuvalr!   rY   Úex_topr#   r#   r$   Útest_repr_unicodeé   s   z#TestDataFrameRepr.test_repr_unicodec                 C   s   t ddgiƒ}t|ƒ d S )Nra   õ   ×�)r	   r   r”   r#   r#   r$   Ú test_unicode_string_with_unicodeö   s   z2TestDataFrameRepr.test_unicode_string_with_unicodec                 C   s*   t g d¢g d¢g d¢dœƒ}t|jƒ d S )NrH   rI   rK   )r£   u   ×‘rQ   )r	   r6   r   r”   r#   r#   r$   Útest_repr_unicode_columnsú   s   z+TestDataFrameRepr.test_repr_unicode_columnsc                 C   sN   t ddgiƒ}d}tjt|d�� t|ƒ W d   ƒ d S 1 s w   Y  d S )Nra   Úabcz2^'str' object cannot be interpreted as an integer$©Úmatch)r	   ÚpytestÚraisesÚ	TypeErrorÚbytes)r   r!   Úmsgr#   r#   r$   Útest_str_to_bytes_raisesþ   s
   
"ÿz*TestDataFrameRepr.test_str_to_bytes_raisesc                 C   s6   t tj d¡ d¡tjdgd td�d�}t|ƒ d S )Nr'   )r›   r†   Ú
aaaaaaaaaar†   ©Údtyper�   )r	   r.   r/   r0   rB   Úarrayr4   r6   r”   r#   r#   r$   Útest_very_wide_repr  s
   þz%TestDataFrameRepr.test_very_wide_reprc                 C   sP   t dgddœƒ}tddƒ� dt|ƒv sJ ‚W d   ƒ d S 1 s!w   Y  d S )Nizšl u  Is it possible to modify drop plot codeso that the output graph is displayed in iphone simulator, Is it possible to modify drop plot code so that the output graph is Ã¢Â€Â¨displayed in iphone simulator.Now we are adding the CSV file externally. I want to Call the File through the code..)ÚIdÚ	StringColrœ   r†   rµ   r“   r”   r#   r#   r$   Ú,test_repr_column_name_unicode_truncation_bug  s   ýÿ"ÿz>TestDataFrameRepr.test_repr_column_name_unicode_truncation_bugc                 C   sx   t  d¡ d}tdd ddƒ� tg d¢g d¢gƒ}| ¡ }||ks#J ‚W d   ƒ n1 s-w   Y  | ¡ d u s:J ‚d S )NÚjinja2z{\begin{tabular}{llll}
\toprule
 & 0 & 1 & 2 \\
\midrule
0 & $\alpha$ & b & c \\
1 & 1 & 2 & 3 \\
\bottomrule
\end{tabular}
zstyler.format.escapezstyler.render.reprÚlatex)z$\alpha$rP   rQ   rH   )r©   Úimportorskipr   r	   Ú_repr_latex_)r   rZ   r!   rY   r#   r#   r$   Útest_latex_repr!  s   
	ÿûz!TestDataFrameRepr.test_latex_reprc                 C   s8   t dg d¢itddd�d�}t|ƒ}d}||ksJ ‚d S )Nra   rH   Ú2000r   )Úperiodsr@   z7            A
2000-01-01  1
2000-01-02  2
2000-01-03  3©r	   r   r6   rX   r#   r#   r$   Útest_repr_with_datetimeindex6  ó   z.TestDataFrameRepr.test_repr_with_datetimeindexc                 C   s:   t dg d¢it g d¢¡d�}t|ƒ}d}||ksJ ‚d S )Nra   r\   )r   r;   r'   r   r?   r@   z1        A
(0, 1]  1
(1, 2]  2
(2, 3]  3
(3, 4]  4)r	   r
   Úfrom_breaksr6   rX   r#   r#   r$   Útest_repr_with_intervalindex<  s   ÿz.TestDataFrameRepr.test_repr_with_intervalindexc                 C   s8   t dg d¢itg d¢ƒd�}t|ƒ}d}||ksJ ‚d S )Nra   rH   rN   r@   z   A
a  1
b  2
c  3)r	   r   r6   rX   r#   r#   r$   Ú test_repr_with_categorical_indexE  rÀ   z2TestDataFrameRepr.test_repr_with_categorical_indexc                 C   sj   t ddddd�}tdddd�}t||d	œƒ}d
}t|ƒ|ks J ‚tt|ƒt|ƒd	œƒ}t|ƒ|ks3J ‚d S )Nz2011-01-01 09:00Úhr   z
US/Eastern)Úfreqr½   Útzz2011-01ÚM)rÅ   r½   )ÚdtÚpzÝ                         dt        p
0 2011-01-01 09:00:00-05:00  2011-01
1 2011-01-01 10:00:00-05:00  2011-02
2 2011-01-01 11:00:00-05:00  2011-03
3 2011-01-01 12:00:00-05:00  2011-04
4 2011-01-01 13:00:00-05:00  2011-05)r   r   r	   r6   r   )r   rÈ   rÉ   r!   ÚexpÚdf2r#   r#   r$   Ú#test_repr_categorical_dates_periodsK  s   z5TestDataFrameRepr.test_repr_categorical_dates_periodsÚargzbox, expectedz0    NaT
dtype: objectz     0
0  NaTc                 C   s&   t ||dƒgtd�ƒ}||ksJ ‚d S )Nr   r°   )r6   r4   )r   rÍ   ÚboxrZ   rY   r#   r#   r$   Útest_repr_np_nat_with_object\  s   z.TestDataFrameRepr.test_repr_np_nat_with_objectc                 C   s"   t dtdddd�iƒ}t|ƒ d S )NÚyearz1/1/1700r)   zYE-DEC)r½   rÅ   r¾   r”   r#   r#   r$   Ú"test_frame_datetime64_pre1900_reprf  s   z4TestDataFrameRepr.test_frame_datetime64_pre1900_reprc                 C   s6   t g d¢dd�}ttj d¡ d¡|d�}| ¡  d S )N)z2011-1z2011-2z2011-3rÇ   )rÅ   r'   )r   r?   r@   )r   r	   r.   r/   r0   rB   rw   )r   r   r{   r#   r#   r$   Ú%test_frame_to_string_with_periodindexk  s   z7TestDataFrameRepr.test_frame_to_string_with_periodindexc                 C   sD   t dddgit ttdgdd�g¡d�}| ¡ }d}||ks J ‚d S )NrO   r;   r'   ÚInt64r°   r@   z      a
<NA>  1
1     2)r	   r   Úfrom_arraysr   r   rw   rX   r#   r#   r$   Ú"test_to_string_ea_na_in_multiindexr  s   
þz4TestDataFrameRepr.test_to_string_ea_na_in_multiindexc                 C   sL   t dtdddd�iƒ}t|ƒ}|jd d …d d…f }t|ƒ}||ks$J ‚d S )NÚxÚ2019r›   ÚUTC)r½   rÆ   r   )r	   r   r6   r7   ©r   r!   rZ   rY   r#   r#   r$   Ú$test_datetime64tz_slice_non_truncate  s
   z6TestDataFrameRepr.test_datetime64tz_slice_non_truncatec                 C   sR   t ddgddgddggddgd	�}|ddg  ¡ |d
< d}t|ƒ}||ks'J ‚d S )NrO   rP   rQ   r_   ÚeÚfÚleftÚrightr�   Úrecordz_  left right     record
0    a     b  [0, a, b]
1    c     d  [1, c, d]
2    e     f  [2, e, f])r	   Ú
to_recordsr6   rÙ   r#   r#   r$   Ú$test_to_records_no_typeerror_in_repr‡  s
   "z6TestDataFrameRepr.test_to_records_no_typeerror_in_reprc                 C   sT   t dtjgddgddggddgd�}|ddg  ¡ |d	< d
}t|ƒ}||ks(J ‚d S )NrO   rQ   r_   rÛ   rÜ   rÝ   rÞ   r�   rß   zg  left right       record
0    a   NaN  [0, a, nan]
1    c     d    [1, c, d]
2    e     f    [2, e, f]©r	   r.   r]   rà   r6   rÙ   r#   r#   r$   Ú$test_to_records_with_na_record_value’  s   ÿz6TestDataFrameRepr.test_to_records_with_na_record_valuec                 C   sZ   t ddgtjtjgddggtjdgd�}|tjdg  ¡ |d< d}t|ƒ}||ks+J ‚d S )	NrO   rP   rÛ   rÜ   rÞ   r�   rß   zo   NaN right         record
0    a     b      [0, a, b]
1  NaN   NaN  [1, nan, nan]
2    e     f      [2, e, f]râ   rÙ   r#   r#   r$   Útest_to_records_with_na_recordŸ  s    ÿz0TestDataFrameRepr.test_to_records_with_na_recordc              	   C   ó¼   d}d}t jt|d��C tddƒ�. ttjdgtjtjgddggtjtjgd	�}|tjtjg  ¡ |d
< t	|ƒ}W d   ƒ n1 sBw   Y  W d   ƒ n1 sQw   Y  ||ks\J ‚d S )Núk   NaN  inf         record
0  inf    b    [0, inf, b]
1  NaN  NaN  [1, nan, nan]
2    e    f      [2, e, f]ú"use_inf_as_na option is deprecatedr§   Úuse_inf_as_naTrP   rÛ   rÜ   r�   rß   ©
rC   Úassert_produces_warningÚFutureWarningr   r	   r.   Úinfr]   rà   r6   ©r   rZ   r­   r!   rY   r#   r#   r$   Ú%test_to_records_with_inf_as_na_record¬  ó   
þ
ú€ÿz7TestDataFrameRepr.test_to_records_with_inf_as_na_recordc              	   C   rå   )Nræ   rç   r§   rè   FrP   rÛ   rÜ   r�   rß   ré   rí   r#   r#   r$   Útest_to_records_with_inf_record½  rï   z1TestDataFrameRepr.test_to_records_with_inf_recordc                 C   sN   t tddgdd�tddgdd�dœƒ}|jd	jd	jgd
�}d}||ks%J ‚d S )Ng_c97Ýš¿?g6–sÓ­ùñ?ÚFloat64r°   r;   r'   rÓ   )rO   rP   z{:.2f})Ú
formattersz)      a     b
0  0.12  1.00
1  1.12  2.00)r	   r   rw   ÚformatrX   r#   r#   r$   Útest_masked_ea_with_formatterÎ  s   þÿz/TestDataFrameRepr.test_masked_ea_with_formatterc                 C   sF   t  d¡ tg d¢g d¢dœƒ}|j |¡|_d}t|ƒ|ks!J ‚d S )NÚpyarrowrH   rI   )Úlong_column_nameÚcol2zg   long_column_name  col2
0                 1     4
1                 2     5
2                 3     6)r©   r¹   r	   r   r2   r6   )r   Úany_string_dtyper!   rZ   r#   r#   r$   Útest_repr_ea_columnsÜ  s
   
z&TestDataFrameRepr.test_repr_ea_columnsN)7Ú__name__Ú
__module__Ú__qualname__r%   r:   rG   rU   r[   r^   r`   rl   rt   r|   r~   r€   r©   ÚmarkÚslowr‹   Úxfailr   r‘   r•   r—   rš   rž   r¢   r¤   r¥   r®   r³   r¶   r»   r¿   rÂ   rÃ   rÌ   Úparametrizer.   Ú
datetime64Útimedelta64r   r	   rÏ   rÑ   rÒ   rÕ   rÚ   rá   rã   rä   rî   rð   rô   rù   r#   r#   r#   r$   r      sd    





	þr   zdata,outputr'   r]   r;   )ú	 2.0+0.0jú	 NaN+0.0jz	 1.0+0.0jéÿÿÿÿ)r  r  ú	-1.0+0.0jéþÿÿÿ)z	-2.0+0.0jr  r  y       €®Gáz®ó¿)ú-0.00-1.23jú  NaN+0.00jz-1.00+0.00jy        ®Gáz®ó?g®Gáz®ó?)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sMJ dt|ƒ› d
|› �ƒ‚d S )NÚval)Únamec                 S   ó   g | ]\}}|› d |› �‘qS )ú r#   ©r‚   rƒ   r  r#   r#   r$   r„     ó    z/test_repr_with_complex_nans.<locals>.<listcomp>z >r   rp   c                 S   r  )z   r#   r  r#   r#   r$   r„     r  z
dtype: complex128z

)r   r.   r²   Úto_frameÚ	enumerateÚlenÚjoinr   )r   Úoutputr  rF   ÚreprsrZ   r#   r#   r$   Útest_repr_with_complex_nansè  s   &(r  ) r   r   Úior   Únumpyr.   r©   Úpandas._configr   Úpandasr   r   r   r	   r
   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingrC   r   rý   r   Úcomplexr]   r  r#   r#   r#   r$   Ú<module>   s>    <   Mþþþòþ