a
    GGb)                     @   s   d dl m Z mZ d dlmZ d dlZd dlZd dlZd dl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 d dlm  m  mZ G dd dZdS )    )datetime	timedelta)StringION)
Categorical	DataFrame
MultiIndexNaTPeriodIndexSeries	Timestamp
date_rangeoption_contextperiod_rangec                   @   s8  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ejjdd Z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+d, Zejd-d.d/ Zd0d1 Zejd2e j!e j"gejd3e#d4ge$d5ggd6d7 Z%d8d9 Z&d:d; Z'd<d= Z(d>S )?TestDataFrameReprInfoEtcc                    s   t d dd} fddt|D }t|d}|jtk sHJ t| t|jd dd d f  t|jd dd d f  d S )	NZACDEFGHIJKLMNOP2     c                    s"   g | ]} fd dt D qS )c                    s   g | ]}t j qS  )nprandomZchoice).0x)letsr   @lib/python3.9/site-packages/pandas/tests/frame/test_repr_info.py
<listcomp>"       zPTestDataFrameReprInfoEtc.test_repr_bytes_61_lines.<locals>.<listcomp>.<listcomp>)range)r   _r   Zslenr   r   r   "   r   zETestDataFrameReprInfoEtc.test_repr_bytes_61_lines.<locals>.<listcomp>ZU1<   =   )	listr   r   ZastypeZdtypesobjectallrepriloc)selfZnseqsZwordsdfr   r   r   test_repr_bytes_61_lines   s    z1TestDataFrameReprInfoEtc.test_repr_bytes_61_linesc                 C   sD   t jddgddgd}ttjdd|d}t||}t| d S )	N)r   r   )   r(   u   ΔZi1names      index)	r   from_tuplesr   r   r   randntmZget_objr#   )r%   Zframe_or_seriesr.   objr   r   r   test_repr_unicode_level_names+   s    z6TestDataFrameReprInfoEtc.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,               	   abcr>   r?   )fazboor   rA   rB   )r   	set_indexr    r.   r#   )r%   r&   r.   r   r   r   test_assign_index_sequences2   s    
z4TestDataFrameReprInfoEtc.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+   Z20130101r>   r?   r-   z/              X
NaT        a  1
2013-01-01 b  2)r   r   r   r#   )r%   float_string_framer&   resultexpectedr   r   r   test_repr_with_mi_natA   s    $z.TestDataFrameReprInfoEtc.test_repr_with_mi_natc                 C   s4   t g ddd tjtg}t|}d}||ks0J d S )N)r(   r+   r5   r,   Tz'      0
True  1
None  2
NaN   3
NaT   4)r   r   nanr   r#   )r%   r&   rG   rH   r   r   r   test_repr_with_different_nullsG   s    z7TestDataFrameReprInfoEtc.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 )Nr(   r+   r5   r,   r8   r:   Tr;   r<   )datazG   NaN  None  NaT  True
0    1     3    6     8
1    2     4    7     9)r   rJ   r   r   r#   )r%   dr&   rG   rH   r   r   r   #test_repr_with_different_nulls_colsR   s
    &
z<TestDataFrameReprInfoEtc.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nuitrP   rO   )AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDZEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEZFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFrQ   rR   )r   r   rJ   rC   r#   )r%   Zdf3Zidfr   r   r   test_multiindex_na_repr\   s    z0TestDataFrameReprInfoEtc.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)r>   r   foo)r?   r(   barr=   r)   valuer   r(   r-   
r+   za 0 foo)r   r/   r   r#   split
startswith)r%   r.   r&   linesr   r   r   test_repr_name_coincidel   s    z0TestDataFrameReprInfoEtc.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)r#   Tr   	to_string)r%   Z/multiindex_year_month_day_dataframe_random_dataZ multiindex_dataframe_random_dataZymdframer]   r   r   r   test_repr_to_stringv   s    

z,TestDataFrameReprInfoEtc.test_repr_to_stringc                 C   s&   t t  ttdd}t | d S )Nr   r-   )r#   r   r   arange)r%   r`   r   r   r   test_repr_empty   s    
z(TestDataFrameReprInfoEtc.test_repr_emptyc                 C   s    t  }t| |jd|d d S )NFverboser]   )r   r#   info)r%   rF   r]   r   r   r   test_repr_mixed   s    z(TestDataFrameReprInfoEtc.test_repr_mixedc                 C   sX   t tjdtddtdd}tj|jd ddf< tj|jd ddf< t	| d S )N   )rO   Br-      rO   ri   )
r   r   r   r0   r1   ZmakeStringIndexr   rJ   Zlocr#   r%   Zbiggier   r   r   test_repr_mixed_big   s    z,TestDataFrameReprInfoEtc.test_repr_mixed_bigc                 C   s   t  }t| |jd|d |jdgdjd|d |jddgdjd|d tg dd}t| t j|d tdgd	gd
gd}dt|vsJ dt|vsJ dt|vsJ d S )NFrd   rO   columnsri   )r   r(   r5   r\   za
	bza
	dza
	frn   r.   	za
)r   r#   rf   Zreindexr   )r%   float_framer]   Zno_indexr&   r   r   r   	test_repr   s    z"TestDataFrameReprInfoEtc.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 )
Nr(   r+   r5   r,   zdisplay.show_dimensionsTz2 rows x 2 columnsFtruncater   r   r#   r%   r&   r   r   r   test_repr_dimensions   s    ..z-TestDataFrameReprInfoEtc.test_repr_dimensionsc                 C   s(   t tdtdtdd}t| d S )N)rh   r,   r,   rh   ro   )r   r   Zzerosr   r#   rk   r   r   r   test_repr_big   s    z&TestDataFrameReprInfoEtc.test_repr_bigc              
   C   s   t j}t jdtdd tddgd t dgd ddgd t td dgd it	dd}t
| td	d
dd t
| tdddd t
| tdddd t
| t  |t _d S )Nignorez.*format)categorymodulerT   r(   r   rU   r-   zdisplay.precisionr5   zdisplay.column_space
   zdisplay.max_rowsdisplay.max_columnsr+   r   )warningsfiltersfilterwarningsFutureWarningr   r   Ztodayr   r   rb   r#   fmtZ
set_optionr1   Zreset_display_options)r%   rr   Zwarn_filtersZ
unsortabler   r   r   test_repr_unsortable   s&    

	z-TestDataFrameReprInfoEtc.test_repr_unsortablec                 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   σσσσrO   z      ArW   r   )r   r#   rX   rstrip)r%   Zuvalr&   rG   Zex_topr   r   r   test_repr_unicode   s    z*TestDataFrameReprInfoEtc.test_repr_unicodec                 C   s   t ddgi}t| d S )NrO      א)r   strrv   r   r   r    test_unicode_string_with_unicode   s    z9TestDataFrameReprInfoEtc.test_unicode_string_with_unicodec                 C   s*   t g dg dg dd}t|j d S )Nr4   r6   r9   )r   u   בr@   )r   r#   rn   rv   r   r   r   test_repr_unicode_columns   s    z2TestDataFrameReprInfoEtc.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 )NrO   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    z1TestDataFrameReprInfoEtc.test_str_to_bytes_raisesc                 C   s*   t tjddtddd}t| d S )Nr|   rj   rm   )r   r   r   r0   r1   Zrands_arrayr#   rv   r   r   r   test_very_wide_info_repr  s    z1TestDataFrameReprInfoEtc.test_very_wide_info_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}   rj   r   ru   rv   r   r   r   ,test_repr_column_name_unicode_truncation_bug  s    zETestDataFrameReprInfoEtc.test_repr_column_name_unicode_truncation_bugzignore::FutureWarningc                 C   sj   d}t dddd4 tg dg dg}|| ks8J W d    n1 sL0    Y  | d u sfJ d S )Nz\begin{tabular}{llll}
\toprule
{} &         0 &  1 &  2 \\
\midrule
0 &  $\alpha$ &  b &  c \\
1 &         1 &  2 &  3 \\
\bottomrule
\end{tabular}
zdisplay.latex.escapeFzdisplay.latex.reprT)z$\alpha$r?   r@   r4   )r   r   Z_repr_latex_)r%   rG   r&   r   r   r   test_latex_repr   s
    	.z(TestDataFrameReprInfoEtc.test_latex_reprc                 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Hr7   z
US/Eastern)freqperiods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   r#   r   )r%   r   r   r&   ZexpZdf2r   r   r   #test_repr_categorical_dates_periods2  s    z<TestDataFrameReprInfoEtc.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   )Zdtype)r#   r!   )r%   r   ZboxrH   rG   r   r   r   test_repr_np_nat_with_objectC  s    z5TestDataFrameReprInfoEtc.test_repr_np_nat_with_objectc                 C   s"   t dtddddi}t| d S )NZyearz1/1/1700r   zA-DEC)r   r   )r   r   r#   rv   r   r   r   "test_frame_datetime64_pre1900_reprM  s    z;TestDataFrameReprInfoEtc.test_frame_datetime64_pre1900_reprc                 C   s2   t g ddd}ttjdd|d}|  d S )N)z2011-1z2011-2z2011-3r   )r   r5   r,   r-   )r	   r   r   r   r0   r_   )r%   r.   r`   r   r   r   %test_frame_to_string_with_periodindexR  s    z>TestDataFrameReprInfoEtc.test_frame_to_string_with_periodindexc                 C   sL   t dtddddi}t|}|jd d d df }t|}||ksHJ d S )Nr   Z2019r|   ZUTC)r   r   r7   )r   r   r#   r$   )r%   r&   rH   rG   r   r   r   $test_datetime64tz_slice_non_truncateY  s
    z=TestDataFrameReprInfoEtc.test_datetime64tz_slice_non_truncateN))__name__
__module____qualname__r'   r3   rD   rI   rK   rN   rS   r[   ra   rc   rg   r   ZmarkZslowrl   rs   rw   rx   r   r   r   r   r   r   r   r   r   r   Zparametrizer   Z
datetime64Ztimedelta64r
   r   r   r   r   r   r   r   r   r   r      sH   






r   )r   r   ior   r~   Znumpyr   r   Zpandasr   r   r   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingr1   Zpandas.io.formats.formatZformatsformatr   r   r   r   r   r   <module>   s   0