a
    Pf.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 s8J ||d  }t| tu sXJ d S )N)         r   )u   σu   τu   υu   φu   ψcolumnsindexr   )r	   type__repr__str)selfdataZindex1colsdfZser r!   U/var/www/ai-form-bot/venv/lib/python3.9/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 )NZACDEFGHIJKLMNOP   )  2   ZU1<   =   )listnprandomdefault_rngchoicer	   astypeZdtypesobjectallrepriloc)r   Z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   )   r5   u   Δi1namesr$   )r$      r   )
r   from_tuplesr	   r*   r+   r,   standard_normaltmget_objr1   )r   Z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r5   r$   r   r9   r         r   	   abcrH   rI   )fazboor   rK   rL   )r	   	set_indexr)   r   r1   )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Xr5   r$   Z20130101rH   rI   r:   z/              X
NaT        a  1
2013-01-01 b  2)r	   r   r   r1   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s0J d S )Nr5   r$   r   r9   Tz'      0
True  1
None  2
NaN   3
NaT   4)r	   r*   nanr   r1   rP   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sHJ d S )Nr5   r$   r   r9   rC   rE   Tr   rF   )r   zG   NaN  None  NaT  True
0    1     3    6     8
1    2     4    7     9)r*   rU   r   r	   r1   )r   dr    rQ   rR   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A0006000ZnuitrZ   rY   )AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDZEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEZFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFr[   r\   )r	   r*   rU   rM   r1   )r   Zdf3Z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sJJ d S )N)rH   r   foo)rI   r5   barrG   r7   valuer   r5   r:   
r$   za 0 foo)r   r;   r	   r1   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)r1   Tr   	to_string)r   Z/multiindex_year_month_day_dataframe_random_dataZ multiindex_dataframe_random_dataZymdframerf   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:   )r1   r	   r*   arange)r   ri   r!   r!   r"   test_repr_empty   s    
z!TestDataFrameRepr.test_repr_emptyc                 C   s   t | d S )N)r1   )r   Z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>       z9TestDataFrameRepr.test_repr_mixed_big.<locals>.<listcomp>)rY   Br:      rY   rs   )	r	   r*   r+   r,   r<   rangerU   locr1   r   Z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sJJ d	t|vsZJ d S )
N)r   r5   r   r   za
	bza
	dza
	fr   	za
)r	   r1   )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 s0J W d    n1 sD0    Y  tdd  dt|vsjJ W d    n1 s~0    Y  tdd	  dt|vsJ W d    n1 s0    Y  d S )
Nr5   r$   r   r9   zdisplay.show_dimensionsTz2 rows x 2 columnsFtruncater	   r   r1   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)rn   r9   r9   rn   r   )r	   r*   Zzerosru   r1   rw   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 )Nr^   r5   r&   r_   r:   )r	   r   todayr   r*   rk   r1   )r   Z
unsortabler!   r!   r"   test_repr_unsortable   s    

	z&TestDataFrameRepr.test_repr_unsortablec                 C   s   t | tdd t | W d    n1 s00    Y  tdddd t | W d    n1 sf0    Y  tdddd t | W d    n1 s0    Y  d S )Nzdisplay.precisionr   zdisplay.max_rows
   display.max_columnsr$   r%   )r1   r   )r   Z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slJ d S )Nu   σσσσrY   z      Ara   r   )r	   r1   rb   rstrip)r   Zuvalr    rQ   Zex_topr!   r!   r"   test_repr_unicode   s    z#TestDataFrameRepr.test_repr_unicodec                 C   s   t ddgi}t| d S )NrY      א)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 )NrA   rB   rD   )r   u   בrJ   )r	   r1   r   r   r!   r!   r"   test_repr_unicode_columns   s    z+TestDataFrameRepr.test_repr_unicode_columnsc                 C   sL   t ddgi}d}tjt|d t| W d    n1 s>0    Y  d S )NrY   abcz2^'str' object cannot be interpreted as an integer$match)r	   pytestZ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   rt   Z
aaaaaaaaaart   Zdtyperz   )r	   r*   r+   r,   r<   arrayr/   r1   r   r!   r!   r"   test_very_wide_repr  s
    z%TestDataFrameRepr.test_very_wide_reprc                 C   sN   t dgdd}tdd  dt|v s,J W d    n1 s@0    Y  d S )Nizl 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..)ZId	StringColr   rt   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8 tg dg dg}| }||ksFJ W d    n1 sZ0    Y  | d u stJ d S )NZ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$rI   rJ   rA   )r   importorskipr   r	   Z_repr_latex_)r   rR   r    rQ   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s4J d S )NrY   rA   2000r   )periodsr:   z7            A
2000-01-01  1
2000-01-02  2
2000-01-03  3r	   r   r1   rP   r!   r!   r"   test_repr_with_datetimeindex6  s    z.TestDataFrameRepr.test_repr_with_datetimeindexc                 C   s:   t dg ditg dd}t|}d}||ks6J d S )NrY   rT   )r   r5   r$   r   r9   r:   z1        A
(0, 1]  1
(1, 2]  2
(2, 3]  3
(3, 4]  4)r	   r
   Zfrom_breaksr1   rP   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s4J d S )NrY   rA   rG   r:   z   A
a  1
b  2
c  3)r	   r   r1   rP   r!   r!   r"    test_repr_with_categorical_indexE  s    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sfJ 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	   r1   r   )r   r   r   r    expZ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   )r1   r/   )r   r   boxrR   rQ   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   r9   r:   )r   r	   r*   r+   r,   r<   rh   )r   r   ri   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 )NrH   r5   r$   Int64r   r:   z      a
<NA>  1
1     2)r	   r   Zfrom_arraysr   r   rh   rP   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sHJ d S )NxZ2019r   UTC)r   r   r   )r	   r   r1   r2   r   r    rR   rQ   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sNJ d S )NrH   rI   rJ   rW   efleftrightrz   recordz_  left right     record
0    a     b  [0, a, b]
1    c     d  [1, c, d]
2    e     f  [2, e, f])r	   
to_recordsr1   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sPJ d S )NrH   rJ   rW   r   r   r   r   rz   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*   rU   r   r1   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sVJ d S )	NrH   rI   r   r   r   rz   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   s   d}d}t jt|d 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 s0    Y  W d    n1 s0    Y  ||ksJ d S )Nk   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_naTrI   r   r   rz   r   
r=   Zassert_produces_warningFutureWarningr   r	   r*   infrU   r   r1   r   rR   r   r    rQ   r!   r!   r"   %test_to_records_with_inf_as_na_record  s    
Dz7TestDataFrameRepr.test_to_records_with_inf_as_na_recordc              	   C   s   d}d}t jt|d 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 s0    Y  W d    n1 s0    Y  ||ksJ d S )Nr   r   r   r   FrI   r   r   rz   r   r   r   r!   r!   r"   test_to_records_with_inf_record  s    
D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sJJ d S )Ng_c97ݚ?g6sӭ?ZFloat64r   r5   r$   r   )rH   rI   z{:.2f})
formattersz)      a     b
0  0.12  1.00
1  1.12  2.00)r	   r   rh   formatrP   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sBJ d S )NZpyarrowrA   rB   )Zlong_column_nameZcol2zg   long_column_name  col2
0                 1     4
1                 2     5
2                 3     6)r   r   r	   r   r.   r1   )r   Zany_string_dtyper    rR   r!   r!   r"   test_repr_ea_columns  s
    
z&TestDataFrameRepr.test_repr_ea_columnsN)7__name__
__module____qualname__r#   r4   r@   rN   rS   rV   rX   r]   re   rj   rl   rm   r   markZslowrx   Zxfailr   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   parametrizer*   Z
datetime64Ztimedelta64r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r!   r!   r!   r"   r      sb   





	r   zdata,outputr$   rU   r5   )	 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| }|rV|jdd}dd t|D }ddt|d  dd| }n dd t|D }d|d	 }t||ksJ dt| d
| d S )Nval)namec                 S   s   g | ]\}}| d | qS ) r!   ro   rp   r   r!   r!   r"   rq     rr   z/test_repr_with_complex_nans.<locals>.<listcomp>z >r   ra   c                 S   s   g | ]\}}| d | qS )z   r!   r   r!   r!   r"   rq     rr   z
dtype: complex128z

)r   r*   r   Zto_frame	enumeratelenjoinr   )r   outputr   r?   ZreprsrR   r!   r!   r"   test_repr_with_complex_nans  s    &r   ) r   r   ior   numpyr*   r   Zpandas._configr   Zpandasr   r   r   r	   r
   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr=   r   r   r   complexrU   r   r!   r!   r!   r"   <module>   s<   <   M