
    0Ph6                        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 d dlmZmZmZmZ ddlmZ  ej        d	          \  ZZeddd f         Zej        \  ZZd
 Zej         !                    dddg          d             Z"d Z#d Z$d Z%d Z&d Z'ej         !                    d e            j(        eg          d             Z)d Z*d Z+dS )    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                  r   t                      } |                     t                     t          t                    }t	          || j        d           t          |                     |          d           t          |                     |d          d           t          |                     |d          d           t          |                     |d          d           t          |                     |d          d           t          j	        t                    5  |                     |d	           d d d            n# 1 swxY w Y   |                     t                    }t          j        |          dk    sJ t          d d df                             d
          }t                      } |                     |           t	          t          |          | j        d           t          |                     t          |                    d           t          |                     t          |          d          d           t          j        d                              dd          }t                      } d}t          j        t"          |          5  |                     |           d d d            n# 1 swxY w Y   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          } |                     t                     t+          | j        t          j        t          j        d                              d S )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           h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/covariance/tests/test_covariance.pytest_covariancerE   "   s    

CGGAJJJ"1%%Ggs:::w//333wZ@@!DDDw[AA1EEEw>>BBBw>>BBB	*	+	+ , ,wU+++, , , , , , , , , , , , , , , ##J7:"""" QQQT7??7##D


CGGDMMM2488#/1MMM';D'A'ABBAFFF';D'A'A
SSUVWWW 	!$$Q**I


CSH	k	2	2	2  	               corxfBJ/W/W/WXXX 
QFQF+,,IZ$677F29==vFFF d
3
3
3CGGAJJJs}bhqwqz&:&:;;;;;s$   #EEE%KKK
n_matricesr      c                 Z   d}t          j        ||f          }t          j        ddgddgg          }| dk    rRt          j        |t           j        df         | d          }t          j        |t           j        df         | d          }t          |d          }t          ||           dS )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
':z*
+
+CAs8c1X.//JA~~iBJO,jqAAAYz"*c/:JQOOO
"3,,JJ
+++++    c                  f   t          d          } |                     t                     t          t	          t          t                    d          | j        d           t                      } |                     t                     t          t	          t          t                              | j        d           t          d          } |                     t                     t          t          t                    | j        d           t          dddf                             d          }t          d          } |                     |           t          t          |          | j        d           t          dd	
          } |                     t                     | j        J dS )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   sm   
 S
)
)
)CGGAJJJ.q11SAAA3?TU  
 

CGGAJJJ.q1122COQ  
 S
)
)
)CGGAJJJ2155sJJJ QQQT7??7##D
S
)
)
)CGGDMMM2488#/1MMM S%
@
@
@CGGAJJJ>!!!!!rT   c                  @   t           t                               d          z
  } t          d          }|                    |            |j        }|                    |           }t          t          | d          |           t          t          | dd          |           t          | d          \  }}t          ||j
        d           t          ||j                   t          |j        d          }|                    |            t          |j
        |j
        d           t           d d df                             d	          }t          d          }|                    |           t          |d          \  }}t          ||j
        d           t          ||j                   t          |d
z                                  t          z  |j
        d           t          dd          }|                    |            t          |                    |           |d           |j        J t                      }|                    t                      t          |j        |d           t          |j        t          t                                t          |j        t          t                     d                    t          |j        t!          t           dd          d                    t          |                    t                     |d           t          t                     \  }}t          ||j
        d           t          ||j                   t          |j                  }|                    t                      t          |j
        |j
        d           t           d d df                             d	          }t                      }|                    |           t#          |                    d          t!          |dd          d                    t          |          \  }}t          ||j
        d           t          ||j                   t          t'          |          |j
        d           t)          j        d                              dd          }t                      }d}	t-          j        t0          |	          5  |                    |           d d d            n# 1 swxY w Y   t          |j
        t)          j        dt(          j                             t          d          }|                    t                      t          |                    t                     |d           |j        J d S )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MM  
 .9D. . .*O* or~qAAA-r}===bmTJJJDHHZd.BBB QQQT7??7##D	D	)	)	)BFF4LLL-8t-T-T-T*O*or~qAAA-r}===tQwmmoo	92>1MMM 
E4	@	@	@BFF:,,fa888=    
BFF1IIIz1555'<Q'?'?@@@{1~~a'8999
|a5QQQRST   VQ///-8^^*O*or~qAAA-r}===bm444DHHQKKKd.BBB QQQT7??7##D	BFF4LLLatUuEEEaH   .9->->*O*or~qAAA-r}===2488".!LLL 	!$$Q**I	BSH	k	2	2	2  
y               bnbhV2:.V.V.VWWW 
E	*	*	*BFF1IIIVQ///=     s   "TTTc                    | j         \  }}t          | d          }t          j        |          |z  }|                                }|j        d d |dz   xx         |z  cc<   |dz                                  |z  }| dz  }d||z  z  t          j        t          j        |j        |          |z  |dz  z
            z  }t          ||          }	|	|z  }
|
S )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     GIz"1e<<<G	'		Z	'B\\^^F
K!!:>!"""b("""QYOO
*E	
AB	!	#
&b!!I-
:
;
;	< 
 ueDuIrT   c                      t           d d d df         } t                      }|                    |            |j        }t	          |t          |                      d S )Nr   )r+   r   r*   rc   r   r|   )X_smallri   rc   s      rD   test_ledoit_wolf_smallr      sU    2A2hG	BFF7OOOJ
$@$I$IJJJJJrT   c                     t           j                            d          } |                     d          }t	          d                              |          }t          |j        t          j        d          d           |j        }t	          d                              |          }t          |j        |           d S )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66
.C 
r	"	"	"	&	&q	)	)B,,,,,rT   ledoit_wolf_fitting_functionc                     t          j        d          }t          j        t          d          5   | |           ddd           dS # 1 swxY w Y   dS )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     s    
 hvG	z)D	E	E	E . .$$W---. . . . . . . . . . . . . . . . . .s   A		AAc                  p
   t           t                               d          z
  } t          d          }|                    |            |j        }|                    |           }t          | d          \  }}t          ||j        d           t          ||j                   t          |j        d          }|                    |            t          |j        |j        d           t           d d ddf         }t          d          }|                    |           t          |d          \  }}t          ||j        d           t          ||j                   t          |dz                                  t          z  |j        d           t          d	d
          }|                    |            t          |                    |           |d           |j        J t                      }|                    t                      t          |j        |d           t          |                    t                     |d           t          t                     \  }}t          ||j        d           t          ||j                   t          |j                  }|                    t                      t          |j        |j        d           t           d d df                             d          }t                      }|                    |           t          |          \  }}t          ||j        d           t          ||j                   t          t          |          |j        d           t!          j        d                              dd          }t                      }d}	t%          j        t(          |	          5  |                    |           d d d            n# 1 swxY w Y   t          |j        t!          j        dt           j                             t          d	          }|                    t                      t          |                    t                     |d           |j        J t           d d ddf         }
t                      }|                    |
           t/          |
          \  }}t          ||j        d           t          ||j                   t          |
dz                                  t          z  |j        d           d S )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-R-R*O*or~qAAA-r}===bmTJJJDHHZd.BBB QQQ!V9D	T	"	"	"BFF4LLL-0t-L-L-L*O*or~qAAA-r}===tQwmmoo	92>1MMM 
UD	9	9	9BFF:,,fa888=    
BFF1IIIz1555VQ///-0VV*O*or~qAAA-r}===bm444DHHQKKKd.BBB QQQT7??7##D	BFF4LLL-0YY*O*or~qAAA-r}===2488".!LLL 	!$$Q**I	BSH	k	2	2	2  
y               bnbhV2:.V.V.VWWW 
U	#	#	#BFF1IIIVQ///=    QQQ!V9D	BFF4LLL/3Dzz,,.BBB.>>>tQwmmoo	92>1MMMMMs   O66O:=O:c                  2   t                                          t                    } dt          j        d          d}t	          j        t          |          5  |                     t          ddddf                    ddd           dS # 1 swxY w Y   dS )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
SQWQZ
S
S
SC	z	-	-	- " "!!!RaR%!!!" " " " " " " " " " " " " " " " " "s   'BB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>             
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ? > > > > >            & % % % % %x...1Aw 	:,< ,< ,<^ 1v.., , /., "  "  "FZ! Z! Z!z  2K K K- - - "ZZ\\%57L$M . . .PN PN PNf" " " " "rT   