ó
šxŠ\c           @   s¨	  d  d l  m Z d  d l m Z d  d l Z d  d l m Z d  d l Z d  d l m	 Z	 m
 Z
 d  d l m Z d  d l j Z d  d l m Z d  d l j j Z d  d l m Z m Z m Z m Z d  d	 l m Z d  d
 l m Z d  d l j j Z d  d l m  Z  d e f d „  ƒ  YZ! e j" j# d d d d g ƒ e j" j# d d g d g f d d g d d d d g f d d g d d g f d d d g d d d d d d g f d d d g d d d d d d g f d d d g d d d d d d g f d d d d d g d d d d d d d d d d g f d d d d d d g d d d d d d d d d d d d g f d d d d d  g d d d d d d d d d  d g f g	 ƒ d! „  ƒ ƒ Z$ e j" j# d d d d g ƒ e j" j# d d g d g f d d g d d d d g f d d g d d d d g f d d d g d d d d d d g f d d d g d d d d d d g f d d d g d d d d d d g f d d d d d g d d d d d d d d d d g f d d d d d d g d d" d d" d d" d d" d  d" d  d" g f d d d d d  g d d d d d d d d d  d g f g	 ƒ d# „  ƒ ƒ Z% e j" j# d d d d g ƒ e j" j# d d g d g f d d g d d d d g f d d g d d g f d d d g d d d d d d g f d d d g d d d d d d g f d d d g d d d d d d g f d d d d d g d d d d d  d d  d d d g f d d d d d d g d d" d d" d d" d d" d$ d" d$ d" g f d d d d d  g d d d d d d d d d  d g f g	 ƒ d% „  ƒ ƒ Z& e j" j# d d d d g ƒ e j" j# d d g d g f d d g d d d d g f d d g d& d d& d g f d d d g d d d d d d g f d d d g d d d' d d' d g f d d d g d d d d d d g f d d d d d g d& d d& d d( d d( d d d g f d d d d d d g d& d" d& d" d) d" d) d" d* d" d* d" g f d d d d d  g d d d d d d d d d  d g f g	 ƒ d+ „  ƒ ƒ Z' e j" j# d d d g ƒ e j" j# d d g d g f d d g d d d d g f d d g d d d d g f d d d g d d d d d d g f d d d g d d d d d d g f d d d g d d d d d d g f d d d d d g d d d d d d d  d d d g f d d d d d d g d d" d d" d d" d d" d  d" d$ d" g f d d d d d  g d d d d d d d d d  d g f g	 ƒ d, „  ƒ ƒ Z( e j" j) d- „  ƒ Z* d S(.   iÿÿÿÿ(   t   LooseVersion(   t   chainN(   t   nan(   t   Infinityt   NegInfinity(   t   iNaT(   t   product(   t   NaTt   Seriest	   Timestampt
   date_range(   t   CategoricalDtype(   t   TestData(   t   assert_series_equalt   TestSeriesRankc           B   s0  e  Z e d  d d d e d d  d e d g
 ƒ Z i e j d d d d e d d d	 e d g
 ƒ d
 6e j d  d d d e d d  d e d g
 ƒ d 6e j d d d d e d d d e d g
 ƒ d 6e j d  d d d e d d d e d g
 ƒ d 6e j d  d d d e d d  d e d g
 ƒ d 6Z d „  Z d „  Z	 d „  Z
 e j j d e j d d d d d d d d d d d e j g d  f e j d d d d d! d d d d d d e j g d" f e j e j ƒ j d  d d# e j e j ƒ j g d$ f e j e j e j ƒ j d% d d  d& d' d( e j e j ƒ j g d) d* e j j d+ d, ƒ ƒe ƒ  d- d. d/ d0 d1 e ƒ  g d2 f g ƒ d3 „  ƒ Z d4 „  Z e j e j j d5 e e g ƒ e j j d6 d
 d d d d g ƒ e j j d7 d8 d9 d: g ƒ d; „  ƒ ƒ ƒ ƒ Z d< „  Z d= „  Z  d> „  Z! d? „  Z" d@ „  Z# dA „  Z$ dB „  Z% RS(C   i   i   i   i   i   g      ø?g      @g      @g      @g       @t   averagei   i   t   mini   t   maxt   firstt   densec         C   s  t  j d ƒ t  j d ƒ } t j |  j d  d  d … <d |  j d  d  d  d … <|  j j ƒ  } |  j j d ƒ j ƒ  } t | | ƒ t j |  j ƒ } |  j j	 t j
 ƒ } t | | ƒ d | j d	 d
 ƒ} t j | | <t j | | ƒ t t j d ƒ j d ƒ ƒ } | j ƒ  } | j t ƒ j ƒ  } t | | ƒ t t j d ƒ ƒ d } | d } | j d t ƒ } t | | ƒ t t j d d ƒ ƒ } t t j d d ƒ ƒ } | j d t ƒ } t | | ƒ t j | d <t t j d d d ƒ ƒ } t j | d <| j d t ƒ } t | | ƒ t t j d ƒ ƒ d } t j | d <| d } | j d t ƒ } t | | ƒ t t j t j d ƒ ƒ } | j ƒ  } | j d t ƒ } t | | ƒ t t j d ƒ ƒ d } t j | d <| d } | j d t ƒ } t | | ƒ t d d d ƒ}	 t t j d ƒ |	 ƒ d } t j | j d <| d } | j d t ƒ } t | | ƒ t d d d d d- d g ƒ } t d d d d d d g ƒ } | j ƒ  } t | | ƒ t d d d  t g d! d" ƒ} t d d d t j g ƒ } | j ƒ  } t | | ƒ t j d# d$ d% d& d' d( d) d d* d d+ g d! d, ƒ}
 t j j t |
 ƒ ƒ } t |
 | ƒ } t | d d! d, ƒ} | j ƒ  } t | | ƒ d  S(.   Ns   scipy.stats.specials   scipy.stats.rankdatai   g      @i
   i   t   Ot   indext   namet   tsi   g      ð?g      @t   pcti   id   g)\Âõ(à?g      I@g     ÀX@i   s   1/1/1990t   periodsg¸ÔJzî5g0Žä.ÿ++g#B’¡œÇ;g{®Gáz„?g ÂëþKH´9gš™™™™™¹?g      @s   3 days	   1 day 10ms   -2 dayt   dtypes   m8[ns]iÎÿÿÿiÿÿÿÿg#B’¡œÇ»gÙ}ÚõÐò¾ºg¸ÔJzîµi    gœWw'&l¡7g»½×Ùß|Û=i(   t   float64gIfœ¡œÇ;(   t   pytestt   importorskipt   npR   R   t   rankt   astypeR   t   isnant   fillnat   infR   R   t   tmt   aranget   repeatt   floatt   Truet   copyR
   t   ilocR   t   arrayt   randomt   permutationt   len(   t   selft   rankdatat   rankst   orankst   maskt   filledt   expt   iseriest   irankst   rngt   valuest   random_order(    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt	   test_rank"   s„    !



	'	c      
   C   sÂ  t  d d d d d d g ƒ } t  d d d d d d g ƒ } t  d d d	 d
 d d g ƒ j t d d d d	 d
 d d g d t ƒ ƒ } t | j ƒ  | ƒ t | j d t ƒ | ƒ t  d d d	 d
 d d g ƒ j t d d d d	 d
 d d g d t ƒ ƒ } t  d d d d d d g ƒ } | j ƒ  } t | | ƒ t  d d d d d d g ƒ j t d d d d d d g t ƒ ƒ } t  d d d d d d g ƒ } | j ƒ  }	 t |	 | ƒ t  d d d	 d
 d d t j g ƒ j t d d d	 d
 d d d g t ƒ ƒ }
 t  d d d d d d d g ƒ } t  d d d d d d d g ƒ } t  d d d d d d t j g ƒ } t |
 j d d ƒ | ƒ t |
 j d d ƒ | ƒ t |
 j d d ƒ | ƒ t  d d d d d d d g ƒ } t  d d d d d d d g ƒ } t  d d d d d d t j g ƒ } t |
 j d d d t ƒ | ƒ t |
 j d d d t ƒ | ƒ t |
 j d d d t ƒ | ƒ d } t	 j
 t d | ƒ |
 j d d d t ƒ Wd  QXt	 j
 t d | ƒ |
 j d t d t ƒ Wd  QXt  d d d	 d
 t j g ƒ j t d d d	 d
 g t ƒ ƒ }
 t  d d  d! d d" g ƒ } t  d" d d  d! d g ƒ } t  d# d$ d% d t j g ƒ } t |
 j d d d& t ƒ | ƒ t |
 j d d d& t ƒ | ƒ t |
 j d d d& t ƒ | ƒ d  S('   Ng      ð?g       @g      @g      @g      @g      @R   t   secondt   thirdt   fourtht   fiftht   sixtht
   categoriest   orderedt	   ascendingi   i   i   i   i   i   t   seventhg      @t	   na_optiont   topt   bottomt   keeps3   na_option must be one of 'keep', 'top', or 'bottom't   matcht   badgš™™™™™Ù?g333333ã?gš™™™™™é?gš™™™™™É?g      Ð?g      à?g      è?R   (   R   R    R   R(   R   R   t   FalseR   t   NaNR   t   raisest
   ValueError(   R/   R5   t   exp_descRB   t	   unorderedt   exp_unorderedt   rest
   unordered1t   exp_unordered1t   res1t   na_sert   exp_topt   exp_bott   exp_keept   msg(    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_categoricalz   st    $!!!$!!$c         C   sU   t  d d g ƒ } | j d d ƒ d } t j t d | ƒ | j d ƒ Wd  QXd  S(   Ni    i   t   methodR   s;   No axis named average for object type <(class|type) 'type'>RI   (   R   R   R   RM   RN   (   R/   t   sRZ   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_signatureÎ   s
    s   contents,dtypeiÎÿÿÿiÿÿÿÿg#B’¡œÇ»gÙ}ÚõÐò¾ºg¸ÔJzîµi    gœWw'&l¡7g#B’¡œÇ;g»½×Ùß|Û=i(   R   g¹j7­Ö–¶t   float32id   t   uint8iœÿÿÿi'  i † g    _ Bt   int64t   markst   reasonsH   iNaT is equivalent to minimum value of dtypeint64 pending issue GH#16674t   1t   At   BAt   Bat   Ct   objectc         C   s$  i t  j d 6t  j d 6t d 6d  d 6} t  j | d | ƒ} t  j t t | ƒ ƒ d d ƒd } | | k rÉ | | } t  j j t t | ƒ ƒ d ƒ } t  j	 | | | ƒ } t  j	 | | t  j ƒ } n  t  j j
 t | ƒ ƒ } t | | ƒ }	 t | | d d ƒ}
 |	 j ƒ  } t | |
 ƒ d  S(   NR   R_   Ra   Ri   R   g      ð?i   (   R   R   R   t   NoneR+   t   rangeR.   R,   t   choicet   insertR-   R   R   R   (   R/   t   contentsR   t   dtype_na_mapR9   t	   exp_ordert   na_valuet   nan_indicesR:   R6   R5   R7   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_infÕ   s"    


%
!c   	      C   s­   |  j  } d d „ } d  t g } t d f h } |  j } xm t | | ƒ D]\ \ } } | | f | k rm qI n  | d  k r | n | j | ƒ } | | | | d | ƒqI Wd  S(   NR   c         S   s,   |  j  d | ƒ } t j | t | ƒ ƒ d  S(   NR\   (   R   R$   R   R   (   R]   t   expectedR\   t   result(    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   _check  s    R   R\   (   R]   Rj   Ri   t   resultsR   R    (	   R/   R]   Rv   t   dtypest   disabledRw   R\   R   t   series(    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_tie_methods   s    		!RC   R\   RE   RF   RG   RH   c            sÓ   d d  t ƒ  t ƒ  f d t j t j t j f g } d ‰  d h } ‡  f d †  } xz | D]r \ } } }	 }
 |
 g ˆ  | g ˆ  |	 g ˆ  } t | d | ƒ} | | f | k r¸ qY n  | | | | | ƒ qY Wd  S(   NRi   R   i   R   c   	         sÎ  i d d d g d d d g d d d g f d 6d d d g d d d g d d d g f d 6d	 d	 d	 g d
 d
 d
 g d d d g f d 6d d d	 g d d d
 g d d d g f d 6d d d g d d d g d	 d	 d	 g f d 6} | | } | d k r| d | d | d g } nK | d k r;| d | d | d g } n! | d t  j g ˆ  | d g } | rh| n | d  d  d … } t t j | ƒ ƒ } |  j d | d | d | ƒ } t j | t | d d ƒƒ d  S(   Ni   i   i   R   i   i   i   R   i   i   i	   R   R   R   RF   i    RG   iÿÿÿÿR\   RE   RC   R   R   (	   R   R   t   listR   t   from_iterableR   R$   R   R   (	   R]   R\   RE   RC   t	   exp_ranksR1   t   orderRt   Ru   (   t   chunk(    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyRv     s"    ++++.
!	R   (   Ri   R   (   Rj   R   R   R   R   R#   R   (   R/   R\   RE   RC   Rx   Ry   Rv   R   Rq   t   pos_inft   neg_inft   in_arrR6   (    (   R€   s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt"   test_rank_tie_methods_on_infs_nans  s    	#c         C   so   t  d t j t j t j d g ƒ } | j d t ƒ } t  d t j d d d g d d ƒ} t j | | ƒ d  S(	   Ni   i   RC   i   i   i   R   R   (   R   R   R   R#   R   RK   R$   R   (   R/   R6   Ru   R5   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_desc_mix_nans_infs8  s    %$c         C   s‹  t  j d ƒ t  j d ƒ } d d  l } t j j d ƒ } t j g  t d d d ƒ D] } | | ^ qS ƒ } t j j | ƒ g  t t	 | ƒ ƒ D] } t
 t d ƒ | ƒ ^ q } xÓ | | d | d	 g D]º } t | d
 | ƒ} xŸ d d d d d g D]ˆ } | j d | ƒ }	 | | | d k r'| n d ƒ }
 t |
 d
 | ƒ} t | j ƒ t d ƒ k ro| j d ƒ } n  t j |	 | ƒ q÷ WqÉ Wd  S(   Ns   scipy.stats.specials   scipy.stats.rankdataiÿÿÿÿi	   i    i   t   ag    €„.Agíµ ÷Æ°>R   R   R   R   R   R   R\   t   ordinals   0.17.0R   (   R   R   t   scipyR   R,   t   randnt   concatenateRk   t   shuffleR.   t   chrt   ordR   R   R    t   __version__R    R$   R   (   R/   R0   Rˆ   t   xst   iR   t   valsR   t   mRu   t   sprankRt   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_methods_series@  s     25!c   	      C   sS  d d d g } d g d g f d g d g f d g d g f d d g d d g f d d d g d d d g f d d d g d d d g f d d d	 d	 d g d d d d d g f d
 d d d d g d d d d d	 g f g } xq | D]i \ } } xZ | D]R } t  | ƒ j | ƒ } | j d d ƒ } t  | ƒ j | j ƒ } t | | ƒ qõ Wqâ Wd  S(   NR   t   f8t   i8i   i   i    i   i   i   iûÿÿÿiüÿÿÿiýÿÿÿiþÿÿÿiÿÿÿÿR\   R   (   R   R    R   R   R   (	   R/   Rx   t   in_outt   serR5   R   R]   Ru   Rt   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_dense_methodW  s    '-c         C   sú   d d d g } xä t  | |  j ƒ D]Ð \ } } d | k rL |  j j ƒ  } n |  j j | ƒ } | j d t ƒ } | j ƒ  | j ƒ  } t | | ƒ | d k r± | d k r± q" n  | j ƒ  | j d | ƒ } | j d | d t ƒ } t | | ƒ q" Wd  S(   NR   R•   R–   R   RC   R   R\   (	   R   Rw   R]   t   dropnaR    R   RK   R   R   (   R/   Rx   R   R\   R]   RR   Rt   t   res2(    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_descendingi  s    c         C   s|   |  j  j ƒ  j d ƒ } x] t j |  j ƒ D]I \ } } | j d | ƒ } t | ƒ j ƒ  } | j | _ t	 | | ƒ q+ Wd  S(   NR–   R\   (
   R]   Rš   R    t   compatt	   iteritemsRw   R   R   R   R   (   R/   R]   R\   RR   Ru   Rt   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_int}  s    c         C   sV   t  t j g d ƒ j t ƒ j d t ƒ t  t j g d ƒ j t ƒ j d t ƒ d  S(   Ni    RC   (   R   R   R   R    Ri   R   R(   RK   (   R/   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_object_bug†  s    )c         C   sE   t  t d ƒ t g ƒ } | j ƒ  } | j ƒ  | } t | | ƒ d  S(   Ns   2017-01-05 10:20:27.569000(   R   R	   R   R)   R   R   (   R/   R]   Rt   Ru   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_modify_inplace  s
    
(&   t   __name__t
   __module__R   R   R]   R   R+   Rw   R;   R[   R^   R   t   markt   parametrizeR#   t   iinfoR`   R   R   t   paramRa   t   xfailR   R   Rs   R{   t   tdt   skip_if_no_scipyR(   RK   R„   R…   R”   R™   Rœ   RŸ   R    R¡   (    (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyR      sP   *...1	X	T	""0'			0#							R   R   R•   R–   s   ser, expi   g      ð?i   g       @i   g      @i   i   iûÿÿÿiüÿÿÿiýÿÿÿiþÿÿÿg      @g      @c         C   sV   t  | ƒ j |  ƒ } | j d d d t ƒ } t  | ƒ j | j ƒ } t | | ƒ d  S(   NR\   R   R   (   R   R    R   R(   R   R   (   R   R˜   R5   R]   Ru   Rt   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_dense_pctš  s    i   c         C   sV   t  | ƒ j |  ƒ } | j d d d t ƒ } t  | ƒ j | j ƒ } t | | ƒ d  S(   NR\   R   R   (   R   R    R   R(   R   R   (   R   R˜   R5   R]   Ru   Rt   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_min_pct¬  s    g      @c         C   sV   t  | ƒ j |  ƒ } | j d d d t ƒ } t  | ƒ j | j ƒ } t | | ƒ d  S(   NR\   R   R   (   R   R    R   R(   R   R   (   R   R˜   R5   R]   Ru   Rt   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_max_pct¾  s    g      ø?g      @g      @g      @g      @c         C   sV   t  | ƒ j |  ƒ } | j d d d t ƒ } t  | ƒ j | j ƒ } t | | ƒ d  S(   NR\   R   R   (   R   R    R   R(   R   R   (   R   R˜   R5   R]   Ru   Rt   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_average_pctÐ  s    c         C   sV   t  | ƒ j |  ƒ } | j d d d t ƒ } t  | ƒ j | j ƒ } t | | ƒ d  S(   NR\   R   R   (   R   R    R   R(   R   R   (   R   R˜   R5   R]   Ru   Rt   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_rank_first_pctã  s    c          C   sC   t  t j d ƒ ƒ }  |  j d t ƒ j ƒ  } | d k s? t ‚ d  S(   Ni   i   i   R   i   i  (   R   R   R%   R   R(   R   t   AssertionError(   R]   Ru   (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   test_pct_max_many_rowsõ  s    (+   t   distutils.versionR    t	   itertoolsR   t   numpyR   R   R   t   pandas._libs.algosR   R   t   pandas._libs.tslibR   t   pandas.compatR   R   t   pandas.util._test_decoratorst   utilt   _test_decoratorsR©   t   pandasR   R   R	   R
   t   pandas.api.typesR   t   pandas.tests.series.commonR   t   pandas.util.testingt   testingR$   R   R   R¤   R¥   R«   R¬   R­   R®   R¯   t   singleR±   (    (    (    s<   lib/python2.7/site-packages/pandas/tests/series/test_rank.pyt   <module>   s’   "ÿ …''';EP''';EP''';EP''';0P''';EP