
    h5                         S SK Jr  S SKr\R                  " S5      rS SKrSrS rS r	S r
S rS	 rS
 r " S S5      r " S S5      rg)    )sqrtNnumpy)tracemin_pcgtracemin_lulanczoslobpcgc                     [         R                  " S5        [        R                  " SS5      n [         R                  " [        R
                  5         [        R                  " U SS9  SSS5        g! , (       d  f       g= fz.Test that "tracemin_chol" raises an exception.scipy      tracemin_cholmethodN)pytestimportorskipnxbarbell_graphraisesNetworkXErroralgebraic_connectivityGs    c/var/www/html/env/lib/python3.13/site-packages/networkx/linalg/tests/test_algebraic_connectivity.py)test_algebraic_connectivity_tracemin_cholr      sP    
 
AA	r''	(
!!!O< 
)	(	(   A11
A?c                     [         R                  " S5        [        R                  " SS5      n [         R                  " [        R
                  5         [        R                  " U SS9  SSS5        g! , (       d  f       g= fr
   )r   r   r   r   r   r   fiedler_vectorr   s    r   !test_fiedler_vector_tracemin_cholr      sP    
 
AA	r''	(
!O4 
)	(	(r   c                     [         R                  " S5        [        R                  " SS5      n [         R                  " [        R
                  5         [        R                  " U SS9  SSS5        g! , (       d  f       g= fr
   )r   r   r   r   r   r   spectral_orderingr   s    r   $test_spectral_ordering_tracemin_cholr"      sP    
 
AA	r''	(
Q7 
)	(	(r   c            	         [         R                  " S5        [        R                  " SS5      n [        R                  " U 5      n[
        R                  [
        R                  R                  SUR                  S   4S95      R                  n[         R                  " [        R                  SS9   [        R                  R                  R                  XS	S
SS9  SSS5        g! , (       d  f       g= f)z1Test that "tracemin_unknown" raises an exception.r   r   r      r   )sizezUnknown linear system solver)matchFg:0yE>tracemin_unknown
normalizedtolr   N)r   r   r   r   laplacian_matrixnpasarrayrandomnormalshapeTr   r   linalgalgebraicconnectivity_tracemin_fiedler)r   LXs      r   $test_fiedler_vector_tracemin_unknownr7   %   s    
 
AA
AA


299##!QWWQZ#9:<<A	r''/M	N
		''99U5G 	: 	
 
O	N	Ns   0+C$$
C2c                  j   [         R                  " S5        [        R                  " SS5      n [        R                  " U 5      nU1 Sk1 Sk4:X  d   e[        [        S5      5      n[        R                  " X5      n [        R                  " U 5      nUUS   US   US   1US   US	   US
   14:X  d   eg )Nr      r   >   r   r$      >   r9   r   r   badfecr$   r:   r   r   )r   r   r   r   spectral_bisectiondict	enumeraterelabel_nodes)r   Cmappings      r   test_spectral_bisectionrB   1   s    
 
AA
a AI&&&&9X&'G
$A
a A	WQZ,	WQZ,       c                 6   [         R                  R                  U5      nU[        R                  " SSS9:w  d   eX-  n[         R                  R                  U5      nX$-  [        R                  " X5-  SS9:X  d   eU[        R                  " X-  SS9:X  d   eg )Nr   Hz>abs)r,   r2   normr   approx)Alxr   ynys         r   check_eigenvectorrO   @   s~    		Bqe,,,,	A		B5FMM"'t4444qv40000rC   c                   >   \ rS rSr\R
                  R                  S\5      S 5       r\R
                  R                  S\5      S 5       r	\R
                  R                  S\5      S 5       r
S r\R
                  R                  S\5      S 5       r\R
                  R                  S\5      S 5       rS	 r\R
                  R                  S\5      S
 5       r\R
                  R                  S\5      S 5       r\R
                  R                  S\5      S 5       r\R
                  R                  S\5      S 5       r\R
                  R                  SSS\R(                  4SS\R*                  445      \R
                  R                  S\5      S 5       5       rSrg)TestAlgebraicConnectivityL   r   c                     [         R                  " 5       n[        R                  " [         R                  [         R
                  X!S9  [        R                  " [         R                  [         R                  X!S9  g )Nr   )r   DiGraphr   r   NetworkXNotImplementedr   r   selfr   r   s      r   test_directed'TestAlgebraicConnectivity.test_directedM   sJ    JJL%%r'@'@!	
 	b//1B1BAUrC   c                    [         R                  " 5       n[        R                  " [         R                  [         R
                  X!S9  [        R                  " [         R                  [         R                  X!S9  UR                  SS5        [        R                  " [         R                  [         R
                  X!S9  [        R                  " [         R                  [         R                  X!S9  g )Nr   r   )r   Graphr   r   r   r   r   add_edgerV   s      r   test_null_and_singleton1TestAlgebraicConnectivity.test_null_and_singletonU   s    HHJb&&(A(A1Tb&&(9(91L	

1ab&&(A(A1Tb&&(9(91LrC   c                    [         R                  " 5       nUR                  [        S5      5        [         R                  " U5      S:X  d   e[
        R                  " [         R                  [         R                  X!S9  UR                  SSSS9  [         R                  " U5      S:X  d   e[
        R                  " [         R                  [         R                  X!S9  g )Nr:   r   r   r$   weight)
r   r[   add_nodes_fromranger   r   r   r   r   r\   rV   s      r   test_disconnected+TestAlgebraicConnectivity.test_disconnected^   s    HHJ	q"((+q000b&&(9(91L	

1a
"((+q000b&&(9(91LrC   c                 (   [         R                  " S5        [        R                  " S5      n[         R                  " [        R
                  [        R                  USS9  [         R                  " [        R
                  [        R                  USS9  g )Nr   r   unknownr   )r   r   r   
path_graphr   r   r   r   rW   r   s     r   test_unrecognized_method2TestAlgebraicConnectivity.test_unrecognized_methodh   sZ    G$MM!b&&(A(A1YWb&&(9(91YOrC   c                 L   [         R                  " S5        [        R                  " 5       nUR	                  SSSS9  [        R
                  " U5      n[        R                  " USUS9[         R                  " SSS	9:X  d   e[        R                  " USUS9n[        USU5        g )
Nr   r   r$   r`   -q=r*   r   r:   rE   rF   )
r   r   r   r[   r\   r+   r   rI   r   rO   rW   r   r   rJ   rL   s        r   test_two_nodes(TestAlgebraicConnectivity.test_two_nodesn   s    G$HHJ	

1a
""((fE4J
 
 	
 
 aU6:!Q"rC   c                    [         R                  " S5        [        R                  " 5       nUR	                  SSSS9  UR	                  SSSS9  UR	                  SSSS9  S[        R
                  " USS	9-  n[        R                  " USS
US9[         R                  " SSS9:X  d   e[        R                  " USS
US9n[        USU5        g )Nr   r   g    חA)spamr$   rs   r`   rm   )ra   r*   r      rE   rF   )
r   r   r   
MultiGraphr\   r+   r   rI   r   rO   ro   s        r   test_two_nodes_multigraph3TestAlgebraicConnectivity.test_two_nodes_multigraphz   s    G$MMO	

1ac
"	

1aa
 	

1ab
!$$Qv66((f%
]]1$'( 	( ( aE&I!Q"rC   c                 b   [         R                  " S5        [        R                  " S5      n[        R                  " U5      nS[        S[        S5      -   5      -
  n[        R                  " USSS9nU[         R                  " USS9:X  d   e[        R                  " USSS9n[        X#U5        g )	Nr      r:   rm   traceminrn   rE   rF   
r   r   r   rh   r+   r   r   rI   r   rO   )rW   r   rJ   sigmaacrL   s         r   test_abbreviation_of_method5TestAlgebraicConnectivity.test_abbreviation_of_method   s    G$MM!"DT!W%%&&qeJGV]]5d3333aU:>!A&rC   c                 b   [         R                  " S5        [        R                  " S5      n[        R                  " U5      nS[        S[        S5      -   5      -
  n[        R                  " USUS9nU[         R                  " USS9:X  d   e[        R                  " USUS9n[        X4U5        g Nr   r{   r:   rm   rn   rE   rF   r}   rW   r   r   rJ   r~   r   rL   s          r   	test_path#TestAlgebraicConnectivity.test_path   s    G$MM!"DT!W%%&&qeFCV]]5d3333aU6:!A&rC   c                 X   [         R                  " S5        [        R                  " S5      nUR	                  SS/5        [        R
                  " U5      nSn[        R                  " USUS9nU[         R                  " USS	9:X  d   e[        R                  " USUS9n[        X4U5        g )
Nr   r   )r   r:   )r   r$   g׋ʄ?rm   rn   rE   rF   )
r   r   r   rh   add_edges_fromr+   r   rI   r   rO   r   s          r   !test_problematic_graph_issue_2381;TestAlgebraicConnectivity.test_problematic_graph_issue_2381   s    G$MM!	&&)*"&&qeFCV]]5d3333aU6:!A&rC   c                 J   [         R                  " S5        [        R                  " S5      n[        R                  " U5      nS[        S5      -
  n[        R                  " USUS9nU[         R                  " USS9:X  d   e[        R                  " USUS9n[        X4U5        g r   
r   r   r   cycle_graphr+   r   r   rI   r   rO   r   s          r   
test_cycle$TestAlgebraicConnectivity.test_cycle   s    G$NN1"DG&&qeFCV]]5d3333aU6:!A&rC   c                 N   [         R                  " S5        [        R                  " S5      n[        R                  " U5      nS[        S5      -
  n[        R                  " USUSS9nU[         R                  " USS9:X  d   e[        R                  " USUSS9n[        X4U5        g )	Nr   r{   r:   rm   r$   )r*   r   seedrE   rF   r   r   s          r   test_seed_argument,TestAlgebraicConnectivity.test_seed_argument   s    G$NN1"DG&&qeFKV]]5d3333aU6B!A&rC   )r)   r~   laplacian_fnFg'?TgG'91Ŵ?c                 x   [         R                  " S5        [        R                  " / SQ5      nU" U5      n [        R                  " XQSUS9[         R
                  " USS9:X  d   e[        R                  " XQSUS9n[        XbU5        g ! [        R                   a  nUR                  S;  a  e  S nAg S nAff = f)Nr   )Z)r$   
   )r$   )   )r$   ;   )r:      )r:   *   )r:   <   )r9   rv   )r9   +   )r9   9   )r   r{   )r   ,   )r   :   )r      )r   8   )r   r   )rv   r   )rv      )      )r   r   )r   r   )r{   r   )r{       )	      )r   5   )r   r   )r      )      )r   r   )r   r   )r      )r   r   )r      )r      )r      )r   1   )r      )r   2   )      )r      )r   6   )r      )r   7   )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   3   )r   r   )r   4   )r   r   )   r   )r   r   )r   r   )   r   )r   r   )r   r   )r   /   )r   0   )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   rm   r(   rE   rF   ))zCholesky solver unavailable.)zLU solver unavailable.)
r   r   r   r[   r   rI   r   rO   r   args)	rW   r)   r~   r   r   r   rJ   rL   errs	            r   test_buckminsterfullerene3TestAlgebraicConnectivity.test_buckminsterfullerene   s     	G$HH[]
| O	,,eFu$/0 0 0 !!!fUAa* 	xx    		s   AB
 
B9B44B9 N)__name__
__module____qualname____firstlineno__r   markparametrizemethodsrX   r]   rd   rj   rp   rx   r   r   r   r   r   r   r+   normalized_laplacian_matrixr   __static_attributes__r   rC   r   rQ   rQ   L   s   [[Xw/V 0V [[Xw/M 0M [[Xw/M 0MP [[Xw/	# 0	# [[Xw/# 0#' [[Xw/' 0' [[Xw/	' 0	' [[Xw/' 0' [[Xw/' 0' [[/&(;(;<&(F(FG	
 [[Xw/l 0lrC   rQ   c                      \ rS rSr\R
                  \R                  \R                  \R                  4r	\
R                  R                  S\	5      S 5       r\
R                  R                  S\	5      S 5       rS r\
R                  R                  S\5      S 5       r\
R                  R                  S\5      S 5       r\
R                  R                  S\5      S	 5       r\
R                  R                  S\5      S
 5       r\
R                  R                  S\5      S 5       r\
R                  R                  SS/ SQ/ SQ/4S/ SQ/ SQ/445      \
R                  R                  S\5      S 5       5       rSrg)TestSpectralOrderingi6  graphc                 z    U" 5       n[         R                  " [        R                  [        R                  U5        g )N)r   r   r   r   r!   rW   r   r   s      r   test_nullgraph#TestSpectralOrdering.test_nullgraph9  s%    Gb&&(<(<a@rC   c                     U" 5       nUR                  S5        [        R                  " U5      S/:X  d   eUR                  SSSS9  UR                  SSSS9  [        R                  " U5      S/:X  d   eg )NrL   r   r`   )add_noder   r!   r\   r   s      r   test_singleton#TestSpectralOrdering.test_singleton>  sn    G	

3##A&3%///	

3B
'	

3B
'##A&3%///rC   c                     [         R                  " S5      n[        R                  " [         R                  [         R
                  USS9  g )Nr   rg   r   )r   rh   r   r   r   r!   ri   s     r   rj   -TestSpectralOrdering.test_unrecognized_methodG  s.    MM!b&&(<(<a	RrC   r   c                 &   [         R                  " S5        [        R                  " 5       nUR	                  / SQSS9  [        R
                  " USUS9n[        U5      [        U5      :X  d   eSS1[        US S 5      [        USS  5      4;   d   eg )	Nr   )r$   r:   r$   r$   r9   r:   r:   r9   r$   rs   r`   )ra   r   r$   r9   )r   r   r   r[   add_weighted_edges_fromr!   setrW   r   r   orders       r   test_three_nodes%TestSpectralOrdering.test_three_nodesK  s    G$HHJ	!!"CF!S$$QvfE5zSV###1v#eCRj/3uQRy>::::rC   c                 $   [         R                  " S5        [        R                  " 5       nUR	                  / SQ5        [        R
                  " X!S9n[        U5      [        U5      :X  d   eSS1[        US S 5      [        USS  5      4;   d   eg )Nr   )r   r   r   )r:   r9   r:   r   r:   r9   r   r$   )r   r   r   MultiDiGraphr   r!   r   r   s       r   test_three_nodes_multigraph0TestSpectralOrdering.test_three_nodes_multigraphT  s|    G$OO	!!"NO$$Q65zSV###1v#eCRj/3uQRy>::::rC   c                 J   [         R                  " S5        [        [        S5      5      n[        R
                  R                  U5        [        R                  " 5       n[        R                  " X25        [        R                  " X1S9nXB[        [        U5      5      4;   d   eg )Nr   r   r   r   r   listrc   r,   r.   shuffler   r[   add_pathr!   reversedrW   r   pathr   r   s        r   r   TestSpectralOrdering.test_path]  sp    G$E"I
		$HHJ
A$$Q6tHTN34444rC   c                 L   [         R                  " S5        [        [        S5      5      n[        R
                  R                  U5        [        R                  " 5       n[        R                  " X25        [        R                  " X1SS9nXB[        [        U5      5      4;   d   eg )Nr   r   r$   )r   r   r   r   s        r   r   'TestSpectralOrdering.test_seed_argumentg  sr    G$E"I
		$HHJ
A$$QA>tHTN34444rC   c           
         [         R                  " S5        [        R                  " 5       n[        R                  " U[        SSS5      5        [        R                  " U[        SSS5      5        [        R                  " X!S9n[        U5      [        U5      :X  d   e[        [        SSS5      5      [        [        SSS	5      5      [        [        SSS5      5      [        [        S
SS	5      5      /nUS S U;   d   eUSS  U;   d   eg )Nr   r   r   r:   r$   r   r{   r   rt   r   r   )	r   r   r   r[   r   rc   r!   r   r   )rW   r   r   r   seqss        r   rd   &TestSpectralOrdering.test_disconnectedq  s    G$HHJ
AuQA'
AuQA'$$Q65zSV###q"a!q"b!"q"a!q"b!"	
 RayD   QRyD   rC   )r)   expected_orderF)
r$   r:   r   r9   r   r   rv   r   r   r{   )
r{   r   r   rv   r   r   r9   r   r:   r$   T)
r$   r:   r9   r   r   r   r   rv   r   r{   )
r{   r   rv   r   r   r   r   r9   r:   r$   c                 Z   [         R                  " S5        [        [        S5      5      n[        R
                  " 5       n[        R                  " XTSS9  UR                  US   US   SS9  [        R                  " U5      R                  5       n[        R                  " XQUS9nXr;   d   eg )	Nr   r   r   r`   r   r   r$   )r)   r   )r   r   r   rc   r   r[   r   r\   r+   todenser!   )rW   r)   r  r   r   r   rJ   r   s           r   r   TestSpectralOrdering.test_cycle  s     	G$E"IHHJ
AA&	

48T!WQ
/"**,$$QfM&&&rC   r   N)r   r   r   r   r   r[   rT   rw   r   _graphsr   r   r   r   r   rj   r   r   r   r   r   rd   r   r   r   rC   r   r   r   6  s   xxR]]BOODG[[Wg.A /A [[Wg.0 /0S [[Xw/; 0; [[Xw/; 0; [[Xw/5 05 [[Xw/5 05 [[Xw/! 0!  [[(35STU24RST	
 [[Xw/' 0'rC   r   )mathr   r   r   r,   networkxr   r   r   r   r"   r7   rB   rO   rQ   r   r   rC   r   <module>r
     s\     ! 
>=58	
	1g gT\' \'rC   