§
    ¥˜ºhÇ8  ã                   ó  — d Z ddlZddlZddlZddlZddlmZ ddlm	Z	 ddl
mZmZ ddlmZ ddlmZ ddlmZ dd	lmZ d
Z ee¬¦  «        Zd„ Zd„ Zd„ Zej                             dddg¦  «        d„ ¦   «         Zd„ Zej                             dddg¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d „ Z&ej                             d!g d"¢¦  «        d#„ ¦   «         Z'd$„ Z(d%„ Z)dS )&z'
Tests for DBSCAN clustering algorithm
é    N)Úsparse)Údistance)ÚDBSCANÚdbscan)Úgenerate_clustered_data)Úpairwise_distances)ÚNearestNeighbors)Úassert_array_equalé   )Ú
n_clustersc                  óð  — d} d}t          j        t          j        t          ¦  «        ¦  «        }|t	          j        |¦  «        z  }t          |d| |¬¦  «        \  }}t          t          |¦  «        ¦  «        d|v rdndz
  }|t          k    sJ ‚t          d| |¬¦  «        }|                     |¦  «        j        }t          t          |¦  «        ¦  «        t          d|v ¦  «        z
  }|t          k    sJ ‚d S )Ng333333Ã?é
   Úprecomputed©ÚmetricÚepsÚmin_sampleséÿÿÿÿé   r   )r   Ú
squareformÚpdistÚXÚnpÚmaxr   ÚlenÚsetr   r   ÚfitÚlabels_Úint)r   r   ÚDÚcore_samplesÚlabelsÚn_clusters_1ÚdbÚn_clusters_2s           úi/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/cluster/tests/test_dbscan.pyÚtest_dbscan_similarityr'      só   € ð €CØ€KåÔ�HœN­1Ñ-Ô-Ñ.Ô.€AØ�Œ�‰Œ�N€Aå!Ø	�- S°kðñ ô Ñ€L�&õ •s˜6‘{”{Ñ#Ô#¨B°&¨L¨L q q¸aÑ@€Là�:Ò%Ð%Ð%Ð%å	�}¨#¸;Ð	GÑ	GÔ	G€BØ�VŠV�A‰YŒYÔ€Få•s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%Ð%Ð%ó    c                  ó–  — d} d}d}t          t          || |¬¦  «        \  }}t          t          |¦  «        ¦  «        t	          d|v ¦  «        z
  }|t
          k    sJ ‚t          || |¬¦  «        }|                     t          ¦  «        j        }t          t          |¦  «        ¦  «        t	          d|v ¦  «        z
  }|t
          k    sJ ‚d S )Nçš™™™™™é?r   Ú	euclideanr   r   )	r   r   r   r   r   r   r   r   r   ©r   r   r   r!   r"   r#   r$   r%   s           r&   Útest_dbscan_featurer-   /   sÈ   € ð €CØ€KØ€Fõ "¥!¨F¸ÈÐUÑUÔUÑ€L�&õ •s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%å	�v 3°KÐ	@Ñ	@Ô	@€BØ�VŠV•A‰YŒYÔ€Få•s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%Ð%Ð%r(   c                  óÒ   — t          t          j        t          ¦  «        dd¬¦  «        \  } }t          t          dd¬¦  «        \  }}t	          || ¦  «         t	          ||¦  «         d S )Nr*   r   ©r   r   )r   r   Ú
lil_matrixr   r
   )Úcore_sparseÚlabels_sparseÚ
core_denseÚlabels_denses       r&   Útest_dbscan_sparser5   E   sf   € Ý!'­Ô(9½!Ñ(<Ô(<À#ÐSUÐ!VÑ!VÔ!VÑ€K�Ý%¥a¨S¸bÐAÑAÔAÑ€J�Ý�z ;Ñ/Ô/Ð/Ý�| ]Ñ3Ô3Ð3Ð3Ð3r(   Úinclude_selfFTc                 ó¬  — t          t          ¦  «        }t          d¬¦  «                             t          ¦  «        }| rt          nd }|                     |d¬¦  «        }|j        |j        d         |j        d         dz
  z  k     sJ ‚t          |ddd	¬
¦  «        \  }}t          |ddd	¬
¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )NgÍÌÌÌÌÌì?©Úradiusr   )r   Úmoder   r   r*   r   r   )r   r   r   )	r   r   r	   r   Úradius_neighbors_graphÚnnzÚshaper   r
   )	r6   r    ÚnnÚX_ÚD_sparser1   r2   r3   r4   s	            r&   Útest_dbscan_sparse_precomputedrA   L   sà   € å�1ÑÔ€AÝ	 Ð	%Ñ	%Ô	%×	)Ò	)­!Ñ	,Ô	,€BØÐ	$�ˆ €BØ×(Ò(¨2°JÐ(Ñ?Ô?€HàŒ<˜!œ' !œ*¨¬°¬
°Q©Ñ7Ò7Ð7Ð7Ð7Ý!'Ø�c r°-ð"ñ "ô "Ñ€K�õ  & a¨S¸bÈÐWÑWÔWÑ€J�Ý�z ;Ñ/Ô/Ð/Ý�| ]Ñ3Ô3Ð3Ð3Ð3r(   c                  óÜ  — d} t          | ¬¦  «                             t          ¦  «        }|                     t          d¬¦  «        }t	          || d¬¦  «        }| dz   }t          |¬¦  «                             t          ¦  «        }|                     t          d¬¦  «        }t	          || d¬¦  «        }t          |d         |d         ¦  «         t          |d	         |d	         ¦  «         d S )
Nçš™™™™™É?r8   r   )r:   r   ©r   r   gffffffæ?r   r   )r	   r   r   r;   r   r
   )Ú	lower_epsr>   r@   Údbscan_lowerÚ
higher_epsÚdbscan_highers         r&   Ú,test_dbscan_sparse_precomputed_different_epsrI   \   sÞ   € ð €IÝ	 Ð	+Ñ	+Ô	+×	/Ò	/µÑ	2Ô	2€BØ×(Ò(­°Ð(Ñ<Ô<€HÝ˜(¨	¸-ÐHÑHÔH€Là˜S‘€JÝ	 Ð	,Ñ	,Ô	,×	0Ò	0µÑ	3Ô	3€BØ×(Ò(­°Ð(Ñ<Ô<€HÝ˜8¨¸=ÐIÑIÔI€Må�| A”¨°aÔ(8Ñ9Ô9Ð9Ý�| A”¨°aÔ(8Ñ9Ô9Ð9Ð9Ð9r(   Ú
use_sparser   r   Ú	minkowskic                 óv  — t           j                             d¦  «                             dd¦  «        }| rt	          j        |¦  «        n|}|                     ¦   «         }t          ||¬¦  «         | r6t          | 	                    ¦   «         | 	                    ¦   «         ¦  «         d S t          ||¦  «         d S )Nr   r   )r   )
r   ÚrandomÚRandomStateÚrandr   Ú
csr_matrixÚcopyr   r
   Útoarray)rJ   r   r   ÚX_copys       r&   Útest_dbscan_input_not_modifiedrT   m   s©   € õ 	Œ	×Ò˜aÑ Ô ×%Ò% b¨"Ñ-Ô-€AØ *Ð1�Ô˜!ÑÔÐ°€AØ�VŠV‰XŒX€FÝ
ˆ1�VÐÑÔÐàð &Ý˜1Ÿ9š9™;œ;¨¯ªÑ(8Ô(8Ñ9Ô9Ð9Ð9Ð9å˜1˜fÑ%Ô%Ð%Ð%Ð%r(   c            	      ó°  — t           j                             d¦  «        } |                      dd¦  «        }d||dk     <   |t	          j        |¦  «        fD ]€}t          d¬¦  «                             |¦  «        }t          |j	        t          j
        d|j        d         f¦  «        ¦  «         t          |j        d¦  «         |j        j        d	k    sJ ‚Œ�d S )
Nr   é(   r   r*   é   )r   r   r   )r   )r   rM   rN   rO   r   rP   r   r   r
   Úcomponents_Úemptyr=   r   Úcore_sample_indices_)Úrngr   r?   r$   s       r&   Útest_dbscan_no_core_samplesr\   |   sÑ   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��RÑÔ€AØ€A€aˆ#‚g�Jà•&Ô# AÑ&Ô&Ð'ð 5ð 5ˆÝ Ð"Ñ"Ô"×&Ò& rÑ*Ô*ˆÝ˜2œ>­2¬8°Q¸¼À¼Ð4DÑ+EÔ+EÑFÔFÐFÝ˜2œ: rÑ*Ô*Ð*ØÔ&Ô,°Ò4Ð4Ð4Ð4Ð4ð	5ð 5r(   c                  ó®  — d} d}t           j        }t          t          || |d¬¦  «        \  }}t	          t          |¦  «        ¦  «        t          d|v ¦  «        z
  }|t          k    sJ ‚t          || |d¬¦  «        }| 	                    t          ¦  «        j
        }t	          t          |¦  «        ¦  «        t          d|v ¦  «        z
  }|t          k    sJ ‚d S )Nr*   r   Ú	ball_tree©r   r   r   Ú	algorithmr   )r   r+   r   r   r   r   r   r   r   r   r   r,   s           r&   Útest_dbscan_callablera   ˆ   sÖ   € ð €CØ€KåÔ€Fõ "Ý	�&˜c¨{Àkðñ ô Ñ€L�&õ
 •s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%å	�v 3°KÈ;Ð	WÑ	WÔ	W€BØ�VŠV•A‰YŒYÔ€Få•s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%Ð%Ð%r(   c            	      ó   — d} d}d}t          j        d¬¦  «        5 }t          dd|i| d |d¬	¦  «                             t          ¦  «        }d d d ¦  «         n# 1 swxY w Y   |rJ |d
         j        ¦   «         ‚|j        |j        }}t          d| |d|¬¦  «                             t          ¦  «        }|j        |j        }}t          ||¦  «         t          ||¦  «         t          d| |d¬¦  «                             t          ¦  «        }|j        |j        }
}	t          ||	¦  «         t          ||
¦  «         t          j
        t          d¬¦  «        5  t          dd|i| |dz   |d¬	¦  «                             t          ¦  «        }|j        |j        }}d d d ¦  «         n# 1 swxY w Y   t          ||¦  «         t          ||¦  «         d S )Nr*   r   r   T)ÚrecordrK   Úpr^   )r   Úmetric_paramsr   rd   r   r`   r   )r   r   r   r`   rd   Ú	manhattanr_   z\Parameter p is found in metric_params. The corresponding parameter from __init__ is ignored.)Úmatch)ÚwarningsÚcatch_warningsr   r   r   ÚmessagerZ   r   r
   ÚpytestÚwarnsÚSyntaxWarning)r   r   rd   rl   r$   Úcore_sample_1Úlabels_1Úcore_sample_2Úlabels_2Úcore_sample_3Úlabels_3Úcore_sample_4Úlabels_4s                r&   Útest_dbscan_metric_paramsrv   ¡   s˜  € à
€CØ€KØ	€Aõ 
Ô	 ¨Ð	-Ñ	-Ô	-ð °ÝØØ ˜(ØØØ#Ø!ð
ñ 
ô 
÷ Š#�a‰&Œ&ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ð&Ð&�e˜A”hÔ&Ñ&Ô&Ð&Ø Ô5°r´z�8€Mõ 
Ø °ÈÐWXð
ñ 
ô 
ç	‚c�!�f„fð ð !Ô5°r´z�8€Må�} mÑ4Ô4Ð4Ý�x Ñ*Ô*Ð*õ 
Ø °Èð
ñ 
ô 
ç	‚c�!�f„fð ð !Ô5°r´z�8€Må�} mÑ4Ô4Ð4Ý�x Ñ*Ô*Ð*å	ŒÝðð
ñ 
ô 
ð Fð Fõ ØØ ˜(ØØ�!‰eØ#Ø!ð
ñ 
ô 
÷ Š#�a‰&Œ&ð 	ð #%Ô"9¸2¼:�xˆð#Fð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ& �} mÑ4Ô4Ð4Ý�x Ñ*Ô*Ð*Ð*Ð*s$   œ0AÁAÁAÅAF#Æ#F'Æ*F'c                  ó@  — d} d}t          t          ¦  «        }t          |d| |¬¦  «        \  }}t          t	          |¦  «        ¦  «        t          d|v ¦  «        z
  }|t          k    sJ ‚t          d| |d¬¦  «        }|                     t          ¦  «        j	        }t          t	          |¦  «        ¦  «        t          d|v ¦  «        z
  }|t          k    sJ ‚t          d| |d	¬¦  «        }|                     t          ¦  «        j	        }t          t	          |¦  «        ¦  «        t          d|v ¦  «        z
  }|t          k    sJ ‚t          d
| |d¬¦  «        }|                     t          ¦  «        j	        }t          t	          |¦  «        ¦  «        t          d|v ¦  «        z
  }	|	t          k    sJ ‚t          d| |d¬¦  «        }|                     t          ¦  «        j	        }t          t	          |¦  «        ¦  «        t          d|v ¦  «        z
  }
|
t          k    sJ ‚d S )Nr*   r   r   r   r   ç       @r^   )rd   r   r   r`   Úkd_treeç      ð?é   )Ú	leaf_sizer   r   r`   )
r   r   r   r   r   r   r   r   r   r   )r   r   r    r!   r"   r#   r$   r%   Ún_clusters_3Ún_clusters_4Ún_clusters_5s              r&   Útest_dbscan_balltreer€   Þ   sì  € à
€CØ€Kå�1ÑÔ€AÝ!Ø	�- S°kðñ ô Ñ€L�&õ
 •s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%å	�#˜3¨KÀ;Ð	OÑ	OÔ	O€BØ�VŠV•A‰YŒYÔ€Få•s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%å	�#˜3¨KÀ9Ð	MÑ	MÔ	M€BØ�VŠV•A‰YŒYÔ€Få•s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%å	�#˜3¨KÀ;Ð	OÑ	OÔ	O€BØ�VŠV•A‰YŒYÔ€Få•s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%å	˜" #°;È+Ð	VÑ	VÔ	V€BØ�VŠV•A‰YŒYÔ€Få•s˜6‘{”{Ñ#Ô#¥c¨"°¨,Ñ&7Ô&7Ñ7€LØ�:Ò%Ð%Ð%Ð%Ð%Ð%r(   c                  óX   — ddgddgg} t          ¦   «                              | ¦  «         d S )Nrz   rx   g      @g      @)r   r   )r   s    r&   Útest_input_validationr‚     s+   € à
ˆsˆ�c˜3�ZÐ €AÝ
�H„H‡L‚L��O„O€O€O€Or(   c                  ó¢   — t          ¦   «         } t          j        | ¦  «        }t          t          j        |¦  «        ¦  «        | j        k    sJ ‚d S )N)r   ÚpickleÚdumpsÚtypeÚloadsÚ	__class__)ÚobjÚss     r&   Útest_pickler‹     sC   € Ý
‰(Œ(€CÝŒ�SÑÔ€AÝ•”˜Q‘”Ñ Ô  C¤MÒ1Ð1Ð1Ð1Ð1Ð1r(   c                  óÈ   — t          dgdggdd¬¦  «        \  } }d| v sJ ‚t          dgdgdggdd¬¦  «        \  } }d| v sJ ‚t          dgdgdggdd¬¦  «        \  } }d| vsJ ‚d S )Nr   r   é   r/   g®Gáz®ï?)r   )ÚcoreÚ_s     r&   Útest_boundariesr�     s•   € å�q�c˜A˜3�Z Q°AÐ6Ñ6Ô6�G€Dˆ!Ø�ˆ9ˆ9ˆ9ˆ9å�q�c˜A˜3  �_¨!¸Ð;Ñ;Ô;�G€Dˆ!Ø�ˆ9ˆ9ˆ9ˆ9Ý�q�c˜A˜3  �_¨$¸AÐ>Ñ>Ô>�G€Dˆ!Ø�Dˆ=ˆ=ˆ=ˆ=ˆ=ˆ=r(   c           	      óÂ  — t          j        t          ¦  «        5  t          dgdggdg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          dgdggg d¢¬¦  «         d d d ¦  «         n# 1 swxY w Y   t	          g t          dgdggd d¬¦  «        d         ¦  «         t	          g t          dgdggddgd¬¦  «        d         ¦  «         t	          dgt          dgdggddgd¬¦  «        d         ¦  «         t	          ddgt          dgdggddgd¬¦  «        d         ¦  «         t	          ddgt          dgdggd	ddgd¬
¦  «        d         ¦  «         t	          g t          dgdggddgd	d¬¦  «        d         ¦  «         t	          ddgt          dgdggddgd	d¬¦  «        d         ¦  «         t	          ddgt          dgdggddgd	d¬¦  «        d         ¦  «         t	          g t          dgdggddgd	d¬¦  «        d         ¦  «         t
          j                             | ¦  «        }|                     ddt          j
        d         ¦  «        }t          t          |¬¦  «        \  }}t          |¦  «        t          t          ¦  «        k    sJ ‚t          j        t          |d¬¦  «        }t          |¦  «        \  }}t          j        |j
        d         t          ¬¦  «        }d||<   t          j        t          j
        d         t          ¬¦  «        }	d|	|<   t	          t          j        |	|¦  «        |¦  «         t          t          ¦  «        }
t          |
|d¬¦  «        \  }}t	          ||¦  «         t	          ||¦  «         t!          ¦   «                              t          |¬¦  «        }|j        }|j        }t	          ||¦  «         t	          ||¦  «         t!          ¦   «         }|                     t          |¬¦  «        }|j        }t	          ||¦  «         t	          ||¦  «         t	          ||j        ¦  «         d S )Nr   r   r�   )Úsample_weight)r�   r   é   rW   )r’   r   é   g      ø?)r   r’   r   )r’   r   r   gš™™™™™@çš™™™™™¹?r   )Úaxis)ÚdtypeTr   )r’   r   )rk   ÚraisesÚ
ValueErrorr   r
   r   rM   rN   Úrandintr   r=   r   ÚrepeatÚzerosÚboolr   r   r   rZ   r   Úfit_predict)Úglobal_random_seedr[   r’   Úcore1Úlabel1Ú
X_repeatedÚcore_repeatedÚlabel_repeatedÚcore_repeated_maskÚ	core_maskr    Úcore3Úlabel3ÚestÚcore4Úlabel4Úlabel5Úcore5s                     r&   Útest_weighted_dbscanr®     sõ  € å	Œ•zÑ	"Ô	"ð .ð .Ý���a�Sˆz¨!¨Ð-Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .å	Œ•zÑ	"Ô	"ð 4ð 4Ý���a�Sˆz¨¨¨Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ �r�6 A 3¨¨ *¸DÈaÐPÑPÔPÐQRÔSÑTÔTÐTÝ�r�6 A 3¨¨ *¸QÀ¸FÐPQÐRÑRÔRÐSTÔUÑVÔVÐVÝ˜�s�F Q C¨!¨ :¸aÀ¸VÐQRÐSÑSÔSÐTUÔVÑWÔWÐWÝØ	
ˆAˆ•˜˜˜a˜S�z°!°Q°ÀQÐGÑGÔGÈÔJñô ð õ
 Ø	
ˆAˆ•˜˜˜a˜S�z s¸1¸a¸&ÈaÐPÑPÔPÐQRÔSñô ð õ Ø
�F�Q�C˜!˜�:¨a°¨V¸È!ÐLÑLÔLÈQÔOñô ð õ Ø	
ˆAˆ•˜˜˜a˜S�z°#°s°ÀÐRSÐTÑTÔTÐUVÔWñô ð õ Ø	
ˆAˆ•˜˜˜a˜S�z°!°Q°¸SÈaÐPÑPÔPÐQRÔSñô ð õ Ø
�F�Q�C˜!˜�:¨a°¨W¸#È1ÐMÑMÔMÈaÔPñô ð õ
 Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ—K’K  1¥a¤g¨a¤jÑ1Ô1€MÝ�1¨MÐ:Ñ:Ô:�M€Eˆ6Ýˆv‰;Œ;�#�a™&œ&Ò Ð Ð Ð å”�1˜m°!Ð4Ñ4Ô4€JÝ$*¨:Ñ$6Ô$6Ñ!€M�>Ýœ *Ô"2°1Ô"5½TÐBÑBÔBÐØ(,Ð�}Ñ%Ý”�œ œ­4Ð0Ñ0Ô0€IØ€IˆeÑÝ•r”y ¨MÑ:Ô:Ð<NÑOÔOÐOõ 	�1ÑÔ€AÝ˜1¨MÀ-ÐPÑPÔP�M€Eˆ6Ý�u˜eÑ$Ô$Ð$Ý�v˜vÑ&Ô&Ð&õ ‰(Œ(�,Š,•q¨ˆ,Ñ
6Ô
6€CØÔ$€EØŒ[€FÝ�u˜eÑ$Ô$Ð$Ý�v˜vÑ&Ô&Ð&å
‰(Œ(€CØ�_Š_�Q¨mˆ_Ñ<Ô<€FØÔ$€EÝ�u˜eÑ$Ô$Ð$Ý�v˜vÑ&Ô&Ð&Ý�v˜sœ{Ñ+Ô+Ð+Ð+Ð+s!   š=½AÁAÁ!BÂB	ÂB	r`   )Úbrutery   r^   c                 óP  — dgdgdgdgdgdgdgg}t          |¦  «        }t          || dd¬	¦  «        \  }}t          |t          j        |¦  «        ¦  «         t          |g d
¢¦  «         t          || dd¬	¦  «        \  }}t          |g d¢¦  «         t          |g d¢¦  «         t          || dd¬	¦  «        \  }}t          |dg¦  «         t          |g d¢¦  «         t          || dd¬	¦  «        \  }}t          |g ¦  «         t          |t          j        |d¦  «        ¦  «         d S )Nr   r�   r   r“   rW   é   r   r   )r`   r   r   )r   r   r   r   r�   r   r“   )r   r�   r   )r   r   r   r   r   r   r   g      ð¿)r   r   r
   r   ÚarangeÚfull)r`   r   Ú	n_samplesr!   r"   s        r&   Útest_dbscan_core_samples_toyrµ   `  sZ  € à
ˆˆqˆc�A�3˜˜˜a˜S 1 #¨ tÐ,€AÝ�A‘”€Iõ " !¨y¸aÈQÐOÑOÔOÑ€L�&Ý�|¥R¤Y¨yÑ%9Ô%9Ñ:Ô:Ð:Ý�vÐ4Ð4Ð4Ñ5Ô5Ð5õ " !¨y¸aÈQÐOÑOÔOÑ€L�&Ý�| Y Y YÑ/Ô/Ð/Ý�vÐ8Ð8Ð8Ñ9Ô9Ð9õ " !¨y¸aÈQÐOÑOÔOÑ€L�&Ý�| a SÑ)Ô)Ð)Ý�vÐ8Ð8Ð8Ñ9Ô9Ð9õ " !¨y¸aÈQÐOÑOÔOÑ€L�&Ý�| RÑ(Ô(Ð(Ý�v�rœw y°$Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8r(   c                  ó‚  — t          j        d¦  «        } t          dd¬¦  «                             | ¦  «        j        }t          t          |¦  «        ¦  «        dk    sJ ‚t          j        d¦  «        } t          dd¬¦  «                             | ¦  «        j        }t          t          |¦  «        ¦  «        dk    sJ ‚d S )Nr   g      à?r   rD   r   )r   r   )r   Úeyer   r   r   r   r   rœ   )r   r"   s     r&   Ú;test_dbscan_precomputed_metric_with_degenerate_input_arraysr¸   ~  sª   € õ 	Œˆr‰
Œ
€AÝ˜ MÐ2Ñ2Ô2×6Ò6°qÑ9Ô9ÔA€FÝ�s�6‰{Œ{ÑÔ˜qÒ Ð Ð Ð å
Œ�ÑÔ€AÝ˜ MÐ2Ñ2Ô2×6Ò6°qÑ9Ô9ÔA€FÝ�s�6‰{Œ{ÑÔ˜qÒ Ð Ð Ð Ð Ð r(   c            
      óø   — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        | ¦  «        }t	          ddd¬	¦  «                             |¦  «        j        }t          |g d
¢¦  «         d S )N)ç        rº   rº   rº   rº   rº   rº   )rº   rº   rº   rº   r•   rº   rº   )rº   rº   r•   r•   rº   rº   ç333333Ó?)rº   rº   rº   rº   rº   rº   r•   )rº   rº   rº   rº   r»   r•   rº   rC   r   r�   )r   r   r   )r   r   r   r   r   r   r   )r   Úarrayr   rP   r   r   r   r
   )ÚarÚmatrixr"   s      r&   Ú5test_dbscan_precomputed_metric_with_initial_rows_zeror¿   Š  s«   € å	Œà/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/Ø/Ð/Ð/ð	
ñ

ô 

€Bõ Ô˜rÑ"Ô"€FÝ˜ M¸qÐAÑAÔA×EÒEÀfÑMÔMÔU€FÝ�vÐ6Ð6Ð6Ñ7Ô7Ð7Ð7Ð7r(   )*Ú__doc__r„   rh   Únumpyr   rk   Úscipyr   Úscipy.spatialr   Úsklearn.clusterr   r   Úsklearn.cluster.tests.commonr   Úsklearn.metrics.pairwiser   Úsklearn.neighborsr	   Úsklearn.utils._testingr
   r   r   r'   r-   r5   ÚmarkÚparametrizerA   rI   rT   r\   ra   rv   r€   r‚   r‹   r�   r®   rµ   r¸   r¿   © r(   r&   ú<module>rÌ      ss  ððð ð €€€Ø €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø @Ð @Ð @Ð @Ð @Ð @Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø .Ð .Ð .Ð .Ð .Ð .Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5à€
ØÐ zÐ2Ñ2Ô2€ð&ð &ð &ð0&ð &ð &ð,4ð 4ð 4ð „×Ò˜¨%°¨Ñ7Ô7ð4ð 4ñ 8Ô7ð4ð:ð :ð :ð" „×Ò˜¨¨e }Ñ5Ô5Ø„×Ò˜ M°;Ð#?Ñ@Ô@ð
&ð 
&ñ AÔ@ñ 6Ô5ð
&ð	5ð 	5ð 	5ð&ð &ð &ð2:+ð :+ð :+ðz$&ð $&ð $&ðNð ð ð2ð 2ð 2ðð ð ðA,ð A,ð A,ðH „×Ò˜Ð&GÐ&GÐ&GÑHÔHð9ð 9ñ IÔHð9ð:	!ð 	!ð 	!ð8ð 8ð 8ð 8ð 8r(   