o
    3ήc                     @   s"   d dl Zdd ZG dd dZdS )    Nc                  C   s   g d} t  }||  |S )z=The sample network from https://arxiv.org/pdf/1310.6753v1.pdf))ab)r   c)r   r   )r   d)r   e)r   f)r   r   )r   r   )r   h)r   r   )r   r   )r   r   )r   j)r   k)ir	   )r   r
   )r	   r
   )ur   )r   r   )r   r   )r   r   )r   r   )r   r   )r   g)r   r   )r   r   )r   r	   )r   r
   )nxGraphadd_edges_from)edgesG r   [/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/centrality/tests/test_dispersion.pysmall_ego_G   s   
r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestDispersionc                 C   sF   t  }tj|dddd}tj|dddd}|dksJ |dks!J dS )	zour algorithm matches article'sr   r   F)
normalizedr         Nr   r   
dispersion)selfr   disp_uhdisp_ubr   r   r   test_article+   s
   zTestDispersion.test_articlec                 C   sh   t  }t|}t|d}t|dd}t|t|ksJ t|t|d ks+J t|ts2J dS )z there is a result for every noder   r   r   N)r   r   r   len
isinstancefloat)r   r   dispdisp_Gudisp_uvr   r   r   test_results_length3   s   
z"TestDispersion.test_results_lengthc                 C   sZ   t  }tj|ddd}tj|ddd}|ddddddksJ |ddddd	dks+J d S )
Nr   F)vr   Tr   r   )r   r   r	   r
   r   g        g      ?r   )r   r   disp_G_hdisp_G_h_normalizedr   r   r   test_dispersion_v_only=   s
   z%TestDispersion.test_dispersion_v_onlyc                 C   sB   t  }t |}|D ]}|| D ]}|| | dksJ qqd S )Nr   )r   karate_club_graphr   )r   r   r#   r   r'   r   r   r   test_impossible_thingsD   s   
z%TestDispersion.test_impossible_thingsN)__name__
__module____qualname__r   r&   r*   r,   r   r   r   r   r   *   s
    
r   )networkxr   r   r   r   r   r   r   <module>   s    &