
    Pi\                        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ej                            ddg          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|            t          dddddd|            d S )Nd      r   g{Gz?皙?J      333333?A   (   2   i  i  i  i  i   if  i     i^     )launch_mcd_on_dataset)global_random_seeds    /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sklearn/covariance/tests/test_robust_covariance.pytest_mcdr      s     #q!T34FGGG#q"c34FGGG#q"c34FGGG $3S#7IJJJ $3S#7IJJJ #q#tT38JKKK "b!S#r3EFFFFF    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
3C	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
3C	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0D)))44[j[ANh..q
J7O.PPSVVWOO+79%%,,T22L#(L \"IT***..t44GAAAWinnQ//!39::NG####-i881<BCCIw6!99####g11$77GGGGGr   c                      t           j                            d          } |                     d          }t	                      }|                    |           d S )Nr   )   r   r+   )r   r0   r1   normalr   r&   )rndr"   r'   s      r   test_mcd_issue1127rV   S   sH     )


"
"C


A
++CGGAJJJJJr   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 )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     y$$%788H +b!R((//11K8D*;DDEEFFD 9dBHdjmQ%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   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JJ
K
KC
++b!

C
(JJJ
K
KC
++b!

C	$  3Z  ]:S111 	 	KKOOA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 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?皙?)皙@      @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         ?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      sX    	'	A, S7I
J
J
JC*H	nH	5	5	5  


                 s   *BBBzn_samples,n_features)i  rY   c                    d}t           j                            |          }|                    || f          }t	          |j        d                                          }t          ddd|                              |j                  j	        }t          j
        |          }t          j        |          t          j        |          z  }	|	|k    s
J d            d	S )
zCheck that MinCovDet does not underestimate the empirical
    variance on Gaussian data.

    A large sample size and n_features makes the test robust.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/23162
    gQ?r+   T)assume_centeredr~   F)r   store_precisionr   r/   z.MinCovDet underestimates the Gaussian varianceN)r   r0   default_rngrT   r   rM   diagonalr   r&   r9   diagr<   )
r?   r@   r   	thresholdrngxvar_empcov_mcdvar_mcdmean_var_ratios
             r   test_mincovdet_bias_on_normalr      s     I
)

 2
3
3C

Y/
00A"13===FFHHG ! +		
 	
 	
 
QS	  ggG VG__rvg6NI%%%'W%%%%%r   )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   markparametrizer    r   r   <module>r      sZ                  H H H H H H H H H H < < < < < <HAw 	:G G G.    H H H6  / / /@     D /*>>X X ?>X X Xr   