ó
šxŠ\c        
   @   sâ  d  Z  d d l Z d d l Z d d l m Z d d l Z d d l m	 Z	 d d l
 m Z m Z m Z m Z m Z m Z m Z m Z d d l m Z d „  Z e j d e e e e e e e e g ƒ 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 j f d „  ƒ  YZ  d e j! f d „  ƒ  YZ" d e j# f d „  ƒ  YZ$ d e j% f d „  ƒ  YZ& d e j' f d „  ƒ  YZ( d e j) f d „  ƒ  YZ* d e j+ f d „  ƒ  YZ, d e j- f d  „  ƒ  YZ. d! e j/ f d" „  ƒ  YZ0 d# e j1 f d$ „  ƒ  YZ2 d% e j3 f d& „  ƒ  YZ4 d' e j5 f d( „  ƒ  YZ6 d) e j7 f d* „  ƒ  YZ8 d+ e j9 f d, „  ƒ  YZ: d- e j; f d. „  ƒ  YZ< d/ e j= f d0 „  ƒ  YZ> d S(1   sj  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.

The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).

Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.

iÿÿÿÿN(   t   is_extension_array_dtype(   t   integer_array(   t	   Int8Dtypet
   Int16Dtypet
   Int32Dtypet
   Int64Dtypet
   UInt8Dtypet   UInt16Dtypet   UInt32Dtypet   UInt64Dtype(   t   basec           C   sD   t  t d d ƒ ƒ t j g t  t d d ƒ ƒ t j g d d g S(   Ni   i	   i
   ib   ic   id   (   t   listt   ranget   npt   nan(    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt	   make_data   s    t   paramsc         C   s
   |  j  ƒ  S(   N(   t   param(   t   request(    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   dtype"   s    c         C   s   t  t ƒ  d |  ƒS(   NR   (   R   R   (   R   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   data(   s    c         C   s   t  t j d g d |  ƒS(   Ni   R   (   R   R   R   (   R   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   data_missing-   s    c         C   s   t  d d d g d |  ƒS(   Ni   i   i    R   (   R   (   R   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   data_for_sorting2   s    c         C   s   t  d t j d g d |  ƒS(   Ni   i    R   (   R   R   R   (   R   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   data_missing_for_sorting7   s    c           C   s   d „  S(   Nc         S   s   t  j |  ƒ o t  j | ƒ S(   N(   R   t   isnan(   t   xt   y(    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   <lambda>?   s    (    (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   na_cmp<   s    c           C   s   t  j S(   N(   R   R   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   na_valueB   s    c      	   C   sC   d } d } d } t  j } t | | | | | | | | g d |  ƒS(   Ni   i    i   R   (   R   R   R   (   R   t   bt   at   ct   na(    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   data_for_groupingG   s
    	t	   TestDtypec           B   s&   e  Z e j j d  d ƒ d „  ƒ Z RS(   t   reasons   using multiple dtypesc         C   s   d  S(   N(    (   t   self(    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   test_is_dtype_unboxes_dtypeR   s    (   t   __name__t
   __module__t   pytestt   markt   skipR&   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyR#   P   s   t   TestArithmeticOpsc           B   sJ   e  Z d d  „ Z e d „ Z d d „ Z e j j	 d d ƒ d „  ƒ Z
 RS(   c         C   s&   t  t |  ƒ j | | | d d  ƒd  S(   Nt   exc(   t   superR,   t   check_opnamet   None(   R%   t   st   op_namet   otherR-   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyR/   Z   s    c         C   s®  | d  k r‡| j j r4 | d k r4 t j d ƒ n  t | d ƒ rƒ t | j ƒ rƒ t j j	 j
 | j ƒ rƒ | j | j j ƒ } n  | | | ƒ } | j | | ƒ } | d k rÀ t j d ƒ n„ | d k rü | j t ƒ } | d k rD| j t ƒ } qDnH | j d	 ƒ r2| j | j ƒ } | j | j ƒ } n | j | j ƒ } | d
 k rtt | t j ƒ rt| j d ƒ } n  |  j | | ƒ n# t j | ƒ  | | | ƒ Wd  QXd  S(   Nt   __rsub__s*   unsigned subtraction gives negative valuesR   t   __rdiv__s    skipping reverse div in python 2t   __rtruediv__t   __truediv__t   __div__t   __rt   __rpow__i   (   R6   R7   R8   (   R0   R   t   is_unsigned_integerR)   R+   t   hasattrR    t   pdt   apit   typest   is_integer_dtypet   astypet   numpy_dtypet   combinet   floatt
   startswitht
   isinstancet   Seriest   fillnat   assert_series_equalt   raises(   R%   R1   t   opR3   R2   R-   t   resultt   expected(    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt	   _check_op_   s0    c         C   s#   t  t |  ƒ j | | | d  ƒ d  S(   N(   R.   R,   t   _check_divmod_opR0   (   R%   R1   RK   R3   R-   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRO   Š   s    R$   s   intNA does not error on opsc         C   s   d  S(   N(    (   R%   R   t   all_arithmetic_operators(    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt
   test_error   s    N(   R'   R(   R0   R/   t   NotImplementedErrorRN   RO   R)   R*   R+   RQ   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyR,   X   s   +t   TestComparisonOpsc           B   s   e  Z d d  „ Z d „  Z RS(   c         C   s&   t  t |  ƒ j | | | d d  ƒd  S(   NR-   (   R.   RS   R/   R0   (   R%   R1   R2   R3   R-   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyR/   •   s    c         C   s   |  j  | | | ƒ d  S(   N(   R/   (   R%   R1   R   R2   R3   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   _compare_other™   s    N(   R'   R(   R0   R/   RT   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRS   “   s   t   TestInterfacec           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRU      s   t   TestConstructorsc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRV   ¡   s   t   TestReshapingc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRW   ¥   s   t   TestGetitemc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRX   ­   s   t   TestSetitemc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRY   ±   s   t   TestMissingc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRZ   µ   s   t   TestMethodsc           B   s,   e  Z e j j d  e e g ƒ d „  ƒ Z RS(   t   dropnac         C   s¡   | d  } | r- t  j | | j ƒ  ƒ } n | } t j | ƒ j d | ƒ j ƒ  } t j | ƒ j d | ƒ j ƒ  } | j j | j	 ƒ | _ |  j
 | | ƒ d  S(   Ni
   R\   (   R   t   arrayt   isnaR=   RG   t   value_countst
   sort_indext   indexRA   R   RI   (   R%   t   all_dataR\   R3   RL   RM   (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   test_value_counts»   s    
!(   R'   R(   R)   R*   t   parametrizet   Truet   FalseRc   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyR[   ¹   s   t   TestCastingc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRg   Ë   s   t   TestGroupbyc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRh   Ï   s   t   TestNumericReducec           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRi   Ó   s   t   TestBooleanReducec           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRj   ×   s   t   TestPrintingc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRk   Û   s   t   TestParsingc           B   s   e  Z RS(    (   R'   R(   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyRl   ß   s   (?   t   __doc__t   numpyR   R)   t   pandas.core.dtypes.commonR    t   pandasR=   t   pandas.core.arraysR   t   pandas.core.arrays.integerR   R   R   R   R   R   R   R	   t   pandas.tests.extensionR
   R   t   fixtureR   R   R   R   R   R   R   R"   t   BaseDtypeTestsR#   t   BaseArithmeticOpsTestsR,   t   BaseComparisonOpsTestsRS   t   BaseInterfaceTestsRU   t   BaseConstructorsTestsRV   t   BaseReshapingTestsRW   t   BaseGetitemTestsRX   t   BaseSetitemTestsRY   t   BaseMissingTestsRZ   t   BaseMethodsTestsR[   t   BaseCastingTestsRg   t   BaseGroupbyTestsRh   t   BaseNumericReduceTestsRi   t   BaseBooleanReduceTestsRj   t   BasePrintingTestsRk   t   BaseParsingTestsRl   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/extension/test_integer.pyt   <module>   sB   :		;
