a
    1b#                     @   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 )
    NZnumpyZscipy)havel_hakimi_graph)NetworkXErrorc                  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	   *   )Z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IZexpected r   Elib/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   sortedr0   r   r   r   r   r   r   r-   absr   r4   r7   )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=   r>   r&   r#   r'   r$   r   r   r%   )keys)r   r   r/   r?   r0   r   r   r   r   r   r   r-   r@   r2   r5   r7   )rA   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   r.   r   r4   r6   r/   r1   r8   r9   )rA   r   r   r   test_adjacency_matrix  s(    *z%TestGraphMatrix.test_adjacency_matrixN)__name__
__module____qualname__classmethodr;   rB   rD   rE   r   r   r   r   r!   0   s
   
6Jbr!   )r   Zimportorskipr   Znetworkxr   Znetworkx.generators.degree_seqr   Znetworkx.exceptionr   r    r!   r   r   r   r   <module>   s   

%