Yc@sFddlmZddlZddlmZdefdYZdS(i(tSkipTestN(thavel_hakimi_grapht TestLaplaciancBsAeZdZedZdZdZdZdZRS(icCsVy2ddladdladdlmamaWntk rQtdnXdS(Ni(t assert_equaltassert_almost_equalsSciPy not available.(tnumpytscipyt numpy.testingRRt ImportErrorR(tcls((sz/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/linalg/tests/test_laplacian.pyt setupClass s    cCsdddddg}t||_tjd|jjD|_|jjdtj|j|_|jj |_ x*|j j D]}|j j ||qWdS(Niiiicss2|](\}}||idd6dd6fVqdS(g?tweightg333333?totherN((t.0tutv((sz/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/linalg/tests/test_laplacian.pys si( RtGtnxtGraphtedgestWGtadd_nodet MultiGraphtMGtcopytGsltnodestadd_edge(tselftdegtnode((sz/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/linalg/tests/test_laplacian.pytsetUps c Csntjdddddgdddddgdddddgdddddgdddddgg}d|}d|}ttj|jj|ttj|jj|ttj|jdddgjtjddgddggttj|jj|ttj|jd d j|ttj|jd d j|d S( sGraph Laplacianiiiiig?g333333?tnodelistR R N( RtarrayRRtlaplacian_matrixRttodenseRRtNone(RtNLtWLtOL((sz/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/linalg/tests/test_laplacian.pyttest_laplacian$s  $"%c Cstjdddddgdddddgdddddgdddddgdddddgg}tjdddddgdd d ddgdd d ddgdddd dgdddddgg}ttj|jj|d d ttj|jj|d d ttj|jj|d d ttj|jddj|d d ttj|j j|d d dS(sGeneralized Graph Laplaciang?g&1ڿgX9vggg?gzҿgeaֿgK=U?gioTտg?tdecimaliR R N( RR!RRtnormalized_laplacian_matrixRR#RRR(RtGLtLsl((sz/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/linalg/tests/test_laplacian.pyttest_normalized_laplacian5s(    c Cstj}|jd2d3d4d5d6d7d8d9d:d;f tjddd d d d gdd ddddgd dddddgd dddddgd dddddgd dddddgg}tj|dddt|}t||dd|jd<d=ftjdddddd gddd!dd"dgdd!ddd#dgddddd$d$gdd"d#d$dd%gd ddd$d%dgg}tj|dddt|d&d'}t||ddtjd(d)d*ddd+gd)d(d,dd-dgd*d,d(dd.dgdddd(d%d%gdd-d.d%d(d/gd+ddd%d/d(gg}tj|dddt|d&d0}t||ddd1S(>sDirected Laplacianiiiiiigŏ1w?g:pΈҿg*Dؿg\ Ac̝g&†g}гYg7d?g8gDioͿgS!uqgGx $(gec]gPkwgǺgݵ|гgH}8߿g\(\g) 0ʿtalphag?R R)g?g@ǘӿgfj+޿gg,ԚԿg h"lx¿g[<Կgo_ggпt walk_typetrandomg?g@ǘÿgfj+οgTĿg]m{g[<Ŀg+eXgtlazyN(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(RtDiGraphtadd_edges_fromRR!tdirected_laplacian_matrixtsortedR(RRR+tL((sz/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/linalg/tests/test_laplacian.pyttest_directed_laplacianMs8 !''( t__name__t __module__Rt classmethodR RR(R-R7(((sz/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/linalg/tests/test_laplacian.pyRs   (tnoseRtnetworkxRtnetworkx.generators.degree_seqRtobjectR(((sz/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/linalg/tests/test_laplacian.pyts