
    -i6                        S SK rS SKrS SKJr  S SKJrJrJrJ	r	J
r
JrJrJrJr  S SKJr  S SKJrJrJrJr  SSKJr  \R0                  " SS	9u  rr\SS2S 4   r\R8                  u  rrS
 r\R@                  RC                  SSS/5      S 5       r"S r#S r$S r%S r&S r'\R@                  RC                  S\" 5       RP                  \/5      S 5       r)S r*S r+g)    N)datasets)	OASEmpiricalCovariance
LedoitWolfShrunkCovarianceempirical_covarianceledoit_wolfledoit_wolf_shrinkageoasshrunk_covariance)_ledoit_wolf)assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equal   )_oasT)
return_X_yc                  `   [        5       n U R                  [        5        [        [        5      n[	        XR
                  S5        [        U R                  U5      S5        [        U R                  USS9S5        [        U R                  USS9S5        [        U R                  USS9S5        [        U R                  USS9S5        [        R                  " [        5         U R                  US	S9  S S S 5        U R                  [        5      n[        R                  " U5      S:  d   e[        S S 2S4   R                  S
5      n[        5       n U R                  U5        [	        [        U5      U R
                  S5        [        U R                  [        U5      5      S5        [        U R                  [        U5      SS9S5        [        R                  " S5      R                  SS5      n[        5       n Sn[        R                   " ["        US9   U R                  U5        S S S 5        [	        U R
                  [        R$                  " S[        R&                  S95        [        R(                  " SS/SS//5      n[        R(                  " SS/SS//5      n[	        [        U5      U5        [        SS9n U R                  [        5        [+        U R,                  [        R$                  " [        R.                  S   5      5        g ! , (       d  f       GN!= f! , (       d  f       N= f)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           [/var/www/html/venv/lib/python3.13/site-packages/sklearn/covariance/tests/test_covariance.pytest_covariancerE   "   sW    
CGGAJ"1%Gg: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	 
3 coorxxfBJJ/WX 

QFQF+,IZZ$67F29=vF d
3CGGAJs}}bhhqwwqz&:;A 
,	+& 
3	2s   "LL
L
L-
n_matricesr      c                 L   Sn[         R                  " X45      n[         R                  " SS/SS//5      nU S:  aR  [         R                  " U[         R                  S4   U SS9n[         R                  " U[         R                  S4   U SS9n[        US5      n[        XC5        g)z#Check `shrunk_covariance` function.r   r         ?.r   axisN)r2   onesarrayrepeatnewaxisr   r   )rF   
n_featuresr<   
cov_target
cov_shrunks        rD   test_shrunk_covariance_funcrS   Q   s     J
'':*
+CAs8c1X./JA~iiBJJO,jqAYYz"**c/:JQO
"3,JJ+    c                     [        SS9n U R                  [        5        [        [	        [        [        5      SS9U R                  S5        [        5       n U R                  [        5        [        [	        [        [        5      5      U R                  S5        [        SS9n U R                  [        5        [        [        [        5      U R                  S5        [        SS2S4   R                  S5      n[        SS9n U R                  U5        [        [        U5      U R                  S5        [        SS	S
9n U R                  [        5        U R                  b   eg)zECheck consistency between `ShrunkCovariance` and `shrunk_covariance`.rI   	shrinkager   g        Nr   r   g333333?F)rW   store_precision)	r   r*   r+   r   r   r   r,   r4   
precision_)r<   r?   s     rD   test_shrunk_covariancerZ   a   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            	      	   [         [         R                  SS9-
  n [        SS9nUR                  U 5        UR                  nUR                  U 5      n[        [        U SS9U5        [        [        U SSS9U5        [        U SS9u  pE[        XAR                  S5        [        XQR                  5        [        UR                  SS9nUR                  U 5        [        UR                  UR                  S5        [         S S 2S4   R                  S	5      n[        SS9nUR                  U5        [        USS9u  pE[        XAR                  S5        [        XQR                  5        [        US
-  R                  5       [        -  UR                  S5        [        SSS9nUR                  U 5        [        UR                  U 5      US5        UR                  b   e[        5       nUR                  [         5        [        UR                  US5        [        UR                  [        [         5      5        [        UR                  [        [         5      S   5        [        UR                  [!        [         SSS9S   5        [        UR                  [         5      US5        [        [         5      u  pE[        XAR                  S5        [        XQR                  5        [        UR                  S9nUR                  [         5        [        UR                  UR                  S5        [         S S 2S4   R                  S	5      n[        5       nUR                  U5        [#        UR%                  SS9[!        USSS9S   5        [        U5      u  pE[        XAR                  S5        [        XQR                  5        [        ['        U5      UR                  S5        [(        R*                  " S5      R                  SS5      n[        5       nSn	[,        R.                  " [0        U	S9   UR                  U5        S S S 5        [        UR                  [(        R2                  " S[(        R4                  S95        [        SS9nUR                  [         5        [        UR                  [         5      US5        UR                  b   eg ! , (       d  f       N= f)Nr   rJ   Tr(      )r)   
block_sizer   rW   r)   r   r   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   r4   sum	n_samplesrY   r   r   varr   r2   r5   r.   r6   r7   r8   r9   )

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

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