Ë
    D^(h  ã                   ó|   — d dl Z  e j                  d«      Z e j                  d«       d dlZd dlmZ  G d„ d«      Zy)é    NÚnumpyÚscipy)Úhavel_hakimi_graphc                   ó:   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)ÚTestSpectrumc                 ó~  — g d¢}t        |«      | _        t        j                  d«      | _        t        j
                  d„ | j                  j                  «       D «       «      | _        | j                  j                  d«       t        j                  «       | _
        t        j                  | j                  g d¢«       y )N)é   é   r
   é   r   r	   c              3   ó2   K  — | ]  \  }}||d ddœf–— Œ y­w)ç      à?ç333333Ó?)ÚweightÚotherN© )Ú.0ÚuÚvs      úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/linalg/tests/test_spectrum.pyú	<genexpr>z+TestSpectrum.setup_class.<locals>.<genexpr>   s%   è ø€ ò 
Ù6<°q¸!ˆQ�˜c¨CÑ0Ô1ñ
ùs   ‚é   )r   r   r
   )r   ÚGÚnxÚ
path_graphÚPÚGraphÚedgesÚWGÚadd_nodeÚDiGraphÚDGÚadd_path)ÚclsÚdegs     r   Úsetup_classzTestSpectrum.setup_class   s{   € âˆÜ" 3Ó'ˆŒÜ—‘˜aÓ ˆŒÜ—‘ñ 
Ø@CÇÁÇÁÃô
ó 
ˆŒð 	�‰�‰˜ÔÜ—‘“ˆŒÜ
�‰�C—F‘FšIÕ&ó    c                 ó†  — t         j                  g d¢«      }t        t        j                  | j
                  «      «      }t         j                  j                  ||«       t        t        j                  | j                  d¬«      «      }t         j                  j                  ||«       t        t        j                  | j                  «      «      }t         j                  j                  |d|z  «       t        t        j                  | j                  d¬«      «      }t         j                  j                  |d|z  «       y)zLaplacian eigenvalues)r   r   r   r	   r   N©r   r   r   r   )	ÚnpÚarrayÚsortedr   Úlaplacian_spectrumr   ÚtestingÚassert_almost_equalr   ©ÚselfÚevalsÚes      r   Útest_laplacian_spectrumz$TestSpectrum.test_laplacian_spectrum   sÐ   € ä—‘šÓ)ˆÜ”2×(Ñ(¨¯©Ó0Ó1ˆÜ
�
‰
×&Ñ& q¨%Ô0Ü”2×(Ñ(¨¯©¸Ô>Ó?ˆÜ
�
‰
×&Ñ& q¨%Ô0Ü”2×(Ñ(¨¯©Ó1Ó2ˆÜ
�
‰
×&Ñ& q¨#°©+Ô6Ü”2×(Ñ(¨¯©¸ÔAÓBˆÜ
�
‰
×&Ñ& q¨#°©+Õ6r&   c                 óz  — t         j                  g d¢«      }t        t        j                  | j
                  «      «      }t         j                  j                  ||«       t        t        j                  | j                  d¬«      «      }t         j                  j                  ||«       t        t        j                  | j                  «      «      }t         j                  j                  ||«       t        t        j                  | j                  d¬«      «      }t         j                  j                  ||«       y)z Normalized Laplacian eigenvalues)r   r   gI¾é`®è?g      ø?gï ‹Ï¨û?Nr(   r   )	r)   r*   r+   r   Únormalized_laplacian_spectrumr   r-   r.   r   r/   s      r   Ú"test_normalized_laplacian_spectrumz/TestSpectrum.test_normalized_laplacian_spectrum#   sÉ   € ä—‘ÒFÓGˆÜ”2×3Ñ3°D·F±FÓ;Ó<ˆÜ
�
‰
×&Ñ& q¨%Ô0Ü”2×3Ñ3°D·G±GÀDÔIÓJˆÜ
�
‰
×&Ñ& q¨%Ô0Ü”2×3Ñ3°D·G±GÓ<Ó=ˆÜ
�
‰
×&Ñ& q¨%Ô0Ü”2×3Ñ3°D·G±GÀGÔLÓMˆÜ
�
‰
×&Ñ& q¨%Õ0r&   c                 ó  — t         j                  t         j                  d«       dt         j                  d«      g«      }t        t	        j
                  | j                  «      «      }t         j                  j                  ||«       y)zAdjacency eigenvaluesr
   r   N)	r)   r*   Úsqrtr+   r   Úadjacency_spectrumr   r-   r.   r/   s      r   Útest_adjacency_spectrumz$TestSpectrum.test_adjacency_spectrum/   sV   € ä—‘œ2Ÿ7™7 1›:˜+ q¬"¯'©'°!«*Ð5Ó6ˆÜ”2×(Ñ(¨¯©Ó0Ó1ˆÜ
�
‰
×&Ñ& q¨%Õ0r&   c                 ó€  — t         j                  g d¢«      }t        t        j                  | j
                  «      «      }t         j                  j                  ||«       t         j                  g d¢«      }t        t        j                  | j                  «      «      }t         j                  j                  ||«       y)zModularity eigenvalues)g      ø¿ç        r<   )g      à¿r<   r<   N)	r)   r*   r+   r   Úmodularity_spectrumr   r-   r.   r!   r/   s      r   Útest_modularity_spectrumz%TestSpectrum.test_modularity_spectrum5   sz   € ä—‘Ò)Ó*ˆÜ”2×)Ñ)¨$¯&©&Ó1Ó2ˆÜ
�
‰
×&Ñ& q¨%Ô0ä—‘Ò)Ó*ˆÜ”2×)Ñ)¨$¯'©'Ó2Ó3ˆÜ
�
‰
×&Ñ& q¨%Õ0r&   c           	      ó  — t         j                  ddt         j                  d«      z
  z  dddt         j                  d«      z   z  g«      }t        t	        j
                  | j                  d¬«      «      }t         j                  j                  ||«       t        t	        j
                  | j                  d¬«      «      }t        t	        j                  | j                  «      «      }t         j                  j                  ||«       y)	zBethe Hessian eigenvaluesr   é	   é!   r   r
   )Úrr   N)
r)   r*   r8   r+   r   Úbethe_hessian_spectrumr   r-   r.   r,   )r0   r1   r2   Úe1Úe2s        r   Útest_bethe_hessian_spectrumz(TestSpectrum.test_bethe_hessian_spectrum?   s°   € ä—‘˜# ¤R§W¡W¨R£[¡Ñ1°1°c¸QÄÇÁÈÃ¹_Ñ6MÐNÓOˆÜ”2×,Ñ,¨T¯V©V°qÔ9Ó:ˆÜ
�
‰
×&Ñ& q¨%Ô0ä”B×-Ñ-¨d¯f©f¸Ô:Ó;ˆÜ”B×)Ñ)¨$¯&©&Ó1Ó2ˆÜ
�
‰
×&Ñ& r¨2Õ.r&   N)
Ú__name__Ú
__module__Ú__qualname__Úclassmethodr%   r3   r6   r:   r>   rF   r   r&   r   r   r   
   s-   „ Øñ	'ó ð	'ò
7ò
1ò1ò1ó/r&   r   )ÚpytestÚimportorskipr)   Únetworkxr   Únetworkx.generators.degree_seqr   r   r   r&   r   ú<module>rO      s:   ðÛ à€V×Ñ˜Ó!€Ø €× Ñ �GÔ ã Ý =÷=/ò =/r&   