ó
šxŠ\c           @  s  d  d l  m Z d  d l m Z 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
 m Z m Z 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 d  d l m Z d  d l j j Z d  d l j j  j! Z" d e f d „  ƒ  YZ# d S(	   iÿÿÿÿ(   t   print_function(   t   datetimet	   timedeltaN(   t   PYPYt   StringIOt   lranget   u(   t   Categoricalt	   DataFramet   Seriest   compatt
   date_ranget   option_contextt   period_range(   t   TestDatat   TestDataFrameReprInfoEtcc           B  sn  e  Z d  „  Z d „  Z e j j d „  ƒ Z d „  Z d „  Z	 e j j d „  ƒ Z
 d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j j e d d ƒd „  ƒ Z e j j e d d ƒd „  ƒ Z e j j e d d ƒd „  ƒ Z d „  Z d „  Z  d „  Z! d „  Z" d  „  Z# RS(!   c         C  s7   t  |  j ƒ } t d t j d ƒ ƒ } t  | ƒ } d  S(   Nt   indexiè  (   t   reprt   emptyR   t   npt   arange(   t   selft   foot   frame(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_repr_empty   s    c         C  s5   t  ƒ  } t |  j ƒ } |  j j d t d | ƒ d  S(   Nt   verboset   buf(   R   R   t   mixed_framet   infot   False(   R   R   R   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_repr_mixed&   s    	c         C  sƒ   t  i t j j d ƒ d 6t j d ƒ d 6d t d ƒ ƒ} t j | j d  d … d f <t j | j d  d … d f <t	 | ƒ } d  S(   NiÈ   t   At   BR   i   (
   R   R   t   randomt   randnt   tmt   makeStringIndexR   t   nant   locR   (   R   t   biggieR   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_repr_mixed_big-   s    c         C  s(  t  ƒ  } t |  j ƒ } |  j j d t d | ƒ |  j j d d g ƒ j d t d | ƒ |  j j d d d g ƒ j d t d | ƒ t d d d d g ƒ } t | ƒ } |  j j d | ƒ t d	 g d d
 g d d g ƒ} d t | ƒ k sô t ‚ d t | ƒ k st ‚ d t | ƒ k s$t ‚ d  S(   NR   R   t   columnsR   R    i    i   i   s   a
	bs   a
	dR   s   a
	fs   	s   s   a
(	   R   R   R   R   R   t   reindexR   R   t   AssertionError(   R   R   R   t   no_indext   df(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt	   test_repr8   s    	(+!c      	   C  s¬   t  d d g d d g g ƒ } t d t ƒ  d t | ƒ k sF t ‚ Wd  QXt d t ƒ  d t | ƒ k st t ‚ Wd  QXt d d ƒ  d t | ƒ k s¢ t ‚ Wd  QXd  S(   Ni   i   i   i   s   display.show_dimensionss   2 rows x 2 columnst   truncate(   R   R   t   TrueR   R+   R   (   R   R-   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_repr_dimensionsQ   s    c         C  s;   t  t j d ƒ d t d ƒ d t d ƒ ƒ} t | ƒ d  S(   NiÈ   i   R)   R   (   iÈ   i   (   R   R   t   zerosR   R   (   R   R'   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_repr_big\   s    c         C  s!  d d  l  } | j } | j d d t d d ƒt i d g d d 6d g d t j ƒ  6d	 g d d	 6d	 g d t j ƒ  t d ƒ 6d
 t j	 d ƒ ƒ} t
 | ƒ t j d d d d ƒ t
 |  j ƒ t j d d d d ƒ t
 |  j ƒ t j d d d d ƒ t
 |  j ƒ t j ƒ  | | _ d  S(   Niÿÿÿÿt   ignoret   categoryt   modules   .*formati   i2   R   t   barR   s   display.precisioni   s   display.column_spacei
   s   display.max_rowss   display.max_columnsi   iè  (   t   warningst   filterst   filterwarningst   FutureWarningR   R   t   todayR   R   R   R   t   fmtt
   set_optionR   R#   t   reset_display_options(   R   R8   t   warn_filterst
   unsortable(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_repr_unsortablec   s&    	!

c         C  s¹   t  d ƒ } | j d ƒ } t i | | g d 6ƒ } t | ƒ } d } | j d ƒ d j ƒ  | k sk t ‚ t i | | g d 6ƒ } t | ƒ } | j d ƒ d j ƒ  | k sµ t ‚ d  S(   Ns   \u03c3\u03c3\u03c3\u03c3s   utf-8R   s         As   
i    (   R   t   encodeR   R   t   splitt   rstripR+   (   R   t   uvalt   bvalR-   t   resultt   ex_top(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_repr_unicode   s    %c         C  sC   t  i t d ƒ g d 6ƒ } t j r2 t | ƒ n t j | ƒ d  S(   Ns   \u05d0R   (   R   R   R
   t   PY3t   strt	   text_type(   R   R-   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt    test_unicode_string_with_unicode   s    	c         C  s@   t  i t d ƒ g d 6ƒ } t j r2 t | ƒ n
 t | ƒ d  S(   Ns   \u05d0R   (   R   R   R
   RK   t   bytesRL   (   R   R-   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_bytestring_with_unicode—   s    	c         C  s;   t  t j j d d ƒ d t j d d ƒ ƒ} t | ƒ d  S(   Ni
   i   R)   (   R   R   R!   R"   R#   t   rands_arrayR   (   R   R-   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_very_wide_info_reprž   s    c         C  sO   t  i d g d 6d d 6ƒ } t d d ƒ  d t | ƒ k sE t ‚ Wd  QXd  S(   Nizšl t   Ids  Is it possible to modify drop plot code so that the output graph is displayed in iphone simulator, Is it possible to modify drop plot code so that the output graph is â€¨displayed in iphone simulator.Now we are adding the CSV file externally. I want to Call the File through the code..t	   StringCols   display.max_columnsi   (   R   R   R   R+   (   R   R-   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt,   test_repr_column_name_unicode_truncation_bug£   s    	c      	   C  sz   d } t  d t d t ƒ A t d d d g d d d	 g g ƒ } | | j ƒ  k sX t ‚ Wd  QX| j ƒ  d  k sv t ‚ d  S(
   Ns”   \begin{tabular}{llll}
\toprule
{} &         0 &  1 &  2 \\
\midrule
0 &  $\alpha$ &  b &  c \\
1 &         1 &  2 &  3 \\
\bottomrule
\end{tabular}
s   display.latex.escapes   display.latex.reprs   $\alpha$t   bt   ci   i   i   (   R   R   R0   R   t   _repr_latex_R+   t   None(   R   RH   R-   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_latex_repr²   s    		$c         C  sh   t  ƒ  } |  j j d | ƒ |  j j d | ƒ t t j j d d ƒ ƒ } | j ƒ  | j d t ƒ d  S(   NR   i   i   R   (	   R   R   R   t   tsframeR   R   R!   R"   R   (   R   t   ioR   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt	   test_infoÄ   s    	
c         C  s–   t  j i t  j d d g d d ƒd 6ƒ } t ƒ  } | j d | ƒ | j ƒ  } t | j ƒ  j ƒ  ƒ } t	 j
 d j | ƒ ƒ } | | k s’ t ‚ d  S(   Ni   i   t   dtypet   i8t   aR   sÚ           <class 'pandas.core.frame.DataFrame'>
        RangeIndex: 2 entries, 0 to 1
        Data columns (total 1 columns):
        a    2 non-null int64
        dtypes: int64(1)
        memory usage: {} bytes
        (   t   pdR   R	   R   R   t   getvaluet   floatt   memory_usaget   sumt   textwrapt   dedentt   formatR+   (   R   R-   R   RH   RO   t   expected(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_info_memoryÎ   s    +	c         C  sß   d d l  m } m } t ƒ  } t t j j d d ƒ ƒ } | j d | ƒ t ƒ  } | j d | d d ƒ | j	 ƒ  } t
 | j ƒ  ƒ d k s“ t ‚ | } | d d ƒ t ƒ  } | j d | ƒ | | k sÑ t ‚ | d ƒ d  S(	   Niÿÿÿÿ(   R>   t   reset_optioni   ie   R   t   max_colsid   s   display.max_info_columns(   t   pandasR>   Rk   R   R   R   R!   R"   R   Rb   t   lent
   splitlinesR+   (   R   R>   Rk   R\   R-   t   rst   xp(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_info_wideá   s    			c         C  sJ   t  ƒ  } t t j j d d ƒ d d d d d g ƒ} | j d | ƒ d  S(   NiÜ  i   R)   R`   RV   R   (   R   R   R   R!   R"   R   (   R   R\   R   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_info_duplicate_columnsó   s    	c         C  sƒ   t  ƒ  } t d d g g d d d g ƒ} | j d | ƒ | j d ƒ | j ƒ  } d | d k si t ‚ d	 | d
 k s t ‚ d  S(   Ni   g       @R)   R`   R   i    s   a    1 non-null int64
i   s   a    1 non-null float64
i   (   R   R   R   t   seekt	   readlinesR+   (   R   R\   R   t   lines(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt0   test_info_duplicate_columns_shows_correct_dtypesû   s    	c   
      C  sà   d d d d d d d g } i  } d } x? t  | ƒ D]1 \ } } t j j d	 d
 | ƒj | ƒ | | <q4 Wt | ƒ } t ƒ  } | j d | ƒ | j ƒ  } x? t  | ƒ D]1 \ } } d | | | f }	 |	 | k s§ t	 ‚ q§ Wd  S(   Nt   int64t   float64s   datetime64[ns]s   timedelta64[ns]t
   complex128t   objectt   booli
   i   t   sizeR   s   %d    %d non-null %s(
   t	   enumerateR   R!   t   randintt   astypeR   R   R   Rb   R+   (
   R   t   dtypest   datat   nt   iR^   R-   R   t   rest   name(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_info_shows_column_dtypes  s    )	c         C  s4  t  t j j d d ƒ ƒ } x‘ d	 d t f d t f g D]t \ } } t d d ƒ W t ƒ  } | j	 d | d | ƒ | j
 ƒ  } t | j ƒ  j d ƒ ƒ | k s¥ t ‚ Wd  QXq7 Wx‘ d
 d t f d t f g D]t \ } } t d d ƒ W t ƒ  } | j	 d | d | ƒ | j
 ƒ  } t | j ƒ  j d ƒ ƒ | k s9t ‚ Wd  QXqË Wxê d d g D]Ü \ } } t d d ƒ W t ƒ  } | j	 d | d | ƒ | j
 ƒ  } t | j ƒ  j d ƒ ƒ | k s¾t ‚ Wd  QXt d d ƒ W t ƒ  } | j	 d | d | ƒ | j
 ƒ  } t | j ƒ  j d ƒ ƒ | k s&t ‚ Wd  QXqPWd  S(   Ni
   i   t   max_info_columnsi   R   R   s   
Rl   (   i   N(   i
   N(   i
   i   (   i   i   (   R   R   R!   R"   RY   R   R0   R   R   R   Rb   Rn   t   stripRD   R+   (   R   R-   t   len_R   R   R…   Rl   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_info_max_cols  s0    (	1(	1	-	c         C  s?  d d d d d d d g } i  } d } x? t  | ƒ D]1 \ } } t j j d	 d
 | ƒj | ƒ | | <q4 Wt | ƒ } t ƒ  } | j d | d t ƒ | j	 ƒ  j
 ƒ  } d | d k s¼ t ‚ | j d | d t ƒ | j	 ƒ  j
 ƒ  } d | d k sú t ‚ | j d | d t ƒ | j	 ƒ  j
 ƒ  } t j d | d ƒ s>t ‚ | j d  d  … d  d … f j d | d t ƒ | j	 ƒ  j
 ƒ  } t j d | d ƒ sœt ‚ d d d d g } i  } d } x? t  | ƒ D]1 \ } } t j j d	 d
 | ƒj | ƒ | | <qÇWt | ƒ } | | _ t j i d g d 6d d g ƒ}	 |	 j d | d t ƒ | j	 ƒ  j
 ƒ  } t j d | d ƒ swt ‚ |	 j d | d d ƒ | j	 ƒ  j
 ƒ  } t j d | d ƒ s»t ‚ | j ƒ  j ƒ  }
 t | ƒ | d | j j } |
 | k sýt ‚ t j | j j ƒ d } | t j | j ƒ  ƒ k s7t ‚ | j ƒ  j ƒ  | j d t ƒ j ƒ  k sgt ‚ t d d d g d d g ƒj d t ƒ t d d d g d d g ƒj j t d d d t j j d g t d ƒ g ƒ d d g ƒ } | j j | j d t ƒ | j j j | j d t ƒ j ƒ  } | d k s;t ‚ d  S(   NRx   Ry   s   datetime64[ns]s   timedelta64[ns]Rz   R{   R|   i
   i   R}   R   Rd   s   memory usage: iÿÿÿÿs   memory usage: [^+]+\+i   id   i   R`   R   R   t   deeps   memory usage: [^+]+$i   R)   R   R‚   iè  i    (   R~   R   R!   R   R€   R   R   R   R0   Rb   Ro   R+   R   t   ret   matcht   ilocR)   Ra   Rd   Re   Rn   R   t   nbytesR}   t   valuest
   MultiIndext   from_productt   range(   R   R   R‚   Rƒ   R„   R^   R-   R   R…   t   df_with_object_indext   df_sizet   exp_sizet   size_dft   mem(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_info_memory_usage8  sj    )	/)	"!0!"	
t   reasons'   on PyPy deep=True doesn't change resultc         C  s«   t  j i d g d 6d d g ƒ} | j d t d t ƒ j ƒ  | j d t ƒ j ƒ  k s^ t ‚ t  j i d g d 6ƒ } | j d t ƒ j ƒ  | j ƒ  j ƒ  k s§ t ‚ d  S(   Ni   R`   R   R   RŒ   (   Ra   R   Rd   R0   Re   R+   (   R   R•   t	   df_object(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt$   test_info_memory_usage_deep_not_pypyŠ  s    "		s(   on PyPy deep=True does not change resultc         C  s«   t  j i d g d 6d d g ƒ} | j d t d t ƒ j ƒ  | j d t ƒ j ƒ  k s^ t ‚ t  j i d g d 6ƒ } | j d t ƒ j ƒ  | j ƒ  j ƒ  k s§ t ‚ d  S(   Ni   R`   R   R   RŒ   (   Ra   R   Rd   R0   Re   R+   (   R   R•   Rœ   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt    test_info_memory_usage_deep_pypy—  s    "		s    PyPy getsizeof() fails by designc         C  s€   t  d d d t j j d g t d ƒ g ƒ d d g ƒ } | j d t ƒ j ƒ  } | t j	 | ƒ } t
 | ƒ d	 k  s| t ‚ d  S(
   NR‚   i   R   R`   iè  R)   R   RŒ   id   (   R   Ra   R’   R“   R”   Rd   R0   Re   t   syst	   getsizeoft   absR+   (   R   R-   R™   t   diff(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_usage_via_getsizeof¤  s    	c      	   C  s‹  t  ƒ  } t d d t d ƒ d d d d g ƒ} | j d | ƒ d | j ƒ  k sX t ‚ t  ƒ  } t d d t d ƒ d t d	 ƒ ƒ} | j d | ƒ d | j ƒ  k s­ t ‚ t  ƒ  } t d d t d ƒ d t j j t	 d ƒ t	 d ƒ g ƒ ƒ} | j d | ƒ d | j ƒ  k st ‚ t  ƒ  } t d d t d ƒ d t j j t	 d ƒ d
 d g g ƒ ƒ} | j d | ƒ d | j ƒ  k s‡t ‚ d  S(   Ni   R)   t   abR   i   i   R   t   +t   ABCR   R7   (
   R   R   t   listR   Rb   R+   Ra   R’   R“   R”   (   R   R   R-   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt    test_info_memory_usage_qualified²  s,    						c         C  sþ   d d l  m } d „  } d } t | ƒ } t j j t | ƒ t j d d | ƒg d d d	 g ƒ} t i t	 j
 j | | ƒ d
 6d | ƒ} | j d ƒ } | j j | j j k sº t ‚ | | ƒ | | ƒ k sØ t ‚ | | ƒ | | ƒ d k  sú t ‚ d  S(   Niÿÿÿÿ(   t   ascii_uppercasec         S  s   |  j  d t ƒ j ƒ  S(   NRŒ   (   Rd   R0   Re   (   t   f(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyRd   Ô  s    id   t   20160101t   periodst   namest   idt   datet   valueR   iÐ  (   t   stringR©   Rn   Ra   R’   R“   R§   R   R   R   R!   R"   t   unstackR‘   R   R+   (   R   t	   uppercaseRd   t   Nt   MR   R-   t	   unstacked(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt(   test_info_memory_usage_bug_on_multiindexÎ  s    	)c         C  sV   t  j d d g ƒ } t  j t j d ƒ d | d | ƒ} t ƒ  } | j d | ƒ d  S(   NR`   RV   i   R   R)   R   (   i   i   (   Ra   t   CategoricalIndexR   R   R2   R   R   (   R   t   idxR-   R   (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_info_categoricalæ  s    $	c         C  sÈ   d } t  i t j j d d | ƒd 6ƒ } t t j t d ƒ ƒ j t j j d d d | ƒƒ ƒ j d ƒ | d <| j	 ƒ  t
 ƒ  } | j d	 | ƒ | | d d
 k } t j
 ƒ  } | j d	 | ƒ d  S(   NiÄ	  id   R}   Rx   t
   abcdefghiji    i
   R5   R   t   d(   R   R   R!   R   R	   t   arrayR§   t   takeR€   t   isnaR   R   R
   (   R   Rƒ   R-   R   t   df2(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   test_info_categorical_columnî  s    %.
	c         C  s˜   t  d d d d d d d ƒ} t d d d	 d d ƒ} t i | d
 6| d 6ƒ } d } t i t | ƒ d
 6t | ƒ d 6ƒ } t | ƒ | k s” t ‚ d  S(   Ns   2011-01-01 09:00t   freqt   HR¬   i   t   tzs
   US/Easterns   2011-01Rµ   t   dtt   psÝ                            dt        p
0 2011-01-01 09:00:00-05:00  2011-01
1 2011-01-01 10:00:00-05:00  2011-02
2 2011-01-01 11:00:00-05:00  2011-03
3 2011-01-01 12:00:00-05:00  2011-04
4 2011-01-01 13:00:00-05:00  2011-05(   R   R   R   R   R   R+   (   R   RÅ   RÆ   R-   t   exp(    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt#   test_repr_categorical_dates_periodsý  s    	&($   t   __name__t
   __module__R   R   t   pytestt   markt   slowR(   R.   R1   R3   RB   RJ   RN   RP   RR   RU   RZ   R]   Rj   Rr   Rs   Rw   R‡   R‹   Rš   t   skipifR   R   Rž   R£   R¨   R·   Rº   RÁ   RÈ   (    (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyR      s>   												
						"	R!				($   t
   __future__R    R   R   R   RŸ   Rf   t   numpyR   RË   t   pandas.compatR   R   R   R   Rm   Ra   R   R   R	   R
   R   R   R   t   pandas.tests.frame.commonR   t   pandas.util.testingt   utilt   testingR#   t   pandas.io.formats.formatR\   t   formatsRh   R=   R   (    (    (    s@   lib/python2.7/site-packages/pandas/tests/frame/test_repr_info.pyt   <module>   s   "4