ó
šxŠ\c           @   sz   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
 d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   iinfo(   t
   to_numeric(   t   testingt   TestToNumericc           B   s™  e  Z d  „  Z 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 d g ƒ 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 d d g e j d d d g d d ƒg ƒ d  „  ƒ Z e j j d! d" d# g ƒ e j j d d d d g d d d g e j d d d g d d ƒg ƒ d$ „  ƒ ƒ Z d% „  Z d& „  Z e j j d' d" d# d( g ƒ e j j d) d* d d g e j d+ d d g d e j ƒf d, d- d. d/ d0 d1 g e j d, d- d. d/ d0 d1 g d e j ƒf g ƒ d2 „  ƒ ƒ Z e j j d3 d" e j  f d# e j  f d( e j! f g ƒ d4 „  ƒ Z" e j j d5 d6 d" e# e j$ ƒ j% e# e j$ ƒ j& g f d7 d" e# e j  ƒ j% e# e j  ƒ j& g f d8 d" e# e j' ƒ j% e# e j' ƒ j& g f d9 d" e# e j( ƒ j% e# e j( ƒ j& g f d: d( e# e j) ƒ j% e# e j) ƒ j& g f d; d( e# e j! ƒ j% e# e j! ƒ j& g f d< d( e# e j* ƒ j% e# e j* ƒ j& g f d= d( e# e j+ ƒ j% e# e j+ ƒ j& g f d7 d" e# e j$ ƒ j% e# e j$ ƒ j& d g f d8 d" e# e j  ƒ j% e# e j  ƒ j& d g f d9 d" e# e j' ƒ j% e# e j' ƒ j& d g f d7 d" e# e j$ ƒ j% d e# e j  ƒ j& g f d8 d" e# e j  ƒ j% d e# e j' ƒ j& g f d9 d" e# e j' ƒ j% d e# e j( ƒ j& g f d; d( e# e j) ƒ j% e# e j) ƒ j& d g f d< d( e# e j! ƒ j% e# e j! ƒ j& d g f d= d( e# e j* ƒ j% e# e j* ƒ j& d g f g ƒ d> „  ƒ Z, d? „  Z- RS(A   c         C   s   t  j g  d t ƒ} t | ƒ } t  j g  d t j ƒ} t j | | ƒ t | d d d d ƒ} t  j g  d t j ƒ} t j | | ƒ d  S(   Nt   dtypet   errorst   coercet   downcastt   integer(	   t   pdt   Seriest   objectR   t   npt   int64t   tmt   assert_series_equalt   int8(   t   selft   st   rest   expected(    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt
   test_empty   s    c         C   s„   t  j d d d g ƒ } t | ƒ } t  j d d d g ƒ } t j | | ƒ t  j d d d g ƒ } t | ƒ } t j | | ƒ d  S(   Nt   1s   -3.14t   7i   g…ëQ¸	Ài   (   R	   R
   R   R   R   (   R   R   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_series   s    c         C   sß   t  j d d d d g d t d ƒ d d ƒ} t | ƒ } t j | | ƒ t  j d	 d
 d d g d t d ƒ d d ƒ} t | ƒ } t j | | ƒ t  j t t t t g d t d ƒ d d ƒ} t | ƒ } t j | | ƒ d  S(   Ni   i   i   i   t   indext   ABCDt   namet   XXXg      ð?g      @g      @g      @(   R	   R
   t   listR   R   R   t   Truet   False(   R   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_series_numeric'   s    --c      	   C   s  t  j d d d g ƒ } d } t j t d | ƒ t | d d ƒWd  QXt | d d ƒ} t  j d d d g ƒ } t j | | ƒ t | d d	 ƒ} t  j d d t j	 g ƒ } t j | | ƒ t  j d
 d d d g ƒ } d } t j t d | ƒ t | d d ƒWd  QXd  S(   Ni   g…ëQ¸	Àt   apples,   Unable to parse string "apple" at position 2t   matchR   t   raiset   ignoreR   t   oranges-   Unable to parse string "orange" at position 0(
   R	   R
   t   pytestt   raisest
   ValueErrorR   R   R   R   t   nan(   R   R   t   msgR   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt
   test_error6   s    c         C   sÅ   t  j t t d g ƒ } d } t j t d | ƒ t | d d ƒWd  QXt | d d ƒ} t  j t t d g ƒ } t j	 | | ƒ t | d d ƒ} t  j d d	 t
 j g ƒ } t j	 | | ƒ d  S(
   NR!   s,   Unable to parse string "apple" at position 2R"   R   R#   R$   R   g      ð?g        (   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/tools/test_numeric.pyt   test_error_seen_boolI   s    c         C   sG   d d d g } t  | ƒ } t j d d d g ƒ } t j | | ƒ d  S(   NR   s   -3.14R   i   g…ëQ¸	Ài   (   R   R   t   arrayR   t   assert_numpy_array_equal(   R   R   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt	   test_listX   s    c         C   s²   d d d d g } t  | ƒ } t j | t j | d t j ƒƒ d d d d	 g } t  | ƒ } t j | t j | ƒ ƒ t t t t g } t  | ƒ } t j | t j | ƒ ƒ d  S(
   Ni   i   i   i   R   g      ð?g      @g      @g      @(   R   R   R.   R   R-   R   R   R   (   R   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_list_numeric^   s    "c      	   C   s}  t  j d d d g d d ƒ} t | ƒ } t  j d d d g ƒ } t j | | ƒ t  j d d d g ƒ } t | ƒ } t j | | ƒ t  j t d d t j d ƒ t j d	 ƒ d
 g d d d d d g ƒ ƒ } t  j t d d d t	 j
 d g d d d d d g ƒ ƒ } | j ƒ  } | d j t ƒ | d <t j | | ƒ | j ƒ  } | d d g j t ƒ | d d g <t j | | ƒ d  S(   Ni   g…ëQ¸	Ài   R   t   Ot   ag333333ó?g…ëQ¸	@t   infinitys   0.1t   bg      ð?g       @g      @g      @gš™™™™™¹?(   R	   R
   R   R   R   t	   DataFramet   dictt   decimalt   DecimalR   t   inft   copyt   applyt   assert_frame_equal(   R   R   R   R   t   dft   df_copy(    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_numericl   s&    $#c         C   s  t  j t d t j d ƒ d g t j d ƒ d g ƒ ƒ } | d j t ƒ | d <t  j t d d d g d d g ƒ ƒ } t j | | ƒ t  j t d t	 j
 t j d ƒ d g ƒ d g ƒ ƒ } | d j t ƒ | d <t  j t d d d g d g ƒ ƒ } t j | | ƒ d  S(   NR2   g…ëQ¸	@g      ð?gš™™™™™ù?gš™™™™™¹?(   R	   R5   R6   R7   R8   R;   R   R   R<   R   R-   (   R   R=   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_numeric_lists_and_arraysŠ   s    -*c         C   s_   t  j d d d g ƒ } t | d d ƒ} t  j t j t j t j g ƒ } t j | | ƒ d  S(   NR2   R4   t   cR   R   (   R	   R
   R   R   R)   R   R   (   R   R   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_all_nanž   s    !R   R$   R#   R   c         C   s†   t  j i d d d g d 6d d d g d 6ƒ } | d  k	 rJ t d	 | ƒ n t ƒ  } t j t d
 d ƒ} |  t | |  Wd  QXd  S(   Ni   g…ëQ¸	Ài   R2   t   4t   5t   6R4   R   R"   s	   1-d array(   R	   R5   t   NoneR6   R&   R'   t	   TypeErrorR   (   R   R   R=   t   kwargst	   error_ctx(    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_type_check¤   s
    /$c         C   sÕ   t  j d ƒ d k s t ‚ t  j d ƒ d k s6 t ‚ t  j d ƒ d k sQ t ‚ t  j d ƒ d k sl t ‚ t j t ƒ  t d d d ƒWd  QXt d d d ƒd k s° t ‚ t j t d d d	 ƒƒ sÑ t ‚ d  S(
   Ni   gš™™™™™ñ?R   s   1.1t   XXR   R#   R$   R   (   R	   R   t   AssertionErrorR&   R'   R(   R   t   isnan(   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_scalar®   s    c         C   sK  t  j d d d g d d ƒ} t  j | ƒ } t j | | ƒ t  j t  j | d d ƒƒ } t j | t  j | d d ƒƒ t  j | j ƒ } t j | | j ƒ t  j d t	 j
 d t	 j
 g d d ƒ} t  j | ƒ } t j | | ƒ t  j t  j | d d ƒƒ } t j | t  j | d d ƒƒ t  j | j ƒ } t j | | j ƒ d  S(   Ni   i   i   R   t   xxxg      ð?g      @(   R	   t   IndexR   R   t   assert_index_equalR
   R   t   valuesR.   R   R)   (   R   t   idxR   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_numeric_dtypes»   s    'c         C   s  t  j d d d g d d ƒ} t j d d d g d	 d
 ƒ} t  j | ƒ } t j | t  j | d d ƒƒ t  j t  j | d d ƒƒ } t j | t  j | d d ƒƒ t  j | j	 ƒ } t j
 | | ƒ t  j d d d g d d ƒ} t j d d d g ƒ } t  j | ƒ } t j | t  j | d d ƒƒ t  j t  j | d d ƒƒ } t j | t  j | d d ƒƒ t  j | j	 ƒ } t j
 | | ƒ d  S(   NR   t   2t   3R   RO   i   i   i   R   R   s   1.5s   2.7s   3.4g      ø?gš™™™™™@g333333@(   R	   RP   R   R-   R   R   RQ   R
   R   RR   R.   (   R   RS   t   expR   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_strÐ   s     c         C   s»   t  j d d d d | d d ƒ} t  j | ƒ } t j | t  j | j d d ƒƒ t  j t  j | d d ƒƒ } t j | t  j | j d d ƒƒ t  j | j	 ƒ } t j
 | | j ƒ d  S(   Nt   20130101t   periodsi   t   tzR   RO   (   R	   t
   date_rangeR   R   RQ   RP   t   asi8R
   R   RR   R.   (   R   t   tz_naive_fixtureRS   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_datetime_likeç   s    ""c         C   s»   t  j d d d d d d d ƒ} t  j | ƒ } t j | t  j | j d d ƒƒ t  j t  j | d d ƒƒ } t j | t  j | j d d ƒƒ t  j | j	 ƒ } t j
 | | j ƒ d  S(   Ns   1 daysRZ   i   t   freqt   DR   RO   (   R	   t   timedelta_rangeR   R   RQ   RP   R]   R
   R   RR   R.   (   R   RS   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_timedeltaó   s    !""c         C   sV   t  j d d d d d d d ƒ} t  j | ƒ } t j | t  j | j d d ƒƒ d  S(   Ns   2011-01RZ   i   R`   t   MR   RO   (   R	   t   period_rangeR   R   RQ   RP   R]   (   R   RS   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_periodþ   s    !c         C   sÅ   t  j d d g d d g ƒ } t  j | d d ƒ} t j | t  j t j d t j g ƒ ƒ t  j | d d ƒ} t j | t  j d d g d d g ƒ ƒ t j t	 d d	 ƒ t  j | ƒ Wd  QXd  S(
   Ng      $@i   g      ð?R!   R   R   R$   R"   s   Invalid object type(
   R	   R
   R   R   R   R   R)   R&   R'   RG   (   R   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_non_hashable  s    ((t   dataR   i   i   i   s
   1970-01-02s
   1970-01-03s
   1970-01-04R   s   datetime64[D]c   	      C   s_  d } d } t  j t d | ƒ t j | d | ƒWd  QXt j d d d g d t j ƒ} t j | ƒ } t j	 | | ƒ t j | d d  ƒ} t j	 | | ƒ t j t j d	 d
 ƒ } t j t j ƒ j } | } t j d d d g d | ƒ} t j | d d ƒ} t j	 | | ƒ t j d d d g d | ƒ} t j | d d ƒ} t j	 | | ƒ d  S(   Ns   unsigned-integers#   invalid downcasting method providedR"   R   i   i   i   R   t   UnsignedIntegeri    t   unsignedt   float(   R&   R'   R(   R	   R   R   R-   R   R   R.   RF   R   t	   typecodest   float32t   char(	   R   Rh   t   invalid_downcastR*   R   R   t   smallest_uint_dtypet   float_32_chart   smallest_float_dtype(    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_downcast_basic  s$    !t   signed_downcastR   t   signedc         C   sa   t  j t  j d d ƒ } t  j d d d g d | ƒ} t j | d | ƒ} t j | | ƒ d  S(   Nt   Integeri    i   i   i   R   R   (   R   R   Rl   R-   R	   R   R   R.   (   R   Rh   Rt   t   smallest_int_dtypeR   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_signed_downcast9  s    	c         C   sS   d d d g } t  j | d t ƒ} t j | d d d d ƒ} t j | | ƒ d  S(	   Nt   fooi   i   R   R   R$   R   Rj   (   R   R-   R   R	   R   R   R.   (   R   Rh   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt!   test_ignore_downcast_invalid_dataH  s
    	c         C   sY   d d d g } t  j d d d g d t  j ƒ} t j | d d ƒ} t j | | ƒ d  S(   Ns   -1i   i   iÿÿÿÿR   R   Rj   (   R   R-   R   R	   R   R   R.   (   R   Rh   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt$   test_ignore_downcast_neg_to_unsignedS  s    !R   Rj   s   data,expecteds   1.1gš™™™™™ñ?g     ˆÃ@i N  i¸  gR¸…ˆã@iPÃ  g     jè@c         C   s)   t  j | d | ƒ} t j | | ƒ d  S(   NR   (   R	   R   R   R.   (   R   Rh   R   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt)   test_ignore_downcast_cannot_convert_float\  s    s   downcast,expected_dtypec         C   sV   d d d g } t  j d d d g d | ƒ} t j | d | ƒ} t j | | ƒ d  S(   Nt   256i  i  i   R   R   (   R   R-   R	   R   R   R.   (   R   R   t   expected_dtypeRh   R   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_downcast_not8bitk  s    s   dtype,downcast,min_maxR   t   int16t   int32R   t   uint8t   uint16t   uint32t   uint64c         C   s7   t  j t  j | ƒ d | ƒ} | j | k s3 t ‚ d  S(   NR   (   R	   R   R
   R   RL   (   R   R   R   t   min_maxt   series(    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_downcast_limitsx  s    &c         C   s.  t  j i d d d d d g d 6ƒ } t  j d d t j t j d g d t d d ƒ} t | d d	 d
 ƒ} t j | | ƒ t  j d d d g ƒ } t  j d d t j g d t ƒ} t | d	 d
 ƒ} t j | | ƒ t | d	 d ƒ} t j | | ƒ d } t	 j
 t d | ƒ t | d	 d ƒWd  QXd  S(   NiÈ   i,  t    t   NaNl     p;6$« R2   R   R   R   R   t   12345678901234567890t
   1234567890t   ITEMl   Ò
>V3&¥Z
 iÒ–IR$   s   Unable to parse stringR"   R#   (   R	   R5   R
   R   R)   Rk   R   R   R   R&   R'   R(   (   R   R=   R   t   resultR   R*   (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   test_coerce_uint64_conflict¡  s    %	N(.   t   __name__t
   __module__R   R   R    R+   R,   R/   R0   R?   R@   RB   R&   t   markt   parametrizeRF   RJ   RN   RT   RX   R_   Rc   Rf   Rg   R   R-   Rs   Rx   Rz   R{   t   float64R|   R€   Rƒ   R   R    R   t   mint   maxR   R   R‚   R„   R…   Rˆ   R   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyR      sœ   		
								*
								!"$
			!0	
+(   R7   t   numpyR   R    R&   t   pandasR	   R   t   pandas.utilR   R   R   R   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/tools/test_numeric.pyt   <module>   s   