
    \Mh6                     |    d dl Z d dlZ e j        d          Z e j        d            G d d          Zd Zd ZdS )    Nnumpyscipyc                   0    e Zd Zed             Zd Zd ZdS )TestLaplacianc                    g d}t          j        |          | _        t          j        d | j                                        D                       | _        | j                            d           t          j        | j                  | _        | j        	                                | _
        | j
                                        D ]}| j
                            ||           t          j                    | _        | j                            d           t          j        | j                  | _        t          j        d | j                                        D                       | _        | j        	                                | _        | j                                        D ]}| j                            ||           d S )N)      r	      r   c              3   ,   K   | ]\  }}||d ddfV  dS       ?333333?)weightotherN .0uvs      d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/networkx/linalg/tests/test_laplacian.py	<genexpr>z,TestLaplacian.setup_class.<locals>.<genexpr>   sF       
 
6<q!QcC001
 
 
 
 
 
       
r
   r	   r
   r   )r   r
   )r   r	   )r      )r   r   )r      )r   r   )r   r   )r   r   c              3   ,   K   | ]\  }}||d ddfV  dS r   r   r   s      r   r   z,TestLaplacian.setup_class.<locals>.<genexpr>+   sF       
 
6<q!QcC0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
   s   oo%c** 
 
@C
 
 
 
 
 	su%% %**,,GMMOO 	) 	)DGT4(((( *,,	
 	
 	
 ?37++: 
 
@C
 
 
 
 
 GLLNN	IOO%% 	+ 	+DItT****	+ 	+r   c           	      H   t                               g dg dg dg dg dg          }d|z  }d|z  }t                               g dg d	g d
g dg dg dg          }d|z  }d|z  }t           j                            t	          j        | j                                                  |           t           j                            t	          j        | j                                                  |           t           j                            t	          j        | j        ddg                                          t                               ddgddgg                     t           j                            t	          j        | j	                                                  |           t           j                            t	          j        | j	        d                                          |           t           j                            t	          j        | j	        d                                          |           t           j                            t	          j        | j
                                                  |           t           j                            t	          j        | j                                                  |           t           j                            t	          j        | j
        ddg                                          t                               ddgddgg                     t           j                            t	          j        | j                                                  |           t           j                            t	          j        | j        d                                          |           t           j                            t	          j        | j        d                                          |           dS )zGraph Laplacian)r   r9   r9   r   )r9   r	   r9   r   r   )r9   r9   r	   r   r   )r9   r   r   r
   r   )r   r   r   r   r   r   r   )r	   r9   r9   r   r   r   )r   r   r   r   r   r   )r9   r9   r   r9   r   r   )r   r   r   r	   r9   r9   )r   r   r   r9   r	   r9   )r   r   r   r   r9   r
   r   r
   nodelistr9   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1111111111113 4 4 TzTz

 3DF ; ; C C E ErJJJ

 3DG < < D D F FKKK

!Q888@@BBHHq"gAw'((	
 	
 	
 	
 3DG < < D D F FKKK

 3DGD I I I Q Q S SUWXXX

888@@BBB	
 	
 	
 	
 3DH = = E E G GNNN

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

Aq6:::BBDDHHq"g1v&''	
 	
 	
 	
 3DI > > F F H H$OOO

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

 	
&&*4622::<<b! 	' 	
 	
 	
 	
&&*4733;;==r1 	' 	
 	
 	
 	
&&*4733;;==r1 	' 	
 	
 	
 	
&&*477CCCKKMM 	' 	
 	
 	

 	
&&*4844<<>>Q 	' 	
 	
 	
 	
&&*q%   gii 	' 	
 	
 	
 	
&&*4844<<>>a 	' 	
 	
 	
 	
&&*4955==??q 	' 	
 	
 	
 	
&&*4955==??q 	' 	
 	
 	
 	
&&*49WEEEMMOO 	' 	
 	
 	

 	
&&*4:66>>@@%QR 	' 	
 	
 	
 	
 	
r   N)__name__
__module____qualname__classmethodr7   rJ   rb   r   r   r   r   r   	   sR        %+ %+ [%+N-
 -
 -
^V
 V
 V
 V
 V
r   r   c            	      X   t          j                    } |                     d           t                              g dg dg dg dg dg dg          }t          j        | dt          |           	          }t          j                            ||d
           |                     d           t                              g dg dg dg dg dg dg          }t          j        | dt          |           d          }t          j                            ||d
           t                              g dg dg dg dg dg dg          }t          j        | dt          |           d          }t          j                            ||d
           t          j                    } |                     d           t                              g dg dg dg d g          }t          j        | dt          |           	          }t          j                            ||d
           d!S )"zDirected Laplacianr   )ŏ1w?:pΈҿ*Dؿ\ Ac̝着&}гY)ri   g7d?8gDioͿS!uqGx$(篔ec])rj   rn   rh   PkwǺݵ|г)rk   ro   rr   rh   H}8߿\(\)rl   rp   rs   ru   rh   )0ʿ)rm   rq   rt   rv   rw   rh   ?alphar;   r   rX   )r	   r   )r   r
   )rL   @ǘӿfj+޿rO   rO   ,ԚԿ)r|   rL   	h"lx¿rO   [<ԿrO   )r}   r   rL   rO   o_rO   )rO   rO   rO   rL   rP   rP   )rO   r   r   rP   rL         п)r~   rO   rO   rP   r   rL   randomrz   r;   	walk_type)r   @ǘÿfj+οrO   rO   TĿ)r   r   ]m{rO   [<ĿrO   )r   r   r   rO   +eXrO   )rO   rO   rO   r   r   r   )rO   r   r   r   r         )r   rO   rO   r   r   r   lazy)r   )r	   r   )r   r
   r   )r   r   )r   I+ƿr   r   )r   r   rO   r   )r   rO   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IIIIIIIIIIIIK 
L 
LB 	$QcF1IIFFFAJ""1b!"444 %&&&	IIIIIIIIIIIIIIIIIIK 
L 
LB 	$	vayyH	 	 	A J""1b!"444 
IIIIIIIIIIIIIIIIIIK 
L 
LB 	$QcF1IIQWXXXAJ""1b!"444 	
A=>>>	3333333333335 
6 
6B
 	$QcF1IIFFFAJ""1b!"44444r   c            	      h   t          j                    } |                     d           t                              g dg dg dg dg dg dg          }t          j        | dt          |           	          }t          j                            ||d
           |                     d           t                              g dg dg dg dg dg dg          }t          j        | dt          |           d          }t          j                            ||d
           t                              g dg dg dg dg dg dg          }t          j        | dt          |           d          }t          j                            ||d
           t          j        t          j	        d                    }t          j        |          }t                              g dg dg dg d g          }t          j                            ||d!           t          j        t           j                  5  t          j        | d"d#$           d%d%d%           n# 1 swxY w Y   t          j        t           j                  5  t          j        | d&'           d%d%d%           d%S # 1 swxY w Y   d%S )(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?rx   ry   r   rX   r{   )gB`"?Biޡ+ΧrO   rO   :H)r   g+η?rO   r   rO   )r   r   Biޱ?rO   r   rO   )rO   rO   rO   KY8?KY8Žr   )rO   r   r   r   r   r   )r   rO   rO   r   r   r   r   r   )r   5;Nё$ۗrO   rO   rk   )r   g+Χ?wrO   r   rO   )r   r   gBiޡ?rO   r   rO   )rO   rO   rO   KY8Ž?r   r   )rO   r   r   r   r   rk   )rk   rO   rO   r   rk   r   r   r	   )K}\UU?iKGUUr   rO   )r   r   rO   r   )r   rO   r   r   )rO   r   r   r   r   pagerankd   )r   rz   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      s   
 	
A	
   
IIIIIIIIIIIIIIIIIIK 
L 
LB 	21C&QR))TTTAJ""1b!"444 %&&& 
IIIIIIIIIIIIIIIIIIK 
L 
LB 	2	vayyH	 	 	A J""1b!"444 
IIIIIIIIIIIIIIIIIIK 
L 
LB 	2	vayyF	 	 	A J""1b!"444

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