ó ŸÃÒYc@sâddlmZmZmZddlmZmZddlmZmZmZddl Z ddl m Z m Z defd„ƒYZdefd „ƒYZd efd „ƒYZd efd „ƒYZdefd„ƒYZdS(iÿÿÿÿ(t assert_int assert_not_int assert_equal(t assert_ist assert_is_not(t assert_raisest assert_truet assert_falseN(tassert_edges_equaltassert_nodes_equaltTestReverseViewcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs7tjddtjƒƒ|_tj|jƒ|_dS(Ni t create_using(tnxt path_graphtDiGraphtGt reverse_viewtrv(tself((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pytsetup scCsmddl}|j}|j|j|dƒƒ}t|j|jƒt|j|jƒt|j|jƒdS(Niÿÿÿÿ(tpickleRtloadstdumpsRt_nodet_adjtgraph(RRRtprv((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyt test_pickles   cCsPtd|jjƒtd|jjƒtd|jjƒtd|jjƒdS(Nii(ii(ii(ii(ii(RRtedgesRR(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyt test_containsscCs9td„|jjDƒƒ}tt|jjƒ|ƒdS(Ncss!|]}tt|ƒƒVqdS(N(ttupletreversed(t.0te((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pys s(tsortedRRRR(Rtexpected((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyt test_iterscCs)tj}ttj|jtjƒƒdS(N(R t graphviewsRtNetworkXNotImplementedt ReverseViewtGraph(Rtnxg((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_exceptions"s (t__name__t __module__RRRR$R*(((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR s     tTestMultiReverseViewcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCsJtjddtjƒƒ|_|jjddƒtj|jƒ|_dS(Ni R ii(R R t MultiDiGraphRtadd_edgeRR(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR(scCsmddl}|j}|j|j|dƒƒ}t|j|jƒt|j|jƒt|j|jƒdS(Niÿÿÿÿ(RRRRRRRR(RRRR((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR-s   cCsvtd|jjƒtd|jjƒtd |jjƒtd |jjƒtd |jjƒtd |jjƒdS( Niiiiii(iii(iii(iii(iii(iii(iii(RRRRR(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR5s cCs9td„|jjDƒƒ}tt|jjƒ|ƒdS(Ncss'|]\}}}|||fVqdS(N((R tutvtk((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pys >s(R"RRRR(RR#((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR$=scCs5tj}tj|jƒ}ttj|j|ƒdS(N(R R%t MultiGraphRRR&tMultiReverseView(RR)tMG((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR*As (R+R,RRRR$R*(((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR-'s     tTestToDirectedcBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs^tjdƒ|_tj|jƒ|_tjddtjƒƒ|_tj|jƒ|_dS(Ni R (R R Rt to_directedtdvR3R5tMdv(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyRHscCs*t|jjƒƒt|jjƒƒdS(N(RRt is_directedRR8(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyt test_directedNscCsTtj|jƒ}tj|jƒ}t|j|jjƒt|j|jjƒdS(N(R R7R8R9RR(RtddtMdd((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_already_directedRscCs€ddl}|j}|j|j|dƒƒ}t|j|jƒt|j|jƒt|j|jƒt|j|jƒdS(Niÿÿÿÿ( RR8RRRRt_succt_predR(RRR8tpdv((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyRXs  cCsPtd|jjƒtd|jjƒtd|jjƒtd|jjƒdS(Nii(ii(ii(ii(ii(RRRR8(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyRascCsdg|jjD]}tt|ƒƒ^q }tt|jjƒ|ƒ}tt|jjƒ|ƒdS(N(RRRRR"tlistRR8(RR!trevdR#((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR$gs+cCs?tj}ttj|j|jƒttj|j|jƒdS(N(R R%Rt NetworkXErrort DiGraphViewR5tMultiDiGraphViewR(RR)((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR*ls ( R+R,RR;R>RRR$R*(((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR6Gs     tTestToUndirectedcBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsjtjddtjƒƒ|_tj|jƒ|_tjddtjƒƒ|_tj|jƒ|_dS(Ni R ( R R RtDGt to_undirectedtuvR.tMDGtMuv(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyRsscCs*t|jjƒƒt|jjƒƒdS(N(RRHR:RRJ(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR;yscCsTtj|jƒ}tj|jƒ}t|j|jjƒt|j|jjƒdS(N(R RIRJRLRR(RtuutMuu((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR>}scCs€ddl}|j}|j|j|dƒƒ}t|j|jƒt|j|jƒt|j|jƒtt |dƒƒdS(Niÿÿÿÿt_graph( RRJRRRRRRRthasattr(RRRJtpuv((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyRƒs  cCsPtd|jjƒtd|jjƒtd|jjƒtd|jjƒdS(Nii(ii(ii(ii(ii(RRHRRRJ(R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyRŒscCs/t|jjƒ}tt|jjƒ|ƒdS(N(R"RHRRRJ(RR#((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR$’scCs?tj}ttj|j|jƒttj|j|jƒdS(N(R R%RRDt GraphViewRKtMultiGraphViewRH(RR)((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR*–s ( R+R,RR;R>RRR$R*(((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyRGrs     tTestChainsOfViewscBs}eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „ZRS( c CsWtjdƒ|_tjddtjƒƒ|_tjddtjƒƒ|_tjddtjƒƒ|_tj |jƒ|_ tj |jƒ|_ tj |jƒ|_ tj |jƒ|_|jjƒ|_|jjƒ|_|j|j|j|j|j |j |j |j|j|jg |_x'|jD]}|j|j|jfq3WdS(Ni R (R R RRRHR3R5R.RKRItGvR7tDGvtMGvtMDGvtreversetRvtMRvtgraphsRtnodestdegree(RR((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pytsetUpscCseddl}xR|jD]G}|j|j|dƒƒ}t|j|jƒt|j|jƒqWdS(Niÿÿÿÿ(RR\RRRRR R](RRRtH((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyR®s  cCstj|jtddƒƒ}tj|jtddƒƒ}tj|jtddƒƒ}tj|jtddƒƒ}x“|j||||gD]x}tj|dddgƒ}t t |ƒdddgƒ|jddgƒ}t t |ƒdgƒt |j |ƒq’WdS(Niiiii( R tsubgraphRtrangeRHR5RKR\tinduced_subgraphRRBRRO(RtSGvtSDGvtSMGvtSMDGvRtSGtSSG((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_subgraph_of_subgraphµs c Cs^dddg}d g}tj|j||ƒ}dddddg}tj||ƒ}|j|ƒ}t|j|jƒt|j|jƒt |j |j ƒ|jj ƒ}|j |ƒ|j |ƒt |j |ƒ|j ƒ|j ddd dgƒt |j |j ƒ|jj|ƒ}tj|||ƒ} t| j| jƒt | j |j ƒd S( s' Test subgraph chains that both restrict and show nodes/edges. A restricted_view subgraph should allow induced subgraphs using G.subgraph that automagically without a chain (meaning the result is a subgraph view of the original graph not a subgraph-of-subgraph. iiiiiiiiiN(ii(R trestricted_viewRRcRaRt root_graphRORRRtcopytremove_nodes_fromtremove_edges_from( Rt hide_nodest hide_edgestRGR]RhRitCGtSSSGtRSG((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyt'test_restricted_induced_subgraph_chainsÂs&   cCsltj|jdddgƒ}|jƒ}tt|ƒdddgƒtt|jƒddddgƒdS(Niii(ii(ii(ii(ii(R RcRR7RR"R(RRhRi((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_subgraph_todirectedßs cCsftj|jdddgƒ}|jƒ}tt|ƒdddgƒtt|jƒddgƒdS(Niii(ii(ii(R RcRRIRRBR"R(RRhRi((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_subgraph_toundirectedås cCsu|jjdtƒ}|jdddgƒ}|jƒ}tt|ƒdddgƒtt|jƒddgƒdS(NRmiii(ii(ii( RHRYtFalseRaRIRRBR"R(RRRhRi((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyt"test_reverse_subgraph_toundirectedës  cCsª|jjdtƒ}|jdtƒ}t|j|jjƒt|j|jjƒ|jjdtƒ}|jdtƒ}t|j|jjƒt|j|jjƒdS(NRm(RHRYRytTrueRR]RRK(RRR`((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_reverse_reverse_copyòscCs~|jjƒ}|jdddgƒ}|jddgƒ}|jƒ}tt|ƒddgƒtt|jƒdgƒdS(Niii(ii(ii(ii( RRmRat edge_subgraphRIRRBR"R(RRRhRitUSSG((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyt'test_subgraph_edgesubgraph_toundirectedüs  cCsu|jjƒ}|jdddgƒ}|jdtƒ}|jdtƒ}t|jjdƒt|jjdƒdS(Niiitas_viewRRR((RRmRaR{RyRt __class__R+(RRRhtCSGtDCSG((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_copy_subgraphs cCsu|jjƒ}|jdddgƒ}|jdtƒ}|jdtƒ}t|jjdƒt|jjdƒdS(NiiiR€RER(RHRmRaR{RyRRR+(RRRhR‚Rƒ((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_copy_disubgraph s cCsu|jjƒ}|jdddgƒ}|jdtƒ}|jdtƒ}t|jjdƒt|jjdƒdS(NiiiR€RFR.(RKRmRaR{RyRRR+(RRRhR‚Rƒ((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_copy_multidisubgraphs cCsu|jjƒ}|jdddgƒ}|jdtƒ}|jdtƒ}t|jjdƒt|jjdƒdS(NiiiR€RSR3(RWRmRaR{RyRRR+(RRRhR‚Rƒ((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyttest_copy_multisubgraphs (R+R,R_RRjRvRwRxRzR|RR„R…R†R‡(((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyRTœs          (t nose.toolsRRRRRRRRtnetworkxR tnetworkx.testingRR tobjectR R-R6RGRT(((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graphviews.pyts  +*