ó
 ,µ[c           @   sF   d  d l  m Z d  d l Z d  d l m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   SkipTestN(   t   havel_hakimi_grapht   TestModularityc           B   sA   e  Z d  Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z RS(   i   c         C   sV   y2 d d  l  a  d d  l a d d l m a m a Wn t k
 rQ t d ƒ ‚ n Xd  S(   Niÿÿÿÿ(   t   assert_equalt   assert_almost_equals   SciPy not available.(   t   numpyt   scipyt   numpy.testingR   R   t   ImportErrorR    (   t   cls(    (    sD   lib/python2.7/site-packages/networkx/linalg/tests/test_modularity.pyt
   setupClass
   s    c         C   se   d d d d d g } t  | ƒ |  _ t j ƒ  |  _ |  j j d d	 d
 d d d d d d d f
 ƒ d  S(   Ni   i   i   i    i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   t   Gt   nxt   DiGrapht   DGt   add_edges_from(   t   selft   deg(    (    sD   lib/python2.7/site-packages/networkx/linalg/tests/test_modularity.pyt   setUp   s
    c      
   C   sÊ   t  j 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 t j |  j ƒ | ƒ t t j |  j d | ƒ| t  j | | ƒ ƒ d S(   s   Modularity matrixg      ò¿g      Ð?g      ä?g        g      à¿g      à?g      Ð¿g      À¿i   i    i   i   i   t   nodelistN(   R   t   matrixR   R   t   modularity_matrixR   t   ix_(   R   t   Bt   permutation(    (    sD   lib/python2.7/site-packages/networkx/linalg/tests/test_modularity.pyt   test_modularity    s    c      
   C   sæ   t  j 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 j ƒ  } x1 | j ƒ  D]# \ } } d | j | | f d	 <q… Wt t j | ƒ | ƒ t t j | d	 d	 ƒd | ƒ d
 S(   s   Modularity matrix with weightsg      ò¿g      Ð?g      ä?g        g      à¿g      à?g      Ð¿g      À¿t   weightN(   R   R   R   t   copyt   edgesR   R   R   (   R   R   t
   G_weightedt   n1t   n2(    (    sD   lib/python2.7/site-packages/networkx/linalg/tests/test_modularity.pyt   test_modularity_weight-   s    c         C   s  t  j 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 d t |  j ƒ ƒ} t | | ƒ t t j |  j d | ƒ| t  j | | ƒ ƒ d S(   s   Directed Modularity matrixgš™™™™™É¿g333333ã?gš™™™™™é?gš™™™™™Ù¿g        gffffffæ?gš™™™™™Ù?g333333Ó¿g333333ã¿gš™™™™™¹¿i   i   i   i   i   i   i    R   N(   R   R   R   t   directed_modularity_matrixR   t   sortedR   R   (   R   R   t   node_permutationt   idx_permutationt   mm(    (    sD   lib/python2.7/site-packages/networkx/linalg/tests/test_modularity.pyt   test_directed_modularity=   s    !(	   t   __name__t
   __module__R   t   classmethodR
   R   R   R    R&   (    (    (    sD   lib/python2.7/site-packages/networkx/linalg/tests/test_modularity.pyR      s   				(   t   noseR    t   networkxR   t   networkx.generators.degree_seqR   t   objectR   (    (    (    sD   lib/python2.7/site-packages/networkx/linalg/tests/test_modularity.pyt   <module>   s   