
x\c           @   s   d  d l  Z  d  d l  m Z m Z d  d l m Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 d  d l
 m Z m Z m Z m Z m Z m Z d  d l m Z d  d l j j Z d e f d     YZ d S(	   iN(   t   OrderedDictt   defaultdict(   t   datetime(   t   long(   t	   DataFramet
   MultiIndext   Seriest	   Timestampt   compatt
   date_range(   t   TestDatat   TestDataFrameConvertToc           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 e j j d e   e j j ds dt g d du dv dw dx g f e d e  e j j dy dz g d d{ d| d} d~ g f e d d  e j j d d g d d d d d g f e d" d#  e j j d d g d d d d d g f e d e j  e j j d d g d d d d d g f e d i e j d 6e j d 6d% d 6 e j j d d g d d d d d g f e d" i d( d 6 e j j d d g d d d d d g f e d e d" d%  e j j d d g d d d d g f e d" i d( d 6d* d+ 6 e j j d d g d d d d d g f e d i e j d 6e j d 6 e j j d d g d d d d d g f e d i e j d 6e j d 6d" d%  e j j d d g d d d d d g f e d e d e    d, f e d e d i d- d 6d. d 6 d/ f g  d0    Z e j j d1 e d d d2 g d3 d. d4 g d5 d6 d7 g g d8 e d9  j d d: g  e d d; d" i d- d 6d< d 6 e j j d d d g d d d d g f e d d d2 g d3 d. d4 g d5 d6 d7 g g d8 e j d d d g  e d i d# d 6d* d 6d" d*  e j j d d d g d d d d d g f e d d d2 g d3 d. d4 g d5 d6 d7 g g d8 e j d d d g dN e dO  d e j d d d g dN e dS  e d d; d" i d% d 6d< d 6 e j j d d d g d d d d d d g f g  dV    Z dW   Z  e j j dX e e! j" e  e! j# g  dY    Z$ e j j dX e e! j" g  g  dZ    Z% d[   Z& e j j d\ d] d^ d_ g  d`    Z' e j j da db dc   f dd de   f df dg   f dh di   f d dj   f g  dk    Z( dl   Z) e j j dm e i i d dn 6dG do 6d 6i d dn 6dI do 6d 6i d2 dn 6d= do 6d 6f e# e# d i d dn 6dG do 6f d i d dn 6dI do 6f d i d2 dn 6d= do 6f g  f e" e  e" e i i d dn 6dG do 6d 6i d dn 6dI do 6d 6i d2 dn 6d= do 6d 6 f g  dp    Z* dq   Z+ dr   Z, RS(   c   
      C   s:  t  d  } t i | | g d 6| | g d 6 } t i | | g d 6d d g d 6 } i | d 6| d 6i | d 6| d 6g } i | d 6d d 6i | d 6d d 6g } | j d d  | k s t  | j d d  | k s t  i t | | g d d d 6t | | g d d d 6} i t | | g d d d 6t d d g d d d 6} t j | j d d	  |  t j | j d d	  |  i d
 d g d 6| | g | | g g d 6d d g d 6} i d
 d g d 6| d g | d g g d 6d d g d 6}	 t j | j d d  |  t j | j d d  |	  d  S(   Nt   20130101t   At   Bi   i   t   orientt   recordst   namet   seriesi    t   indext   datat   columnst   split(   R   R   t   to_dictt   AssertionErrorR   t   tmt   assert_dict_equal(
   t   selft   tsmpt	   test_datat   test_data_mixedt   expected_recordst   expected_records_mixedt   expected_seriest   expected_series_mixedt   expected_splitt   expected_split_mixed(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dict_timestamp   sF    &&		c         C   sO   t  i d d g d 6d d g d 6d d d g } t j t | j d	 d d  S(
   Ni   i   t   ag      ?g      ?t   bR   R   R   (   R   t   pytestt   raisest
   ValueErrorR   (   R   t   df(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt/   test_to_dict_index_not_unique_with_index_orientH   s    2c         C   s6   t  i d d g d 6 } t j t | j d d d  S(   Ni    i   R   R   t   xinvalid(   R   R(   R)   R*   R   (   R   R+   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dict_invalid_orientN   s    c         C   s  t  d d d g d d d g g d t d d	  } | j j d
 } | j   d d
 } | | k si t  t j t  A | j j d
 } | j d t	  d d
 } | | k s t  Wd  QXt j t  > | j d
 } | j d t
  d d
 } | | k st  Wd  QXd  S(   Nt   onet   twot   threet   fourt   fivet   sixR   s
   2012-01-01s
   2012-01-02i    t   convert_datetime64(   R   R	   R   t   valuest
   to_recordsR   R   t   assert_produces_warningt   FutureWarningt   Falset   True(   R   R+   t   expectedt   result(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_records_dt64R   s    c      	   C   s   d d d d d d d d g d d d d d d d d g g } t  j d  } t | d	 | } | j d	 t  d
 } d | k s t  d | k s t  d  S(   Nt   bart   bazt   foot   quxR/   R0   i   i   R   t   level_0(   i   i   (   t   npt   zerosR   R7   R;   R   (   R   R   R   R+   t   r(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_records_with_multindexh   s    !c            s}   d d  l  } d d l m } t j j | j j  |   j d  } t	 j
 | g    t   f d   d d d g D  d  S(   Ni(   t   Parsersb   From: <user@example.com>
To: <someone_else@example.com>
Subject: Test message

Body would go here
c         3   s   |  ] } |   k Vq d  S(   N(    (   t   .0t   x(   t   frame(    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pys	   <genexpr>   s    t   Typet   Subjectt   From(   t   emailt   email.parserRH   R   t   Mappingt   registert   messaget   Messaget   parsestrR   t   from_recordst   all(   R   RO   RH   t   headers(    (   RK   sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt!   test_to_records_with_Mapping_typer   s    c         C   s)   t  t j j d d   } | j   d  S(   Ni
   (   R   RD   t   randomt   randR7   (   R   R+   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_records_floats   s    c         C   s   t  t j j d d   } d | j _ | j   } d | j j k sK t	  t  t j j d d   } | j   } d | j j k s t	  t
 j d d d g  | _ d	 d  g | j _ | j   } d
 | j j k s t	  d  S(   Ni   t   XR   R&   RJ   t   yR'   t   zR   RC   (   R&   RJ   (   R&   R^   (   R'   R_   (   R   RD   RZ   t   randnR   R   R7   t   dtypet   fieldsR   R   t   from_tuplest   Nonet   names(   R   R+   t   rs(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_records_index_name   s    c         C   sa   t  i d d 6d d 6g  j d  j   } t j j d
 g d d d g } t j | |  d  S(   Nu   xu   aR^   u   bRJ   Ra   R&   t   OR'   (   RJ   R^   (   R&   Rh   (   R'   Rh   (   R   t	   set_indexR7   RD   t   rect   arrayR   t   assert_almost_equal(   R   R=   R<   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt"   test_to_records_with_unicode_index   s    ,!c         C   sh   t  d i d g d 6 j   } t j j d g d i d d g d 6d d	 g d
 6} t j | |  d  S(   NR   g      ?u   accented_name_éi    Ra   R   Re   s   =i8s   =f8t   formats(   i    g      ?(   R   R7   RD   Rj   Rk   R   Rl   (   R   R=   R<   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt)   test_to_records_with_unicode_column_names   s    		c         C   s   t  i t d  d 6d d } t t d  d d d d } t j | d |  t  t d  d d } t t d  d d d d } t j | d |  | j   } t j j d d d g d d d g } t j	 | |  d  S(   Nt   abcR   Ra   t   categoryR   i    R&   i   R'   i   t   cR   s   =i8t   0Rh   (   i    R&   (   i   R'   (   i   Rr   (   R   s   =i8(   Rs   Rh   (
   R   t   listR   R   t   assert_series_equalR7   RD   Rj   Rk   Rl   (   R   R+   R<   R=   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt    test_to_records_with_categorical   s    s   kwargs,expectedi    i   g?R&   i   g      ?t   bcRa   R   s   <i8R   R   s   <f8t   CRh   t   column_dtypess   <U4Rs   t   1s   0.2t   2s   1.5t   index_dtypess   <U1s   <Us   <U2t   i1s   <f4t   int16t   i2t   float32s	   not-theres)   Invalid dtype \[\] specified for column At   int32i   s&   Invalid dtype 5 specified for column Bc         C   s   t  i d d g d 6d d g d 6d d g d	 6 } t | t  rn t j t d
 |  | j |   Wd  QXn | j |   } t j | |  d  S(   Ni   i   R   g?g      ?R   R&   Rw   Rx   t   match(	   R   t
   isinstancet   strR(   R)   R*   R7   R   Rl   (   R   t   kwargsR<   R+   R=   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_records_dtype   s    L3s   df,kwargs,expectedi   i   i   i   i   i	   R   Rp   R'   t   float64t   int8g      @g      @g      "@s   <i4Rr   t   dt   et   fg        u   1g      ?u   4g       @u   7s
   ('a', 'd')s
   ('b', 'e')s
   ('c', 'f')Re   t   abiiit   cdg      @g      @c         C   s#   | j  |   } t j | |  d  S(   N(   R7   R   Rl   (   R   R+   R   R<   R=   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_records_dtype_mi  s    #c         C   s   d t  f d     Y} t i d d g d 6d d g d 6d	 d
 g d 6 } t d | i t j d 6t j d 6  d d  } | j |   } t j j d d g d d d d d g } t	 j
 | |  d  S(   Nt   DictLikec           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         [   s   | j    |  _ d  S(   N(   t   copyR   (   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   __init__>  s    c         S   s   |  j  j |  S(   N(   R   t   __getitem__(   R   t   key(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyR   A  s    c         S   s   | |  j  k S(   N(   R   (   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   __contains__D  s    c         S   s   |  j  j   S(   N(   R   t   keys(   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyR   G  s    (   t   __name__t
   __module__R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyR   =  s   			i   i   R   g?g      ?R   R&   Rw   Rx   Ry   R|   s   <U2Rs   Rz   s   0.2R{   s   1.5Ra   R   R}   s   <f4Rh   (   Rs   Rz   s   0.2R&   (   Rz   R{   s   1.5Rw   (   R   s   <U2(   R   R}   (   R   s   <f4(   Rx   Rh   (   t   objectR   t   dictRD   R   R   R7   Rj   Rk   R   Rl   (   R   R   R+   t   dtype_mappingsR=   R<   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_records_dict_like;  s    3		t   mappingc         C   s  i i d d 6d d 6d 6i d d 6d d 6d d 6d 6} t  |  j d |  } xW t j |  D]F \ } } x7 t j |  D]& \ } } | | | | k s{ t  q{ Wq_ Wt  |  j d	 |  } xa t j |  D]P \ } } xA t j |  D]0 \ } } | | | t |  d k s t  q Wq Wt  |  j d
 |  } xW t j |  D]F \ } } x7 t j |  D]& \ } } | | | | k sit  qiWqMWt  |  j d |  } i d d g d 6d d d g d 6d d g d d g t j d g g d 6} t j	 | |  t  |  j d |  } i d d 6d d 6i d d 6d d 6i t j d 6d d 6g }	 t
 | t  spt  t |  d k st  x- t | |	  D] \ }
 } t j	 |
 |  qWt  |  j d  } xW t j |  D]F \ } } x7 t j |  D]& \ } } | | | | k st  qWqWt  |  } | | j d | d <| j d  } | j   } | | j d | d <xW t j |  D]F \ } } x7 t j |  D]& \ } } | | | | k st  qWqWd  S(   Ni   Rz   i   R{   R   t   3R   t   intot   lt   st   spR   R   g      ?g       @R   RF   i   t   ii    t   duped(   R   R   R   t	   iteritemsR   t   intRD   t   nanR   R   R   Rt   t   lent   zipR   R   (   R   R   R   t   recons_datat   kt   vt   k2t   v2R#   R   R   RF   R+   t	   comp_data(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dictW  sN    "," ("c         C   sE   t  t j j d d   } t j t   | j d |  Wd  QXd  S(   Ni   R   (   R   RD   RZ   R`   R(   R)   t	   TypeErrorR   (   R   R   R+   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dict_errors  s    c         C   sK   t  d d d g g d d d d g } t j t   | j   Wd  QXd  S(   Ni   i   i   R   R&   R'   (   R   R   R8   t   UserWarningR   (   R   R+   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dict_not_unique_warning  s    't   tzt   UTCt   GMTs
   US/Easternc         C   sl   t  d d d d d d | } t i | d 6d | } | j   } | j d	  j   } t j | |  d  S(
   Ns
   2016-01-01t   periodsi
   t   freqt   SR   R   R   R   (   R	   R   R7   t
   tz_convertR   t   assert_numpy_array_equal(   R   R   t   drR+   R<   R=   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt%   test_to_records_datetimeindex_with_tz  s    s   orient,item_getterR   c         C   s   |  | | S(   N(    (   R   t   colt   idx(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   <lambda>  s    R   c         C   s   |  | | S(   N(    (   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyR     s    Rt   c         C   s   |  | | S(   N(    (   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyR     s    R   c         C   s   |  d | |  d j  |  S(   NR   R   (   R   (   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyR     s    c         C   s   |  | | S(   N(    (   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyR     s    c         C   s   t  i d d g d 6d d g d 6 } | j d |  } t | | d d  t t f  s_ t  t | | d d  t  s t  d  S(	   Ni   i   R&   g?g?R'   R   i    (   R   R   R   R   R   R   t   float(   R   R   t   item_getterR+   R=   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dict_box_scalars  s    
&'c         C   s   t  d d d d d d d d t j f t  d d d d	 d
 d d d t j f g } t t |  d d g } | j d d  } i t d d t j d 6i t d d t j d 6g } t j | d | d  t j | d | d  d  S(   Ni  i   i   i   i5   i    iYX t   tzinfoi   i   i   ir  R   R   R   R   s   2017-11-18 21:53:00.219225+0000R   s   2017-11-18 22:06:30.061810+0000i   (	   R   t   pytzt   utcR   Rt   R   R   R   R   (   R   R   R+   R=   R<   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_frame_to_dict_tz  s    '-s   into, expectedt   int_colt	   float_colc         C   s   t  i d d d g d 6d d d g d 6 } | j d	 d
 d |  } d d g } t  j | d	 d
 | } t  j | d	 d
 | } t j | |  d  S(   Ni   i   i   R   g      ?g       @g      @R   R   R   R   (   R   R   t	   from_dictR   t   assert_frame_equal(   R   R   R<   R+   R=   t   cols(    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dict_index_dtypes  s    c         C   s`   t  d   t d  D  } t | j d  d j    } t | j  } | | k s\ t  d  S(   Nc         S   s"   i  |  ] } | g t  |   q S(    (   R   (   RI   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pys
   <dictcomp>  s   	 i   R   i    (   R   t   ranget   setR   R   R   R   (   R   R+   R=   R<   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dict_numeric_names  s    c         C   s[   t  d   t d  D  } | j d  d } d   t d  D } | | k sW t  d  S(   Nc         S   s%   i  |  ] } | g d  j  |   q S(   s   A_{:d}(   t   format(   RI   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pys
   <dictcomp>  s   	 i   R   i    c         S   s"   i  |  ] } | d  j  |   q S(   s   A_{:d}(   R   (   RI   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pys
   <dictcomp>  s   	 (   R   R   R   R   (   R   R+   R=   R<   (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   test_to_dict_wide  s    (   i    i   g?R&   (   i   i   g      ?Rw   (   R   s   <i8(   R   s   <i8(   R   s   <f8(   Rx   Rh   (   i    i   g?R&   (   i   i   g      ?Rw   (   R   s   <i8(   R   s   <i8(   R   s   <f8(   Rx   Rh   (   Rs   Rz   s   0.2R&   (   Rz   R{   s   1.5Rw   (   R   s   <i8(   R   s   <U4(   R   s   <U4(   Rx   s   <U4(   Rs   i   g?R&   (   Rz   i   g      ?Rw   (   R   s   <U1(   R   s   <i8(   R   s   <f8(   Rx   Rh   (   Rs   Rz   s   0.2R&   (   Rz   R{   s   1.5Rw   (   R   s   <i8(   R   s   <U(   R   s   <U(   Rx   s   <U(   Rs   Rz   s   0.2R&   (   Rz   R{   s   1.5Rw   (   R   s   <i8(   R   R}   (   R   s   <f4(   Rx   s   <U2(   i    i   g?R&   (   i   i   g      ?Rw   (   R   R   (   R   s   <i8(   R   s   <f8(   Rx   Rh   (   i   g?R&   (   i   g      ?Rw   (   R   s   <i8(   R   s   <f8(   Rx   Rh   (   i    i   g?R&   (   i   i   g      ?Rw   (   R   R   (   R   s   <i8(   R   s   <f8(   Rx   Rh   (   Rs   Rz   s   0.2R&   (   Rz   R{   s   1.5Rw   (   R   s   <i8(   R   R}   (   R   s   <f4(   Rx   Rh   (   Rs   Rz   s   0.2R&   (   Rz   R{   s   1.5Rw   (   R   s   <U2(   R   R}   (   R   s   <f4(   Rx   Rh   (   i   i   g      @(   i   i   g      @(   i   i   g      "@(   R&   s   <i4(   R'   R}   (   Rr   s   <f8(   R&   R   (   R'   R   (   Rr   R   (   g        u   1i   g      @(   g      ?u   4i   g      @(   g       @u   7i   g      "@(   R   s   <f4(   s
   ('a', 'd')s   <U1(   s
   ('b', 'e')s   <i8(   s
   ('c', 'f')s   <f4(   R&   R   (   R'   R   (   Rr   R   (   R   i(   R   i(   R   i(   R   ig      ?g       @g      @(   R   ig      @g      @g      @(   R   ii   i   g      "@(   Rr   s   <U2(   R   R}   (   s
   ('a', 'd')s   <f8(   s
   ('b', 'e')s   <f8(   s
   ('c', 'f')s   <f8(-   R   R   R%   R,   R.   R>   RG   RY   R\   Rg   Rm   Ro   Rv   R(   t   markt   parametrizeR   RD   Rj   Rk   R;   t   unicodeR   R   R:   Rt   R   R   Ri   R   Rc   R   R   t   collectionsR   R    R   R   R   R   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyR      s   	4				
						'   - - 	- 		8	'
	 -	(   R   R    R   R   t   numpyRD   R(   R   t   pandas.compatR   t   pandasR   R   R   R   R   R	   t   pandas.tests.frame.commonR
   t   pandas.util.testingt   utilt   testingR   R   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/frame/test_convert_to.pyt   <module>   s   .