
x\c           @   s  d  d l  Z  d  d l m Z d  d l Z d  d l Z d  d l m Z d  d l Z d  d l	 Z	 d  d l
 m Z d  d l m Z m Z d  d l 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 m Z m Z d  d l  m! Z! d  d l" j# j$ Z% d  d	 l" m& Z& m' Z' m( Z( m) Z) m* Z* d  d
 l+ m, Z, m- Z- e j. Z. y d  d l/ Z/ Wn e0 k
 re1 Z2 n Xe3 Z2 y d  d l4 Z4 Wn e0 k
 re1 Z5 n Xe3 Z5 e	 j6 d d  d    Z7 e	 j6 d d  d    Z8 d   Z9 e	 j: j; d  d e< f d     Y Z= e	 j: j; d  d e= f d     Y Z> d e= f d     YZ? d e= f d     YZ@ d e= f d     YZA d e= f d     YZB d e= f d     YZC e	 j: j; d  d e= f d      Y ZD d! e= f d"     YZE d# e= f d$     YZF d% e= f d&     YZG e j e jH jI e jH jJ eK  d' d( d) d*   ZL e	 j6 d+ eL  d,    ZM e	 j: j; d  d- e< f d.     Y ZN d S(/   iN(   t   LooseVersion(   t   catch_warnings(   t   iNaT(   t   PY3t   u(   t   PerformanceWarning(   t   Categoricalt	   DataFramet   Indext   Intervalt
   MultiIndext   NaTt   Panelt   Periodt   Seriest	   Timestampt   bdate_ranget   compatt
   date_ranget   period_range(   t   assert_panel_equal(   t   assert_categorical_equalt   assert_frame_equalt   assert_index_equalt   assert_series_equalt   ensure_clean(   t   read_msgpackt
   to_msgpackt   scopet   modulec          C   s   d d l  m }  |    S(   Ni(   t   create_msgpack_data(   t-   pandas.tests.io.generate_legacy_storage_filesR   (   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   current_packers_data+   s    c          C   s   d d l  m }  |    S(   Ni(   t   create_data(   R   R!   (   R!   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   all_packers_data3   s    c         C   s  t  |  t t f  rx t  | t t f  rx t |   t |  k sH t  xUt |  |  D] \ } } t | |  qX Wn(t  |  t  r t |  |  n	t  |  t	  r t
 |  |  n t  |  t  r t |  |  n t  |  t  r t |  |  n t  |  t  r1t r| j j d k rqt j |  |  no |  t k rR| t k st  nN t  |  t  r|  | k sst  |  j | j k st  n |  | k st  d  S(   Nt   string(   t
   isinstancet   listt   tuplet   lent   AssertionErrort   zipt   check_arbitraryR   R   R   R   R   R   R   R   R   R   t
   categoriest   inferred_typet   tmR   R   R   t   freq(   t   at   bt   a_t   b_(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR*   ;   s,    *s   ignore:\nPanel:FutureWarningt   TestPackersc           B   s&   e  Z d    Z d   Z d d  Z RS(   c         C   s   d t  j d  |  _ d  S(   Ns
   __%s__.msgi
   (   R-   t   randst   path(   t   selft   method(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   setup_method]   s    c         C   s   d  S(   N(    (   R6   R7   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   teardown_method`   s    c      
   K   s?   t  |  j  * } t | | d | | t | |  SWd  QXd  S(   Nt   compress(   R   R5   R   R   (   R6   t   xR:   t   kwargst   p(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   encode_decodec   s    N(   t   __name__t
   __module__R8   R9   t   NoneR>   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR3   Z   s   		t   TestAPIc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c      
   C   s3  t  t j j d d   } | j d   } t |  } t j | |  | j   } t |  } t j | |  | j   } t t	 j
 |   } t j | |  t d  |  } t |  } t j | |  t |  j  T } | j   } t | d   } | j |  Wd  QXt |  } t j | |  Wd  QXd  S(   Ni
   i   t   wb(   R   t   npt   randomt   randnR   RA   R   R-   R   R   t   BytesIOR   R5   t   opent   write(   R6   t   dft   st   resultR=   t   fh(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_string_iol   s&    c         C   s5   t  j   } t  j | j t  } t  j | |  d  S(   N(   R-   t   makeDataFramet   round_trip_pathlibR   R   R   (   R6   RJ   RL   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_path_pathlib   s    c         C   s5   t  j   } t  j | j t  } t  j | |  d  S(   N(   R-   RO   t   round_trip_localpathR   R   R   (   R6   RJ   RL   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_path_localpath   s    c         C   s   g  t  d  D]! } t t j j d d   ^ q } t d  |  } x: t t | d t	  D]  \ } } t
 j | | |  q\ Wd  S(   Ni   i
   i   t   iterator(   t   rangeR   RD   RE   RF   R   RA   t	   enumerateR   t   TrueR-   R   (   R6   t   it   dfsRK   RL   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_iterator_with_string_io   s    4%c      	   C   s   d t  f d     Y} d } t j t d | j d   t d d   Wd  QXt j t d | j d   t d i   Wd  QXt j t d | j d   t d |    Wd  QXd  S(	   Nt   Ac           B   s   e  Z d    Z RS(   c         S   s   d |  _  d  S(   Ni    (   t   read(   R6   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   __init__   s    (   R?   R@   R]   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR[      s   s<   Invalid file path or buffer object type: <(class|type) '{}'>t   matcht   NoneTypet   path_or_buft   dicts   .*\.A(   t   objectt   pytestt   raisest
   ValueErrort   formatR   RA   (   R6   R[   t   msg(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_invalid_arg   s    (   R?   R@   RN   RQ   RS   RZ   Rh   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyRB   i   s
   				t	   TestNumpyc           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 RS(   c         C   s;   t  j t  j j    } |  j |  } t j | |  d  S(   N(   RD   t   float32RE   t   randR>   R-   t   assert_almost_equal(   R6   R;   t   x_rec(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_numpy_scalar_float   s    c         C   sT   t  j t  j j   d t  j j    } |  j |  } t  j | |  sP t  d  S(   Ny              ?(   RD   t	   complex64RE   Rk   R>   t   allcloseR(   (   R6   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_numpy_scalar_complex   s    )c         C   s2   t  j j   } |  j |  } t j | |  d  S(   N(   RD   RE   Rk   R>   R-   Rl   (   R6   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_scalar_float   s    c         C   s`   t  j d  } |  j |  } t j | |  t  j d  } |  j |  } t j | |  d  S(   Ni   i    (   RD   t   bool_R>   R-   Rl   (   R6   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_scalar_bool   s    c         C   sK   t  j j   d t  j j   } |  j |  } t  j | |  sG t  d  S(   Ny              ?(   RD   RE   Rk   R>   Rp   R(   (   R6   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_scalar_complex   s     c         C   s   g  t  d  D] } t j t j j    ^ q } |  j |  } t j t |  |  |  j t |   } t j t |  |  d  S(   Ni   (	   RU   RD   Rj   RE   Rk   R>   R-   Rl   R&   (   R6   RX   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_list_numpy_float   s
    1c         C   s   t  t d  s t j d  n  g  t d  D] } t j t j j    ^ q, g  t d  D]/ } t j t j j   d t j j    ^ qZ } |  j	 |  } t j
 | |  s t  d  S(   Nt
   complex128s   numpy can not handle complex128i   y              ?(   t   hasattrRD   Rc   t   skipRU   Rj   RE   Rk   Rw   R>   Rp   R(   (   R6   RX   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_list_numpy_float_complex   s    .@c         C   s|   g  t  d  D] } t j j   ^ q } |  j |  } t j t |  |  |  j t |   } t j t |  |  d  S(   Ni   (   RU   RD   RE   Rk   R>   R-   Rl   R&   (   R6   RX   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_list_float   s
    (c         C   s   g  t  d  D] } t j j   ^ q g  t  d  D]& } t j j   d t j j   ^ q2 } |  j |  } t j | |  s t  d  S(   Ni   y              ?(   RU   RD   RE   Rk   R>   Rp   R(   (   R6   RX   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_list_float_complex   s    %:c         C   s7   i d d 6d d 6} |  j  |  } t j | |  d  S(   Ng      ?t   foog       @t   bar(   R>   R-   Rl   (   R6   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_dict_float   s    c         C   sf   i d	 d 6d
 d 6} |  j  |  } t j | |  x, | D]$ } t j | | | | d d q: Wd  S(   Ng      ?y              ?R}   g       @y               @R~   t   objs   complex valuey      ?      ?y       @       @(   R>   R-   t   assert_dict_equalt   assert_class_equal(   R6   R;   Rm   t   key(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_dict_complex   s
    c         C   sI   i t  j d  d 6t  j d  d 6} |  j |  } t j | |  d  S(   Ng      ?R}   g       @R~   (   RD   Rj   R>   R-   Rl   (   R6   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_dict_numpy_float   s    &c         C   sx   i t  j d	  d 6t  j d
  d 6} |  j |  } t j | |  x, | D]$ } t j | | | | d d qL Wd  S(   Ng      ?y              ?R}   g       @y               @R~   R   s   numpy complex128y      ?      ?y       @       @(   RD   Rw   R>   R-   R   R   (   R6   R;   Rm   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_dict_numpy_complex   s    c         C   sr   xk t  d  D]] } t j j d  } xB d d g D]4 } | j |  } |  j |  } t j | |  q2 Wq Wd  S(   Ni
   Rj   t   float64(   RU   RD   RE   Rk   t   astypeR>   R-   Rl   (   R6   t   nR;   t   dtypeRm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_numpy_array_float  s    c         C   sx   t  j j d  d t  j j d  j t  j  } |  j |  } t t d   | |   rn | j | j k st t	  d  S(   Ni   y              ?c         S   s
   |  | k S(   N(    (   R;   t   y(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   <lambda>  s    (
   RD   RE   Rk   R   Rw   R>   t   allt   mapR   R(   (   R6   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_numpy_array_complex  s    2c         C   s   d t  j d  t  j d  t d  t  j d  g } |  j |  } t j t |  |  |  j t |   } t j t |  |  d  S(   Ng      ?g      @g      @R}   i   (	   RD   Rj   Rw   R   Rs   R>   R-   Rl   R&   (   R6   R;   Rm   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_list_mixed  s
    6(   R?   R@   Rn   Rq   Rr   Rt   Ru   Rv   Rz   R{   R|   R   R   R   R   R   R   R   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyRi      s    									
									
	t	   TestBasicc           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   sW   xP t  d  t  d d d t  d  g D]' } |  j |  } | | k s( t  q( Wd  S(   Nt   20130101t   tzs
   US/Easternt   201301010501(   R   R>   R(   (   R6   RX   t   i_rec(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_timestamp!  s
    c         C   s%   |  j  t  } t | k s! t  d  S(   N(   R>   R   R(   (   R6   t   nat_rec(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_nat)  s    c      
   C   s   x t  j  d d d  t  j  d d d d d  t  j d d d  t j t  j  d d d d d   g D]' } |  j |  } | | k sd t  qd Wd  S(   Ni  i   i   i   i   (   t   datetimet   dateRD   t
   datetime64R>   R(   (   R6   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_datetimes-  s    +c         C   sf   x_ t  j d d  t  j d d d d  t j d  g D]' } |  j |  } | | k s7 t  q7 Wd  S(   Nt   daysi   t   secondsi
   i@B (   R   t	   timedeltaRD   t   timedelta64R>   R(   (   R6   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_timedeltas6  s
    c         C   sN   xG t  d d  t  d d  g D]' } |  j |  } | | k s t  q Wd  S(   Ns   2010-09t   Ms   2014-Q1t   Q(   R   R>   R(   (   R6   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_periods>  s    %c         C   s`   xY t  d d  t  d d d  t  d d d  g D]' } |  j |  } | | k s1 t  q1 Wd  S(   Ni    i   t   lefti
   g      9@t   right(   R	   R>   R(   (   R6   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_intervalsD  s    (   R?   R@   R   R   R   R   R   R   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR     s   						t	   TestIndexc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s`  t  t |   j |  i t j d  d 6t j d  d 6t j d  d 6t j d  d 6t j d  d 6t	 g   d 6t	 t
 d d	 d
 g d d d g   d 6t	 t d d d d d  d 6t	 t d d d  d 6t	 t d d d  d 6t j d  d 6t j d  d 6t j d d  d 6|  _ i t j d$ d% d& d' d( g d  d! d" g d# 6|  _ d  S()   Nid   R#   R   t   intt   rngt   floatt   emptyR}   R~   t   bazi   i   i   R&   s   2012-1-1R.   R   t   periodst   periods	   2013-01-1i
   t   date2s
   2013-01-02t   bdatet   catt   intervalt   HR   t   onet   twot   quxt   namest   firstt   secondt   reg(   R~   R   (   R   R   (   R}   R   (   R   R   (   R   R   (   t   superR   R8   R-   t   makeStringIndext   makeDateIndext   makeIntIndext   makeRangeIndext   makeFloatIndexR   R)   R   R   R   t   makeCategoricalIndext   makeIntervalIndext   makeTimedeltaIndext   dR
   t   from_tuplest   mi(   R6   R7   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR8   N  s(    (c         C   s   x< |  j  j   D]+ \ } } |  j |  } t j | |  q Wt t d  t d  g  } |  j |  } t j | |  t t d  t d  g  j d  } |  j |  } t j | |  d  S(   NR   t   20130103s   20130101 9:00:00s   20130103 11:00:00s
   US/Eastern(   R   t   itemsR>   R-   R   R   R   t   tz_localize(   R6   RK   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_basic_indexh  s    c         C   sC   x< |  j  j   D]+ \ } } |  j |  } t j | |  q Wd  S(   N(   R   R   R>   R-   R   (   R6   RK   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_multi_indexy  s    c         C   s2   t  j d  } |  j |  } t  j | |  d  S(   Nid   (   R-   t   makeUnicodeIndexR>   R   (   R6   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_unicode  s    c         C   s]   t  t j j d d   } | j i d d 6 j d  } |  j |  } t j | |  d  S(   Ni
   i   t   categoryi    (	   R   RD   RE   RF   R   t	   set_indexR>   R-   R   (   R6   RJ   RL   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   categorical_index  s    (   R?   R@   R8   R   R   R   R   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR   L  s
   				t
   TestSeriesc           B   s   e  Z d    Z d   Z RS(   c         C   sl  t  t |   j |  i  |  _ t j   } d | _ | |  j d <t j   } d | _ | |  j d <t t	 d d d t
 d  } | |  j d <i
 d d	 d
 d t j g d 6d d d d d g d 6d d d d d g d 6t d d d d 6d d t d  d d
 g d 6t d d d g d t d  d d! g d" d# 6t d d d g d d$ 6t d d d" d% d g  d& 6t d d d" d% d g d' t d( 6t j d  d d" d% d f d) 6} t | d  |  j d* <t | d  |  j d+ <t | d  |  j d, <t | d#  |  j d- <t | d$  |  j d. <t | d&  |  j d/ <t | d(  |  j d0 <t | d)  |  j d1 <d  S(2   NR#   Rb   R   s   M8[ns]t   indexi   R   g        g      ?g       @g      @R[   i    i   t   Bt   foo1t   foo2t   foo3t   foo4t   foo5t   Cs   1/1/2009R   t   Dt   20100101R}   t   Et   20130102R   s
   US/Easterni   t   20130603t   CETi   t   Ft   Gi   R   t   orderedt   It   JR   R   t   mixedt   dt_tz_mixedt   dt_tzt   cat_orderedt   cat_unorderedt   numpy_bool_mixed(   R   R   R8   R   R-   t   makeStringSeriest   namet   makeObjectSeriesR   R   RU   RD   t   nanR   R   R   RW   Rs   (   R6   R7   RK   t   data(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR8     s<    			""c         C   sW   xP t  d  D]B } x9 |  j j   D]( \ } } |  j |  } t | |  q# Wq Wd  S(   Ni
   (   RU   R   R   R>   R   (   R6   R   RK   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt
   test_basic  s    (   R?   R@   R8   R   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR     s   	't   TestCategoricalc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  t |   j |  i  |  _ t d d d d d g  |  j d <t d d d d d g d t |  j d <t d	 d
 d d g  |  j d <t d	 d
 d d g d t |  j d <d  S(   NR/   R0   t   cR   t   et	   plain_strR   t   plain_str_orderedi   i   i   i   t	   plain_intt   plain_int_ordered(   R   R   R8   R   R   RW   (   R6   R7   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR8     s    	"c         C   sW   xP t  d  D]B } x9 |  j j   D]( \ } } |  j |  } t | |  q# Wq Wd  S(   Ni
   (   RU   R   R   R>   R   (   R6   R   RK   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR     s    (   R?   R@   R8   R   (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR     s   	t   TestNDFramec           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c      	   C   s  t  t |   j |  i	 d d d d t j g d 6d d d d d g d 6d	 d
 d d d g d 6t d d d d 6d d t d  d d g d 6t d d d g d d 6t d d d g d d 6t d d d d  d! g  d" 6t d d d d  d! g d# t d$ 6} i t	 t
 d | d d t | d  d   d% 6t	 t
 d | d d t | d  d   d& 6t	 |  d' 6|  _ i t t
 d( |  j d% d) |  j d% d   d% 6|  _ d  S(*   Ng        g      ?g       @g      @R[   i    i   R   R   R   R   R   R   R   s   1/1/2009R   i   R   R   R}   R   R   R   s
   US/EasternR   R   R   R   R/   R0   R   R   R   R   R   R   R   R   R   t   ItemAt   ItemB(   R   R   R8   RD   R   R   R   R   RW   R   Ra   R   t   frameR   t   panel(   R6   R7   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR8     s$    %..c         C   s@   x9 |  j  j   D]( \ } } |  j |  } t | |  q Wd  S(   N(   R   R   R>   R   (   R6   RK   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_basic_frame  s    c         C   sV   t  d t  A x9 |  j j   D]( \ } } |  j |  } t | |  q  WWd  QXd  S(   Nt   record(   R   RW   R   R   R>   R   (   R6   RK   RX   R   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_basic_panel  s    c         C   s   |  j  |  j  } x/ |  j j   D] } t |  j | | |  q" Wt |  j d |  j d j |  j d j d  g  } |  j  |  } t | |  |  j d |  j d j |  j d j d  g } |  j  |  } t	 | t  s t
  t | |  d  S(   NR   (   R>   R   t   keysR   R&   R[   R   RA   R*   R$   R(   (   R6   R   t   kt   packed_itemst   l_rec(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt
   test_multi  s    c      	   C   s   |  j  d |  j  d j |  j  d j d  g } t |  j  N } t | |  x7 t t | d t	  D] \ } } t
 | | |  qe WWd  QXd  S(   NR   RT   (   R   R[   R   RA   R   R5   R   RV   R   RW   R*   (   R6   R  R5   RX   t   packed(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_iterator  s    %c         C   s   t  d d d g d t d d  } |  j |  } t | |  t  d d g d t d d  } |  j |  } t | |  d  S(   Ni   i   i   R   s   1/1/2013s   1/3/2013s   1/2/2013(   R   R   R>   R   (   R6   RJ   RL   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   tests_datetimeindex_freq_issue  s    $!c         C   s   t  d d d g  } t  d d g d  } t j j d  | j d <t  d d d g  } d t j g | j d <|  j |  } |  j |  } |  j |  } t | |  t | |  t | |  d  S(   Nt   columnsR/   i   id   i    t   abc(   R   RD   RE   RF   t   locR   R>   R   (   R6   t
   expected_1t
   expected_2t
   expected_3t   result_1t   result_2t   result_3(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt%   test_dataframe_duplicate_column_names&  s    (	   R?   R@   R8   R   R  R  R  R	  R  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR     s   					
	t
   TestSparsec           B   s#   e  Z d    Z d   Z d   Z RS(   c         K   s3   d } t  j t d |  |  j |  Wd  QXd  S(   Ns0   msgpack sparse (series|frame) is not implementedR^   (   Rc   Rd   t   NotImplementedErrorR>   (   R6   R   t
   comparatorR<   Rg   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   _check_roundtrip:  s    c         C   s   t  j   } t j | d d +| j   } |  j | t  j d t | j d d  } |  j | t  j d t | j d d  } |  j | t  j d t d  S(   Ni   i   t   check_series_typet   kindt   integert
   fill_valuei    (   R-   R   RD   R   t	   to_sparseR  R   RW   (   R6   RK   t   sst   ss2t   ss3(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_sparse_seriesC  s    c         C   s   t  j   } t j | j d d  d d  f <t j | j d d  d f <| j   } |  j | t  j d t | j d d	  } |  j | t  j d t | j d
 d  } |  j | t  j d t d  S(   Ni   i   i   i   i
   it   check_frame_typeR  R  R  i    (	   R-   RO   RD   R   R  R  R  R   RW   (   R6   RK   R  R  R  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_sparse_frameS  s    "(   R?   R@   R  R   R"  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR  8  s   			t   TestCompressionc           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 RS(   s7   See https://github.com/pandas-dev/pandas/pull/9783
    c            sP  y d d l  m } | |  _ Wn t k
 r9 t |  _ n
 Xt |  _ t t |   j	 |  i t
 j d d t
 j d 6t
 j d d t
 j d 6t d d  d	 6t t j d
 d d  d d d 6g  t d  D] } t j d |  ^ q d 6  i t   f d   d d g D  d 6t   f d   d d g D  d 6t    d 6|  _ d  S(   Ni(   t   create_enginei  R   R[   R   id   t
   abcdefghijR   i  i   i   R   R   R   R   c            s   i  |  ] }   | |  q S(    (    (   t   .0R  (   R   (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pys
   <dictcomp>|  s   	 R   c            s   i  |  ] }   | |  q S(    (    (   R&  R  (   R   (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pys
   <dictcomp>}  s   	 R   R   (   t
   sqlalchemyR$  t   _create_sql_enginet   ImportErrort   Falset   _SQLALCHEMY_INSTALLEDRW   R   R#  R8   RD   t   arangeR   t   int32R%   R   R   RU   R   R   R   (   R6   R7   R$  R;   (    (   R   s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR8   j  s"    	"/##c         C   sH   |  j  |  j  } x/ |  j j   D] } t |  j | | |  q" Wd  S(   N(   R>   R   R  R   (   R6   R   R  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt
   test_plain  s    c         C   s   |  j  |  j d | } xg |  j j   D]V } | | } |  j | } t | |  x) | j j D] } | j j j s_ t	  q_ Wq( Wd  S(   NR:   (
   R>   R   R  R   t   _datat   blockst   valuest   flagst	   writeableR(   (   R6   R:   R   R  t   valuet   expectedt   block(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   _test_compression  s    
c         C   s'   t  s t j d  n  |  j d  d  S(   Ns   no zlibt   zlib(   t   _ZLIB_INSTALLEDRc   Ry   R7  (   R6   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_compression_zlib  s    c         C   s'   t  s t j d  n  |  j d  d  S(   Ns   no blosct   blosc(   t   _BLOSC_INSTALLEDRc   Ry   R7  (   R6   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_compression_blosc  s    c            s  g   g    t    | } | j      f d   } i d t j d  6d t j d  6d t j d  6t j d d  t j d	  6t j d d  t j d
  6} | j    } t j t   } | j	 | d |  |  j
 |  j d | } x |  j j   D]p }	 | |	 }
 |  j |	 } t |
 |  xC |
 j j D]5 } | j j j sSt  | j d c | | j 7<q8WqWWd  QXWd  QXx) | D]! } t | j  d k st  qWx/ t     D] \ } } | | k st  qWd  S(   Nc            s0    |   }  j  |    j  t |   | S(   s   mock decompress function that delegates to the real
            decompress but caches the result and a copy of the result.
            (   t   appendt	   bytearray(   t   obt   res(   t   controlt   not_garbaget   real_decompress(    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt
   decompress  s    g      ?R   i   R-  R/   Rb   t   nss   datetime64[ns]s   timedelta64[ns]RE  R:   i    sU   copying data after decompressing; this may mean that decompress is caching its result(   t   globalsRE  RD   R   R   t   contextR-   t   assert_produces_warningR   t   setattrR>   R   R  R   R/  R0  R1  R2  R3  R(   t   strt   messageR)   (   R6   t   monkeypatchR:   t   compress_moduleRE  t   rhst   mt   wsR   R  R4  R5  R6  t   wt   buft   control_buf(    (   RB  RC  RD  s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt.   _test_compression_warns_when_decompress_caches  s4    	

.c         C   s*   t  s t j d  n  |  j | d  d  S(   Ns   no zlibR8  (   R9  Rc   Ry   RU  (   R6   RM  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt2   test_compression_warns_when_decompress_caches_zlib  s    c         C   s*   t  s t j d  n  |  j | d  d  S(   Ns   no bloscR;  (   R<  Rc   Ry   RU  (   R6   RM  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt3   test_compression_warns_when_decompress_caches_blosc  s    c      	   C   s'  t  j g  d d } t j d    |  j | d | } Wd  QXt j | |  | j j sb t	  t  j t
 d  g d d } t j d    |  j | d | } Wd  QXt j | |  | j j s t	  t
 d  | d <t
 d  t
 d  k s t	  t j | t  j t
 d  g d d  d  S(   NR   t   uint8R:   R/   R0   i    u   a(   RD   t   arrayR-   RI  RA   R>   t   assert_numpy_array_equalR2  R3  R(   t   ord(   R6   R:   R   t   empty_unpackedt   chart   char_unpacked(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   _test_small_strings_no_warn  s    c         C   s'   t  s t j d  n  |  j d  d  S(   Ns   no zlibR8  (   R9  Rc   Ry   R_  (   R6   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_small_strings_no_warn_zlib  s    c         C   s'   t  s t j d  n  |  j d  d  S(   Ns   no bloscR;  (   R<  Rc   Ry   R_  (   R6   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt    test_small_strings_no_warn_blosc  s    c         C   s   t  s t j d  n  t i t d  d 6 } t | d d d d d g } d	 |  j | d d
 d k sr t  d |  j | d d
 d k s t  d  S(   Ns   no blosct   abcdR[   R   g      ?g       @g      @g      @i   R:   R;  (   R<  Rc   Ry   R   R%   R>   R(   (   R6   t   df1t   df2(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_readonly_axis_blosc   s    %c         C   s   t  i t d  d 6 } t  | d d d d d g } d |  j | d d	 d
 k s\ t  d |  j | d d	 d
 k s t  d  S(   NRb  R[   R   g      ?g       @g      @g      @i   R:   R8  (   R   R%   R>   R(   (   R6   Rc  Rd  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_readonly_axis_zlib	  s    %c         C   s   t  s t j d  n  |  j s/ t j d  n  t i t d  d 6 } |  j | d d } |  j d  } | j d | d	 d
 t	 j
 d | d d } d  g | j _ t | |  d  S(   Ns   no bloscs   no sqlalchemyRb  R[   R:   R;  s   sqlite:///:memory:t   testt	   if_existsR>  t	   index_colR   (   R<  Rc   Ry   R+  R   R%   R>   R(  t   to_sqlt   pandast   read_sql_tableRA   R   R   R   (   R6   R5  RJ   t   engRL   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_readonly_axis_blosc_to_sql  s    	c         C   s   t  s t j d  n  |  j s/ t j d  n  t i t d  d 6 } |  j | d d } |  j d  } | j d | d	 d
 t	 j
 d | d d } d  g | j _ t | |  d  S(   Ns   no zlibs   no sqlalchemyRb  R[   R:   R8  s   sqlite:///:memory:Rg  Rh  R>  Ri  R   (   R9  Rc   Ry   R+  R   R%   R>   R(  Rj  Rk  Rl  RA   R   R   R   (   R6   R5  RJ   Rm  RL   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_readonly_axis_zlib_to_sql  s    	(   R?   R@   t   __doc__R8   R.  R7  R:  R=  RU  RV  RW  R_  R`  Ra  Re  Rf  Rn  Ro  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR#  f  s    			
			5									t   TestEncodingc           B   s#   e  Z d    Z d   Z d   Z RS(   c            s+  t  t |   j |  i t j d  g d d 6t j d d t j d 6t d d  d 6t	 t
 j
 d	 d
 d  d d d 6g  t d  D] } t
 j d |  ^ q d 6d g d d 6  i t   f d   d d g D  d 6t   f d   d d g D  d 6t    d 6|  _ d d d g |  _ d  S(   Ns   \u2019i  R[   R   R   id   R%  R   i  i   i   R   R   R   R   i  R   c            s   i  |  ] }   | |  q S(    (    (   R&  R  (   R   (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pys
   <dictcomp>:  s   	 R   c            s   i  |  ] }   | |  q S(    (    (   R&  R  (   R   (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pys
   <dictcomp>;  s   	 R   R   t   utf8t   utf16t   utf32(   R   Rq  R8   R   R   RD   R,  R-  R%   R   R   RU   R   R   R   t   utf_encodings(   R6   R7   R;   (    (   R   s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR8   /  s    ",##c         C   sW   xP |  j  D]E } x< t j |  j  D]( } |  j | d | } t | |  q# Wq
 Wd  S(   Nt   encoding(   Ru  R   t
   itervaluesR   R>   R   (   R6   Rv  R   RL   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_utf@  s    c         C   sm   xf t  j |  j  D]R } | j   } | j d d  } | | k sI t  |  j |  } t | |  q Wd  S(   NRv  Rr  (   R   Rw  R   R   R(   R>   R   (   R6   R   RL   R5  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_default_encodingG  s    (   R?   R@   R8   Rx  Ry  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyRq  -  s   		R   t   legacy_msgpackt   *s	   *.msgpackt   paramsc         C   s   | |  j   S(   N(   t   param(   t   requestt   datapath(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   legacy_packerT  s    t   TestMsgpackc           B   s   e  Z d  Z i d d d d d d g d 6d d d d g d 6d g d	 6d d
 d g d 6d g d 6Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   sH  
    How to add msgpack tests:

    1. Install pandas version intended to output the msgpack.
TestPackers
    2. Execute "generate_legacy_storage_files.py" to create the msgpack.
    $ python generate_legacy_storage_files.py <output_dir> msgpack

    3. Move the created pickle to "data/legacy_msgpack/<version>" directory.
    R   R   R   t   tsR   t   dupt   seriesR   R   R   R   R   t   reg2c         C   s   x} |  j  j   D]l \ } } | | k s= t d j |    x< | D]4 } d j | |  } | | | k sD t |   qD Wq Wd  S(   Ns    "{0}" not found in unpacked datas   "{0}" not found in data["{1}"](   t   minimum_structureR   R(   Rf   (   R6   R   t   versiont   typt   vR  Rg   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   check_min_structurem  s
    !c         C   sR  t  |  t  d  k  r- t | d d } n t |  } |  j | |  x| j   D] \ } } | | k s t d j |    x | j   D] \ } }	 | | | k s t d j | |    y | | | }
 Wn t k
 r q n Xd j d | d |  } t |  | d   } | d  k	 r9| |	 |
 | |  q t	 |	 |
  q WqV W| S(	   Ns   0.18.0Rv  s   latin-1s&   unpacked data contains extra key "{0}"s$   data["{0}"] contains extra key "{1}"s   compare_{typ}_{dt}R  t   dt(
   R    R   R  R   R(   Rf   t   KeyErrort   getattrRA   R*   (   R6   t   current_datat   all_datat   vfR  R   R  t   dvR  RL   R5  t   comp_methodR  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   comparet  s(    c         C   sN   t  |  t  d  k  r: | j t  } t j | |  n t j | |  d  S(   Ns   0.17.0(   R    R   Rb   R-   R   (   R6   RL   R5  R  R  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   compare_series_dt_tz  s    c         C   sN   t  |  t  d  k  r: | j t  } t j | |  n t j | |  d  S(   Ns   0.17.0(   R    R   Rb   R-   R   (   R6   RL   R5  R  R  (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   compare_frame_dt_mixed_tzs  s    c      	   C   s   t  j j t  j j |   } t j rr | j d  rr | j d  d d d k rr d } t j	 | j
 |   n  y0 t d t   |  j | | | |  Wd  QXWn t k
 r n Xd  S(   Ns   0.17.t   .iit   2s-   Files packed in Py2 can't be read in Py3 ({})R   (   t   osR5   t   basenamet   dirnameR   R   t
   startswitht   splitRc   Ry   Rf   R   RW   R  R)  (   R6   R    R"   R  R  R  Rg   (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_msgpacks_legacy  s    c         C   sJ   t  t j j d  d t d d d } t | j    } t |  d  S(   Ni   R   R   R   (   R   RD   RE   Rk   R   R   R   t   repr(   R6   RK   t   r(    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   test_msgpack_period_freq  s    *(
   R?   R@   Rp  R  R  R  R  R  R  R  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyR  Y  s   
							(O   R   t   distutils.versionR    t   globR  t   warningsR   t   numpyRD   Rc   t   pandas._libs.tslibR   t   pandas.compatR   R   t   pandas.errorsR   Rk  R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   t   pandas.tests.test_panelR   t   pandas.util.testingt   utilt   testingR-   R   R   R   R   R   t   pandas.io.packersR   R   R   R;  R)  R*  R<  RW   R8  R9  t   fixtureR    R"   R*   t   markt   filterwarningsRb   R3   RB   Ri   R   R   R   R   R   R  R#  Rq  R5   t   joinR  t   __file__t   filesR  R  (    (    (    s;   lib/python2.7/site-packages/pandas/tests/io/test_packers.pyt   <module>   s`   ^(	

	?v-A2a.#!