
 ,[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   TestLaplacianc           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(    (    sC   lib/python2.7/site-packages/networkx/linalg/tests/test_laplacian.pyt
   setupClass
   s    c         C   s   d d d d d g } t  |  |  _ t j d   |  j j   D  |  _ |  j j d  t j |  j  |  _ |  j j	   |  _
 x* |  j
 j   D] } |  j
 j | |  q Wd  S(   Ni   i   i   i    c         s   s2   |  ]( \ } } | | i d  d 6d d 6f Vq d S(   g      ?t   weightg333333?t   otherN(    (   t   .0t   ut   v(    (    sC   lib/python2.7/site-packages/networkx/linalg/tests/test_laplacian.pys	   <genexpr>   s   i   (   R   t   Gt   nxt   Grapht   edgest   WGt   add_nodet
   MultiGrapht   MGt   copyt   Gslt   nodest   add_edge(   t   selft   degt   node(    (    sC   lib/python2.7/site-packages/networkx/linalg/tests/test_laplacian.pyt   setUp   s    c      
   C   sn  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 | } t t j |  j  j   |  t t j |  j  j   |  t t j |  j d d d g j   t  j d d g d d g g   t t j |  j  j   |  t t j |  j d	 d j   |  t t j |  j d	 d
 j   |  d S(   s   Graph Laplaciani   ii    i   i   g      ?g333333?t   nodelistR   R   N(
   R   t   arrayR   R   t   laplacian_matrixR   t   todenseR   R   t   None(   R   t   NLt   WLt   OL(    (    sC   lib/python2.7/site-packages/networkx/linalg/tests/test_laplacian.pyt   test_laplacian$   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  } 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  } t t j |  j  j   | d d t t j |  j  j   | d d t t j |  j  j   | d d t t j |  j d d j   | d d t t j |  j	  j   | d d d S(   s   Generalized Graph Laplaciang      ?g&1ڿgX9vg        g      g      ?gzҿgeaֿgK=U?gioTտg      ?t   decimali   R   R   N(
   R   R!   R   R   t   normalized_laplacian_matrixR   R#   R   R   R   (   R   t   GLt   Lsl(    (    sC   lib/python2.7/site-packages/networkx/linalg/tests/test_laplacian.pyt   test_normalized_laplacian5   s(    c         C   s  t  j   } | j d2 d3 d4 d5 d6 d7 d8 d9 d: d; f
  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  } t  j | d d d t |  } t | | d d | j d< d= f  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  } t  j | d d d t |  d& d' } t | | d d 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  } t  j | d d d t |  d& d0 } t | | d d d1 S(>   s   Directed Laplaciani   i   i   i   i   i   gŏ1w?g:pΈҿg*Dؿg\ Ac̝g&g}гYg7d?g8gDioͿgS!uqgGx$(gec]gPkwgǺgݵ|гgH}8߿g\(\g)0ʿt   alphag?R    R)   g      ?g@ǘӿgfj+޿g        g,ԚԿg	h"lx¿g[<Կgo_g      g      пt	   walk_typet   randomg      ?g@ǘÿgfj+οgTĿg]m{g[<Ŀg+eXg      t   lazyN(   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   DiGrapht   add_edges_fromR   R!   t   directed_laplacian_matrixt   sortedR   (   R   R   R+   t   L(    (    sC   lib/python2.7/site-packages/networkx/linalg/tests/test_laplacian.pyt   test_directed_laplacianM   s8    !''(	   t   __name__t
   __module__R   t   classmethodR
   R   R(   R-   R7   (    (    (    sC   lib/python2.7/site-packages/networkx/linalg/tests/test_laplacian.pyR      s   			(   t   noseR    t   networkxR   t   networkx.generators.degree_seqR   t   objectR   (    (    (    sC   lib/python2.7/site-packages/networkx/linalg/tests/test_laplacian.pyt   <module>   s   