
    CpjJ                       S SK JrJr  S SKrS SKrS SKrS SKrS SKrS SK	r
S SKJr  S SKJrJrJrJrJrJr  S SKrS SKrS SKJrJrJrJrJrJrJrJrJr  S SKJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2  S SK3J4r4  S SK5J6r6  \Rn                  " \S	S
9S 5       r8/ SQr9\
Rt                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/SS9r;\" \;5      r<0 r=S r>\>" 5         S r?S]S jr@     S^S jrAS rBS rCS]S jrD\" \SS9rE\ES  S4S! jrFS"SS# S$SSSSSSSSSSS%S \E4S& jrG\G" \S'SS(9rH\G" \S'SSS)9rI\G" \S'SS'S*9rJ\G" \S'SSS'S+9rK\G" \-5      rL\G" \(SS,9=rMrN\G" \25      rO\G" \&5      rP\G" \#5      rQ\G" \"5      rR\G" \%5      rS\G" \$5      rT\G" \)5      rU\G" \'SS-9rV\G" \1SS-9rW\G" \ 5      rX\G" \!SS-9rY\G" \05      rZ\G" \.5      r[ " S. S/5      r\ " S0 S15      r] " S2 S35      r^ " S4 S55      r_ " S6 S75      r` " S8 S95      raS: rb " S; S<5      rcS= rd " S> S?5      re\R                  R                  S@/ SAQ5      SB 5       rhSC riSD rjSE rkSF rlSG rmSH rnSI roSJ rpSK rqSL rrSM rsSN rtSO ruSP rvSQ rwSR rxSS ryST rz " SU SV5      r{ " SW SX5      r|\R                  R                  SY\,S'4\,S"4\,SZ4\,\
R                  4\'S4\1S4/5      \R                  R                  S[SS/5      S\ 5       5       r~g)_    )wrapspartialN)norm)verboseassert_assert_array_equalassert_equalassert_almost_equalassert_allclose)	
squareformpdistcdist	num_obs_y
num_obs_dmis_valid_dm
is_valid_y_validate_vector_METRICS_NAMES)
braycurtiscanberra	chebyshev	cityblockcorrelationcosinedice	euclideanhammingjaccardjensenshannonmahalanobis	minkowskirogerstanimoto
russellrao
seuclideansokalsneathsqeuclideanyule)_apply_over_batch)skip_xp_invalid_argsession)paramsscopec                     U R                   $ )z3
Fixture for all metrics in scipy.spatial.distance
)param)requests    ]/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/spatial/tests/test_distance.pymetricr1   C   s    
 ==    )zcdist-X1.txtzcdist-X2.txtziris.txtzpdist-boolean-inp.txtzpdist-chebyshev-ml-iris.txtzpdist-chebyshev-ml.txtzpdist-cityblock-ml-iris.txtzpdist-cityblock-ml.txtzpdist-correlation-ml-iris.txtzpdist-correlation-ml.txtzpdist-cosine-ml-iris.txtzpdist-cosine-ml.txtzpdist-double-inp.txtzpdist-euclidean-ml-iris.txtzpdist-euclidean-ml.txtzpdist-hamming-ml.txtzpdist-jaccard-ml.txtzpdist-jensenshannon-ml-iris.txtzpdist-jensenshannon-ml.txtzpdist-minkowski-3.2-ml-iris.txtzpdist-minkowski-3.2-ml.txtzpdist-minkowski-5.8-ml-iris.txtzpdist-seuclidean-ml-iris.txtzpdist-seuclidean-ml.txtzpdist-spearman-ml.txtzrandom-bool-data.txtzrandom-double-data.txtzrandom-int-data.txtzrandom-uint-data.txt)r     m         )r3   r   '        )r4   r8   r     4     )r5   r9   r<   r      e  )r6   r:   r=   r?   r     )r7   r;   r>   r@   rA   r   doubledtypec                     [          H  n U R                  SS5      R                  SS5      n[        R                  R	                  [        R                  R                  [        5      SU 5      n[        U5      n[        R                  " U5      [        U'   UR                  5         M     [        R                  " [        S   5      [        S'   [        R                  " [        S   5      [        S'   [        R                  " [        S   5      [        S'   [        R                  " [        S	   5      [        S	'   [        R                  " [        S
   5      [        S
'   g )Nz.txt z-mldatapdist-boolean-inprandom-bool-datarandom-double-datarandom-float32-datarandom-int-datarandom-uint-data)
_filenamesreplaceospathjoindirname__file__opennploadtxteoclosebool_float32longulong)fnnamefqfnfps       r0   load_testing_filesrb   z   s    zz&"%--eR8ww||BGGOOH5vrB$Z::b>4

  !hhr*='>?BXXb);&<=B "

2.B+C DBGGB'8$9:BXXb);&<=Br2   c                  H    [         R                  " S5      R                  S:  $ )Nr      )rV   intpitemsize r2   r0   	_is_32bitrh      s    771:""r2   c                   ^  T  Vs/ s H  n[         R                  " U5      PM     snm Uc;  T  Vs/ s H+  nUR                  S:w  a  [         R                  " U5      OUPM-     snm Sn[	        S T  5       5      m US:  a@  [        U 4S jT  5       5      (       d  [        S5      e[        T S   R                  5      U   nT U4-   $ s  snf s  snf )N   r   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fN)rV   
atleast_1d.0as     r0   	<genexpr> _chk_asarrays.<locals>.<genexpr>   s     4V2==##Vs   #%c              3   Z   >#    U  H   oR                   TS    R                   :H  v   M"     g7f)r   N)ndim)ro   rp   arrayss     r0   rq   rr      s      <V66VAY^^+Vs   (+z(array ndim must be the same for neg axis)rV   
asanyarrayrt   raveltupleall
ValueErrorrange)ru   axisrp   s   `  r0   _chk_asarraysr}      s    (./1bmmA/F| "#!a "#1"((1+!3!#4V44Fax<V<<<GHHVAY^^$T*TG 0#s
    C2C
FTc
                   ^^^ [        U TS9n
U
S S U
S   sn mU=(       a    U(       + nU(       d  U(       a  [        S U  5       5      nU(       ai  U  Vs/ s H-  n[        R                  " [        R                  " U5      5      PM/     nn[        U5      (       a  SnSn[        S [        X5       5       5      n Tb  [        R                  " T5      mO5U(       a'  [        R                  " U S   R                  T   5      mOU TT4-   $ U	(       a  [        T5      mU(       a  [        U TT5      m[        UU4S jU  5       5      (       d  [        S5      eU(       a#  TS:  R                  5       (       a  [        S	5      eU(       aQ  [        R                  " TS:  5      S   mTR                  TR                  :  a  [        UU4S
 jU  5       5      n TT   mU(       a  TS:H  R                  5       (       a  S mU TT4-   $ s  snf )Nr|   c              3      #    U  H>  n[         R                  R                  U5      [         R                  R                  Lv   M@     g 7frl   )rV   magetmasknomaskrn   s     r0   rq   _chk_weights.<locals>.<genexpr>   s*     Q&QBEEMM!,BEELL@&s   AATc              3   v   #    U  H/  u  pU(       a  [         R                  R                  U5      OUv   M1     g 7frl   )rV   r   masked_invalid)ro   rp   has_nans      r0   rq   r      s0      D-Bzq 7>255//21D-Bs   79r   c              3   ^   >#    U  H"  nTR                   UR                   T   4:H  v   M$     g 7frl   shape)ro   rp   r|   weightss     r0   rq   r      s%     A&Qw}} 00&s   *-z*weights shape must match arrays along axiszweights cannot be negativec              3   P   >#    U  H  n[         R                  " UTTS 9v   M     g7f)r   N)rV   take)ro   rp   r|   pos_weightss     r0   rq   r      s     Nv!2771k=vs   #&rj   )r}   anyrV   isnansumrx   ziprv   onesr   _freq_weights_weight_maskedry   rz   nonzerosize)ru   r   r|   force_weightssimplify_weightspos_only	neg_check
nan_screenmask_screenddofchkedrp   has_nansr   s    ``          @r0   _chk_weightsr      s   
 &t,E":uRyLFD'=,=[Q&QQ178ABHHRVVAY'8x==K M D-0-BD DF --(	''&)//$/0$''( $7A&AAAEFFgk&&((566jj1-a0gll*NvNNFk*GW\..00WdO##A 9s   4G>c                     U c  U $ U R                  [        5      nX:g  R                  5       (       a  [        SU  35      eU$ )Nz0frequency (integer count-type) weights required )astypeintr   rz   )r   int_weightss     r0   r   r      sE    ..%K##%%KG9UVVr2   c                   ^ Tc  Sm[         R                  " U5      nU  H  n[         R                  R                  U5      nU[         R                  R                  L a  MA  UR
                  S:  a7  [        U4S j[        UR
                  5       5       5      nUR                  US9nUSUR                  [        5      -
  -  nM     U$ )Nr   rj   c              3   6   >#    U  H  oT:w  d  M
  Uv   M     g 7frl   rg   )ro   ir|   s     r0   rq   !_weight_masked.<locals>.<genexpr>   s     C1dQQs   		r   )rV   rv   r   r   r   rt   rx   r{   r   r   r   )ru   r   r|   rp   	axis_masknot_axess     `   r0   r   r      s    |mmG$GEEMM!$	$66A:CaffCCH!84I1y'',,,  Nr2   c                   ^^ U  Vs/ s HX  n[         R                  " UR                  [         R                  5      (       a  UR	                  [         R
                  5      OUPMZ     n n[         R                  " U[         R
                  S9n[         R                  R                  U5      nS nU S   R                  T   m[        UU4S jU  5       5      (       d   S5       e[        [        U5      T-  5       Hx  nUR                  TU-   5      n	X   n
UR                  5       nX-  X'   [         R                  " USU-
  U
-  5      nU  Vs/ s H  n[         R                  " X" XTS9TS9PM     n nMz     X4$ s  snf s  snf )NrC   c                     [         R                  " [         R                  " XUS95      nUR                  [	        U R
                  5       Vs/ s H  nXB:w  a  U R                  U   OSPM     sn5      $ s  snf )Nr   rj   )rV   rv   r   reshaper{   rt   r   )rp   ixr|   recordr   s        r0   mytake_rand_split.<locals>.mytake   se    rwwq489~~(-aff7(51 ./YqwwqzA=(57 8 	8 7s    A3r   c              3   F   >#    U  H  oR                   T   T:H  v   M     g 7frl   r   )ro   rp   r|   n_obss     r0   rq   _rand_split.<locals>.<genexpr>   s     6v!wwt}%vs   !z#data must be aligned on sample axis      ?r   )rV   
issubdtyperD   integerr   float64arrayrandomRandomStater   ry   r{   r   randintrandappend)ru   r   r|   	split_perseedarrseeded_randr   r   split_ixprev_wqrp   r   s     `          @r0   _rand_splitr      sh    #)*"(3 )+cii(L(Lcjj$"(  * hhwbjj1G))''-K8
 1IOOD!E6v666 10163y>E)*&&uqy1"J))Gb1f%67068061 ))Ava=!%'06 	 8 + ?/**8s   AE7
$E<h㈵>atolc                     U $ rl   rg   xs    r0   <lambda>r     s    r2   c                    U" U 5      nU" U5      n [         R                  " XV:g  5      R                  5       (       a	  U" XV5        g g ! [         a    U" XV5         g [        [
        4 a!    [        XV5       H  u  px[        XxUS9  M      g f = f)N)compare_assert)rV   r   r   AttributeError	TypeErrorrz   r   _rough_check)	rp   br   keywcheck_acheck_ba_ib_is	            r0   r   r     s    !fG!fGB88G&'++--7, . )w(z" BG-HC.A .Bs   3A B-B
B   c                     U $ rl   rg   r   s    r0   r   r     s    1r2   r   r   c                 p   ^ ^^^^^^^^^	^
^^^^^^ [        T 5      UUUU	U UUUUUUUUUU
UU4S j5       nU$ )zruns 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            	        > T" U 0 UD6nU S T nU TS  nUR                  T%S 5      nUR                  ST5      n[        X5USSS9nUS S US   US   penT$(       a4  U Vs/ s H'  n[        R                  " UR	                  5       5      PM)     nn [        U5      U-   n T(       a  XQT%'   [        UT" U 0 UD6TS9  T(       a3  US-  UT%'   [        UT" U 0 UD6TS9  US-  UT%'    [        UT" U 0 UD6TS9  T(       Ga  [        X5UT"T S	9u  pX[S UR                  & S
XR                  S & [        U
5      U-   nXT%'   [        UT" U0 UD6TS9  U
 HH  n[        S 5      /UR                  -  n[        UR                  S 5      X'   [        U5      nX   S-  X'   MJ     [        U
5      U-   n[        UT" U0 UD6TS9  U
 HV  n[        S 5      /UR                  -  n[        UR                  S 5      X'   [        U5      nX   [        R                  -  X'   MX     UR                  SS 5      S:X  a&  T(       a  [        U
5      U-   n[        UT" U0 UD6TS9  T(       ak  U
 Vs/ s H"  n[        R                  R                  U5      PM$     n
n[        U
5      U-   n[        UT" U0 UD6TS9  T(       a  S UT%'   [        UT" U0 UD6TS9  A
AAT(       ad  U Vs/ s H  n[        R                   " XUS9PM     nn[        R                   " XU5      S-  n[        U5      U-   nXT%'   [        UT" U0 UD6TS9  AAAT#(       a;  T"S
:  a5  [        X5UT"T S	9nUu  nn[        U5      U-   nUUT%'   [        UT" U0 UD6TS9  U$ s  snf ! [         a  n	[        U	5      " XU45      U	eS n	A	ff = fs  snf s  snf ! ["         a6  n	T!(       d$  [$        R&                  " TR(                   SU	 3SS9   S n	A	U$ S n	A	ff = f)Nr|   T)r   r|   r   r   r   )r   g     @Y@gB`"۹?)r   r   r   e   
nan_policyomitr          @z NotImplemented weights:    )
stacklevel)getr   rV   rm   squeezerx   r   	Exceptiontyper   r   slicert   nanr   r   r   NotImplementedErrorwarningswarn__name__)&argskwargsresultru   restr   r|   r   rp   e
dud_arraysdud_weightsdud_argsindexer
dup_arraysdup_weightsdup_argssplitsplit_arrayssplit_weights
split_args
const_testdefault_axisdud_testdup_testr^   r   ma_safema_very_safen_argsnan_safe	ones_testr   silentr   
split_testr   
weight_args&                        r0   wrapped _weight_checked.<locals>.wrapped  s3   T$V$gvFG}**Z.zz&,/V4+/TC %cr
E"IuRy:@A&QbmmAIIK0&FAJ	,=4'D%,z"VR%8%8cB%,u_z"VR%8%8cB%,u_z"? T)<V)<#F
 *5ft@IPT+V'
-4MW\\*-.LLM* ,t3%0z"VR%<V%<#F#A$T{maff4G$)',,$=GM#GnG!"c!1AJ	 $
 !,t3VR%<V%<#F#A$T{maff4G$)',,$=GM#GnG!"bff!4AJ	 $
 ::lD1V;$Z047H X)@)@cJCM!N:a"%%"6"6q"9:J!N$Z047H X)@)@cJ#-1z*$VR-DV-D#N+ BHI&Qbii48&
I ii9C? ,t3%0z"VR%<V%<#Fj+ i!m#FT.7dD.3+m"<047
%2z"VR%>v%>CH [ B ! ?q'1g"67Q>?@ "O J # 	, -FqcJ)*,	,s^   .M0AN% !M5 2E%N% )N AN% N +BN% 5
N?NNN% %
O%/+O  O%)r   )r^   r  r  r   r  r   r
  r	  r  r  r  r  r  r  r  r   r   r   r  s   `````````````````  r0   _weight_checkedr    s3     2YY Y Y Yt Nr2   rj   )r  r   )r  r   r  )r  r   r  )r  r   r  r  )r  )r  c                   ,   \ rS rSrS rS rS rS r\R                  R                  SSSS	S
SSS\R                  /5      S 5       rS rS rS rSS jrS rS r\R                  R)                  \R,                  " 5       S:H  SS9S 5       rS rS rSrg)	TestCdisti  c                 Z   / SQU l         [        R                  [        R                  [        R                  [        R
                  /[        R                  [        R                  [        R
                  /[        R                  [        R
                  /[        R
                  /S.U l        g N)rK   rL   rM   rJ   rI   )booluintr   r[   rnd_eo_namesrV   r]   r\   r[   r   valid_upcastsselfs    r0   setup_methodTestCdist.setup_method  c    1 (*xx"**bjj&Q')ww

BJJ&G&(jj"**%=*,**7r2   c                    / SQ/ SQ/ SQ/n/ SQ/ SQ/ SQ/nS[         R                  " S5      S	.nS/S
-  n[        R                  " [        5         [        X#4SU0UD6  S S S 5        [        R                  " [        5         [        X#4S[        U5      0UD6  S S S 5        [        R                  " [        5         [        X#4SSU-   0UD6  S S S 5        [        R                  " [        5         [        X#/UQ7SU06  S S S 5        [        R                  " [        5         [        X#/UQ7S[        U5      06  S S S 5        [        R                  " [        5         [        X#/UQ7SSU-   06  S S S 5        g ! , (       d  f       GN = f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r         @333333?ffffff@333333@皙@r#  皙@g      @      @g       @g      @333333@g @g      @r+  r'  Q	@r   N0tV4l1D_p4raMr      r1   test_)rV   arangepytestraisesr   r   eval)r  r1   X1X2r   r   s         r0   test_cdist_extra_argsTestCdist.test_cdist_extra_args  sL    O_=O_=$(ryy|<v|]]9%"2262 &]]9%"8f88 &]]9%"<6!1<V< &]]9%"/$// &]]9%"55f5 &]]9%"9D96!19 &% &%%%%%%%%%%%sH   E8F
;F/F,!F=G8
F

F
F),
F:=
G
Gc           
         SS jn/ SQ/ SQ/ SQ/n/ SQ/ SQ/ S	Q/nS
[         R                  " S5      S.nS
/S-  n[        R                  " [        5         [        X#U5        S S S 5        [        R                  " [        5         [        X#U/UQ76   S S S 5        [        R                  " [        5         [        X#U40 UD6  S S S 5        [        R                  " [        5         [        X#USSS9  S S S 5        [        R                  " [        5         [        X#USSSS9  S S S 5        [        R                  " [        5         [        X#USSSS9  S S S 5        [        R                  " [        5         [        X#USSS5        S S S 5        [        R                  " [        5         [        X#USS5        S S S 5        [        R                  " [        5         [        X#US5        S S S 5        [        R                  " [        5         [        X#USSSS9  S S S 5        [        [        X#USSS9S5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNa= f! , (       d  f       GNC= f! , (       d  f       GN#= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nrj   r   c                     X#-   U-   $ rl   rg   r   yargkwargkwarg2s        r0   
_my_metric:TestCdist.test_cdist_extra_args_custom.<locals>._my_metric      ;''r2   r  r!  r%  r(  r*  r,  r-  r   r.  r0  r&  ffffff
@r?  r@  r?  皙?r1   r>  r@  皙@rj   r   )rV   r2  r3  r4  r   r   r   )r  rA  r6  r7  r   r   s         r0   test_cdist_extra_args_custom&TestCdist.test_cdist_extra_args_custom  s   	( O_=O_=$(ryy|<v|]]9%"*% &]]9%"*,t, &]]9%"*// &]]9%"*C< &]]9%"*a#6 &]]9%"*a#6 &]]9%"*c34 &]]9%"*c3/ &]]9%"*c* &]]9%"*cSA & 	bZ"%c347	9- &%%%%%%%%%%%%%%%%%%%sx   H3I4I$I)I;J3J%J1KK3
I
I
I&)
I8;
J

J
J.1
K 
K
K"c                     Sn[         S   n[         S   n[        X#S5      n[        X#S5      n[        XEU[        S:  S9  g )NV瞯<cdist-X1cdist-X2r   test_euclideanr   rtolr   rX   wcdist_no_constr   r   )r  epsr6  r7  Y1Y2s         r0   #test_cdist_euclidean_random_unicode-TestCdist.test_cdist_euclidean_random_unicode  sB    
^
^R[1R%56S'A+>r2   p皙?      ?r   Gz?r   gffffff@gffffff@c                 ~    Sn[         S   n[         S   n[        X4SUS9n[        X4SUS9n[        XVSU[        S:  S	9  g )
NvIh%<=rO  rP  r!   r[  test_minkowskir   r   )r   rS  r   rT  )r  r[  rV  r6  r7  rW  rX  s          r0   test_cdist_minkowski_random%TestCdist.test_cdist_minkowski_random  sJ     
^
^R[A6R%5;QS'A+Fr2   c                     Sn[         S   n[         S   n[        X#S5      nS nS[        R                  " X%" U5      -  X5" U5      -  R                  5      -
  n[        XFU[        S:  S9  g )	N+=rO  rP  r   c                 ^    [         R                  R                  U SS9R                  SS5      $ )Nrj   r   r   )rV   linalgr   r   )Xs    r0   norms1TestCdist.test_cdist_cosine_random.<locals>.norms  s&    99>>!!>,44R;;r2   rj   r   rR  )rX   wcdistrV   dotTr   r   )r  rV  r6  r7  rW  rj  rX  s          r0   test_cdist_cosine_random"TestCdist.test_cdist_cosine_random  sg    
^
^BH%	< eBi2b	>*<*<==S'A+>r2   c                    [         R                  " S/S//5      n[         R                  " S/S//5      n[        XSS9n[        US[         R                  " S5      /[         R                  " S5      [         R                  " S5      //5        [         R                  " S	S	/S
S	//5      n[         R                  " S	S/SS	/S	S//5      n[        XSS9n[         R                  " S5      n[        X4XD/SSU-  S//5        [
        R                  " [        5         [        S	S//SS//SS9  S S S 5        g ! , (       d  f       g = f)Nr   r      r    r1                 @      ?r   r   rj   r   )rV   r   r   r   sqrtr3  r4  rz   )r  x1x2distrt2s        r0   test_cdist_mahalanobis TestCdist.test_cdist_mahalanobis  s   XXsQCj!XXsQCj!RM2RWWS\2RWWS\2771:4NOP XX1vAw'(XX1v1v2w/0RM2ggajSAGQ@A ]]:&Aq6(aVH]; '&&s   D22
E c                    ^  " S S5      mU4S jn[         R                  " T" 5       //[        S9n[        X"US9nSn[	        X4[
        S:  S9  g )	Nc                       \ rS rSrSrg)6TestCdist.test_cdist_custom_notdouble.<locals>.myclassi	  rg   Nr   
__module____qualname____firstlineno____static_attributes__rg   r2   r0   myclassr  	      r2   r  c                 l   > [        U S   T5      (       a  [        US   T5      (       d  [        S5      egNr   zType has been changed+?
isinstancerz   r   r=  r  s     r0   rA  9TestCdist.test_cdist_custom_notdouble.<locals>._my_metric  3    adG,,JqtW4M4M !899r2   rC   rs  r  r   r   )rV   r   objectr   r	   r   )r  rA  rG   cdist_yright_yr  s        @r0   test_cdist_custom_notdouble%TestCdist.test_cdist_custom_notdouble  sI    	 		 xx')V4:6Ww{;r2   c           	          [        X4SU0UD6n[        X4S[        U5      0UD6n[        X4SSU-   0UD6n[        XgU[        S:  S9  [        XhU[        S:  S9  g ! [         Ga  n	U	R
                  n
[        S:  a   [        U
R                  5        [        U	5        [        R                  " U
5         [        X4SU0UD6  S S S 5        O! , (       d  f       O= f[        R                  " U
5         [        X4S[        U5      0UD6  S S S 5        O! , (       d  f       O= f[        R                  " U
5         [        X4SSU-   0UD6  S S S 5         S n	A	g ! , (       d  f        S n	A	g = fS n	A	ff = fNr1   r1  r   rR  )
r   r5  r   r   r   	__class__printr   r3  r4  )r  r6  r7  r1   rV  r   y1y2y3r   e_clss              r0   _check_calling_conventions$TestCdist._check_calling_conventions  s/   	Cr7f77Br=d6l=f=BrAg&6A&AB BgkBBgkB  
	AKKE{enn%au%b6V6v6 &%%u%b<T&\<V< &%%u%b@Wv%5@@ &%%%
	Af   6A E4(AE/4C	E/
C	E/3D	E/
D"	E/;EE/
E,	$E/,E//E4c                 ,   U R                    GH  n[        U   S S S2S S S24   n[        U   SS S2S S S24   n[        S:  a  [        SUSU5        US;   a  SU;  a  MR  U R	                  X4U5        US	:X  a\  [
        R                  " X4/5      R                  [
        R                  5      n[
        R                  " US
SS9nU R	                  X4XS9  M  US:X  d  M  [
        R                  " X4/5      R                  [
        R                  5      n[
        R                  " [
        R                  " UR                  5      5      n[
        R                  " [
        R                  R                  U5      R                  5      nU R	                  X4XS9  GM     g )Nrr  r   rj   r   	testing:  with: >   r   r'   r#   r%   r"   r  r$   r   r|   r   Vr    VI)r  rX   r   r  r  rV   vstackr   r   var
atleast_2dcovrn  r   rh  inv)r  r1   eo_namer6  r7  X12r  r  s           r0   test_cdist_calling_conventions(TestCdist.test_cdist_calling_conventions*  sL    ((G GSqS$B$Y'BGQTT3Q3Y'B{k69g> * *')++BF; %ii)00<FF3QQ////D=(ii)00<MM"&&-0XXbiimmA.001///F/ )r2   c           
         Sn[         S   U R                  S   4[         S   U R                  S   4[         S   U R                  S   4[         S   U R                  S	   4/nU Hc  nUS
   S S S2S S S24   nUS
   SS S2S S S24   n [        XVUS9nUS    H,  n[        U" U5      U" U5      US9n	[        XyU[        S:  S9  M.     Me     g ! [
         a  n
U
R                  n[        S:  a   [        UR                  5        [        U
5        US    HN  nU" U5      nU" U5      n[        R                  " U5         [        XUS9  S S S 5        M>  ! , (       d  f       MM  = f    S n
A
GM  S n
A
ff = f)NHz>rI   r  rM   r  rL   r   rK   r[   r   rr  r   rj   r   rs  rR  )rX   r  r   r   r   r   r  r  r   r3  r4  )r  r1   rV  teststestr6  r7  r  new_typer  r   r  X1newX2news                 r0   test_cdist_dtype_equivalence&TestCdist.test_cdist_dtype_equivalenceG  sy   '($*<*<V*DE'($*<*<V*DE&'););E)BC*+T-?-?	-JKM Da1dd#BaAss#BK2&1 !%QHx|Xb\&IB#BgkJ !(! 
  	;Q;%..)!H $QH$RLE$RLEu-e6: .--- !(	;s1   
C
E.A$E)9E	
E)
E
E))E.z	win-arm64znumpy#29442)reasonc                    Sn[         S   n[         S   nUR                  S   UR                  S   pe[        5       nUS:X  a  SUS'   [        R                  " XV4[        R
                  S9n[        X4U40 UD6n	[        X4U4S	U0UD6n
[        XU[        S
:  S9  [        XL 5        [        R                  " US-
  US-   4[        R
                  S9n[        R                  " [        5         [        X4U4S	U0UD6  S S S 5        [        R                  " S
U-  S
U-  4[        R
                  S9S S S
2S S S
24   n[        R                  " XV4[        R
                  SS9n[        R                  " [        5         [        X4U4S	U0UD6  S S S 5        [        R                  " [        5         [        X4U4S	U0UD6  S S S 5        [        R                  " XV4[        R                  S9n[        R                  " [        5         [        X4U4S	U0UD6  S S S 5        g ! , (       d  f       GN%= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrN  rO  rP  r   r!   r^  r[  rC   outr   rR  rj   F)rD   order)rX   r   dictrV   emptyr   r   r   r   r   r3  r4  rz   int64)r  r1   rV  r6  r7  out_rout_cr   out1rW  rX  out2out3out4out5s                  r0   test_cdist_outTestCdist.test_cdist_outb  s    
^
^xx{BHHQKu[ F3Kxxbjj926,V,266t6v6 	S'A+> 	
 xxq%'*"**=]]:&"&5d5f5 ' xxYE	""**669c3Q3h@xxbjjD]]:&"&5d5f5 ']]:&"&5d5f5 ' xxbhh7]]:&"&5d5f5 '& '& '&&&
 '&s0   *H7H*)H;?I
H'*
H8;
I	
Ic                 R   Sn[         S   S S S2S S S24   n[         S   S S S2S S S24   nUR                  5       nUR                  5       n[        X55        [        XF5        [        UR                  R
                  (       + 5        [        UR                  R
                  (       + 5        [        UR                  R
                  5        [        UR                  R
                  5        [        5       nUS:X  a  SUS'   [        X4U40 UD6n[        XVU40 UD6n	[        XU[        S:  S9  g )	NrN  rO  r   rP  r!   r^  r[  rR  )
rX   copyr	   r   flagsc_contiguousr  r   r   r   )
r  r1   rV  r6  r7  X1_copyX2_copyr   rW  rX  s
             r0   test_stridingTestCdist.test_striding  s     
^CaC1H%
^CaC1H%'')'') 	R!R!BHH)))*BHH)))***+**+[ F3K26,V,7V6v6S'A+>r2   c                 \   [         R                  R                  SS5      n[         R                  R                  SS5      n[        5       nUS:X  a  SUS'   [	        X#4SU0UD6nX#U4 Vs/ s H  n[
        R                  " U5      PM     nnAAA[        S U 5       5      (       d   eg s  snf )N
   r!   r^  r[  r1   c              3   2   #    U  H  o" 5       S L v   M     g 7frl   rg   )ro   weak_refs     r0   rq   0TestCdist.test_cdist_refcount.<locals>.<genexpr>  s     @i(8:%is   )rV   r   r   r  r   weakrefrefry   )r  r1   rx  ry  r   r  v	weak_refss           r0   test_cdist_refcountTestCdist.test_cdist_refcount  s    YY^^B#YY^^B#[ F3KB464V4 /1c];]W[[^]	;C@i@@@@@ <s   * B)r  r  Nr  )r   r  r  r  r  r8  rK  rY  r3  markparametrizerV   infrc  ro  r|  r  r  r  r  skipif	sysconfigget_platformr  r  r  r  rg   r2   r0   r  r    s    7:*"9H? [[S3c4#&S"&&#: ;G;G?<$<C*G:K6 [[	..0K?V%6 W%6N?4Ar2   r  c            	       
   \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	 5       r\R                  R                  S
 5       r\R                  R                  S 5       rS rS rS rS rS rS rS rS rS r\R                  R                  S 5       r\R                  R                  S 5       r\R                  R                  S 5       rS rS rS rS r \R                  R                  S 5       r!\R                  R                  S 5       r"\R                  R                  S 5       r#S r$S  r%S! r&\R                  R                  S" 5       r'\R                  R                  S# 5       r(\R                  R                  S$ 5       r)\R                  RU                  S%S&S'S(S)S*\+RX                  /5      S+ 5       r-S, r.S- r/S. r0\R                  R                  S/ 5       r1\R                  R                  S0 5       r2\R                  R                  S1 5       r3\R                  R                  S2 5       r4\R                  R                  S3 5       r5\R                  R                  S4 5       r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rO\R                  R                  SN 5       rPSO rQ\RSP 5       rSSXSQ jrTSR rUSS rVST rWSU rXSVrYgW)Y	TestPdisti  c                 Z   / SQU l         [        R                  [        R                  [        R                  [        R
                  /[        R                  [        R                  [        R
                  /[        R                  [        R
                  /[        R
                  /S.U l        g r  r  r  s    r0   r  TestPdist.setup_method  r  r2   c                    SS/SS/SS//nS[         R                  " S5      S.nS/S	-  n[        R                  " [        5         [        U4S
U0UD6  S S S 5        [        R                  " [        5         [        U4S
[        U5      0UD6  S S S 5        [        R                  " [        5         [        U4S
SU-   0UD6  S S S 5        [        R                  " [        5         [        U/UQ7S
U06  S S S 5        [        R                  " [        5         [        U/UQ7S
[        U5      06  S S S 5        [        R                  " [        5         [        U/UQ7S
SU-   06  S S S 5        g ! , (       d  f       GN = f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r"  r#  r&  r-  r   r.  r0  r1   r1  )rV   r2  r3  r4  r   r   r5  )r  r1   r6  r   r   s        r0   test_pdist_extra_argsTestPdist.test_pdist_extra_args  sJ   2hc
S#J/$(ryy|<v|]]9%".V.v. &]]9%"4T&\4V4 &]]9%"8Wv-88 &]]9%"+d+V+ &]]9%"1D1T&\1 &]]9%"55Wv-5 &% &%%%%%%%%%%%sH   E-6E?0F$F!F2G-
E<?
F
F!
F/2
G 
Gc           	         SS jnSS/SS/SS//nS	[         R                  " S5      S
.nS	/S-  n[        R                  " [        5         [        X!5        S S S 5        [        R                  " [        5         [        X!/UQ76   S S S 5        [        R                  " [        5         [        X!40 UD6  S S S 5        [        R                  " [        5         [        X!SSS9  S S S 5        [        R                  " [        5         [        X!SSSS9  S S S 5        [        R                  " [        5         [        X!SSSS9  S S S 5        [        R                  " [        5         [        X!SSS5        S S S 5        [        R                  " [        5         [        X!SS5        S S S 5        [        R                  " [        5         [        X!S5        S S S 5        [        R                  " [        5         [        X!SSSS9  S S S 5        [        [        X!SSS9S5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNx= f! , (       d  f       GN[= f! , (       d  f       GN>= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nrj   r   c                     X#-   U-   $ rl   rg   r<  s        r0   rA  :TestPdist.test_pdist_extra_args_custom.<locals>._my_metric  rC  r2   r   r   r"  r#  r&  r-  r.  r0  rD  rE  rF  rG  rH  rI  rJ  )rV   r2  r3  r4  r   r   r   )r  rA  r6  r   r   s        r0   test_pdist_extra_args_custom&TestPdist.test_pdist_extra_args_custom  s   	( 2hc
S#J/$(ryy|<v|]]9%"! &]]9%"(4( &]]9%"+F+ &]]9%"C8 &]]9%"!Qc2 &]]9%"!Qc2 &]]9%"#sC0 &]]9%"#s+ &]]9%"#& &]]9%"#S= & 	b"%c347	9- &%%%%%%%%%%%%%%%%%%%sx   
H8H/'III%3I7"J	JJ-2J>
H,/
H>
I
I"%
I47
J	
J
J*-
J;>
Kc                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  pdist-double-inppdist-euclideanr   rS  rX   wpdist_no_constr   r  rV  ri  Y_rightY_test1s        r0   test_pdist_euclidean_random%TestPdist.test_pdist_euclidean_random  3    !"&'!![1s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g r  r  r  s        r0   test_pdist_euclidean_random_u'TestPdist.test_pdist_euclidean_random_u  r  r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  rV   r[   rX   r  r   r  s        r0   #test_pdist_euclidean_random_float32-TestPdist.test_pdist_euclidean_random_float32  s<    JJr,-.&'!![1s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  rQ  r  r  r  rV  ri  r  Y_test2s        r0    test_pdist_euclidean_random_nonC*TestPdist.test_pdist_euclidean_random_nonC  s4    !"&'!!%56s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  irispdist-euclidean-irisr   r  r  r  s        r0    test_pdist_euclidean_iris_double*TestPdist.test_pdist_euclidean_iris_double  s1    vJ+,!![1s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr   r  r  r   r   rR  rV   r[   rX   r  r   r   r  s        r0   !test_pdist_euclidean_iris_float32+TestPdist.test_pdist_euclidean_iris_float32  @    JJr&z"+,!![1sGaKHr2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  rQ  r  r  r  s        r0   test_pdist_euclidean_iris_nonC(TestPdist.test_pdist_euclidean_iris_nonC#  s4     vJ+,!!%56s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  pdist-seuclideanr$   r  rX   r   r   r  s        r0   test_pdist_seuclidean_random&TestPdist.test_pdist_seuclidean_random-  s3    !"'(<(s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  [         R
                  " USSS9n[        USUS	9n[	        XcUS9  g )
Nr  r  r  r$   r  r   rj   r  r  )rV   r[   rX   r   r   r  )r  rV  ri  r  r  r  r	  s          r0   $test_pdist_seuclidean_random_float32.TestPdist.test_pdist_seuclidean_random_float324  sh    JJr,-.'(<(s3 FF111%<1-s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  test_seuclideanr  r  r  s        r0   !test_pdist_seuclidean_random_nonC+TestPdist.test_pdist_seuclidean_random_nonC@  s4    !"'(,-s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  pdist-seuclidean-irisr$   r  r  r  s        r0   test_pdist_seuclidean_iris$TestPdist.test_pdist_seuclidean_irisH  s1    vJ,-<(s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g )Nr   r  r&  r$   r  )rV   r[   rX   r   r   r  s        r0   "test_pdist_seuclidean_iris_float32,TestPdist.test_pdist_seuclidean_iris_float32O  s:    JJr&z",-<(s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r&  r"  r  r  r  s        r0   test_pdist_seuclidean_iris_nonC)TestPdist.test_pdist_seuclidean_iris_nonCW  s4     vJ,-,-s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  r  pdist-cosiner   r  rX   wpdistr   r  s        r0   test_pdist_cosine_random"TestPdist.test_pdist_cosine_random`  s2    !"^$H%s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r0  rV   r[   rX   r3  r   r  s        r0    test_pdist_cosine_random_float32*TestPdist.test_pdist_cosine_random_float32g  s;    JJr,-.^$H%s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r1  test_cosiner  r2  r  s        r0   test_pdist_cosine_random_nonC'TestPdist.test_pdist_cosine_random_nonCn  s2    !"^$M*s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr   r  pdist-cosine-irisr   r   r2  r  s        r0   test_pdist_cosine_iris TestPdist.test_pdist_cosine_irisv  s1    vJ()H%s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr   r  r?  r   r   r   r   )rV   r[   rX   r3  r   r   r  s        r0   test_pdist_cosine_iris_float32(TestPdist.test_pdist_cosine_iris_float32~  s@    JJr&z"()H%sGaKHr2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr   r  r?  r;  r   r2  r  s        r0   test_pdist_cosine_iris_nonC%TestPdist.test_pdist_cosine_iris_nonC  s1    vJ()M*s3r2   c                     [         R                  " [         R                  R                  S5      R	                  S5      5      n[         R
                  " X/5      n[        [        US5      S   S:  SS9  g )Ni9  [   r   r   z&cosine distance should be non-negative)msg)rV   absr   r   r   r  r   r3  )r  r   ri  s      r0   test_pdist_cosine_bounds"TestPdist.test_pdist_cosine_bounds  sZ     FF299((.33B78IIqfq(#A&!+<	>r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  r  pdist-cityblockr   r  r  r  s        r0   test_pdist_cityblock_random%TestPdist.test_pdist_cityblock_random  s3    !"&'!![1s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g rP  r  r  s        r0   #test_pdist_cityblock_random_float32-TestPdist.test_pdist_cityblock_random_float32  s<    JJr,-.&'!![1s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  rQ  test_cityblockr  r  r  s        r0    test_pdist_cityblock_random_nonC*TestPdist.test_pdist_cityblock_random_nonC  s4    !"&'!!%56s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nrf  r  pdist-cityblock-irisr   r  r  r  s        r0   test_pdist_cityblock_iris#TestPdist.test_pdist_cityblock_iris  s1    vJ+,!![1s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr   r  r\  r   r   rR  r  r  s        r0   !test_pdist_cityblock_iris_float32+TestPdist.test_pdist_cityblock_iris_float32  r  r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nrf  r  r\  rX  r  r  r  s        r0   test_pdist_cityblock_iris_nonC(TestPdist.test_pdist_cityblock_iris_nonC  s4     vJ+,!!%56s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  r  pdist-correlationr   r  r2  r  s        r0   test_pdist_correlation_random'TestPdist.test_pdist_correlation_random  s3    !"()M*s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g rf  r7  r  s        r0   %test_pdist_correlation_random_float32/TestPdist.test_pdist_correlation_random_float32  s<    JJr,-.()M*s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  rg  test_correlationr  r2  r  s        r0   "test_pdist_correlation_random_nonC,TestPdist.test_pdist_correlation_random_nonC  s4    !"()./s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  pdist-correlation-irisr   r  r2  r  s        r0   test_pdist_correlation_iris%TestPdist.test_pdist_correlation_iris  s1    vJ-.M*s3r2   c                     Sn[         S   n[        R                  " [         S   5      n[        US5      n[	        XCU[
        S:  S9  g )Nr  r  rr  r   r   rR  )rX   rV   r[   r3  r   r   r  s        r0   #test_pdist_correlation_iris_float32-TestPdist.test_pdist_correlation_iris_float32  s@    vJ**R 89:M*sGaKHr2   c                     [         R                  S:  a  SnO[        R                  " S5        [        S   n[        S   n[        US5      n[        XCWS9  g )Nl        r  zsee gh-16456r  rr  rn  r  )sysmaxsizer3  skiprX   r3  r   r  s        r0    test_pdist_correlation_iris_nonC*TestPdist.test_pdist_correlation_iris_nonC  sJ    ;;CKK'vJ-../s3r2   r[  r\  r]  r   r   皙	@c                 \    Sn[         S   n[        USUS9n[        USUS9n[        XESUS9  g )Nr`  r  r!   ra  rb  r   )r   rS  r  )r  r[  rV  ri  rW  rX  s         r0   test_pdist_minkowski_random_p'TestPdist.test_pdist_minkowski_random_p  s;    !"Qq1Q 0A6QS1r2   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g Nr  r  pdist-minkowski-3.2r!   r~  ra  r  r  r  s        r0   test_pdist_minkowski_random%TestPdist.test_pdist_minkowski_random  s5    !"*+!![C8s3r2   c                 ~    Sn[         R                  " [        S   5      n[        S   n[        USSS9n[	        XCUS9  g r  r  r  s        r0   #test_pdist_minkowski_random_float32-TestPdist.test_pdist_minkowski_random_float32  s>    JJr,-.*+!![C8s3r2   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g )Nr  r  r  rb  r~  ra  r  r  r  s        r0    test_pdist_minkowski_random_nonC*TestPdist.test_pdist_minkowski_random_nonC  s6    !"*+!!%5=s3r2   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g )Nr  r  pdist-minkowski-3.2-irisr!   r~  ra  r  r  r  s        r0   test_pdist_minkowski_3_2_iris'TestPdist.test_pdist_minkowski_3_2_iris  3    vJ/0!![C8s3r2   c                 ~    Sn[         R                  " [        S   5      n[        S   n[        USSS9n[	        XCUS9  g )Nr   r  r  r!   r~  ra  r  r  r  s        r0   %test_pdist_minkowski_3_2_iris_float32/TestPdist.test_pdist_minkowski_3_2_iris_float32  s<    JJr&z"/0!![C8s3r2   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g )Nr  r  r  rb  r~  ra  r  r  r  s        r0   "test_pdist_minkowski_3_2_iris_nonC,TestPdist.test_pdist_minkowski_3_2_iris_nonC#  4    vJ/0!!%5=s3r2   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g )Nr  r  pdist-minkowski-5.8-irisr!   r+  ra  r  r  r  s        r0   test_pdist_minkowski_5_8_iris'TestPdist.test_pdist_minkowski_5_8_iris+  r  r2   c                     Sn[         R                  " [        S   5      n[        S   n[        USSS9n[	        XCU[
        S:  S9  g )	Nr   r  r  r!   r+  ra  r   rR  r  r  s        r0   %test_pdist_minkowski_5_8_iris_float32/TestPdist.test_pdist_minkowski_5_8_iris_float323  sB    JJr&z"/0!![C8sGaKHr2   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g )Nr  r  r  rb  r+  ra  r  r  r  s        r0   "test_pdist_minkowski_5_8_iris_nonC,TestPdist.test_pdist_minkowski_5_8_iris_nonC;  r  r2   c                    [         R                  " / SQ5      R                  SS5      n[        USS9n[	        US[         R
                  " S5      [         R
                  " S5      [         R
                  " S5      [         R
                  " S5      [         R
                  " S	5      /5        [         R                  " S
S
/SS
/S
S/SS
/S
S//5      n[        USS9n[         R
                  " S5      n[	        X#X3USSU-  SSSU-  S/
5        [        R                  " [        5         [        S
S/SS//SS9  S S S 5        g ! , (       d  f       g = f)N)r   r   r   r)  r   rj   r    rs  rt  rv  ru  r   r   r   r   r   )
rV   r   r   r   r   rw  r3  r4  rz   r3  )r  r   rz  r{  s       r0   test_pdist_mahalanobis TestPdist.test_pdist_mahalanobisC  s   HH)*222q9Q}-sBGGCL"''#,!wws|RWWS\2773<I 	J HHq!fr1g1v1v2w?@Q}-ggajCc1a#gq!QWaPQ ]]:&QFQF#M: '&&s   "D<<
E
c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g NrN  rH   pdist-hammingr   r  r2  r  s        r0   test_pdist_hamming_random#TestPdist.test_pdist_hamming_randomT  s2    "#_%I&s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r7  r  s        r0   !test_pdist_hamming_random_float32+TestPdist.test_pdist_hamming_random_float32[  ;    JJr-./_%I&s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g NrN  rH   r  test_hammingr  r2  r  s        r0   test_pdist_hamming_random_nonC(TestPdist.test_pdist_hamming_random_nonCb  s2    "#_%N+s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  rV   r   rX   r3  r   r  s        r0   test_pdist_dhamming_random$TestPdist.test_pdist_dhamming_randomi  r  r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r7  r  s        r0   "test_pdist_dhamming_random_float32,TestPdist.test_pdist_dhamming_random_float32p  r  r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r  r  s        r0   test_pdist_dhamming_random_nonC)TestPdist.test_pdist_dhamming_random_nonCw  s;    JJr-./_%N+s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Ndy=r  pdist-jensenshannonr   r  r  r  s        r0   test_pdist_jensenshannon_random)TestPdist.test_pdist_jensenshannon_random~  s3    !"*+?+s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )N:0yE>r  r  r   r   rR  rV   r[   rX   r   r   r   r  s        r0   'test_pdist_jensenshannon_random_float321TestPdist.test_pdist_jensenshannon_random_float32  sB    JJr,-.*+?+sGaKHr2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  test_jensenshannonr  r  r  s        r0   $test_pdist_jensenshannon_random_nonC.TestPdist.test_pdist_jensenshannon_random_nonC  s4    !"*+/0s3r2   c                 |    [        5       (       a  SnOSn[        S   n[        S   n[        US5      n[        XCUS9  g )Ng&.=g-q=r  pdist-jensenshannon-irisr   r   )rh   rX   r   r   r  s        r0   test_pdist_jensenshannon_iris'TestPdist.test_pdist_jensenshannon_iris  s=    ;;CCvJ/0?+s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Ngư>r  r  r   r   rC  r  r  s        r0   %test_pdist_jensenshannon_iris_float32/TestPdist.test_pdist_jensenshannon_iris_float32  s@    JJr&z"/0?+sGaKHr2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Ng-C6
?r  r  r  r  r  r  s        r0   "test_pdist_jensenshannon_iris_nonC,TestPdist.test_pdist_jensenshannon_iris_nonC  s2    vJ/0/0s3r2   c                     [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[	        USSSS9  [	        USSSS9  g Nrj   r   rj   rj   r   rj   rj   r   rj   rj   rC   333333?r   绽|=rS  r   	wmatchingrV   r   r  r   r  mm2s      r0   test_pdist_matching_mtica1$TestPdist.test_pdist_matching_mtica1  sd    bhh/hh/1rxxt<xxt<>3QU3Cae4r2   c                     [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[	        USSSS9  [	        USSSS9  g Nrj   r   rj   rj   rj   r   rC   UUUUUU?r   r  r  r  r  s      r0   test_pdist_matching_mtica2$TestPdist.test_pdist_matching_mtica2  sd    bhhy)XXi(*rxx	6hhy575qu5E6r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g )Nr  r  rC   r   r   r  r  wyulerV   r   r  r   r  r   r  s      r0   test_pdist_yule_mtica1 TestPdist.test_pdist_yule_mtica1  sr    "((?+((?+-288O4888O48:Q;!H1151AAE2r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g )Nr  r  rC   r   r   r  r  r  r  s      r0   test_pdist_yule_mtica2 TestPdist.test_pdist_yule_mtica2  sr    "((9%((9%'288IT288IT24Q;!H1151AAE2r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g )	Nr  r  rC   r   g۶m۶m?r   r  r  wdicerV   r   r  r   r  r   r  s      r0   test_pdist_dice_mtica1 TestPdist.test_pdist_dice_mtica1  sr    "((?+((?+-288O4888O48:Q;!H5qu5E6r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g )	Nr  r  rC   r   rv  r   r  r  r  r  s      r0   test_pdist_dice_mtica2 TestPdist.test_pdist_dice_mtica2  sr    "((9%((9%'288IT288IT24Q;!H3QU3Cae4r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g 	Nr  r  rC   r   g      ?r   r  r  )r%   rV   r   r  r   r  r   r  s      r0   test_pdist_sokalsneath_mtica1'TestPdist.test_pdist_sokalsneath_mtica1  s    113/>/>@Q;!H5qu5E6r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g 	Nr  r  rC   r   g?r   r  r  )wsokalsneathrV   r   r  r   r  r   r  s      r0   test_pdist_sokalsneath_mtica2'TestPdist.test_pdist_sokalsneath_mtica2  sr    ),),."((9D9((9D9;Q;!H5qu5E6r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g r  wrogerstanimotorV   r   r  r   r  r   r  s      r0    test_pdist_rogerstanimoto_mtica1*TestPdist.test_pdist_rogerstanimoto_mtica1  ss    BHH_5HH_57RXXoTBXXoTBDQ;!H5qu5E6r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g r  r  r  s      r0    test_pdist_rogerstanimoto_mtica2*TestPdist.test_pdist_rogerstanimoto_mtica2  sr    BHHY/HHY/1RXXit<XXit<>Q;!H5qu5E6r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g )	Nr  r  rC   r   r  r   r  r  wrussellraorV   r   r  r   r  r   r  s      r0   test_pdist_russellrao_mtica1&TestPdist.test_pdist_russellrao_mtica1  r  r2   c                 J   [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[        S:  a  [        U5        [        USSSS9  [        USSSS9  g )	Nr  r  rC   r   r  r   r  r  r  r  s      r0   test_pdist_russellrao_mtica2&TestPdist.test_pdist_russellrao_mtica2  sr    ++-)48)48:Q;!H5qu5E6r2   c                     [         S   n[        S:  a   [        UR                  UR                  5        Sn[        US5      n[        US5      n[        X4U[        S:  S9  g )Nr  r   rN  r   test_canberrarR  )rX   r   r  r   rD   r  r   )r  DrV  r  r  s        r0   test_pdist_canberra_match#TestPdist.test_pdist_canberra_match#  sQ    vJQ;!''177#Q
+Q0S'A+>r2   c                 P    Sn[        S/S/4S5      nSn[        X#U[        S:  S9  g )Nr  rD  r$  r   gd>@1?r   rC  )r  r   r   )r  rV  pdist_yr  s       r0   test_pdist_canberra_ticket_711(TestPdist.test_pdist_canberra_ticket_711-  s2     !C53%.*=sGaKHr2   c                    ^  " S S5      mU4S jn[         R                  " T" 5       /T" 5       //[        S9n[        X!S9nSn[	        X4[
        S:  S9  g )	Nc                       \ rS rSrSrg)6TestPdist.test_pdist_custom_notdouble.<locals>.myclassi8  rg   Nr  rg   r2   r0   r  r   8  r  r2   r  c                 l   > [        U S   T5      (       a  [        US   T5      (       d  [        S5      egr  r  r  s     r0   rA  9TestPdist.test_pdist_custom_notdouble.<locals>._my_metric;  r  r2   rC   rs  r  r   r  )rV   r   r  r   r	   r   )r  rA  rG   r  r  r  s        @r0   test_pdist_custom_notdouble%TestPdist.test_pdist_custom_notdouble5  sN    	 		 xx')wyk2&A0Ww{;r2   c           	          [        U4SU0UD6n[        U4S[        U5      0UD6n[        U4SSU-   0UD6n[        XVU[        S:  S9  [        XWU[        S:  S9  g ! [         Ga  nUR
                  n	[        S:  a   [        U	R                  5        [        U5        [        R                  " U	5         [        U4SU0UD6  S S S 5        O! , (       d  f       O= f[        R                  " U	5         [        U4S[        U5      0UD6  S S S 5        O! , (       d  f       O= f[        R                  " U	5         [        U4SSU-   0UD6  S S S 5         S nAg ! , (       d  f        S nAg = fS nAff = fr  )
r   r5  r   r   r   r  r  r   r3  r4  )
r  ri  r1   rV  r   r  r  r  r   r  s
             r0   r  $TestPdist._check_calling_conventionsD  s-   	Cq2262Bq8f88Bq<6!1<V<B BgkBBgkB  
	<KKE{enn%au%a11&1 &%%u%a7V77 &%%u%a;& 0;F; &%%%
	<r  c                    U R                    GH@  n[        U   S S S2S S S24   n[        S:  a  [        SUSU5        US;   a  SU;  a  M>  U R	                  X15        US:X  aE  [
        R                  " UR                  [
        R                  5      SS	S
9nU R	                  X1US9  M  US:X  d  M  [
        R                  " [
        R                  " UR                  [
        R                  5      R                  5      5      n[
        R                  " [
        R                  R                  U5      R                  5      nU R	                  X1US9  GMC     g )Nrr  r   r  r  >   r   r'   matchingr#   r%   r"   r  r$   r   rj   r  r  r    r  )r  rX   r   r  r  rV   r  r   r   r  r  rn  r   rh  r  )r  r1   r  ri  r  r  s         r0   test_pdist_calling_conventions(TestPdist.test_pdist_calling_conventionsY  s   
 ((G 7CaC1H%A{k69g> ) )-37-B++A6 %FF188BJJ/aa@//Q/?=(MM"&&"**)=)?)?"@AXXbiimmA.001//b/A' )r2   c           	         Sn[         S   U R                  S   4[         S   U R                  S   4[         S   U R                  S   4[         S   U R                  S	   4/nU HK  nUS
   S S S2S S S24   n [        XQS9nUS    H%  n[        U" U5      US9n[        XhU[        S:  S9  M'     MM     g ! [
         a  n	U	R                  n
[        S:  a   [        U
R                  5        [        U	5        US    HE  nU" U5      n[        R                  " U
5         [        XS9  S S S 5        M5  ! , (       d  f       MD  = f    S n	A	M  S n	A	ff = f)Nr  rI   r  rM   r  rL   r   rK   r[   r   rr  r   rs  rj   rR  )rX   r  r   r   r   r   r  r  r   r3  r4  )r  r1   rV  r  r  r6  r  r  r  r   r  r7  s               r0   test_pdist_dtype_equivalence&TestPdist.test_pdist_dtype_equivalences  sH   '($*<*<V*DE'($*<*<V*DE&'););E)BC*+T-?-?	-JKM Da1cc"BK2- !%QHx|F;B#BgkJ !(   1Q;%..)!H $QH!"Bu-b0 .--- !(1s1   7	B33
E=AE
D-	#
E-
D<7
EEc                    Sn[         S   S S S2S S S24   n[        UR                  S   UR                  S   S-
  -  S-  5      n[        5       nUS:X  a  SUS	'   [        R
                  " U[        R                  S
9n[        X140 UD6n[        X14SU0UD6n[        XUS9  [        XL 5        [        R
                  " US-   [        R                  S
9n	[        R                  " [        5         [        X14SU	0UD6  S S S 5        [        R
                  " SU-  [        R                  S
9S S S2   n
[        R                  " [        5         [        X14SU
0UD6  S S S 5        [        R
                  " U[        R                  S
9n[        R                  " [        5         [        X14SU0UD6  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       g = f)NrN  rK   rr  r   r   rj   r!   r^  r[  rC   r  r  r   )rX   r   r   r  rV   r  r   r   r   r   r3  r4  rz   r  )r  r1   rV  ri  out_sizer   r  r  r  r  r  r  s               r0   test_pdist_outTestPdist.test_pdist_out  s   $%cc3Q3h/
aggaj1n5:;[ F3Kxx

3,V,6t6v6 	s3 	  xx1BJJ7]]:&!000 ' xxHBJJ7!<]]:&!000 ' xx1]]:&!000 '& '&
 '&
 '&s$   -F6
GG6
G
G
G&c                 T   Sn[         S   S S S2S S S24   nUR                  5       n[        UR                  R                  (       + 5        [        UR                  R                  5        [        5       nUS:X  a  SUS'   [        X140 UD6n[        XA40 UD6n[        XgU[        S:  S9  g )	NrN  rK   rr  r   r!   r^  r[  rR  )	rX   r  r   r  r  r  r   r   r   )r  r1   rV  ri  X_copyr   rW  rX  s           r0   r  TestPdist.test_striding  s     $%cc3Q3h/ 	AGG((()))*[ F3K1''6,V,S'A+>r2   r  Nr  )Zr   r  r  r  r  r  r  r  r  r  r
  r3  r  slowr  r  r  r  r  r#  r'  r*  r-  r4  r8  r<  r@  rD  rG  rM  rR  rU  rY  r]  r`  rc  rh  rk  ro  rs  rv  r|  r  rV   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,  r0  r  r  rg   r2   r0   r  r    s   76&!9F4444 [[4 4 [[I I [[4 44
44444444 [[4 4 [[I I [[4 4>444 [[4 4 [[I I [[4 4444 [[4 4 [[I I [[4 4 [[S3c3RVV"DE2 F2444 [[4 4 [[4 4 [[4 4 [[4 4 [[I I [[4 4;"4444444I4
4I4573375777777 [[? ?I < <C*B4K2 1D?r2   r  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  R                  S
5      \R                  R                  S\\/5      S 5       5       rS rSrg)TestSomeDistanceFunctionsi  c                 v    [         R                  " / SQ5      n[         R                  " / SQ5      nX4/U l        g )Nr  r   r   r)  )rV   r   cases)r  r   r=  s      r0   r  &TestSomeDistanceFunctions.setup_method  s)    HH_%HH_%fX
r2   c           	         U R                    H]  u  p[        XSS9n[        US5        [        XSS9n[        US5        [        XSS9n[        US5        [        XSS9n[        US	5        M_     [        R                  " S
S/5      n[        R                  " SS/5      n[        [        Xx5      [        UR                  S5      UR                  S5      5      5        g )Nrj   ra  r         ?gqaz@r   gw@r]  gR"6@i`  i  i^  i  uint16)r:  r!   r
   rV   r   r	   r   )	r  r   r=  dist1dist1p5dist2dist0p25rp   r   s	            r0   rb  (TestSomeDistanceFunctions.test_minkowski  s    JJDAaa(Es+,G)CDaa(Ez2 .H*BC  HHc3Z HHc3Z Yq_qxx1188H3EF	Hr2   c                     U R                    H0  u  p[        X5      n[        U[        R                  " S5      5        M2     g )Nrr  )r:  
weuclideanr
   rV   rw  r  r   r=  rz  s       r0   rQ  (TestSomeDistanceFunctions.test_euclidean  s.    JJDAa#Dbggaj1 r2   c                 \    U R                    H  u  p[        X5      n[        US5        M     g )Nr)  )r:  wsqeuclideanr
   rF  s       r0   test_sqeuclidean*TestSomeDistanceFunctions.test_sqeuclidean  s&    JJDA%Dc* r2   c           
          U R                    HM  u  p[        X5      n[        USS[        R                  " S5      [        R                  " S5      -  -  -
  5        MO     g )Nr   g      2@      )r:  wcosiner
   rV   rw  rF  s       r0   r;  %TestSomeDistanceFunctions.test_cosine  sD    JJDA1=DcDBGGBK"''"+4M,N&NO r2   c                     [        [        SS/SS/SS9[        5      (       d   e[        [        SS/SS/5      [        5      (       d   eg )Nrj   F)centered)r  wcorrelationfloatrO  r  s    r0   test_cosine_output_dtype2TestSomeDistanceFunctions.test_cosine_output_dtype  sH    ,1v1vFNNNN'1a&1a&159999r2   c           
         [         R                  " / SQ5      n[         R                  " / SQ5      nU R                   HK  u  p4[        X45      n[	        US[         R
                  " X5      [        U5      [        U5      -  -  -
  5        MM     g )N)      r   r   )UUUUUUrY  gUUUUUU@r   )rV   r   r:  rS  r
   rm  r   )r  xmymr   r=  rz  s         r0   rn  *TestSomeDistanceFunctions.test_correlation  sb    XXn%XX9:JJDA%DcBFF2Nd2hb>Q,R&RS r2   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        X5      nSUs=::  a6  S[         R                  " [         R                  5      R
                  -  ::  d   e   eg )N)%rt  rt  rt  rt  rt  rt         rt  rt  rt  r^  r^  r^  rt  r^  rt  r^  rt  rt  rX  r^  rt  r   rt  rt  r^  rt  rt  r^  rt  r^  r^  r^  r^  r^  r^  rt  )%r   r   r   r   r   r   rX  r   r   r   rX  rX  rX  r   rX  r   rX  r   r   rt  rX  r   r   r   r   rX  r   r   rX  r   rX  rX  rX  rX  rX  rX  r   r   r  )rV   r   r   finfor   rV  rF  s       r0   test_correlation_positive3TestSomeDistanceFunctions.test_correlation_positive  sk    HH I J HH I J 1 D9B"**!5!9!9999999r2   zignore:Casting complexfuncc                     SS/nSS/n[         R                  " [        SS9   U" X#5        S S S 5        g ! , (       d  f       g = f)Ny      ?        y       @        y      @        y      @        realmatch)r3  r4  r   )r  rb  r   r=  s       r0   test_corr_dep_complex/TestSomeDistanceFunctions.test_corr_dep_complex  s7     4L4L]]9F3J 433s	   	4
Ac                 $   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ/ SQ/ SQ/5      nU R                   H1  u  p[        XU5      n[	        U[         R
                  " S5      5        M3     g )Nr  r9  )r   r   rt  )r   r   r   )rt  r   r   g      @)rV   r   r:  r    r
   rw  )r  r   r=  virz  s        r0   test_mahalanobis*TestSomeDistanceFunctions.test_mahalanobis  sa    HH_%HH_%XXIJJJDAqR(Dbggcl3 r2   )r:  N)r   r  r  r  r  rb  rQ  rJ  r;  rU  rn  r`  r3  r  filterwarningsr  r   r   rg  rk  r  rg   r2   r0   r7  r7    st    H&2
+
P
:
T	: [[ 89[[Vk6%:; < :4r2   r7  c                       \ rS rSr\R
                  \R                  \R                  \R                  \	/r
S rS rS rS rS rS rSrg	)
TestSquareFormi  c                 L    U R                    H  nU R                  U5        M     g rl   )checked_dtypescheck_squareform_matrixr  rD   s     r0   test_squareform_matrix%TestSquareForm.test_squareform_matrix       ((E((/ )r2   c                 L    U R                    H  nU R                  U5        M     g rl   )rq  check_squareform_vectorrs  s     r0   test_squareform_vector%TestSquareForm.test_squareform_vector  rv  r2   c                    [         R                  " SUS9n[        U5      n[        UR                  S5        [        UR
                  U5        [         R                  " SUS9n[        U5      n[        UR                  S5        [        UR
                  U5        [         R                  " SS/SS//US9n[        U5      n[        UR                  S5        [        UR
                  U5        [        U[         R                  " S/US95        g )N)r   r   rC   r   rj   rj   r   g@)rj   )rV   zerosr   r	   r   rD   r   r   )r  rD   ArAs       r0   rr  &TestSquareForm.check_squareform_matrix  s    HHV5)]RXXt$RXXu%HHV5)]RXXt$RXXu%HHq#ha)7]RXXt$RXXu%2rxxU;<r2   c                    [         R                  " SUS9n[        U5      n[        UR                  S5        [        UR
                  U5        [        US//5        [         R                  " S/US9n[        U5      n[        UR                  S5        [        UR
                  U5        [        U[         R                  " SS/SS//US95        g )Nr|  rC   r}  r   g @)r   r   )rV   r~  r   r	   r   rD   r   r   )r  rD   r  rvs       r0   rx  &TestSquareForm.check_squareform_vector0  s    HHT']RXXv&RXXu%2u%HHcU%(]RXXv&RXXu%2rxx!SC8(<EJKr2   c                 L    [        SS5       H  nU R                  U5        M     g )Nr   rr  )r{   check_squareform_multi_matrixr  ns     r0   test_squareform_multi_matrix+TestSquareForm.test_squareform_multi_matrix=  s     q!A..q1 r2   c                    [         R                  R                  US5      n[        U5      n[	        [        UR                  5      S5        [        U5      n[        U5      nUR                  nSn[        S:  a+  [        UR                  UR                  UR                  5        [	        [        U5      S5        [	        [        UR                  5      S5        [	        US   US   5        [        SUS   5       HJ  n[        US-   US   5       H1  n	X:w  a  [	        XHU	4   X7   5        US-  nM!  [	        XHU	4   S5        M3     ML     g )N   rj   r   r   r   )rV   r   r   r  r	   lenr   r   r   r  r{   )
r  r  ri  Yr  Yrskr   js
             r0   r  ,TestSquareForm.check_squareform_multi_matrixA  s    IINN1a AS\1%qM]GGa<!''177BHH-SVQS]A&QqT1Q4 q!A$A1q5!A$'6 a4!$/FA a4!, (  r2   rg   N)r   r  r  r  rV   r   r[   int32int8r  rq  rt  ry  rr  rx  r  r  r  rg   r2   r0   ro  ro    sA    jj"**bhhFN00="L2-r2   ro  c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestNumObsYiW  c                     [        SS5       HC  n[        R                  R                  US5      n[	        U5      n[        [        U5      U5        ME     g )Nr   r  r  )r{   rV   r   r   r  r	   r   )r  r  ri  r  s       r0   test_num_obs_y_multi_matrix'TestNumObsY.test_num_obs_y_multi_matrixY  s>    q"A		q!$A"A1q) r2   c                     [         R                  " [        5         U R                  S5        S S S 5        g ! , (       d  f       g = fNrj   )r3  r4  rz   check_yr  s    r0   test_num_obs_y_1TestNumObsY.test_num_obs_y_1_  s'     ]]:&LLO '&&s	   6
Ac                 8    [        U R                  S5      5        g Nr   r   r  r  s    r0   test_num_obs_y_2TestNumObsY.test_num_obs_y_2e  s     	Q r2   c                 8    [        U R                  S5      5        g )Nr   r  r  s    r0   test_num_obs_y_3TestNumObsY.test_num_obs_y_3j      Q r2   c                 8    [        U R                  S5      5        g Nr  r  r  s    r0   test_num_obs_y_4TestNumObsY.test_num_obs_y_4m  r  r2   c                 L    [        SS5       H  nU R                  U5        M     g )Nrr     )r{   minit)r  r   s     r0   test_num_obs_y_5_10TestNumObsY.test_num_obs_y_5_10p  s    q"AJJqM r2   c                 0   [        5       n[        SS5       H  nUR                  X"S-
  -  S-  5        M     [        SS5       H>  nX1;  d  M
  [        R                  " [
        5         U R                  U5        S S S 5        M@     g ! , (       d  f       MR  = fNr   r  rj   rr  i   setr{   addr3  r4  rz   bad_yr  rp   r  r   s       r0   test_num_obs_y_2_100 TestNumObsY.test_num_obs_y_2_100t  sl     Eq"AEE!1u+/" q#Az]]:.JJqM /. ..   'B
B	c                 8    [        U R                  U5      5        g rl   r  r  s     r0   r  TestNumObsY.minit  r  r2   c                 V    [         R                  R                  U5      n[        U5      $ rl   )rV   r   r   r   r  r  r=  s      r0   r  TestNumObsY.bad_y  s    IINN1|r2   c                 <    [        U R                  U5      5      U:H  $ rl   )r   make_yr  s     r0   r  TestNumObsY.check_y  s    Q(A--r2   c                 P    [         R                  R                  XS-
  -  S-  5      $ Nrj   r   rV   r   r   r  s     r0   r  TestNumObsY.make_y  s     yy~~qE{q011r2   rg   N)r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rg   r2   r0   r  r  W  s9    *!
!!	"!.2r2   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestNumObsDMi  c                    [        SS5       Hx  n[        R                  R                  US5      n[	        U5      n[        U5      n[        S:  a   [        UR                  UR                  5        [        [        U5      U5        Mz     g )Nrj   r  r  r   )r{   rV   r   r   r  r   r   r  r   r	   r   )r  r  ri  r  r  s        r0   test_num_obs_dm_multi_matrix)TestNumObsDM.test_num_obs_dm_multi_matrix  s`    q"A		q!$A"A1A!|aggqww'A* r2   c                 8    [        U R                  S5      5        g )Nr   r   check_Dr  s    r0   test_num_obs_dm_0TestNumObsDM.test_num_obs_dm_0      Q r2   c                 8    [        U R                  S5      5        g r  r  r  s    r0   test_num_obs_dm_1TestNumObsDM.test_num_obs_dm_1  r  r2   c                 8    [        U R                  S5      5        g r  r  r  s    r0   test_num_obs_dm_2TestNumObsDM.test_num_obs_dm_2  r  r2   c                 8    [        U R                  S5      5        g r  r  r  s    r0   test_num_obs_dm_3TestNumObsDM.test_num_obs_dm_3  r  r2   c                 8    [        U R                  S5      5        g r  r  r  s    r0   test_num_obs_dm_4TestNumObsDM.test_num_obs_dm_4  r  r2   c                 <    [        U R                  U5      5      U:H  $ rl   )r   make_Dr  s     r0   r  TestNumObsDM.check_D  s    $++a.)Q..r2   c                 @    [         R                  R                  X5      $ rl   r  r  s     r0   r  TestNumObsDM.make_D  s    yy~~a##r2   rg   N)r   r  r  r  r  r  r  r  r  r  r  r  r  rg   r2   r0   r  r    s*    +!!!!!/$r2   r  c                     [        U SS9$ NT)throw)r   )r  s    r0   is_valid_dm_throwr    s    q%%r2   c                   b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)TestIsValidDMi  c                     [         R                  " S[         R                  S9n[        R                  " [
        5         [        U5        S S S 5        g ! , (       d  f       g = f)Nrr  rC   rV   r~  r   r3  r4  rz   r  r  r  s     r0   $test_is_valid_dm_improper_shape_1D_E2TestIsValidDM.test_is_valid_dm_improper_shape_1D_E  s6    HHT,]]:&a  '&&   A
A!c                 t    [         R                  " S[         R                  S9n[        [	        U5      S5        g )Nr  rC   FrV   r~  r   r	   r   r  s     r0   $test_is_valid_dm_improper_shape_1D_F2TestIsValidDM.test_is_valid_dm_improper_shape_1D_F  s$    HHT,[^U+r2   c                     [         R                  " S[         R                  S9n[        R                  " [
        5         [        U5        S S S 5        g ! , (       d  f       g = fNr   r   r   rC   r  r  s     r0   $test_is_valid_dm_improper_shape_3D_E2TestIsValidDM.test_is_valid_dm_improper_shape_3D_E  s6    HHYbjj1]]:&a  '&&r  c                 t    [         R                  " S[         R                  S9n[        [	        U5      S5        g Nr  rC   Fr  r  s     r0   $test_is_valid_dm_improper_shape_3D_F2TestIsValidDM.test_is_valid_dm_improper_shape_3D_F  s$    HHYbjj1[^U+r2   c                    [         R                  R                  S5      n[        U5      n[	        SS5       H	  nSX#U4'   M     [
        R                  " [        5         [        U5        S S S 5        g ! , (       d  f       g = f)Nr  r   rr  r   )	rV   r   r   r   r{   r3  r4  rz   r  r  r=  r  r   s       r0   #test_is_valid_dm_nonzero_diagonal_E1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_E  sX    IINN2qMq!AAdG ]]:&a  '&&s   A33
Bc                     [         R                  R                  S5      n[        U5      n[	        SS5       H	  nSX#U4'   M     [        [        U5      S5        g )Nr  r   rr  r   F)rV   r   r   r   r{   r	   r   r   s       r0   #test_is_valid_dm_nonzero_diagonal_F1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_F  sF    IINN2qMq!AAdG [^U+r2   c                     [         R                  R                  S5      n[        U5      nUS   S-   US'   [        R
                  " [        5         [        U5        S S S 5        g ! , (       d  f       g = f)Nr  r   rj   rj   rj   r   )rV   r   r   r   r3  r4  rz   r  r  r=  r  s      r0   test_is_valid_dm_asymmetric_E+TestIsValidDM.test_is_valid_dm_asymmetric_E  sN    IINN2qMD'A+$]]:&a  '&&s   A%%
A3c                     [         R                  R                  S5      n[        U5      nUS   S-   US'   [	        [        U5      S5        g )Nr  r  rj   r  FrV   r   r   r   r	   r   r	  s      r0   test_is_valid_dm_asymmetric_F+TestIsValidDM.test_is_valid_dm_asymmetric_F  s<    IINN2qMD'A+$[^U+r2   c                 t    [         R                  " S[         R                  S9n[        [	        U5      S5        g )Nr}  rC   Tr  r  s     r0   test_is_valid_dm_correct_1_by_1-TestIsValidDM.test_is_valid_dm_correct_1_by_1  s$    HHV2::.[^T*r2   c                     [         R                  R                  S5      n[        U5      n[	        [        U5      S5        g )Nrj   Tr  r	  s      r0   test_is_valid_dm_correct_2_by_2-TestIsValidDM.test_is_valid_dm_correct_2_by_2  +    IINN1qM[^T*r2   c                     [         R                  R                  S5      n[        U5      n[	        [        U5      S5        g Nr   Tr  r	  s      r0   test_is_valid_dm_correct_3_by_3-TestIsValidDM.test_is_valid_dm_correct_3_by_3  r  r2   c                     [         R                  R                  S5      n[        U5      n[	        [        U5      S5        g )N   Tr  r	  s      r0   test_is_valid_dm_correct_4_by_4-TestIsValidDM.test_is_valid_dm_correct_4_by_4  r  r2   c                     [         R                  R                  S5      n[        U5      n[	        [        U5      S5        g )Nr  Tr  r	  s      r0   test_is_valid_dm_correct_5_by_5-TestIsValidDM.test_is_valid_dm_correct_5_by_5  s+    IINN2qM[^T*r2   rg   N)r   r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r   r  rg   r2   r0   r  r    sC    !
,!
,!,!,++
+
+
+r2   r  c                     [        U SS9$ r  )r   )r=  s    r0   is_valid_y_throwr#    s    at$$r2   c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestIsValidYi  c                     [         R                  " S[         R                  S9n[        R                  " [
        5         [        U5        S S S 5        g ! , (       d  f       g = f)Nr   r   rC   rV   r~  r   r3  r4  rz   r#  r  r=  s     r0   #test_is_valid_y_improper_shape_2D_E0TestIsValidY.test_is_valid_y_improper_shape_2D_E  s6    HHWBJJ/]]:&Q '&&r  c                 t    [         R                  " S[         R                  S9n[        [	        U5      S5        g )Nr'  rC   FrV   r~  r   r	   r   r)  s     r0   #test_is_valid_y_improper_shape_2D_F0TestIsValidY.test_is_valid_y_improper_shape_2D_F  s$    HHWBJJ/Z]E*r2   c                     [         R                  " S[         R                  S9n[        R                  " [
        5         [        U5        S S S 5        g ! , (       d  f       g = fr  r(  r)  s     r0   #test_is_valid_y_improper_shape_3D_E0TestIsValidY.test_is_valid_y_improper_shape_3D_E  s6    HHYbjj1]]:&Q '&&r  c                 t    [         R                  " S[         R                  S9n[        [	        U5      S5        g r  r-  r)  s     r0   #test_is_valid_y_improper_shape_3D_F0TestIsValidY.test_is_valid_y_improper_shape_3D_F  s$    HHYbjj1Z]E*r2   c                 P    U R                  S5      n[        [        U5      S5        g )Nr   Tcorrect_n_by_nr	   r   r)  s     r0   test_is_valid_y_correct_2_by_2+TestIsValidY.test_is_valid_y_correct_2_by_2       "Z]D)r2   c                 P    U R                  S5      n[        [        U5      S5        g r  r7  r)  s     r0   test_is_valid_y_correct_3_by_3+TestIsValidY.test_is_valid_y_correct_3_by_3  r;  r2   c                 P    U R                  S5      n[        [        U5      S5        g )Nr  Tr7  r)  s     r0   test_is_valid_y_correct_4_by_4+TestIsValidY.test_is_valid_y_correct_4_by_4   r;  r2   c                 P    U R                  S5      n[        [        U5      S5        g )Nrr  Tr7  r)  s     r0   test_is_valid_y_correct_5_by_5+TestIsValidY.test_is_valid_y_correct_5_by_5$  r;  r2   c                 0   [        5       n[        SS5       H  nUR                  X"S-
  -  S-  5        M     [        SS5       H>  nX1;  d  M
  [        R                  " [
        5         U R                  U5        S S S 5        M@     g ! , (       d  f       MR  = fr  r  r  s       r0   test_is_valid_y_2_100"TestIsValidY.test_is_valid_y_2_100(  sj    Eq"AEE!1u+/" q#Az]]:.JJqM /. ..r  c                 T    [         R                  R                  U5      n[        USS9$ r  )rV   r   r   r   r  s      r0   r  TestIsValidY.bad_y1  s!    IINN1!4((r2   c                 T    [         R                  R                  XS-
  -  S-  5      nU$ r  r  r  s      r0   r8  TestIsValidY.correct_n_by_n5  s$    IINNAQKA-.r2   rg   N)r   r  r  r  r*  r.  r1  r4  r9  r=  r@  rC  rF  r  r8  r  rg   r2   r0   r%  r%    s9    
 
+ 
+****")r2   r%  r[  )g      $g      rt  c                    [         R                  " [        5         [        SS/SS/U 5        S S S 5        [         R                  " [        5         [        SS/SS/U SS/5        S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)Nrj   r   r   r  )r3  r4  rz   r!   ra  s    r0   
test_bad_prM  :  sg     
z	"1a&1a&!$ 
#	z	"1a&1a&!aV, 
#	" 
#	"	"	"s   A-A>-
A;>
Bc                      [         R                  " [        5         [        / SQ/ SQ5        S S S 5        g ! , (       d  f       g = f)N)FFF)r3  r4  rz   r%   rg   r2   r0   test_sokalsneath_all_falserO  C  s&    	z	")+@A 
#	"	"s	   5
Ac                  l    [        [        / SQ/ SQ5      S5        [        [        / SQ/ SQ5      S5        g )Nrj   r   r   r   r  r  rj   rj   rj   r   r   rj   r   rj   r   r   )r	   	wcanberrarg   r2   r0   r  r  I  s$    9i0!4<6:r2   c                  h    [        [        / SQ/ SQ5      SSS9  [        [        / SQ/ SQ5      SSS9  g )	NrQ  rR  UUUUUU?   decimalrS  rT  rv  )r
   wbraycurtisrg   r2   r0   test_braycurtisr\  O  s(    Iy962NL,?bQr2   c                     [         R                  " / SQ5      n [         R                  " / SQ5      n[        [        X5      SSS9  [        [	        X5      [         R
                  " S5      SS9  [         R                  R                  S5      nUR                  S5      nUR                  S5      n[	        X45      n[        X45      n[        US	-  USS9  g )
N)rj   rj   rj   r   r   r   r   rM  rY  r   iIr  r   )	rV   r   r
   rI  rE  rw  r   r   r   )rx  ry  rsr   r=  d1d2s          r0   test_euclideansrb  U  s    	)	B	)	B R,c2>
2*BGGAJC 
		z	*B
A
A	A	B	a	BAr2.r2   c                      / SQn / SQn[         R                  " [        5         [        X5        S S S 5        g ! , (       d  f       g = f)Nr   r   rj   rT  r3  r4  rz   whammingr   r=  s     r0   test_hamming_unequal_lengthrh  g  s+    AA	z	" 
#	"	"s	   8
Ac                      / SQn / SQn/ SQnSn[         R                  " [        US9   [        XU5        S S S 5        g ! , (       d  f       g = f)Nrd  rT  z/'w' should have the same length as 'u' and 'v'.re  re  )ur  r   rK  s       r0   "test_hamming_unequal_length_with_wrk  p  s:    AAA
;C	z	-q 
.	-	-s	   >
Ac                      [         R                  " / SQSS9n [         R                  " / SQSS9nSn[        [        X5      U5        g )N)eggsspamrn  rm  rn  rn  rn  rn  rn  rn  rn  rm  rm  rn  rm  rm  rm  rm  rm  rn  z|S4rC   )rm  rn  rn  rm  rm  rn  rn  rn  rn  rm  rn  rm  rn  rm  rn  rn  rm  rn  rn  rm  g?)rV   r   r   rf  )rp   r   desireds      r0   test_hamming_string_arrayrp  y  sK    
 B 	A 	 B 	A GHQNG,r2   c                      [         R                  " / SQ/ SQ/5      n [        U SSS S9n[        X SSS S9n[        U SSS9n[        X SSS9n[	        XSS9  [	        X$SS9  g )N)
QUUT@      Y@rr  rs  g      B@g      N@g     V@g     b@g      8@g      H@r!   rj   )r1   r[  r   )r1   r[  rN  r  )rV   r   r   r   r   )arr_inp0c0p1c1s        r0   test_minkowski_wry    sq    XX 223 4F 
vkQ$	7B	vkQ$	?B	vkQ	/B	vkQ	7BB'B'r2   c            	         / SQn / SQn[         R                  [         R                  [         R                  [         R                  4 Hk  n[        [         R                  " XS9[         R                  " XS95      n[        [         R                  " UR                  [         R                  5      5        Mm     [         R                  [         R                  [         R                  [         R                  4 H  n[         R                  " U5      R                   n[        S/[         R                  " U/US95      n[        [         R                  " U/US9S/5      n[#        XV5        [#        U[         R$                  " U5      S-  5        M     [         R&                  [         R$                  [         R(                  [         R*                  /nS H9  n[-        [         U5      (       d  M  UR/                  [1        [         U5      5        M;     U HI  n[        [         R                  " XS9[         R                  " XS95      n[#        UR                  U5        MK     g )NrQ  )r  rr  r  rC   r   r   )float16float128)rV   r  int16r  r  rI  asarrayr   r   rD   floatinguint8r>  uint32uint64iinfomaxr	   r   r[   	complex64
complex128hasattrr   getattr)r   r=  rD   dumaxr`  ra  dtypess           r0   test_sqeuclidean_dtypesr    s|    	AA''288RXXrxx8A3RZZ5OPaggr{{34 9 ((BIIryy"))<xx""1#rzz4&>?"**dV59A3?RRD)1,- = jj"**bllBMMBF( 2uMM'"e,-	 ) A3RZZ5OPQWWe$ r2   c                     [         R                  " / SQ/ SQ/ SQ/ SQ/5      nUR                  5       n[        XU 5        [	        X5        [        X5        g )Nr  r!  r%  g3333336@gL7@g333333F@)rV   r~  r  r   r   r   )r1   r6  r  s      r0   test_modifies_inputr    sG    	\$$') 
*B ggiG	"&	"r#r2   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/5      n[        R                  " [        5         [        XU S5        S S S 5        [        R                  " [        5         [        XS5        S S S 5        S H  nU[         R                  " S5      0nUS:X  a  U S	:X  d  US
:X  a  U S:X  d  US:X  a  U S:X  a  MA  [        R                  " [        5         [        XU 40 UD6  S S S 5        [        R                  " [        5         [        X40 UD6  S S S 5        M     g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       M  = f)Nr  r!  r%  r  r   )r[  r  r  r   r  r$   r  r    r[  r!   )rV   r~  r3  r4  r   r   r   )r1   r6  r>  r   s       r0   test_Xdist_deprecated_argsr    s   	\$$') 
*B
 
y	!bfb! 
" 
y	!b" 
"  rzz"~&CZFl24KFm$;3J6[#8]]9%"&+F+ & ]]9%"'' &%   
"	! 
"	! &% &%s/   D)-D:EE)
D7:
E
E	
E+	c           	         [         S   S S S2S S S24   n[        R                  " UR                  S   5      nUS S S2   * US S S2'   U S;   a  [        R
                  " S5        U [        U 5      SU -   4 H]  n[        R                  " [        5         [        XUS9  S S S 5        [        R                  " [        5         [        XX2S9  S S S 5        M_     g ! , (       d  f       N@= f! , (       d  f       M  = f)	NrK   rr  r   rj   )r$   r    r   not applicabler1  r   )rX   rV   r   r   r3  r{  r5  r4  rz   r   r   )r1   ri  r   r  s       r0   test_Xdist_non_negative_weightsr    s    
 !#A#ss(+A

A!fWAccF??$%d6lGf$45]]:&!! ']]:&! '& 6&&&&s   C>C'
C$	'
C6	c                     / SQn [        U 5      n[        X5        [        U [        R                  S9n[        X5        [	        UR
                  [        R                  5        S/n [        U 5      n[	        UR                  S5        [	        X5        Sn [        R                  " [        SS9   [        U 5        S S S 5        [        R                  " S5      R                  SSS5      n [        R                  " [        SS9   [        U 5        S S S 5        SS/S	S
//n [        R                  " [        SS9   [        U 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NU= f! , (       d  f       g = f)NrQ  rC   rj   zInput vector should be 1-Dre  rr  r   r   r   r  )r   r   rV   r   r	   rD   rt   r3  r4  rz   r2  r   rg  s     r0   test__validate_vectorr    s   AAq"**-Aq"**%	
AA	A	z)E	F 
G 			!QA&A	z)E	F 
G Q!QA	z)E	F 
G	F 
G	F 
G	F 
G	Fs$   ,E
 E5E,

E
E),
E:c                      [         R                  " S[        S9n [        U S   U S   5      nUS:X  d   e[	        U S5      n[        US/5        [        U S S U S S S5      n[        US//5        g )N)r   r  rC   r   rt  r'   rj   )rV   r   r  r  r   r	   r   )r   r  s     r0   test_yule_all_samer    sq    
d#AadAaDA8O8aASEaeQrUF#AcUGr2   c            	      b   [        [        / SQ/ SQS5      S5        [        [        SS/SS/5      S5        [        [        / SQ/ SQ5      S5        [        [        SS//SS//S	S
9SS/5        [        [        SS//SS//SS
9S/5        [        [        SS//SS//S	SS9SS//5        [        [        SS//SS//SSS9S//5        [        R                  " / SQ/ SQ/ SQ/5      n [        R                  " / SQ/ SQ/ SQ/5      n[        [        XS	S
9/ SQ5        [        [        XSS
9/ SQ5        g )N)r   rt  rt  )rt  r   rt  r   r   rt  rv  g)>d?r=  r   r   rj   gД?T)r|   keepdims)rj   r   r   r  )rr  r     rd   )	   r        )   rM  rX  r  )            )            )g'Y?gTyCЇ?gFw$?g\BZ?)g;0%7/?g)o?gku?)r
   r   rV   r   )rp   r   s     r0   r  r    sO   oLsCj3*=+-oGMSzlc3ZLqIc
$Szlc3ZLqI"%Szlc3ZLq/358;SzlDSzlc3ZLq/358A{mE 	,!# 	$A 	"""$ 	%A a3DFa39;r2   c                  "   [         R                  " / SQ5      n [         R                  " / SQ5      n[        X5      n[        X/SS9n[	        X25        [        [         R                  " U 5      [         R                  " U5      SS9n[	        X25        g )N)rj   r   r   )r   r   r   r   rs  )rV   r   r   r   r   r   r  )arr_1arr_2expectedactuals       r0   test_gh_17703r  0  si    HHYEHHYEE!HE>&1FF%2=='=='8FF%r2   c                     U S;   a  [         R                  " S5        [        R                  " S[        R                  S9nUR                  SS9  [        [        R                  R                  U 5      " XUS9  g )N)r   r    r$   r  r  rC   F)writer  )
r3  r{  rV   r2  r   setflagsr  scipyspatialdistance)r1   r   s     r0   test_immutable_inputr  ;  sU    ??$%
		"BJJ'AJJUJEMM""F+AA6r2   c                  >   [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[        XUS9n[	        US5        [        [         R                  " U 5      [         R                  " U5      SUS9n[	        XC5        g )N)r   r   rj   rj   )r   rj   rj   r   )r=  r"  gffffff?g?r  g2)^ ?r'   )r1   r   )rV   r   r~  r'   r   r   r  )rp   r   r   r  r  s        r0   test_gh_23109r  C  ss    
A
A


'(AAAHH012==#==# A'F F%r2   c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestJaccardiO  c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  rH   pdist-jaccardr   r  r2  r  s        r0   test_pdist_jaccard_random%TestJaccard.test_pdist_jaccard_randomQ  s2    "#_%I&s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r7  r  s        r0   !test_pdist_jaccard_random_float32-TestJaccard.test_pdist_jaccard_random_float32X  ;    JJr-./_%I&s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  rH   r  test_jaccardr  r2  r  s        r0   test_pdist_jaccard_random_nonC*TestJaccard.test_pdist_jaccard_random_nonC_  s2    "#_%N+s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r  r  s        r0   test_pdist_djaccard_random&TestJaccard.test_pdist_djaccard_randomf  r  r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r7  r  s        r0   "test_pdist_djaccard_random_float32.TestJaccard.test_pdist_djaccard_random_float32m  r  r2   c                     Sn[        [        R                  " S5      S5      n[        [        R                  " S5      X!S9  g )NrN  rr  r   r   r  r  r   rV   r~  r   r  rV  r  s      r0   test_pdist_djaccard_allzeros(TestJaccard.test_pdist_djaccard_allzerost  s.    "((6"I.a2r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r  r  s        r0   test_pdist_djaccard_random_nonC+TestJaccard.test_pdist_djaccard_random_nonCy  s;    JJr-./_%N+s3r2   c                     Sn[        [        R                  " S5      S5      n[        [        R                  " S5      X!S9  g )NrN  r  r  r  r  r  r  s      r0   !test_pdist_djaccard_allzeros_nonC-TestJaccard.test_pdist_djaccard_allzeros_nonC  s.    "((6"N3a2r2   c                     [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[	        USSSS9  [	        USSSS9  g r  wjaccardrV   r   r  r   r  s      r0   test_pdist_jaccard_mtica1%TestJaccard.test_pdist_jaccard_mtica1  sd    RXXo.XXo.0bhhd;hhd;=3QU3Cae4r2   c                     [        [        R                  " / SQ5      [        R                  " / SQ5      5      n[        [        R                  " / SQ[        S9[        R                  " / SQ[        S95      n[	        USSSS9  [	        USSSS9  g r  r  r  s      r0   test_pdist_jaccard_mtica2%TestJaccard.test_pdist_jaccard_mtica2  sd    RXXi(XXi(*bhhy5hhy575qu5E6r2   c                 :   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " [        5      R                  n[        [        X5      SUS9  [        [        U/U/S5      S//5        [        [        X/S5      S/5        g )N)ig      @r   )r   r   rW  r  r   )	rV   r   r_  rT  rV  r   r   r   r   )r  r   r=  rV  s       r0   test_non_01_inputTestJaccard.test_non_01_input  ss     HH]#HH]#hhuo!!s5qcA3	2cUG<qfi03%8r2   rg   N)r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rg   r2   r0   r  r  O  s9    444443
43
579r2   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestChebyshevi  c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  pdist-chebyshevr   r  r  r  s        r0   test_pdist_chebyshev_random)TestChebyshev.test_pdist_chebyshev_random  s3    !"&';'s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr  r  r  r   r   rR  r  r  s        r0   #test_pdist_chebyshev_random_float321TestChebyshev.test_pdist_chebyshev_random_float32  sB    JJr,-.&';'sGaKHr2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  test_chebyshevr  r  r  s        r0    test_pdist_chebyshev_random_nonC.TestChebyshev.test_pdist_chebyshev_random_nonC  s4    !"&'+,s3r2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nrf  r  pdist-chebyshev-irisr   r  r  r  s        r0   test_pdist_chebyshev_iris'TestChebyshev.test_pdist_chebyshev_iris  s1    vJ+,;'s3r2   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr   r  r  r   r   rR  r  r  s        r0   !test_pdist_chebyshev_iris_float32/TestChebyshev.test_pdist_chebyshev_iris_float32  s@    JJr&z"+,;'sGaKHr2   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nrf  r  r  r  r  r  r  s        r0   test_pdist_chebyshev_iris_nonC,TestChebyshev.test_pdist_chebyshev_iris_nonC  s2    vJ+,+,s3r2   c           	          / SQn/ SQn/ SQn[        [        XU5      S5        [        [        X/SUS9S/5        [        [        U/U/SUS9S//5        g )NrQ  r  rr  r  )r   rj   rr  r   r   r  r	   r   r   r   r  r   r=  r   s       r0   test_weightedTestChebyshev.test_weighted  sX     YqQ'+UA6;!4qc:UA3[A6!>r2   c           	          / SQn/ SQn/ SQn[        [        XU5      S5        [        [        X/SUS9S/5        [        [        U/U/SUS9S//5        g )NrQ  r  r^  r   r   r  r  r   s       r0   test_zero_weightTestChebyshev.test_zero_weight  sV    YqQ'+UA6;!4qc:UA3[A6!>r2   rg   N)r   r  r  r  r  r  r  r  r  r  r  r  r  rg   r2   r0   r  r    s,    4I44I4??r2   r  zfunc,pg      @r   c                 2   [         R                  R                  S5      n[        SSSS5      " U 5      nUR                  S5      nUR                  S5      nU(       a  UR                  S5      OS nUc  S	U0OXS
.nU " XV40 UD6n	U" XV40 UD6n
[	        X5        g )Nl   nn)rj  rj   )r  rj   )r[  rj   )r   rj   )rr  r   r  )r   r  r  r   )r[  r   )rV   r   default_rngr(   r   )rb  r[  r   rngref_funcrj  r  r   r   resr  s              r0   test_distance_ndr    s     ))


.C 8XxHNH

9A

6A 

1dAc1Xa(8F
q
v
C
1
"6
"CCr2   rl   )	NNFTFFFFN)	functoolsr   r   os.pathrP   ry  r  r   r  numpyrV   numpy.linalgr   numpy.testingr   r   r   r	   r
   r   r3  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'   scipy._lib._utilr(   scipy.conftestr)   fixturer1   rN   r   _tdist_ytdistrX   rb   rh   r}   r   r   r   r   assert_allclose_forgivingr   r  rl  rU  r3  r  r  r  rf  r  r  
wcityblock
wchebyshevrO  rS  r  rE  rI  r[  rU  r  r  r  r  r7  ro  r  r  r  r  r#  r%  r  r  rM  rO  r  r\  rb  rh  rk  rp  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rg   r2   r0   <module>r     s  F %  
     A A  & & &D D D D D D / . ~Y7 8
@ 
/222224
 <D
E V

 >  # -17;+0/4	-$`8 $O$?  '@!TB   !tQT "td#dEPU"c#<cL 
Q	>!%a*/EC	Qa	H!%a-21>!.1&w? ?	HY'
Y'

&
!{+7#Y59
{u=j)H7	{+j)aA aAH	I? I?VP4 P4f@- @-F32 32l $  $F&F+ F+R%6 6r 01- 2-B;R/$-(%>	$(8 4
;:&7	&N9 N9b=? =?@ 	A	A	C	BFF	D	d
 T5M2 3
r2   