
&]\c           @` sQ  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  d l Z d  d l Z d  d l m Z d  d l m Z m Z m Z m Z m Z m Z d  d l Z d  d l m Z d  d l m Z d  d	 l m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& d  d
 l m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< d  d l m= Z> 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 Z? e j@ d  d) d* d+ d, d- g d) d  d. d/ d0 d1 g d* d. d  d2 d3 d4 g d+ d/ d2 d  d5 d6 g d, d0 d3 d5 d  d7 g d- d1 d4 d6 d7 d  g g d8 d9 ZA e eA  ZB i  ZC d:   ZD eD   eE d;  ZF eE eE eG eH eG eG eG eG eE d< 	 ZI d=   ZJ d>   ZK d?   ZL d  d  eG d@  ZM eE dA  ZN e e dB dC dD   eE dE  ZO dF eE dG   dH eH eG eH eH eH eH eH eG eG eG dI d  e e dB dC dJ  ZP eP e  dK dL dM eG ZQ eP e  dK dL dM eG dN eG ZR eP e dK dL dM eG dO dL ZS eP e dK dL dM eG dN eG dO dL ZT eP e6  ZU eP e/ dP eG ZV ZW eP e<  ZX eP e-  ZY eP e*  ZZ eP e)  Z[ eP e,  Z\ eP e+  Z] eP e2  Z^ eP e5 dN eG Z= eP e0  Z_ eP e. dN eG Z` eP e; dN eG Za eP e'  Zb eP e( dN eG Zc eP e:  Zd eP e9  Ze eP e7  Zf dQ eg f dR     YZh dS eg f dT     YZi dU eg f dV     YZj dW eg f dX     YZk dY eg f dZ     YZl d[ eg f d\     YZm d]   Zn d^ eg f d_     YZo d`   Zp da eg f db     YZq dc   Zr dd   Zs de   Zt df   Zu dg   Zv dh   Zw di   Zx dj   Zy dk   Zz dl   Z{ dm   Z| dn   Z} do   Z~ dp   Z d S(q   i    (   t   divisiont   print_functiont   absolute_importN(   t   wrapst   partial(   t   xranget   u(   t   norm(   t   verboset   assert_t   assert_array_equalt   assert_equalt   assert_almost_equalt   assert_allclose(   t   raises(   t   suppress_warnings(	   t
   squareformt   pdistt   cdistt	   num_obs_yt
   num_obs_dmt   is_valid_dmt
   is_valid_yt   _validate_vectort   _METRICS_NAMES(   t
   braycurtist   canberrat	   chebyshevt	   cityblockt   correlationt   cosinet   dicet	   euclideant   hammingt   jaccardt   jensenshannont	   kulsinskit   mahalanobist   matchingt	   minkowskit   rogerstanimotot
   russellraot
   seuclideant   sokalmichenert   sokalsneatht   sqeuclideant   yule(   t
   wminkowskis   cdist-X1.txts   cdist-X2.txts   iris.txts   pdist-boolean-inp.txts   pdist-chebyshev-ml-iris.txts   pdist-chebyshev-ml.txts   pdist-cityblock-ml-iris.txts   pdist-cityblock-ml.txts   pdist-correlation-ml-iris.txts   pdist-correlation-ml.txts   pdist-cosine-ml-iris.txts   pdist-cosine-ml.txts   pdist-double-inp.txts   pdist-euclidean-ml-iris.txts   pdist-euclidean-ml.txts   pdist-hamming-ml.txts   pdist-jaccard-ml.txts   pdist-jensenshannon-ml-iris.txts   pdist-jensenshannon-ml.txts   pdist-minkowski-3.2-ml-iris.txts   pdist-minkowski-3.2-ml.txts   pdist-minkowski-5.8-ml-iris.txts   pdist-seuclidean-ml-iris.txts   pdist-seuclidean-ml.txts   pdist-spearman-ml.txts   random-bool-data.txts   random-double-data.txts   random-int-data.txts   random-uint-data.txti  im  i   i  i  i'  i  i  i  i  i4  i   i   ie  i  t   dtypet   doublec          C` s   xy t  D]q }  |  j d d  j d d  } t j j t j j t  d |   } t |  } t j	 |  t
 | <| j   q Wt j t
 d  t
 d <t j t
 d  t
 d <t j t
 d  t
 d <t j t
 d	  t
 d	 <t j t
 d
  t
 d
 <d  S(   Ns   .txtt    s   -mlt   datas   pdist-boolean-inps   random-bool-datas   random-double-datas   random-float32-datas   random-int-datas   random-uint-data(   t
   _filenamest   replacet   ost   patht   joint   dirnamet   __file__t   opent   npt   loadtxtt   eot   closet   bool_t   float32t   int_t   uint(   t   fnt   namet   fqfnt   fp(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   load_testing_filesq   s    $c         ` s   g    D] } t  j |  ^ q   | d  k rn g    D]* } | j d k rY t  j |  n | ^ q5   d } n  t d     D    | d k  r t   f d     D  s t d   n  t   d j  | } n    | f S(   Ni   i    c         s` s   |  ] } t  j |  Vq d  S(   N(   R<   t
   atleast_1d(   t   .0t   a(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pys	   <genexpr>   s    c         3` s%   |  ] } | j    d  j  k Vq d S(   i    N(   t   ndim(   RJ   RK   (   t   arrays(    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pys	   <genexpr>   s    s(   array ndim must be the same for neg axis(	   R<   t
   asanyarrayt   NoneRL   t   ravelt   tuplet   allt
   ValueErrort   range(   RM   t   axisRK   (    (   RM   s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   _chk_asarrays   s    "4	c
         ` s+  t  |  d   }
 |
 d  |
 d }    | o1 | } | rZ | rZ t d   |  D  } n  | r g  |  D] } t j t j |   ^ qg } t |  r t } t } t d   t |  |  D  }  q n   d  k	 r t j	    n1 | r	t j
 |  d j     n |     f S|	 r,t    n  | rGt |       n  t    f d   |  D  sut d   n  | r d k  j   rt d   n  | rt j  d k  d   j  j k  rt    f d	   |  D  }     qn  | r d
 k j   rd   n  |     f S(   NRU   ic         s` s-   |  ]# } t  j j |  t  j j k	 Vq d  S(   N(   R<   t   mat   getmaskt   nomask(   RJ   RK   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pys	   <genexpr>   s    c         s` s3   |  ]) \ } } | r' t  j j |  n | Vq d  S(   N(   R<   RW   t   masked_invalid(   RJ   RK   t   has_nan(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pys	   <genexpr>   s   i    c         3` s(   |  ] }  j  | j    f k Vq d  S(   N(   t   shape(   RJ   RK   (   RU   t   weights(    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pys	   <genexpr>   s    s*   weights shape must match arrays along axiss   weights cannot be negativec         3` s'   |  ] } t  j |  d    Vq d S(   RU   N(   R<   t   take(   RJ   RK   (   RU   t   pos_weights(    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pys	   <genexpr>   s    i   (   RV   t   anyR<   t   isnant   sumt   TrueRQ   t   zipRO   RN   t   onesR\   t   _freq_weightst   _weight_maskedRR   RS   t   nonzerot   size(   RM   R]   RU   t   force_weightst   simplify_weightst   pos_onlyt	   neg_checkt
   nan_screent   mask_screent   ddoft   chkedRK   t   has_nans(    (   RU   R_   R]   s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   _chk_weights   sB    +		c         C` sH   |  d  k r |  S|  j t  } |  | k j   rD t d |    n  | S(   Ns2   frequency (integer count-type) weights required %s(   RO   t   astypet   intR`   RS   (   R]   t   int_weights(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyRf      s    c         ` s     d  k r d   n  t j |  } x |  D] } t j j |  } | t j j k r[ q+ n  | j d k r t   f d   t | j  D  } | j	 d |  } n  | d | j
 t  9} q+ W| S(   Ni    i   c         3` s!   |  ] } |   k r | Vq d  S(   N(    (   RJ   t   i(   RU   (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pys	   <genexpr>   s    RU   (   RO   R<   RN   RW   RX   RY   RL   RQ   RT   R`   Rt   Ru   (   RM   R]   RU   RK   t	   axis_maskt   not_axes(    (   RU   s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyRg      s    	%c         C` s   t  j |  |  j   | k  S(   N(   R<   t   abst   max(   RK   t   bt   tol(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt
   within_tol   s    c         C` sC   | r& t  t j |  |  j    n  t |  | d | d | d  S(   Nt   rtolt   atol(   t   printR<   Rz   R{   R   (   RK   R|   R   R   t   verbose_(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   _assert_within_tol   s     c      
   ` s%  t  j | d t  j } t  j j |  } d   } |  d j    t    f d   |  D  so t d   x t t	 |    D] } | j
  |  } | | }	 | j   }
 |
 |	 | | <t  j | d |
 |	  } g  |  D]- } t  j | | | | d   d   ^ q }  q W|  | f S(   NR0   c         S` sc   t  j t  j |  | d |  } | j g  t |  j  D]% } | | k rV |  j | n d ^ q7  S(   NRU   i   (   R<   RN   R^   t   reshapeRT   RL   R\   (   RK   t   ixRU   t   recordRw   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   mytake   s    !	i    c         3` s"   |  ] } | j     k Vq d  S(   N(   R\   (   RJ   RK   (   RU   t   n_obs(    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pys	   <genexpr>   s    s#   data must be aligned on sample axisg      ?RU   (   R<   t   arrayt   float64t   randomt   RandomStateR\   RR   t   AssertionErrorRT   Ru   t   randintt   randt   append(   RM   R]   RU   t	   split_pert   seedt   seeded_randR   Rw   t   split_ixt   prev_wt   qRK   (    (   RU   R   s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   _rand_split   s    	+
;R   gh㈵>c         C` s   |  S(   N(    (   t   x(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   <lambda>   s    c   	      C` s   | |   } | |  } y/ t  j | | k  j   rF | | |  n  Wng t k
 rg | | |  nJ t t f k
 r x4 t | |  D] \ } } t | | d | q Wn Xd  S(   Nt   compare_assert(   R<   R   R`   t   AttributeErrort	   TypeErrorRS   Rd   t   _rough_check(	   RK   R|   R   t   keyt   wt   check_at   check_bt   a_it   b_i(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR      s    i   c         C` s   |  S(   N(    (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR   
  s    R   g      ?c         ` sO   t              	 
       f d    } | S(   s   runs fn on its arguments 2 or 3 ways, checks that the results are the same,
       then returns the same thing it would have returned beforec       
   ` s   |  |   } |    } |   } | j   d   } | j  d   } t | d | d | d t d t } | d  | d | d } } }  r g  | D] } t j | j    ^ q } n  yt |  | }  
 r | |  <t |  |  |   d  n    r| d |  <t |  |  |   d  | d	 |  <y  t |  |  |   d  Wqt	 k
 r}	 t
 |	  |	 | | f   qXn   rt | | | d
  d  \ }
 } | | | j *d | | j )t |
  | } | |  <t |  | |   d  xX |
 D]P } t d   g | j } t | j d   | | <t |  } | | d | | <qWt |
  | } t |  | |   d  x[ |
 D]S } t d   g | j } t | j d   | | <t |  } | | t j | | <qW| j  d d   d k r<	 r<t |
  | } t |  | |   d  n   rg  |
 D] } t j j |  ^ qI}
 t |
  | } t |  | |   d   rd  |  <t |  | |   d  qn  ~
 ~ ~ n   rZg  | D] } t j | | d | ^ q} t j | |  d } t |  | } | |  <t |  | |   d  ~ ~ ~ n   r d k rt | | | d
  d  \ } } t |  | } | |  <t |  | |   d  n  Wn6 t k
 r}	  st j d  j |	 f  qn X| S(   NRU   R]   Rj   Ro   iiR   g     @Y@gB`"۹?R   R   i    ie   t
   nan_policyt   omitg       @s   %s NotImplemented weights: %s(   t   getRO   Rs   Rc   R<   RI   t   squeezeRQ   R   t	   Exceptiont   typeR   Ri   t   sliceRL   t   nanRW   RZ   R   t   NotImplementedErrort   warningst   warnt   __name__(   t   argst   kwargst   resultRM   t   restR]   RU   Rq   RK   t   et
   dud_arrayst   dud_weightst   dud_argst   indexert
   dup_arrayst   dup_weightst   dup_argst   split_arrayst   split_weightst
   split_args(   t
   const_testt   default_axist   dud_testt   dup_testRD   R   t   ma_safet   ma_very_safet   n_argst   nan_safet	   ones_testR   t   silentR   t
   split_testR   t
   weight_arg(    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   wrapped  s    

$ +
 "$
%
"+
$
#!(   R   (   RD   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (   R   R   R   R   RD   R   R   R   R   R   R   R   R   R   R   R   R   s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   _weight_checked
  s    KVR   i   R   R   R   R   t	   TestCdistc           B` s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	 d
  Z d   Z d   Z d   Z d   Z RS(   c         C` s}   d d d d d g |  _  i t j t j t j t j g d 6t j t j t j g d 6t j t j g d 6t j g d	 6|  _ d  S(
   Ns   random-float32-datas   random-int-datas   random-uint-datas   random-double-datas   random-bool-datat   boolRC   Ru   RA   (   t   rnd_eo_namesR<   RC   RB   RA   R1   t   valid_upcasts(   t   self(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   setup_method  s    "c         C` s  d d d  } d d d g d d d	 g d
 d d g g } d d d g d d d g d d d g g } i d d 6t  j d  d 6} d g d } t   } | j t  x t D] } t t t | | d | | t t t | | d t	 |  | t t t | | d d | | t t t | | d | | t t t | | d t	 |  | t t t | | d d | | q Wt t t | | |  t t t | | | |  t t t | | | |  t t t | | | d d
 d d t t t | | | d d d d
 t t t | | | d d
 d  t t t | | | d d
  t t t | | | d  t t t | | | d d d
 d d t
 t | | d | d d d d d  Wd  QXd  S(    Ni   i   c         S` s   | | | S(   N(    (   R   t   yt   argt   kwargt   kwarg2(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt
   _my_metric  s    g      ?g       @g      @g333333?gffffff@g333333@g@g@g      @g      @g       @g      @g333333@g @g      @gQ	@t   N0tV4l1D_p4raMi   R   i   t   metrict   test_R   R   gffffff
@g?R   g@(   R<   t   arangeR   t   filtert   DeprecationWarningR   t   assert_raisesR   R   t   evalR   (   R   R   t   X1t   X2R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_cdist_extra_args  sB    **

"c         C` sg   d } t  d } t  d } t | | t d   } t | | t d   } t | | | t d k  d  S(   NgHz>s   cdist-X1s   cdist-X2R    t   test_euclideani   (   R>   t   wcdist_no_constR   R   R   (   R   t   epsR   R   t   Y1t   Y2(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_cdist_euclidean_random_unicode  s    

c         C` sg   d } t  d } t  d } t | | d d d } t | | d d d } t | | | t d k  d  S(	   NgHz>s   cdist-X1s   cdist-X2R'   t   pgffffff@t   test_minkowskii   (   R>   R   R   R   (   R   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_cdist_minkowski_random_p3d8  s    

c         C` sg   d } t  d } t  d } t | | d d d } t | | d d d } t | | | t d k  d  S(	   NgHz>s   cdist-X1s   cdist-X2R'   R   gffffff@R   i   (   R>   R   R   R   (   R   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_cdist_minkowski_random_p4d6  s    

c         C` sg   d } t  d } t  d } t | | d d d } t | | d d d } t | | | t d k  d  S(	   NgHz>s   cdist-X1s   cdist-X2R'   R   gGz?R   i   (   R>   R   R   R   (   R   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt!   test_cdist_minkowski_random_p1d23  s    

c         C` s   d } t  d } t  d } t | | d  } d   } d t j | | |  | | |  j  } t | | | t d k  d  S(   NgHz>s   cdist-X1s   cdist-X2R   c         S` s"   t  j j |  d d j d d  S(   NRU   i   i(   R<   t   linalgR   R   (   t   X(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   norms  s    i   i   (   R>   t   wcdistR<   t   dott   TR   R   (   R   R   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_cdist_cosine_random  s    

	-c         C` sL  t  j d g d g g  } t  j d g d g g  } t | | d d } t | d t  j d  g t  j d  t  j d  g g  t  j d	 d	 g d
 d	 g g  } t  j d	 d g d d	 g d	 d g g  } t | | d d } t  j d  } t | | | | g d d | d g g  t t t d	 d g g d d g g d d d  S(   Ni   i   i   R   R%   g        g      @g      ?i    ii   i(   R<   R   R   R   t   sqrtR   RS   (   R   t   x1t   x2t   distt   rt2(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_cdist_mahalanobis  s    :!*)c         ` s{   d t  f d     Y    f d   } t j     g g d t  } t | | d | } d } t | | d t d k d  S(	   Nt   myclassc           B` s   e  Z RS(    (   R   t
   __module__(    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR     s   c         ` s;   t  |  d    s( t  | d    r7 t d   n  d S(   Ni    s   Type has been changedg+?(   t
   isinstanceRS   (   R   R   (   R   (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR     s    (R0   R   g+?R   i   (   t   objectR<   R   R   R   R   (   R   R   R3   t   cdist_yt   right_y(    (   R   s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_cdist_custom_notdouble  s    gHz>c         K` s;  yV t  | | d | | } t  | | d t |  | } t  | | d d | | } Wn t k
 r }	 |	 j }
 t d k r t |
 j  t |	  n  t |
 t  | | d | | t |
 t  | | d t |  | t |
 t  | | d d | | n? Xt | | d | d t d k t | | d | d t d k d  S(   NR   R   i   R   R   (	   R   R   R   t	   __class__R   R   R   R   R   (   R   R   R   R   R   R   t   y1t   y2t   y3R   t   e_cls(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   _check_calling_conventions  s     	"$c         C` s  x|  j  D]} t | d  d  d  d  d  d  f } t | d d  d  d  d  d  f } xqt D]i} t d k r t d | d |  n  | d k r qc n  | d d	 d
 d d d d d h k r d | k r qc n  |  j | | |  | d k rJt j | | g  j t j	  } t j
 | d d d d } |  j | | | d | qc | d k rc t j | | g  j t j	  } t j t j | j   } t j t j j |  j  } |  j | | | d | qc qc Wq
 Wd  S(   Ni   ii   i   s	   testing: s    with: R/   R   R.   R$   R&   R(   R)   R+   R,   R   R*   RU   i    Rp   t   VR%   t   VI(   R   R>   R   R   R   R  R<   t   vstackRt   R1   t   vart
   atleast_2dt   covR   R   R   t   inv(   R   t   eo_nameR   R   R   t   X12R  R	  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_cdist_calling_conventions  s,    &&	!!c      
   C` s  d } t  d |  j d f t  d |  j d f t  d |  j d f t  d |  j d	 f g } x^t D]V} xM| D]E} | d
 d  d  d  d  d  d  f } | d
 d d  d  d  d  d  f } y t | | d | } Wn t k
 re} | j }	 t d k rt |	 j  t |  n  x | d D]7 }
 |
 |  } |
 |  } t	 |	 t | | d | q'Wqp XxL | d D]@ }
 t |
 |  |
 |  d | } t
 | | | t d k  qqWqp Wqc Wd  S(   NgHz>s   random-bool-dataR   s   random-uint-dataRC   s   random-int-dataRu   s   random-float32-dataRA   i    i   ii   i   R   (   R>   R   R   R   R   R  R   R   R   R   R   (   R   R   t   testsR   t   testR   R   R  R   R  t   new_typet   X1newt   X2newR  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_cdist_dtype_equivalence6  s.    &&	!!c      
   C` s2  d } t  d } t  d } | j d | j d } } xt D]} t   } | d k rd d | d <n  | d k r d	 | j d
 d  | d <n  t j | | f d t j } t | | | |  }	 t | | | d | | }
 t	 |	 |
 | t
 d k  t |
 | k  t j | d | d f d t j } t t t | | | d | | t j d | d | f d t j d  d  d  d  d  d  f } t j | | f d t j d d } t t t | | | d | | t t t | | | d | | t j | | f d t j } t t t | | | d | | q< Wd  S(   NgHz>s   cdist-X1s   cdist-X2i    R'   R/   gGz?R   g      ?RU   R   R0   t   outi   i   t   ordert   F(   R'   R/   (   R>   R\   R   t   dictt   stdR<   t   emptyR1   R   R   R   R	   R   RS   t   int64(   R   R   R   R   t   out_rt   out_cR   R   t   out1R   R   t   out2t   out3t   out4t   out5(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_cdist_outQ  s.    

	&B$c   
      C` si  d } t  d d  d  d  d  d  d  f } t  d d  d  d  d  d  d  f } | j   } | j   } t | |  t | |  t | j j  t | j j  t | j j  t | j j  x t D] } t   } | d k rd | d <| d k rd	 | j d
 d  | d <qn  t	 | | | |  } t	 | | | |  }	 t
 | |	 | t d k  q Wd  S(   NgHz>s   cdist-X1i   s   cdist-X2R'   R/   gGz?R   g      ?RU   i    R   (   R'   R/   (   R>   t   copyR   R	   t   flagst   c_contiguousR   R  R  R   R   R   (
   R   R   R   R   t   X1_copyt   X2_copyR   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_stridingp  s(    &&	
 (   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R&  R,  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR     s   			*								 		t	   TestPdistc           B` s+  e  Z d    Z d   Z d   Z d   Z d   Z d   Z e j	 j
 d    Z e j	 j
 d    Z e j	 j
 d    Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e j	 j
 d    Z e j	 j
 d    Z e j	 j
 d    Z d   Z d   Z d   Z d   Z e j	 j
 d    Z e j	 j
 d    Z e j	 j
 d    Z  d   Z! d   Z" d   Z# e j	 j
 d    Z$ e j	 j
 d     Z% e j	 j
 d!    Z& d"   Z' d#   Z( d$   Z) e j	 j
 d%    Z* e j	 j
 d&    Z+ e j	 j
 d'    Z, e j	 j
 d(    Z- e j	 j
 d)    Z. e j	 j
 d*    Z/ d+   Z0 d,   Z1 d-   Z2 d.   Z3 d/   Z4 d0   Z5 d1   Z6 d2   Z7 d3   Z8 d4   Z9 d5   Z: d6   Z; d7   Z< d8   Z= d9   Z> d:   Z? d;   Z@ d<   ZA d=   ZB d>   ZC d?   ZD d@   ZE dA   ZF dB   ZG dC   ZH dD   ZI dE   ZJ dF   ZK dG   ZL dH   ZM dI   ZN dJ   ZO dK   ZP dL   ZQ dM   ZR dN   ZS dO   ZT dP   ZU dQ   ZV dR   ZW dS   ZX e j	 j
 dT    ZY dU   ZZ dV   Z[ dW dX  Z\ dY   Z] dZ   Z^ d[   Z_ d\   Z` RS(]   c         C` s}   d d d d d g |  _  i t j t j t j t j g d 6t j t j t j g d 6t j t j g d 6t j g d	 6|  _ d  S(
   Ns   random-float32-datas   random-int-datas   random-uint-datas   random-double-datas   random-bool-dataR   RC   Ru   RA   (   R   R<   RC   RB   RA   R1   R   (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR     s    "c         C` sG  d d d  } d d g d d g d d g g } i d	 d
 6t  j d  d 6} d	 g d } t   } | j t  x t D] } t t t | d | | t t t | d t	 |  | t t t | d d | | t t t | d | | t t t | d t	 |  | t t t | d d | | qz Wt t t | |  t t t | | |  t t t | | |  t t t | | d d d d t t t | | d d d d t t t | | d d d  t t t | | d d  t t t | | d  t t t | | d d d d d t
 t | d | d d d d d  Wd  QXd  S(   Ni   i   c         S` s   | | | S(   N(    (   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR     s    g      ?g       @g333333?gffffff@g@gQ	@R   R   i   R   R   R   R   gffffff
@g?R   g@(   R<   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_extra_args  s:    !c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-euclideanR    (   R>   t   wpdist_no_constR   (   R   R   R   t   Y_rightt   Y_test1(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_euclidean_random  s
    

c         C` sC   d } t  d } t  d } t | t d   } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-euclideanR    (   R>   R/  R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_euclidean_random_u  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-euclideanR    (   R<   RA   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_pdist_euclidean_random_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-euclideanR   (   R>   R/  R   (   R   R   R   R0  t   Y_test2(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_euclidean_random_nonC  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>t   iriss   pdist-euclidean-irisR    (   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_euclidean_iris_double  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   Ngư>R7  s   pdist-euclidean-irisR    i   (   R<   RA   R>   R/  R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt!   test_pdist_euclidean_iris_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>R7  s   pdist-euclidean-irisR   (   R>   R/  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_euclidean_iris_nonC  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngh㈵>s   pdist-double-inps   pdist-seuclideanR*   (   R>   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_seuclidean_random  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ngh㈵>s   pdist-double-inps   pdist-seuclideanR*   (   R<   RA   R>   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt$   test_pdist_seuclidean_random_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngh㈵>s   pdist-double-inps   pdist-seuclideant   test_seuclidean(   R>   R   R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt!   test_pdist_seuclidean_random_nonC  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngh㈵>R7  s   pdist-seuclidean-irisR*   (   R>   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_seuclidean_iris
  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ngh㈵>R7  s   pdist-seuclidean-irisR*   (   R<   RA   R>   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt"   test_pdist_seuclidean_iris_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngh㈵>R7  s   pdist-seuclidean-irisR=  (   R>   R   R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_seuclidean_iris_nonC  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-double-inps   pdist-cosineR   (   R>   t   wpdistR   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_random"  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-double-inps   pdist-cosineR   (   R<   RA   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_cosine_random_float32)  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-double-inps   pdist-cosinet   test_cosine(   R>   RB  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_random_nonC0  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>R7  s   pdist-cosine-irisR   (   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_iris8  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   NgHz>R7  s   pdist-cosine-irisR   i   (   R<   RA   R>   RB  R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_iris_float32@  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>R7  s   pdist-cosine-irisRE  (   R>   RB  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_iris_nonCH  s
    

c         C` s`   t  j t  j j d  j d   } t  j | | g  } t t | d  d d k d d d  S(   Ni9  i[   R   i    t   msgs&   cosine distance should be non-negative(   R<   Rz   R   R   R   R
  R	   RB  (   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_boundsP  s    $c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngư>s   pdist-double-inps   pdist-cityblockR   (   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cityblock_randomY  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ngư>s   pdist-double-inps   pdist-cityblockR   (   R<   RA   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_pdist_cityblock_random_float32`  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngư>s   pdist-double-inps   pdist-cityblockt   test_cityblock(   R>   R/  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_cityblock_random_nonCg  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng+=R7  s   pdist-cityblock-irisR   (   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cityblock_irisn  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   Ngư>R7  s   pdist-cityblock-irisR   i   (   R<   RA   R>   R/  R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt!   test_pdist_cityblock_iris_float32v  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng+=R7  s   pdist-cityblock-irisRN  (   R>   R/  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_cityblock_iris_nonC~  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-correlationR   (   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_correlation_random  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-correlationR   (   R<   RA   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt%   test_pdist_correlation_random_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-correlationt   test_correlation(   R>   RB  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt"   test_pdist_correlation_random_nonC  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>R7  s   pdist-correlation-irisR   (   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_correlation_iris  s
    

c         C` sO   d } t  d } t j t  d  } t | d  } t | | | t d k  d  S(   NgHz>R7  s   pdist-correlation-irisR   i   (   R>   R<   RA   RB  R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_pdist_correlation_iris_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>R7  s   pdist-correlation-irisRU  (   R>   RB  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_correlation_iris_nonC  s
    

c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   Ngh㈵>s   pdist-double-inps   pdist-minkowski-3.2R'   R   g	@(   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_minkowski_random  s
    

c         C` sL   d } t  j t d  } t d } t | d d d } t | | |  d  S(   Ngh㈵>s   pdist-double-inps   pdist-minkowski-3.2R'   R   g	@(   R<   RA   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_pdist_minkowski_random_float32  s
    
c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   Ngh㈵>s   pdist-double-inps   pdist-minkowski-3.2R   R   g	@(   R>   R/  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_minkowski_random_nonC  s
    

c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   NgHz>R7  s   pdist-minkowski-3.2-irisR'   R   g	@(   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_minkowski_3_2_iris  s
    

c         C` sL   d } t  j t d  } t d } t | d d d } t | | |  d  S(   Ngư>R7  s   pdist-minkowski-3.2-irisR'   R   g	@(   R<   RA   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt%   test_pdist_minkowski_3_2_iris_float32  s
    
c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   NgHz>R7  s   pdist-minkowski-3.2-irisR   R   g	@(   R>   R/  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt"   test_pdist_minkowski_3_2_iris_nonC  s
    

c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   NgHz>R7  s   pdist-minkowski-5.8-irisR'   R   g333333@(   R>   R/  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_minkowski_5_8_iris  s
    

c         C` sU   d } t  j t d  } t d } t | d d d } t | | | t d k  d  S(   Ngư>R7  s   pdist-minkowski-5.8-irisR'   R   g333333@i   (   R<   RA   R>   R/  R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt%   test_pdist_minkowski_5_8_iris_float32  s
    
c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   NgHz>R7  s   pdist-minkowski-5.8-irisR   R   g333333@(   R>   R/  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt"   test_pdist_minkowski_5_8_iris_nonC  s
    

c         C` sA  t  j d d d d g  j d d  } t | d d } t | d t  j d	  t  j d
  t  j d	  t  j d
  t  j d  g  t  j d d g d d g d d g d d g d d g g  } t | d d } t  j d  } t | | | | | d d | d d d | d g
  t t t d d g d d g g d d d  S(   Ng       @g      @g      @ii   R   R%   g        g      ?g      @i    i   ii   (	   R<   R   R   R   R   R   R   RS   RB  (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_mahalanobis  s    '!+<3c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>s   pdist-boolean-inps   pdist-hammingR!   (   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_hamming_random  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   NgHz>s   pdist-boolean-inps   pdist-hammingR!   (   R<   RA   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt!   test_pdist_hamming_random_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>s   pdist-boolean-inps   pdist-hammingt   test_hamming(   R>   RB  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_hamming_random_nonC  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   NgHz>s   pdist-boolean-inps   pdist-hammingR!   (   R<   R   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_dhamming_random   s
    
c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   NgHz>s   pdist-boolean-inps   pdist-hammingR!   (   R<   RA   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt"   test_pdist_dhamming_random_float32'  s
    
c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   NgHz>s   pdist-boolean-inps   pdist-hammingRf  (   R<   R   R>   RB  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_dhamming_random_nonC.  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-boolean-inps   pdist-jaccardR"   (   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_jaccard_random5  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-boolean-inps   pdist-jaccardR"   (   R<   RA   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt!   test_pdist_jaccard_random_float32<  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-boolean-inps   pdist-jaccardt   test_jaccard(   R>   RB  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_jaccard_random_nonCC  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-boolean-inps   pdist-jaccardR"   (   R<   R   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_djaccard_randomJ  s
    
c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-boolean-inps   pdist-jaccardR"   (   R<   RA   R>   RB  R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt"   test_pdist_djaccard_random_float32Q  s
    
c         C` s;   d } t  t j d  d  } t t j d  | |  d  S(   Ng:0yE>i   i   R"   i
   (   i   i   (   R   R<   t   zerosR   (   R   R   t   Y(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_djaccard_allzerosX  s    c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-boolean-inps   pdist-jaccardRm  (   R<   R   R>   RB  R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_djaccard_random_nonC]  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-double-inps   pdist-jensenshannonR#   (   R>   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_jensenshannon_randomd  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   NgHz>s   pdist-double-inps   pdist-jensenshannonR#   i   (   R<   RA   R>   R   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt'   test_pdist_jensenshannon_random_float32k  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-double-inps   pdist-jensenshannont   test_jensenshannon(   R>   R   R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt$   test_pdist_jensenshannon_random_nonCr  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng-q=R7  s   pdist-jensenshannon-irisR#   (   R>   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_jensenshannon_irisy  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   Ngư>R7  s   pdist-jensenshannon-irisR#   i   (   R<   RA   R>   R   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt%   test_pdist_jensenshannon_iris_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngdy=R7  s   pdist-jensenshannon-irisRw  (   R>   R   R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt"   test_pdist_jensenshannon_iris_nonC  s
    

c         C` s;   d } t  t j d  d  } t t j d  | |  d  S(   Ng:0yE>i   i   Rm  i
   (   i   i   (   R   R<   Rq  R   (   R   R   Rr  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt!   test_pdist_djaccard_allzeros_nonC  s    c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-double-inps   pdist-chebyshevR   (   R>   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_chebyshev_random  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   NgHz>s   pdist-double-inps   pdist-chebyshevR   i   (   R<   RA   R>   R   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_pdist_chebyshev_random_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>s   pdist-double-inps   pdist-chebyshevt   test_chebyshev(   R>   R   R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_chebyshev_random_nonC  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgV瞯<R7  s   pdist-chebyshev-irisR   (   R>   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_chebyshev_iris  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   Ngư>R7  s   pdist-chebyshev-irisR   i   (   R<   RA   R>   R   R   R   (   R   R   R   R0  R1  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt!   test_pdist_chebyshev_iris_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgV瞯<R7  s   pdist-chebyshev-irisR  (   R>   R   R   (   R   R   R   R0  R5  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_chebyshev_iris_nonC  s
    

c         C` s   t  t j d d d d d g  t j d d d d d g   } t  t j d d d d d g d t t j d d d d d g d t  } t | d d d d d t | d d d d d d  S(   Ni   i    R0   g333333?R   R   g|=(   t	   wmatchingR<   R   R   R   (   R   t   mt   m2(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_matching_mtica1  s    !$'c         C` s   t  t j d d d g  t j d d d g   } t  t j d d d g d t t j d d d g d t  } t | d	 d d d d t | d
 d d d d d  S(   Ni   i    R0   i   i   R   R   g|=gUUUUUU?gUUUUUU?(   R  R<   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_matching_mtica2  s    !c         C` s   t  t j d d d d d g  t j d d d d d g   } t  t j d d d d d g d t t j d d d d d g d t  } t | d d d d d t | d d d d d d  S(   Ni   i    R0   g333333?R   R   g|=(   t   wjaccardR<   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_jaccard_mtica1  s    !$'c         C` s   t  t j d d d g  t j d d d g   } t  t j d d d g d t t j d d d g d t  } t | d	 d d d d t | d
 d d d d d  S(   Ni   i    R0   i   i   R   R   g|=gUUUUUU?gUUUUUU?(   R  R<   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_jaccard_mtica2  s    !c         C` s   t  t j d d d d d g  t j d d d d d g   } t  t j d d d d d g d t t j d d d d d g d t  } t d k r t |  n  t | d d d d d t | d d d d d d  S(   Ni   i    R0   i   R   R   g|=(   t   wyuleR<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_yule_mtica1  s    !$'c         C` s   t  t j d d d g  t j d d d g   } t  t j d d d g d t t j d d d g d t  } t d k r t |  n  t | d d d d d t | d d d d d d  S(   Ni   i    R0   i   R   R   g|=(   R  R<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_yule_mtica2  s    !c         C` s   t  t j d d d d d g  t j d d d d d g   } t  t j d d d d d g d t t j d d d d d g d t  } t d k r t |  n  t | d
 d d d d	 t | d d d d d	 d  S(   Ni   i    R0   i   i   i   R   R   g|=g۶m۶m?g۶m۶m?(   t   wdiceR<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_dice_mtica1  s    !$'c         C` s   t  t j d d d g  t j d d d g   } t  t j d d d g d t t j d d d g d t  } t d k r t |  n  t | d d d d d t | d d d d d d  S(	   Ni   i    R0   i   g      ?R   R   g|=(   R  R<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_dice_mtica2  s    !c         C` s   t  t j d d d d d g  t j d d d d d g   } t  t j d d d d d g d t t j d d d d d g d t  } t d k r t |  n  t | d
 d d d d	 t | d d d d d	 d  S(   Ni   i    R0   i   i   i   R   R   g|=g      ?g      ?(   R,   R<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_sokalsneath_mtica1  s    !$'c         C` s   t  t j d d d g  t j d d d g   } t  t j d d d g d t t j d d d g d t  } t d k r t |  n  t | d
 d d d d	 t | d d d d d	 d  S(   Ni   i    R0   i   i   i   R   R   g|=g?g?(   t   wsokalsneathR<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_sokalsneath_mtica2  s    !c         C` s   t  t j d d d d d g  t j d d d d d g   } t  t j d d d d d g d t t j d d d d d g d t  } t d k r t |  n  t | d
 d d d d	 t | d d d d d	 d  S(   Ni   i    R0   i   i   i   R   R   g|=g      ?g      ?(   t   wrogerstanimotoR<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_rogerstanimoto_mtica1  s    !$'c         C` s   t  t j d d d g  t j d d d g   } t  t j d d d g d t t j d d d g d t  } t d k r t |  n  t | d
 d d d d	 t | d d d d d	 d  S(   Ni   i    R0   i   i   i   R   R   g|=g?g?(   R  R<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt    test_pdist_rogerstanimoto_mtica2%  s    !c         C` s   t  t j d d d d d g  t j d d d d d g   } t  t j d d d d d g d t t j d d d d d g d t  } t d k r t |  n  t | d
 d d d d	 t | d d d d d	 d  S(   Ni   i    R0   i   i   i   R   R   g|=g333333?g333333?(   t   wrussellraoR<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_russellrao_mtica1/  s    !$'c         C` s   t  t j d d d g  t j d d d g   } t  t j d d d g d t t j d d d g d t  } t d k r t |  n  t | d	 d d d d t | d
 d d d d d  S(   Ni   i    R0   i   i   R   R   g|=gUUUUUU?gUUUUUU?(   R  R<   R   R   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_russellrao_mtica29  s    !c         C` sm   t  d } t d k r, t | j | j  n  d } t | d  } t | d  } t | | | t d k  d  S(   NR7  i   g|=R   t   test_canberra(   R>   R   R   R\   R0   R/  R   (   R   t   DR   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_canberra_matchC  s    
c         C` sD   d } t  d g d g f d  } d } t | | | t d k  d  S(   Ng:0yE>gffffff
@g333333@R   gd>@1?i   (   R/  R   R   (   R   R   t   pdist_yR   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_canberra_ticket_711M  s    c         ` s   d t  f d     Y    f d   } t j     g     g g d t  } t | d | } d } t | | d t d k d  S(	   NR   c           B` s   e  Z RS(    (   R   R   (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR   W  s   c         ` s;   t  |  d    s( t  | d    r7 t d   n  d S(   Ni    s   Type has been changedg+?(   R   RS   (   R   R   (   R   (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR   Z  s    (R0   R   g+?R   i   (   R   R<   R   R   R   R   (   R   R   R3   R  R   (    (   R   s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_custom_notdoubleU  s    'gHz>c   
      K` s)  yM t  | d | | } t  | d t |  | } t  | d d | | } Wn t k
 r } | j }	 t d k r t |	 j  t |  n  t |	 t  | d | | t |	 t  | d t |  | t |	 t  | d d | | n? Xt | | d | d t d k t | | d | d t d k d  S(   NR   R   i   R   R   (	   R   R   R   R  R   R   R   R   R   (
   R   R   R   R   R   R  R  R  R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  c  s    	!c         C` s  d } xx|  j  D]m} t | d  d  d  d  d  d  f } x>t D]6} | d k r[ qC n  t d k r} t d | d |  n  | d d d	 d
 d d d d h k r d | k r qC n  |  j | |  | d k rt j | j t j	  d d d d } |  j | | d | qC | d k rC t j
 t j | j t j	  j   } t j t j j |  j  } |  j | | d | qC qC Wq Wd  S(   NgHz>i   i   R/   s	   testing: s    with: R   R.   R$   R&   R(   R)   R+   R,   R   R*   RU   i    Rp   i   R  R%   R	  (   R   R>   R   R   R   R  R<   R  Rt   R1   R  R  R   R   R   R  (   R   R   R  R   R   R  R	  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_calling_conventionsu  s(    &	''c      	   C` s  d } t  d |  j d f t  d |  j d f t  d |  j d f t  d |  j d	 f g } xt D]} x| D]} | d
 d  d  d  d  d  d  f } y t | d | } Wny t k
 r-} | j } t d k r t | j  t |  n  x~ | d D]( }	 |	 |  }
 t	 | t |
 d | q Wqp XxC | d D]7 }	 t |	 |  d | } t
 | | | t d k  q9Wqp Wqc Wd  S(   NgHz>s   random-bool-dataR   s   random-uint-dataRC   s   random-int-dataRu   s   random-float32-dataRA   i    i   i   R   i   (   R>   R   R   R   R   R  R   R   R   R   R   (   R   R   R  R   R  R   R  R   R  R  R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_dtype_equivalence  s*    &	c      	   C` s  d } t  d d  d  d  d  d  d  f } t | j d | j d d d  } xlt D]d} t   } | d k r d	 | d
 <n  | d k r d | j d d  | d <n  t j | d t j } t	 | | |  } t	 | | d | | } t
 | | |  t | | k  t j | d d t j }	 t t t	 | | d |	 | t j d | d t j d  d  d  }
 t t t	 | | d |
 | t j | d t j } t t t	 | | d | | qY Wd  S(   NgHz>s   random-float32-datai   i   i    i   R'   R/   gGz?R   g      ?RU   R   R0   R  i   (   R'   R/   (   R>   Ru   R\   R   R  R  R<   R  R1   R   R   R	   R   RS   R  (   R   R   R   t   out_sizeR   R   R!  R0  R1  R"  R#  R%  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_pdist_out  s(    &&	)c         C` s   d } t  d d  d  d  d  d  d  f } | j   } t | j j  t | j j  x t D] } t   } | d k r d | d <n  | d k r d	 | j d
 d  | d <n  t | | |  } t | | |  } t	 | | | t
 d k  q` Wd  S(   NgHz>s   random-float32-datai   i   R'   R/   gGz?R   g      ?RU   i    R   (   R'   R/   (   R>   R'  R	   R(  R)  R   R  R  R   R   R   (   R   R   R   t   X_copyR   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR,    s    &	(a   R   R   R   R.  R2  R3  R4  R6  t   pytestt   markt   slowR8  R9  R:  R;  R<  R>  R?  R@  RA  RC  RD  RF  RG  RH  RI  RK  RL  RM  RO  RP  RQ  RR  RS  RT  RV  RW  RX  RY  RZ  R[  R\  R]  R^  R_  R`  Ra  Rb  Rc  Rd  Re  Rg  Rh  Ri  Rj  Rk  Rl  Rn  Ro  Rp  Rs  Rt  Ru  Rv  Rx  Ry  Rz  R{  R|  R}  R~  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R,  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR-    s   			&				
															
																																								
	
	
	
	
	
	
	
	
	

					t   TestSomeDistanceFunctionsc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` s   t  j d d d g  } t  j d d d g  } | d  d   t  j f } | d  d   t  j f } | j } | j } | | f | | f | | f g |  _ d  S(   Ng      ?g       @g      @g      @(   R<   R   t   newaxisR   t   cases(   R   R   R   t   x31t   y31t   x13t   y13(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR     s    		c      
   C` s   t     } | j d d  xx |  j D]m \ } } t | | d d } t | d  t | | d d } t | d d d  t | | d d
 } q& WWd  QXd  S(   Nt   messages   `wminkowski` is deprecatedR   i   g      @g      ?g      ?g       @i   i   g;f@gUUUUUU?(   R   R   R  R/   R   (   R   R   R   R   t   dist1t   dist1p5t   dist2(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR     s    c   	      C` sJ  t    ;} | j d d  t j d d d g  } x |  j D] \ } } t | | d d d | } t | d	  t | | d d
 d | } t | d d  t | | d d d | } t | t j d   q> Wt j d  } t j	 | d  } t t | | d d d d | d  t t
 | | d d d d | d  Wd  QXd  S(   NR  s   `wminkowski` is deprecatedg      ?g       @g      ?R   i   R   g      @g      ?i   i   i   i   g       @g      @g;f@g;f@gUUUUUU?(   R   R   R<   R   R  t   old_wminkowskiR   R   R   t	   full_likeR/   (	   R   t   wrnR   R   R   R  R  R  t   arr(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_old_wminkowski  s    &c         C` sC   x< |  j  D]1 \ } } t | |  } t | t j d   q
 Wd  S(   Ni   (   R  t
   weuclideanR   R<   R   (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR   
  s    c         C` s:   x3 |  j  D]( \ } } t | |  } t | d  q
 Wd  S(   Ng      @(   R  t   wsqeuclideanR   (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_sqeuclidean  s    c         C` sX   xQ |  j  D]F \ } } t | |  } t | d d t j d  t j d   q
 Wd  S(   Ng      ?g      2@i   i   (   R  t   wcosineR   R<   R   (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyRE    s    c         C` s   t  j d d d g  } t  j d d	 d d
 g  } xW |  j D]L \ } } t | |  } t | d t  j | |  t |  t |   q> Wd  S(   Ng      i    g      ?g      i   g      @g      @gUUUUUUgUUUUUUg@(   R<   R   R  t   wcorrelationR   R   R   (   R   t   xmt   ymR   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyRU    s
    c         C` s   t  j d d d g  } t  j d d d g  } t  j d d d g d d d g d d d g g  } x? |  j D]4 \ } } t | | |  } t | t  j d   qm Wd  S(   Ng      ?g       @g      @g      @g        g      @(   R<   R   R  R%   R   R   (   R   R   R   t   viR   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_mahalanobis   s    3(
   R   R   R   R   R  R   R  RE  RU  R  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s   		
					t   TestSquareFormc           B` s_   e  Z e j e j e j e j e g Z d    Z	 d   Z
 d   Z d   Z d   Z d   Z RS(   c         C` s%   x |  j  D] } |  j |  q
 Wd  S(   N(   t   checked_dtypest   check_squareform_matrix(   R   R0   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_squareform_matrix,  s    c         C` s%   x |  j  D] } |  j |  q
 Wd  S(   N(   R  t   check_squareform_vector(   R   R0   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_squareform_vector0  s    c         C` s   t  j d d | } t |  } t | j d  t | j |  t  j d d | } t |  } t | j d  t | j |  t  j d d g d d g g d | } t |  } t | j d	  t | j |  t | t  j d g d |  d  S(
   Ni    R0   i   g@(   i    i    (   i    (   i   i   (   i    (   i   (   R<   Rq  R   R   R\   R0   R   R
   (   R   R0   t   At   rA(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  4  s    'c         C` s   t  j d d | } t |  } t | j d  t | j |  t | d g g  t  j d g d | } t |  } t | j d  t | j |  t | t  j d d g d d g g d |  d  S(	   Ni    R0   i   g @i   (   i    (   i   i   (   i   i   (   R<   Rq  R   R   R\   R0   R
   R   (   R   R0   t   vt   rv(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  E  s    c         C` s+   x$ t  d d  D] } |  j |  q Wd  S(   Ni   i   (   R   t   check_squareform_multi_matrix(   R   t   n(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_squareform_multi_matrixR  s    c   
      C` sS  t  j j | d  } t |  } t t | j  d  t |  } t |  } | j } d } t d k r t	 | j | j | j  n  t t |  d  t t | j  d  t | d | d  x t
 d | d  D]s } xj t
 | d | d  D]Q }	 | |	 k r0t | | |	 f | |  | d 7} q t | | |	 f d  q Wq Wd  S(   Ni   i   i    i   i   (   R<   R   R   R/  R   t   lenR\   R   R   R   R   (
   R   R  R   Rr  R  t   Yrt   st   kRw   t   j(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  V  s$    	(   R   R   R<   R   RA   t   int32t   int8R   R  R  R  R  R  R  R  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  )  s   !					t   TestNumObsYc           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` sR   xK t  d d  D]: } t j j | d  } t |  } t t |  |  q Wd  S(   Ni   i
   i   (   R   R<   R   R   R/  R   R   (   R   R  R   Rr  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_multi_matrixn  s    c         C` s   t  t |  j d  d  S(   Ni   (   R   RS   t   check_y(   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_1t  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R  (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_2y  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R  (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_3~  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R  (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_4  s    c         C` s+   x$ t  d d  D] } |  j |  q Wd  S(   Ni   i   (   R   t   minit(   R   Rw   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_5_10  s    c         C` s   t  g   } x0 t d d  D] } | j | | d d  q Wx9 t d d  D]( } | | k rO t t |  j |  qO qO Wd  S(   Ni   i   i   i   ii   (   t   setR   t   addR   RS   t   bad_y(   R   RK   R  Rw   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_2_100  s    c         C` s   t  |  j |   d  S(   N(   R	   R  (   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s    c         C` s   t  j j |  } t |  S(   N(   R<   R   R   R   (   R   R  R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s    c         C` s   t  |  j |   | k S(   N(   R   t   make_y(   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s    c         C` s   t  j j | | d d  S(   Ni   i   (   R<   R   R   (   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s    (   R   R   R  R  R  R  R  R  R  R  R  R  R  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  l  s   							
			t   TestNumObsDMc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` s   xy t  d d  D]h } t j j | d  } t |  } t |  } t d k re t | j | j  n  t	 t
 |  |  q Wd  S(   Ni   i
   i   i   (   R   R<   R   R   R/  R   R   R   R\   R   R   (   R   R  R   Rr  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_multi_matrix  s    c         C` s   t  |  j d   d  S(   Ni    (   R	   t   check_D(   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_0  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R  (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_1  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R  (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_2  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R  (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_3  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R  (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_4  s    c         C` s   t  |  j |   | k S(   N(   R   t   make_D(   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s    c         C` s   t  j j | |  S(   N(   R<   R   R   (   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s    (
   R   R   R  R  R  R  R  R  R  R  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s   								c         C` s   t  |  d t S(   Nt   throw(   R   Rc   (   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   is_valid_dm_throw  s    t   TestIsValidDMc           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 d   Z d   Z RS(   c         C` s,   t  j d d t  j } t t t |  d  S(   Ni   R0   (   i   (   R<   Rq  R1   R   RS   R  (   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt$   test_is_valid_dm_improper_shape_1D_E  s    c         C` s/   t  j d d t  j } t t |  t  d  S(   Ni   R0   (   i   (   R<   Rq  R1   R   R   t   False(   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt$   test_is_valid_dm_improper_shape_1D_F  s    c         C` s,   t  j d d t  j } t t t |  d  S(   Ni   R0   (   i   i   i   (   R<   Rq  R1   R   RS   R  (   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt$   test_is_valid_dm_improper_shape_3D_E  s    c         C` s/   t  j d d t  j } t t |  t  d  S(   Ni   R0   (   i   i   i   (   R<   Rq  R1   R   R   R  (   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt$   test_is_valid_dm_improper_shape_3D_F  s    c         C` s\   t  j j d  } t |  } x' t d d  D] } d | | | f <q. Wt t t |  d  S(   Ni
   i    i   g       @(   R<   R   R   R   R   R   RS   R  (   R   R   R  Rw   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_is_valid_dm_nonzero_diagonal_E  s
    c         C` s_   t  j j d  } t |  } x' t d d  D] } d | | | f <q. Wt t |  t  d  S(   Ni
   i    i   g       @(   R<   R   R   R   R   R   R   R  (   R   R   R  Rw   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_is_valid_dm_nonzero_diagonal_F  s
    c         C` sD   t  j j d  } t |  } | d d | d <t t t |  d  S(   Ni
   i   i   (   i   i   (   i   i   (   R<   R   R   R   R   RS   R  (   R   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_asymmetric_E  s    c         C` sG   t  j j d  } t |  } | d d | d <t t |  t  d  S(   Ni
   i   i   (   i   i   (   i   i   (   R<   R   R   R   R   R   R  (   R   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_asymmetric_F  s    c         C` s/   t  j d d t  j } t t |  t  d  S(   Ni   R0   (   i   i   (   R<   Rq  R1   R   R   Rc   (   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_correct_1_by_1  s    c         C` s5   t  j j d  } t |  } t t |  t  d  S(   Ni   (   R<   R   R   R   R   R   Rc   (   R   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_correct_2_by_2  s    c         C` s5   t  j j d  } t |  } t t |  t  d  S(   Ni   (   R<   R   R   R   R   R   Rc   (   R   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_correct_3_by_3  s    c         C` s5   t  j j d  } t |  } t t |  t  d  S(   Ni   (   R<   R   R   R   R   R   Rc   (   R   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_correct_4_by_4  s    c         C` s5   t  j j d  } t |  } t t |  t  d  S(   Ni
   (   R<   R   R   R   R   R   Rc   (   R   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_correct_5_by_5  s    (   R   R   R  R  R  R  R  R  R  R  R  R  R  R  R  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s   												c         C` s   t  |  d t S(   NR  (   R   Rc   (   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   is_valid_y_throw  s    t   TestIsValidYc           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 d d t  j } t t t |  d  S(   Ni   R0   (   i   i   (   R<   Rq  R1   R   RS   R  (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_is_valid_y_improper_shape_2D_E  s    c         C` s/   t  j d d t  j } t t |  t  d  S(   Ni   R0   (   i   i   (   R<   Rq  R1   R   R   R  (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_is_valid_y_improper_shape_2D_F  s    c         C` s,   t  j d d t  j } t t t |  d  S(   Ni   R0   (   i   i   i   (   R<   Rq  R1   R   RS   R  (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_is_valid_y_improper_shape_3D_E  s    c         C` s/   t  j d d t  j } t t |  t  d  S(   Ni   R0   (   i   i   i   (   R<   Rq  R1   R   R   R  (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt#   test_is_valid_y_improper_shape_3D_F!  s    c         C` s&   |  j  d  } t t |  t  d  S(   Ni   (   t   correct_n_by_nR   R   Rc   (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_correct_2_by_2%  s    c         C` s&   |  j  d  } t t |  t  d  S(   Ni   (   R  R   R   Rc   (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_correct_3_by_3)  s    c         C` s&   |  j  d  } t t |  t  d  S(   Ni   (   R  R   R   Rc   (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_correct_4_by_4-  s    c         C` s&   |  j  d  } t t |  t  d  S(   Ni   (   R  R   R   Rc   (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_correct_5_by_51  s    c         C` s   t  g   } x0 t d d  D] } | j | | d d  q Wx9 t d d  D]( } | | k rO t t |  j |  qO qO Wd  S(   Ni   i   i   i   ii   (   R  R   R  R   RS   R  (   R   RK   R  Rw   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_2_1005  s    c         C` s"   t  j j |  } t | d t S(   NR  (   R<   R   R   R   Rc   (   R   R  R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  =  s    c         C` s"   t  j j | | d d  } | S(   Ni   i   (   R<   R   R   (   R   R  R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  A  s    (   R   R   R   R  R  R  R  R  R  R  R	  R  R  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR    s   										c          C` sy   d }  t    d } | j d d  t t t d d g d d g |   t t t d d g d d g |  d d g  Wd  QXd  S(   Ng      ?R  s   `wminkowski` is deprecatedi   i   i   i   (   R   R   R   RS   R/   (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt
   test_bad_pF  s
    "c           C` s)   t  t t t t t g t t t g  d  S(   N(   R   RS   R,   R  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_sokalsneath_all_falseO  s    c           C` sZ   t  t d d d g d d d g  d  t  t d d d d g d d d d g  d  d  S(   Ni   i   i   i   i   i    (   R   t	   wcanberra(    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyR  T  s    (c           C` sf   t  t d d d g d d d g  d d d t  t d d d	 d	 g d d	 d d	 g  d
 d d d  S(   Ni   i   i   i   i   g      ?t   decimali   i    g      ?gUUUUUU?(   R   t   wbraycurtis(    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_braycurtisZ  s    .c          C` s  t  j d d d g  }  t  j d d d g  } t t |  |  d d d t t |  |  t  j d  d d t t |  t  j d  d   f | t  j d  d   f  t  j d  d d t t |  t  j d  d   f | t  j d  d   f  d d d t t |  d  d   t  j f | d  d   t  j f  d d d t  j d  j d d  } t	 t
 t | |  t	 t
 t | |  t  j j d	  } | j d
  } | j d
  } t | |  } t | |  } t | d | d d d  S(   Ni   i    g      @R  i   i   i   i   iIi
   (   R<   R   R   R  R  R   R  R   R   R   RS   R   R   R   (   R   R   R   t   rsR   t   d1t   d2(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_euclideans`  s&    %555c          C` s8   d d d g }  d d d d g } t  t t |  |  d  S(   Ni    i   (   R   RS   t   whamming(   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_hamming_unequal_length  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 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 g d d } d } t t |  |  |  d  S(   Nt   eggst   spamR0   s   |S4g?(   R<   R   R   R  (   RK   R|   t   desired(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_hamming_string_array  s    		c          C` s   t  j d d d d d d d d d d g
 d d d d d d d d d d g
 g  }  t |  d	 d
 d d d d  } t |  |  d	 d
 d d d d  } t |  d	 d
 d d } t |  |  d	 d
 d d } t | | d d t | | d d d  S(   NgQUUT@g      Y@g      B@g      N@g     V@g     b@g      8@g      H@R   R'   R   i   R   R   gV瞯<(   R<   R   R   RO   R   R   (   t   arr_int   p0t   c0t   p1t   c1(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_minkowski_w  s    !c          C` s  d d d g }  d d d g } xo t  j t  j t  j t  j g D]O } t t  j |  d | t  j | d |  } t t  j | j	 t  j
   q= Wx t  j t  j t  j t  j g D] } t d g t  j d	 g d |  } t t  j d	 g d | d g  } t | |  t | t  j t  j |  j  d  q Wt  j t  j t  j t  j g } x< d
 d g D]. } t t  |  r_| j t t  |   q_q_WxK | D]C } t t  j |  d | t  j | d |  } t | j	 |  qWd  S(   Ni   i   i   i   i   i   R0   i    it   float16t   float128(   R<   R  t   int16R  R  R  t   asarrayR	   t
   issubdtypeR0   t   floatingt   uint8t   uint16t   uint32t   uint64R   R   t   iinfoR{   RA   t	   complex64t
   complex128t   hasattrR   t   getattr(   R   R   R0   t   dR  R  t   dtypes(    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_sqeuclidean_dtypes  s"    %- %$$*-c          C` s   t  t  t g }  t  t t  g } g  |  D] } t |  ^ q% } g  | D] } t |  ^ qD } t |  |  } t | |  } t | |  d  S(   N(   Rc   R  Ru   R+   R   (   R   R   R|   R   R   R  R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_sokalmichener  s    c       
   C` s   t  j d d d g d d d g d d d g d	 d
 d g g  }  |  j   } t    } | j d d  xm t D]e } | d k r i d |  j d d  d 6n i  } t |  |  | |  t |  | |  t	 |  |  qn WWd  QXd  S(   Ng      ?g       @g      @g333333?gffffff@g333333@g@g@g3333336@gL7@g333333F@R  s   `wminkowski` is deprecatedR/   RU   i    R   (
   R<   R#  R'  R   R   R   R  R   R   R
   (   R   R*  R   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_modifies_input  s    /c    	      C` s-  t  j d d d g d d d g d d d g d	 d
 d g g  }  t  j d  } d } d } xt D]} | d k r i | d 6n t   } t   x } | j d |  } | j d |  | j d d  t |  |  | d |  t	 |  | d |  t
 t |  d k  Wd  QXxd d d g D]} i d | 6} | d k rfd | k sd | k rYqn  | | d <n  | d k r~| d k s| d k r| d k s| d k r| d k rqn  t   b } | j d |  } | j d d  t |  |  | |  t	 |  | |  t
 t |  d k  Wd  QXqWqa Wd  S(   Ng      ?g       @g      @g333333?gffffff@g333333@g@g@g3333336@gL7@g333333F@i   s   Got unexpected kwargs7   [0-9]* metric parameters have been passed as positionalR/   R   R  s   `wminkowski` is deprecatedi   R   R  R	  t   fooR*   R%   R'   (   R<   R#  R   R   R  R   R   R   R   R   R	   R  (	   R   R]   t   warn_msg_kwargst   warn_msg_argsR   R   R   t   logR   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_Xdist_deprecated_args  s@    "c       
   C` s   t  d d  d  d  d  d  d  f }  t j |  j d  } | d  d  d  | d  d  d  <xy t D]q } | d
 k r| qd n  xV | t |  d | g D]; } t t t |  | d	 | t t t	 |  |  | d	 | q Wqd Wd  S(   Ns   random-float32-datai   i   i   R*   R%   R#   R   R   (   R*   R%   R#   (
   R>   R<   Re   R\   R   R   R   RS   R   R   (   R   R   R   R  (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test_Xdist_non_negative_weights  s    &! c          C` sG  d d d g }  t  |   } t | |   t  |  d t j } t | |   t | j t j  d g }  t  |   } t | j d  t | |   d }  t  |   } t | j d  t | |  g  t j d  j d d d  }  t  |   } t | j d  t | |  d d  d   d f  d d g d d g g }  t	 t
 t  |   d  S(	   Ni   i   i   R0   i   ii    i   (   R   R
   R<   R   R   R0   RL   R   R   R   RS   (   R   R   (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   test__validate_vector  s(    	 (   t
   __future__R    R   R   t   os.pathR6   t	   functoolsR   R   t   scipy._lib.sixR   R   t   numpyR<   R   t   numpy.linalgR   t   numpy.testingR   R	   R
   R   R   R   R  R   R   t   scipy._lib._numpy_compatR   t   scipy.spatial.distanceR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   R  R4   R   t   _tdistt   _ytdistR>   RH   RO   RV   R  Rc   Rs   Rf   Rg   R~   R   R   R   R   R   R   RB  R/  R  R  R  R  R  t
   wcityblockt
   wchebyshevR  R  t
   wkulsinskiR  R  R  R  R  R  t   wsokalmichenerR  R   R   R-  R  R  R  R  R  R  R  R  R
  R  R  R  R  R  R  R  R1  R2  R3  R8  R9  R:  (    (    (    s@   lib/python2.7/site-packages/scipy/spatial/tests/test_distance.pyt   <module>#   s   .@	$	,					\$    UJC4#	E	6													(	