ó
šxŠ\c           @   sÝ  d  d l  Z  d  d l Z d  d l Z d  d l m Z m Z d  d l Z d  d l m	 Z	 d  d l
 j j Z d d l m Z m Z m Z e j j e d d ƒZ e j d „  ƒ Z e j d	 „  ƒ Z e j d
 „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z d e f d „  ƒ  YZ d e e	 j  f d „  ƒ  YZ! d e e	 j" f d „  ƒ  YZ# d e e	 j$ f d „  ƒ  YZ% d e e	 j& f d „  ƒ  YZ' d e e	 j( f d „  ƒ  YZ) d e e	 j* f d „  ƒ  YZ+ e j j, d d ƒ Z- e j j e d d ƒZ. d  e	 j/ f d! „  ƒ  YZ0 d" e e	 j1 f d# „  ƒ  YZ2 d$ e e	 j3 f d% „  ƒ  YZ4 d& e e	 j5 f d' „  ƒ  YZ6 d( e e	 j7 f d) „  ƒ  YZ8 d* e e	 j9 f d+ „  ƒ  YZ: d, e e	 j; f d- „  ƒ  YZ< d S(.   iÿÿÿÿN(   t   PY2t   PY36(   t   basei   (   t	   JSONArrayt	   JSONDtypet	   make_datat   reasons   Py2 doesn't have a UserDictc           C   s   t  ƒ  S(   N(   R   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   dtype   s    c          C   sC   t  ƒ  }  x- t |  d ƒ t |  d ƒ k r8 t  ƒ  }  q Wt |  ƒ S(   s*   Length-100 PeriodArray for semantics test.i    i   (   R   t   lenR   (   t   data(    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR	      s    	#c           C   s   t  i  i d d 6g ƒ S(   s   Length 2 array with [NA, Valid]i
   t   a(   R   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   data_missing'   s    c           C   s/   t  i d d 6i d d 6i d d 6d d 6g ƒ S(   Ni   t   bi   t   ci   R
   i   (   R   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   data_for_sorting-   s    c           C   s!   t  i d d 6i  i d d 6g ƒ S(   Ni   R   i   R
   (   R   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   data_missing_for_sorting2   s    c         C   s   |  j  S(   N(   t   na_value(   R   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR   7   s    c           C   s   t  j S(   N(   t   operatort   eq(    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   na_cmp<   s    c           C   sZ   t  i d d 6i d d 6i  i  i d d 6d d 6i d d 6d d 6i d d 6i d d 6g ƒ S(   Ni   R   i    R
   i   R   (   R   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   data_for_groupingA   s    "
t   BaseJSONc           B   s   e  Z d  „  Z d „  Z RS(   c         K   sª   | j  j d k r“ | j  | j  k s* t ‚ t j t | j j t ƒ ƒ d | j	 d | j ƒ} t j t | j j t ƒ ƒ d | j	 d | j ƒ} n  t
 j | | |  d  S(   Nt   jsont   indext   name(   R   R   t   AssertionErrort   pdt   SeriesR   t   valuest   astypet   objectR   t   tmt   assert_series_equal(   t   selft   leftt   rightt   kwargs(    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR    Q   s    c         O   sû   t  j | j | j d | j d d ƒ d | j d t ƒ d | j d t ƒ d | j d t ƒ d d j d | j d d	 ƒ ƒ ƒ| j d
 k j } x, | D]$ } |  j	 | | | | | | Ž q• W| j
 d | ƒ } | j
 d | ƒ } t  j | | | | Ž d  S(   Nt   exactt   check_column_typet   equivt   check_namest   check_exactt   check_categoricalt   objs   {obj}.columnst	   DataFrameR   t   columns(   R   t   assert_index_equalR-   t   gett   Truet   Falset   formatt   dtypesR   R    t   dropt   assert_frame_equal(   R!   R"   R#   t   argsR$   t   jsonst   col(    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR5   Z   s    (   t   __name__t
   __module__R    R5   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR   L   s   		t	   TestDtypec           B   s   e  Z RS(    (   R9   R:   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR;   n   s   t   TestInterfacec           B   s   e  Z d  „  Z RS(   c         C   sý   t  t j i d d 6ƒ t j i d d 6ƒ t j i d d 6ƒ g ƒ } t j | ƒ } |  j | | ƒ |  j | j ƒ  | j ƒ  ƒ t j | j d d d g ƒ ƒ } t	 j
 t ƒ  |  j | | ƒ Wd  QXt	 j
 t ƒ ! |  j | j ƒ  | j ƒ  ƒ Wd  QXd  S(   Ni   R
   i   R   i   R   i    (   R   t   collectionst   UserDictR   R   R    R5   t   to_framet   taket   pytestt   raisesR   (   R!   R	   R
   R   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_custom_assertss   s    !(   R9   R:   RC   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR<   r   s   t   TestConstructorsc           B   s&   e  Z e j j d  d ƒ d „  ƒ Z RS(   R   s&   not implemented constructor from dtypec         C   s   d  S(   N(    (   R!   R	   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_from_dtype‡   s    (   R9   R:   RA   t   markt   skipRE   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRD   …   s   t   TestReshapingc           B   sD   e  Z e j j d  d ƒ d „  ƒ Z e j j d  d ƒ d „  ƒ Z RS(   R   s   Different definitions of NAc         C   s   d S(   sÛ   
        The test does .astype(object).stack(). If we happen to have
        any missing values in `data`, then we'll end up with different
        rows since we consider `{}` NA, but `.astype(object)` doesn't.
        N(    (   R!   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt
   test_stack   s    s   dict for NAc         C   s   t  ƒ  j | | ƒ S(   N(   t   supert   test_unstack(   R!   R	   R   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRK   —   s    (   R9   R:   RA   RF   RG   RI   t   xfailRK   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRH      s   t   TestGetitemc           B   s   e  Z RS(    (   R9   R:   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRM   ž   s   t   TestMissingc           B   sD   e  Z e j j d  d ƒ d „  ƒ Z e j j d  d ƒ d „  ƒ Z RS(   R   s   Setting a dict as a scalarc         C   s   d S(   s;   We treat dictionaries as a mapping in fillna, not a scalar.N(    (   R!   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_fillna_series£   s    c         C   s   d S(   s;   We treat dictionaries as a mapping in fillna, not a scalar.N(    (   R!   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_fillna_frame§   s    (   R9   R:   RA   RF   RG   RO   RP   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRN   ¢   s   t
   Unhashables   Dictionary order unstablet
   TestReducec           B   s   e  Z RS(    (   R9   R:   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRR   ±   s   t   TestMethodsc           B   s=  e  Z e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e e j	 j
 d e e g ƒ d „  ƒ ƒ Z e e j	 j
 d e e g ƒ d „  ƒ ƒ Z e j	 j d d ƒ d	 „  ƒ Z e j	 j d d ƒ d
 „  ƒ Z e j	 j d d ƒ d „  ƒ Z e d „  ƒ Z e j	 j d d ƒ d „  ƒ Z e j	 j d d ƒ d „  ƒ Z RS(   c         C   s   d  S(   N(    (   R!   t   all_datat   dropna(    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_value_counts¶   s    c         C   s   d  S(   N(    (   R!   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_sort_values_frameº   s    c         C   s   t  t |  ƒ j | ƒ d  S(   N(   RJ   RS   t   test_argsort(   R!   R   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRX   ¿   s    c         C   s   t  t |  ƒ j | ƒ d  S(   N(   RJ   RS   t   test_argsort_missing(   R!   R   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRY   Ã   s    t	   ascendingc         C   s   t  t |  ƒ j | | ƒ d  S(   N(   RJ   RS   t   test_sort_values(   R!   R   RZ   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR[   È   s    c         C   s   t  t |  ƒ j | | ƒ d  S(   N(   RJ   RS   t   test_sort_values_missing(   R!   R   RZ   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR\   Î   s    R   s#   combine for JSONArray not supportedc         C   s   d  S(   N(    (   R!   t   data_repeated(    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_combine_leÔ   s    c         C   s   d  S(   N(    (   R!   R]   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_combine_addØ   s    c         C   s   d  S(   N(    (   R!   R	   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_combine_firstÜ   s    c         C   s   t  ƒ  j | | ƒ d  S(   N(   RJ   t   test_hash_pandas_object_works(   R!   R	   t   kind(    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRa   à   s    s   broadcasting errorc         C   s   t  ƒ  j | | ƒ d  S(   N(   RJ   t   test_where_series(   R!   R	   R   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRc   ä   s    s   Can't compare dicts.c         C   s   t  t |  ƒ j | ƒ d  S(   N(   RJ   RS   t   test_searchsorted(   R!   R   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRd   ë   s    (   R9   R:   t
   unhashableRV   RW   t   unstableRX   RY   RA   RF   t   parametrizeR0   R1   R[   R\   RG   R^   R_   R`   Ra   Rc   Rd   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRS   µ   s   ''t   TestCastingc           B   s&   e  Z e j j d  d ƒ d „  ƒ Z RS(   R   s$   failing on np.array(self, dtype=str)c         C   s   d S(   sŠ   This currently fails in NumPy on np.array(self, dtype=str) with

        *** ValueError: setting an array element with a sequence
        N(    (   R!   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_astype_strñ   s    (   R9   R:   RA   RF   RG   Ri   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRh   ð   s   t   TestGroupbyc           B   sP   e  Z e d  „  ƒ Z e d „  ƒ Z e e j j d e	 e
 g ƒ d „  ƒ ƒ Z RS(   c         C   s   d S(   s  
        This currently fails in Series.name.setter, since the
        name must be hashable, but the value is a dictionary.
        I think this is what we want, i.e. `.name` should be the original
        values, and not the values for factorization.
        N(    (   R!   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt    test_groupby_extension_transformÿ   s    c         C   s   d S(   só   
        This fails in Index._do_unique_check with

        >   hash(val)
        E   TypeError: unhashable type: 'UserDict' with

        I suspect that once we support Index[ExtensionArray],
        we'll be able to dispatch unique.
        N(    (   R!   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   test_groupby_extension_apply  s    t   as_indexc         C   s   t  t |  ƒ j | | ƒ d  S(   N(   RJ   Rj   t   test_groupby_extension_agg(   R!   Rm   R   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRn     s    (   R9   R:   Re   Rk   Rl   Rf   RA   RF   Rg   R0   R1   Rn   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRj   ý   s   	t   TestArithmeticOpsc           B   s&   e  Z d  „  Z d „  Z e d „ Z RS(   c         C   s   d  S(   N(    (   R!   R	   t   all_arithmetic_operators(    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt
   test_error  s    c         C   s7   t  j | ƒ } t j t d d ƒ | | Wd  QXd  S(   Nt   matcht   unsupported(   R   R   RA   RB   t	   TypeError(   R!   R	   t   ser(    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt$   test_add_series_with_extension_array   s    c         C   s"   t  t |  ƒ j | | | d t ƒS(   Nt   exc(   RJ   Ro   t   _check_divmod_opRt   (   R!   t   st   opt   otherRw   (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRx   %  s    (   R9   R:   Rq   Rv   t   NotImplementedErrorRx   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyRo     s   		t   TestComparisonOpsc           B   s   e  Z RS(    (   R9   R:   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR}   +  s   t   TestPrintingc           B   s   e  Z RS(    (   R9   R:   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyR~   /  s   (=   R=   R   RA   t   pandas.compatR    R   t   pandasR   t   pandas.tests.extensionR   t   pandas.util.testingt   utilt   testingR   t   arrayR   R   R   RF   t   skipift
   pytestmarkt   fixtureR   R	   R   R   R   R   R   R   R   R   t   BaseDtypeTestsR;   t   BaseInterfaceTestsR<   t   BaseConstructorsTestsRD   t   BaseReshapingTestsRH   t   BaseGetitemTestsRM   t   BaseMissingTestsRN   RG   Re   Rf   t   BaseNoReduceTestsRR   t   BaseMethodsTestsRS   t   BaseCastingTestsRh   t   BaseGroupbyTestsRj   t   BaseArithmeticOpsTestsRo   t   BaseComparisonOpsTestsR}   t   BasePrintingTestsR~   (    (    (    sD   lib/python2.7/site-packages/pandas/tests/extension/json/test_json.pyt   <module>   sB   "
	;