+
    ,irY                       ^ RI HtHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t
^ RIHt ^ RIHtHtHtHtHtHtHtHt ^ RIt^ RIt^ RIHtHtHtHtHtHtHtH t H!t! ^ RIH"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6 ^ RI7H8t8H9t9 ^ RI:H;t; ]Px                  ! ]!R	R
7      R 4       t=. RUOt>]
P~                  ! . RVO. RWO. RXO. RYO. RZO. R[O.RR7      t@]! ]@4      tA/ tBR tC]C! 4        R tDR\R ltER]R ltFR tGR tHR\R ltI]! ]RR7      tJ]JR R3R ltK^RR RRRRRRRRRRRR^ ]J3R ltL ! R R 4      tMR! R" ltN]L! ]^RR#7      tO]L! ]^RRR$7      tP]L! ]^R^R%7      tQ]L! ]^RR^R&7      tR]L! ]04      tS]L! ]*RR'7      ;tTtU]L! ]64      tV]L! ](4      tW]L! ]%4      tX]L! ]$4      tY]L! ]'4      tZ]L! ]&4      t[]L! ]-4      t\]L! ]+4      t]]L! ])RR(7      t^]L! ]5RR(7      t_]L! ]"4      t`]L! ]#RR(7      ta]L! ]44      tb]L! ]34      tc]L! ]14      td ! R) R*4      te ! R+ R,4      tf ! R- R.4      tg ! R/ R04      th ! R1 R24      ti ! R3 R44      tjR5 tk ! R6 R74      tlR8 tm ! R9 R:4      tn]P                  P                  R;. R^O4      R< 4       tqR= trR> tsR? ttR@ tuRA tvRB twRC txRD tyRE tz]P                  P                  RF 4       t|]P                  P                  RG 4       t}]P                  P                  RH 4       t~]P                  P                  RI 4       t]P                  P                  RJ 4       tRK tRL tRM tRN t]P                  P                  RO 4       tRP t ! RQ RR4      t ! RS RT4      tR# )_    )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kulczynski1mahalanobis	minkowskirogerstanimoto
russellrao
seuclideansokalmichenersokalsneathsqeuclideanyule)np_longnp_ulong)skip_xp_invalid_argsession)paramsscopec                    V P                   # )z3
Fixture for all metrics in scipy.spatial.distance
)param)requests   &C/usr/lib/python3/dist-packages/scipy/spatial/tests/test_distance.pymetricr6   E   s    
 ==    doubledtypec                     \          F  p V P                  R R4      P                  RR4      p\        P                  P	                  \        P                  P                  \        4      RV 4      p\        V4      p\        P                  ! V4      \        V&   VP                  4        K  	  \        P                  ! \        R,          4      \        R&   \        P                  ! \        R,          4      \        R&   \        P                  ! \        R,          4      \        R&   \        \        R,          4      \        R&   \        \        R	,          4      \        R	&   R
# )z.txt z-mldatapdist-boolean-inprandom-bool-datarandom-double-datarandom-float32-datarandom-int-datarandom-uint-dataN)
_filenamesreplaceospathjoindirname__file__opennploadtxteoclosebool_float32r,   r-   )fnnamefqfnfps       r5   load_testing_filesrV   |   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r7   c                  H    \         P                  ! ^ 4      P                  ^8  # r   )rL   intpitemsize r7   r5   	_is_32bitr\      s    771:""r7   c                 8  a  S  Uu. uF  p\         P                  ! V4      NK  	  upo Vf<   S  Uu. uF,  pVP                  ^8w  d   \         P                  ! V4      MTNK.  	  upo ^ p\        ;QJ d    . R S  4       F  NK  	  5M! R S  4       4      o V^ 8  do   \
        ;QJ d    V 3R lS  4       F  '       d   K   RM	  RM! V 3R lS  4       4      '       g   \        R4      h\        S ^ ,          P                  4      V,          pS V3,           # u upi u upi )Nc              3   N   "   T F  p\         P                  ! V4      x  K  	  R # 5iN)rL   
atleast_1d.0as   & r5   	<genexpr> _chk_asarrays.<locals>.<genexpr>   s     4V2==##Vs   #%c              3   b   <"   T F$  qP                   S^ ,          P                   8H  x  K&  	  R# 5ir   N)ndim)rb   rc   arrayss   & r5   rd   re      s      <V66VAY^^+Vs   ,/FTz(array ndim must be the same for neg axis)rL   
asanyarrayrh   raveltupleall
ValueErrorrange)ri   axisrc   s   f& r5   _chk_asarraysrq      s    (./1bmmA/F| "#!a "#1"((1+!3!#U4V4UU4V44Faxs<V<sss<V<<<GHHVAY^^$T*TG 0#s
   D2DFTc
                 t  aaa \        V SR 7      p
V
RR
 V
R
,          up oT;'       d    V'       * pV'       g=   V'       d5   \        ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      pV'       d   V  Uu. uF-  p\        P                  ! \        P                  ! V4      4      NK/  	  pp\        V4      '       dC   RpRp\
        ;QJ d    . R \        W4       4       F  NK  	  5M! R \        W4       4       4      p Se   \        P                  ! S4      oMBV'       d0   \        P                  ! V ^ ,          P                  S,          4      oMV SS3,           # V	'       d   \        S4      oV'       d   \        V SS4      o\        ;QJ d     VV3R lV  4       F  '       d   K   RM	  RM! VV3R lV  4       4      '       g   \        R4      hV'       d%   S^ 8  P                  4       '       d   \        R4      hV'       dy   \        P                  ! S^ 8  4      ^ ,          oSP                  SP                  8  d>   \
        ;QJ d    . VV3R	 lV  4       F  NK  	  5M! VV3R	 lV  4       4      p SS,          oV'       d   S^8H  P                  4       '       d   RoV SS3,           # u upi )rp   Nc              3      "   T F>  p\         P                  P                  V4      \         P                  P                  Jx  K@  	  R # 5ir_   )rL   magetmasknomaskra   s   & r5   rd   _chk_weights.<locals>.<genexpr>   s*     Q&QBEEMM!,BEELL@&s   AATFc              3   x   "   T F0  w  rV'       d    \         P                  P                  V4      MTx  K2  	  R # 5ir_   )rL   ru   masked_invalid)rb   rc   has_nans   &  r5   rd   rx      s0      D-Bzq 7>255//21D-Bs   8:c              3   f   <"   T F&  pSP                   VP                   S,          38H  x  K(  	  R # 5ir_   shape)rb   rc   rp   weightss   & r5   rd   rx      s%     A&Qw}} 00&s   .1z*weights shape must match arrays along axiszweights cannot be negativec              3   V   <"   T F  p\         P                  ! VSSR 7      x  K   	  R# 5i)rs   N)rL   take)rb   rc   rp   pos_weightss   & r5   rd   rx      s!     Nv!2771k==vs   &))rq   anyrL   isnansumrl   ziprj   onesr~   _freq_weights_weight_maskedrm   rn   nonzerosize)ri   r   rp   force_weightssimplify_weightspos_only	neg_check
nan_screenmask_screenddofchkedrc   has_nansr   s   &ff&&&&&&&   @r5   _chk_weightsr      s   
 &t,E":uRyLFD'==,=[Q&QQ&QQ178ABHHRVVAY'8x==K MU D-0-BDUU D-0-BD DF --(	''&)//$/0$''( $73A&A333A&AAAEFFgk&&((566jj1-a0gll*UNvNUUNvNNFk*GW\..00WdO##A 9s   3J5c                     V f   V # V P                  \        4      pW8g  P                  4       '       d   \        RV  24      hV# )Nz0frequency (integer count-type) weights required )astypeintr   rn   )r   int_weightss   & r5   r   r      sE    ..%K##%%KG9UVVr7   c                   a Sf   ^ o\         P                  ! V4      pV  F  p\         P                  P                  V4      pV\         P                  P                  J d   KB  VP
                  ^8  dk   \        ;QJ d*    . V3R l\        VP
                  4       4       F  NK  	  5M#! V3R l\        VP
                  4       4       4      pVP                  VR7      pV^VP                  \        4      ,
          ,          pK  	  V# )Nc              3   8   <"   T F  qS8w  g   K  Vx  K  	  R # 5ir_   r[   )rb   irp   s   & r5   rd   !_weight_masked.<locals>.<genexpr>   s     C1dQQs   
rs   )rL   rj   ru   rv   rw   rh   rl   ro   r   r   r   )ri   r   rp   rc   	axis_masknot_axess   &&f   r5   r   r      s    |mmG$GEEMM!$	$66A:uCaffCuuCaffCCH!84I1y'',,,  Nr7   c                   aa V  Uu. uFY  p\         P                  ! VP                  \         P                  4      '       d    VP	                  \         P
                  4      MTNK[  	  p p\         P                  ! V\         P
                  R 7      p\         P                  P                  V4      pR pV ^ ,          P                  S,          o\        ;QJ d     VV3R lV  4       F  '       d   K   RM	  RM! VV3R lV  4       4      '       g   Q R4       h\        \        V4      S,          4       F  pVP                  SV,           4      p	W,          p
VP                  4       pW,          W&   \         P                  ! VRV,
          V
,          4      pV  Uu. uF#  p\         P                  ! W! WSR7      SR7      NK%  	  p pK  	  W3# u upi u upi )r9   c                     \         P                  ! \         P                  ! WVR 7      4      pTP                  \	        V P
                  4       Uu. uF  pWB8w  d   V P                  V,          M^NK   	  up4      # u upi )rs   )rL   rj   r   reshapero   rh   r~   )rc   ixrp   recordr   s   &&&  r5   mytake_rand_split.<locals>.mytake   se    rwwq489~~(-aff7(51 ./YqwwqzA=(57 8 	8 7s   $A:c              3   N   <"   T F  qP                   S,          S8H  x  K  	  R # 5ir_   r}   )rb   rc   rp   n_obss   & r5   rd   _rand_split.<locals>.<genexpr>   s     6v!wwt}%vs   "%FTz#data must be aligned on sample axis      ?rs   )rL   
issubdtyper:   integerr   float64arrayrandomRandomStater~   rm   ro   r   randintrandappend)ri   r   rp   	split_perseedarrseeded_randr   r   split_ixprev_wqrc   r   s   &&f&&        @r5   _rand_splitr      sx    #)*"(3 )+cii(L(Lcjj$"(  * hhwbjj1G))''-K8
 1IOOD!E36v63336v666 10163y>E)*&&uqy1"J))Gb1f%67068061 ))Ava=!%'06 	 8 + ?/**8s   9G%G)Gh㈵>atolc                     V # r_   r[   xs   &r5   <lambda>r     s    r7   c                 0   V! V 4      pV! V4      p \         P                  ! WV8g  4      P                  4       '       d   V! WV4       R# R#   \         d    T! YV4        R# \        \
        3 d&    \        YV4       F  w  rx\        YxTR 7       K  	   R# i ; i))compare_assertN)rL   r   r   AttributeError	TypeErrorrn   r   _rough_check)	rc   br   keywcheck_acheck_ba_ib_is	   &&&&&    r5   r   r     s    !fG!fGB88G&'++--7, . )w(z" BG-HC.A .Bs   4A
 
B B/"BBc                     V # r_   r[   r   s   &r5   r   r     s    1r7   r   r   c                p   a aaaaaaaaa	a
aaaaaa \        S 4      VVVV	V VVVVVVVVVV
VV3R l4       pV# )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            	        < S! V / VB pV R S pV SR  pVP                  S%R 4      pVP                  RS4      p\        W5VRRR7      pVR R VR,          VR,          repS$'       d4   V Uu. uF'  p\        P                  ! VP	                  4       4      NK)  	  pp \        V4      V,           p S'       d   WQS%&   \        VS! V / VB SR7       S'       dB   VR,          VS%&   \        VS! V / VB SR7       VR,          VS%&    \        VS! V / VB SR7       S'       Ed   \        W5VS"S R7      w  rW[R VP                  % ^ WP                  R % \        V
4      V,           pWS%&   \        VS! V/ VB SR7       V
 FT  p\        R 4      .VP                  ,          p\        VP                  R 4      W&   \        V4      pW,          ^e,          W&   KV  	  \        V
4      V,           p\        VS! V/ VB SR7       V
 Fb  p\        R 4      .VP                  ,          p\        VP                  R 4      W&   \        V4      pW,          \        P                  ,          W&   Kd  	  VP                  RR 4      R	8X  d/   S'       d'   \        V
4      V,           p\        VS! V/ VB SR7       S'       dv   V
 Uu. uF"  p\        P                  P                  V4      NK$  	  p
p\        V
4      V,           p\        VS! V/ VB SR7       S'       d   R VS%&   \        VS! V/ VB SR7       ?
??S'       dr   V Uu. uF  p\        P                   ! WVR
7      NK  	  pp\        P                   ! WU4      R,          p\        V4      V,           pWS%&   \        VS! V/ VB SR7       ???S#'       dG   S"^ 8  d@   \        W5VS"S R7      pVw  pp\        V4      V,           pVVS%&   \        VS! V/ VB SR7       V# u upi   \         d   p	\        T	4      ! YT34      T	hR p	?	ii ; iu upi u upi   \"         d;   p	S!'       g(   \$        P&                  ! SP(                   RT	 2^R7        R p	?	T# R p	?	ii ; i)Nrp   T)r   rp   r   r   )r   g     @Y@gB`"۹?)r   r   
nan_policyomitrs          @z NotImplemented weights: )
stacklevelr   )getr   rL   r`   squeezerl   r   	Exceptiontyper   r   slicerh   nanru   rz   r   NotImplementedErrorwarningswarn__name__)&argskwargsresultri   restr   rp   r   rc   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_testrR   r   ma_safema_very_safen_argsnan_safe	ones_testr   silentr   
split_testr   
weight_args&   *,                   r5   wrapped _weight_checked.<locals>.wrapped  s5   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
 x*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   )-O*9P  ,P   O/ P  EP  ;-P  )P  -(PAP  )P  -!PAP  "AP  /P:PPP   Q%+/Q  Q%)r   )rR   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   fffffffffffffffff& r5   _weight_checkedr     s3     2YY Y Y Yt Nr7   c                   ,   a  ] tR tRt o R tR tRtV tR# )DummyContextManageri}  c                    R # r_   r[   selfs   &r5   	__enter__DummyContextManager.__enter__~      r7   c                    R # r_   r[   )r  r   s   &*r5   __exit__DummyContextManager.__exit__  r  r7   r[   N)r   
__module____qualname____firstlineno__r  r
  __static_attributes____classdictcell____classdict__s   @r5   r  r  }  s      r7   r  c                $    V ^8  d   QhR\         /# )   r6   )str)formats   "r5   __annotate__r    s     % %S %r7   c                 N    V R9   d   \         P                  ! 4       # \        4       # )r"   )r"   r(   )pytestdeprecated_callr  r6   s   &r5   maybe_deprecatedr    s#    11%%''"$$r7   )r   r   )r   r   r   )r   r   r   )r   r   r   r   )r   )r   c                     a  ] tR tRt o R t]P                  P                  R 4       tR t	R t
]P                  P                  RRRR	R
RRR]P                  .4      R 4       tR tR tR tRR ltR tR t]P                  P                  ]P                  P+                  ]P.                  ! 4       R8H  RR7      R 4       4       t]P                  P                  R 4       t]P                  P                  R 4       tRtV tR# )	TestCdisti  c                &   . ROV n         R\        \        \        P                  \        P
                  .R\        \        P                  \        P
                  .R\        P                  \        P
                  .R\        P
                  ./V n        R# rA   booluintr   rQ   N)rA   rB   rC   r@   r?   rnd_eo_namesr-   r,   rL   rQ   r   valid_upcastsr  s   &r5   setup_methodTestCdist.setup_method  _    1 %x"**bjj&Q$w

BJJ&G#bjj"**%='"**7r7   c                z   . RO. RO. R	O.p. R
O. RO. RO.pRRR\         P                  ! ^4      /pR.^,          p\        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W#3RV/VB  RRR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W#3R\        V4      /VB  RRR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W#3RRV,           /VB  RRR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#.VO5RV/  RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#.VO5R\        V4      /  RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#.VO5RRV,           /  RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL]; i  + '       g   i     ELi; i  + '       g   i     EL); i  + '       g   i     EL5; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)r   N0tV4l1D_p4raMQ	@r   r6   Ntest_r   r         @333333?ffffff@333333@皙@r1  皙@g      @      @g       @g      @333333@g @g      @r9  r5  )rL   aranger  raisesr   r  r   eval)r  r6   X1X2r   r   s   &&    r5   test_cdist_extra_argsTestCdist.test_cdist_extra_args  s    O_=O_="D#ryy|<v|]]9%%!&))b6V6v6 * & ]]9%%!&))b<T&\<V< * & ]]9%%!&))b@Wv%5@@ * & ]]9%%"/$// &]]9%%"55f5 &]]9%%"9D96!19 &% *)) &%% *)) &%% *)) &%% &%%%%%%%s   H1H
	 H2IH2	II.$I	:I.,J&J)J)
H	HH/	2I=	II	I+%	I..I?	J	J&	)J:	c                   RR lp. RO. RO. RO.p. RO. RO. RO.pRRR\         P                  ! ^4      /pR.^,          p\        P                  ! \        4      ;_uu_ 4        \        W#V4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#V.VO5!   RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#V3/ VB  RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#VRRR7       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#V^^RR	7       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#V^^RR	7       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#VR
RR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#VR
R4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#VR
4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W#VR
RRR7       RRR4       \        \        W#VR
RR7      R4       R#   + '       g   i     EL3; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELv; i  + '       g   i     ELP; i  + '       g   i     EL+; i  + '       g   i     EL; i  + '       g   i     L; i)   c                      W#,           V,           # r_   r[   r   yargkwargkwarg2s   &&&&&r5   
_my_metric:TestCdist.test_cdist_extra_args_custom.<locals>._my_metric      ;''r7   r4  r*  r+  r   Nffffff
@rH  rI  rH  皙?r6   rG  rI  皙@rC  r  r-  r/  r3  r6  r8  r:  )rL   r;  r  r<  r   r   r   )r  rJ  r>  r?  r   r   s   &     r5   test_cdist_extra_args_custom&TestCdist.test_cdist_extra_args_custom  s   	( O_=O_="D#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   "JJ-K
KK)?K=:L4L%-L9%MJ*	-J>	K	K&	)K:	=L	L"	%L6	9M
	M	c                    R p\         R,          p\         R,          p\        W#R4      p\        W#R4      p\        WEV\        ^8  R7       R# )V瞯<cdist-X1cdist-X2r   test_euclideanrtolr   NrN   wcdist_no_constr   r   )r  epsr>  r?  Y1Y2s   &     r5   #test_cdist_euclidean_random_unicode-TestCdist.test_cdist_euclidean_random_unicode  sB    
^
^R[1R%56S'A+>r7   p皙?      ?r   Gz?r   gffffff@gffffff@c                    R p\         R,          p\         R,          p\        W4RVR7      p\        W4RVR7      p\        WV^ V\        ^8  R7       R# )vIh%<=rX  rY  r$   rd  test_minkowski)r   r\  r   Nr]  )r  rd  r_  r>  r?  r`  ra  s   &&     r5   test_cdist_minkowski_random%TestCdist.test_cdist_minkowski_random  sJ     
^
^R[A6R%5;QS'A+Fr7   c                   R p\         R,          p\         R,          p\        W#R4      pR p^\        P                  ! W%! V4      ,          W5! V4      ,          P                  4      ,
          p\        WFV\        ^8  R7       R# )+=rX  rY  r   c                 d    \         P                  P                  V ^R7      P                  R^4      # )rC  rs   r   )rL   linalgr   r   )Xs   &r5   norms1TestCdist.test_cdist_cosine_random.<locals>.norms  s&    99>>!!>,44R;;r7   r[  N)rN   wcdistrL   dotTr   r   )r  r_  r>  r?  r`  rs  ra  s   &      r5   test_cdist_cosine_random"TestCdist.test_cdist_cosine_random  sg    
^
^BH%	< eBi2b	>*<*<==S'A+>r7   c                   \         P                  ! ^.^..4      p\         P                  ! ^.^..4      p\        WRR7      p\        VR\         P                  ! R4      .\         P                  ! R4      \         P                  ! ^4      ..4       \         P                  ! ^ ^ .R^ ..4      p\         P                  ! ^ ^.^^ .^ R..4      p\        WRR7      p\         P                  ! ^4      p\        W4WD.^^V,          ^..4       \
        P                  ! \        4      ;_uu_ 4        \        ^ ^..^^..RR7       RRR4       R#   + '       g   i     R# ; i)	r  r#   r                @      ?Nr   r   )rL   r   r   r   sqrtr  r<  rn   )r  x1x2distrt2s   &    r5   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   )EE	c                   a  ! R  R4      oV3R lp\         P                  ! S! 4       ..\        R7      p\        W"VR7      pRp\	        W4\
        ^8  R7       R# )c                       ] tR tRtRtR# )6TestCdist.test_cdist_custom_notdouble.<locals>.myclassi  r[   Nr   r  r  r  r  r[   r7   r5   myclassr        r7   r  c                    < \        V ^ ,          S4      '       d   \        V^ ,          S4      '       g   \        R4      hR# r   zType has been changed+?
isinstancern   r   rF  r  s   &&r5   rJ  9TestCdist.test_cdist_custom_notdouble.<locals>._my_metric"  3    adG,,JqtW4M4M !899r7   r9   r  r  r   N)rL   r   objectr   r	   r   )r  rJ  r=   cdist_yright_yr  s   &    @r5   test_cdist_custom_notdouble%TestCdist.test_cdist_custom_notdouble  sI    	 		 xx')V4:6Ww{;r7   c           
     P    \        W3R V/VB p\        W3R \        V4      /VB p\        W3R RV,           /VB p\        WgV\        ^8  R7       \        WhV\        ^8  R7       R#   \         Ed2   p	T	P
                  p
\        ^8  d!   \        T
P                  4       \        T	4       \        P                  ! T
4      ;_uu_ 4        \        Y3R T/TB  RRR4       M  + '       g   i     M; i\        P                  ! T
4      ;_uu_ 4        \        Y3R \        T4      /TB  RRR4       M  + '       g   i     M; i\        P                  ! T
4      ;_uu_ 4        \        Y3R RT,           /TB  RRR4        Rp	?	R#   + '       g   i      Rp	?	R# ; iRp	?	ii ; ir6   r,  r[  N)
r   r=  r   r   r   	__class__printr   r  r<  )r  r>  r?  r6   r_  r   y1y2y3r   e_clss   &&&&&,     r5   _check_calling_conventions$TestCdist._check_calling_conventions+  sA   	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   :A( (F%4AF 	C!	F !C1,&F D3*	F 3E>&F $F:F FF F  F%c                T   V P                    EF  p\        V,          R RRR
13,          p\        V,          R,          p\        ^8  d   \        RVRV4       VR9   d
   RV9  d   KZ  V P	                  W4V4       VR8X  dc   \
        P                  ! W4.4      P                  \
        P                  4      p\
        P                  ! V^ ^R7      pV P	                  W4WR7       K  VR8X  g   K  \
        P                  ! W4.4      P                  \
        P                  4      p\
        P                  ! \
        P                  ! VP                  4      4      p\
        P                  ! \
        P                  P                  V4      P                  4      pV P	                  W4WR	7       EK  	  R# )NN   N	testing:  with: r!  r'   rp   r   Vr#   VIr   :rC  Nr  NNr  >   r   r+   r&   r"   r)   r(   r%   )r$  rN   r   r  r  rL   vstackr   r   var
atleast_2dcovrw  r   rq  inv)r  r6   eo_namer>  r?  X12r  r  s   &&      r5   test_cdist_calling_conventions(TestCdist.test_cdist_calling_conventions@  s<    ((G GS$B$Y'BGY'B{k69g> ) ) .47-B++BF; %ii)00<FF3QQ////D=(ii)00<MM"&&-0XXbiimmA.001///F3 )r7   c                n   R p\         R,          V P                  R,          3\         R,          V P                  R,          3\         R,          V P                  R,          3\         R,          V P                  R,          3.pV Fu  pV^ ,          R	R
R
R13,          pV^ ,          R,          p \        WVVR7      pV^,           F2  p\        V! V4      V! V4      VR7      p	\        WyV\        ^8  R7       K4  	  Kw  	  R
#   \
         d   p
T
P                  p\        ^8  d!   \        TP                  4       \        T
4       T^,           F[  pT! T4      pT! T4      p\        P                  ! T4      ;_uu_ 4        \        YTR7       R
R
R
4       KI    + '       g   i     KZ  ; i	   R
p
?
EK,  R
p
?
ii ; i)Hz>r?   r!  rC   r"  rB   r   rA   rQ   r  Nr  r[  r   r  )rN   r%  r   r   r   r   r  r  r   r  r<  )r  r6   r_  teststestr>  r?  r  new_typer  r   r  X1newX2news   &&            r5   test_cdist_dtype_equivalence&TestCdist.test_cdist_dtype_equivalence_  sn   '($*<*<V*DE'($*<*<V*DE&'););E)BC*+T-?-?	-JKM Dadd#Ba#BK2&1 !%QHx|Xb\&IB#BgkJ !(! 
  	;Q;%..)!H $QH$RLE$RLEu--e6: .--- !(	;s1   ,C>>F4	A1F/:F
F/F#F//F4z	win-arm64znumpy#29442)reasonc           	        R p\         R,          p\         R,          pVP                  ^ ,          VP                  ^ ,          re\        4       pVR8X  d   RVR&   \        P                  ! WV3\        P
                  R7      p\        V4      ;_uu_ 4        \        W4V3/ VB p	RRR4       \        V4      ;_uu_ 4        \        W4V3RV/VB p
RRR4       \        X	X
V\        ^8  R	7       \        WJ 4       \        P                  ! V^,
          V^,           3\        P
                  R7      p\        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W4V3RV/VB  RRR4       RRR4       \        P                  ! ^V,          ^V,          3\        P
                  R7      R,          p\        P                  ! WV3\        P
                  R
R7      p\        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W4V3RV/VB  RRR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W4V3RV/VB  RRR4       RRR4       \        P                  ! WV3\        P                  R7      p\        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W4V3RV/VB  RRR4       RRR4       R#   + '       g   i     ELz; i  + '       g   i     ELc; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL>; i  + '       g   i     ELJ; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)rW  rX  rY  r$   rg  rd  r9   Noutr[  F)r:   orderr  r  )rN   r~   dictrL   emptyr   r  r   r   r   r   r  r<  rn   int64)r  r6   r_  r>  r?  out_rout_cr   out1r`  ra  out2out3out4out5s   &&             r5   test_cdist_outTestCdist.test_cdist_outz  s    
^
^xx{BHHQKu[ F3Kxxbjj9f%%rv00B &f%%rv:4:6:B & 	BS'A+> 	
 xxq%'*"**=]]:&&!&))bf9$9&9 * '
 xxYE	""**66>@xxbjjD]]:&&!&))bf9$9&9 * ' ]]:&&!&))bf9$9&9 * '
 xxbhh7]]:&&!&))bf9$9&9 * '&= &%%%%% *)) '&& *)) '&& *)) '&& *) '&&s   L;L%M!L9	1MM5M!	,M5N2N		NO/N1	?OL"	%L6	9M
	MM	!M2,	M55N		N	NN.	1O<OO	c                   R p\         R,          R,          p\         R,          R,          pVP                  4       pVP                  4       p\        W54       \        WF4       \        VP                  P
                  '       * 4       \        VP                  P
                  '       * 4       \        VP                  P
                  4       \        VP                  P
                  4       \        4       pVR8X  d   RVR&   \        V4      ;_uu_ 4        \        W4V3/ VB pRRR4       \        V4      ;_uu_ 4        \        WVV3/ VB p	RRR4       \        XX	V\        ^8  R7       R#   + '       g   i     LQ; i  + '       g   i     L;; i)	rW  rX  rY  r$   rg  rd  Nr[  r  )rN   copyr	   r   flagsc_contiguousr  r  r   r   r   )
r  r6   r_  r>  r?  X1_copyX2_copyr   r`  ra  s
   &&        r5   test_stridingTestCdist.test_striding  s    
^H%
^H%'')'') 	R!R!BHH)))*BHH)))***+**+[ F3Kf%%rv00B &f%%w:6:B & 	BS'A+> &%%%s   E'9E:'E7	:F
	c                .   \         P                  P                  ^
^
4      p\         P                  P                  ^
^
4      p\        4       pVR8X  d   RVR&   \	        V4      ;_uu_ 4        \        W#3RV/VB pRRR4       W#X3 Uu. uF  p\        P                  ! V4      NK  	  pp???\        '       d   \        4        \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   Q hR#   + '       g   i     L; iu upi )	
   r$   rg  rd  r6   Nc              3   2   "   T F  q! 4       R J x  K  	  R # 5ir_   r[   )rb   weak_refs   & r5   rd   0TestCdist.test_cdist_refcount.<locals>.<genexpr>  s     @i(8:%is   FT)rL   r   r   r  r  r   weakrefrefr   r   rm   )r  r6   r  r  r   r  v	weak_refss   &&      r5   test_cdist_refcountTestCdist.test_cdist_refcount  s    YY^^B#YY^^B#[ F3Kf%%8v88C &
 /1c];]W[[^]	;C7Ns@i@sss@i@@@@@ &%
 <s   *C?D?D	r$  r%  Nr  )r   r  r  r  r&  r  markthread_unsafer@  rT  rb  parametrizerL   infrl  rx  r  r  r  r  r  skipif	sysconfigget_platformr  r  r  r  r  r  s   @r5   r  r    s    7 [[: :0"9H? [[S3c4#&S"&&#: ;G;G?<$<C*G>K6 [[[[	..0K?V+: W +:Z [[? ?8 [[A Ar7   r  c            	         a  ] tR tRt o R t]P                  P                  R 4       tR t	R t
R tR tR t]P                  P                  R	 4       t]P                  P                  R
 4       t]P                  P                  R 4       tR tR tR tR tR tR tR tR tR t]P                  P                  R 4       t]P                  P                  R 4       t]P                  P                  R 4       tR tR tR t R t!]P                  P                  R 4       t"]P                  P                  R 4       t#]P                  P                  R 4       t$R t%R  t&R! t']P                  P                  R" 4       t(]P                  P                  R# 4       t)]P                  P                  R$ 4       t*]P                  PW                  R%R&R'R(R)R*],PZ                  .4      R+ 4       t.R, t/R- t0R. t1]P                  P                  R/ 4       t2]P                  P                  R0 4       t3]P                  P                  R1 4       t4]P                  P                  R2 4       t5]P                  P                  R3 4       t6]P                  P                  R4 4       t7R5 t8R6 t9R7 t:R8 t;R9 t<R: t=R; t>R< t?R= t@R> tAR? tBR@ tCRA tDRB tERC tFRD tGRE tHRF tIRG tJRH tKRI tLRJ tMRK tNRL tORM tP]P                  P                  RN 4       tQRO tR]SRP 4       tTRXRQ ltURR tVRS tW]P                  P                  RT 4       tX]P                  P                  RU 4       tYRVtZV t[RW# )Y	TestPdisti  c                &   . ROV n         R\        \        \        P                  \        P
                  .R\        \        P                  \        P
                  .R\        P                  \        P
                  .R\        P
                  ./V n        R# r   r#  r  s   &r5   r&  TestPdist.setup_method  r(  r7   c                d   R R.RR.RR..pRRR\         P                  ! ^4      /pR.^,          p\        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        V3RV/VB  R	R	R	4       R	R	R	4       \        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        V3R\        V4      /VB  R	R	R	4       R	R	R	4       \        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        V3RR
V,           /VB  R	R	R	4       R	R	R	4       \        P                  ! \        4      ;_uu_ 4        \        V.VO5RV/  R	R	R	4       \        P                  ! \        4      ;_uu_ 4        \        V.VO5R\        V4      /  R	R	R	4       \        P                  ! \        4      ;_uu_ 4        \        V.VO5RR
V,           /  R	R	R	4       R	#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL]; i  + '       g   i     ELi; i  + '       g   i     EL); i  + '       g   i     EL5; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R	# ; i)r   r   r0  r1  r4  r*  r+  r   r6   Nr,  )rL   r;  r  r<  r   r  r   r=  )r  r6   r>  r   r   s   &&   r5   test_pdist_extra_argsTestPdist.test_pdist_extra_args  s    2hc
S#J/"D#ryy|<v|]]9%%!&))b2262 * & ]]9%%!&))b8f88 * & ]]9%%!&))b<6!1<V< * & ]]9%%"+d+V+ &]]9%%"1D1T&\1 &]]9%%"55Wv-5 &% *)) &%% *)) &%% *)) &%% &%%%%%%%s   H&G?	5H'H;;H'	H;I#I	/I#!I7JJ?H
	HH$	'H82	H;;I	I 	I##I4	7J	J	J/	c           
        RR lpRR.RR.RR..pRRR	\         P                  ! ^4      /pR.^,          p\        P                  ! \        4      ;_uu_ 4        \        W!4       R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!.VO5!   R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!3/ VB  R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!RRR7       R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!^^RR7       R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!^^RR7       R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!RRR4       R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!RR4       R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!R4       R
R
R
4       \        P                  ! \        4      ;_uu_ 4        \        W!RRRR7       R
R
R
4       \        \        W!RRR7      R4       R
#   + '       g   i     EL); i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELq; i  + '       g   i     ELL; i  + '       g   i     EL(; i  + '       g   i     EL; i  + '       g   i     L; i)rC  c                      W#,           V,           # r_   r[   rE  s   &&&&&r5   rJ  :TestPdist.test_pdist_extra_args_custom.<locals>._my_metric  rL  r7   r   r   r0  r1  r4  r*  r+  r   NrM  rN  rO  rP  rQ  rR  rS  )rL   r;  r  r<  r   r   r   )r  rJ  r>  r   r   s   &    r5   test_pdist_extra_args_custom&TestPdist.test_pdist_extra_args_custom  s   	( 2hc
S#J/"D#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   JJJ+<J?5K/K')K;"LL#L7J	J(	+J<	?K	K$	'K8	;L	L 	#L4	7M	c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# r  pdist-double-inppdist-euclideanr   r\  NrN   wpdist_no_constr   r  r_  rr  Y_rightY_test1s   &    r5   test_pdist_euclidean_random%TestPdist.test_pdist_euclidean_random!  3    !"&'!![1s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# r  r  r  s   &    r5   test_pdist_euclidean_random_u'TestPdist.test_pdist_euclidean_random_u(  r  r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  rL   rQ   rN   r  r   r  s   &    r5   #test_pdist_euclidean_random_float32-TestPdist.test_pdist_euclidean_random_float32/  s<    JJr,-.&'!![1s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  r  rZ  r   Nr  r  r_  rr  r  Y_test2s   &    r5    test_pdist_euclidean_random_nonC*TestPdist.test_pdist_euclidean_random_nonC6  s4    !"&'!!%56s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  irispdist-euclidean-irisr   r   Nr  r  s   &    r5    test_pdist_euclidean_iris_double*TestPdist.test_pdist_euclidean_iris_double=  s1    vJ+,!![1s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCV\
        ^8  R7       R# )r   r  r  r   r[  NrL   rQ   rN   r  r   r   r  s   &    r5   !test_pdist_euclidean_iris_float32+TestPdist.test_pdist_euclidean_iris_float32E  @    JJr&z"+,!![1sGaKHr7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  r  rZ  r   Nr  r  s   &    r5   test_pdist_euclidean_iris_nonC(TestPdist.test_pdist_euclidean_iris_nonCM  s4     vJ+,!!%56s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  pdist-seuclideanr'   r   NrN   r   r   r  s   &    r5   test_pdist_seuclidean_random&TestPdist.test_pdist_seuclidean_randomW  s3    !"'(<(s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       \         P
                  ! V^ ^R7      p\        VRVR7      p\	        WcVR7       R# )r  r  r#  r'   r   r  r  N)rL   rQ   rN   r   r   r  )r  r_  rr  r  r  r  r  s   &      r5   $test_pdist_seuclidean_random_float32.TestPdist.test_pdist_seuclidean_random_float32^  sh    JJr,-.'(<(s3 FF111%<1-s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  r#  test_seuclideanr   Nr$  r  s   &    r5   !test_pdist_seuclidean_random_nonC+TestPdist.test_pdist_seuclidean_random_nonCj  s4    !"'(,-s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  pdist-seuclidean-irisr'   r   Nr$  r  s   &    r5   test_pdist_seuclidean_iris$TestPdist.test_pdist_seuclidean_irisr  s1    vJ,-<(s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# )r   r  r/  r'   r   N)rL   rQ   rN   r   r   r  s   &    r5   "test_pdist_seuclidean_iris_float32,TestPdist.test_pdist_seuclidean_iris_float32y  s:    JJr&z",-<(s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  r/  r+  r   Nr$  r  s   &    r5   test_pdist_seuclidean_iris_nonC)TestPdist.test_pdist_seuclidean_iris_nonC  s4     vJ,-,-s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# r  r  pdist-cosiner   r   NrN   wpdistr   r  s   &    r5   test_pdist_cosine_random"TestPdist.test_pdist_cosine_random  s2    !"^$H%s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r9  rL   rQ   rN   r<  r   r  s   &    r5    test_pdist_cosine_random_float32*TestPdist.test_pdist_cosine_random_float32  s;    JJr,-.^$H%s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  r:  test_cosiner   Nr;  r  s   &    r5   test_pdist_cosine_random_nonC'TestPdist.test_pdist_cosine_random_nonC  s2    !"^$M*s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r   r  pdist-cosine-irisr   r   Nr;  r  s   &    r5   test_pdist_cosine_iris TestPdist.test_pdist_cosine_iris  s1    vJ()H%s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCV\
        ^8  R7       R# )r   r  rH  r   r   r   N)rL   rQ   rN   r<  r   r   r  s   &    r5   test_pdist_cosine_iris_float32(TestPdist.test_pdist_cosine_iris_float32  s@    JJr&z"()H%sGaKHr7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r   r  rH  rD  r   Nr;  r  s   &    r5   test_pdist_cosine_iris_nonC%TestPdist.test_pdist_cosine_iris_nonC  s1    vJ()M*s3r7   c                    \         P                  ! \         P                  P                  R 4      P	                  ^[4      4      p\         P
                  ! W.4      p\        \        VR4      ^ ,          ^ 8  RR7       R# )i9  r   z&cosine distance should be non-negative)msgN)rL   absr   r   r   r  r   r<  )r  r   rr  s   &  r5   test_pdist_cosine_bounds"TestPdist.test_pdist_cosine_bounds  sZ     FF299((.33B78IIqfq(#A&!+<	>r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# r  r  pdist-cityblockr   r   Nr  r  s   &    r5   test_pdist_cityblock_random%TestPdist.test_pdist_cityblock_random  s3    !"&'!![1s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# rX  r  r  s   &    r5   #test_pdist_cityblock_random_float32-TestPdist.test_pdist_cityblock_random_float32  s<    JJr,-.&'!![1s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  rY  test_cityblockr   Nr  r  s   &    r5    test_pdist_cityblock_random_nonC*TestPdist.test_pdist_cityblock_random_nonC  s4    !"&'!!%56s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )ro  r  pdist-cityblock-irisr   r   Nr  r  s   &    r5   test_pdist_cityblock_iris#TestPdist.test_pdist_cityblock_iris  s1    vJ+,!![1s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCV\
        ^8  R7       R# )r   r  rd  r   r[  Nr  r  s   &    r5   !test_pdist_cityblock_iris_float32+TestPdist.test_pdist_cityblock_iris_float32  r  r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )ro  r  rd  r`  r   Nr  r  s   &    r5   test_pdist_cityblock_iris_nonC(TestPdist.test_pdist_cityblock_iris_nonC  s4     vJ+,!!%56s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# r  r  pdist-correlationr   r   Nr;  r  s   &    r5   test_pdist_correlation_random'TestPdist.test_pdist_correlation_random  s3    !"()M*s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# rn  r@  r  s   &    r5   %test_pdist_correlation_random_float32/TestPdist.test_pdist_correlation_random_float32  s<    JJr,-.()M*s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  ro  test_correlationr   Nr;  r  s   &    r5   "test_pdist_correlation_random_nonC,TestPdist.test_pdist_correlation_random_nonC  s4    !"()./s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  pdist-correlation-irisr   r   Nr;  r  s   &    r5   test_pdist_correlation_iris%TestPdist.test_pdist_correlation_iris  s1    vJ-.M*s3r7   c                    R p\         R,          p\        P                  ! \         R,          4      p\        VR4      p\	        WCV\
        ^8  R7       R# )r  r  rz  r   r[  N)rN   rL   rQ   r<  r   r   r  s   &    r5   #test_pdist_correlation_iris_float32-TestPdist.test_pdist_correlation_iris_float32  s@    vJ**R 89:M*sGaKHr7   c                    \         P                  R8  d   RpM\        P                  ! R4       \        R,          p\        R,          p\        VR4      p\        WCXR7       R# )	r  r  zsee gh-16456r  rz  rv  r   Nl        )sysmaxsizer  skiprN   r<  r   r  s   &    r5    test_pdist_correlation_iris_nonC*TestPdist.test_pdist_correlation_iris_nonC  sJ    ;;CKK'vJ-../s3r7   rd  re  rf  r   r   皙	@c                x    R p\         R,          p\        VRVR7      p\        VRVR7      p\        WE^ VR7       R# )ri  r  r$   rj  rk  )r   r\  Nr  )r  rd  r_  rr  r`  ra  s   &&    r5   test_pdist_minkowski_random_p'TestPdist.test_pdist_minkowski_random_p   s;    !"Qq1Q 0A6QS1r7   c                t    R p\         R,          p\         R,          p\        VRRR7      p\        WCVR7       R# r  r  pdist-minkowski-3.2r$   r  rj  r   Nr  r  s   &    r5   test_pdist_minkowski_random%TestPdist.test_pdist_minkowski_random(  s5    !"*+!![C8s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VRRR7      p\	        WCVR7       R# r  r  r  s   &    r5   #test_pdist_minkowski_random_float32-TestPdist.test_pdist_minkowski_random_float32/  s>    JJr,-.*+!![C8s3r7   c                t    R p\         R,          p\         R,          p\        VRRR7      p\        WCVR7       R# )r  r  r  rk  r  rj  r   Nr  r  s   &    r5    test_pdist_minkowski_random_nonC*TestPdist.test_pdist_minkowski_random_nonC6  s6    !"*+!!%5=s3r7   c                t    R p\         R,          p\         R,          p\        VRRR7      p\        WCVR7       R# )r  r  pdist-minkowski-3.2-irisr$   r  rj  r   Nr  r  s   &    r5   test_pdist_minkowski_3_2_iris'TestPdist.test_pdist_minkowski_3_2_iris=  3    vJ/0!![C8s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VRRR7      p\	        WCVR7       R# )r   r  r  r$   r  rj  r   Nr  r  s   &    r5   %test_pdist_minkowski_3_2_iris_float32/TestPdist.test_pdist_minkowski_3_2_iris_float32E  s<    JJr&z"/0!![C8s3r7   c                t    R p\         R,          p\         R,          p\        VRRR7      p\        WCVR7       R# )r  r  r  rk  r  rj  r   Nr  r  s   &    r5   "test_pdist_minkowski_3_2_iris_nonC,TestPdist.test_pdist_minkowski_3_2_iris_nonCM  4    vJ/0!!%5=s3r7   c                t    R p\         R,          p\         R,          p\        VRRR7      p\        WCVR7       R# )r  r  pdist-minkowski-5.8-irisr$   r9  rj  r   Nr  r  s   &    r5   test_pdist_minkowski_5_8_iris'TestPdist.test_pdist_minkowski_5_8_irisU  r  r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VRRR7      p\	        WCV\
        ^8  R7       R# )r   r  r  r$   r9  rj  r[  Nr  r  s   &    r5   %test_pdist_minkowski_5_8_iris_float32/TestPdist.test_pdist_minkowski_5_8_iris_float32]  sB    JJr&z"/0!![C8sGaKHr7   c                t    R p\         R,          p\         R,          p\        VRRR7      p\        WCVR7       R# )r  r  r  rk  r9  rj  r   Nr  r  s   &    r5   "test_pdist_minkowski_5_8_iris_nonC,TestPdist.test_pdist_minkowski_5_8_iris_nonCe  r  r7   c                   \         P                  ! . RO4      P                  R^4      p\        VRR7      p\	        VR\         P
                  ! R4      \         P
                  ! R4      \         P
                  ! R4      \         P
                  ! R4      \         P
                  ! R 4      .4       \         P                  ! ^ ^ .R^ .^ ^.^^ .^ R	..4      p\        VRR7      p\         P
                  ! ^4      p\	        W#W3V^^V,          ^^^V,          ^.
4       \        P                  ! \        4      ;_uu_ 4        \        ^ ^.^^..RR7       RRR4       R#   + '       g   i     R# ; i)
r   r#   r  r{  r}  r|  N)r   r   r.  r7  r   r   )
rL   r   r   r   r   r~  r  r<  rn   r<  )r  r   r  r  s   &   r5   test_pdist_mahalanobis TestPdist.test_pdist_mahalanobism  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   8EE'	c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# rW  r>   pdist-hammingr   r   Nr;  r  s   &    r5   test_pdist_hamming_random#TestPdist.test_pdist_hamming_random~  s2    "#_%I&s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  r@  r  s   &    r5   !test_pdist_hamming_random_float32+TestPdist.test_pdist_hamming_random_float32  ;    JJr-./_%I&s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# rW  r>   r  test_hammingr   Nr;  r  s   &    r5   test_pdist_hamming_random_nonC(TestPdist.test_pdist_hamming_random_nonC  s2    "#_%N+s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  rL   r   rN   r<  r   r  s   &    r5   test_pdist_dhamming_random$TestPdist.test_pdist_dhamming_random  r  r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  r@  r  s   &    r5   "test_pdist_dhamming_random_float32,TestPdist.test_pdist_dhamming_random_float32  r  r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  r  r  s   &    r5   test_pdist_dhamming_random_nonC)TestPdist.test_pdist_dhamming_random_nonC  s;    JJr-./_%N+s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )dy=r  pdist-jensenshannonr!   r   Nr$  r  s   &    r5   test_pdist_jensenshannon_random)TestPdist.test_pdist_jensenshannon_random  s3    !"*+?+s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCV\
        ^8  R7       R# ):0yE>r  r  r!   r[  NrL   rQ   rN   r   r   r   r  s   &    r5   'test_pdist_jensenshannon_random_float321TestPdist.test_pdist_jensenshannon_random_float32  sB    JJr,-.*+?+sGaKHr7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  r  test_jensenshannonr   Nr$  r  s   &    r5   $test_pdist_jensenshannon_random_nonC.TestPdist.test_pdist_jensenshannon_random_nonC  s4    !"*+/0s3r7   c                    \        4       '       d   R pMRp\        R,          p\        R,          p\        VR4      p\        WCVR7       R# )g&.=g-q=r  pdist-jensenshannon-irisr!   r   N)r\   rN   r   r   r  s   &    r5   test_pdist_jensenshannon_iris'TestPdist.test_pdist_jensenshannon_iris  s=    ;;CCvJ/0?+s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCV\
        ^8  R7       R# )gư>r  r  r!   rL  Nr  r  s   &    r5   %test_pdist_jensenshannon_iris_float32/TestPdist.test_pdist_jensenshannon_iris_float32  s@    JJr&z"/0?+sGaKHr7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )g-C6
?r  r  r  r   Nr$  r  s   &    r5   "test_pdist_jensenshannon_iris_nonC,TestPdist.test_pdist_jensenshannon_iris_nonC  s2    vJ/0/0s3r7   c                :   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\	        VR^ RR7       \	        VR^ RR7       R# rC  r9   333333?绽|=r\  r   NrC  r   rC  rC  r   rC  rC  r   rC  rC  	wmatchingrL   r   r!  r   r  mm2s   &  r5   test_pdist_matching_mtica1$TestPdist.test_pdist_matching_mtica1  sd    bhh/hh/1rxxt<xxt<>3QU3Cae4r7   c                :   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\	        VR^ RR7       \	        VR^ RR7       R# rC  r9   r  r  NrC  r   rC  rC  rC  r   UUUUUU?r  r  s   &  r5   test_pdist_matching_mtica2$TestPdist.test_pdist_matching_mtica2  sd    bhhy)XXi(*rxx	6hhy575qu5E6r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        V^^ RR7       \        V^^ RR7       R# )rC  r9   r  r  Nr  r  wyulerL   r   r!  r   r  r   r  s   &  r5   test_pdist_yule_mtica1 TestPdist.test_pdist_yule_mtica1  sr    "((?+((?+-288O4888O48:Q;!H1151AAE2r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        V^^ RR7       \        V^^ RR7       R# )rC  r9   r  r  Nr  r  r  r  s   &  r5   test_pdist_yule_mtica2 TestPdist.test_pdist_yule_mtica2  sr    "((9%((9%'288IT288IT24Q;!H1151AAE2r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        VR^ RR7       \        VR^ RR7       R# )rC  r9   r  r  Nr  r  g۶m۶m?wdicerL   r   r!  r   r  r   r  s   &  r5   test_pdist_dice_mtica1 TestPdist.test_pdist_dice_mtica1  sr    "((?+((?+-288O4888O48:Q;!H5qu5E6r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        VR^ RR7       \        VR^ RR7       R# )rC  r9   r}  r  r  Nr  r  r  r  s   &  r5   test_pdist_dice_mtica2 TestPdist.test_pdist_dice_mtica2  sr    "((9%((9%'288IT288IT24Q;!H3QU3Cae4r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        VR^ RR7       \        VR^ RR7       R# rC  r9   r  r  Nr  r  g      ?)r)   rL   r   r!  r   r  r   r  s   &  r5   test_pdist_sokalsneath_mtica1'TestPdist.test_pdist_sokalsneath_mtica1  s    113/>/>@Q;!H5qu5E6r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        VR^ RR7       \        VR^ RR7       R# rC  r9   r  r  Nr  r  g?)wsokalsneathrL   r   r!  r   r  r   r  s   &  r5   test_pdist_sokalsneath_mtica2'TestPdist.test_pdist_sokalsneath_mtica2  sr    ),),."((9D9((9D9;Q;!H5qu5E6r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        VR^ RR7       \        VR^ RR7       R# r  wrogerstanimotorL   r   r!  r   r  r   r  s   &  r5    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6r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        VR^ RR7       \        VR^ RR7       R# r	  r  r  s   &  r5    test_pdist_rogerstanimoto_mtica2*TestPdist.test_pdist_rogerstanimoto_mtica2/  sr    BHHY/HHY/1RXXit<XXit<>Q;!H5qu5E6r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        VR^ RR7       \        VR^ RR7       R# )rC  r9   r  r  Nr  r  r  wrussellraorL   r   r!  r   r  r   r  s   &  r5   test_pdist_russellrao_mtica1&TestPdist.test_pdist_russellrao_mtica19  r  r7   c                f   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\        ^8  d   \        V4       \        VR^ RR7       \        VR^ RR7       R# r  r  r  s   &  r5   test_pdist_russellrao_mtica2&TestPdist.test_pdist_russellrao_mtica2C  sr    ++-)48)48:Q;!H5qu5E6r7   c                    \         R ,          p\        ^8  d!   \        VP                  VP                  4       Rp\        VR4      p\        VR4      p\        W4V\        ^8  R7       R# )r  rW  r   test_canberrar[  N)rN   r   r  r~   r:   r  r   )r  Dr_  r  r  s   &    r5   test_pdist_canberra_match#TestPdist.test_pdist_canberra_matchM  sQ    vJQ;!''177#Q
+Q0S'A+>r7   c                X    R p\        R.R.3R4      pRp\        W#V\        ^8  R7       R# )r  rM  r2  r   gd>@1?rL  N)r  r   r   )r  r_  pdist_yr  s   &   r5   test_pdist_canberra_ticket_711(TestPdist.test_pdist_canberra_ticket_711W  s2     !C53%.*=sGaKHr7   c                   a  ! R  R4      oV3R lp\         P                  ! S! 4       .S! 4       ..\        R7      p\        W!R7      pRp\	        W4\
        ^8  R7       R# )c                       ] tR tRtRtR# )6TestPdist.test_pdist_custom_notdouble.<locals>.myclassib  r[   Nr  r[   r7   r5   r  r(  b  r  r7   r  c                    < \        V ^ ,          S4      '       d   \        V^ ,          S4      '       g   \        R4      hR# r  r  r  s   &&r5   rJ  9TestPdist.test_pdist_custom_notdouble.<locals>._my_metrice  r  r7   r9   r  r  r  N)rL   r   r  r   r	   r   )r  rJ  r=   r#  r  r  s   &    @r5   test_pdist_custom_notdouble%TestPdist.test_pdist_custom_notdouble_  sN    	 		 xx')wyk2&A0Ww{;r7   c           
     P    \        V3R V/VB p\        V3R \        V4      /VB p\        V3R RV,           /VB p\        WVV\        ^8  R7       \        WWV\        ^8  R7       R#   \         Ed2   pTP
                  p	\        ^8  d!   \        T	P                  4       \        T4       \        P                  ! T	4      ;_uu_ 4        \        T3R T/TB  RRR4       M  + '       g   i     M; i\        P                  ! T	4      ;_uu_ 4        \        T3R \        T4      /TB  RRR4       M  + '       g   i     M; i\        P                  ! T	4      ;_uu_ 4        \        T3R RT,           /TB  RRR4        Rp?R#   + '       g   i      Rp?R# ; iRp?ii ; ir  )
r   r=  r   r   r   r  r  r   r  r<  )
r  rr  r6   r_  r   r  r  r  r   r  s
   &&&&,     r5   r  $TestPdist._check_calling_conventionsn  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                   V P                    EFN  p\        V,          R
,          p\        ^8  d   \        RVRV4       VR9   d
   RV9  d   KA  V P	                  W14       VR8X  dL   \
        P                  ! VP                  \
        P                  4      ^ ^R7      pV P	                  W1VR7       K  VR8X  g   K  \
        P                  ! \
        P                  ! VP                  \
        P                  4      P                  4      4      p\
        P                  ! \
        P                  P                  V4      P                  4      pV P	                  W1VR7       EKQ  	  R	# )r  r  r  r!  r'   r  r  r#   r  Nr  r  >   r   r+   matchingr&   r"   r)   r(   r%   )r$  rN   r   r  r  rL   r  r   r   r  r  rw  r   rq  r  )r  r6   r  rr  r  r  s   &&    r5   test_pdist_calling_conventions(TestPdist.test_pdist_calling_conventions  s   
 ((G 7H%A{k69g> ) ) .47-B++A6 %FF188BJJ/aa@//Q/?=(MM"&&"**)=)?)?"@AXXbiimmA.001//b/A+ )r7   c           
     "   R p\         R,          V P                  R,          3\         R,          V P                  R,          3\         R,          V P                  R,          3\         R,          V P                  R,          3.pV FX  pV^ ,          R,          p \        WQR	7      pV^,           F+  p\        V! V4      VR	7      p\        WhV\        ^8  R
7       K-  	  KZ  	  R#   \
         d   p	T	P                  p
\        ^8  d!   \        T
P                  4       \        T	4       T^,           FR  pT! T4      p\        P                  ! T
4      ;_uu_ 4        \        YR	7       RRR4       K@    + '       g   i     KQ  ; i	   Rp	?	EK  Rp	?	ii ; i)r  r?   r!  rC   r"  rB   r   rA   rQ   r  r[  Nr0  )rN   r%  r   r   r   r   r  r  r   r  r<  )r  r6   r_  r  r  r>  r  r  r  r   r  r?  s   &&          r5   test_pdist_dtype_equivalence&TestPdist.test_pdist_dtype_equivalence  sE   '($*<*<V*DE'($*<*<V*DE&'););E)BC*+T-?-?	-JKM Da"BK2- !%QHx|F;B#BgkJ !(   1Q;%..)!H $QH!"Bu--b0 .--- !(1s1   C!!F,A)F	E,"
F	,E=7F		Fc           	     L   R p\         R,          R
,          p\        VP                  ^ ,          VP                  ^ ,          ^,
          ,          ^,          4      p\        4       pVR8X  d   RVR&   \        P
                  ! V\        P                  R7      p\        V4      ;_uu_ 4        \        W13/ VB pRRR4       \        V4      ;_uu_ 4        \        W13RV/VB pRRR4       \        XXVR	7       \        WJ 4       \        P
                  ! V^,           \        P                  R7      p	\        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W13RV	/VB  RRR4       RRR4       \        P
                  ! ^V,          \        P                  R7      R,          p
\        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W13RV
/VB  RRR4       RRR4       \        P
                  ! V\        P                  R7      p\        P                  ! \        4      ;_uu_ 4        \        V4      ;_uu_ 4        \        W13RV/VB  RRR4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELG; i  + '       g   i     ELS; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)rW  rA   r  r$   rg  rd  r9   Nr  r   r0  )rN   r   r~   r  rL   r  r   r  r   r   r   r  r<  rn   r  )r  r6   r_  rr  out_sizer   r  r  r  r  r  r  s   &&          r5   test_pdist_outTestPdist.test_pdist_out  s    $%h/
aggaj1n5:;[ F3Kxx

3f%%A00G &f%%A:4:6:G & 	s3 	  xx1BJJ7]]:&&!&))a4T4V4 * '
 xxHBJJ7<]]:&&!&))a4T4V4 * '
 xx1]]:&&!&))a4T4V4 * '&3 &%%%%% *)) '&& *) '& *) '&&s   (J	JK$J1	3KK,-K	<K,L(K?	7L	J	J.	1K<	KK	K)$K,,K<	?L
LL#	c                   R p\         R,          R,          pVP                  4       p\        VP                  P                  '       * 4       \        VP                  P                  4       \        4       pVR8X  d   RVR&   \        V4      ;_uu_ 4        \        W13/ VB pRRR4       \        V4      ;_uu_ 4        \        WA3/ VB pRRR4       \        XXV\        ^8  R7       R#   + '       g   i     LP; i  + '       g   i     L;; i)rW  rA   r$   rg  rd  Nr[  r0  )
rN   r  r   r  r  r  r  r   r   r   )r  r6   r_  rr  X_copyr   r`  ra  s   &&      r5   r  TestPdist.test_striding  s     $%h/ 	AGG((()))*[ F3Kf%%q+F+B &f%%v00B & 	BS'A+> &%%%s   C(;C;(C8	;D	r  Nr  )\r   r  r  r  r&  r  r  r  r  r  r  r
  r  r  slowr  r  r   r%  r(  r,  r0  r3  r6  r=  rA  rE  rI  rM  rP  rU  rZ  r]  ra  re  rh  rk  rp  rs  rw  r{  r~  r  r  rL   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  r2  r5  r9  r  r  r  r  s   @r5   r  r    s    7 [[6 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8K2 [[%5 %5N [[? ?r7   r  c                     a  ] tR tRt o R tR tR tR tR tR t	R t
R	 t]P                  P                  ]P                  P                  R
4      ]P                  P!                  R]].4      R 4       4       4       tR tRtV tR# )TestSomeDistanceFunctionsi  c                x    \         P                  ! . RO4      p\         P                  ! . RO4      pW3.V n        R# )r   Nr-  r   r   r7  )rL   r   cases)r  r   rF  s   &  r5   r&  &TestSomeDistanceFunctions.setup_method  s)    HH_%HH_%fX
r7   c           	        V P                    Fi  w  r\        W^R7      p\        VR4       \        WRR7      p\        VR4       \        W^R7      p\        VR4       \        WRR7      p\        VR4       Kk  	  \        P                  ! RR.4      p\        P                  ! RR.4      p\        \        Wx4      \        VP                  R	4      VP                  R	4      4      4       R
# )rC  rj  r.        ?rf  i`  i  i^  i  uint16Ngqaz@gw@gR"6@)rC  r$   r
   rL   r   r	   r   )	r  r   rF  dist1dist1p5dist2dist0p25rc   r   s	   &        r5   rk  (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r7   c                    V P                    F0  w  r\        W4      p\        V\        P                  ! ^4      4       K2  	  R# r  N)rC  
weuclideanr
   rL   r~  r  r   rF  r  s   &   r5   rZ  (TestSomeDistanceFunctions.test_euclidean  s.    JJDAa#Dbggaj1 r7   c                ^    V P                    F  w  r\        W4      p\        VR 4       K  	  R# )r7  N)rC  wsqeuclideanr
   rP  s   &   r5   test_sqeuclidean*TestSomeDistanceFunctions.test_sqeuclidean  s&    JJDA%Dc* r7   c           
         V P                    FY  w  r\        W4      p\        VR R\        P                  ! ^4      \        P                  ! ^4      ,          ,          ,
          4       K[  	  R# )r   g      2@N)rC  wcosiner
   rL   r~  rP  s   &   r5   rD  %TestSomeDistanceFunctions.test_cosine  sD    JJDA1=DcDBGGBK"''"+4M,N&NO r7   c                    \        \        ^^.^^.RR7      \        4      '       g   Q h\        \        ^^.^^.4      \        4      '       g   Q hR# )rC  F)centeredN)r  wcorrelationfloatrW  r  s   &r5   test_cosine_output_dtype2TestSomeDistanceFunctions.test_cosine_output_dtype!  sH    ,1v1vFNNNN'1a&1a&159999r7   c           
     4   \         P                  ! . RO4      p\         P                  ! . RO4      pV P                   FW  w  r4\        W44      p\	        VR \         P
                  ! W4      \        V4      \        V4      ,          ,          ,
          4       KY  	  R# )r   N)      r   r   )UUUUUUra  gUUUUUU@)rL   r   rC  r[  r
   rv  r   )r  xmymr   rF  r  s   &     r5   rv  *TestSomeDistanceFunctions.test_correlation&  sb    XXn%XX9:JJDA%DcBFF2Nd2hb>Q,R&RS r7   c                *   \         P                  ! . R NR NR NR NR NR NRNR NR NR NRNRNRNR NRNR NRNR NR NRNRNR NRNR NR NRNR NR NRNR NRNRNRNRNRNRNR N4      p\         P                  ! . RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRN4      p\        W4      p^ Tu;8:  d<   ^
\         P                  ! \         P                  4      P
                  ,          8:  g   Q h Q hR# )r{  r   r   Ng       r`  )rL   r   r   finfor   r_  rP  s   &   r5   test_correlation_positive3TestSomeDistanceFunctions.test_correlation_positive-  s   HH Ib I" Ib I" Ib I" Ic I2 Ir I2 Is IC I III!I#&I(*I,.I03I58I:<I>@IBDIFHIJMIII!I#%I'*I,/I14I69I;>I@CIEGI J HH Ib I" Ib I" Ib I" Ic I2 Ir I2 Is IC I III!I#&I(*I,.I02I47I9;I=?IACIEGIILIII!I#%I'*I,/I14I69I;>I@CIEGI J 1 D9B"**!5!9!9999999r7   zignore:Casting complexfuncc                    RR.pRR.p\         P                  ! RR7      ;_uu_ 4        V! W#4       RRR4       R#   + '       g   i     R# ; i)rC  z"Complex `u` and `v` are deprecatedmatchNy      ?        y       @        y      @        y      @        )r  r  )r  ri  r   rF  s   &&  r5   test_corr_dep_complex/TestSomeDistanceFunctions.test_corr_dep_complex8  s?     4L4L##*NOOJ POOOs	   	;A	c                &   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO. RO. RO.4      pV P                   F1  w  r\        WV4      p\	        V\         P
                  ! R4      4       K3  	  R# )r   g      @Nr-  rB  )r   r   r{  )r   r   r   )r{  r   r   )rL   r   rC  r#   r
   r~  )r  r   rF  vir  s   &    r5   test_mahalanobis*TestSomeDistanceFunctions.test_mahalanobisA  sa    HH_%HH_%XXIJJJDAqR(Dbggcl3 r7   )rC  N)r   r  r  r  r&  rk  rZ  rT  rD  r]  rv  rg  r  r  r  filterwarningsr  r   r   rm  rq  r  r  r  s   @r5   r@  r@    s     H&2
+
P
:
T	: [[[[ 89[[Vk6%:; < : 4 4r7   r@  c                      a  ] tR tRt o ]P
                  ]P                  ]P                  ]P                  ]	.t
R tR tR tR tR tR tRtV tR	# )
TestSquareFormiJ  c                N    V P                    F  pV P                  V4       K  	  R # r_   )checked_dtypescheck_squareform_matrixr  r:   s   & r5   test_squareform_matrix%TestSquareForm.test_squareform_matrixM       ((E((/ )r7   c                N    V P                    F  pV P                  V4       K  	  R # r_   )rw  check_squareform_vectorry  s   & r5   test_squareform_vector%TestSquareForm.test_squareform_vectorQ  r|  r7   c                2   \         P                  ! RVR7      p\        V4      p\        VP                  R4       \        VP
                  V4       \         P                  ! RVR7      p\        V4      p\        VP                  R4       \        VP
                  V4       \         P                  ! ^ R.R^ ..VR7      p\        V4      p\        VP                  R4       \        VP
                  V4       \        V\         P                  ! R.VR7      4       R# )r   r9   g@N)r   r   rX   rC  rC  rC  )rL   zerosr   r	   r~   r:   r   r   )r  r:   ArAs   &&  r5   rx  &TestSquareForm.check_squareform_matrixU  s    HHV5)]RXXt$RXXu%HHV5)]RXXt$RXXu%HHq#ha)7]RXXt$RXXu%2rxxU;<r7   c                   \         P                  ! RVR7      p\        V4      p\        VP                  R4       \        VP
                  V4       \        V^ ..4       \         P                  ! R.VR7      p\        V4      p\        VP                  R4       \        VP
                  V4       \        V\         P                  ! ^ R.R^ ..VR7      4       R# )r   r9   g @NrX   r  )r  r  )rL   r  r   r	   r~   r:   r   r   )r  r:   r  rvs   &&  r5   r~  &TestSquareForm.check_squareform_vectorf  s    HHT']RXXv&RXXu%2u%HHcU%(]RXXv&RXXu%2rxx!SC8(<EJKr7   c                N    \        ^^4       F  pV P                  V4       K  	  R# r  N)ro   check_squareform_multi_matrixr  ns   & r5   test_squareform_multi_matrix+TestSquareForm.test_squareform_multi_matrixs  s     q!A..q1 r7   c                   \         P                  P                  V^4      p\        V4      p\	        \        VP                  4      ^4       \        V4      p\        V4      pVP                  p^ p\        ^8  d,   \        VP                  VP                  VP                  4       \	        \        V4      ^4       \	        \        VP                  4      ^4       \	        V^ ,          V^,          4       \        ^ V^ ,          4       Fc  p\        V^,           V^,          4       FB  p	W8w  d&   \	        WHV	3,          W7,          4       V^,          pK.  \	        WHV	3,          ^ 4       KD  	  Ke  	  R#    N)rL   r   r   r  r	   lenr~   r   r   r  ro   )
r  r  rr  Yr  Yrskr   js
   &&        r5   r  ,TestSquareForm.check_squareform_multi_matrixw  s    IINN1a AS\1%qM]GGa<!''177BHH-SVQS]A&QqT1Q4 q!A$A1q5!A$'6 a4!$/FA a4!, (  r7   r[   N)r   r  r  r  rL   r   rQ   int32int8r!  rw  rz  r  rx  r~  r  r  r  r  r  s   @r5   ru  ru  J  sI     jj"**bhhFN00="L2- -r7   ru  c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TestNumObsYi  c                    \        ^^
4       FC  p\        P                  P                  V^4      p\	        V4      p\        \        V4      V4       KE  	  R# r  )ro   rL   r   r   r  r	   r   )r  r  rr  r  s   &   r5   test_num_obs_y_multi_matrix'TestNumObsY.test_num_obs_y_multi_matrix  s>    q"A		q!$A"A1q) r7   c                    \         P                  ! \        4      ;_uu_ 4        V P                  ^4       RRR4       R#   + '       g   i     R# ; irC  N)r  r<  rn   check_yr  s   &r5   test_num_obs_y_1TestNumObsY.test_num_obs_y_1  s-     ]]:&&LLO '&&&s	   ?A	c                :    \        V P                  ^4      4       R# r  r   r  r  s   &r5   test_num_obs_y_2TestNumObsY.test_num_obs_y_2  s     	Q r7   c                :    \        V P                  ^4      4       R# )   Nr  r  s   &r5   test_num_obs_y_3TestNumObsY.test_num_obs_y_3      Q r7   c                :    \        V P                  ^4      4       R# r  r  r  s   &r5   test_num_obs_y_4TestNumObsY.test_num_obs_y_4  r  r7   c                N    \        ^^4       F  pV P                  V4       K  	  R# rN  )ro   minit)r  r   s   & r5   test_num_obs_y_5_10TestNumObsY.test_num_obs_y_5_10  s    q"AJJqM r7   c                `   \        4       p\        ^^4       F(  pVP                  W"^,
          ,          ^,          4       K*  	  \        ^^i4       FG  pW19  g   K  \        P                  ! \
        4      ;_uu_ 4        V P                  V4       RRR4       KI  	  R#   + '       g   i     K^  ; ir  setro   addr  r<  rn   bad_yr  rc   r  r   s   &   r5   test_num_obs_y_2_100 TestNumObsY.test_num_obs_y_2_100  sr     Eq"AEE!1u+/" q#Az]]:..JJqM /. ...   <BB-c                :    \        V P                  V4      4       R # r_   r  r  s   &&r5   r  TestNumObsY.minit  r  r7   c                V    \         P                  P                  V4      p\        V4      # r_   )rL   r   r   r   r  r  rF  s   && r5   r  TestNumObsY.bad_y  s    IINN1|r7   c                <    \        V P                  V4      4      V8H  # r_   )r   make_yr  s   &&r5   r  TestNumObsY.check_y  s    Q(A--r7   c                h    \         P                  P                  W^,
          ,          ^,          4      # r  rL   r   r   r  s   &&r5   r  TestNumObsY.make_y  s     yy~~qE{q011r7   r[   N)r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r5   r  r    sA     *!
!!	"!.2 2r7   r  c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestNumObsDMi  c                   \        ^^
4       Fy  p\        P                  P                  V^4      p\	        V4      p\        V4      p\        ^8  d!   \        VP                  VP                  4       \        \        V4      V4       K{  	  R# r  )ro   rL   r   r   r  r   r   r  r~   r	   r   )r  r  rr  r  r  s   &    r5   test_num_obs_dm_multi_matrix)TestNumObsDM.test_num_obs_dm_multi_matrix  s`    q"A		q!$A"A1A!|aggqww'A* r7   c                :    \        V P                  ^ 4      4       R# rg   r   check_Dr  s   &r5   test_num_obs_dm_0TestNumObsDM.test_num_obs_dm_0      Q r7   c                :    \        V P                  ^4      4       R# r  r  r  s   &r5   test_num_obs_dm_1TestNumObsDM.test_num_obs_dm_1  r  r7   c                :    \        V P                  ^4      4       R# r  r  r  s   &r5   test_num_obs_dm_2TestNumObsDM.test_num_obs_dm_2  r  r7   c                :    \        V P                  ^4      4       R# r  r  r  s   &r5   test_num_obs_dm_3TestNumObsDM.test_num_obs_dm_3  r  r7   c                :    \        V P                  ^4      4       R# r  r  r  s   &r5   test_num_obs_dm_4TestNumObsDM.test_num_obs_dm_4  r  r7   c                <    \        V P                  V4      4      V8H  # r_   )r   make_Dr  s   &&r5   r  TestNumObsDM.check_D  s    $++a.)Q..r7   c                @    \         P                  P                  W4      # r_   r  r  s   &&r5   r  TestNumObsDM.make_D  s    yy~~a##r7   r[   N)r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r5   r  r    s2     +!!!!!/$ $r7   r  c                     \        V R R7      # T)throw)r   )r  s   &r5   is_valid_dm_throwr    s    q%%r7   c                   n   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tRtV tR# )TestIsValidDMi  c                    \         P                  ! R\         P                  R7      p\        P                  ! \
        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)r  r9   Nr  rL   r  r   r  r<  rn   r  r  r  s   & r5   $test_is_valid_dm_improper_shape_1D_E2TestIsValidDM.test_is_valid_dm_improper_shape_1D_E  s<    HHT,]]:&&a  '&&&   	AA0	c                |    \         P                  ! R\         P                  R7      p\        \	        V4      R4       R# )r  r9   FNr  rL   r  r   r	   r   r  s   & r5   $test_is_valid_dm_improper_shape_1D_F2TestIsValidDM.test_is_valid_dm_improper_shape_1D_F  s$    HHT,[^U+r7   c                    \         P                  ! R\         P                  R7      p\        P                  ! \
        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; ir  r9   Nr  r  r  r  r  s   & r5   $test_is_valid_dm_improper_shape_3D_E2TestIsValidDM.test_is_valid_dm_improper_shape_3D_E  s<    HHYbjj1]]:&&a  '&&&r  c                |    \         P                  ! R\         P                  R7      p\        \	        V4      R4       R# r  r9   FNr  r  r  s   & r5   $test_is_valid_dm_improper_shape_3D_F2TestIsValidDM.test_is_valid_dm_improper_shape_3D_F  s$    HHYbjj1[^U+r7   c                    \         P                  P                  ^
4      p\        V4      p\	        ^ ^4       F	  pRW#V3&   K  	  \
        P                  ! \        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)r  r   N)	rL   r   r   r   ro   r  r<  rn   r  r  rF  r  r   s   &   r5   #test_is_valid_dm_nonzero_diagonal_E1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_E  s^    IINN2qMq!AAdG ]]:&&a  '&&&s   &A<<B	c                    \         P                  P                  ^
4      p\        V4      p\	        ^ ^4       F	  pRW#V3&   K  	  \        \        V4      R4       R# )r  r   FN)rL   r   r   r   ro   r	   r   r  s   &   r5   #test_is_valid_dm_nonzero_diagonal_F1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_F  sF    IINN2qMq!AAdG [^U+r7   c                   \         P                  P                  ^
4      p\        V4      pVR,          ^,           VR&   \        P
                  ! \        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)r  Nr  rC  rC  r  )rL   r   r   r   r  r<  rn   r  r  rF  r  s   &  r5   test_is_valid_dm_asymmetric_E+TestIsValidDM.test_is_valid_dm_asymmetric_E  sT    IINN2qMD'A+$]]:&&a  '&&&s    A66B	c                    \         P                  P                  ^
4      p\        V4      pVR,          ^,           VR&   \	        \        V4      R4       R# )r  FNr
  r  rL   r   r   r   r	   r   r  s   &  r5   test_is_valid_dm_asymmetric_F+TestIsValidDM.test_is_valid_dm_asymmetric_F  s<    IINN2qMD'A+$[^U+r7   c                |    \         P                  ! R\         P                  R7      p\        \	        V4      R4       R# )rC  r9   TNr  r  r  s   & r5   test_is_valid_dm_correct_1_by_1-TestIsValidDM.test_is_valid_dm_correct_1_by_1  s$    HHV2::.[^T*r7   c                    \         P                  P                  ^4      p\        V4      p\	        \        V4      R4       R# )rC  TNr  r  s   &  r5   test_is_valid_dm_correct_2_by_2-TestIsValidDM.test_is_valid_dm_correct_2_by_2  +    IINN1qM[^T*r7   c                    \         P                  P                  ^4      p\        V4      p\	        \        V4      R4       R# r  TNr  r  s   &  r5   test_is_valid_dm_correct_3_by_3-TestIsValidDM.test_is_valid_dm_correct_3_by_3#  r  r7   c                    \         P                  P                  ^4      p\        V4      p\	        \        V4      R4       R# )   TNr  r  s   &  r5   test_is_valid_dm_correct_4_by_4-TestIsValidDM.test_is_valid_dm_correct_4_by_4(  r  r7   c                    \         P                  P                  ^
4      p\        V4      p\	        \        V4      R4       R# )r  TNr  r  s   &  r5   test_is_valid_dm_correct_5_by_5-TestIsValidDM.test_is_valid_dm_correct_5_by_5-  s+    IINN2qM[^T*r7   r[   N)r   r  r  r  r  r  r  r   r  r  r  r  r  r  r  r   r#  r  r  r  s   @r5   r  r    sK     !
,!
,!,!,++
+
+
+ +r7   r  c                     \        V R R7      # r  )r   )rF  s   &r5   is_valid_y_throwr&  3  s    at$$r7   c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TestIsValidYi7  c                    \         P                  ! R\         P                  R7      p\        P                  ! \
        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)r  r9   Nr  r  rL   r  r   r  r<  rn   r&  r  rF  s   & r5   #test_is_valid_y_improper_shape_2D_E0TestIsValidY.test_is_valid_y_improper_shape_2D_E<  s<    HHWBJJ/]]:&&Q '&&&r  c                |    \         P                  ! R\         P                  R7      p\        \	        V4      R4       R# )r  r9   FNr*  rL   r  r   r	   r   r,  s   & r5   #test_is_valid_y_improper_shape_2D_F0TestIsValidY.test_is_valid_y_improper_shape_2D_FA  s$    HHWBJJ/Z]E*r7   c                    \         P                  ! R\         P                  R7      p\        P                  ! \
        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; ir  r+  r,  s   & r5   #test_is_valid_y_improper_shape_3D_E0TestIsValidY.test_is_valid_y_improper_shape_3D_EE  s<    HHYbjj1]]:&&Q '&&&r  c                |    \         P                  ! R\         P                  R7      p\        \	        V4      R4       R# r  r0  r,  s   & r5   #test_is_valid_y_improper_shape_3D_F0TestIsValidY.test_is_valid_y_improper_shape_3D_FJ  s$    HHYbjj1Z]E*r7   c                R    V P                  ^4      p\        \        V4      R4       R# )r  TNcorrect_n_by_nr	   r   r,  s   & r5   test_is_valid_y_correct_2_by_2+TestIsValidY.test_is_valid_y_correct_2_by_2N       "Z]D)r7   c                R    V P                  ^4      p\        \        V4      R4       R# r  r:  r,  s   & r5   test_is_valid_y_correct_3_by_3+TestIsValidY.test_is_valid_y_correct_3_by_3R  r>  r7   c                R    V P                  ^4      p\        \        V4      R4       R# )r  TNr:  r,  s   & r5   test_is_valid_y_correct_4_by_4+TestIsValidY.test_is_valid_y_correct_4_by_4V  r>  r7   c                R    V P                  ^4      p\        \        V4      R4       R# )r  TNr:  r,  s   & r5   test_is_valid_y_correct_5_by_5+TestIsValidY.test_is_valid_y_correct_5_by_5Z  r>  r7   c                `   \        4       p\        ^^4       F(  pVP                  W"^,
          ,          ^,          4       K*  	  \        ^^i4       FG  pW19  g   K  \        P                  ! \
        4      ;_uu_ 4        V P                  V4       RRR4       KI  	  R#   + '       g   i     K^  ; ir  r  r  s   &   r5   test_is_valid_y_2_100"TestIsValidY.test_is_valid_y_2_100^  sp    Eq"AEE!1u+/" q#Az]]:..JJqM /. ...r  c                Z    \         P                  P                  V4      p\        VR R7      # r  )rL   r   r   r   r  s   && r5   r  TestIsValidY.bad_yg  s!    IINN1!4((r7   c                l    \         P                  P                  W^,
          ,          ^,          4      pV# r  r  r  s   && r5   r;  TestIsValidY.correct_n_by_nk  s$    IINNAQKA-.r7   r[   N)r   r  r  r  r-  r1  r4  r7  r<  r@  rC  rF  rI  r  r;  r  r  r  s   @r5   r(  r(  7  sA     
 
+ 
+****") r7   r(  rd  c           	      J   \         P                  ! \        4      ;_uu_ 4        \        ^^.^^.V 4       RRR4       \         P                  ! \        4      ;_uu_ 4        \        ^^.^^.V ^^.4       RRR4       R#   + '       g   i     LQ; i  + '       g   i     R# ; ir  )r  r<  rn   r$   rj  s   &r5   
test_bad_prP  p  sp     
z	"	"1a&1a&!$ 
#	z	"	"1a&1a&!aV, 
#	" 
#	"	"	"	"s   A>B>B	B"	c                      \         P                  ! \        4      ;_uu_ 4        \        . RO. RO4       RRR4       R#   + '       g   i     R# ; i)FN)FFF)r  r<  rn   r)   r[   r7   r5   test_sokalsneath_all_falserR  y  s,    	z	"	")+@A 
#	"	"	"s	   >A	c                  n    \        \        . RO. RO4      ^4       \        \        . RO. RO4      ^4       R# )rC  NrC  r  r  r  r  r  rC  rC  r   r   rC  r   rC  r   )r	   	wcanberrar[   r7   r5   r  r    s$    9i0!4<6:r7   c                  v    \        \        . RO. RO4      R^R7       \        \        . RO. RO4      R^R7       R# )	rC  decimalr}  NrT  rU  UUUUUU?rV  rW  )r
   wbraycurtisr[   r7   r5   test_braycurtisr^    s(    Iy962NL,?bQr7   c                  @   \         P                  ! . RO4      p \         P                  ! . R	O4      p\        \        W4      R^R7       \        \	        W4      \         P
                  ! ^4      ^R7       \        P                  ! \        RR7      ;_uu_ 4        \	        V \         P                  R3,          V\         P                  R3,          4      \         P
                  ! ^4      3 RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        V \         P                  R3,          V\         P                  R3,          4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        V R\         P                  3,          VR\         P                  3,          4       RRR4       \         P                  ! ^4      P                  ^^4      p\        P                  ! \        4      ;_uu_ 4        \	        W"4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        W"4       RRR4       \         P                  P                  R4      pVP                  ^
4      pVP                  ^
4      p\	        W$4      p\        W$4      p\        V^,          V^R7       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL9; i  + '       g   i     L; i  + '       g   i     L; i)
rC  r.  rZ  Input vector should be 1-Drk  :NNNNiI)rC  rC  rC  r   r   r   )rL   r   r
   rS  rO  r~  r  r<  rn   newaxisr;  r   r   r   r   )r  r  r   rsrF  d1d2s          r5   test_euclideansrf    s   	)	B	)	B R,c2>
2*BGGAJC 
z)E	F	F2bjj!m$bQ&78"''!*D 
G	z)E	F	FR

A&2::q=(9: 
G	z)E	F	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	F	F	F
 
#	"	"	"s=   AJ>;K;;K&K:<L>K	K#	&K7	:L
	L	c                      . ROp . ROp\         P                  ! \        4      ;_uu_ 4        \        W4       RRR4       R#   + '       g   i     R# ; i)r   Nr   r   rC  rW  r  r<  rn   whammingr   rF  s     r5   test_hamming_unequal_lengthrl    s1    AA	z	"	" 
#	"	"	"s   AA	c                      . ROp . ROp. ROpRp\         P                  ! \        VR7      ;_uu_ 4        \        WV4       RRR4       R#   + '       g   i     R# ; i)r   z/'w' should have the same length as 'u' and 'v'.rk  Nrh  rW  ri  )ur  r   rS  s       r5   "test_hamming_unequal_length_with_wro    s@    AAA
;C	z	-	-q 
.	-	-	-s   A

A	c                      \         P                  ! . RORR7      p \         P                  ! . RORR7      pRp\        \        W4      V4       R# )eggsz|S4r9   g?N)rq  spamrr  rq  rr  rr  rr  rr  rr  rr  rr  rq  rq  rr  rq  rq  rq  rq  rq  rr  )rq  rr  rr  rq  rq  rr  rr  rr  rr  rq  rr  rq  rr  rq  rr  rr  rq  rr  rr  rq  )rL   r   r   rj  )rc   r   desireds      r5   test_hamming_string_arrayrt    sK    
 B 	A 	 B 	A GHQNG,r7   c                      \         P                  ! . RO. RO.4      p \        V R^RR7      p\        W R^RR7      p\        V R^R7      p\        W R^R7      p\	        WRR7       \	        W$RR7       R# )QUUT@r$   N)r6   rd  r   )r6   rd  rW  r   )
rv        Y@rv  rw  g      B@g      N@g     V@g     b@g      8@g      H@)rL   r   r   r   r   )arr_inp0c0p1c1s        r5   test_minkowski_wr}    sq    XX 223 4F 
vkQ$	7B	vkQ$	?B	vkQ	/B	vkQ	7BB'B'r7   c            	         . ROp . ROp\         P                  \         P                  \         P                  \         P                  3 Fq  p\        \         P                  ! WR7      \         P                  ! WR7      4      p\        \         P                  ! VP                  \         P                  4      4       Ks  	  \         P                  \         P                  \         P                  \         P                  3 F  p\         P                  ! V4      P                   p\        ^ .\         P                  ! V.VR7      4      p\        \         P                  ! V.VR7      ^ .4      p\#        WV4       \#        V\         P$                  ! V4      ^,          4       K  	  \         P&                  \         P$                  \         P(                  \         P*                  .pR F:  p\-        \         V4      '       g   K  VP/                  \1        \         V4      4       K<  	  V FO  p\        \         P                  ! WR7      \         P                  ! WR7      4      p\#        VP                  V4       KQ  	  R# )rC  r9   NrT  )r  r  r  )float16float128)rL   r  int16r  r  rS  asarrayr   r   r:   floatinguint8rG  uint32uint64iinfomaxr	   r   rQ   	complex64
complex128hasattrr   getattr)r   rF  r:   dumaxrd  re  dtypess           r5   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$ r7   c                     . ROp . ROpV  Uu. uF  p\        V4      NK  	  ppV Uu. uF  p\        V4      NK  	  pp\        P                  ! 4       ;_uu_ 4        \        W4      pRRR4       \        P                  ! 4       ;_uu_ 4        \        W44      pRRR4       \	        XX4       R# u upi u upi   + '       g   i     LY; i  + '       g   i     L;; i)TN)TTF)TFT)r   r  r  r(   r	   )rd  r   r   r   rF  rH  rJ  s          r5   test_sokalmichenerr    s     	AAAQAAQA				!	!a# 
"				!	!a# 
"  		!	!	!	!s"   B-B2B7C
7C	
C	c            
         Rp RpRpRp^W,           ,          W#,           ^W,           ,          ,           ,          p\        VR4       \        P                  ! 4       ;_uu_ 4        \        ^^ .^^.^R.R7      pRRR4       \        VX4       . ROp. R	OpR
 F@  p\        P                  ! 4       ;_uu_ 4        \        \        WvV.4      R4       RRR4       KB  	  R#   + '       g   i     Ll; i  + '       g   i     Kj  ; i)r   g?gX$I?r   Nr   r  r{  )FFTTTFFTTTTTTFTFFFTT)TTTFFTTTFTTTTTFFFTTT)g?re  r   g      4@)r
   r  r  r(   )	ntfnftnttnffexpectedactuala1a2r   s	            r5   test_sokalmichener_with_weightr  	  s    
 C
C
C
CCI#)a39o"=>H),				!	!1v1v!S: 
"&)
DB
IB $##%%bqc :<NO &% $ 
"	! &%%s   "C5C.C+	.C?c                 j   \         P                  ! . RO. RO. RO. RO.4      pVP                  4       p\        V 4      ;_uu_ 4        \	        WV 4       RRR4       \        V 4      ;_uu_ 4        \        W4       RRR4       \        W4       R#   + '       g   i     LD; i  + '       g   i     L0; i)r   Nr-  r/  r3  g3333336@gL7@g333333F@)rL   r  r  r  r   r   r   )r6   r>  r  s   &  r5   test_modifies_inputr  "  sy     
\$$') 
*B ggiG	&	!	!bf 
"	&	!	!b 
"r#	 
"	!	!	!s   B.B"B	"B2	c           
         \         P                  ! . R	O. R
O. RO. RO.4      p\        P                  ! \        4      ;_uu_ 4        \        WV R4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        WR4       RRR4       R F  pV\         P                  ! R 4      /pVR8X  d   V R8X  g   VR8X  d   V R8X  g   VR8X  d
   V R8X  d   KG  \        P                  ! \        4      ;_uu_ 4        \        V 4      ;_uu_ 4        \        WV 3/ VB  RRR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        V 4      ;_uu_ 4        \        W3/ VB  RRR4       RRR4       K  	  R#   + '       g   i     EL>; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Ll; i  + '       g   i     EKg  ; i)r   r   Nrd  r  r  r'   r#   r$   r-  r/  r3  r  )rd  r  r  )rL   r  r  r<  r   r   r   r  )r6   r>  rG  r   s   &   r5   test_Xdist_deprecated_argsr  1  sW    
\$$') 
*B
 
y	!	!bfb! 
" 
y	!	!b" 
"  rzz"~&CZFl24KFm$;3J6[#8]]9%%!&))bf// * & ]]9%%!&))b+F+ * &%   
"	!	! 
"	!	! *) &%
 *) &%%s`   F=F=GF0GG)%G2G)F	F-	0G ;GGG&!G))G;c                    \         R ,          R,          p\        P                  ! VP                  ^,          4      pVR,          ) VR&   V R9   d   \        P
                  ! R4       V \        V 4      RV ,           3 F  p\        P                  ! \        4      ;_uu_ 4        \        V 4      ;_uu_ 4        \        WVR7       RRR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        V 4      ;_uu_ 4        \        WW2R7       RRR4       RRR4       K  	  R#   + '       g   i     Lr; i  + '       g   i     L}; i  + '       g   i     LD; i  + '       g   i     K  ; i)rA   r  not applicabler,  r  Nr0  )r'   r#   r!   )rN   rL   r   r~   r  r  r=  r<  rn   r  r   r   )r6   rr  r   r  s   &   r5   test_Xdist_non_negative_weightsr  P  s    
 !(+A

AfWAcF??$%d6lGf$45]]:&&!&))aa  * ' ]]:&&!&))aA# * '&	 6)) '& *) '&&sH    D?4D,D?4E%EE%,D<7D??EE"E%%E6c                  R   . ROp \        V 4      p\        W4       \        V \        P                  R7      p\        W4       \	        VP
                  \        P                  4       ^.p \        V 4      p\	        VP                  ^4       \	        W4       ^p \        P                  ! \        RR7      ;_uu_ 4        \        V 4       RRR4       \        P                  ! ^4      P                  ^R^4      p \        P                  ! \        RR7      ;_uu_ 4        \        V 4       RRR4       ^^.^^..p \        P                  ! \        RR7      ;_uu_ 4        \        V 4       RRR4       R#   + '       g   i     L; i  + '       g   i     Le; i  + '       g   i     R# ; i)rC  r9   r`  rk  NrT  r   )r   r   rL   r   r	   r:   rh   r  r<  rn   r;  r   rk  s     r5   test__validate_vectorr  b  s%   AAq"**-Aq"**%	
AA	A	z)E	F	F 
G 			!QA&A	z)E	F	F 
G Q!QA	z)E	F	F 
G	F 
G	F 
G	F 
G	F	Fs$   :E/FF/E?	F	F&	c                     \         P                  ! R\        R7      p \        V ^ ,          V ^ ,          4      pVR8X  g   Q h\	        V R4      p\        VR.4       \        V R,          V R,          R4      p\        VR..4       R# )r  r9   r{  r+   :NrC  NN)r  r  )rL   r   r!  r  r   r	   r   )r   r  s     r5   test_yule_all_samer  |  sm    
d#AadAaDA8O8aASEaeQrUF#AcUGr7   c            	         \        \        . RO. ROR4      R 4       \        \        R R.RR.4      R4       \        \        . RO. RO4      R4       \        \        R R..RR..^ R7      RR.4       \        \        R R..RR..^R7      R.4       \        \        R R..RR..^ RR	7      RR..4       \        \        R R..RR..^RR	7      R..4       \        P                  ! . RO. RO. RO.4      p \        P                  ! . RO. RO. RO.4      p\        \        W^ R7      . RO4       \        \        W^R7      . RO4       R
# )r   r{  r   r}  g)>d?rF  rs   gД?T)rp   keepdimsN)r   r{  r{  )r{  r   r{  )rC  r  r  r  )r  r        )	   r        )            )            )            )g'Y?gTyCЇ?gFw$?g\BZ?)g;0%7/?g)o?gku?)r
   r!   rL   r   )rc   r   s     r5   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;r7   c                  0   \         P                  ! . RO4      p \         P                  ! . RO4      p\        W4      p\        W.RR7      p\	        W24       \        \         P                  ! V 4      \         P                  ! V4      RR7      p\	        W24       R# )rC  r   r  N)rC  r   r   )r  r   r   )rL   r   r   r   r   r   r  )arr_1arr_2r  r  s       r5   test_gh_17703r    si    HHYEHHYEE!HE>&1FF%2=='=='8FF%r7   c                 h   V R9   d   \         P                  ! R4       \        P                  ! ^
\        P                  R7      pVP                  RR7       \        V 4      ;_uu_ 4        \        \        P                  P                  V 4      ! WVR7       RRR4       R#   + '       g   i     R# ; i)r!   r  r9   F)writer  N)r!   r#   r'   )r  r  rL   r;  r   setflagsr  r  scipyspatialdistance)r6   r   s   & r5   test_immutable_inputr    so    ??$%
		"BJJ'AJJUJ	&	!	!&&/: 
"	!	!	!s   )-B  B1	c                  L   \         P                  ! . RO4      p \         P                  ! . RO4      p\         P                  ! . RO4      p\        WVR7      p\	        VR4       \        \         P                  ! V 4      \         P                  ! V4      RVR7      p\	        WC4       R# )	r   r  g2)^ ?r+   )r6   r   N)r   r   rC  rC  )r   rC  rC  r   )rF  r0  gffffff?g?)rL   r   r  r+   r   r   r  )rc   r   r   r  r  s        r5   test_gh_23109r    ss    
A
A


'(AAAHH012==#==# A'F F%r7   c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TestJaccardi  c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# r  r>   pdist-jaccardr    r   Nr;  r  s   &    r5   test_pdist_jaccard_random%TestJaccard.test_pdist_jaccard_random  s2    "#_%I&s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  r@  r  s   &    r5   !test_pdist_jaccard_random_float32-TestJaccard.test_pdist_jaccard_random_float32  ;    JJr-./_%I&s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# r  r>   r  test_jaccardr   Nr;  r  s   &    r5   test_pdist_jaccard_random_nonC*TestJaccard.test_pdist_jaccard_random_nonC  s2    "#_%N+s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  r  r  s   &    r5   test_pdist_djaccard_random&TestJaccard.test_pdist_djaccard_random  r  r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  r@  r  s   &    r5   "test_pdist_djaccard_random_float32.TestJaccard.test_pdist_djaccard_random_float32  r  r7   c                    R p\        \        P                  ! R4      R4      p\        \        P                  ! ^
4      W!R7       R# )rW  r    r   Nr  r  r   rL   r  r   r  r_  r  s   &  r5   test_pdist_djaccard_allzeros(TestJaccard.test_pdist_djaccard_allzeros  s.    "((6"I.a2r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCVR7       R# r  r  r  s   &    r5   test_pdist_djaccard_random_nonC+TestJaccard.test_pdist_djaccard_random_nonC  s;    JJr-./_%N+s3r7   c                    R p\        \        P                  ! R4      R4      p\        \        P                  ! ^
4      W!R7       R# )rW  r  r   Nr  r  r  s   &  r5   !test_pdist_djaccard_allzeros_nonC-TestJaccard.test_pdist_djaccard_allzeros_nonC  s.    "((6"N3a2r7   c                :   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\	        VR^ RR7       \	        VR^ RR7       R# r  wjaccardrL   r   r!  r   r  s   &  r5   test_pdist_jaccard_mtica1%TestJaccard.test_pdist_jaccard_mtica1  sd    RXXo.XXo.0bhhd;hhd;=3QU3Cae4r7   c                :   \        \        P                  ! . RO4      \        P                  ! . RO4      4      p\        \        P                  ! . RO\        R7      \        P                  ! . RO\        R7      4      p\	        VR^ RR7       \	        VR^ RR7       R# r  r  r  s   &  r5   test_pdist_jaccard_mtica2%TestJaccard.test_pdist_jaccard_mtica2	  sd    RXXi(XXi(*bhhy5hhy575qu5E6r7   c                B   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! \        4      P                  p\        \        W4      RVR7       \        \        V.V.R4      R..4       \        \        W.R4      R.4       R# )r  r   r    N)ig      @r   )r  r  r\  )	rL   r   rf  r\  r_  r   r    r   r   )r  r   rF  r_  s   &   r5   test_non_01_inputTestJaccard.test_non_01_input	  ss     HH]#HH]#hhuo!!s5qcA3	2cUG<qfi03%8r7   r[   N)r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s   @r5   r  r    sA     444443
43
579 9r7   r  c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestChebyshevi	  c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  pdist-chebyshevr   r   Nr$  r  s   &    r5   test_pdist_chebyshev_random)TestChebyshev.test_pdist_chebyshev_random	  s3    !"&';'s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCV\
        ^8  R7       R# )r  r  r  r   r[  Nr  r  s   &    r5   #test_pdist_chebyshev_random_float321TestChebyshev.test_pdist_chebyshev_random_float32!	  sB    JJr,-.&';'sGaKHr7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )r  r  r  test_chebyshevr   Nr$  r  s   &    r5    test_pdist_chebyshev_random_nonC.TestChebyshev.test_pdist_chebyshev_random_nonC(	  s4    !"&'+,s3r7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )ro  r  pdist-chebyshev-irisr   r   Nr$  r  s   &    r5   test_pdist_chebyshev_iris'TestChebyshev.test_pdist_chebyshev_iris/	  s1    vJ+,;'s3r7   c                    R p\         P                  ! \        R,          4      p\        R,          p\        VR4      p\	        WCV\
        ^8  R7       R# )r   r  r  r   r[  Nr  r  s   &    r5   !test_pdist_chebyshev_iris_float32/TestChebyshev.test_pdist_chebyshev_iris_float326	  s@    JJr&z"+,;'sGaKHr7   c                p    R p\         R,          p\         R,          p\        VR4      p\        WCVR7       R# )ro  r  r  r  r   Nr$  r  s   &    r5   test_pdist_chebyshev_iris_nonC,TestChebyshev.test_pdist_chebyshev_iris_nonC=	  s2    vJ+,+,s3r7   c           	         . ROp. ROp. ROp\        \        WV4      ^4       \        \        W.RVR7      ^.4       \        \        V.V.RVR7      ^..4       R# )rC  r   r  NrT  r  r  r  )r   rC  r  r	   r   r   r   r  r   rF  r   s   &   r5   test_weightedTestChebyshev.test_weightedD	  sX     YqQ'+UA6;!4qc:UA3[A6!>r7   c           	         . ROp. ROp. ROp\        \        WV4      ^ 4       \        \        W.RVR7      ^ .4       \        \        V.V.RVR7      ^ ..4       R# )rC  r   r  NrT  r  ra  r  r  s   &   r5   test_zero_weightTestChebyshev.test_zero_weightN	  sV    YqQ'+UA6;!4qc:UA3[A6!>r7   r[   N)r   r  r  r  r  r  r  r  r
  r  r  r  r  r  r  s   @r5   r  r  	  s4     4I44I4?? ?r7   r  )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         )r  r   '        )r  r  r     4     )r  r  r!  r      e  )r  r  r"  r$  r     )r  r   r#  r%  r&  r   r_   )	NNFTFFFFN)g      $g      r{  )	functoolsr   r   os.pathrF   r  r  r   r  numpyrL   numpy.linalgr   numpy.testingr   r   r   r	   r
   r   r   r   r  scipy.spatial.distancer  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   scipy._lib._utilr,   r-   scipy.conftestr.   fixturer6   rD   r   _tdist_ytdistrN   rV   r\   rq   r   r   r   r   assert_allclose_forgivingr   r   r  r  ru  r^  r<  r  r  r  rj  r  r  
wcityblock
wchebyshevrW  r[  wkulczynski1r  rO  rS  r]  rX  r
  wsokalmichenerr  r  r  r@  ru  r  r  r  r  r&  r(  r  r  rP  rR  r  r^  rf  rl  ro  rt  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r[   r7   r5   <module>r7     s  F %  
     2 2 2  & & &D D D D D D / . ~Y7 8
@ 
/222224
 <D
E V

 >  #-$`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)uA uAp	X? X?tQ4 Q4h@- @-F32 32l $  $F&F+ F+R%6 6r 01- 2-B;R/B-(%>   P P0 $ $ , ,< $ $"4
;:& ; ;	&N9 N9b=? =?r7   