ó ŸÃÒYc@sdZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd l m Z dd l m Z dd l m Z dd l mZdd l mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZdefd„ƒYZdS(sEUnit tests for the :mod:`networkx.generators.random_graphs` module. iÿÿÿÿ(tassert_almost_equal(tassert_greater(t assert_less(t assert_equal(t assert_raises(t assert_true(t NetworkXError(tbarabasi_albert_graph(textended_barabasi_albert_graph(tbinomial_graph(tconnected_watts_strogatz_graph(tdense_gnm_random_graph(terdos_renyi_graph(tfast_gnp_random_graph(tgnm_random_graph(tgnp_random_graph(tnewman_watts_strogatz_graph(tpowerlaw_cluster_graph(trandom_kernel_graph(trandom_lobster(trandom_regular_graph(trandom_shell_graph(twatts_strogatz_graphtTestGeneratorsRandomcBsJeZd„Zdd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsfd}tdd|ƒ}tdd|ƒ}tdd|ƒ}tdd|ƒ}tdd|ƒ}tdd|ƒ}tddd|ƒ}tt|ƒdƒt|j ƒdƒt ddd|ƒ}tt|ƒdƒt|j ƒdƒtddd|ƒ}tt|ƒdƒt|j ƒdƒt ddd |ƒ}tt|ƒdƒt|j ƒdƒt ddd|ƒ}tt|ƒdƒt |j ƒdkƒt dd |ƒ}t dd |ƒ}t|j ƒdƒtdd d d |ƒ}t|j ƒdƒtdd d d |ƒ}t|j ƒdƒtdd d d|ƒ}t|j ƒdƒtdddd |ƒ}t|j ƒdƒt|j ƒdƒtdddd|ƒ}t|j ƒdƒt|j ƒdƒtdd d|ƒ}tdd d |ƒ}t|j ƒdƒtdd|ƒ}tttd dƒddg}t||ƒ}tddd|ƒ}dS(Ni*idgÐ?ii igš™™™™™¹?igiiiaiicgà?g333333Ó?gð?igš™™™™™é?i(i#i#i,iiÈii#(i igš™™™™™é?(ii(gš™™™™™é?(RR R R RR RRtlentnumber_of_edgesR RRRRRRRRRRRR(tselftseedtGt constructor((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pytsmoke_test_random_graph)sZ ic Csed}d}td||ƒ}|jƒ}xã|r|d8}td|dd|ƒ}t|jƒ|ƒtd|dd|ƒ}t|jƒ|dƒtd|dd|ƒ}t|jƒ|ƒtd|dd|ƒ}t|jƒ|jƒƒt|jƒ|jƒƒq-Wt} tt| ||ddƒtt| ddddƒtt| ddddƒd S( sà Tests that the extended BA random graph generated behaves consistenly. Tests the exceptions are raised as expected. The graphs generation are repeated several times to prevent lucky-shots i*iidiigš™™™™™é?g333333Ó?gà?N( RRRRtsizeRRRR( RtmRtrepeatstBA_modeltBA_model_edgestG1tG2tG3tebag((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pyttest_extended_barabasi_albertes&    cCsOd}tddƒ}tt|ƒdƒttd„|jƒDƒƒdƒdS(sYTests that a 0-regular graph has the correct number of nodes and edges. i*ii css|] }dVqdS(iN((t.0t_((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys •sN(RRRtsumtedges(RRR((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pyttest_random_zero_regular_graphsc CsZxSttttgD]?}|ddƒ}tt|ƒdƒttd„|jƒDƒƒdƒ|ddƒ}tt|ƒdƒ|ddddƒ}tt|ƒdƒ|ddƒ}tt|ƒdƒttd „|jƒDƒƒd ƒ|ddd tƒ}t |j ƒƒtt|ƒdƒttd „|jƒDƒƒdƒ|ddd tƒ}t |j ƒƒtt|ƒdƒ|ddd tƒ}t |j ƒƒtt|ƒdƒttd „|jƒDƒƒdƒd}d}xCt |ƒD]5}|td„|ddd tƒjƒDƒƒ7}qôWt |t |ƒdd|ddƒqWdS(Ni gš™™™™™ñ¿css|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys œsigš™™™™™¹?Ri*gš™™™™™ñ?css|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys ¦si-tdirectedcss|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys «scss|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys ´siZidcss|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys ºsgwJëÿï?tdeltag@(RR R R RRR+R,tTrueRt is_directedtrangeRtfloat(Rt generatorRR,trunsti((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pyttest_gnp—s8  ####3cCsitddƒ}tt|ƒdƒttd„|jƒDƒƒdƒtddddƒ}tt|ƒdƒttd„|jƒDƒƒdƒtddƒ}tt|ƒdƒttd„|jƒDƒƒd ƒtddd tƒ}tt|ƒdƒttd „|jƒDƒƒd ƒtdd ƒ}tt|ƒdƒttd„|jƒDƒƒdƒdS(Ni icss|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys ÀsRi*css|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys Äsidcss|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys Èsi-R.css|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys ÌsiZgš™™™™™ñ¿css|] }dVqdS(iN((R)R*((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pys Ðsi(RRRR+R,R0(RR((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pyttest_gnm½s####cCs\tttdddƒtttdddƒtdddddƒtdddddƒdS(Ni gÐ?i Rigà?(RRRR(R((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pyttest_watts_strogatz_big_kÒscsM‡fd†}‡fd†}d‰td||ƒ}tt|ƒdƒdS(Ncs ˆ||S(N((tutwtz(tc(s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pytintegralÛscs |ˆ|S(N((R:R;tr(R=(s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pytrootÞsiiè(RRR(RR>R@tgraph((R=s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pyttest_random_kernel_graphÚs ( t__name__t __module__RR(R-R7R8R9RB(((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pyR's < ( &  N(t__doc__t nose.toolsRRRRRRtnetworkx.exceptionRt!networkx.generators.random_graphsRRR R R R R RRRRRRRRRtobjectR(((s‚/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_random_graphs.pyt s0