
    çg                     |    d dl Z  e j        d          Z e j        d           d dlZd dlmZ  G d d          ZdS )    Nnumpyscipy)havel_hakimi_graphc                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )TestSpectrumc                 x   g d}t          |          | _        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      _/var/www/html/ai-engine/env/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
   )r   Gnx
path_graphPGraphedgesWGadd_nodeDiGraphDGadd_path)clsdegs     r   setup_classzTestSpectrum.setup_class   s    oo"3''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_spectrum5   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importorskipr)   networkxr   networkx.generators.degree_seqr   r   r   r   r   <module>rO      s    V!!  G        = = = = = ==/ =/ =/ =/ =/ =/ =/ =/ =/ =/r   