
    ri6                        d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZmZ d dlmZmZ d dlmZmZmZmZ  ej.                  d      \  ZZeddd f   Zej6                  \  ZZd Zej>                  jA                  d	d
dg      d        Z!d Z"d Z#d Z$d Z%d Z&ej>                  jA                  d e       jN                  eg      d        Z(d Z)d Z*y)    N)datasets)	OASEmpiricalCovariance
LedoitWolfShrunkCovarianceempirical_covarianceledoit_wolfledoit_wolf_shrinkageoasshrunk_covariance)_ledoit_wolf_oas)assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equalT)
return_X_yc                  r   t               } | j                  t               t        t              }t	        || j
                  d       t        | j                  |      d       t        | j                  |d      d       t        | j                  |d      d       t        | j                  |d      d       t        | j                  |d      d       t        j                  t              5  | j                  |d	       d d d        | j                  t              }t        j                  |      dkD  sJ t        d d df   j                  d
      }t               } | j                  |       t	        t        |      | j
                  d       t        | j                  t        |            d       t        | j                  t        |      d      d       t        j                  d      j                  dd      }t               } d}t        j                   t"        |      5  | j                  |       d d d        t	        | j
                  t        j$                  dt        j&                               t        j(                  ddgddgg      }t        j(                  ddgddgg      }t	        t        |      |       t        d      } | j                  t               t+        | j,                  t        j$                  t        j.                  d                y # 1 sw Y    xY w# 1 sw Y   xY w)N   r   spectral)norm	frobeniusF)scaling)squaredfoo      r   BOnly one sample available. You may want to reshape your data arraymatchr   r   shapedtypeg      ?g      пTassume_centered)r   fitXr   r   covariance_r   
error_normpytestraisesNotImplementedErrormahalanobisnpaminreshapearangewarnsUserWarningzerosfloat64asarrayr   	location_r%   )covemp_cov
mahal_distX_1d	X_1samplewarn_msg	X_integerresults           f/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/covariance/tests/test_covariance.pytest_covariancerD       sg    
CGGAJ"1%Ggs:w/3wZ@!Dw[A1Ew>Bw>B	*	+ ,wU+, #J77:""" QT7??7#D

CGGDM248#//1M';D'ABAF';D'A
SUVW 		!$$Q*I

CSH	k	2 	 coorxxfBJJ/WX 

QFQF+,IZZ$67F29=vF d
3CGGAJs}}bhhqwwqz&:;A, ,& s   .L &L- L*-L6
n_matricesr      c                 R   d}t        j                  ||f      }t        j                  ddgddgg      }| dkD  rVt        j                  |t         j                  df   | d      }t        j                  |t         j                  df   | d      }t        |d      }t        ||       y)z#Check `shrunk_covariance` function.   r         ?.r   axisN)r1   onesarrayrepeatnewaxisr   r   )rE   
n_featuresr;   
cov_target
cov_shrunks        rC   test_shrunk_covariance_funcrS   O   s     J
'':z*
+CAs8c1X./JA~iiBJJO,jqAYYz"**c/:JQO
"3,JJ
+    c                     t        d      } | j                  t               t        t	        t        t              d      | j                  d       t               } | j                  t               t        t	        t        t                    | j                  d       t        d      } | j                  t               t        t        t              | j                  d       t        dddf   j                  d      }t        d      } | j                  |       t        t        |      | j                  d       t        dd	
      } | j                  t               | j                  J y)zECheck consistency between `ShrunkCovariance` and `shrunk_covariance`.rI   	shrinkager   g        Nr   r   g333333?F)rW   store_precision)	r   r)   r*   r   r   r   r+   r3   
precision_)r;   r>   s     rC   test_shrunk_covariancerZ   _   s   
 S
)CGGAJ.q1SA3??TU
 
CGGAJ.q12COOQ
 S
)CGGAJ215sJ QT7??7#D
S
)CGGDM248#//1M S%
@CGGAJ>>!!!rT   c                  

   t         t         j                  d      z
  } t        d      }|j                  |        |j                  }|j                  |       }t        t        | d      |       t        t        | dd      |       t        | d      \  }}t        ||j                  d       t        ||j                         t        |j                  d      }|j                  |        t        |j                  |j                  d       t         d d df   j                  d	      }t        d      }|j                  |       t        |d      \  }}t        ||j                  d       t        ||j                         t        |d
z  j                         t        z  |j                  d       t        dd      }|j                  |        t        |j                  |       |d       |j                  J t               }|j                  t                t        |j                  |d       t        |j                  t        t                      t        |j                  t        t               d          t        |j                  t!        t         dd      d          t        |j                  t               |d       t        t               \  }}t        ||j                  d       t        ||j                         t        |j                        }|j                  t                t        |j                  |j                  d       t         d d df   j                  d	      }t               }|j                  |       t#        |j%                  d      t!        |dd      d          t        |      \  }}t        ||j                  d       t        ||j                         t        t'        |      |j                  d       t)        j*                  d      j                  dd      }t               }d}	t-        j.                  t0        |	      5  |j                  |       d d d        t        |j                  t)        j2                  dt(        j4                               t        d      }|j                  t                t        |j                  t               |d       |j                  J y # 1 sw Y   xY w)Nr   rJ   Tr'      )r(   
block_sizer   rW   r(   r   rH   FrX   r(   r   i'  )r*   r(   r]   rV   )ddofr   r    r!   r#   r$   rX   )r*   meanr   r)   
shrinkage_scorer   r
   r	   r   r+   r   r3   sum	n_samplesrY   r   r   varr   r1   r4   r-   r5   r6   r7   r8   )

X_centeredlwrc   score_lw_cov_from_mlelw_shrinkage_from_mlescovr>   r?   r@   s
             rC   test_ledoit_wolfrn      s    QVVV^#J	D	)BFF:JXXj!Fj$? j$1M
 .9D.*O* or~~qA-r}}=bmmTJDHHZd..B QT7??7#D	D	)BFF4L-8t-T*O*or~~qA-r}}=tQwmmo	92>>1M 
E4	@BFF:,fa8==    
BFF1Iz15'<Q'?@{1~a'89
|a5QRST VQ/-8^*O*or~~qA-r}}=bmm4DHHQKd..B QT7??7#D	BFF4LatUuEaH .9->*O*or~~qA-r}}=248"..!L 		!$$Q*I	BSH	k	2 
y bnnbhhV2::.VW 
E	*BFF1IVQ/==    s   S99Tc                    | j                   \  }}t        | d      }t        j                  |      |z  }|j	                         }|j
                  d d |dz   xx   |z  cc<   |dz  j                         |z  }| dz  }d||z  z  t        j                  t        j                  |j                  |      |z  |dz  z
        z  }t        ||      }	|	|z  }
|
S )NFr'   r   rH   g      ?)
r%   r   r1   tracecopyflatre   dotTmin)r*   rf   rP   r<   mudelta_deltaX2beta_betarW   s              rC   _naive_ledoit_wolf_shrinkager|      s     GGIz"1e<G	'	Z	'B\\^F
KK!:>!"b("QYOO
*E	
AB	!	#
&&b!I-
:
;	< 
 ueDuIrT   c                      t         d d d df   } t               }|j                  |        |j                  }t	        |t        |              y )Nr   )r*   r   r)   rc   r   r|   )X_smallri   rc   s      rC   test_ledoit_wolf_smallr      s>    2A2hG	BFF7OJ
$@$IJrT   c                 j   t         j                  j                  |       }|j                  d      }t	        d      j                  |      }t        |j                  t        j                  d      d       |j                  }t	        d      j                  |      }t        |j                  |       y )N)
      )sizer   )r]   r   r      )	r1   randomRandomStatenormalr   r)   r   r+   eye)global_random_seedrngr*   ri   r;   s        rC   test_ledoit_wolf_larger     s    
))

 2
3C


!A	r	"	&	&q	)Br
A6
..C 
r	"	&	&q	)B,rT   ledoit_wolf_fitting_functionc                     t        j                  d      }t        j                  t        d      5   | |       ddd       y# 1 sw Y   yxY w)zDCheck that we validate X and raise proper error with 0-sample array.)r   rH   zFound array with 0 sampler!   N)r1   r7   r-   r.   
ValueError)r   X_emptys     rC   test_ledoit_wolf_empty_arrayr     s>    
 hhvG	z)D	E .$W-. . .s   	AAc                  	   t         t         j                  d      z
  } t        d      }|j                  |        |j                  }|j                  |       }t        | d      \  }}t        ||j                  d       t        ||j                         t        |j                  d      }|j                  |        t        |j                  |j                  d       t         d d ddf   }t        d      }|j                  |       t        |d      \  }}t        ||j                  d       t        ||j                         t        |dz  j                         t        z  |j                  d       t        d	d
      }|j                  |        t        |j                  |       |d       |j                  J t               }|j                  t                t        |j                  |d       t        |j                  t               |d       t        t               \  }}t        ||j                  d       t        ||j                         t        |j                        }|j                  t                t        |j                  |j                  d       t         d d df   j                  d      }t               }|j                  |       t        |      \  }}t        ||j                  d       t        ||j                         t        t        |      |j                  d       t!        j"                  d      j                  dd      }t               }d}	t%        j&                  t(        |	      5  |j                  |       d d d        t        |j                  t!        j*                  dt         j,                               t        d	      }|j                  t                t        |j                  t               |d       |j                  J t         d d ddf   }
t               }|j                  |
       t/        |
      \  }}t        ||j                  d       t        ||j                         t        |
dz  j                         t        z  |j                  d       y # 1 sw Y   'xY w)Nr   rJ   Tr'   r   r^   r   rH   Fr_   rV   r   r   r    r!   r#   r$   ra   )r*   rb   r   r)   rc   rd   r   r   r+   r   r   re   rf   rY   r3   r   r1   r4   r-   r5   r6   r7   r8   r   )rh   oarc   rj   oa_cov_from_mleoa_shrinkage_from_mlerm   r>   r?   r@   X_1f_oa_cov_from_mle_oa_shrinkage_from_mles                rC   test_oasr     s    QVVV^#J	T	"BFF:JXXj!F-0T-R*O*or~~qA-r}}=bmmTJDHHZd..B Q!V9D	T	"BFF4L-0t-L*O*or~~qA-r}}=tQwmmo	92>>1M 
UD	9BFF:,fa8==    
BFF1Iz15VQ/-0V*O*or~~qA-r}}=bmm4DHHQKd..B QT7??7#D	BFF4L-0Y*O*or~~qA-r}}=248"..!L 		!$$Q*I	BSH	k	2 
y bnnbhhV2::.VW 
U	#BFF1IVQ/==    Q!V9D	BFF4L/3Dz,,.B.>tQwmmo	92>>1M' s   =R44R>c                     t               j                  t              } dt        j                  d    d}t	        j
                  t        |      5  | j                  t        ddddf          ddd       y# 1 sw Y   yxY w)z@Checks that EmpiricalCovariance validates data with mahalanobis.z'X has 2 features, but \w+ is expecting r   z features as inputr!   NrH   )r   r)   r*   r%   r-   r.   r   r0   )r;   msgs     rC   .test_EmpiricalCovariance_validates_mahalanobisr   n  sg    


#
#A
&C4QWWQZL@R
SC	z	- "!RaR%!" " "s   A88B)+numpyr1   r-   sklearnr   sklearn.covariancer   r   r   r   r   r	   r
   r   r   %sklearn.covariance._shrunk_covariancer   r   sklearn.utils._testingr   r   r   r   load_diabetesr*   _r>   r%   rf   rP   rD   markparametrizerS   rZ   rn   r|   r   r   r)   r   r   r    rT   rC   <module>r      s      
 
 
 E  x.1Aw 	:,<^ 1v., /, "FZ!z2K- "Z\%5%57L$M..PNf"rT   