ó žÃÒYc@sœddlZddlmZmZmZmZddlmZmZm Z m Z ddl m Z e ej ƒd„ƒZd„Zd„Zd„Zd „Zd „Zd „Ze ej ƒd „ƒZd „Zd„Zd„Zd„Ze ej ƒd„ƒZd„Zd„Zd„Zd„Ze ej ƒd„ƒZd„Z d„Z!d„Z"d„Z#e ej$ƒd„ƒZ%d„Z&e e'ƒd„ƒZ(dS(iÿÿÿÿN(ttensor_producttcartesian_producttlexicographic_producttstrong_product(t assert_raisest assert_truet assert_equaltraises(tassert_edges_equalcCsttjƒtjƒƒ}dS(N(RtnxtDiGraphtGraph(tP((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_tensor_product_raisesscCsòtjƒ}tjdƒ}tjdƒ}tjdƒ}tjdƒ}tjdƒ}t||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒdS(Ni i(R t null_grapht empty_graphtcomplete_grapht path_graphRRt is_isomorphic(tnulltempty10tK3tK10tP3tP10tG((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_tensor_product_null s8 cCs{tjdƒ}tjdƒ}tjdƒ}t||ƒ}ttj|ƒdƒt||ƒ}ttj|ƒdƒdS(Niiii(R RRRRtnumber_of_nodes(tP5RtK5R((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_tensor_product_size,scCstjdƒ}tjdƒ}t||ƒ}ttj|ƒdƒt|tj|ƒƒ}ttj|ƒdƒttj|ƒ|ƒ}ttj|ƒdƒttj|ƒtj|ƒƒ}ttj|ƒdƒttj|ƒtj|ƒƒ}ttj|ƒdƒdS(Niiiiiii(R RRRRRt MultiGraphR (RRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyt test_tensor_product_combinations7s!!cCs¾tjdƒ}tjƒ}t||ƒ}ttj|tjƒƒƒtjdƒ}t||ƒ}ttj|tjdƒƒƒtjƒ}t||ƒ}ttj|tj ƒƒƒdS(Niii ( R Rtpetersen_graphRRRtdesargues_grapht cycle_graphttetrahedral_grapht cubical_graph(tK2R((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyt"test_tensor_product_classic_resultHs  cCsåtjdddƒ}tjdddƒ}t||ƒ}x£|jƒD]•\}}x†|jƒD]x\}}|j||ƒr¶|j||ƒr¶t|j||f||fƒƒqat|j||f||fƒ ƒqaWqHWdS(Ni ig$@(R terdos_renyi_graphRtnodesthas_edgeR(RtHtGHtu_Gtu_Htv_Gtv_H((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_tensor_product_randomWs$%c Cs/tjƒ}|jddddƒ|jddddƒtjƒ}|jddddƒ|jddddƒt||ƒ}tt|ƒd d d d hƒtd„|jdtƒDƒd „dddfdddfdddfdddfdddfdddfdddfdddfgDƒƒdS(NiitkeyiiicSs1h|]'\}}}t||gƒ|f’qS((t frozenset(t.0tutvtk((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pys ms tkeyscSs1h|]'\}}}t||gƒ|f’qS((R3(R4R5R6R7((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pys ns (ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(R Rtadd_edgeRRtsettedgestTrue(RR+R,((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyt!test_cartesian_product_multigraphds  cCsttjƒtjƒƒ}dS(N(RR R R (R ((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_cartesian_product_raisesuscCsòtjƒ}tjdƒ}tjdƒ}tjdƒ}tjdƒ}tjdƒ}t||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒdS(Ni i(R RRRRRRR(RRRRRRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_cartesian_product_nullzs8 cCstjdƒ}tjdƒ}tjdƒ}t||ƒ}ttj|ƒdƒttj|ƒtj|ƒtj|ƒtj|ƒtj|ƒƒt||ƒ}ttj|ƒdƒttj|ƒtj|ƒtj|ƒtj|ƒtj|ƒƒdS(Niiii(R RRRRRtnumber_of_edges(RRRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_cartesian_product_size›scCstjdƒ}tjdƒ}t||ƒ}t||ƒ}ttj|tjƒƒƒt||ƒ}ttj|tjddƒƒƒdS(Nii(R RRRRR%t grid_2d_graph(tP2RR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_cartesian_product_classic¬scCsýtjdddƒ}tjdddƒ}t||ƒ}x»|jƒD]­\}}xž|jƒD]\}}||kr‹|j||ƒs©||krÎ|j||ƒrÎt|j||f||fƒƒqat|j||f||fƒ ƒqaWqHWdS(Ni ig$@(R R(RR)R*R(RR+R,R-R.R/R0((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_cartesian_product_randomºs%cCsttjƒtjƒƒ}dS(N(RR R R (R ((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyt!test_lexicographic_product_raisesÈscCsòtjƒ}tjdƒ}tjdƒ}tjdƒ}tjdƒ}tjdƒ}t||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒdS(Ni i(R RRRRRRR(RRRRRRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_lexicographic_product_nullÍs8 cCs{tjdƒ}tjdƒ}tjdƒ}t||ƒ}ttj|ƒdƒt||ƒ}ttj|ƒdƒdS(Niiii(R RRRRR(RRRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_lexicographic_product_sizeîscCsÚtjdƒ}tjdƒ}t||ƒ}ttj|ƒdƒttj|ƒ|ƒ}ttj|ƒdƒt|tj|ƒƒ}ttj|ƒdƒttj|ƒtj|ƒƒ}ttj|ƒdƒdS(Niiiiii(R RRRRRR(RRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyt'test_lexicographic_product_combinationsøs!cCsñtjdddƒ}tjdddƒ}t||ƒ}x¯|jƒD]¡\}}x’|jƒD]„\}}|j||ƒs||krÂ|j||ƒrÂt|j||f||fƒƒqat|j||f||fƒ ƒqaWqHWdS(Ni ig$@(R R(RR)R*R(RR+R,R-R.R/R0((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyt!test_lexicographic_product_randoms0%cCsttjƒtjƒƒ}dS(N(RR R R (R ((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_strong_product_raisesscCsòtjƒ}tjdƒ}tjdƒ}tjdƒ}tjdƒ}tjdƒ}t||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒt||ƒ}ttj||ƒƒdS(Ni i(R RRRRRRR(RRRRRRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_strong_product_nulls8 cCs{tjdƒ}tjdƒ}tjdƒ}t||ƒ}ttj|ƒdƒt||ƒ}ttj|ƒdƒdS(Niiii(R RRRRR(RRRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_strong_product_size:scCsÚtjdƒ}tjdƒ}t||ƒ}ttj|ƒdƒttj|ƒ|ƒ}ttj|ƒdƒt|tj|ƒƒ}ttj|ƒdƒttj|ƒtj|ƒƒ}ttj|ƒdƒdS(Niiiiii(R RRRRRR(RRR((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyt test_strong_product_combinationsDs!cCs!tjdddƒ}tjdddƒ}t||ƒ}xß|jƒD]Ñ\}}xÂ|jƒD]´\}}||kr‹|j||ƒsÍ||kr©|j||ƒsÍ|j||ƒrò|j||ƒròt|j||f||fƒƒqat|j||f||fƒ ƒqaWqHWdS(Ni ig$@(R R(RR)R*R(RR+R,R-R.R/R0((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_strong_product_randomSs$%cCstjtjƒdƒdS(Ni(R tpowert MultiDiGraph(((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_graph_power_raisesbscCsÉtjdƒ}|jddƒ|jddƒ|jddƒ|jddƒtj|dƒ}tt|jƒƒd d d ddddddddddddddddddd d!d"d#gƒdS($Niiii iiiiii(ii(ii(ii(ii(ii(ii (ii(ii(ii(ii(ii(ii(ii (ii(ii(ii (ii(ii(ii(ii(ii(ii(ii(ii (ii (R R#R9RPRtlistR;(RR+((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_graph_powergs$cCstjtjƒdƒdS(Niÿÿÿÿ(R RPR (((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyttest_graph_power_negativeus()tnetworkxR RRRRt nose.toolsRRRRtnetworkx.testingRt NetworkXErrorR RRR R'R1R=R>R?RARDRERFRGRHRIRJRKRLRMRNROtNetworkXNotImplementedRRRTt ValueErrorRU(((s†/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/algorithms/operators/tests/test_product.pyts8 "" !    !    !   !