ó ŸÃÒYc@sáddlmZddlmZddlmZddlmZddlZdefd„ƒYZeej ƒd„ƒZ d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„ZdS(iÿÿÿÿ(t assert_equal(t assert_raises(t assert_true(traisesNtTestConfigurationModelcBsbeZdZd„Zd„Zd„Zd„Zeej ƒd„ƒZ eej ƒd„ƒZ RS(sLUnit tests for the :func:`~networkx.configuration_model` function. cCs&tjgƒ}tt|ƒdƒdS(s:Tests that an empty degree sequence yields the null graph.iN(tnxtconfiguration_modelRtlen(tselftG((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_empty_degree_sequencescCsBtjdddgƒ}tt|ƒdƒt|jƒdƒdS(sSTests that a degree sequence of all zeros yields the empty graph. iiN(RRRRtnumber_of_edges(RR ((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_degree_zerosc Csãdddddddddddg }tj|ddƒ}ttd„|jƒDƒdtƒdddddddddddg ƒttd „|jtt|ƒƒƒDƒdtƒdddddddddddg ƒd S( sjTests that the degree sequence of the generated graph matches the input degree sequence. iiiitseediNa¼css|]\}}|VqdS(N((t.0tntd((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys $streversecss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys &sN(RRRtsortedtdegreetTruetrangeR(Rtdeg_seqR ((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_degree_sequences'"(+cCs‘dgd}tj|ddƒ}tj|ddƒ}ttj||ƒƒtj|ddƒ}tj|ddƒ}ttj||ƒƒdS(sZTests that each call with the same random seed generates the same graph. ii R ièi N(RRRt is_isomorphic(RRtG1tG2((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_random_seed*s cCstjgdtjƒƒdS(syTests that attempting to create a configuration model graph using a directed graph yields an exception. t create_usingN(RRtDiGraph(R((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_directed_disallowed7scCstjddgƒdS(sTTests that a degree sequence whose sum is odd yields an exception. iiN(RR(R((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_odd_degree_sum?s( t__name__t __module__t__doc__R R RRRRtNetworkXNotImplementedRt NetworkXErrorR(((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyR s  c Cs\ddddddddddg }ddddddddddg }tj||ƒdS(Niiii(Rtdirected_configuration_model(tzintzout((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyt(test_directed_configuation_raise_unequalHs$$cCs/tjggddƒ}tt|ƒdƒdS(NR i(RR%RR(R ((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_directed_configuation_modeOscCs2g}tj|ƒ}tt|jƒƒiƒdS(N(Rtexpected_degree_graphRtdictR(RR ((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyt test_expected_degree_graph_emptyTsc Cs®ddddddddddddg }tj|ddƒ}tj|ddƒ}ttj||ƒƒtj|ddƒ}tj|ddƒ}ttj||ƒƒdS(NiR ièi (RR*RR(RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_expected_degree_graph[s*c Cszddddddddddddg }tj|dddtƒ}tj|dddtƒ}ttj||ƒƒdS(NiR ièt selfloops(RR*tFalseRR(RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyt$test_expected_degree_graph_selfloopsgs*cCsYdddddg}tj|ddƒ}tj|ddƒ}ttj||ƒƒdS(Ni iR iè(RR*RR(RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_expected_degree_graph_skewnsc Cshtjgƒ}tt|ƒdƒdddddddddddg }ttjtj|ƒdddddddddddg }ttjtj|ƒddddddddg}tj|ƒ}tj|ƒ}d dddddddg}ttjtj|ƒd ddddddddddg }tj|ƒ}ttjtj|d tjƒƒdS( NiièiiitAiiii R(Rthavel_hakimi_graphRRRR$RR(R tz((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_havel_hakimi_constructionus'''c Cs§d\}}d|}xèt|ƒD]Ú}tj|||ddtƒ}td„|jƒDƒƒ}td„|jƒDƒƒ}tj||ƒ}td„|jƒDƒƒ}td„|jƒDƒƒ} t t |ƒt |ƒƒt t |ƒt | ƒƒq#Wd d d d d d d d dddg } d d d d d d d d d d g } t tj j tj| | ƒdddddd d d d dg } d d d d d d d d dd g } tj| | ƒ}d„|jƒDƒ} d„|jƒDƒ}t t | ƒt | ƒƒt t | ƒt |ƒƒd d d d d d d d d d g } t tj j tj| | ƒd d d d d d d d d d dg } t tj j tj| | ƒdS(Nidi gð?icss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys ’scss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys “scss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys •scss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys –sièiiigifiicss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys £scss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys ¤siþÿÿÿ(idi (RRterdos_renyi_graphtNoneRtlistt in_degreet out_degreetdirected_havel_hakimi_graphRRRt exceptionR$( RtrtptiRtdin1tdout1Rtdin2tdout2tdouttdin((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_directed_havel_hakimiŒs8   '$ $$$ ' c CsÛddddddddddg }tj|ƒ}tt|ƒt|ƒƒttt|jƒƒƒt|ƒdkƒttj tj|dtj ƒƒdddddddddddg }ttj tj|ƒdS(NiiiiR( Rtdegree_sequence_treeRRRR8tedgestsumRR$R(R4R ((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyttest_degree_sequence_tree±s$, 'cCsHddddg}tj|ƒ}t|td„|jƒDƒƒƒdS(Niiicss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys Ás(Rtrandom_degree_sequence_graphRRR(RR ((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyt!test_random_degree_sequence_graph¾sc CsAdddddddddddg }ttjtj|ƒdS(Niiii(RRtNetworkXUnfeasibleRK(R4((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyt'test_random_degree_sequence_graph_raiseÄs'cCsptjddƒ}d„|jƒDƒ}tj|ddƒ}d„|jƒDƒ}tt|ƒt|ƒƒdS(Nidgš™™™™™¹?css|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys ËsR icss|]\}}|VqdS(N((RRR((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pys Ís(Rtfast_gnp_random_graphRRKRR(Rtd1Rtd2((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyt!test_random_degree_sequence_largeÉs (t nose.toolsRRRRtnetworkxRtobjectRR$R(R)R,R-R0R1R5RFRJRLRNRR(((s/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/generators/tests/test_degree_seq.pyts" ?      %