L irYddlmZmZddlZddlZddlZddlZddlZddl Z ddl m Z ddl mZmZmZmZmZmZmZmZddlZddlZddlmZmZmZmZmZmZmZm Z m!Z!ddlm"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6ddl7m8Z8m9Z9ddl:m;Z;ejxe!d d Z=gd Z>e j~gd gdgdgdgdgdgdZ@ee@ZAiZBdZCeCdZDd_dZE d`dZFdZGdZHd_dZIeedZJeJd dfd!ZKd"dd#d$ddddddddddd%deJfd&ZLGd'd(ZMd)eNfd*ZOeLed+d,ZPeLed+dd-ZQeLed+dd+.ZReLed+ddd+/ZSeLe0ZTeLe*d0xZUZVeLe6ZWeLe(ZXeLe%ZYeLe$ZZeLe'Z[eLe&Z\eLe-Z]eLe+Z^eLe)d1Z_eLe5d1Z`eLe"ZaeLe#d1ZbeLe4ZceLe3ZdeLe1ZeGd2d3ZfGd4d5ZgGd6d7ZhGd8d9ZiGd:d;ZjGd<d=Zkd>ZlGd?d@ZmdAZnGdBdCZoejjdDgdEdFZrdGZsdHZtdIZudJZvdKZwdLZxdMZydNZzdOZ{ejjdPZ}ejjdQZ~ejjdRZejjdSZejjdTZdUZdVZdWZdXZejjdYZdZZGd[d\ZGd]d^Zy)a)wrapspartialN)norm)verboseassert_assert_array_equal assert_equalassert_almost_equalassert_allclose break_cyclesIS_PYPY) squareformpdistcdist num_obs_y num_obs_dm is_valid_dm is_valid_y_validate_vector_METRICS_NAMES) braycurtiscanberra chebyshev cityblock correlationcosinedice euclideanhammingjaccard jensenshannon kulczynski1 mahalanobis minkowskirogerstanimoto russellrao seuclidean sokalmichener sokalsneath sqeuclideanyule)np_longnp_ulong)skip_xp_invalid_argsession)paramsscopec|jS)z; Fixture for all metrics in scipy.spatial.distance )param)requests g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/spatial/tests/test_distance.pymetricr6Es ==)z cdist-X1.txtz cdist-X2.txtziris.txtzpdist-boolean-inp.txtzpdist-chebyshev-ml-iris.txtzpdist-chebyshev-ml.txtzpdist-cityblock-ml-iris.txtzpdist-cityblock-ml.txtzpdist-correlation-ml-iris.txtzpdist-correlation-ml.txtzpdist-cosine-ml-iris.txtzpdist-cosine-ml.txtzpdist-double-inp.txtzpdist-euclidean-ml-iris.txtzpdist-euclidean-ml.txtzpdist-hamming-ml.txtzpdist-jaccard-ml.txtzpdist-jensenshannon-ml-iris.txtzpdist-jensenshannon-ml.txtzpdist-minkowski-3.2-ml-iris.txtzpdist-minkowski-3.2-ml.txtzpdist-minkowski-5.8-ml-iris.txtzpdist-seuclidean-ml-iris.txtzpdist-seuclidean-ml.txtzpdist-spearman-ml.txtzrandom-bool-data.txtzrandom-double-data.txtzrandom-int-data.txtzrandom-uint-data.txt)rm)r8r' )r9r=r4)r:r>rAre)r;r?rBrDr)r<r@rCrErFrdoubledtypectD]}|jddjdd}tjj tjj t d|}t|}tj|t|<|jtjtdtd<tjtdtd<tjtdtd<ttd td <ttd td <y) Nz.txtz-mldatapdist-boolean-inprandom-bool-datarandom-double-datarandom-float32-datarandom-int-datarandom-uint-data) _filenamesreplaceospathjoindirname__file__opennploadtxteoclosebool_float32r,r-)fnnamefqfnfps r5load_testing_filesre|szz&"%--eR8ww||BGGOOH5vrB $Z::b>4   !hhr*='>?BXXb);&<=B " 2.B+C DB#B'8$9:B%b);&<=Br7cFtjdjdkS)Nr)r[intpitemsizer7r5 _is_32bitrks 771:   ""r7c|Dcgc]}tj|c}|6Dcgc](}|jdk7rtj|n|*c}d}t dD|dkr:t fdDs t dtdj|}|fzScc}wcc}w)Nrc3FK|]}tj|ywN)r[ atleast_1d.0as r5 z _chk_asarrays..s42==#4s!c3VK|] }|jdjk("yw)rN)ndim)rrrsarrayss r5rtz _chk_asarrays..s"<166VAY^^+.s*QQBEEMM!,BEELL@QsAATc3hK|]*\}}|rtjj|n|,ywro)r[rmasked_invalid)rrrshas_nans r5rtz_chk_weights..s4D)q'7>255//21DDs02rc3XK|]!}j|jfk(#ywroshape)rrrsr~weightss r5rtz_chk_weights..s%AQw}} 00As'*z*weights shape must match arrays along axiszweights cannot be negativec3NK|]}tj|yw)rN)r[take)rrrsr~ pos_weightss r5rtz_chk_weights..s!N!2771k==Ns"%rm)ranyr[isnansumrzziprxonesr _freq_weights_weight_maskedr{r|nonzerosize)rwrr~ force_weightssimplify_weightspos_only neg_check nan_screen mask_screenddofchkedrshas_nansrs `` @r5 _chk_weightsrs &t ,E":uRyLFD'= ,= [Q&QQ 178ABHHRVVAY'88 x=K MD-0-BDDF--( ''&)//$/0$'' ( $7 A&A AEFFgk&&(566jj1-a0   gll *NvNNFk*GW\..0 WdO ##A9s/F,cz||S|jt}||k7jrtd||S)Nz0frequency (integer count-type) weights required )astypeintrr|)r int_weightss r5rrsD..%K;##%KG9UVV r7cdtj|}|D]}tjj|}|tjjur?|j dkDr9t fdt|j D}|j|}|d|jtz z}|S)Nrrmc3.K|] }|k7s |ywrorj)rrir~s r5rtz!_weight_masked..sC1dQCs r) r[rxrrrrvrzr}rrr)rwrr~rs axis_masknot_axess ` r5rrs |mmG$G -EEMM!$  $  66A:Caff CCH! 8 4I1y'',,,- Nr7c  |Dcgc]Q}tj|jtjr|j tj n|S}}tj |tj }tjj|}d}|dj t fd|DsJdtt| zD]}}|j |z} || } |j} | | z|| <tj|d| z | z}|D cgc]#} tj| || | %}} ||fScc}wcc} w)NrHctjtj|||}|jt |j Dcgc]}||k7r|j |ndc}Scc}w)Nrrm)r[rxrreshaper}rvr)rsixr~recordrs r5mytakez_rand_split..mytakesdrwwq"489~~(-aff 7#$./$YqwwqzA=78 87sA2rc3BK|]}|jk(ywror)rrrsr~n_obss r5rtz_rand_split..s6!qwwt}%6sz#data must be aligned on sample axis?r)r[ issubdtyperIintegerrfloat64arrayrandom RandomStaterr{r}rrandintrandappend)rwrr~ split_perseedarr seeded_randrrsplit_ixprev_wqrsrs ` @r5 _rand_splitrsi#)*)+ cii(Lcjj$*F*hhwbjj1G))''-K8 1IOOD !E 6v6 61 01 6 3y>E) *8&&uqy1"    J))Gb1f%67068+,))Ava=!%'88 8 7?/**8s AE/?(E4h㈵>atolc|Srorjxs r5rsr7c||}||} tj||k7jr |||yy#t$r |||Yytt f$r%t ||D]\}}t|||YywxYw)N)compare_assert)r[rrAttributeError TypeErrorr|r _rough_check) rsbrkeywcheck_acheck_ba_ib_is r5rrs!fG!fGB 88Gw& ' + + - 7G , . )w( z "BGW- BHC c. A BBs/AB 0B  B c|Srorjrs r5rrs1r7rrcn t   fd}|S)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|i|}|d}|d}|j%d}|jd}t|||dd}|dd|d|d}}}$r0|Dcgc]%}tj|j '}} t ||z}r||%<t ||i|r9|dz|%<t ||i||dz|%< t ||i|rt|||" \} } || d|jd | |jdt | |z} | |%<t || i|| D]J}tdg|jz} t|jd| |<t | } || d z|| <Lt | |z} t || i|| D]X}tdg|jz} t|jd| |<t | } || tjz|| <Z|jd dd k(r$r"t | |z} t || i|ri| Dcgc]!}tjj|#} }t | |z} t || i|rd|%<t || i|~ ~ ~ rh|Dcgc]}tj |||}}tj ||dz }t ||z}||%<t ||i|~~~#rA"d kDr.wrappedsbT$V$gvFG}**Z.zz&,/VW4+/TC %cr E"IuRy :@AQbmmAIIK0AFAJ ,=4'D%,z"VR%8%8cB%,u_z"VR%8%8cB%,u_z"? T)v%>CH [B!?!$q'1fg"67Q>?@"OJ# ,  -FqcJ)*,  ,s^*M- AN"M2.E(N"&N._my_metric;' 'r7r)r+r/r2r4r6r7rr8r:r0ffffff @rGrHrG皙?r6rFrH皙@rmr)r[r<rr=rrr )rrIr?r@rrs r5test_cdist_extra_args_customz&TestCdist.test_cdist_extra_args_customsO (O_ =O_ =$(ryy|<v| ]]9 % & "b* % & ]]9 % - "b* ,t , - ]]9 % 0 "b* / / 0 ]]9 % = "b*C < = ]]9 % 7 "b*a# 6 7 ]]9 % 7 "b*a# 6 7 ]]9 % 5 "b*c3 4 5 ]]9 % 0 "b*c3 / 0 ]]9 % + "b*c * + ]]9 % B "b*cS A B b"Z"%c347 9- & & - - 0 0 = = 7 7 7 7 5 5 0 0 + + B BsxII1I!I(I5J9J+JJ( J4I II%(I25I?J JJ%(J14J=cd}td}td}t||d}t||d}t|||tdkDy)NV瞯<cdist-X1cdist-X2rtest_euclideanrrtolrr]wcdist_no_constr r)repsr?r@Y1Y2s r5#test_cdist_euclidean_random_unicodez-TestCdist.test_cdist_euclidean_random_unicodesH  ^  ^ R[ 1 R%5 6BS'A+>r7p皙??rGz?rgffffff@gffffff@cd}td}td}t||d|}t||d|}t||d|tdkD y) NvIh%<=rUrVr$r`test_minkowskirr)rrYrrZ)rr`r\r?r@r]r^s r5test_cdist_minkowski_randomz%TestCdist.test_cdist_minkowski_randomsP  ^  ^ R[A 6 R%5 ;BQS'A+Fr7cd}td}td}t||d}d}dtj|||z |||z jz }t |||t dkDy) N+=rUrVrcdtjj|djddS)Nrmrr)r[linalgrr)Xs r5normsz1TestCdist.test_cdist_cosine_random..normss&99>>!!>,44R; ;r7rmrrX)r]wcdistr[dotTr r)rr\r?r@r]rnr^s r5test_cdist_cosine_randomz"TestCdist.test_cdist_cosine_randomsk  ^  ^ BH % <eBi2b >*<*<= =BS'A+>r7ctjdgdgg}tjdgdgg}t||d}t|dtjdgtjdtjdggtjd d gd d gg}tjd dgd d gd d gg}t||d}tjd}t||||gdd|zdggt j t5td d ggddggddddy#1swYyxYw) Nrrr#r@?rrrmr)r[rrr sqrtrr=r|)rx1x2distrt2s r5test_cdist_mahalanobisz TestCdist.test_cdist_mahalanobis s  XXsQCj ! XXsQCj !RM2RWWS\2RWWS\2771:4NOPXX1vAw' ( XX1v1v2w/ 0RM2ggajS#AGQ@A]]: & < Aq6(aVH] ; < < .myclassNrrrrjr7r5myclassr r7rcXt|drt|ds tdyNrzType has been changed+? isinstancer|rrErs r5rIz9TestCdist.test_cdist_custom_notdouble.._my_metric"-adG,JqtW4M !899r7rHrrrr)r[robjectrr r)rrIrLcdist_yright_yrs @r5test_cdist_custom_notdoublez%TestCdist.test_cdist_custom_notdoublesM   xx') V4d:6Wgw{;r7c  t||fd|i|}t||fdt|i|}t||fdd|zi|}t|||tdkDt|||tdkDy#t$r} | j } tdkDr t | jt | tj| 5t||fd|i|dddn #1swYnxYwtj| 5t||fdt|i|dddn #1swYnxYwtj| 5t||fdd|zi|dddn#1swYnxYwYd} ~ yYd} ~ yd} ~ wwxYwNr6r;rrX) rr>r rr __class__printrrr=) rr?r@r6r\ry1y2y3re_clss r5_check_calling_conventionsz$TestCdist._check_calling_conventions+sh Cr27f77Br2=d6l=f=Br2Ag&6A&AB Bgk B Bgk B AKKE{enn%au% 7b"6V6v6 7 7 7u% =b"rr+r&r"r)r(r%r!r'rr~rVr#VI)r$r]rrrr[vstackrrvar atleast_2dcovrqrrlinv)rr6eo_namer?r@X12rrs r5test_cdist_calling_conventionsz(TestCdist.test_cdist_calling_conventions@sc(( GGGSqS$B$Y'BGQTT3Q3Y'B{k69g>)).47-B  + +BF ;%iiR)00<FF3QQ///B!/D=(iiR)00<MM"&&-0XXbiimmA.001//B2/F3 Gr7c d}td|jdftd|jdftd|jdftd|jd fg}|D]k}|d ddd ddd f}|d d dd dddf} t|||}|d D]2}t|||||} t|| |tdkD4my#t $r} | j } tdkDr t| jt| |d D]J}||} ||} tj| 5t| | |ddd@#1swYIxYwYd} ~ d} ~ wwxYw)NHz>rNr!rRr"rQrrPr`rrtrrmrrrX) r]r%rr rrrrrrr=)rr6r\teststestr?r@rnew_typerrrX1newX2news r5test_cdist_dtype_equivalencez&TestCdist.test_cdist_dtype_equivalence_s'($*<* d xxq%'*"**= ]]: & :!&) :b"f9$9&9 : : xx YE ""**669c3Q3h@xxbjjD ]]: & :!&) :b"f9$9&9 : :]]: & :!&) :b"f9$9&9 : : xxbhh7 ]]: & :!&) :b"f9$9&9 : : := 1 1 ; ; : : : : : : : : : : : : : : : :s9J$J1 K )J>:K  K$K K$ K<K0&K<6 LLL$J.1J;>K K  KK! K$$K-0K9 5K<<LL LLcd}tdddddddf}tdddddddf}|j}|j}t||t||t|jj t|jj t|jj t|jj t }|dk(rd|d<t|5t|||fi|}dddt|5t|||fi|} dddt |tdkDy#1swYBxYw#1swY,xYw) NrTrUrrVr$rcr`rX) r]copyr rflags c_contiguousrrrr r) rr6r\r?r@X1_copyX2_copyrr]r^s r5 test_stridingzTestCdist.test_stridingsC  ^CaC1H %  ^CaC1H %'')'') R!R!BHH)))*BHH)))* **+ **+ [ F3K f % 1r2v00B 1 f % ;w:6:B ; BS'A+>  1 1 ; ;sE"EEE%ctjjdd}tjjdd}t}|dk(rd|d<t |5t ||fd|i|}ddd||fDcgc]}t j|}}~~~tr ttd|DsJy#1swYVxYwcc}w)N r$rcr`r6c3.K|] }|duywrorj)rrweak_refs r5rtz0TestCdist.test_cdist_refcount..s@(8:%@s) r[rrrrrweakrefrefr r r{)rr6ryrzrrv weak_refss r5test_cdist_refcountzTestCdist.test_cdist_refcounts YY^^B # YY^^B # [ F3K f % 9B8v88C 9 /1"c];W[[^; ; C  N@i@@@@ 9 9 K6 [[ [[. ..0K? V+:W+:Z [[??8 [[AAr7rc eZdZdZej j dZdZdZ dZ dZ dZ ej jdZej jd Zej jd Zd Zd Zd ZdZdZdZdZdZdZej jdZej jdZej jdZdZdZdZdZ ej jdZ!ej jdZ"ej jdZ#dZ$dZ%d Z&ej jd!Z'ej jd"Z(ej jd#Z)ej jUd$d%d&d'd(d)e+jXgd*Z-d+Z.d,Z/d-Z0ej jd.Z1ej jd/Z2ej jd0Z3ej jd1Z4ej jd2Z5ej jd3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9Zd<Z?d=Z@d>ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOej jdMZPdNZQeRdOZSdVdPZTdQZUdRZVej j dSZWej j dTZXyU)W TestPdistcgd|_tttjtj gttjtj gtjtj gtj gd|_yr r#rs r5r&zTestPdist.setup_methodr'r7c $ddgddgddgg}dtjdd}dgd z}tjt5t |5t |fd |i|ddddddtjt5t |5t |fd t|i|ddddddtjt5t |5t |fd d |zi|ddddddtjt5t |g|d |idddtjt5t |g|d t|idddtjt5t |g|d d |zidddy#1swYFxYw#1swYKxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw) Nrrr,r-r0r7rr8r:r6r;)r[r<rr=rrrr>)rr6r?rrs r5test_pdist_extra_argszTestPdist.test_pdist_extra_argss2hc S#J /$(ryy|<v| ]]9 % 3!&) 3b2262 3 3]]9 % 9!&) 9b8f88 9 9]]9 % =!&) =b<6!1._my_metricrJr7rrr,r-r0r7r8r:rKrLrMrNrOrPrQ)r[r<rr=rrr )rrIr?rrs r5test_pdist_extra_args_customz&TestPdist.test_pdist_extra_args_customs5 (2hc S#J /$(ryy|<v| ]]9 % " "j ! " ]]9 % ) "j (4 ( ) ]]9 % , "j +F + , ]]9 % 9 "jC 8 9 ]]9 % 3 "j!Qc 2 3 ]]9 % 3 "j!Qc 2 3 ]]9 % 1 "j#sC 0 1 ]]9 % , "j#s + , ]]9 % ' "j# & ' ]]9 % > "j#S = > b"%c347 9- " " ) ) , , 9 9 3 3 3 3 1 1 , , ' ' > >sx H+5H8$III6I,(I9J J8J+H58IIII),I69JJJJ'c`d}td}td}t|d}t|||yNrpdist-double-inppdist-euclideanrrYr]wpdist_no_constr rr\rmY_rightY_test1s r5test_pdist_euclidean_randomz%TestPdist.test_pdist_euclidean_random!5 ! "&'!![1s3r7c`d}td}td}t|d}t|||yrrrs r5test_pdist_euclidean_random_uz'TestPdist.test_pdist_euclidean_random_u(rr7cd}tjtd}td}t|d}t |||yrr[r`r]rr rs r5#test_pdist_euclidean_random_float32z-TestPdist.test_pdist_euclidean_random_float32/s> JJr,- .&'!![1s3r7c`d}td}td}t|d}t|||y)NrrrrWrrrr\rmrY_test2s r5 test_pdist_euclidean_random_nonCz*TestPdist.test_pdist_euclidean_random_nonC6s6 ! "&'!!%56s3r7c`d}td}td}t|d}t|||y)Nririspdist-euclidean-irisrrrrs r5 test_pdist_euclidean_iris_doublez*TestPdist.test_pdist_euclidean_iris_double=s3 vJ+,!![1s3r7cd}tjtd}td}t|d}t |||t dkDy)NrrrrrrXr[r`r]rr rrs r5!test_pdist_euclidean_iris_float32z+TestPdist.test_pdist_euclidean_iris_float32EB JJr&z "+,!![1sGaKHr7c`d}td}td}t|d}t|||y)NrrrrWrrrs r5test_pdist_euclidean_iris_nonCz(TestPdist.test_pdist_euclidean_iris_nonCMs6 vJ+,!!%56s3r7c`d}td}td}t|d}t|||y)Nrrpdist-seuclideanr'rr]rr rs r5test_pdist_seuclidean_randomz&TestPdist.test_pdist_seuclidean_randomWs5 ! "'(<(s3r7cd}tjtd}td}t|d}t |||tj |dd}t|d| }t |||y) Nrrrr'rrrmrr)r[r`r]rr r)rr\rmrrrrs r5$test_pdist_seuclidean_random_float32z.TestPdist.test_pdist_seuclidean_random_float32^sl JJr,- .'(<(s3 FF111 %<1-s3r7c`d}td}td}t|d}t|||y)Nrrrtest_seuclideanrrrs r5!test_pdist_seuclidean_random_nonCz+TestPdist.test_pdist_seuclidean_random_nonCjs6 ! "'(,-s3r7c`d}td}td}t|d}t|||y)Nrrpdist-seuclidean-irisr'rrrs r5test_pdist_seuclidean_irisz$TestPdist.test_pdist_seuclidean_irisrs3 vJ,-<(s3r7cd}tjtd}td}t|d}t |||y)Nrrr r'r)r[r`r]rr rs r5"test_pdist_seuclidean_iris_float32z,TestPdist.test_pdist_seuclidean_iris_float32ys< JJr&z ",-<(s3r7c`d}td}td}t|d}t|||y)Nrrr rrrrs r5test_pdist_seuclidean_iris_nonCz)TestPdist.test_pdist_seuclidean_iris_nonCs6 vJ,-,-s3r7c`d}td}td}t|d}t|||yNrr pdist-cosinerrr]wpdistr rs r5test_pdist_cosine_randomz"TestPdist.test_pdist_cosine_randoms4 ! "^$H%s3r7cd}tjtd}td}t|d}t |||yrr[r`r]rr rs r5 test_pdist_cosine_random_float32z*TestPdist.test_pdist_cosine_random_float32s= JJr,- .^$H%s3r7c`d}td}td}t|d}t|||y)Nrrr test_cosinerrrs r5test_pdist_cosine_random_nonCz'TestPdist.test_pdist_cosine_random_nonCs4 ! "^$M*s3r7c`d}td}td}t|d}t|||y)Nrrpdist-cosine-irisrrrrs r5test_pdist_cosine_irisz TestPdist.test_pdist_cosine_iriss3 vJ()H%s3r7cd}tjtd}td}t|d}t |||t dkDy)Nrrrrrrr)r[r`r]rr rrs r5test_pdist_cosine_iris_float32z(TestPdist.test_pdist_cosine_iris_float32sB JJr&z "()H%sGaKHr7c`d}td}td}t|d}t|||y)Nrrrrrrrs r5test_pdist_cosine_iris_nonCz%TestPdist.test_pdist_cosine_iris_nonCs3 vJ()M*s3r7ctjtjjdj d}tj ||g}t t|dddk\dy)Ni9[rrz&cosine distance should be non-negative)msg)r[absrrrrrr)rrrms r5test_pdist_cosine_boundsz"TestPdist.test_pdist_cosine_boundss\ FF299((.33B7 8 IIq!f q(#A&!+< >r7c`d}td}td}t|d}t|||yNrrpdist-cityblockrrrrs r5test_pdist_cityblock_randomz%TestPdist.test_pdist_cityblock_randoms5 ! "&'!![1s3r7cd}tjtd}td}t|d}t |||yr*rrs r5#test_pdist_cityblock_random_float32z-TestPdist.test_pdist_cityblock_random_float32s> JJr,- .&'!![1s3r7c`d}td}td}t|d}t|||y)Nrrr+test_cityblockrrrs r5 test_pdist_cityblock_random_nonCz*TestPdist.test_pdist_cityblock_random_nonCs6 ! "&'!!%56s3r7c`d}td}td}t|d}t|||y)Nrjrpdist-cityblock-irisrrrrs r5test_pdist_cityblock_irisz#TestPdist.test_pdist_cityblock_iriss3 vJ+,!![1s3r7cd}tjtd}td}t|d}t |||t dkDy)Nrrr3rrrXrrs r5!test_pdist_cityblock_iris_float32z+TestPdist.test_pdist_cityblock_iris_float32rr7c`d}td}td}t|d}t|||y)Nrjrr3r0rrrs r5test_pdist_cityblock_iris_nonCz(TestPdist.test_pdist_cityblock_iris_nonCs6 vJ+,!!%56s3r7c`d}td}td}t|d}t|||yNrrpdist-correlationrrrrs r5test_pdist_correlation_randomz'TestPdist.test_pdist_correlation_randoms5 ! "()M*s3r7cd}tjtd}td}t|d}t |||yr:rrs r5%test_pdist_correlation_random_float32z/TestPdist.test_pdist_correlation_random_float32s> JJr,- .()M*s3r7c`d}td}td}t|d}t|||y)Nrrr;test_correlationrrrs r5"test_pdist_correlation_random_nonCz,TestPdist.test_pdist_correlation_random_nonCs6 ! "()./s3r7c`d}td}td}t|d}t|||y)Nrrpdist-correlation-irisrrrrs r5test_pdist_correlation_irisz%TestPdist.test_pdist_correlation_iriss3 vJ-.M*s3r7cd}td}tjtd}t|d}t |||t dkDy)NrrrCrrrX)r]r[r`rr rrs r5#test_pdist_correlation_iris_float32z-TestPdist.test_pdist_correlation_iris_float32 sB vJ**R 89:M*sGaKHr7ctjdkDrd}ntjdtd}td}t |d}t ||y)Nlrz see gh-16456rrCr@r)sysmaxsizerskipr]rr rs r5 test_pdist_correlation_iris_nonCz*TestPdist.test_pdist_correlation_iris_nonCsL ;; C KK ' vJ-../s3r7r`rarbrr皙 @cpd}td}t|d|}t|d|}t||d|y)Nrerr$rfrgr)rrYr)rr`r\rmr]r^s r5test_pdist_minkowski_random_pz'TestPdist.test_pdist_minkowski_random_p s= ! " Q q 1 Q 0A 6BQS1r7cdd}td}td}t|dd}t|||yNrrpdist-minkowski-3.2r$rLrfrrrs r5test_pdist_minkowski_randomz%TestPdist.test_pdist_minkowski_random(s7 ! "*+!![C8s3r7cd}tjtd}td}t|dd}t |||yrPrrs r5#test_pdist_minkowski_random_float32z-TestPdist.test_pdist_minkowski_random_float32/s@ JJr,- .*+!![C8s3r7cdd}td}td}t|dd}t|||y)NrrrQrgrLrfrrrs r5 test_pdist_minkowski_random_nonCz*TestPdist.test_pdist_minkowski_random_nonC6s8 ! "*+!!%5=s3r7cdd}td}td}t|dd}t|||y)Nrrpdist-minkowski-3.2-irisr$rLrfrrrs r5test_pdist_minkowski_3_2_irisz'TestPdist.test_pdist_minkowski_3_2_iris=5 vJ/0!![C8s3r7cd}tjtd}td}t|dd}t |||y)NrrrXr$rLrfrrrs r5%test_pdist_minkowski_3_2_iris_float32z/TestPdist.test_pdist_minkowski_3_2_iris_float32Es> JJr&z "/0!![C8s3r7cdd}td}td}t|dd}t|||y)NrrrXrgrLrfrrrs r5"test_pdist_minkowski_3_2_iris_nonCz,TestPdist.test_pdist_minkowski_3_2_iris_nonCM6 vJ/0!!%5=s3r7cdd}td}td}t|dd}t|||y)Nrrpdist-minkowski-5.8-irisr$r5rfrrrs r5test_pdist_minkowski_5_8_irisz'TestPdist.test_pdist_minkowski_5_8_irisUrZr7cd}tjtd}td}t|dd}t |||t dkDy) Nrrrar$r5rfrrXrrs r5%test_pdist_minkowski_5_8_iris_float32z/TestPdist.test_pdist_minkowski_5_8_iris_float32]sD JJr&z "/0!![C8sGaKHr7cdd}td}td}t|dd}t|||y)Nrrrargr5rfrrrs r5"test_pdist_minkowski_5_8_iris_nonCz,TestPdist.test_pdist_minkowski_5_8_iris_nonCer_r7c tjgdjdd}t|d}t |dtj dtj dtj dtj dtj d gtjd d gdd gd d gdd gd d gg}t|d}tj d }t |||||d d |zd d d |zd g t jt5td dgd d ggddddy#1swYyxYw)N)rrr*r3rrmr#rrurwrvrrrrr) r[rrrr rxrr=r|r)rrr{r|s r5test_pdist_mahalanobisz TestPdist.test_pdist_mahalanobisms HH) * 2 22q 9Q}-sBGGCL"''#,!wws|RWWS\2773<I J HHq!fr1g1v1v2w? @Q}-ggajsCc1a#gq!QWaPQ]]: & ; QFQF#M : ; ; ;s !D>>Ec`d}td}td}t|d}t|||yNrTrM pdist-hammingrrrrs r5test_pdist_hamming_randomz#TestPdist.test_pdist_hamming_random~s4 " #_%I&s3r7cd}tjtd}td}t|d}t |||yrjrrs r5!test_pdist_hamming_random_float32z+TestPdist.test_pdist_hamming_random_float32= JJr-. /_%I&s3r7c`d}td}td}t|d}t|||yNrTrMrk test_hammingrrrs r5test_pdist_hamming_random_nonCz(TestPdist.test_pdist_hamming_random_nonCs4 " #_%N+s3r7cd}tjtd}td}t|d}t |||yrjr[rr]rr rs r5test_pdist_dhamming_randomz$TestPdist.test_pdist_dhamming_randomror7cd}tjtd}td}t|d}t |||yrjrrs r5"test_pdist_dhamming_random_float32z,TestPdist.test_pdist_dhamming_random_float32ror7cd}tjtd}td}t|d}t |||yrqrurs r5test_pdist_dhamming_random_nonCz)TestPdist.test_pdist_dhamming_random_nonCs= JJr-. /_%N+s3r7c`d}td}td}t|d}t|||y)Ndy=rpdist-jensenshannonr!rrrs r5test_pdist_jensenshannon_randomz)TestPdist.test_pdist_jensenshannon_randoms5 ! "*+?+s3r7cd}tjtd}td}t|d}t |||t dkDy)N:0yE>rr}r!rrXr[r`r]rr rrs r5'test_pdist_jensenshannon_random_float32z1TestPdist.test_pdist_jensenshannon_random_float32sD JJr,- .*+?+sGaKHr7c`d}td}td}t|d}t|||y)Nr|rr}test_jensenshannonrrrs r5$test_pdist_jensenshannon_random_nonCz.TestPdist.test_pdist_jensenshannon_random_nonCs6 ! "*+/0s3r7cztrd}nd}td}td}t|d}t|||y)Ng& .=g-q=rpdist-jensenshannon-irisr!r)rkr]rr rs r5test_pdist_jensenshannon_irisz'TestPdist.test_pdist_jensenshannon_iriss= ;CC vJ/0?+s3r7cd}tjtd}td}t|d}t |||t dkDy)Ngư>rrr!rr rrs r5%test_pdist_jensenshannon_iris_float32z/TestPdist.test_pdist_jensenshannon_iris_float32sB JJr&z "/0?+sGaKHr7c`d}td}td}t|d}t|||y)Ng-C6 ?rrrrrrs r5"test_pdist_jensenshannon_iris_nonCz,TestPdist.test_pdist_jensenshannon_iris_nonCs4 vJ/0/0s3r7c0ttjgdtjgd}ttjgdttjgdt}t |dddt |dddyNrmrrmrmrrmrmrrmrmrH333333?r绽|=rYr wmatchingr[rr!r rmm2s r5test_pdist_matching_mtica1z$TestPdist.test_pdist_matching_mtica1sd bhh/hh/ 1 rxxt<xxt<>3QU3Cae4r7c0ttjgdtjgd}ttjgdttjgdt}t |dddt |dddyNrmrrmrmrmrrHUUUUUU?rrrrrs r5test_pdist_matching_mtica2z$TestPdist.test_pdist_matching_mtica2sd bhhy)XXi( * rxx 6hhy575qu5E6r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddy)NrrrHrrrrwyuler[rr!rrr rs r5test_pdist_yule_mtica1z TestPdist.test_pdist_yule_mtica1sr "((?+((?+ - 288O4888O48: Q; !H1151AAE2r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddy)NrrrHrrrrrrs r5test_pdist_yule_mtica2z TestPdist.test_pdist_yule_mtica2sr "((9%((9% ' 288IT288IT24 Q; !H1151AAE2r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddy) NrrrHrg۶m۶m?rrrwdicer[rr!rrr rs r5test_pdist_dice_mtica1z TestPdist.test_pdist_dice_mtica1sr "((?+((?+ - 288O4888O48: Q; !H5qu5E6r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddy) NrrrHrrwrrrrrs r5test_pdist_dice_mtica2z TestPdist.test_pdist_dice_mtica2sr "((9%((9% ' 288IT288IT24 Q; !H3QU3Cae4r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddy NrrrHrg?rrr)r)r[rr!rrr rs r5test_pdist_sokalsneath_mtica1z'TestPdist.test_pdist_sokalsneath_mtica1s 11 3 />/>@ Q; !H5qu5E6r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddy NrrrHrg?rrr) wsokalsneathr[rr!rrr rs r5test_pdist_sokalsneath_mtica2z'TestPdist.test_pdist_sokalsneath_mtica2sr ),), . "((9D9((9D9; Q; !H5qu5E6r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddyrwrogerstanimotor[rr!rrr rs r5 test_pdist_rogerstanimoto_mtica1z*TestPdist.test_pdist_rogerstanimoto_mtica1%ss BHH_5HH_5 7 RXXoTBXXoTBD Q; !H5qu5E6r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddyrrrs r5 test_pdist_rogerstanimoto_mtica2z*TestPdist.test_pdist_rogerstanimoto_mtica2/sr BHHY/HHY/ 1 RXXit<XXit<> Q; !H5qu5E6r7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddy) NrrrHrrrrr wrussellraor[rr!rrr rs r5test_pdist_russellrao_mtica1z&TestPdist.test_pdist_russellrao_mtica19rr7cXttjgdtjgd}ttjgdttjgdt}tdkDr t |t |dddt |dddy) NrrrHrrrrrrrs r5test_pdist_russellrao_mtica2z&TestPdist.test_pdist_russellrao_mtica2Csr ++ - )48)48: Q; !H5qu5E6r7ctd}tdkDr t|j|jd}t |d}t |d}t |||tdkDy)NrrrTr test_canberrarX)r]rrrrIrr )rDr\rrs r5test_pdist_canberra_matchz#TestPdist.test_pdist_canberra_matchMsS vJ Q; !''177 # Q + Q 0BS'A+>r7cXd}tdgdgfd}d}t|||tdkDy)NrrKr.rgd>@1?rr )rr r)rr\pdist_yrs r5test_pdist_canberra_ticket_711z(TestPdist.test_pdist_canberra_ticket_711Ws4!C53%.*=sGaKHr7cGddfd}tjgggt}t||}d}t ||t dkDy) Nc eZdZy)6TestPdist.test_pdist_custom_notdouble..myclassNrrjr7r5rrbrr7rcXt|drt|ds tdyrrrs r5rIz9TestPdist.test_pdist_custom_notdouble.._my_metricerr7rHrrrr)r[rrrr r)rrIrLrrrs @r5test_pdist_custom_notdoublez%TestPdist.test_pdist_custom_notdouble_sR   xx')wyk2&AZ0Wgw{;r7c  t|fd|i|}t|fdt|i|}t|fdd|zi|}t|||tdkDt|||tdkDy#t$r}|j } tdkDr t | jt |tj| 5t|fd|i|dddn #1swYnxYwtj| 5t|fdt|i|dddn #1swYnxYwtj| 5t|fdd|zi|dddn#1swYnxYwYd}~yYd}~yd}~wwxYwr) rr>r rrrrrrr=) rrmr6r\rrrrrrs r5rz$TestPdist._check_calling_conventionsnsT Cq2262Bq8f88Bq<6!1rr+matchingr&r"r)r(r%r!r'rrmrrr#r)r$r]rrrr[rrrrrrqrrlr)rr6rrmrrs r5test_pdist_calling_conventionsz(TestPdist.test_pdist_calling_conventionss (( BG7 CaC1H%A{k69g>)).47-B  + +Av 6%FF188BJJ/aa@//6Q/?=(MM"&&"**)=)?)?"@AXXbiimmA.001//6b/A+ Br7c d}td|jdftd|jdftd|jdftd|jd fg}|D]S}|d ddd ddd f} t|| }|dD]+}t||| }t|||td kD-Uy#t $r} | j } td kDr t| jt| |dD]A}||} tj| 5t| | ddd7#1swY@xYwYd} ~ d} ~ wwxYw)NrrNr!rRr"rQrrPr`rrtrrrmrX) r]r%rr rrrrrrr=) rr6r\rrr?rrrrrr@s r5test_pdist_dtype_equivalencez&TestPdist.test_pdist_dtype_equivalencesg'($*<*  , , 1 1sC&CCC(Nr)Yrrrr&rrrrrrrrrslowrrrrrrr r rrrrrr!r#r(r,r.r1r4r6r8r<r>rArDrFrKrr[rrNrRrTrVrYr\r^rbrdrfrhrlrnrsrvrxrzr~rrrrrrrrrrrrrrrrrrrr.rrrrrrrjr7r5rrs7 [[66,!9F4444 [[44 [[II [[444 44444444 [[44 [[II [[44>444 [[44 [[II [[44444 [[44 [[II [[44 [[S3c3RVV"DE2F2444 [[44 [[44 [[44 [[44 [[II [[44;"4444444I4 4I4573375777777 [[??I < <C*B8K2 [[%5%5N [[??r7rceZdZdZdZdZdZdZdZdZ dZ e jje jjd e jjd eegd Zd Zy )TestSomeDistanceFunctionscttjgd}tjgd}||fg|_y)Nr)rrr3)r[rcases)rrrEs r5r&z&TestSomeDistanceFunctions.setup_methods+ HH_ % HH_ %!fX r7c |jD]m\}}t||d}t|dt||d}t|dt||d}t|dt||d}t|d otjd d g}tjd d g}t t||t|j d|j dy)Nrmrfr*?gqaz@rgw@rbgR"6@i`ii^iuint16)rr$r r[rr r) rrrEdist1dist1p5dist2dist0p25rsrs r5rgz(TestSomeDistanceFunctions.test_minkowskisJJ DDAqaa(E s +1,G )C Daa(E z 2 A.H *B C D HHc3Z  HHc3Z Yq!_qxx1188H3EF Hr7c|jD]0\}}t||}t|tjd2y)Nrt)r weuclideanr r[rxrrrEr{s r5rWz(TestSomeDistanceFunctions.test_euclideans7JJ 2DAqa#D bggaj 1 2r7c\|jD]\}}t||}t|dy)Nr3)r wsqeuclideanr rs r5test_sqeuclideanz*TestSomeDistanceFunctions.test_sqeuclideans/JJ +DAq1%D c * +r7c |jD]L\}}t||}t|ddtjdtjdzz z Ny)Nrg2@)rwcosiner r[rxrs r5rz%TestSomeDistanceFunctions.test_cosinesOJJ PDAq1a=D cDBGGBK"''"+4M,N&N O Pr7cttddgddgdtsJttddgddgtsJy)NrmF)centered)r wcorrelationfloatrrs r5test_cosine_output_dtypez2TestSomeDistanceFunctions.test_cosine_output_dtype!sB,1v1vFNNN'1a&1a&15999r7c tjgd}tjgd}|jD]L\}}t||}t |dtj ||t |t |zz z Ny)N)rr)UUUUUUrgUUUUUU@r)r[rrrr rpr)rxmymrrEr{s r5r@z*TestSomeDistanceFunctions.test_correlation&so XXn % XX9 :JJ TDAq1%D cBFF2rNd2hb>Q,R&R S Tr7ctjgd}tjgd}t||}d|cxkr4dtjtjj zksJJy)N)%rurururururururururrrrurrurrururrrurrururrururrurrrrrrru)%rrrrrrrrrrrrrrrrrrrrurrrrrrrrrrrrrrrrrrr)r[rrfinforr\rs r5test_correlation_positivez3TestSomeDistanceFunctions.test_correlation_positive-sm HHI J HHI J1a D9B"**!5!9!9999999r7zignore:Casting complexfuncc|ddg}ddg}tjd5|||dddy#1swYyxYw)Ny?y@y@y@z"Complex `u` and `v` are deprecatedmatch)rr)rrrrEs r5test_corr_dep_complexz/TestSomeDistanceFunctions.test_corr_dep_complex8sC4L 4L  # #*N O  AJ   s 2;ctjgd}tjgd}tjgdgdgdg}|jD]1\}}t|||}t |tj d3y)Nr)r)rrru)rrr)rurrg@)r[rrr#r rx)rrrEvir{s r5test_mahalanobisz*TestSomeDistanceFunctions.test_mahalanobisAsj HH_ % HH_ % XXI JJJ 4DAqq!R(D bggcl 3 4r7N)rrrr&rgrWrrrr@rrrrfilterwarningsrrrrrrjr7r5rrsH&2 + P : T : [[ [[ 89 [[Vk6%:;<: 4r7rceZdZejej ej ejegZ dZ dZ dZ dZ dZdZy)TestSquareFormcH|jD]}|j|yro)checked_dtypescheck_squareform_matrixrrIs r5test_squareform_matrixz%TestSquareForm.test_squareform_matrixM%(( 0E  ( ( / 0r7cH|jD]}|j|yro)rcheck_squareform_vectorr s r5test_squareform_vectorz%TestSquareForm.test_squareform_vectorQr r7c(tjd|}t|}t|jdt|j |tjd|}t|}t|jdt|j |tj ddgddgg|}t|}t|jdt|j |t|tj dg|y)N)rrrHrrmrmrg@)rm)r[zerosrr rrIrr)rrIArAs r5r z&TestSquareForm.check_squareform_matrixUs HHV5 ) ]RXXt$RXXu% HHV5 ) ]RXXt$RXXu% HHq#ha) 7 ]RXXt$RXXu%2rxxU;c8t|jdyNrrr-rs r5test_num_obs_y_2zTestNumObsY.test_num_obs_y_2s  Q r7c8t|jdy)Nrr1rs r5test_num_obs_y_3zTestNumObsY.test_num_obs_y_3 Q r7c8t|jdyNrr1rs r5test_num_obs_y_4zTestNumObsY.test_num_obs_y_4r5r7cHtddD]}|j|y)Nrt)r}minit)rrs r5test_num_obs_y_5_10zTestNumObsY.test_num_obs_y_5_10s"q" A JJqM r7ct}tddD]}|j||dz zdz tddD]:}||vstjt 5|j |ddd<y#1swYGxYwNrr:rmrtisetr}addrr=r|bad_yrrsrrs r5test_num_obs_y_2_100z TestNumObsY.test_num_obs_y_2_100s Eq" #A EE!q1u+/ " #q# "Az]]:."JJqM"" """ #BB c8t|j|yror1rs r5r;zTestNumObsY.minitr5r7cVtjj|}t|Sro)r[rrrrrrEs r5rCzTestNumObsY.bad_ys IINN1 |r7c<t|j||k(Sro)rmake_yrs r5r-zTestNumObsY.check_ysQ(A--r7cRtjj||dz zdzSNrmrr[rrrs r5rKzTestNumObsY.make_ys"yy~~qAE{q011r7N)rrrr*r.r2r4r8r<rEr;rCr-rKrjr7r5r(r(s9*  ! !! "!.2r7r(c<eZdZdZdZdZdZdZdZdZ dZ y ) TestNumObsDMctddD]v}tjj|d}t |}t |}t dk\r t|j|jtt||xy)Nrmrrr) r}r[rrrrrrrr r)rrrmr rs r5test_num_obs_dm_multi_matrixz)TestNumObsDM.test_num_obs_dm_multi_matrixseq" +A q!$A"A1 A!|aggqww' A *  +r7c8t|jdy)Nrrcheck_Drs r5test_num_obs_dm_0zTestNumObsDM.test_num_obs_dm_0 Q r7c8t|jdyr,rTrs r5test_num_obs_dm_1zTestNumObsDM.test_num_obs_dm_1rWr7c8t|jdyr0rTrs r5test_num_obs_dm_2zTestNumObsDM.test_num_obs_dm_2r5r7c8t|jdyr0rTrs r5test_num_obs_dm_3zTestNumObsDM.test_num_obs_dm_3r5r7c8t|jdyr7rTrs r5test_num_obs_dm_4zTestNumObsDM.test_num_obs_dm_4r5r7c<t|j||k(Sro)rmake_Drs r5rUzTestNumObsDM.check_Ds$++a.)Q..r7cBtjj||SrorNrs r5razTestNumObsDM.make_Dsyy~~a##r7N) rrrrRrVrYr[r]r_rUrarjr7r5rPrPs*+!!!!!/$r7rPct|dSNT)throw)r)rs r5is_valid_dm_throwrfs q %%r7cZeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd Zy) TestIsValidDMctjdtj}tjt 5t |dddy#1swYyxYw)NrtrHr[rrrr=r|rfrrs r5$test_is_valid_dm_improper_shape_1D_Ez2TestIsValidDM.test_is_valid_dm_improper_shape_1D_Es? HHT , ]]: & ! a  ! ! ! AAcxtjdtj}tt |dy)NrjrHFr[rrr rrls r5$test_is_valid_dm_improper_shape_1D_Fz2TestIsValidDM.test_is_valid_dm_improper_shape_1D_Fs$ HHT ,[^U+r7ctjdtj}tjt 5t |dddy#1swYyxYwNrrrrHrkrls r5$test_is_valid_dm_improper_shape_3D_Ez2TestIsValidDM.test_is_valid_dm_improper_shape_3D_Es? HHYbjj 1 ]]: & ! a  ! ! !rncxtjdtj}tt |dyNrtrHFrprls r5$test_is_valid_dm_improper_shape_3D_Fz2TestIsValidDM.test_is_valid_dm_improper_shape_3D_Fs$ HHYbjj 1[^U+r7ctjjd}t|}t ddD] }d|||f< t j t5t|dddy#1swYyxYw)Nrrrtr) r[rrrr}rr=r|rfrrErrs r5#test_is_valid_dm_nonzero_diagonal_Ez1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_Esh IINN2  qMq! AAadG  ]]: & ! a  ! ! !s  A11A:ctjjd}t|}t ddD] }d|||f< t t |dy)NrrrtrF)r[rrrr}r rrzs r5#test_is_valid_dm_nonzero_diagonal_Fz1TestIsValidDM.test_is_valid_dm_nonzero_diagonal_FsM IINN2  qMq! AAadG [^U+r7ctjjd}t|}|ddz|d<t j t 5t|dddy#1swYyxYw)Nrrrmrmrmr)r[rrrrr=r|rfrrErs r5test_is_valid_dm_asymmetric_Ez+TestIsValidDM.test_is_valid_dm_asymmetric_E sW IINN2  qMD'A+$ ]]: & ! a  ! ! !s  A$$A-ctjjd}t|}|ddz|d<t t |dy)NrrrmrFr[rrrr rrs r5test_is_valid_dm_asymmetric_Fz+TestIsValidDM.test_is_valid_dm_asymmetric_Fs< IINN2  qMD'A+$[^U+r7cxtjdtj}tt |dy)NrrHTrprls r5test_is_valid_dm_correct_1_by_1z-TestIsValidDM.test_is_valid_dm_correct_1_by_1s$ HHV2:: .[^T*r7ctjjd}t|}t t |dy)NrmTrrs r5test_is_valid_dm_correct_2_by_2z-TestIsValidDM.test_is_valid_dm_correct_2_by_2+ IINN1  qM[^T*r7ctjjd}t|}t t |dyNrTrrs r5test_is_valid_dm_correct_3_by_3z-TestIsValidDM.test_is_valid_dm_correct_3_by_3#rr7ctjjd}t|}t t |dy)NTrrs r5test_is_valid_dm_correct_4_by_4z-TestIsValidDM.test_is_valid_dm_correct_4_by_4(rr7ctjjd}t|}t t |dy)NrTrrs r5test_is_valid_dm_correct_5_by_5z-TestIsValidDM.test_is_valid_dm_correct_5_by_5-s+ IINN2  qM[^T*r7N)rrrrmrqrurxr{r}rrrrrrrrjr7r5rhrhsC! ,! ,!,!, ++ + + +r7rhct|dSrd)r)rEs r5is_valid_y_throwr3s at $$r7cNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestIsValidYctjdtj}tjt 5t |dddy#1swYyxYw)NrrrHr[rrrr=r|rrrEs r5#test_is_valid_y_improper_shape_2D_Ez0TestIsValidY.test_is_valid_y_improper_shape_2D_E<s? HHWBJJ / ]]: & Q    rncxtjdtj}tt |dy)NrrHFr[rrr rrs r5#test_is_valid_y_improper_shape_2D_Fz0TestIsValidY.test_is_valid_y_improper_shape_2D_FAs$ HHWBJJ /Z]E*r7ctjdtj}tjt 5t |dddy#1swYyxYwrsrrs r5#test_is_valid_y_improper_shape_3D_Ez0TestIsValidY.test_is_valid_y_improper_shape_3D_EEs? HHYbjj 1 ]]: & Q    rncxtjdtj}tt |dyrwrrs r5#test_is_valid_y_improper_shape_3D_Fz0TestIsValidY.test_is_valid_y_improper_shape_3D_FJs$ HHYbjj 1Z]E*r7cP|jd}tt|dy)NrTcorrect_n_by_nr rrs r5test_is_valid_y_correct_2_by_2z+TestIsValidY.test_is_valid_y_correct_2_by_2N    "Z]D)r7cP|jd}tt|dyrrrs r5test_is_valid_y_correct_3_by_3z+TestIsValidY.test_is_valid_y_correct_3_by_3Rrr7cP|jd}tt|dy)NrTrrs r5test_is_valid_y_correct_4_by_4z+TestIsValidY.test_is_valid_y_correct_4_by_4Vrr7cP|jd}tt|dy)NrtTrrs r5test_is_valid_y_correct_5_by_5z+TestIsValidY.test_is_valid_y_correct_5_by_5Zrr7ct}tddD]}|j||dz zdz tddD]:}||vstjt 5|j |ddd<y#1swYGxYwr>r@rDs r5test_is_valid_y_2_100z"TestIsValidY.test_is_valid_y_2_100^s Eq" #A EE!q1u+/ " #q# "Az]]:."JJqM"" """rFcZtjj|}t|dSrd)r[rrrrIs r5rCzTestIsValidY.bad_ygs! IINN1 !4((r7cVtjj||dz zdz}|SrMrNrIs r5rzTestIsValidY.correct_n_by_nks& IINNAQKA- .r7N)rrrrrrrrrrrrrCrrjr7r5rr7s9  + +****")r7rr`)g$gructjt5tddgddg|dddtjt5tddgddg|ddgdddy#1swY@xYw#1swYyxYw)Nrmrrr)rr=r|r$rfs r5 test_bad_prpsy z "%1a&1a&!$% z "-1a&1a&!aV,--%%--sA+ A7+A47Bctjt5tgdgddddy#1swYyxYw)N)FFF)rr=r|r)rjr7r5test_sokalsneath_all_falserys3 z "B)+@ABBBs4=clttgdgddttgdgddy)Nrmrrrrrrmrmrmrrrmrrmrr)r wcanberrarjr7r5rrs$9i0!4<6:r7ctttgdgdddttgdgdddy) NrrUUUUUU?decimalrrrw)r wbraycurtisrjr7r5test_braycurtisrs( Iy962N L,?bQr7ctjgd}tjgd}tt||ddtt ||tj ddt jtd5t |tjddf|tjddftj dfdddt jtd5t|tjddf|tjddfdddt jtd5t|ddtjf|ddtjfdddtjd jd d }t jt5t ||dddt jt5t||dddtjjd }|jd }|jd }t ||}t||}t|d z|dy#1swYxYw#1swY]xYw#1swYxYw#1swYxYw#1swYxYw) N)rmrmrmrrrr*rrrInput vector should be 1-DrrriIr)r[rr rrrxrr=r|newaxisr<rrrr)ryrzrrsrEd1d2s r5test_euclideansrs ) B ) B R,c2> 2r*BGGAJC z)E FE2bjj!m$bQ&78"''!*DE z)E F;R A &2::q=(9:; z)E F;R2:: &1bjj=(9:; ! Q"A z "1a z "Q   z *B  A  A Aq B a BAr2.)EE;;;; s= A J<7J7J J( J4J JJ%(J14J=cgd}gd}tjt5t||dddy#1swYyxYw)Nrrrmrrr=r|whammingrrEs r5test_hamming_unequal_lengthrs6AA z "As 8Acgd}gd}gd}d}tjt|5t|||dddy#1swYyxYw)Nrrz/'w' should have the same length as 'u' and 'v'.rr)urrr&s r5"test_hamming_unequal_length_with_wrsEAAA ;C z -Aqs AA ctjgdd}tjgdd}d}tt|||y)N)eggsspamrrrrrrrrrrrrrrrrrrz|S4rH)rrrrrrrrrrrrrrrrrrrrg?)r[rr r)rsrdesireds r5test_hamming_string_arrayrsM B A B AGHQNG,r7ctjgdgdg}t|ddd}t||ddd}t|dd}t||dd}t ||dt ||dy)N) QUUT@Y@rrgB@gN@gV@gb@g8@gH@r$rm)r6r`r)r6r`rTr)r[rrrr )arr_inp0c0p1c1s r5test_minkowski_wrsy XX2234F vkQ$ 7B vvkQ$ ?B vkQ /B vvkQ 7BB'B'r7cgd}gd}tjtjtjtjfD]o}t tj ||tj ||}ttj|jtjqtjtjtjtjfD]}tj|j }t dgtj |g|}t tj |g|dg}t#||t#|tj$|dztj&tj$tj(tj*g}dD]2}t-t|s|j/t1t|4|D]N}t tj ||tj ||}t#|j|Py)Nr)rrtrrHrr)float16float128)r[r&int16r%rrasarrayrrrIfloatinguint8ruint32uint64iinfomaxr rr` complex64 complex128hasattrrgetattr)rrErIdumaxrrdtypess r5test_sqeuclidean_dtypesrs AA''288RXXrxx85 AU3RZZ5O P aggr{{345((BIIryy"))<.xx"" 1#rzz4&> ? "**dV59A3 ?RRD)1,- .jj"**bllBMM BF(. 2u  MM'"e, - . % AU3RZZ5O PQWWe$%r7ctgd}gd}|Dcgc] }t|}}|Dcgc] }t|}}tj5t||}dddtj5t||}dddt ycc}wcc}w#1swYIxYw#1swY,xYw)N)TTF)TFT)rrrr(r )r`rrrrErrs r5test_sokalmichenerrs AAAQAAQA    !$a#$    !$a#$ $$$$s"BB B"6 B."B+.B7c d}d}d}d}d||zz||zd||zzzz }t|dtj5tddgddgddg}dddt|gd }gd }d D]7}tj5tt|||gd ddd9y#1swYZxYw#1swYPxYw) Nrug?rrgX$I?rmrr)FFTTTFFTTTTTTFTFFFTT)TTTFFTTTFTTTTTFFFTTT)g?rarg4@r)r rrr() ntfnftnttnffexpectedactuala1a2rs r5test_sokalmichener_with_weightr s C C C CC#I#)a39o"=>H),    !;1v1v!S:;&) DB IB$P  # # % P  b"qc :r=r|rrr)r6rmrrs r5test_Xdist_non_negative_weightsr Ps !#A#ss(+A  A!fWAccF ?? $%d6lGf$4 5$ ]]: & !!&) !aa  ! !]]: & $!&) $aA# $ $ $ $ ! ! ! ! $ $ $ $sH D C?'D  D#D,D#?D D  D D D##D, cgd}t|}t||t|tj}t||t |j tjdg}t|}t |j dt ||d}tjtd5t|dddtjdjddd}tjtd5t|dddddgd d gg}tjtd5t|dddy#1swYxYw#1swYMxYw#1swYyxYw) NrrHrmrrrtrrrr) rrr[rr rIrvrr=r|r<rrs r5test__validate_vectorr bs0AAq!"**-Aq!"**% AAA A z)E F ! QA&A z)E F Q!QA z)E Fs$4 E E! E-E!E*-E6ctjdt}t|d|d}|dk(sJt |d}t |dgt |dd|ddd}t |dggy)N)rrrHrrur+rm)r[rr!rrr r)rrs r5test_yule_all_samer |sq d#A adAaDA 8O8 aASE aeQrUF#AcUGr7cttgdgdddttddgddgdttgdgddttddggddggd ddgttddggddggd d gttddggddggd d ddggttddggddggd d d ggtjgdgdgdg}tjgdgdgdg}tt||d gdtt||d gdy)N)rruru)rurrurrrurwg)>d?rrrrmgД?T)r~keepdims)rmrrr)rtrrg) r ) rrr:)))g'Y?gTyCЇ?gFw$?g\BZ?)g;0%7/?g)o?gku?)r r!r[r)rsrs r5rrsS oL sCj3*=+- oGM Szlc3ZLqIc $ Szlc3ZLqI" % Szlc3ZLq/358;SzlD Szlc3ZLq/358A{mE ,!# $A """$ %A a3DF a39;r7c.tjgd}tjgd}t||}t||gd}t ||t tj |tj |d}t ||y)N)rmrr)rrrrr)r[rrrr rr)arr_1arr_2rrs r5 test_gh_17703r sq HHY E HHY EE5!H E5>& 1FFH% 2=='=='8FFH%r7c>|dvrtjdtjdtj}|j dt |5ttjj||||dddy#1swYyxYw)N)r!r#r'rrrHF)writer) rrJr[r<rsetflagsrrscipyspatialdistance)r6rs r5test_immutable_inputr'sv ?? $% "BJJ'AJJUJ & !;/ &&/1:;;;s .BBcDtjgd}tjgd}tjgd}t|||}t |dt tj |tj |d|}t ||y)N)rrrmrm)rrmrmr)rr,gffffff?g?rg2)^ ?r+)r6r)r[rrr+r rr)rsrrrrs r5 test_gh_23109r)sw A A '(AAqAHH01 2==#==# A'FFH%r7cNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestJaccardc`d}td}td}t|d}t|||yNrrM pdist-jaccardr rrrs r5test_pdist_jaccard_randomz%TestJaccard.test_pdist_jaccard_randoms4 " #_%I&s3r7cd}tjtd}td}t|d}t |||yr-rrs r5!test_pdist_jaccard_random_float32z-TestJaccard.test_pdist_jaccard_random_float32= JJr-. /_%I&s3r7c`d}td}td}t|d}t|||yNrrMr. test_jaccardrrrs r5test_pdist_jaccard_random_nonCz*TestJaccard.test_pdist_jaccard_random_nonCs4 " #_%N+s3r7cd}tjtd}td}t|d}t |||yr-rurs r5test_pdist_djaccard_randomz&TestJaccard.test_pdist_djaccard_randomr2r7cd}tjtd}td}t|d}t |||yr-rrs r5"test_pdist_djaccard_random_float32z.TestJaccard.test_pdist_djaccard_random_float32r2r7cd}ttjdd}ttjd||y)NrTrtrr rrrr[rr rr\r s r5test_pdist_djaccard_allzerosz(TestJaccard.test_pdist_djaccard_allzeross0 "((6"I . ac2r7cd}tjtd}td}t|d}t |||yr4rurs r5test_pdist_djaccard_random_nonCz+TestJaccard.test_pdist_djaccard_random_nonCs= JJr-. /_%N+s3r7cd}ttjdd}ttjd||y)NrTr<r5rrr=r>s r5!test_pdist_djaccard_allzeros_nonCz-TestJaccard.test_pdist_djaccard_allzeros_nonCs0 "((6"N 3 ac2r7c0ttjgdtjgd}ttjgdttjgdt}t |dddt |dddyrwjaccardr[rr!r rs r5test_pdist_jaccard_mtica1z%TestJaccard.test_pdist_jaccard_mtica1sd RXXo.XXo. 0 bhhd;hhd;=3QU3Cae4r7c0ttjgdtjgd}ttjgdttjgdt}t |dddt |dddyrrErs r5test_pdist_jaccard_mtica2z%TestJaccard.test_pdist_jaccard_mtica2 sd RXXi(XXi( * bhhy5hhy575qu5E6r7c>tjgd}tjgd}tjtj}t t ||d|t t|g|gddggt t||gddgy)N)ig@r)rrrrr ) r[rrrr\r r rr)rrrEr\s r5test_non_01_inputzTestJaccard.test_non_01_input sw HH] # HH] #hhuo!!1 s5qcA3 2cUG<q!fi03%8r7N)rrrr/r1r6r8r:r?rArCrGrIrLrjr7r5r+r+s9444443 43 579r7r+c<eZdZdZdZdZdZdZdZdZ dZ y ) TestChebyshevc`d}td}td}t|d}t|||y)Nrrpdist-chebyshevrrrrs r5test_pdist_chebyshev_randomz)TestChebyshev.test_pdist_chebyshev_random s5 ! "&';'s3r7cd}tjtd}td}t|d}t |||t dkDy)NrrrPrrrXrrs r5#test_pdist_chebyshev_random_float32z1TestChebyshev.test_pdist_chebyshev_random_float32! sD JJr,- .&';'sGaKHr7c`d}td}td}t|d}t|||y)NrrrPtest_chebyshevrrrs r5 test_pdist_chebyshev_random_nonCz.TestChebyshev.test_pdist_chebyshev_random_nonC( s6 ! "&'+,s3r7c`d}td}td}t|d}t|||y)Nrjrpdist-chebyshev-irisrrrrs r5test_pdist_chebyshev_irisz'TestChebyshev.test_pdist_chebyshev_iris/ s3 vJ+,;'s3r7cd}tjtd}td}t|d}t |||t dkDy)NrrrXrrrXrrs r5!test_pdist_chebyshev_iris_float32z/TestChebyshev.test_pdist_chebyshev_iris_float326 sB JJr&z "+,;'sGaKHr7c`d}td}td}t|d}t|||y)NrjrrXrUrrrs r5test_pdist_chebyshev_iris_nonCz,TestChebyshev.test_pdist_chebyshev_iris_nonC= s4 vJ+,+,s3r7cgd}gd}gd}tt|||dtt||gd|dgtt|g|gd|dggy)Nrrrtr)rrmrtrrrr rrrrrrErs r5 test_weightedzTestChebyshev.test_weightedD s\   Yq!Q'+UAq6;!4qc:UA3[A6!>r7cgd}gd}gd}tt|||dtt||gd|dgtt|g|gd|dggy)Nrr_rrrrr`ras r5test_zero_weightzTestChebyshev.test_zero_weightN sZ   Yq!Q'+UAq6;!4qc:UA3[A6!>r7N) rrrrQrSrVrYr[r]rbrdrjr7r5rNrN s,4I44I4??r7rNro) NNFTFFFFN) functoolsrros.pathrUrHrrrnumpyr[ numpy.linalgr numpy.testingrrrr r r r r rscipy.spatial.distancer$rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+scipy._lib._utilr,r-scipy.conftestr.fixturer6rSr_tdist_ytdistr]rerkrrrrrassert_allclose_forgivingrr rstrrror[rrrrrrr wcityblock wchebyshevrr wkulczynski1rFrrrrrwsokalmichenerrrrrrr(rPrfrhrrrrrrrrrrrrrrrrrrrr r r rr r'r)r+rNrjr7r5rvs.F% 222&&& DDDDDD/.~Y78 @ /22222 4 # -17;+0/4 -$` 8$O$?'@!T B !tQT "td#dEPU"c#< cL  %S% Q >!%a*/EC Qa H!%a-21>!.1&w?? H Y ' Y ' & !{+ {+ 7 # Y5 9 {u= j) H 7 {+  /j) uAuAp X ?X ?tQ4Q4h@-@-F3232l $ $F&F+F+R%66r01-2-B ; R /B - (%>  PP0 $ $,,<$$"4 ;:&;; &N9N9b=?=?r7