o
    ˷e#                     @   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| 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    d S 1 sw   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   nxrandom_clustered_graphincidence_matrixtodenseastypeintnparraytestingassert_equalpytestraisesr   )degGMGIexpected r$   ]/var/www/ideatree/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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    sortedr7   r   r   r   r   r   r   r3   absr!   r;   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 )NTrD   Fr,   )r   rE   rF   r,   r)   r-   r*   r   r	   r+   )keys)r   r   r5   rG   r7   r   r   r   r   r   r   r3   rH   r9   r<   r>   )rI   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   r4   r!   r;   r=   r5   r8   r@   rA   )rI   r$   r$   r%   test_adjacency_matrix  s(   *z%TestGraphMatrix.test_adjacency_matrixN)__name__
__module____qualname__classmethodrC   rJ   rM   rO   r$   r$   r$   r%   r'   0   s    
6Jbr'   )r   importorskipr   networkxr   networkx.exceptionr   networkx.generators.degree_seqr   r&   r'   r$   r$   r$   r%   <module>   s    

%