ó žÃÒYc@sßdZddlZddlZddlZddlmZmZddlmZddl Z ddl m Z defd„ƒYZdefd „ƒYZd efd „ƒYZd „Zd „Zd„Zd„Zd„ZdS(s* Tests for VF2 isomorphism algorithm. iÿÿÿÿN(t assert_truet assert_equal(tSkipTest(t isomorphismtTestWikipediaExamplec BsþeZddgddgddgddgddgddgddgddgddgddgddgddgg Zdd gd d gd d gd dgd d gd dgddgdd gdd gd d gd dgd dgg Zd„Zd„ZRS(tatgthtitbtjtctdiiiiiiiicCsstjƒ}tjƒ}|j|jƒ|j|jƒtj||ƒ}t|jƒƒt |j j ƒƒ}dS(N( tnxtGraphtadd_edges_fromtg1edgestg2edgestisot GraphMatcherRt is_isomorphictsortedtmappingtitems(tselftg1tg2tgmR((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyt test_graphs  cCsytjƒ}tjƒ}|j|jƒ|j|jƒ|jddddgƒ}tj||ƒ}t|j ƒƒdS(Niiii( R RRRRtsubgraphRRRtsubgraph_is_isomorphic(RRRtg3R((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyt test_subgraph.s  (t__name__t __module__RRRR (((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyRs!$$* tTestVF2GraphDBcBs)eZed„ƒZd„Zd„ZRS(cCsÇt|ddƒ}tjd|jdƒƒd}tjƒ}xyt|ƒD]k}tjd|jdƒƒd}xCt|ƒD]5}tjd|jdƒƒd}|j||ƒq|WqJW|jƒ|S(s+Creates a Graph instance from the filename.tmodetrbsks cCs@ddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3g}ttdƒƒ}xÇtjƒtjƒgD]­}|j|ƒx—td ƒD]‰}t|ƒ}tj|ƒtt ||ƒƒ}tj ||ƒ}|j ƒst j ||ƒ}nt j||ƒ}t|jƒƒq«Wq‹WdS(4Niiiiiiiiii i i i i iiiiiii(ii(ii(ii(ii(ii(ii(ii(ii(ii (i i (i i (i i (i i (i i (i i (i i (i i(i i(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(RJR*R t MultiGrapht MultiDiGraphRRLRMRNRORPt is_directedRRtDiGraphMatcherRR(R2R/Rt_t new_nodesR RR((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyttest_multiedge†s&        c Csd d d d d ddddddg }ttdƒƒ}xÇtjƒtjƒgD]­}|j|ƒx—tdƒD]‰}t|ƒ}tj|ƒtt ||ƒƒ}tj ||ƒ}|j ƒsÙt j ||ƒ}nt j||ƒ}t|jƒƒqrWqRWdS(Niiiiiiiid(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(RJR*R RtDiGraphRRLRMRNRORPR[RRR\RR(R2R/RR]R^R RR((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyt test_selfloop s    cCsTtjƒ}tjƒ}tjƒ}|jddƒ|jddƒ|jddƒ|jddƒtj||ƒ}tj||ƒ}t|jƒƒ}t|jƒƒ}tidd6dd6|kƒtidd6dd6|kƒtidd6dd6|kƒtidd6dd6|kƒtt |ƒt |ƒƒtt |ƒdƒdS(NtAtBtCtYtZi( R R`R+RR\RJtsubgraph_isomorphisms_iterRRRK(RRRtgm12tgm13txty((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyttest_isomorphism_iter1´s"   cCsÈx]tddƒD]L}tj|ƒ}tj||ƒ}tt|jƒƒƒ}t|dƒqWxatddƒD]P}tj |ƒ}tj||ƒ}tt|jƒƒƒ}t|d|ƒqpWdS(Nii i( R*R t path_graphRRRKRJtisomorphisms_iterRt cycle_graph(tLRRRU((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyttest_isomorphism_iter2ÊscCsdddg}xtjƒtjƒftjƒtjƒfgD]Ò\}}|j|ƒ|j|ƒtj|ddgƒ}|jƒs±tj||ƒ}tj||ƒ}n$tj||ƒ}tj||ƒ}t |j ƒƒ|j dƒt |j ƒƒt |j ƒƒq@WdS(NRbRcRd(RbRc(RcRb(RcRd( R RR`RRR[RRR\RRt remove_nodeR(R2RRRtgmAtgmB((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyt test_multipleÙs=    (t__doc__R6R'RLt nose.toolsRRtnoseRtnetworkxR tnetworkx.algorithmsRRtobjectRR#R>R_RaRlRqRu(((sŒ/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/isomorphism/tests/test_isomorphvf2.pyts    )3