ó
x\c           @   sz   d  d l  Z  d  d l Z d  d l m Z m Z d  d l m Z d  d l m Z m	 Z	 m
 Z
 m Z d e f d     YZ d S(   i˙˙˙˙N(   t   OrderedDictt   u(   t   compat(   t   Packert   Unpackert   packbt   unpackbt   TestPackc           B   sŃ   e  Z e 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 d d d g d  Z d d d d g d  Z d d d d g d  Z d   Z d   Z RS(   c         C   s.   t  t |  d | } | | k s* t  d  S(   Nt   use_list(   R   R   t   AssertionError(   t   selft   dataR   t   re(    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   check   s    c         C   s   d d d d d d d d d	 d
 d d d d d d d d d d d d d  t t d d d i d d  6d g } x | D] } |  j |  qp Wd  S(   Ni    i   i   i   i˙   i   i˙˙  i   i˙˙˙˙iŕ˙˙˙iß˙˙˙i˙˙˙i˙˙˙i ˙˙i˙˙˙g      đ?t    t   ai   i    i   (    (    (   (    (    (   (    Ni   (   t   Nonet   Truet   FalseR   (   R
   t	   test_datat   td(    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testPack   s    		
	c         C   sĎ   t  d  t  d  t  d  g t  d  g } x | D] } t t | d d d d d d } | | k sp t  t d d  } | j |  } t t j |  d d d d j	   } | | k s4 t  q4 Wd  S(	   NR   t   abcdt   defghs   Đ ŃŃŃĐşĐ¸Đš ŃĐľĐşŃŃt   encodings   utf-8R   i   (
   R   R   R   R	   R   t   packR   R   t   BytesIOt   unpack(   R
   R   R   R   t   packerR   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testPackUnicode"   s    -!$c         C   s   t  j d  t  j d  t  j d  g t  j d  g } xD | D]< } t t | d d d d d d } | | k s@ t  q@ Wd  S(	   NR   R   R   s   Đ ŃŃŃĐşĐ¸Đš ŃĐľĐşŃŃR   s   utf-32R   i   (   R   R   R   R   R	   (   R
   R   R   R   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testPackUTF32.   s    !c         C   s1   d d d g } x | D] } |  j  |  q Wd  S(   NR   R   R   (   R   (   R   (   R
   R   R   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testPackBytes:   s    c         C   s:   t  t d  d d d d d d } | d k s6 t  d  S(	   Ns   abcídefR   s   utf-8t   unicode_errorst   ignoreR   i   t   abcdef(   R   R   R	   (   R
   R   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testIgnoreUnicodeErrors?   s    	c      
   C   sB   d } t  j t d | ! t t d  d d d d Wd  QXd  S(   NsN   'utf-*8' codec can't decode byte 0xed in position 3: invalid continuation bytet   matchs   abcídefR   s   utf-8R   i   (   t   pytestt   raisest   UnicodeDecodeErrorR   R   (   R
   t   msg(    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testStrictUnicodeUnpackE   s    c      
   C   sE   d } t  j t d | $ t t j d  d d d d Wd  QXd  S(   NsY   'ascii' codec can't encode character u*'\\xed' in position 3: ordinal not in range\(128\)R$   s   abcídefR   t   asciiR    t   strict(   R%   R&   t   UnicodeEncodeErrorR   R   R   (   R
   R(   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testStrictUnicodePackK   s    c         C   sR   t  t t j d  d d d d d d d d } | t j d	  k sN t  d  S(
   Ns   abcĐ¤Đ¤Đ¤defR   R*   R    R!   s   utf-8R   i   R"   (   R   R   R   R   R	   (   R
   R   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testIgnoreErrorsPackR   s
    c         C   s?   d } t  j t d |  t t j d  d d  Wd  QXd  S(   Ns5   Can't encode unicode string: no encoding is specifiedR$   t   abcR   (   R%   R&   t	   TypeErrorR   R   R   R   (   R
   R(   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testNoEncodingY   s    c         C   s4   t  t d  d d  d d } | d k s0 t  d  S(   NR/   R   R   i   (   R   R   R   R	   (   R
   R   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testDecodeBinary^   s    c         C   s`   t  d d t d t j d d  k s. t  t  d d t d t j d d  k s\ t  d  S(   Ng      đ?t   use_single_floats   Ęs   >fs   Ës   >d(   R   R   t   structR   R	   R   (   R
   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testPackFloatb   s    	%i    i   i2   ič  c         C   sÁ   t  j   } t   } xQ | D]I } | j | j |   x* t |  D] } | j | j |   qE Wq W| j d  t | d d } x2 | D]* } | j	   t
 t |   k s t  q Wd  S(   Ni    R   i   (   R   R   R   t   writet   pack_array_headert   rangeR   t   seekR   R   t   listR	   (   R
   t   sizest   bioR   t   sizet   it   unpacker(    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testArraySizeh   s    	c         C   sÓ   t  d t  } x? | D]7 } | j |  x! t |  D] } | j |  q6 Wq Wt j | j    } t | d d } x2 | D]* } | j	   t
 t |   k s t  q W| j   | j   d k sĎ t  d  S(   Nt	   autoresetR   i   R   (   R   R   R7   R8   R   R   R   t   bytesR   R   R:   R	   t   reset(   R
   R;   R   R=   R>   R<   R?   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   test_manualresetu   s    (
c         C   sŮ   t  j   } t   } xk | D]c } | j | j |   xD t |  D]6 } | j | j |   | j | j | d   qE Wq W| j d  t |  } x6 | D]. } | j	   d   t |  D k sŁ t
  qŁ Wd  S(   Ni   i    c         S   s   i  |  ] } | d  |  q S(   i   (    (   t   .0R>   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pys
   <dictcomp>   s   	 (   R   R   R   R6   t   pack_map_headerR8   R   R9   R   R   R	   (   R
   R;   R<   R   R=   R>   R?   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   testMapSize   s    	"c         C   s   d d d d g } t  |  } t t |  d	 d t |  k sH t  d
   } t t |  d | d	 d | k s{ t  d  S(   Nt   onei   t   twoi   t   threei   t   fouri   R   c         S   s
   t  |   S(   N(   R:   (   t   seq(    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt	   pair_hook   s    t   object_pairs_hook(   RH   i   (   RI   i   (   RJ   i   (   RK   i   (   R    R   R   t   dictR	   (   R
   RL   t   odRM   (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt
   test_odict   s    *	c         C   sO   d d	 d
 g } t    } | j |  } t | d t } | | k sK t  d  S(   NR   i   i   t   bt   foot   barRN   (   R   i   (   i   RR   (   RS   RT   (   R   t   pack_map_pairsR   R:   R	   (   R
   t   pairlistR   t   packedt   unpacked(    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   test_pairlist   s
    	(   t   __name__t
   __module__R   R   R   R   R   R   R#   R)   R-   R.   R1   R2   R5   R@   RD   RG   RQ   RY   (    (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyR      s"   												(   R4   R%   t   pandas.compatR    R   t   pandasR   t   pandas.io.msgpackR   R   R   R   t   objectR   (    (    (    s@   lib/python2.7/site-packages/pandas/tests/io/msgpack/test_pack.pyt   <module>   s
   "