L i$GddlZddlZddlmZddlmZddlZddlm Z m Z ddl Z ddl m Z ddlmZmZmZmZmZmZmZddlmZddlmZdd lmZdd lmZmZm Z m!Z!m"Z"m#Z#m$Z$e jJjLZ&e jJjNZ'ejPgd jSd Z*ejPd dgddgddgddgddgddgddgddgddgddgddgg Z+ejPd d gddgddggZ,ejPddgddgddggZ-ejPgd Z.e!eGd!d"Z/e!eGd#d$Z0e!eeGd%d&Z1y)'N)deepcopyLock)assert_array_equalsuppress_warnings)raises)kmeanskmeans2py_vqvqwhiten ClusterError _krandinit)_vq)matrix)array_api_extra)SCIPY_ARRAY_API eager_warns is_lazy_arraymake_xp_test_casexp_copyxp_assert_closexp_assert_equal(ggQ?Gz ףp= ?gRQgQ@gQgffffff?333333g)\(@zG(\?gGzgQ @RQgffffff@gQg ףp= ףp= gQ@gq= ףp @皙gHzG@g ףp= g333333 @gQgQ?\(\gQ@gGzzG@g= ףp={Gz?g皙@gQg?\(\ g\(\ @QgQ?= ףp=gHzGѿ(\gr(gq= ףp?g(\gp= ף@QgQ?g\(\ףp= @gQg)\(@gp= ףQ @g= ףp=g(\ @gQgp= ף?gq= ףpgQ?)\(?r.g)\(@g= ףp=r$= ףp=g\(\ @gGzg333333?ףp= g(\ҿr'gGz @gffffffgGz?gQgGz?(\r,g(\gGz@gffffff(\?gQQgzG\(\@\(\g(\@皙g@r"(\?g)\(gQ@gp= ףg= ףp=?gp= ף@g(\g(\?GzgQ@gQg\(\@gp= ף Q@{Gzgp= ףg @Qgffffff@zGg? ףp= ?g= ףp=Q?r<gRQ?Qg)\(?gQg)\(@gRQgQ @rgQ@p= ףgRQؿr7gQ@ ףp= g\(\?r>g= ףp=?q= ףp?333333?r"Q@r gHzG @g333333gףp= @gGzg)\(@r6g333333?r<g\(\?gRQg(\@r0rIgףp= rJr9g ףp= ?gQg?Qg\(\@q= ףpgq= ףp@r"g\(\g(\r=g?g)\(gQ @gGzg?g\(\gQ @ffffff@r.\(\?g= ףp= g ףp= @ףp= r/HzGgQ?Qg ףp= ?r1g(\?rgףp= rM(\?g{Gzg@gRQ gQ@gQrBg ףp= Gz@gr&g(\gHzG@gGzgGzp= ףrUg ףp= gp= ףggQ@rSgq= ףp?rNgGz@rRg{Gz?gQۿgp= ף?g\(\gHzG@gg(\r@rgq= ףpg333333?gzGr5{GzQ?gQ{Gz= ףp=@g)\(gp= ף @gQr$gq= ףpg ףp= r)gHzG?(\g ףp= ?gQ g333333?rFr%g)\(gzG@gQg(\ @QrGr?gQ @r\g{Gz?rLr8r6gffffff@rgGz@r0rOg(\g333333rCgHzG?rHgffffff?gffffffgRQ?gQgq= ףp?g(\@r:g{Gz@ggGz?gHzGgQr+r3g333333r;gq= ףpgffffff?g ףp= rOr*gףp= @g333333g\(\@gGzgףp= ?g\(\rXg)\(g ףp= @gr[gffffff= ףp=@gg?r2g @ggGz@p= ףr;gGzr!gHzGgGz?gףp= rDrZg(\@gGz rTgQgGz@gGzgRQ@rg ףp= ?(\g{Gz?rY?Qr_gHzGgQ @rSgGz?r g)\(̿rcg333333?gzGr5gQg{Gz @RQg333333@rV{Gz @gzGg@g ףp= r-g)\(gGz?r`gQ?r4g{Gz@rQrdr]rXr:g{GzĿg= ףp=gQrKgffffff?rWrerSg?gGzrPrEg(\?rg\(\?rarr#rUg(\gzG@g@rh g@@g333333@rAgUUUUUU @gUUUUUU@g@g@g@rG) rrmrhrhrhrhrmrhrmrmrmc"eZdZdZdZej jdej jde je je j gdZ ej jeddZy ) TestWhitenc|jddgddgddgddgd d gg}|jd d gd dgddgddgddgg}tt||dy)N&cJ^|Y@g`q@ս @g}&?J?UH~ @g ?K=E@gFMp?|H@gH|? cw&?gbA|?D=?k2?'B?);"~?|d=?z?|?Ry?h㈵>rtol)asarrayrr )selfxpdesiredobss a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/cluster/tests/test_vq.py test_whitenzTestWhiten.test_whitenTs**z:6'4'4'4'4 67 jj:z2%z2%z2%z2%z2 45 s W48c|jgdgdgdg}|jgdgdgdg}t|td5t|}dddt |d y#1swYxYw) N)rbgJJ@)rrbg I 1?)rrbgKX @)rrbg/ ?)rrbg@?)rrbg ?zstandard deviation zero)matchrr)rrRuntimeWarningr r)rrrractuals rtest_whiten_zero_stdzTestWhiten.test_whiten_zero_stdbsu**33356jj...01n4M N !C[F !d3 ! !s  A**A3z4ignore:invalid value encountered:RuntimeWarning:dask bad_valuec|jd|gddgddgddgdd gg}t|r~|jd tjgd tjgd tjgd tjgdtjgg}t t ||dyt tt |y)Nryrzr{r|r}r~rrrrtrurvrwrxrr)rrmathnanrr assert_raises ValueError)rrrrrs rtest_whiten_not_finitez!TestWhiten.test_whiten_not_finiteosjj:y1%z2%z2%z2%z2 45  jj:txx"8#-txx"8#-txx"8#-txx"8#-txx"8 ":;G F3Kt < *fc 2r)`np.matrix` unsupported in array API modereasonc tjtjtj fD]1}td|gddgddgddgdd gg}t t t |3y) Nryrzr{r|r}r~rrr)nprinfrrrr )rrrs rtest_whiten_not_finite_matrixz(TestWhiten.test_whiten_not_finite_matrixsl"&&0 3I:y1%z2%z2%z2%z2 45C *fc 2  3rN)__name__ __module__ __qualname__rrpytestmarkfilterwarnings parametrizerrrrskipifrrrrrrrrQs 9 4 [[ VW [[[488TXXy*IJ3KX3" [[JL3L3rrrceZdZdZej j eddZdZ ej j eddZ dZ dZ d Z d Zd Zy ) TestVqc tjtdgtdgtdgg}t|j t|j |d}t ||j t |jdy)NrrmrhdtypeF check_dtype)r concatenateXr rrLABEL1int64)rrinitclabel1s r test_py_vqzTestVq.test_py_vqsk11178rzz!}bjj&78; 6 B$) +rrrctjtdgtdgtdgg}tt tt |d}t |t yNrrmrh)rrrr rrr)rrrs rtest_py_vq_matrixzTestVq.test_py_vq_matrixsN11178vay&-0366*rc tjtdgtdgtdgg}tjt|\}}t |t t |jt|j|\}}yr)rrrrr rrr)rrrr_s rtest_vqzTestVq.test_vqsh11178FF1e$ 66*"**Q-E!231rc,tjtdgtdgtdgg}tjt tt |\}}t |tt t tt |\}}yr)rrrrr rrr)rrrrs rtest_vq_matrixzTestVq.test_vq_matrixsi11178FF6!9fUm4 66*&)VE]+1rctdddf}|dd}tj||\}}|j|}|j|}t |ddt j f|ddt j f\}}t||j||jdt||j|y)NrrirFr) rrr rr rnewaxisrr)rrdatarabtatbs r test_vq_1dzTestVq.test_vq_1dsAwRavvdE"1zz$ 5!tArzzM*E!RZZ-,@ABBJJqJ9uMBJJqM*rctjddg}|jtj}t t t j||y)Nrbg@)rrastypefloat32r TypeErrorrr )rrrs rtest__vq_sametypezTestVq.test__vq_sametypes8 JJSz " HHRZZ iA.rc~tjddgt}ttt j ||y)Nrmrhr)rrintrrrr )rrs rtest__vq_invalid_typezTestVq.test__vq_invalid_types( JJ1vS )iA.rcHtjjdd}tjjdd}tj||\}}t |j ||j |\}}t||j |dt||j ||jd|jtj}|jtj}tj||\}}t |j ||j |\}}t||j ||jdt||j ||jdy)NrirrrFr) rrandomrandrr r rrrrrrfloat64rrr code_bookcodes0dis0codes1dis1s rtest_vq_large_nfeatzTestVq.test_vq_large_nfeats2 IINN2r "IINN1b) vva+  JJqM2::i0  bjj.T: 6 BPUV HHRZZ $$RZZ0 vva+  JJqM2::i0  bjjRZZj@tL 6 BPUVrctjjdddz}tjjdddz}tj||\}}t |j ||j |\}}t||j |dt||j ||jd y) N rli@BrhrrrFr) rrrrr r rrrrrs rtest_vq_large_featureszTestVq.test_vq_large_featuress IINN2q !G +IINN1a(72 vva+  JJqM2::i0  bjj.T: 6 BPUVrN)rrrrrrrrrrrrrrrrrrrrrs+ [[JL+L+ 4  [[JL,L, +/ /W. WrrceZdZdZdZej jeddZ dZ dZ ej jeddZ d Z d Zd Zd Zej"d Zeddej jej*dk(ddZdZdZdZdZej j6dZdZdZy) TestKMeansc4d}d}tjj|}tjj|}dtjj||zd|zz }dtjj||zd|zz}tj|jd|jdz|ftj }||d|jd|||jddt |j|ddy) Ni,di'i Nrrhrmseed)rrrandnemptyshaperr r) rrdnm1m2xyrs rtest_large_featureszTestKMeans.test_large_featuress   YY__Q  YY__Q  BIIOOAq) )EBJ 6 BIIOOAq) )EBJ 6xxaggaj0!4bjjA[aggajQWWQZ[ rzz$+rcHtjjd}tjtdgtdgtdgg}t |j t|j |d|d}t||j tyNi1rrmrhiterrng) rr default_rngrrr rrCODET2)rrrrcode1s rtest_kmeans_simplezTestKMeans.test_kmeans_simplesvii##E*11178rzz!}bjj&7aSI!Lrzz&12rrrctjjd}tjtdgtdgtdgg}t t tt |d|d}t|tyr) rrrrrr rrr)rrrrs rtest_kmeans_simple_matrixz$TestKMeans.test_kmeans_simple_matrixsfii##E*11178vay&-aSA!Dv&rc0|jt}|jddgddgddgg}t||t5}|j t dt ||d dddttt ||d y#1swY"xYw) Ng5g !{gL^@g͛`d?g8}g?kzKOne of the clusters is empty. Re-run kmeans with a different initializationwarn)missingraise) r TESTDATA_2Dr rfilter UserWarningr rr)rrrinitksups rtest_kmeans_lost_clusterz#TestKMeans.test_kmeans_lost_cluster szz+& Z5'4(+689 tU   1C JJ{2 3 D% 0  1 lGT5'J  1 1s %B  Bc$tjjd}|jtjt dgt dgt dgg}t r |jgntjtg}|D]}t|t ||d|d}t|t ||d|d}t||jtt||jtyNNarrmrhr) rrrrrrrrr rCODET1r)rrrrarraystprcode2s rtest_kmeans2_simplezTestKMeans.test_kmeans2_simplesii##H- 2>>AaD6AaD6AaD6*BCD!0"**rzz66J 7BBqE2e91#>qAEBqE2e91#>qAE E2::f#5 6 E2::f#5 6  7rctjjd}tjtdgtdgtdgg}t t tt |d|d}t t tt |d|d}t|tt|tyr) rrrrrr rrrr)rrrrr s rtest_kmeans2_simple_matrixz%TestKMeans.test_kmeans2_simple_matrix'sii##H-11178q 6%=qcB1Eq 6%=qcB1Ev&v&rc|jt}|dddf}|dd}t||}t||dddt||ddy)Nrrirrm)rrrhr)rrrr )rrrdata1rcodes rtest_kmeans2_rank1zTestKMeans.test_kmeans2_rank12sZzz+&QT bq u$ t!!,Q/t!$Q'rc\|jt}|dddf}t|ddy)Nrrhrmr)rrr )rrrrs rtest_kmeans2_rank1_2zTestKMeans.test_kmeans2_rank1_2=s)zz+&QT qq!rc||jt}|j|dddddf}t|dy)Nrrrrh)rrreshaper )rrrs rtest_kmeans2_high_dimz TestKMeans.test_kmeans2_high_dimBs9zz+&zz$)#2#q&1arctjjd}|jt}d}t ||d|t |dddf|d|t ||d|t |dddf|d|t 5}|jdt ||d |t |dddf|d |dddy#1swYyxYw) Nrripointsminitrrm++z%One of the clusters is empty. Re-run.)messager)rrrrrr rr)rrrrkrs rtest_kmeans2_initzTestKMeans.test_kmeans2_initIsii##H-zz+& axS1QT AX37at-QT ATs3  1=rcttt|jtdttt |jtdttt |jt|jgy)Nr)rrr rrr r1s rtest_kmeans_0kzTestKMeans.test_kmeans_0krsLj&"**Q-;j'2::a=!<j'2::a="**R.Irc|jgd|j}t|dd}t|d|jdg|jt|d|jd|jd y) N)rmrhrirjrrrmg7yAC)threshrrpg333333@rrrr r)rrrress rtest_kmeans_large_thresz"TestKMeans.test_kmeans_large_thresxsn JJ'rzzJ :Q$'A B4rzz BCA +=RZZ PQS TUrctjjd}|jddgddgg|j}t |jt dd| \}}t||y) NlC.tgC:g>g#~j?g'1: g-' @rrhrr)rrrrrr rr)rrrprev_resr8rs rtest_kmeans2_kpp_low_dimz#TestKMeans.test_kmeans2_kpp_low_dimsmii##$78:: U3 )624;=::GK0!4SIQX&rc Vtjjd}d}d}tjdtj|zdtj|zg}tj|j |dtj |||j |dtj ||g}|j|}t|d d | \}}t|j||j|j|y) NlJ V' [[DD"V,rr)2rrWcopyr threadingrnumpyr numpy.testingrrrrrscipy.cluster.vqr r r r r rr scipy.clusterrscipy.sparse._sputilsr scipy._librr(scipy._lib._array_apirrrrrrrrrVskip_xp_backendsarrayrrrrrrrrrrrrrres ? *888(- KK11;;//bhh% % J 78 K R BHHsAhAA!fq!fq!fq!f!fq!fq!fq!f./ FF#F#F#% & FE?F#F#% & 3 46939393x2UWUWUWt67#H,H,$H,r