U
    ¹mœd‚#  ã                   @   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   ú_/home/sam/Atlas/atlas_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   

%