
ʽXc           @` s  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m	 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 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! d  d l m" Z" m# Z# m$ Z$ m% Z% m& Z& 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 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 Z8 e j9 d  d# d$ d% d& d' g d# d  d( d) d* d+ g d$ d( d  d, d- d. g d% d) d, d  d/ d0 g d& d* d- d/ d  d1 g d' d+ d. d0 d1 d  g g d2 d3 Z: e e:  Z; i  Z< d4   Z= e=   d5 e f d6     YZ> d7 e f d8     YZ? d9   Z@ eA d:  ZB d; e f d<     YZC d= eD f d>     YZE d? e f d@     YZF dA e f dB     YZG dC   ZH dD e f dE     YZI dF   ZJ dG e f dH     YZK dI   ZL dJ   ZM dK   ZN dL   ZO dM   ZP dN   ZQ dO   ZR dP   ZS dQ   ZT dR   ZU dS   ZV dT   ZW eX dU k re   n  d S(V   i    (   t   divisiont   print_functiont   absolute_importN(   t   xranget   u(   t   norm(	   t   verboset   TestCaset   run_module_suitet   assert_t   assert_raisest   assert_array_equalt   assert_equalt   assert_almost_equalt   assert_allclose(	   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	   kulsinskit   mahalanobist   matchingt	   minkowskit   rogerstanimotot
   russellraot
   seuclideant   sokalmichenert   sokalsneatht   sqeuclideant   yulet
   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-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@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   load_testing_filesh   s    $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	   Z d
   Z d   Z d 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   boolRA   t   intR?   (   t   rnd_eo_namesR:   RA   R@   R?   R/   t   valid_upcasts(   t   self(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   setUpz   s    "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<   R   R   t   _assert_within_tolR   (   RL   t   epst   X1t   X2t   Y1t   Y2(    (    s@   /tmp/pip-build-7oUkmx/scipy/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   RO   R   (   RL   RP   RQ   RR   RS   RT   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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%   RV   gffffff@RW   i   (   R<   R   RO   R   (   RL   RP   RQ   RR   RS   RT   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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%   RV   gGz?RW   i   (   R<   R   RO   R   (   RL   RP   RQ   RR   RS   RT   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt!   test_cdist_minkowski_random_p1d23   s    

c         C` s   d } t  d } t  d } d | j d d  } t | | d d d	 d
 | } t | | d d d	 d
 | } t | | | t d k  d  S(   NgHz>s   cdist-X1s   cdist-X2g      ?t   axisi    R-   RV   gffffff@t   wt   test_wminkowskii   (   R<   t   stdR   RO   R   (   RL   RP   RQ   RR   R\   RS   RT   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt!   test_cdist_wminkowski_random_p3d8   s    

c         C` s   d } t  d } t  d } t j | j d  } t | | d d d d | } t | | d	 d d d | } t | | | t d
 k  d  S(   NgHz>s   cdist-X1s   cdist-X2i   R-   RV   gffffff@R\   R]   i   (   R<   R:   t   aranget   shapeR   RO   R   (   RL   RP   RQ   RR   R\   RS   RT   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt!   test_cdist_wminkowski_int_weights   s    

c         C` s   d } t  d } t  d } d | j d d  } t | | d d d	 d
 | } t | | d d d	 d
 | } t | | | t d k  d  S(   NgHz>s   cdist-X1s   cdist-X2g      ?R[   i    R-   RV   gffffff@R\   R]   i   (   R<   R^   R   RO   R   (   RL   RP   RQ   RR   R\   RS   RT   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt!   test_cdist_wminkowski_random_p4d6   s    

c         C` s   d } t  d } t  d } d | j d d  } t | | d d d	 d
 | } t | | d d d	 d
 | } t | | | t d k  d  S(   NgHz>s   cdist-X1s   cdist-X2g      ?R[   i    R-   RV   gGz?R\   R]   i   (   R<   R^   R   RO   R   (   RL   RP   RQ   RR   R\   RS   RT   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt"   test_cdist_wminkowski_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(   NR[   i   i(   R:   t   linalgR   t   reshape(   t   X(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   norms   s    i   i   (   R<   R   R:   t   dott   TRO   R   (   RL   RP   RQ   RR   RS   Rh   RT   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   t   metricR#   g        g      @g      ?i    ii   i(   R:   t   arrayR   R   t   sqrtR
   t
   ValueError(   RL   t   x1t   x2t   distt   rt2(    (    s@   /tmp/pip-build-7oUkmx/scipy/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(    (   t   __name__t
   __module__(    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRu      s   c         ` s;   t  |  d    s( t  | d    r7 t d   n  d S(   Ni    s   Type has been changedg+?(   t
   isinstanceRo   (   t   xt   y(   Ru   (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt
   _my_metric   s    (R.   Rl   g+?R   i   (   t   objectR:   Rm   R   R   R   (   RL   R{   R1   t   cdist_yt   right_y(    (   Ru   s@   /tmp/pip-build-7oUkmx/scipy/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 | | n3 Xt | | | t d k  t | | | t d k  d  S(   NRl   t   test_i   (	   R   t   evalt	   Exceptiont	   __class__R   t   printRv   R
   RO   (   RL   RQ   RR   Rl   RP   t   kwargst   y1t   y2t   y3t   et   e_cls(    (    s@   /tmp/pip-build-7oUkmx/scipy/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 } xt D]}} t d k r t d | d |  n  | d k r d | k r qc n  |  j | | |  | d	 k r d
 | j d d  } |  j | | | d | qc | d k r^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,   RH   R-   g      ?R[   i    R\   R(   t   ddoft   VR#   t   VI(   RJ   R<   R   R   R   R   R^   R:   t   vstackt   astypeR/   t   vart
   atleast_2dt   covRj   Rm   Re   t   inv(	   RL   t   eo_nameRQ   RR   Rl   R\   t   X12R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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-dataRH   s   random-uint-dataRA   s   random-int-dataRI   s   random-float32-dataR?   i    i   ii   i   Rl   (   R<   RK   R   R   R   R   R   R   Rv   R
   RO   (   RL   RP   t   testsRl   t   testRQ   RR   R   R   R   t   new_typet   X1newt   X2newR   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_cdist_dtype_equivalence&  s.    &&	!!(   Rv   Rw   RM   RU   RX   RY   RZ   R_   Rb   Rc   Rd   Rk   Rt   R   R   R   R   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRG   x   s   									
								t	   TestPdistc           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 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 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( d'   Z) d(   Z* d)   Z+ d*   Z, d+   Z- d,   Z. d-   Z/ d.   Z0 d/   Z1 d0   Z2 d1   Z3 d2   Z4 d3   Z5 d4   Z6 d5   Z7 d6   Z8 d7   Z9 d8   Z: d9   Z; d:   Z< d;   Z= d<   Z> d=   Z? d>   Z@ d?   ZA d@   ZB dA   ZC dB   ZD dC   ZE dD   ZF dE   ZG dF   ZH dG   ZI dH   ZJ dI   ZK dJ   ZL dK   ZM dL   ZN dM   ZO dN   ZP dO   ZQ dP dQ  ZR dR   ZS dS   ZT RS(T   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-dataRH   RA   RI   R?   (   RJ   R:   RA   R@   R?   R/   RK   (   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRM   D  s    "c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-euclideanR   (   R<   R   RO   (   RL   RP   Rg   t   Y_rightt   Y_test1(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_euclidean_randomM  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   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_euclidean_random_uT  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   NgHz>s   pdist-double-inps   pdist-euclideanR   (   R:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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-euclideanRN   (   R<   R   RO   (   RL   RP   Rg   R   t   Y_test2(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt    test_pdist_euclidean_random_nonCb  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>t   iriss   pdist-euclidean-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt    test_pdist_euclidean_iris_doublei  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   Ngư>R   s   pdist-euclidean-irisR   i   (   R:   R?   R<   R   RO   R   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt!   test_pdist_euclidean_iris_float32p  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   NgHz>R   s   pdist-euclidean-irisRN   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_euclidean_iris_nonCw  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngh㈵>s   pdist-double-inps   pdist-seuclideanR(   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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㈵>R   s   pdist-seuclidean-irisR(   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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㈵>R   s   pdist-seuclidean-irisR(   (   R:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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㈵>R   s   pdist-seuclidean-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_random_nonC  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng:0yE>R   s   pdist-cosine-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_iris  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   NgHz>R   s   pdist-cosine-irisR   i   (   R:   R?   R<   R   RO   R   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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>R   s   pdist-cosine-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_iris_nonC  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:   t   abst   randomt   RandomStatet   randR   R	   R   (   RL   Ry   Rg   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_cosine_bounds  s    $c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ngư>s   pdist-double-inps   pdist-cityblockR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_cityblock_random  s
    

c         C` sF   d } t  j t d  } t d } t | d  } t | | |  d  S(   Ngư>s   pdist-double-inps   pdist-cityblockR   (   R:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt    test_pdist_cityblock_random_nonC  s
    

c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng+=R   s   pdist-cityblock-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_cityblock_iris  s
    

c         C` sO   d } t  j t d  } t d } t | d  } t | | | t d k  d  S(   Ngư>R   s   pdist-cityblock-irisR   i   (   R:   R?   R<   R   RO   R   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt!   test_pdist_cityblock_iris_float32  s
    
c         C` s=   d } t  d } t  d } t | d  } t | | |  d  S(   Ng+=R   s   pdist-cityblock-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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>R   s   pdist-correlation-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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>R   s   pdist-correlation-irisR   i   (   R<   R:   R?   R   RO   R   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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>R   s   pdist-correlation-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt    test_pdist_correlation_iris_nonC1  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%   RV   g	@(   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_minkowski_random8  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%   RV   g	@(   R:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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.2RW   RV   g	@(   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt    test_pdist_minkowski_random_nonCF  s
    

c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   NgHz>R   s   pdist-minkowski-3.2-irisR%   RV   g	@(   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_minkowski_3_2_irisM  s
    

c         C` sL   d } t  j t d  } t d } t | d d d } t | | |  d  S(   Ngư>R   s   pdist-minkowski-3.2-irisR%   RV   g	@(   R:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt%   test_pdist_minkowski_3_2_iris_float32T  s
    
c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   NgHz>R   s   pdist-minkowski-3.2-irisRW   RV   g	@(   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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>R   s   pdist-minkowski-5.8-irisR%   RV   g333333@(   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_minkowski_5_8_irisb  s
    

c         C` sU   d } t  j t d  } t d } t | d d d } t | | | t d k  d  S(   Ngư>R   s   pdist-minkowski-5.8-irisR%   RV   g333333@i   (   R:   R?   R<   R   RO   R   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt%   test_pdist_minkowski_5_8_iris_float32i  s
    
c         C` sC   d } t  d } t  d } t | d d d } t | | |  d  S(   NgHz>R   s   pdist-minkowski-5.8-irisRW   RV   g333333@(   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt"   test_pdist_minkowski_5_8_iris_nonCp  s
    

c         C` ss  t  j d d d g d d d g d d d g d d d g g  } d d t  j d  t  j d  t  j d  t  j d  g } d d d d d d	 g } t | d
 t d d d d g } t | | d d t | d
 t d d d d g d d } t | | d d t | d
 d d d d d g } t | | d d t | d
 d d d d d g d d } t | | d d d  S(   Ng        g      ?i   i   g      ?g      @g      ?g      @g      @Rl   R\   t   rtolg+=g       @RV   i   R-   (   R:   Rm   Rn   R   R-   R   (   RL   Ry   t   p2_expectedt   p1_expectedRr   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_wminkowskiw  s$    		!'!'c         C` s   t  j d d d g d d d g d d d g d d d g g  } t | d d d t  j d  d d } t | d d d d d d	 g d d } t | | d
 d d  S(   Ng        g      ?Rl   R-   R\   i   RV   i   g       @R   g+=(   R:   Rm   R   R`   R   (   RL   Ry   t   dist1t   dist2(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt!   test_pdist_wminkowski_int_weights  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   Rl   R#   g        g      ?g      @i    i   ii   (   R:   Rm   Rf   R   R   Rn   R
   Ro   (   RL   Ry   Rr   Rs   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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:   t   float64R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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:   R?   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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-hammingR   (   R:   R   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_jaccard_random  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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_jaccard_random_nonC  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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_djaccard_random  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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt"   test_pdist_djaccard_random_float32  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<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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-chebyshevR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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:   R?   R<   R   RO   R   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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瞯<R   s   pdist-chebyshev-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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ư>R   s   pdist-chebyshev-irisR   i   (   R:   R?   R<   R   RO   R   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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瞯<R   s   pdist-chebyshev-irisR   (   R<   R   RO   (   RL   RP   Rg   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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    R.   g333333?R   t   atolg|=(   R$   R:   Rm   RH   R   (   RL   t   mt   m2(    (    s@   /tmp/pip-build-7oUkmx/scipy/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    R.   i   i   R   R   g|=gUUUUUU?gUUUUUU?(   R$   R:   Rm   RH   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_matching_mtica21  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    R.   g333333?R   R   g|=(   R!   R:   Rm   RH   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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    R.   i   i   R   R   g|=gUUUUUU?gUUUUUU?(   R!   R:   Rm   RH   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_jaccard_mtica2B  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    R.   i   R   R   g|=(   R,   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_yule_mtica1J  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    R.   i   R   R   g|=(   R,   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_yule_mtica2T  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    R.   i   i   i   R   R   g|=g۶m۶m?g۶m۶m?(   R   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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    R.   i   g      ?R   R   g|=(   R   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_dice_mtica2h  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    R.   i   i   i   R   R   g|=g      ?g      ?(   R*   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_sokalsneath_mtica1r  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    R.   i   i   i   R   R   g|=g?g?(   R*   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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    R.   i   i   i   R   R   g|=g      ?g      ?(   R&   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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    R.   i   i   i   R   R   g|=g?g?(   R&   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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    R.   i   i   i   R   R   g|=g333333?g333333?(   R'   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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    R.   i   i   R   R   g|=gUUUUUU?gUUUUUU?(   R'   R:   Rm   RH   R   R   R   (   RL   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_russellrao_mtica2  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(   NR   i   g|=R   t   test_canberra(   R<   R   R   Ra   R.   R   RO   (   RL   t   DRP   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_canberra_match  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   RO   R   (   RL   RP   t   pdist_yR~   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_canberra_ticket_711  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(	   NRu   c           B` s   e  Z RS(    (   Rv   Rw   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRu     s   c         ` s;   t  |  d    s( t  | d    r7 t d   n  d S(   Ni    s   Type has been changedg+?(   Rx   Ro   (   Ry   Rz   (   Ru   (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR{     s    (R.   Rl   g+?R   i   (   R|   R:   Rm   R   R   R   (   RL   R{   R1   R  R~   (    (   Ru   s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_custom_notdouble  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 | | n3 Xt | | | t d k  t | | | t d k  d  S(   NRl   R   i   (	   R   R   R   R   R   R   Rv   R
   RO   (
   RL   Rg   Rl   RP   R   R   R   R   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR     s    	!c      	   C` s  d } x|  j  D]~} t | d  d  d  d  d  d  f } xOt D]G} t d k rk t d | d |  n  | d k r d | k r qC n  |  j | |  | d k r d	 | j d
 d  } |  j | | d | qC | 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   s	   testing: s    with: R,   RH   R-   g      ?R[   i    R\   R(   R   i   R   R#   R   (   RJ   R<   R   R   R   R   R^   R:   R   R   R/   R   R   Rj   Rm   Re   R   (   RL   RP   R   Rg   Rl   R\   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_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]} 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-dataRH   s   random-uint-dataRA   s   random-int-dataRI   s   random-float32-dataR?   i    i   i   Rl   i   (   R<   RK   R   R   R   R   R   R   Rv   R
   RO   (   RL   RP   R   Rl   R   RQ   R   R   R   R   RR   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_pdist_dtype_equivalence  s*    &	(U   Rv   Rw   RM   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   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   R   R   R   R   R   R   R   R   R   R  R  R  R  R  R	  R   R
  R  (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR   B  s   																																																	
																										
	
	
	
	
	
	
	
	
	
					c         C` s   t  j |  |  j   | k  S(   N(   R:   R   t   max(   t   at   bt   tol(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt
   within_tol  s    c         C` sC   | r& t  t j |  |  j    n  t |  | d d d | d  S(   NR   i    R   (   R   R:   R   R  R   (   R  R  R   t   verbose_(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRO     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:   Rm   t   newaxisRj   t   cases(   RL   Ry   Rz   t   x31t   y31t   x13t   y13(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRM   #  s    		c         C` s   x |  j  D] \ } } t | | d d } t | d  t | | d d } t | d d
 d  t | | d d } t | t j d	   q
 Wd  S(   NRV   i   g      @g      ?g      ?g       @i   i   i   g;f@gUUUUUU?(   R  R%   R   R:   Rn   (   RL   Ry   Rz   R   t   dist1p5R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRW   0  s    c         C` s   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" Wd  S(   Ng      ?g       @g      ?RV   i   R\   g      @g      ?i   i   i   g;f@g;f@gUUUUUU?(   R:   Rm   R  R-   R   Rn   (   RL   R\   Ry   Rz   R   R  R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR]   9  s    c         C` sC   x< |  j  D]1 \ } } t | |  } t | t j d   q
 Wd  S(   Ni   (   R  R   R   R:   Rn   (   RL   Ry   Rz   Rr   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRN   C  s    c         C` s:   x3 |  j  D]( \ } } t | |  } t | d  q
 Wd  S(   Ng      @(   R  R+   R   (   RL   Ry   Rz   Rr   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_sqeuclideanH  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  R   R   R:   Rn   (   RL   Ry   Rz   Rr   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR   M  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:   Rm   R  R   R   Ri   R   (   RL   t   xmt   ymRy   Rz   Rr   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR   R  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:   Rm   R  R#   R   Rn   (   RL   Ry   Rz   t   viRr   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_mahalanobisY  s    3(
   Rv   Rw   RM   RW   R]   RN   R  R   R   R  (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/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 | f Vq
 Wd  S(   N(   t   checked_dtypest   check_squareform_matrix(   RL   R.   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_squareform_matrixe  s    c         c` s&   x |  j  D] } |  j | f Vq
 Wd  S(   N(   R   t   check_squareform_vector(   RL   R.   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_squareform_vectori  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    R.   i   g@(   i    i    (   i    (   i   i   (   i    (   i   (   R:   t   zerosR   R   Ra   R.   Rm   R   (   RL   R.   t   At   rA(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR!  m  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    R.   i   g @i   (   i    (   i   i   (   i   i   (   R:   R%  R   R   Ra   R.   R   Rm   (   RL   R.   t   vt   rv(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR#  ~  s    c         c` s,   x% t  d d  D] } |  j | f Vq Wd  S(   Ni   i   (   R   t   check_squareform_multi_matrix(   RL   t   n(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_squareform_multi_matrix  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   lenRa   R   R   R   R   (
   RL   R+  Rg   t   YR&  t   Yrt   st   kt   it   j(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR*    s$    	(   Rv   Rw   R:   R   R?   t   int32t   int8RH   R   R"  R$  R!  R#  R,  R*  (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR  b  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   (   RL   R+  Rg   R.  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_multi_matrix  s    c         C` s   t  t |  j d  d  S(   Ni   (   R
   Ro   t   check_y(   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_1  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R8  (   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_2  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R8  (   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_3  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   R8  (   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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(   RL   R2  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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
   Ro   t   bad_y(   RL   R  R+  R2  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_y_2_100  s    c         C` s   t  |  j |   d  S(   N(   R	   R8  (   RL   R+  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR=    s    c         C` s   t  j j |  } t |  S(   N(   R:   R   R   R   (   RL   R+  Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRA    s    c         C` s   t  |  j |   | k S(   N(   R   t   make_y(   RL   R+  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR8    s    c         C` s   t  j j | | d d  S(   Ni   i   (   R:   R   R   (   RL   R+  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRC    s    (   Rv   Rw   R7  R9  R:  R;  R<  R>  RB  R=  RA  R8  RC  (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR6    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   Ra   R   R   (   RL   R+  Rg   R.  R&  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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(   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_0  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   RF  (   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_1  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   RF  (   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_2  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   RF  (   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_3  s    c         C` s   t  |  j d   d  S(   Ni   (   R	   RF  (   RL   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_num_obs_dm_4  s    c         C` s   t  |  j |   | k S(   N(   R   t   make_D(   RL   R+  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRF    s    c         C` s   t  j j | |  S(   N(   R:   R   R   (   RL   R+  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRL    s    (
   Rv   Rw   RE  RG  RH  RI  RJ  RK  RF  RL  (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRD    s   								c         C` s   t  |  d t S(   Nt   throw(   R   t   True(   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   R.   (   i   (   R:   R%  R/   R
   Ro   RO  (   RL   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   R.   (   i   (   R:   R%  R/   R   R   t   False(   RL   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   R.   (   i   i   i   (   R:   R%  R/   R
   Ro   RO  (   RL   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   R.   (   i   i   i   (   R:   R%  R/   R   R   RR  (   RL   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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
   Ro   RO  (   RL   Rz   R  R2  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   RR  (   RL   Rz   R  R2  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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
   Ro   RO  (   RL   Rz   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   RR  (   RL   Rz   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   R.   (   i   i   (   R:   R%  R/   R   R   RN  (   RL   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   RN  (   RL   Rz   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_correct_2_by_20  s    c         C` s5   t  j j d  } t |  } t t |  t  d  S(   Ni   (   R:   R   R   R   R   R   RN  (   RL   Rz   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_correct_3_by_35  s    c         C` s5   t  j j d  } t |  } t t |  t  d  S(   Ni   (   R:   R   R   R   R   R   RN  (   RL   Rz   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   RN  (   RL   Rz   R  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_is_valid_dm_correct_5_by_5?  s    (   Rv   Rw   RQ  RS  RT  RU  RV  RW  RX  RY  RZ  R[  R\  R]  R^  (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRP     s   												c         C` s   t  |  d t S(   NRM  (   R   RN  (   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   is_valid_y_throwE  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   R.   (   i   i   (   R:   R%  R/   R
   Ro   R_  (   RL   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt#   test_is_valid_y_improper_shape_2D_EN  s    c         C` s/   t  j d d t  j } t t |  t  d  S(   Ni   R.   (   i   i   (   R:   R%  R/   R   R   RR  (   RL   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt#   test_is_valid_y_improper_shape_2D_FR  s    c         C` s,   t  j d d t  j } t t t |  d  S(   Ni   R.   (   i   i   i   (   R:   R%  R/   R
   Ro   R_  (   RL   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt#   test_is_valid_y_improper_shape_3D_EV  s    c         C` s/   t  j d d t  j } t t |  t  d  S(   Ni   R.   (   i   i   i   (   R:   R%  R/   R   R   RR  (   RL   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt#   test_is_valid_y_improper_shape_3D_FZ  s    c         C` s&   |  j  d  } t t |  t  d  S(   Ni   (   t   correct_n_by_nR   R   RN  (   RL   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   (   Re  R   R   RN  (   RL   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_correct_3_by_3b  s    c         C` s&   |  j  d  } t t |  t  d  S(   Ni   (   Re  R   R   RN  (   RL   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_correct_4_by_4f  s    c         C` s&   |  j  d  } t t |  t  d  S(   Ni   (   Re  R   R   RN  (   RL   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_correct_5_by_5j  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
   Ro   RA  (   RL   R  R+  R2  (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_is_valid_y_2_100n  s    c         C` s"   t  j j |  } t | d t S(   NRM  (   R:   R   R   R   RN  (   RL   R+  Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRA  v  s    c         C` s"   t  j j | | d d  } | S(   Ni   i   (   R:   R   R   (   RL   R+  Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyRe  z  s    (   Rv   Rw   Ra  Rb  Rc  Rd  Rf  Rg  Rh  Ri  Rj  RA  Re  (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR`  I  s   										c          C` sW   d }  t  t t d d g d d g |   t  t t d d g d d g |  d d g  d  S(   Ng      ?i   i   i   i   (   R
   Ro   R%   R-   (   RV   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt
   test_bad_p  s    "c           C` s)   t  t t t t t g t t t g  d  S(   N(   R
   Ro   R*   RR  (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_sokalsneath_all_false  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   R   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyR    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   R   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_braycurtis  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      @Rm  i   i   i   i   iIi
   (   R:   Rm   R   R+   R   Rn   R  R`   Rf   R
   Ro   R   R   R   (   Rp   Rq   Ry   t   rsRz   t   d1t   d2(    (    s@   /tmp/pip-build-7oUkmx/scipy/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
   Ro   R    (   Ry   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   spamR.   s   |S4g?(   R:   Rm   R   R    (   R  R  t   desired(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_hamming_string_array  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   R.   i    it   float16t   float128(   R:   R5  t   int16R4  t   int64R+   t   asarrayR	   t
   issubdtypeR.   t   floatingt   uint8t   uint16t   uint32t   uint64R   R   t   iinfoR  R?   t	   complex64t
   complex128t   hasattrt   appendt   getattr(   Ry   Rz   R.   t   dRp  Rq  t   dtypes(    (    s@   /tmp/pip-build-7oUkmx/scipy/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(   RN  RR  RI   R)   R   (   RV   t   qR  Ry   Rz   R   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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   } xm t D]e } | d k r i d |  j d d  d 6n i  } t |  |  | |  t |  | |  t |  |  qR Wd  S(   Ng      ?g       @g      @g333333?gffffff@g333333@g@g@g3333336@gL7@g333333F@R-   R[   i    R\   (   R:   R|  t   copyR   R^   R   R   R   (   RQ   t   X1_copyRl   R   (    (    s@   /tmp/pip-build-7oUkmx/scipy/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  }  d } xt D]} xd d d d g D]o} i d | 6} | d k r d | k se d | k r qe n  d |  j d d  | d <n  | d k r | d k se | d k r | d k se | d k r| d k rqe n  t j d t   } t j d  t |  |  | |  t	 |  | |  t
 t |  d k  t
 t | d j t   t
 t | d j t   t
 t g  | D] } | t | j  k ^ q  Wd  QXqe WqL Wd  S(   Ng      ?g       @g      @g333333?gffffff@g333333@g@g@g3333336@gL7@g333333F@s   Got unexpected kwargRV   R   R   R\   t   fooR-   R[   i    R(   R#   R%   t   recordt   alwaysi   i   (   R:   R|  R   R^   t   warningst   catch_warningsRN  t   simplefilterR   R   R	   R-  t
   issubclasst   categoryt   DeprecationWarningt   allt   strt   message(   RQ   t   warn_msg_kwargsRl   t   argR   R\   t   warn(    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test_Xdist_deprecated_args  s0    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   R.   i   ii    i   (   R   R   R:   R   R   R.   t   ndimR`   Rf   R
   Ro   (   Ry   Rz   (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   test__validate_vector#  s(    	 t   __main__(Y   t
   __future__R    R   R   t   os.pathR4   R  t   scipy._lib.sixR   R   t   numpyR:   t   numpy.linalgR   t   numpy.testingR   R   R   R	   R
   R   R   R   R   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-   R2   Rm   t   _tdistt   _ytdistR<   RF   RG   R   R  RR  RO   R  R|   R  R6  RD  RO  RP  R_  R`  Rk  Rl  R  Rn  Rr  Rs  Rw  R  R  R  R  R  Rv   (    (    (    s@   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_distance.pyt   <module>#   s   @@	$	  	AC4#	E	6												