ó žÃÒYc@ sœdZddlmZddlmZddlmZddlmZddlZ ddl Tddlm Z d e fd „ƒYZd e fd „ƒYZdS( s>Unit tests for the :mod:`networkx.algorithms.boundary` module.iÿÿÿÿ(tdivision(t combinations(tassert_almost_equals(t assert_equalN(t*(tconvert_node_labels_to_integerstTestNodeBoundarycB sMeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS(s<Unit tests for the :func:`~networkx.node_boundary` function.cC sÒtjƒ}ttj|gƒtƒƒttj|ggƒtƒƒttj|dddgƒtƒƒttj|dddgdddgƒtƒƒttj|dddgdddgƒtƒƒdS(s4Tests that the null graph has empty node boundaries.iiiiiiN(tnxt null_graphRt node_boundarytset(tselftnull((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyttest_null_graphs  %1cC s(ttjdƒddƒ}ttj|gƒtƒƒttj|ggƒtƒƒttj|dddgƒdhƒttj|dddgƒdd hƒttj|ddddd gƒdd hƒttj|d d dgƒd hƒttj|dddgd dgƒtƒƒdS( Ni t first_labeliiiiiiiii (tcnltiRt path_graphRR R (R tP10((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyttest_path_graph"s%(.%c C swttjdƒddƒ}ttj|gƒtƒƒttj|ggƒtƒƒttj|dddgƒdddd d d dhƒttj|dddgƒdddd d d dhƒttj|ddddd gƒddd d dhƒttj|dddggƒtƒƒttj||ƒtƒƒttj|dddgdddgƒddhƒdS( Ni Riiiiiiiii (RRtcomplete_graphRR R (R tK10((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyttest_complete_graph,s777(cC s¥d„}tjƒ}t||dƒdddƒt||dƒdddƒt||dƒdddƒt||d ƒd ddƒt||d ƒd ddƒd S(sqCheck boundaries in the petersen graph cheeger(G,k)=min(|bdy(S)|/|S| for |S|=k, 0?s(tminR(RR((RRs}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pytcheeger>sig@tplacesig@ig¸…ëQ¸ú?igð?igš™™™™™é?N(Rtpetersen_graphR(R RtP((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyt test_petersen7s  cC sVtjddd d d gƒ}ddh}tj||ƒ}dh}t||ƒdS( s,Tests the node boundary of a directed graph.iiiiiN(ii(ii(ii(ii(ii(RtDiGraphR R(R RtStboundarytexpected((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyt test_directedIs   cC sctjttjdƒjƒƒdƒ}ddh}tj||ƒ}ddh}t||ƒdS(s(Tests the node boundary of a multigraph.iiiiiN(Rt MultiGraphtlistt cycle_graphtedgesR R(R RR"R#R$((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyttest_multigraphQs (  cC s`ddd d d g}tj|dƒ}ddh}tj||ƒ}dh}t||ƒdS( s*Tests the edge boundary of a multdiigraph.iiiiiN(ii(ii(ii(ii(ii(Rt MultiDiGraphR R(R R)RR"R#R$((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyttest_multidigraphYs   ( t__name__t __module__t__doc__R RRR R%R*R,(((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyRs   tTestEdgeBoundarycB sDeZdZd„Zd„Zd„Zd„Zd„Zd„ZRS(s<Unit tests for the :func:`~networkx.edge_boundary` function.cC sátjƒ}tttj|gƒƒgƒtttj|ggƒƒgƒtttj|dddgƒƒgƒtttj|dddgdddgƒƒgƒtttj|dddgdddgƒƒgƒdS(Niiiiii(RRRR't edge_boundary(R R ((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyR fs  "(4c C sƒttjdƒddƒ}tttj|gƒƒgƒtttj|ggƒƒgƒtttj|dddgƒƒd gƒtttj|dddgƒƒd dgƒtttj|ddddd gƒƒddgƒtttj|d d dgƒƒdgƒtttj|dddgd dgƒƒgƒtttj|dddgdddgƒƒddgƒdS(Ni Riiiiiiiii (ii(ii(ii(ii(ii(ii(ii(ii(RRRRR'R1tsorted(R R((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyRns"+! ' +1-c C s•ttjdƒddƒ}d„}tttj|gƒƒgƒtttj|ggƒƒgƒt|tj|dddgƒƒdƒt|tj|dd d d gƒƒd ƒt|tj|ddd d d gƒƒd ƒt|tj|dddgƒƒdƒttj|dd d gddgƒddddddgƒttj|dddgddd gƒddddddddgƒdS(Ni RicS std„|DƒƒS(Ncs s|] }dVqdS(iN((Rti((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pys s(tsum(titerable((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pytilensiiiiiiiiiii (ii (ii (ii (ii (ii (ii (ii(ii(ii(ii(ii(ii(ii(ii(RRRRR'R1tassert_edges_equal(R RR6((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyR|s "(+.($'cC s\tjddd d d gƒ}ddh}ttj||ƒƒ}d g}t||ƒdS( s,Tests the edge boundary of a directed graph.iiiiiN(ii(ii(ii(ii(ii(ii(RR!R'R1R(R RR"R#R$((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyR%Œs   cC sotjttjdƒjƒƒdƒ}ddh}ttj||ƒƒ}ddd d g}t||ƒdS( s(Tests the edge boundary of a multigraph.iiiiiN(ii(ii(ii(ii(RR&R'R(R)R1R(R RR"R#R$((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyR*”s ( cC siddd d d g}tj|dƒ}ddh}ttj||ƒƒ}d d g}t||ƒdS(s*Tests the edge boundary of a multdiigraph.iiiiiN(ii(ii(ii(ii(ii(ii(ii(RR+R'R1R(R R)RR"R#R$((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyR,œs   ( R-R.R/R RRR%R*R,(((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyR0cs     (R/t __future__Rt itertoolsRt nose.toolsRRtnetworkxRtnetworkx.testing.utilsRRtobjectRR0(((s}/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tests/test_boundary.pyt s  M