ó ŸÃÒYc@sÛddlmZddlmZddlmZddlmZddlmZddlmZddlZddl Td „Z d e fd „ƒYZ d e fd „ƒYZ de fd„ƒYZde fd„ƒYZdS(iÿÿÿÿ(t assert_equal(t assert_is(tassert_not_equal(t assert_raises(t assert_true(traisesN(t*cCstjdƒ}t|jiid6id6id6ƒtjƒ}|jddgƒt|jiiid6d6id6ƒtjƒ}|jdddgƒt|jiiid6d6iid6d6iid6d6ƒtjƒ}|jdddgƒt|jiiid6id6d6id6id6ƒtjddd gƒ}t|j ƒdƒtt |j ƒƒdgƒtt |j ƒƒd gƒdS( Niiiiii(ii(ii(ii(ii( tnxtcomplete_graphRtnodetDiGraphtadd_pathtadjt add_cycletadd_startnumber_of_selfloopstlisttnodes_with_selfloopstselfloop_edges(tG((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_deprecated s% % : 3tBaseGraphTestercBs›eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z eejƒd „ƒZd „Zd„ZRS(s; Tests for data-structure independent graph class features.cCsn|j}d|kst‚d|ks-t‚d|ks?t‚g|ksQt‚idd6|ksjt‚dS(Niitb(tK3tAssertionError(tselfR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_contains&s  cCsF|j}tt|ƒdƒt|jƒdƒt|jƒdƒdS(Ni(RRtlentordertnumber_of_nodes(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_order.s cCsc|j}tt|jƒƒ|jƒtt|jdtƒƒdifdifdifgƒdS(Ntdataiii(RRtsortedtnodestk3nodestTrue(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_nodes4s cCsk|j}|jdƒst‚|jdƒ s4t‚|jgƒ sJt‚|jidd6ƒ sgt‚dS(Nii(Rthas_nodeR(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_has_node9s  cCs?|j}t|jddƒtƒt|jddƒtƒdS(Niiiÿÿÿÿ(RRthas_edgeR#tFalse(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_has_edge@s cCsK|j}tt|jdƒƒddgƒtttjf|jdƒdS(Niiiiÿÿÿÿ(RRR t neighborsRtKeyErrorRt NetworkXError(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_neighborsEs "cCs†|j}t|jƒdddgƒt|jdƒdd gƒt|jddgƒd d d gƒtttjf|jdƒdS( Niiiiÿÿÿÿ(ii(ii(ii(ii(ii(ii(ii(ii(Rtassert_edges_equaltedgesRR+RR,(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_edgesJs  %cCsà|jƒ}|jddddƒ|jddddƒttd„|jddƒDƒƒdddgƒtt|jddƒƒidd6dd6dd6ƒt|jdddƒdƒt|jdgddƒdgƒdS(Niitweighticss|]\}}|VqdS(N((t.0tntd((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pys Usi(ii(tGraphtadd_edgeRR tdegreetdict(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_weighted_degreeQs 24cCs‰|j}tt|jƒƒdddgƒtt|jƒƒidd6dd6dd6ƒt|jdƒdƒttj|jdƒdS(Niiiiÿÿÿÿ(ii(ii(ii(RRR R7R8RRR,(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_degreeZs  ".cCs3|j}t|jƒdƒt|jƒdƒdS(Ni(RRtsizetnumber_of_edges(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_sizeas cCsÝ|j}t|jƒ|jƒt|jdƒdgƒt|jddgƒddgƒt|jdgƒgƒt|jdƒgƒ|jdƒ}ttjt|ƒ|jdddigƒ}ttjt|ƒdS(Niiiÿÿÿÿtfooi(Rtassert_nodes_equalt nbunch_iterR"RRR,R(RRtbunch((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_nbunch_iterfs "cCs5|jƒ}dtƒfg}t|j|ƒƒdS(Ntx(R5tsetRR@(RRtnbunch((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt"test_nbunch_iter_node_format_raisexs cCs°|jƒ}|jddƒtt|jƒƒdgƒtt|jƒƒidd6ƒt|jdƒdƒtt|jdgƒƒdgƒt|jdddƒdƒdS(NiiR1(ii(ii(R5R6RR R7R8(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_selfloop_degreeƒs  "cCsë|jjƒ}|jddƒttj|ƒdgƒttj|ƒdgƒttj |ƒdƒ|j ddƒ|jddƒ|j dgƒ|jddƒ|j dƒ|jddƒ|jddƒ|j ddgƒdS(Nii(ii(ii(RtcopyR6R?RRR.RRRt remove_edgetremove_edges_fromt remove_nodetremove_nodes_from(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_selfloopsŒs (t__name__t __module__t__doc__RRR$R&R)R-R0R9R:R=RBRRR,RFRGRM(((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyR#s           tBaseAttrGraphTestercBs.eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d „Z"RS(!s) Tests of graph class attribute features.cCs„|jƒ}|jddddddƒ|jddddddƒtd„|jddƒDƒdddgƒtt|jddƒƒidd6dd6dd6ƒt|jdddƒdƒt|jdgddƒd gƒtd „|jddƒDƒdd dgƒtt|jddƒƒidd6d d6dd6ƒt|jdddƒdƒt|jdgddƒd gƒdS( NiiR1totheriicss|]\}}|VqdS(N((R2R3R4((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pys £sicss|]\}}|VqdS(N((R2R3R4((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pys ¨si(ii(ii(R5R6R?R7RR8R.(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyR9Ÿs ,4",4cCsdg|jdiii(tgraphR!RIR6(RRtll((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pytadd_attributes­s  cCs[|jddƒ}t|jdƒ|jddƒ}t|jƒdƒt|jdƒdS(Ntnametttest(R5RRVt__str__(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_nameµs cCsv|jƒ}|jdƒ|jddƒ|j|ƒ|jƒ}|j||ƒ|j||ƒ|j||ƒdS(Niii(R5tadd_nodeR6RURHt graphs_equaltdifferent_attrdicttshallow_copy_attrdict(RRtH((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_copy¼s    cCsy|jƒ}|jdƒ|jddƒ|j|ƒ|j|ƒ}|j||ƒ|j||ƒ|j||ƒdS(Niii(R5R[R6RUt __class__R\R]R^(RRR_((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_class_copyÇs   cCsr|jddgƒ}t||jƒ|jdtƒ}|jddgƒ}|jdtƒ}t||jƒdS(Niiitas_viewRH(ii(ii(R5Rt root_grapht to_directedR#tsubgraphtreverseR((RRtDGtSDGtRSDG((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_root_graphÒs cCs$|jƒ}|jdƒ|jddƒ|j|ƒ|jƒ}|j|ƒ|j|jƒƒtt |j dƒdƒ|j ƒr|j dddn|j dd}tt |ƒdƒtt |j dƒdƒ|j ƒrü|j dddn|j dd}tt |ƒdƒdS(Niii( R5R[R6RUt fresh_copytadd_nodes_fromtadd_edges_fromR/RRR!t is_multigraphR (RRR_tddict((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_fresh_copyÚs     22cCs4|j||ƒ|j||ƒ|j||ƒdS(N(R\R]tdeep_copy_attrdict(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt is_deepcopyêscCs4|j||ƒ|j||ƒ|j||ƒdS(N(tdeepcopy_graph_attrtdeepcopy_node_attrtdeepcopy_edge_attr(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyRrïscCsNt|jd|jdƒ|jdjdƒt|jd|jdƒdS(NR>i(RRStappendR(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyRtôscCsbt|jdd|jddƒ|jddjdƒt|jdd|jddƒdS(NiR>i(RR!RwR(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyRuùs#cCsgt|ddd|dddƒ|dddjdƒt|ddd|dddƒdS(NiiR>(RRwR(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyRvþs%cCs$|j||ƒ|j||ƒdS(N(R\R^(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pytis_shallow_copyscCs4|j||ƒ|j||ƒ|j||ƒdS(N(tshallow_copy_graph_attrtshallow_copy_node_attrtshallow_copy_edge_attr(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyR^scCsNt|jd|jdƒ|jdjdƒt|jd|jdƒdS(NR>i(RRSRw(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyRy scCsbt|jdd|jddƒ|jddjdƒt|jdd|jddƒdS(NiR>i(RR!Rw(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyRzs#cCsgt|ddd|dddƒ|dddjdƒt|ddd|dddƒdS(NiiR>(RRw(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyR{s%cCs¿|ddd}d|jdddtbazi(R RR/R!(RR_Rtold_foo((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt same_attrdictscCs¿|ddd}d|jdddR|i(R Rt_adjRR!t_node(RR_RR}((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyR](scCsmt|j|jƒt|j|jƒt|j|jƒt|j|jƒ|jƒ r¯|jƒ r¯t|jdd|jddƒt|jdd|jddƒnº|jƒsÖ|j|_|j|_n|jƒsý|j|_|j|_nt|j|jƒt|j|jƒt|jdd|jddƒt|jdd|jddƒdS(Nii( RRR€RSRVt is_directedRt_predt_succ(RR_R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyR\5s"#&    #cCsn|j}d|jd(RRSRR5(RRR_((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_graph_attrIs   cCs |j}|jdddƒt|jƒdddgƒt|jdtƒdifdidd6fdifgƒd|jddR„iiRR|tdefault(iN(isbaz(iN(isbar(isbaz(isbar(RR[R?R!R#tNone(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_node_attrRs ))c Cs|j}idd6}|jd|t|jƒddddgƒt|jdtƒdifdifdifdidd6fgƒdS(NR„R>iiiiR(RR[R?R!R#(RRta((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_node_attr2`s   cCsA|jƒ}|jddddƒt|jdidd6ƒdS(NiiR>R„(ii(R5R6R.R/(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_edge_lookuphs cCsn|jƒ}|jddddƒt|jdtƒddidd6fgƒt|jddƒdgƒdS(NiiR>R„R(iisbar(R5R6R.R/R#(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_edge_attrms ,cCs‡|jƒ}|jddgddƒt|jdtƒddidd6fddidd6fgƒt|jddƒd d gƒdS( NiiiiR>R(ii(ii(iiR>(iiR>(R5RnR.R/R#(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_edge_attr2ss  -c Cs|jƒ}|jddidd6fddidd6fgddƒt|jd tƒddidd6dd6fddidd6dd6fgƒ|jd dgƒ|jddd d d d d dƒt|jd tƒddid d 6d d 6dd 6fgƒdS(Niii R1iii@R>RitspamR„(ii(ii(R5RnR.R/R#RJR6(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_edge_attr3{s 9!"c CsÐ|jƒ}|jddddddddƒt|jdtƒddidd6dd6dd6fgƒd|dddi iiiÈtlistdataR1(ii(R5R6R.R/R#R (RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_edge_attr4‡s$ "((((cCse|j}|j|ƒtj|ƒ}|j||ƒ|j||ƒ|jƒ}|j||ƒdS(N(RRURR5RxR]t to_undirectedRs(RRR_((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_to_undirectedœs   cCse|j}|j|ƒtj|ƒ}|j||ƒ|j||ƒ|jƒ}|j||ƒdS(N(RRURR RxR]ReRs(RRR_((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_to_directed¥s   cCsº|j}|j|ƒ|jddddgƒ}|j||ƒ|j||ƒ|j||ƒ|jdƒ}t|jiid6ƒ|jgƒ}t|jiƒt|jiƒdS(Niiii( RRURfR\R~R^RR R(RRR_((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyt test_subgraph®s  cCs–|jjƒ}|jddƒ|jddddƒttj|dtƒddifddidd6fgƒttj|ddƒddgƒdS(NiiR1iR(iiN(iii(RRHR6R.RRR#R‡(RR((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_selfloops_attr¼s&(#RNRORPR9RURZR`RbRkRqRsRrRtRuRvRxR^RyRzR{R~R]R\R…RˆRŠR‹RŒRRR‘R“R”R•R–(((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyRQœsB                       t TestGraphcBs•eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„ZRS(s;Tests specific to dict-of-dict-of-dict graph data structurecCsêtj|_iii}}}ii|d6|d6d6i|d6|d6d6i|d6|d6d6|_dddg|_dddg|_|jƒ|_|j|j_i|j_i|jjdiRVR„iN(R_RRR!(Rtv((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_node_attr_dictŽs %!cCsËxJ|jjƒD]9\}}t|jj||f|jj||fƒqWd|jjd diiRVR„iiN(ii(ii(ii(ii(ii(ii(R_R/RR(RtuRÅ((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_edge_attr_dict›s1cCst|jj|jjƒdS(saTests that the graph attribute dictionary of the two graphs is the same object. N(RRRSR_(R((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyttest_graph_attr_dictªs( RNRORPRÂRÃRÄRªR®RÆRÈRÉ(((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyRºes     (t nose.toolsRRRRRRtnetworkxRtnetworkx.testing.utilsRtobjectRRQR—Rº(((sw/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/classes/tests/test_graph.pyts   yÿ+Ÿ