ó
šxŠ\c           @   sà  d  d l  m  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  d l	 Z	 d  d l
 m Z m Z m Z d  d l m Z m Z d  d l m Z d  d l j j Z d  d	 l m Z d  d l Z d  d
 l m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& d  d l' j( j) Z d  d l* m+ Z+ d  d l, j( j- Z. d  d l/ j j0 Z1 d  d l/ m2 Z2 d e3 f d „  ƒ  YZ4 d e3 f d „  ƒ  YZ5 d e3 f d „  ƒ  YZ6 d e3 f d „  ƒ  YZ7 d e3 f d „  ƒ  YZ8 d e3 f d „  ƒ  YZ9 d e3 f d „  ƒ  YZ: d e: f d „  ƒ  YZ; d e: f d „  ƒ  YZ< d e3 f d  „  ƒ  YZ= d! „  Z> d" „  Z? d# e3 f d$ „  ƒ  YZ@ d% „  ZA d& „  ZB d' e3 f d( „  ƒ  YZC d) „  ZD d* „  ZE d+ „  ZF d, „  ZG d- „  ZH d. „  ZI d/ e3 f d0 „  ƒ  YZJ d S(1   iÿÿÿÿ(   t   datetime(   t   permutationsN(   t   nan(   t   RandomState(   t   algost   groupbyt	   hashtable(   t   lranget   range(   t   np_array_datetime64_compat(   t   CategoricalDtype(   t   Categoricalt   CategoricalIndext   DatetimeIndext   Indext   IntervalIndext   Seriest	   Timestampt   compat(   t   DatetimeArray(   t   assert_almost_equalt	   TestMatchc           B   s   e  Z d  „  Z d „  Z RS(   c      
   C   sÁ  t  j d d d g ƒ } t  j d d d d d d d d g ƒ } t j | | ƒ } t  j d d d d d d d d g d t  j ƒ} t j | | ƒ t t j | | t  j ƒ ƒ } t t  j d d d d d d t  j d g ƒ ƒ } t j	 | | ƒ t t  j
 d ƒ d t  j ƒ} t j | d d g ƒ } t  j d d d d d g d t  j ƒ} t j | | ƒ t t j | d d g t  j ƒ ƒ } t t  j t  j t  j d t  j d g ƒ ƒ } t j	 | | ƒ d  S(	   Ni    i   i   i   iÿÿÿÿt   dtypei   i   (   t   npt   arrayR   t   matcht   int64t   tmt   assert_numpy_array_equalR   R   t   assert_series_equalt   aranget   float32(   t   selft   valuest   to_matcht   resultt   expectedt   s(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt	   test_ints!   s    '00'$-c      	   C   sÛ   d d d g } d d d d d d d g } t  j | | ƒ } t j d d d d d d d g d	 t j ƒ} t j | | ƒ t t  j | | t j ƒ ƒ } t t j d d t j d d d t j g ƒ ƒ } t j	 | | ƒ d  S(
   Nt   foot   bart   bazt   quxi   i    iÿÿÿÿi   R   (
   R   R   R   R   R   R   R   R   R   R   (   R    R!   R"   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_strings6   s    -0(   t   __name__t
   __module__R&   R+   (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR      s   	t   TestFactorizec           B   sí  e  Z d  „  Z d „  Z d „  Z d „  Z e j j d d& d' d( d) d g d d d d d	 g d* d+ d, d g f d- d. d/ d0 d1 g d d d d d	 g d2 d3 d4 d5 g f d6 d7 d8 d9 g d d d d g d: d; d< g f g ƒ d
 „  ƒ Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j j d e j d d d g d d ƒe j d> d d@ g d d ƒe j d d d g d d ƒg ƒ d „  ƒ Z e j j d e j d d d d g d d ƒd f e j d d d d g d d ƒd f e j dB d dD d g d d ƒdF f e j d dH d d g d d ƒd f e j d d d d g d e ƒd f e j dI dJ dK dL g d e ƒdM f e j dN dO dP dQ g d e ƒdR f g ƒ d „  ƒ Z e j j d  e e g ƒ e j j d! d" d# d$ g ƒ d% „  ƒ ƒ Z RS(S   c      	   C   s`  t  j d d d d d d d d g ƒ \ } } t j | t j d d d g d t ƒƒ t  j d d d d d d d d g d t ƒ\ } } t j d d d d d d d d g d t j ƒ} t j | | ƒ t j d d d g d t ƒ} t j | | ƒ t  j t	 t
 t d	 ƒ ƒ ƒ ƒ \ } } t j d d d d
 d g d t j ƒ} t j | | ƒ t j d d
 d d d g d t j ƒ} t j | | ƒ t  j t	 t
 t d	 ƒ ƒ ƒ d t ƒ\ } } t j d d
 d d d g d t j ƒ} t j | | ƒ t j d d d d
 d g d t j ƒ} t j | | ƒ t  j t	 t
 t j d ƒ ƒ ƒ ƒ \ } } t j d d d d
 d g d t j ƒ} t j | | ƒ t j d d d d d g d t j ƒ} t j | | ƒ t  j t	 t
 t j d ƒ ƒ ƒ d t ƒ\ } } t j d d
 d d d g d t j ƒ} t j | | ƒ t j d d d d d g d t j ƒ} t j | | ƒ d  S(   Nt   at   bt   cR   t   sorti    i   i   i   i   i   g      @g      @g      @g       @g      ð?g        (   R   t	   factorizeR   R   R   R   t   objectt   Truet   intpt   listt   reversedR   R   R   t   float64(   R    t   labelst   uniquest   exp(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt
   test_basicE   s>    "!0'''-''*''!''c         C   s"  t  d d t j d d t j g ƒ } t j | ƒ \ } } t j d d d d d d g d	 t j ƒ} t j	 | | ƒ t
 d d d t j g ƒ } t j | | ƒ t j | d
 t ƒ\ } } t j d d d d d d g d	 t j ƒ} t j	 | | ƒ t
 d t j d d g ƒ } t j | | ƒ d  S(   Nt   At   Bg…ëQ¸	@i    iÿÿÿÿi   i   i   R   R2   (   R   R   R   t   infR   R3   R   R6   R   R   R   t   assert_index_equalR5   (   R    t   xR:   R;   R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt
   test_mixedm   s    $**c         C   ss  t  d ƒ } t  d ƒ } t | | | | | | g ƒ } t j | ƒ \ } } t j d d d d d d g d t j ƒ} t j | | ƒ t	 | | g ƒ } t j
 | | ƒ t j | d t ƒ\ } } t j d d d d d d g d t j ƒ} t j | | ƒ t	 | | g ƒ } t j
 | | ƒ t j d d d	 ƒ} t j d
 d d	 ƒ} t | | | | | | g ƒ } t j | ƒ \ } } t j d d d d d d g d t j ƒ} t j | | ƒ t j
 | t j | | g ƒ ƒ t j | d t ƒ\ } } t j d d d d d d g d t j ƒ} t j | | ƒ t j
 | t j | | g ƒ ƒ t j d ƒ } t j d ƒ } t | | | | | | | g ƒ } t j | ƒ \ } } t j d d d d d d d g d t j ƒ} t j | | ƒ t j
 | t j | | g ƒ ƒ t j | d t ƒ\ } } t j d d d d d d d g d t j ƒ} t j | | ƒ t j
 | t j | | g ƒ ƒ d  S(   Ns   20130101 09:00:00.00004t   20130101i    i   R   R2   t   201302t   freqt   Mt   201303s   1 day 1 mins   1 day(   R   R   R   R3   R   R   R6   R   R   R   RA   R5   t   pdt   Periodt   PeriodIndext   to_timedelta(   R    t   v1t   v2RB   R:   R;   R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_datelike~   sF    ****!--c         C   s|  t  j d d d t  j g d d ƒ} t j t | ƒ ƒ } x“ d D]‹ } | j | d t d | ƒ} t  j d	 d d	 | g d d
 ƒ} t t | ƒ ƒ t t | ƒ ƒ k s¬ t	 ‚ t
 j t j | ƒ | | k ƒ q@ Wt  j d	 t  j d g d d ƒ} d } | j | d t d | ƒ} t  j d d d	 g d d
 ƒ} t t | ƒ ƒ t t | ƒ ƒ k sYt	 ‚ t
 j t j | ƒ | | k ƒ d  S(   Ni   i   R   t   Oiÿÿÿÿi   R2   t   na_sentineli    t   int32(   iÿÿÿÿi   (   R   R   R   t   htt
   Factorizert   lenR3   R5   t   sett   AssertionErrorR   R   RI   t   isnat   False(   R    t   keyt   rizerRQ   t   idsR$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_factorize_nan¯   s    $!*!*s"   data,expected_label,expected_leveli   i   i    t   nonsensei   c         C   sb   t  j | ƒ } t j | d t j | d t j ƒƒ t j | d t	 ƒ} t j | d | ƒ d  S(   Ni    R   i   (
   RI   R3   R   R   R   R   R6   t   comt   asarray_tuplesafeR4   (   R    t   datat   expected_labelt   expected_levelR#   t   expected_level_array(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_factorize_tuple_listÇ   s    	c         C   sa   t  j g  t d ƒ D] } t | ƒ ^ q d t ƒ} t j t t j	 | d  d  d … d t
 ƒd  S(   Ni   R   iÿÿÿÿR2   (   R   R   R   t   complexR4   t   pytestt   raisest	   TypeErrorR   R3   R5   (   R    t   it   x17(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_complex_sortingã   s    4c         C   s¾   t  j d d d d d d g d t  j ƒ} | j d | ƒ t  j d d d d d d g d t  j ƒ} t  j d d d g d t  j ƒ} t j | ƒ \ } } t j | | ƒ t j | | ƒ d  S(	   Ng      ð?g    „×—Ag:Œ0âŽyE>R   t   writei    i   i   (	   R   R   R9   t   setflagsR6   R   R3   R   R   (   R    t   writableRa   t
   exp_labelst   exp_uniquesR:   R;   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_float64_factorizeé   s    **!c         C   s©   t  j d d d
 g d t  j ƒ} | j d | ƒ t  j d d d g d t  j ƒ} t  j d d g d t  j ƒ} t j | ƒ \ } } t j | | ƒ t j | | ƒ d  S(   Ni   i@   i   R   Rm   i    l            l   ÿÿÿÿ l            l   ÿÿÿÿ l            l   ÿÿÿÿ (	   R   R   t   uint64Rn   R6   R   R3   R   R   (   R    Ro   Ra   Rp   Rq   R:   R;   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_uint64_factorizeó   s    !!c         C   s©   t  j d d
 d g d t  j ƒ} | j d | ƒ t  j d d d g d t  j ƒ} t  j d d g d t  j ƒ} t j | ƒ \ } } t j | | ƒ t j | | ƒ d  S(   Ni   i?   i   R   Rm   i    l            l   ÿÿÿÿ l            lûÿÿÿ         l            l   ÿÿÿÿ l            l   ÿÿÿÿ l            lûÿÿÿ         (	   R   R   R   Rn   R6   R   R3   R   R   (   R    Ro   Ra   Rp   Rq   R:   R;   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_int64_factorizeý   s    !!c         C   s²   t  j d d d d d g d t ƒ} | j d | ƒ t  j d d d d d g d t  j ƒ} t  j d d d g d t ƒ} t j | ƒ \ } } t j | | ƒ t j | | ƒ d  S(	   NR/   R1   R0   R   Rm   i    i   i   (	   R   R   R4   Rn   R6   R   R3   R   R   (   R    Ro   Ra   Rp   Rq   R:   R;   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_string_factorize  s    	'c      	   C   sÊ   t  j d d d  t  j d d t j d g d t ƒ} | j d | ƒ t  j d d d d d d	 d d g d t  j ƒ} t  j d d d g d t ƒ} t	 j
 | ƒ \ } } t j | | ƒ t j | | ƒ d  S(
   NR/   R1   R0   R   Rm   i    i   iÿÿÿÿi   (   R   R   t   NoneR   RI   t   NaTR4   Rn   R6   R   R3   R   R   (   R    Ro   Ra   Rp   Rq   R:   R;   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_object_factorize  s    *	0c         C   st   t  j d d d g d t  j ƒ} t j d t ƒ  t j | d t ƒWd  QXt j t	 ƒ  t j | ƒ Wd  QXd  S(	   Ni   i?   i   R   t   expected_warningt   orderl            l            (
   R   R   Rs   R   t   assert_produces_warningt   FutureWarningR   R3   R5   RY   (   R    Ra   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_deprecate_order  s
    !Ra   R   t   u8i?   t   i8t   __nan__R'   R4   c         C   sj   t  j | ƒ \ } } | d d g } t j d d d g d t j ƒ} t j | | ƒ t j | | ƒ d  S(   Ni    i   R   (   R   R3   R   R   R6   R   R   (   R    Ra   t   lt   ut   expected_uniquest   expected_labels(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt,   test_parametrized_factorize_na_value_default&  s
    !s   data, na_valueR/   t    R0   c         C   ss   t  j | d | ƒ\ } } | d d g } t j d d d d g d t j ƒ} t j | | ƒ t j | | ƒ d  S(   Nt   na_valuei   i   iÿÿÿÿi    R   (   R   t   _factorize_arrayR   R   R6   R   R   (   R    Ra   Rˆ   R‚   Rƒ   R„   R…   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt$   test_parametrized_factorize_na_value3  s
    $R2   RQ   iÿÿÿÿiöÿÿÿid   c         C   sí   t  j d d d  d g d t ƒ} t j | d | d | ƒ\ } } | rŠ t  j d d | d g d t  j ƒ} t  j d d g d t ƒ} n? t  j d d | d g d t  j ƒ} t  j d d g d t ƒ} t j | | ƒ t j | | ƒ d  S(   NR0   R/   R   R2   RQ   i   i    (	   R   R   Rw   R4   R   R3   R6   R   R   (   R    R2   RQ   Ra   R:   R;   R…   R„   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_factorize_na_sentinelD  s    !$$(   i   i   (   i   i   (   i    i    (   i   i   (   i   i   (   i   i   (   i    i    (   i   i   (   i   i   (   i    i    (   i   i   (   i   i   i   (   i   i   (   i   i   (   i    i    (   i   i   i   (   i   i   (   i   i   (   i    i    (   i   i   (   i   i   (   i   i   (   i    i    l            lûÿÿÿ         l            lûÿÿÿ         l            lûÿÿÿ         l            lûÿÿÿ         l            lûÿÿÿ         l            lûÿÿÿ         (    (   R/   i   (    (   R/   i   (    (   R/   i   (    (   R/   i   (   R/   i   (   R/   i   (   R,   R-   R=   RC   RO   R]   Rg   t   markt   parametrizeRe   Rl   Rr   Rt   Ru   Rv   Ry   R~   R   R   R†   R4   RŠ   R5   RY   R‹   (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR.   C   sH   	(		1	!		
	
	
				-
$$$$$$	t
   TestUniquec           B   sï   e  Z d  „  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 e j d d g d e ƒf d e j d g d e ƒf g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sF   t  j j d d d d ƒ} t j | ƒ } t | t  j ƒ sB t ‚ d  S(   Ni    id   t   sizei2   (   R   t   randomt   randintR   t   uniquet
   isinstancet   ndarrayRW   (   R    t   arrR#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR&   V  s    c         C   sO   t  j j d d d d ƒj d ƒ } t j | ƒ } t | t  j ƒ sK t ‚ d  S(   Ni    id   R   i2   RP   (	   R   R   R‘   t   astypeR   R’   R“   R”   RW   (   R    R•   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_objects\  s    $c         C   sC   d d d d d g } x' t  d ƒ D] } t t j | ƒ ƒ q" Wd  S(   NR>   R?   t   Ct   Dt   Eiè  (   R   RU   R   R’   (   R    t   lstRj   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_object_refcount_bugb  s    c         C   sŽ   t  j j t j d ƒ j d ƒ t j t j d ƒ d ƒ g ƒ } | j } | j ƒ  | j d ƒ } t  j	 | ƒ } | j ƒ  t
 j | | ƒ d  S(   Ni   i   (   RI   t
   MultiIndext   from_arraysR   R   t   repeatt   tileR!   R2   R’   R   R   (   R    t   mindexR$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_on_index_objectg  s    $	

c         C   sî   t  d d g d d ƒ} t j d d d g ƒ } t j | ƒ } t j | | ƒ | j | j k sg t ‚ t	 | ƒ } t j | ƒ } t j | | ƒ | j | j k sª t ‚ | j
 } t j | ƒ } t j | | ƒ | j | j k sê t ‚ d  S(   Ns"   2015-01-03T00:00:00.000000000+0000s"   2015-01-01T00:00:00.000000000+0000R   s   M8[ns]s   2015-01-03T00:00:00.000000000s   2015-01-01T00:00:00.000000000(   R	   RI   t   to_datetimeR   R’   R   R   R   RW   R   R!   (   R    R$   t   dt_indexR#   R%   R•   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt$   test_datetime64_dtype_array_returnedu  s$    				c         C   sú   t  j d d d g d d ƒ} t j d d d d d g ƒ } t j | ƒ } t j | | ƒ | j | j k ss t	 ‚ t
 | ƒ } t j | ƒ } t j | | ƒ | j | j k s¶ t	 ‚ | j } t j | ƒ } t j | | ƒ | j | j k sö t	 ‚ d  S(   Niày  in²  i'  R   s   m8[ns](   R   R   RI   RL   R   R’   R   R   R   RW   R   R!   (   R    R$   t   td_indexR#   R%   R•   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt%   test_timedelta64_dtype_array_returned  s    	c         C   s_   t  d d d d g d t j ƒ} t j d d d g d t j ƒ} t j t j | ƒ | ƒ d  S(   Ni   i   i?   R   l            l            l            (   R   R   Rs   R   R   R   R   R’   (   R    R%   R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_uint64_overflow   s    !!c         C   sY   d t  j d d g } t j | ƒ } t  j d t  j d g d t ƒ} t j | | ƒ d  S(   NR/   R1   R   (   R   R   RI   R’   R   R4   R   R   (   R    t   duplicated_itemsR#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_nan_in_object_array¥  s    !c         C   sª  t  t d ƒ d t d ƒ ƒ} t  t d ƒ d t d ƒ d t ƒ} t  t d ƒ ƒ } | j ƒ  } t j | | ƒ t j | ƒ } t j | | ƒ t  t d ƒ d t ƒ} | j ƒ  } t j | | ƒ t j | ƒ } t j | | ƒ t t  t d ƒ ƒ d d ƒ} | j ƒ  } t j | | ƒ t j | ƒ } t j | | ƒ t	 t  t d ƒ d t d ƒ ƒƒ } t	 | ƒ } | j ƒ  } t j
 | | ƒ t j | ƒ } t j
 | | ƒ d  S(   Nt   bact
   categoriest   abct   orderedt   baabct   nameR'   (   R   R7   R5   R’   R   t   assert_categorical_equalR   R   RI   R   RA   (   R    R$   t
   expected_oR1   R#   R%   t   ci(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_categorical«  s2    !c         C   sš  t  t t d d d ƒt d d d ƒg ƒ ƒ j ƒ  } t j t j t d d d ƒg ƒ ƒ } t j	 | | ƒ t t d d d ƒt d d d ƒg ƒ j ƒ  } t
 d g d d d d  ƒ} t j | | ƒ t j t  t t d d d ƒt d d d ƒg ƒ ƒ ƒ } t j t j t d	 d d ƒg ƒ ƒ } t j	 | | ƒ t j t t d d d ƒt d d d ƒg ƒ ƒ } t
 d g d d d d  ƒ} t j | | ƒ d  S(
   Nt   20160101t   tzs
   US/Easterns   2016-01-01 00:00:00-0500s   2016-01-01 00:00:00R   s   datetime64[ns, US/Eastern]RF   s
   2016-01-01(   R   R   R   R’   R   t   _from_sequenceR   R   R   t   assert_extension_array_equalR   Rw   RA   RI   (   R    R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_datetime64tz_aware×  s,    !c         C   sÈ  t  j t d d d d g ƒ ƒ } t j | t j d d d g d d ƒƒ t  j t d g d g d ƒ ƒ } t j | t j d d g d d ƒƒ t  j t t d ƒ t d ƒ g ƒ ƒ } t j d g d d	 ƒ} t j | | ƒ t  j t t d d
 d ƒt d d
 d ƒg ƒ ƒ } t	 d g d d d d  ƒ} t j | | ƒ t  j t d ƒ ƒ } t j d d d g d t ƒ} t j | | ƒ t  j t t t d ƒ ƒ ƒ ƒ } t t d ƒ ƒ } t j | | ƒ d  S(   Ni   i   i   R   R   i   Rµ   s   2016-01-01T00:00:00.000000000s   datetime64[ns]R¶   s
   US/Easterns   2016-01-01 00:00:00s   datetime64[ns, US/Eastern]RF   t   aabcR/   R0   R1   R­   (   RI   R’   R   R   R   R   R   R   R   R   Rw   RA   R7   R4   R   R±   (   R    R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_order_of_appearanceö  s0    !	#				!s   arg ,expectedt   1t   2R   R'   c         C   s#   t  j | ƒ } t j | | ƒ d  S(   N(   RI   R’   R   R   (   R    t   argR$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_tuple_with_strings  s    c         C   s_   t  j d d  g d t ƒ} t j | ƒ } t  j d d  g d t ƒ} t j | | d t ƒd  S(   NR'   R   t
   strict_nan(	   R   R   Rw   R4   RI   R’   R   R   R5   (   R    R•   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_obj_none_preservation!  s    c         C   sJ   t  j d d g ƒ } t j | ƒ } t  j d g ƒ } t j | | ƒ d  S(   Ng       €g        (   R   R   RI   R’   R   R   (   R    R/   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_signed_zero)  s    c         C   sµ   t  j d t  j d d ƒ ƒ d } t  j d t  j d d ƒ ƒ d } | | k sV t ‚ | | k sh t ‚ t j | | g ƒ } t j | ƒ } t j t j g ƒ } t	 j
 | | ƒ d  S(   Nt   ds   =QI      øi    I     ø(   t   structt   unpackt   packRW   R   R   RI   R’   R   R   R   (   R    t   NAN1t   NAN2R/   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_different_nans0  s    ""c   	      C   s  d } d } t  j d t  j d | ƒ ƒ d } t  j d t  j d | ƒ ƒ d } | | k sb t ‚ | | k st t ‚ x‘ t j t j g D]} } t j | | g d | ƒ} t j	 | ƒ } | j
 d k sÌ t ‚ t  j d t  j d | d ƒ ƒ d } | | k s‡ t ‚ q‡ Wd  S(   Nl        À I     øRÃ   s   =Qi    R   i   (   RÄ   RÅ   RÆ   RW   R   R9   R4   R   RI   R’   R   (	   R    t   bits_for_nan1t   bits_for_nan2RÇ   RÈ   t   el_typeR/   R#   t   result_nan_bits(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_first_nan_kept<  s    ""	c         C   s‚   | | k r d  St  j | | g d t  j ƒ} t j | ƒ } | j d k sR t ‚ | d | k sh t ‚ | d | k s~ t ‚ d  S(   NR   i   i    i   (   R   R   R4   RI   R’   R   RW   (   R    t   unique_nulls_fixturet   unique_nulls_fixture2R/   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_do_not_mangle_na_valuesN  s    	(   R¼   R¼   R½   (   R'   (   R,   R-   R&   R—   Rœ   R¢   R¥   R§   R¨   Rª   R´   R¹   R»   Rg   RŒ   R   R   R   R4   R¿   RÁ   RÂ   RÉ   RÎ   RÑ   (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRŽ   T  s&   									,		"-				t   TestIsinc           B   sž   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 e j j d	 g  e ƒ  e j g  ƒ g ƒ d
 „  ƒ Z d „  Z d „  Z RS(   c         C   s=   t  j t d „  ƒ t  j t d „  ƒ t  j t d „  ƒ d  S(   Nc           S   s   t  j d d ƒ S(   Ni   (   R   t   isin(    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   <lambda>_  s    c           S   s   t  j d d g ƒ S(   Ni   (   R   RÓ   (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRÔ   `  s    c           S   s   t  j d g d ƒ S(   Ni   (   R   RÓ   (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRÔ   a  s    (   Rg   Rh   Ri   (   R    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_invalid]  s    c         C   sw  t  j d d g d g ƒ } t j t t g ƒ } t j | | ƒ t  j t j d d g ƒ d g ƒ } t j t t g ƒ } t j | | ƒ t  j t d d g ƒ d g ƒ } t j t t g ƒ } t j | | ƒ t  j t d d g ƒ t d g ƒ ƒ } t j t t g ƒ } t j | | ƒ t  j t d d g ƒ d h ƒ } t j t t g ƒ } t j | | ƒ t  j d d g d g ƒ } t j t t g ƒ } t j | | ƒ t  j t d d g ƒ t d g ƒ ƒ } t j t t g ƒ } t j | | ƒ t  j t d d g ƒ d h ƒ } t j t t g ƒ } t j | | ƒ t  j d d g d g ƒ } t j t t g ƒ } t j | | ƒ d  S(   Ni   i   R/   R0   (	   R   RÓ   R   R   R5   RY   R   R   R   (   R    R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR=   c  s6    $!'!'!c         C   sÆ  t  j d d d ƒj } t j | | d g ƒ } t j t t t g ƒ } t	 j
 | | ƒ t j | | d d !ƒ } t j t t t g ƒ } t	 j
 | | ƒ t j | t | d d !ƒ ƒ } t j t t t g ƒ } t	 j
 | | ƒ t  j d d d ƒj } t j | | d g ƒ } t j t t t g ƒ } t	 j
 | | ƒ t j | | d d !ƒ } t j t t t g ƒ } t	 j
 | | ƒ t j | t | d d !ƒ ƒ } t j t t t g ƒ } t	 j
 | | ƒ d  S(   NRD   t   periodsi   i    i   s   1 day(   RI   t
   date_rangeR!   R   RÓ   R   R   R5   RY   R   R   RV   t   timedelta_range(   R    R•   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_i8‰  s(    c         C   sz   t  j d d d d d ƒj } t j | | d d !ƒ } t j t | ƒ d t ƒ} t	 | d <t	 | d	 <t
 j | | ƒ d  S(
   Nt   20000101RÖ   i€„ RF   R%   i    i   R   i   (   RI   R×   R!   R   RÓ   R   t   zerosRU   t   boolR5   R   R   (   R    R%   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt
   test_large¥  s    

c         C   s¶   t  j d d d d g ƒ } d d d g } t t d ƒ j | | ƒ ƒ } t t d ƒ j t  j d d g ƒ | ƒ ƒ } t  j t t t t g ƒ } t j | | ƒ } t	 j
 | | ƒ d  S(   Ni    i   i   R/   R0   R1   (   R   R   R   R   t
   from_codesR5   RY   R   RÓ   R   R   (   R    t   valst   catst   Sdt   StR$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_categorical_from_codes®  s    -c         C   sP   t  j g } t  j g } t  j t g ƒ } t j | | ƒ } t j | | ƒ d  S(   N(   R   R   R   R5   R   RÓ   R   R   (   R    t   compsR!   R$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_same_nan_is_in¸  s
    c         C   s‰   d t  f d „  ƒ  Y} | ƒ  | ƒ  } } t j t j | g | g ƒ t j t g ƒ ƒ t j t j | g | g ƒ t j t g ƒ ƒ d  S(   Nt   LikeNanc           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   t  S(   N(   RY   (   R    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   __eq__Ë  s    c         S   s   d S(   Ni    (    (   R    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   __hash__Î  s    (   R,   R-   Rç   Rè   (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRæ   Ê  s   	(	   R4   R   R   R   RÓ   R   R   R5   RY   (   R    Ræ   R/   R0   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_same_object_is_inÄ  s    .c         C   s  t  d ƒ g } t  d ƒ g } | d | d k	 s8 t ‚ t j | | ƒ } t j t j t g ƒ | ƒ t j t j	 | d t j
 ƒt j	 | d t j
 ƒƒ } t j t j t g ƒ | ƒ t j t j	 | d t j ƒt j	 | d t j ƒƒ } t j t j t g ƒ | ƒ d  S(   NR   i    R   (   t   floatRW   R   RÓ   R   R   R   R   R5   t   asarrayR4   R9   (   R    Rä   R!   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRÉ   ×  s    c         C   sP   d d g } d g } t  j t t g ƒ } t j | | ƒ } t j | | ƒ d  S(   Nt   ssi*   t   42(   R   R   RY   R   RÓ   R   R   (   R    Rä   R!   R$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_no_castí  s
    	t   emptyc         C   sM   t  d d g ƒ } t j t t g ƒ } t j | | ƒ } t j | | ƒ d  S(   NR/   R0   (   R   R   R   RY   R   RÓ   R   R   (   R    Rï   Rß   R$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt
   test_emptyö  s    c         C   s   t  j d t  j d t d ƒ g d t  j ƒ} t  j t d ƒ g d t  j ƒ} t  j t t t g ƒ } t j | | ƒ } t	 j
 | | ƒ d  S(   NR   y              ð?R   (   R   R   R   Rê   R4   RY   R5   R   RÓ   R   R   (   R    Rä   Rß   R$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_different_nan_objectsÿ  s
    .!c         C   s.  t  j d t  j d d ƒ ƒ d } t  j d t  j d d ƒ ƒ d } | | k sV t ‚ | | k sh t ‚ t j | | g d t j ƒ} t j | g d t j ƒ} t j | | ƒ } t j t	 t	 g ƒ } t
 j | | ƒ t j | g d t j ƒ} t j | | ƒ } t j t	 t	 g ƒ } t
 j | | ƒ d  S(   NRÃ   s   =QI      øi    I     øR   (   RÄ   RÅ   RÆ   RW   R   R   R9   R   RÓ   R5   R   R   (   R    RÇ   RÈ   R•   t   lookup1R#   R$   t   lookup2(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_different_nans_as_float64  s    ""(   R,   R-   RÕ   R=   RÙ   RÝ   Rã   Rå   Ré   RÉ   Rî   Rg   RŒ   R   R   R   R   Rð   Rñ   Rô   (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRÒ   [  s   		&				
					3		t   TestValueCountsc           B   sk   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   c         C   sÄ   t  j j d ƒ d d l m } t  j j d ƒ } | | d ƒ } t j | ƒ } d d d d d	 g } t j	 | ƒ j
 t d
 t ƒ ƒ } t d d d d g d | ƒ} t j | j ƒ  | j ƒ  ƒ d  S(   NiÒ  iÿÿÿÿ(   t   cuti   g´Èv¾Ÿó¿g…ëQ¸á¿g`åÐ"Ûù¾?gw¾Ÿ/Ýè?g!°rh‘íö?R®   i   t   index(   R   R   t   seedt   pandas.core.reshape.tileRö   t   randnR   t   value_countsR   t   from_breaksR–   t   CDTR5   R   R   R   t
   sort_index(   R    Rö   R•   t   factorR#   t   breaksR÷   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_value_counts   s    !c         C   s®   d d d d g } t  j | d d ƒ} t d g d t j d g ƒ ƒ} t j | | ƒ t  j | d d d	 t ƒ} t d d g d t j d d g ƒ ƒ} t j | | ƒ d  S(   Ni   i   i   i   t   binsR÷   g¬Zd;ßï?g      @R2   g      @(   g¬Zd;ßï?g      @(   g¬Zd;ßï?g      @(   g      @g      @(   R   Rû   R   R   t   from_tuplesR   R   RY   (   R    R%   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_value_counts_bins.  s    	c         C   s¶   t  j d d g ƒ } t | ƒ d k s- t ‚ t  j d d g d d ƒ} t | ƒ d k s` t ‚ t  j t d d d g ƒ ƒ } t | ƒ d k s– t ‚ t j t d „  d d g ƒ d  S(   Ni   g      ð?R  R¼   i   c         S   s   t  j |  d d ƒS(   NR  i   (   R   Rû   (   R%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRÔ   E  s    (   R   Rû   RU   RW   R   Rg   Rh   Ri   (   R    R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_value_counts_dtypes;  s    c         C   sÚ   t  t j d ƒ t j g d d ƒ} t j d d g ƒ } xh | | g D]Z } t j | ƒ } t j | d t ƒ} t	 | ƒ d k sˆ t
 ‚ t	 | ƒ d k sF t
 ‚ qF Wt  i d t d	 ƒ 6ƒ } t j t j | ƒ | ƒ d  S(
   Ni'  R   s   timedelta64[ns]Rx   s
   2014-01-01t   dropnai   i   s   2014-01-01 00:00:00(   R   R   t   timedelta64RI   Rx   R£   R   Rû   RY   RU   RW   R   R   R   (   R    t   tdt   dtR%   t   vct
   vc_with_nat   exp_dt(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_value_counts_natH  s    $c      
   C   s/  t  t d d d ƒ t d d d ƒ t d d d ƒ t d d d ƒ t d d d ƒ t d d d ƒ g ƒ } | j ƒ  } t t d d d ƒ t d d d ƒ t d d d ƒ g d t ƒ} t  d d d g d | ƒ} t j | | ƒ t j t  d	 t	 j
 g ƒ d
 d ƒ} t  d	 t	 j
 g d t ƒ} t j | | ƒ d  S(   Ni¸  i   iˆ  ip  R   i   i   R÷   s
   2362-01-01t   errorst   ignore(   R   R    Rû   R   R4   R   R   RI   R£   R   R   (   R    R%   t   rest	   exp_indexR<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt&   test_value_counts_datetime_outofboundsV  s    !'!	c         C   s«   t  t t d ƒ ƒ ƒ } | j ƒ  } t  d d d g d t d d d g ƒ ƒ} t j | | d	 t ƒ| j j	 ƒ  } | j ƒ  } | j
 j	 ƒ  | _
 t j | | d	 t ƒd  S(
   Nt   aaabbci   i   i   R÷   R/   R0   R1   t   check_index_type(   R   R   R7   Rû   R   R   R   R5   t   catt
   as_orderedR÷   (   R    R%   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR´   h  s    *c      	   C   sð  t  t t d ƒ ƒ ƒ } t j | j d <| j ƒ  } t  d d d g d t d d d	 g d
 d d d	 g ƒƒ} t j	 | | d t
 ƒ| j d t ƒ } t  d d d d g d t d d d	 t j g ƒ ƒ} t j	 | | d t
 ƒt  t t d ƒ d t
 d
 d d d	 g ƒƒ } t j | j d <| j ƒ  } t  d d d g d t d d d	 g d
 d d d	 g d t
 ƒƒ} t j	 | | d t
 ƒ| j d t ƒ } t  d d d d g d t d d d	 t j g d
 d d d	 g d t
 ƒƒ} t j	 | | d t
 ƒd  S(   Nt
   aaaaabbbcci   i   i   i   R÷   R/   R0   R1   R¬   R  R  R®   (   R   R   R7   R   R   t   ilocRû   R   R   R   R5   RY   (   R    R%   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_categorical_nansu  s,    $'*0c      	   C   s’   t  t t d ƒ d t d ƒ d t ƒƒ } | j ƒ  } t  d d d d g d	 t d
 d d d g d t d ƒ d t ƒƒ} t j | | d t ƒd  S(   Nt   bbbaacR¬   t   abcdR®   i   i   i   i    R÷   R0   R/   R1   RÃ   R  (   R   R   R7   R5   Rû   R   R   (   R    R%   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_categorical_zeroes  s    $*c         C   sU  t  j t t t t g ƒ j d t ƒ t d d g d t t g ƒƒ t  j t t t t g ƒ j d t ƒ t d d g d t t g ƒƒ t  j t t t t d  g ƒ j d t ƒ t d d g d t t g ƒƒ t  j t t t t d  g ƒ j d t ƒ t d d d g d t t t j g ƒƒ t  j t d d d g ƒ j d t ƒ t d d g d d d g ƒƒ t  j t d d d g ƒ j d t ƒ t d d g d d d g ƒƒ t  j t d d d d  g ƒ j d t ƒ t d d g d d d g ƒƒ t	 j
 ƒ  sQt d d d d  g ƒ j d t ƒ } t d d d g d d d t j g ƒ} t  j | | ƒ n  d  S(   NR  i   i   R÷   gš™™™™™$@g      @(   R   R   R   R5   RY   Rû   Rw   R   R   R   t   is_platform_32bit(   R    R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_dropna™  s2    !!(!$'c         C   s
  t  d d t j t j t j g ƒ } t j t j d f } xÊ | D]Â } | j | ƒ } | j d t d t ƒ } t  d d d g d t  t j d	 d
 g d | ƒƒ} t	 j
 | | ƒ | j d t d t ƒ } t  d d g d t  d	 d
 g d | ƒƒ} t	 j
 | | ƒ q@ Wd  S(   Ni   i   s   M8[ns]t	   normalizeR  g333333ã?gš™™™™™É?R÷   g       @g      ð?R   g      à?(   R   R   R   R9   R4   R–   Rû   R5   RY   R   R   (   R    R%   t   dtypest   tt   s_typedR#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_value_counts_normalizedº  s    $!c         C   s½   t  j d g d t  j ƒ} t d g d d g ƒ} t j | ƒ } t j | | ƒ t  j d d	 g d t ƒ} t d d g d d d
 g ƒ} t j | ƒ } t	 j
 ƒ  s¹ t j | | ƒ n  d  S(   Ni   i?   R   i   R÷   iÿÿÿÿl            l            l            l            (   R   R   Rs   R   R   Rû   R   R   R4   R   R  (   R    R•   R$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_value_counts_uint64Ê  s    (   R,   R-   R  R  R  R  R  R´   R  R  R  R#  R$  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRõ     s   										!	t   TestDuplicatedc           B   s¬  e  Z d  „  Z e j j d e j d d d d d d d d d d g
 ƒ e j d d	 d e j d
 d	 d d e j d g
 ƒ e j d$ d% d& d' d( d) d* d+ d, d- g
 ƒ e j d d d d d d d d d d g
 d e	 ƒe j d d. d d/ d d0 d d d1 d g
 d e j
 ƒg ƒ d „  ƒ Z d „  Z d  „  Z e j j d! d2 d3 d4 d5 d6 d7 d8 d9 g d: d; d< d= g f d> d? d@ dA g dB dC g f dD dE dF dG g dH dI dJ g f g ƒ d# „  ƒ Z RS(K   c         C   sp  t  j d d t  j d d t  j g d t ƒ} t j | ƒ } t  j t t t t t t g ƒ } t j	 | | ƒ t j | d d ƒ} t  j t t t t t t g ƒ } t j	 | | ƒ t j | d d ƒ} t  j t t t t t t g ƒ } t j	 | | ƒ t j | d t ƒ} t  j t t t t t t g ƒ } t j	 | | ƒ t  j
 d d t ƒ} xY t t d d t  j t  j g d d t  j d t  j g d ƒ ƒ D] \ } } | | | <q–Wt j | ƒ } t g d	 } t g d	 } t  j | | ƒ } t j	 | | ƒ t j | d d ƒ} t  j | | ƒ } t j	 | | ƒ t j | d t ƒ} t  j | | ƒ } t j	 | | ƒ d  S(
   Ni    i   i   R   t   keept   firstt   lasti   i   (   R   R   R   R4   R   t
   duplicatedRY   R5   R   R   Rï   t	   enumeratet   zip(   R    t   keysR#   R$   Rj   R!  t   falsest   trues(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_duplicated_with_nasÜ  s8    -!!!!",t   casei   i   i   i   i   i   gš™™™™™ñ?gš™™™™™@gffffff
@gš™™™™™@gffffff@y              ð?y               @y              @y              @y              @y              @R/   R0   t   eR1   RÃ   t   fR   i?   i
   i'   i   c   
      C   s  t  j t t t t t t t t t t g
 ƒ } t  j t t t t t t t t t t g
 ƒ } | | B} t j | d d ƒ} t j | | ƒ t j | d d ƒ} t j | | ƒ t j | d t ƒ} t j | | ƒ xŒ t | ƒ t | d d ƒg D]l } | j d d ƒ } t j | | ƒ | j d d ƒ } t j | | ƒ | j d t ƒ } t j | | ƒ qò Wxž t	 | ƒ t	 | d d ƒg D]~ }	 |	 j d d ƒ } t j
 | t	 | ƒ ƒ |	 j d d ƒ } t j
 | t	 | ƒ ƒ |	 j d t ƒ } t j
 | t	 | ƒ ƒ qWd  S(   NR&  R'  R(  R   t   category(   R   R   RY   R5   R   R)  R   R   R   R   R   (
   R    R0  t	   exp_firstt   exp_lastt	   exp_falset	   res_firstt   res_lastt	   res_falset   idxR%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_numeric_object_likes  s2    
%%c         C   sR  d d d d d d d d d d g
 } d d d d d	 d d
 d d d g
 } t  j g  | D] } t | ƒ ^ qU ƒ t  j g  | D] } t | d d ƒ^ qz ƒ t  j g  | D] } t j | d d ƒ^ q¥ ƒ t  j g  | D] } t  j | ƒ ^ qÓ ƒ t  j g  | D] } t j | ƒ ^ qû ƒ g } t  j t t t t t t t t t t g
 ƒ } t  j t t t t t t t t t t g
 ƒ } | | B} xË| D]Ã} t	 j
 | d d ƒ}	 t j |	 | ƒ t	 j
 | d d ƒ}
 t j |
 | ƒ t	 j
 | d t ƒ} t j | | ƒ x› t | ƒ t | d d ƒt | d t ƒg D]l } | j
 d d ƒ }	 t j |	 | ƒ | j
 d d ƒ }
 t j |
 | ƒ | j
 d t ƒ } t j | | ƒ q*Wx­ t | ƒ t | d d ƒt | d t ƒg D]~ } | j
 d d ƒ }	 t j |	 t | ƒ ƒ | j
 d d ƒ }
 t j |
 t | ƒ ƒ | j
 d t ƒ } t j | t | ƒ ƒ qÈWq‡Wd  S(   Ns
   2011-01-01s
   2011-01-02Rx   s
   2011-01-03s
   2011-01-04s
   2011-01-06s   1 dayss   2 dayss   3 dayss   4 dayss   6 daysR¶   s
   US/EasternRF   R™   R&  R'  R(  R   R3  (   R   R   R   RI   RJ   t
   datetime64t	   TimedeltaRY   R5   R   R)  R   R   R   R4   R   R   (   R    R	  R  RÃ   t   casesR4  R5  R6  R0  R7  R8  R9  R:  R%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_datetime_likes4  sJ    %+.(.
c         C   sy   t  d d d g ƒ t j d d ƒ g } xK | D]C } | j t k sI t ‚ t j | j ƒ  t	 j
 t t t g ƒ ƒ q. Wd  S(   Ni   i   i   i    (   R   RI   t
   RangeIndext	   is_uniqueR5   RW   R   R   R)  R   R   RY   (   R    R>  R0  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_unique_indexi  s
    's   arr, uniquei    c         C   sE   t  j t | ƒ d t ƒ} | | (t j | ƒ } t j | | ƒ d  S(   NR   (   R   Rï   RU   R4   RI   R’   R   R   (   R    R•   R’   R$   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_unique_tuplesp  s    
y      ð?      ð?y       @       @y      ð?      ð?y      @      @y      @      @y       @       @y      @      @y      ð?      ð?y      @      @y      @      @l            ió   l            ió   (   i    i    (   i    i   (   i   i    (   i   i   (   i    i    (   i    i   (   i   i    (   i   i   (   i    i    (   i    i   (   i   i    (   i   i   (   R0   R1   (   R/   R0   (   R/   R0   (   R0   R1   (   R0   R1   (   R/   R0   (   R/   i   (   R0   i   (   R/   i   (   R/   i   (   R/   i   (   R0   i   (   R/   i   (   R,   R-   R/  Rg   RŒ   R   R   R   R   R4   Rs   R;  R?  RB  RC  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR%  Ú  s*   	&*(	5	t   GroupVarTestMixinc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s"  t  d ƒ } t j t j d ƒ j |  j ƒ } t j d d d ƒ} d | j d d ƒ j |  j ƒ } t j t j	 d ƒ d ƒ j d ƒ } t j
 | ƒ j d d	 d
 ƒj d d d d ƒ d d  d  … t j f } | d } |  j | | | | ƒ t j | | |  j ƒ st ‚ t j | | ƒ d  S(   NiÒ  i   i   R   R   i
   i   i   R{   t   Ft   axist   ddofi   (   i   i   (   i   (   i   i   (   R   R   R   t   onesR–   R   RÛ   t   randR    R   t   squeezet   reshapet   stdt   newaxist   algot   allcloset   rtolRW   R   R   (   R    t   prngt   outt   countsR!   R:   t   expected_outt   expected_counts(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_group_var_generic_1dƒ  s    ""$&
c         C   sñ   t  d ƒ } t j t j d	 ƒ j |  j ƒ } t j d d d ƒ} d | j d d ƒ j |  j ƒ } t j d d d ƒ} t j | j	 d d ƒ d g g ƒ } | d } |  j
 | | | | ƒ t j | | |  j ƒ sÝ t ‚ t j | | ƒ d  S(
   NiÒ  i   R   R   i
   i   RG  i   (   i   i   (   R   R   R   RH  R–   R   RÛ   RI  R   RL  RN  RO  RP  RW   R   R   (   R    RQ  RR  RS  R!   R:   RT  RU  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt%   test_group_var_generic_1d_flat_labels”  s    ""%
c         C   s	  t  d ƒ } t j t j d ƒ j |  j ƒ } t j d d d ƒ} d | j d d ƒ j |  j ƒ } t j t j	 d ƒ d ƒ j d ƒ } t j
 | j d d d ƒ d d d	 d
 ƒd } | d } |  j | | | | ƒ t j | | |  j ƒ sõ t ‚ t j | | ƒ d  S(   NiÒ  i   i   R   R   i
   RG  i   RF  i    (   i   i   (   i   (   R   R   R   RH  R–   R   RÛ   RI  R    R   RL  RK  RN  RO  RP  RW   R   R   (   R    RQ  RR  RS  R!   R:   RT  RU  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt$   test_group_var_generic_2d_all_finite¤  s    ""$.
c         C   sX  t  d ƒ } t j t j d ƒ j |  j ƒ } t j d d d ƒ} d | j d d ƒ j |  j ƒ } t j | d  d  … d f <t j t j	 d ƒ d ƒ j d ƒ } t j
 | d  d  … d f j d d d	 d
 ƒj d d d d ƒ d t j t j d ƒ g ƒ j j |  j ƒ } | d } |  j | | | | ƒ t j | | d d ƒt j | | ƒ d  S(   NiÒ  i   i   R   R   i
   i   i    R{   RE  RG  RF  t   check_less_precisei   (   i   i   (   i   (   R   R   R   RH  R–   R   RÛ   RI  R    R   t   vstackRK  RL  t   TRN  R   R   R   (   R    RQ  RR  RS  R!   R:   RT  RU  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt"   test_group_var_generic_2d_some_nan³  s    ""$+
c         C   sÄ   t  j t  j g g d |  j ƒ} t  j d g d d ƒ} d t  j d d |  j ƒ} t  j d d d ƒ} |  j | | | | ƒ | d d k s– t ‚ | d	 d k s¬ t ‚ t j	 | d
 d ƒ d  S(   NR   i    R   gUUUÕª¦ê?i   i   g        (   i   i   (   i    i    (   i    i    (
   R   R   R   R   RH  RÛ   RN  RW   R   R   (   R    RR  RS  R!   R:   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_group_var_constantÆ  s    !(   R,   R-   RV  RW  RX  R\  R]  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRD    s
   				t   TestGroupVarFloat64c           B   s/   e  Z e Z e j Z e j Z	 d  Z
 d „  Z RS(   gñhãˆµøä>c         C   sÐ   t  d ƒ } t j t j g g d |  j ƒ} t j d g d d ƒ} | j d ƒ d j |  j ƒ } d | _ t j d d d ƒ} |  j	 | | | | ƒ | d d k s® t
 ‚ t j | d d	 d d
 t ƒd  S(   NiÒ  R   i    R   i
   i   i   i   g      ð?RY  i@B I ¥Ôè   i@B (   i@B i   i@B i@B (   i    i    (   R   R   R   R   R   RI  R–   t   shapeRÛ   RN  RW   R   R   R5   (   R    RQ  RR  RS  R!   R:   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_group_var_large_inputsÜ  s    !	(   R,   R-   R5   t   __test__t
   libgroupbyt   group_var_float64RN  R   R9   R   RP  R`  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR^  Õ  s
   		t   TestGroupVarFloat32c           B   s&   e  Z e Z e j Z e j Z	 d  Z
 RS(   g{®Gáz„?(   R,   R-   R5   Ra  Rb  t   group_var_float32RN  R   R   R   RP  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRd  ì  s   		t   TestHashTablec           B   sÇ  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z e j j	 d d d g ƒ e j j	 d e
 j e
 j d	 e f e
 j e
 j d	 e f e
 j e
 j d
 e f e
 j e
 j d e f e
 j e
 j d e f g ƒ d „  ƒ ƒ Z e j j	 d e
 j d f e
 j d f e
 j d f e
 j d f e
 j d f g ƒ d „  ƒ Z e j j	 d e
 j d f e
 j d f e
 j d f e
 j d f e
 j d f g ƒ d „  ƒ Z e j j	 d e
 j e
 j e
 j e
 j e
 j g ƒ d „  ƒ Z RS(   c         C   s…   t  j d d t  j d d d d g ƒ } | j d | ƒ t j ƒ  } | j | ƒ t j | j	 | ƒ t  j
 t | ƒ d t  j ƒƒ d  S(	   NgX9´Èv¾@g…ëQ¸	@iùÿÿÿi   i   i   Rm   R   (   R   R   R   Rn   RS   t   Float64HashTablet   map_locationsR   R   t   lookupR   RU   R   (   R    Ro   t   xst   m(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_lookup_nanö  s    '$c         C   sQ   d } t  j | ƒ } | j d d ƒ | j d d ƒ t | ƒ d k sM t ‚ d  S(   Ni   g        i    g       €i   (   RS   Rg  t   set_itemRU   RW   (   R    t   NRk  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_add_signed_zerosÿ  s
    c         C   s°   t  j d t  j d d ƒ ƒ d } t  j d t  j d d ƒ ƒ d } | | k sV t ‚ | | k sh t ‚ t j ƒ  } | j | d ƒ | j | d ƒ t | ƒ d k s¬ t ‚ d  S(   NRÃ   s   =QI      øi    I     øi   (   RÄ   RÅ   RÆ   RW   RS   Rg  Rm  RU   (   R    RÇ   RÈ   Rk  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_add_different_nans
  s    ""c         C   s   t  j d d d g d t  j ƒ} | j d | ƒ t j ƒ  } | j | ƒ t j | j	 | ƒ t  j
 t | ƒ d t  j ƒƒ d  S(   Ni   i   i?   R   Rm   l            (   R   R   Rs   Rn   RS   t   UInt64HashTableRh  R   R   Ri  R   RU   R   (   R    Ro   Rj  Rk  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_lookup_overflow  s    !$c         C   s\   t  d d d d g d t j ƒ} t j d d d g d t j ƒ} t j | j ƒ  | ƒ d  S(   Ni   i   i?   R   l            l            l            (   R   R   Rs   R   R   R   R’   (   R    R%   R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_get_unique!  s    !!t   nvalsi    i
   s&   htable, uniques, dtype, safely_resizesR4   R9   R   Rs   c   
   	   C   sæ   t  j t  j j d ƒ d | ƒ} | j d | ƒ | ƒ  } | ƒ  } | j | |  | d d ƒ | j ƒ  } | j }	 | r‘ | j | | d d ƒ n2 t j	 t
 d d ƒ | j | | d d ƒ Wd  QX| j ƒ  | j |	 k sâ t ‚ d  S(   Niè  R   Rm   i    iÿÿÿÿR   s   external reference.*(   R   R   R   Rú   Rn   t
   get_labelst   to_arrayR_  Rg   Rh   t
   ValueErrorRW   (
   R    Ro   t   htableR;   R   t   safely_resizesRt  Rß   t   tmpt   oldshape(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_vector_resize&  s    !			
s   htable, tm_dtypet   Stringt   Floatt   Intt   UIntc         C   s?  t  t d | d ƒ } t | d ƒ ƒ } | t j k rK t j | j d <n1 | t j k r| t j d  t
 j g | j d d +n  | j d d d t ƒ j d	 t ƒ } | j j d
 | ƒ | j d d ƒ j } | ƒ  j | j ƒ } t j | | ƒ | ƒ  j | j d t ƒ\ } }	 t j | | ƒ | |	 }
 t j |
 | j ƒ d  S(   Nt   makeR   iè  iô  iö  t   fraci   t   replacet   dropRm   R&  R'  t   return_inverse(   t   getattrR   R   RS   Rg  R   R   t   loct   PyObjectHashTableRw   RI   Rx   t   sampleR5   t   reset_indexR!   Rn   t   drop_duplicatesR’   R   (   R    Rx  t   tm_dtypeRo   t   makerR%   t   s_duplicatedt   expected_uniquet   result_uniquet   result_inverset   reconstr(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_hashtable_uniqueM  s     "$
c         C   s4  t  t d | d ƒ } t | d ƒ ƒ } | t j k rK t j | j d <n1 | t j k r| t j d  t
 j g | j d d +n  | j d d d t ƒ j d	 t ƒ } | j j d
 | ƒ | j ƒ  j } | ƒ  j | j ƒ \ } }	 | j ƒ  j ƒ  j }
 t j | |
 ƒ | |	 | } | j ƒ  j } t j | | ƒ d  S(   NR  R   iè  iô  iö  R‚  i   Rƒ  R„  Rm   (   R†  R   R   RS   Rg  R   R   R‡  Rˆ  Rw   RI   Rx   R‰  R5   RŠ  R!   Rn   RX   R3   R  R‹  R   (   R    Rx  RŒ  Ro   R  R%   RŽ  t   na_maskR  R‘  R  t   result_reconstructt   expected_reconstruct(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_hashtable_factorizep  s    "$R   c         C   s,   t  j t  j ƒ j d } | d | ƒ } d  S(   Ni   t	   size_hint(   R   t   iinfot   uint32t   max(   R    R   R˜  t   tbl(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_hashtable_large_sizehint”  s    (   R,   R-   Rl  Ro  Rp  Rr  Rs  Rg   RŒ   R   RS   Rˆ  t   ObjectVectorRY   t   StringHashTableR5   Rg  t   Float64Vectort   Int64HashTablet   Int64VectorRq  t   UInt64VectorR|  R“  R—  R  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRf  ô  s6   							*!c          C   sq   t  t j j d ƒ ƒ }  t j |  d d d d d g ƒ } t j |  j d d d d d g ƒ } t j | | ƒ d  S(   Nid   i    g      Ð?g      à?g      è?g      ð?(	   R   R   R   Rú   R   t   quantileR!   R   R   (   R%   R#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_quantile  s    !$c          C   sÄ   t  j j d d d	 ƒ j d ƒ }  t j |  ƒ } t  j |  d t ƒd } t j	 | | d t
 ƒd |  t  j j t |  ƒ d ƒ <t j |  ƒ } t  j |  d t ƒd d } t j	 | | d t
 ƒd  S(
   Ni   i
   i   R€   t   return_indext   check_dtypeiÿÿÿÿi   i €  (   R   R   R‘   R–   RS   t   unique_label_indicesR’   R5   R   R   RY   t   choiceRU   (   R/   t   leftt   right(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_unique_label_indices¥  s    !t   TestRankc           B   s   e  Z e j d  „  ƒ Z d „  Z d „  Z d „  Z e j	 j
 e j	 j d e j d ƒ e j d ƒ j d d ƒ g d	 d
 d g ƒd „  ƒ ƒ Z RS(   c            s…   d d l  m ‰  ‡  f d †  } | t j t t d d d t d d d t g
 ƒ ƒ | t j d t d d d t d d d t g
 ƒ ƒ d  S(	   Niÿÿÿÿ(   t   rankdatac            s_   t  j |  ƒ } |  j ƒ  }  t j |  ƒ } t  j |  | <ˆ  |  ƒ } t | | <t | | ƒ d  S(   N(   R   t   isfinitet   copyt   libalgost   rank_1d_float64R@   R   R   (   R•   t   maskR#   R<   (   R®  (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   _check¼  s    
g      @i   i   i   g      @(   t   scipy.statsR®  R   R   R   (   R    R´  (    (   R®  s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_scipy_compat¸  s    	1c         C   sk   t  j d d g d t  j ƒ} xF t  j d D]7 } t d d g d | ƒ} t j t j | ƒ | ƒ q, Wd  S(   Ni   i   R   t
   AllIntegerid   (	   R   R   R9   t	   typecodesR   R   R   R   t   rank(   R    R<   R   R%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR=   È  s    c         C   sp   t  j d d g d t  j ƒ} xK t  j t  j g D]7 } t d d g d | ƒ} t j t j | ƒ | ƒ q1 Wd  S(   Ni   i   R   i?   l            (	   R   R   R9   Rs   R   R   R   R   R¹  (   R    R<   R   R%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR¨   Ï  s    c         C   si   t  j d d d g d d d g d d d	 g g g ƒ } d
 } t j t d | ƒ t j | ƒ Wd  QXd  S(   Ni   i   i   i   i   i   i   i   i	   s%   Array with ndim > 2 are not supportedR   (   R   R   Rg   Rh   Ri   R   R¹  (   R    R•   t   msg(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_too_many_ndimsÖ  s    6R!   i   i   i   i   R\   t   1dt   2dc         C   s1   t  j | d t ƒj ƒ  } | d k s- t ‚ d  S(   Nt   pcti   (   R   R¹  R5   R›  RW   (   R    R!   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_pct_max_many_rowsÝ  s    i   i  i   i  i   i  (   R,   R-   R  t   skip_if_no_scipyR¶  R=   R¨   R»  Rg   RŒ   t   singleR   R   R   RK  R¿  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR­  ¶  s   				c          C   s;  t  j g  d d ƒ}  t  j t d d d ƒ g d d ƒ} t j d |  | ƒ } t  j d g d t  j ƒ} t j | | ƒ t j d | |  ƒ } t  j g  d t  j ƒ} t j | | ƒ t j d |  | ƒ } t  j d g d t  j ƒ} t j | | ƒ t j d | |  ƒ } t  j g  d t  j ƒ} t j | | ƒ d  S(   NR   RP   iÚ  i   i   R4   iÿÿÿÿ(	   R   R   R    R±  t   padR   R   R   t   backfill(   t   oldt   newR#   R$   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt!   test_pad_backfill_object_segfaultè  s    $c          C   sX   t  j d d d d d d g d d ƒ}  t j |  d „  ƒ } | j t  j k sT t ‚ d  S(   NR'   R(   R)   R*   R   RP   c         S   s
   |  d k S(   NR'   R(   (   R'   R(   (    (   RB   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRÔ      s    (   R   R   R±  t   arrmap_objectR   t   bool_RW   (   R!   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_arrmapþ  s    't   TestTseriesUtilc           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   d  S(   N(    (   R    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_combineFunc  s    c         C   s   d  S(   N(    (   R    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_reindex	  s    c         C   s   d  S(   N(    (   R    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt	   test_isna  s    c         C   s   d  S(   N(    (   R    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_groupby  s    c         C   s   d  S(   N(    (   R    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_groupby_withnull  s    c         C   s  t  d d d g ƒ } t  t d ƒ ƒ } t j d | j | j ƒ } t j d d d d d d d d d d d d g d	 t j ƒ} t j	 | | ƒ t  d d
 g ƒ } t  t d d ƒ ƒ } t j d | j | j ƒ } t j d d d d d g d	 t j ƒ} t j	 | | ƒ d  S(   Ni   i   i
   i   t   int64_ti    i   iÿÿÿÿR   i   (
   R   R   R±  RÃ  R!   R   R   R   R   R   (   R    RÄ  RÅ  t   fillert   expect_filler(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_backfill  s    $'c         C   s
  t  d d d g ƒ } t  t d ƒ ƒ } t j d | j | j ƒ } t j d d d d d d d d d d d d g d	 t j ƒ} t j	 | | ƒ t  d d g ƒ } t  t d ƒ ƒ } t j d | j | j ƒ } t j d d d d d g d	 t j ƒ} t j	 | | ƒ d  S(
   Ni   i   i
   i   RÐ  iÿÿÿÿi    i   R   (
   R   R   R±  RÂ  R!   R   R   R   R   R   (   R    RÄ  RÅ  RÑ  RÒ  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_pad'  s    $'(	   R,   R-   RË  RÌ  RÍ  RÎ  RÏ  RÓ  RÔ  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRÊ    s   						c       ~   C   s,  t  j d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d g| d d ƒt  j d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d d d d g| d d ƒg }  t j |  ƒ s(t ‚ d  S("   Ni   i   i   i    R   R   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i
   i	   i   i   i   i   i   (   R   R   R±  t   is_lexsortedRW   (   t   failure(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_is_lexsorted9  s2    ?0000'33-3-3-!c          C   sô   t  j j d d d ƒ j t  j ƒ }  t  j j d d d ƒ j t  j ƒ } t j |  d ƒ d } t  j |  d d ƒ} | j t  j ƒ } t j	 | | ƒ |  d | } t j | d ƒ d } t  j
 | |  f ƒ } | j t  j ƒ } t j	 | | ƒ d  S(   Ni    iè  id   t   kindt	   mergesorti@B (   R   R   R‘   R–   R   R±  t   groupsort_indexert   argsortR   R   t   lexsort(   R/   R0   R#   R$   RZ   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_groupsort_indexerW  s    $$c             s0  t  j ƒ  ‰  t  j ƒ  ‰ ˆ t d ƒ d d d t d ƒ ˆ  g }  t ‡  f d †  |  Dƒ ƒ sa t ‚ t ‡  f d †  |  Dƒ ƒ sƒ t ‚ ˆ  ˆ  k r› ˆ  ˆ  k s¡ t ‚ ˆ  ˆ  k  r» ˆ  ˆ  k sÁ t ‚ t  j ƒ  t  j ƒ  k sß t ‚ t  j ƒ  t  j ƒ  k sþ t ‚ t ‡ f d †  |  Dƒ ƒ s t ‚ t ‡ f d	 †  |  Dƒ ƒ sBt ‚ ˆ ˆ k rZˆ ˆ k s`t ‚ ˆ ˆ k  rzˆ ˆ k s€t ‚ t  j ƒ  t  j ƒ  k sžt ‚ t  j ƒ  t  j ƒ  k s½t ‚ x, t |  ƒ D] } t | ƒ |  k sÊt ‚ qÊWt j	 t  j ƒ  g d
 ƒ j
 ƒ  t j	 t  j ƒ  g d
 ƒ j
 ƒ  d  S(   Ns   -infg}Ã”%­I²Ôi    g}Ã”%­I²TR@   c         3   s   |  ] } ˆ  | k Vq d  S(   N(    (   t   .0RB   (   t   Inf(    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pys	   <genexpr>{  s    c         3   s'   |  ] } ˆ  | k p | ˆ  k Vq d  S(   N(    (   RÞ  RB   (   Rß  (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pys	   <genexpr>|  s    c         3   s   |  ] } ˆ  | k Vq d  S(   N(    (   RÞ  RB   (   t   NegInf(    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pys	   <genexpr>‚  s    c         3   s'   |  ] } ˆ  | k  p | ˆ  k Vq d  S(   N(    (   RÞ  RB   (   Rà  (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pys	   <genexpr>ƒ  s    i    (   R±  t   Infinityt   NegInfinityRê   t   allRW   R   t   sortedR   R   RÛ  (   t   ref_numst   perm(    (   Rß  Rà  s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_infinity_sortp  s&    '"" ""  c          C   s"  t  j ƒ  }  t  j ƒ  } |  t j k s. t ‚ |  t j k sD t ‚ |  t j k  sZ t ‚ |  t j k sp t ‚ |  t j k s† t ‚ |  t j k s› t ‚ | t j k s± t ‚ | t j k sÇ t ‚ | t j k  sÝ t ‚ | t j k só t ‚ | t j k s	t ‚ | t j k st ‚ d  S(   N(   R±  Rá  Râ  R   R   RW   (   Rß  Rà  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_infinity_against_nan‘  s    c          C   s=   t  j d d t  j ƒ}  t j |  ƒ } | |  k s9 t ‚ d  S(   Nid   R   (   R   R   R6   R±  t   ensure_platform_intRW   (   R•   R#   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_ensure_platform_int¤  s    c          C   sû  d }  t  j t  j ƒ j } t  j t  j ƒ j } t j t d |  ƒ$ t j	 t  j
 | | g ƒ | ƒ Wd  QXt j t d |  ƒ3 t j	 t  j
 | | g ƒ t  j
 | | g ƒ ƒ Wd  QXt j t d |  ƒ$ t j	 t  j
 | | g ƒ | ƒ Wd  QXt j t d |  ƒ3 t j	 t  j
 | | g ƒ t  j
 | | g ƒ ƒ Wd  QXt j t d |  ƒ3 t j	 t  j
 | | g ƒ t  j
 | | g ƒ ƒ Wd  QXt j t d |  ƒH t j	 t  j
 | | g ƒ t  j
 | | g ƒ d t  j
 t t g ƒ ƒWd  QXt j t d |  ƒH t j	 t  j
 | | g ƒ t  j
 | | g ƒ d t  j
 t t g ƒ ƒWd  QXt j t d |  ƒ] t j	 t  j
 | | g ƒ t  j
 | | g ƒ d t  j
 t t g ƒ d t  j
 t t g ƒ ƒWd  QXt j t d |  ƒL t j t ƒ 6 t j	 t  j
 | | g ƒ t  j
 t  j | g ƒ ƒ Wd  QXWd  QXt j	 t  j
 | | g ƒ t  j
 | | g ƒ d t  j
 t t g ƒ ƒt j	 t  j
 | | g ƒ t  j
 | | g ƒ d t  j
 t t g ƒ ƒt j	 t  j
 | | g ƒ t  j
 | | g ƒ d t  j
 t t g ƒ d t  j
 t t g ƒ ƒd  S(   Ns   Overflow in int64 additionR   t   arr_maskt   b_mask(   R   R™  R   R›  t   minRg   Rh   t   OverflowErrorR   t   checked_add_with_arrR   RY   R5   R   R|   t   RuntimeWarningR   (   Rº  Rk  t   n(    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_int64_add_overflow«  sD    %4%44---%---t   TestModec           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   s2   t  g  d t j ƒ} t j t j g  ƒ | ƒ d  S(   NR   (   R   R   R9   R   R   R   t   mode(   R    R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_no_modeØ  s    c         C   s<  d g } d g } d g } d d g } xš t  j d t  j d D]€ } t | d | ƒ} t | d | ƒ} t j t j | ƒ | ƒ t | d | ƒ} t | d | ƒ} t j t j | ƒ | ƒ q@ Wt d g d t  j ƒ} t j t j d g ƒ | ƒ t d d d g d t  j ƒ} t j t j d d d g ƒ | ƒ d  S(   Ni   R·  R~  R   R/   R0   R1   (	   R   R¸  R   R   R   R   Rô  t   intR4   (   R    t
   exp_singlet   data_singlet	   exp_multit
   data_multiR	  R%   R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_mode_singleÜ  s    			c         C   sñ   d g } d g d d g d } d d g } d g d d g d d g d } xš t  j d t  j d D]€ } t | d | ƒ} t | d | ƒ} t j t j | ƒ | ƒ t | d | ƒ} t | d | ƒ} t j t j | ƒ | ƒ qi Wd  S(   Ni   i   i   i   R·  R~  R   (   R   R¸  R   R   R   R   Rô  (   R    R÷  Rø  Rù  Rú  R	  R%   R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_number_modeó  s    	#c         C   s×   d g } d g d d g d } t  | d d ƒ} t  | d d ƒ} t j t j | ƒ | ƒ d g } d g d d g d } xQ t t g D]C } t  | d | ƒ} t  | d | ƒ} t j t j | ƒ | ƒ qŒ Wd  S(	   NR0   R/   i   i   R   R1   R(   R'   (   R   R   R   R   Rô  t   strR4   (   R    R<   Ra   R%   R	  (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_strobj_mode  s    		c         C   s¥   t  d d d g d d ƒ} t  d d d g d d ƒ} t j t j | ƒ | ƒ t  d d g d d ƒ} t  d d d d d g d d ƒ} t j t j | ƒ | ƒ d  S(   Ns
   1900-05-03s
   2011-01-03s
   2013-01-02R   s   M8[ns](   R   R   R   R   Rô  (   R    R<   R%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_datelike_mode  s    		c         C   s¨   t  d d d g d d ƒ} t  d d d g d d ƒ} t j t j | ƒ | ƒ t  d d g d d ƒ} t  d d d d	 d d g d d ƒ} t j t j | ƒ | ƒ d  S(
   Ns   -1 dayss   0 dayss   1 daysR   s   timedelta64[ns]s   2 mins   1 days   -1 days   -1 day 2 min(   R   R   R   R   Rô  (   R    R<   R%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_timedelta_mode  s    		c         C   sA   t  d g ƒ } t  d d d g ƒ } t j t j | ƒ | ƒ d  S(   NR'   i   (   R   R   R   R   Rô  (   R    R<   R%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   test_mixed_dtype+  s    c         C   s¢   t  d g d t j ƒ} t  d d d g d t j ƒ} t j t j | ƒ | ƒ t  d d g d t j ƒ} t  d d	 g d t j ƒ} t j t j | ƒ | ƒ d  S(
   Ni   i?   R   i   l            l            l            l            l            (   R   R   Rs   R   R   R   Rô  (   R    R<   R%   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR¨   0  s    c         C   s  t  d d g ƒ } | } t j t j | ƒ | ƒ t j | j ƒ  | ƒ t  d d d g ƒ } t  d g d d d g ƒ} t j t j | ƒ | ƒ t j | j ƒ  | ƒ t  d d d d d g ƒ } t  d d g d d d d g ƒ} t j t j | ƒ | ƒ t j | j ƒ  | ƒ d  S(   Ni   i   R/   R¬   i   (   R   R   R±   R   Rô  (   R    R1   R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyR´   9  s    !c         C   s7  t  d d d g ƒ } t d d d g d t j ƒ} t j t j | ƒ | ƒ t  d d d g ƒ } t d g d t ƒ} t j t j | ƒ | ƒ t  d d d d d g ƒ } t d d g d t j ƒ} t j t j | ƒ | ƒ t d d g d d ƒ} t  d d d	 d
 d d g d d ƒ} t j t j | ƒ | ƒ d  S(   Ni   i   i   R   R/   s   2 mins   1 days   timedelta64[ns]s   -1 days   -1 day 2 min(	   R   R   R   R   R   R   R   Rô  R4   (   R    R:  R<   (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt
   test_indexI  s    (   R,   R-   Rõ  Rû  Rü  Rþ  Rÿ  R   R  R¨   R´   R  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyRó  Ö  s   										(K   R    t	   itertoolsR   RÄ   t   numpyR   R   t   numpy.randomR   Rg   t   pandas._libsR   R±  R   Rb  R   RS   t   pandas.compatR   R   t   pandas.compat.numpyR	   t   pandas.util._test_decoratorst   utilt   _test_decoratorsR  t   pandas.core.dtypes.dtypesR
   Rý   t   pandasRI   R   R   R   R   R   R   R   R   t   pandas.core.algorithmst   coret
   algorithmst   pandas.core.arraysR   t   pandas.core.commont   commonR_   t   pandas.util.testingt   testingR   R   R4   R   R.   RŽ   RÒ   Rõ   R%  RD  R^  Rd  Rf  R¥  R¬  R­  RÆ  RÉ  RÊ  R×  RÝ  Rç  Rè  Rê  Rò  Ró  (    (    (    s6   lib/python2.7/site-packages/pandas/tests/test_algos.pyt   <module>   sV   :$ÿ ÿ Ã¼§T©		2		5			!			+