§
    rŠtj²5  ã                   ó
  — d dl Z d dlmZ d dlZd dl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mZ d dlmZmZ d d	lmZ  ed ¦  «        Z e
¦   «         Ze                     ej        j        ¦  «        Zej        e         e_        ej        e         e_        d
„ Zd„ Zd„ Z d(d„Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z& e ej'        d¬¦  «        g¦  «        d„ ¦   «         Z(ej)         *                    dddg¦  «        d„ ¦   «         Z+ej)         *                    de¦  «        d„ ¦   «         Z,d„ Z-ej)         *                    dg d¢¦  «        ej)         *                    d dd!g¦  «        ej)         *                    d"d#d$g¦  «        d%„ ¦   «         ¦   «         ¦   «         Z.ej)         *                    dg d¢¦  «        ej)         *                    d dd!g¦  «        ej)         *                    d"d#d$g¦  «        d&„ ¦   «         ¦   «         ¦   «         Z/d'„ Z0dS ))é    N)Úsqrt)ÚmetricsÚ	neighbors)Ú	load_iris)Úroc_auc_score)Úcheck_random_state)Úassert_allcloseÚassert_array_equal)Úcheck_outlier_corruptionÚparametrize_with_checks)ÚCSR_CONTAINERSc                 óX  — t          j        ddgddgddgddgddgddgddgddgg| ¬¦  «        }t          j        d¬	¦  «        }|                     |¦  «        j        }t          |j        |¦  «         t          j        |d d…         ¦  «        t          j	        |dd …         ¦  «        k    sJ ‚t          j        d
d¬¦  «                             |¦  «        }ddgz  ddgz  z   }t          | 
                    ¦   «         |¦  «         t          |                     |¦  «        |¦  «         d S )Néþÿÿÿéÿÿÿÿé   é   é   é   éüÿÿÿ©Údtype©Ún_neighborsg      Ð?)Úcontaminationr   é   )ÚnpÚasarrayr   ÚLocalOutlierFactorÚfitÚnegative_outlier_factor_r
   Ú_fit_XÚminÚmaxÚ_predictÚfit_predict)Úglobal_dtypeÚXÚclfÚscoreÚexpected_predictionss        ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/neighbors/tests/test_lof.pyÚtest_lofr,      s7  € å
Œ
Ø
ˆbˆ�B˜�8˜b "˜X¨¨1 v°°1¨v¸¸1°vÀÀ1¸vÈÈAÀwÐOØð	ñ 	ô 	€Aõ Ô
&°1Ð
5Ñ
5Ô
5€CØ�GŠG�A‰JŒJÔ/€EÝ�s”z 1Ñ%Ô%Ð%õ Œ6�%˜˜˜”*ÑÔ¥¤ u¨R¨S¨S¤zÑ 2Ô 2Ò2Ð2Ð2Ð2õ Ô
&°TÀqÐ
IÑ
IÔ
I×
MÒ
MÈaÑ
PÔ
P€CØ ˜s™7 Q¨"¨¡XÑ-ÐÝ�s—|’|‘~”~Ð';Ñ<Ô<Ð<Ý�s—’ qÑ)Ô)Ð+?Ñ@Ô@Ð@Ð@Ð@ó    c                 ó  — t          d¦  «        }d|                     dd¦  «                             | d¬¦  «        z  }|d d…         }|                     ddd	¬
¦  «                             | d¬¦  «        }t          j        |dd …         |f         }t	          j        dgdz  dgdz  z   ¦  «        }t          j        d¬¦  «         	                    |¦  «        }| 
                    |¦  «         }t          ||¦  «        dk    sJ ‚d S )Nr   ç333333Ó?éx   F©Úcopyéd   r   é   )é   r   )ÚlowÚhighÚsizer   r5   r   T©Únoveltyg®Gáz®ï?)r   ÚrandnÚastypeÚuniformr   Úr_Úarrayr   r   r   Údecision_functionr   )	r&   Úrngr'   ÚX_trainÚ
X_outliersÚX_testÚy_testr(   Úy_preds	            r+   Útest_lof_performancerG   4   s  € å
˜QÑ
Ô
€CØˆc�iŠi˜˜QÑÔ×&Ò& |¸%Ð&Ñ@Ô@Ñ@€AØ���Œg€Gð —’ ¨!°'�Ñ:Ô:×AÒAØ˜5ð Bñ ô €Jõ ŒU�1�S�T�T”7˜JÐ&Ô'€FÝŒX�q�c˜B‘h !  r¡Ñ)Ñ*Ô*€Fõ Ô
&¨tÐ
4Ñ
4Ô
4×
8Ò
8¸Ñ
AÔ
A€Cð ×#Ò# FÑ+Ô+Ð+€Fõ ˜ Ñ(Ô(¨4Ò/Ð/Ð/Ð/Ð/Ð/r-   c                 óZ  — t          j        ddgddgddgg| ¬¦  «        }t          j        ddd¬¦  «                             |¦  «        }t          j        dd¬¦  «                             |¦  «        }dt          d¦  «        z  d	t          d¦  «        z   z  }d	t          d¦  «        z   d	d
t          d¦  «        z  z  d	ddt          d¦  «        z  z   z  z   z  }t          |j         |||g¦  «         t          |j         |||g¦  «         t          |                     ddgg¦  «         |g¦  «         t          |                     ddgg¦  «         |g¦  «         t          |                     d	d	gg¦  «         |g¦  «         t          |                     d	d	gg¦  «         |g¦  «         d S )Nr   r   r   çš™™™™™¹?T©r   r   r:   ©r   r:   ç       @g      ð?g      @)	r   r   r   r   r   r   r	   r    Úscore_samples)r&   rB   Úclf1Úclf2Ús_0Ús_1s         r+   Útest_lof_valuesrR   K   s¶  € åŒj˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÐFÑFÔF€GÝÔ'Ø S°$ðñ ô ç	‚cˆ'�l„lð 	õ Ô'°A¸tÐDÑDÔD×HÒHÈÑQÔQ€DØ
•�S‘	”	‰/˜S¥4¨¡9¤9™_Ñ
-€CØ•�a‘”‰=˜S C­$¨s©)¬)¡OÑ4°s¸cÀCÍ$ÈqÉ'Ì'ÁMÑ>QÑ7RÑRÑ
S€Cå�TÔ2Ð2°S¸#¸s°OÑDÔDÐDÝ�TÔ2Ð2°S¸#¸s°OÑDÔDÐDå�T×'Ò'¨#¨s¨¨Ñ5Ô5Ð5¸°uÑ=Ô=Ð=Ý�T×'Ò'¨#¨s¨¨Ñ5Ô5Ð5¸°uÑ=Ô=Ð=å�T×'Ò'¨#¨s¨¨Ñ5Ô5Ð5¸°uÑ=Ô=Ð=Ý�T×'Ò'¨#¨s¨¨Ñ5Ô5Ð5¸°uÑ=Ô=Ð=Ð=Ð=r-   é*   c                 óÚ  — t           j                             |¦  «        }|                     d¦  «                             | d¬¦  «        }|                     d¦  «                             | d¬¦  «        }t          j        |d¬¦  «        }t          j        ||d¬¦  «        }t          j        dd¬	¦  «        }| 	                    |¦  «         | 
                    ¦   «         }|                     |¦  «        }	t          j        dd
dd¬¦  «        }
|
 	                    |¦  «         |
 
                    ¦   «         }|
                     |¦  «        }t          ||¦  «         t          |	|¦  «         dS )z!Tests LOF with a distance matrix.)é
   r4   Fr1   )r   r4   Ú	euclidean)Úmetricr   TrK   ÚbruteÚprecomputed)r   Ú	algorithmrW   r:   N)r   ÚrandomÚRandomStateÚrandom_sampler<   r   Úpairwise_distancesr   r   r   r$   Úpredictr	   )r&   Úrandom_staterA   r'   ÚYÚDXXÚDYXÚlof_XÚpred_X_XÚpred_X_YÚlof_DÚpred_D_XÚpred_D_Ys                r+   Útest_lof_precomputedrj   _   sN  € õ Œ)×
Ò
 Ñ
-Ô
-€CØ×Ò˜'Ñ"Ô"×)Ò)¨,¸UÐ)ÑCÔC€AØ×Ò˜&Ñ!Ô!×(Ò(¨¸EÐ(ÑBÔB€AÝ
Ô
$ Q¨{Ð
;Ñ
;Ô
;€CÝ
Ô
$ Q¨°+Ð
>Ñ
>Ô
>€CåÔ(°QÀÐEÑEÔE€EØ	‡I‚Iˆa�L„L€LØ�~Š~ÑÔ€HØ�}Š}˜QÑÔ€Hõ Ô(Ø °Èðñ ô €Eð 
‡I‚Iˆc�N„N€NØ�~Š~ÑÔ€HØ�}Š}˜SÑ!Ô!€Hå�H˜hÑ'Ô'Ð'Ý�H˜hÑ'Ô'Ð'Ð'Ð'r-   c                  ó¼  — t           j        } t          j        d¬¦  «                             | ¦  «        }|j        | j        d         dz
  k    sJ ‚t          j        d¬¦  «        }d}t          j        t          t          j        |¦  «        ¬¦  «        5  |                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   |j        | j        d         dz
  k    sJ ‚d S )Néô  r   r   r   z*n_neighbors will be set to (n_samples - 1)©Úmatch)ÚirisÚdatar   r   r   Ún_neighbors_ÚshapeÚpytestÚwarnsÚUserWarningÚreÚescape)r'   r(   Úmsgs      r+   Útest_n_neighbors_attributery   y   s  € ÝŒ	€AÝ
Ô
&°3Ð
7Ñ
7Ô
7×
;Ò
;¸AÑ
>Ô
>€CØÔ˜qœw qœz¨A™~Ò-Ð-Ð-Ð-å
Ô
&°3Ð
7Ñ
7Ô
7€CØ
6€CÝ	Œ•k­¬°3©¬Ð	8Ñ	8Ô	8ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð àÔ˜qœw qœz¨A™~Ò-Ð-Ð-Ð-Ð-Ð-s   ÂB6Â6B:Â=B:c                 óD  — t          j        ddgddgddgg| ¬¦  «        }t          j        ddgg| ¬¦  «        }t          j        ddd¬¦  «                             |¦  «        }t          j        dd¬¦  «                             |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }t          |||j        z   ¦  «         t          |||j        z   ¦  «         t          ||¦  «         d S )	Nr   r   r   rL   rI   TrJ   rK   )	r   r   r   r   r   rM   r@   r	   Úoffset_)	r&   rB   rD   rN   rO   Úclf1_scoresÚclf1_decisionsÚclf2_scoresÚclf2_decisionss	            r+   Útest_score_samplesr€   …   s8  € ÝŒj˜1˜a˜& 1 a &¨1¨a¨&Ð1¸ÐFÑFÔF€GÝŒZ˜#˜s˜˜¨LÐ9Ñ9Ô9€FÝÔ'Ø S°$ðñ ô ç	‚cˆ'�l„lð 	õ Ô'°A¸tÐDÑDÔD×HÒHÈÑQÔQ€Dà×$Ò$ VÑ,Ô,€KØ×+Ò+¨FÑ3Ô3€Nà×$Ò$ VÑ,Ô,€KØ×+Ò+¨FÑ3Ô3€NåØØ˜œÑ%ñô ð õ ØØ˜œÑ%ñô ð õ �K Ñ-Ô-Ð-Ð-Ð-r-   c                  óä  — t           j        } t          j        ¦   «         }|                     | ¦  «         dD ]ž}d|› d�}d                     |¦  «        }t          j        t          |¬¦  «        5 }t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j        t          ¦  «        sJ ‚|t          |j        j        ¦  «        v sJ ‚ŒŸt          j        d¬¦  «        }d}d	}t          j        t          |¬¦  «        5 }t          |d
¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j        t          ¦  «        sJ ‚|t          |j        j        ¦  «        v sJ ‚d S )N)r_   r@   rM   z''LocalOutlierFactor' has no attribute 'ú'z&{} is not available when novelty=Falserm   Tr9   z3'LocalOutlierFactor' has no attribute 'fit_predict'z.fit_predict is not available when novelty=Truer%   )ro   rp   r   r   r   Úformatrs   ÚraisesÚAttributeErrorÚgetattrÚ
isinstanceÚvalueÚ	__cause__Ústr)r'   r(   ÚmethodÚ	outer_msgÚ	inner_msgÚ	exec_infos         r+   Útest_novelty_errorsr�   ž   sæ  € ÝŒ	€Aõ Ô
&Ñ
(Ô
(€CØ‡G‚GˆA�J„J€JàCð ;ð ;ˆØG¸fÐGÐGÐGˆ	Ø<×CÒCÀFÑKÔKˆ	ÝŒ]�>°Ð;Ñ;Ô;ð 	!¸yÝ�C˜Ñ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!õ ˜)œ/Ô3µ^ÑDÔDÐDÐDÐDØ�C 	¤Ô 9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:õ Ô
&¨tÐ
4Ñ
4Ô
4€CàE€IØ@€IÝ	Œ•~¨YÐ	7Ñ	7Ô	7ð $¸9Ý��]Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ �i”oÔ/µÑ@Ô@Ð@Ð@Ð@Ø�˜IœOÔ5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6s$   Á/BÂB	ÂB	Ä
D'Ä'D+Ä.D+c                 ó$  — t           j                             | ¦  «        }t          j        ¦   «         }|                     |¦  «         |j        }t          j        d¬¦  «        }|                     |¦  «         |j        }t          ||¦  «         d S )NTr9   )ro   rp   r<   r   r   r   r    r	   )r&   r'   Úclf_1Úscores_1Úclf_2Úscores_2s         r+   Útest_novelty_training_scoresr•   º   s‚   € õ 	Œ	×Ò˜Ñ&Ô&€Aõ Ô(Ñ*Ô*€EØ	‡I‚Iˆa�L„L€LØÔ-€Hõ Ô(°Ð6Ñ6Ô6€EØ	‡I‚Iˆa�L„L€LØÔ-€Hå�H˜hÑ'Ô'Ð'Ð'Ð'r-   c                  óä  — ddgddgddgg} t          j        d¬¦  «        }|                     | ¦  «         t          |d¦  «        sJ ‚t          |d¦  «        sJ ‚t          |d¦  «        sJ ‚t          |d¦  «        rJ ‚t          j        d	¬¦  «        }|                     | ¦  «         t          |d¦  «        sJ ‚t          |d¦  «        rJ ‚t          |d¦  «        rJ ‚t          |d¦  «        rJ ‚d S )
Nr   r   Tr9   r_   r@   rM   r%   F)r   r   r   Úhasattr)r'   r(   s     r+   Útest_hasattr_predictionr˜   Ì   s  € à
ˆQˆ�!�Q�˜!˜Q˜Ð €Aõ Ô
&¨tÐ
4Ñ
4Ô
4€CØ‡G‚GˆA�J„J€JÝ�3˜	Ñ"Ô"Ð"Ð"Ð"Ý�3Ð+Ñ,Ô,Ð,Ð,Ð,Ý�3˜Ñ(Ô(Ð(Ð(Ð(Ý�s˜MÑ*Ô*Ð*Ð*Ð*õ Ô
&¨uÐ
5Ñ
5Ô
5€CØ‡G‚GˆA�J„J€JÝ�3˜Ñ&Ô&Ð&Ð&Ð&Ý�s˜IÑ&Ô&Ð&Ð&Ð&Ý�sÐ/Ñ0Ô0Ð0Ð0Ð0Ý�s˜OÑ,Ô,Ð,Ð,Ð,Ð,Ð,r-   Tr9   c                 ó   —  || ¦  «         d S )N© )Ú	estimatorÚchecks     r+   Útest_novelty_true_common_testsr�   á   s   € ð 
€Eˆ)ÑÔÐÐÐr-   Úexpected_outliersé   é5   c                 ó   — t           j        }|j        d         }t          | ¦  «        |z  }t	          j        |¬¦  «        }|                     |¦  «        }t          j        |dk    ¦  «        }|| k    r|j	        }t          || |¦  «         d S d S )Nr   )r   r   )ro   rp   rr   Úfloatr   r   r%   r   Úsumr    r   )rž   r'   Ú	n_samplesr   r(   rF   Únum_outliersÚy_decs           r+   Útest_predicted_outlier_numberr§   è   s•   € õ 	Œ	€AØ”˜”
€IÝÐ+Ñ,Ô,¨yÑ8€Må
Ô
&°]Ð
CÑ
CÔ
C€CØ�_Š_˜QÑÔ€Få”6˜& Aš+Ñ&Ô&€LØÐ(Ò(Ð(ØÔ,ˆÝ  Ð/@À%ÑHÔHÐHÐHÐHð )Ð(r-   Úcsr_containerc                 óV  —  | t           j        ¦  «        }t          j        d¬¦  «        }|                     |¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «         t          j        d¬¦  «        }|                     |¦  «         d S )NTr9   F)	ro   rp   r   r   r   r_   rM   r@   r%   )r¨   r'   Úlofs      r+   Útest_sparser«   ù   s™   € ð
 	ˆ•d”iÑ Ô €Aå
Ô
&¨tÐ
4Ñ
4Ô
4€CØ‡G‚GˆA�J„J€JØ‡K‚K��N„N€NØ×Ò�aÑÔÐØ×Ò˜!ÑÔÐå
Ô
&¨uÐ
5Ñ
5Ô
5€CØ‡O‚O�AÑÔÐÐÐr-   c                  ór  — t          j        d¦  «        } d}t          j        t          |¬¦  «        5  t          j        d¬¦  «                             | dd…         ¦  «        }ddd¦  «         n# 1 swxY w Y   t          j        d¬¦  «                             | dd…         ¦  «        }|j        dk    sJ ‚d}t          j        t          |¬¦  «        5  | 	                    dd¬¦  «         ddd¦  «         n# 1 swxY w Y   | 	                    dd¬¦  «        \  }}|j
        d	k    sJ ‚|j
        d	k    sJ ‚d
}t          j        t          |¬¦  «        5  | 	                    | d¬¦  «         ddd¦  «         n# 1 swxY w Y   | 	                    | d¬¦  «        \  }}|j
        dk    sJ ‚|j
        dk    sJ ‚dS )zªCheck that we raise a proper error message when n_neighbors == n_samples.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/17207
    )é   r­   z[Expected n_neighbors < n_samples_fit, but n_neighbors = 1, n_samples_fit = 1, n_samples = 1rm   r   r   Nr   z[Expected n_neighbors < n_samples_fit, but n_neighbors = 2, n_samples_fit = 2, n_samples = 2)r   r   z\Expected n_neighbors <= n_samples_fit, but n_neighbors = 3, n_samples_fit = 2, n_samples = 7r   )r­   r   )r   Úonesrs   r„   Ú
ValueErrorr   r   r   Ún_samples_fit_Ú
kneighborsrr   )r'   rx   rª   Ú	distancesÚindicess        r+   Ú$test_lof_error_n_neighbors_too_larger´   
  s¦  € õ 	Œ�‰Œ€Að	+ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð Eð EÝÔ*°qÐ9Ñ9Ô9×=Ò=¸aÀÀÀ¼eÑDÔDˆðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ Ô
&°1Ð
5Ñ
5Ô
5×
9Ò
9¸!¸B¸Q¸B¼%Ñ
@Ô
@€CØÔ Ò"Ð"Ð"Ð"ð	+ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ,ð ,Ø�Š�t¨ˆÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð Ÿš¨¸!˜Ñ<Ô<Ñ€IˆwØŒ?˜fÒ$Ð$Ð$Ð$ØŒ=˜FÒ"Ð"Ð"Ð"ð	+ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð )ð )Ø�Š�q aˆÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð 	�Š�q aˆÑ(Ô(ñØØàŒ?˜fÒ$Ð$Ð$Ð$ØŒ=˜FÒ"Ð"Ð"Ð"Ð"Ð"s5   ²1A/Á/A3Á6A3ÃC8Ã8C<Ã?C<ÅE8Å8E<Å?E<rZ   )ÚautoÚ	ball_treeÚkd_treerX   r:   Fr   g      à?rµ   c                 ó<  — t           j                             | d¬¦  «        }t          j        d|||¬¦  «        }|                     |¦  «         |j        j        | k    sJ ‚dD ]8}t          ||¦  «        r& t          ||¦  «        |¦  «        }|j        | k    sJ ‚Œ9dS )zECheck that the fitted attributes are stored using the data type of X.Fr1   r   )r   rZ   r   r:   )rM   r@   N)
ro   rp   r<   r   r   r   r    r   r—   r†   )r&   rZ   r   r:   r'   Úisor‹   rF   s           r+   Ú!test_lof_input_dtype_preservationrº   6  s¿   € õ
 	Œ	×Ò˜¨EÐÑ2Ô2€Aå
Ô
&Ø ¸-ÐQXðñ ô €Cð ‡G‚GˆA�J„J€JàÔ'Ô-°Ò=Ð=Ð=Ð=à8ð 0ð 0ˆÝ�3˜ÑÔð 	0Ø)•W˜S &Ñ)Ô)¨!Ñ,Ô,ˆFØ”< <Ò/Ð/Ð/Ð/øð0ð 0r-   c                 óÚ  — t           j        dd…         }t           j        dd…         }t          j        ||gd¬¦  «                             t          j        ¦  «        }t          j        | ||¬¦  «        }|                     t          j        d¬¦  «        }|                     |¦  «         t          j        | ||¬¦  «        }|                     t          j	        d¬¦  «        }	|                     |	¦  «         t          |j        |j        ¦  «         d	D ]V}
t          ||
¦  «        rD t          ||
¦  «        |¦  «        } t          ||
¦  «        |	¦  «        }t          ||d
¬¦  «         ŒWdS )z?Check the equivalence of the results with 32 and 64 bits input.Né2   éûÿÿÿr   )Úaxis)rZ   r:   r   Tr1   )rM   r@   r_   r%   g-Cëâ6*?)Úatol)ro   rp   r   Úconcatenater<   Úfloat32r   r   r   Úfloat64r	   r    r—   r†   )rZ   r:   r   ÚinliersÚoutliersr'   Úlof_32ÚX_32Úlof_64ÚX_64r‹   Ú	y_pred_32Ú	y_pred_64s                r+   Útest_lof_dtype_equivalencerË   J  sh  € õ Œi˜˜˜Œn€GÝŒy˜˜˜Œ~€Hõ 	Œ˜ Ð*°Ð3Ñ3Ô3×:Ò:½2¼:ÑFÔF€AåÔ)Ø W¸Mðñ ô €Fð �8Š8•B”J Tˆ8Ñ*Ô*€DØ
‡J‚JˆtÑÔÐåÔ)Ø W¸Mðñ ô €Fð �8Š8•B”J Tˆ8Ñ*Ô*€DØ
‡J‚JˆtÑÔÐå�FÔ3°VÔ5TÑUÔUÐUàRð ?ð ?ˆÝ�6˜6Ñ"Ô"ð 	?Ø/� ¨Ñ/Ô/°Ñ5Ô5ˆIØ/� ¨Ñ/Ô/°Ñ5Ô5ˆIÝ˜I y°vÐ>Ñ>Ô>Ð>øð	?ð ?r-   c            
      ó  — t           j                             d¦  «        } |                      t          j        dgdz  t          j        ddd¬¦  «        |                      d¦  «        dz  g¦  «        ¦  «        }|                     d	d
¦  «        }d}t          j        dd¬¦  «        }t          j
        t          t          j        |¦  «        ¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zÝ
    Check that LocalOutlierFactor raises a warning when duplicate values
    in the training data cause inaccurate results.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27839
    r   rI   iè  r/   i¸  )Únumrl   r3   r   r   znDuplicate values are leading to incorrect results. Increase the number of neighbors for more accurate results.r   )r   r   rm   N)r   r[   Údefault_rngÚpermutationÚhstackÚlinspaceÚreshaper   r   rs   rt   ru   rv   rw   r%   )rA   Úxr'   Ú	error_msgrª   s        r+   Útest_lof_duplicate_samplesrÕ   k  s=  € õ Œ)×
Ò
 Ñ
"Ô
"€Cà�ŠÝ
Œ	à�˜‘Ý”˜C ¨$Ð/Ñ/Ô/Ø—
’
˜3‘” #Ñ%ðñ	
ô 	
ñ	ô 	€Að 	
�	Š	�"�aÑÔ€Að	Fð õ
 Ô
&°1ÀCÐ
HÑ
HÔ
H€Cõ 
Œ•k­¬°9Ñ)=Ô)=Ð	>Ñ	>Ô	>ð ð Ø�Š˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÃC7Ã7C;Ã>C;)rS   )1rv   Úmathr   Únumpyr   rs   Úsklearnr   r   Úsklearn.datasetsr   Úsklearn.metricsr   Úsklearn.utilsr   Úsklearn.utils._testingr	   r
   Úsklearn.utils.estimator_checksr   r   Úsklearn.utils.fixesr   rA   ro   rÏ   Útargetr8   Úpermrp   r,   rG   rR   rj   ry   r€   r�   r•   r˜   r   r�   ÚmarkÚparametrizer§   r«   r´   rº   rË   rÕ   rš   r-   r+   ú<module>rã      so  ðð 
€	€	€	Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø &Ð &Ð &Ð &Ð &Ð &Ø )Ð )Ð )Ð )Ð )Ð )Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .ð Ð˜ÑÔ€Ø€y�{„{€Ø
‡‚�t”{Ô'Ñ(Ô(€ØŒI�dŒO€„	ØŒk˜$Ô€„ðAð Að Að,0ð 0ð 0ð.>ð >ð >ð((ð (ð (ð (ð4	.ð 	.ð 	.ð.ð .ð .ð27ð 7ð 7ð8(ð (ð (ð$-ð -ð -ð* ÐÐ6˜)Ô6¸tÐDÑDÔDÐEÑFÔFðð ñ GÔFðð „×ÒÐ,¨r°2¨hÑ7Ô7ðIð Iñ 8Ô7ðIð  „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð )#ð )#ð )#ðX „×Ò˜Ð&OÐ&OÐ&OÑPÔPØ„×Ò˜ T¨5 MÑ2Ô2Ø„×Ò˜¨3°¨-Ñ8Ô8ð0ð 0ñ 9Ô8ñ 3Ô2ñ QÔPð0ð" „×Ò˜Ð&OÐ&OÐ&OÑPÔPØ„×Ò˜ T¨5 MÑ2Ô2Ø„×Ò˜¨3°¨-Ñ8Ô8ð?ð ?ñ 9Ô8ñ 3Ô2ñ QÔPð?ð<ð ð ð ð r-   