o
    �¨ÊhâB  ã                   @   sˆ   d dl m Z mZ d dlZd dlZd dlmZ d dlZd dl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G dd„ dƒZdS )	é    ©ÚdatetimeÚ	timedeltaN)Úusing_pyarrow_string_dtype)ÚCategoricalÚ	DataFrameÚIndexÚSeriesÚ
date_rangeÚoption_contextÚperiod_rangeÚtimedelta_rangec                   @   sF  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
dddg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej	 
dg d¢¡dd„ ƒZdd„ Zej	 
ddd g¡d!d"„ ƒZej	jeƒ d#d$�d%d&„ ƒZej	 
d'd(d)gd*d+gg¡d,d-„ ƒZd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ Z dBdC„ Z!dDdE„ Z"d*S )FÚTestSeriesReprc                 C   sL   t jjtddƒtddƒgdd gd�}td|d�}t|ƒ}d}||ks$J ‚d S )	Né   é   é   r   )Únamesg      ø?©Úindexz0   
2  3    1.5
dtype: float64)ÚpdÚ
MultiIndexÚfrom_productÚranger	   Úrepr)ÚselfÚmiÚserÚresÚexpected© r   úR/var/www/html/env/lib/python3.10/site-packages/pandas/tests/series/test_formats.pyÚtest_multilevel_name_print_0   s
   $z+TestSeriesRepr.test_multilevel_name_print_0c                 C   s@   |}t tt|ƒƒ|dd�}g d¢}d |¡}t|ƒ|ksJ ‚d S )NÚsth©r   Úname)zfirst  secondzfoo    one       0z       two       1z       three     2zbar    one       3z       two       4zbaz    two       5z       three     6zqux    one       7z       two       8z       three     9zName: sth, dtype: int64Ú
)r	   r   ÚlenÚjoinr   )r   Ú%lexsorted_two_level_string_multiindexr   r   r   r   r   r    Útest_multilevel_name_print$   s
   
z)TestSeriesRepr.test_multilevel_name_printc                 C   s<   t g d¢ƒ}d|_dt|ƒv sJ ‚d |_dt|ƒvsJ ‚d S )N)r   é   r   Útestú
Name: testúName:)r	   r$   r   ©r   Úsr   r   r    Útest_small_name_printing8   ó
   z'TestSeriesRepr.test_small_name_printingc                 C   s<   t tdƒƒ}d|_dt|ƒv sJ ‚d |_dt|ƒvsJ ‚d S )Néè  r+   r,   r-   )r	   r   r$   r   r.   r   r   r    Útest_big_name_printingB   r1   z%TestSeriesRepr.test_big_name_printingc                 C   s(   t tddƒdtd�}dt|ƒv sJ ‚d S )NÚ20010101Ú20020101r+   )r   r$   Údtyper,   )r	   r
   Úobjectr   r.   r   r   r    Útest_empty_name_printingL   s   z'TestSeriesRepr.test_empty_name_printingÚargsr   )r   éÿÿÿÿc                 C   s0   t ttj d¡ d¡tjdg|¢R Ž d�ƒ d S )Nr   r2   r   )Ústrr	   ÚnpÚrandomÚdefault_rngÚstandard_normalÚarange)r   r9   r   r   r    Útest_float_rangeP   s   þÿzTestSeriesRepr.test_float_rangec                 C   s   t ttd�ƒ d S )N©r6   )r;   r	   r7   ©r   r   r   r    Útest_empty_objectY   s   z TestSeriesRepr.test_empty_objectc                 C   s0   t |ƒ t | t¡ƒ tj|dd…< t |ƒ d S )Né   é   )r;   ÚastypeÚintr<   Únan)r   Ústring_seriesr   r   r    Útest_string]   s   zTestSeriesRepr.test_stringc                 C   s   t |ƒ d S ©N)r;   )r   Úobject_seriesr   r   r    Útest_objecte   s   zTestSeriesRepr.test_objectc                 C   s,   t |ƒ | d¡}d |d d d…< t|ƒ d S )NÚOr   )r;   rG   r   )r   Údatetime_seriesÚotsr   r   r    Útest_datetimeh   s   
zTestSeriesRepr.test_datetimer$   )Ú r*   g333333ó?Úfoou   Î±Î²Î³Ú7loooooooooooooooooooooooooooooooooooooooooooooooooooong©rT   ÚbarÚbaz)r*   r   )rT   r*   gffffff@)õ   Î±u   Î²u   Î³)rY   rW   c                 C   s   ||_ t|ƒ d S rL   )r$   r   )r   r$   rJ   r   r   r    Útest_various_nameso   s   z!TestSeriesRepr.test_various_namesc                 C   s.   t tj d¡ d¡t d¡dd�}t|ƒ d S )Nr   r2   rV   r#   )r	   r<   r=   r>   r?   r@   r   )r   Úbiggier   r   r    Útest_tuple_name„   s   ýzTestSeriesRepr.test_tuple_nameÚargéd   éé  c                 C   s2   t tj d¡ |¡dd�}t|ƒ}d|v sJ ‚d S )Nr   r   ©r$   zName: 0)r	   r<   r=   r>   r?   r   )r   r]   r   Úrep_strr   r   r    Útest_tidy_repr_name_0Œ   s   z$TestSeriesRepr.test_tidy_repr_name_0z%TODO: investigate why this is failing)Úreasonc                 C   sF   t dgddgd�}dt|ƒvsJ ‚dt|ƒvsJ ‚dt|ƒvs!J ‚d S )Nza
	bza
	dza
	f)r$   r   ú	úza
)r	   r   )r   r   r   r   r    Útest_newline“   s   zTestSeriesRepr.test_newlinezname, expectedrT   z#Series([], Name: foo, dtype: int64)NzSeries([], dtype: int64)c                 C   s$   t g tj|d�}t|ƒ|ksJ ‚d S )N)r6   r$   )r	   r<   Úint64r   )r   r$   r   r/   r   r   r    Útest_empty_int64œ   s   	zTestSeriesRepr.test_empty_int64c                 C   s8   t dd„ tdƒD ƒƒ}t|ƒ | ¡ }|jdksJ ‚d S )Nc                 S   s"   g | ]}t tj d ¡ d¡ƒ‘qS )r   )r   r   )r   r<   r=   r>   r?   ©Ú.0Úir   r   r    Ú
<listcomp>ª   s    ÿÿz7TestSeriesRepr.test_repr_bool_fails.<locals>.<listcomp>rE   rS   )r	   r   r   Ú
readouterrÚerr)r   Úcapsysr/   Úcapturedr   r   r    Útest_repr_bool_fails¨   s   þÿz#TestSeriesRepr.test_repr_bool_failsc                 C   s0   t g d¢t d¡d�}t|ƒ d|_t|ƒ d S )N©r*   r   r   r   r`   )õ   ×�rs   )r	   r<   rg   r   r$   r.   r   r   r    Ú!test_repr_name_iterable_indexable¶   s   z0TestSeriesRepr.test_repr_name_iterable_indexablec                 C   s@   t dd ƒ� tttdƒƒƒ W d   ƒ d S 1 sw   Y  d S )Núdisplay.max_rowsr_   )r   r;   r	   r   rC   r   r   r    Útest_repr_max_rows¿   s   "ÿz!TestSeriesRepr.test_repr_max_rowsc                 C   sL   t dgdd�}t|ƒ t dgd ƒ}t|ƒ t dgd ƒ}d|_t|ƒ d S )Nrs   u   ×‘r`   u   Ïƒé
   r2   Útitle1)r	   r;   r   r$   )r   Údfr   Úser2r   r   r    Ú test_unicode_string_with_unicodeÄ   s   z/TestSeriesRepr.test_unicode_string_with_unicodec                 C   sN   t dgdd�}d}tjt|d�� t|ƒ W d   ƒ d S 1 s w   Y  d S )NÚabcr`   z2^'str' object cannot be interpreted as an integer$©Úmatch)r	   ÚpytestÚraisesÚ	TypeErrorÚbytes)r   ry   Úmsgr   r   r    Útest_str_to_bytes_raisesÏ   s
   
"ÿz'TestSeriesRepr.test_str_to_bytes_raisesc                 C   s°   t dd„ tdƒD ƒtd�}ttj d¡ t|ƒ¡|ƒ}t	|ƒ ttj
dtjd�tddd�d	�}t	|ƒ ¡ d
  d¡s<J ‚|jtj d¡ dt|ƒd d¡ }t	|ƒ ¡ d
  d S )Nc                 S   s    g | ]}t d ddƒt|ƒ ‘qS )éÐ  r*   r   ri   r   r   r    rl   Ø   s     zDTestSeriesRepr.test_timeseries_repr_object_dtype.<locals>.<listcomp>r2   rB   r   é   z
2020-01-01©Úperiodsr   r:   zFreq:r   r*   i�  )r   r   r7   r	   r<   r=   r>   r?   r&   r   r@   Úfloat64r
   Ú
splitlinesÚ
startswithÚilocÚintegers)r   r   ÚtsÚts2r   r   r    Ú!test_timeseries_repr_object_dtypeÖ   s   ÿÿ$z0TestSeriesRepr.test_timeseries_repr_object_dtypec                 C   sl   t  d¡ d}tdd ddƒ� tg d¢ƒ}|| ¡ ksJ ‚W d   ƒ n1 s'w   Y  | ¡ d u s4J ‚d S )NÚjinja2zj\begin{tabular}{ll}
\toprule
 & 0 \\
\midrule
0 & $\alpha$ \\
1 & b \\
2 & c \\
\bottomrule
\end{tabular}
zstyler.format.escapezstyler.render.reprÚlatex)z$\alpha$ÚbÚc)r   Úimportorskipr   r	   Ú_repr_latex_)r   Úresultr/   r   r   r    Útest_latex_reprå   s   

ÿüzTestSeriesRepr.test_latex_reprc                 C   s6   t dtjgƒ}tddg|d�}d}t|ƒ|ksJ ‚d S )Nr*   r   r   z1.0    1
NaN    2
dtype: int64)r   r<   rI   r	   r   )r   rk   r/   Úexpr   r   r    Ú!test_index_repr_in_frame_with_nanù   s   z0TestSeriesRepr.test_index_repr_in_frame_with_nanc                 C   s`   t dddd�}d}tjt|d�� | ¡  W d   ƒ n1 sw   Y  td|d�}t|ƒ d S )	Nz1/1/1850z1/1/1950zYE-DEC)Úfreqz"DatetimeIndex.format is deprecatedr}   r*   r   )r
   ÚtmÚassert_produces_warningÚFutureWarningÚformatr	   r   )r   Úrngrƒ   rŽ   r   r   r    Útest_format_pre_1900_dates  s   
ÿz)TestSeriesRepr.test_format_pre_1900_datesc                 C   s4   t dddtjjgdd�}t|ƒ}d}||ksJ ‚d S )Nr   r2   r…   zM8[ns]rB   z‘0   1970-01-01 00:00:00.000000
1   1970-01-01 00:00:00.000001
2   1970-01-01 00:00:00.000002
3                          NaT
dtype: datetime64[ns])r	   r   ÚNaTÚ_valuer   )r   Úseriesr—   r   r   r   r    Útest_series_repr_nat	  s
   ÿz#TestSeriesRepr.test_series_repr_natc                 C   s(   t dgƒ t¡}d}t|ƒ|ksJ ‚d S )Ng      ð?z0    1.0
dtype: object)r	   rG   r7   r   )r   r   r   r   r   r    Útest_float_repr  s   zTestSeriesRepr.test_float_reprc                 C   s6   t g d¢dd tjtjgƒ}t|ƒ}d}||ksJ ‚d S )N©r*   r   r   r   Tz4True    1
None    2
NaN     3
NaT     4
dtype: int64)r	   r<   rI   r   r¢   r   )r   r   r—   r   r   r   r    Útest_different_null_objects  s   z*TestSeriesRepr.test_different_null_objects)#Ú__name__Ú
__module__Ú__qualname__r!   r)   r0   r3   r8   r   ÚmarkÚparametrizerA   rD   rK   rN   rR   rZ   r\   rb   Úxfailr   rf   rh   rq   rt   rv   r{   r„   r�   r˜   rš   r¡   r¥   r¦   r¨   r   r   r   r    r      sV    



þ

ÿ
þþ
	r   c                   @   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S )ÚTestCategoricalReprc                    sL   G dd„ dƒ‰ t ‡ fdd„tdƒD ƒƒ}t|ƒ}| ¡ }t|ƒ t|ƒ d S )Nc                   @   s"   e Zd ZdZdZdefdd„ZdS )zATestCategoricalRepr.test_categorical_repr_unicode.<locals>.Countyu   San SebastiÃ¡nÚPRÚreturnc                 S   s   | j d | j S )Nz, )r$   ÚstaterC   r   r   r    Ú__repr__-  s   zJTestCategoricalRepr.test_categorical_repr_unicode.<locals>.County.__repr__N)r©   rª   r«   r$   r²   r;   r³   r   r   r   r    ÚCounty)  s    r´   c                    s   g | ]}ˆ ƒ ‘qS r   r   )rj   Ú_©r´   r   r    rl   0  s    zETestCategoricalRepr.test_categorical_repr_unicode.<locals>.<listcomp>é=   )r   r   r   Ú	to_seriesr   r;   )r   ÚcatÚidxr   r   r¶   r    Útest_categorical_repr_unicode&  s   z1TestCategoricalRepr.test_categorical_repr_unicodec                 C   sÀ   t tg d¢ƒƒ}d}|| ¡ ksJ ‚t tddgd ƒƒ}|r!d}nd}tdd	ƒ� |t|ƒks1J ‚W d   ƒ n1 s;w   Y  td
ƒ}t tddg|dd�ƒ}|rTd}nd}|| ¡ ks^J ‚d S )Nr§   zO0    1
1    2
2    3
3    4
dtype: category
Categories (4, int64): [1, 2, 3, 4]Úar“   é   zb0     a
1     b
     ..
48    a
49    b
Length: 50, dtype: category
Categories (2, string): [a, b]zf0     a
1     b
     ..
48    a
49    b
Length: 50, dtype: category
Categories (2, object): ['a', 'b']ru   rE   ÚabcdefghijklmnopqrstuvwxyzT)Ú
categoriesÚorderedzX0    a
1    b
dtype: category
Categories (26, string): [a < b < c < d ... w < x < y < z]zh0    a
1    b
dtype: category
Categories (26, object): ['a' < 'b' < 'c' < 'd' ... 'w' < 'x' < 'y' < 'z'])r	   r   Ú__str__r   r   Úlist)r   Úusing_infer_stringr¼   r™   Úlevsr   r   r    Útest_categorical_repr7  s*   ÿÿÿÿÿÿz)TestCategoricalRepr.test_categorical_reprc                 C   s\   t tg d¢ƒƒ}d}t|ƒ|ksJ ‚t tt d¡ƒƒ}dt t¡› d�}t|ƒ|ks,J ‚d S )Nrr   zE0    1
1    2
2    3
dtype: category
Categories (3, int64): [1, 2, 3]rw   úf0    0
1    1
2    2
3    3
4    4
5    5
6    6
7    7
8    8
9    9
dtype: category
Categories (10, z ): [0, 1, 2, 3, ..., 6, 7, 8, 9]©r	   r   r   r<   r@   r6   rH   ©r   r/   r™   r   r   r    Útest_categorical_series_reprc  s   õz0TestCategoricalRepr.test_categorical_series_reprc                 C   sd   t tg d¢dd�ƒ}d}t|ƒ|ksJ ‚t tt d¡dd�ƒ}dt t¡› d�}t|ƒ|ks0J ‚d S )Nrr   T©rÀ   zG0    1
1    2
2    3
dtype: category
Categories (3, int64): [1 < 2 < 3]rw   rÆ   z$): [0 < 1 < 2 < 3 ... 6 < 7 < 8 < 9]rÇ   rÈ   r   r   r    Ú$test_categorical_series_repr_ordered}  s   õz8TestCategoricalRepr.test_categorical_series_repr_orderedc                 C   sb   t dddd�}tt|ƒƒ}d}t|ƒ|ksJ ‚t ddddd�}tt|ƒƒ}d}t|ƒ|ks/J ‚d S )	Nú2011-01-01 09:00ÚhrE   ©r›   rˆ   a2  0   2011-01-01 09:00:00
1   2011-01-01 10:00:00
2   2011-01-01 11:00:00
3   2011-01-01 12:00:00
4   2011-01-01 13:00:00
dtype: category
Categories (5, datetime64[ns]): [2011-01-01 09:00:00, 2011-01-01 10:00:00, 2011-01-01 11:00:00,
                                 2011-01-01 12:00:00, 2011-01-01 13:00:00]ú
US/Eastern©r›   rˆ   Útza³  0   2011-01-01 09:00:00-05:00
1   2011-01-01 10:00:00-05:00
2   2011-01-01 11:00:00-05:00
3   2011-01-01 12:00:00-05:00
4   2011-01-01 13:00:00-05:00
dtype: category
Categories (5, datetime64[ns, US/Eastern]): [2011-01-01 09:00:00-05:00, 2011-01-01 10:00:00-05:00,
                                             2011-01-01 11:00:00-05:00, 2011-01-01 12:00:00-05:00,
                                             2011-01-01 13:00:00-05:00]©r
   r	   r   r   ©r   rº   r/   r™   r   r   r    Ú%test_categorical_series_repr_datetime—  s   	
z9TestCategoricalRepr.test_categorical_series_repr_datetimec                 C   sj   t dddd�}tt|dd�ƒ}d}t|ƒ|ksJ ‚t ddddd	�}tt|dd�ƒ}d
}t|ƒ|ks3J ‚d S )NrÌ   rÍ   rE   rÎ   TrÊ   a6  0   2011-01-01 09:00:00
1   2011-01-01 10:00:00
2   2011-01-01 11:00:00
3   2011-01-01 12:00:00
4   2011-01-01 13:00:00
dtype: category
Categories (5, datetime64[ns]): [2011-01-01 09:00:00 < 2011-01-01 10:00:00 < 2011-01-01 11:00:00 <
                                 2011-01-01 12:00:00 < 2011-01-01 13:00:00]rÏ   rÐ   a·  0   2011-01-01 09:00:00-05:00
1   2011-01-01 10:00:00-05:00
2   2011-01-01 11:00:00-05:00
3   2011-01-01 12:00:00-05:00
4   2011-01-01 13:00:00-05:00
dtype: category
Categories (5, datetime64[ns, US/Eastern]): [2011-01-01 09:00:00-05:00 < 2011-01-01 10:00:00-05:00 <
                                             2011-01-01 11:00:00-05:00 < 2011-01-01 12:00:00-05:00 <
                                             2011-01-01 13:00:00-05:00]rÒ   rÓ   r   r   r    Ú-test_categorical_series_repr_datetime_ordered³  s   	
zATestCategoricalRepr.test_categorical_series_repr_datetime_orderedc                 C   s`   t dddd�}tt|ƒƒ}d}t|ƒ|ksJ ‚t dddd�}tt|ƒƒ}d}t|ƒ|ks.J ‚d S )	NrÌ   rÍ   rE   rÎ   a  0    2011-01-01 09:00
1    2011-01-01 10:00
2    2011-01-01 11:00
3    2011-01-01 12:00
4    2011-01-01 13:00
dtype: category
Categories (5, period[h]): [2011-01-01 09:00, 2011-01-01 10:00, 2011-01-01 11:00, 2011-01-01 12:00,
                            2011-01-01 13:00]ú2011-01ÚMz™0    2011-01
1    2011-02
2    2011-03
3    2011-04
4    2011-05
dtype: category
Categories (5, period[M]): [2011-01, 2011-02, 2011-03, 2011-04, 2011-05]©r   r	   r   r   rÓ   r   r   r    Ú#test_categorical_series_repr_periodÏ  s   	z7TestCategoricalRepr.test_categorical_series_repr_periodc                 C   sh   t dddd�}tt|dd�ƒ}d}t|ƒ|ksJ ‚t dd	dd�}tt|dd�ƒ}d
}t|ƒ|ks2J ‚d S )NrÌ   rÍ   rE   rÎ   TrÊ   a  0    2011-01-01 09:00
1    2011-01-01 10:00
2    2011-01-01 11:00
3    2011-01-01 12:00
4    2011-01-01 13:00
dtype: category
Categories (5, period[h]): [2011-01-01 09:00 < 2011-01-01 10:00 < 2011-01-01 11:00 < 2011-01-01 12:00 <
                            2011-01-01 13:00]rÖ   r×   z�0    2011-01
1    2011-02
2    2011-03
3    2011-04
4    2011-05
dtype: category
Categories (5, period[M]): [2011-01 < 2011-02 < 2011-03 < 2011-04 < 2011-05]rØ   rÓ   r   r   r    Ú+test_categorical_series_repr_period_orderedé  s   	z?TestCategoricalRepr.test_categorical_series_repr_period_orderedc                 C   s\   t ddd�}tt|ƒƒ}d}t|ƒ|ksJ ‚t ddd�}tt|ƒƒ}d}t|ƒ|ks,J ‚d S )Nú1 daysrE   r‡   z�0   1 days
1   2 days
2   3 days
3   4 days
4   5 days
dtype: category
Categories (5, timedelta64[ns]): [1 days, 2 days, 3 days, 4 days, 5 days]ú1 hoursrw   aÍ  0   0 days 01:00:00
1   1 days 01:00:00
2   2 days 01:00:00
3   3 days 01:00:00
4   4 days 01:00:00
5   5 days 01:00:00
6   6 days 01:00:00
7   7 days 01:00:00
8   8 days 01:00:00
9   9 days 01:00:00
dtype: category
Categories (10, timedelta64[ns]): [0 days 01:00:00, 1 days 01:00:00, 2 days 01:00:00,
                                   3 days 01:00:00, ..., 6 days 01:00:00, 7 days 01:00:00,
                                   8 days 01:00:00, 9 days 01:00:00]©r   r	   r   r   rÓ   r   r   r    Ú&test_categorical_series_repr_timedelta  s   z:TestCategoricalRepr.test_categorical_series_repr_timedeltac                 C   sd   t ddd�}tt|dd�ƒ}d}t|ƒ|ksJ ‚t ddd�}tt|dd�ƒ}d	}t|ƒ|ks0J ‚d S )
NrÛ   rE   r‡   TrÊ   z”0   1 days
1   2 days
2   3 days
3   4 days
4   5 days
dtype: category
Categories (5, timedelta64[ns]): [1 days < 2 days < 3 days < 4 days < 5 days]rÜ   rw   aÑ  0   0 days 01:00:00
1   1 days 01:00:00
2   2 days 01:00:00
3   3 days 01:00:00
4   4 days 01:00:00
5   5 days 01:00:00
6   6 days 01:00:00
7   7 days 01:00:00
8   8 days 01:00:00
9   9 days 01:00:00
dtype: category
Categories (10, timedelta64[ns]): [0 days 01:00:00 < 1 days 01:00:00 < 2 days 01:00:00 <
                                   3 days 01:00:00 ... 6 days 01:00:00 < 7 days 01:00:00 <
                                   8 days 01:00:00 < 9 days 01:00:00]rÝ   rÓ   r   r   r    Ú.test_categorical_series_repr_timedelta_ordered#  s   zBTestCategoricalRepr.test_categorical_series_repr_timedelta_orderedN)r©   rª   r«   r»   rÅ   rÉ   rË   rÔ   rÕ   rÙ   rÚ   rÞ   rß   r   r   r   r    r¯   %  s    , r¯   )r   r   Únumpyr<   r   Úpandas._configr   Úpandasr   r   r   r   r	   r
   r   r   r   Úpandas._testingÚ_testingrœ   r   r¯   r   r   r   r    Ú<module>   s    (
  