o
    ]Zh"                     @   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j|td }tg dg dg dg d	g d
g}tj	|| tj|td }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    d S 1 s~w   Y  d S )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)r   nxZrandom_clustered_graphincidence_matrixinttodensenparraytestingassert_equalpytestZraisesr   )degGMGIexpected r"   U/var/www/auris/lib/python3.10/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td }tj	|| j
 t j| jt| jt| j dtd }tj	|t| j
 t j| jt| jt| j dtd }tj	|| j
 t j| jt| jt| j dtd }tj	|t| j
 t j| jt| jt| j dtd }tj	|| j t j| jt| jt| j dtd }tj	|t| j t j| jtjd}|jtjksJ dS )zConversion to incidence matrixTr   edgelistorientedr   Fr   N)r   r   r   sortedr4   r   r   r   r   r   r1   absr   r8   r;   Zuint8r   )selfr    r"   r"   r#   test_incidence_matrixh   s|   z%TestGraphMatrix.test_incidence_matrixc                 C   s  t j| jt| jt| j dtd }tj	|| j
 t j| jt| jt| j dtd }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   rA   rB   r*   r'   r+   r(   r   r   r)   )keys)r   r   r3   rC   r4   r   r   r   r   r   r1   rD   r6   r9   r;   )rE   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   r2   r   r8   r:   r3   r5   r<   r=   )rE   r"   r"   r#   test_adjacency_matrix   s(   *z%TestGraphMatrix.test_adjacency_matrixN)__name__
__module____qualname__classmethodr?   rF   rH   rI   r"   r"   r"   r#   r%   0   s    
6;\r%   )r   Zimportorskipr   Znetworkxr   Znetworkx.exceptionr   Znetworkx.generators.degree_seqr   r$   r%   r"   r"   r"   r#   <module>   s    

%