ó žÃÒYc@sùddlmZmZmZmZddlmZmZmZddlZ ddl m Z ddl m Z mZd„Zd„Zd„Zd „Zd „Zd „Zd „Zd „Zd„Zee jƒd„ƒZd„Zddd„ƒYZdS(iÿÿÿÿ(t assert_equalt assert_truet assert_falset assert_in(t assert_raisestraisestassert_greater_equalN(t k_components(t _AntiGrapht_samecCsYi}xLt|jƒƒD]8\}}x)|D]!}x|D]}|||siiiiii i i i iisExample graph for connectivity(ii(ii(ii(ii(ii(ii(ii(ii( tnxtconvert_node_labels_to_integerst grid_graphtget_node_attributestdictR tordertpetersen_graphtdisjoint_uniontadd_edgetcomplete_grapht remove_nodetname( tGtrlabelsRtnodestnew_nodetPtKtnbrstnbr((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.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((RR R((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pys ;siiiiii i i i iiii isExample graph for connectivity(ii(ii(ii(ii(ii(ii(ii(ii( RRRRRR RRRRRR R!( R"R#RR$R%R&R'R(R)tnbrs2((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttorrents_and_ferraro_graph7sZ       cCs{t|ƒ}xh|jƒD]Z\}}|dkr7qnx9|D]1}|j|ƒ}tj|ƒ}t||ƒq>WqWdS(Ni(RR tsubgraphRtnode_connectivityR(R"tresultR t componentst componenttCR'((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyt_check_connectivityvs   cCstƒ}t|ƒdS(N(R,R3(R"((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_torrents_and_ferraro_graph€s cCstƒ}t|ƒdS(N(R*R3(R"((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_example_1„s cCstjƒ}t|ƒdS(N(Rtkarate_club_graphR3(R"((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyt test_karate_0ˆs cCsOi"dd6dd6dd6dd6dd6dd6dd6dd6dd 6dd 6dd 6dd 6dd 6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6dd!6dd"6}|jƒ}d|d£s( R*RRR=RtallR RR.R-R(R"R/R>R R0R1R'((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_example_1_detail_3_and_4™s  <<  cCs(tjdddtƒ}t|ƒ}dS(Ni gš™™™™™Ù?tdirected(Rtgnp_random_graphtTrueR(R"tkc((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyt test_directed­scCs±idd6dd6dd6}idd6dd6dd6}idd6dd6dd6}tt|ƒƒtt|ƒƒtt|ddƒƒtt|ƒƒtt|dd ƒƒdS( NitAtBR2iiittoli(RR R(tequaltslightly_differentt different((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyt test_same²st TestAntiGraphcBsbeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „ZRS( cCs¾tjddƒ|_ttj|jƒƒ|_tjƒ|_ttj|jƒƒ|_tj ƒ|_ ttj|j ƒƒ|_ |j|jf|j|jf|j |j fg|_ dS(Nigš™™™™™é?( RRBtGnpRt complementtAnptdavis_southern_women_graphtGdtAdR6tGktAktGA(tself((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pytsetUp¾scCstxm|jD]b\}}|jƒ}tt|jƒƒƒtt|jƒƒƒ}t|||ddkƒq WdS(Nii(RVRR=tlisttedgesR(RWR"RFtnts((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyt test_sizeÉs .cCs7x0|jD]%\}}t|jƒ|jƒƒq WdS(N(RVRtdegree(RWR"RF((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyt test_degreeÏscCs=x6|jD]+\}}ttj|ƒtj|ƒƒq WdS(N(RVRRt core_number(RWR"RF((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_core_numberÓscCsxˆ|jD]}\}}gtj|ƒD]}t|ƒ^q&}gtj|ƒD]}t|ƒ^qN}x|D]}t||kƒqmWq WdS(N(RVRtconnected_componentstsetR(RWR"RFR>tgctacR((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_connected_components×s (( cCs‰x‚|jD]w\}}xh|jjƒD]W\}}td„|jjƒDƒƒ}td„|jjƒDƒƒ}t||ƒq&Wq WdS(Ncss'|]\}}|t|ƒfVqdS(N(R (RR[tad((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pys áscss'|]\}}|t|ƒfVqdS(N(R (RR[Rg((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pys âs(RVtadjR R R(RWR"RFR[R(ta_adjtg_adj((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_adjÞs cCsixb|jD]W\}}t|jƒƒ}x6|jƒD](\}}t|t|ƒf|kƒq5Wq WdS(N(RVRYt adjacencyRRc(RWR"RFRiR[R(((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_adjacencyåscCs_xX|jD]M\}}t|jƒƒd}tt|j|ƒƒt|j|ƒƒƒq WdS(Ni(RVRYR$RRct neighbors(RWR"RFR((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_neighborsëscCsPxI|jD]>\}}d}ttj|j|ƒttj|j|ƒq WdS(Ntnon_existent_node(RVRRt NetworkXErrorRn(RWR"RFR((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyttest_node_not_in_graphðscCs#x|jD]\}}t|jƒƒd}t|jƒƒdd!}t|j|ƒ|j|ƒƒttd„|jƒDƒƒtd„|jƒDƒƒƒttd„|jƒDƒƒtd„|jddƒDƒƒƒttd„|j|ƒDƒƒtd „|j|ƒDƒƒƒq WdS( Niiicss|]\}}|VqdS(N((RR[td((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pys ûscss|]\}}|VqdS(N((RR[Rs((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pys ýscss|]\}}|VqdS(N((RR[Rs((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pys þstweightcss|]\}}|VqdS(N((RR[Rs((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pys ÿscss|]\}}|VqdS(N((RR[Rs((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pys s(RVRYR$RR^tsum(RWR"RFRR$((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyR_ös9#( t__name__t __module__RXR]R_RaRfRkRmRoRr(((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyRM½s        ((t nose.toolsRRRRRRRtnetworkxRt!networkx.algorithms.approximationRt-networkx.algorithms.approximation.kcomponentsRR RR*R,R3R4R5R7R<R@tNetworkXNotImplementedRERLRM(((sŽ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/approximation/tests/test_kcomponents.pyts "  # ?