B
    `                @   s  d Z ddlmZ ddlmZ ddlZddlmZ ddlZddlm	Z	 ddl
Z
ddlmZ ddlZddlZddlZddlZddlZddlZddlmZ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 m!Z!m"Z"m#Z#m$Z$ ddl%m&Z' ddl(m  m)  m*Z+ ddl,m  m)  m-Z- e p e Z.ej/d
ddgddd Z0ej/dd Z1ej/dd Z2dd Z3dd Z4dd Z5dd Z6dd Z7dd Z8d d! Z9d"d# Z:ej;<d$G d%d& d&Z=d'd( Z>G d)d* d*Z?G d+d, d,Z@d-d. ZAG d/d0 d0ZBG d1d2 d2ZCG d3d4 d4ZDG d5d6 d6ZEG d7d8 d8ZFG d9d: d:ZGG d;d< d<ZHG d=d> d>ZId?d@ ZJdAdB ZKdCdD ZLej;MdEdFdGdHgej;MdIdJdKdLdMgdNdO ZNej;MdEdFdGdHgdPdQ ZOdS )RzJ
Test output formatting for Series/DataFrame, including to_string & reprs
    )datetime)StringION)methodcaller)Path)get_terminal_size)is_platform_32bitis_platform_windows)	DataFrameIndex
MultiIndexNaTSeries	Timestamp
date_range
get_optionoption_contextread_csvreset_option
set_optionstringpathlikebuffer)paramsc             C   s   | j S )zE
    A fixture yielding test ids for filepath_or_buffer testing.
    )param)request r   R/home/dcms/DCMS/lib/python3.7/site-packages/pandas/tests/io/formats/test_format.pyfilepath_or_buffer_id.   s    r   c             c   sT   | dkr t  }|V  |jrPtn0t|ts.t| dkrB|d V  nt|d V  dS )z
    A fixture yielding a string representing a filepath, a path-like object
    and a StringIO buffer. Also checks that buffer is not closed.
    r   r   fooN)r   closedAssertionError
isinstancer   str)r   Ztmp_pathbufr   r   r   filepath_or_buffer6   s    r$   c                s    fdd}|S )z;
    Assertion helper for checking filepath_or_buffer.
    c          	      s`   dkr*t  d}| }W d Q R X n&dkr@j d}ndkrP }|| ks\td S )Nr   )encodingr   r   )openread	read_textgetvaluer    )expectedfresult)r%   r$   r   r   r   !_assert_filepath_or_buffer_equalsP   s    zKassert_filepath_or_buffer_equals.<locals>._assert_filepath_or_buffer_equalsr   )r$   r   r%   r-   r   )r%   r$   r   r    assert_filepath_or_buffer_equalsH   s    
r.   c              C   s   t jt jt\} }| S )N)ospathsplitabspath__file__)pth_r   r   r   curpath]   s    r6   c             C   s8   t | }|dd d}|dd d}|p6|S )N
r   z<classz	&lt;class)reprr1   
startswith)dfrZc1c2r   r   r   has_info_reprb   s    r=   c             C   s*   t | }t| }t|ddk}|o(|S )Nr7      )r=   r8   lenr1   )r:   Zhas_infor;   nvr   r   r   has_non_verbose_info_repri   s    rA   c             C   s   y4t t|  d  }t |dkd d }W n tk
rH   dS X t| }x,t| D ]\}}| | dks`dS q`W dS )Nr   z...FT)nparrayr8   
splitlinesr1   where
IndexError	enumerate)r:   Zfst_lineZcand_colr;   ixlr   r   r   has_horizontally_truncated_reprw   s    rJ   c             C   s2   t | }d}x | D ]}td|rd}qW |S )NFz	^[\.\ ]+$T)r8   rD   rematch)r:   r;   Zonly_dot_rowrowr   r   r   has_vertically_truncated_repr   s    rN   c             C   s   t | pt| S )N)rJ   rN   )r:   r   r   r   has_truncated_repr   s    rO   c             C   s   t | ot| S )N)rJ   rN   )r:   r   r   r   has_doubly_truncated_repr   s    rP   c             C   s.   t | }x |dD ]}|drdS qW dS )Nr7   \TF)r8   r1   endswith)r:   r;   liner   r   r   has_expanded_repr   s
    
rT   zignore::FutureWarning:.*formatc            	   @   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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/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$dEdF Z%dGdH Z&dIdJ Z'dKdL Z(dMdN Z)dOdP Z*dQdR Z+dSdT Z,dUdV Z-e.j/0dWdXdYdZd[d\d]gd^d_ Z1d`da Z2dbdc Z3ddde Z4dfdg Z5dhdi Z6djdk Z7dldm Z8dndo Z9dpdq Z:drds Z;dtdu Z<dvdw Z=dxdy Z>dzd{ Z?d|d} Z@d~d ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd ZbddÄ ZcdS )TestDataFrameFormattingc             C   sf   t jddtfgd}x(tt|D ]}t j||d |< q"W t|}t|d  t| |	  d S )N
   err)dtype)
rB   emptyobjectranger?   randomrandnr	   r8   	to_string)selfZarrir:   r   r   r   test_repr_embedded_ndarray   s    z2TestDataFrameFormatting.test_repr_embedded_ndarrayc             C   sR   |}d|j d< t  t| tjdd t| tjdd t| t  d S )Nr      T)Zuse_eng_prefix)Zaccuracy)locfmtZset_eng_float_formatr8   tmreset_display_options)r_   float_framer:   r   r   r   test_eng_float_formatter   s    
z0TestDataFrameFormatting.test_eng_float_formatterc          	      s   t dtdtdd tj jd<  fdd}tddd	d$ |d d
 |d
d
 |dd W d Q R X tddd	d$ |d d |d
d |dd W d Q R X d S )N   rV   )columnsindex)ri   ri   c                s,   t  } j|| d d| k|ks(td S )N)r#   null_countsznon-null)r   infor)   r    )rl   r,   r#   )r:   r   r   check   s    z<TestDataFrameFormatting.test_show_null_counts.<locals>.checkzdisplay.max_info_rows   zdisplay.max_info_columnsTFrb   )r	   r[   rB   nanilocr   )r_   rn   r   )r:   r   test_show_null_counts   s    



z-TestDataFrameFormatting.test_show_null_countsc             C   s>   t  }tdtttdtdi}t| |jd|d d S )NZtupsrV   )	col_spacer#   )r   r	   listzipr[   r8   r^   )r_   r#   r:   r   r   r   test_repr_tuples   s    z(TestDataFrameFormatting.test_repr_tuplesc          	      s
  d t d  ttjd fddtdD d}t|}||dd d  }t	 }xLt
|d|d	 D ]4\}}||d  krd
|kstqtd
|ksttqtW W d Q R X t dd d
t|kstW d Q R X t d d  d
t|kstW d Q R X d S )Nro   zdisplay.max_colwidthrV   c          	      s(   g | ] }t tj d   d  qS )ri   )re   ZrandsrB   r\   randint).0r`   )max_lenr   r   
<listcomp>   s   z@TestDataFrameFormatting.test_repr_truncation.<locals>.<listcomp>)ABr7   ri   r|   z...i?B    )r   r	   rB   r\   r]   r[   r8   findrd   Z_get_adjustmentru   r1   r?   r    )r_   r:   r;   ZadjrS   valuer   )ry   r   test_repr_truncation   s"    

z,TestDataFrameFormatting.test_repr_truncationc          	   C   s6   t d}tt tdd W d Q R X td| d S )Nzdisplay.max_colwidth)r   re   assert_produces_warningFutureWarningr   )r_   widthr   r   r   "test_repr_deprecation_negative_int   s    z:TestDataFrameFormatting.test_repr_deprecation_negative_intc          	   C   s   t ddgddgg}td t|dks.ttdd t|dksJtW d Q R X tdd t|d	ksptW d Q R X tdd  t|dkstW d Q R X d S )
Ng?g      ?gzdisplay.chop_thresholdz#     0    1
0  0.1  0.5
1  0.5 -0.1g?z#     0    1
0  0.0  0.5
1  0.5  0.0g333333?z#     0    1
0  0.0  0.0
1  0.0  0.0)r	   pdr   r8   r    r   )r_   r:   r   r   r   test_repr_chop_threshold   s    
z0TestDataFrameFormatting.test_repr_chop_thresholdc          	   C   s   t ddddgddddggj}td	d
 t|dks<tW d Q R X td	d t|dksbtW d Q R X td	d t|dkstW d Q R X d S )NrV   ro      (   g|>gdyg&.!>gdyzdisplay.chop_thresholdr   zm      0             1
0  10.0  8.000000e-10
1  20.0 -1.000000e-11
2  30.0  2.000000e-09
3  40.0 -2.000000e-11g:0yE>zm      0             1
0  10.0  0.000000e+00
1  20.0  0.000000e+00
2  30.0  0.000000e+00
3  40.0  0.000000e+00g|=zm      0             1
0  10.0  8.000000e-10
1  20.0  0.000000e+00
2  30.0  2.000000e-09
3  40.0  0.000000e+00)r   r	   Tr   r8   r    )r_   r:   r   r   r   %test_repr_chop_threshold_column_below	  s     z=TestDataFrameFormatting.test_repr_chop_threshold_column_belowc          	   C   sl   t dd$ ttttddks*tW d Q R X t dd$ ttttddk s^tW d Q R X d S )Nzdisplay.max_seq_itemsi  i  rb   d   )r   r?   printingpprint_thingrt   r[   r    )r_   r   r   r   test_repr_obeys_max_seq_limit)  s    (z5TestDataFrameFormatting.test_repr_obeys_max_seq_limitc             C   s   t dhdkstd S )Nri   z{1})r   r   r    )r_   r   r   r   test_repr_set0  s    z%TestDataFrameFormatting.test_repr_setc             C   s4   t ddg}tdt| }tt|t| d S )Nabzpd.)r
   evalr8   re   assert_series_equalr   )r_   idxresr   r   r   $test_repr_is_valid_construction_code3  s    z<TestDataFrameFormatting.test_repr_is_valid_construction_codec             C   sD   ddddg}ddddg}dg}t |||d	}t| tks@td S )
N   rb      u   σu   τu   υu   φu   ψ)rj   rk   )r	   type__repr__r"   r    )r_   dataZindex1colsr:   r   r   r   test_repr_should_return_str:  s
    z3TestDataFrameFormatting.test_repr_should_return_strc          	   C   s<   t dd( ttjdd}dt|ks.tW d Q R X d S )Nzmode.sim_interactiveTrV      rQ   )r   r	   rB   r\   r]   r8   r    )r_   r:   r   r   r   test_repr_no_backslashF  s    z.TestDataFrameFormatting.test_repr_no_backslashc             C   s8  t ddgdgd}t ddgtdd}t dtdtdd}tdd td	dd
ddddd tddN t|rxtt|rtt|rtt|stt|stt|stW d Q R X tddR t|rtt|rtt|rtt|rtt|stt|rtW d Q R X W d Q R X W d Q R X d S )Nhellor   )rk   rj   rV   r   rb   zmode.sim_interactiveTzdisplay.max_columnszdisplay.widthro   zdisplay.max_rowszdisplay.show_dimensionszdisplay.expand_frame_reprF)r	   r[   r   rO   r    rT   rN   rJ   )r_   Zdf_smallZdf_wideZdf_tallr   r   r   test_expand_frame_reprK  s6    z.TestDataFrameFormatting.test_expand_frame_reprc          	   C   sP   t dtdtdd}tddddd	d
 t|r6tt|rBtW d Q R X d S )Nr   i  rb   )rk   rj   zmode.sim_interactiveFzdisplay.widthr   zdisplay.max_rowsi  )r	   r[   r   rO   r    rT   )r_   r:   r   r   r   test_repr_non_interactivek  s
    z1TestDataFrameFormatting.test_repr_non_interactivec       	         s   d | d fdd td}tjddg}tjd||d	}t|}|d
d d \}}d|ksjtd|ksvtd|kstd|ksttddgddgd}t|}|j	d |d
d kstd S )N)v   `   z*pandas.io.formats.format.get_terminal_sizec                  s    S )Nr   r   )terminal_sizer   r   <lambda>{      zKTestDataFrameFormatting.test_repr_truncates_terminal_size.<locals>.<lambda>rb   )z%This is a long title with > 37 chars.cat)z,This is a loooooonger title with > 43 chars.dogri   )rk   rj   r7   r}   longZloooooongerr   r   )Z)AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ)BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBr   )
setattrr[   r   r   from_tuplesr	   r8   r1   r    rj   )	r_   monkeypatchrk   rj   r:   r,   h1h2df2r   )r   r   !test_repr_truncates_terminal_sizev  s"    z9TestDataFrameFormatting.test_repr_truncates_terminal_sizec                s@   d t tjdd}|d fdd dt|ks<td S )N)P      ri      z*pandas.io.formats.format.get_terminal_sizec                  s    S )Nr   r   )r   r   r   r     r   zPTestDataFrameFormatting.test_repr_truncates_terminal_size_full.<locals>.<lambda>z...)r   r	   rB   r\   Zrandr   r"   r    )r_   r   r:   r   )r   r   &test_repr_truncates_terminal_size_full  s
    z>TestDataFrameFormatting.test_repr_truncates_terminal_size_fullc             C   sP   t ddgddgddgddgdgd d}dt|ks<tdt|ksLtd S )	Ni inx  i90  Z2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar}   )r   r   cdez...z    ...    )r   r	   r"   r    )r_   r:   r   r   r    test_repr_truncation_column_size  s    z8TestDataFrameFormatting.test_repr_truncation_column_sizec             C   s  t  \}}|dk s|dk r0td| d|  dd }|d}|d}tddF td	|d
  tdddd> t|drtt|drtt|rtt|stW d Q R X tdddd t|rtt|rtW d Q R X tdddd" t|rtt|stW d Q R X W d Q R X tddd|d d	d P ||d d
 }t|r`t||d d
 }t	
|  t|stW d Q R X W d Q R X d S )NrV   zterminal size too small, z x c             S   s   dd t | D }td||S )Nc             S   s   g | ]}|d qS )Z05dr   )rx   r`   r   r   r   rz     s    z[TestDataFrameFormatting.test_repr_max_columns_max_rows.<locals>.mkframe.<locals>.<listcomp>r   )r[   r	   )nrk   r   r   r   mkframe  s    zGTestDataFrameFormatting.test_repr_max_columns_max_rows.<locals>.mkframer>   zmode.sim_interactiveTzdisplay.widthr}   zdisplay.max_rowsrb   zdisplay.max_columnsr   ro   	   r   r   )r   pytestskipr   rT   r    rP   rO   rN   r   r   Z_repr_fits_horizontal_)r_   
term_widthterm_heightr   Zdf6Zdf10r:   r   r   r   test_repr_max_columns_max_rows  s>    
"z6TestDataFrameFormatting.test_repr_max_columns_max_rowsc          	   C   sx  t dtdi}dt|ks"td| ks2tt dtdi}dt|ksTtd| ksdttddddF dt|kstd	t|kstd
| kstd| kstW d Q R X tdddd & dt|kstd| kstW d Q R X tdddd* dt|kstd| ks,tW d Q R X tdd dd* dt|ksXtd| ksjtW d Q R X d S )Nr   ro   z..=   zdisplay.max_rowsrV   zdisplay.min_rowsr   z2  z...z
<td>2</td>   z5    5z
<td>5</td>)r   r	   r[   r8   r    _repr_html_r   )r_   r:   r   r   r   test_repr_min_rows  s(    z*TestDataFrameFormatting.test_repr_min_rowsc          	   C   sl   t ddddddddddg}|ddd	g t|d
ksBttdd t|dks^tW d Q R X d S )Nr   barz*uncomfortably long line with lots of stuffri   )r   r   r   r   stuffr   r   r   z     a    b                                           c  d
0  foo  bar  uncomfortably long line with lots of stuff  1
1  foo  bar                                       stuff  1max_colwidthro   zk     a    b                    c  d
0  foo  bar  uncomfortably lo...  1
1  foo  bar                stuff  1)r   r	   	set_indexr"   r    r   )r_   r:   r   r   r   test_str_max_colwidth  s    
z-TestDataFrameFormatting.test_str_max_colwidthc          	   C   s   t ddddddddddg}|ddd	g | d
ksBttdd | d
ks^tW d Q R X |jdddks|td S )Nr   r   zXlet's make this a very VERY long line that is longer than the default 50 character limitri   )r   r   r   r   r   r   r   r   a:       a    b                                                                                         c  d
0  foo  bar  let's make this a very VERY long line that is longer than the default 50 character limit  1
1  foo  bar                                                                                     stuff  1r   ro   )r   zk     a    b                    c  d
0  foo  bar  let's make this ...  1
1  foo  bar                stuff  1)r   r	   r   r^   r    r   )r_   r:   r   r   r   test_to_string_truncate  s    

z/TestDataFrameFormatting.test_to_string_truncatec             C   sX  t  \}}d}tt|| }td}t||d}tdd tdd ( tdd  t|sdtW d Q R X W d Q R X tdd( tdd t|stW d Q R X W d Q R X tt|| }t||d}tdd4 tdd  t|stt|stW d Q R X W d Q R X tdd * tdd t|s6tW d Q R X W d Q R X W d Q R X d S )	Ng?rV   )rk   rj   zmode.sim_interactiveTmax_rowsZmax_columnsr   )	r   r[   intr	   r   rT   r    rJ   rN   )r_   r   r   Zfacr   rk   r:   r   r   r   test_auto_detect?  s*    
   z(TestDataFrameFormatting.test_auto_detectc       
   	   C   s   t  }dgd }tj|td}td|i}|jd|d t| tdddg}ttj	
t||}t|d	}t|d
 }xV|dd  D ]F}y|td}W n tk
r   Y nX |dst||kstqW tj}	zd t_t| W d |	t_X d S )Nu   σrV   )rX   unicode)rs   r#   abcu   σaZaegdvgr7   r   ri   zdisplay.encodingzdtype:)r   rB   rC   rZ   r	   r^   r8   r
   r   r\   r]   r?   r1   decoder   AttributeErrorr9   r    sysstdin)
r_   r#   Zunicode_valuesr:   r   Zserrsline_lenrS   Z_stdinr   r   r   test_to_string_repr_unicode\  s,    

z3TestDataFrameFormatting.test_to_string_repr_unicodec             C   s`   t dtdi}t }|j|d |  t }|j|d |  | }t|ts\t	d S )Nu   σg      $@)r#   )
r	   rB   aranger   r^   r)   rm   r!   r"   r    )r_   rg   r:   r#   r,   r   r   r   test_to_string_unicode_columns{  s    z6TestDataFrameFormatting.test_to_string_unicode_columnsc          	   C   s>   d d}tdd  tddg|gd}t| W d Q R X d S )Nu   אzutf-8zdisplay.max_rowsri   r}   )rj   )encoder   r	   r8   )r_   r   r:   r   r   r   test_to_string_utf8_columns  s    
z3TestDataFrameFormatting.test_to_string_utf8_columnsc             C   s    t dg i}t }|| d S )Nu   c/σ)r	   r   r^   )r_   dmr#   r   r   r   test_to_string_unicode_two  s    z2TestDataFrameFormatting.test_to_string_unicode_twoc             C   s   t dg}t }|| d S )N   Â)r	   r   r^   )r_   r   r#   r   r   r   test_to_string_unicode_three  s    
z4TestDataFrameFormatting.test_to_string_unicode_threec             C   s   t dddgdddgddd	gd
dddgd}ddd fddd fddd fg}|jt|d}|jtt| d d}|dkst||kstd S )Nri   r}   r   g      ?g       @g      @)ri   r}   TF)r   floatrZ   r   r   rZ   )rj   c             S   s   d| dS )N0xxr   )r   r   r   r   r     r   zHTestDataFrameFormatting.test_to_string_with_formatters.<locals>.<lambda>c             S   s   d| ddS )N[z 4.1f]r   )r   r   r   r   r     r   c             S   s   d| dS )N-r   )r   r   r   r   r     r   )
formattersz[  int  float    object
0 0x1 [ 1.0]  -(1, 2)-
1 0x2 [ 2.0]    -True-
2 0x3 [ 3.0]   -False-)r	   r^   dictrt   ru   r    )r_   r:   r   r,   result2r   r   r   test_to_string_with_formatters  s    


z6TestDataFrameFormatting.test_to_string_with_formattersc             C   sT   t dddt dddg}td|i}dd }|jd|id}d}| |ksPtd S )	Ni  ri   r}   monthsc             S   s
   |  dS )Nz%Y-%m)strftime)r   r   r   r   format_func  s    zZTestDataFrameFormatting.test_to_string_with_datetime64_monthformatter.<locals>.format_func)r   zmonths
0 2016-01
1 2016-02)r   r	   r^   stripr    )r_   r   r   r   r,   r*   r   r   r   -test_to_string_with_datetime64_monthformatter  s    zETestDataFrameFormatting.test_to_string_with_datetime64_monthformatterc             C   sJ   t dtjddgddi}dd }|jd|id}d	}| |ksFtd S )
NZhodz10:10:10.100z12:12:12.120z%H:%M:%S.%f)formatc             S   s
   |  dS )Nz%H:%M)r   )r   r   r   r   r     s    zYTestDataFrameFormatting.test_to_string_with_datetime64_hourformatter.<locals>.format_func)r   zhod
0 10:10
1 12:12)r	   r   to_datetimer^   r   r    )r_   r   r   r,   r*   r   r   r   ,test_to_string_with_datetime64_hourformatter  s    zDTestDataFrameFormatting.test_to_string_with_datetime64_hourformatterc             C   s2   t ddddgi}|jdtid}|dks.td S )Nu   c/σri   r}   r   )r   u     c/σ
0   1
1   2
2   3)r	   r^   r"   r    )r_   r:   r,   r   r   r   &test_to_string_with_formatters_unicode  s    z>TestDataFrameFormatting.test_to_string_with_formatters_unicodec          	   C   s  t ddddgddddgd	d
dddgd}d}t||ks>tt ddddgddddgd	d
dddgd}d}t||ks|tt ddddgddddgd	d
dddgd}d}t||kstt ddddgddddgdd
dddgd}d}t||kstt ddddgddddgd	ddddgd}d}t||ks8tt ddddgddddgd	tjddddgddd}d}t||kstt ddddgdddd gd!tjddddgd"dd}d#}t||ksttjd$d%d&d'g}t ddddgddddgd	|d}d(}t||ksttd)d*d+d* tj ddddgddddgd"d,d-d.gd/d0d1d2gd3d
d4dd5gd6}d7}t||ks~tdd8dd9g|_d:}t||kstW d Q R X d S );Nu   あu	   いいいu   うu   ええええええri      i5  r   )r   r   r   bbr   ddd)rk   ut             a      b
a         あ      1
bb      いいい    222
c         う  33333
ddd  ええええええ      4ut            a       b
a        1       あ
bb     222     いいい
c    33333       う
ddd      4  ええええええu   あああああu   いu	   えええu            a       b
a    あああああ       あ
bb       い     いいい
c        う       う
ddd    えええ  ええええええ)r   u   あああああu~             b  あああああ
a         あ      1
bb      いいい    222
c         う  33333
ddd  ええええええ      4u	   あああu   いいいいいいu   ううu   えu               a       b
あああ     あああああ       あ
いいいいいい      い     いいい
うう          う       う
え         えええ  ええええええu   おおおお)nameu             a       b
おおおお               
あ     あああああ       あ
い         い     いいい
うう        う       う
え       えええ  ええええええu   えええええu   ええ)u	   あああu   いいいいいu   おu          あああ いいいいい
お               
あ      あああ     あ
いいい      い   いいい
うう       う     う
え    えええええ    ええ)u   あu   いい)u   うu   え)u	   おおおu   かかかか)u   きu   くくu                 a       b
あ   いい    あああああ       あ
う   え         い     いいい
おおお かかかか      う       う
き   くく      えええ  ええええええzdisplay.max_rowsr   zdisplay.max_columnsu   かu	   きききu   くくくくくくu   さu   しu   すu   せ)r   r   r   u   ああああr   u   ああああ)rj   u           a  ... ああああ
0   あああああ  ...    さ
..    ...  ...  ...
3     えええ  ...    せ

[4 rows x 4 columns]u   いいいいaaau            a  ... ああああ
あああ  あああああ  ...    さ
..     ...  ...  ...
aaa    えええ  ...    せ

[4 rows x 4 columns])	r	   r8   r    r   r
   r   r   r   rk   )r_   r:   r*   r   r   r   r   test_east_asian_unicode_false  sl    


z5TestDataFrameFormatting.test_east_asian_unicode_falsec          
   C   s
  t dd tddddgddd	d
gdddddgd}d}t||ksLttddd	d
gddddgdddddgd}d}t||ksttddddgddddgdddddgd}d}t||ksttddddgddd	d
gdddddgd}d}t||ksttddddgddddgdddddgd}d}t||ksHttddddgddddgdtjddddgddd}d }t||ksttdddd!gdddd"gd#tjddddgd$dd}d%}t||ksttjd&d'd(d)g}tddddgddddgd|d}d*}t||ks(tt d+d,d-d, tjddddgddddgd$d.d/d0gd1d2d3d4gd5dd6dd7gd8}d9}t||kstdd:dd;g|_d<}t||kstW d Q R X tddd=dgddd	d
gddddd>gd}d?}t||kstW d Q R X d S )@Nz display.unicode.east_asian_widthTu   あu	   いいいu   うu   ええええええri   r   i5  r   )r   r   r   r   r   r   )rk   u                   a      b
a              あ      1
bb         いいい    222
c              う  33333
ddd  ええええええ      4u            a             b
a        1            あ
bb     222        いいい
c    33333            う
ddd      4  ええええええu   あああああu   いu	   えええu                 a             b
a    あああああ            あ
bb           い        いいい
c            う            う
ddd      えええ  ええええええ)r   u   あああああu                   b  あああああ
a              あ           1
bb         いいい         222
c              う       33333
ddd  ええええええ           4u	   あああu   いいいいいいu   ううu   えu                          a             b
あああ        あああああ            あ
いいいいいい          い        いいい
うう                  う            う
え                えええ  ええええええu   おおおお)r   u                      a             b
おおおお                          
あ        あああああ            あ
い                い        いいい
うう              う            う
え            えええ  ええええええu   えええええu   ええ)u	   あああu   いいいいいu   おu               あああ いいいいい
お                           
あ          あああ         あ
いいい          い     いいい
うう            う         う
え      えええええ       ええ)u   あu   いい)u   うu   え)u	   おおおu   かかかか)u   きu   くくu                             a             b
あ     いい      あああああ            あ
う     え                い        いいい
おおお かかかか          う            う
き     くく          えええ  ええええええzdisplay.max_rowsr   zdisplay.max_columnsu   かu	   きききu   くくくくくくu   さu   しu   すu   せ)r   r   r   u   ああああr   u   ああああ)rj   u                a  ... ああああ
0   あああああ  ...       さ
..         ...  ...      ...
3       えええ  ...       せ

[4 rows x 4 columns]u   いいいいr   u                    a  ... ああああ
あああ  あああああ  ...       さ
...            ...  ...      ...
aaa         えええ  ...       せ

[4 rows x 4 columns]u   ¡¡u   ¡¡¡u                   b  あああああ
a              あ           1
bb         いいい         222
c              ¡¡       33333
¡¡¡  ええええええ           4)	r   r	   r8   r    r   r
   r   r   rk   )r_   r:   r*   r   r   r   r   test_east_asian_unicode_true]  sx    


z4TestDataFrameFormatting.test_east_asian_unicode_truec             C   sR   t  }tdttdi}tdtdddgi}t||d t||d |  d S )Nu   c/σ)rX   ri   r}   r   )file)r   r	   r   rZ   printr)   )r_   r#   rY   Znonemptyr   r   r   !test_to_string_buffer_all_unicode   s    z9TestDataFrameFormatting.test_to_string_buffer_all_unicodec             C   s   t tjjdd}t|jdddd }t|jdddd }t|jdddd }||  k rt|k szn t|jdd}| d }|jdd	d
}t|t|kstd S )N)ri   r   )sizerV   )rs   r7   ri   ro   r   F)rs   header)r	   rB   r\   r?   r^   r1   r    rD   )r_   r:   Zc10Zc20Zc30Zwith_headerZwith_header_row1Z	no_headerr   r   r   test_to_string_with_col_space  s    z5TestDataFrameFormatting.test_to_string_with_col_spacec          	   C   s   t tjjdddddgd}d}tjt|d |jd	d
gd W d Q R X tjt|d |jd	d
ddgd W d Q R X d}tjt|d |jddddd W d Q R X d S )N)r   r   )r   r   r   r   )rj   zGCol_space length\(\d+\) should match DataFrame number of columns\(\d+\))rL   r   r   )rs   2   <   zunknown columnr      "   )r   r   r   )r	   rB   r\   r   raises
ValueErrorr^   )r_   r:   msgr   r   r   4test_to_string_with_column_specific_col_space_raises  s    zLTestDataFrameFormatting.test_to_string_with_column_specific_col_space_raisesc             C   sz   t tjjdddddgd}|jddd	d
d}t|dd dksJt|jddd	gd}t|dd dksvtd S )N)r   r   )r   r   r   r   )rj   rV      r   )r   r   r   )rs   r7   ri   %   )r	   rB   r\   r^   r?   r1   r    )r_   r:   r,   r   r   r   -test_to_string_with_column_specific_col_space+  s
    zETestDataFrameFormatting.test_to_string_with_column_specific_col_spacec             C   sD  x<t jt jt jt jt jgD ]}xt jgD ]}x dD ]}xdD ]}tdd t||||d}tdd( |dkrt|st	nt|rt	W d Q R X tdd( |dkrt
|st	nt
|rt	W d Q R X tdddd8 |dkr|dkrt|st	nt|rt	W d Q R X W d Q R X qFW q<W q.W qW d S )	N)rV   ro   zdisplay.expand_frame_reprF)rk   rj   zdisplay.max_rows   ro   zdisplay.max_columns)re   makeStringIndexZmakeUnicodeIndexZmakeIntIndexZmakeDateIndexZmakePeriodIndexr   r	   rN   r    rJ   rP   )r_   rk   columnhwr:   r   r   r   test_to_string_truncate_indices5  s0    
z7TestDataFrameFormatting.test_to_string_truncate_indicesc          	   C   s^   ddddddddgddddddddgg}t ||d}tdd	d
d	 t|sPtW d Q R X d S )Nr   bazr   quxonetwo)rk   rj   zdisplay.max_rowsr   zdisplay.max_columns)r	   r   rP   r    )r_   arraysr:   r   r   r   "test_to_string_truncate_multilevelT  s
    z:TestDataFrameFormatting.test_to_string_truncate_multilevelc          	   C   s   dd l }t| dddgd | dddg | dddgd  }tdd	 t|}d
|ksftW d Q R X tddgd gd  i}tdd	dd& t|}d|kstd|kstW d Q R X d S )Nr   i  ri   rV   i  r}   r   zdisplay.max_rowsr   rZ   textz
some wordsr   zdisplay.max_columnsNoneNaN)r   r   r   r   r"   r    r	   )r_   r   sr,   r:   r   r   r   #test_truncate_with_different_dtypes]  s    :z;TestDataFrameFormatting.test_truncate_with_different_dtypesc             C   sT   t dtdi}tj|gdgddgd}t|}t|jd d }||sPtd S )NZValsr   ZSweepr
   )keysnamesrb   )r	   r[   r   concatr8   rq   r9   r    )r_   r:   framer,   r   r   r   r   .test_truncate_with_different_dtypes_multiindexw  s
    zFTestDataFrameFormatting.test_truncate_with_different_dtypes_multiindexc             C   s  t dtddgtjgd  i}tdd> t|}d|ksFtd|ksRtd|ks^td	|ksjtW d Q R X tjd
ddgd tjgd  }t |ddddddddddg
d}tdd d}t||kstW d Q R X tjgd tjd
ddgd  }t |ddddddddddg
d}tdd d}t||ksHtW d Q R X tjd
ddgd tjd
ddgd  }t |ddddddddddg
d}tdd d}t||kstW d Q R X d S )NdateZ20130101UTCrb   zdisplay.max_rowsz2013-01-01 00:00:00+00:00r   z...z[6 rows x 1 columns]z
2011-01-01z
US/Eastern)tzri   r}   r   r   r>   r   r   r   rV   )dtr   z                          dt   x
0  2011-01-01 00:00:00-05:00   1
1  2011-01-01 00:00:00-05:00   2
..                       ...  ..
8                        NaT   9
9                        NaT  10

[10 rows x 2 columns]z                          dt   x
0                        NaT   1
1                        NaT   2
..                       ...  ..
8  2011-01-01 00:00:00-05:00   9
9  2011-01-01 00:00:00-05:00  10

[10 rows x 2 columns]z
Asia/Tokyoz                           dt   x
0   2011-01-01 00:00:00+09:00   1
1   2011-01-01 00:00:00+09:00   2
..                        ...  ..
8   2011-01-01 00:00:00-05:00   9
9   2011-01-01 00:00:00-05:00  10

[10 rows x 2 columns])	r	   r   r   Ztz_localizer   r   r"   r    r8   )r_   r:   r,   Zdtsr*   r   r   r   test_datetimelike_frame  s2    $ $ $$z/TestDataFrameFormatting.test_datetimelike_frame
start_datez2017-01-01 23:59:59.999999999z2017-01-01 23:59:59.99999999z2017-01-01 23:59:59.9999999z2017-01-01 23:59:59.999999z2017-01-01 23:59:59.99999z2017-01-01 23:59:59.9999c             C   sf   t dt|dddi}t|}||ks*tt|ddd}t dtdi|d}t|j}||ksbtd S )Nr{   Drb   )startfreqperiods)rk   )r	   r   r"   r    r[   rk   )r_   r'  r:   r,   dtir   r   r    test_datetimeindex_highprecision  s    
z8TestDataFrameFormatting.test_datetimeindex_highprecisionc             C   sF   t ddgddgg}| }|d}t|d t|d ksBtd S )Nu
   aaÃ¤Ã¤ri   Zbbbbr}   r7   )r	   r^   r1   r?   r    )r_   r:   rep_strlinesr   r   r   "test_nonunicode_nonascii_alignment  s    
z:TestDataFrameFormatting.test_nonunicode_nonascii_alignmentc             C   s&   t dtdtjii}t|  d S )Nu   c/σtest)r	   r   rB   rp   r"   r^   )r_   r   r   r   r   &test_unicode_problem_decoding_as_ascii  s    z>TestDataFrameFormatting.test_unicode_problem_decoding_as_asciic             C   s6   |dddd}t j|d dd}t| t|d  d S )Nioparserr   zunicode_series.csvlatin1)r   r%   ri   )r   r   r8   )r_   Zdatapathfilepathr:   r   r   r   test_string_repr_encoding  s    z1TestDataFrameFormatting.test_string_repr_encodingc             C   s"   t dtj tjgi}t| d S )Nr   )r	   rB   infr8   )r_   r:   r   r   r   test_repr_corner  s    z(TestDataFrameFormatting.test_repr_cornerc             C   sH   ddg}t dd tdddg|d}t| t|j t dd	 d S )
Nz'Til There Was You (1997)zldum klaka (Cold Fever) (1994)zdisplay.max_rowsri   r   r   r   )rj   rk      )rd   r   r	   r8   r   )r_   rk   r:   r   r   r   test_frame_info_encoding  s    
z0TestDataFrameFormatting.test_frame_info_encodingc          
   C   s   t dddddd td}ttjdd|d fd	}td
d t|}d|d  d|ks`ttd
d t|}||ks~tt dd" t|}t|t|k stW d Q R X W d Q R X t	d
 d S )Nzmode.sim_interactiveTzdisplay.show_dimensionszdisplay.max_columnsro      rV   ri   )r   zdisplay.expand_frame_reprFz
10 rows x z columnszdisplay.widthx   )
r   r   r	   re   rands_arrayr   r8   r    r?   r   )r_   max_colsr:   r.  	wide_repr
wider_reprr   r   r   test_wide_repr  s&    

(z&TestDataFrameFormatting.test_wide_reprc          	   C   sV   t dddd> ttjddddd	gd
}t|}t| dksHtW d Q R X d S )Nzmode.sim_interactiveTzdisplay.max_columnsro   rb   r   ZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZZbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbZZcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc)rj   )	r   r	   rB   r\   r]   r8   r?   rD   r    )r_   r:   r.  r   r   r   test_wide_repr_wide_columns  s
    z3TestDataFrameFormatting.test_wide_repr_wide_columnsc          
   C   s   t dddd td}ttjdd|d fd}d	|j_td
d t|}td
d t|}||ksjt	t dd" t|}t
|t
|k st	W d Q R X x&| dd d D ]}d	|kst	qW W d Q R X td
 d S )Nzmode.sim_interactiveTzdisplay.max_columnsro   r<  rV   ri   )r   zDataFrame Indexzdisplay.expand_frame_reprFzdisplay.width      )r   r   r	   re   r>  rk   r   r   r8   r    r?   rD   r   )r_   r?  r:   r.  r@  rA  rS   r   r   r   test_wide_repr_named  s    

z,TestDataFrameFormatting.test_wide_repr_namedc          
   C   s   t dddd ttjddd}td}ttjdd	|d
 fd|d}ddg|j_t	dd t
|}t	dd t
|}||kstt dd" t
|}t|t|k stW d Q R X x&| d
d d D ]}d|kstqW W d Q R X td d S )Nzmode.sim_interactiveTzdisplay.max_columnsro   rb   )r}   rV   )r   r<  rV   ri   )rk   zLevel 0zLevel 1zdisplay.expand_frame_reprFzdisplay.widthrD  rE  zLevel 0 Level 1)r   r   from_arraysre   r>  r   r	   rk   r  r   r8   r    r?   rD   r   )r_   midxr?  r:   r.  r@  rA  rS   r   r   r   test_wide_repr_multiindex&  s     

z1TestDataFrameFormatting.test_wide_repr_multiindexc          	   C   s   t dddd td}ttjddd}ttjdd	|d
 fd}ttdd|d
 f||d}ddg|j_t	dd t
|}t	dd t
|}||kstW d Q R X t dddd" t
|}t|t|k stW d Q R X td d S )Nzmode.sim_interactiveTzdisplay.max_columnsro   rb   )r}   rV   )r   r   r}   ri   r<  rV   )rk   rj   zLevel 0zLevel 1zdisplay.expand_frame_reprFzdisplay.widthrD  )r   r   r   rG  re   r>  r	   rk   r  r   r8   r    r?   r   )r_   r?  rH  mcolsr:   r.  r@  rA  r   r   r   test_wide_repr_multiindex_cols;  s     

z6TestDataFrameFormatting.test_wide_repr_multiindex_colsc          
   C   s   t dddd d}ttjdd|d fd}td	d
 t|}td	d t|}||ks^tt dd" t|}t|t|k stW d Q R X W d Q R X td	 d S )Nzmode.sim_interactiveTzdisplay.max_columnsro   r<  rV   ri   )r   zdisplay.expand_frame_reprFzdisplay.widthrD  )	r   r	   re   r>  r   r8   r    r?   r   )r_   r?  r:   r.  r@  rA  r   r   r   test_wide_repr_unicodeP  s    

(z.TestDataFrameFormatting.test_wide_repr_unicodec          	   C   sP   t dd< tddgddgd}t|}d|ks6td	|ksBtW d Q R X d S )
Nzmode.sim_interactiveTZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbZFccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccZPdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd)r   r   ZcccccZddddd)r   r	   r8   r    )r_   r:   r,   r   r   r    test_wide_repr_wide_long_columns`  s
    z8TestDataFrameFormatting.test_wide_repr_wide_long_columnsc             C   s\   d}t tjdd|dd t|D dd}dd l}t|}t|d	|}|d
ksXt	d S )Ni  ir  c             S   s   g | ]}d |dqS )r  Z04dr   )rx   r   r   r   r   rz   l  s    z<TestDataFrameFormatting.test_long_series.<locals>.<listcomp>int64)rk   rX   r   rX   ri   )
r   rB   r\   rw   r[   rK   r"   r?   findallr    )r_   r   r  rK   Zstr_repZnmatchesr   r   r   test_long_seriesh  s    z(TestDataFrameFormatting.test_long_seriesc             C   s  t dddtjddddddddd	}|d
ddg}| }d}||ksTt|d}| }d}||ksvt|d
dgjddd}| }d}||kst| }tj|jd d df< |d}| }d}||kst| }tj|jd d df< |ddg}| }d}||ks(tt tjddtjddtjdddddd	}|d
ddg}| }d}||kstd S )NZ1a3Z9h4)r   ri   Zd67Z78dZ79d{   @   )id1id2id3r   rS  rT  rU  zK             value
id1 id2 id3       
1a3 NaN 78d    123
9h4 d67 79d     64zS     id1  id3  value
id2                 
NaN  1a3  78d    123
d67  9h4  79d     64T)appendzS     id1  id3  value
id2                 
NaN  1a3  78d    123
NaN  9h4  79d     64zO         id1  value
id2 id3            
NaN 78d  1a3    123
    79d  9h4     64zK             value
id1 id2 id3       
NaN NaN NaN    123
9h4 d67 79d     64)r	   rB   rp   r   r^   r    copyrc   )r_   r:   yr,   r*   r   r   r   r   test_index_with_nanv  sL    





z+TestDataFrameFormatting.test_index_with_nanc             C   s  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
 }|j	|d}|d kstt| |kstt|tst|j	ddgdd	jd
}|d}|d   }ddd |dd  D }tt
||d dd}	t|	d |d  |	d  |d  ks$tt|	d  |d   dk  sPt|j	dgdd}|dd   }dg}
||
kst|j	ddgddd id |j	ddgtd |j	ddgdtd
 t tdd}|	  d S )Nr:  )r{   r|   )rk   ro   r{   r|   )r#      z%.5f)rj   rs   float_formatr7   r   c             s   s    | ]}t d d| V  qdS )z\s+ N)rK   subr   )rx   r   r   r   r   	<genexpr>  s    z9TestDataFrameFormatting.test_to_string.<locals>.<genexpr>ri   r\  )r  r   sepg?)rj   rs   c             S   s   | dS )Nz.1fr   )r   r   r   r   r     r   z8TestDataFrameFormatting.test_to_string.<locals>.<lambda>)rj   r   )rj   r[  r   )r	   rB   r\   r]   re   r  r   rp   rc   r^   r   r    r)   r!   r"   __mod__r1   r   joinr   r   countabsZdropnaall)r_   Zbiggier  r#   retvalr,   r/  r   ZjoinedZreconsr*   r   r   r   r   test_to_string  s:    
,z&TestDataFrameFormatting.test_to_stringc             C   s:   t dddgdddgd}|jdd	}d
}||ks6td S )Nri   r}   r   r   rb   r>   )r   rX  F)r   z0  1  4
1  2  5
2  3  6)r	   r^   r    )r_   r:   df_sr*   r   r   r   test_to_string_no_header  s    z0TestDataFrameFormatting.test_to_string_no_headerc          	   C   sj   t dddgdddgd}|jdd	gd
}d}||ks:td}tjt|d |jdgd
 W d Q R X d S )Nri   r}   r   r   rb   r>   )r   rX  XY)r   z   X  Y
0  1  4
1  2  5
2  3  6z Writing 2 cols but got 1 aliases)rL   )r	   r^   r    r   r  r  )r_   r:   rg  r*   r  r   r   r   test_to_string_specified_header  s    z7TestDataFrameFormatting.test_to_string_specified_headerc             C   sb   t ddgddgddgd}|jdd	}d
}||ks8t|dddg jdd	}d}||ks^td S )Nr	     !   iZAAAz   )r   rX  zF)rk   z&  x   y    z
 11  33  AAA
 22 -44     rX  r   rn  z&  y   x    z
 33  11  AAA
-44  22     )r	   r^   r    )r_   r:   rg  r*   r   r   r   test_to_string_no_index  s    z/TestDataFrameFormatting.test_to_string_no_indexc             C   s   t dddgdddgd}|jddd	}d
}||ks8tt dddgdddgd}|jddd	}d}||ksptt dddgdddgd}|jddd	}d}||kstd S )Nri   r}   r   r   rb   r>   )r   rX  F)
line_widthrk   z, x  \
 1   
 2   
 3   

 y  
 4  
 5  
 6  r	  rl  rm  z0  x  \
 11   
 22   
 33   

 y  
 4  
 5  
 6  iiz0  x  \
 11   
 22   
-33   

 y  
 4  
 5  
-6  )r	   r^   r    )r_   r:   rg  r*   r   r   r   "test_to_string_line_width_no_index  s    z:TestDataFrameFormatting.test_to_string_line_width_no_indexc             C   s   t   tdddddd tddd	d
ddddtjdg	i}| }t rPd}nd}||ks`t	tdddgi}| }d}||kst	t   t
ddkst	tdddgi}| }t rd}nd}||kst	d S )Nzdisplay.precisionrb   zdisplay.column_spacer   zdisplay.notebook_repr_htmlFr   r   g      ?g      @gw2ЀIg    @9Ag    CAg'?g    .z              x
0  0.00000e+000
1  2.50000e-001
2  3.45600e+003
3  1.20000e+046
4  1.64000e+006
5  1.70000e+008
6  1.25346e+000
7  3.14159e+000
8 -1.00000e+006z             x
0  0.00000e+00
1  2.50000e-01
2  3.45600e+03
3  1.20000e+46
4  1.64000e+06
5  1.70000e+08
6  1.25346e+00
7  3.14159e+00
8 -1.00000e+06i  gx&1?z#          x
0  3234.000
1     0.253r>   g    eAg2U0*?z2               x
0  1.000000e+009
1  2.512000e-001z/              x
0  1.000000e+09
1  2.512000e-01)re   rf   rd   r   r	   rB   pir^   _three_digit_expr    r   )r_   r:   rg  r*   r   r   r   test_to_string_float_formatting*  s6    z7TestDataFrameFormatting.test_to_string_float_formattingc             C   sP   t ddgi}d}|jdd|ks&tt ddgi}d}|jdd|ksLtd S )	Nr   gvöE?z      x
0 0.200z%.3f)r[  g      Y@z    x
0 100z%.0f)r	   r^   r    )r_   r:   r*   r   r   r   *test_to_string_float_format_no_fixed_width]  s    zBTestDataFrameFormatting.test_to_string_float_format_no_fixed_widthc             C   sN   t ddddgi}| }t r&d}nd}||ks6t|d }| }d}d S )	Nr   g      ?gFFg<gavtzC               a
0  1.500000e+000
1  1.000000e-017
2 -5.500000e-007z?              a
0  1.500000e+00
1  1.000000e-17
2 -5.500000e-07r   z   0
0  0
1  0
2 -0)r	   r^   rs  r    )r_   r:   r,   r*   r   r   r   !test_to_string_small_float_valuesi  s    z9TestDataFrameFormatting.test_to_string_small_float_valuesc             C   s@   t dddddg}ttd|d}| }d}||ks<td S )Ng      ?r}   r   r   rb   )rk   z)     0
1.5  0
2.0  1
3.0  2
4.0  3
5.0  4)r
   r	   rB   r   r^   r    )r_   rk   r:   r,   r*   r   r   r   test_to_string_float_index  s
    z2TestDataFrameFormatting.test_to_string_float_indexc          	   C   sH   t dd2 tdddddgi}| }d}||ks:tW d Q R X d S )	Nzdisplay.precisionrb   r   yV?d~	O?y:s-kM?\x?yD惒C?Zn(?y             zc                  x
0  0.44678+0.07152j
1  0.27394+0.23515j
2  0.26975+0.32506j
3 -0.00000-1.00000j)r   r   r	   r^   r    )r_   r:   r,   r*   r   r   r   'test_to_string_complex_float_formatting  s    
z?TestDataFrameFormatting.test_to_string_complex_float_formattingc             C   s   dg}t |}t| d S )N)z0  z#                        .gitignore z     5 u    â¢â¢â¢â¢â¢)r	   r8   )r_   r   r:   r   r   r   test_to_string_ascii_error  s    z2TestDataFrameFormatting.test_to_string_ascii_errorc             C   sH   t dddddgi}t|d jjtjs,t| }d}||ksDtd S )Nr   iro   r<  iz    x
0 -15
1  20
2  25
3 -35)r	   
issubclassrX   r   rB   integerr    r^   )r_   r:   outputr*   r   r   r   test_to_string_int_formatting  s
    z5TestDataFrameFormatting.test_to_string_int_formattingc             C   sF   t tdtddtddg}|jddd id}d}||ksBtd S )	Nrb   rV   r  	__index__c             S   s   d|  S )Nr   r   )r   r   r   r   r     r   zHTestDataFrameFormatting.test_to_string_index_formatter.<locals>.<lambda>)r   zW    0   1   2   3   4
a   0   1   2   3   4
b   5   6   7   8   9
c  10  11  12  13  14)r	   r[   r^   r    )r_   r:   r   Zxpr   r   r   test_to_string_index_formatter  s    z6TestDataFrameFormatting.test_to_string_index_formatterc             C   s8   t   tdddgi}|jdd}d}||ks4td S )Nr   i  gx&1?left)Zjustifyz#   x       
0  3234.000
1     0.253)re   rf   r	   r^   r    )r_   r:   rg  r*   r   r   r    test_to_string_left_justify_cols  s
    z8TestDataFrameFormatting.test_to_string_left_justify_colsc             C   s   t   ttjddddgtjddddgd	}| }d
}||ksFtttjddddgtjddddgd	}| }d}||kstd S )Nr   gx# r   r   r   foooofooooor   )r{   r|   zk        A       B
0     NaN     NaN
1 -1.0000     foo
2 -2.1234   foooo
3  3.0000  fooooo
4  4.0000     barg      g       g      @g      @zY     A       B
0  NaN     NaN
1 -1.0     foo
2 -2.0   foooo
3  3.0  fooooo
4  4.0     bar)re   rf   r	   rB   rp   r^   r    )r_   r:   r,   r*   r   r   r   test_to_string_format_na  s    z0TestDataFrameFormatting.test_to_string_format_nac             C   s   t   ttj tjddddgtj tjddddgd	}| }d
}||ksRtttj tjddddgtj tjddddgd	}| }d}||kstd S )Nr   gx# r   r   r   r  r  r   )r{   r|   z}        A       B
0    -inf    -inf
1     inf     inf
2 -1.0000     foo
3 -2.1234   foooo
4  3.0000  fooooo
5  4.0000     barg      g       g      @g      @zh     A       B
0 -inf    -inf
1  inf     inf
2 -1.0     foo
3 -2.0   foooo
4  3.0  fooooo
5  4.0     bar)re   rf   r	   rB   r8  r^   r    )r_   r:   r,   r*   r   r   r   test_to_string_format_inf  s    z1TestDataFrameFormatting.test_to_string_format_infc             C   s.   t ddddgi}d}|jdd|ks*td S )Nr{   g      @g@g@z     A
0  6,0
1  3,1
2  2,2,)decimal)r	   r^   r    )r_   r:   r*   r   r   r   test_to_string_decimal  s    z.TestDataFrameFormatting.test_to_string_decimalc             C   sH   t dtddtdd}|jdd}tdd	 |d
D dksDtd S )NrQ  rV   r  r   )rk   rj   r   )rp  c             s   s   | ]}t |V  qd S )N)r?   )rx   rI   r   r   r   r^  $  s    zDTestDataFrameFormatting.test_to_string_line_width.<locals>.<genexpr>r7   )r	   r[   r^   maxr1   r    )r_   r:   r  r   r   r   test_to_string_line_width!  s    z1TestDataFrameFormatting.test_to_string_line_widthc             C   s8  t dtddtdd}tddddd	d
dddd
& dt|ksDtd| ksTtW d Q R X tddddd	d
dddd
& dt|kstd| kstW d Q R X tddddd	d
dddd
& dt|kstd| kstW d Q R X tddddd	d
dddd
* dt|kstd| ks*tW d Q R X d S )NrQ  rV   r  r   )rk   rj   zdisplay.max_rowszdisplay.max_columnsr   zdisplay.widthi  zdisplay.expand_frame_reprrm   zdisplay.show_dimensionsTz5 rowsFr}   truncate)r	   r[   r   r"   r    r   )r_   r:   r   r   r   test_show_dimensions&  sj    z,TestDataFrameFormatting.test_show_dimensionsc             C   s   |}|   tdddd |   tdd |   t  tddgddgg}td	d
 d|  kspttd	d d|  kstt  d S )Nzdisplay.max_rowsri   zdisplay.max_columnszdisplay.notebook_repr_htmlFr}   r   r   zdisplay.show_dimensionsTz2 rows)r   rd   r   re   rf   r	   r    )r_   rg   r:   r   r   r   test_repr_htmlb  s    z&TestDataFrameFormatting.test_repr_htmlc          	   C   sP   t ddgddgg}d| ks$ttdd d| ksBtW d Q R X d S )Nri   r}   r   r   Ztex2jax_ignorezdisplay.html.use_mathjaxF)r	   r   r    r   r   )r_   r:   r   r   r   test_repr_html_mathjaxv  s    z.TestDataFrameFormatting.test_repr_html_mathjaxc          	   C   s   d}t tjdd|d fd}tdddd d	| ks>tW d Q R X t tjdd|d fd}tdddd d	| kstW d Q R X d S )
Nro   r<  rV   ri   )r   zdisplay.max_rowsr  zdisplay.max_columnsz...)r	   re   r>  r   r   r    )r_   r?  r:   Zwide_dfr   r   r   test_repr_html_wide}  s    z+TestDataFrameFormatting.test_repr_html_widec          	   C   s   d}t jt|d ddggddgd}ttjdd	t|fd
|d}| }d|ksZt	t jtd|d  ddgfddgd}ttjdd	t|fd
|d}t
dddd d| kst	W d Q R X d S )Nro   r}   r   r   firstsecond)r  r<  rV   )r   )rj   z...ri   zdisplay.max_rowsr  zdisplay.max_columns)r   Zfrom_productrB   r   r	   re   r>  r?   r   r    r   )r_   r?  rJ  r:   reg_reprr   r   r   #test_repr_html_wide_multiindex_cols  s     $z;TestDataFrameFormatting.test_repr_html_wide_multiindex_colsc          	   C   s   t dd td}|d }ttdd| tdd| d}| }d|ksVttd|d  |ksnt|d }ttdd| tdd| d}| }d|ksttd|d  |kst| d|kstd	|kstW d Q R X d S )
Nzdisplay.max_rowsr  ri   )   )r{   r|   z..r}   z rows z	2 columns)r   r   r	   rB   r   r   r    r"   )r_   r   r  r:   r  	long_reprr   r   r   test_repr_html_long  s    &&z+TestDataFrameFormatting.test_repr_html_longc          	   C   s  t dd td}|d }ttdd|tdd| tdd| dd}| }d	|kshtd
d|  d|kst|d }ttdd|tdd| tdd| dd}| }d	|kstd|kst| d|kstd|kstW d Q R X d S )Nzdisplay.max_rowsr  ri   irV   r  )r   r{   r|   r   z..z<td>r   z</td>z<td>31</td>z rows z	2 columns)	r   r   r	   rB   linspacer   r   r   r    )r_   r   r  r:   r  r  r   r   r   test_repr_html_float  s,    z,TestDataFrameFormatting.test_repr_html_floatc          	   C   s   d}|d }t tt|ddg}tj|ddgd}ttj	|d d|dd	gd
}t
dddd | }W d Q R X d|kstt tt|d ddg}tj|ddgd}ttj	|d d d|dd	gd
}| }d|kstd S )Nr  r}   r   r   r  r  )r  r{   r|   )rk   rj   zdisplay.max_rowszdisplay.max_columnsro   z...ri   )rt   	itertoolsproductrB   r   r   r   r	   r\   r]   r   r   r    )r_   r   Zmax_L1tuplesr   r:   r  r  r   r   r   test_repr_html_long_multiindex  s     "z6TestDataFrameFormatting.test_repr_html_long_multiindexc          	      s   d}d}|d |d   }t  fddt|D }tdddd d| ksVtW d Q R X |d |d   }t  fd	dt|D }tdddd d| kstW d Q R X d S )
Nro   r  ri   c                s   i | ]}t d d   |qS )ri   )rB   r   )rx   k)r  r   r   
<dictcomp>  s    zHTestDataFrameFormatting.test_repr_html_long_and_wide.<locals>.<dictcomp>zdisplay.max_rowszdisplay.max_columnsz...c                s   i | ]}t d d   |qS )ri   )rB   r   )rx   r  )r  r   r   r    s    )r	   rB   r   r   r   r    )r_   r?  r   r  r:   r   )r  r   test_repr_html_long_and_wide  s    z4TestDataFrameFormatting.test_repr_html_long_and_widec          	      s   t  \}}d}dt|dd d  }|d |d   }t fddt|D }t|s^ttdd	 t|svtW d Q R X |d |d   }t fd
dt|D }t	|sttdd	d| t|stW d Q R X d S )Nr  ro   r   r   ri   c                s   i | ]}t d d   |qS )ri   )rB   r   )rx   r  )r  r   r   r    s    z:TestDataFrameFormatting.test_info_repr.<locals>.<dictcomp>zdisplay.large_reprrm   c                s   i | ]}t d d   |qS )ri   )rB   r   )rx   r  )r  r   r   r    s    zdisplay.max_columns)
r   r  r	   rB   r   rN   r    r   r=   rJ   )r_   r   r   r   r?  r  r:   r   )r  r   test_info_repr  s    
z&TestDataFrameFormatting.test_info_reprc          	   C   sj   t tjdd}tdddddd t|s2tW d Q R X tdddddd t|r\tW d Q R X d S )	NrV   rb   zdisplay.large_reprrm   zdisplay.max_columnsri   zdisplay.max_info_columnsr   )r	   rB   r\   r]   r   rA   r    )r_   r:   r   r   r   test_info_repr_max_cols  s"    z/TestDataFrameFormatting.test_info_repr_max_colsc          	      s   d}d}|d |d   }t  fddt|D }d| ksFttdd d| ksbtW d Q R X |d |d   }t  fd	dt|D }d
| ksttddd| d| kstW d Q R X d S )Nr  ro   ri   c                s   i | ]}t d d   |qS )ri   )rB   r   )rx   r  )r  r   r   r    s    z?TestDataFrameFormatting.test_info_repr_html.<locals>.<dictcomp>z	&lt;classzdisplay.large_reprrm   c                s   i | ]}t d d   |qS )ri   )rB   r   )rx   r  )r  r   r   r  %  s    z<classzdisplay.max_columns)r	   rB   r   r   r    r   )r_   r   r?  r  r:   r   )r  r   test_info_repr_html  s    z+TestDataFrameFormatting.test_info_repr_htmlc             C   sP   |}dd }|  }|d k	s ttdddd |  }d|ksDtt  d S )Nc               S   s   ddddiiiS )NconfigZ	KernelAppZparent_appnamezipython-qtconsoler   r   r   r   r   get_ipython/  s    zJTestDataFrameFormatting.test_fake_qtconsole_repr_html.<locals>.get_ipythonzdisplay.max_rowsrb   zdisplay.max_columnsr}   class)r   r    rd   r   re   rf   )r_   rg   r:   r  Zrepstrr   r   r   test_fake_qtconsole_repr_html,  s    z5TestDataFrameFormatting.test_fake_qtconsole_repr_htmlc             C   s&   G dd d}t | g}t| dS )z<
        If the test fails, it at least won't hang.
        c               @   s   e Zd Zdd ZdS )zBTestDataFrameFormatting.test_pprint_pathological_object.<locals>.Ac             S   s   dS )Nr   r   )r_   keyr   r   r   __getitem__A  s    zNTestDataFrameFormatting.test_pprint_pathological_object.<locals>.A.__getitem__N)__name__
__module____qualname__r  r   r   r   r   r{   @  s   r{   N)r	   r8   )r_   r{   r:   r   r   r   test_pprint_pathological_object;  s    z7TestDataFrameFormatting.test_pprint_pathological_objectc             C   sv   dddddg}d}x^t td|idd d	 D ]<}|d
rBq2t rZd|ksj|sjtnd|ksj|sjtd}q2W d S )Ng  J\aiBg  if Bg  
Z{Bg  Bg  ŉ*BTr{   r7   zdtype:z+010z+10F)r8   r	   r1   r9   rs  r    )r_   valsr   rS   r   r   r   test_float_trim_zerosG  s    $
z-TestDataFrameFormatting.test_float_trim_zerosc             C   s8   t ddddgi}| }d|ks(td|ks4td S )Nr{   ri   r}   )r   r   z'a': 1z'b': 2)r	   r^   r    )r_   r:   valr   r   r   test_dict_entriesY  s    z)TestDataFrameFormatting.test_dict_entriesc             C   sX   ddgddgddgg}ddg}t j||d}t j|t |d}| | ksTtd S )Nr   r}   r   Z	aaaaaaaaar   )rj   )r   r	   ZCategoricalIndexr^   r    )r_   r   r   r:   Zdf_cat_colsr   r   r   test_categorical_columns`  s
    z0TestDataFrameFormatting.test_categorical_columnsc          
   C   sj   t t jddddt jdddt jdddt jd	d
dt jdddgtdd}d}t||ksftd S )Nz2013-01r   M)r+  r*  z2011-01)r*  z
2011-02-01r(  z2011-03-01 09:00Hz2011-04abcd)r{   r|   Cz         A                 B  C
0  2013-01           2011-01  a
1  2013-02        2011-02-01  b
2  2013-03  2011-03-01 09:00  c
3  2013-04           2011-04  d)r   r	   period_rangePeriodrt   r"   r    )r_   r:   expr   r   r   test_periodi  s    z#TestDataFrameFormatting.test_periodN)dr  r  r  ra   rh   rr   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r!  r&  r   markparametrizer-  r0  r2  r7  r9  r;  rB  rC  rF  rI  rK  rL  rM  rP  rY  rf  rh  rk  ro  rq  rt  ru  rv  rw  rx  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   rU      s   
	  
-#' 
 $
		:	M/3&)<
	rU   c              C   sV   t dgd } t dgd }t ddddddg}|d d d }| |||d	}|S )
Nr   r   abr   r  ZabcdeZabcdefr   )oneltwolascdesc)r   r   )s1s2Zs3Zs4	test_sersr   r   r   gen_series_formatting  s    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d Zejdddddddg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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$dFS )GTestSeriesFormattingc             C   s   t  | _d S )N)re   ZmakeTimeSeriests)r_   methodr   r   r   setup_method  s    z!TestSeriesFormatting.setup_methodc             C   s6   t dgd }t| t dgd }d|_t| d S )Nu   σrV   u   אi  Ztitle1)r   r8   r   )r_   r  r   r   r   r   test_repr_unicode  s
    z&TestSeriesFormatting.test_repr_unicodec                s  t  }| j }| jj|d}|d ks*t|  |ks>tdj | jj d}dd |dd d D } fdd| jD }||kst| jd d	  }|d
kst| jd d	 jd	d}|d
kst| j }d|_	|jdddd}|dd  }|dt
| dkstd S )N)r#   z%.4f)r[  c             S   s   g | ]}|  d  qS )ri   )r1   )rx   r   r   r   r   rz     s    z7TestSeriesFormatting.test_to_string.<locals>.<listcomp>r7   r   c                s   g | ]} |qS r   r   )rx   r   )r   r   r   rz     s    r   zSeries([], Freq: B))lengthr   T)r  r   rX   zFreq: B, Name: foo, Length: z, dtype: float64)r   r  r^   r    r)   r   r`  r1   rW  r   r?   )r_   r#   r  re  r,   r*   cp	last_liner   )r   r   rf    s&    

z#TestSeriesFormatting.test_to_stringc             C   s6   t tjdtddddd}t|}d|ks2td S )NrV   z1/1/2000)r+  r   )rk   r   zFreq: D, Name: 0)r   rB   r\   r]   r   r8   r    )r_   r  r,   r   r   r   test_freq_name_separation  s    z.TestSeriesFormatting.test_freq_name_separationc             C   s   t dtjddg}| }d}||ks*tt dtjddg}| }d}||ksTtt ddddg}| }d	}||ks|td S )
Nr   gGzg=
ףp=@z'0     foo
1     NaN
2   -1.23
3    4.56r   r  z#0    foo
1    NaN
2    bar
3    bazrb   z#0    foo
1      5
2    bar
3    baz)r   rB   rp   r^   r    )r_   r  r,   r*   r   r   r   test_to_string_mixed  s    z)TestSeriesFormatting.test_to_string_mixedc             C   s>   t dddddg}tj|d d d< | }d}||ks:td S )Ng        ghs?g       @g      g      @r}   z;0       NaN
1    1.5678
2       NaN
3   -3.0000
4       NaN)r   rB   rp   r^   r    )r_   r  r,   r*   r   r   r   test_to_string_float_na_spacing  s
    z4TestSeriesFormatting.test_to_string_float_na_spacingc             C   s0   t ddddg}|jdd}d}||ks,td S )Nri   r}   r   r   F)rk   z 1
 2
 3
 4)r   r^   r    )r_   r  r,   r*   r   r   r   test_to_string_without_index  s    z1TestSeriesFormatting.test_to_string_without_indexc             C   s*   t ddgdd}tj|dd}|  d S )Nri   r}   u
   עברית)r   )r   rd   ZSeriesFormatterZ_get_footer)r_   r  Zsfr   r   r   test_unicode_name_in_footer  s    z0TestSeriesFormatting.test_unicode_name_in_footerc          
   C   s  t ddddgddddgd	}d
}t||ks0tt ddddgddddgd	}d}t||ks`tt ddddgddddgd	}d}t||kstt ddddgddddgdd}d}t||ksttjddddg}t ddddg|d	}d}t||kstt ddddgddtjd gd	}d!}t||ks2tt ddddgddtd"d gd	}d#}t||ksjtt	d$d%T t ddddgdd&}d'}t||kstddddg|_
d(}t||kstW d Q R X t	d)d* t ddddgddddgd	}d+}t||kstt ddddgddddgd	}d,}t||ks@tt ddddgddddgd	}d-}t||ksrtt ddddgddddgdd}d.}t||ksttjddddg}t ddddg|d	}d/}t||kstt ddddgddtjd gd	}d0}t||kstt ddddgddtd"d gd	}d1}t||ksPtt	d$d%T t ddddgdd&}d2}t||kstddddg|_
d3}t||kstW d Q R X t d4d5ddgdd6d4dgd	}d7}t||kstW d Q R X d S )8Nr   r   ZCCCr(  u   あu   いいu	   うううu   ええええ)rk   uQ   あ         a
いい       bb
ううう     CCC
ええええ      D
dtype: objectr   r   uQ   a         あ
bb       いい
c       ううう
ddd    ええええ
dtype: objectu   ああu   いいいいu   うu	   えええui   ああ         あ
いいいい      いい
う        ううう
えええ     ええええ
dtype: objectu   おおおおおおお)rk   r   u   ああ         あ
いいいい      いい
う        ううう
えええ     ええええ
Name: おおおおおおお, dtype: object)u   あu   いい)u   うu   え)u	   おおおu   かかかか)u   きu   くくri   rl  i  i  uv   あ    いい          1
う    え          22
おおお  かかかか     3333
き    くく      44444
dtype: int64ZABu	   あああuF   1          1
AB        22
NaN     3333
あああ    44444
dtype: int64z
2011-01-01u   1                          1
AB                        22
2011-01-01 00:00:00     3333
あああ                    44444
dtype: int64zdisplay.max_rowsr   )r   u]   0       あ
     ... 
3    ええええ
Name: おおおおおおお, Length: 4, dtype: objectum   ああ        あ
       ... 
えええ    ええええ
Name: おおおおおおお, Length: 4, dtype: objectz display.unicode.east_asian_widthTuW   あ            a
いい         bb
ううう      CCC
ええええ      D
dtype: objectuW   a            あ
bb         いい
c        ううう
ddd    ええええ
dtype: objectuu   ああ              あ
いいいい        いい
う            ううう
えええ      ええええ
dtype: objectu   ああ              あ
いいいい        いい
う            ううう
えええ      ええええ
Name: おおおおおおお, dtype: objectu   あ      いい            1
う      え             22
おおお  かかかか     3333
き      くく        44444
dtype: int64uO   1             1
AB           22
NaN        3333
あああ    44444
dtype: int64u   1                          1
AB                        22
2011-01-01 00:00:00     3333
あああ                 44444
dtype: int64ud   0          あ
       ...   
3    ええええ
Name: おおおおおおお, Length: 4, dtype: objectux   ああ            あ
            ...   
えええ    ええええ
Name: おおおおおおお, Length: 4, dtype: objectu   ¡¡u   い¡¡u   ¡¡¡¡いいuz   ああ              ¡¡
¡¡¡¡いい        い¡¡
¡¡            ううう
えええ      ええええ
dtype: object)r   r8   r    r   r   r   rB   rp   r   r   rk   )r_   r  r*   r   r   r   r   test_east_asian_unicode_series  s     


z3TestSeriesFormatting.test_east_asian_unicode_seriesc             C   sZ   dddddg}xFt t|dD ]0}|dr2q"t rFd|ksRtq"d	|ks"tq"W d S )
Ng  J\aiBg  if Bg  
Z{Bg  Bg  ŉ*Br7   zdtype:z+010z+10)r8   r   r1   r9   rs  r    )r_   r  rS   r   r   r   r  	  s    
z*TestSeriesFormatting.test_float_trim_zerosc             C   sx   t ddd}td|d}| }d|ks,ttdtdtgd}||}| }d	|ks^tt|j}d	|ksttd S )
NZ20130102r>   )r+  ri   )rk   z
2013-01-02r}   Z20130111r   )	r   r   r^   r    r   r   rV  r"   rk   )r_   rk   r  r,   r  r   r   r   test_datetimeindex	  s    

z'TestSeriesFormatting.test_datetimeindexr'  z2017-01-01 23:59:59.999999999z2017-01-01 23:59:59.99999999z2017-01-01 23:59:59.9999999z2017-01-01 23:59:59.999999z2017-01-01 23:59:59.99999z2017-01-01 23:59:59.9999c             C   sZ   t t|ddd}t|}||ks&tt|ddd}t d|d}t|j}||ksVtd S )Nr(  rb   )r)  r*  r+  r   )rk   )r   r   r"   r    rk   )r_   r'  r  r,   r,  r  r   r   r   r-  	  s    
z5TestSeriesFormatting.test_datetimeindex_highprecisionc       	   	   C   s&  ddl m }m} ttjddgdd  ttddd	d
}||d }| }d|ks^td|ksjtd|ksvtt|dddddgd }|| }| }d|kstt|ddddgd }|| }| }d|kstd|kstt|dddddgd }|| }| }d|ks$td|ks2tt|dddddddgd }|| }| }d|ksntd|ks|t|ddd}ttddd	d
| }|| }| }d|kst|dd}ttddd	d
| }|| }| }d|ksttt	j
ddd}| }|d ks"td S )!Nr   )r   	timedeltaiL  ro   ztimedelta64[ns])rX   z2012-1-1r   r(  )r+  r*  ri   z1 daysz00:00:00r   i  rD  )microsecondz-1 days +23:59:59.999850z-1 days +23:00:00z1 days 23:00:00z-1 days +22:59:00z1 days 22:59:00z-1 days +22:58:59.999850z0 days 22:58:59.999850rb   )minutessecondsz-1 days +23:54:57i&  )microsecondsz2012-01-01 23:59:59.999450)r+  z 0   1 days
1   2 days
2   3 days)r   r  r   rB   rC   r^   r   shiftr    r   Ztimedelta_range)	r_   r   r  r  rX  r,   otdr  r   r   r   test_timedelta64	  sP    
z%TestSeriesFormatting.test_timedelta64c             C   sD   t ddgddgd}t|j|d< t|jd }d|ks@td S )Nri   r}   z
2012-01-01z
2012-01-02)r{   r|   r|   r   )r	   r   r   r|   r8   rc   r    )r_   r:   r,   r   r   r   test_mixed_datetime64
  s    z*TestSeriesFormatting.test_mixed_datetime64c             C   s   t jdddd}ttjddd|d}d}t||ks:tt|}d	}t||ksVttt jd
ddt jdddt jdddg}d}t||kstd S )Nz2013-01r>   r  )r+  r*  rN  )rX   )rk   zc2013-01    0
2013-02    1
2013-03    2
2013-04    3
2013-05    4
2013-06    5
Freq: M, dtype: int64z^0    2013-01
1    2013-02
2    2013-03
3    2013-04
4    2013-05
5    2013-06
dtype: period[M]z2011-01)r*  z
2011-02-01r(  z2011-03-01 09:00r  zO0             2011-01
1          2011-02-01
2    2011-03-01 09:00
dtype: object)r   r  r   rB   r   r"   r    r  )r_   rk   r  r  r   r   r   r  "
  s    z TestSeriesFormatting.test_periodc          	   C   s^  ddddddddgddddddddgg}t t| }tj|ddgd	}ttjd
|d}tdd  t	t
|ddkstW d Q R X tdd  t	t
|ddkstW d Q R X tdd  t	t
|ddkstW d Q R X tdd" t	t
|ddkstW d Q R X tdd" t	t
|ddksDtW d Q R X ttjd
d }tdd" t	t
|ddkstW d Q R X tdd" t	t
|ddkstW d Q R X tdd" t	t
|ddkstW d Q R X tdd" t	t
|ddkstW d Q R X tdd" t	t
|ddksPtW d Q R X d S )Nr   r  r   r  r  r  r  r  )r  r   )rk   zdisplay.max_rowsrV   r7   r   rb   r}   ri   r   r   r   )rt   ru   r   r   r   rB   r\   r]   r   r?   r"   r1   r    )r_   r  r  rk   r  r   r   r   test_max_multi_index_displayK
  s4    $$$&&&&&&z1TestSeriesFormatting.test_max_multi_index_displayc             C   s^   t dddddddddddddgd }tdddd t|}W d Q R X d}||ksZtd S )Nri   gH.?rV   zdisplay.max_rowszdisplay.show_dimensionsFz0      1.0000
1      1.0000
2      1.0000
3      1.0000
4      1.0000
        ...  
125    1.0000
126    1.0000
127    0.9999
128    1.0000
129    1.0000
dtype: float64)r   r   r   r8   r    )r_   r  r   r  r   r   r   test_consistent_formats
  s
    (z+TestSeriesFormatting.test_consistent_formatc          	   C   sj   t dd t|}W d Q R X |d}dd t|dD d d }tdd |D }|d	ksftd S )
Nzdisplay.max_rowsrV   r7   c             S   s   g | ]}t d |s|qS )z	[^\.]*\.+)rK   rL   )rx   rS   r   r   r   rz   
  s    z3TestSeriesFormatting.chck_ncols.<locals>.<listcomp>r   c             S   s   h | ]}t | qS r   )r?   r   )rx   rS   r   r   r   	<setcomp>
  s    z2TestSeriesFormatting.chck_ncols.<locals>.<setcomp>ri   )r   r8   r1   r?   r    )r_   r  r   r/  Z	ncolsizesr   r   r   
chck_ncols
  s    
zTestSeriesFormatting.chck_ncolsc          	   C   s   t  }tddddv t|d }d}||ks2tt|d }d}||ksNtt|d	 }d
}||ksjtt|d }d}||kstW d Q R X d S )Nzdisplay.max_rowsr   zdisplay.show_dimensionsFr  z50     a
1     a
     ..
98    a
99    a
dtype: objectr  z:0     ab
1     ab
      ..
98    ab
99    ab
dtype: objectr  zI0         a
1        ab
      ...  
4     abcde
5    abcdef
dtype: objectr  zI5    abcdef
4     abcde
      ...  
1        ab
0         a
dtype: object)r  r   r8   r    )r_   r  r   r  r   r   r   test_format_explicit
  s    z)TestSeriesFormatting.test_format_explicitc             C   s&   t  }x| D ]}| | qW d S )N)r  valuesr  )r_   r  r  r   r   r   
test_ncols
  s    zTestSeriesFormatting.test_ncolsc          	   C   sv   t tddd}tdd t|d}W d Q R X ddg}|d  }||ksTtd	g}|d  }||ksrtd S )
NrV   rN  )rX   zdisplay.max_rowsri   r7   0r   z..)r   r[   r   r8   r1   r    )r_   r  strreprZexp1Zres1Zexp2Zres2r   r   r   test_max_rows_eq_one
  s    z)TestSeriesFormatting.test_max_rows_eq_onec          	   C   s   dd }t ddddg}tdd t|dd	}W d Q R X ||dksNtt dd
ddg}tdd t|dd	}W d Q R X ||dkstd S )Nc             S   s   t td|  d S )Nz[^\.]*(\.*)r   )r?   rK   rL   groups)r  r   r   r   getndots
  s    z:TestSeriesFormatting.test_truncate_ndots.<locals>.getndotsr   r}   r   r>   zdisplay.max_rowsr7    r   r:  i  )r   r   r8   replacer    )r_   r  r  r  r   r   r   test_truncate_ndots
  s    z(TestSeriesFormatting.test_truncate_ndotsc          	   C   s   t td}dt|ksttdd dt|ks8tW d Q R X tdd dt|ks^tW d Q R X tdddd dt|kstW d Q R X d S )Nrb   ZLengthzdisplay.max_rowsr   zdisplay.show_dimensionsTF)r   r[   r8   r    r   )r_   r  r   r   r   r  
  s    z)TestSeriesFormatting.test_show_dimensionsc          	   C   s   t td}dt|kstt td}dt|ks<ttdddd& dt|ks\tdt|ksltW d Q R X tdd	dd  d
t|kstW d Q R X tdddd	 d
t|kstW d Q R X tdd dd	 dt|kstW d Q R X d S )Nro   z..r   zdisplay.max_rowsrV   zdisplay.min_rowsr   z2  r   z5      5)r   r   r[   r8   r    r   )r_   r  r   r   r   r   
  s    z'TestSeriesFormatting.test_repr_min_rowsc             C   sV   t tddd}d|_|jddd}d}||ks4t|jdd	d}d
}||ksRtd S )Nr   rN  )rX   Zmyserr}   T)r   r   z&0      0
      ..
99    99
Name: myserFz0      0
      ..
99    99)r   r[   r   r^   r    )r_   r  r   r  r   r   r   test_to_string_name
  s    z(TestSeriesFormatting.test_to_string_namec             C   sP   t tddd}|jddd}d}||ks.t|jddd}d	}||ksLtd S )
Nr   rN  )rX   r}   T)r   rX   z'0      0
      ..
99    99
dtype: int64Fz0      0
      ..
99    99)r   r[   r^   r    )r_   r  r   r  r   r   r   test_to_string_dtype
  s    z)TestSeriesFormatting.test_to_string_dtypec             C   s2   t tddd}|jddd}d}||ks.td S )Nr   rN  )rX   r}   T)r   r  z&0      0
      ..
99    99
Length: 100)r   r[   r^   r    )r_   r  r   r  r   r   r   test_to_string_length
  s    z*TestSeriesFormatting.test_to_string_lengthc             C   s6   t jtdtjd}|jddd}d}||ks2td S )Nr   )rk   rX   r   r}   )na_repr   z0    foo
      ..
99   foo)r   r   r[   rB   float64r^   r    )r_   r  r   r  r   r   r   test_to_string_na_rep  s    z*TestSeriesFormatting.test_to_string_na_repc             C   s8   t jtddd}|jdd dd}d}||ks4td S )	NrV   r  )rX   c             S   s   | dS )Nz2.1fr   )r   r   r   r   r   	  r   zBTestSeriesFormatting.test_to_string_float_format.<locals>.<lambda>r}   )r[  r   z0   0.0
     ..
9   9.0)r   r   r[   r^   r    )r_   r  r   r  r   r   r   test_to_string_float_format  s    z0TestSeriesFormatting.test_to_string_float_formatc             C   sZ   t jtddd}d|j_|jddd}d}||ks8t|jd	dd}d
}||ksVtd S )NrV   rN  )rX   r   Tr}   )r   r   zfoo
0    0
    ..
9    9Fz0    0
    ..
9    9)r   r   r[   rk   r   r^   r    )r_   r  r   r  r   r   r   test_to_string_header  s    z*TestSeriesFormatting.test_to_string_headerc             C   sJ   t dgdgdgdgdddg}|jdd	gd
}d}||ksFtd S )Nr   ri   r}   r   )r   r   r   r   r   r   Zr1Zr2)r   z    r1 r2
a b      
0 1  2  3)r   r	   r   r^   r    )r_   r:   r   r  r   r   r   test_to_string_multindex_header  s
    
z4TestSeriesFormatting.test_to_string_multindex_headerN)%r  r  r  r  r  rf  r  r  r  r  r  r  r  r  r   r  r  r-  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r   r   r   r   r    sN    @<)(

	
r  c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestGenericArrayFormatterc             C   sP   t tddg}| }t|dks,t|d dks<t|d dksLtd S )NTFr}   r   z  Trueri   z False)rd   GenericArrayFormatterrB   rC   
get_resultr?   r    )r_   objr   r   r   r   test_1d_array"  s
    z'TestGenericArrayFormatter.test_1d_arrayc             C   sX   t tddgddgg}| }t|dks4t|d dksDt|d dksTtd S )NTFr}   r   z [True, False]ri   z [False, True])rd   r  rB   rC   r  r?   r    )r_   r  r   r   r   r   test_2d_array,  s
    z'TestGenericArrayFormatter.test_2d_arrayc             C   sh   t tddgddggddgddggg}| }t|dksDt|d dksTt|d dksdtd S )NTFr}   r   z [[True, True], [False, False]]ri   z [[False, True], [True, False]])rd   r  rB   rC   r  r?   r    )r_   r  r   r   r   r   test_3d_array3  s    (z'TestGenericArrayFormatter.test_3d_arrayc                sX   G dd dt jjj G  fdddt jjj}t | }t|}d}||ksTtd S )Nc               @   s$   e Zd Zedd Zedd ZdS )zCTestGenericArrayFormatter.test_2d_extension_type.<locals>.DtypeStubc             S   s   t jS )N)rB   Zndarray)r_   r   r   r   r   A  s    zHTestGenericArrayFormatter.test_2d_extension_type.<locals>.DtypeStub.typec             S   s   dS )N	DtypeStubr   )r_   r   r   r   r   E  s    zHTestGenericArrayFormatter.test_2d_extension_type.<locals>.DtypeStub.nameN)r  r  r  propertyr   r   r   r   r   r   r  @  s   r  c                   s,   e Zd Zdd Zdd Ze fddZdS )zETestGenericArrayFormatter.test_2d_extension_type.<locals>.ExtTypeStubc             S   s   dS )Nr}   r   )r_   r   r   r   __len__J  s    zMTestGenericArrayFormatter.test_2d_extension_type.<locals>.ExtTypeStub.__len__c             S   s   |dk|dkgS )Nri   r   r   )r_   rH   r   r   r   r  M  s    zQTestGenericArrayFormatter.test_2d_extension_type.<locals>.ExtTypeStub.__getitem__c                s     S )Nr   )r_   )r  r   r   rX   P  s    zKTestGenericArrayFormatter.test_2d_extension_type.<locals>.ExtTypeStub.dtypeN)r  r  r  r   r  r  rX   r   )r  r   r   ExtTypeStubI  s   r  z60    [False  True]
1    [ True False]
dtype: DtypeStub)r   api
extensionsZExtensionDtypeZExtensionArrayr   r8   r    )r_   r  Zseriesr   r*   r   )r  r   test_2d_extension_type<  s    	z0TestGenericArrayFormatter.test_2d_extension_typeN)r  r  r  r  r  r  r  r   r   r   r   r  !  s   
	r  c               C   s   dddkS )Ng    CAz.4gz1.7e+008r   r   r   r   r   rs  Z  s    rs  c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestFloatArrayFormatterc             C   s2   t tjg tjd}| }t|dks.td S )N)rX   r   )rd   FloatArrayFormatterrB   rC   r  r  r?   r    )r_   r  r,   r   r   r   	test_misc_  s    z!TestFloatArrayFormatter.test_miscc             C   sF   t tjddgtjd}| }|d dks2t|d dksBtd S )Nr   r   )rX   z 12.0ri   z  0.0)rd   r  rB   rC   r  r  r    )r_   r  r,   r   r   r   test_formatd  s    z#TestFloatArrayFormatter.test_formatc          	   C   s>   t dd( t ddg}d}t||ks0tW d Q R X d S )Nzdisplay.precisionr   g     @@g     h@z"0     840
1    4200
dtype: float64)r   r   r   r"   r    )r_   r  expected_outputr   r   r   -test_output_display_precision_trailing_zeroesj  s    zETestFloatArrayFormatter.test_output_display_precision_trailing_zeroesc             C   s   t ddv t ddddddd	d
dddddddddgi}dddddd}x0| D ]$\\}}}t||| |ksVtqVW W d Q R X d S )Nzdisplay.precisionr>   Zcol1g}Bz>gHz>gz>gH׊>gƠ>gƠ>g5Ǡ>gv!>g.6ư>gư>gT5eǰ>g>g$>gh㈵>gB>gTqs*>zo           col1
0  9.999000e-08
1  1.000000e-07
2  1.000100e-07
3  2.000000e-07
4  4.999000e-07
5  5.000000e-07z_           col1
1  1.000000e-07
2  1.000100e-07
3  2.000000e-07
4  4.999000e-07
5  5.000000e-07z           col1
1  1.000000e-07
2  1.000100e-07
3  2.000000e-07
4  4.999000e-07
5  5.000000e-07
6  5.000100e-07
7  6.000000e-07z            col1
8   9.999000e-07
9   1.000000e-06
10  1.000100e-06
11  2.000000e-06
12  4.999000e-06
13  5.000000e-06
14  5.000100e-06
15  6.000000e-06zg        col1
9   0.000001
10  0.000001
11  0.000002
12  0.000005
13  0.000005
14  0.000005
15  0.000006))r   r>   )ri   r>   )ri   r   )r      )r   r  )r   r   r	   itemsr"   r    )r_   r   r	  r)  stopvr   r   r   test_output_significant_digitss  s4    
	
z6TestFloatArrayFormatter.test_output_significant_digitsc          	   C   s   t ddn t tdgd}t|dks0tt tdgd}t|dksRtt tddgd}t|dksvtW d Q R X d S )	Nzdisplay.precisionr   g1@)r   z            x
0  12345.6789g    >Az           x
0  2000000.0z)            x
0  1.2346e+04
1  2.0000e+06)r   r   r	   r   r"   r    )r_   r:   r   r   r   test_too_long  s    z%TestFloatArrayFormatter.test_too_longN)r  r  r  r  r  r
  r  r  r   r   r   r   r  ^  s
   	Ir  c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestRepr_timedelta64c             C   s   t jddd}t jddd}t jddd}t jddd}dd	 }||d
ksPt|| dksbt||dksrt||dkst||dkst||| dkst|| | dkst||| dkst|| | dkstd S )Nri   r(  )unitr   r  i  msc             S   s   |   S )N)
_repr_base)r   r   r   r   r     r   z0TestRepr_timedelta64.test_none.<locals>.<lambda>z1 daysz-1 daysz0 daysz0 days 00:00:01z0 days 00:00:00.500000z1 days 00:00:01z-1 days +00:00:01z1 days 00:00:00.500000z-1 days +00:00:00.500000)r   to_timedeltar    )r_   delta_1ddelta_0ddelta_1sdelta_500msdreprr   r   r   	test_none  s    zTestRepr_timedelta64.test_nonec             C   s   t jddd}t jddd}t jddd}t jddd}dd	 }||d
ksPt|| dksbt||dksrt||dkst||dkst||| dkst|| | dkst||| dkst|| | dkstd S )Nri   r(  )r  r   r  i  r  c             S   s   | j ddS )NZsub_day)r   )r  )r   r   r   r   r     r   z3TestRepr_timedelta64.test_sub_day.<locals>.<lambda>z1 daysz-1 daysz00:00:00z00:00:01z00:00:00.500000z1 days 00:00:01z-1 days +00:00:01z1 days 00:00:00.500000z-1 days +00:00:00.500000)r   r  r    )r_   r  r  r  r  r  r   r   r   test_sub_day  s    z!TestRepr_timedelta64.test_sub_dayc             C   s   t jddd}t jddd}t jddd}t jddd}dd	 }||d
ksPt|| dksbt||dksrt||dkst||dkst||| dkst|| | dkst||| dkst|| | dkstd S )Nri   r(  )r  r   r  i  r  c             S   s   | j ddS )Nr   )r   )r  )r   r   r   r   r     r   z0TestRepr_timedelta64.test_long.<locals>.<lambda>z1 days 00:00:00z-1 days +00:00:00z0 days 00:00:00z0 days 00:00:01z0 days 00:00:00.500000z1 days 00:00:01z-1 days +00:00:01z1 days 00:00:00.500000z-1 days +00:00:00.500000)r   r  r    )r_   r  r  r  r  r  r   r   r   	test_long  s    zTestRepr_timedelta64.test_longc             C   s   t jddd}t jddd}t jddd}dd }||dksBt|| d	ksTt||d
ksdt||dkstt|| | dkstd S )Nri   r(  )r  r   nsc             S   s   | j ddS )Nrd  )r   )r  )r   r   r   r   r     r   z/TestRepr_timedelta64.test_all.<locals>.<lambda>z1 days 00:00:00.000000000z-1 days +00:00:00.000000000z0 days 00:00:00.000000000z0 days 00:00:00.000000001z-1 days +00:00:00.000000001)r   r  r    )r_   r  r  Z	delta_1nsr  r   r   r   test_all  s    zTestRepr_timedelta64.test_allN)r  r  r  r  r  r  r  r   r   r   r   r    s   r  c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestTimedelta64Formatterc             C   s   t jttdt jg dd}tj|dd }|d  dksDt	|d  d	ksXt	tj|dd
 dd }|d  d	kst	tj|dd }|d  dkst	|d  dkst	tj|dd
 dd }|d  dkst	d S )Nrb   r(  )r  T)boxr   z'0 days'ri   z'1 days'r}   Fz0 daysz1 days)
r   r  rt   r[   r   rd   Timedelta64Formatterr  r   r    )r_   r   r,   r   r   r   	test_days  s    z"TestTimedelta64Formatter.test_daysc             C   s^   t jttdt jg dd}tj| dd }|d  dksFt	|d  d	ksZt	d S )
Nrb   r(  )r  T)r!  r   z'0 days'ri   z	'-1 days')
r   r  rt   r[   r   rd   r"  r  r   r    )r_   r   r,   r   r   r   test_days_neg  s    z&TestTimedelta64Formatter.test_days_negc             C   s\   t jttdt jg dd}tj|dd }|d  dksDt	|d  d	ksXt	d S )
Nrb   r  )r  T)r!  r   z'0 days 00:00:00'ri   z'0 days 00:00:01')
r   r  rt   r[   r   rd   r"  r  r   r    )r_   rX  r,   r   r   r   test_subdays!  s    z%TestTimedelta64Formatter.test_subdaysc             C   s^   t jttdt jg dd}tj| dd }|d  dksFt	|d  d	ksZt	d S )
Nrb   r  )r  T)r!  r   z'0 days 00:00:00'ri   z'-1 days +23:59:59')
r   r  rt   r[   r   rd   r"  r  r   r    )r_   rX  r,   r   r   r   test_subdays_neg'  s    z)TestTimedelta64Formatter.test_subdays_negc             C   s   t jttdt jg dd}tj|dd }|d  dksDt	t jttddd}tj|dd }|d  dkst	d S )Nri   r(  )r  T)r!  r   z'0 days')
r   r  rt   r[   r   rd   r"  r  r   r    )r_   r   r,   r   r   r   	test_zero-  s    z"TestTimedelta64Formatter.test_zeroN)r  r  r  r#  r$  r%  r&  r'  r   r   r   r   r   
  s
   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S )TestDatetime64Formatterc             C   s\   t tdddtddddtjg}t| }|d  dksDt|d  dksXtd S )Ni  ri   r   r   z2013-01-01 00:00:00z2013-01-01 12:00:00)	r   r   r   r   rd   Datetime64Formatterr  r   r    )r_   r   r,   r   r   r   
test_mixed8  s    "z"TestDatetime64Formatter.test_mixedc             C   sZ   t tdddtdddtjg}t| }|d  dksBt|d  dksVtd S )Ni  ri   r}   r   z
2013-01-01z
2013-01-02)	r   r   r   r   rd   r)  r  r   r    )r_   r   r,   r   r   r   
test_dates>  s     z"TestDatetime64Formatter.test_datesc             C   s4   t tdg}t| }|d  dks0td S )Nr:  r   z1970-01-01 00:00:00.000000200)r   r   rd   r)  r  r   r    )r_   r   r,   r   r   r   test_date_nanosD  s    z'TestDatetime64Formatter.test_date_nanosc             C   s  t tdddd}tj|jd< t| }|d  dks@t	|d  dksTt	|d	  d
ksht	t tdddd}tj|jd< t| }|d  dkst	|d  dkst	|d	  dkst	t tdddd}tj|jd< t| }|d  dkst	|d  dks(t	|d	  dks>t	t tdddd}tj|jd< t| }|d  dkst	|d  dkst	|d	  dkst	t tdddd}tj|jd< t| }|d  dkst	|d  dkst	|d	  dkst	d S )Nz20130101 09:00:00rb   r(  )r+  r*  ri   r   z2013-01-01 09:00:00r   r   z2013-01-05 09:00:00r  z2013-01-01 09:00:04r  z2013-01-01 09:00:00.000z2013-01-01 09:00:00.004usz2013-01-01 09:00:00.000000z2013-01-01 09:00:00.000004Nz2013-01-01 09:00:00.000000000z2013-01-01 09:00:00.000000004)
r   r   rB   rp   rq   rd   r)  r  r   r    )r_   r   r,   r   r   r   test_dates_displayI  s<    z*TestDatetime64Formatter.test_dates_displayc             C   sN   t tdddtdddg}dd }tj||d}| }|ddgksJtd S )	Ni  ri   r}   c             S   s
   |  dS )Nz%Y-%m)r   )r   r   r   r   r   s  s    zOTestDatetime64Formatter.test_datetime64formatter_yearmonth.<locals>.format_func)	formatterz2016-01z2016-02)r   r   rd   r)  r  r    )r_   r   r   r0  r,   r   r   r   "test_datetime64formatter_yearmonthp  s
    z:TestDatetime64Formatter.test_datetime64formatter_yearmonthc             C   sH   t tjddgdd}dd }tj||d}| }|dd	gksDtd S )
Nz10:10:10.100z12:12:12.120z%H:%M:%S.%f)r   c             S   s
   |  dS )Nz%H:%M)r   )r   r   r   r   r     s    zPTestDatetime64Formatter.test_datetime64formatter_hoursecond.<locals>.format_func)r0  z10:10z12:12)r   r   r   rd   r)  r  r    )r_   r   r   r0  r,   r   r   r   #test_datetime64formatter_hoursecondz  s    z;TestDatetime64Formatter.test_datetime64formatter_hoursecondN)	r  r  r  r*  r+  r,  r/  r1  r2  r   r   r   r   r(  7  s   '
r(  c               @   s   e Zd Zdd Zdd ZdS )TestNaTFormattingc             C   s   t tjdkstd S )Nr   )r8   r   r   r    )r_   r   r   r   	test_repr  s    zTestNaTFormatting.test_reprc             C   s   t tjdkstd S )Nr   )r"   r   r   r    )r_   r   r   r   test_str  s    zTestNaTFormatting.test_strN)r  r  r  r4  r5  r   r   r   r   r3    s   r3  c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestDatetimeIndexFormatc             C   sB   t tddddt jg }|d dks.t|d dks>td S )Ni  ri   r   r   z2003-01-01 12:00:00r   )r   r   r   r   r   r    )r_   	formattedr   r   r   test_datetime  s    z%TestDatetimeIndexFormat.test_datetimec             C   s@   t tdddt jg }|d dks,t|d dks<td S )Ni  ri   r   z
2003-01-01r   )r   r   r   r   r   r    )r_   r7  r   r   r   	test_date  s    z!TestDatetimeIndexFormat.test_datec             C   s`   t jtdddgdd }|d dks,tt jtdddt jgdd }|d dks\td S )Ni  ri   T)utcr   z2013-01-01 00:00:00+00:00)r   r   r   r   r    r   )r_   r7  r   r   r   test_date_tz  s     z$TestDatetimeIndexFormat.test_date_tzc             C   sF   t tdddt jgjddd}|d dks2t|d dksBtd S )	Ni  r}   ri   z%m-%d-%YUT)Zdate_formatr  r   z
02-01-2003)r   r   r   r   r   r    )r_   r7  r   r   r   test_date_explicit_date_format  s    
z6TestDatetimeIndexFormat.test_date_explicit_date_formatN)r  r  r  r8  r9  r;  r=  r   r   r   r   r6    s   r6  c               @   s   e Zd Zdd Zdd ZdS )TestDatetimeIndexUnicodec             C   s>   t ttdddtdddg}d|ks.td|ks:td S )Ni  ri   i  z['2013-01-01',z, '2014-01-01'])r"   r   r   r   r    )r_   r  r   r   r   r+    s    "z#TestDatetimeIndexUnicode.test_datesc          	   C   sJ   t ttdddtddddtdddg}d|ks:td|ksFtd S )Ni  ri   i  r   z'2013-01-01 00:00:00',z'2014-01-01 00:00:00'])r"   r   r   r   r    )r_   r  r   r   r   r*    s
    (z#TestDatetimeIndexUnicode.test_mixedN)r  r  r  r+  r*  r   r   r   r   r>    s   r>  c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestStringRepTimestampc             C   s   t ddd}t|tt|ks$tt dddddd}t|tt|ksNtt ddddddd}t|tt|kszttd}t|dksttd	}t|d
kstd S )Ni  ri   r}   r   r   -   r:  z1970-01-01 00:00:00.000000200i  z1970-01-01 00:00:00.000001200)r   r"   r   r    )r_   dt_datedt_datetimedt_datetime_usZts_nanos_onlyZts_nanos_microsr   r   r   
test_no_tz  s    z!TestStringRepTimestamp.test_no_tzc          
   C   s   t dddtjd}t|tt|ks*tt ddddddtjd}t|tt|ksZtt dddddddtjd}t|tt|kstd S )Ni  ri   r}   )tzinfor   r   r@  )r   pytzr:  r"   r   r    )r_   rA  rB  rC  r   r   r   test_tz_pytz  s    z#TestStringRepTimestamp.test_tz_pytzc          
   C   s   t j }tddd|d}t|tt|ks2ttdddddd|d}t|tt|ks`ttddddddd|d}t|tt|kstd S )Ni  ri   r}   )rE  r   r   r@  )dateutilr$  Ztzutcr   r"   r   r    )r_   r:  rA  rB  rC  r   r   r   test_tz_dateutil  s    
z'TestStringRepTimestamp.test_tz_dateutilc             C   s.   x(t ttdfD ]}|tjdkstqW d S )N	isoformatr   )r"   r8   r   r   r   r    )r_   r+   r   r   r   test_nat_representations  s    z/TestStringRepTimestamp.test_nat_representationsN)r  r  r  rD  rG  rI  rK  r   r   r   r   r?    s   
r?  c           	   C   s  t dddddg} dddd	d
g}| |ks.tt ddddddg} dddddd
g}| |ks`td}tjt|d t dtjdg W d Q R X tjt|d t dddg W d Q R X tjt|d t dddg W d Q R X tjt|d t dddg W d Q R X d S )Ng0Bx?g0_^}?g      ?gF]kSU?gH.?z1.999%z2.001%z50%z66.667%z99.99%r   z0%z2.0%z66.67%z1percentiles should all be in the interval \[0,1\])rL   g?gMbPr}   r   )rd   format_percentilesr    r   r  r  rB   rp   )r,   r*   r  r   r   r   test_format_percentiles  s    rM  c              C   s>   t tddd} dddddd	d
ddddg}| |ks:td S )Nr   ri   r	  z0%z10%z20%z30%z40%z50%z60%z70%z80%z90%z100%)rd   rL  rB   r  r    )r,   r*   r   r   r   #test_format_percentiles_integer_idx  s    rN  c             C   s"   t d}| |}|jrtd S )Nz    import pandas as pd
    df = pd.DataFrame({"A": [1, 2]})
    df._repr_html_()

    cfg = get_ipython().config
    cfg['IPKernelApp']['parent_appname']
    df._repr_html_()
    )textwrapdedentZrun_cellZerror_in_execr    )ipcoder,   r   r   r   test_repr_html_ipython_config  s    	
rS  r  r^   Zto_htmlZto_latexzencoding, data)Nr   )zutf-8r   )gbku   造成输出中文显示乱码)r   r   c          
   C   s   t |g}|dkrH|d k	rHtjtdd t|| ||d W d Q R X nr|dkrtd 2 tjtdd t|| ||d W d Q R X W d Q R X n&t||  }t|| ||d || d S )N)r   r   z1buf is not a file name and encoding is specified.)rL   )r#   r%   r   zunknown encoding)r	   r   r  r  getattrre   r   LookupError)r  r$   r.   r%   r   r   r:   r*   r   r   r   test_filepath_or_buffer_arg  s    
(rW  c          	   C   s4   d}t jt|d t| |t d W d Q R X d S )Nz1buf is not a file name and it has no write method)rL   )r#   )r   r  	TypeErrorrU  rZ   )rg   r  r  r   r   r   &test_filepath_or_buffer_bad_arg_raises;  s    rY  )P__doc__r   r3  r   r  operatorr   r/   pathlibr   rK   shutilr   r   rO  rH  numpyrB   r   rF  Zpandas.compatr   r   Zpandasr   r	   r
   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingre   Zpandas.io.formats.formatformatsr   rd   Zpandas.io.formats.printingr   Zuse_32bit_reprZfixturer   r$   r.   r6   r=   rA   rJ   rN   rO   rP   rT   r  filterwarningsrU   r  r  r  rs  r  r  r   r(  r3  r6  r>  r?  rM  rN  rS  r  rW  rY  r   r   r   r   <module>   s   8	               r	     9kA-Q,