
    ri,                     h   d Z ddlZddlm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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mZmZ d Zd Zej>                  jA                  dddg      ej>                  jC                  d      d               Z"d Z#d Z$ej>                  jA                  dddg      d        Z%d Z&ej>                  jA                  dg d      d        Z'ej>                  jA                  dddge(dfddge(dfddge)d fg      d!        Z*d" Z+ ed#$      d%        Z,d& Z-y)'z Test the graphical_lasso module.    N)StringIO)assert_allclose)linalg)config_contextdatasets)GraphicalLassoGraphicalLassoCVempirical_covariancegraphical_lasso)make_sparse_spd_matrix)
GroupKFold)check_random_state)_convert_containerassert_array_almost_equalassert_array_lessc                    d}d}t        |       }t        |d|      }t        j                  |      }|j	                  t        j                  |      ||      }t        |      }dD ]  }t               }	t               }
dD ]i  }t        |d||d	d
d      \  }}}||	|<   ||
|<   t        j                  |      j                  \  }}|dk(  rKt        t        j                  |      d       k t        |	d   |	d   d       t        |
d   |
d   d        t        dd	d
d      j!                  |      }|j#                  |       t        |j$                  	d   d       ||j'                  d      z
  }t)               }dD ]8  }t        |      j!                  |      j*                  }|j-                  |       : t/        |d   |d          y)z!Test the graphical lasso solvers.
   d   gffffff?alpharandom_statesize)        皙?      ?cdlarsTgHz>gdy=)return_costsr   modetolenet_tolmax_iterr   g|=r   r   gMb`?atolr   )r   r"   r#   r$   ư>)rtol)FTassume_centered   N)r   r   r   invmultivariate_normalnpzerosr
   dictr   arrayTr   diffr   r   fitscorecovariance_meanlist
precision_appendr   )global_random_seeddim	n_samplesr   preccovXemp_covr   covsicovsmethodcov_icov_costsdual_gapmodelZprecsr*   prec_s                        k/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/covariance/tests/test_graphical_lasso.pytest_graphical_lassosrN      s    CI%&89L!#TMD
**T
C((#)(LA"1%G! ?v$ 	9F!0!"D%  DL!E&M hhuo//OE8A:!"''%.%8!	9$ 	T
DLt<dU6]>-?2 4%#NRRSTUE	KKNE%%tDz= 	
AFF1IAFE( ?CCAFQQU eAha1    c                    t         j                  j                  |       j                  dd      }t	        |d      }t        dd      j                  |      }t        |j                  t         j                  j                  |             t        |d      \  }}t        |t         j                  j                  |             y	)
z;Test graphical_lasso's early return condition when alpha=0.r   r   Tr)   r   precomputed)r   
covariance)r   N)r.   randomRandomStaterandnr
   r   r4   r   r9   r   r,   r   )r;   r@   rA   rI   _	precisions         rM   (test_graphical_lasso_when_alpha_equals_0rX   N   s    
		0177R@A"1d;G}=AA'JEE$$biimmG&<="7!4LAyIryy}}W56rO   r!   r   r   z-ignore::sklearn.exceptions.ConvergenceWarningc                     t        j                  ddd      \  }}t        |      }t        |d| dd      \  }}}|dk(  sJ y )	Ni     r   )r=   
n_featuresr   皙?   T)r!   r$   return_n_iter)r   make_classificationr
   r   )r!   r@   rV   rA   n_iters        rM   test_graphical_lasso_n_iterra   Z   sP     ''%BUVWDAq"1%G"4!4LAq& Q;;rO   c                  <   t        j                  g dg dg dg dg      } t        j                  g dg dg dg dg      }t        j                         j                  }t        |      }d	D ],  }t        |d
d|      \  }}t        ||        t        ||       . y )N)gJSo?r   ڧ1?羥{!<?)r   g-ꊾ'?r   r   )rc   r   g[@瘈ο]?)rd   r   re   dw?)glE!N?r   ',r   )r   g5Ry;2@r   r   )rg   r   ggC%d?XIſ)r   r   rh   gv?r   g      ?Fr   r    r!   r.   r1   r   	load_irisdatar
   r   r   )cov_Ricov_Rr@   rA   rD   r?   icovs          rM   test_graphical_lasso_irisrp   f   s     HH9999		
E XX8798		
F 	!!A"1%G  0#G3UQWX	T!#u-!$/0rO   c                  6   t        j                  ddgddgg      } t        j                  ddgddgg      }t        j                         j                  d d dd f   }t        |      }dD ],  }t        |d	d
|      \  }}t        ||        t        ||       . y )Ng@gHZ?rf   gɉ1t?gO{̓%	g4#(#e @r]   r   r   Fri   rj   )	cov_skggm
icov_skggmr@   rA   rD   r?   ro   s          rM   test_graph_lasso_2Drt      s     :x08Z2HIJIJ4{J6OPQJ!!!QR%(A"1%G  4#G3UQWX	T!#y1!$
34rO   rD   c                 p   t        j                  dd      }t        j                  g dg dg dg dg      }t        j                  g dg dg d	g d
g      }t        j                         j
                  |d d f   }t        |      }t        |dd|       \  }}t        ||d       t        ||d       y )Nr      )g{Gz?t<i?gb?gHWY?)rw   gիr?gH紁Nk?ۨxV4b?)gb?g`ܴNk?gR*贁N{?Lgם?)g:glWY?gExV4b?ry   rx   )gR%l8@g,0r   r   )g0gCKZ8@gg      ))r   gTs gGrO#c@r   )r   gm>(r   g     |@g{Gz?Fri   r'   r%   gh㈵>)	r.   aranger1   r   rk   rl   r
   r   r   )rD   indicesrm   rn   r@   rA   r?   ro   s           rM   "test_graphical_lasso_iris_singularr|      s     iiBG HHFPPP		
E XX2=3,		
F 	!!'1*-A"1%Gt%fUICCT*D&t,rO   c                    d}d}t         j                  j                  |       }t        |d|      }t	        j
                  |      }|j                  t        j                  |      ||      }t        j                  }	 t               t        _	        t        ddd      j                  |       |t        _	        y # |t        _	        w xY w)	N      gQ?r   r   r   r   )verbosealphasr"   )r.   rS   rT   r   r   r,   r-   r/   sysstdoutr   r	   r4   )r;   r<   r=   r   r>   r?   r@   orig_stdouts           rM   test_graphical_lasso_cvr      s    
CI99(();<L!#TMD
**T
C((#)(LA**K!Z
QD9==a@ 
[
s   ?0B; ;Calphas_container_type)r8   tupler1   c                    t        j                  g dg dg dg dg      }t         j                  j                  d      }|j	                  g d|d      }t        d	d
g|       }t        |dd      j                  |       y)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   r   g?r   r   r\   r   g333333?r   r   r   r   gffffff?r   r   r   r   r      r7   r?   r   g{Gz?Q?r   r+   r   r"   n_jobsN)r.   r1   rS   rT   r-   r   r	   r4   )r   true_covrngr@   r   s        rM   'test_graphical_lasso_cv_alphas_iterabler      sx     xx    		
H ))


"C\xcJAt.CDFFQ7;;A>rO   zalphas,err_type,err_msgg{Gzr   zmust be > 0
not_numberzmust be an instance of floatc                 B   t        j                  g dg dg dg dg      }t         j                  j                  d      }|j	                  g d|d      }t        j                  ||	      5  t        | d
d      j                  |       ddd       y# 1 sw Y   yxY w)zCheck that if an array-like containing a value
    outside of (0, inf] is passed to `alphas`, a ValueError is raised.
    Check if a string is passed, a TypeError is raised.
    r   r   r   r   r   r   r   r   )matchr   r+   r   N)	r.   r1   rS   rT   r-   pytestraisesr	   r4   )r   err_typeerr_msgr   r   r@   s         rM   ,test_graphical_lasso_cv_alphas_invalid_arrayr      s     xx    		
H ))


"C\xcJA	xw	/ CD;??BC C Cs   .BBc                    d}d}d}t        j                  g dg dg dg dg      }t         j                  j                  |       }|j	                  g d|d	
      }t        |||      j                  |      }t        ||||       y )N   r~      r   r   r   r   r   r   r   cvr   n_refinementsr?   n_splitsr   n_alphas)r.   r1   rS   rT   r-   r	   r4   !_assert_graphical_lasso_cv_scores)r;   splitsr   r   r   r   r@   r?   s           rM   test_graphical_lasso_cv_scoresr      s    FHMxx    		
H ))

 2
3C\xcJA
fX]
S
W
W	C &#	rO   T)enable_metadata_routingc                    d}d}d}t        j                  g dg dg dg dg      }t         j                  j                  |       }|j	                  g d|d	      }|j
                  d
   }|j                  d
d|      }d|i}	t        |      }
|
j                  d        t        |
||      j                  |fi |	}t        ||||       y)zVCheck that `GraphicalLassoCV` internally dispatches metadata to
    the splitter.
    r~   r   r   r   r   r   r   i,  r   r   groups)r   T)r   r   r   N)r.   r1   rS   rT   r-   shaperandintr   set_split_requestr	   r4   r   )r;   r   r   r   r   r   r@   r=   r   paramsr   r?   s               rM   +test_graphical_lasso_cv_scores_with_routingr     s    
 FHMxx    		
H ))

 2
3C\xcJA
I[[Ay)FF	V	$B%
S
b
O
S
S	C &#	rO   c                    | j                   }||z  dz   }dg}t        |      D cg c]  }d| d
 }}||z   D ]  }	|	|v sJ t        ||	         |k(  rJ  t        j                  |D 	cg c]  }	| j                   |	    c}	      }
|
j                  d      }|
j                  d      }t        | j                   d   |       t        | j                   d   |       y c c}w c c}	w )	Nr+   r   split_test_scorer   )axismean_test_scorestd_test_score)cv_results_rangelenr.   asarrayr7   stdr   )r?   r   r   r   
cv_resultstotal_alphaskeysi
split_keyskey	cv_scoresexpected_meanexpected_stds                rM   r   r   :  s    J !8+a/L:D27/BQE!K(BJBj  4j   :c?#|3334 

JGSCOOC0GHINNN*M==a=(LCOO$56FCOO$45|D C
 Hs   C*C#).__doc__r   ior   numpyr.   r   numpy.testingr   scipyr   sklearnr   r   sklearn.covariancer   r	   r
   r   sklearn.datasetsr   sklearn.model_selectionr   sklearn.utilsr   sklearn.utils._testingr   r   r   rN   rX   markparametrizefilterwarningsra   rp   rt   r|   r   r   
ValueError	TypeErrorr   r   r   r    rO   rM   <module>r      sh   & 
    )  ,  4 . , /2d	7 $0KL M 1064 D&>2&- 3&-R!$ 02LM? N?( 

M2
TJ.
	y*HICC(4 -  . FErO   