U
    f/e(                     @   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                   @   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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d)d* Zd+d, Zejd-ejejgejd.e d/ge!d0ggd1d2 Z"d3d4 Z#d5d6 Z$d7d8 Z%d9S ):TestDataFrameReprInfoEtcc                    s   t d dd} fddt|D }t|d}|sL|jtk sLt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randomchoice).0x)letsr   E/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/frame/test_repr_info.py
<listcomp>"   s     zPTestDataFrameReprInfoEtc.test_repr_bytes_61_lines.<locals>.<listcomp>.<listcomp>)range)r   _r   slenr   r   r   "   s     zETestDataFrameReprInfoEtc.test_repr_bytes_61_lines.<locals>.<listcomp>ZU1<   =   )
listr   r   ZastypeZdtypesobjectallAssertionErrorrepriloc)selfZusing_array_managerZnseqswordsdfr   r   r   test_repr_bytes_61_lines   s    z1TestDataFrameReprInfoEtc.test_repr_bytes_61_linesc                 C   sH   t jddgddgd}ttjdd|d}|tkr<|d	 }t| d S )
N)r   r   )   r+   u   Δi1names      indexr   )r   from_tuplesr   r   r   randnr
   r%   )r'   Zframe_or_seriesr2   objr   r   r   test_repr_unicode_level_names-   s
    z6TestDataFrameReprInfoEtc.test_repr_unicode_level_namesc                 C   sj   t dddgdddgddd	gd
ddg}t|j}d|d< ||_t| ddg|d< ||_t| d S )Nr+   r/      r0               	   )abcr=   r>   )fazboor   r@   rA   )r   	set_indexr!   r2   r%   )r'   r)   r2   r   r   r   test_assign_index_sequences5   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<td S )	NXr+   r/   Z20130101r=   r>   r1   z/              X
NaT        a  1
2013-01-01 b  2)r   r   r   r%   r$   )r'   float_string_framer)   resultexpectedr   r   r   test_repr_with_mi_natD   s    $z.TestDataFrameReprInfoEtc.test_repr_with_mi_natc                 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nuitrJ   rI   )AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCZDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDZEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEZFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFrK   rL   )r   r   nanrB   r%   )r'   Zdf3Zidfr   r   r   test_multiindex_na_reprJ   s    z0TestDataFrameReprInfoEtc.test_multiindex_na_reprc                 C   sP   t jddgdddgd}tddd	gi|d
}t|d}|d dsLtd S )N)r=   r   foo)r>   r+   barr=   r>   r?   r-   valuer   r+   r1   
r/   za 0 foo)r   r3   r   r%   split
startswithr$   )r'   r2   r)   linesr   r   r   test_repr_name_coincideZ   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framerX   r   r   r   test_repr_to_stringd   s    

z,TestDataFrameReprInfoEtc.test_repr_to_stringc                 C   s&   t t  ttdd}t | d S )Nr   r1   )r%   r   r   arange)r'   r[   r   r   r   test_repr_emptyw   s    
z(TestDataFrameReprInfoEtc.test_repr_emptyc                 C   s    t  }t| |jd|d d S )NFverboserX   )r   r%   info)r'   rE   rX   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   )rI   Br1      rI   rd   )
r   r   r   r4   tmZmakeStringIndexr   rM   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dddgd}t| t j|d	 td
gdgdgd}dt|kstdt|kstdt|kstd S )NFr_   rI   columnsrd   r   r+   r7   rW   za
	bza
	dza
	frk   r2   	za
)r   r%   ra   Zreindexr   r$   )r'   float_framerX   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|ks0tW 5 Q R X tdd dt|ksVtW 5 Q R X tdd	 dt|ks|tW 5 Q R X d S )
Nr+   r/   r7   r0   zdisplay.show_dimensionsTz2 rows x 2 columnsFtruncater   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)rc   r0   r0   rc   rl   )r   r   zerosr   r%   rh   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modulerO   r+   r   rP   r1   zdisplay.precisionr7   zdisplay.column_space
   zdisplay.max_rowsdisplay.max_columnsr/   r   )warningsfiltersfilterwarningsFutureWarningr   r   todayr   r   r]   r%   fmtZ
set_optionrf   Zreset_display_options)r'   ro   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:tt d||gi}t|}|dd  |ksltd S )Nu   σσσσrI   z      ArR   r   )r   r%   rS   rstripr$   )r'   Zuvalr)   rF   Zex_topr   r   r   test_repr_unicode   s    z*TestDataFrameReprInfoEtc.test_repr_unicodec                 C   s   t ddgi}t| d S )NrI      א)r   strrt   r   r   r    test_unicode_string_with_unicode   s    z9TestDataFrameReprInfoEtc.test_unicode_string_with_unicodec                 C   s0   t dddgdddgddd	gd
}t|j d S )Nr+   r/   r7   r0   r8   r9   r:   r;   r<   )r   u   בr?   )r   r%   rk   rt   r   r   r   test_repr_unicode_columns   s    "z2TestDataFrameReprInfoEtc.test_repr_unicode_columnsc              	   C   s8   t ddgi}d}tjt|d t| W 5 Q R X d S )NrI   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{   re   rj   )r   r   r   r4   rf   Zrands_arrayr%   rt   r   r   r   test_very_wide_info_repr   s    z1TestDataFrameReprInfoEtc.test_very_wide_info_reprc              	   C   s:   t dgdd}tdd dt|ks,tW 5 Q R X 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|   re   r   rs   rt   r   r   r   ,test_repr_column_name_unicode_truncation_bug   s    zETestDataFrameReprInfoEtc.test_repr_column_name_unicode_truncation_bugc              	   C   sZ   d}t dddd. tdddgd	d
dgg}|| ks<tW 5 Q R X | d ksVt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.reprTz$\alpha$r>   r?   r+   r/   r7   )r   r   Z_repr_latex_r$   )r'   rF   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@ttt|t|d	}t||ksftd S )Nz2011-01-01 09:00Hr8   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   r)   expZdf2r   r   r   #test_repr_categorical_dates_periods  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"td S )Nr   )Zdtype)r%   r"   r$   )r'   r   ZboxrG   rF   r   r   r   test_repr_np_nat_with_object0  s    z5TestDataFrameReprInfoEtc.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A-DEC)r   r   )r   r   r%   rt   r   r   r   "test_frame_datetime64_pre1900_repr:  s    z;TestDataFrameReprInfoEtc.test_frame_datetime64_pre1900_reprc                 C   s4   t dddgdd}ttjdd|d}|  d S )	Nz2011-1z2011-2z2011-3r   )r   r7   r0   r1   )r	   r   r   r   r4   rZ   )r'   r2   r[   r   r   r   %test_frame_to_string_with_periodindex?  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sHtd S )Nr   Z2019r{   UTC)r   r   r8   )r   r   r%   r&   r$   )r'   r)   rG   rF   r   r   r   $test_datetime64tz_slice_non_truncateF  s
    z=TestDataFrameReprInfoEtc.test_datetime64tz_slice_non_truncateN)&__name__
__module____qualname__r*   r6   rC   rH   rN   rV   r\   r^   rb   r   markZslowri   rq   ru   rw   r   r   r   r   r   r   r   r   r   Zparametrizer   Z
datetime64Ztimedelta64r
   r   r   r   r   r   r   r   r   r   r      sB   


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