
    Pi,                        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                             dddg          ej        !                    d          d                         Z"d Z#d Z$ej                             dddg          d             Z%d Z&ej                             dg d          d             Z'ej                             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-dS )'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                 6   d}d}t          |           }t          |d|          }t          j        |          }|                    t          j        |          ||          }t          |          }dD ]}t                      }	t                      }
dD ]j}t          |d||d	d
d          \  }}}||	|<   ||
|<   t          j
        |          j        \  }}|dk    s"t          t          j        |          d           kt          |	d         |	d         d           t          |
d         |
d         d           t          dd	d
d                              |          }|                    |           t          |j        |	d         d           ||                    d          z
  }t)                      }dD ]?}t          |                              |          j        }|                    |           @t/          |d         |d                    dS )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                        /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sklearn/covariance/tests/test_graphical_lasso.pytest_graphical_lassosrN      s(    CI%&899L!#TMMMD
*T

C((#)(LLA"1%%G! ? ?vv$ 	9 	9F!0!" " "D%  DL!E&M huoo/OE8A::!"'%..%888T
DLt<<<<dU6]>>>>> 4%#NNNRRSTUUE	KKNNNE%tDz==== 	
AFF1IIAFFE(  ???CCAFFQUeAha11111    c                    t           j                            |                               dd          }t	          |d          }t          dd                              |          }t          |j        t           j	        
                    |                     t          |d          \  }}t          |t           j	        
                    |                     d	S )
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177R@@A"1d;;;G}===AA'JJEE$bimmG&<&<==="7!444LAyIry}}W5566666rO   r!   r   r   z-ignore::sklearn.exceptions.ConvergenceWarningc                     t          j        ddd          \  }}t          |          }t          |d| dd          \  }}}|dk    sJ d S )	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   se     '%BUVWWWDAq"1%%G"4!4  LAq& Q;;;;;;rO   c                  J   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 ]8}t          |d
d|          \  }}t          ||            t          ||           9d S )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     H999999999999		
 E X888777999888		
 F 	!A"1%%G  0 0#G3UQWXXX	T!#u---!$////0 0rO   c                  J   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 ]8}t          |d	d
|          \  }}t          ||            t          ||           9d S )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JJIJ4{J6OPQQJ!!!!QRR%(A"1%%G  4 4#G3UQWXXX	T!#y111!$
33334 4rO   rD   c                    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           d S )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    iBG HFFFPPPPPPPPP		
 E X222===333,,,		
 F 	!'111*-A"1%%Gt%fUUUICCT****D&t,,,,,,rO   c                    d}d}t           j                            |           }t          |d|          }t	          j        |          }|                    t          j        |          ||          }t          j	        }	 t                      t          _	        t          ddd                              |           |t          _	        d S # |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9(();<<L!#TMMMD
*T

C((#)(LLA*K!ZZ
QD999==a@@@ 


[
    s   =C Calphas_container_type)r8   tupler1   c                 &   t          j        g dg dg dg dg          }t           j                            d          }|                    g d|d          }t          d	d
g|           }t          |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   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      s     x            		
 H )


"
"C\\\xcJJAt.CDDFFQ777;;A>>>>>rO   zalphas,err_type,err_msgg{Gzr   zmust be > 0
not_numberzmust be an instance of floatc                 `   t          j        g dg dg dg dg          }t           j                            d          }|                    g d|d          }t          j        ||	          5  t          | d
d                              |           ddd           dS # 1 swxY w Y   dS )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#    x            		
 H )


"
"C\\\xcJJA	xw	/	/	/ C CD;;;??BBBC C C C C C C C C C C C C C C C C Cs   0&B##B'*B'c                 4   d}d}d}t          j        g dg dg dg dg          }t           j                            |           }|                    g d|d	
          }t          |||                              |          }t          ||||           d S )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x            		
 H )

 2
3
3C\\\xcJJA
fX]
S
S
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                            |           }|                    g d|d	          }|j        d
         }|                    d
d|          }d|i}	t          |          }
|
                    d            t          |
||          j
        |fi |	}t          ||||           dS )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     s7   
 FHMx            		
 H )

 2
3
3C\\\xcJJA
I[[Ay))FF	V	$	$	$B%%%
S
b
O
O
O
S	  C &#	     rO   c                      j         }||z  dz   }dg}d t          |          D             }||z   D ]#}||v sJ t          ||                   |k    sJ $t          j         fd|D                       }	|	                    d          }
|	                    d          }t           j         d         |
           t           j         d         |           d S )	Nr+   r   c                     g | ]}d | d	S )split_test_score ).0is     rM   
<listcomp>z5_assert_graphical_lasso_cv_scores.<locals>.<listcomp>@  s$    BBBQ(!(((BBBrO   c                 *    g | ]}j         |         S r   )cv_results_)r   keyr?   s     rM   r   z5_assert_graphical_lasso_cv_scores.<locals>.<listcomp>E  s     GGGSCOC0GGGrO   r   )axismean_test_scorestd_test_score)r   rangelenr.   asarrayr7   stdr   )r?   r   r   r   
cv_resultstotal_alphaskeys
split_keysr   	cv_scoresexpected_meanexpected_stds   `           rM   r   r   :  s    J !8+a/L:DBB%//BBBJj  4 4j    :c?##|33333
GGGGJGGGHHINNN**M==a=((LCO$56FFFCO$45|DDDDDrO   ).__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   r   rO   rM   <module>r      s   & & 



            ) ) ) ) ) )       , , , , , , , ,            4 3 3 3 3 3 . . . . . . , , , , , ,         /2 /2 /2d	7 	7 	7 $00KLL  ML 100 0 064 4 4 D&>22&- &- 32&-R! ! !$ 02L2L2LMM? ? NM?( 

M2
TJ.
	y*HI C C C(  4 ---    .- FE E E E ErO   