a
    d#                     @   sV   d dl Z e dZe d d dlZd dlmZ d dlmZ dd Z	G dd	 d	Z
dS )
    NnumpyZscipy)NetworkXError)havel_hakimi_graphc                  C   s  g d} t | }g d} tj| dd}t| t}tg dg dg dg dg d	g}tj	
|| t| t}tg d
g d
g dg dg dg dg dg dg}tj	
|| tt" tj|ddgd W d    n1 s0    Y  d S )N      r      r   )r   r   r	   r	   )r   r   r	   )r   r   r   r   r
   *   )seed)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)r   nxZrandom_clustered_graphincidence_matrixtodenseastypeintnparraytestingassert_equalpytestZraisesr   )degGMGIexpected r!   o/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/networkx/linalg/tests/test_graphmatrix.pytest_incidence_matrix_simple   s:    r#   c                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestGraphMatrixc                 C   sh  g d}t || _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 || _| jdd | j D  tg dg dg dg dg dg| _	t
| j| _| j | _| jdd 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
dddddifg| _tddgddgg| _d S )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                 s   s"   | ]\}}||d ddfV  qdS )      ?333333?weightotherNr!   ).0uvr!   r!   r"   	<genexpr>F   s   z.TestGraphMatrix.setup_class.<locals>.<genexpr>)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   OIAWGZadd_edges_fromedgesWAr   
MultiGraphr   copyMG2add_edgeMG2AMGOIZGraph
no_edges_G
no_edges_A)clsr   r!   r!   r"   setup_class1   sf    

zTestGraphMatrix.setup_classc                 C   s  t j| jt| jt| j dd t}tj	
|| j t j| jt| jt| j dd t}tj	
|t| j t j| jt| jt| j dd t}tj	
|| j t j| jt| jt| j dd t}tj	
|t| j t j| jt| jt| j dd t}tj	
|| j t j| jt| jt| j dd t}tj	
|t| j dS )zConversion to incidence matrixTr   edgelistorientedFN)r   r   r   sortedr3   r   r   r   r   r   r   r0   absr   r7   r:   )selfr   r!   r!   r"   test_incidence_matrixh   sx    











z%TestGraphMatrix.test_incidence_matrixc                 C   s  t j| jt| jt| j dd t}tj	
|| j t j| jt| jt| j dd t}tj	
|t| j t j| jt| jt| j ddd }tj	
|d| j  t j| jt| jt| j ddd }tj	
|td| j  t j| jt| jt| j ddd }tj	
|d| j  t | j}|jd	d
ddd t j|t|t|jddddd }tj	
|d| j  t j|t|t|jddddd }tj	
|td| j  t j|t|t|jddddd }tj	
|d| j  d S )NTr?   Fr)   )r   r@   rA   r)   r&   r*   r'   r   r   r(   )keys)r   r   r2   rB   r3   r   r   r   r   r   r   r0   rC   r5   r8   r:   )rD   r   ZWMGr!   r!   r"   test_weighted_incidence_matrix   s    



	





z.TestGraphMatrix.test_weighted_incidence_matrixc                 C   s0  t jt| j | j t jt| j | j t jt| j	 | j
 t jtj| jddgd | jddddf  t jt| j | j t jtj| jdd | j t jtj| j	dd | j
 t jtj| jdd d| j  t jtj| jdd	gd | j dS )
zConversion to adjacency matrixr   r   r   Nr   )r)   r*   g333333?r   )r   r   r   r   Zadjacency_matrixr   r   r1   r   r7   r9   r2   r4   r;   r<   )rD   r!   r!   r"   test_adjacency_matrix  s(    *z%TestGraphMatrix.test_adjacency_matrixN)__name__
__module____qualname__classmethodr>   rE   rG   rH   r!   r!   r!   r"   r$   0   s
   
6Jbr$   )r   Zimportorskipr   Znetworkxr   Znetworkx.exceptionr   Znetworkx.generators.degree_seqr   r#   r$   r!   r!   r!   r"   <module>   s   

%