Ë
    ÷Q(h|  ã                   óÞ   — 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y)é    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| «       y )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    úm/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/covariance/tests/test_robust_covariance.pyÚtest_mcdr      sˆ   € ô ˜#˜q ! T¨3°Ð4FÔGä˜#˜q " c¨3°Ð4FÔGä˜#˜q " c¨3°Ð4FÔGô ˜$  3¨¨S°#Ð7IÔJô ˜$  3¨¨S°#Ð7IÔJô ˜#˜q # t¨T°3Ð8JÕKó    c                  ó¨   — t        j                  d«      } d}t        j                  t        |¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w©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c                  óÈ   — t        j                  d«      } t        «       }d}t        j                  t
        |¬«      5  |j                  | «       d d d «       y # 1 sw Y   y xY wr   )r   r   r   r   r   r    Úfit)r!   Úmcdr"   s      r   Útest_mcd_class_on_invalid_inputr'   -   sI   € Ü
�	‰	�#‹€AÜ
‹+€CØ
3€CÜ	�‰”z¨Ô	-ñ Ø�‰�Œ
÷÷ ñ ús   ½AÁA!c                 óö  — t         j                  j                  |«      }|j                  | |«      }|j	                  | «      d | }	d|j                  d||f¬«      dz
  z  }
||	xx   |
z  cc<   t        j                  | «      j                  t        «      }d||	<   ||   }t        |¬«      j                  |«      }|j                  }|j                  }|j                  }t        j                  |j                  d«      |z
  dz  «      }||k  sJ ‚t        j                  t        |«      |z
  dz  «      }||k  sJ ‚t        j                   |«      |k\  sJ ‚t#        |j%                  |«      |j&                  «       y )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   5   sa  € ô �y‰y×$Ñ$ TÓ*€HØ�>‰>˜) ZÓ0€Dà×)Ñ)¨)Ó4°[°jÐA€NØ˜h×.Ñ.¨q¸
ÀJÐ7OÐ.ÓPÐSVÑVÑW€OØˆÓ˜OÑ+ÓÜ—7‘7˜9Ó%×,Ñ,¬TÓ2€LØ#(€L�Ñ à�\Ñ"€Iä TÔ*×.Ñ.¨tÓ4€GØ×Ñ€AØ×Ñ€AØ×Ñ€Aä—W‘W˜iŸn™n¨QÓ/°!Ñ3¸Ñ9Ó:€NØ˜GÒ#Ð#Ð#Ü—‘Ô-¨iÓ8¸1Ñ<ÀÑBÓC€IØ�wÒÐÐÜ�6‰6�!‹9˜Ò#Ð#Ð#Ü˜g×1Ñ1°$Ó7¸¿¹ÕGr   c                  óœ   — t         j                  j                  d«      } | j                  d¬«      }t	        «       }|j                  |«       y )Nr   )é   r   r*   )r   r/   r0   Únormalr   r%   )Úrndr!   r&   s      r   Útest_mcd_issue1127rU   P   s:   € ô �)‰)×
Ñ
 Ó
"€CØ�
‰
˜ˆ
Ó€AÜ
‹+€CØ‡G�GˆA…Jr   c                 ó˜  — t         j                  j                  | «      }t        j                  ddd«      j	                  «       }t        j
                  t        t        j                  ||«      «      «      }t        j                  |t        j                  |j                  d   df«      f«      }t        |¬«      j                  |«       y )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   Y   s–   € ô �y‰y×$Ñ$Ð%7Ó8€Hô —+‘+˜b ! RÓ(×/Ñ/Ó1€Kä�8‰8”Dœ×*Ñ*¨;¸ÓDÓEÓF€Dô �9‰9�dœBŸH™H d§j¡j°¡m°QÐ%7Ó8Ð9Ó:€Dô" ˜8Ô$×(Ñ(¨Õ.r   c                  óP  — t        j                  g d¢«      } | j                  dd«      } t        j                  g d¢«      }|j                  dd«      }d}| |fD ]?  }t        j                  t
        |¬«      5  t        «       j                  |«       d d d «       ŒA y # 1 sw Y   ŒLxY w)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   y   s—   € ô �(‰(ÒJÓ
K€CØ
�+‰+�b˜!Ó
€CÜ
�(‰(ÒJÓ
K€CØ
�+‰+�b˜!Ó
€Cð	$ð ð �3ˆZò ˆÜ�]‰]œ:¨SÔ1ñ 	Ü‹K�O‰O˜AÔ÷	ð 	ñ÷	ð 	ús   Á7BÂB%	c                 ó  — 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  |j	                  |«       d d d «       y # 1 sw Y   y xY w)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�   ‰   s†   € ò 	ÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚð'	€Aô,  SÐ7IÔ
J€CØ*€HÜ	�‰”n¨HÔ	5ñ Ø�‰�Œ
÷÷ ñ ús   Á&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‰      sx   ðó ã Û å ß HÑ HÝ <à€H×ÑÓ×Ñ€ØŠˆAˆ�w€ØŸ™Ñ €	ˆ:òLò(òòHò6ò/ò@ó r   