o
    tBh#                     @   s  d Z 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
 ddl	mZ ddl	mZ ddlmZmZmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ d$ddZdd Zdd Zdd Zd%ddZej dg ddd Z!ej dddgej"dd d! Z#d"d# Z$dS )&z" Test the graphical_lasso module.
    N)linalg)assert_allclose)assert_array_almost_equal)assert_array_less)_convert_container)graphical_lassoGraphicalLassoGraphicalLassoCVempirical_covariance)make_sparse_spd_matrix)StringIO)check_random_state)datasetsc                 C   sr  d}d}t | } t|d| d}t|}| jt|||d}t|}dD ]J}t }t }	dD ])}
t	|d||
d	\}}}|||
< ||	|
< t
|j\}}|d
ksXtt|d
 q/t|d |d dd t|	d |	d dd q%tdd|}|| t|j|d dd t|j|d dd ||d
 }t }dD ]}t|d|j}|| qt|d
 |d  d S )N   d   gffffff?alpharandom_statesize)        皙?      ?cdlarsT)return_costsr   moder   r   r      decimalr   )r   )FT)assume_centered   )r   r   r   invmultivariate_normalnpzerosr
   dictr   arrayTr   diffr   r   fitscorecovariance_meanlist
precision_append)r   dim	n_samplespreccovXemp_covr   covsicovsmethodcov_icov_costsdual_gapmodelZprecsr!   prec_ rC   /var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/covariance/tests/test_graphical_lasso.pytest_graphical_lasso   s@   

rE   c                  C   s   t g dg dg dg dg} t g dg dg dg dg}t j}t|}d	D ]}t|d
d|d\}}t||  t|| q-d S )N)gJSo?r   ڧ1?羥{!<?)r   g-ꊾ'?r   r   )rF   r   g[@瘈ο]?)rG   r   rH   dw?)glE!N?r   ',r   )r   g5Ry;2@r   r   )rJ   r   ggC%d?XIſ)r   r   rK   gv?r   g      ?Fr   r   r   r%   r(   r   	load_irisdatar
   r   r   )cov_Ricov_Rr6   r7   r:   r5   icovrC   rC   rD   test_graphical_lasso_irisE   s*   

rS   c                  C   s   t ddgddgg} t ddgddgg}t jd d dd f }t|}dD ]}t|d	d
|d\}}t||  t|| q)d S )Ng@gHZ?rI   gɉ1t?gO{̓%	g4#(#e @   r   r   FrL   rM   )	cov_skggm
icov_skggmr6   r7   r:   r5   rR   rC   rC   rD   test_graph_lasso_2D`   s   
rW   c                  C   s   t dd} t g dg dg dg dg}t g dg dg d	g d
g}t j| d d f }t|}dD ]}t|dd|d\}}t||dd t||dd q9d S )N
      )g{Gz?t<i?gb?gHWY?)rZ   gիr?gH紁Nk?ۨxV4b?)gb?g`ܴNk?gR*贁N{?Lgם?)g:glWY?gExV4b?r\   r[   )gR%l8@g,0r   r   )g0gCKZ8@gg      ))r   gTs gGrO#c@r   )r   gm>(r   g     |@r   g{Gz?FrL      r   )	r%   aranger(   r   rN   rO   r
   r   r   )indicesrP   rQ   r6   r7   r:   r5   rR   rC   rC   rD   "test_graphical_lasso_iris_singularn   s0   
r`   r"   c                 C   sv   d}d}t | } t|d| d}t|}| jt|||d}tj}zt	 t_t
dddd| W |t_d S |t_w )	Nr]      gQ?r   r   r   r   )verbosealphastol)r   r   r   r#   r$   r%   r&   sysstdoutr   r	   r+   )r   r2   r3   r4   r5   r6   orig_stdoutrC   rC   rD   test_graphical_lasso_cv   s   
rh   alphas_container_type)r/   tupler(   c                 C   sh   t g dg dg dg dg}t jd}|jg d|dd}td	d
g| }t|ddd| dS )zCheck that we can pass an array-like to `alphas`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/22489
    g?r   皙?r   r   g?r   r   rl   r   g333333?r   r   r   r   gffffff?r   r   r   r   r      r.   r5   r   g{Gz?gQ?r   r"   )rc   rd   n_jobsN)r%   r(   randomRandomStater$   r   r	   r+   )ri   true_covrngr6   rc   rC   rC   rD   'test_graphical_lasso_cv_alphas_iterable   s   rx   suffixr,   
test_scorez!ignore:Key*:FutureWarning:sklearnc                    s  d}d}d}t g dg dg dg dg}t jd}|jg d	|d
d}t|||d|  j}|| d }dg}	fddt|D }
|	|
 D ]}||v sTJ t	|| |ks^J qLt 
 fdd|
D }|jdd}|jdd}t jd  | t jd  | d S )Nr   r]      rk   rm   rn   ro   r   rp   rq   rr   cvrc   n_refinementsr"   rc   c                    s   g | ]
}d | d  qS )split_rC   ).0i)ry   rC   rD   
<listcomp>   s    z2test_graphical_lasso_cv_scores.<locals>.<listcomp>c                    s   g | ]} j | qS rC   )cv_results_)r   key)r5   rC   rD   r      s    )axismean_std_)r%   r(   rt   ru   r$   r	   r+   r   rangelenasarrayr.   stdr   )ry   splitsn_alphasr~   rv   rw   r6   
cv_resultstotal_alphaskeys
split_keysr   	cv_scoresexpected_meanexpected_stdrC   )r5   ry   rD   test_graphical_lasso_cv_scores   s6   r   c               	   C   s   d} d}d}t g dg dg dg dg}t jd}|jg d	|d
d}t| ||d|}|j}ddgdd t| D  }|D ],}	|		dd}
d|	 d|
 d}t
jt|d ||	  W d   n1 sjw   Y  qCdS )zqCheck that the following keys in cv_results_ are deprecated: `mean_score`,
    `std_score`, and `split(k)_score`.r   r]   r{   rk   rm   rn   ro   r   rp   rq   rr   r|   
mean_score	std_scorec                 S   s   g | ]}d | dqS )r   _scorerC   )r   krC   rC   rD   r      s    z=test_graphical_lasso_cv_scores_deprecated.<locals>.<listcomp>r   _test_scorezKey: 'z9', is deprecated in 1.0 and will be removed in 1.2. Use 'z	' instead)matchN)r%   r(   rt   ru   r$   r	   r+   r   r   replacepytestwarnsFutureWarning)r   r   r~   rv   rw   r6   r5   r   deprecated_keysdeprecated_keynew_keymsgrC   rC   rD   )test_graphical_lasso_cv_scores_deprecated   s<   
r   )r   )r"   )%__doc__re   r   numpyr%   scipyr   numpy.testingr   sklearn.utils._testingr   r   r   sklearn.covariancer   r   r	   r
   sklearn.datasetsr   ior   sklearn.utilsr   sklearnr   rE   rS   rW   r`   rh   markparametrizerx   filterwarningsr   r   rC   rC   rC   rD   <module>   s2    
+
 

%