
    _nd)                         d dl Z d dlZd dlZd dlmZ d dlmZ d dl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)assert_array_almost_equal)datasets)empirical_covariance	MinCovDet)fast_mcdc                      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?皙?P      F   (   2   i  i  i  i  i   if  i     gMbP?i^  )launch_mcd_on_dataset     Olib/python3.11/site-packages/sklearn/covariance/tests/test_robust_covariance.pytest_mcdr      s     #q!T3333#q"dD"555#q"c3333 $3S#666 $3S#666 #q#ueS99999r   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&   2   s    
	#A
++C
3C	z	-	-	-  


                 s    A##A'*A'c                 6   t           j                            d          }|                    | |          }|                    |           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 )Nr   g      $@   size      ?Frandom_state)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rand_gendataoutliers_indexoutliers_offsetinliers_mask	pure_datamcd_fitTSHerror_location	error_covs                     r   r   r   :   s    y$$Q''H>>)Z00D)))44[j[ANh..q
J7O.PPSVVWOO+79%%,,T22L#(L \"IX...22488G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   r.   r/   normalr   r$   )rndr    r%   s      r   test_mcd_issue1127rS   V   sH     )


"
"C


A
++CGGAJJJJJr   c                     t           j                            d          } 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   r.   r/   linspacetolistarraylist	itertoolsproducthstackzerosshaper   r$   )rC   data_valuesrD   s      r   test_mcd_issue3367ra   _   s     y$$Q''H +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+   333333?rf   rf   rc   rf   rf   rf   rd   rf   zYThe covariance matrix of the support data is equal to 0, try to increase support_fractionr   )r   rY   reshaper   r   r   r   r$   )X_1X_2r!   r    s       r   #test_mcd_support_covariance_is_zerorj      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                  2   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?皙?)皙@      @rn   ro   )g@g	@g?ro   )ffffff@@      ?ro   )      @@rn   ro   )rr   333333@rn   rf   )ru   rw   rt   ro   )g@g333333@rn   ro   )rp   rs   rt   r   )皙@g@rt   ro   )333333@rw   皙?ro   )ry   rq   rn   r   )g333333@rq   g?r   )rl   rm   rn   rf   )g@gffffff@333333?rf   )rx   rw   r{   ro   )rr   rv   g      ?ro   )ru   rq   rz   ro   )g@rm   rt   ro   r   r,   zDeterminant has increasedr   )r   r   warnsRuntimeWarningr$   )r    r%   warn_msgs      r   test_mcd_increasing_det_warningr      sU    	'	A, 
#
#
#C*H	nH	5	5	5  


                 s   )BBB)r[   numpyr   r   sklearn.utils._testingr   sklearnr   sklearn.covariancer   r   r   	load_irisrD   r    X_1dr_   r=   r>   r   r"   r&   r   rS   ra   rj   r   r   r   r   <module>r      s,            < < < < < <       > > > > > > > > ' ' ' ' ' 'HAw 	:: : :(    H H H8  / / /@       r   