
    Vh!                         d dl Z d dlZd dlmZ  e j
                  d      Z e j
                  d       d Z G d d      Zy)    N)NetworkXErrornumpyscipyc                     g d} t        j                  |       }g d} t        j                  | d      }t        j                  |t              j                         }t        j                  g dg dg dg d	g d
g      }t        j                  j                  ||       t        j                  |t              j                         }t        j                  g dg dg dg dg dg dg dg dg      }t        j                  j                  ||       t        j                  t              5  t        j                  |ddg       d d d        y # 1 sw Y   y xY w)N      r	      r   )r
   r   r   r   )r	   r   r   )r	   r
   r   r
   r   *   )seeddtype)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
   nodelist)nxhavel_hakimi_graphrandom_clustered_graphincidence_matrixinttodensenparraytestingassert_equalpytestraisesr   )degGMGIexpecteds        V/home/dcms/DCMS/lib/python3.12/site-packages/networkx/linalg/tests/test_graphmatrix.pytest_incidence_matrix_simpler(   
   s   
C
c"A
JC		"	"3R	0B
AS)113Axx							H JJAx(
Bc*224Axx									 	H JJAx(	}	% 0
AA/0 0 0s   1EEc                   .    e Zd Zed        Zd Zd Zd Zy)TestGraphMatrixc                    g d}t        j                  |      | _        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                  |      | _        | j                  j                  d | j                  j                         D               t        j	                  g dg dg dg dg dg      | _
        t        j                  | j                        | _        | j                  j                         | _        | j                  j                  dd       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$                  dddddifg      | _        t        j	                  ddgddgg      | _        y )Nr   )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   c              3   2   K   | ]  \  }}||d ddf  yw)      ?333333?weightotherN ).0uvs      r'   	<genexpr>z.TestGraphMatrix.setup_class.<locals>.<genexpr>E   s%      
6<q!QcC01
s   )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	   r1      )r   r   r#   r   r   OIAWGadd_edges_fromedgesWA
MultiGraphr$   copyMG2add_edgeMG2AMGOIGraph
no_edges_G
no_edges_A)clsr"   s     r'   setup_classzTestGraphMatrix.setup_class0   s   %%c*	
 	
 &&s+ 
@C
 	
 "  	
 suu%&&++-A88	
 88 	
 6Aq8Q-+@"ABAq6Aq6"23    c                    t        j                  | j                  t        | j                        t        | j                  j	                               dt
              j                         }t        j                  j                  || j                         t        j                  | j                  t        | j                        t        | j                  j	                               dt
              j                         }t        j                  j                  |t        j                  | j                               t        j                  | j                  t        | j                        t        | j                  j	                               dt
              j                         }t        j                  j                  || j                         t        j                  | j                  t        | j                        t        | j                  j	                               dt
              j                         }t        j                  j                  |t        j                  | j                               t        j                  | j                  t        | j                        t        | j                  j	                               dt
              j                         }t        j                  j                  || j                         t        j                  | j                  t        | j                        t        | j                  j	                               dt
              j                         }t        j                  j                  |t        j                  | j                               t        j                  | j                  t        j                        }|j                   t        j                  k(  sJ y)zConversion to incidence matrixTr   edgelistorientedr   Fr   N)r   r   r#   sortedr=   r   r   r   r   r   r9   absr$   rA   rD   uint8r   )selfr%   s     r'   test_incidence_matrixz%TestGraphMatrix.test_incidence_matrixg   s   FFDFF^DFFLLN+
 ') 	
 	

477+FFDFF^DFFLLN+
 ') 	
 	

266$''?3GGDGG_DGGMMO,
 ') 	
 	

477+GGDGG_DGGMMO,
 ') 	
 	

266$''?3HHDHH%DHHNN,-
 ') 	
 	

499-HHDGG_DHHNN,-
 ') 	
 	

266$))#45bhh7ww"(("""rJ   c           	      j	   t        j                  | j                  t        | j                        t        | j                  j	                               dt
              j                         }t        j                  j                  || j                         t        j                  | j                  t        | j                        t        | j                  j	                               dt
              j                         }t        j                  j                  |t        j                  | j                               t        j                  | j                  t        | j                        t        | j                  j	                               dd      j                         }t        j                  j                  |d| j                  z         t        j                  | j                  t        | j                        t        | j                  j	                               dd      j                         }t        j                  j                  |t        j                  d| j                  z               t        j                  | j                  t        | j                        t        | j                  j	                               dd      j                         }t        j                  j                  |d| j                  z         t        j                  | j                        }|j                  d	d
dd       t        j                  |t        |      t        |j	                  d            dd      j                         }t        j                  j                  |d| j                  z         t        j                  |t        |      t        |j	                  d            dd      j                         }t        j                  j                  |t        j                  d| j                  z               t        j                  |t        |      t        |j	                  d            dd      j                         }t        j                  j                  |d| j                  z         y )NTrL   Fr1   )r   rM   rN   r1   r.   r2   r/   r   r
   r0   )keys)r   r   r;   rO   r=   r   r   r   r   r   r9   rP   r?   rB   rD   )rR   r%   WMGs      r'   test_weighted_incidence_matrixz.TestGraphMatrix.test_weighted_incidence_matrix   sI   GGDGG_DGGMMO,
 ') 	
 	

477+GGDGG_DGGMMO,
 ') 	
 	

266$''?3 GGDGG_DGGMMO,
 ') 	
 	

3=1GGDGG_DGGMMO,
 ') 	
 	

266#-#89GGDGG_DGGMMO,
 ') 	
 	

3=1 mmDGG$Q#S1C[CII4I01
 ') 	
 	

3?3C[CII4I01
 ') 	
 	

266#		/#:;C[CII4I01
 ') 	
 	

3?3rJ   c                 2   t         j                  j                  t        j                  | j
                        j                         | j                         t         j                  j                  t        j                  | j                        j                         | j                         t         j                  j                  t        j                  | j                        j                         | j                         t         j                  j                  t        j                  | j
                  ddg      j                         | j                  ddddf          t         j                  j                  t        j                  | j                        j                         | j                         t         j                  j                  t        j                  | j                  d      j                         | j                         t         j                  j                  t        j                  | j                  d      j                         | j                         t         j                  j                  t        j                  | j                  d      j                         d| j                  z         t         j                  j                  t        j                  | j                  dd	g      j                         | j                         y)
zConversion to adjacency matrixr   r
   r   Nr	   )r1   r2   g333333?r   )r   r   r   r   adjacency_matrixr#   r   r:   r$   rA   rC   r;   r>   rF   rG   )rR   s    r'   test_adjacency_matrixz%TestGraphMatrix.test_adjacency_matrix   s   


 3 3DFF ; C C EtvvN


 3 3DGG < D D FO


 3 3DHH = E E GS


!Q8@@BDFF2A2rPQr6N	
 	

 3 3DGG < D D FP


5==?	
 	

6>>@$))	
 	

8@@BC$''M	
 	

1a&AIIKOO	
rJ   N)__name__
__module____qualname__classmethodrI   rS   rW   rZ   r3   rJ   r'   r*   r*   /   s'    44 44l9#vZ4x
rJ   r*   )	r    networkxr   networkx.exceptionr   importorskipr   r(   r*   r3   rJ   r'   <module>rb      sB      ,V!   G "0Jd
 d
rJ   