ó ŸÃÒYc@sdZddlZddlTddlZddlTddlmZddlmZddlm Z eZ dd d„ƒYZ dS( sŠ ==================== Generators - Classic ==================== Unit tests for various classic graph generators in generators/classic.py iÿÿÿÿN(t*(tgraph_could_be_isomorphic(tassert_edges_equal(tassert_nodes_equaltTestGeneratorClassiccBseZd„Zd„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„ZRS(cCsxdddgD]ð\}}t||ƒ}|jƒ}t|||dd|dkƒtt|ƒƒt|jƒ|dkƒt|ƒ}t|ddƒt|d||ƒt||dƒt||d|||dƒtt|ƒ|dƒqWdS( Niiiii(ii(ii(ii(t balanced_treetordert assert_truet is_connectedtsizetdegree_histogramt assert_equaltlen(tselftrthttRtdh((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_balanced_trees $ !cCsŽtddddƒ}tt|tdƒƒƒtddddƒ}tt|tdƒƒƒtddddƒ}tt|tdƒƒƒdS(NRiRiii (RRt is_isomorphict star_graph(R R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_balanced_tree_star%s cCs2tddƒ}tdƒ}tt||ƒƒdS(s[Tests that the balanced tree with branching factor one is the path graph. iiiN(Rt path_graphRR(R tTtP((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_balanced_tree_path.s cCs­d}d}t||ƒ}t|jƒ|ƒtt|ƒƒt|ƒ}t|ddƒt|ddƒt||dƒt||ddƒtt|ƒ|dƒdS(Nii iiiii(tfull_rary_treeR RRRR R (R RtnRR((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_full_rary_tree8s cCs5tddƒ}tddƒ}tt||ƒƒdS(Niii(RRRR(R Rtth((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_full_rary_tree_balancedEscCs,tddƒ}tt|tdƒƒƒdS(Nii (RRRR(R R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_full_rary_tree_pathJscCsTtddƒ}tt|tdƒƒƒtddƒ}tt|tdƒƒƒdS(Nii i(RRRt empty_graph(R R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_full_rary_tree_emptyNscCs&tddƒ}t|jƒdƒdS(Nii(RR R(R R((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_full_rary_tree_3_20TscCsfd}d}t||ƒ}tt|ƒd||kƒtt|ƒ||d|dkƒd}d}t||ƒ}tt|ƒd||kƒtt|ƒ||d|dkƒd}d}t||ƒ}tt|ƒd||kƒtt|ƒ||d|dkƒd}d}ttjjt||ƒd}d}ttjjt||ƒd}d}t||ƒ}tt|t |dƒƒƒd}d}t||ƒ}tt|t |dƒƒƒd}d}t||ƒ}tt|t |dƒƒƒttjjt||d t ƒƒt||d t ƒƒ}t |j ƒ|j ƒƒdS( Niiiiii iiþÿÿÿt create_using(t barbell_graphRtnumber_of_nodestnumber_of_edgest assert_raisestnetworkxt exceptiont NetworkXErrorRRtDiGrapht MultiGraphRtedges(R tm1tm2tbtmb((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_barbell_graphXsJ&&& cCsÎx^ddddgD]J}t|ƒ}tt|ƒ|kƒtt|ƒ||ddkƒqWt|dtƒƒ}t|jƒ|jƒƒtdƒ}t|jƒdd d gƒt |j ƒdƒdS( NiiiiiR#tabctaR0tc( tcomplete_graphRR%R&R,RR-RtnodesR R (R tmtgtmg((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_complete_graphs & cCs»xfddddgD]R}t|dtjƒƒ}tt|ƒ|kƒtt|ƒ||dkƒqWtddtjƒƒ}tt|ƒdƒt|jƒdƒt|j ƒƒdS(NiiiiR#R3i( R6tnxR+RR%R&R R R t is_directed(R R8R9((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_complete_digraphœs"cCs]tdƒ}ttjjtddtƒƒtddtƒƒ}t|jƒ|jƒƒdS(NiR#( tcircular_ladder_graphR'R(R)R*R+R,RR-(R tGtmG((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_circular_ladder_graph©s  cCs¯tddgƒ}tdƒ}t|jƒ|jƒƒtddddgƒ}tdƒ}t|jƒ|jƒƒtdddgƒ}tddƒ}tt||ƒƒdS(Niiiii(tcirculant_grapht cycle_graphRR-R6tcomplete_bipartite_graphRR(R tCi6_1tC6tCi7tK7tCi6_1_3tK3_3((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_circulant_graph°s  cCs1tdƒ}t|jƒdd d d gƒtddtƒƒ}t|jƒd d ddgƒtddtƒƒ}t|jddƒƒt|jddƒƒt|jƒƒtdƒ}t t |ƒdƒt |j ƒdƒtdt jƒƒ}t t |ƒdƒt |j ƒdƒt|jƒƒdS(NiiiiiR#R3(ii(ii(ii(ii(ii(ii(ii(ii( RDRR-R,R+t assert_falsethas_edgeRR=R R R R<(R R@RAR9((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_cycle_graphÀs  cCsTtdƒ}t|jƒd gƒtt|ƒddgƒtdƒ}t|jƒd d dgƒtt|ƒdƒttt|ƒj ƒƒdddgƒtdƒ}tt |ƒdƒtt |ƒdƒt|j dƒdƒt|j dƒdƒt|j dƒdƒt tjjtd d tƒƒt tjjtd d tƒƒdS(Niiigð?i iVsi©æiiR#(ii(ii(ii(ii(t dorogovtsev_goltsev_mendes_graphRR-RtlistR taverage_clusteringtsortedt trianglestvaluesR%R&tdegreeR'R(R)R*R+R,(R R@((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyt%test_dorogovtsev_goltsev_mendes_graphÒs&  (      cCs€tƒ}tt|ƒdƒtdƒ}tt|ƒdƒtt|ƒdƒtdƒ}tt|ƒdƒt|jƒdƒtddtddƒƒ}tt|ƒdƒtt|ƒdƒtt|tƒƒtddt ddƒƒ}tt|ƒdƒtt|ƒdƒtt|t ƒƒt ƒ}tdd|ƒ}tt|ƒdƒtt|ƒdƒtt|t ƒƒdS(Nii*R3iR#tnametduh( R R R%R&R R R+Rt isinstanceR,tpetersen_graphtGraph(R R@tpete((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_empty_graphès*    cCsÏxodtdƒfdtdƒfdtdƒfdtddgƒfgD]%\}}ttt|ƒ|ƒƒqIWttj j tddt ƒƒtdƒ}tddt ƒƒ}t |jƒ|jƒƒdS(Niiii R#(R Rthypercube_grapht grid_graphRRt ladder_graphR'R(R)R*R+R,RR-(R tiR@R9R:((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_ladder_graphs!4  cCsxfd ddgD]U\}}t||ƒ}tt|ƒ||ƒtt|ƒ||dd|ƒqWttjjtddƒttjjtddƒxIdddgD]8\}}t||ƒ}tt |t |dƒƒƒq«Wttjjt||d t ƒƒt||d t ƒƒ}t |jƒ|jƒƒtddddgd ƒ}tt|ƒd ƒt|jƒd ƒdS(Niiii iiiiþÿÿÿR#R3ii (ii(ii (ii(ii(ii (ii(tlollipop_graphR R%R&R'R(R)R*RRRR+R,RR-R R (R R.R/R0R1R9((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_lollipop_graphs$'    ! cCstttƒƒdƒdS(Ni(R R%t null_graph(R ((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_null_graph1sc Cs±tdƒ}tt|tƒƒƒtdƒ}tt|tdƒƒƒtdƒ}tt|ƒƒttd„|jƒDƒƒddddddddddg ƒt|j ƒd|j ƒƒtddt ƒƒ}t|j ddƒƒt |j ddƒƒtddtƒƒ}t|jƒ|jƒƒtdƒ}tt|ƒdƒt|j ƒdƒtdtj ƒƒ}tt|ƒdƒt|j ƒdƒt|jƒƒdS( Niii css|]\}}|VqdS(N((t.0Rtd((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pys =siiR#R3(RRRRfR RR RSRVRR R+RNRMR,RR-R R<R=(R tptdptmpR@R9((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_path_graph4s*   % c CsUtttdƒtdƒƒƒtttdƒtdƒƒƒtttdƒtdƒƒƒtttdƒtjddƒƒƒtdƒ}ttd„|j ƒDƒƒdddddddddddg ƒt t j j tddtƒƒtddtƒƒ}t|jƒ|jƒƒtd ƒ}tt|ƒd ƒt|jƒd ƒdS( Niiiiii css|]\}}|VqdS(N((RhRRi((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pys WsR#tabcdefgii(RRRR RR<RER RSRVR'R(R)R*R+R,RR-R R (R tstmsR@((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_star_graphPs% (  cCstttƒƒdƒdS(Ni(R R%t trivial_graph(R ((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_trivial_graphdscCsKtttddƒƒdƒtttddƒtddddƒƒƒdS(Ni ii?i(R R&t turan_graphRRtcomplete_multipartite_graph(R ((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_turan_graphgsc CsNx{dtƒfdtdƒfdtdƒfdtdƒfdtdƒfgD]+\}}t|ƒ}tt||ƒƒqOWtdƒ}ttd„|j ƒDƒƒddddddddddg ƒt t j j tdd tƒƒtdd tƒƒ}t|jƒ|jƒƒtd ƒ}tt|ƒdƒt|jƒdƒdS( Niiiiii css|]\}}|VqdS(N((RhRRi((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pys ssi R#R3(RfR RR6t wheel_graphRRR RSRVR'R(R)R*R+R,RR-R R (R RR@R9R:((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_wheel_graphks  %  cCsBtjƒ}tjƒ}t||ƒt|jƒ|jƒƒdS(s:Tests that the complete 0-partite graph is the null graph.N(R<RuRfRRR-(R R@tH((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_complete_0_partite_graph€s   cCsHtjdƒ}tjdƒ}t||ƒt|jƒ|jƒƒdS(s;Tests that the complete 1-partite graph is the empty graph.iN(R<RuR RRR-(R R@Ry((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_complete_1_partite_graph‡s cCsNtjddƒ}tjddƒ}t||ƒt|jƒ|jƒƒdS(sZTests that the complete 2-partite graph is the complete bipartite graph. iiN(R<RuRERRR-(R R@Ry((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyttest_complete_2_partite_graphŽs cCstjdddƒ}d d d g}x`|D]X}xOtj|dƒD];\}}t|||kƒt|j||j|ƒqDWq+Wxrtj|dƒD]^\}}xOtj||ƒD];\}}t|||kƒt |j||j|ƒq¹WqšWd S(s5Tests for generating the complete multipartite graph.iiiiiiiiiN(ii(iii(iiii( R<Rut itertoolstcombinations_with_replacementRR R7t combinationstproducttassert_not_equal(R R@tblockstblocktutvtblock1tblock2((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyt test_complete_multipartite_graph˜s #(t__name__t __module__RRRRRRR!R"R2R;R>RBRLRORWR^RcReRgRmRqRsRvRxRzR{R|Rˆ(((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyRs8      5                (( t__doc__R}t nose.toolsR(R<t(networkx.algorithms.isomorphism.isomorphRtnetworkx.testingRRRR(((s|/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_classic.pyts