U
    -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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   g/var/www/html/Darija-Ai-Train/env/lib/python3.8/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   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   r1   r4   )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 )NTr9   Fr#   )r   r:   r;   r#   r    r$   r!   r   r   r"   )keys)r   r   r,   r<   r-   r   r   r   r   r   r   r*   r=   r/   r2   r4   )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   r1   r3   r,   r.   r5   r6   )r>   r   r   r   test_adjacency_matrix  s0        z%TestGraphMatrix.test_adjacency_matrixN)__name__
__module____qualname__classmethodr8   r?   rA   rB   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   

%