U
    ¹mœd+  ã                   @   sB   d dl Z e  d¡Ze  d¡ d dlZd dlmZ G dd„ dƒZdS )é    NÚnumpyZscipy)Úhavel_hakimi_graphc                   @   s0   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	S )
ÚTestModularityc                 C   s2   dddddg}t |ƒ| _t ¡ | _| j d¡ d S )Né   é   é   r   )
)r   r   )r   r   )r   r   )r   r   )r   é   )é   r   )r	   é   )r   r	   )r   r
   )r
   r	   )r   ÚGÚnxZDiGraphÚDGZadd_edges_from)ÚclsÚdeg© r   ú^/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/networkx/linalg/tests/test_modularity.pyÚsetup_class   s    

ÿzTestModularity.setup_classc                 C   s”   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¡}d	d
dddg}t j t | j¡|¡ t j tj| j|d�|t  ||¡ ¡ dS )zModularity matrixç      ò¿ç      Ð?ç      ä?ç        ç      à¿ç      à?ç      Ð¿ç      À¿r	   r   r   r   r   ©ZnodelistN)ÚnpÚarrayÚtestingÚassert_equalr   Úmodularity_matrixr   Úix_)ÚselfÚBZpermutationr   r   r   Útest_modularity!   s    üþzTestModularity.test_modularityc                 C   s¨   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¡}| j ¡ }| ¡ D ]\}}d|j||f d	< qXt j t |¡|¡ t j tj|d	d
�d| ¡ dS )zModularity matrix with weightsr   r   r   r   r   r   r   r   Úweight)r%   N)	r   r   r   ÚcopyÚedgesr   r   r   r    )r"   r#   Z
G_weightedZn1Zn2r   r   r   Útest_modularity_weight2   s    ü
 ÿz%TestModularity.test_modularity_weightc                 C   sÌ   t  ddddddgddddddgdddd	dd	gddddddgddddddgd
dd
dddgg¡}ddddddg}ddddddg}tj| jt| jƒd�}t j ||¡ t j tj| j|d�|t  ||¡ ¡ dS )zDirected Modularity matrixgš™™™™™É¿g333333ã?gš™™™™™é?gš™™™™™Ù¿r   gffffffæ?gš™™™™™Ù?g333333Ó¿g333333ã¿gš™™™™™¹¿r   r   r   r   r	   r
   r   r   N)	r   r   r   Zdirected_modularity_matrixr   Úsortedr   r   r!   )r"   r#   Znode_permutationZidx_permutationÚmmr   r   r   Útest_directed_modularityF   s    ûþz'TestModularity.test_directed_modularityN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r$   r(   r+   r   r   r   r   r   
   s
   
r   )ZpytestZimportorskipr   Znetworkxr   Znetworkx.generators.degree_seqr   r   r   r   r   r   Ú<module>   s
   

