o
    h"                     @   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numpy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   nxrandom_clustered_graphincidence_matrixinttodensenparraytestingassert_equalpytestraisesr   )degGMGIexpected r%   a/var/www/html/scripts/venv/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WGadd_edges_fromedgesWAr   
MultiGraphr"   copyMG2add_edgeMG2AMGOI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!   sortedr8   r   r   r   r   r   r4   absr"   r<   r?   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 )NTrE   Fr-   )r   rF   rG   r-   r*   r.   r+   r   r	   r,   )keys)r   r   r6   rH   r8   r   r   r   r   r   r4   rI   r:   r=   r?   )rK   r#   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   adjacency_matrixr!   r   r5   r"   r<   r>   r6   r9   rA   rB   )rK   r%   r%   r&   test_adjacency_matrix   s(   *z%TestGraphMatrix.test_adjacency_matrixN)__name__
__module____qualname__classmethodrD   rL   rO   rQ   r%   r%   r%   r&   r(   0   s    
6;\r(   )r   importorskipr   networkxr   networkx.exceptionr   networkx.generators.degree_seqr   r'   r(   r%   r%   r%   r&   <module>   s    

%