
    ިsg                     |    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      V/var/www/html/venv/lib/python3.12/site-packages/networkx/linalg/tests/test_spectrum.py	<genexpr>z+TestSpectrum.setup_class.<locals>.<genexpr>   s%      
6<q!QcC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
 
 	
CFFI&    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3DFF;<


&&q%0233DGGDIJ


&&q%0233DGG<=


&&q%0233DGGG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    2771:+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    #RWWR[11cQ_6MNO2,,TVVq9:


&&q%0B--dff:;B))$&&12


&&r2.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&   