
    \Mh
                     p    d dl Z d dlZ e j        d          Z e j        d            G d d          ZdS )    Nnumpyscipyc                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )TestSpectrumc                    g d}t          j        |          | _        t          j        d          | _        t          j        d | j                                        D                       | _        | j                            d           t          j	                    | _
        t          j        | j
        g d           d S )N)      r	      r   r   c              3   ,   K   | ]\  }}||d ddfV  dS )      ?333333?)weightotherN ).0uvs      c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/networkx/linalg/tests/test_spectrum.py	<genexpr>z+TestSpectrum.setup_class.<locals>.<genexpr>   sF       
 
6<q!QcC001
 
 
 
 
 
       )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    oo%c**a   
 
@C
 
 
 
 
 	
CFIII&&&&&r   c                    t                               g d          }t          t          j        | j                            }t           j                            ||           t          t          j        | j        d                    }t           j                            ||           t          t          j        | j                            }t           j                            |d|z             t          t          j        | j        d                    }t           j                            |d|z             dS )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011

&&q%0002(>>>??

&&q%0002(1122

&&q#+6662(AAABB

&&q#+66666r   c                 v   t                               g d          }t          t          j        | j                            }t           j                            ||           t          t          j        | j        d                    }t           j                            ||           t          t          j        | j                            }t           j                            ||           t          t          j        | j        d                    }t           j                            ||           dS )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FFGG23DF;;<<

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

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

&&q%00023DGGLLLMM

&&q%00000r   c                 .   t                               t                               d           dt                               d          g          }t          t	          j        | j                            }t           j                            ||           dS )zAdjacency eigenvaluesr	   r   N)	r)   r*   sqrtr+   r   adjacency_spectrumr   r-   r.   r/   s      r   test_adjacency_spectrumz$TestSpectrum.test_adjacency_spectrum.   sh    2771::+q"''!**5662(0011

&&q%00000r   c                    t                               g d          }t          t          j        | j                            }t           j                            ||           t                               g d          }t          t          j        | j                            }t           j                            ||           dS )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   s    )))**2)$&1122

&&q%000)))**2)$'2233

&&q%00000r   c           	      $   t                               ddt                               d          z
  z  dddt                               d          z   z  g          }t          t	          j        | j        d                    }t           j                            ||           t          t	          j        | j        d                    }t          t	          j	        | j                            }t           j                            ||           dS )	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O2,TVq999::

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

&&r2.....r   N)
__name__
__module____qualname__classmethodr&   r3   r6   r:   r>   rF   r   r   r   r   r   	   sx        	' 	' [	'
7 
7 
7
1 
1 
11 1 11 1 1/ / / / /r   r   )pytestnetworkxr   importorskipr)   r   r   r   r   <module>rN      sq        V!!  G   =/ =/ =/ =/ =/ =/ =/ =/ =/ =/r   