
    -i                         S SK r S SKrS SKrS SKJr  S SKJrJrJ	r	  S SK
Jr  \R                  " 5       R                  r\SS2S 4   r\R                   u  rrS rS rS rS rS	 rS
 rS rS rg)    N)datasets)	MinCovDetempirical_covariancefast_mcd)assert_array_almost_equalc           	          [        SSSSSSU 5        [        SSSSSS	U 5        [        SSS
SSSU 5        [        SSSSSSU 5        [        SSSSSSU 5        [        SSSSSSU 5        [        SSSSSSU 5        g )Nd      r   g{Gz?皙?K      333333?A   (   2   i  i  i  i  i   if  i     i^     )launch_mcd_on_dataset)global_random_seeds    b/var/www/html/venv/lib/python3.13/site-packages/sklearn/covariance/tests/test_robust_covariance.pytest_mcdr      s     #q!T34FG#q"c34FG#q"c34FG $3S#7IJ $3S#7IJ #q#tT38JK "b!S#r3EF    c                      [         R                  " S5      n Sn[        R                  " [        US9   [        U 5        S S S 5        g ! , (       d  f       g = fNr	   z'Expected 2D array, got 1D array insteadmatch)nparangepytestraises
ValueErrorr   )Xmsgs     r   test_fast_mcd_on_invalid_inputr$   )   s5    
		#A
3C	z	- 
.	-	-s   A
Ac                      [         R                  " S5      n [        5       nSn[        R                  " [
        US9   UR                  U 5        S S S 5        g ! , (       d  f       g = fr   )r   r   r   r   r    r!   fit)r"   mcdr#   s      r   test_mcd_class_on_invalid_inputr(   0   s@    
		#A
+C
3C	z	-
 
.	-	-s   A
A%c                    [         R                  R                  U5      nUR                  X5      nUR	                  U 5      S U n	SUR                  SX!4S9S-
  -  n
X==   U
-  ss'   [         R                  " U 5      R                  [        5      nSX'   X   n[        US9R                  U5      nUR                  nUR                  nUR                  n[         R                  " UR                  S5      U-
  S-  5      nUU:  d   e[         R                  " [        U5      U-
  S-  5      nUU:  d   e[         R                   " U5      U:  d   e[#        UR%                  U5      UR&                  5        g )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   sW    yy$$T*H>>)0D)))4[jANh..q
7O.PSVVWOO+779%,,T2L#(L "IT*..t4GAAAWWinnQ/!39:NG###-i81<BCIw66!9###g11$7Gr   c                      [         R                  R                  S5      n U R                  SS9n[	        5       nUR                  U5        g )Nr   )   r   r+   )r   r0   r1   normalr   r&   )rndr"   r'   s      r   test_mcd_issue1127rV   S   s:     ))


"C


A
+CGGAJr   c                    [         R                  R                  U 5      n[         R                  " SSS5      R	                  5       n[         R
                  " [        [        R                  " X"5      5      5      n[         R                  " U[         R                  " UR                  S   S45      45      n[        US9R                  U5        g )Nr
   
   r   r   r.   )r   r0   r1   linspacetolistarraylist	itertoolsproducthstackzerosshaper   r&   )r   rF   data_valuesrG   s       r   test_mcd_issue3367rd   \   s     yy$$%78H ++b!R(//1K88D**;DEFD 99dBHHdjjmQ%789:D" 8$((.r   c                  ^   [         R                  " / SQ5      n U R                  SS5      n [         R                  " / SQ5      nUR                  SS5      nSnX4 H>  n[        R                  " [
        US9   [        5       R                  U5        S S S 5        M@     g ! , (       d  f       MR  = f)N)
r-   r   r   r   9v?r   r   r   Cl?r   r   )
r-   r   r   r   rf   r   r   r   rg   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_zerorl   |   s     ((J
KC
++b!
C
((J
KC
++b!
C	$  Z]]:S1KOOA 21 11s   6B
B,	c                    / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/n[        SU S9nSn[        R                  " [        US9   UR	                  U5        S S S 5        g ! , (       d  f       g = f)N)ffffff@      @ffffff?皙?)皙@      @rp   rq   )g@g	@g?rq   )ffffff@@      ?rq   )      @@rp   rq   )rt   333333@rp   r   )rw   ry   rv   rq   )g@g333333@rp   rq   )rr   ru   rv   r   )皙@g@rv   rq   )333333@ry   皙?rq   )r{   rs   rp   r   )g333333@rs   g?r   )rn   ro   rp   r   )g@gffffff@333333?r   )rz   ry   r}   rq   )rt   rx   g      ?rq   )rw   rs   r|   rq   )g@ro   rv   rq   r-   )support_fractionr/   zDeterminant has increasedr   )r   r   warnsRuntimeWarningr&   )r   r"   r'   warn_msgs       r   test_mcd_increasing_det_warningr      s}     	'	A, S7I
JC*H	nH	5
 
6	5	5s   !A<<
B
)r^   numpyr   r   sklearnr   sklearn.covariancer   r   r   sklearn.utils._testingr   	load_irisrG   r"   X_1drb   r?   r@   r   r$   r(   r   rV   rd   rl   r    r   r   <module>r      sv        H H <Aw 	:G.H6/@ r   