
    ި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y)TestModularityc                     g d}t        |      | _        t        j                         | _        | j                  j                  d       y )N)      r
      r   )
)r   r
   )r   r	   )r	   r   )r	   r
   )r	      )   r   )r      )r   r   )r   r   )r   r   )r   GnxDiGraphDGadd_edges_from)clsdegs     X/var/www/html/venv/lib/python3.12/site-packages/networkx/linalg/tests/test_modularity.pysetup_classzTestModularity.setup_class   s9    "3' 	
    c                 z   t         j                  g dg dg dg dg dg      }g d}t         j                  j                  t	        j
                  | j                        |       t         j                  j                  t	        j
                  | j                  |      |t         j                  ||                y)	zModularity matrixg            ?r         ?        r               ?      пr   r   r    r   r!   r   r   r!   r!   g      r   r   r   r   r   r   )r   r   r   r
   r	   nodelistN)nparraytestingassert_equalr   modularity_matrixr   ix_)selfBpermutations      r   test_modularityzTestModularity.test_modularity!   s     HH9448.	0 1 &


 4 4TVV <a@


  +>bff[+./	
r   c                    t         j                  g dg dg dg dg dg      }| j                  j                         }|j	                         D ]  \  }}d|j                  ||f   d<    t         j
                  j                  t        j                  |      |       t         j
                  j                  t        j                  |d      d|z         y	)
zModularity matrix with weightsr   r   r"   r#   r$   r    weight)r2   N)	r'   r(   r   copyedgesr)   r*   r   r+   )r-   r.   
G_weightedn1n2s        r   test_modularity_weightz%TestModularity.test_modularity_weight2   s     HH9448.	0 1 VV[[]
 &&( 	5FB14JRV$X.	5 	

 4 4Z @!D


  H=sQw	
r   c           	         t         j                  g dg dg dg dg dg dg      }g d}g d}t        j                  | j                  t        | j                        	      }t         j                  j                  ||       t         j                  j                  t        j                  | j                  |	      |t         j                  ||                y
)zDirected Modularity matrix)皙ɿ333333?皙?皙ٿr=   r=   )r   r   r   r   r   r   )gffffff?皙?g333333ӿ333333r>   r?   )r:   r=   r:   r=   r;   r;   )r:   r=   r:   r;   r=   r;   )皙r:   r@   r<   r:   r:   )r   r   r
   r	   r   r   )r   r   r   r
   r	   r   r%   N)	r'   r(   r   directed_modularity_matrixr   sortedr)   r*   r,   )r-   r.   node_permutationidx_permutationmms        r   test_directed_modularityz'TestModularity.test_directed_modularityF   s     HH:39:::< = .,**477VDGG_M


A&


))$''<LMbff_o67	
r   N)__name__
__module____qualname__classmethodr   r0   r8   rF    r   r   r   r   
   s#    
 
*
"
(
r   r   )pytestimportorskipr'   networkxr   networkx.generators.degree_seqr   r   rK   r   r   <module>rP      s<    V!   G   =M
 M
r   