σ
ξ&]\c        $   @` sϊ  d  d l  m Z m Z m Z d  d l Z d  d l m Z m Z d  d l	 m
 Z
 m Z d e f d     YZ d e f d     YZ g  d	 g  f g  d
 g  f g  d g  f g  d g  f g  d g  f d g d	 d g f d g d
 d g f d g d d g f d g d d g f d g d d g f d d d g d	 d d d g f d d d g d
 d d d g f d d d g d d d d g f d d d g d d d d g f d d d g d d d d g f d d d g d	 d d d g f d d d g d
 d d d g f d d d g d d d d g f d d d g d d d d g f d d d g d d d d g f d d d d g d	 d d d d g f d d d d g d
 d d d d g f d d d d g d d d d d g f d d d d g d d d d d g f d d d d g d d d d d g f d d d d d g d	 d d d d d g f d d d d d g d
 d d d d d g f d d d d d g d d d d d d g f d d d d d g d d d d d d g f d d d d d g d d d d d d g f d g d d e j d d  f f Z d   Z d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_equalt   assert_array_equal(   t   rankdatat
   tiecorrectt   TestTieCorrectc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s5   t  j g  d t  j } t |  } t | d  d S(   s9   An empty array requires no correction, should return 1.0.t   dtypeg      π?N(   t   npt   arrayt   float64R   R   (   t   selft   rankst   c(    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt
   test_empty   s    c         C` s8   t  j d g d t  j } t |  } t | d  d S(   s;   A single element requires no correction, should return 1.0.g      π?R   N(   R	   R
   R   R   R   (   R   R   R   (    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   test_one   s    c         C` sT   t  j d  } t |  } t | d  t  j d  } t |  } t | d  d S(   s*   Arrays with no ties require no correction.g       @g      π?g      @N(   R	   t   arangeR   R   (   R   R   R   (    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   test_no_correction   s    c         C` s  t  j d d d g  } t |  } d } | j } d | d | | d | } t | |  t  j d d d g  } t |  } d } | j } d | d | | d | } t | |  t  j d d d d g  } t |  } d } | j } d | d | | d | } t | |  t  j d d d d d g  } t |  } d } d } | j } d | d | | d | | d | } t | |  d S(	   s8   Check a few basic examples of the tie correction factor.g      π?g      @g       @i   g      ψ?g      @g      @N(   R	   R
   R   t   sizeR   (   R   R   R   t   Tt   Nt   expectedt   T1t   T2(    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt
   test_basic    s2    				*c         C` su   d \ } } t  j t  j |  |  } | j } t t |   } t | d | | d | t | d |   d  S(   NiΠ  i   g      π?i   (   iΠ  i   (   R	   t   repeatR   R   R   R   R   t   float(   R   t   ntiet   kt   at   nt   out(    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   test_overflowC   s
    	(   t   __name__t
   __module__R   R   R   R   R!   (    (    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyR   	   s
   					#t   TestRankDatac           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` so   t  j g  d t } t |  } t | t  j g  d t  j  t g   } t | t  j g  d t  j  d S(   s0   stats.rankdata([]) should return an empty array.R   N(   R	   R
   t   intR   R   R   (   R   R   t   r(    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyR   M   s
    c         C` s~   d g } t  j | d t } t |  } t | t  j d g d t  j  t |  } t | t  j d g d t  j  d S(   s/   Check stats.rankdata with an array of length 1.id   R   g      π?N(   R	   R
   R%   R   R   R   (   R   t   dataR   R&   (    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyR   U   s    	"c         C` s²  d d d g } t  j d d d g d t  j } t  j | d t } t |  } t | |  t |  } t | |  d d d	 d d g } t  j d
 d d d d g d t  j } t  j | d t } t |  } t | |  t |  } t | |  d d d d d d g } t  j d d d d d d g d t  j } t  j | d t } t |  } t | |  t |  } t | |  | j d d  } t |  } t | |  d S(   s   Basic tests of stats.rankdata.id   i
   i2   g      @g      π?g       @R   i(   i   g      @g      ψ?g      @i   i   i   N(   R	   R
   R   R%   R   R   t   reshape(   R   R'   R   R   R&   t   a2d(    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyR   ^   s0    !'*c         ` s  d    d      f d   }    f d   } d   } t  d  d   d | d	 | d
 |    f d   } d d d d d d d d d g	 } | t j j | d   | t j j | d  j d   t j d d d d d d g d d } | t j j | d  j d   d  S(   Nc         ` s1   g  |  D]&   d t    f d   |  D  ^ q S(   Ni   c         3` s   |  ] } |   k  Vq d  S(   N(    (   t   .0t   i(   t   j(    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pys	   <genexpr>}   s    (   t   sum(   R   (    (   R,   s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   <lambda>}   s    c         ` s-   g  |  D]"   t    f d   |  D  ^ q S(   Nc         3` s   |  ] } |   k Vq d  S(   N(    (   R*   R+   (   R,   (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pys	   <genexpr>~   s    (   R-   (   R   (    (   R,   s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyR.   ~   s    c         ` s/     g  t  |   D] \ } } | | f ^ q  S(   N(   t	   enumerate(   R   R+   t   x(   t   min_rank(    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyR.      s    c         ` s:   g  t   |     |    D] \ } } | | d ^ q S(   Ng       @(   t   zip(   R   R+   R,   (   t   max_rankR1   (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   average_rank   s    c         ` s@   t  j |   } g  |  D]&   d t   f d   | D  ^ q S(   Ni   c         3` s   |  ] } |   k  Vq d  S(   N(    (   R*   R+   (   R,   (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pys	   <genexpr>   s    (   R	   t   uniqueR-   (   R   t   b(    (   R,   s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt
   dense_rank   s    t   mint   maxt   ordinalt   averaget   densec         ` s>   x7 d D]/ } t  |  d | } t |   | |    q Wd  S(   NR8   R9   R<   R:   R;   t   method(   R8   R9   R<   R:   R;   (   R   R   (   R   R=   R    (   t   rankf(    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   check_ranks   s    t   foot   bart   quxt   xyzt   abct   efgt   acet   qwet   qaziΘ   t   objecti    i   i   gX9΄ΘvΎ@i   gTγ₯Δ 	@R   (   t   dictR	   t   randomt   choicet   astypeR
   (   R   t   ordinal_rankR4   R7   R?   t   val(    (   R3   R1   R>   s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   test_rankdata_object_string|   s    			!"'c         C` s»   t  j d d	 g d t  j } t |  } t | d d g  t  j d
 d g d t  j } t |  } t | d d g  t  j d d g d t  j } t |  } t | d d g  d  S(   Ni   i<   i   R   g      π?g       @I       I       I      I       I       I      I       I       I       πI      π(   R	   R
   t   uint64R   R   t   int64(   R   R'   R&   (    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   test_large_int   s    c         C` se   x^ d d d g D]M } t  j | d t } t |  } d | d } t | | | d |  q Wd  S(   Ni'  i  i@B R   g      ΰ?i   s   test failed with n=%d(   R	   t   onesR%   R   R   (   R   R   R'   R&   t   expected_rank(    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   test_big_tie€   s    (   R"   R#   R   R   R   RP   RS   RV   (    (    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyR$   K   s   						R;   R8   R9   R<   R:   id   g      π?g       @g      @i,  iΘ   g      @g      @g      ψ?g      @g      @i
   i   g      ?@c          C` s=   x6 t  D]. \ }  } } t |  d | } t | |  q Wd  S(   NR=   (   t   _casesR   R   (   t   valuesR=   R   R&   (    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt
   test_casesΧ   s    (   t
   __future__R    R   R   t   numpyR	   t   numpy.testingR   R   t   scipy.statsR   R   RI   R   R$   R   RW   RY   (    (    (    s:   lib/python2.7/site-packages/scipy/stats/tests/test_rank.pyt   <module>   sJ   Bd$$$$$*****%