`L iX= dZddlZddlZddlZddlZddlmZddlm Z m Z ddl m Z ddl mZddlmZddlmZdd lmZmZd Ze e Zd Zd Zej4j7dedZej4j7dddgdZdZej4j7dddgej4j7dedgzdZej4j7dedZ ej4j7dedZ!dZ"dZ#dZ$dZ%d Z&d!Z'd"Z(ej4j7d#gd$d%Z)d&Z*ej4j7ded'Z+y)(z' Tests for DBSCAN clustering algorithm N)distance)DBSCANdbscan)generate_clustered_data)pairwise_distances)NearestNeighbors)assert_array_equal)CSR_CONTAINERSLIL_CONTAINERS) n_clusterscd}d}tjtjt}|t j |z}t |d||\}}tt|d|vrdndz }|tk(sJtd||}|j|j}tt|td|vz }|tk(sJy)Ng333333? precomputedmetriceps min_samplesr)r squareformpdistXnpmaxrlensetr rfitlabels_int)rrD core_sampleslabels n_clusters_1db n_clusters_2s g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/cluster/tests/test_dbscan.pytest_dbscan_similarityr(s CKHNN1-.ANA! -SkL&s6{#B&Lqa@L : %% % }#; GB VVAY  Fs6{#c",&77L : %% %cJd}d}d}tt|||\}}tt|t d|vz }|t k(sJt |||}|jtj}tt|t d|vz }|t k(sJy)N皙?r euclideanrr) rrrrr r rrrrrrr"r#r$r%r&s r'test_dbscan_featurer./s CK F"!FUL&s6{#c",&77L : %% % v3K @B VVAY  Fs6{#c",&77L : %% %r) lil_containerct|tdd\}}ttdd\}}t||t||y)Nr+rrr)rrr )r/ core_sparse labels_sparse core_dense labels_denses r'test_dbscan_sparser6EsA!' a(8cr!RK%aSbAJ z;/|]3r) include_selfFTcttt}tdjt}|rtnd}|j |d}|j |j d|j ddz zksJt|ddd \}}t|ddd \}}t||t||y) Ng?radiusr)rmoderrr+rr)rrr) rrrrradius_neighbors_graphnnzshaperr ) r7r!nnX_D_sparser2r3r4r5s r'test_dbscan_sparse_precomputedrBMs1A  % ) )! ,BB((2J(?H <zKtest_dbscan_input_not_modified_precomputed_sparse_nodiag..srcore_sample_indices_)rLrngrr@r%s r'test_dbscan_no_core_samplesrjs ))   "C RAAa#gJ-"#5  " & &r *2>>288Q 4D+EF2::r*&&,,444 5r)cjd}d}tj}tt|||d\}}t t |t d|vz }|tk(sJt|||d}|jtj}t t |t d|vz }|tk(sJy)Nr+r ball_treerrr algorithmr) rr,rrrrr r rrrr-s r'test_dbscan_callableros CK   F" &c{kL& s6{#c",&77L : %% % v3K; WB VVAY  Fs6{#c",&77L : %% %r)c ld}d}d}tjd5}tdd|i|d|d jt}dddrJ|d j j |j}}td||d| jt}|j |j}}t||t||td ||d jt}|j |j} } t|| t|| tjtd5tdd|i||dz|d jt}|j |j} } dddt| t| y#1swY[xYw#1swY/xYw)Nr+rrT)recordrKprl)r metric_paramsrrrrrnr)rrrrnrr manhattanrmz\Parameter p is found in metric_params. The corresponding parameter from __init__ is ignored.)match) warningscatch_warningsrrrmessagerhrr pytestwarns SyntaxWarning) rrrrrzr% core_sample_1labels_1 core_sample_2labels_2 core_sample_3labels_3 core_sample_4labels_4s r'test_dbscan_metric_paramsrs CK A   - (#!   #a& &eAh&&&9 55rzz8M  WX  c!f!55rzz8M}m4x*    c!f!55rzz8M}m4x*   F(!e#!   #a& #%"9"92::x #F&}m4x*e<FFs'F:AF*F'*F3cd}d}tt}t|d||\}}tt |t d|vz }|t k(sJtd||d}|jtj}tt |t d|vz }|t k(sJtd||d }|jtj}tt |t d|vz }|t k(sJtd ||d}|jtj}tt |t d|vz } | t k(sJtd ||d }|jtj}tt |t d|vz } | t k(sJy) Nr+rrrr@rl)rrrrrnkd_tree?) leaf_sizerrrn) rrrrrr r rrr) rrr!r"r#r$r%r& n_clusters_3 n_clusters_4 n_clusters_5s r'test_dbscan_balltreers CK1A! -SkL& s6{#c",&77L : %% % #3K; OB VVAY  Fs6{#c",&77L : %% % #3K9 MB VVAY  Fs6{#c",&77L : %% % #3K; OB VVAY  Fs6{#c",&77L : %% % "#;+ VB VVAY  Fs6{#c",&77L : %% %r)cFddgddgg}tj|y)Nrrg@g@)rr)rs r'test_input_validationrs! sc3Z A HLLOr)ct}tj|}ttj||j usJyrX)rpickledumpstypeloads __class__)objss r' test_pickler#s6 (C SA  Q CMM 11 1r)ctdgdggdd\}}d|vsJtdgdgdggdd\}}d|vsJtdgdgdggdd\}}d|vsJy)Nrrr1gGz?)r)core_s r'test_boundariesr)s|qcA3ZQA6GD! 99qcA3_!;GD! 99qcA3_$A>GD! D==r)c ptjt5tdgdggdgdddtjt5tdgdgggddddt gtdgdggdddt gtdgdggddgddt dgtdgdggddgddt ddgtdgdggddgddt ddgtdgdggd ddgd dt gtdgdggddgd d dt ddgtdgdggd d gd d dt ddgtdgdggddgd d dt gtdgdggddgd d dt j j|}|jddtjd}tt|\}}t|ttk(sJt jt|d}t|\}}t j|jdt}d||<t jtjdt} d| |<t t j| ||tt} t| |d\} } t || t || t!j#t|} | j$}| j&}t ||t ||t!} | j)t|}| j$}t ||t ||t || j&y#1swYsxYw#1swYKxYw)Nrrr) sample_weight)rr re)rrg?)rrr)rrrg@皙?r)axis)dtypeTr)rr)ryraises ValueErrorrr rrOrPrandintrr>rrepeatzerosboolrrrrhr fit_predict)global_random_seedrircore1label1 X_repeated core_repeatedlabel_repeatedcore_repeated_mask core_maskr!core3label3estcore4label4label5core5s r'test_weighted_dbscanr4s{ z ".aSz!-. z "4aSz34r6A3*DaPQRSTr6A3*QFPQRSTUVsFQC!:aVQRSTUVW AaSz!QQGJ  AaSzs1a&aPQRS FQC!:aV! LQ O AaSz#sRSTUVW AaSz!QSaPQRS FQC!:aW#1 Ma P ))   2 3CKK1aggaj1M1M:ME6 v;#a&  1m!4J$*:$6!M>*"2"21"5TB(,}%40IIeryyM:rs "*@7.5>  z2&0&,.94:4%7 48 4:"M;#?@.D6*AB &CA &.96:6*.9 5: 5&2:+z$&N 2 A,H&GH9I9: !.98:8r)