ó ŸÃÒYc@s°ddlTddlmZddlZddlTddlZddlZddlZde fd„ƒYZ de fd„ƒYZ de fd „ƒYZ d e fd „ƒYZ dS( iÿÿÿÿ(t*(tSkipTestNt BaseGraphMLcBseZd„ZRS(c Cs(d|_tjƒ|_|jjdƒ|jjddddƒ|jjd'd(d)d*d+d,d-d.d/d0g ƒtj|jj dƒƒ|_ d|_ tjddƒ|_ idd6|j j d<|j jdddƒ|j jdddƒ|j jdddƒ|j jd ƒ|j jd ddƒ|j jddddddƒ|j jddddddƒ|j jddddddƒ|j jddddƒ|j jdd dd ƒ|j jdd dd!ƒ|j jd d dd"dd#ƒtj|j j dƒƒ|_d$|_tjƒ|_|jjddd%ƒ|jjdddƒ|jjdddd%ƒ|jjddddƒtj|jj dƒƒ}||_d&|_tjƒ|_|jjdƒ|jjddddƒ|jjd1d2gƒtj|jj dƒƒ}||_dS(3Ns  tn10tn0tn2tidtfootn1tn3tn5tn4tn6tn7tn8tn9sUTF-8s yellow green blue red turquoise 1.0 1.0 2.0 1.1 tGtyellowtcolort node_defaulttgreentbluetredt turquoisete0tweightgð?te1te2g@te3te4te5te6gš™™™™™ñ?sC 1 2.0 1 k 1.0 is  (RR(RR (R R (R R (R R (R R (R R (R R(RR (RR(RR(RR (tsimple_directed_datatnxtDiGraphtsimple_directed_graphtadd_nodetadd_edgetadd_edges_fromtiotBytesIOtencodetsimple_directed_fhtattribute_datatattribute_graphtgrapht attribute_fhtattribute_numeric_type_datatattribute_numeric_type_graphtattribute_numeric_type_fhtsimple_undirected_datatGraphtsimple_undirected_graphtsimple_undirected_fh(tselftfh((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pytsetUp s^   +      (t__name__t __module__R8(((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyR stTestReadGraphMLcBsteZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z RS( cCs7|j}tj|jƒ}tt|jƒƒt|jƒƒƒtt|jƒƒt|jƒƒƒtt|jdtƒƒt|jdtƒƒƒ|jj dƒtj |j ƒ}tt|jƒƒt|jƒƒƒtt|jƒƒt|jƒƒƒtt|jdtƒƒt|jdtƒƒƒdS(Ntdatai( R#R!t read_graphmlR*t assert_equaltsortedtnodestedgestTruetseekt parse_graphmlR (R6RtHtI((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyt!test_read_simple_directed_graphml´s %%%%cCs¥|j}tj|jƒ}t|jƒ|jƒƒt|jƒ|jƒƒ|jjdƒtj |j ƒ}t|jƒ|jƒƒt|jƒ|jƒƒdS(Ni( R4R!R=R5tassert_nodes_equalR@tassert_edges_equalRARCRDR2(R6RRERF((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyt#test_read_simple_undirected_graphmlÃs cCsQ|j}tj|jƒ}t|jtƒt|jdtƒƒƒt|jdtƒƒ}t|jdtƒƒ}x*t ||ƒD]\}}t ||ƒqƒW|jj dƒtj |j ƒ}t t|jtƒƒt|jdtƒƒƒt|jdtƒƒ}t|jdtƒƒ}x*t ||ƒD]\}}t ||ƒq0WdS(NR<i(R,R!R=R.RHR@RBR?RAtzipR>RCRDR+(R6RREtgethetatbRF((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_read_attribute_graphmlÎs (.cCsNd}tj|jdƒƒ}ttjtj|ƒttjtj|ƒdS(NsÛ sUTF-8(R'R(R)t assert_raisesR!t NetworkXErrorR=RD(R6tsR7((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyt test_directed_edge_in_undirectedßs cCsNd}tj|jdƒƒ}ttjtj|ƒttjtj|ƒdS(Nsó sUTF-8(R'R(R)RQR!RRR=RD(R6RSR7((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyt test_undirected_edge_in_directedñs cCsNd}tj|jdƒƒ}ttjtj|ƒttjtj|ƒdS(Nsô yellow green blue 1.0 sUTF-8(R'R(R)RQR!RRR=RD(R6RSR7((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_key_raisescCsNd}tj|jdƒƒ}ttjtj|ƒttjtj|ƒdS(Ns5 yellow green blue sUTF-8(R'R(R)RQR!RRR=RD(R6RSR7((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_hyperedge_raisescCs—d}tj|jdƒƒ}tj|ƒ}d d g}tt|jdtƒƒ|ƒ|j dƒtj |ƒ}tt|jdtƒƒ|ƒdS( Nsß sUTF-8RRRRtkeysi(sn0sn1se0(sn0sn1se1( R'R(R)R!R=R>R?RARBRCRD(R6RSR7RtexpectedRE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_multigraph_keys=s  cCsOtjƒ}|jdƒ|jdƒ|jdddtddƒfddtddƒfddtddddƒfddd tdd ƒfddd tdd ƒfddd tddddƒfgƒtjƒ}tj||ƒ|jdƒtj |dt ƒ}t |j dt dt ƒ|j dt dt ƒƒt|j|jƒdS(sf Test that data and keys of edges are preserved on consequent write and reads iitkeyt data_key1Rtdata_id2t data_key3tdata_id3igt data_key4ihtdata_id5iit data_key6tdata_id7it node_typeR<RXN(ii(R!t MultiGraphR$R&tdictR'R(t write_graphmlRCR=tintRIRARBR>t_adj(R6RR7RE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_preserve_multi_edge_dataTs$   %  .cCs d}tj|jdƒƒ}tj|ƒ}tt|jƒƒd gƒt|ddddƒt|jdddƒt|jddd ƒtj |ƒ}tt|jƒƒd gƒt|ddddƒt|jdddƒt|jddd ƒdS( Ns† 1 2 sUTF-8RRRRtlabelt1t2(sn0sn1(sn0sn1( R'R(R)R!R=R>tlistRAR@RD(R6R<R7RRE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_yfiles_extensionqsCcCsçd}tj|jdƒƒ}tj|ƒ}tj|ƒ}x¤||gD]–}t|jddtƒt|jddt ƒt|jddt ƒt|jddtƒt|jddt ƒt|jd dtƒqIWdS( NsU false true false FaLsE True 0 1 sUTF-8RttestRR R R R ( R'R(R)R!R=RDR>R@RBtFalse(R6RSR7RRER-((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyt test_boolÂsc CsÖd}d}d}xy||fD]k}tj|jdƒƒ}tj|ƒ}tj|ƒ}x,||gD]}t|jddtƒqhWqWtj|jdƒƒ}t tj tj|ƒt tj tj|ƒdS(Nsþ false true s false true s% false true sUTF-8RRp( R'R(R)R!R=RDR>R@RBRQRR( R6tgoodtbadtuglyRSR7RRER-((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_graphml_header_lineís   (R9R:RGRJRPRTRURVRWRZRjRoRrRv(((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyR;³s         Q +tTestWriteGraphMLcBsneZeejƒZed„ƒZd„Zd„Z d„Z d„Z d„Z d„Z d„Zd„ZRS( cCs4yddl}Wntk r/tdƒ‚nXdS(Niÿÿÿÿslxml.etree not available.(t lxml.etreet ImportErrorR(tclstlxml((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyt setupClass$s cCsNy#ddl}ttjtjƒWn$tk rIttjtjƒnXdS(Niÿÿÿÿ(RxR>R!Rgtwrite_graphml_lxmlRytwrite_graphml_xml(R6R{((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_write_interface+s   cCsÝ|j}d|jdR?R@RARBR*(R6RR7RE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyt'test_write_read_simple_directed_graphml2s    %%1c CsXddlm}|j}tjƒ}|j||dtƒ|jdƒtj |ƒ}|jdƒt |j ƒ|j ƒƒt |j ƒ|j ƒƒt |j dtƒ|j dtƒƒ|jjdƒ||ƒ}|jƒjƒ}tt|ƒdƒg|d D]}|jƒ^q}tt|ƒdƒtd |dƒtd |d ƒdS( Niÿÿÿÿ(tparsetinfer_numeric_typesiR<iis attr.typetdoublei(s attr.typesdouble(s attr.typesdouble(txml.etree.ElementTreeR„R0R'R(R‚RBRCR!R=RHR@RIRAR1tgetroott getchildrenR>tlentitemst assert_in( R6R„RR7REtxmltchildrentchildRX((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyt.test_write_read_attribute_numeric_type_graphml>s$    % #cCs¶tjƒ}|jddgƒtjƒ\}}|j||ƒtj|ƒ}t|jƒƒt |j dt ƒ|j dt ƒƒt |j |j ƒtj|ƒtj|ƒdS( såWriting keys as edge id attributes means keys become strings. The original keys are stored as data, so read them back in if `make_str(key) == edge_id` This allows the adjacency to remain the same. RNROiiRXN(RNROi(RNROi(R!ReR&ttempfiletmkstempR‚R=t assert_truet is_multigraphRIRARBR>Ritostclosetunlink(R6RtfdtfnameRE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_more_multigraph_keysXs % cCs tjddƒ}|jdddddƒtj|dddd gƒ|jddd d ƒid d6|jd (R6RR7RE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_default_attributeis  cCs~tjƒ}|jddgƒtjƒ\}}|j||ƒtj|ƒ}t|jƒƒt j |ƒt j |ƒdS(NRNROitci(RNROi(ROR i( R!ReR&R‘R’R‚R=t assert_falseR”R•R–R—(R6RR˜R™RE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_multigraph_to_graphxs  cCs.tjƒ}yJtdƒtdƒtdƒ}tdƒtdƒtdƒ}t}WnWtk r¯tdƒtdƒtdƒ}tdƒtdƒtdƒ}t}nX|j|dd|ƒtj ƒ\}}|j ||ƒtj |d |ƒ}t |j |j ƒtj|ƒtj|ƒdS( Ni( i{ii§iiDt RadioheadRRd(R!R3tchrtstrt ValueErrortunichrtunicodeR%R‘R’R‚R=R>RiR•R–R—(R6Rtname1tname2RdR˜R™RE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_unicode_attributesƒs          cCsÑddl}tddƒ}ytdƒ|j|ƒ}Wn&tk r`t|j|ƒƒ}nXtjƒ}||jd(R6R¬RNtsaRR7RE((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyttest_unicode_escape•s       (R9R:t staticmethodR!R}R‚t classmethodR|RRƒRRšRŸR¢R«R¯(((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyRw!s     tTestXMLGraphMLcBs&eZeejƒZed„ƒZRS(cCs4yddl}Wntk r/tdƒ‚nXdS(Niÿÿÿÿs$xml.etree.ElementTree not available.(R‡RyR(RzR((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyR|ªs (R9R:R°R!R~R‚R±R|(((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyR²§s(t nose.toolstnoseRtnetworkxR!tnetworkx.testing.utilsR'R‘R•tobjectRR;RwR²(((s{/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/networkx/networkx/readwrite/tests/test_graphml.pyts      ¨ÿo†