ó žÃÒYc@s4ddlmZddlmZmZmZmZddlZddl m Z ddl m Z e j e je je je jgZd„Zd„Zd„Zd „Zd „Zd „Zd „Zd „Zd„Zdd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%dS(iÿÿÿÿ(t itemgetter(t assert_equalt assert_falset assert_truet assert_raisesN(tflow(t_is_separating_setc Csåtjtjddgƒddƒ}tj|dƒ}td„|jƒDƒƒ}xƒ|d|df|d|df|d|df|d|dfgD]7}|jƒd}tjƒ}tj||ƒ}|j |d|dƒ|j ||dƒtj dƒ}tj||ƒ}|j |d |d ƒ|j |d|d ƒ|j |d|d ƒtj||ƒ}||d }|j |d ƒx"|D]}|j |d|ƒqžW|j |d|dƒqWd|_ |S(Nitlabel_attributetlabelscss!|]\}}||fVqdS(N((t.0tktv((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pys siiiiii i i i iisExample graph for connectivity(ii(ii(ii(ii(ii(ii(ii(ii( tnxtconvert_node_labels_to_integerst grid_graphtget_node_attributestdicttitemstordertpetersen_graphtdisjoint_uniontadd_edgetcomplete_grapht remove_nodetname( tGtrlabelsRtnodestnew_nodetPtKtnbrstnbr((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pytgraph_example_1s4    c CsStjtjddgƒddƒ}tj|dƒ}td„|jƒDƒƒ}xa|d|df|d|dfgD]7}|jƒd}tjƒ}tj||ƒ}|j |d|dƒ|j ||dƒtj dƒ}tj||ƒ}|j |d |d ƒ|j |d|d ƒ|j |d|d ƒtj||ƒ}||d }|j |d ƒx"|D]}|j |d|ƒq|W|j |d|dƒq{Wx|d|df|d|dfgD]c}|jƒd}tjƒ}tj||ƒ}|j |d|dƒ|j ||dƒtj dƒ}tj||ƒ}|j |d |d ƒ|j |d|d ƒ|j |d|d ƒtj||ƒ}||d }|j |d ƒx"|D]}|j |d|ƒqàW||d} |j |dƒx"| D]}|j |d|ƒq$WqßWd|_ |S(NiRRcss!|]\}}||fVqdS(N((R R R ((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pys ?siiiiii i i i iiii isExample graph for connectivity(ii(ii(ii(ii(ii(ii(ii(ii( R R RRRRRRRRRRR( RRRRRRRRR tnbrs2((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttorrents_and_ferraro_graph;sZ       cCsžx—tj|ƒD]†}t|ƒdkr.qntj|ƒ}xVtj|ƒD]E}t|t|ƒƒ|jƒ}|j|ƒttj |ƒƒqMWqWdS(Ni( R tconnected_component_subgraphstlentnode_connectivityt all_node_cutsRtcopytremove_nodes_fromRt is_connected(RtGct node_conntcuttH((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyt_check_separating_sets{s  cCstƒ}t|ƒdS(N(R#R/(R((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_torrents_and_ferraro_graph‡s cCstƒ}t|ƒdS(N(R!R/(R((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_example_1Œs cCs tjddƒ}t|ƒdS(Nidgš™™™™™¹?(R tgnp_random_graphR/(R((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_random_gnp‘scCs)ddg}tj|ƒ}t|ƒdS(NiiPgš™™™™™é?i´g333333ã?(iiPgš™™™™™é?(iPi´g333333ã?(R trandom_shell_graphR/(t constructorR((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyt test_shell–s cCsQtjdddƒ}tjtj|ƒƒ}|jtj|ƒƒt|ƒdS(Nidttriesiˆ(R trandom_powerlaw_tree_sequencetGraphtconfiguration_modeltremove_edges_fromtselfloop_edgesR/(tdeg_seqR((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_configurationœscCstjƒ}t|ƒdS(N(R tkarate_club_graphR/(R((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyt test_karate£s i2ccs‰d}x|tr„tjddƒ}tj|ƒrNtj|ƒ rNd}|Vq ||krwd|}t||ƒ‚q |d7}q WdS(Niidgq= ×£p­?s"Tried %d times: no suitable Graph.i(tTrueR tfast_gnp_random_graphR*tis_biconnectedt Exception(t max_attemptstattemptsRtmsg((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyt_generate_no_biconnected¨s   cCsytƒ}xitdƒD][}t|ƒ}td„tj|ƒDƒƒ}x'tj|ƒD]}t||kƒqWWqWdS(Nicss|]}|hVqdS(N((R ta((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pys »s(RHtrangetnexttlistR tarticulation_pointsR'R(tGgentiRRMR-((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_articulation_points·s   cCs‚tjddƒ}tddgƒtdd gƒtd d gƒtd d gƒg}x'tj|ƒD]}t||kƒqdWdS(Niiiii(ii(ii(ii(ii(ii(ii(ii(ii(R t grid_2d_graphtsetR'R(RtsolutionR-((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_grid_2d_graphÀscCs8tjddƒ}tj|ƒ}ttjt|ƒdS(Nidg{®Gáz„?(R RBR'Rt NetworkXErrorRK(Rtcuts((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_disconnected_graphÏscCs¬ttjg}x–|D]Ž}|ƒ}tj|ƒ}xmtD]e}x\tj|d|ƒD]E}t|t|ƒƒ|jƒ}|j |ƒt tj |ƒƒqWWq;WqWdS(Nt flow_func( R!R tdavis_southern_women_graphR&t flow_funcsR'RR%R(R)RR*(t graph_funcst graph_funcRR,RXR-R.((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_alternative_flow_functionsÕs     cCs2tjdƒ}tt|ddddhƒƒdS(Niiiii(R RRR(R((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyt%test_is_separating_set_complete_graphâscCsXxQdddgD]@}tj|ƒ}t|d|jƒ}tt||hƒƒqWdS(Nii itkey(R t star_graphtmaxtdegreeRR(RORtmax_degree_node((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_is_separating_setçscCsûtjƒ}tttj|ƒƒdtƒ}ddhddhddhddhddhg}ttj|ƒƒ}t|ƒt|ƒkrºtj|ƒGHd j|ƒGHd j|ƒGHnt t|ƒt|ƒkƒx|D]}t ||kƒqÝWdS( NR_i i!iiiiis Solution: {}s Result: {}( R R?RaRLtbiconnected_component_subgraphsR%R'tinfotformatR(RRRSRVR-((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_non_repeated_cutsîs !3 cCs˜tjdƒ}ddhddhddhddhddhg}ttj|ƒƒ}tt|ƒt|ƒkƒx|D]}t||kƒqzWdS(Niiiiii(R t cycle_graphRLR'RR%(RRSRVR-((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_cycle_graphþs 3 cCs¶tjdƒ}ddddhddddhddddhddddhddddhg}ttj|ƒƒ}tt|ƒt|ƒkƒx|D]}t||kƒq˜WdS(Niiiiii(R RRLR'RR%(RRSRVR-((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyttest_complete_graphs (&toperatorRt nose.toolsRRRRtnetworkxR tnetworkx.algorithmsRt)networkx.algorithms.connectivity.kcutsetsRtboykov_kolmogorovtdinitzt edmonds_karpt preflow_pushtshortest_augmenting_pathRZR!R#R/R0R1R3R6R>R@RHRPRTRWR]R^RdRhRjRk(((sŠ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/connectivity/tests/test_kcutsets.pyts8"   $ @