ó
šxŠ\c           @   s  y d  d l  Z  Wn e k
 r/ d  d l Z  n Xd  d l 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
 Z
 d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l j j  Z d  d l m Z d  d l j Z d  d l m Z m Z m Z d  d l m Z m Z m Z m Z m  Z  m! Z! d  d l" j# j$ Z% e j& rce  j' n e e  j' d d ƒZ( d „  Z) e j* d	 e+ d
 d d d g ƒ d „  ƒ Z, e j* d	 e+ e- g ƒ d „  ƒ Z d e. f d „  ƒ  YZ/ d e. f d „  ƒ  YZ0 d e. f d „  ƒ  YZ1 d S(   iÿÿÿÿN(   t   partial(   t	   Timestamp(   t   StringIOt   ranget   u(   t	   DataFramet   DatetimeIndext   Indext   NaTt   Seriest
   date_ranget   encodings   utf-8c         C   s   d „  t  j |  ƒ Dƒ S(   sÉ   
    Sanitize dictionary for JSON by converting all keys to strings.

    Parameters
    ----------
    d : dict
        The dictionary to convert.

    Returns
    -------
    cleaned_dict : dict
    c         S   s%   i  |  ] \ } } | t  | ƒ “ q S(    (   t   str(   t   .0t   kt   v(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pys
   <dictcomp>/   s   	 (   t   compatt	   iteritems(   t   d(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   _clean_dict!   s    t   paramst   splitt   recordst   valuest   indexc         C   s   |  j  S(   N(   t   param(   t   request(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   orient2   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   numpy<   s    t   TestUltraJSONTestsc        	   B   s   e  Z e j j e j ƒ  d  d ƒd „  ƒ Z e j j d e	 e
 g ƒ d „  ƒ Z e j j d d d d g ƒ d	 „  ƒ Z d
 „  Z d „  Z e j j e j ƒ  o¦ e j d  d ƒd „  ƒ Z e j j d e d ƒ e d ƒ g ƒ d „  ƒ Z e j j d e j e j g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z e j j d d d d d€ g ƒ d „  ƒ Z d „  Z e j j d d d  g ƒ d! „  ƒ Z d" „  Z d# „  Z  d$ „  Z! d% „  Z" d& „  Z# e j j d' d( d) d* g ƒ d+ „  ƒ Z$ d, „  Z% d- „  Z& e j j d. d€ e	 e
 g ƒ d/ „  ƒ Z' d0 „  Z( d1 „  Z) e j j d2 e* j+ ƒ  e* j+ d3 d4 d5 ƒ e* j+ d6 d7 d8 d9 ƒ g ƒ d: „  ƒ Z, d; „  Z- d< „  Z. e j j d= e/ e0 j1 d> ƒ e0 j2 e0 j3 e0 j3 g ƒ d? „  ƒ Z4 d@ „  Z5 dA „  Z6 dB „  Z7 dC „  Z8 dD „  Z9 e j j dE dF dG dH dI g ƒ dJ „  ƒ Z: e j j dK dF dG g ƒ dL „  ƒ Z; e j j dM dN dO dP dQ dR g ƒ dS „  ƒ Z< e j j dE dT dU dV g ƒ dW „  ƒ Z= e j j dX dY dZ d[ g ƒ d\ „  ƒ Z> e j j d] d^ d_ g ƒ d` „  ƒ Z? e j j e j d  da ƒdb „  ƒ Z@ dc „  ZA dd „  ZB de „  ZC df „  ZD e j j dg dh di dj dk dl g ƒ dm „  ƒ ZE dn „  ZF do „  ZG dp „  ZH dq „  ZI dr „  ZJ ds „  ZK dt „  ZL du „  ZM dv „  ZN e j j dw dx d d‚ d„ g ƒ d{ „  ƒ ZO d| „  ZP d} „  ZQ d~ „  ZR d „  ZS RS(…   t   reasons$   not compliant on 32-bit, xref #15865c         C   sª  t  j d ƒ } t j | d d ƒ} t j | ƒ } | d k sE t ‚ t  j d ƒ } t j | d d ƒ} | d k s{ t ‚ t j | ƒ } | d k sœ t ‚ t  j d	 ƒ } t j | d d ƒ} | d
 k sÒ t ‚ t j | ƒ } | d k só t ‚ t  j d ƒ } t j | d d ƒ} | d k s)t ‚ t j | ƒ } | d k sJt ‚ t  j d ƒ } t j | d d ƒ} | d k s€t ‚ t j | ƒ } | d k s¡t ‚ t  j d ƒ } t j | d d ƒ} | d k s×t ‚ t j | ƒ } | d k søt ‚ t  j d ƒ } t j | d d ƒ} | d k s.t ‚ t j | ƒ } | d k sOt ‚ t  j d ƒ } t j | d d ƒ} | d k s…t ‚ t j | ƒ } | d k s¦t ‚ d  S(   Ns	   1337.1337t   double_precisioni   gç§èˆä”@s   0.95i   s   1.0g      ð?s   0.94s   0.9gÍÌÌÌÌÌì?s   1.95s   2.0g       @s   -1.95s   -2.0g       Às   0.995i   s   0.9995i   s   0.99999999999999944(   t   decimalt   Decimalt   ujsont   encodet   decodet   AssertionError(   t   selft   sutt   encodedt   decoded(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_decimalC   sN    t   ensure_asciic            sR   d ‰ d } d } ‡  ‡ f d †  } | | ƒ | | d t  ƒ| | d t ƒd  S(   Ns"   A string \ /   
  	 </script> &s,   "A string \\ \/ \b \f \n \r \t <\/script> &"s;   "A string \\ \/ \b \f \n \r \t \u003c\/script\u003e \u0026"c            sd   t  j ˆ d ˆ  | } | |  k s* t ‚ ˆ t j | ƒ k sE t ‚ ˆ t  j | ƒ k s` t ‚ d  S(   NR+   (   R"   R#   R%   t   jsont   loadsR$   (   t   expected_outputt   encode_kwargst   output(   R+   t   string_input(    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   helper„   s    	t   encode_html_chars(   t   Falset   True(   R&   R+   t   not_html_encodedt   html_encodedR2   (    (   R+   R1   s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_string_conversion|   s    

t   long_numberI¦E¹’ðÿg#å_œçt¦ÂgÔŸpAª‚¿Ác         C   sM   i | t  d ƒ 6} t j | d d ƒ} t j | ƒ } | | k sI t ‚ d  S(   Nt   aR   i   (   R   R"   R#   R$   R%   (   R&   R9   R'   R(   R)   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_double_long_numbers–   s    c      	   C   s’   t  j } x‚ d D]z } t j | | ƒ r t j | | ƒ J t j t j d ƒ ƒ d k s_ t ‚ t j d d t	 ƒd k s€ t ‚ Wd  QXPq q Wd  S(   Ns   it_IT.UTF-8t   Italian_Italygòì‘ÄûË‡Ls   4.78t   precise_floatg…ëQ¸@(   s   it_IT.UTF-8R<   (
   t   localet
   LC_NUMERICt   tmt   can_set_localet
   set_localeR"   R-   t   dumpsR%   R5   (   R&   t   lc_categoryt
   new_locale(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_non_c_locale    s    	$'c         C   sM   i d t  d ƒ 6} t j | ƒ } t j | d t ƒ} | | k sI t ‚ d  S(   Ng=
×£p=@R:   R=   (   R   R"   R#   R$   R5   R%   (   R&   R'   R(   R)   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt    test_decimal_decode_test_precise«   s    s   buggy on win-64 for py2c         C   s²   d } | t  j t  j | ƒ ƒ k s* t ‚ d } | t  j t  j | ƒ ƒ k sT t ‚ d } | t  j t  j | ƒ ƒ k s~ t ‚ d } t j | t  j t  j | ƒ ƒ ƒ s® t ‚ d  S(   NgœWw'&l¡7g0Žä.ÿ++g¹j7­Ö–¶gó¡?>¬úÓ¡(   R"   R$   R#   R%   t   npt   allclose(   R&   t   num(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt#   test_encode_double_tiny_exponential±   s    $$$t   unicode_keyt   key1s   Ø¨Ù†c         C   s;   i t  d ƒ | 6} | t j t j | ƒ ƒ k s7 t ‚ d  S(   Nt   value1(   R   R"   R$   R#   R%   (   R&   RL   t   unicode_dict(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt"   test_encode_dict_with_unicode_keys½   s    t   double_inputc         C   sm   t  j | ƒ } t | d ƒ t t j | ƒ d ƒ k s< t ‚ t | d ƒ t t  j | ƒ d ƒ k si t ‚ d  S(   Ni   (   R"   R#   t   roundR,   R-   R%   R$   (   R&   RQ   R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_double_conversionÄ   s    -c         C   s+   d } t  j | ƒ } | d k s' t ‚ d  S(   Ng      ð?s   1.0(   R"   R#   R%   (   R&   t   decimal_inputR0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_with_decimalÍ   s    c         C   s“   g  g g g d } t  j | ƒ } | t j | ƒ k s= t ‚ | t  j | ƒ k sX t ‚ t j | ƒ } t j	 | t  j | d t
 d | j ƒƒ d  S(   Ni   R   t   dtype(   R"   R#   R,   R-   R%   R$   RH   t   arrayR@   t   assert_numpy_array_equalR5   RV   (   R&   t   nested_inputR0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt"   test_encode_array_of_nested_arraysÓ   s    c         C   s‡   d d d d g d } t  j | ƒ } | t j | ƒ k s@ t ‚ | t  j | ƒ k s[ t ‚ t j t j	 | ƒ t  j | d t
 ƒƒ d  S(   NgcATšÞ@i
   R   (   R"   R#   R,   R-   R%   R$   R@   RX   RH   RW   R5   (   R&   t   doubles_inputR0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_array_of_doublesÞ   s    c         C   sÀ   d } t  j | d d ƒ} | t j | ƒ k s6 t ‚ | t  j | ƒ k sQ t ‚ xh d D]` } t  j | d | ƒ} t | | ƒ } | t j | ƒ k s t ‚ | t  j | ƒ k sX t ‚ qX Wd  S(   Ng² )>@R   i   i   i	   (   i   i	   (   R"   R#   R,   R-   R%   R$   RR   (   R&   RQ   R0   R   t   rounded_input(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_double_precisioné   s    	t   invalid_vali   iÿÿÿÿt   9c         C   sN   d } t  | t ƒ r t n t } t j | ƒ  t j | d | ƒWd  QXd  S(   NgöF7Ýš>@R   (   t
   isinstancet   intt
   ValueErrort	   TypeErrort   pytestt   raisesR"   R#   (   R&   R_   RQ   t   expected_exception(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_invalid_double_precisionø   s
    c         C   sa   d } t  j | ƒ } | t j | ƒ k s0 t ‚ | t  j | ƒ k sK t ‚ | d k s] t ‚ d  S(   Ns   A string \ /   
  	s   "A string \\ \/ \b \f \n \r \t"(   R"   R#   R,   R-   R%   R$   (   R&   R1   R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_string_conversion2  s
    t   unicode_inputs@   RÃ¤ksmÃ¶rgÃ¥s Ø§Ø³Ø§Ù…Ø© Ø¨Ù† Ù…Ø­Ù…Ø¯ Ø¨Ù† Ø¹ÙˆØ¶ Ø¨Ù† Ù„Ø§Ø¯Ù†s   æ—¥Ñˆc         C   sU   t  j | ƒ } t  j | ƒ } | t | ƒ k s6 t ‚ | t j | ƒ k sQ t ‚ d  S(   N(   R"   R#   R$   t   json_unicodeR%   R,   R-   (   R&   Rj   t   enct   dec(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_unicode_conversion  s    c         C   sR   d } t  j | ƒ } t  j | ƒ } | | k s6 t ‚ | t | ƒ k sN t ‚ d  S(   Ns   (   R"   R#   R$   R%   Rk   (   R&   t   escaped_inputRl   Rm   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_control_escaping  s
    c         C   s[   d } t  j | ƒ } t  j | ƒ } | t | ƒ k s< t ‚ | t j | ƒ k sW t ‚ d  S(   Ns   ð†(   R"   R#   R$   Rk   R%   R,   R-   (   R&   t   surrogate_inputRl   Rm   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt"   test_encode_unicode_surrogate_pair  s
    c         C   s[   d } t  j | ƒ } t  j | ƒ } | t | ƒ k s< t ‚ | t j | ƒ k sW t ‚ d  S(   Ns   ð‘€°TRAILINGNORMAL(   R"   R#   R$   Rk   R%   R,   R-   (   R&   t   four_bytes_inputRl   Rm   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_unicode_4bytes_utf8&  s
    c         C   s[   d } t  j | ƒ } t  j | ƒ } | t | ƒ k s< t ‚ | t j | ƒ k sW t ‚ d  S(   Ns   ó¿¿¿TRAILINGNORMAL(   R"   R#   R$   Rk   R%   R,   R-   (   R&   Rs   Rl   Rm   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt&   test_encode_unicode_4bytes_utf8highest.  s
    c         C   s›   g  g g g } t  j | ƒ } | t j | ƒ k s9 t ‚ | t j | ƒ k sT t ‚ | t  j | ƒ k so t ‚ t j t	 j
 | ƒ t  j | d t ƒƒ d  S(   NR   (   R"   R#   R,   R-   R%   RC   R$   R@   RX   RH   RW   R5   (   R&   t   arr_in_arr_inputR0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_array_in_array7  s    t	   num_inputiiz  i—…ÿÿI       €c         C   sd   t  j | ƒ } | t j | ƒ k s* t ‚ | t j | ƒ k sE t ‚ | t  j | ƒ k s` t ‚ d  S(   N(   R"   R#   R,   R-   R%   RC   R$   (   R&   Rx   R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_num_conversionB  s    c         C   sƒ   d d d d g } t  j | ƒ } | t j | ƒ k s< t ‚ | t  j | ƒ k sW t ‚ t j t j	 | ƒ t  j | d t
 ƒƒ d  S(   Ni   i   i   i   R   (   R"   R#   R,   R-   R%   R$   R@   RX   RH   RW   R5   (   R&   t
   list_inputR0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_list_conversionM  s    c         C   sk   i d d 6d d 6d d 6d d 6} t  j | ƒ } | t j | ƒ k sL t ‚ | t  j | ƒ k sg t ‚ d  S(	   Ni   t   k1i   t   k2i   t   k3i   t   k4(   R"   R#   R,   R-   R%   R$   (   R&   t
   dict_inputR0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_dict_conversionW  s    "t   builtin_valuec         C   sd   t  j | ƒ } | t j | ƒ k s* t ‚ | t j | ƒ k sE t ‚ | t  j | ƒ k s` t ‚ d  S(   N(   R"   R#   R,   R-   R%   RC   R$   (   R&   R‚   R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt%   test_encode_builtin_values_conversion^  s    c         C   sˆ   t  j  j t j ƒ  ƒ } t j | d d ƒ} t j | j ƒ  ƒ } t | ƒ t	 j
 | ƒ k sc t ‚ t | ƒ t j | ƒ k s„ t ‚ d  S(   Nt	   date_unitt   s(   t   datetimet   fromtimestampt   timeR"   R#   t   calendart   timegmt   utctimetupleRb   R,   R-   R%   R$   (   R&   t   datetime_inputR0   t   expected(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_datetime_conversione  s
    !c         C   s£   t  j j t j ƒ  ƒ } t j | d d ƒ} | j | j | j d d d f } t	 j
 | ƒ } t | ƒ t j | ƒ k s~ t ‚ t | ƒ t j | ƒ k sŸ t ‚ d  S(   NR„   R…   i    (   R†   t   dateR‡   Rˆ   R"   R#   t   yeart   montht   dayR‰   RŠ   Rb   R,   R-   R%   R$   (   R&   t
   date_inputR0   t   tupR   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_date_conversionm  s    !!t   testi   i   i   i
   i   i   iË< c         C   s=   t  j | ƒ } d j d | j ƒ  ƒ } | | k s9 t ‚ d  S(   Ns   "{iso}"t   iso(   R"   R#   t   formatt	   isoformatR%   (   R&   R–   R0   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt!   test_encode_time_conversion_basicw  s    c         C   s[   t  j d d d d t j ƒ } t j | ƒ } d j d | j ƒ  ƒ } | | k sW t ‚ d  S(   Ni
   i   i   iË< s   "{iso}"R—   (	   R†   Rˆ   t   pytzt   utcR"   R#   R˜   R™   R%   (   R&   R–   R0   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt    test_encode_time_conversion_pytz  s    c         C   sa   t  j d d d d t j j ƒ  ƒ } t j | ƒ } d j d | j ƒ  ƒ } | | k s] t	 ‚ d  S(   Ni
   i   i   iË< s   "{iso}"R—   (
   R†   Rˆ   t   dateutilt   tzt   tzutcR"   R#   R˜   R™   R%   (   R&   R–   R0   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt$   test_encode_time_conversion_dateutilˆ  s    $t   decoded_inputR   c         C   s%   t  j | ƒ d k s! t d ƒ ‚ d  S(   Nt   nulls   Expected null(   R"   R#   R%   (   R&   R¢   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_as_null  s    c         C   s>  t  j  d d d d d d d ƒ } t | ƒ } t j t j | d d ƒƒ } | | j d k sd t ‚ t j t j | d d ƒƒ } | | j d k s› t ‚ t j t j | d d ƒƒ } | | j d k sÒ t ‚ t j t j | d d ƒƒ } | | j k st ‚ d } t j t	 d | ƒ t j | d d ƒWd  QXd  S(   NiÝ  i   i   i   i   iÐI R„   R…   i
   i	   t   msi   t   usi   t   nss*   Invalid value 'foo' for option 'date_unit't   matcht   fooi Êš;i@B iè  (
   R†   R   R"   R$   R#   t   valueR%   Re   Rf   Rc   (   R&   t   valt   stampt	   roundtript   msg(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_datetime_units™  s    !c         C   sg   d } t  j | d t ƒ} t  j | ƒ } | t | d t ƒk sH t ‚ | t j | ƒ k sc t ‚ d  S(   Ns   æ—¥ÑˆR+   (   R"   R#   R4   R$   Rk   R%   R,   R-   (   R&   t	   unencodedRl   Rm   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_to_utf8­  s
    c         C   sF   t  d ƒ } t j | ƒ } t j t | ƒ ƒ } | | k sB t ‚ d  S(   Ns   {"obj": 31337}(   R   R"   R$   R   R%   (   R&   Rj   t   dec1t   dec2(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_from_unicode¶  s    c         C   st   d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} | ƒ  } | ƒ  | _ | | j _ t j t ƒ  t j | ƒ Wd  QXd  S(   Nt   O2c           B   s   e  Z d  Z RS(   i    (   t   __name__t
   __module__t   member(    (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyRµ   Á  s   t   O1c           B   s   e  Z d  Z RS(   i    (   R¶   R·   R¸   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyR¹   Å  s   (   t   objectR¸   Re   Rf   t   OverflowErrorR"   R#   (   R&   Rµ   R¹   R¢   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_recursion_max¾  s    	c         C   s-   d } t  j t ƒ  t j | ƒ Wd  QXd  S(   Ns   fdsa sda v9sa fdsa(   Re   Rf   Rc   R"   R$   (   R&   t	   jibberish(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_jibberishÐ  s    t   broken_jsont   [t   {t   ]t   }c         C   s'   t  j t ƒ  t j | ƒ Wd  QXd  S(   N(   Re   Rf   Rc   R"   R$   (   R&   R¿   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_broken_jsonÖ  s    t   too_big_charc         C   s+   t  j t ƒ  t j | d ƒ Wd  QXd  S(   Ni   i   (   Re   Rf   Rc   R"   R$   (   R&   RÅ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_depth_too_bigà  s    t
   bad_strings   "TESTINGs
   "TESTING\"t   trut   fat   nc         C   s'   t  j t ƒ  t j | ƒ Wd  QXd  S(   N(   Re   Rf   Rc   R"   R$   (   R&   RÇ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_bad_stringè  s    s   {{1337:""}}s
   {{"key":"}s   [[[truec         C   s>   x7 t  d ƒ D]) } t j t ƒ  t j | ƒ Wd  QXq Wd  S(   Niè  (   R   Re   Rf   Rc   R"   R$   (   R&   R¿   t   _(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_broken_json_leakó  s    t   invalid_dicts   {{{{31337}}}}s   {{{{"key":}}}}s   {{{{"key"}}}}c         C   s'   t  j t ƒ  t j | ƒ Wd  QXd  S(   N(   Re   Rf   Rc   R"   R$   (   R&   RÎ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_invalid_dictý  s    t   numeric_int_as_strt   31337s   -31337c         C   s%   t  | ƒ t j | ƒ k s! t ‚ d  S(   N(   Rb   R"   R$   R%   (   R&   RÐ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_numeric_int  s    s   only PY2c         C   s'   t  j t ƒ  t j d ƒ Wd  QXd  S(   Ns   ý¿¿¿¿¿(   Re   Rf   R»   R"   R#   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt$   test_encode_unicode_4bytes_utf8_fail  s    c         C   sñ   d } t  j | ƒ } | t j | ƒ k s0 t ‚ | t j | ƒ k sK t ‚ | t  j | ƒ k sf t ‚ d } t  j | ƒ } | t j | ƒ k s– t ‚ | t j | ƒ k s± t ‚ | t  j | ƒ k sÌ t ‚ d t  j t d ƒ ƒ k sí t ‚ d  S(   Ns   31337   1337s    s   "  \u0000\r\n "s     \u0000
 (   R"   R#   R,   R-   R%   RC   R$   R   (   R&   t   wrapped_inputR0   t   alone_input(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_null_character  s    c         C   s.   d } t  j | ƒ t j | ƒ k s* t ‚ d  S(   Ns   "31337 \u0000 31337"(   R"   R$   R,   R-   R%   (   R&   RÔ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_null_character!  s    c         C   s’   d d d d d d g } t  j | ƒ } | t j | ƒ k sB t ‚ | t  j | ƒ k s] t ‚ t j t j	 | ƒ t  j | d t
 d t j ƒƒ d  S(   NIÿÿÿÿÿÿÿR   RV   (   R"   R#   R,   R-   R%   R$   R@   RX   RH   RW   R5   t   int64(   R&   t
   long_inputR0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt    test_encode_list_long_conversion%  s    c         C   sj   d } t  j | ƒ } | t j | ƒ k s0 t ‚ | t j | ƒ k sK t ‚ | t  j | ƒ k sf t ‚ d  S(   NIÿÿÿÿÿÿÿ(   R"   R#   R,   R-   R%   RC   R$   (   R&   RÙ   R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_long_conversion2  s
    t   int_expt   1337E40s   1.337E40s   1337E+9s	   1.337e+40s   1.337E-4c         C   s(   t  j | ƒ t j | ƒ k s$ t ‚ d  S(   N(   R"   R$   R,   R-   R%   (   R&   RÜ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_numeric_int_exp:  s    c         C   s>   t  ƒ  } t j d d d g | ƒ d | j ƒ  k s: t ‚ d  S(   Ni   i   i   s   [1,2,3](   R   R"   t   dumpt   getvalueR%   (   R&   t   f(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_dump_to_file@  s    	c         C   sQ   d t  f d „  ƒ  Y} | ƒ  } t j d d d g | ƒ d | j k sM t ‚ d  S(   Nt   FileLikec           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   d |  _  d  S(   Nt    (   t   bytes(   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   __init__H  s    c         S   s   |  j  | 7_  d  S(   N(   Rå   (   R&   t
   data_bytes(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   writeK  s    (   R¶   R·   Ræ   Rè   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyRã   F  s   	i   i   i   s   [1,2,3](   Rº   R"   Rß   Rå   R%   (   R&   Rã   Rá   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_dump_to_file_likeE  s    	c         C   s*   t  j t ƒ  t j g  d ƒ Wd  QXd  S(   NRä   (   Re   Rf   Rd   R"   Rß   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_dump_file_args_errorR  s    c         C   sw   d } d d d d g } t  | ƒ } | t j | ƒ k s? t ‚ t  | ƒ } t j t j | ƒ t j | d t ƒƒ d  S(   Ns	   [1,2,3,4]i   i   i   i   R   (	   R   R"   t   loadR%   R@   RX   RH   RW   R5   (   R&   t   datat   exp_dataRá   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_load_fileV  s    c         C   s   d t  f d „  ƒ  Y} d d d d g } | ƒ  } | t j | ƒ k sL t ‚ | ƒ  } t j t j | ƒ t j | d t ƒƒ d  S(   NRã   c           B   s   e  Z d  „  Z RS(   c         S   s-   y |  j  Wn t k
 r( t |  _  d SXd  S(   Ns	   [1,2,3,4](   t   endt   AttributeErrorR5   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   readd  s
    	(   R¶   R·   Rñ   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyRã   b  s   i   i   i   i   R   (	   Rº   R"   Rë   R%   R@   RX   RH   RW   R5   (   R&   Rã   Rí   Rá   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_load_file_likea  s    			c         C   s'   t  j t ƒ  t j d ƒ Wd  QXd  S(   Ns   [](   Re   Rf   Rd   R"   Rë   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_load_file_args_errort  s    c         C   s%   t  j d t j ƒ s! t d ƒ ‚ d  S(   Ns   ^\d+\.\d+(\.\d+)?$s/   ujson.__version__ must be a string like '1.4.0'(   t   reR¨   R"   t   __version__R%   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_versionx  s    c         C   s'   t  j t ƒ  t j d ƒ Wd  QXd  S(   Nl   ËUÖ$Jpœ[¨lS(   Re   Rf   R»   R"   R#   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_numeric_overflow|  s    c         C   sZ   d t  f d „  ƒ  Y} x= t d d ƒ D], } t j t ƒ  t j | ƒ  ƒ Wd  QXq& Wd  S(   Nt   Nestedc           B   s   e  Z d  Z RS(   l   ËUÖ$Jpœ[¨lS(   R¶   R·   t   x(    (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyRø     s   i    id   (   Rº   R   Re   Rf   R»   R"   R#   (   R&   Rø   RÌ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt#   test_encode_numeric_overflow_nested€  s    R«   I£MûÕ    i   i    c         C   s5   d j  d | ƒ } t j | ƒ d | k s1 t ‚ d  S(   Ns   {{"id": {val}}}R«   t   id(   R˜   R"   R$   R%   (   R&   R«   t   doc(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt&   test_decode_number_with_32bit_sign_bitˆ  s    c         C   sX   xQ t  d ƒ D]C } t j r+ d j d ƒ n d } | d d d } t j | ƒ q Wd  S(   Ni
   s   \u00e5s   utf-8s   Ã¥i   i   (   R   R   t   PY3R#   R"   (   R&   RÌ   t   baset   escape_input(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_big_escape‘  s    c         C   so   xh t  d ƒ D]Z } t j r+ d j d ƒ n d } t j d ƒ } | | d d d | } t j | ƒ q Wd  S(   Ni
   s   \u00e5s   utf-8s   Ã¥s   "i   i   (   R   R   Rþ   R#   t   str_to_bytesR"   R$   (   R&   RÌ   Rÿ   t   quoteR   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_big_escape˜  s
    c            sl   i d t  d ƒ 6‰  d t f ‡  f d †  ƒ  Y} | ƒ  } t j | ƒ } t j | ƒ } | ˆ  k sh t ‚ d  S(   Niiz  t   keyt   DictTestc              s   e  Z ‡  f d  †  Z RS(   c            s   ˆ  S(   N(    (   R&   (   R   (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   toDict¥  s    (   R¶   R·   R  (    (   R   (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyR  ¤  s   (   R   Rº   R"   R#   R$   R%   (   R&   R  t   oR0   Rm   (    (   R   s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_to_dict¡  s    	c      	      s×  d t  f ‡  f d †  ƒ  Y‰  d } t j t d | ƒ t j ˆ  d ƒ ƒ Wd  QXd t j ˆ  d ƒ d t ƒk sx t ‚ d „  } d	 t j ˆ  d ƒ d | ƒk s¨ t ‚ d
 „  } t j t d d ƒ t j ˆ  d ƒ d | ƒWd  QXd „  } t j	 t j ˆ  d ƒ d | ƒƒ d k st ‚ d „  } t j	 t j t
 j
 d d d ƒ ƒ ƒ t j	 t j ˆ  d ƒ d | ƒƒ k syt ‚ ˆ  d ƒ ˆ  d ƒ g } t j t j | d t ƒƒ t j	 t j | d t ƒƒ k sÓt ‚ d  S(   Nt   _TestObjectc              s/   e  Z d  „  Z e ‡  f d †  ƒ Z d „  Z RS(   c         S   s   | |  _  d  S(   N(   R«   (   R&   R«   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyRæ   ²  s    c            s
   ˆ  d ƒ S(   Nt   recursive_attr(    (   R&   (   R
  (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyR  µ  s    c         S   s   t  |  j ƒ S(   N(   R   R«   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   __str__¹  s    (   R¶   R·   Ræ   t   propertyR  R  (    (   R
  (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyR
  °  s   	s   Maximum recursion level reachedR¨   R©   s   "foo"t   default_handlerc         S   s   d S(   Nt   foobar(    (   RÌ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt
   my_handlerÂ  s    s   "foobar"c         S   s   t  d ƒ ‚ d  S(   Ns   I raise for anything(   Rd   (   RÌ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   my_handler_raisesÈ  s    s   I raise for anythingc         S   s   d S(   Ni*   (    (   RÌ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   my_int_handlerÎ  s    i*   c         S   s   t  j  d d d ƒ S(   NiÝ  i   i   (   R†   (   RÌ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   my_obj_handlerÔ  s    iÝ  i   i   t   bart   default(   Rº   Re   Rf   R»   R"   R#   R   R%   Rd   R$   R†   R,   R-   RC   (   R&   R®   R  R  R  R  t   obj_list(    (   R
  s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_default_handler®  s,    				$NI   €    I       I       Iÿÿÿÿ    (T   R¶   R·   Re   t   markt   skipifR   t   is_platform_32bitR*   t   parametrizeR5   R4   R8   R;   RF   RG   t   is_platform_windowsRþ   RK   R   RP   t   matht   piRS   RU   RZ   R\   R^   t   NoneRh   Ri   Rn   Rp   Rr   Rt   Ru   Rw   Ry   R{   R   Rƒ   RŽ   R•   R†   Rˆ   Rš   R   R¡   R   RH   t
   datetime64t   nant   infR¤   R¯   R±   R´   R¼   R¾   RÄ   RÆ   RË   RÍ   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/io/json/test_ujson.pyR   A   sÊ   8$			$				
									
	'		
	'								$				!													t   TestNumpyJSONTestsc           B   sÔ  e  Z e j j d  e e g ƒ d „  ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d	 „  Z e j j d
 d d d  g ƒ d „  ƒ Z d „  Z d „  Z d „  Z e j j d i  g  g e i  f d d! g e i  f d g d g e i  f d i  d g e i  f d d g d g e i  f d d g  d g e i  f i d d 6g e e d e ƒ f i i i d d 6d 6d 6e e d e ƒ f i d d 6d d 6i d d 6g e e d e ƒ f g	 ƒ d „  ƒ Z d „  Z RS("   t
   bool_inputc         C   s7   t  j | ƒ } t j t j | ƒ ƒ | k s3 t ‚ d  S(   N(   RH   t   boolR"   R$   R#   R%   (   R&   R$  t   b(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt	   test_boolâ  s    c      	   C   sn   t  j t t t t t t t t g d t  j ƒ} t  j t j t j | ƒ ƒ d t  j ƒ} t j	 | | ƒ d  S(   NRV   (
   RH   RW   R5   R4   R%  R"   R$   R#   R@   RX   (   R&   t
   bool_arrayR0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_bool_arrayç  s    c         C   sL   t  j | ƒ j } | d ƒ } | t j t j | ƒ ƒ ƒ | k sH t ‚ d  S(   Ni   (   RH   RV   t   typeR"   R$   R#   R%   (   R&   t   any_int_dtypet   klassRJ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_intï  s    c         C   sb   t  j d d t  j ƒ} | j | ƒ } t  j t j t j | ƒ ƒ d | ƒ} t j	 | | ƒ d  S(   Nid   RV   (
   RH   t   arangeRb   t   astypeRW   R"   R$   R#   R@   RX   (   R&   R+  t   arrt	   arr_inputt
   arr_output(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_int_arrayõ  s
    	c         C   s›   | d k r( t  j ƒ  r( t j d ƒ n  t j | ƒ j } | d k r[ t j d ƒ j } n t j | ƒ j } | t	 j
 t	 j | ƒ ƒ ƒ | k s— t ‚ d  S(   NRØ   t   uint64s-   Cannot test 64-bit integer on 32-bit platform(   RØ   R4  (   R   R  Re   t   skipRH   RV   R*  t   iinfot   maxR"   R$   R#   R%   (   R&   R+  R,  RJ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_int_maxý  s    c         C   sL   t  j | ƒ j } | d ƒ } | t j t j | ƒ ƒ ƒ | k sH t ‚ d  S(   NgõJY†8p@(   RH   RV   R*  R"   R$   R#   R%   (   R&   t   float_dtypeR,  RJ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt
   test_float  s    c         C   sn   t  j d d d d t  j ƒ} | j | ƒ } t  j t j t j | d d ƒƒ d | ƒ} t j	 | | ƒ d  S(   Ng      )@g×£p=
7g@geâX·û?RV   R   i   (
   RH   R.  t   floatR/  RW   R"   R$   R#   R@   t   assert_almost_equal(   R&   R9  R0  t   float_inputt   float_output(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_float_array  s    	c         C   s`   t  j | ƒ j } | t  j | ƒ j d ƒ } t j | t j t j	 | d d ƒƒ ƒ | ƒ d  S(   Ni
   R   i   (
   RH   RV   R*  t   finfoR7  R@   R<  R"   R$   R#   (   R&   R9  R,  RJ   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_float_max  s    c         C   su   t  j d ƒ } | j d ƒ } t j t  j t j t j | ƒ ƒ ƒ | ƒ t j t j t j | ƒ d t	 ƒ| ƒ d  S(   Ni`   i   i   R   (   i   i   i   i   i   i   (
   RH   R.  t   reshapeR@   RX   RW   R"   R$   R#   R5   (   R&   R0  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_array_basic"  s    %t   shapei
   i   i   id   i   c         C   su   t  j d ƒ } | j | ƒ } t j t  j t j t j | ƒ ƒ ƒ | ƒ t j t j t j | ƒ d t	 ƒ| ƒ d  S(   Nid   R   (
   RH   R.  RB  R@   RX   RW   R"   R$   R#   R5   (   R&   RD  R0  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_array_reshaped+  s    %c         C   sx   d t  ƒ  t ƒ  t ƒ  t  ƒ  d d d d g i d d 6g	 } t j | ƒ } t j t j t j t j | ƒ ƒ ƒ | ƒ d  S(   NR:   i*   g33333sX@R&  R«   R  (	   t   listt   dictRH   RW   R@   RX   R"   R$   R#   (   R&   t   arr_listR0  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_array_list9  s
    c         C   s¢   t  j } t  j d d d d | ƒ} | j d ƒ } t  j t j t j | ƒ ƒ d | ƒ} t j	 | | ƒ t j t j | ƒ d t
 d | ƒ} t j	 | | ƒ d  S(	   Ng°rh‘íY@gX9´Èvi@i   RV   i   i   R   (   i   i   i   (   RH   t   float32R.  RB  RW   R"   R$   R#   R@   R<  R5   (   R&   RV   R0  t   arr_out(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_array_float@  s    	'$c         C   s0   t  j t ƒ  t j t j d ƒ ƒ Wd  QXd  S(   Ni   (   Re   Rf   Rd   R"   R#   RH   RW   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_0d_arrayL  s    s   bad_input,exc_type,kwargsi*   R:   R&  t   ct   labelledi   i   c      	   C   s9   t  j | ƒ $ t j t j | ƒ d t | Wd  QXd  S(   NR   (   Re   Rf   R"   R$   RC   R5   (   R&   t	   bad_inputt   exc_typet   kwargs(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_array_numpy_exceptP  s    c         C   s²  i g  d 6} t  j t  j | ƒ d t d t ƒ} t j d ƒ | d k j ƒ  sV t ‚ t j d g ƒ | d k j ƒ  s~ t ‚ | d d  k s” t ‚ i d d 6g } t  j t  j | ƒ d t d t ƒ} t j t
 d ƒ g ƒ | d k j ƒ  sö t ‚ t j d g ƒ | d k j ƒ  st ‚ | d d  k s4t ‚ d } t  j | d t d t ƒ} t j d d	 d
 d d d g d t ƒj d ƒ } | | d k j ƒ  s¡t ‚ | d d  k s·t ‚ t j t
 d ƒ d g ƒ | d k j ƒ  sèt ‚ d } t  j | d t d t ƒ} t j d d	 d
 d d d g d t ƒj d ƒ } | | d k j ƒ  sUt ‚ t j d d d g ƒ | d k j ƒ  sƒt ‚ t j d d g ƒ | d k j ƒ  s®t ‚ d  S(   NR:   R   RO  i   i    i   i*   s<   [{"a": 42, "b":31}, {"a": 24, "c": 99}, {"a": 2.4, "b": 78}]i   i   ic   g333333@iN   RV   i   R&  sK   {"1": {"a": 42, "b":31}, "2": {"a": 24, "c": 99}, "3": {"a": 2.4, "b": 78}}t   1t   2t   3(   i   i    (   i   i   (   i   i   (   R"   R-   RC   R5   RH   t   emptyt   allR%   RW   R  R   Rb   RB  (   R&   t   labelled_inputR0   t   input_dumpst   expected_vals(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_array_numpy_labelled_  s4    %(.(*1*.(   i
   i
   (   i   i   i   (   id   i   N(   R¶   R·   Re   R  R  R5   R4   R'  R)  R-  R3  R8  R:  R?  RA  RC  RE  RI  RL  RM  Rc   R  Rd   RG  RS  R\  (    (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyR#  à  s6   $													*Bt   TestPandasJSONTestsc           B   sj  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e	 j
 j d d d	 d
 d g ƒ d „  ƒ Z e	 j
 j d g  d g g ƒ d „  ƒ Z e	 j
 j d d d g ƒ d „  ƒ Z e	 j
 j d d d g ƒ d „  ƒ Z d „  Z d „  Z d „  Z e	 j
 j d d d d d d  d! d" d# d$ g	 ƒ e	 j
 j d% d& d' g ƒ d( „  ƒ ƒ Z d) „  Z d* „  Z d+ „  Z RS(,   c         C   sw  | d k r" | r" t  j d ƒ n  t d d d g d d d g g d	 d
 d g d d d d g ƒ} | d  k rs i  n t d | ƒ } | d  k r” i  n t d | ƒ } t j t j | |  |  } | d k rè t | ƒ } t |   } n t | ƒ } | d k r$d d d g | _	 d d g | _
 n9 | d k rBd d g | _
 n | d	 k r]| j ƒ  } n  t j | | d t ƒd  S(   NR   s   Not idiomatic pandasi   i   i   i   i   i   R   R:   R&  t   columnsRù   t   yt   zR   R   R   R   i    t   check_dtype(   Re   R5  R   R  RG  R"   R$   R#   R   R^  R   t	   transposeR@   t   assert_frame_equalR4   (   R&   R   R   t   dfR/   t   decode_kwargsR0   Rm   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_dataframe…  s(    !!!	c         C   sã   t  d d d g d d d g g d d d	 g d
 d d d g ƒ} i | d 6| j ƒ  d 6} | d  k rk i  n t d | ƒ } i t j t j | |  ƒ d 6t j t j | |  ƒ d 6} t j t j | |  ƒ | k sß t ‚ d  S(   Ni   i   i   i   i   i   R   R:   R&  R^  Rù   R_  R`  t   df1t   df2R   (   R   t   copyR  RG  R"   R$   R#   R%   (   R&   R   Rd  t   nestedRR  t   exp(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_dataframe_nested£  s    !!c         C   sü   | d k r t  j d ƒ n  t d d d g d d d	 g g d
 d d g d d d d g d t j ƒ} | d  k rv i  n t d | ƒ } t t j t j	 | |  d t
 d t
 ƒŒ  } | d  k rÊ | j } n | d k rè d d g | _ n  t j | | ƒ d  S(   NR   R   s   Incompatible with labelled=Truei   i   i   i   i   i   R   R:   R&  R^  Rù   R_  R`  RV   R   R   RO  R   i    (   R   R   (   Re   R5  R   RH   Rb   R  RG  R"   R$   R#   R5   t   TR   R@   Rc  (   R&   R   Rd  RR  R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_dataframe_numpy_labelled®  s    !'!c         C   sa  t  d d d d d d g d d d	 d
 d d d d d g ƒj ƒ  } | d  k rT i  n t d | ƒ } | d  k ru i  n t d | ƒ } t j t j | |  |  } | d k rÉ t | ƒ } t  |   } n t  | ƒ } | d! k rd  | _ | j ƒ  } d d d d d d g | _	 n3 | d" k rGd  | _ d d d d d d g | _	 n  t
 j | | d  t ƒd  S(#   Ni
   i   i   i(   i2   i<   t   namet   seriesR   i   i   i   i	   i   R   R   R   t   6t   7t   8R`   t   10t   15R   R   i    i   i   i   i   i   Ra  (   NR   (   R   R   (   R	   t   sort_valuesR  RG  R"   R$   R#   R   Ro  R   R@   t   assert_series_equalR4   (   R&   R   R   R…   R/   Re  R0   Rm   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_seriesÀ  s$    !!!!			c         C   sæ   t  d d d d d d g d d d	 d
 d d d d d g ƒj ƒ  } i | d 6| j ƒ  d 6} | d  k rn i  n t d | ƒ } i t j t j | |  ƒ d 6t j t j | |  ƒ d 6} t j t j | |  ƒ | k sâ t ‚ d  S(   Ni
   i   i   i(   i2   i<   Ro  Rp  R   i   i   i   i	   i   t   s1t   s2R   (	   R	   Rv  Ri  R  RG  R"   R$   R#   R%   (   R&   R   R…   Rj  RR  Rk  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_series_nestedÚ  s    !!!c         C   sº  t  d d d d d d g d d ƒ} t  t j t j | ƒ ƒ d d ƒ} t j | | ƒ t  t j t j | ƒ d	 t ƒd d ƒ} t j | | ƒ t t j t j | d
 d ƒƒ ƒ } t  |   } t j | | ƒ | j | j k sê t	 ‚ t t j t j | d
 d ƒd	 t ƒƒ } t  |   } t j | | ƒ | j | j k sHt	 ‚ t  t j t j | d
 d ƒƒ d d ƒ} t j | | ƒ t  t j t j | d
 d ƒd	 t ƒd d ƒ} t j | | ƒ t  t j t j | d
 d ƒƒ d d ƒ} t j | | ƒ t  t j t j | d
 d ƒd	 t ƒd d ƒ} t j | | ƒ t  t j t j | d
 d ƒƒ d d ƒ} t j | | ƒ t  t j t j | d
 d ƒd	 t ƒd d ƒ} t j | | ƒ d  S(   Ni   i-   i   ib   i+   i   Ro  R   R   R   R   R   R   (
   R   R"   R$   R#   R@   t   assert_index_equalR5   R   Ro  R%   (   R&   t   iR0   Rm   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt
   test_indexä  s@    $$*$!	!	!	c         C   sÞ   d } t  d d d ƒ} t j | d | ƒ} t t j t j | ƒ ƒ ƒ } t j | | ƒ t	 t j
 j t | ƒ ƒ d | ƒ} t	 t j t j | d | ƒƒ ƒ } | j j j t j ƒ } t | ƒ | _ t j | | ƒ d  S(   NR§   s   1/1/2000t   periodsi   R„   R   (   R
   R"   R#   R   RH   RW   R$   R@   R|  R	   t   randomt   randnt   lenR   R   R/  RØ   Rw  (   R&   R„   t   rngR(   R)   t   tst
   idx_values(    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_datetime_index  s    $$t   invalid_arrs   [31337,]s   [,31337]s   []]s   [,]c         C   s'   t  j t ƒ  t j | ƒ Wd  QXd  S(   N(   Re   Rf   Rc   R"   R$   (   R&   R‡  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_invalid_array#  s    R0  iiz  c         C   s%   | t  j t | ƒ ƒ k s! t ‚ d  S(   N(   R"   R$   R   R%   (   R&   R0  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_array-  s    t   extreme_numIÿÿÿÿÿÿÿI       €c         C   s%   | t  j t | ƒ ƒ k s! t ‚ d  S(   N(   R"   R$   R   R%   (   R&   RŠ  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_extreme_numbers3  s    t   too_extreme_numt   9223372036854775808s   -90223372036854775809c         C   s'   t  j t ƒ  t j | ƒ Wd  QXd  S(   N(   Re   Rf   Rc   R"   R$   (   R&   RŒ  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_too_extreme_numbers9  s    c         C   s   i  t  j d ƒ k s t ‚ d  S(   Ns   {}
	 (   R"   R$   R%   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt%   test_decode_with_trailing_whitespaces@  s    c         C   s'   t  j t ƒ  t j d ƒ Wd  QXd  S(   Ns   {}
	 a(   Re   Rf   Rc   R"   R$   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt)   test_decode_with_trailing_non_whitespacesC  s    c         C   s'   t  j t ƒ  t j d ƒ Wd  QXd  S(   Ns   [18446098363113800555](   Re   Rf   Rc   R"   R-   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_array_with_big_intG  s    t   float_numbergÞ3ˆÓ­ùñ?gªRCÊÀó?g¨B4¡æ‡õ?gŽš
LO÷?g‰	jøù?g[_$´åÜú?gŒ¹k	ù ü?g}?5^ºIþ?gÍÌÌÌÌÌô?t   signiÿÿÿÿi   c         C   s3   | | 9} t  j | t j t | ƒ ƒ d d ƒd  S(   Nt   check_less_precisei   (   R@   R<  R"   R-   R   (   R&   R“  R’  (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_decode_floating_pointK  s    
	c         C   sA   t  ƒ  } x$ t d d ƒ D] } | j | ƒ q Wt j | ƒ d  S(   Ni    i † (   t   setR   t   addR"   R#   (   R&   R…   Rù   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_big_setW  s    	c         C   s"   d t  j t ƒ  ƒ k s t ‚ d  S(   Ns   [](   R"   R#   R–  R%   (   R&   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_empty_set`  s    c      	   C   sf   d d d d d d d d d	 h	 } t  j | ƒ } t  j | ƒ } x  | D] } | | k sF t ‚ qF Wd  S(
   Ni   i   i   i   i   i   i   i   i	   (   R"   R#   R$   R%   (   R&   R…   Rl   Rm   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   test_encode_setc  s
    !(   R¶   R·   Rf  Rl  Rn  Rx  R{  R~  R†  Re   R  R  Rˆ  R‰  R‹  RŽ  R  R  R‘  R•  R˜  R™  Rš  (    (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyR]  ƒ  s:   					
	/						'			(2   R,   t   ImportErrort
   simplejsonR‰   R†   R    t	   functoolsR    R>   R  Rô   Rˆ   Rž   R   RH   Re   R›   t   pandas._libs.jsont   _libsR"   t   pandas._libs.tslibR   t   pandas.compatR   R   R   R   t   pandasR   R   R   R   R	   R
   t   pandas.util.testingt   utilt   testingR@   Rþ   RC   Rk   R   t   fixtureR  R   R5   Rº   R   R#  R]  (    (    (    s>   lib/python2.7/site-packages/pandas/tests/io/json/test_ujson.pyt   <module>   sH   .		!ÿ ÿ ¡£