ó žÃÒYc@s¢dZddlmZddlmZddlmZddlmZddlZddl m Z ddl m Z d e fd „ƒYZ d e fd „ƒYZdS( sBUnit tests for the :mod:`~networkx.algorithms.tree.coding` module.iÿÿÿÿ(tproduct(t assert_equal(t assert_true(traisesN(tassert_nodes_equal(tassert_edges_equaltTestPruferSequencecBseZdZeejƒd„ƒZeejƒd„ƒZeejƒd„ƒZ ee ƒd„ƒZ d„Z d„Z d„Zd„ZRS( sNUnit tests for the Prüfer sequence encoding and decoding functions. cCs tjdƒ}tj|ƒdS(Ni(tnxt cycle_graphtto_prufer_sequence(tselftG((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyt test_nontreescCstjtjƒƒdS(N(RR t null_graph(R ((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyttest_null_graph!scCstjtjƒƒdS(N(RR t trivial_graph(R ((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyttest_trivial_graph%scCs,tjtjjdƒƒ}tj|ƒdS(Ntabc(RtGraphtutilstpairwiseR (R tT((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyttest_bad_integer_labels)scCsJtjdd d d d gƒ}tj|ƒ}t|ddddgƒdS( s_Tests for encoding a tree as a Prüfer sequence using the iterative strategy. iiiiiiN(ii(ii(ii(ii(ii(RRR R(R ttreetsequence((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyt test_encoding.scCsrddddg}tj|ƒ}tt|ƒttdƒƒƒd d d d d g}tt|jƒƒ|ƒdS(s2Tests for decoding a tree from a Prüfer sequence.iiiiiiiN(ii(ii(ii(ii(ii(Rtfrom_prufer_sequenceRtlisttrangeRtedges(R RRR((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyt test_decoding8s cCs~ddddddg}tj|ƒ}tt|ƒttdƒƒƒd d d d dddg}tt|jƒƒ|ƒdS(Niiiiiiiii(ii(ii(ii(ii(ii(ii(ii(RRRRRRR(R RRR((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyttest_decoding2As cCsÂxmtjdƒD]\}tjtj|ƒƒ}tt|ƒt|ƒƒtt|jƒƒt|jƒƒƒqWxKtt dƒddƒD]1}tjtj|ƒƒ}t t|ƒ|ƒq‰WdS(sFTests that the encoding and decoding functions are inverses. itrepeatiN( Rtnonisomorphic_treesRR RRRRRRR(R RtT2tseqtseq2((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyt test_inverseIs)(t__name__t __module__t__doc__RRtNotATreeR tNetworkXPointlessConceptRRtKeyErrorRRRRR%(((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyRs tTestNestedTuplecBsbeZdZeejƒd„ƒZeejƒd„ƒZd„Z d„Z d„Z d„Z RS(sFUnit tests for the nested tuple encoding and decoding functions. cCs#tjdƒ}tj|dƒdS(Nii(RRtto_nested_tuple(R R ((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyR \scCs#tjdƒ}tj|dƒdS(Nitbogus(Rt path_graphR-(R R ((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyttest_unknown_rootascCsMtjddƒ}ddfd d ff}tj|dƒ}t||ƒdS( Niiiiii(((((Rtfull_rary_treeR-R(R Rtexpectedtactual((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyRfscCs’tjƒ}|jd d d gƒ|jd dgƒ|jddgƒd}tj||d tƒ}dddfddff}t||ƒdS(Niiiiiiiitcanonical_form(ii(ii(ii(ii(ii(ii(ii((((((RRtadd_edges_fromR-tTrueR(R RtrootR3R2((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyttest_canonical_formls cCsSddfddff}tjdd ƒ}tj|ƒ}ttj||ƒƒdS( Niii((((ii(RR1tfrom_nested_tupleRt is_isomorphic(R tbalancedR2R3((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyRvscCsd d fd d ff}tj|dtƒ}d dddddg}tt|ƒttdƒƒƒtt|jƒƒ|ƒdS(Ntsensible_relabelingiiiiiii(((((ii(ii(ii(ii(ii(iiii(RR9R6RRRRR(R R;RR((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyttest_sensible_relabeling|s ( R&R'R(RRR)R t NodeNotFoundR0RR8RR=(((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyR,Ws  (R(t itertoolsRt nose.toolsRRRtnetworkxRtnetworkx.testingRRtobjectRR,(((s€/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/tree/tests/test_coding.pyt s A