
    Vh6                     |    d dl Z d dlZ e j                  d      Z e j                  d        G d d      Zd Zd Zy)    Nnumpyscipyc                   (    e Zd Zed        Zd Zd Zy)TestLaplacianc                    g d}t        j                  |      | _        t        j                  d | j                  j	                         D              | _        | j
                  j                  d       t        j                  | j                        | _        | j                  j                         | _
        | j                  j                         D ]  }| j                  j                  ||         t        j                         | _        | j                  j                  d       t        j                   | j                        | _        t        j                  d | j                  j	                         D              | _        | j                  j                         | _        | j&                  j                         D ]  }| j&                  j                  ||         y )N)      r	      r   c              3   2   K   | ]  \  }}||d ddf  yw      ?333333?)weightotherN .0uvs      T/home/dcms/DCMS/lib/python3.12/site-packages/networkx/linalg/tests/test_laplacian.py	<genexpr>z,TestLaplacian.setup_class.<locals>.<genexpr>   s%      
6<q!QcC01
      
r
   r	   r
   r   )r   r
   )r   r	   )r      )r   r   )r      )r   r   )r   r   )r   r   c              3   2   K   | ]  \  }}||d ddf  ywr   r   r   s      r   r   z,TestLaplacian.setup_class.<locals>.<genexpr>+   s%      
6<q!QcC01
r   )nxhavel_hakimi_graphGGraphedgesWGadd_node
MultiGraphMGcopyGslnodesadd_edgeDiGraphDiGadd_edges_fromMultiDiGraphDiMGDiWGDiGsl)clsdegnodes      r   setup_classzTestLaplacian.setup_class
   sJ   %%c* 
@C
 
 	suu% %%**,GGMMO 	)DGGT4(	)
 **,	
 ??377+:: 
@C
 
 GGLLN	IIOO% 	+DIItT*	+    c           	      N   t         j                  g dg dg dg dg dg      }d|z  }d|z  }t         j                  g dg d	g d
g dg dg dg      }d|z  }d|z  }t         j                  j                  t	        j
                  | j                        j                         |       t         j                  j                  t	        j
                  | j                        j                         |       t         j                  j                  t	        j
                  | j                  ddg      j                         t         j                  ddgddgg             t         j                  j                  t	        j
                  | j                        j                         |       t         j                  j                  t	        j
                  | j                  d      j                         |       t         j                  j                  t	        j
                  | j                  d      j                         |       t         j                  j                  t	        j
                  | j                        j                         |       t         j                  j                  t	        j
                  | j                        j                         |       t         j                  j                  t	        j
                  | j                  ddg      j                         t         j                  ddgddgg             t         j                  j                  t	        j
                  | j                        j                         |       t         j                  j                  t	        j
                  | j                  d      j                         |       t         j                  j                  t	        j
                  | j                  d      j                         |       y)zGraph Laplacian)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   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
   r   r
   nodelistr:   Nr   r   r	   )nparraytestingassert_equalr    laplacian_matrixr"   todenser(   r%   r.   r1   r2   )selfNLWLOLDiNLDiWLDiOLs          r   test_laplacianzTestLaplacian.test_laplacian2   s    XX+++++	- . 2X2Xxx1111113 4 TzTz


 3 3DFF ; C C ErJ


 3 3DGG < D D FK


!Q8@@BHHq"gAw'(	
 	

 3 3DGG < D D FK


 3 3DGGD I Q Q SUWX


8@@BB	
 	

 3 3DHH = E E GN


 3 3DII > F F H$O


Aq6:BBDHHq"g1v&'	
 	

 3 3DII > F F H$O


		$7??A4	
 	

		':BBDd	
r8   c           	      4	   t         j                  g dg dg dg dg dg      }t         j                  g dg dg dg dg dg      }t         j                  g dg dg dg d	g dg      }t         j                  g d
g dg dg dg dg dg      }t         j                  g d
g dg dg dg dg dg      }t         j                  g dg dg dg dg dg dg      }t         j                  j                  t	        j
                  | j                  t        d            j                         |d       t         j                  j                  t	        j
                  | j                        j                         |d       t         j                  j                  t	        j
                  | j                        j                         |d       t         j                  j                  t	        j
                  | j                        j                         |d       t         j                  j                  t	        j
                  | j                  d      j                         |d       t         j                  j                  t	        j
                  | j                        j                         |d       t         j                  j                  t	        j
                  | j                  t        dd            j                         |d       t         j                  j                  t	        j
                  | j                        j                         |d       t         j                  j                  t	        j
                  | j                        j                         |d       t         j                  j                  t	        j
                  | j                        j                         |d       t         j                  j                  t	        j
                  | j                  d      j                         |d       t         j                  j                  t	        j
                  | j                        j                         |d       y) zGeneralized Graph Laplacian)      ?&1ڿrN   X9v        )rN   rM         rP   rP   )rN   rQ   rM   rP   rP   )rO   rP   rP   rM   rP   )rP   rP   rP   rP   rP   )      ?登zҿrS   eaֿrP   )rS   K=U?ioTտrP   rP   )rS   rV   rU   rP   rP   )rT   rP   rP   r   rP   )rM   rP   rڿrP   rP   rP   )rP   rP   rP   rP   rP   rP   )rW   rP   rM   rP   rW   rP   )rP   rP   rP   rM   rQ   -)rP   rP   rP   rQ   rM   rX   )rP   rP   rP   rX   rP   rM   )rW   rP   rM   rW   rP   rP   )rP   rP   rP   rP   rX   rM   )rU   gzrS   rP   rP   rP   )rS   rQ   rR   rS   rP   rP   )rP   rP   rP   rU   rV   rW   )rP   rP   rP   rV   rU   rW   )rP   rP   rP   rP   rW   r   r   r;   r   decimalr   r=   r
      N)r>   r?   r@   assert_almost_equalr    normalized_laplacian_matrixr"   rangerC   r(   r%   r*   r.   r1   r2   r3   )rD   r"   GLLslr.   DiGLDiLsls          r   test_normalized_laplacianz'TestLaplacian.test_normalized_laplaciana   s    HH;;;;;	= >
 XX?????	A B
 hhEEEEE	G H hhNNNNNNP Q xxOOOOOOQ R PPPPPPR S 	

&&**466E!HEMMO 	' 	

 	

&&**4662::<b! 	' 	
 	

&&**4773;;=r1 	' 	
 	

&&**4773;;=r1 	' 	
 	

&&**4777CKKM 	' 	

 	

&&**4884<<>Q 	' 	
 	

&&**q% gi 	' 	
 	

&&**4884<<>a 	' 	
 	

&&**4995==?q 	' 	
 	

&&**4995==?q 	' 	
 	

&&**499WEMMO 	' 	

 	

&&**4::6>>@%QR 	' 	
r8   N)__name__
__module____qualname__classmethodr7   rK   rc   r   r8   r   r   r   	   s!    %+ %+N-
^V
r8   r   c            	         t        j                         } | j                  d       t        j	                  g dg dg dg dg dg dg      }t        j
                  | dt        |       	      }t        j                  j                  ||d
       | j                  d       t        j	                  g dg dg dg dg dg dg      }t        j
                  | dt        |       d      }t        j                  j                  ||d
       t        j	                  g dg dg dg dg dg dg      }t        j
                  | dt        |       d      }t        j                  j                  ||d
       t        j                         } | j                  d       t        j	                  g dg dg dg d g      }t        j
                  | dt        |       	      }t        j                  j                  ||d
       y!)"zDirected Laplacianr   )ŏ1w?:pΈҿ*Dؿ\ Ac̝着&}гY)rj   g7d?8gDioͿS!uqGx$(篔ec])rk   ro   ri   PkwǺݵ|г)rl   rp   rs   ri   H}8߿\(\)rm   rq   rt   rv   ri   )0ʿ)rn   rr   ru   rw   rx   ri   ?alphar<   r   rY   )r	   r   )r   r
   )rM   @ǘӿfj+޿rP   rP   ,ԚԿ)r}   rM   	h"lx¿rP   [<ԿrP   )r~   r   rM   rP   o_rP   )rP   rP   rP   rM   rQ   rQ   )rP   r   r   rQ   rM         п)r   rP   rP   rQ   r   rM   randomr{   r<   	walk_type)r   @ǘÿfj+οrP   rP   TĿ)r   r   ]m{rP   [<ĿrP   )r   r   r   rP   +eXrP   )rP   rP   rP   r   r   r   )rP   r   r   r   r         )r   rP   rP   r   r   r   lazy)r   )r	   r   )r   r
   r   )r   r   )r   I+ƿr   r   )r   r   rP   r   )r   rP   r   r   )r   r   r   r   N)	r    r-   r/   r>   r?   directed_laplacian_matrixsortedr@   r\   )r"   r_   Ls      r   test_directed_laplacianr      s   
 	

A	
 
IIIIIIK 
LB 	$$QcF1IFAJJ""1b!"4 %&	IIIIIIK 
LB 	$$	vayH	A JJ""1b!"4 
IIIIIIK 
LB 	$$QcF1IQWXAJJ""1b!"4 	

A=>	33335 
6B
 	$$QcF1IFAJJ""1b!"4r8   c            	      .   t        j                         } | j                  d       t        j	                  g dg dg dg dg dg dg      }t        j
                  | dt        |       	      }t        j                  j                  ||d
       | j                  d       t        j	                  g dg dg dg dg dg dg      }t        j
                  | dt        |       d      }t        j                  j                  ||d
       t        j	                  g dg dg dg dg dg dg      }t        j
                  | dt        |       d      }t        j                  j                  ||d
       t        j                  t        j                  d            }t        j
                  |      }t        j	                  g dg dg dg d g      }t        j                  j                  ||d!       t        j                  t         j                        5  t        j
                  | d"d#$       d%d%d%       t        j                  t         j                        5  t        j
                  | d&'       d%d%d%       y%# 1 sw Y   MxY w# 1 sw Y   y%xY w)(z Directed combinatorial Laplacianr   )g46<?F%uK=U_QkMb`_vOf)r   g
ףp=
?Aǘŏ1w-!a+eylxz,C|)r   r   gZӼ?y&1lSt$r   )r   r   r   g|Pk?z6>W[<Nё\˿)r   r   r   r   gt?B`"۩)r   r   r   r   r   gjt?ry   rz   r   rY   r|   )gB`"?Biޡ+ΧrP   rP   :H)r   g+η?rP   r   rP   )r   r   Biޱ?rP   r   rP   )rP   rP   rP   KY8?KY8Žr   )rP   r   r   r   r   r   )r   rP   rP   r   r   r   r   r   )r   5;Nё$ۗrP   rP   rl   )r   g+Χ?wrP   r   rP   )r   r   gBiޡ?rP   r   rP   )rP   rP   rP   KY8Ž?r   r   )rP   r   r   r   r   rl   )rl   rP   rP   r   rl   r   r   r	   )K}\UU?iKGUUr   rP   )r   r   rP   r   )r   rP   r   r   )rP   r   r   r   r   pagerankd   )r   r{   Nsilly)r   )r    r-   r/   r>   r?   'directed_combinatorial_laplacian_matrixr   r@   r\   margulis_gabber_galil_graphpytestraisesNetworkXError)r"   r_   r   Eexpecteds        r   %test_directed_combinatorial_laplacianr      s8   
 	

A	
 
IIIIIIK 
LB 	221C&QR)TAJJ""1b!"4 %& 
IIIIIIK 
LB 	22	vayH	A JJ""1b!"4 
IIIIIIK 
LB 	22	vayF	A JJ""1b!"4


211!45A
2215Axx	=	=	=	=	?H JJ""1h":	r''	( W
221
RUVW	r''	( I
221HI IW WI Is   I?J?JJ)r   networkxr    importorskipr>   r   r   r   r   r8   r   <module>r      sH     V!   G n
 n
bC5LNIr8   