
x\c           @  s   d  d l  m Z d  d l m Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 m
 Z
 m Z d  d l Z d  d l m Z m Z m Z m Z m Z m Z m Z d  d l j j Z d  d l m Z m Z m Z d e f d     YZ d	 e f d
     YZ d S(   i(   t   print_function(   t   deepcopyN(   t   longt   lranget   range(   t   Categoricalt	   DataFramet   Seriest   SparseDataFramet   compatt
   date_ranget   timedelta_range(   t   assert_almost_equalt   assert_frame_equalt   assert_series_equalt   SharedWithSparsec           B  s[  e  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 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  d   Z! d    Z" d!   Z# d"   Z$ d#   Z% d$   Z& d%   Z' RS(&   s   
    A collection of tests DataFrame and SparseDataFrame can share.

    In generic tests on this class, use ``self._assert_frame_equal()`` and
    ``self._assert_series_equal()`` which are implemented in sub-classes
    and dispatch correctly.
    c         C  s
   t   d S(   s+   Dispatch to frame class dependent assertionN(   t   NotImplementedError(   t   selft   leftt   right(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   _assert_frame_equal   s    c         C  s
   t   d S(   s,   Dispatch to series class dependent assertionN(   R   (   R   R   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   _assert_series_equal#   s    c         C  si   xb d D]Z } t  | |  } d  | _ | j   } d t  | |  _ t  | |  j d  k s t  q Wd  S(   Nt   indext   columnst   foo(   R   R   (   t   getattrt   Nonet   namet   copyt   AssertionError(   R   t   float_framet   attrt   indt   cp(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_copy_index_name_checking'   s    	c         C  s   | d } | j  d k s t  | j d  } | j  d k sC t  | j d  d   d f } | j  d k sq t  | j } | j  d k s t  d  S(   Nt   At   B(   R   R   t   popt   loc(   R   R   t   st   s2(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_getitem_pop_assign_name1   s    

c      	   C  sx   xq | j  D]f } x] | j D]R } t j t d t  | j | |  } Wd  QX| | | } t j | |  q Wq
 Wd  S(   Nt   check_stacklevel(   R   R   t   tmt   assert_produces_warningt   FutureWarningt   Falset	   get_valueR   (   R   R   t   idxt   colt   resultt   expected(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_get_value>   s    
c         C  s:  | j  d  } t j g  | j D] } d | ^ q  } t j | j |  | j d  } t j g  | j D] } d | ^ qj  } t j | j |  | j  d  } t j g  | j D] } d j |  ^ q  } t j | j |  | j d  } t j g  | j D] } d j |  ^ q } t j | j |  d  S(   Ns   foo#s   foo#%ss   #foos   %s#foot   %s   %{}s   {}%(   t
   add_prefixt   pdt   IndexR   R+   t   assert_index_equalt
   add_suffixt   format(   R   R   t   with_prefixt   cR3   t   with_suffixt   with_pct_prefixt   with_pct_suffix(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_add_prefix_suffixG   s    ))..c      	   C  s  | } | j  d  d k s! t  | j  d  d k s< t  | j  d  d k sW t  | j  d  d k sr t  | j  d  d k s t  | j d  d k s t  | j d  d k s t  | j d  d k s t  | j d  d k s t  | j d  d k st  | j d  | j k s2t  | j d  | j k sPt  t j t d d  | j  d  Wd  QXt j t d d	  | j d
  Wd  QXt j t d d  | j d   Wd  QXt j t d d  | j  d   Wd  QXd  S(   Ni    i   R   t   rowsR   t   matchs   No axis namedi   s   No axis.*fooR   s   No axis.*None(
   t   _get_axis_numberR   t   _get_axis_namet	   _get_axisR   R   t   pytestt   raisest
   ValueErrorR   (   R   R   t   f(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_get_axisX   s*    c         C  s%   | j  } |   | j k s! t  d  S(   N(   t   keysR   R   (   R   R   t   getkeys(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt	   test_keysu   s    	c         C  s)   y | j  | k Wn t k
 r$ n Xd  S(   N(   R   t	   TypeError(   R   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_column_contains_typeerrory   s    c         C  sB  t  j t d  t d  g d t d  } x, t d  D] } | t |  k s: t  q: Wt | j d  t  j  s} t  t  j t d  t d  g d t  j j	 t t
 d d    } x, t d  D] } | t |  k s t  q Wx, t d  D] } | t |  k s t  q Wt | j d  t  j  s>t  d  S(   Nt   abcdt   efghR   t   ABCDR#   t   EFGH(   R7   R   t   listt   dirR   t
   isinstancet   __getitem__R   t
   MultiIndext   from_tuplest   zip(   R   t   dft   key(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_tab_completion   s    -!$c         C  s<   |  j  d g  } t j t t |  t j t t |  d  S(   Ni   (   t   klassRG   RH   RO   t   hash(   R   t   empty_frameR\   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_not_hashable   s    c         C  sd   |  j  t j j d d   } |  j  t j j d d   } d | j _ | j j d  k s` t  d  S(   Ni    i   R   (   R_   t   npt   randomt   randnR   R   R   R   (   R   t   df1t   df2(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_new_empty_index   s    c         C  s   t  j d d   t  j |  } Wd  QXt | t |   sC t  | j | j k s[ t  | j | j k ss t  |  j | | j	 t  j   d  S(   Nt   allt   ignore(
   Rc   t   errstatet   sqrtRW   t   typeR   R   R   R   t   apply(   R   R   R2   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_array_interface   s    c         C  sb   | j  d  } | | j k s$ t  | j  d  } | | j k sH t  t j t | j  d  d  S(   Ni    i   i   (   t   _get_agg_axisR   R   R   RG   RH   RI   (   R   R   t   colsR0   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_get_agg_axis   s
    c         C  s   | j  s t  | j  s t  | j  s/ t  t i d d d g d 6d d d g d 6d	 t j d
  } | d =| j  s t  d  S(   Ng      ?g       @g      @R#   t   at   bR=   R$   R   i   (   t   emptyR   R   Rc   t   arange(   R   R   t   float_string_frameRa   R\   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_nonzero   s    c         C  su   |  j  d d d g d d d g g d d d d	 g } x8 t j |  D]' \ } } t | |  j  j  sF t  qF Wd  S(
   Ni   i   i   i   i   i   R   Rs   Rt   (   R_   R	   t	   iteritemsRW   t   _constructor_slicedR   (   R   R\   t   kt   v(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_iteritems   s    6c         C  s   d d d g } t  d d d g d d d	 g g d
 | } xl t | | j    D]U \ } \ } } | | k ss t  t | t  s t  | | | k j   sO t  qO Wd  S(   NRs   Rt   R=   i   i   i   i   i   i   R   (   R   R[   t   itemsR   RW   R   Ri   (   R   Rq   R\   R=   R{   R|   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt
   test_items   s    *(c         C  s%   t  j t |  | j  s! t  d  S(   N(   R+   t   equalContentsRU   R   R   (   R   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt	   test_iter   s    c         C  sx   x7 | j    D]) \ } } | j | } |  j | |  q Wx7 | j    D]) \ } } | j | } |  j | |  qG Wd  S(   N(   t   iterrowsR&   R   (   R   R   Rw   R{   R|   t   exp(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_iterrows   s    c         C  s   |  j  t k r" t j d d  n  |  j  i d d d d g d 6t d d	 d
 d d d 6 } x7 | j   D]) \ } } | j | } |  j | |  qj Wd  S(   Nt   reasons*   SparseBlock datetime type not implemented.t   M1701t   M1802t   M1903t   M2004t   non_iso8601s
   2000-01-01t   periodsi   t   freqt   Mt   iso8601(   R_   R   RG   t   xfailR
   R   R&   R   (   R   R'   R{   R|   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_iterrows_iso8601   s    c         C  s  xx t  | j    D]d \ } } |  j j | d  } | d | _ | j | d  d   f j d t  } |  j | |  q W|  j i t	 j
 j d  d 6t d  d 6d d d g } x9 | j d t  D]% } t | d t t f  s t  q W|  j d	 i d d
 d g d 6d d d g d 6 } | d d g } t | j    d d d g k s[t  t j   ppt j   st t | j d d     d k st  n  t | j d d   } | j d k st  | j | j | j f | k st  t |  j d k st  d d g | _ t | j d d   } | d k sEt  | j d  k sZt  t  d   t! d  D  }	 t |	 j    }
 t" |
 d  st  t |
 t#  st  d  S(!   Ni   i    t   dropi   t   floatst   intsR   R   t   datai   i   Rs   i   i   Rt   R   s!   [(0, 1, 4), (1, 2, 5), (2, 3, 6)]t   TestNameR8   t   deft   returnt   _1t   _2c         S  s&   i  |  ] } | g d  t  |   q S(   RJ   (   t   str(   t   .0t   i(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pys
   <dictcomp>  s   	 i   t   _fields(   i    i   i   (   i   i   i   (   i   i   i   (   R8   Rs   Rt   (   i    i   i   (   R8   R   R   ($   t	   enumeratet
   itertuplesR_   Rz   R   t   iloct   reset_indext   TrueR   Rc   Rd   Re   R   R.   RW   t   intR   R   RU   R	   t   is_platform_windowst   is_platform_32bitt   reprR   t   nextR   R8   Rs   Rt   Rm   t   __name__R   R   R   t   hasattrt   tuple(   R   R   R   t   tupR'   R3   R\   t   dfaat   tup2t   df3t   tup3(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_itertuples   s8    %#2$c   	      C  s  t  i d d d d d d g d 6d d	 d	 d d d
 g d 6 } t | d  | d <t | j j  } t j | j j  j   } t j	 | |  x$ | j
 d t  D] } t |  q Wx$ | j   D] \ } } t |  q Wx$ | j   D] \ } } t |  q Wd  S(   Ni   i   i   i   i   i   t   idRs   Rt   t   et	   raw_gradet   gradeR   (   R   R   RU   R   t   valuesRc   t   arrayt   tolistR+   R   R   R.   R   R   Ry   (	   R   R\   R2   R3   t   tt   rowR'   R=   R1   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt#   test_sequence_like_with_categorical	  s    c         C  s%   t  |  t  | j  k s! t  d  S(   N(   t   lenR   R   (   R   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_len   s    c         C  s[  | } | j  } | j } x t |  D]| \ } } xm t |  D]_ \ } }	 | | }
 t j |	  r t j | |
 |  s t  q> |	 | |
 | k s> t  q> Wq% W| d d g j  } | d d k s t  |  j i d d d g d 6d	 d
 d g d 6 } | j  } | d d k st  | d d g j  } | j d d d g  j  } t | |  d  S(   NR   R#   i    t   bary              ?y               @y              @t   complexi   i   i   t   realR$   R   (   i    i    (   i    i    (	   R   R   R   Rc   t   isnanR   R_   t   reindexR   (   R   R   Rw   t   framet   arrt
   frame_colsR   R   t   jt   valueR1   R\   R3   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_values#  s"    		
 "/	c         C  sj   t  j i d d g d 6d d g d 6 } t j d d g d d g g  } | j   } t j | |  d  S(   Ni   i   R#   i   g      @R$   (   R7   R   Rc   R   t   to_numpyR+   t   assert_numpy_array_equal(   R   R\   R3   R2   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_to_numpy=  s    )!c         C  sv   t  j i d d g d 6d d g d 6 } t j d d g d d g g d d	 } | j d d	  } t j | |  d  S(
   Ni   i   R#   i   g      @R$   i   t   dtypet   int64(   R7   R   Rc   R   R   R+   R   (   R   R\   R3   R2   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_to_numpy_dtypeC  s    )'c         C  s   t  j j d d  } t j |  } | j j | k s< t  | j d t	  j | k s] t  | j d t
  j d  k s~ t  d  S(   Ni   i   R   (   Rc   Rd   Re   R7   R   R   t   baseR   R   R.   R   R   (   R   R   R\   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_to_numpy_copyI  s
    !c         C  s  | } | j  } x t j |  D]u \ } } xf t j |  D]U \ } } t j |  rv t j | | |  s t  q; | | | | k s; t  q; Wq Wt j   \ } }	 |  j |	 d | }
 |
 j  } x5 t j |  D]$ \ } } | j	 t j
 k s t  q Wd  S(   NR   (   t   TR	   Ry   Rc   R   R   R+   t   getMixedTypeDictR_   R   t   object_(   R   R   R   t   dftR0   t   seriesR1   R   R   R   t   mixedt   mixed_TR'   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_transposeP  s    	 "	c         C  s   |  j  t j j d d   } |  j | j | j d d   |  j | j | j d d   |  j | | j d d   t j t	 | j d d  d  S(   Ni
   i   i    i   i   (
   R_   Rc   Rd   Re   R   R   t   swapaxesRG   RH   RI   (   R   R\   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_swapaxesb  s
    c         C  sl   | } | j  d d  } | j  d d  } t | |  | j  d d  } | j  d d  } t | |  d  S(   Nt   axisi    R   i   R   (   t   sumR   (   R   R   RJ   R3   R2   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_axis_aliasesi  s    c         C  s4   t  j t j  s t  t  j t j  s0 t  d  S(   N(   t   pydoct   getdocR   R   R   R   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_class_axisu  s    c         C  s/   | j  } | j d t | j  k s+ t  d  S(   Ni   (   R   t   shapeR   R   R   (   R   Rw   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_more_values{  s    	c         C  sh   |  j  i d d g d 6d t j t j d  g d d g g } t |  } d } | | k sd t  d  S(	   Ni   i   t   XR   t   20130101Rs   Rt   s/                 X
NaT        a  1
2013-01-01 b  2(   R_   R7   t   NaTt	   TimestampR   R   (   R   Rw   R\   R2   R3   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_repr_with_mi_nat  s
    'c         C  s9   x2 t  j |  D]! \ } } | j | k s t  q Wd  S(   N(   R	   Ry   R   R   (   R   Rw   R{   R|   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_iteritems_names  s    c         C  sB   | j  } x2 t j |  D]! \ } } | j | k s t  q Wd  S(   N(   t   _seriesR	   Ry   R   R   (   R   Rw   R   R{   R|   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_series_put_names  s    	c         C  s  |  j  d d d g  } | j s( t  |  j  d d g d d g  } | j sV t  |  j  d d d g d d d	 g  j   } | j s t  | j j s t  |  j    |  j  d d g  |  j  d d g  |  j  i g  d 6 g } x/ | D]' } | j st  | j j s t  q Wd  S(
   Ni   i   i   R   R   Rs   Rt   R=   t   d(   R_   Ru   R   t   dropnaR   (   R   R\   t   empty_frames(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_empty_nonzero  s    *	c         C  s   |  j  i t d d d d 6t d d d d 6 } | j } | j   } |  j  t k ro t i d d 6 } n t i d d 6 } t j | |  d  S(	   NR   R   i
   R#   s   1 dayR$   t   objects   Sparse[object, nan](	   R_   R
   R   R   t   get_dtype_countsR   R   R+   R   (   R   R\   R   R2   R3   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_with_datetimelikes  s    	((   R   t
   __module__t   __doc__R   R   R"   R)   R4   RA   RK   RN   RP   R^   Rb   Rh   Ro   Rr   Rx   R}   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR      sL   			
																							(															t   TestDataFrameMiscc           B  s\   e  Z e Z e e  Z e e  Z d    Z	 d   Z
 d   Z d   Z d   Z d   Z RS(   c         C  sH   d | j  d  d   d f <| j  d  d   d f d k j   sD t  d  S(   Ng      @i    i   (   R   Ri   R   (   R   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         C  sT   t  j t  & | j j   } | j d |  } Wd  QX| j } t  j | |  d  S(   NR   (   R+   R,   R-   R   R   t	   as_matrixR   R   (   R   R   Rq   R2   R3   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_as_matrix_deprecated  s
    	c         C  s[   t  |  } | d } d | (x7 t j |  D]& \ } } | d | | k s- t  q- Wd  S(   NR#   i
   (   R   R	   Ry   R   (   R   R   R!   R   R0   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_deepcopy  s
    
c         C  sN   | j  } d | j d  d   d d  f <| j d d !d k j   sJ t  d  S(   Ni   i
   (   R   R   Ri   R   (   R   R   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_transpose_get_view  s    	c         C  s  t  i d d d d g d 6d d d d g d 6d d	 d
 d g d 6 } d   } d   } | | j   |  d   } | | j d  |  d   } | | j   |  d   } | | j   |  d   } | | j   |  d   } | | j   |  d   } | | j   |  d   } | | j   |  | j   d } d   } | | j d  d |  d   } | | j   |  d   } | | j   |  d   } | | j   |  d  S(   NR   R   t   bazt   quxRs   i    i   Rt   i   i   i   R=   c         S  s"   | |   } | d  k s t  d  S(   N(   R   R   (   R   RJ   R2   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   _check_f  s    c         S  s   |  j  d d t S(   NRs   t   inplace(   t	   set_indexR   (   t   x(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   <lambda>  s    c         S  s   |  j  d t  S(   NR   (   R   R   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  d t  S(   NR   (   t   drop_duplicatesR   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  d d t S(   NRt   R   (   t   sort_valuesR   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  d t  S(   NR   (   t
   sort_indexR   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  d d t S(   Ni    R   (   t   fillnaR   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  d d d t S(   Ni   i    R   (   t   replaceR   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  i d d 6d t S(   NR   i   R   (   t   renameR   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  d t d t  S(   NR   R   (   R   R   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  d d t S(   Ni    R   (   R  R   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  d d d t S(   Ni   i    R   (   R  R   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s    c         S  s   |  j  i d d 6d t S(   NR   i   R   (   R  R   (   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR   
  s    (   R   R   R   (   R   R   R   RJ   R   (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_inplace_return_self  s:    													c         C  s|   t  j d d d d d l m } d } | j |  t j d   1 | d   t | j	 j
 d d	   Wd  QXWd  QXd  S(
   Nt   IPythont
   minversions   6.0.0i(   t   provisionalcompleters(   import pandas as pd; df = pd.DataFrame()Rj   s   df.i   (   RG   t   importorskipt   IPython.core.completerR  t   run_codeR+   R,   R   RU   t	   Completert   completions(   R   t   ipR  t   code(    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   test_tab_complete_warning  s    (   R   R   R   R_   t   staticmethodR   R   R   R   R   R   R   R   R  R  (    (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyR     s   					@(   t
   __future__R    R   R   R   t   numpyRc   RG   t   pandas.compatR   R   R   t   pandasR7   R   R   R   R   R	   R
   R   t   pandas.util.testingt   utilt   testingR+   R   R   R   R   R   R   (    (    (    s:   lib/python2.7/site-packages/pandas/tests/frame/test_api.pyt   <module>   s   4 