
    doiJ                       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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/J0r0J1r1J2r2J3r3J4r4  S SK5J6r6J7r7  S SK8J9r9  \Rt                  " \!S	S
9S 5       r;/ SQr<\
Rz                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/SS9r>\" \>5      r?0 r@S rA\A" 5         S rBSYS jrC     SZS jrDS rES rFSYS jrG\" \SS9rH\HS  S4S! jrIS"SS# S$SSSSSSSSSSS%S \H4S& jrJ\J" \S'SS(9rK\J" \S'SSS)9rL\J" \S'SS'S*9rM\J" \S'SSS'S+9rN\J" \/5      rO\J" \*SS,9=rPrQ\J" \45      rR\J" \(5      rS\J" \%5      rT\J" \$5      rU\J" \'5      rV\J" \&5      rW\J" \+5      rX\J" \)SS-9rY\J" \3SS-9rZ\J" \"5      r[\J" \#SS-9r\\J" \25      r]\J" \05      r^ " S. S/5      r_ " S0 S15      r` " S2 S35      ra " S4 S55      rb " S6 S75      rc " S8 S95      rdS: re " S; S<5      rfS= rg " S> S?5      rh\R                  R                  S@/ SAQ5      SB 5       rkSC rlSD rmSE rnSF roSG rpSH rqSI rrSJ rsSK rtSL ruSM rvSN rwSO rxSP rySQ rzSR r{SS r|ST r} " SU SV5      r~ " SW SX5      rg)[    )wrapspartialN)norm)verboseassert_assert_array_equalassert_equalassert_almost_equalassert_allclosebreak_cyclesIS_PYPY)	
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)np_longnp_ulong)skip_xp_invalid_argsession)paramsscopec                     U R                   $ )z3
Fixture for all metrics in scipy.spatial.distance
)param)requests    ]/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/spatial/tests/test_distance.pymetricr4   D   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         )r6   r   '        )r7   r;   r     4     )r8   r<   r?   r      e  )r9   r=   r@   rB   r     )r:   r>   rA   rC   rD   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'   [        [        S	   5      [        S	'   [        [        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_float32r*   r+   )fnnamefqfnfps       r3   load_testing_filesrc   {   s    zz&"%--eR8ww||BGGOOH5vrB$Z::b>4

  !hhr*='>?BXXb);&<=B "

2.B+C DB#B'8$9:B%b);&<=Br5   c                  H    [         R                  " S5      R                  S:  $ )Nr      )rY   intpitemsize r5   r3   	_is_32bitri      s    771:""r5   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)rY   
atleast_1d.0as     r3   	<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)rp   rq   arrayss     r3   rr   rs      s      <V66VAY^^+Vs   (+z(array ndim must be the same for neg axis)rY   
asanyarrayru   raveltupleall
ValueErrorrange)rv   axisrq   s   `  r3   _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rm   )rY   magetmasknomaskro   s     r3   rr   _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rm   )rY   r   masked_invalid)rp   rq   has_nans      r3   rr   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rm   shape)rp   rq   r}   weightss     r3   rr   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)rY   take)rp   rq   r}   pos_weightss     r3   rr   r      s     Nv!2771k=vs   #&rk   )r~   anyrY   isnansumry   ziprw   onesr   _freq_weights_weight_maskedrz   r{   nonzerosize)rv   r   r}   force_weightssimplify_weightspos_only	neg_check
nan_screenmask_screenddofchkedrq   has_nansr   s    ``          @r3   _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   r{   )r   int_weightss     r3   r   r      sE    ..%K##%%KG9UVVr5   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   rk   c              3   6   >#    U  H  oT:w  d  M
  Uv   M     g 7frm   rh   )rp   ir}   s     r3   rr   !_weight_masked.<locals>.<genexpr>   s     C1dQQs   		r   )rY   rw   r   r   r   ru   ry   r|   r   r   r   )rv   r   r}   rq   	axis_masknot_axess     `   r3   r   r      s    |mmG$GEEMM!$	$66A:CaffCCH!84I1y'',,,  Nr5   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 )NrF   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   rk   )rY   rw   r   reshaper|   ru   r   )rq   ixr}   recordr   s        r3   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rm   r   )rp   rq   r}   n_obss     r3   rr   _rand_split.<locals>.<genexpr>   s     6v!wwt}%vs   !z#data must be aligned on sample axis      ?r   )rY   
issubdtyperG   integerr   float64arrayrandomRandomStater   rz   r|   r   randintrandappend)rv   r   r}   	split_perseedarrseeded_randr   r   split_ixprev_wqrq   r   s     `          @r3   _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 $ rm   rh   xs    r3   <lambda>r     s    r5   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)rY   r   r   AttributeError	TypeErrorr{   r   _rough_check)	rq   br   keywcheck_acheck_ba_ib_is	            r3   r   r     s    !fG!fGB88G&'++--7, . )w(z" BG-HC.A .Bs   3A B-B
B   c                     U $ rm   rh   r   s    r3   r   r     s    1r5   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   rY   rn   squeezery   r   	Exceptiontyper   r   sliceru   nanr   r   r   NotImplementedErrorwarningswarn__name__)&argskwargsresultrv   restr   r}   r   rq   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&                        r3   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   `````````````````  r3   _weight_checkedr    s3     2YY Y Y Yt Nr5   rk   )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                    / SQU l         [        [        [        R                  [        R
                  /[        [        R                  [        R
                  /[        R                  [        R
                  /[        R
                  /S.U l        g N)rN   rO   rP   rM   rL   )booluintr   r^   rnd_eo_namesr+   r*   rY   r^   r   valid_upcastsselfs    r3   setup_methodTestCdist.setup_method  W    1 (0"**bjj&Q'.

BJJ&G&(jj"**%=*,**7r5   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      r4   test_)rY   arangepytestraisesr   r   eval)r  r4   X1X2r   r   s         r3   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)Nrk   r   c                     X#-   U-   $ rm   rh   r   yargkwargkwarg2s        r3   
_my_metric:TestCdist.test_cdist_extra_args_custom.<locals>._my_metric      ;''r5   r   r"  r&  r)  r+  r-  r.  r   r/  r1  r'  ffffff
@r@  rA  r@  皙?r4   r?  rA  皙@rk   r   )rY   r3  r4  r5  r   r   r   )r  rB  r7  r8  r   r   s         r3   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   r[   wcdist_no_constr   r   )r  epsr7  r8  Y1Y2s         r3   #test_cdist_euclidean_random_unicode-TestCdist.test_cdist_euclidean_random_unicode  sB    
^
^R[1R%56S'A+>r5   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%<=rP  rQ  r#   r\  test_minkowskir   r   )r   rT  r   rU  )r  r\  rW  r7  r8  rX  rY  s          r3   test_cdist_minkowski_random%TestCdist.test_cdist_minkowski_random  sJ     
^
^R[A6R%5;QS'A+Fr5   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+=rP  rQ  r   c                 ^    [         R                  R                  U SS9R                  SS5      $ )Nrk   r   r   )rY   linalgr   r   )Xs    r3   norms1TestCdist.test_cdist_cosine_random.<locals>.norms  s&    99>>!!>,44R;;r5   rk   r   rS  )r[   wcdistrY   dotTr   r   )r  rW  r7  r8  rX  rk  rY  s          r3   test_cdist_cosine_random"TestCdist.test_cdist_cosine_random  sg    
^
^BH%	< eBi2b	>*<*<==S'A+>r5   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"   r4                 @      ?r   r   rk   r   )rY   r   r   r   sqrtr4  r5  r{   )r  x1x2distrt2s        r3   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
  rh   Nr   
__module____qualname____firstlineno____static_attributes__rh   r5   r3   myclassr  
      r5   r  c                 l   > [        U S   T5      (       a  [        US   T5      (       d  [        S5      egNr   zType has been changed+?
isinstancer{   r   r>  r  s     r3   rB  9TestCdist.test_cdist_custom_notdouble.<locals>._my_metric  3    adG,,JqtW4M4M !899r5   rF   rt  r  r   r   )rY   r   objectr   r	   r   )r  rB  rJ   cdist_yright_yr  s        @r3   test_cdist_custom_notdouble%TestCdist.test_cdist_custom_notdouble	  sI    	 		 xx')V4:6Ww{;r5   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Nr4   r2  r   rS  )
r   r6  r   r   r   	__class__printr   r4  r5  )r  r7  r8  r4   rW  r   y1y2y3r   e_clss              r3   _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 )Nrs  r   rk   r   	testing:  with: >   r   r)   r%   r'   r$   r  r&   r   r}   r   Vr"   VI)r  r[   r   r  r  rY   vstackr   r   var
atleast_2dcovro  r   ri  inv)r  r4   eo_namer7  r8  X12r  r  s           r3   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/ )r5   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>rL   r  rP   r  rO   r   rN   r^   r   rs  r   rk   r   rt  rS  )r[   r  r   r   r   r   r  r  r   r4  r5  )r  r4   rW  teststestr7  r8  r  new_typer  r   r  X1newX2news                 r3   test_cdist_dtype_equivalence&TestCdist.test_cdist_dtype_equivalenceH  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)NrO  rP  rQ  r   r#   r_  r\  rF   outr   rS  rk   F)rG   order)r[   r   dictrY   emptyr   r   r   r   r   r4  r5  r{   int64)r  r4   rW  r7  r8  out_rout_cr   out1rX  rY  out2out3out4out5s                  r3   test_cdist_outTestCdist.test_cdist_outc  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 )	NrO  rP  r   rQ  r#   r_  r\  rS  )
r[   copyr	   r   flagsc_contiguousr  r   r   r   )
r  r4   rW  r7  r8  X1_copyX2_copyr   rX  rY  s
             r3   test_stridingTestCdist.test_striding  s     
^CaC1H%
^CaC1H%'')'') 	R!R!BHH)))*BHH)))***+**+[ F3K26,V,7V6v6S'A+>r5   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[        (       a
  [        5         [        S U 5       5      (       d   eg s  snf )N
   r#   r_  r\  r4   c              3   2   #    U  H  o" 5       S L v   M     g 7frm   rh   )rp   weak_refs     r3   rr   0TestCdist.test_cdist_refcount.<locals>.<genexpr>  s     @i(8:%is   )
rY   r   r   r  r   weakrefrefr   r   rz   )r  r4   ry  rz  r   r  v	weak_refss           r3   test_cdist_refcountTestCdist.test_cdist_refcount  s    YY^^B#YY^^B#[ F3KB464V4 /1c];]W[[^]	;C7N@i@@@@@ <s   * B>r  r  Nr  )r   r  r  r  r  r9  rL  rZ  r4  markparametrizerY   infrd  rp  r}  r  r  r  r  skipif	sysconfigget_platformr  r  r  r  rh   r5   r3   r  r    s    7:*"9H? [[S3c4#&S"&&#: ;G;G?<$<C*G:K6 [[	..0K?V%6 W%6N?4Ar5   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                    / SQU l         [        [        [        R                  [        R
                  /[        [        R                  [        R
                  /[        R                  [        R
                  /[        R
                  /S.U l        g r  r  r  s    r3   r  TestPdist.setup_method  r  r5   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/  r1  r4   r2  )rY   r3  r4  r5  r   r   r6  )r  r4   r7  r   r   s        r3   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)Nrk   r   c                     X#-   U-   $ rm   rh   r=  s        r3   rB  :TestPdist.test_pdist_extra_args_custom.<locals>._my_metric  rD  r5   r   r   r#  r$  r'  r.  r/  r1  rE  rF  rG  rH  rI  rJ  rK  )rY   r3  r4  r5  r   r   r   )r  rB  r7  r   r   s        r3   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   rT  r[   wpdist_no_constr   r  rW  rj  Y_rightY_test1s        r3   test_pdist_euclidean_random%TestPdist.test_pdist_euclidean_random  3    !"&'!![1s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g r  r  r  s        r3   test_pdist_euclidean_random_u'TestPdist.test_pdist_euclidean_random_u  r   r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  rY   r^   r[   r  r   r  s        r3   #test_pdist_euclidean_random_float32-TestPdist.test_pdist_euclidean_random_float32  s<    JJr,-.&'!![1s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  rR  r  r  r  rW  rj  r  Y_test2s        r3    test_pdist_euclidean_random_nonC*TestPdist.test_pdist_euclidean_random_nonC  s4    !"&'!!%56s3r5   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        r3    test_pdist_euclidean_iris_double*TestPdist.test_pdist_euclidean_iris_double  s1    vJ+,!![1s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr   r  r  r   r   rS  rY   r^   r[   r  r   r   r  s        r3   !test_pdist_euclidean_iris_float32+TestPdist.test_pdist_euclidean_iris_float32  @    JJr&z"+,!![1sGaKHr5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  rR  r  r  r	  s        r3   test_pdist_euclidean_iris_nonC(TestPdist.test_pdist_euclidean_iris_nonC&  s4     vJ+,!!%56s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  pdist-seuclideanr&   r  r[   r   r   r  s        r3   test_pdist_seuclidean_random&TestPdist.test_pdist_seuclidean_random0  s3    !"'(<(s3r5   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   rk   r  r  )rY   r^   r[   r   r   r  )r  rW  rj  r  r  r  r
  s          r3   $test_pdist_seuclidean_random_float32.TestPdist.test_pdist_seuclidean_random_float327  sh    JJr,-.'(<(s3 FF111%<1-s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  test_seuclideanr  r  r	  s        r3   !test_pdist_seuclidean_random_nonC+TestPdist.test_pdist_seuclidean_random_nonCC  s4    !"'(,-s3r5   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        r3   test_pdist_seuclidean_iris$TestPdist.test_pdist_seuclidean_irisK  s1    vJ,-<(s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g )Nr   r  r'  r&   r  )rY   r^   r[   r   r   r  s        r3   "test_pdist_seuclidean_iris_float32,TestPdist.test_pdist_seuclidean_iris_float32R  s:    JJr&z",-<(s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r'  r#  r  r  r	  s        r3   test_pdist_seuclidean_iris_nonC)TestPdist.test_pdist_seuclidean_iris_nonCZ  s4     vJ,-,-s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  r  pdist-cosiner   r  r[   wpdistr   r  s        r3   test_pdist_cosine_random"TestPdist.test_pdist_cosine_randomc  s2    !"^$H%s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r1  rY   r^   r[   r4  r   r  s        r3    test_pdist_cosine_random_float32*TestPdist.test_pdist_cosine_random_float32j  s;    JJr,-.^$H%s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r2  test_cosiner  r3  r	  s        r3   test_pdist_cosine_random_nonC'TestPdist.test_pdist_cosine_random_nonCq  s2    !"^$M*s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr   r  pdist-cosine-irisr   r   r3  r  s        r3   test_pdist_cosine_iris TestPdist.test_pdist_cosine_irisy  s1    vJ()H%s3r5   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   )rY   r^   r[   r4  r   r   r  s        r3   test_pdist_cosine_iris_float32(TestPdist.test_pdist_cosine_iris_float32  s@    JJr&z"()H%sGaKHr5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr   r  r@  r<  r   r3  r	  s        r3   test_pdist_cosine_iris_nonC%TestPdist.test_pdist_cosine_iris_nonC  s1    vJ()M*s3r5   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)rY   absr   r   r   r  r   r4  )r  r   rj  s      r3   test_pdist_cosine_bounds"TestPdist.test_pdist_cosine_bounds  sZ     FF299((.33B78IIqfq(#A&!+<	>r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  r  pdist-cityblockr   r  r  r  s        r3   test_pdist_cityblock_random%TestPdist.test_pdist_cityblock_random  s3    !"&'!![1s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g rQ  r  r  s        r3   #test_pdist_cityblock_random_float32-TestPdist.test_pdist_cityblock_random_float32  s<    JJr,-.&'!![1s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  rR  test_cityblockr  r  r	  s        r3    test_pdist_cityblock_random_nonC*TestPdist.test_pdist_cityblock_random_nonC  s4    !"&'!!%56s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nrg  r  pdist-cityblock-irisr   r  r  r  s        r3   test_pdist_cityblock_iris#TestPdist.test_pdist_cityblock_iris  s1    vJ+,!![1s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr   r  r]  r   r   rS  r  r  s        r3   !test_pdist_cityblock_iris_float32+TestPdist.test_pdist_cityblock_iris_float32  r  r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nrg  r  r]  rY  r  r  r	  s        r3   test_pdist_cityblock_iris_nonC(TestPdist.test_pdist_cityblock_iris_nonC  s4     vJ+,!!%56s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  r  pdist-correlationr   r  r3  r  s        r3   test_pdist_correlation_random'TestPdist.test_pdist_correlation_random  s3    !"()M*s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g rg  r8  r  s        r3   %test_pdist_correlation_random_float32/TestPdist.test_pdist_correlation_random_float32  s<    JJr,-.()M*s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  rh  test_correlationr  r3  r	  s        r3   "test_pdist_correlation_random_nonC,TestPdist.test_pdist_correlation_random_nonC  s4    !"()./s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  pdist-correlation-irisr   r  r3  r  s        r3   test_pdist_correlation_iris%TestPdist.test_pdist_correlation_iris  s1    vJ-.M*s3r5   c                     Sn[         S   n[        R                  " [         S   5      n[        US5      n[	        XCU[
        S:  S9  g )Nr  r  rs  r   r   rS  )r[   rY   r^   r4  r   r   r  s        r3   #test_pdist_correlation_iris_float32-TestPdist.test_pdist_correlation_iris_float32  s@    vJ**R 89:M*sGaKHr5   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  rs  ro  r  )sysmaxsizer4  skipr[   r4  r   r	  s        r3    test_pdist_correlation_iris_nonC*TestPdist.test_pdist_correlation_iris_nonC  sJ    ;;CKK'vJ-../s3r5   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 )Nra  r  r#   rb  rc  r   )r   rT  r  )r  r\  rW  rj  rX  rY  s         r3   test_pdist_minkowski_random_p'TestPdist.test_pdist_minkowski_random_p  s;    !"Qq1Q 0A6QS1r5   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  rb  r  r  r  s        r3   test_pdist_minkowski_random%TestPdist.test_pdist_minkowski_random  s5    !"*+!![C8s3r5   c                 ~    Sn[         R                  " [        S   5      n[        S   n[        USSS9n[	        XCUS9  g r  r  r  s        r3   #test_pdist_minkowski_random_float32-TestPdist.test_pdist_minkowski_random_float32  s>    JJr,-.*+!![C8s3r5   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g )Nr  r  r  rc  r  rb  r  r  r	  s        r3    test_pdist_minkowski_random_nonC*TestPdist.test_pdist_minkowski_random_nonC  s6    !"*+!!%5=s3r5   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  rb  r  r  r  s        r3   test_pdist_minkowski_3_2_iris'TestPdist.test_pdist_minkowski_3_2_iris  3    vJ/0!![C8s3r5   c                 ~    Sn[         R                  " [        S   5      n[        S   n[        USSS9n[	        XCUS9  g )Nr   r  r  r#   r  rb  r  r  r  s        r3   %test_pdist_minkowski_3_2_iris_float32/TestPdist.test_pdist_minkowski_3_2_iris_float32  s<    JJr&z"/0!![C8s3r5   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g )Nr  r  r  rc  r  rb  r  r  r	  s        r3   "test_pdist_minkowski_3_2_iris_nonC,TestPdist.test_pdist_minkowski_3_2_iris_nonC&  4    vJ/0!!%5=s3r5   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,  rb  r  r  r  s        r3   test_pdist_minkowski_5_8_iris'TestPdist.test_pdist_minkowski_5_8_iris.  r  r5   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,  rb  r   rS  r  r  s        r3   %test_pdist_minkowski_5_8_iris_float32/TestPdist.test_pdist_minkowski_5_8_iris_float326  sB    JJr&z"/0!![C8sGaKHr5   c                 V    Sn[         S   n[         S   n[        USSS9n[        XCUS9  g )Nr  r  r  rc  r,  rb  r  r  r	  s        r3   "test_pdist_minkowski_5_8_iris_nonC,TestPdist.test_pdist_minkowski_5_8_iris_nonC>  r  r5   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   rk   r"   rt  ru  rw  rv  r   r   r   r   r   )
rY   r   r   r   r   rx  r4  r5  r{   r4  )r  r   r{  r|  s       r3   test_pdist_mahalanobis TestPdist.test_pdist_mahalanobisF  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 NrO  rK   pdist-hammingr   r  r3  r  s        r3   test_pdist_hamming_random#TestPdist.test_pdist_hamming_randomW  s2    "#_%I&s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r8  r  s        r3   !test_pdist_hamming_random_float32+TestPdist.test_pdist_hamming_random_float32^  ;    JJr-./_%I&s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g NrO  rK   r  test_hammingr  r3  r	  s        r3   test_pdist_hamming_random_nonC(TestPdist.test_pdist_hamming_random_nonCe  s2    "#_%N+s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  rY   r   r[   r4  r   r  s        r3   test_pdist_dhamming_random$TestPdist.test_pdist_dhamming_randoml  r  r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r8  r  s        r3   "test_pdist_dhamming_random_float32,TestPdist.test_pdist_dhamming_random_float32s  r  r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r  r	  s        r3   test_pdist_dhamming_random_nonC)TestPdist.test_pdist_dhamming_random_nonCz  s;    JJr-./_%N+s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Ndy=r  pdist-jensenshannonr!   r  r  r  s        r3   test_pdist_jensenshannon_random)TestPdist.test_pdist_jensenshannon_random  s3    !"*+?+s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )N:0yE>r  r  r!   r   rS  rY   r^   r[   r   r   r   r  s        r3   'test_pdist_jensenshannon_random_float321TestPdist.test_pdist_jensenshannon_random_float32  sB    JJr,-.*+?+sGaKHr5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  test_jensenshannonr  r  r	  s        r3   $test_pdist_jensenshannon_random_nonC.TestPdist.test_pdist_jensenshannon_random_nonC  s4    !"*+/0s3r5   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   )ri   r[   r   r   r  s        r3   test_pdist_jensenshannon_iris'TestPdist.test_pdist_jensenshannon_iris  s=    ;;CCvJ/0?+s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Ngư>r  r  r!   r   rD  r  r  s        r3   %test_pdist_jensenshannon_iris_float32/TestPdist.test_pdist_jensenshannon_iris_float32  s@    JJr&z"/0?+sGaKHr5   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        r3   "test_pdist_jensenshannon_iris_nonC,TestPdist.test_pdist_jensenshannon_iris_nonC  s2    vJ/0/0s3r5   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rk   r   rk   rk   r   rk   rk   r   rk   rk   rF   333333?r   绽|=rT  r   	wmatchingrY   r   r  r   r  mm2s      r3   test_pdist_matching_mtica1$TestPdist.test_pdist_matching_mtica1  sd    bhh/hh/1rxxt<xxt<>3QU3Cae4r5   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rk   r   rk   rk   rk   r   rF   UUUUUU?r   r  r  r  r  s      r3   test_pdist_matching_mtica2$TestPdist.test_pdist_matching_mtica2  sd    bhhy)XXi(*rxx	6hhy575qu5E6r5   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  rF   r   r   r  r  wyulerY   r   r  r   r  r   r  s      r3   test_pdist_yule_mtica1 TestPdist.test_pdist_yule_mtica1  sr    "((?+((?+-288O4888O48:Q;!H1151AAE2r5   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  rF   r   r   r  r  r  r  s      r3   test_pdist_yule_mtica2 TestPdist.test_pdist_yule_mtica2  sr    "((9%((9%'288IT288IT24Q;!H1151AAE2r5   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  rF   r   g۶m۶m?r   r  r  wdicerY   r   r  r   r  r   r  s      r3   test_pdist_dice_mtica1 TestPdist.test_pdist_dice_mtica1  sr    "((?+((?+-288O4888O48:Q;!H5qu5E6r5   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  rF   r   rw  r   r  r  r  r  s      r3   test_pdist_dice_mtica2 TestPdist.test_pdist_dice_mtica2  sr    "((9%((9%'288IT288IT24Q;!H3QU3Cae4r5   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  rF   r   g      ?r   r  r  )r'   rY   r   r  r   r  r   r  s      r3   test_pdist_sokalsneath_mtica1'TestPdist.test_pdist_sokalsneath_mtica1  s    113/>/>@Q;!H5qu5E6r5   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  rF   r   g?r   r  r  )wsokalsneathrY   r   r  r   r  r   r  s      r3   test_pdist_sokalsneath_mtica2'TestPdist.test_pdist_sokalsneath_mtica2  sr    ),),."((9D9((9D9;Q;!H5qu5E6r5   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  wrogerstanimotorY   r   r  r   r  r   r  s      r3    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6r5   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      r3    test_pdist_rogerstanimoto_mtica2*TestPdist.test_pdist_rogerstanimoto_mtica2  sr    BHHY/HHY/1RXXit<XXit<>Q;!H5qu5E6r5   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  rF   r   r  r   r  r  wrussellraorY   r   r  r   r  r   r  s      r3   test_pdist_russellrao_mtica1&TestPdist.test_pdist_russellrao_mtica1  r   r5   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  rF   r   r  r   r  r  r  r  s      r3   test_pdist_russellrao_mtica2&TestPdist.test_pdist_russellrao_mtica2  sr    ++-)48)48:Q;!H5qu5E6r5   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   rO  r   test_canberrarS  )r[   r   r  r   rG   r  r   )r  DrW  r  r  s        r3   test_pdist_canberra_match#TestPdist.test_pdist_canberra_match&  sQ    vJQ;!''177#Q
+Q0S'A+>r5   c                 P    Sn[        S/S/4S5      nSn[        X#U[        S:  S9  g )Nr  rE  r%  r   gd>@1?r   rD  )r  r   r   )r  rW  pdist_yr  s       r3   test_pdist_canberra_ticket_711(TestPdist.test_pdist_canberra_ticket_7110  s2     !C53%.*=sGaKHr5   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>.myclassi;  rh   Nr  rh   r5   r3   r  r!  ;  r  r5   r  c                 l   > [        U S   T5      (       a  [        US   T5      (       d  [        S5      egr  r  r  s     r3   rB  9TestPdist.test_pdist_custom_notdouble.<locals>._my_metric>  r  r5   rF   rt  r  r   r  )rY   r   r  r   r	   r   )r  rB  rJ   r  r  r  s        @r3   test_pdist_custom_notdouble%TestPdist.test_pdist_custom_notdouble8  sN    	 		 xx')wyk2&A0Ww{;r5   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   r6  r   r   r   r  r  r   r4  r5  )
r  rj  r4   rW  r   r  r  r  r   r  s
             r3   r  $TestPdist._check_calling_conventionsG  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 )Nrs  r   r  r  >   r   r)   matchingr%   r'   r$   r  r&   r   rk   r  r  r"   r  )r  r[   r   r  r  rY   r  r   r   r  r  ro  r   ri  r  )r  r4   r  rj  r  r  s         r3   test_pdist_calling_conventions(TestPdist.test_pdist_calling_conventions\  s   
 ((G 7CaC1H%A{k69g> ) )-37-B++A6 %FF188BJJ/aa@//Q/?=(MM"&&"**)=)?)?"@AXXbiimmA.001//b/A' )r5   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  rL   r  rP   r  rO   r   rN   r^   r   rs  r   rt  rk   rS  )r[   r  r   r   r   r   r  r  r   r4  r5  )r  r4   rW  r  r  r7  r  r  r  r   r  r8  s               r3   test_pdist_dtype_equivalence&TestPdist.test_pdist_dtype_equivalencev  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)NrO  rN   rs  r   r   rk   r#   r_  r\  rF   r  r  r   )r[   r   r   r  rY   r  r   r   r   r   r4  r5  r{   r  )r  r4   rW  rj  out_sizer   r  r  r  r  r  r  s               r3   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 )	NrO  rN   rs  r   r#   r_  r\  rS  )	r[   r  r   r  r  r  r   r   r   )r  r4   rW  rj  X_copyr   rX  rY  s           r3   r  TestPdist.test_striding  s     $%cc3Q3h/ 	AGG((()))*[ F3K1''6,V,S'A+>r5   r  Nr  )Zr   r  r  r  r  r  r  r  r  r  r  r4  r  slowr  r  r  r  r   r$  r(  r+  r.  r5  r9  r=  rA  rE  rH  rN  rS  rV  rZ  r^  ra  rd  ri  rl  rp  rt  rw  r}  r  rY   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-  r1  r  r  rh   r5   r3   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?r5   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*  )rY   r   cases)r  r   r>  s      r3   r  &TestSomeDistanceFunctions.setup_method  s)    HH_%HH_%fX
r5   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 )Nrk   rb  r!        ?gqaz@r   gw@r^  gR"6@i`  i  i^  i  uint16)r;  r#   r
   rY   r   r	   r   )	r  r   r>  dist1dist1p5dist2dist0p25rq   r   s	            r3   rc  (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r5   c                     U R                    H0  u  p[        X5      n[        U[        R                  " S5      5        M2     g )Nrs  )r;  
weuclideanr
   rY   rx  r  r   r>  r{  s       r3   rR  (TestSomeDistanceFunctions.test_euclidean  s.    JJDAa#Dbggaj1 r5   c                 \    U R                    H  u  p[        X5      n[        US5        M     g )Nr*  )r;  wsqeuclideanr
   rG  s       r3   test_sqeuclidean*TestSomeDistanceFunctions.test_sqeuclidean  s&    JJDA%Dc* r5   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
   rY   rx  rG  s       r3   r<  %TestSomeDistanceFunctions.test_cosine  sD    JJDA1=DcDBGGBK"''"+4M,N&NO r5   c                     [        [        SS/SS/SS9[        5      (       d   e[        [        SS/SS/5      [        5      (       d   eg )Nrk   F)centered)r  wcorrelationfloatrP  r  s    r3   test_cosine_output_dtype2TestSomeDistanceFunctions.test_cosine_output_dtype  sH    ,1v1vFNNNN'1a&1a&159999r5   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   )UUUUUUrZ  gUUUUUU@r   )rY   r   r;  rT  r
   rn  r   )r  xmymr   r>  r{  s         r3   ro  *TestSomeDistanceFunctions.test_correlation  sb    XXn%XX9:JJDA%DcBFF2Nd2hb>Q,R&RS r5   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)%ru  ru  ru  ru  ru  ru         ru  ru  ru  r_  r_  r_  ru  r_  ru  r_  ru  ru  rY  r_  ru  r   ru  ru  r_  ru  ru  r_  ru  r_  r_  r_  r_  r_  r_  ru  )%r   r   r   r   r   r   rY  r   r   r   rY  rY  rY  r   rY  r   rY  r   r   ru  rY  r   r   r   r   rY  r   r   rY  r   rY  rY  rY  rY  rY  rY  r   r   r  )rY   r   r   finfor   rW  rG  s       r3   test_correlation_positive3TestSomeDistanceFunctions.test_correlation_positive  sk    HH I J HH I J 1 D9B"**!5!9!9999999r5   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)r4  r5  r   )r  rc  r   r>  s       r3   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   r:  )r   r   ru  )r   r   r   )ru  r   r   g      @)rY   r   r;  r"   r
   rx  )r  r   r>  vir{  s        r3   test_mahalanobis*TestSomeDistanceFunctions.test_mahalanobis  sa    HH_%HH_%XXIJJJDAqR(Dbggcl3 r5   )r;  N)r   r  r  r  r  rc  rR  rK  r<  rV  ro  ra  r4  r  filterwarningsr  r   r   rh  rl  r  rh   r5   r3   r8  r8    st    H&2
+
P
:
T	: [[ 89[[Vk6%:; < :4r5   r8  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 rm   )checked_dtypescheck_squareform_matrixr  rG   s     r3   test_squareform_matrix%TestSquareForm.test_squareform_matrix       ((E((/ )r5   c                 L    U R                    H  nU R                  U5        M     g rm   )rr  check_squareform_vectorrt  s     r3   test_squareform_vector%TestSquareForm.test_squareform_vector  rw  r5   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   rF   r   rk   rk   r   g@)rk   )rY   zerosr   r	   r   rG   r   r   )r  rG   ArAs       r3   rs  &TestSquareForm.check_squareform_matrix"  s    HHV5)]RXXt$RXXu%HHV5)]RXXt$RXXu%HHq#ha)7]RXXt$RXXu%2rxxU;<r5   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}  rF   r~  r   g @)r   r   )rY   r  r   r	   r   rG   r   r   )r  rG   r  rvs       r3   ry  &TestSquareForm.check_squareform_vector3  s    HHT']RXXv&RXXu%2u%HHcU%(]RXXv&RXXu%2rxx!SC8(<EJKr5   c                 L    [        SS5       H  nU R                  U5        M     g )Nr   rs  )r|   check_squareform_multi_matrixr  ns     r3   test_squareform_multi_matrix+TestSquareForm.test_squareform_multi_matrix@  s     q!A..q1 r5   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   rk   r   r   r   )rY   r   r   r  r	   lenr   r   r   r  r|   )
r  r  rj  Yr  Yrskr   js
             r3   r  ,TestSquareForm.check_squareform_multi_matrixD  s    IINN1a AS\1%qM]GGa<!''177BHH-SVQS]A&QqT1Q4 q!A$A1q5!A$'6 a4!$/FA a4!, (  r5   rh   N)r   r  r  r  rY   r   r^   int32int8r  rr  ru  rz  rs  ry  r  r  r  rh   r5   r3   rp  rp    sA    jj"**bhhFN00="L2-r5   rp  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)TestNumObsYiZ  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|   rY   r   r   r  r	   r   )r  r  rj  r  s       r3   test_num_obs_y_multi_matrix'TestNumObsY.test_num_obs_y_multi_matrix\  s>    q"A		q!$A"A1q) r5   c                     [         R                  " [        5         U R                  S5        S S S 5        g ! , (       d  f       g = fNrk   )r4  r5  r{   check_yr  s    r3   test_num_obs_y_1TestNumObsY.test_num_obs_y_1b  s'     ]]:&LLO '&&s	   6
Ac                 8    [        U R                  S5      5        g Nr   r   r  r  s    r3   test_num_obs_y_2TestNumObsY.test_num_obs_y_2h  s     	Q r5   c                 8    [        U R                  S5      5        g )Nr   r  r  s    r3   test_num_obs_y_3TestNumObsY.test_num_obs_y_3m      Q r5   c                 8    [        U R                  S5      5        g Nr  r  r  s    r3   test_num_obs_y_4TestNumObsY.test_num_obs_y_4p  r  r5   c                 L    [        SS5       H  nU R                  U5        M     g )Nrs     )r|   minit)r  r   s     r3   test_num_obs_y_5_10TestNumObsY.test_num_obs_y_5_10s  s    q"AJJqM r5   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  rk   rs  i   setr|   addr4  r5  r{   bad_yr  rq   r  r   s       r3   test_num_obs_y_2_100 TestNumObsY.test_num_obs_y_2_100w  sl     Eq"AEE!1u+/" q#Az]]:.JJqM /. ..   'B
B	c                 8    [        U R                  U5      5        g rm   r  r  s     r3   r  TestNumObsY.minit  r  r5   c                 V    [         R                  R                  U5      n[        U5      $ rm   )rY   r   r   r   r  r  r>  s      r3   r  TestNumObsY.bad_y  s    IINN1|r5   c                 <    [        U R                  U5      5      U:H  $ rm   )r   make_yr  s     r3   r  TestNumObsY.check_y  s    Q(A--r5   c                 P    [         R                  R                  XS-
  -  S-  5      $ Nrk   r   rY   r   r   r  s     r3   r  TestNumObsY.make_y  s     yy~~qE{q011r5   rh   N)r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rh   r5   r3   r  r  Z  s9    *!
!!	"!.2r5   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 )Nrk   r  r  r   )r|   rY   r   r   r  r   r   r  r   r	   r   )r  r  rj  r  r  s        r3   test_num_obs_dm_multi_matrix)TestNumObsDM.test_num_obs_dm_multi_matrix  s`    q"A		q!$A"A1A!|aggqww'A* r5   c                 8    [        U R                  S5      5        g )Nr   r   check_Dr  s    r3   test_num_obs_dm_0TestNumObsDM.test_num_obs_dm_0      Q r5   c                 8    [        U R                  S5      5        g r  r  r  s    r3   test_num_obs_dm_1TestNumObsDM.test_num_obs_dm_1  r  r5   c                 8    [        U R                  S5      5        g r  r  r  s    r3   test_num_obs_dm_2TestNumObsDM.test_num_obs_dm_2  r  r5   c                 8    [        U R                  S5      5        g r  r  r  s    r3   test_num_obs_dm_3TestNumObsDM.test_num_obs_dm_3  r  r5   c                 8    [        U R                  S5      5        g r  r  r  s    r3   test_num_obs_dm_4TestNumObsDM.test_num_obs_dm_4  r  r5   c                 <    [        U R                  U5      5      U:H  $ rm   )r   make_Dr  s     r3   r  TestNumObsDM.check_D  s    $++a.)Q..r5   c                 @    [         R                  R                  X5      $ rm   r  r  s     r3   r  TestNumObsDM.make_D  s    yy~~a##r5   rh   N)r   r  r  r  r  r  r  r  r  r  r  r  r  rh   r5   r3   r  r    s*    +!!!!!/$r5   r  c                     [        U SS9$ NT)throw)r   )r  s    r3   is_valid_dm_throwr    s    q%%r5   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rs  rF   rY   r  r   r4  r5  r{   r  r  r  s     r3   $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  rF   FrY   r  r   r	   r   r  s     r3   $test_is_valid_dm_improper_shape_1D_F2TestIsValidDM.test_is_valid_dm_improper_shape_1D_F  s$    HHT,[^U+r5   c                     [         R                  " S[         R                  S9n[        R                  " [
        5         [        U5        S S S 5        g ! , (       d  f       g = fNr   r   r   rF   r  r  s     r3   $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  rF   Fr  r  s     r3   $test_is_valid_dm_improper_shape_3D_F2TestIsValidDM.test_is_valid_dm_improper_shape_3D_F  s$    HHYbjj1[^U+r5   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   rs  r   )	rY   r   r   r   r|   r4  r5  r{   r  r  r>  r  r   s       r3   #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   rs  r   F)rY   r   r   r   r|   r	   r   r  s       r3   #test_is_valid_dm_nonzero_diagonal_F1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_F  sF    IINN2qMq!AAdG [^U+r5   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   rk   rk   rk   r   )rY   r   r   r   r4  r5  r{   r  r  r>  r  s      r3   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  rk   r	  FrY   r   r   r   r	   r   r
  s      r3   test_is_valid_dm_asymmetric_F+TestIsValidDM.test_is_valid_dm_asymmetric_F  s<    IINN2qMD'A+$[^U+r5   c                 t    [         R                  " S[         R                  S9n[        [	        U5      S5        g )Nr~  rF   Tr  r  s     r3   test_is_valid_dm_correct_1_by_1-TestIsValidDM.test_is_valid_dm_correct_1_by_1  s$    HHV2::.[^T*r5   c                     [         R                  R                  S5      n[        U5      n[	        [        U5      S5        g )Nrk   Tr  r
  s      r3   test_is_valid_dm_correct_2_by_2-TestIsValidDM.test_is_valid_dm_correct_2_by_2  +    IINN1qM[^T*r5   c                     [         R                  R                  S5      n[        U5      n[	        [        U5      S5        g Nr   Tr  r
  s      r3   test_is_valid_dm_correct_3_by_3-TestIsValidDM.test_is_valid_dm_correct_3_by_3  r  r5   c                     [         R                  R                  S5      n[        U5      n[	        [        U5      S5        g )N   Tr  r
  s      r3   test_is_valid_dm_correct_4_by_4-TestIsValidDM.test_is_valid_dm_correct_4_by_4  r  r5   c                     [         R                  R                  S5      n[        U5      n[	        [        U5      S5        g )Nr  Tr  r
  s      r3   test_is_valid_dm_correct_5_by_5-TestIsValidDM.test_is_valid_dm_correct_5_by_5  s+    IINN2qM[^T*r5   rh   N)r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r  rh   r5   r3   r  r    sC    !
,!
,!,!,++
+
+
+r5   r  c                     [        U SS9$ r  )r   )r>  s    r3   is_valid_y_throwr$     s    at$$r5   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   rF   rY   r  r   r4  r5  r{   r$  r  r>  s     r3   #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(  rF   FrY   r  r   r	   r   r*  s     r3   #test_is_valid_y_improper_shape_2D_F0TestIsValidY.test_is_valid_y_improper_shape_2D_F  s$    HHWBJJ/Z]E*r5   c                     [         R                  " S[         R                  S9n[        R                  " [
        5         [        U5        S S S 5        g ! , (       d  f       g = fr  r)  r*  s     r3   #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     r3   #test_is_valid_y_improper_shape_3D_F0TestIsValidY.test_is_valid_y_improper_shape_3D_F  s$    HHYbjj1Z]E*r5   c                 P    U R                  S5      n[        [        U5      S5        g )Nr   Tcorrect_n_by_nr	   r   r*  s     r3   test_is_valid_y_correct_2_by_2+TestIsValidY.test_is_valid_y_correct_2_by_2       "Z]D)r5   c                 P    U R                  S5      n[        [        U5      S5        g r  r8  r*  s     r3   test_is_valid_y_correct_3_by_3+TestIsValidY.test_is_valid_y_correct_3_by_3  r<  r5   c                 P    U R                  S5      n[        [        U5      S5        g )Nr  Tr8  r*  s     r3   test_is_valid_y_correct_4_by_4+TestIsValidY.test_is_valid_y_correct_4_by_4#  r<  r5   c                 P    U R                  S5      n[        [        U5      S5        g )Nrs  Tr8  r*  s     r3   test_is_valid_y_correct_5_by_5+TestIsValidY.test_is_valid_y_correct_5_by_5'  r<  r5   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       r3   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  )rY   r   r   r   r  s      r3   r  TestIsValidY.bad_y4  s!    IINN1!4((r5   c                 T    [         R                  R                  XS-
  -  S-  5      nU$ r  r  r  s      r3   r9  TestIsValidY.correct_n_by_n8  s$    IINNAQKA-.r5   rh   N)r   r  r  r  r+  r/  r2  r5  r:  r>  rA  rD  rG  r  r9  r  rh   r5   r3   r&  r&    s9    
 
+ 
+****")r5   r&  r\  )g      $g      ru  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)Nrk   r   r   r  )r4  r5  r{   r#   rb  s    r3   
test_bad_prN  =  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)r4  r5  r{   r'   rh   r5   r3   test_sokalsneath_all_falserP  F  s&    	z	")+@A 
#	"	"s	   5
Ac                  l    [        [        / SQ/ SQ5      S5        [        [        / SQ/ SQ5      S5        g )Nrk   r   r   r   r  r  rk   rk   rk   r   r   rk   r   rk   r   r   )r	   	wcanberrarh   r5   r3   r  r  L  s$    9i0!4<6:r5   c                  h    [        [        / SQ/ SQ5      SSS9  [        [        / SQ/ SQ5      SSS9  g )	NrR  rS  UUUUUU?   decimalrT  rU  rw  )r
   wbraycurtisrh   r5   r3   test_braycurtisr]  R  s(    Iy962NL,?bQr5   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                  " [        SS9   [	        U [         R                  S S 24   U[         R                  S S 24   5      [         R
                  " S5      4  S S S 5        [        R                  " [        SS9   [        U [         R                  S S 24   U[         R                  S S 24   5        S S S 5        [        R                  " [        SS9   [        U S S 2[         R                  4   US S 2[         R                  4   5        S S S 5        [         R                  " S	5      R                  S
S
5      n[        R                  " [        5         [	        X"5        S S S 5        [        R                  " [        5         [        X"5        S S S 5        [         R                  R                  S5      nUR                  S5      nUR                  S5      n[	        X$5      n[        X$5      n[        US
-  USS9  g ! , (       d  f       GN= f! , (       d  f       GNa= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)N)rk   rk   rk   r   r   r   r!  rN  rZ  r   Input vector should be 1-Drf  r  r   iIr  )rY   r   r
   rJ  rF  rx  r4  r5  r{   newaxisr3  r   r   r   r   )ry  rz  r   rsr>  d1d2s          r3   test_euclideansre  X  s   	)	B	)	B R,c2>
2*BGGAJC 
z)E	F2bjj!m$bQ&78"''!*D 
G	z)E	FR

A&2::q=(9: 
G	z)E	FR2::&1bjj=(9: 
G 			!Q"A	z	"1 
#	z	"Q 
# 
		z	*B
A
A	A	B	a	BAr2.) 
G	F	F	F	F	F
 
#	"	"	"s=   AI347J7JJ)9J:3
J
J
J&)
J7:
Kc                      / SQn / SQn[         R                  " [        5         [        X5        S S S 5        g ! , (       d  f       g = f)Nr   r   rk   rU  r4  r5  r{   whammingr   r>  s     r3   test_hamming_unequal_lengthrk  y  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)Nrg  rU  z/'w' should have the same length as 'u' and 'v'.rf  rh  )ur  r   rL  s       r3   "test_hamming_unequal_length_with_wrn    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spamrq  rp  rq  rq  rq  rq  rq  rq  rq  rp  rp  rq  rp  rp  rp  rp  rp  rq  z|S4rF   )rp  rq  rq  rp  rp  rq  rq  rq  rq  rp  rq  rp  rq  rp  rq  rq  rp  rq  rq  rp  g?)rY   r   r   ri  )rq   r   desireds      r3   test_hamming_string_arrayrs    sK    
 B 	A 	 B 	A GHQNG,r5   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@ru  rv  g      B@g      N@g     V@g     b@g      8@g      H@r#   rk   )r4   r\  r   )r4   r\  rO  r  )rY   r   r   r   r   )arr_inp0c0p1c1s        r3   test_minkowski_wr|    sq    XX 223 4F 
vkQ$	7B	vkQ$	?B	vkQ	/B	vkQ	7BB'B'r5   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 )NrR  )r  rs  r  rF   r   r   )float16float128)rY   r  int16r  r  rJ  asarrayr   r   rG   floatinguint8r?  uint32uint64iinfomaxr	   r   r^   	complex64
complex128hasattrr   getattr)r   r>  rG   dumaxrc  rd  dtypess           r3   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$ r5   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@)rY   r  r  r   r   r   )r4   r7  r  s      r3   test_modifies_inputr    sG    	\$$') 
*B ggiG	"&	"r#r5   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#   )rY   r  r4  r5  r   r   r   )r4   r7  r?  r   s       r3   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)	NrN   rs  r   rk   )r&   r"   r!   not applicabler2  r   )r[   rY   r   r   r4  r|  r6  r5  r{   r   r   )r4   rj  r   r  s       r3   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)NrR  rF   rk   r`  rf  rs  r   r   r   r  )r   r   rY   r   r	   rG   ru   r4  r5  r{   r3  r   rj  s     r3   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  rF   r   ru  r)   rk   )rY   r   r  r  r   r	   r   )r   r  s     r3   test_yule_all_samer    sq    
d#AadAaDA8O8aASEaeQrUF#AcUGr5   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   ru  ru  )ru  r   ru  r   r   ru  rw  g)>d?r>  r   r   rk   gД?T)r}   keepdims)rk   r   r   r  )rs  r     re   )	   r        )   rN  rY  r  )            )            )g'Y?gTyCЇ?gFw$?g\BZ?)g;0%7/?g)o?gku?)r
   r!   rY   r   )rq   r   s     r3   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;r5   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)rk   r   r   )r   r   r   r   rt  )rY   r   r   r   r   r   r  )arr_1arr_2expectedactuals       r3   test_gh_17703r  B  si    HHYEHHYEE!HE>&1FF%2=='=='8FF%r5   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  rF   F)writer  )
r4  r|  rY   r3  r   setflagsr  scipyspatialdistance)r4   r   s     r3   test_immutable_inputr  M  sU    ??$%
		"BJJ'AJJUJEMM""F+AA6r5   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   rk   rk   )r   rk   rk   r   )r>  r#  gffffff?g?r  g2)^ ?r)   )r4   r   )rY   r   r  r)   r   r   r  )rq   r   r   r  r  s        r3   test_gh_23109r  U  ss    
A
A


'(AAAHH012==#==# A'F F%r5   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)TestJaccardia  c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  rK   pdist-jaccardr    r  r3  r  s        r3   test_pdist_jaccard_random%TestJaccard.test_pdist_jaccard_randomc  s2    "#_%I&s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r8  r  s        r3   !test_pdist_jaccard_random_float32-TestJaccard.test_pdist_jaccard_random_float32j  ;    JJr-./_%I&s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g Nr  rK   r  test_jaccardr  r3  r	  s        r3   test_pdist_jaccard_random_nonC*TestJaccard.test_pdist_jaccard_random_nonCq  s2    "#_%N+s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r  r  s        r3   test_pdist_djaccard_random&TestJaccard.test_pdist_djaccard_randomx  r  r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r8  r  s        r3   "test_pdist_djaccard_random_float32.TestJaccard.test_pdist_djaccard_random_float32  r  r5   c                     Sn[        [        R                  " S5      S5      n[        [        R                  " S5      X!S9  g )NrO  rs  r   r    r  r  r   rY   r  r   r  rW  r  s      r3   test_pdist_djaccard_allzeros(TestJaccard.test_pdist_djaccard_allzeros  s.    "((6"I.a2r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCUS9  g r  r  r	  s        r3   test_pdist_djaccard_random_nonC+TestJaccard.test_pdist_djaccard_random_nonC  s;    JJr-./_%N+s3r5   c                     Sn[        [        R                  " S5      S5      n[        [        R                  " S5      X!S9  g )NrO  r  r  r  r  r  r  s      r3   !test_pdist_djaccard_allzeros_nonC-TestJaccard.test_pdist_djaccard_allzeros_nonC  s.    "((6"N3a2r5   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  wjaccardrY   r   r  r   r  s      r3   test_pdist_jaccard_mtica1%TestJaccard.test_pdist_jaccard_mtica1  sd    RXXo.XXo.0bhhd;hhd;=3QU3Cae4r5   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      r3   test_pdist_jaccard_mtica2%TestJaccard.test_pdist_jaccard_mtica2  sd    RXXi(XXi(*bhhy5hhy575qu5E6r5   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   rX  r  r    )	rY   r   r`  rU  rW  r   r    r   r   )r  r   r>  rW  s       r3   test_non_01_inputTestJaccard.test_non_01_input  ss     HH]#HH]#hhuo!!s5qcA3	2cUG<qfi03%8r5   rh   N)r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rh   r5   r3   r  r  a  s9    444443
43
579r5   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        r3   test_pdist_chebyshev_random)TestChebyshev.test_pdist_chebyshev_random  s3    !"&';'s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr  r  r  r   r   rS  r  r  s        r3   #test_pdist_chebyshev_random_float321TestChebyshev.test_pdist_chebyshev_random_float32  sB    JJr,-.&';'sGaKHr5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nr  r  r  test_chebyshevr  r  r	  s        r3    test_pdist_chebyshev_random_nonC.TestChebyshev.test_pdist_chebyshev_random_nonC  s4    !"&'+,s3r5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nrg  r  pdist-chebyshev-irisr   r  r  r  s        r3   test_pdist_chebyshev_iris'TestChebyshev.test_pdist_chebyshev_iris  s1    vJ+,;'s3r5   c                     Sn[         R                  " [        S   5      n[        S   n[        US5      n[	        XCU[
        S:  S9  g )Nr   r  r  r   r   rS  r  r  s        r3   !test_pdist_chebyshev_iris_float32/TestChebyshev.test_pdist_chebyshev_iris_float32  s@    JJr&z"+,;'sGaKHr5   c                 X    Sn[         S   n[         S   n[        US5      n[        XCUS9  g )Nrg  r  r  r  r  r  r	  s        r3   test_pdist_chebyshev_iris_nonC,TestChebyshev.test_pdist_chebyshev_iris_nonC  s2    vJ+,+,s3r5   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 )NrR  r  rs  r  )r   rk   rs  r   r   r  r	   r   r   r   r  r   r>  r   s       r3   test_weightedTestChebyshev.test_weighted  sX     YqQ'+UA6;!4qc:UA3[A6!>r5   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 )NrR  r  r_  r   r   r  r  r  s       r3   test_zero_weightTestChebyshev.test_zero_weight  sV    YqQ'+UA6;!4qc:UA3[A6!>r5   rh   N)r   r  r  r  r  r  r  r  r  r  r  r  r  rh   r5   r3   r  r    s,    4I44I4??r5   r  rm   )	NNFTFFFFN)	functoolsr   r   os.pathrS   rz  r  r   r  numpyrY   numpy.linalgr   numpy.testingr   r   r   r	   r
   r   r   r   r4  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*   r+   scipy.conftestr,   fixturer4   rQ   r   _tdist_ytdistr[   rc   ri   r~   r   r   r   r   assert_allclose_forgivingr   r  rm  rV  r4  r  r  r  ri  r  r  
wcityblock
wchebyshevrP  rT  r  rF  rJ  r\  rV  r  r  r  r  r8  rp  r  r  r  r  r$  r&  r  r  rN  rP  r  r]  re  rk  rn  rs  r|  r  r  r  r  r  r  r  r  r  r  r  r  rh   r5   r3   <module>r     s^  F %  
     2 2 2  & & &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)cA cAL	I? I?VP4 P4f@- @-F32 32l $  $F&F+ F+R%6 6r 01- 2-B;R/B-(%>	$(8 4
;:&7	&N9 N9b=? =?r5   