§
    ¨éUgð  ã                   óÎ   — d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZ  ej        ¦   «         j        Zedd…d f         Zej        \  ZZd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ ZdS )é    N)Údatasets)Ú	MinCovDetÚempirical_covarianceÚfast_mcd)Úassert_array_almost_equalc           	      ó  — t          dddddd| ¦  «         t          dddddd	| ¦  «         t          ddd
ddd| ¦  «         t          dddddd| ¦  «         t          dddddd| ¦  «         t          dddddd| ¦  «         d S )Néd   é   r   g{®Gáz”?çš™™™™™¹?éK   é   ç333333Ó?éA   é(   é2   iè  iÂ  i  i¤  i   if  iô  é   i^  )Úlaunch_mcd_on_dataset)Úglobal_random_seeds    ún/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/covariance/tests/test_robust_covariance.pyÚtest_mcdr      s²   € õ ˜#˜q ! T¨3°Ð4FÑGÔGÐGå˜#˜q " c¨3°Ð4FÑGÔGÐGå˜#˜q " c¨3°Ð4FÑGÔGÐGõ ˜$  3¨¨S°#Ð7IÑJÔJÐJõ ˜$  3¨¨S°#Ð7IÑJÔJÐJõ ˜#˜q # t¨T°3Ð8JÑKÔKÐKÐKÐKó    c                  ó¸   — t          j        d¦  «        } d}t          j        t          |¬¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr	   z'Expected 2D array, got 1D array instead©Úmatch)ÚnpÚarangeÚpytestÚraisesÚ
ValueErrorr   )ÚXÚmsgs     r   Útest_fast_mcd_on_invalid_inputr#   )   s˜   € Ý
Œ	�#‰Œ€AØ
3€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ý�‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ²AÁAÁAc                  óà   — t          j        d¦  «        } t          ¦   «         }d}t          j        t
          |¬¦  «        5  |                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )r   r   r   r   r   r    Úfit)r!   Úmcdr"   s      r   Útest_mcd_class_on_invalid_inputr'   0   s¥   € Ý
Œ	�#‰Œ€AÝ
‰+Œ+€CØ
3€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á A#Á#A'Á*A'c                 ó6  — t           j                             |¦  «        }|                     | |¦  «        }|                     | ¦  «        d |…         }	d|                     d||f¬¦  «        dz
  z  }
||	xx         |
z  cc<   t          j        | ¦  «                             t          ¦  «        }d||	<   ||         }t          |¬¦  «         
                    |¦  «        }|j        }|j        }|j        }t          j        |                     d¦  «        |z
  dz  ¦  «        }||k     sJ ‚t          j        t          |¦  «        |z
  dz  ¦  «        }||k     sJ ‚t          j        |¦  «        |k    sJ ‚t#          |                     |¦  «        |j        ¦  «         d S )Ng      $@é   ©Úsizeç      à?F©Úrandom_stater   )r   ÚrandomÚRandomStateÚrandnÚpermutationÚrandintÚonesÚastypeÚboolr   r%   Ú	location_Úcovariance_Úsupport_Úmeanr   Úsumr   ÚmahalanobisÚdist_)Ú	n_samplesÚ
n_featuresÚ
n_outliersÚtol_locÚtol_covÚtol_supportÚseedÚrand_genÚdataÚoutliers_indexÚoutliers_offsetÚinliers_maskÚ	pure_dataÚmcd_fitÚTÚSÚHÚerror_locationÚ	error_covs                      r   r   r   8   s›  € õ Œy×$Ò$ TÑ*Ô*€HØ�>Š>˜) ZÑ0Ô0€Dà×)Ò)¨)Ñ4Ô4°[°j°[ÔA€NØ˜h×.Ò.¨q¸
ÀJÐ7OÐ.ÑPÔPÐSVÑVÑW€OØˆÐÐÔ˜OÑ+ÐÐÑÝ”7˜9Ñ%Ô%×,Ò,­TÑ2Ô2€LØ#(€L�Ñ à�\Ô"€Iå TÐ*Ñ*Ô*×.Ò.¨tÑ4Ô4€GØÔ€AØÔ€AØÔ€Aå”W˜iŸnšn¨QÑ/Ô/°!Ñ3¸Ñ9Ñ:Ô:€NØ˜GÒ#Ð#Ð#Ð#Ý”Õ-¨iÑ8Ô8¸1Ñ<ÀÑBÑCÔC€IØ�wÒÐÐÐÝŒ6�!‰9Œ9˜Ò#Ð#Ð#Ð#Ý˜g×1Ò1°$Ñ7Ô7¸¼ÑGÔGÐGÐGÐGr   c                  ó¶   — t           j                             d¦  «        } |                      d¬¦  «        }t	          ¦   «         }|                     |¦  «         d S )Nr   )é   r   r*   )r   r/   r0   Únormalr   r%   )Úrndr!   r&   s      r   Útest_mcd_issue1127rU   S   sH   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�
Š
˜ˆ
ÑÔ€AÝ
‰+Œ+€CØ‡G‚GˆA�J„J€J€J€Jr   c                 ó¬  — t           j                             | ¦  «        }t          j        ddd¦  «                             ¦   «         }t          j        t          t          j        ||¦  «        ¦  «        ¦  «        }t          j	        |t          j
        |j        d         df¦  «        f¦  «        }t          |¬¦  «                             |¦  «         d S )Néûÿÿÿr
   é
   r   r   r-   )r   r/   r0   ÚlinspaceÚtolistÚarrayÚlistÚ	itertoolsÚproductÚhstackÚzerosÚshaper   r%   )r   rE   Údata_valuesrF   s       r   Útest_mcd_issue3367rc   \   s±   € õ Œy×$Ò$Ð%7Ñ8Ô8€Hõ ”+˜b ! RÑ(Ô(×/Ò/Ñ1Ô1€KåŒ8•D�Ô*¨;¸ÑDÔDÑEÔEÑFÔF€Dõ Œ9�d�BœH d¤j°¤m°QÐ%7Ñ8Ô8Ð9Ñ:Ô:€Dõ" ˜8Ð$Ñ$Ô$×(Ò(¨Ñ.Ô.Ð.Ð.Ð.r   c                  óp  — t          j        g d¢¦  «        } |                      dd¦  «        } t          j        g d¢¦  «        }|                     dd¦  «        }d}| |fD ]V}t          j        t
          |¬¦  «        5  t          ¦   «                              |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒWd S )N)
r,   r   r   r   ç9´Èv¾Ÿî?r   r   r   ç�•C‹lÛ?r   éÿÿÿÿr   )
r,   r   r   r   re   r   r   r   rf   r   zYThe covariance matrix of the support data is equal to 0, try to increase support_fractionr   )r   r[   Úreshaper   r   r    r   r%   )ÚX_1ÚX_2r"   r!   s       r   Ú#test_mcd_support_covariance_is_zerork   |   s   € õ Œ(ÐJÐJÐJÑ
KÔ
K€CØ
�+Š+�b˜!Ñ
Ô
€CÝ
Œ(ÐJÐJÐJÑ
KÔ
K€CØ
�+Š+�b˜!Ñ
Ô
€Cð	$ð ð �3ˆZð ð ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ý‰KŒK�OŠO˜AÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   Á<"B*Â*B.	Â1B.	c                 ó4  — g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t          d| ¬¦  «        }d}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)çffffff@ç      @çffffffö?çš™™™™™É?)çš™™™™™@ç      @ro   rp   )gÍÌÌÌÌÌ@gš™™™™™	@gÍÌÌÌÌÌô?rp   )çffffff@çÍÌÌÌÌÌ@ç      ø?rp   )ç      @çÍÌÌÌÌÌ@ro   rp   )rs   ç333333@ro   r   )rv   rx   ru   rp   )gš™™™™™@g333333@ro   rp   )rq   rt   ru   r   )çš™™™™™@gš™™™™™@ru   rp   )ç333333@rx   çš™™™™™ù?rp   )rz   rr   ro   r   )g333333@rr   gš™™™™™ñ?r   )rm   rn   ro   r   )gÍÌÌÌÌÌ@gffffff@ç333333û?r   )ry   rx   r|   rp   )rs   rw   g      ð?rp   )rv   rr   r{   rp   )gÍÌÌÌÌÌ@rn   ru   rp   r,   )Úsupport_fractionr.   zDeterminant has increasedr   )r   r   ÚwarnsÚRuntimeWarningr%   )r   r!   r&   Úwarn_msgs       r   Útest_mcd_increasing_det_warningr�   Œ   sX  € ð 	ÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐð'	€Aõ,  SÐ7IÐ
JÑ
JÔ
J€CØ*€HÝ	Œ•n¨HÐ	5Ñ	5Ô	5ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á*BÂBÂB)r]   Únumpyr   r   Úsklearnr   Úsklearn.covariancer   r   r   Úsklearn.utils._testingr   Ú	load_irisrF   r!   ÚX_1dra   r>   r?   r   r#   r'   r   rU   rc   rk   r�   © r   r   ú<module>r‰      s#  ðð Ð Ð Ð à Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ <Ð <Ð <Ð <Ð <Ð <à€HÔÑÔÔ€ØˆˆˆˆAˆ„w€ØœÑ €	ˆ:ðLð Lð Lð(ð ð ðð ð ðHð Hð Hð6ð ð ð/ð /ð /ð@ð ð ð ð ð ð ð r   