ó ŸÃÒYc@s^dZddlmZddlmZmZmZmZddlZ de fd„ƒYZ dS(s Unit tests for layout functions.iÿÿÿÿ(tSkipTest(tassert_almost_equalt assert_equalt assert_falset assert_raisesNt TestLayoutcBsÅeZdZdZed„ƒZd„Zd„Zd„Z d„Z d„Z d„Z d„Z d „Zd „Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„ZRS(icCsXyddlaWntk r/tdƒ‚nXyddlaWntk rSnXdS(NiÿÿÿÿsNumPy not available.(tnumpyt ImportErrorRtscipy(tcls((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyt setupClass s  cCsPtjddƒ|_tjƒ|_tj|jdƒtjddƒ|_dS(Nitabcdefi(tnxt grid_2d_graphtGitGraphtGstadd_pathtbigG(tself((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pytsetUpscs•ddl‰tjƒ}|jd d d dgƒidd6}dg}tj|d|d|ƒ}t‡fd †|jƒDƒƒ}t|d ƒdS(Niÿÿÿÿiiiigtpostfixedc3s+|]!}|D]}ˆj|ƒVq qdS(N(tisnan(t.0tcoordstc(tmath(sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pys 'ssvalues should not be nan(ii(ii(ii(ii(gg(RR Rtadd_edges_fromtfruchterman_reingold_layouttanytvaluesR(RtGtinit_post fixed_posRthas_nan((Rsx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_spring_init_poss    "cCs…g}tj|ƒ}tj|ƒ}tj|ƒ}tj|ƒ}tj|ƒ}tj|ƒ}|jdk rtj |ƒ}ndS(N( R t random_layouttcircular_layoutt spring_layoutRtspectral_layoutt shell_layoutRtNonetkamada_kawai_layout(RR tvpos((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_smoke_empty_graph*scCsÙ|j}tj|ƒ}tj|ƒ}tj|ƒ}tj|ƒ}tj|jƒ}tj|ƒ}tj|jƒƒ}tj|jƒ}tj|jjƒƒ}tj |ƒ}|j dk rÕtj |ƒ}ndS(N( RR R%R&R'RRR(t to_directedR)RR*R+(RR R,((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_smoke_int5s cCsˆ|j}tj|ƒ}tj|ƒ}tj|ƒ}tj|ƒ}tj|ƒ}tj|ƒ}|jdk r„tj |ƒ}ndS(N( RR R%R&R'RR(R)RR*R+(RR R,((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_smoke_stringDs cCsªtj|ƒ}||}||}tjt|jƒƒƒ}|jdƒ|jdƒ}|d|kjƒsvt‚||kjƒsŽt‚||kjƒs¦t‚dS(Nii(RtarraytlistRtmaxtmintalltAssertionError(RRtscaletcentertlowthiR,tlength((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pytcheck_scale_and_centerOs  cCs=|j}d }tjdƒ}|jdƒ|tj|d|ƒdddd ƒ|tj|dd d|ƒdd d|ƒ|tj|dd d|ƒdd d|ƒ|tj|dd d|ƒdd d|ƒ|tj|dd d|ƒdd d|ƒ|j dk r9|tj |dd d|ƒdd d|ƒndS( Niii R8R7gà?g@g@i(ii(g@g@( R<R tcomplete_graphtadd_nodeR%R'R(R&R)RR*R+(RtscRR ((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_scale_and_center_argYs  %++++cCsû|j}d}tjdƒ}|jdƒ|tj|ƒddddƒ|tj|ƒddd|ƒ|tj|ƒddd|ƒ|tj|ƒddd|ƒ|tj|ƒddd|ƒ|j dk r÷|tj |ƒddd|ƒndS( Nii R7gà?R8i(ii(gà?gà?( R<R R=R>R%R'R(R&R)RR*R+(RR?RR ((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_default_scale_and_centergs  cCsftj|jƒ}tjjj|ƒ}t|jdƒtjjj|ddƒ}t|jdƒdS(Niitdimi(ii(ii(R tto_numpy_matrixRtdrawingtlayoutt_fruchterman_reingoldRtshape(RtAR((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_adjacency_interface_numpyts cCsÁyddl}Wntk r/tdƒ‚nXtj|jddƒ}tjjj|ƒ}t |j d ƒtjjj |ƒ}t |j d ƒtjjj|ddƒ}t |j d ƒdS( Niÿÿÿÿsscipy not available.tdtypetdiiRBi(ii(ii(ii( RRRR tto_scipy_sparse_matrixRRDREt_sparse_fruchterman_reingoldRRGt_sparse_spectral(RRRHR((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_adjacency_interface_scipy{s cCsztjdƒ}tj|ƒ}t|djƒƒtjdƒ}tj|dgddggƒ}t|djƒƒdS(Niiii(R t path_graphR)RR(RR R,((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_single_nodesˆs !cCs.tj|jƒ}tj|jd|ƒ}dS(NR(R R&RR(RRtnpos((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyt+test_smoke_initial_pos_fruchterman_reingoldscCs¿tj|jƒ}tj|jd|ddgƒ}tt|dƒt|dƒƒtj|jƒ}tj|jd|ddgƒ}x1tdƒD]#}t|d ||d |ƒq”WdS( NRRii(ii(ii(ii(ii(ii(ii( R R&RRRttupleRtrangeR(RRRRtaxis((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyt$test_fixed_node_fruchterman_reingold”s!!!cCstjdƒ}tj|ddƒ}tj|ddƒ}tt|dƒdƒtj|ddƒ}tt|dƒdƒtj|dd ƒ}tt|dƒd ƒtj|dd ƒ}tt|dƒd ƒtj |dd ƒ}tt|dƒdƒdS(NiR8i(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii( R RPR%R&RRTR'RR(R)(RR R,((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_center_parameterŸsc Csçtjdƒ}tttj|ddƒtttj|ddƒtttj|ddƒtttj|ddƒtttj|dddd ƒtttj|dd ƒtttj|dddd ƒtttj |dd ƒdS( NiR8RBi(iii(iii(iii(iii(ii(iii(ii(iii( R RPRt ValueErrorR%R&R'RR(R)(RR ((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_center_wrong_dimensions­scCsÜtjƒ}tj|ddƒ}t|iƒtj|ddƒ}t|iƒtj|ddƒ}t|iƒtj|ddƒ}t|iƒtj|ddƒ}t|iƒtj|ddƒ}t|iƒdS( NR8i(ii(ii(ii(ii(ii(ii( R t empty_graphR%RR&R'RR(R)(RR R,((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_empty_graph¸s      cCs¬tjjj}tjddgƒ}dtjddgddggƒ}||t|ddd dƒ\}}t|d ddd ƒt|dd ƒt|dd ƒdS(Ng@g@igš™™™™™¹?g@g333333Ó?t meanweightiRBiigà¿gà?(R RDREt_kamada_kawai_costfnRR1R(RtcostfnRtinvdisttcosttgrad((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_kamada_kawai_costfn_1dÇs%$c CsPtjjj}tjddgddgddggƒ}dtjdd d gd d d gd d d ggƒ}d }||jƒt|d|ddƒ\}}d|tjtj|ddƒdƒ}xvt|j dƒD]a}xXt|d|j dƒD]<} |tj j |||| ƒ||| dd7}qÿWqÞWt ||ƒd} xót|j dƒD]Þ} xÕt|j dƒD]À} | |j d| } |j ƒ}|| c| 7<||t|d|d|j dƒd}|| cd| 8<||t|d|d|j dƒd}t || ||d| ddƒq„WqjWdS(NgÍÌÌÌÌÌô?gš™™™™™ Àgš™™™™™@g333333Ó¿gffffff@g@igš™™™™™¹?gÍÌÌÌÌÌ@g333333û?gš™™™™™É?g333333ã?g333333Ó?R]RBigà?RVigð?g-Cëâ6?tplacesi(R RDRER^RR1traveltsumRURGtlinalgtnormRtflatten(RR_RR`tmeanwtRaRbt expected_costtitjtdxtndtdmtidxtpos0tcplustcminus((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyttest_kamada_kawai_costfn_2dÓs8  *!>  N(t__name__t __module__RR*Rt classmethodR RR$R-R/R0R<R@RARIRORQRSRWRXRZR\RcRu(((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyRs*         ( t__doc__tnoseRt nose.toolsRRRRtnetworkxR tobjectR(((sx/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/drawing/tests/test_layout.pyts"