
    Vh
                     p    d dl Z d dlZ e j                  d      Z e j                  d        G d d      Zy)    Nnumpyscipyc                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)TestSpectrumc                    g d}t        j                  |      | _        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      S/home/dcms/DCMS/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	   )nxhavel_hakimi_graphG
path_graphPGraphedgesWGadd_nodeDiGraphDGadd_path)clsdegs     r   setup_classzTestSpectrum.setup_class
   s    %%c*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_spectrum4   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networkxr   importorskipr)   r   r   r&   r   <module>rN      s7     V!   G =/ =/r&   