Ë
    8Ò^j¿,  ã                   ó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ÚlarsTgH¯¼šò×z>g•dyáý¥=)Úreturn_costsr   ÚmodeÚtolÚenet_tolÚmax_iterr   g»½×Ùß|Û=r   r   gü©ñÒMb`?©Ú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                        úx/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/covariance/tests/test_graphical_lasso.pyÚtest_graphical_lassosrN      sÁ  € ð €CØ€IÜ%Ð&8Ó9€LÜ! #¨TÀÔM€DÜ
�*‰*�TÓ
€CØ×(Ñ(¬¯©°#«¸À)Ð(ÓL€AÜ" 1Ó%€Gà!ò ?ˆÜ‹vˆÜ“ˆØ$ò 	9ˆFÜ!0ØØ!ØØØØØô"ÑˆD�%˜ð  ˆD�‰LØ!ˆE�&‰MÜ Ÿh™h u›o×/Ñ/‰OˆE�8à˜A“:ä!¤"§'¡'¨%£.°%Õ8ð!	9ô$ 	˜˜T™
 D¨¡L°tÕ<Ü˜˜d™ U¨6¡]¸Ö>ð-?ô2  ¨4¸%È#ÔN×RÑRÐSTÓU€EØ	‡K�K�„NÜ�E×%Ñ% t¨D¡z¸Õ=ð 	
ˆA�F‰F�1‹I‰€AÜ‹F€EØ(ò ˆÜ¨Ô?×CÑCÀAÓF×QÑQˆØ�‰�UÕðô ˜e A™h¨¨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Ü" 1°dÔ;€Gä ¨}Ô=×AÑAÀ'ÓJ€EÜ�E×$Ñ$¤b§i¡i§m¡m°GÓ&<Ô=ä" 7°!Ô4�L€A€yÜ�IœrŸy™yŸ}™}¨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   € ô ×'Ñ'°%ÀBÐUVÔW�D€A€qÜ" 1Ó%€Gä"Ø�˜4¨!¸4ô�L€A€qˆ&ð �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   çóÞÿdßwâ?)glåÊE!Nø?r   ç¦',ñ€²À¿r   )r   g5ÒRy;2@r   r   )rg   r   gŽg†C%dÖ?çXéIô�Å¿)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‰Hâ9Ú9Ú9Ú9ð		
ó€Eô �X‰Xâ8Ú7Ú9Ú8ð		
ó€Fô 	×ÑÓ×!Ñ!€AÜ" 1Ó%€GØ ò 0ˆÜ# G°3ÀUÐQWÔ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×ê–Ã@gŒHZÖýò?rf   gÃÉ‰¸1tø?gO{Ì“%	Àg¸4#(#e @r]   r   r   Fri   rj   )Ú	cov_skggmÚ
icov_skggmr@   rA   rD   r?   ro   s          rM   Útest_graph_lasso_2Drt   �   sŸ   € ô —‘˜: xÐ0°8¸ZÐ2HÐIÓJ€Iä—‘˜J¨Ð4°{ÀJÐ6OÐPÓQ€JÜ×ÑÓ×!Ñ!¢! Q¡R %Ñ(€AÜ" 1Ó%€GØ ò 4ˆÜ# G°3ÀUÐQWÔ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{®Gáz´?çtì<­i­?g­üªÈÑb?gHâŽWµY?)rw   gÕ«rûƒµ?gHýç´�Nk?çÛ¨šxV4b?)gå¢ÈÑb?gè`Ü´�Nk?gR*è´�N{?çLÆgö×�?)g:glWµY?gEë’xV4b?ry   rx   )gR§°%l8@gƒ¯,ôèÔ0Àr   r   )gŸ¹éÔ0ÀgÁCáKZ8@gû‘°ÜÓÀg      )À)r   gTs —ÜÓÀgìGÂrO#c@r   )r   gm>ãÿÿ(Àr   g     è|@g{®Gáz„?Fri   r'   r%   gñhãˆµøä>)	r.   Úaranger1   r   rk   rl   r
   r   r   )rD   Úindicesrm   rn   r@   rA   r?   ro   s           rM   Ú"test_graphical_lasso_iris_singularr|   �   s«   € ô �i‰i˜˜BÓ€Gô �H‰HâFÚPÚPÚPð		
ó€Eô �X‰Xâ2Ú=Ú3Ú,ð		
ó€Fô 	×ÑÓ×!Ñ! 'ª1 *Ñ-€AÜ" 1Ó%€GÜ ¨tÀ%ÈfÔU�I€CˆÜ�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Ü—9‘9×(Ñ(Ð);Ó<€LÜ! #¨TÀÔM€DÜ
�*‰*�TÓ
€CØ×(Ñ(¬¯©°#«¸À)Ð(ÓL€Aä—*‘*€Kð!Ü“ZŒŒ
ä ¨Q°DÔ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)z’Check 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{®Gáz”?ç¸…ë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   € ô �x‰xâ Ú Ú Ú ð		
ó€Hô �)‰)×
Ñ
 Ó
"€CØ×Ñ¢\°xÀcÐÓJ€AÜ  t Ð.CÓD€FÜ˜F¨°QÔ7×;Ñ;¸AÕ>rO   zalphas,err_type,err_msgg{®Gáz”¿r�   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)z²Check 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‰xâ Ú Ú Ú ð		
ó€Hô �)‰)×
Ñ
 Ó
"€CØ×Ñ¢\°xÀcÐÓJ€Aä	�‰�x wÔ	/ñ 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Ü�x‰xâ Ú Ú Ú ð		
ó€Hô �)‰)×
Ñ
Ð 2Ó
3€CØ×Ñ¢\°xÀcÐÓJ€AÜ
˜f¨XÀ]Ô
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Ü�x‰xâ Ú Ú Ú ð		
ó€Hô �)‰)×
Ñ
Ð 2Ó
3€CØ×Ñ¢\°xÀcÐÓJ€AØ—‘˜‘
€IØ�[‰[˜˜A˜yÓ)€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Øˆ:€DÜ27¸³/ÖB¨Q�E˜!˜˜KÒ(ÐB€JÐBØ�jÑ ò 4ˆØ�jÑ Ð Ð Ü�:˜c‘?Ó# |Ó3Ð3Ð3ð4ô —
‘
¸JÖG°S˜CŸO™O¨CÓ0ÒGÓH€IØ—N‘N¨�NÓ*€MØ—=‘= a�=Ó(€Lä�C—O‘OÐ$5Ñ6¸ÔFÜ�C—O‘OÐ$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Ý .Ý ,÷ñ ò/2òd	7ð ‡�×Ñ˜ $¨ Ó0Ø‡�×ÑÐKÓLñó Mó 1ðò0ò64ð ‡�×Ñ˜ D¨& >Ó2ñ&-ó 3ð&-òR!ð$ ‡�×ÑÐ0Ò2LÓMñ?ó Nð?ð( ‡�×ÑØà
�ˆ˜
 MÐ2Ø
ˆTˆ�J Ð.Ø
˜Ð	˜yÐ*HÐIðóñCóðCò(ñ4 ¨Ô-ñ ó .ð óFErO   