U
    :vf#                     @   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)NetworkXError)havel_hakimi_graphc                  C   sn  dddddg} t | }ddddddddg} tj| d	d
}t| t}tddddgddddgddddgddddgddddgg}tj	
|| t| t}tdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}tj	
|| tt tj|ddgd W 5 Q R X d S )N         r   )r   r   )r   r   )r   r   )r   r   *   )seednodelist)r   nxZrandom_clustered_graphincidence_matrixtodenseastypeintnparraytestingassert_equalpytestZraisesr   )degGMGIexpected r   J/tmp/pip-unpacked-wheel-_lngutwb/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   s  dddddg}t || _tddddgddddgddddgddddgddddgg| _tdddddgdddddgdddddgdddddgdddddgg| _t || _| jdd | j D  tdddddgdddddgdddddgdddddgdddddgg| _	t
| j| _| j | _| jdd tdddddgdddddgdddddgdddddgdddddgg| _tdddddgdddddgdddddgdddddgdddddgg| _t
d	ddd
difg| _tddgddgg| _d S )Nr   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   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   sortedr,   r   r   r   r   r   r   r)   absr   r0   r3   )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 )NTr8   Fr"   )r
   r9   r:   r"   r   r#   r    r   r   r!   )keys)r   r   r+   r;   r,   r   r   r   r   r   r   r)   r<   r.   r1   r3   )r=   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   r0   r2   r+   r-   r4   r5   )r=   r   r   r   test_adjacency_matrix  s0        z%TestGraphMatrix.test_adjacency_matrixN)__name__
__module____qualname__classmethodr7   r>   r@   rA   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   

%